0x6080604052600436106100eb575f3560e01c8063715018a611610089578063a9059cbb11610058578063a9059cbb146102d2578063cc1776d31461030e578063dd62ed3e14610338578063f2fde38b14610374576100f2565b8063715018a6146102525780638a8c523c146102685780638da5cb5b1461027e57806395d89b41146102a8576100f2565b806323b872dd116100c557806323b872dd14610186578063313ce567146101c25780634f7041a5146101ec57806370a0823114610216576100f2565b806306fdde03146100f6578063095ea7b31461012057806318160ddd1461015c576100f2565b366100f257005b5f5ffd5b348015610101575f5ffd5b5061010a61039c565b604051610117919061147f565b60405180910390f35b34801561012b575f5ffd5b5061014660048036038101906101419190611530565b6103d9565b6040516101539190611588565b60405180910390f35b348015610167575f5ffd5b506101706103f6565b60405161017d91906115b0565b60405180910390f35b348015610191575f5ffd5b506101ac60048036038101906101a791906115c9565b610419565b6040516101b99190611588565b60405180910390f35b3480156101cd575f5ffd5b506101d66104cc565b6040516101e39190611634565b60405180910390f35b3480156101f7575f5ffd5b506102006104d4565b60405161020d9190611634565b60405180910390f35b348015610221575f5ffd5b5061023c6004803603810190610237919061164d565b6104e7565b60405161024991906115b0565b60405180910390f35b34801561025d575f5ffd5b5061026661052d565b005b348015610273575f5ffd5b5061027c61067d565b005b348015610289575f5ffd5b50610292610962565b60405161029f9190611687565b60405180910390f35b3480156102b3575f5ffd5b506102bc610989565b6040516102c9919061147f565b60405180910390f35b3480156102dd575f5ffd5b506102f860048036038101906102f39190611530565b6109c6565b6040516103059190611588565b60405180910390f35b348015610319575f5ffd5b506103226109e3565b60405161032f9190611634565b60405180910390f35b348015610343575f5ffd5b5061035e600480360381019061035991906116a0565b6109f4565b60405161036b91906115b0565b60405180910390f35b34801561037f575f5ffd5b5061039a6004803603810190610395919061164d565b610a76565b005b60606040518060400160405280601281526020017f696e66696e697465206261636b726f6f6d730000000000000000000000000000815250905090565b5f6103ec6103e5610b4d565b8484610b54565b6001905092915050565b5f6012600a610405919061183a565b633b9aca006104149190611884565b905090565b5f610425848484610d17565b6104c184610431610b4d565b8460025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610478610b4d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546104bc91906118c5565b610b54565b600190509392505050565b5f6012905090565b600360029054906101000a900460ff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610535610b4d565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b990611942565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610685610b4d565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070990611942565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107dd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108019190611974565b73ffffffffffffffffffffffffffffffffffffffff1663e6a439053060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610887573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ab9190611974565b6040518363ffffffff1660e01b81526004016108c892919061199f565b602060405180830381865afa1580156108e3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109079190611974565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160035f6101000a81548160ff021916908315150217905550565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f4942000000000000000000000000000000000000000000000000000000000000815250905090565b5f6109d96109d2610b4d565b8484610d17565b6001905092915050565b60038054906101000a900460ff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610a7e610b4d565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0290611942565b60405180910390fd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb990611a36565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2790611ac4565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d0a91906115b0565b60405180910390a3505050565b5f8111610d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5090611b2c565b60405180910390fd5b60035f9054906101000a900460ff16610dfc5760095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610dfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df290611b94565b60405180910390fd5b5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610e6157503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80610e785750600360019054906101000a900460ff165b15610e8d57610e88838383610fb4565b610faf565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015610ef35750600454610ef0306104e7565b10155b15610f47576001600360016101000a81548160ff021916908315150217905550610f24610f1f306104e7565b6110c4565b5f600360016101000a81548160ff021916908315150217905550610f46611321565b5b610fa1838260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611391565b9050610fae838383610fb4565b5b505050565b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461100091906118c5565b925050819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110539190611bb2565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110b791906115b0565b60405180910390a3505050565b5f600267ffffffffffffffff8111156110e0576110df611be5565b5b60405190808252806020026020018201604052801561110e5781602001602082028036833780820191505090505b50905030815f8151811061112557611124611c12565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111c9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ed9190611974565b8160018151811061120157611200611c12565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506112673060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610b54565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016112ea959493929190611d8a565b5f604051808303815f87803b158015611301575f5ffd5b505af1925050508015611312575060015b61131c575061131e565b505b50565b5f47111561138f5760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561138d573d5f5f3e3d5ffd5b505b565b5f5f826113ad57600360029054906101000a900460ff166113bc565b60038054906101000a900460ff165b60ff1690505f81036113d15783915050611408565b5f606482866113e09190611884565b6113ea9190611e0f565b90506113f7863083610fb4565b808561140391906118c5565b925050505b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6114518261140f565b61145b8185611419565b935061146b818560208601611429565b61147481611437565b840191505092915050565b5f6020820190508181035f8301526114978184611447565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6114cc826114a3565b9050919050565b6114dc816114c2565b81146114e6575f5ffd5b50565b5f813590506114f7816114d3565b92915050565b5f819050919050565b61150f816114fd565b8114611519575f5ffd5b50565b5f8135905061152a81611506565b92915050565b5f5f604083850312156115465761154561149f565b5b5f611553858286016114e9565b92505060206115648582860161151c565b9150509250929050565b5f8115159050919050565b6115828161156e565b82525050565b5f60208201905061159b5f830184611579565b92915050565b6115aa816114fd565b82525050565b5f6020820190506115c35f8301846115a1565b92915050565b5f5f5f606084860312156115e0576115df61149f565b5b5f6115ed868287016114e9565b93505060206115fe868287016114e9565b925050604061160f8682870161151c565b9150509250925092565b5f60ff82169050919050565b61162e81611619565b82525050565b5f6020820190506116475f830184611625565b92915050565b5f602082840312156116625761166161149f565b5b5f61166f848285016114e9565b91505092915050565b611681816114c2565b82525050565b5f60208201905061169a5f830184611678565b92915050565b5f5f604083850312156116b6576116b561149f565b5b5f6116c3858286016114e9565b92505060206116d4858286016114e9565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b60018511156117605780860481111561173c5761173b6116de565b5b600185161561174b5780820291505b80810290506117598561170b565b9450611720565b94509492505050565b5f826117785760019050611833565b81611785575f9050611833565b816001811461179b57600281146117a5576117d4565b6001915050611833565b60ff8411156117b7576117b66116de565b5b8360020a9150848211156117ce576117cd6116de565b5b50611833565b5060208310610133831016604e8410600b84101617156118095782820a905083811115611804576118036116de565b5b611833565b6118168484846001611717565b9250905081840481111561182d5761182c6116de565b5b81810290505b9392505050565b5f611844826114fd565b915061184f83611619565b925061187c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611769565b905092915050565b5f61188e826114fd565b9150611899836114fd565b92508282026118a7816114fd565b915082820484148315176118be576118bd6116de565b5b5092915050565b5f6118cf826114fd565b91506118da836114fd565b92508282039050818111156118f2576118f16116de565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61192c602083611419565b9150611937826118f8565b602082019050919050565b5f6020820190508181035f83015261195981611920565b9050919050565b5f8151905061196e816114d3565b92915050565b5f602082840312156119895761198861149f565b5b5f61199684828501611960565b91505092915050565b5f6040820190506119b25f830185611678565b6119bf6020830184611678565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611a20602483611419565b9150611a2b826119c6565b604082019050919050565b5f6020820190508181035f830152611a4d81611a14565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611aae602283611419565b9150611ab982611a54565b604082019050919050565b5f6020820190508181035f830152611adb81611aa2565b9050919050565b7f5a65726f20616d6f756e740000000000000000000000000000000000000000005f82015250565b5f611b16600b83611419565b9150611b2182611ae2565b602082019050919050565b5f6020820190508181035f830152611b4381611b0a565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f611b7e601383611419565b9150611b8982611b4a565b602082019050919050565b5f6020820190508181035f830152611bab81611b72565b9050919050565b5f611bbc826114fd565b9150611bc7836114fd565b9250828201905080821115611bdf57611bde6116de565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f611c6b611c66611c6184611c3f565b611c48565b6114fd565b9050919050565b611c7b81611c51565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611cb3816114c2565b82525050565b5f611cc48383611caa565b60208301905092915050565b5f602082019050919050565b5f611ce682611c81565b611cf08185611c8b565b9350611cfb83611c9b565b805f5b83811015611d2b578151611d128882611cb9565b9750611d1d83611cd0565b925050600181019050611cfe565b5085935050505092915050565b5f611d52611d4d611d48846114a3565b611c48565b6114a3565b9050919050565b5f611d6382611d38565b9050919050565b5f611d7482611d59565b9050919050565b611d8481611d6a565b82525050565b5f60a082019050611d9d5f8301886115a1565b611daa6020830187611c72565b8181036040830152611dbc8186611cdc565b9050611dcb6060830185611d7b565b611dd860808301846115a1565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611e19826114fd565b9150611e24836114fd565b925082611e3457611e33611de2565b5b82820490509291505056fea26469706673582212209beb5b4d907600be6e7ac1ab249e0690da56994ddeb79cbecf419581db6ebcb964736f6c634300081c0033
0x60806040525f600360026101000a81548160ff021916908360ff1602179055505f6003806101000a81548160ff021916908360ff16021790555061271060196012600a61004c919061055a565b633b9aca0061005b91906105a4565b61006591906105a4565b61006f9190610612565b600455737a250d5630b4cf539739df2c5dacb4c659f2488d60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507332749d745a41aa71ecfa120e11feef7a0d6abbb660095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015610125575f5ffd5b505f6101356103c760201b60201c565b9050805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506012600a6101df919061055a565b633b9aca006101ee91906105a4565b60015f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60015f6102e36103ce60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a61039e919061055a565b633b9aca006103ad91906105a4565b6040516103ba9190610651565b60405180910390a361066a565b5f33905090565b5f73d1030bb1a94ab369ea7fa39d9467efbeccb406f0905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b600185111561046b57808604811115610447576104466103e9565b5b60018516156104565780820291505b808102905061046485610416565b945061042b565b94509492505050565b5f82610483576001905061053e565b81610490575f905061053e565b81600181146104a657600281146104b0576104df565b600191505061053e565b60ff8411156104c2576104c16103e9565b5b8360020a9150848211156104d9576104d86103e9565b5b5061053e565b5060208310610133831016604e8410600b84101617156105145782820a90508381111561050f5761050e6103e9565b5b61053e565b6105218484846001610422565b92509050818404811115610538576105376103e9565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61056482610545565b915061056f8361054e565b925061059c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610474565b905092915050565b5f6105ae82610545565b91506105b983610545565b92508282026105c781610545565b915082820484148315176105de576105dd6103e9565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61061c82610545565b915061062783610545565b925082610637576106366105e5565b5b828204905092915050565b61064b81610545565b82525050565b5f6020820190506106645f830184610642565b92915050565b611e75806106775f395ff3fe6080604052600436106100eb575f3560e01c8063715018a611610089578063a9059cbb11610058578063a9059cbb146102d2578063cc1776d31461030e578063dd62ed3e14610338578063f2fde38b14610374576100f2565b8063715018a6146102525780638a8c523c146102685780638da5cb5b1461027e57806395d89b41146102a8576100f2565b806323b872dd116100c557806323b872dd14610186578063313ce567146101c25780634f7041a5146101ec57806370a0823114610216576100f2565b806306fdde03146100f6578063095ea7b31461012057806318160ddd1461015c576100f2565b366100f257005b5f5ffd5b348015610101575f5ffd5b5061010a61039c565b604051610117919061147f565b60405180910390f35b34801561012b575f5ffd5b5061014660048036038101906101419190611530565b6103d9565b6040516101539190611588565b60405180910390f35b348015610167575f5ffd5b506101706103f6565b60405161017d91906115b0565b60405180910390f35b348015610191575f5ffd5b506101ac60048036038101906101a791906115c9565b610419565b6040516101b99190611588565b60405180910390f35b3480156101cd575f5ffd5b506101d66104cc565b6040516101e39190611634565b60405180910390f35b3480156101f7575f5ffd5b506102006104d4565b60405161020d9190611634565b60405180910390f35b348015610221575f5ffd5b5061023c6004803603810190610237919061164d565b6104e7565b60405161024991906115b0565b60405180910390f35b34801561025d575f5ffd5b5061026661052d565b005b348015610273575f5ffd5b5061027c61067d565b005b348015610289575f5ffd5b50610292610962565b60405161029f9190611687565b60405180910390f35b3480156102b3575f5ffd5b506102bc610989565b6040516102c9919061147f565b60405180910390f35b3480156102dd575f5ffd5b506102f860048036038101906102f39190611530565b6109c6565b6040516103059190611588565b60405180910390f35b348015610319575f5ffd5b506103226109e3565b60405161032f9190611634565b60405180910390f35b348015610343575f5ffd5b5061035e600480360381019061035991906116a0565b6109f4565b60405161036b91906115b0565b60405180910390f35b34801561037f575f5ffd5b5061039a6004803603810190610395919061164d565b610a76565b005b60606040518060400160405280601281526020017f696e66696e697465206261636b726f6f6d730000000000000000000000000000815250905090565b5f6103ec6103e5610b4d565b8484610b54565b6001905092915050565b5f6012600a610405919061183a565b633b9aca006104149190611884565b905090565b5f610425848484610d17565b6104c184610431610b4d565b8460025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610478610b4d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546104bc91906118c5565b610b54565b600190509392505050565b5f6012905090565b600360029054906101000a900460ff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610535610b4d565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b990611942565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610685610b4d565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070990611942565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107dd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108019190611974565b73ffffffffffffffffffffffffffffffffffffffff1663e6a439053060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610887573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ab9190611974565b6040518363ffffffff1660e01b81526004016108c892919061199f565b602060405180830381865afa1580156108e3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109079190611974565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160035f6101000a81548160ff021916908315150217905550565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f4942000000000000000000000000000000000000000000000000000000000000815250905090565b5f6109d96109d2610b4d565b8484610d17565b6001905092915050565b60038054906101000a900460ff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610a7e610b4d565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0290611942565b60405180910390fd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb990611a36565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2790611ac4565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d0a91906115b0565b60405180910390a3505050565b5f8111610d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5090611b2c565b60405180910390fd5b60035f9054906101000a900460ff16610dfc5760095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610dfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df290611b94565b60405180910390fd5b5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610e6157503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80610e785750600360019054906101000a900460ff165b15610e8d57610e88838383610fb4565b610faf565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015610ef35750600454610ef0306104e7565b10155b15610f47576001600360016101000a81548160ff021916908315150217905550610f24610f1f306104e7565b6110c4565b5f600360016101000a81548160ff021916908315150217905550610f46611321565b5b610fa1838260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611391565b9050610fae838383610fb4565b5b505050565b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461100091906118c5565b925050819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110539190611bb2565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110b791906115b0565b60405180910390a3505050565b5f600267ffffffffffffffff8111156110e0576110df611be5565b5b60405190808252806020026020018201604052801561110e5781602001602082028036833780820191505090505b50905030815f8151811061112557611124611c12565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111c9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ed9190611974565b8160018151811061120157611200611c12565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506112673060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610b54565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016112ea959493929190611d8a565b5f604051808303815f87803b158015611301575f5ffd5b505af1925050508015611312575060015b61131c575061131e565b505b50565b5f47111561138f5760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561138d573d5f5f3e3d5ffd5b505b565b5f5f826113ad57600360029054906101000a900460ff166113bc565b60038054906101000a900460ff165b60ff1690505f81036113d15783915050611408565b5f606482866113e09190611884565b6113ea9190611e0f565b90506113f7863083610fb4565b808561140391906118c5565b925050505b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6114518261140f565b61145b8185611419565b935061146b818560208601611429565b61147481611437565b840191505092915050565b5f6020820190508181035f8301526114978184611447565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6114cc826114a3565b9050919050565b6114dc816114c2565b81146114e6575f5ffd5b50565b5f813590506114f7816114d3565b92915050565b5f819050919050565b61150f816114fd565b8114611519575f5ffd5b50565b5f8135905061152a81611506565b92915050565b5f5f604083850312156115465761154561149f565b5b5f611553858286016114e9565b92505060206115648582860161151c565b9150509250929050565b5f8115159050919050565b6115828161156e565b82525050565b5f60208201905061159b5f830184611579565b92915050565b6115aa816114fd565b82525050565b5f6020820190506115c35f8301846115a1565b92915050565b5f5f5f606084860312156115e0576115df61149f565b5b5f6115ed868287016114e9565b93505060206115fe868287016114e9565b925050604061160f8682870161151c565b9150509250925092565b5f60ff82169050919050565b61162e81611619565b82525050565b5f6020820190506116475f830184611625565b92915050565b5f602082840312156116625761166161149f565b5b5f61166f848285016114e9565b91505092915050565b611681816114c2565b82525050565b5f60208201905061169a5f830184611678565b92915050565b5f5f604083850312156116b6576116b561149f565b5b5f6116c3858286016114e9565b92505060206116d4858286016114e9565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b60018511156117605780860481111561173c5761173b6116de565b5b600185161561174b5780820291505b80810290506117598561170b565b9450611720565b94509492505050565b5f826117785760019050611833565b81611785575f9050611833565b816001811461179b57600281146117a5576117d4565b6001915050611833565b60ff8411156117b7576117b66116de565b5b8360020a9150848211156117ce576117cd6116de565b5b50611833565b5060208310610133831016604e8410600b84101617156118095782820a905083811115611804576118036116de565b5b611833565b6118168484846001611717565b9250905081840481111561182d5761182c6116de565b5b81810290505b9392505050565b5f611844826114fd565b915061184f83611619565b925061187c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611769565b905092915050565b5f61188e826114fd565b9150611899836114fd565b92508282026118a7816114fd565b915082820484148315176118be576118bd6116de565b5b5092915050565b5f6118cf826114fd565b91506118da836114fd565b92508282039050818111156118f2576118f16116de565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61192c602083611419565b9150611937826118f8565b602082019050919050565b5f6020820190508181035f83015261195981611920565b9050919050565b5f8151905061196e816114d3565b92915050565b5f602082840312156119895761198861149f565b5b5f61199684828501611960565b91505092915050565b5f6040820190506119b25f830185611678565b6119bf6020830184611678565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611a20602483611419565b9150611a2b826119c6565b604082019050919050565b5f6020820190508181035f830152611a4d81611a14565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611aae602283611419565b9150611ab982611a54565b604082019050919050565b5f6020820190508181035f830152611adb81611aa2565b9050919050565b7f5a65726f20616d6f756e740000000000000000000000000000000000000000005f82015250565b5f611b16600b83611419565b9150611b2182611ae2565b602082019050919050565b5f6020820190508181035f830152611b4381611b0a565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f611b7e601383611419565b9150611b8982611b4a565b602082019050919050565b5f6020820190508181035f830152611bab81611b72565b9050919050565b5f611bbc826114fd565b9150611bc7836114fd565b9250828201905080821115611bdf57611bde6116de565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f611c6b611c66611c6184611c3f565b611c48565b6114fd565b9050919050565b611c7b81611c51565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611cb3816114c2565b82525050565b5f611cc48383611caa565b60208301905092915050565b5f602082019050919050565b5f611ce682611c81565b611cf08185611c8b565b9350611cfb83611c9b565b805f5b83811015611d2b578151611d128882611cb9565b9750611d1d83611cd0565b925050600181019050611cfe565b5085935050505092915050565b5f611d52611d4d611d48846114a3565b611c48565b6114a3565b9050919050565b5f611d6382611d38565b9050919050565b5f611d7482611d59565b9050919050565b611d8481611d6a565b82525050565b5f60a082019050611d9d5f8301886115a1565b611daa6020830187611c72565b8181036040830152611dbc8186611cdc565b9050611dcb6060830185611d7b565b611dd860808301846115a1565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611e19826114fd565b9150611e24836114fd565b925082611e3457611e33611de2565b5b82820490509291505056fea26469706673582212209beb5b4d907600be6e7ac1ab249e0690da56994ddeb79cbecf419581db6ebcb964736f6c634300081c0033