0x60a06040523480156200001157600080fd5b5060405162001dd238038062001dd2833981810160405281019062000037919062000201565b620000576200004b6200009260201b60201c565b6200009a60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250505062000233565b600033905090565b600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055620000d081620000d360201b60201c565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001c9826200019c565b9050919050565b620001db81620001bc565b8114620001e757600080fd5b50565b600081519050620001fb81620001d0565b92915050565b6000602082840312156200021a576200021962000197565b5b60006200022a84828501620001ea565b91505092915050565b608051611b7c6200025660003960008181610461015261095e0152611b7c6000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063daf49ccd1161008c578063e8ec9a7611610066578063e8ec9a76146101ca578063f2fde38b146101e6578063f4ad533a14610202578063fc0c546a1461021e576100cf565b8063daf49ccd14610170578063e06f3d381461018e578063e30c3978146101ac576100cf565b806330be79be146100d4578063715018a6146100f057806379ba5097146100fa5780637ecebe00146101045780638da5cb5b14610134578063d876e28514610152575b600080fd5b6100ee60048036038101906100e99190611169565b61023c565b005b6100f86104fd565b005b610102610511565b005b61011e60048036038101906101199190611242565b61059e565b60405161012b919061127e565b60405180910390f35b61013c6105b6565b60405161014991906112a8565b60405180910390f35b61015a6105df565b60405161016791906112d2565b60405180910390f35b6101786105e5565b60405161018591906112d2565b60405180910390f35b6101966105eb565b6040516101a391906112a8565b60405180910390f35b6101b4610611565b6040516101c191906112a8565b60405180910390f35b6101e460048036038101906101df91906112ed565b61063b565b005b61020060048036038101906101fb9190611242565b6106ad565b005b61021c60048036038101906102179190611169565b61075a565b005b61022661095c565b60405161023391906112a8565b60405180910390f35b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484146102bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b49061138a565b60405180910390fd5b60006102c76105b6565b3387600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610319906113d9565b919050556040516020016103309493929190611421565b604051602081830303815290604052805190602001209050600061035382610980565b9050600061036e868686856109b6909392919063ffffffff16565b90506103786105b6565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146103e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103dc906114b2565b60405180910390fd5b6103ed6105b6565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461045a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610451906114b2565b60405180910390fd5b6104a533897f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166109e19092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5896040516104eb919061127e565b60405180910390a25050505050505050565b610505610a67565b61050f6000610ae5565b565b600061051b610b16565b90508073ffffffffffffffffffffffffffffffffffffffff1661053c610611565b73ffffffffffffffffffffffffffffffffffffffff1614610592576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058990611544565b60405180910390fd5b61059b81610ae5565b50565b60026020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b60045481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146106a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a0906115b0565b60405180910390fd5b5050565b6106b5610a67565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff166107156105b6565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484146107db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d29061138a565b60405180910390fd5b60006107e56105b6565b3387600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610837906113d9565b9190505560405160200161084e9493929190611421565b60405160208183030381529060405280519060200120905080600381905550600061087882610980565b905080600481905550600061089a868686856109b6909392919063ffffffff16565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506108e56105b6565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610952576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610949906114b2565b60405180910390fd5b5050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f19457468657265756d205369676e6564204d6573736167653a0a33320000000060005281601c52603c6000209050919050565b60008060006109c787878787610b1e565b915091506109d481610c00565b8192505050949350505050565b610a628363a9059cbb60e01b8484604051602401610a009291906115d0565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610d66565b505050565b610a6f610b16565b73ffffffffffffffffffffffffffffffffffffffff16610a8d6105b6565b73ffffffffffffffffffffffffffffffffffffffff1614610ae3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ada90611645565b60405180910390fd5b565b600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055610b1381610e2e565b50565b600033905090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c1115610b59576000600391509150610bf7565b600060018787878760405160008152602001604052604051610b7e9493929190611674565b6020604051602081039080840390855afa158015610ba0573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bee57600060019250925050610bf7565b80600092509250505b94509492505050565b60006004811115610c1457610c136116b9565b5b816004811115610c2757610c266116b9565b5b0315610d635760016004811115610c4157610c406116b9565b5b816004811115610c5457610c536116b9565b5b03610c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8b90611734565b60405180910390fd5b60026004811115610ca857610ca76116b9565b5b816004811115610cbb57610cba6116b9565b5b03610cfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf2906117a0565b60405180910390fd5b60036004811115610d0f57610d0e6116b9565b5b816004811115610d2257610d216116b9565b5b03610d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5990611832565b60405180910390fd5b5b50565b6000610dc8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610ef29092919063ffffffff16565b9050600081511480610dea575080806020019051810190610de9919061188a565b5b610e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2090611929565b60405180910390fd5b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6060610f018484600085610f0a565b90509392505050565b606082471015610f4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f46906119bb565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051610f789190611a4c565b60006040518083038185875af1925050503d8060008114610fb5576040519150601f19603f3d011682016040523d82523d6000602084013e610fba565b606091505b5091509150610fcb87838387610fd7565b92505050949350505050565b6060831561103957600083510361103157610ff18561104c565b611030576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102790611aaf565b60405180910390fd5b5b829050611044565b611043838361106f565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156110825781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b69190611b24565b60405180910390fd5b600080fd5b6000819050919050565b6110d7816110c4565b81146110e257600080fd5b50565b6000813590506110f4816110ce565b92915050565b600060ff82169050919050565b611110816110fa565b811461111b57600080fd5b50565b60008135905061112d81611107565b92915050565b6000819050919050565b61114681611133565b811461115157600080fd5b50565b6000813590506111638161113d565b92915050565b600080600080600060a08688031215611185576111846110bf565b5b6000611193888289016110e5565b95505060206111a4888289016110e5565b94505060406111b58882890161111e565b93505060606111c688828901611154565b92505060806111d788828901611154565b9150509295509295909350565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061120f826111e4565b9050919050565b61121f81611204565b811461122a57600080fd5b50565b60008135905061123c81611216565b92915050565b600060208284031215611258576112576110bf565b5b60006112668482850161122d565b91505092915050565b611278816110c4565b82525050565b6000602082019050611293600083018461126f565b92915050565b6112a281611204565b82525050565b60006020820190506112bd6000830184611299565b92915050565b6112cc81611133565b82525050565b60006020820190506112e760008301846112c3565b92915050565b60008060408385031215611304576113036110bf565b5b60006113128582860161122d565b92505060206113238582860161122d565b9150509250929050565b600082825260208201905092915050565b7f496e76616c6964206e6f6e636500000000000000000000000000000000000000600082015250565b6000611374600d8361132d565b915061137f8261133e565b602082019050919050565b600060208201905081810360008301526113a381611367565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006113e4826110c4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611416576114156113aa565b5b600182019050919050565b60006080820190506114366000830187611299565b6114436020830186611299565b611450604083018561126f565b61145d606083018461126f565b95945050505050565b7f4e6f742076616c6964206f776e65720000000000000000000000000000000000600082015250565b600061149c600f8361132d565b91506114a782611466565b602082019050919050565b600060208201905081810360008301526114cb8161148f565b9050919050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b600061152e60298361132d565b9150611539826114d2565b604082019050919050565b6000602082019050818103600083015261155d81611521565b9050919050565b7f213d000000000000000000000000000000000000000000000000000000000000600082015250565b600061159a60028361132d565b91506115a582611564565b602082019050919050565b600060208201905081810360008301526115c98161158d565b9050919050565b60006040820190506115e56000830185611299565b6115f2602083018461126f565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061162f60208361132d565b915061163a826115f9565b602082019050919050565b6000602082019050818103600083015261165e81611622565b9050919050565b61166e816110fa565b82525050565b600060808201905061168960008301876112c3565b6116966020830186611665565b6116a360408301856112c3565b6116b060608301846112c3565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b600061171e60188361132d565b9150611729826116e8565b602082019050919050565b6000602082019050818103600083015261174d81611711565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b600061178a601f8361132d565b915061179582611754565b602082019050919050565b600060208201905081810360008301526117b98161177d565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b600061181c60228361132d565b9150611827826117c0565b604082019050919050565b6000602082019050818103600083015261184b8161180f565b9050919050565b60008115159050919050565b61186781611852565b811461187257600080fd5b50565b6000815190506118848161185e565b92915050565b6000602082840312156118a05761189f6110bf565b5b60006118ae84828501611875565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000611913602a8361132d565b915061191e826118b7565b604082019050919050565b6000602082019050818103600083015261194281611906565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006119a560268361132d565b91506119b082611949565b604082019050919050565b600060208201905081810360008301526119d481611998565b9050919050565b600081519050919050565b600081905092915050565b60005b83811015611a0f5780820151818401526020810190506119f4565b60008484015250505050565b6000611a26826119db565b611a3081856119e6565b9350611a408185602086016119f1565b80840191505092915050565b6000611a588284611a1b565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000611a99601d8361132d565b9150611aa482611a63565b602082019050919050565b60006020820190508181036000830152611ac881611a8c565b9050919050565b600081519050919050565b6000601f19601f8301169050919050565b6000611af682611acf565b611b00818561132d565b9350611b108185602086016119f1565b611b1981611ada565b840191505092915050565b60006020820190508181036000830152611b3e8184611aeb565b90509291505056fea26469706673582212200cf34098db7eacacf3f4065284bb3d0420cc8e157f794fe836a46cbf1c9d481b64736f6c634300081300330000000000000000000000007d856c2d91a0f2c20e79028b1c4895037218fee5