- We're indexing this chain right now. Some of the counts may be inaccurate.

Contract Address Details

0xb5F44363A577cBdEFa0280194F106415b114E022

Creator
0x630701–2c3bf0 at 0x3e0965–59674b
Balance
0 VT
Tokens
Fetching tokens...
Transactions
Fetching transactions...
Transfers
Fetching transfers...
Gas Used
Fetching gas used...
Last Balance Update
32445418

Contract Creation Code

Verify & Publish
0x608060405234801561001057600080fd5b50615219806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f45760003560e01c80636dcfd84111610097578063a22cb46511610066578063a22cb465146102cd578063bd85b039146102e9578063e985e9c514610319578063f242432a14610349576100f4565b80636dcfd8411461022157806385bff2e7146102515780638f80a52a146102815780639df5c23d146102b1576100f4565b806313ba55df116100d357806313ba55df146101895780632eb2c2d6146101b95780634e1273f4146101d557806364c72e7314610205576100f4565b8062fdd58e146100f957806301ffc9a7146101295780630e89341c14610159575b600080fd5b610113600480360381019061010e91906130d4565b610365565b6040516101209190613123565b60405180910390f35b610143600480360381019061013e9190613196565b610379565b60405161015091906131de565b60405180910390f35b610173600480360381019061016e91906131f9565b61039c565b60405161018091906132b6565b60405180910390f35b6101a3600480360381019061019e91906131f9565b61055c565b6040516101b09190613123565b60405180910390f35b6101d360048036038101906101ce91906134d5565b61056e565b005b6101ef60048036038101906101ea9190613667565b61077b565b6040516101fc919061379d565b60405180910390f35b61021f600480360381019061021a9190613959565b61096f565b005b61023b600480360381019061023691906131f9565b610b66565b6040516102489190613ad2565b60405180910390f35b61026b60048036038101906102669190613af4565b610b78565b604051610278919061379d565b60405180910390f35b61029b600480360381019061029691906131f9565b610b8a565b6040516102a89190613ad2565b60405180910390f35b6102cb60048036038101906102c69190613b21565b610b9c565b005b6102e760048036038101906102e29190613c43565b610e03565b005b61030360048036038101906102fe91906131f9565b610f77565b6040516103109190613123565b60405180910390f35b610333600480360381019061032e9190613c83565b610f89565b60405161034091906131de565b60405180910390f35b610363600480360381019061035e9190613cc3565b611026565b005b600061037183836111ab565b905092915050565b60006103958261038761127d565b6112aa90919063ffffffff16565b9050919050565b606060006103a8611315565b9050600081600101600085815260200190815260200160002080546103cc90613d89565b80601f01602080910402602001604051908101604052809291908181526020018280546103f890613d89565b80156104455780601f1061041a57610100808354040283529160200191610445565b820191906000526020600020905b81548152906001019060200180831161042857829003601f168201915b50505050509050600082600001805461045d90613d89565b80601f016020809104026020016040519081016040528092919081815260200182805461048990613d89565b80156104d65780601f106104ab576101008083540402835291602001916104d6565b820191906000526020600020905b8154815290600101906020018083116104b957829003601f168201915b5050505050905060008151036104f157819350505050610557565b60008251111561052757808260405160200161050e929190613df6565b6040516020818303038152906040529350505050610557565b8061053186611342565b604051602001610542929190613df6565b60405160208183030381529060405293505050505b919050565b6000610567826114a2565b9050919050565b60006105786114cf565b905060005b845181101561076557600085828151811061059b5761059a613e1a565b5b6020026020010151036105e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105da90613e95565b60405180910390fd5b81600001548582815181106105fb576105fa613e1a565b5b60200260200101511115610644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063b90613f27565b60405180910390fd5b6000151582600301600087848151811061066157610660613e1a565b5b6020026020010151815260200190815260200160002060000160009054906101000a900460ff161515148061071357508160030160008683815181106106aa576106a9613e1a565b5b6020026020010151815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b610752576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074990613f93565b60405180910390fd5b808061075d90613fe2565b91505061057d565b5061077386868686866114fc565b505050505050565b606081518351146107c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b89061409c565b60405180910390fd5b60006107cb611590565b60000190506000845167ffffffffffffffff8111156107ed576107ec6132dd565b5b60405190808252806020026020018201604052801561081b5781602001602082028036833780820191505090505b50905060005b855181101561096357600073ffffffffffffffffffffffffffffffffffffffff1686828151811061085557610854613e1a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16036108b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108aa9061412e565b60405180910390fd5b8260008683815181106108c9576108c8613e1a565b5b6020026020010151815260200190815260200160002060008783815181106108f4576108f3613e1a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482828151811061094a57610949613e1a565b5b6020026020010181815250508080600101915050610821565b50809250505092915050565b61098e3373ffffffffffffffffffffffffffffffffffffffff166115bd565b6109cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c49061419a565b60405180910390fd5b60006109d76114cf565b90506000151581600601600084815260200190815260200160002086604051610a0091906141ba565b908152602001604051809103902060009054906101000a900460ff16151514610a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a559061421d565b60405180910390fd5b60008585604051602001610a73929190613df6565b604051602081830303815290604052805190602001209050610a968382866115eb565b610ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acc90614289565b60405180910390fd5b8482600501600085815260200190815260200160002087604051610af991906141ba565b90815260200160405180910390209081610b139190614455565b50600182600601600085815260200190815260200160002087604051610b3991906141ba565b908152602001604051809103902060006101000a81548160ff021916908315150217905550505050505050565b6060610b7182611601565b9050919050565b6060610b8382611703565b9050919050565b6060610b9582611601565b9050919050565b610bbb3373ffffffffffffffffffffffffffffffffffffffff166115bd565b610bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf19061419a565b60405180910390fd5b6000610c046114cf565b9050600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603610c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6c90614573565b60405180910390fd5b610c7e86611803565b15610cc057856040517fb70185c4000000000000000000000000000000000000000000000000000000008152600401610cb791906145a2565b60405180910390fd5b6000610ccd89888861186e565b905080610d1157886040517fde189498000000000000000000000000000000000000000000000000000000008152600401610d0891906145a2565b60405180910390fd5b6000610d1c86611902565b9050610d298882876115eb565b610d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5f9061462f565b60405180910390fd5b610d70611952565b610d81888a8886600001548e61197b565b610da08984600001548860405180602001604052806000815250611ac1565b610dae836000015485611c44565b8873ffffffffffffffffffffffffffffffffffffffff168684600001547fff506db58cd89a661f9547fc95b0f53dd93481d6b6e56f119a9fdaa3144ce86760405160405180910390a450505050505050505050565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610e71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e68906146c1565b60405180910390fd5b80610e7a611590565b60010160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610f6b91906131de565b60405180910390a35050565b6000610f8282611caa565b9050919050565b6000610f93611590565b60010160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60006110306114cf565b905060008403611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c90613e95565b60405180910390fd5b80600001548411156110bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b390614753565b60405180910390fd5b6000151581600301600086815260200190815260200160002060000160009054906101000a900460ff1615151480611157575080600301600085815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d90613f93565b60405180910390fd5b6111a38686868686611cd0565b505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361121b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611212906147e5565b60405180910390fd5b611223611590565b600001600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000807f326d0c59a7612f6a9919e2a8ee333c80ba689d8ba2634de89c85cbb04832e70590508091505090565b6000826000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16905092915050565b6000807f4281b61aefbe70b3d3f684b428efca5f33077bc240e76f2808f9177c307617f490508091505090565b606060008203611389576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061149d565b600082905060005b600082146113bb5780806113a490613fe2565b915050600a826113b49190614834565b9150611391565b60008167ffffffffffffffff8111156113d7576113d66132dd565b5b6040519080825280601f01601f1916602001820160405280156114095781602001600182028036833780820191505090505b5090505b60008514611496576001826114229190614865565b9150600a856114319190614899565b603061143d91906148ca565b60f81b81838151811061145357611452613e1a565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561148f9190614834565b945061140d565b8093505050505b919050565b60006114c86114af611d64565b6001016000848152602001908152602001600020611d91565b9050919050565b6000807f2cd8cb57f752266b0e1ae5efaebc31a8a795fa4da802c7f01bc03f40bb7ce00790508091505090565b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061153c575061153b8533610f89565b5b61157b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157290614970565b60405180910390fd5b611589338686868686611da6565b5050505050565b6000807f1799cf914cb0cb442ca7c7ac709ee40d0cb89e87351dc08d517fbda27d50c68b90508091505090565b6000806115c8611dca565b90506115e38382600401600001548360040160010154611df7565b915050919050565b60006115f8828585611fef565b90509392505050565b6060600061160d611d64565b60010160008481526020019081526020016000209050600061162e82611d91565b67ffffffffffffffff811115611647576116466132dd565b5b6040519080825280602002602001820160405280156116755781602001602082028036833780820191505090505b50905060005b61168483611d91565b8110156116f85761169e818461209f90919063ffffffff16565b8282815181106116b1576116b0613e1a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808060010191505061167b565b508092505050919050565b6060600061170f611d64565b60020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600061175c826120b9565b67ffffffffffffffff811115611775576117746132dd565b5b6040519080825280602002602001820160405280156117a35781602001602082028036833780820191505090505b50905060005b6117b2836120b9565b8110156117f8576117cc81846120ce90919063ffffffff16565b8282815181106117df576117de613e1a565b5b60200260200101818152505080806001019150506117a9565b508092505050919050565b60008061180e6114cf565b905060008160020160008581526020019081526020016000205490506000810361183d57600092505050611869565b81600301600082815260200190815260200160002060000160009054906101000a900460ff1615925050505b919050565b6000803073ffffffffffffffffffffffffffffffffffffffff1663635bd36d866040518263ffffffff1660e01b81526004016118aa91906145a2565b602060405180830381865afa1580156118c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118eb91906149a5565b90506118f8838286611fef565b9150509392505050565b600080611921670de0b6b3a76400008461191c9190614834565b611342565b9050806040516020016119349190614a1e565b60405160208183030381529060405280519060200120915050919050565b600061195c6114cf565b905080600001600081548092919061197390613fe2565b919050555050565b60006119856114cf565b90506040518060c001604052806000151581526020018481526020014281526020018581526020018781526020018673ffffffffffffffffffffffffffffffffffffffff1681525081600301600085815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050828160020160008881526020019081526020016000208190555082816007016000848152602001908152602001600020600088815260200190815260200160002081905550505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2790614ab2565b60405180910390fd5b611b4f33600086611b40876120e8565b611b49876120e8565b86612162565b81611b58611590565b600001600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bb891906148ca565b925050819055508373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628686604051611c36929190614ad2565b60405180910390a450505050565b80611c4d611315565b60010160008481526020019081526020016000209081611c6d9190614455565b50817f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b82604051611c9e91906132b6565b60405180910390a25050565b6000611cb4611d64565b6000016000838152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480611d105750611d0f8533610f89565b5b611d4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4690614970565b60405180910390fd5b611d5d338686868686612178565b5050505050565b6000807fb31c2c74f86ca3ce94d901f5f5bbe66f7161eec2f7b5aa0b75a86371436424ea90508091505090565b6000611d9f8260000161219c565b9050919050565b611db48686868686866121ad565b611dc28686868686866124b2565b505050505050565b6000807fce0a342b31da59ead582dab4c53dc621eb44c544aa7418a2ca8d00db861545d390508091505090565b600080611e02611dca565b9050600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611e8e576040517f579bd45e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166395df7b1e8787876040518463ffffffff1660e01b8152600401611ef193929190614b0a565b602060405180830381865afa158015611f0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f329190614b56565b905060008260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166360d6e2c087896040518363ffffffff1660e01b8152600401611f95929190614b83565b602060405180830381865afa158015611fb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd69190614b56565b9050818015611fe3575080155b93505050509392505050565b60008082905060005b855181101561209157600086828151811061201657612015613e1a565b5b6020026020010151905080831161205757828160405160200161203a929190614bcd565b604051602081830303815290604052805190602001209250612083565b808360405160200161206a929190614bcd565b6040516020818303038152906040528051906020012092505b508080600101915050611ff8565b508381149150509392505050565b60006120ae8360000183612689565b60001c905092915050565b60006120c78260000161219c565b9050919050565b60006120dd8360000183612689565b60001c905092915050565b60606000600167ffffffffffffffff811115612107576121066132dd565b5b6040519080825280602002602001820160405280156121355781602001602082028036833780820191505090505b509050828160008151811061214d5761214c613e1a565b5b60200260200101818152505080915050919050565b6121708686868686866126fd565b505050505050565b6121868686868686866129ae565b612194868686868686612c25565b505050505050565b600081600001805490509050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361221c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221390614c6b565b60405180910390fd5b8151835114612260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225790614cfd565b60405180910390fd5b61226e868686868686612162565b6000612278611590565b600001905060005b845181101561242a57600085828151811061229e5761229d613e1a565b5b6020026020010151905060008583815181106122bd576122bc613e1a565b5b60200260200101519050600084600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561235e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235590614d8f565b60405180910390fd5b81810385600085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508380600101945050508084600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461241c91906148ca565b925050819055505050612280565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516124a1929190614daf565b60405180910390a450505050505050565b6124d18473ffffffffffffffffffffffffffffffffffffffff16612dfc565b15612681578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401612517959493929190614e3b565b6020604051808303816000875af192505050801561255357506040513d601f19601f820116820180604052508101906125509190614eb8565b60015b6125f85761255f614ef2565b806308c379a0036125bb5750612573614f14565b8061257e57506125bd565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b291906132b6565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ef90615016565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461267f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612676906150a8565b60405180910390fd5b505b505050505050565b6000818360000180549050116126d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cb9061513a565b60405180910390fd5b8260000182815481106126ea576126e9613e1a565b5b9060005260206000200154905092915050565b61270b868686868686612e0f565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146129a6576000612748611d64565b9050600081600101905060008260020160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008360020160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060005b87518110156129a05760008782815181106127fd576127fc613e1a565b5b60200260200101519050600081111561299257600089838151811061282557612824613e1a565b5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff16036128945781876000016000838152602001908152602001600020600082825461288891906148ca565b925050819055506128df565b8161289f8d836111ab565b036128de576128c88c876000848152602001908152602001600020612e1790919063ffffffff16565b506128dc8186612e4790919063ffffffff16565b505b5b600073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff1603612944578187600001600083815260200190815260200160002060008282546129389190614865565b92505081905550612990565b60006129508c836111ab565b0361298f576129798b876000848152602001908152602001600020612e6190919063ffffffff16565b5061298d8185612e9190919063ffffffff16565b505b5b505b8180600101925050506127df565b50505050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1490614c6b565b60405180910390fd5b612a3b868686612a2c876120e8565b612a35876120e8565b86612162565b6000612a45611590565b6000019050600081600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015612ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad890614d8f565b60405180910390fd5b83810382600087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550508281600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b9791906148ca565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051612c14929190614ad2565b60405180910390a450505050505050565b612c448473ffffffffffffffffffffffffffffffffffffffff16612dfc565b15612df4578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401612c8a95949392919061515a565b6020604051808303816000875af1925050508015612cc657506040513d601f19601f82011682018060405250810190612cc39190614eb8565b60015b612d6b57612cd2614ef2565b806308c379a003612d2e5750612ce6614f14565b80612cf15750612d30565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2591906132b6565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6290615016565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612de9906150a8565b60405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b505050505050565b6000612e3f836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612eab565b905092915050565b6000612e59836000018360001b612eab565b905092915050565b6000612e89836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612f99565b905092915050565b6000612ea3836000018360001b612f99565b905092915050565b60008083600101600084815260200190815260200160002054905060008114612f8d57600084600001600186600001805490500381548110612ef057612eef613e1a565b5b9060005260206000200154905080856000016001840381548110612f1757612f16613e1a565b5b906000526020600020018190555081856001016000838152602001908152602001600020819055505083600001805480612f5457612f536151b4565b5b60019003818190600052602060002001600090559055836001016000848152602001908152602001600020600090556001915050612f93565b60009150505b92915050565b6000612fa58383613009565b612ffe578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050613003565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061306b82613040565b9050919050565b61307b81613060565b811461308657600080fd5b50565b60008135905061309881613072565b92915050565b6000819050919050565b6130b18161309e565b81146130bc57600080fd5b50565b6000813590506130ce816130a8565b92915050565b600080604083850312156130eb576130ea613036565b5b60006130f985828601613089565b925050602061310a858286016130bf565b9150509250929050565b61311d8161309e565b82525050565b60006020820190506131386000830184613114565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6131738161313e565b811461317e57600080fd5b50565b6000813590506131908161316a565b92915050565b6000602082840312156131ac576131ab613036565b5b60006131ba84828501613181565b91505092915050565b60008115159050919050565b6131d8816131c3565b82525050565b60006020820190506131f360008301846131cf565b92915050565b60006020828403121561320f5761320e613036565b5b600061321d848285016130bf565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613260578082015181840152602081019050613245565b60008484015250505050565b6000601f19601f8301169050919050565b600061328882613226565b6132928185613231565b93506132a2818560208601613242565b6132ab8161326c565b840191505092915050565b600060208201905081810360008301526132d0818461327d565b905092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6133158261326c565b810181811067ffffffffffffffff82111715613334576133336132dd565b5b80604052505050565b600061334761302c565b9050613353828261330c565b919050565b600067ffffffffffffffff821115613373576133726132dd565b5b602082029050602081019050919050565b600080fd5b600061339c61339784613358565b61333d565b905080838252602082019050602084028301858111156133bf576133be613384565b5b835b818110156133e857806133d488826130bf565b8452602084019350506020810190506133c1565b5050509392505050565b600082601f830112613407576134066132d8565b5b8135613417848260208601613389565b91505092915050565b600080fd5b600067ffffffffffffffff8211156134405761343f6132dd565b5b6134498261326c565b9050602081019050919050565b82818337600083830152505050565b600061347861347384613425565b61333d565b90508281526020810184848401111561349457613493613420565b5b61349f848285613456565b509392505050565b600082601f8301126134bc576134bb6132d8565b5b81356134cc848260208601613465565b91505092915050565b600080600080600060a086880312156134f1576134f0613036565b5b60006134ff88828901613089565b955050602061351088828901613089565b945050604086013567ffffffffffffffff8111156135315761353061303b565b5b61353d888289016133f2565b935050606086013567ffffffffffffffff81111561355e5761355d61303b565b5b61356a888289016133f2565b925050608086013567ffffffffffffffff81111561358b5761358a61303b565b5b613597888289016134a7565b9150509295509295909350565b600067ffffffffffffffff8211156135bf576135be6132dd565b5b602082029050602081019050919050565b60006135e36135de846135a4565b61333d565b9050808382526020820190506020840283018581111561360657613605613384565b5b835b8181101561362f578061361b8882613089565b845260208401935050602081019050613608565b5050509392505050565b600082601f83011261364e5761364d6132d8565b5b813561365e8482602086016135d0565b91505092915050565b6000806040838503121561367e5761367d613036565b5b600083013567ffffffffffffffff81111561369c5761369b61303b565b5b6136a885828601613639565b925050602083013567ffffffffffffffff8111156136c9576136c861303b565b5b6136d5858286016133f2565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6137148161309e565b82525050565b6000613726838361370b565b60208301905092915050565b6000602082019050919050565b600061374a826136df565b61375481856136ea565b935061375f836136fb565b8060005b83811015613790578151613777888261371a565b975061378283613732565b925050600181019050613763565b5085935050505092915050565b600060208201905081810360008301526137b7818461373f565b905092915050565b600067ffffffffffffffff8211156137da576137d96132dd565b5b6137e38261326c565b9050602081019050919050565b60006138036137fe846137bf565b61333d565b90508281526020810184848401111561381f5761381e613420565b5b61382a848285613456565b509392505050565b600082601f830112613847576138466132d8565b5b81356138578482602086016137f0565b91505092915050565b600067ffffffffffffffff82111561387b5761387a6132dd565b5b602082029050602081019050919050565b6000819050919050565b61389f8161388c565b81146138aa57600080fd5b50565b6000813590506138bc81613896565b92915050565b60006138d56138d084613860565b61333d565b905080838252602082019050602084028301858111156138f8576138f7613384565b5b835b81811015613921578061390d88826138ad565b8452602084019350506020810190506138fa565b5050509392505050565b600082601f8301126139405761393f6132d8565b5b81356139508482602086016138c2565b91505092915050565b6000806000806080858703121561397357613972613036565b5b600085013567ffffffffffffffff8111156139915761399061303b565b5b61399d87828801613832565b945050602085013567ffffffffffffffff8111156139be576139bd61303b565b5b6139ca87828801613832565b935050604085013567ffffffffffffffff8111156139eb576139ea61303b565b5b6139f78782880161392b565b9250506060613a08878288016138ad565b91505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a4981613060565b82525050565b6000613a5b8383613a40565b60208301905092915050565b6000602082019050919050565b6000613a7f82613a14565b613a898185613a1f565b9350613a9483613a30565b8060005b83811015613ac5578151613aac8882613a4f565b9750613ab783613a67565b925050600181019050613a98565b5085935050505092915050565b60006020820190508181036000830152613aec8184613a74565b905092915050565b600060208284031215613b0a57613b09613036565b5b6000613b1884828501613089565b91505092915050565b600080600080600080600060e0888a031215613b4057613b3f613036565b5b6000613b4e8a828b016138ad565b9750506020613b5f8a828b01613089565b9650506040613b708a828b016138ad565b955050606088013567ffffffffffffffff811115613b9157613b9061303b565b5b613b9d8a828b0161392b565b9450506080613bae8a828b016130bf565b93505060a088013567ffffffffffffffff811115613bcf57613bce61303b565b5b613bdb8a828b0161392b565b92505060c088013567ffffffffffffffff811115613bfc57613bfb61303b565b5b613c088a828b01613832565b91505092959891949750929550565b613c20816131c3565b8114613c2b57600080fd5b50565b600081359050613c3d81613c17565b92915050565b60008060408385031215613c5a57613c59613036565b5b6000613c6885828601613089565b9250506020613c7985828601613c2e565b9150509250929050565b60008060408385031215613c9a57613c99613036565b5b6000613ca885828601613089565b9250506020613cb985828601613089565b9150509250929050565b600080600080600060a08688031215613cdf57613cde613036565b5b6000613ced88828901613089565b9550506020613cfe88828901613089565b9450506040613d0f888289016130bf565b9350506060613d20888289016130bf565b925050608086013567ffffffffffffffff811115613d4157613d4061303b565b5b613d4d888289016134a7565b9150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613da157607f821691505b602082108103613db457613db3613d5a565b5b50919050565b600081905092915050565b6000613dd082613226565b613dda8185613dba565b9350613dea818560208601613242565b80840191505092915050565b6000613e028285613dc5565b9150613e0e8284613dc5565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f7472616e736665723a20696e76616c6964207a65726f20746f6b656e20494400600082015250565b6000613e7f601f83613231565b9150613e8a82613e49565b602082019050919050565b60006020820190508181036000830152613eae81613e72565b9050919050565b7f7472616e7366657242617463683a20746f6b656e49642067726561746572207460008201527f68616e206973737565722e6c6174657374436572746966696361746549640000602082015250565b6000613f11603e83613231565b9150613f1c82613eb5565b604082019050919050565b60006020820190508181036000830152613f4081613f04565b9050919050565b7f6e6f6e207472616461626c65207265766f6b65642070726f6f66000000000000600082015250565b6000613f7d601a83613231565b9150613f8882613f47565b602082019050919050565b60006020820190508181036000830152613fac81613f70565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613fed8261309e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361401f5761401e613fb3565b5b600182019050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b6000614086602983613231565b91506140918261402a565b604082019050919050565b600060208201905081810360008301526140b581614079565b9050919050565b7f455243313135353a2062617463682062616c616e636520717565727920666f7260008201527f20746865207a65726f2061646472657373000000000000000000000000000000602082015250565b6000614118603183613231565b9150614123826140bc565b604082019050919050565b600060208201905081810360008301526141478161410b565b9050919050565b7f4163636573733a204e6f7420616e206973737565720000000000000000000000600082015250565b6000614184601583613231565b915061418f8261414e565b602082019050919050565b600060208201905081810360008301526141b381614177565b9050919050565b60006141c68284613dc5565b915081905092915050565b7f446973636c6f73653a206461746120616c726561647920646973636c6f736564600082015250565b6000614207602083613231565b9150614212826141d1565b602082019050919050565b60006020820190508181036000830152614236816141fa565b9050919050565b7f446973636c6f7365203a2064617461206e6f7420766572696669656400000000600082015250565b6000614273601c83613231565b915061427e8261423d565b602082019050919050565b600060208201905081810360008301526142a281614266565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261430b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826142ce565b61431586836142ce565b95508019841693508086168417925050509392505050565b6000819050919050565b600061435261434d6143488461309e565b61432d565b61309e565b9050919050565b6000819050919050565b61436c83614337565b61438061437882614359565b8484546142db565b825550505050565b600090565b614395614388565b6143a0818484614363565b505050565b5b818110156143c4576143b960008261438d565b6001810190506143a6565b5050565b601f821115614409576143da816142a9565b6143e3846142be565b810160208510156143f2578190505b6144066143fe856142be565b8301826143a5565b50505b505050565b600082821c905092915050565b600061442c6000198460080261440e565b1980831691505092915050565b6000614445838361441b565b9150826002028217905092915050565b61445e82613226565b67ffffffffffffffff811115614477576144766132dd565b5b6144818254613d89565b61448c8282856143c8565b600060209050601f8311600181146144bf57600084156144ad578287015190505b6144b78582614439565b86555061451f565b601f1984166144cd866142a9565b60005b828110156144f5578489015182556001820191506020850194506020810190506144d0565b86831015614512578489015161450e601f89168261441b565b8355505b6001600288020188555050505b505050505050565b7f69737375616e6365206d757374206265206e6f6e2d7a65726f00000000000000600082015250565b600061455d601983613231565b915061456882614527565b602082019050919050565b6000602082019050818103600083015261458c81614550565b9050919050565b61459c8161388c565b82525050565b60006020820190506145b76000830184614593565b92915050565b7f616d6f756e74203a204e6f742070617274206f66207468697320636f6e73656e60008201527f7375730000000000000000000000000000000000000000000000000000000000602082015250565b6000614619602383613231565b9150614624826145bd565b604082019050919050565b600060208201905081810360008301526146488161460c565b9050919050565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b60006146ab602983613231565b91506146b68261464f565b604082019050919050565b600060208201905081810360008301526146da8161469e565b9050919050565b7f7472616e736665723a20746f6b656e49642067726561746572207468616e206960008201527f73737565722e6c61746573744365727469666963617465496400000000000000602082015250565b600061473d603983613231565b9150614748826146e1565b604082019050919050565b6000602082019050818103600083015261476c81614730565b9050919050565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b60006147cf602b83613231565b91506147da82614773565b604082019050919050565b600060208201905081810360008301526147fe816147c2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061483f8261309e565b915061484a8361309e565b92508261485a57614859614805565b5b828204905092915050565b60006148708261309e565b915061487b8361309e565b925082820390508181111561489357614892613fb3565b5b92915050565b60006148a48261309e565b91506148af8361309e565b9250826148bf576148be614805565b5b828206905092915050565b60006148d58261309e565b91506148e08361309e565b92508282019050808211156148f8576148f7613fb3565b5b92915050565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b600061495a602983613231565b9150614965826148fe565b604082019050919050565b600060208201905081810360008301526149898161494d565b9050919050565b60008151905061499f81613896565b92915050565b6000602082840312156149bb576149ba613036565b5b60006149c984828501614990565b91505092915050565b7f766f6c756d650000000000000000000000000000000000000000000000000000600082015250565b6000614a08600683613dba565b9150614a13826149d2565b600682019050919050565b6000614a29826149fb565b9150614a358284613dc5565b915081905092915050565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a9c602183613231565b9150614aa782614a40565b604082019050919050565b60006020820190508181036000830152614acb81614a8f565b9050919050565b6000604082019050614ae76000830185613114565b614af46020830184613114565b9392505050565b614b0481613060565b82525050565b6000606082019050614b1f6000830186614afb565b614b2c6020830185614593565b614b396040830184613114565b949350505050565b600081519050614b5081613c17565b92915050565b600060208284031215614b6c57614b6b613036565b5b6000614b7a84828501614b41565b91505092915050565b6000604082019050614b986000830185614593565b614ba56020830184614afb565b9392505050565b6000819050919050565b614bc7614bc28261388c565b614bac565b82525050565b6000614bd98285614bb6565b602082019150614be98284614bb6565b6020820191508190509392505050565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614c55602583613231565b9150614c6082614bf9565b604082019050919050565b60006020820190508181036000830152614c8481614c48565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b6000614ce7602883613231565b9150614cf282614c8b565b604082019050919050565b60006020820190508181036000830152614d1681614cda565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636573206660008201527f6f72207472616e73666572000000000000000000000000000000000000000000602082015250565b6000614d79602b83613231565b9150614d8482614d1d565b604082019050919050565b60006020820190508181036000830152614da881614d6c565b9050919050565b60006040820190508181036000830152614dc9818561373f565b90508181036020830152614ddd818461373f565b90509392505050565b600081519050919050565b600082825260208201905092915050565b6000614e0d82614de6565b614e178185614df1565b9350614e27818560208601613242565b614e308161326c565b840191505092915050565b600060a082019050614e506000830188614afb565b614e5d6020830187614afb565b8181036040830152614e6f818661373f565b90508181036060830152614e83818561373f565b90508181036080830152614e978184614e02565b90509695505050505050565b600081519050614eb28161316a565b92915050565b600060208284031215614ece57614ecd613036565b5b6000614edc84828501614ea3565b91505092915050565b60008160e01c9050919050565b600060033d1115614f115760046000803e614f0e600051614ee5565b90505b90565b600060443d10614fa157614f2661302c565b60043d036004823e80513d602482011167ffffffffffffffff82111715614f4e575050614fa1565b808201805167ffffffffffffffff811115614f6c5750505050614fa1565b80602083010160043d038501811115614f89575050505050614fa1565b614f988260200185018661330c565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b6000615000603483613231565b915061500b82614fa4565b604082019050919050565b6000602082019050818103600083015261502f81614ff3565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b6000615092602883613231565b915061509d82615036565b604082019050919050565b600060208201905081810360008301526150c181615085565b9050919050565b7f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e60008201527f6473000000000000000000000000000000000000000000000000000000000000602082015250565b6000615124602283613231565b915061512f826150c8565b604082019050919050565b6000602082019050818103600083015261515381615117565b9050919050565b600060a08201905061516f6000830188614afb565b61517c6020830187614afb565b6151896040830186613114565b6151966060830185613114565b81810360808301526151a88184614e02565b90509695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea264697066735822122021b70bbe28a62c2667742f7bfa5e9ede0dc294c0c76752bc2e53654a89c2375364736f6c63430008100033

Deployed ByteCode

0x608060405234801561001057600080fd5b50600436106100f45760003560e01c80636dcfd84111610097578063a22cb46511610066578063a22cb465146102cd578063bd85b039146102e9578063e985e9c514610319578063f242432a14610349576100f4565b80636dcfd8411461022157806385bff2e7146102515780638f80a52a146102815780639df5c23d146102b1576100f4565b806313ba55df116100d357806313ba55df146101895780632eb2c2d6146101b95780634e1273f4146101d557806364c72e7314610205576100f4565b8062fdd58e146100f957806301ffc9a7146101295780630e89341c14610159575b600080fd5b610113600480360381019061010e91906130d4565b610365565b6040516101209190613123565b60405180910390f35b610143600480360381019061013e9190613196565b610379565b60405161015091906131de565b60405180910390f35b610173600480360381019061016e91906131f9565b61039c565b60405161018091906132b6565b60405180910390f35b6101a3600480360381019061019e91906131f9565b61055c565b6040516101b09190613123565b60405180910390f35b6101d360048036038101906101ce91906134d5565b61056e565b005b6101ef60048036038101906101ea9190613667565b61077b565b6040516101fc919061379d565b60405180910390f35b61021f600480360381019061021a9190613959565b61096f565b005b61023b600480360381019061023691906131f9565b610b66565b6040516102489190613ad2565b60405180910390f35b61026b60048036038101906102669190613af4565b610b78565b604051610278919061379d565b60405180910390f35b61029b600480360381019061029691906131f9565b610b8a565b6040516102a89190613ad2565b60405180910390f35b6102cb60048036038101906102c69190613b21565b610b9c565b005b6102e760048036038101906102e29190613c43565b610e03565b005b61030360048036038101906102fe91906131f9565b610f77565b6040516103109190613123565b60405180910390f35b610333600480360381019061032e9190613c83565b610f89565b60405161034091906131de565b60405180910390f35b610363600480360381019061035e9190613cc3565b611026565b005b600061037183836111ab565b905092915050565b60006103958261038761127d565b6112aa90919063ffffffff16565b9050919050565b606060006103a8611315565b9050600081600101600085815260200190815260200160002080546103cc90613d89565b80601f01602080910402602001604051908101604052809291908181526020018280546103f890613d89565b80156104455780601f1061041a57610100808354040283529160200191610445565b820191906000526020600020905b81548152906001019060200180831161042857829003601f168201915b50505050509050600082600001805461045d90613d89565b80601f016020809104026020016040519081016040528092919081815260200182805461048990613d89565b80156104d65780601f106104ab576101008083540402835291602001916104d6565b820191906000526020600020905b8154815290600101906020018083116104b957829003601f168201915b5050505050905060008151036104f157819350505050610557565b60008251111561052757808260405160200161050e929190613df6565b6040516020818303038152906040529350505050610557565b8061053186611342565b604051602001610542929190613df6565b60405160208183030381529060405293505050505b919050565b6000610567826114a2565b9050919050565b60006105786114cf565b905060005b845181101561076557600085828151811061059b5761059a613e1a565b5b6020026020010151036105e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105da90613e95565b60405180910390fd5b81600001548582815181106105fb576105fa613e1a565b5b60200260200101511115610644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063b90613f27565b60405180910390fd5b6000151582600301600087848151811061066157610660613e1a565b5b6020026020010151815260200190815260200160002060000160009054906101000a900460ff161515148061071357508160030160008683815181106106aa576106a9613e1a565b5b6020026020010151815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b610752576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074990613f93565b60405180910390fd5b808061075d90613fe2565b91505061057d565b5061077386868686866114fc565b505050505050565b606081518351146107c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b89061409c565b60405180910390fd5b60006107cb611590565b60000190506000845167ffffffffffffffff8111156107ed576107ec6132dd565b5b60405190808252806020026020018201604052801561081b5781602001602082028036833780820191505090505b50905060005b855181101561096357600073ffffffffffffffffffffffffffffffffffffffff1686828151811061085557610854613e1a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16036108b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108aa9061412e565b60405180910390fd5b8260008683815181106108c9576108c8613e1a565b5b6020026020010151815260200190815260200160002060008783815181106108f4576108f3613e1a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482828151811061094a57610949613e1a565b5b6020026020010181815250508080600101915050610821565b50809250505092915050565b61098e3373ffffffffffffffffffffffffffffffffffffffff166115bd565b6109cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c49061419a565b60405180910390fd5b60006109d76114cf565b90506000151581600601600084815260200190815260200160002086604051610a0091906141ba565b908152602001604051809103902060009054906101000a900460ff16151514610a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a559061421d565b60405180910390fd5b60008585604051602001610a73929190613df6565b604051602081830303815290604052805190602001209050610a968382866115eb565b610ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acc90614289565b60405180910390fd5b8482600501600085815260200190815260200160002087604051610af991906141ba565b90815260200160405180910390209081610b139190614455565b50600182600601600085815260200190815260200160002087604051610b3991906141ba565b908152602001604051809103902060006101000a81548160ff021916908315150217905550505050505050565b6060610b7182611601565b9050919050565b6060610b8382611703565b9050919050565b6060610b9582611601565b9050919050565b610bbb3373ffffffffffffffffffffffffffffffffffffffff166115bd565b610bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf19061419a565b60405180910390fd5b6000610c046114cf565b9050600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603610c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6c90614573565b60405180910390fd5b610c7e86611803565b15610cc057856040517fb70185c4000000000000000000000000000000000000000000000000000000008152600401610cb791906145a2565b60405180910390fd5b6000610ccd89888861186e565b905080610d1157886040517fde189498000000000000000000000000000000000000000000000000000000008152600401610d0891906145a2565b60405180910390fd5b6000610d1c86611902565b9050610d298882876115eb565b610d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5f9061462f565b60405180910390fd5b610d70611952565b610d81888a8886600001548e61197b565b610da08984600001548860405180602001604052806000815250611ac1565b610dae836000015485611c44565b8873ffffffffffffffffffffffffffffffffffffffff168684600001547fff506db58cd89a661f9547fc95b0f53dd93481d6b6e56f119a9fdaa3144ce86760405160405180910390a450505050505050505050565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610e71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e68906146c1565b60405180910390fd5b80610e7a611590565b60010160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610f6b91906131de565b60405180910390a35050565b6000610f8282611caa565b9050919050565b6000610f93611590565b60010160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60006110306114cf565b905060008403611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c90613e95565b60405180910390fd5b80600001548411156110bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b390614753565b60405180910390fd5b6000151581600301600086815260200190815260200160002060000160009054906101000a900460ff1615151480611157575080600301600085815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d90613f93565b60405180910390fd5b6111a38686868686611cd0565b505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361121b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611212906147e5565b60405180910390fd5b611223611590565b600001600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000807f326d0c59a7612f6a9919e2a8ee333c80ba689d8ba2634de89c85cbb04832e70590508091505090565b6000826000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16905092915050565b6000807f4281b61aefbe70b3d3f684b428efca5f33077bc240e76f2808f9177c307617f490508091505090565b606060008203611389576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061149d565b600082905060005b600082146113bb5780806113a490613fe2565b915050600a826113b49190614834565b9150611391565b60008167ffffffffffffffff8111156113d7576113d66132dd565b5b6040519080825280601f01601f1916602001820160405280156114095781602001600182028036833780820191505090505b5090505b60008514611496576001826114229190614865565b9150600a856114319190614899565b603061143d91906148ca565b60f81b81838151811061145357611452613e1a565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561148f9190614834565b945061140d565b8093505050505b919050565b60006114c86114af611d64565b6001016000848152602001908152602001600020611d91565b9050919050565b6000807f2cd8cb57f752266b0e1ae5efaebc31a8a795fa4da802c7f01bc03f40bb7ce00790508091505090565b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061153c575061153b8533610f89565b5b61157b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157290614970565b60405180910390fd5b611589338686868686611da6565b5050505050565b6000807f1799cf914cb0cb442ca7c7ac709ee40d0cb89e87351dc08d517fbda27d50c68b90508091505090565b6000806115c8611dca565b90506115e38382600401600001548360040160010154611df7565b915050919050565b60006115f8828585611fef565b90509392505050565b6060600061160d611d64565b60010160008481526020019081526020016000209050600061162e82611d91565b67ffffffffffffffff811115611647576116466132dd565b5b6040519080825280602002602001820160405280156116755781602001602082028036833780820191505090505b50905060005b61168483611d91565b8110156116f85761169e818461209f90919063ffffffff16565b8282815181106116b1576116b0613e1a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808060010191505061167b565b508092505050919050565b6060600061170f611d64565b60020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600061175c826120b9565b67ffffffffffffffff811115611775576117746132dd565b5b6040519080825280602002602001820160405280156117a35781602001602082028036833780820191505090505b50905060005b6117b2836120b9565b8110156117f8576117cc81846120ce90919063ffffffff16565b8282815181106117df576117de613e1a565b5b60200260200101818152505080806001019150506117a9565b508092505050919050565b60008061180e6114cf565b905060008160020160008581526020019081526020016000205490506000810361183d57600092505050611869565b81600301600082815260200190815260200160002060000160009054906101000a900460ff1615925050505b919050565b6000803073ffffffffffffffffffffffffffffffffffffffff1663635bd36d866040518263ffffffff1660e01b81526004016118aa91906145a2565b602060405180830381865afa1580156118c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118eb91906149a5565b90506118f8838286611fef565b9150509392505050565b600080611921670de0b6b3a76400008461191c9190614834565b611342565b9050806040516020016119349190614a1e565b60405160208183030381529060405280519060200120915050919050565b600061195c6114cf565b905080600001600081548092919061197390613fe2565b919050555050565b60006119856114cf565b90506040518060c001604052806000151581526020018481526020014281526020018581526020018781526020018673ffffffffffffffffffffffffffffffffffffffff1681525081600301600085815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050828160020160008881526020019081526020016000208190555082816007016000848152602001908152602001600020600088815260200190815260200160002081905550505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2790614ab2565b60405180910390fd5b611b4f33600086611b40876120e8565b611b49876120e8565b86612162565b81611b58611590565b600001600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bb891906148ca565b925050819055508373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628686604051611c36929190614ad2565b60405180910390a450505050565b80611c4d611315565b60010160008481526020019081526020016000209081611c6d9190614455565b50817f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b82604051611c9e91906132b6565b60405180910390a25050565b6000611cb4611d64565b6000016000838152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480611d105750611d0f8533610f89565b5b611d4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4690614970565b60405180910390fd5b611d5d338686868686612178565b5050505050565b6000807fb31c2c74f86ca3ce94d901f5f5bbe66f7161eec2f7b5aa0b75a86371436424ea90508091505090565b6000611d9f8260000161219c565b9050919050565b611db48686868686866121ad565b611dc28686868686866124b2565b505050505050565b6000807fce0a342b31da59ead582dab4c53dc621eb44c544aa7418a2ca8d00db861545d390508091505090565b600080611e02611dca565b9050600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611e8e576040517f579bd45e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166395df7b1e8787876040518463ffffffff1660e01b8152600401611ef193929190614b0a565b602060405180830381865afa158015611f0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f329190614b56565b905060008260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166360d6e2c087896040518363ffffffff1660e01b8152600401611f95929190614b83565b602060405180830381865afa158015611fb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd69190614b56565b9050818015611fe3575080155b93505050509392505050565b60008082905060005b855181101561209157600086828151811061201657612015613e1a565b5b6020026020010151905080831161205757828160405160200161203a929190614bcd565b604051602081830303815290604052805190602001209250612083565b808360405160200161206a929190614bcd565b6040516020818303038152906040528051906020012092505b508080600101915050611ff8565b508381149150509392505050565b60006120ae8360000183612689565b60001c905092915050565b60006120c78260000161219c565b9050919050565b60006120dd8360000183612689565b60001c905092915050565b60606000600167ffffffffffffffff811115612107576121066132dd565b5b6040519080825280602002602001820160405280156121355781602001602082028036833780820191505090505b509050828160008151811061214d5761214c613e1a565b5b60200260200101818152505080915050919050565b6121708686868686866126fd565b505050505050565b6121868686868686866129ae565b612194868686868686612c25565b505050505050565b600081600001805490509050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361221c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221390614c6b565b60405180910390fd5b8151835114612260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225790614cfd565b60405180910390fd5b61226e868686868686612162565b6000612278611590565b600001905060005b845181101561242a57600085828151811061229e5761229d613e1a565b5b6020026020010151905060008583815181106122bd576122bc613e1a565b5b60200260200101519050600084600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561235e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235590614d8f565b60405180910390fd5b81810385600085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508380600101945050508084600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461241c91906148ca565b925050819055505050612280565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516124a1929190614daf565b60405180910390a450505050505050565b6124d18473ffffffffffffffffffffffffffffffffffffffff16612dfc565b15612681578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401612517959493929190614e3b565b6020604051808303816000875af192505050801561255357506040513d601f19601f820116820180604052508101906125509190614eb8565b60015b6125f85761255f614ef2565b806308c379a0036125bb5750612573614f14565b8061257e57506125bd565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b291906132b6565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ef90615016565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461267f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612676906150a8565b60405180910390fd5b505b505050505050565b6000818360000180549050116126d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cb9061513a565b60405180910390fd5b8260000182815481106126ea576126e9613e1a565b5b9060005260206000200154905092915050565b61270b868686868686612e0f565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146129a6576000612748611d64565b9050600081600101905060008260020160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008360020160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060005b87518110156129a05760008782815181106127fd576127fc613e1a565b5b60200260200101519050600081111561299257600089838151811061282557612824613e1a565b5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff16036128945781876000016000838152602001908152602001600020600082825461288891906148ca565b925050819055506128df565b8161289f8d836111ab565b036128de576128c88c876000848152602001908152602001600020612e1790919063ffffffff16565b506128dc8186612e4790919063ffffffff16565b505b5b600073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff1603612944578187600001600083815260200190815260200160002060008282546129389190614865565b92505081905550612990565b60006129508c836111ab565b0361298f576129798b876000848152602001908152602001600020612e6190919063ffffffff16565b5061298d8185612e9190919063ffffffff16565b505b5b505b8180600101925050506127df565b50505050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1490614c6b565b60405180910390fd5b612a3b868686612a2c876120e8565b612a35876120e8565b86612162565b6000612a45611590565b6000019050600081600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015612ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad890614d8f565b60405180910390fd5b83810382600087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550508281600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b9791906148ca565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051612c14929190614ad2565b60405180910390a450505050505050565b612c448473ffffffffffffffffffffffffffffffffffffffff16612dfc565b15612df4578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401612c8a95949392919061515a565b6020604051808303816000875af1925050508015612cc657506040513d601f19601f82011682018060405250810190612cc39190614eb8565b60015b612d6b57612cd2614ef2565b806308c379a003612d2e5750612ce6614f14565b80612cf15750612d30565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2591906132b6565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6290615016565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612de9906150a8565b60405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b505050505050565b6000612e3f836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612eab565b905092915050565b6000612e59836000018360001b612eab565b905092915050565b6000612e89836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612f99565b905092915050565b6000612ea3836000018360001b612f99565b905092915050565b60008083600101600084815260200190815260200160002054905060008114612f8d57600084600001600186600001805490500381548110612ef057612eef613e1a565b5b9060005260206000200154905080856000016001840381548110612f1757612f16613e1a565b5b906000526020600020018190555081856001016000838152602001908152602001600020819055505083600001805480612f5457612f536151b4565b5b60019003818190600052602060002001600090559055836001016000848152602001908152602001600020600090556001915050612f93565b60009150505b92915050565b6000612fa58383613009565b612ffe578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050613003565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061306b82613040565b9050919050565b61307b81613060565b811461308657600080fd5b50565b60008135905061309881613072565b92915050565b6000819050919050565b6130b18161309e565b81146130bc57600080fd5b50565b6000813590506130ce816130a8565b92915050565b600080604083850312156130eb576130ea613036565b5b60006130f985828601613089565b925050602061310a858286016130bf565b9150509250929050565b61311d8161309e565b82525050565b60006020820190506131386000830184613114565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6131738161313e565b811461317e57600080fd5b50565b6000813590506131908161316a565b92915050565b6000602082840312156131ac576131ab613036565b5b60006131ba84828501613181565b91505092915050565b60008115159050919050565b6131d8816131c3565b82525050565b60006020820190506131f360008301846131cf565b92915050565b60006020828403121561320f5761320e613036565b5b600061321d848285016130bf565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613260578082015181840152602081019050613245565b60008484015250505050565b6000601f19601f8301169050919050565b600061328882613226565b6132928185613231565b93506132a2818560208601613242565b6132ab8161326c565b840191505092915050565b600060208201905081810360008301526132d0818461327d565b905092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6133158261326c565b810181811067ffffffffffffffff82111715613334576133336132dd565b5b80604052505050565b600061334761302c565b9050613353828261330c565b919050565b600067ffffffffffffffff821115613373576133726132dd565b5b602082029050602081019050919050565b600080fd5b600061339c61339784613358565b61333d565b905080838252602082019050602084028301858111156133bf576133be613384565b5b835b818110156133e857806133d488826130bf565b8452602084019350506020810190506133c1565b5050509392505050565b600082601f830112613407576134066132d8565b5b8135613417848260208601613389565b91505092915050565b600080fd5b600067ffffffffffffffff8211156134405761343f6132dd565b5b6134498261326c565b9050602081019050919050565b82818337600083830152505050565b600061347861347384613425565b61333d565b90508281526020810184848401111561349457613493613420565b5b61349f848285613456565b509392505050565b600082601f8301126134bc576134bb6132d8565b5b81356134cc848260208601613465565b91505092915050565b600080600080600060a086880312156134f1576134f0613036565b5b60006134ff88828901613089565b955050602061351088828901613089565b945050604086013567ffffffffffffffff8111156135315761353061303b565b5b61353d888289016133f2565b935050606086013567ffffffffffffffff81111561355e5761355d61303b565b5b61356a888289016133f2565b925050608086013567ffffffffffffffff81111561358b5761358a61303b565b5b613597888289016134a7565b9150509295509295909350565b600067ffffffffffffffff8211156135bf576135be6132dd565b5b602082029050602081019050919050565b60006135e36135de846135a4565b61333d565b9050808382526020820190506020840283018581111561360657613605613384565b5b835b8181101561362f578061361b8882613089565b845260208401935050602081019050613608565b5050509392505050565b600082601f83011261364e5761364d6132d8565b5b813561365e8482602086016135d0565b91505092915050565b6000806040838503121561367e5761367d613036565b5b600083013567ffffffffffffffff81111561369c5761369b61303b565b5b6136a885828601613639565b925050602083013567ffffffffffffffff8111156136c9576136c861303b565b5b6136d5858286016133f2565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6137148161309e565b82525050565b6000613726838361370b565b60208301905092915050565b6000602082019050919050565b600061374a826136df565b61375481856136ea565b935061375f836136fb565b8060005b83811015613790578151613777888261371a565b975061378283613732565b925050600181019050613763565b5085935050505092915050565b600060208201905081810360008301526137b7818461373f565b905092915050565b600067ffffffffffffffff8211156137da576137d96132dd565b5b6137e38261326c565b9050602081019050919050565b60006138036137fe846137bf565b61333d565b90508281526020810184848401111561381f5761381e613420565b5b61382a848285613456565b509392505050565b600082601f830112613847576138466132d8565b5b81356138578482602086016137f0565b91505092915050565b600067ffffffffffffffff82111561387b5761387a6132dd565b5b602082029050602081019050919050565b6000819050919050565b61389f8161388c565b81146138aa57600080fd5b50565b6000813590506138bc81613896565b92915050565b60006138d56138d084613860565b61333d565b905080838252602082019050602084028301858111156138f8576138f7613384565b5b835b81811015613921578061390d88826138ad565b8452602084019350506020810190506138fa565b5050509392505050565b600082601f8301126139405761393f6132d8565b5b81356139508482602086016138c2565b91505092915050565b6000806000806080858703121561397357613972613036565b5b600085013567ffffffffffffffff8111156139915761399061303b565b5b61399d87828801613832565b945050602085013567ffffffffffffffff8111156139be576139bd61303b565b5b6139ca87828801613832565b935050604085013567ffffffffffffffff8111156139eb576139ea61303b565b5b6139f78782880161392b565b9250506060613a08878288016138ad565b91505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a4981613060565b82525050565b6000613a5b8383613a40565b60208301905092915050565b6000602082019050919050565b6000613a7f82613a14565b613a898185613a1f565b9350613a9483613a30565b8060005b83811015613ac5578151613aac8882613a4f565b9750613ab783613a67565b925050600181019050613a98565b5085935050505092915050565b60006020820190508181036000830152613aec8184613a74565b905092915050565b600060208284031215613b0a57613b09613036565b5b6000613b1884828501613089565b91505092915050565b600080600080600080600060e0888a031215613b4057613b3f613036565b5b6000613b4e8a828b016138ad565b9750506020613b5f8a828b01613089565b9650506040613b708a828b016138ad565b955050606088013567ffffffffffffffff811115613b9157613b9061303b565b5b613b9d8a828b0161392b565b9450506080613bae8a828b016130bf565b93505060a088013567ffffffffffffffff811115613bcf57613bce61303b565b5b613bdb8a828b0161392b565b92505060c088013567ffffffffffffffff811115613bfc57613bfb61303b565b5b613c088a828b01613832565b91505092959891949750929550565b613c20816131c3565b8114613c2b57600080fd5b50565b600081359050613c3d81613c17565b92915050565b60008060408385031215613c5a57613c59613036565b5b6000613c6885828601613089565b9250506020613c7985828601613c2e565b9150509250929050565b60008060408385031215613c9a57613c99613036565b5b6000613ca885828601613089565b9250506020613cb985828601613089565b9150509250929050565b600080600080600060a08688031215613cdf57613cde613036565b5b6000613ced88828901613089565b9550506020613cfe88828901613089565b9450506040613d0f888289016130bf565b9350506060613d20888289016130bf565b925050608086013567ffffffffffffffff811115613d4157613d4061303b565b5b613d4d888289016134a7565b9150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613da157607f821691505b602082108103613db457613db3613d5a565b5b50919050565b600081905092915050565b6000613dd082613226565b613dda8185613dba565b9350613dea818560208601613242565b80840191505092915050565b6000613e028285613dc5565b9150613e0e8284613dc5565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f7472616e736665723a20696e76616c6964207a65726f20746f6b656e20494400600082015250565b6000613e7f601f83613231565b9150613e8a82613e49565b602082019050919050565b60006020820190508181036000830152613eae81613e72565b9050919050565b7f7472616e7366657242617463683a20746f6b656e49642067726561746572207460008201527f68616e206973737565722e6c6174657374436572746966696361746549640000602082015250565b6000613f11603e83613231565b9150613f1c82613eb5565b604082019050919050565b60006020820190508181036000830152613f4081613f04565b9050919050565b7f6e6f6e207472616461626c65207265766f6b65642070726f6f66000000000000600082015250565b6000613f7d601a83613231565b9150613f8882613f47565b602082019050919050565b60006020820190508181036000830152613fac81613f70565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613fed8261309e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361401f5761401e613fb3565b5b600182019050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b6000614086602983613231565b91506140918261402a565b604082019050919050565b600060208201905081810360008301526140b581614079565b9050919050565b7f455243313135353a2062617463682062616c616e636520717565727920666f7260008201527f20746865207a65726f2061646472657373000000000000000000000000000000602082015250565b6000614118603183613231565b9150614123826140bc565b604082019050919050565b600060208201905081810360008301526141478161410b565b9050919050565b7f4163636573733a204e6f7420616e206973737565720000000000000000000000600082015250565b6000614184601583613231565b915061418f8261414e565b602082019050919050565b600060208201905081810360008301526141b381614177565b9050919050565b60006141c68284613dc5565b915081905092915050565b7f446973636c6f73653a206461746120616c726561647920646973636c6f736564600082015250565b6000614207602083613231565b9150614212826141d1565b602082019050919050565b60006020820190508181036000830152614236816141fa565b9050919050565b7f446973636c6f7365203a2064617461206e6f7420766572696669656400000000600082015250565b6000614273601c83613231565b915061427e8261423d565b602082019050919050565b600060208201905081810360008301526142a281614266565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261430b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826142ce565b61431586836142ce565b95508019841693508086168417925050509392505050565b6000819050919050565b600061435261434d6143488461309e565b61432d565b61309e565b9050919050565b6000819050919050565b61436c83614337565b61438061437882614359565b8484546142db565b825550505050565b600090565b614395614388565b6143a0818484614363565b505050565b5b818110156143c4576143b960008261438d565b6001810190506143a6565b5050565b601f821115614409576143da816142a9565b6143e3846142be565b810160208510156143f2578190505b6144066143fe856142be565b8301826143a5565b50505b505050565b600082821c905092915050565b600061442c6000198460080261440e565b1980831691505092915050565b6000614445838361441b565b9150826002028217905092915050565b61445e82613226565b67ffffffffffffffff811115614477576144766132dd565b5b6144818254613d89565b61448c8282856143c8565b600060209050601f8311600181146144bf57600084156144ad578287015190505b6144b78582614439565b86555061451f565b601f1984166144cd866142a9565b60005b828110156144f5578489015182556001820191506020850194506020810190506144d0565b86831015614512578489015161450e601f89168261441b565b8355505b6001600288020188555050505b505050505050565b7f69737375616e6365206d757374206265206e6f6e2d7a65726f00000000000000600082015250565b600061455d601983613231565b915061456882614527565b602082019050919050565b6000602082019050818103600083015261458c81614550565b9050919050565b61459c8161388c565b82525050565b60006020820190506145b76000830184614593565b92915050565b7f616d6f756e74203a204e6f742070617274206f66207468697320636f6e73656e60008201527f7375730000000000000000000000000000000000000000000000000000000000602082015250565b6000614619602383613231565b9150614624826145bd565b604082019050919050565b600060208201905081810360008301526146488161460c565b9050919050565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b60006146ab602983613231565b91506146b68261464f565b604082019050919050565b600060208201905081810360008301526146da8161469e565b9050919050565b7f7472616e736665723a20746f6b656e49642067726561746572207468616e206960008201527f73737565722e6c61746573744365727469666963617465496400000000000000602082015250565b600061473d603983613231565b9150614748826146e1565b604082019050919050565b6000602082019050818103600083015261476c81614730565b9050919050565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b60006147cf602b83613231565b91506147da82614773565b604082019050919050565b600060208201905081810360008301526147fe816147c2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061483f8261309e565b915061484a8361309e565b92508261485a57614859614805565b5b828204905092915050565b60006148708261309e565b915061487b8361309e565b925082820390508181111561489357614892613fb3565b5b92915050565b60006148a48261309e565b91506148af8361309e565b9250826148bf576148be614805565b5b828206905092915050565b60006148d58261309e565b91506148e08361309e565b92508282019050808211156148f8576148f7613fb3565b5b92915050565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b600061495a602983613231565b9150614965826148fe565b604082019050919050565b600060208201905081810360008301526149898161494d565b9050919050565b60008151905061499f81613896565b92915050565b6000602082840312156149bb576149ba613036565b5b60006149c984828501614990565b91505092915050565b7f766f6c756d650000000000000000000000000000000000000000000000000000600082015250565b6000614a08600683613dba565b9150614a13826149d2565b600682019050919050565b6000614a29826149fb565b9150614a358284613dc5565b915081905092915050565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a9c602183613231565b9150614aa782614a40565b604082019050919050565b60006020820190508181036000830152614acb81614a8f565b9050919050565b6000604082019050614ae76000830185613114565b614af46020830184613114565b9392505050565b614b0481613060565b82525050565b6000606082019050614b1f6000830186614afb565b614b2c6020830185614593565b614b396040830184613114565b949350505050565b600081519050614b5081613c17565b92915050565b600060208284031215614b6c57614b6b613036565b5b6000614b7a84828501614b41565b91505092915050565b6000604082019050614b986000830185614593565b614ba56020830184614afb565b9392505050565b6000819050919050565b614bc7614bc28261388c565b614bac565b82525050565b6000614bd98285614bb6565b602082019150614be98284614bb6565b6020820191508190509392505050565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614c55602583613231565b9150614c6082614bf9565b604082019050919050565b60006020820190508181036000830152614c8481614c48565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b6000614ce7602883613231565b9150614cf282614c8b565b604082019050919050565b60006020820190508181036000830152614d1681614cda565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636573206660008201527f6f72207472616e73666572000000000000000000000000000000000000000000602082015250565b6000614d79602b83613231565b9150614d8482614d1d565b604082019050919050565b60006020820190508181036000830152614da881614d6c565b9050919050565b60006040820190508181036000830152614dc9818561373f565b90508181036020830152614ddd818461373f565b90509392505050565b600081519050919050565b600082825260208201905092915050565b6000614e0d82614de6565b614e178185614df1565b9350614e27818560208601613242565b614e308161326c565b840191505092915050565b600060a082019050614e506000830188614afb565b614e5d6020830187614afb565b8181036040830152614e6f818661373f565b90508181036060830152614e83818561373f565b90508181036080830152614e978184614e02565b90509695505050505050565b600081519050614eb28161316a565b92915050565b600060208284031215614ece57614ecd613036565b5b6000614edc84828501614ea3565b91505092915050565b60008160e01c9050919050565b600060033d1115614f115760046000803e614f0e600051614ee5565b90505b90565b600060443d10614fa157614f2661302c565b60043d036004823e80513d602482011167ffffffffffffffff82111715614f4e575050614fa1565b808201805167ffffffffffffffff811115614f6c5750505050614fa1565b80602083010160043d038501811115614f89575050505050614fa1565b614f988260200185018661330c565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b6000615000603483613231565b915061500b82614fa4565b604082019050919050565b6000602082019050818103600083015261502f81614ff3565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b6000615092602883613231565b915061509d82615036565b604082019050919050565b600060208201905081810360008301526150c181615085565b9050919050565b7f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e60008201527f6473000000000000000000000000000000000000000000000000000000000000602082015250565b6000615124602283613231565b915061512f826150c8565b604082019050919050565b6000602082019050818103600083015261515381615117565b9050919050565b600060a08201905061516f6000830188614afb565b61517c6020830187614afb565b6151896040830186613114565b6151966060830185613114565b81810360808301526151a88184614e02565b90509695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea264697066735822122021b70bbe28a62c2667742f7bfa5e9ede0dc294c0c76752bc2e53654a89c2375364736f6c63430008100033