0x60806040523480156200001157600080fd5b50604051620020da380380620020da833981810160405281019062000037919062000235565b33600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000ad5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000a4919062000278565b60405180910390fd5b620000be816200010760201b60201c565b5080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000295565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001fd82620001d0565b9050919050565b6200020f81620001f0565b81146200021b57600080fd5b50565b6000815190506200022f8162000204565b92915050565b6000602082840312156200024e576200024d620001cb565b5b60006200025e848285016200021e565b91505092915050565b6200027281620001f0565b82525050565b60006020820190506200028f600083018462000267565b92915050565b611e3580620002a56000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806370480275116100b8578063985751881161007c5780639857518814610336578063a217fddf14610352578063c407687614610370578063d547741f1461038c578063e7cd4a04146103a8578063f2fde38b146103c457610137565b8063704802751461029257806370a08231146102ae578063715018a6146102de5780638da5cb5b146102e857806391d148541461030657610137565b80632f2ff15d116100ff5780632f2ff15d146101f257806336568abe1461020e578063421b2d8b1461022a5780634e23a1441461024657806369e0e3461461026257610137565b806301ffc9a71461013c5780631785f53c1461016c5780632042e5c214610188578063248a9ca3146101a45780632a0acc6a146101d4575b600080fd5b61015660048036038101906101519190611616565b6103e0565b604051610163919061165e565b60405180910390f35b610186600480360381019061018191906116d7565b61045a565b005b6101a2600480360381019061019d91906116d7565b610490565b005b6101be60048036038101906101b9919061173a565b610554565b6040516101cb9190611776565b60405180910390f35b6101dc610574565b6040516101e99190611776565b60405180910390f35b61020c60048036038101906102079190611791565b610598565b005b61022860048036038101906102239190611791565b6105ba565b005b610244600480360381019061023f91906116d7565b610635565b005b610260600480360381019061025b9190611807565b6106fc565b005b61027c600480360381019061027791906116d7565b61096b565b604051610289919061165e565b60405180910390f35b6102ac60048036038101906102a791906116d7565b6109c1565b005b6102c860048036038101906102c391906116d7565b6109f7565b6040516102d59190611856565b60405180910390f35b6102e6610a43565b005b6102f0610a57565b6040516102fd9190611880565b60405180910390f35b610320600480360381019061031b9190611791565b610a80565b60405161032d919061165e565b60405180910390f35b610350600480360381019061034b91906116d7565b610aeb565b005b61035a610bff565b6040516103679190611776565b60405180910390f35b61038a60048036038101906103859190611807565b610c06565b005b6103a660048036038101906103a19190611791565b610f0b565b005b6103c260048036038101906103bd91906116d7565b610f2d565b005b6103de60048036038101906103d991906116d7565b610ff1565b005b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610453575061045282611077565b5b9050919050565b6104626110e1565b61048c7ff23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d882611168565b5050565b6104ba7ff23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d833610a80565b6104f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f0906118f8565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600060016000838152602001908152602001600020600101549050919050565b7ff23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d881565b6105a182610554565b6105aa8161125b565b6105b4838361126f565b50505050565b6105c2611360565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610626576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106308282611168565b505050565b61065f7ff23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d833610a80565b61069e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610695906118f8565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690831515021790555050565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1661078b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107829061198a565b60405180910390fd5b80600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b81526004016107e99291906119aa565b602060405180830381865afa158015610806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082a91906119e8565b101561086b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086290611a87565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016108ca93929190611aa7565b6020604051808303816000875af11580156108e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090d9190611b0a565b5080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546109609190611b66565b925050819055505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6109c96110e1565b6109f37ff23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d88261126f565b5050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b610a4b6110e1565b610a556000611368565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006001600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610b157ff23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d833610a80565b610b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4b906118f8565b60405180910390fd5b610ba18133600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461142c565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690831515021790555050565b6000801b81565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16610c95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8c90611c0c565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1890611c9e565b60405180910390fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541015610da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9d90611d30565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610e03929190611d50565b6020604051808303816000875af1158015610e22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e469190611b0a565b5080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254610e999190611d79565b925050819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f34882e90c95bfeaeb7e0738cfd8af3d1f6ab3d2065dd70f6660b404b9beb35054284604051610eff929190611dad565b60405180910390a35050565b610f1482610554565b610f1d8161125b565b610f278383611168565b50505050565b610f577ff23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d833610a80565b610f96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8d906118f8565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ff96110e1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361106b5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016110629190611880565b60405180910390fd5b61107481611368565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6110e9611360565b73ffffffffffffffffffffffffffffffffffffffff16611107610a57565b73ffffffffffffffffffffffffffffffffffffffff16146111665761112a611360565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161115d9190611880565b60405180910390fd5b565b60006111748383610a80565b156112505760006001600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506111ed611360565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611255565b600090505b92915050565b61126c81611267611360565b611568565b50565b600061127b8383610a80565b61135557600180600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506112f2611360565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905061135a565b600090505b92915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015410156114b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a890611d30565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546115039190611d79565b9250508190555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461155c9190611b66565b92505081905550505050565b6115728282610a80565b6115b55780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016115ac929190611dd6565b60405180910390fd5b5050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6115f3816115be565b81146115fe57600080fd5b50565b600081359050611610816115ea565b92915050565b60006020828403121561162c5761162b6115b9565b5b600061163a84828501611601565b91505092915050565b60008115159050919050565b61165881611643565b82525050565b6000602082019050611673600083018461164f565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116a482611679565b9050919050565b6116b481611699565b81146116bf57600080fd5b50565b6000813590506116d1816116ab565b92915050565b6000602082840312156116ed576116ec6115b9565b5b60006116fb848285016116c2565b91505092915050565b6000819050919050565b61171781611704565b811461172257600080fd5b50565b6000813590506117348161170e565b92915050565b6000602082840312156117505761174f6115b9565b5b600061175e84828501611725565b91505092915050565b61177081611704565b82525050565b600060208201905061178b6000830184611767565b92915050565b600080604083850312156117a8576117a76115b9565b5b60006117b685828601611725565b92505060206117c7858286016116c2565b9150509250929050565b6000819050919050565b6117e4816117d1565b81146117ef57600080fd5b50565b600081359050611801816117db565b92915050565b6000806040838503121561181e5761181d6115b9565b5b600061182c858286016116c2565b925050602061183d858286016117f2565b9150509250929050565b611850816117d1565b82525050565b600060208201905061186b6000830184611847565b92915050565b61187a81611699565b82525050565b60006020820190506118956000830184611871565b92915050565b600082825260208201905092915050565b7f43616c6c6572206973206e6f7420612061646d696e2e00000000000000000000600082015250565b60006118e260168361189b565b91506118ed826118ac565b602082019050919050565b60006020820190508181036000830152611911816118d5565b9050919050565b7f5265636569766572206973206e6f7420696e2074686520696e7465726e616c2060008201527f6c6973742e000000000000000000000000000000000000000000000000000000602082015250565b600061197460258361189b565b915061197f82611918565b604082019050919050565b600060208201905081810360008301526119a381611967565b9050919050565b60006040820190506119bf6000830185611871565b6119cc6020830184611871565b9392505050565b6000815190506119e2816117db565b92915050565b6000602082840312156119fe576119fd6115b9565b5b6000611a0c848285016119d3565b91505092915050565b7f53656e64657220646f6573206e6f7420617070726f766520656e6f756768207460008201527f6f6b656e2e000000000000000000000000000000000000000000000000000000602082015250565b6000611a7160258361189b565b9150611a7c82611a15565b604082019050919050565b60006020820190508181036000830152611aa081611a64565b9050919050565b6000606082019050611abc6000830186611871565b611ac96020830185611871565b611ad66040830184611847565b949350505050565b611ae781611643565b8114611af257600080fd5b50565b600081519050611b0481611ade565b92915050565b600060208284031215611b2057611b1f6115b9565b5b6000611b2e84828501611af5565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611b71826117d1565b9150611b7c836117d1565b9250828201905080821115611b9457611b93611b37565b5b92915050565b7f43616c6c6572206d75737420696e2074686520696e7465726e616c206c69737460008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000611bf660218361189b565b9150611c0182611b9a565b604082019050919050565b60006020820190508181036000830152611c2581611be9565b9050919050565b7f5265636569766572206973206e6f7420696e207468652077686974656c69737460008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000611c8860218361189b565b9150611c9382611c2c565b604082019050919050565b60006020820190508181036000830152611cb781611c7b565b9050919050565b7f53656e64657220646f6573206e6f74206861766520656e6f75676820746f6b6560008201527f6e2e000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d1a60228361189b565b9150611d2582611cbe565b604082019050919050565b60006020820190508181036000830152611d4981611d0d565b9050919050565b6000604082019050611d656000830185611871565b611d726020830184611847565b9392505050565b6000611d84826117d1565b9150611d8f836117d1565b9250828203905081811115611da757611da6611b37565b5b92915050565b6000604082019050611dc26000830185611847565b611dcf6020830184611847565b9392505050565b6000604082019050611deb6000830185611871565b611df86020830184611767565b939250505056fea26469706673582212202eba7612b49b99d5cd4b2651911daa31948145b3585bb34e392d7ab8156e140264736f6c6343000814003300000000000000000000000073d16a9fa7dd9e50ed476c279a3d3c17f508d4a0
0x608060405234801561001057600080fd5b50600436106101375760003560e01c806370480275116100b8578063985751881161007c5780639857518814610336578063a217fddf14610352578063c407687614610370578063d547741f1461038c578063e7cd4a04146103a8578063f2fde38b146103c457610137565b8063704802751461029257806370a08231146102ae578063715018a6146102de5780638da5cb5b146102e857806391d148541461030657610137565b80632f2ff15d116100ff5780632f2ff15d146101f257806336568abe1461020e578063421b2d8b1461022a5780634e23a1441461024657806369e0e3461461026257610137565b806301ffc9a71461013c5780631785f53c1461016c5780632042e5c214610188578063248a9ca3146101a45780632a0acc6a146101d4575b600080fd5b61015660048036038101906101519190611616565b6103e0565b604051610163919061165e565b60405180910390f35b610186600480360381019061018191906116d7565b61045a565b005b6101a2600480360381019061019d91906116d7565b610490565b005b6101be60048036038101906101b9919061173a565b610554565b6040516101cb9190611776565b60405180910390f35b6101dc610574565b6040516101e99190611776565b60405180910390f35b61020c60048036038101906102079190611791565b610598565b005b61022860048036038101906102239190611791565b6105ba565b005b610244600480360381019061023f91906116d7565b610635565b005b610260600480360381019061025b9190611807565b6106fc565b005b61027c600480360381019061027791906116d7565b61096b565b604051610289919061165e565b60405180910390f35b6102ac60048036038101906102a791906116d7565b6109c1565b005b6102c860048036038101906102c391906116d7565b6109f7565b6040516102d59190611856565b60405180910390f35b6102e6610a43565b005b6102f0610a57565b6040516102fd9190611880565b60405180910390f35b610320600480360381019061031b9190611791565b610a80565b60405161032d919061165e565b60405180910390f35b610350600480360381019061034b91906116d7565b610aeb565b005b61035a610bff565b6040516103679190611776565b60405180910390f35b61038a60048036038101906103859190611807565b610c06565b005b6103a660048036038101906103a19190611791565b610f0b565b005b6103c260048036038101906103bd91906116d7565b610f2d565b005b6103de60048036038101906103d991906116d7565b610ff1565b005b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610453575061045282611077565b5b9050919050565b6104626110e1565b61048c7ff23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d882611168565b5050565b6104ba7ff23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d833610a80565b6104f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f0906118f8565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600060016000838152602001908152602001600020600101549050919050565b7ff23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d881565b6105a182610554565b6105aa8161125b565b6105b4838361126f565b50505050565b6105c2611360565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610626576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106308282611168565b505050565b61065f7ff23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d833610a80565b61069e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610695906118f8565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690831515021790555050565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1661078b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107829061198a565b60405180910390fd5b80600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b81526004016107e99291906119aa565b602060405180830381865afa158015610806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082a91906119e8565b101561086b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086290611a87565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016108ca93929190611aa7565b6020604051808303816000875af11580156108e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090d9190611b0a565b5080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546109609190611b66565b925050819055505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6109c96110e1565b6109f37ff23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d88261126f565b5050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b610a4b6110e1565b610a556000611368565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006001600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610b157ff23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d833610a80565b610b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4b906118f8565b60405180910390fd5b610ba18133600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461142c565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690831515021790555050565b6000801b81565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16610c95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8c90611c0c565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1890611c9e565b60405180910390fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541015610da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9d90611d30565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610e03929190611d50565b6020604051808303816000875af1158015610e22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e469190611b0a565b5080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254610e999190611d79565b925050819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f34882e90c95bfeaeb7e0738cfd8af3d1f6ab3d2065dd70f6660b404b9beb35054284604051610eff929190611dad565b60405180910390a35050565b610f1482610554565b610f1d8161125b565b610f278383611168565b50505050565b610f577ff23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d833610a80565b610f96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8d906118f8565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ff96110e1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361106b5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016110629190611880565b60405180910390fd5b61107481611368565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6110e9611360565b73ffffffffffffffffffffffffffffffffffffffff16611107610a57565b73ffffffffffffffffffffffffffffffffffffffff16146111665761112a611360565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161115d9190611880565b60405180910390fd5b565b60006111748383610a80565b156112505760006001600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506111ed611360565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611255565b600090505b92915050565b61126c81611267611360565b611568565b50565b600061127b8383610a80565b61135557600180600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506112f2611360565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905061135a565b600090505b92915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015410156114b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a890611d30565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546115039190611d79565b9250508190555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461155c9190611b66565b92505081905550505050565b6115728282610a80565b6115b55780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016115ac929190611dd6565b60405180910390fd5b5050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6115f3816115be565b81146115fe57600080fd5b50565b600081359050611610816115ea565b92915050565b60006020828403121561162c5761162b6115b9565b5b600061163a84828501611601565b91505092915050565b60008115159050919050565b61165881611643565b82525050565b6000602082019050611673600083018461164f565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116a482611679565b9050919050565b6116b481611699565b81146116bf57600080fd5b50565b6000813590506116d1816116ab565b92915050565b6000602082840312156116ed576116ec6115b9565b5b60006116fb848285016116c2565b91505092915050565b6000819050919050565b61171781611704565b811461172257600080fd5b50565b6000813590506117348161170e565b92915050565b6000602082840312156117505761174f6115b9565b5b600061175e84828501611725565b91505092915050565b61177081611704565b82525050565b600060208201905061178b6000830184611767565b92915050565b600080604083850312156117a8576117a76115b9565b5b60006117b685828601611725565b92505060206117c7858286016116c2565b9150509250929050565b6000819050919050565b6117e4816117d1565b81146117ef57600080fd5b50565b600081359050611801816117db565b92915050565b6000806040838503121561181e5761181d6115b9565b5b600061182c858286016116c2565b925050602061183d858286016117f2565b9150509250929050565b611850816117d1565b82525050565b600060208201905061186b6000830184611847565b92915050565b61187a81611699565b82525050565b60006020820190506118956000830184611871565b92915050565b600082825260208201905092915050565b7f43616c6c6572206973206e6f7420612061646d696e2e00000000000000000000600082015250565b60006118e260168361189b565b91506118ed826118ac565b602082019050919050565b60006020820190508181036000830152611911816118d5565b9050919050565b7f5265636569766572206973206e6f7420696e2074686520696e7465726e616c2060008201527f6c6973742e000000000000000000000000000000000000000000000000000000602082015250565b600061197460258361189b565b915061197f82611918565b604082019050919050565b600060208201905081810360008301526119a381611967565b9050919050565b60006040820190506119bf6000830185611871565b6119cc6020830184611871565b9392505050565b6000815190506119e2816117db565b92915050565b6000602082840312156119fe576119fd6115b9565b5b6000611a0c848285016119d3565b91505092915050565b7f53656e64657220646f6573206e6f7420617070726f766520656e6f756768207460008201527f6f6b656e2e000000000000000000000000000000000000000000000000000000602082015250565b6000611a7160258361189b565b9150611a7c82611a15565b604082019050919050565b60006020820190508181036000830152611aa081611a64565b9050919050565b6000606082019050611abc6000830186611871565b611ac96020830185611871565b611ad66040830184611847565b949350505050565b611ae781611643565b8114611af257600080fd5b50565b600081519050611b0481611ade565b92915050565b600060208284031215611b2057611b1f6115b9565b5b6000611b2e84828501611af5565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611b71826117d1565b9150611b7c836117d1565b9250828201905080821115611b9457611b93611b37565b5b92915050565b7f43616c6c6572206d75737420696e2074686520696e7465726e616c206c69737460008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000611bf660218361189b565b9150611c0182611b9a565b604082019050919050565b60006020820190508181036000830152611c2581611be9565b9050919050565b7f5265636569766572206973206e6f7420696e207468652077686974656c69737460008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000611c8860218361189b565b9150611c9382611c2c565b604082019050919050565b60006020820190508181036000830152611cb781611c7b565b9050919050565b7f53656e64657220646f6573206e6f74206861766520656e6f75676820746f6b6560008201527f6e2e000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d1a60228361189b565b9150611d2582611cbe565b604082019050919050565b60006020820190508181036000830152611d4981611d0d565b9050919050565b6000604082019050611d656000830185611871565b611d726020830184611847565b9392505050565b6000611d84826117d1565b9150611d8f836117d1565b9250828203905081811115611da757611da6611b37565b5b92915050565b6000604082019050611dc26000830185611847565b611dcf6020830184611847565b9392505050565b6000604082019050611deb6000830185611871565b611df86020830184611767565b939250505056fea26469706673582212202eba7612b49b99d5cd4b2651911daa31948145b3585bb34e392d7ab8156e140264736f6c63430008140033