0x60c06040523480156200001157600080fd5b5060405162002711380380620027118339818101604052810190620000379190620003b8565b82620000586200004c620000b660201b60201c565b620000be60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050508160ff1660a08160ff16815250508060039081620000ac91906200067e565b5050505062000765565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001c38262000196565b9050919050565b620001d581620001b6565b8114620001e157600080fd5b50565b600081519050620001f581620001ca565b92915050565b600060ff82169050919050565b6200021381620001fb565b81146200021f57600080fd5b50565b600081519050620002338162000208565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200028e8262000243565b810181811067ffffffffffffffff82111715620002b057620002af62000254565b5b80604052505050565b6000620002c562000182565b9050620002d3828262000283565b919050565b600067ffffffffffffffff821115620002f657620002f562000254565b5b620003018262000243565b9050602081019050919050565b60005b838110156200032e57808201518184015260208101905062000311565b60008484015250505050565b6000620003516200034b84620002d8565b620002b9565b90508281526020810184848401111562000370576200036f6200023e565b5b6200037d8482856200030e565b509392505050565b600082601f8301126200039d576200039c62000239565b5b8151620003af8482602086016200033a565b91505092915050565b600080600060608486031215620003d457620003d36200018c565b5b6000620003e486828701620001e4565b9350506020620003f78682870162000222565b925050604084015167ffffffffffffffff8111156200041b576200041a62000191565b5b620004298682870162000385565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200048657607f821691505b6020821081036200049c576200049b6200043e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620004c7565b620005128683620004c7565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200055f6200055962000553846200052a565b62000534565b6200052a565b9050919050565b6000819050919050565b6200057b836200053e565b620005936200058a8262000566565b848454620004d4565b825550505050565b600090565b620005aa6200059b565b620005b781848462000570565b505050565b5b81811015620005df57620005d3600082620005a0565b600181019050620005bd565b5050565b601f8211156200062e57620005f881620004a2565b6200060384620004b7565b8101602085101562000613578190505b6200062b6200062285620004b7565b830182620005bc565b50505b505050565b600082821c905092915050565b6000620006536000198460080262000633565b1980831691505092915050565b60006200066e838362000640565b9150826002028217905092915050565b620006898262000433565b67ffffffffffffffff811115620006a557620006a462000254565b5b620006b182546200046d565b620006be828285620005e3565b600060209050601f831160018114620006f65760008415620006e1578287015190505b620006ed858262000660565b8655506200075d565b601f1984166200070686620004a2565b60005b82811015620007305784890151825560018201915060208501945060208101905062000709565b868310156200075057848901516200074c601f89168262000640565b8355505b6001600288020188555050505b505050505050565b60805160a051611f6a620007a76000396000818161030b01526103990152600081816102e701528181610465015281816105ad01526107b40152611f6a6000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638298b0301161008c578063b6ebe53911610066578063b6ebe5391461024b578063d547cfb71461027b578063d753a63d14610299578063f2fde38b146102c9576100ea565b80638298b030146101cd5780638c6f12f0146101fd5780638da5cb5b1461022d576100ea565b806324830563116100c8578063248305631461014757806330176e13146101775780635e50864f14610193578063715018a6146101c3576100ea565b806304f3bcec146100ef57806305bc64eb1461010d5780630ee489481461012b575b600080fd5b6100f76102e5565b6040516101049190611016565b60405180910390f35b610115610309565b604051610122919061104d565b60405180910390f35b610145600480360381019061014091906110e0565b61032d565b005b610161600480360381019061015c9190611156565b610390565b60405161016e9190611213565b60405180910390f35b610191600480360381019061018c919061136a565b6103e7565b005b6101ad60048036038101906101a891906113b3565b610402565b6040516101ba91906113ef565b60405180910390f35b6101cb61044d565b005b6101e760048036038101906101e2919061142f565b610461565b6040516101f491906113ef565b60405180910390f35b61021760048036038101906102129190611156565b6105a1565b60405161022491906115f7565b60405180910390f35b6102356106d9565b6040516102429190611016565b60405180910390f35b610265600480360381019061026091906113b3565b610702565b60405161027291906113ef565b60405180910390f35b610283610722565b6040516102909190611213565b60405180910390f35b6102b360048036038101906102ae919061142f565b6107b0565b6040516102c091906113ef565b60405180910390f35b6102e360048036038101906102de91906113b3565b6108f0565b005b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b610335610973565b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060036103c07f000000000000000000000000000000000000000000000000000000000000000060ff166109f1565b6040516020016103d1929190611799565b6040516020818303038152906040529050919050565b6103ef610973565b80600390816103fe9190611969565b5050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054119050919050565b610455610973565b61045f6000610abf565b565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104e8576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104f182610b83565b6104fe576000905061059c565b60018060008460c001602081019061051691906113b3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461055f9190611a6a565b9250508190555081600001357f504e4727721de18c6bf7f66448a6ff6da00aa4b1f00b6034e71723ae7ce6373a60405160405180910390a2600190505b919050565b6105a9610f2d565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16638c6f12f0846040518263ffffffff1660e01b81526004016106049190611aad565b600060405180830381865afa158015610621573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061064a9190611cf0565b9050600061065c826101200151610b95565b5090503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106cf57836040517fb923d2610000000000000000000000000000000000000000000000000000000081526004016106c69190611aad565b60405180910390fd5b8192505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60026020528060005260406000206000915054906101000a900460ff1681565b6003805461072f90611648565b80601f016020809104026020016040519081016040528092919081815260200182805461075b90611648565b80156107a85780601f1061077d576101008083540402835291602001916107a8565b820191906000526020600020905b81548152906001019060200180831161078b57829003601f168201915b505050505081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610837576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61084082610bb6565b61084d57600090506108eb565b60018060008460c001602081019061086591906113b3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108ae9190611d39565b9250508190555081600001357fa0785ec0b9bf31a5475d33c716fb9f500f0ea0bb9e4bc10ec39d5db763c1da1560405160405180910390a2600190505b919050565b6108f8610973565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095e90611ddf565b60405180910390fd5b61097081610abf565b50565b61097b610bc8565b73ffffffffffffffffffffffffffffffffffffffff166109996106d9565b73ffffffffffffffffffffffffffffffffffffffff16146109ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e690611e4b565b60405180910390fd5b565b606060006001610a0084610bd0565b01905060008167ffffffffffffffff811115610a1f57610a1e61123f565b5b6040519080825280601f01601f191660200182016040528015610a515781602001600182028036833780820191505090505b509050600082602001820190505b600115610ab4578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581610aa857610aa7611e6b565b5b04945060008503610a5f575b819350505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000610b8e82610d23565b9050919050565b6000606082806020019051810190610bad9190611ed8565b91509150915091565b6000610bc182610d35565b9050919050565b600033905090565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310610c2e577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381610c2457610c23611e6b565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310610c6b576d04ee2d6d415b85acef81000000008381610c6157610c60611e6b565b5b0492506020810190505b662386f26fc100008310610c9a57662386f26fc100008381610c9057610c8f611e6b565b5b0492506010810190505b6305f5e1008310610cc3576305f5e1008381610cb957610cb8611e6b565b5b0492506008810190505b6127108310610ce8576127108381610cde57610cdd611e6b565b5b0492506004810190505b60648310610d0b5760648381610d0157610d00611e6b565b5b0492506002810190505b600a8310610d1a576001810190505b80915050919050565b6000610d2e82610da9565b9050919050565b6000610d4082610e60565b610d4d5760009050610da4565b610d688260c0016020810190610d6391906113b3565b610402565b15610d9f576040517f18b2623200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600190505b919050565b6000610db482610f17565b610dc15760009050610e5b565b600260008360e0016020810190610dd891906113b3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e56576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600190505b919050565b6000610e6b82610f22565b610e785760009050610f12565b600260008360e0016020810190610e8f91906113b3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f0d576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600190505b919050565b600060019050919050565b600060019050919050565b6040518061014001604052806000801916815260200160008019168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff16815260200160008019168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600015158152602001606081525090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061100082610fd5565b9050919050565b61101081610ff5565b82525050565b600060208201905061102b6000830184611007565b92915050565b600060ff82169050919050565b61104781611031565b82525050565b6000602082019050611062600083018461103e565b92915050565b6000604051905090565b600080fd5b600080fd5b61108581610ff5565b811461109057600080fd5b50565b6000813590506110a28161107c565b92915050565b60008115159050919050565b6110bd816110a8565b81146110c857600080fd5b50565b6000813590506110da816110b4565b92915050565b600080604083850312156110f7576110f6611072565b5b600061110585828601611093565b9250506020611116858286016110cb565b9150509250929050565b6000819050919050565b61113381611120565b811461113e57600080fd5b50565b6000813590506111508161112a565b92915050565b60006020828403121561116c5761116b611072565b5b600061117a84828501611141565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156111bd5780820151818401526020810190506111a2565b60008484015250505050565b6000601f19601f8301169050919050565b60006111e582611183565b6111ef818561118e565b93506111ff81856020860161119f565b611208816111c9565b840191505092915050565b6000602082019050818103600083015261122d81846111da565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611277826111c9565b810181811067ffffffffffffffff821117156112965761129561123f565b5b80604052505050565b60006112a9611068565b90506112b5828261126e565b919050565b600067ffffffffffffffff8211156112d5576112d461123f565b5b6112de826111c9565b9050602081019050919050565b82818337600083830152505050565b600061130d611308846112ba565b61129f565b9050828152602081018484840111156113295761132861123a565b5b6113348482856112eb565b509392505050565b600082601f83011261135157611350611235565b5b81356113618482602086016112fa565b91505092915050565b6000602082840312156113805761137f611072565b5b600082013567ffffffffffffffff81111561139e5761139d611077565b5b6113aa8482850161133c565b91505092915050565b6000602082840312156113c9576113c8611072565b5b60006113d784828501611093565b91505092915050565b6113e9816110a8565b82525050565b600060208201905061140460008301846113e0565b92915050565b600080fd5b600061014082840312156114265761142561140a565b5b81905092915050565b60006020828403121561144557611444611072565b5b600082013567ffffffffffffffff81111561146357611462611077565b5b61146f8482850161140f565b91505092915050565b61148181611120565b82525050565b600067ffffffffffffffff82169050919050565b6114a481611487565b82525050565b6114b381610ff5565b82525050565b6114c2816110a8565b82525050565b600081519050919050565b600082825260208201905092915050565b60006114ef826114c8565b6114f981856114d3565b935061150981856020860161119f565b611512816111c9565b840191505092915050565b6000610140830160008301516115366000860182611478565b5060208301516115496020860182611478565b50604083015161155c604086018261149b565b50606083015161156f606086018261149b565b506080830151611582608086018261149b565b5060a083015161159560a0860182611478565b5060c08301516115a860c08601826114aa565b5060e08301516115bb60e08601826114aa565b506101008301516115d06101008601826114b9565b506101208301518482036101208601526115ea82826114e4565b9150508091505092915050565b60006020820190508181036000830152611611818461151d565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061166057607f821691505b60208210810361167357611672611619565b5b50919050565b600081905092915050565b60008190508160005260206000209050919050565b600081546116a681611648565b6116b08186611679565b945060018216600081146116cb57600181146116e057611713565b60ff1983168652811515820286019350611713565b6116e985611684565b60005b8381101561170b578154818901526001820191506020810190506116ec565b838801955050505b50505092915050565b600061172782611183565b6117318185611679565b935061174181856020860161119f565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b6000611783600583611679565b915061178e8261174d565b600582019050919050565b60006117a58285611699565b91506117b1828461171c565b91506117bc82611776565b91508190509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026118157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826117d8565b61181f86836117d8565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600061186661186161185c84611837565b611841565b611837565b9050919050565b6000819050919050565b6118808361184b565b61189461188c8261186d565b8484546117e5565b825550505050565b600090565b6118a961189c565b6118b4818484611877565b505050565b5b818110156118d8576118cd6000826118a1565b6001810190506118ba565b5050565b601f82111561191d576118ee81611684565b6118f7846117c8565b81016020851015611906578190505b61191a611912856117c8565b8301826118b9565b50505b505050565b600082821c905092915050565b600061194060001984600802611922565b1980831691505092915050565b6000611959838361192f565b9150826002028217905092915050565b61197282611183565b67ffffffffffffffff81111561198b5761198a61123f565b5b6119958254611648565b6119a08282856118dc565b600060209050601f8311600181146119d357600084156119c1578287015190505b6119cb858261194d565b865550611a33565b601f1984166119e186611684565b60005b82811015611a09578489015182556001820191506020850194506020810190506119e4565b86831015611a265784890151611a22601f89168261192f565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611a7582611837565b9150611a8083611837565b9250828203905081811115611a9857611a97611a3b565b5b92915050565b611aa781611120565b82525050565b6000602082019050611ac26000830184611a9e565b92915050565b600080fd5b600080fd5b600081519050611ae18161112a565b92915050565b611af081611487565b8114611afb57600080fd5b50565b600081519050611b0d81611ae7565b92915050565b600081519050611b228161107c565b92915050565b600081519050611b37816110b4565b92915050565b600067ffffffffffffffff821115611b5857611b5761123f565b5b611b61826111c9565b9050602081019050919050565b6000611b81611b7c84611b3d565b61129f565b905082815260208101848484011115611b9d57611b9c61123a565b5b611ba884828561119f565b509392505050565b600082601f830112611bc557611bc4611235565b5b8151611bd5848260208601611b6e565b91505092915050565b60006101408284031215611bf557611bf4611ac8565b5b611c0061014061129f565b90506000611c1084828501611ad2565b6000830152506020611c2484828501611ad2565b6020830152506040611c3884828501611afe565b6040830152506060611c4c84828501611afe565b6060830152506080611c6084828501611afe565b60808301525060a0611c7484828501611ad2565b60a08301525060c0611c8884828501611b13565b60c08301525060e0611c9c84828501611b13565b60e083015250610100611cb184828501611b28565b6101008301525061012082015167ffffffffffffffff811115611cd757611cd6611acd565b5b611ce384828501611bb0565b6101208301525092915050565b600060208284031215611d0657611d05611072565b5b600082015167ffffffffffffffff811115611d2457611d23611077565b5b611d3084828501611bde565b91505092915050565b6000611d4482611837565b9150611d4f83611837565b9250828201905080821115611d6757611d66611a3b565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611dc960268361118e565b9150611dd482611d6d565b604082019050919050565b60006020820190508181036000830152611df881611dbc565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611e3560208361118e565b9150611e4082611dff565b602082019050919050565b60006020820190508181036000830152611e6481611e28565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ea582610fd5565b9050919050565b611eb581611e9a565b8114611ec057600080fd5b50565b600081519050611ed281611eac565b92915050565b60008060408385031215611eef57611eee611072565b5b6000611efd85828601611ec3565b925050602083015167ffffffffffffffff811115611f1e57611f1d611077565b5b611f2a85828601611bb0565b915050925092905056fea26469706673582212201c4f6470e6d87abb1bf22ae263df0fdea40a0eb2bfecf3bd9ee97da1c7145dcf64736f6c634300081300330000000000000000000000004560fecd62b14a463be44d40fe5cfd595eec011300000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000003068747470733a2f2f7777772e746f61737465722e66696e616e63652f6173736574732f7363726f6c6c2d62616467652f00000000000000000000000000000000