0x60806040523480156200001157600080fd5b50601260ff16600a62000025919062000211565b6103e862000034919062000262565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600281905550620002ad565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200011257808604811115620000ea57620000e962000084565b5b6001851615620000fa5780820291505b80810290506200010a85620000b3565b9450620000ca565b94509492505050565b6000826200012d576001905062000200565b816200013d576000905062000200565b8160018114620001565760028114620001615762000197565b600191505062000200565b60ff84111562000176576200017562000084565b5b8360020a91508482111562000190576200018f62000084565b5b5062000200565b5060208310610133831016604e8410600b8410161715620001d15782820a905083811115620001cb57620001ca62000084565b5b62000200565b620001e08484846001620000c0565b92509050818404811115620001fa57620001f962000084565b5b81810290505b9392505050565b6000819050919050565b60006200021e8262000207565b91506200022b8362000207565b92506200025a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200011b565b905092915050565b60006200026f8262000207565b91506200027c8362000207565b92508282026200028c8162000207565b91508282048414831517620002a657620002a562000084565b5b5092915050565b61132a80620002bd6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063313ce56711610066578063313ce5671461013457806370a082311461015257806395d89b4114610182578063a0712d68146101a0578063a9059cbb146101d057610093565b806306fdde0314610098578063095ea7b3146100b657806318160ddd146100e657806323b872dd14610104575b600080fd5b6100a0610200565b6040516100ad9190610bd6565b60405180910390f35b6100d060048036038101906100cb9190610c91565b610239565b6040516100dd9190610cec565b60405180910390f35b6100ee610399565b6040516100fb9190610d16565b60405180910390f35b61011e60048036038101906101199190610d31565b6103ba565b60405161012b9190610cec565b60405180910390f35b61013c610718565b6040516101499190610da0565b60405180910390f35b61016c60048036038101906101679190610dbb565b61071d565b6040516101799190610d16565b60405180910390f35b61018a610765565b6040516101979190610bd6565b60405180910390f35b6101ba60048036038101906101b59190610de8565b61079e565b6040516101c79190610cec565b60405180910390f35b6101ea60048036038101906101e59190610c91565b61093b565b6040516101f79190610cec565b60405180910390f35b6040518060400160405280600381526020017f574147000000000000000000000000000000000000000000000000000000000081525081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036102a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a090610e61565b60405180910390fd5b81600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103879190610d16565b60405180910390a36001905092915050565b601260ff16600a6103aa9190610fe3565b6103e86103b7919061102e565b81565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561043d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610434906110bc565b60405180910390fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156104fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f390611128565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361056b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056290611194565b60405180910390fd5b816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546105b991906111b4565b92505081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461060e91906111e8565b9250508190555081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106a191906111b4565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107059190610d16565b60405180910390a3600190509392505050565b601281565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040518060400160405280600281526020017f574100000000000000000000000000000000000000000000000000000000000081525081565b6000600b826002546107b091906111e8565b11156107f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e890611268565b60405180910390fd5b601260ff16600a6108029190610fe3565b6103e861080f919061102e565b8260025461081d91906111e8565b111561085e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610855906112d4565b60405180910390fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108ac91906111e8565b9250508190555081600260008282546108c591906111e8565b925050819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161092a9190610d16565b60405180910390a360019050919050565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156109be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b5906110bc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2490611194565b60405180910390fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a7b91906111b4565b92505081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ad091906111e8565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b349190610d16565b60405180910390a36001905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b80578082015181840152602081019050610b65565b60008484015250505050565b6000601f19601f8301169050919050565b6000610ba882610b46565b610bb28185610b51565b9350610bc2818560208601610b62565b610bcb81610b8c565b840191505092915050565b60006020820190508181036000830152610bf08184610b9d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610c2882610bfd565b9050919050565b610c3881610c1d565b8114610c4357600080fd5b50565b600081359050610c5581610c2f565b92915050565b6000819050919050565b610c6e81610c5b565b8114610c7957600080fd5b50565b600081359050610c8b81610c65565b92915050565b60008060408385031215610ca857610ca7610bf8565b5b6000610cb685828601610c46565b9250506020610cc785828601610c7c565b9150509250929050565b60008115159050919050565b610ce681610cd1565b82525050565b6000602082019050610d016000830184610cdd565b92915050565b610d1081610c5b565b82525050565b6000602082019050610d2b6000830184610d07565b92915050565b600080600060608486031215610d4a57610d49610bf8565b5b6000610d5886828701610c46565b9350506020610d6986828701610c46565b9250506040610d7a86828701610c7c565b9150509250925092565b600060ff82169050919050565b610d9a81610d84565b82525050565b6000602082019050610db56000830184610d91565b92915050565b600060208284031215610dd157610dd0610bf8565b5b6000610ddf84828501610c46565b91505092915050565b600060208284031215610dfe57610dfd610bf8565b5b6000610e0c84828501610c7c565b91505092915050565b7f496e76616c6964207370656e6465720000000000000000000000000000000000600082015250565b6000610e4b600f83610b51565b9150610e5682610e15565b602082019050919050565b60006020820190508181036000830152610e7a81610e3e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115610f0757808604811115610ee357610ee2610e81565b5b6001851615610ef25780820291505b8081029050610f0085610eb0565b9450610ec7565b94509492505050565b600082610f205760019050610fdc565b81610f2e5760009050610fdc565b8160018114610f445760028114610f4e57610f7d565b6001915050610fdc565b60ff841115610f6057610f5f610e81565b5b8360020a915084821115610f7757610f76610e81565b5b50610fdc565b5060208310610133831016604e8410600b8410161715610fb25782820a905083811115610fad57610fac610e81565b5b610fdc565b610fbf8484846001610ebd565b92509050818404811115610fd657610fd5610e81565b5b81810290505b9392505050565b6000610fee82610c5b565b9150610ff983610c5b565b92506110267fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610f10565b905092915050565b600061103982610c5b565b915061104483610c5b565b925082820261105281610c5b565b9150828204841483151761106957611068610e81565b5b5092915050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b60006110a6601483610b51565b91506110b182611070565b602082019050919050565b600060208201905081810360008301526110d581611099565b9050919050565b7f496e73756666696369656e7420616c6c6f77616e636500000000000000000000600082015250565b6000611112601683610b51565b915061111d826110dc565b602082019050919050565b6000602082019050818103600083015261114181611105565b9050919050565b7f496e76616c696420726563697069656e74000000000000000000000000000000600082015250565b600061117e601183610b51565b915061118982611148565b602082019050919050565b600060208201905081810360008301526111ad81611171565b9050919050565b60006111bf82610c5b565b91506111ca83610c5b565b92508282039050818111156111e2576111e1610e81565b5b92915050565b60006111f382610c5b565b91506111fe83610c5b565b925082820190508082111561121657611215610e81565b5b92915050565b7f45786365656473206d696e74696e67206c696d69740000000000000000000000600082015250565b6000611252601583610b51565b915061125d8261121c565b602082019050919050565b6000602082019050818103600083015261128181611245565b9050919050565b7f4578636565647320746f74616c20737570706c79000000000000000000000000600082015250565b60006112be601483610b51565b91506112c982611288565b602082019050919050565b600060208201905081810360008301526112ed816112b1565b905091905056fea264697066735822122098715fbd04c41ae195f1dd1a4012ef8ecb5e11bb2cfcd97bb549b5693167a2fc64736f6c63430008120033