0x608060405234801561000f575f80fd5b5060043610610109575f3560e01c80638da5cb5b116100a0578063cc1776d31161006f578063cc1776d3146102a9578063cce7ec13146102c7578063d01dd6d2146102f7578063dd62ed3e14610313578063ef8fe4f61461034357610109565b80638da5cb5b1461021f5780638ea5220f1461023d57806395d89b411461025b578063a9059cbb1461027957610109565b8063313ce567116100dc578063313ce567146101a95780634f7041a5146101c757806370a08231146101e5578063715018a61461021557610109565b806306fdde031461010d578063095ea7b31461012b57806318160ddd1461015b57806323b872dd14610179575b5f80fd5b61011561035f565b6040516101229190611417565b60405180910390f35b610145600480360381019061014091906114c8565b6103ea565b6040516101529190611520565b60405180910390f35b6101636104d7565b6040516101709190611548565b60405180910390f35b610193600480360381019061018e9190611561565b6104dd565b6040516101a09190611520565b60405180910390f35b6101b16106b7565b6040516101be91906115cc565b60405180910390f35b6101cf6106c9565b6040516101dc9190611548565b60405180910390f35b6101ff60048036038101906101fa91906115e5565b6106cf565b60405161020c9190611548565b60405180910390f35b61021d6106e4565b005b6102276107b5565b604051610234919061161f565b60405180910390f35b6102456107da565b604051610252919061161f565b60405180910390f35b6102636107ff565b6040516102709190611417565b60405180910390f35b610293600480360381019061028e91906114c8565b61088b565b6040516102a09190611520565b60405180910390f35b6102b16108a2565b6040516102be9190611548565b60405180910390f35b6102e160048036038101906102dc91906114c8565b6108a8565b6040516102ee9190611520565b60405180910390f35b610311600480360381019061030c9190611662565b6108c0565b005b61032d600480360381019061032891906116a0565b6109a7565b60405161033a9190611548565b60405180910390f35b61035d600480360381019061035891906116de565b6109c7565b005b5f805461036b90611736565b80601f016020809104026020016040519081016040528092919081815260200182805461039790611736565b80156103e25780601f106103b9576101008083540402835291602001916103e2565b820191905f5260205f20905b8154815290600101906020018083116103c557829003601f168201915b505050505081565b5f8160055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104c59190611548565b60405180910390a36001905092915050565b60035481565b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054821115610599576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610590906117d6565b60405180910390fd5b6106248260055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610caa90919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506106ac8484845f610d02565b600190509392505050565b60025f9054906101000a900460ff1681565b60085481565b6004602052805f5260405f205f915090505481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076a9061183e565b60405180910390fd5b5f60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6001805461080c90611736565b80601f016020809104026020016040519081016040528092919081815260200182805461083890611736565b80156108835780601f1061085a57610100808354040283529160200191610883565b820191905f5260205f20905b81548152906001019060200180831161086657829003601f168201915b505050505081565b5f6108983384845f610d02565b6001905092915050565b60095481565b5f6108b63384846001610d02565b6001905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461094f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109469061183e565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6005602052815f5260405f20602052805f5260405f205f91509150505481565b8060045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3e906118a6565b60405180910390fd5b5f600a4233604051602001610a5d929190611929565b604051602081830303815290604052805190602001205f1c610a7f9190611981565b90506005811015610abb57610ab560075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361088b565b50610ca6565b610b2c8260045f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610caa90919063ffffffff16565b60045f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610bde8260045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461126290919063ffffffff16565b60045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff1660075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c9d9190611548565b60405180910390a35b5050565b5f82821115610cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce5906119fb565b60405180910390fd5b8183610cfa9190611a46565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6790611ae9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd590611b77565b60405180910390fd5b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f90611bdf565b60405180910390fd5b610eb88260045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610caa90919063ffffffff16565b60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f81610f2c57610f276064610f19600954866112bf90919063ffffffff16565b61133690919063ffffffff16565b610f55565b610f546064610f46600854866112bf90919063ffffffff16565b61133690919063ffffffff16565b5b9050610fc88160045f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461126290919063ffffffff16565b60045f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110a89190611548565b60405180910390a36111126110c68285610caa90919063ffffffff16565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461126290919063ffffffff16565b60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111b58487610caa90919063ffffffff16565b6040516111c29190611548565b60405180910390a38180156111d957506001600854115b156111ff576111f46001600854610caa90919063ffffffff16565b600881905550611212565b5f600854036112115760016008819055505b5b8115801561122257506001600954115b156112485761123d6001600954610caa90919063ffffffff16565b60098190555061125b565b5f6009540361125a5760016009819055505b5b5050505050565b5f8082846112709190611bfd565b9050838110156112b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ac90611c7a565b60405180910390fd5b8091505092915050565b5f8083036112cf575f9050611330565b5f82846112dc9190611c98565b90508284826112eb9190611cd9565b1461132b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132290611d53565b60405180910390fd5b809150505b92915050565b5f808211611379576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137090611dbb565b60405180910390fd5b81836113859190611cd9565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156113c45780820151818401526020810190506113a9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6113e98261138d565b6113f38185611397565b93506114038185602086016113a7565b61140c816113cf565b840191505092915050565b5f6020820190508181035f83015261142f81846113df565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6114648261143b565b9050919050565b6114748161145a565b811461147e575f80fd5b50565b5f8135905061148f8161146b565b92915050565b5f819050919050565b6114a781611495565b81146114b1575f80fd5b50565b5f813590506114c28161149e565b92915050565b5f80604083850312156114de576114dd611437565b5b5f6114eb85828601611481565b92505060206114fc858286016114b4565b9150509250929050565b5f8115159050919050565b61151a81611506565b82525050565b5f6020820190506115335f830184611511565b92915050565b61154281611495565b82525050565b5f60208201905061155b5f830184611539565b92915050565b5f805f6060848603121561157857611577611437565b5b5f61158586828701611481565b935050602061159686828701611481565b92505060406115a7868287016114b4565b9150509250925092565b5f60ff82169050919050565b6115c6816115b1565b82525050565b5f6020820190506115df5f8301846115bd565b92915050565b5f602082840312156115fa576115f9611437565b5b5f61160784828501611481565b91505092915050565b6116198161145a565b82525050565b5f6020820190506116325f830184611610565b92915050565b61164181611506565b811461164b575f80fd5b50565b5f8135905061165c81611638565b92915050565b5f806040838503121561167857611677611437565b5b5f61168585828601611481565b92505060206116968582860161164e565b9150509250929050565b5f80604083850312156116b6576116b5611437565b5b5f6116c385828601611481565b92505060206116d485828601611481565b9150509250929050565b5f602082840312156116f3576116f2611437565b5b5f611700848285016114b4565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061174d57607f821691505b6020821081036117605761175f611709565b5b50919050565b7f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e635f8201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b5f6117c0602183611397565b91506117cb82611766565b604082019050919050565b5f6020820190508181035f8301526117ed816117b4565b9050919050565b7f4e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f611828600983611397565b9150611833826117f4565b602082019050919050565b5f6020820190508181035f8301526118558161181c565b9050919050565b7f496e73756666696369656e742062616c616e636520746f2077616765720000005f82015250565b5f611890601d83611397565b915061189b8261185c565b602082019050919050565b5f6020820190508181035f8301526118bd81611884565b9050919050565b5f819050919050565b6118de6118d982611495565b6118c4565b82525050565b5f8160601b9050919050565b5f6118fa826118e4565b9050919050565b5f61190b826118f0565b9050919050565b61192361191e8261145a565b611901565b82525050565b5f61193482856118cd565b6020820191506119448284611912565b6014820191508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61198b82611495565b915061199683611495565b9250826119a6576119a5611954565b5b828206905092915050565b7f5375627472616374696f6e206f766572666c6f770000000000000000000000005f82015250565b5f6119e5601483611397565b91506119f0826119b1565b602082019050919050565b5f6020820190508181035f830152611a12816119d9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a5082611495565b9150611a5b83611495565b9250828203905081811115611a7357611a72611a19565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611ad3602583611397565b9150611ade82611a79565b604082019050919050565b5f6020820190508181035f830152611b0081611ac7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611b61602383611397565b9150611b6c82611b07565b604082019050919050565b5f6020820190508181035f830152611b8e81611b55565b9050919050565b7f4164647265737320697320626c61636b6c6973746564000000000000000000005f82015250565b5f611bc9601683611397565b9150611bd482611b95565b602082019050919050565b5f6020820190508181035f830152611bf681611bbd565b9050919050565b5f611c0782611495565b9150611c1283611495565b9250828201905080821115611c2a57611c29611a19565b5b92915050565b7f4164646974696f6e206f766572666c6f770000000000000000000000000000005f82015250565b5f611c64601183611397565b9150611c6f82611c30565b602082019050919050565b5f6020820190508181035f830152611c9181611c58565b9050919050565b5f611ca282611495565b9150611cad83611495565b9250828202611cbb81611495565b91508282048414831517611cd257611cd1611a19565b5b5092915050565b5f611ce382611495565b9150611cee83611495565b925082611cfe57611cfd611954565b5b828204905092915050565b7f4d756c7469706c69636174696f6e206f766572666c6f770000000000000000005f82015250565b5f611d3d601783611397565b9150611d4882611d09565b602082019050919050565b5f6020820190508181035f830152611d6a81611d31565b9050919050565b7f4469766973696f6e206279207a65726f000000000000000000000000000000005f82015250565b5f611da5601083611397565b9150611db082611d71565b602082019050919050565b5f6020820190508181035f830152611dd281611d99565b905091905056fea264697066735822122060b8eeb0d7324a1d0ee0e7922a23c58aadfb00b420e8980ac145a438ebab5b8a64736f6c63430008140033
0x60806040526040518060400160405280600c81526020017f53706f6f6b79536561736f6e00000000000000000000000000000000000000008152505f9081620000499190620004f2565b506040518060400160405280600681526020017f53504f4f4b59000000000000000000000000000000000000000000000000000081525060019081620000909190620004f2565b50601260025f6101000a81548160ff021916908360ff1602179055506b015b6a759f4835dc240000006003553360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073796386096362924f626aedf797152ff3fe11157060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f600855600f60095534801562000166575f80fd5b50620001896a03796274caf64c710000006003546200023160201b90919060201c565b60045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506a03796274caf64c7100000060045f7326e272159783a0b4dd3b266455264e2e1f2920ab73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550620006bb565b5f8282111562000278576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200026f9062000634565b60405180910390fd5b818362000286919062000681565b905092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200030a57607f821691505b60208210810362000320576200031f620002c5565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000347565b62000390868362000347565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620003da620003d4620003ce84620003a8565b620003b1565b620003a8565b9050919050565b5f819050919050565b620003f583620003ba565b6200040d6200040482620003e1565b84845462000353565b825550505050565b5f90565b6200042362000415565b62000430818484620003ea565b505050565b5b8181101562000457576200044b5f8262000419565b60018101905062000436565b5050565b601f821115620004a657620004708162000326565b6200047b8462000338565b810160208510156200048b578190505b620004a36200049a8562000338565b83018262000435565b50505b505050565b5f82821c905092915050565b5f620004c85f1984600802620004ab565b1980831691505092915050565b5f620004e28383620004b7565b9150826002028217905092915050565b620004fd826200028e565b67ffffffffffffffff81111562000519576200051862000298565b5b620005258254620002f2565b620005328282856200045b565b5f60209050601f83116001811462000568575f841562000553578287015190505b6200055f8582620004d5565b865550620005ce565b601f198416620005788662000326565b5f5b82811015620005a1578489015182556001820191506020850194506020810190506200057a565b86831015620005c15784890151620005bd601f891682620004b7565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f5375627472616374696f6e206f766572666c6f770000000000000000000000005f82015250565b5f6200061c601483620005d6565b91506200062982620005e6565b602082019050919050565b5f6020820190508181035f8301526200064d816200060e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200068d82620003a8565b91506200069a83620003a8565b9250828203905081811115620006b557620006b462000654565b5b92915050565b611e0f80620006c95f395ff3fe608060405234801561000f575f80fd5b5060043610610109575f3560e01c80638da5cb5b116100a0578063cc1776d31161006f578063cc1776d3146102a9578063cce7ec13146102c7578063d01dd6d2146102f7578063dd62ed3e14610313578063ef8fe4f61461034357610109565b80638da5cb5b1461021f5780638ea5220f1461023d57806395d89b411461025b578063a9059cbb1461027957610109565b8063313ce567116100dc578063313ce567146101a95780634f7041a5146101c757806370a08231146101e5578063715018a61461021557610109565b806306fdde031461010d578063095ea7b31461012b57806318160ddd1461015b57806323b872dd14610179575b5f80fd5b61011561035f565b6040516101229190611417565b60405180910390f35b610145600480360381019061014091906114c8565b6103ea565b6040516101529190611520565b60405180910390f35b6101636104d7565b6040516101709190611548565b60405180910390f35b610193600480360381019061018e9190611561565b6104dd565b6040516101a09190611520565b60405180910390f35b6101b16106b7565b6040516101be91906115cc565b60405180910390f35b6101cf6106c9565b6040516101dc9190611548565b60405180910390f35b6101ff60048036038101906101fa91906115e5565b6106cf565b60405161020c9190611548565b60405180910390f35b61021d6106e4565b005b6102276107b5565b604051610234919061161f565b60405180910390f35b6102456107da565b604051610252919061161f565b60405180910390f35b6102636107ff565b6040516102709190611417565b60405180910390f35b610293600480360381019061028e91906114c8565b61088b565b6040516102a09190611520565b60405180910390f35b6102b16108a2565b6040516102be9190611548565b60405180910390f35b6102e160048036038101906102dc91906114c8565b6108a8565b6040516102ee9190611520565b60405180910390f35b610311600480360381019061030c9190611662565b6108c0565b005b61032d600480360381019061032891906116a0565b6109a7565b60405161033a9190611548565b60405180910390f35b61035d600480360381019061035891906116de565b6109c7565b005b5f805461036b90611736565b80601f016020809104026020016040519081016040528092919081815260200182805461039790611736565b80156103e25780601f106103b9576101008083540402835291602001916103e2565b820191905f5260205f20905b8154815290600101906020018083116103c557829003601f168201915b505050505081565b5f8160055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104c59190611548565b60405180910390a36001905092915050565b60035481565b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054821115610599576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610590906117d6565b60405180910390fd5b6106248260055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610caa90919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506106ac8484845f610d02565b600190509392505050565b60025f9054906101000a900460ff1681565b60085481565b6004602052805f5260405f205f915090505481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076a9061183e565b60405180910390fd5b5f60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6001805461080c90611736565b80601f016020809104026020016040519081016040528092919081815260200182805461083890611736565b80156108835780601f1061085a57610100808354040283529160200191610883565b820191905f5260205f20905b81548152906001019060200180831161086657829003601f168201915b505050505081565b5f6108983384845f610d02565b6001905092915050565b60095481565b5f6108b63384846001610d02565b6001905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461094f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109469061183e565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6005602052815f5260405f20602052805f5260405f205f91509150505481565b8060045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3e906118a6565b60405180910390fd5b5f600a4233604051602001610a5d929190611929565b604051602081830303815290604052805190602001205f1c610a7f9190611981565b90506005811015610abb57610ab560075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361088b565b50610ca6565b610b2c8260045f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610caa90919063ffffffff16565b60045f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610bde8260045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461126290919063ffffffff16565b60045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff1660075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c9d9190611548565b60405180910390a35b5050565b5f82821115610cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce5906119fb565b60405180910390fd5b8183610cfa9190611a46565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6790611ae9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd590611b77565b60405180910390fd5b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f90611bdf565b60405180910390fd5b610eb88260045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610caa90919063ffffffff16565b60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f81610f2c57610f276064610f19600954866112bf90919063ffffffff16565b61133690919063ffffffff16565b610f55565b610f546064610f46600854866112bf90919063ffffffff16565b61133690919063ffffffff16565b5b9050610fc88160045f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461126290919063ffffffff16565b60045f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110a89190611548565b60405180910390a36111126110c68285610caa90919063ffffffff16565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461126290919063ffffffff16565b60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111b58487610caa90919063ffffffff16565b6040516111c29190611548565b60405180910390a38180156111d957506001600854115b156111ff576111f46001600854610caa90919063ffffffff16565b600881905550611212565b5f600854036112115760016008819055505b5b8115801561122257506001600954115b156112485761123d6001600954610caa90919063ffffffff16565b60098190555061125b565b5f6009540361125a5760016009819055505b5b5050505050565b5f8082846112709190611bfd565b9050838110156112b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ac90611c7a565b60405180910390fd5b8091505092915050565b5f8083036112cf575f9050611330565b5f82846112dc9190611c98565b90508284826112eb9190611cd9565b1461132b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132290611d53565b60405180910390fd5b809150505b92915050565b5f808211611379576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137090611dbb565b60405180910390fd5b81836113859190611cd9565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156113c45780820151818401526020810190506113a9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6113e98261138d565b6113f38185611397565b93506114038185602086016113a7565b61140c816113cf565b840191505092915050565b5f6020820190508181035f83015261142f81846113df565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6114648261143b565b9050919050565b6114748161145a565b811461147e575f80fd5b50565b5f8135905061148f8161146b565b92915050565b5f819050919050565b6114a781611495565b81146114b1575f80fd5b50565b5f813590506114c28161149e565b92915050565b5f80604083850312156114de576114dd611437565b5b5f6114eb85828601611481565b92505060206114fc858286016114b4565b9150509250929050565b5f8115159050919050565b61151a81611506565b82525050565b5f6020820190506115335f830184611511565b92915050565b61154281611495565b82525050565b5f60208201905061155b5f830184611539565b92915050565b5f805f6060848603121561157857611577611437565b5b5f61158586828701611481565b935050602061159686828701611481565b92505060406115a7868287016114b4565b9150509250925092565b5f60ff82169050919050565b6115c6816115b1565b82525050565b5f6020820190506115df5f8301846115bd565b92915050565b5f602082840312156115fa576115f9611437565b5b5f61160784828501611481565b91505092915050565b6116198161145a565b82525050565b5f6020820190506116325f830184611610565b92915050565b61164181611506565b811461164b575f80fd5b50565b5f8135905061165c81611638565b92915050565b5f806040838503121561167857611677611437565b5b5f61168585828601611481565b92505060206116968582860161164e565b9150509250929050565b5f80604083850312156116b6576116b5611437565b5b5f6116c385828601611481565b92505060206116d485828601611481565b9150509250929050565b5f602082840312156116f3576116f2611437565b5b5f611700848285016114b4565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061174d57607f821691505b6020821081036117605761175f611709565b5b50919050565b7f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e635f8201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b5f6117c0602183611397565b91506117cb82611766565b604082019050919050565b5f6020820190508181035f8301526117ed816117b4565b9050919050565b7f4e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f611828600983611397565b9150611833826117f4565b602082019050919050565b5f6020820190508181035f8301526118558161181c565b9050919050565b7f496e73756666696369656e742062616c616e636520746f2077616765720000005f82015250565b5f611890601d83611397565b915061189b8261185c565b602082019050919050565b5f6020820190508181035f8301526118bd81611884565b9050919050565b5f819050919050565b6118de6118d982611495565b6118c4565b82525050565b5f8160601b9050919050565b5f6118fa826118e4565b9050919050565b5f61190b826118f0565b9050919050565b61192361191e8261145a565b611901565b82525050565b5f61193482856118cd565b6020820191506119448284611912565b6014820191508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61198b82611495565b915061199683611495565b9250826119a6576119a5611954565b5b828206905092915050565b7f5375627472616374696f6e206f766572666c6f770000000000000000000000005f82015250565b5f6119e5601483611397565b91506119f0826119b1565b602082019050919050565b5f6020820190508181035f830152611a12816119d9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a5082611495565b9150611a5b83611495565b9250828203905081811115611a7357611a72611a19565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611ad3602583611397565b9150611ade82611a79565b604082019050919050565b5f6020820190508181035f830152611b0081611ac7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611b61602383611397565b9150611b6c82611b07565b604082019050919050565b5f6020820190508181035f830152611b8e81611b55565b9050919050565b7f4164647265737320697320626c61636b6c6973746564000000000000000000005f82015250565b5f611bc9601683611397565b9150611bd482611b95565b602082019050919050565b5f6020820190508181035f830152611bf681611bbd565b9050919050565b5f611c0782611495565b9150611c1283611495565b9250828201905080821115611c2a57611c29611a19565b5b92915050565b7f4164646974696f6e206f766572666c6f770000000000000000000000000000005f82015250565b5f611c64601183611397565b9150611c6f82611c30565b602082019050919050565b5f6020820190508181035f830152611c9181611c58565b9050919050565b5f611ca282611495565b9150611cad83611495565b9250828202611cbb81611495565b91508282048414831517611cd257611cd1611a19565b5b5092915050565b5f611ce382611495565b9150611cee83611495565b925082611cfe57611cfd611954565b5b828204905092915050565b7f4d756c7469706c69636174696f6e206f766572666c6f770000000000000000005f82015250565b5f611d3d601783611397565b9150611d4882611d09565b602082019050919050565b5f6020820190508181035f830152611d6a81611d31565b9050919050565b7f4469766973696f6e206279207a65726f000000000000000000000000000000005f82015250565b5f611da5601083611397565b9150611db082611d71565b602082019050919050565b5f6020820190508181035f830152611dd281611d99565b905091905056fea264697066735822122060b8eeb0d7324a1d0ee0e7922a23c58aadfb00b420e8980ac145a438ebab5b8a64736f6c63430008140033