0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a2578063a457c2d711610071578063a457c2d7146102bc578063a9059cbb146102ec578063c62b18521461031c578063dd62ed3e1461034c578063f2fde38b1461037c5761010b565b806370a082311461023457806379d16fcd146102645780638da5cb5b1461028057806395d89b411461029e5761010b565b806323b872dd116100de57806323b872dd1461019a57806325bc258b146101ca578063313ce567146101e657806339509351146102045761010b565b806306fdde0314610110578063095ea7b31461012e5780630cc166f21461015e57806318160ddd1461017c575b600080fd5b610118610398565b6040516101259190611348565b60405180910390f35b61014860048036038101906101439190611403565b61042a565b604051610155919061145e565b60405180910390f35b61016661044d565b604051610173919061145e565b60405180910390f35b610184610460565b6040516101919190611488565b60405180910390f35b6101b460048036038101906101af91906114a3565b61046a565b6040516101c1919061145e565b60405180910390f35b6101e460048036038101906101df9190611522565b610499565b005b6101ee610570565b6040516101fb919061157e565b60405180910390f35b61021e60048036038101906102199190611403565b610579565b60405161022b919061145e565b60405180910390f35b61024e60048036038101906102499190611599565b610623565b60405161025b9190611488565b60405180910390f35b61027e600480360381019061027991906115c6565b61066c565b005b610288610705565b6040516102959190611602565b60405180910390f35b6102a661072e565b6040516102b39190611348565b60405180910390f35b6102d660048036038101906102d19190611403565b6107c0565b6040516102e3919061145e565b60405180910390f35b61030660048036038101906103019190611403565b6108aa565b604051610313919061145e565b60405180910390f35b61033660048036038101906103319190611599565b6108cd565b604051610343919061145e565b60405180910390f35b6103666004803603810190610361919061161d565b6108ed565b6040516103739190611488565b60405180910390f35b61039660048036038101906103919190611599565b610974565b005b6060600480546103a79061168c565b80601f01602080910402602001604051908101604052809291908181526020018280546103d39061168c565b80156104205780601f106103f557610100808354040283529160200191610420565b820191906000526020600020905b81548152906001019060200180831161040357829003601f168201915b5050505050905090565b600080610435610a6b565b9050610442818585610a73565b600191505092915050565b600760009054906101000a900460ff1681565b6000600354905090565b600080610475610a6b565b9050610482858285610c3c565b61048d858585610cc8565b60019150509392505050565b6104a1610a6b565b73ffffffffffffffffffffffffffffffffffffffff166104bf610705565b73ffffffffffffffffffffffffffffffffffffffff1614610515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050c90611709565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006012905090565b600080610584610a6b565b9050610618818585600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106139190611758565b610a73565b600191505092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610674610a6b565b73ffffffffffffffffffffffffffffffffffffffff16610692610705565b73ffffffffffffffffffffffffffffffffffffffff16146106e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106df90611709565b60405180910390fd5b80600760006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606005805461073d9061168c565b80601f01602080910402602001604051908101604052809291908181526020018280546107699061168c565b80156107b65780601f1061078b576101008083540402835291602001916107b6565b820191906000526020600020905b81548152906001019060200180831161079957829003601f168201915b5050505050905090565b6000806107cb610a6b565b90506000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015610891576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088890611820565b60405180910390fd5b61089e8286868403610a73565b60019250505092915050565b6000806108b5610a6b565b90506108c2818585610cc8565b600191505092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61097c610a6b565b73ffffffffffffffffffffffffffffffffffffffff1661099a610705565b73ffffffffffffffffffffffffffffffffffffffff16146109f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e790611709565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a56906118b2565b60405180910390fd5b610a6881611066565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad990611944565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b48906119d6565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c2f9190611488565b60405180910390a3505050565b6000610c4884846108ed565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610cc25781811015610cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cab90611a42565b60405180910390fd5b610cc18484848403610a73565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2e90611ad4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9d90611b66565b60405180910390fd5b610db183838361112a565b600760009054906101000a900460ff1615610ecd57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610e6a5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610ecc576000610e7b848461112f565b9050610e86816111ab565b43600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b90611bf8565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610fe99190611758565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161104d9190611488565b60405180910390a3611060848484611297565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b600061113a8361129c565b158061114c575061114a8261129c565b155b61118b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118290611c64565b60405180910390fd5b6111948361129c565b156111a1578190506111a5565b8290505b92915050565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148061125157506001436112029190611758565b600954600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124f9190611758565b105b905080611293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128a90611cd0565b60405180910390fd5b5050565b505050565b600080823b905060008111915050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156112e95780820151818401526020810190506112ce565b838111156112f8576000848401525b50505050565b6000601f19601f8301169050919050565b600061131a826112af565b61132481856112ba565b93506113348185602086016112cb565b61133d816112fe565b840191505092915050565b60006020820190508181036000830152611362818461130f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061139a8261136f565b9050919050565b6113aa8161138f565b81146113b557600080fd5b50565b6000813590506113c7816113a1565b92915050565b6000819050919050565b6113e0816113cd565b81146113eb57600080fd5b50565b6000813590506113fd816113d7565b92915050565b6000806040838503121561141a5761141961136a565b5b6000611428858286016113b8565b9250506020611439858286016113ee565b9150509250929050565b60008115159050919050565b61145881611443565b82525050565b6000602082019050611473600083018461144f565b92915050565b611482816113cd565b82525050565b600060208201905061149d6000830184611479565b92915050565b6000806000606084860312156114bc576114bb61136a565b5b60006114ca868287016113b8565b93505060206114db868287016113b8565b92505060406114ec868287016113ee565b9150509250925092565b6114ff81611443565b811461150a57600080fd5b50565b60008135905061151c816114f6565b92915050565b600080604083850312156115395761153861136a565b5b6000611547858286016113b8565b92505060206115588582860161150d565b9150509250929050565b600060ff82169050919050565b61157881611562565b82525050565b6000602082019050611593600083018461156f565b92915050565b6000602082840312156115af576115ae61136a565b5b60006115bd848285016113b8565b91505092915050565b6000602082840312156115dc576115db61136a565b5b60006115ea8482850161150d565b91505092915050565b6115fc8161138f565b82525050565b600060208201905061161760008301846115f3565b92915050565b600080604083850312156116345761163361136a565b5b6000611642858286016113b8565b9250506020611653858286016113b8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806116a457607f821691505b6020821081036116b7576116b661165d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006116f36020836112ba565b91506116fe826116bd565b602082019050919050565b60006020820190508181036000830152611722816116e6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611763826113cd565b915061176e836113cd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117a3576117a2611729565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061180a6025836112ba565b9150611815826117ae565b604082019050919050565b60006020820190508181036000830152611839816117fd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061189c6026836112ba565b91506118a782611840565b604082019050919050565b600060208201905081810360008301526118cb8161188f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061192e6024836112ba565b9150611939826118d2565b604082019050919050565b6000602082019050818103600083015261195d81611921565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006119c06022836112ba565b91506119cb82611964565b604082019050919050565b600060208201905081810360008301526119ef816119b3565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611a2c601d836112ba565b9150611a37826119f6565b602082019050919050565b60006020820190508181036000830152611a5b81611a1f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611abe6025836112ba565b9150611ac982611a62565b604082019050919050565b60006020820190508181036000830152611aed81611ab1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611b506023836112ba565b9150611b5b82611af4565b604082019050919050565b60006020820190508181036000830152611b7f81611b43565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611be26026836112ba565b9150611bed82611b86565b604082019050919050565b60006020820190508181036000830152611c1181611bd5565b9050919050565b7f4e6f206d657620616c6c6f776564210000000000000000000000000000000000600082015250565b6000611c4e600f836112ba565b9150611c5982611c18565b602082019050919050565b60006020820190508181036000830152611c7d81611c41565b9050919050565b7f4d6178207478206672657175656e637920657863656564656421000000000000600082015250565b6000611cba601a836112ba565b9150611cc582611c84565b602082019050919050565b60006020820190508181036000830152611ce981611cad565b905091905056fea26469706673582212204327d24c029dfcdbf2d01b18bc521b2b7335713aaf0795f2371c27ad3d489ed164736f6c634300080d0033
0x60a06040526000600760006101000a81548160ff02191690831515021790555060016009553480156200003157600080fd5b506200005262000046620001ed60201b60201c565b620001f560201b60201c565b6040518060400160405280600681526020017f4b79757368750000000000000000000000000000000000000000000000000000815250600490805190602001906200009f9291906200060d565b506040518060400160405280600681526020017f4b4f4a494d41000000000000000000000000000000000000000000000000000081525060059080519060200190620000ed9291906200060d565b5060006b039a658b1e930a2aad4c000090506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050620001d4336080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620002b960201b60201c565b620001e633826200048a60201b60201c565b5062000998565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200032b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003229062000744565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200039d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200039490620007dc565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516200047d919062000819565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620004fc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004f39062000886565b60405180910390fd5b62000510600083836200060360201b60201c565b8060036000828254620005249190620008d7565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200057c9190620008d7565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620005e3919062000819565b60405180910390a3620005ff600083836200060860201b60201c565b5050565b505050565b505050565b8280546200061b9062000963565b90600052602060002090601f0160209004810192826200063f57600085556200068b565b82601f106200065a57805160ff19168380011785556200068b565b828001600101855582156200068b579182015b828111156200068a5782518255916020019190600101906200066d565b5b5090506200069a91906200069e565b5090565b5b80821115620006b95760008160009055506001016200069f565b5090565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006200072c602483620006bd565b91506200073982620006ce565b604082019050919050565b600060208201905081810360008301526200075f816200071d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000620007c4602283620006bd565b9150620007d18262000766565b604082019050919050565b60006020820190508181036000830152620007f781620007b5565b9050919050565b6000819050919050565b6200081381620007fe565b82525050565b600060208201905062000830600083018462000808565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200086e601f83620006bd565b91506200087b8262000836565b602082019050919050565b60006020820190508181036000830152620008a1816200085f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620008e482620007fe565b9150620008f183620007fe565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620009295762000928620008a8565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200097c57607f821691505b60208210810362000992576200099162000934565b5b50919050565b608051611d26620009b160003960005050611d266000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a2578063a457c2d711610071578063a457c2d7146102bc578063a9059cbb146102ec578063c62b18521461031c578063dd62ed3e1461034c578063f2fde38b1461037c5761010b565b806370a082311461023457806379d16fcd146102645780638da5cb5b1461028057806395d89b411461029e5761010b565b806323b872dd116100de57806323b872dd1461019a57806325bc258b146101ca578063313ce567146101e657806339509351146102045761010b565b806306fdde0314610110578063095ea7b31461012e5780630cc166f21461015e57806318160ddd1461017c575b600080fd5b610118610398565b6040516101259190611348565b60405180910390f35b61014860048036038101906101439190611403565b61042a565b604051610155919061145e565b60405180910390f35b61016661044d565b604051610173919061145e565b60405180910390f35b610184610460565b6040516101919190611488565b60405180910390f35b6101b460048036038101906101af91906114a3565b61046a565b6040516101c1919061145e565b60405180910390f35b6101e460048036038101906101df9190611522565b610499565b005b6101ee610570565b6040516101fb919061157e565b60405180910390f35b61021e60048036038101906102199190611403565b610579565b60405161022b919061145e565b60405180910390f35b61024e60048036038101906102499190611599565b610623565b60405161025b9190611488565b60405180910390f35b61027e600480360381019061027991906115c6565b61066c565b005b610288610705565b6040516102959190611602565b60405180910390f35b6102a661072e565b6040516102b39190611348565b60405180910390f35b6102d660048036038101906102d19190611403565b6107c0565b6040516102e3919061145e565b60405180910390f35b61030660048036038101906103019190611403565b6108aa565b604051610313919061145e565b60405180910390f35b61033660048036038101906103319190611599565b6108cd565b604051610343919061145e565b60405180910390f35b6103666004803603810190610361919061161d565b6108ed565b6040516103739190611488565b60405180910390f35b61039660048036038101906103919190611599565b610974565b005b6060600480546103a79061168c565b80601f01602080910402602001604051908101604052809291908181526020018280546103d39061168c565b80156104205780601f106103f557610100808354040283529160200191610420565b820191906000526020600020905b81548152906001019060200180831161040357829003601f168201915b5050505050905090565b600080610435610a6b565b9050610442818585610a73565b600191505092915050565b600760009054906101000a900460ff1681565b6000600354905090565b600080610475610a6b565b9050610482858285610c3c565b61048d858585610cc8565b60019150509392505050565b6104a1610a6b565b73ffffffffffffffffffffffffffffffffffffffff166104bf610705565b73ffffffffffffffffffffffffffffffffffffffff1614610515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050c90611709565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006012905090565b600080610584610a6b565b9050610618818585600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106139190611758565b610a73565b600191505092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610674610a6b565b73ffffffffffffffffffffffffffffffffffffffff16610692610705565b73ffffffffffffffffffffffffffffffffffffffff16146106e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106df90611709565b60405180910390fd5b80600760006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606005805461073d9061168c565b80601f01602080910402602001604051908101604052809291908181526020018280546107699061168c565b80156107b65780601f1061078b576101008083540402835291602001916107b6565b820191906000526020600020905b81548152906001019060200180831161079957829003601f168201915b5050505050905090565b6000806107cb610a6b565b90506000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015610891576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088890611820565b60405180910390fd5b61089e8286868403610a73565b60019250505092915050565b6000806108b5610a6b565b90506108c2818585610cc8565b600191505092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61097c610a6b565b73ffffffffffffffffffffffffffffffffffffffff1661099a610705565b73ffffffffffffffffffffffffffffffffffffffff16146109f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e790611709565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a56906118b2565b60405180910390fd5b610a6881611066565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad990611944565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b48906119d6565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c2f9190611488565b60405180910390a3505050565b6000610c4884846108ed565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610cc25781811015610cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cab90611a42565b60405180910390fd5b610cc18484848403610a73565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2e90611ad4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9d90611b66565b60405180910390fd5b610db183838361112a565b600760009054906101000a900460ff1615610ecd57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610e6a5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610ecc576000610e7b848461112f565b9050610e86816111ab565b43600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b90611bf8565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610fe99190611758565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161104d9190611488565b60405180910390a3611060848484611297565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b600061113a8361129c565b158061114c575061114a8261129c565b155b61118b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118290611c64565b60405180910390fd5b6111948361129c565b156111a1578190506111a5565b8290505b92915050565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148061125157506001436112029190611758565b600954600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124f9190611758565b105b905080611293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128a90611cd0565b60405180910390fd5b5050565b505050565b600080823b905060008111915050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156112e95780820151818401526020810190506112ce565b838111156112f8576000848401525b50505050565b6000601f19601f8301169050919050565b600061131a826112af565b61132481856112ba565b93506113348185602086016112cb565b61133d816112fe565b840191505092915050565b60006020820190508181036000830152611362818461130f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061139a8261136f565b9050919050565b6113aa8161138f565b81146113b557600080fd5b50565b6000813590506113c7816113a1565b92915050565b6000819050919050565b6113e0816113cd565b81146113eb57600080fd5b50565b6000813590506113fd816113d7565b92915050565b6000806040838503121561141a5761141961136a565b5b6000611428858286016113b8565b9250506020611439858286016113ee565b9150509250929050565b60008115159050919050565b61145881611443565b82525050565b6000602082019050611473600083018461144f565b92915050565b611482816113cd565b82525050565b600060208201905061149d6000830184611479565b92915050565b6000806000606084860312156114bc576114bb61136a565b5b60006114ca868287016113b8565b93505060206114db868287016113b8565b92505060406114ec868287016113ee565b9150509250925092565b6114ff81611443565b811461150a57600080fd5b50565b60008135905061151c816114f6565b92915050565b600080604083850312156115395761153861136a565b5b6000611547858286016113b8565b92505060206115588582860161150d565b9150509250929050565b600060ff82169050919050565b61157881611562565b82525050565b6000602082019050611593600083018461156f565b92915050565b6000602082840312156115af576115ae61136a565b5b60006115bd848285016113b8565b91505092915050565b6000602082840312156115dc576115db61136a565b5b60006115ea8482850161150d565b91505092915050565b6115fc8161138f565b82525050565b600060208201905061161760008301846115f3565b92915050565b600080604083850312156116345761163361136a565b5b6000611642858286016113b8565b9250506020611653858286016113b8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806116a457607f821691505b6020821081036116b7576116b661165d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006116f36020836112ba565b91506116fe826116bd565b602082019050919050565b60006020820190508181036000830152611722816116e6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611763826113cd565b915061176e836113cd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117a3576117a2611729565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061180a6025836112ba565b9150611815826117ae565b604082019050919050565b60006020820190508181036000830152611839816117fd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061189c6026836112ba565b91506118a782611840565b604082019050919050565b600060208201905081810360008301526118cb8161188f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061192e6024836112ba565b9150611939826118d2565b604082019050919050565b6000602082019050818103600083015261195d81611921565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006119c06022836112ba565b91506119cb82611964565b604082019050919050565b600060208201905081810360008301526119ef816119b3565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611a2c601d836112ba565b9150611a37826119f6565b602082019050919050565b60006020820190508181036000830152611a5b81611a1f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611abe6025836112ba565b9150611ac982611a62565b604082019050919050565b60006020820190508181036000830152611aed81611ab1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611b506023836112ba565b9150611b5b82611af4565b604082019050919050565b60006020820190508181036000830152611b7f81611b43565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611be26026836112ba565b9150611bed82611b86565b604082019050919050565b60006020820190508181036000830152611c1181611bd5565b9050919050565b7f4e6f206d657620616c6c6f776564210000000000000000000000000000000000600082015250565b6000611c4e600f836112ba565b9150611c5982611c18565b602082019050919050565b60006020820190508181036000830152611c7d81611c41565b9050919050565b7f4d6178207478206672657175656e637920657863656564656421000000000000600082015250565b6000611cba601a836112ba565b9150611cc582611c84565b602082019050919050565b60006020820190508181036000830152611ce981611cad565b905091905056fea26469706673582212204327d24c029dfcdbf2d01b18bc521b2b7335713aaf0795f2371c27ad3d489ed164736f6c634300080d0033