0x608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063a457c2d71161007c578063a457c2d71461030a578063a9059cbb1461033a578063c15254391461036a578063d39ac0cb14610386578063dd62ed3e146103a4578063e63aff63146103d457610137565b806370a082311461028a578063715018a6146102ba5780638ab987ea146102c45780638da5cb5b146102ce57806395d89b41146102ec57610137565b806332424aa3116100ff57806332424aa3146101f657806339509351146102145780633eaaf86b14610244578063465aee8e146102625780636c5808011461028057610137565b806306fdde031461013c578063095ea7b31461015a57806318160ddd1461018a57806323b872dd146101a8578063313ce567146101d8575b600080fd5b6101446103de565b6040516101519190611586565b60405180910390f35b610174600480360381019061016f9190611646565b610470565b60405161018191906116a1565b60405180910390f35b610192610487565b60405161019f91906116cb565b60405180910390f35b6101c260048036038101906101bd91906116e6565b610491565b6040516101cf91906116a1565b60405180910390f35b6101e0610532565b6040516101ed91906116cb565b60405180910390f35b6101fe61053c565b60405161020b91906116cb565b60405180910390f35b61022e60048036038101906102299190611646565b610542565b60405161023b91906116a1565b60405180910390f35b61024c6105e0565b60405161025991906116cb565b60405180910390f35b61026a6105e6565b6040516102779190611748565b60405180910390f35b61028861060c565b005b6102a4600480360381019061029f9190611763565b61069e565b6040516102b191906116cb565b60405180910390f35b6102c26106e7565b005b6102cc61081a565b005b6102d66108ac565b6040516102e39190611748565b60405180910390f35b6102f46108d5565b6040516103019190611586565b60405180910390f35b610324600480360381019061031f9190611646565b610967565b60405161033191906116a1565b60405180910390f35b610354600480360381019061034f9190611646565b610a8e565b60405161036191906116a1565b60405180910390f35b610384600480360381019061037f91906117f5565b610aa5565b005b61038e610b50565b60405161039b9190611748565b60405180910390f35b6103be60048036038101906103b99190611842565b610b7a565b6040516103cb91906116cb565b60405180910390f35b6103dc610c01565b005b6060600480546103ed906118b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610419906118b1565b80156104665780601f1061043b57610100808354040283529160200191610466565b820191906000526020600020905b81548152906001019060200180831161044957829003601f168201915b5050505050905090565b600061047d338484610c93565b6001905092915050565b6000600254905090565b600061049e848484610df0565b81600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561052757600080fd5b600190509392505050565b6000600154905090565b60015481565b60006105d6338484600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105d19190611911565b610c93565b6001905092915050565b60025481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1661062b6108ac565b73ffffffffffffffffffffffffffffffffffffffff1614610681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067890611991565b60405180910390fd5b6001600360146101000a81548160ff021916908315150217905550565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff166107066108ac565b73ffffffffffffffffffffffffffffffffffffffff161461075c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075390611991565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff166108396108ac565b73ffffffffffffffffffffffffffffffffffffffff161461088f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088690611991565b60405180910390fd5b6000600660146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546108e4906118b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610910906118b1565b801561095d5780601f106109325761010080835404028352916020019161095d565b820191906000526020600020905b81548152906001019060200180831161094057829003601f168201915b5050505050905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156109f257600080fd5b610a84338484600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a7f91906119b1565b610c93565b6001905092915050565b6000610a9b338484610df0565b6001905092915050565b60005b82829050811015610b4b57610abb611132565b15610b3857600143610acd9190611911565b600a6000858585818110610ae457610ae36119e5565b5b9050602002016020810190610af99190611763565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8080610b4390611a14565b915050610aa8565b505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16610c206108ac565b73ffffffffffffffffffffffffffffffffffffffff1614610c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6d90611991565b60405180910390fd5b6001600660146101000a81548160ff021916908315150217905550565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ccc57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d0557600080fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610de391906116cb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e2957600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610ec1578173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ec057610ebb818361118a565b61112d565b5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115610f0d57600080fd5b600080600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414158015610f9d575043600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411155b15610fd257610fcb6103e8610fbd6103e58561141e90919063ffffffff16565b61149890919063ffffffff16565b9050610fd7565b600090505b81600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461102291906119b1565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808261107191906119b1565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110bf9190611911565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161112391906116cb565b60405180910390a3505b505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6111b730600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610c93565b81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600267ffffffffffffffff81111561121857611217611a5c565b5b6040519080825280602002602001820160405280156112465781602001602082028036833780820191505090505b509050308160008151811061125e5761125d6119e5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611305573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113299190611aa0565b8160018151811061133d5761133c6119e5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008486601f426113c79190611911565b6040518663ffffffff1660e01b81526004016113e7959493929190611bd0565b600060405180830381600087803b15801561140157600080fd5b505af1158015611415573d6000803e3d6000fd5b50505050505050565b60008083036114305760009050611492565b6000828461143e9190611c2a565b905082848261144d9190611c9b565b1461148d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148490611d3e565b60405180910390fd5b809150505b92915050565b60008082116114dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d390611daa565b60405180910390fd5b600082846114ea9190611c9b565b90508091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611530578082015181840152602081019050611515565b60008484015250505050565b6000601f19601f8301169050919050565b6000611558826114f6565b6115628185611501565b9350611572818560208601611512565b61157b8161153c565b840191505092915050565b600060208201905081810360008301526115a0818461154d565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115dd826115b2565b9050919050565b6115ed816115d2565b81146115f857600080fd5b50565b60008135905061160a816115e4565b92915050565b6000819050919050565b61162381611610565b811461162e57600080fd5b50565b6000813590506116408161161a565b92915050565b6000806040838503121561165d5761165c6115a8565b5b600061166b858286016115fb565b925050602061167c85828601611631565b9150509250929050565b60008115159050919050565b61169b81611686565b82525050565b60006020820190506116b66000830184611692565b92915050565b6116c581611610565b82525050565b60006020820190506116e060008301846116bc565b92915050565b6000806000606084860312156116ff576116fe6115a8565b5b600061170d868287016115fb565b935050602061171e868287016115fb565b925050604061172f86828701611631565b9150509250925092565b611742816115d2565b82525050565b600060208201905061175d6000830184611739565b92915050565b600060208284031215611779576117786115a8565b5b6000611787848285016115fb565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126117b5576117b4611790565b5b8235905067ffffffffffffffff8111156117d2576117d1611795565b5b6020830191508360208202830111156117ee576117ed61179a565b5b9250929050565b6000806020838503121561180c5761180b6115a8565b5b600083013567ffffffffffffffff81111561182a576118296115ad565b5b6118368582860161179f565b92509250509250929050565b60008060408385031215611859576118586115a8565b5b6000611867858286016115fb565b9250506020611878858286016115fb565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806118c957607f821691505b6020821081036118dc576118db611882565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061191c82611610565b915061192783611610565b925082820190508082111561193f5761193e6118e2565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061197b602083611501565b915061198682611945565b602082019050919050565b600060208201905081810360008301526119aa8161196e565b9050919050565b60006119bc82611610565b91506119c783611610565b92508282039050818111156119df576119de6118e2565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611a1f82611610565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611a5157611a506118e2565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050611a9a816115e4565b92915050565b600060208284031215611ab657611ab56115a8565b5b6000611ac484828501611a8b565b91505092915050565b6000819050919050565b6000819050919050565b6000611afc611af7611af284611acd565b611ad7565b611610565b9050919050565b611b0c81611ae1565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611b47816115d2565b82525050565b6000611b598383611b3e565b60208301905092915050565b6000602082019050919050565b6000611b7d82611b12565b611b878185611b1d565b9350611b9283611b2e565b8060005b83811015611bc3578151611baa8882611b4d565b9750611bb583611b65565b925050600181019050611b96565b5085935050505092915050565b600060a082019050611be560008301886116bc565b611bf26020830187611b03565b8181036040830152611c048186611b72565b9050611c136060830185611739565b611c2060808301846116bc565b9695505050505050565b6000611c3582611610565b9150611c4083611610565b9250828202611c4e81611610565b91508282048414831517611c6557611c646118e2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ca682611610565b9150611cb183611610565b925082611cc157611cc0611c6c565b5b828204905092915050565b7f536166654d6174683a20206d756c7469706c69636174696f6e206f766572666c60008201527f6f77000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d28602283611501565b9150611d3382611ccc565b604082019050919050565b60006020820190508181036000830152611d5781611d1b565b9050919050565b7f536166654d6174683a20206469766973696f6e206279207a65726f0000000000600082015250565b6000611d94601b83611501565b9150611d9f82611d5e565b602082019050919050565b60006020820190508181036000830152611dc381611d87565b905091905056fea264697066735822122057761c73f889e1714ad2b243d45fe35a7dc692f2ba047e42ca3e35219219e27164736f6c63430008130033
0x60806040526009600155600154600a6200001a9190620004d3565b6509184e72a0006200002d919062000524565b6002556000600360146101000a81548160ff0219169083151502179055506040518060400160405280600481526020017f444552500000000000000000000000000000000000000000000000000000000081525060049081620000919190620007df565b506040518060400160405280600481526020017f444552500000000000000000000000000000000000000000000000000000000081525060059081620000d89190620007df565b50737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660146101000a81548160ff0219169083151502179055503480156200015657600080fd5b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600254600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051620003389190620008d7565b60405180910390a3620008f4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620003d457808604811115620003ac57620003ab62000346565b5b6001851615620003bc5780820291505b8081029050620003cc8562000375565b94506200038c565b94509492505050565b600082620003ef5760019050620004c2565b81620003ff5760009050620004c2565b8160018114620004185760028114620004235762000459565b6001915050620004c2565b60ff84111562000438576200043762000346565b5b8360020a91508482111562000452576200045162000346565b5b50620004c2565b5060208310610133831016604e8410600b8410161715620004935782820a9050838111156200048d576200048c62000346565b5b620004c2565b620004a2848484600162000382565b92509050818404811115620004bc57620004bb62000346565b5b81810290505b9392505050565b6000819050919050565b6000620004e082620004c9565b9150620004ed83620004c9565b92506200051c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620003dd565b905092915050565b60006200053182620004c9565b91506200053e83620004c9565b92508282026200054e81620004c9565b9150828204841483151762000568576200056762000346565b5b5092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005f157607f821691505b602082108103620006075762000606620005a9565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006717fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000632565b6200067d868362000632565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620006c0620006ba620006b484620004c9565b62000695565b620004c9565b9050919050565b6000819050919050565b620006dc836200069f565b620006f4620006eb82620006c7565b8484546200063f565b825550505050565b600090565b6200070b620006fc565b62000718818484620006d1565b505050565b5b8181101562000740576200073460008262000701565b6001810190506200071e565b5050565b601f8211156200078f5762000759816200060d565b620007648462000622565b8101602085101562000774578190505b6200078c620007838562000622565b8301826200071d565b50505b505050565b600082821c905092915050565b6000620007b46000198460080262000794565b1980831691505092915050565b6000620007cf8383620007a1565b9150826002028217905092915050565b620007ea826200056f565b67ffffffffffffffff8111156200080657620008056200057a565b5b620008128254620005d8565b6200081f82828562000744565b600060209050601f83116001811462000857576000841562000842578287015190505b6200084e8582620007c1565b865550620008be565b601f19841662000867866200060d565b60005b8281101562000891578489015182556001820191506020850194506020810190506200086a565b86831015620008b15784890151620008ad601f891682620007a1565b8355505b6001600288020188555050505b505050505050565b620008d181620004c9565b82525050565b6000602082019050620008ee6000830184620008c6565b92915050565b611e0080620009046000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063a457c2d71161007c578063a457c2d71461030a578063a9059cbb1461033a578063c15254391461036a578063d39ac0cb14610386578063dd62ed3e146103a4578063e63aff63146103d457610137565b806370a082311461028a578063715018a6146102ba5780638ab987ea146102c45780638da5cb5b146102ce57806395d89b41146102ec57610137565b806332424aa3116100ff57806332424aa3146101f657806339509351146102145780633eaaf86b14610244578063465aee8e146102625780636c5808011461028057610137565b806306fdde031461013c578063095ea7b31461015a57806318160ddd1461018a57806323b872dd146101a8578063313ce567146101d8575b600080fd5b6101446103de565b6040516101519190611586565b60405180910390f35b610174600480360381019061016f9190611646565b610470565b60405161018191906116a1565b60405180910390f35b610192610487565b60405161019f91906116cb565b60405180910390f35b6101c260048036038101906101bd91906116e6565b610491565b6040516101cf91906116a1565b60405180910390f35b6101e0610532565b6040516101ed91906116cb565b60405180910390f35b6101fe61053c565b60405161020b91906116cb565b60405180910390f35b61022e60048036038101906102299190611646565b610542565b60405161023b91906116a1565b60405180910390f35b61024c6105e0565b60405161025991906116cb565b60405180910390f35b61026a6105e6565b6040516102779190611748565b60405180910390f35b61028861060c565b005b6102a4600480360381019061029f9190611763565b61069e565b6040516102b191906116cb565b60405180910390f35b6102c26106e7565b005b6102cc61081a565b005b6102d66108ac565b6040516102e39190611748565b60405180910390f35b6102f46108d5565b6040516103019190611586565b60405180910390f35b610324600480360381019061031f9190611646565b610967565b60405161033191906116a1565b60405180910390f35b610354600480360381019061034f9190611646565b610a8e565b60405161036191906116a1565b60405180910390f35b610384600480360381019061037f91906117f5565b610aa5565b005b61038e610b50565b60405161039b9190611748565b60405180910390f35b6103be60048036038101906103b99190611842565b610b7a565b6040516103cb91906116cb565b60405180910390f35b6103dc610c01565b005b6060600480546103ed906118b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610419906118b1565b80156104665780601f1061043b57610100808354040283529160200191610466565b820191906000526020600020905b81548152906001019060200180831161044957829003601f168201915b5050505050905090565b600061047d338484610c93565b6001905092915050565b6000600254905090565b600061049e848484610df0565b81600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561052757600080fd5b600190509392505050565b6000600154905090565b60015481565b60006105d6338484600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105d19190611911565b610c93565b6001905092915050565b60025481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1661062b6108ac565b73ffffffffffffffffffffffffffffffffffffffff1614610681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067890611991565b60405180910390fd5b6001600360146101000a81548160ff021916908315150217905550565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff166107066108ac565b73ffffffffffffffffffffffffffffffffffffffff161461075c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075390611991565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff166108396108ac565b73ffffffffffffffffffffffffffffffffffffffff161461088f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088690611991565b60405180910390fd5b6000600660146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546108e4906118b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610910906118b1565b801561095d5780601f106109325761010080835404028352916020019161095d565b820191906000526020600020905b81548152906001019060200180831161094057829003601f168201915b5050505050905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156109f257600080fd5b610a84338484600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a7f91906119b1565b610c93565b6001905092915050565b6000610a9b338484610df0565b6001905092915050565b60005b82829050811015610b4b57610abb611132565b15610b3857600143610acd9190611911565b600a6000858585818110610ae457610ae36119e5565b5b9050602002016020810190610af99190611763565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8080610b4390611a14565b915050610aa8565b505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16610c206108ac565b73ffffffffffffffffffffffffffffffffffffffff1614610c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6d90611991565b60405180910390fd5b6001600660146101000a81548160ff021916908315150217905550565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ccc57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d0557600080fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610de391906116cb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e2957600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610ec1578173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ec057610ebb818361118a565b61112d565b5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115610f0d57600080fd5b600080600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414158015610f9d575043600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411155b15610fd257610fcb6103e8610fbd6103e58561141e90919063ffffffff16565b61149890919063ffffffff16565b9050610fd7565b600090505b81600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461102291906119b1565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808261107191906119b1565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110bf9190611911565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161112391906116cb565b60405180910390a3505b505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6111b730600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610c93565b81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600267ffffffffffffffff81111561121857611217611a5c565b5b6040519080825280602002602001820160405280156112465781602001602082028036833780820191505090505b509050308160008151811061125e5761125d6119e5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611305573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113299190611aa0565b8160018151811061133d5761133c6119e5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008486601f426113c79190611911565b6040518663ffffffff1660e01b81526004016113e7959493929190611bd0565b600060405180830381600087803b15801561140157600080fd5b505af1158015611415573d6000803e3d6000fd5b50505050505050565b60008083036114305760009050611492565b6000828461143e9190611c2a565b905082848261144d9190611c9b565b1461148d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148490611d3e565b60405180910390fd5b809150505b92915050565b60008082116114dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d390611daa565b60405180910390fd5b600082846114ea9190611c9b565b90508091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611530578082015181840152602081019050611515565b60008484015250505050565b6000601f19601f8301169050919050565b6000611558826114f6565b6115628185611501565b9350611572818560208601611512565b61157b8161153c565b840191505092915050565b600060208201905081810360008301526115a0818461154d565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115dd826115b2565b9050919050565b6115ed816115d2565b81146115f857600080fd5b50565b60008135905061160a816115e4565b92915050565b6000819050919050565b61162381611610565b811461162e57600080fd5b50565b6000813590506116408161161a565b92915050565b6000806040838503121561165d5761165c6115a8565b5b600061166b858286016115fb565b925050602061167c85828601611631565b9150509250929050565b60008115159050919050565b61169b81611686565b82525050565b60006020820190506116b66000830184611692565b92915050565b6116c581611610565b82525050565b60006020820190506116e060008301846116bc565b92915050565b6000806000606084860312156116ff576116fe6115a8565b5b600061170d868287016115fb565b935050602061171e868287016115fb565b925050604061172f86828701611631565b9150509250925092565b611742816115d2565b82525050565b600060208201905061175d6000830184611739565b92915050565b600060208284031215611779576117786115a8565b5b6000611787848285016115fb565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126117b5576117b4611790565b5b8235905067ffffffffffffffff8111156117d2576117d1611795565b5b6020830191508360208202830111156117ee576117ed61179a565b5b9250929050565b6000806020838503121561180c5761180b6115a8565b5b600083013567ffffffffffffffff81111561182a576118296115ad565b5b6118368582860161179f565b92509250509250929050565b60008060408385031215611859576118586115a8565b5b6000611867858286016115fb565b9250506020611878858286016115fb565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806118c957607f821691505b6020821081036118dc576118db611882565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061191c82611610565b915061192783611610565b925082820190508082111561193f5761193e6118e2565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061197b602083611501565b915061198682611945565b602082019050919050565b600060208201905081810360008301526119aa8161196e565b9050919050565b60006119bc82611610565b91506119c783611610565b92508282039050818111156119df576119de6118e2565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611a1f82611610565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611a5157611a506118e2565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050611a9a816115e4565b92915050565b600060208284031215611ab657611ab56115a8565b5b6000611ac484828501611a8b565b91505092915050565b6000819050919050565b6000819050919050565b6000611afc611af7611af284611acd565b611ad7565b611610565b9050919050565b611b0c81611ae1565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611b47816115d2565b82525050565b6000611b598383611b3e565b60208301905092915050565b6000602082019050919050565b6000611b7d82611b12565b611b878185611b1d565b9350611b9283611b2e565b8060005b83811015611bc3578151611baa8882611b4d565b9750611bb583611b65565b925050600181019050611b96565b5085935050505092915050565b600060a082019050611be560008301886116bc565b611bf26020830187611b03565b8181036040830152611c048186611b72565b9050611c136060830185611739565b611c2060808301846116bc565b9695505050505050565b6000611c3582611610565b9150611c4083611610565b9250828202611c4e81611610565b91508282048414831517611c6557611c646118e2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ca682611610565b9150611cb183611610565b925082611cc157611cc0611c6c565b5b828204905092915050565b7f536166654d6174683a20206d756c7469706c69636174696f6e206f766572666c60008201527f6f77000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d28602283611501565b9150611d3382611ccc565b604082019050919050565b60006020820190508181036000830152611d5781611d1b565b9050919050565b7f536166654d6174683a20206469766973696f6e206279207a65726f0000000000600082015250565b6000611d94601b83611501565b9150611d9f82611d5e565b602082019050919050565b60006020820190508181036000830152611dc381611d87565b905091905056fea264697066735822122057761c73f889e1714ad2b243d45fe35a7dc692f2ba047e42ca3e35219219e27164736f6c63430008130033