0x60a06040523480156200001157600080fd5b50620000226200014760201b60201c565b600a620000309190620003b8565b6250df2062000040919062000409565b6040518060400160405280600981526020017f4a454b20546f6b656e00000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4a454b00000000000000000000000000000000000000000000000000000000008152508160039081620000bd9190620006c4565b508060049081620000cf9190620006c4565b5050506000811162000118576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200010f906200080c565b60405180910390fd5b80608081815250505062000141620001356200015060201b60201c565b6200015860201b60201c565b6200082e565b60006012905090565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620002ac578086048111156200028457620002836200021e565b5b6001851615620002945780820291505b8081029050620002a4856200024d565b945062000264565b94509492505050565b600082620002c757600190506200039a565b81620002d757600090506200039a565b8160018114620002f05760028114620002fb5762000331565b60019150506200039a565b60ff84111562000310576200030f6200021e565b5b8360020a9150848211156200032a57620003296200021e565b5b506200039a565b5060208310610133831016604e8410600b84101617156200036b5782820a9050838111156200036557620003646200021e565b5b6200039a565b6200037a84848460016200025a565b925090508184048111156200039457620003936200021e565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620003c582620003a1565b9150620003d283620003ab565b9250620004017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620002b5565b905092915050565b60006200041682620003a1565b91506200042383620003a1565b92508282026200043381620003a1565b915082820484148315176200044d576200044c6200021e565b5b5092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620004d657607f821691505b602082108103620004ec57620004eb6200048e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005567fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000517565b62000562868362000517565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620005a56200059f6200059984620003a1565b6200057a565b620003a1565b9050919050565b6000819050919050565b620005c18362000584565b620005d9620005d082620005ac565b84845462000524565b825550505050565b600090565b620005f0620005e1565b620005fd818484620005b6565b505050565b5b81811015620006255762000619600082620005e6565b60018101905062000603565b5050565b601f82111562000674576200063e81620004f2565b620006498462000507565b8101602085101562000659578190505b62000671620006688562000507565b83018262000602565b50505b505050565b600082821c905092915050565b6000620006996000198460080262000679565b1980831691505092915050565b6000620006b4838362000686565b9150826002028217905092915050565b620006cf8262000454565b67ffffffffffffffff811115620006eb57620006ea6200045f565b5b620006f78254620004bd565b6200070482828562000629565b600060209050601f8311600181146200073c576000841562000727578287015190505b620007338582620006a6565b865550620007a3565b601f1984166200074c86620004f2565b60005b8281101562000776578489015182556001820191506020850194506020810190506200074f565b8683101562000796578489015162000792601f89168262000686565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332304361707065643a2063617020697320300000000000000000000000600082015250565b6000620007f4601583620007ab565b91506200080182620007bc565b602082019050919050565b600060208201905081810360008301526200082781620007e5565b9050919050565b608051611d116200084a60003960006104940152611d116000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806370a08231116100a257806395d89b411161007157806395d89b41146102cf578063a457c2d7146102ed578063a9059cbb1461031d578063dd62ed3e1461034d578063f2fde38b1461037d57610116565b806370a082311461025b578063715018a61461028b57806379cc6790146102955780638da5cb5b146102b157610116565b8063313ce567116100e9578063313ce567146101b7578063355274ea146101d557806339509351146101f357806340c10f191461022357806342966c681461023f57610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd1461016957806323b872dd14610187575b600080fd5b610123610399565b604051610130919061129d565b60405180910390f35b610153600480360381019061014e9190611358565b61042b565b60405161016091906113b3565b60405180910390f35b61017161044e565b60405161017e91906113dd565b60405180910390f35b6101a1600480360381019061019c91906113f8565b610458565b6040516101ae91906113b3565b60405180910390f35b6101bf610487565b6040516101cc9190611467565b60405180910390f35b6101dd610490565b6040516101ea91906113dd565b60405180910390f35b61020d60048036038101906102089190611358565b6104b8565b60405161021a91906113b3565b60405180910390f35b61023d60048036038101906102389190611358565b6104ef565b005b61025960048036038101906102549190611482565b610505565b005b610275600480360381019061027091906114af565b610519565b60405161028291906113dd565b60405180910390f35b610293610561565b005b6102af60048036038101906102aa9190611358565b610575565b005b6102b9610595565b6040516102c691906114eb565b60405180910390f35b6102d76105bf565b6040516102e4919061129d565b60405180910390f35b61030760048036038101906103029190611358565b610651565b60405161031491906113b3565b60405180910390f35b61033760048036038101906103329190611358565b6106c8565b60405161034491906113b3565b60405180910390f35b61036760048036038101906103629190611506565b6106eb565b60405161037491906113dd565b60405180910390f35b610397600480360381019061039291906114af565b610772565b005b6060600380546103a890611575565b80601f01602080910402602001604051908101604052809291908181526020018280546103d490611575565b80156104215780601f106103f657610100808354040283529160200191610421565b820191906000526020600020905b81548152906001019060200180831161040457829003601f168201915b5050505050905090565b6000806104366107f5565b90506104438185856107fd565b600191505092915050565b6000600254905090565b6000806104636107f5565b90506104708582856109c6565b61047b858585610a52565b60019150509392505050565b60006012905090565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806104c36107f5565b90506104e48185856104d585896106eb565b6104df91906115d5565b6107fd565b600191505092915050565b6104f7610cc8565b6105018282610d46565b5050565b6105166105106107f5565b82610db0565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610569610cc8565b6105736000610f7d565b565b610587826105816107f5565b836109c6565b6105918282610db0565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546105ce90611575565b80601f01602080910402602001604051908101604052809291908181526020018280546105fa90611575565b80156106475780601f1061061c57610100808354040283529160200191610647565b820191906000526020600020905b81548152906001019060200180831161062a57829003601f168201915b5050505050905090565b60008061065c6107f5565b9050600061066a82866106eb565b9050838110156106af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a69061167b565b60405180910390fd5b6106bc82868684036107fd565b60019250505092915050565b6000806106d36107f5565b90506106e0818585610a52565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61077a610cc8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e09061170d565b60405180910390fd5b6107f281610f7d565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361086c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108639061179f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d290611831565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516109b991906113dd565b60405180910390a3505050565b60006109d284846106eb565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610a4c5781811015610a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a359061189d565b60405180910390fd5b610a4b84848484036107fd565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab89061192f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b27906119c1565b60405180910390fd5b610b3b838383611043565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610bc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb890611a53565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610caf91906113dd565b60405180910390a3610cc2848484611048565b50505050565b610cd06107f5565b73ffffffffffffffffffffffffffffffffffffffff16610cee610595565b73ffffffffffffffffffffffffffffffffffffffff1614610d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3b90611abf565b60405180910390fd5b565b610d4e610490565b81610d5761044e565b610d6191906115d5565b1115610da2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9990611b2b565b60405180910390fd5b610dac828261104d565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1690611bbd565b60405180910390fd5b610e2b82600083611043565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea890611c4f565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f6491906113dd565b60405180910390a3610f7883600084611048565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b611055610490565b8161105e61044e565b61106891906115d5565b11156110a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a090611b2b565b60405180910390fd5b6110b382826110b7565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611126576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111d90611cbb565b60405180910390fd5b61113260008383611043565b806002600082825461114491906115d5565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111f591906113dd565b60405180910390a361120960008383611048565b5050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561124757808201518184015260208101905061122c565b60008484015250505050565b6000601f19601f8301169050919050565b600061126f8261120d565b6112798185611218565b9350611289818560208601611229565b61129281611253565b840191505092915050565b600060208201905081810360008301526112b78184611264565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006112ef826112c4565b9050919050565b6112ff816112e4565b811461130a57600080fd5b50565b60008135905061131c816112f6565b92915050565b6000819050919050565b61133581611322565b811461134057600080fd5b50565b6000813590506113528161132c565b92915050565b6000806040838503121561136f5761136e6112bf565b5b600061137d8582860161130d565b925050602061138e85828601611343565b9150509250929050565b60008115159050919050565b6113ad81611398565b82525050565b60006020820190506113c860008301846113a4565b92915050565b6113d781611322565b82525050565b60006020820190506113f260008301846113ce565b92915050565b600080600060608486031215611411576114106112bf565b5b600061141f8682870161130d565b93505060206114308682870161130d565b925050604061144186828701611343565b9150509250925092565b600060ff82169050919050565b6114618161144b565b82525050565b600060208201905061147c6000830184611458565b92915050565b600060208284031215611498576114976112bf565b5b60006114a684828501611343565b91505092915050565b6000602082840312156114c5576114c46112bf565b5b60006114d38482850161130d565b91505092915050565b6114e5816112e4565b82525050565b600060208201905061150060008301846114dc565b92915050565b6000806040838503121561151d5761151c6112bf565b5b600061152b8582860161130d565b925050602061153c8582860161130d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061158d57607f821691505b6020821081036115a05761159f611546565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115e082611322565b91506115eb83611322565b9250828201905080821115611603576116026115a6565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611665602583611218565b915061167082611609565b604082019050919050565b6000602082019050818103600083015261169481611658565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006116f7602683611218565b91506117028261169b565b604082019050919050565b60006020820190508181036000830152611726816116ea565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611789602483611218565b91506117948261172d565b604082019050919050565b600060208201905081810360008301526117b88161177c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061181b602283611218565b9150611826826117bf565b604082019050919050565b6000602082019050818103600083015261184a8161180e565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611887601d83611218565b915061189282611851565b602082019050919050565b600060208201905081810360008301526118b68161187a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611919602583611218565b9150611924826118bd565b604082019050919050565b600060208201905081810360008301526119488161190c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006119ab602383611218565b91506119b68261194f565b604082019050919050565b600060208201905081810360008301526119da8161199e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611a3d602683611218565b9150611a48826119e1565b604082019050919050565b60006020820190508181036000830152611a6c81611a30565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611aa9602083611218565b9150611ab482611a73565b602082019050919050565b60006020820190508181036000830152611ad881611a9c565b9050919050565b7f45524332304361707065643a2063617020657863656564656400000000000000600082015250565b6000611b15601983611218565b9150611b2082611adf565b602082019050919050565b60006020820190508181036000830152611b4481611b08565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ba7602183611218565b9150611bb282611b4b565b604082019050919050565b60006020820190508181036000830152611bd681611b9a565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611c39602283611218565b9150611c4482611bdd565b604082019050919050565b60006020820190508181036000830152611c6881611c2c565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000611ca5601f83611218565b9150611cb082611c6f565b602082019050919050565b60006020820190508181036000830152611cd481611c98565b905091905056fea26469706673582212200512bc9a267a5dadc6644aae865ef5a9388e59cc9f05206a966cb8bac467486764736f6c63430008120033