0x60a06040523480156200001157600080fd5b5060405162001cc338038062001cc38339818101604052810190620000379190620000dc565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050506200010e565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000a48262000077565b9050919050565b620000b68162000097565b8114620000c257600080fd5b50565b600081519050620000d681620000ab565b92915050565b600060208284031215620000f557620000f462000072565b5b60006200010584828501620000c5565b91505092915050565b608051611b93620001306000396000818160b301526107950152611b936000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630546660e1461004657806328d7b1d31461006257806328f150eb14610093575b600080fd5b610060600480360381019061005b9190610cdd565b6100b1565b005b61007c60048036038101906100779190610e28565b610247565b60405161008a929190610f43565b60405180910390f35b61009b610793565b6040516100a89190610f82565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461013f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161013690611020565b60405180910390fd5b818190508484905014610187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161017e9061108c565b60405180910390fd5b60005b848490508110156102405761022d8585838181106101ab576101aa6110ac565b5b90506020020160208101906101c091906110db565b8484848181106101d3576101d26110ac565b5b90506020028101906101e59190611117565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506107b7565b8080610238906111a9565b91505061018a565b5050505050565b60006060600086905060008173ffffffffffffffffffffffffffffffffffffffff16639212051c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561029d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102c19190611207565b9050600081141561030f5760006040518060400160405280601e81526020017f47656c61746f4d616b65724a6f623a204e6f206a6f6273206c6973746564000081525093509350505061078a565b8086106103ab57600061032d6001836103289190611234565b61087a565b60405160200161033d9190611316565b604051602081830303815290604052905060006103598861087a565b604051602001610369919061135e565b60405160208183030381529060405290506000828260405160200161038f929190611384565b604051602081830303815290604052955095505050505061078a565b60008186116103ba57856103bc565b815b905060008973ffffffffffffffffffffffffffffffffffffffff1663a613ff9c8a8a856040518463ffffffff1660e01b81526004016103fd939291906113c6565b6000604051808303816000875af115801561041c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061044591906116ca565b90506000805b825181101561049a57828181518110610467576104666110ac565b5b60200260200101516020015115610487578180610483906111a9565b9250505b8080610492906111a9565b91505061044b565b5060008114156104ea5760006040518060400160405280602081526020017f47656c61746f4d616b65724a6f623a204e6f20776f726b61626c65206a6f627381525096509650505050505061078a565b60008167ffffffffffffffff811115610506576105056113fd565b5b6040519080825280602002602001820160405280156105345781602001602082028036833780820191505090505b50905060008267ffffffffffffffff811115610553576105526113fd565b5b60405190808252806020026020018201604052801561058657816020015b60608152602001906001900390816105715790505b5090506000805b85518110156106fc578581815181106105a9576105a86110ac565b5b602002602001015160200151156106e9578581815181106105cd576105cc6110ac565b5b6020026020010151600001518483815181106105ec576105eb6110ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050631d2ab00060e01b8e878381518110610642576106416110ac565b5b60200260200101516040015160405160240161065f929190611713565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050508383815181106106cf576106ce6110ac565b5b602002602001018190525081806106e5906111a9565b9250505b80806106f4906111a9565b91505061058d565b506000630546660e60e01b848460405160240161071a92919061190d565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506001819a509a505050505050505050505b94509492505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000808373ffffffffffffffffffffffffffffffffffffffff16836040516107df9190611944565b6000604051808303816000865af19150503d806000811461081c576040519150601f19603f3d011682016040523d82523d6000602084013e610821565b606091505b509150915081610874576108736040518060400160405280601081526020017f47656c61746f4d616b65724a6f623a20000000000000000000000000000000008152508261095290919063ffffffff16565b5b50505050565b60606000600161088984610abb565b01905060008167ffffffffffffffff8111156108a8576108a76113fd565b5b6040519080825280601f01601f1916602001820160405280156108da5781602001600182028036833780820191505090505b509050600082602001820190505b600115610947578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816109315761093061195b565b5b049450600085141561094257610947565b6108e8565b819350505050919050565b600460208351610962919061198a565b1415610a5f576000826020015190506308c379a060e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415610a035760448301925081836040516020016109b8929190611a02565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fa9190611a5f565b60405180910390fd5b81604051602001610a149190611acd565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a569190611a5f565b60405180910390fd5b80604051602001610a709190611b3b565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab29190611a5f565b60405180910390fd5b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310610b19577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381610b0f57610b0e61195b565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310610b56576d04ee2d6d415b85acef81000000008381610b4c57610b4b61195b565b5b0492506020810190505b662386f26fc100008310610b8557662386f26fc100008381610b7b57610b7a61195b565b5b0492506010810190505b6305f5e1008310610bae576305f5e1008381610ba457610ba361195b565b5b0492506008810190505b6127108310610bd3576127108381610bc957610bc861195b565b5b0492506004810190505b60648310610bf65760648381610bec57610beb61195b565b5b0492506002810190505b600a8310610c05576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c4757610c46610c22565b5b8235905067ffffffffffffffff811115610c6457610c63610c27565b5b602083019150836020820283011115610c8057610c7f610c2c565b5b9250929050565b60008083601f840112610c9d57610c9c610c22565b5b8235905067ffffffffffffffff811115610cba57610cb9610c27565b5b602083019150836020820283011115610cd657610cd5610c2c565b5b9250929050565b60008060008060408587031215610cf757610cf6610c18565b5b600085013567ffffffffffffffff811115610d1557610d14610c1d565b5b610d2187828801610c31565b9450945050602085013567ffffffffffffffff811115610d4457610d43610c1d565b5b610d5087828801610c87565b925092505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610d8982610d5e565b9050919050565b610d9981610d7e565b8114610da457600080fd5b50565b600081359050610db681610d90565b92915050565b6000819050919050565b610dcf81610dbc565b8114610dda57600080fd5b50565b600081359050610dec81610dc6565b92915050565b6000819050919050565b610e0581610df2565b8114610e1057600080fd5b50565b600081359050610e2281610dfc565b92915050565b60008060008060808587031215610e4257610e41610c18565b5b6000610e5087828801610da7565b9450506020610e6187828801610ddd565b9350506040610e7287828801610e13565b9250506060610e8387828801610e13565b91505092959194509250565b60008115159050919050565b610ea481610e8f565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610ee4578082015181840152602081019050610ec9565b83811115610ef3576000848401525b50505050565b6000601f19601f8301169050919050565b6000610f1582610eaa565b610f1f8185610eb5565b9350610f2f818560208601610ec6565b610f3881610ef9565b840191505092915050565b6000604082019050610f586000830185610e9b565b8181036020830152610f6a8184610f0a565b90509392505050565b610f7c81610d7e565b82525050565b6000602082019050610f976000830184610f73565b92915050565b600082825260208201905092915050565b7f47656c61746f4d616b65724a6f623a204f6e6c79206465646963617465644d7360008201527f6753656e64657200000000000000000000000000000000000000000000000000602082015250565b600061100a602783610f9d565b915061101582610fae565b604082019050919050565b6000602082019050818103600083015261103981610ffd565b9050919050565b7f47656c61746f4d616b65724a6f623a204c656e677468206d69736d6174636800600082015250565b6000611076601f83610f9d565b915061108182611040565b602082019050919050565b600060208201905081810360008301526110a581611069565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156110f1576110f0610c18565b5b60006110ff84828501610da7565b91505092915050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261113457611133611108565b5b80840192508235915067ffffffffffffffff8211156111565761115561110d565b5b60208301925060018202360383131561117257611171611112565b5b509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006111b482610df2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156111e7576111e661117a565b5b600182019050919050565b60008151905061120181610dfc565b92915050565b60006020828403121561121d5761121c610c18565b5b600061122b848285016111f2565b91505092915050565b600061123f82610df2565b915061124a83610df2565b92508282101561125d5761125c61117a565b5b828203905092915050565b600081905092915050565b7f47656c61746f4d616b65724a6f623a204f6e6c79206a6f627320617661696c6160008201527f626c6520757020746f20696e6465782000000000000000000000000000000000602082015250565b60006112cf603083611268565b91506112da82611273565b603082019050919050565b60006112f082610eaa565b6112fa8185611268565b935061130a818560208601610ec6565b80840191505092915050565b6000611321826112c2565b915061132d82846112e5565b915081905092915050565b7f2c20696e707574746564207374617274496e6465782069732000000000000000815250565b600061136982611338565b60198201915061137982846112e5565b915081905092915050565b600061139082856112e5565b915061139c82846112e5565b91508190509392505050565b6113b181610dbc565b82525050565b6113c081610df2565b82525050565b60006060820190506113db60008301866113a8565b6113e860208301856113b7565b6113f560408301846113b7565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61143582610ef9565b810181811067ffffffffffffffff82111715611454576114536113fd565b5b80604052505050565b6000611467610c0e565b9050611473828261142c565b919050565b600067ffffffffffffffff821115611493576114926113fd565b5b602082029050602081019050919050565b600080fd5b600080fd5b6000815190506114bd81610d90565b92915050565b6114cc81610e8f565b81146114d757600080fd5b50565b6000815190506114e9816114c3565b92915050565b600080fd5b600067ffffffffffffffff82111561150f5761150e6113fd565b5b61151882610ef9565b9050602081019050919050565b6000611538611533846114f4565b61145d565b905082815260208101848484011115611554576115536114ef565b5b61155f848285610ec6565b509392505050565b600082601f83011261157c5761157b610c22565b5b815161158c848260208601611525565b91505092915050565b6000606082840312156115ab576115aa6114a4565b5b6115b5606061145d565b905060006115c5848285016114ae565b60008301525060206115d9848285016114da565b602083015250604082015167ffffffffffffffff8111156115fd576115fc6114a9565b5b61160984828501611567565b60408301525092915050565b600061162861162384611478565b61145d565b9050808382526020820190506020840283018581111561164b5761164a610c2c565b5b835b8181101561169257805167ffffffffffffffff8111156116705761166f610c22565b5b80860161167d8982611595565b8552602085019450505060208101905061164d565b5050509392505050565b600082601f8301126116b1576116b0610c22565b5b81516116c1848260208601611615565b91505092915050565b6000602082840312156116e0576116df610c18565b5b600082015167ffffffffffffffff8111156116fe576116fd610c1d565b5b61170a8482850161169c565b91505092915050565b600060408201905061172860008301856113a8565b818103602083015261173a8184610f0a565b90509392505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61177881610d7e565b82525050565b600061178a838361176f565b60208301905092915050565b6000602082019050919050565b60006117ae82611743565b6117b8818561174e565b93506117c38361175f565b8060005b838110156117f45781516117db888261177e565b97506117e683611796565b9250506001810190506117c7565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b600061184982610eaa565b611853818561182d565b9350611863818560208601610ec6565b61186c81610ef9565b840191505092915050565b6000611883838361183e565b905092915050565b6000602082019050919050565b60006118a382611801565b6118ad818561180c565b9350836020820285016118bf8561181d565b8060005b858110156118fb57848403895281516118dc8582611877565b94506118e78361188b565b925060208a019950506001810190506118c3565b50829750879550505050505092915050565b6000604082019050818103600083015261192781856117a3565b9050818103602083015261193b8184611898565b90509392505050565b600061195082846112e5565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061199582610df2565b91506119a083610df2565b9250826119b0576119af61195b565b5b828206905092915050565b600081519050919050565b600081905092915050565b60006119dc826119bb565b6119e681856119c6565b93506119f6818560208601610ec6565b80840191505092915050565b6000611a0e82856119d1565b9150611a1a82846119d1565b91508190509392505050565b6000611a31826119bb565b611a3b8185610f9d565b9350611a4b818560208601610ec6565b611a5481610ef9565b840191505092915050565b60006020820190508181036000830152611a798184611a26565b905092915050565b7f4e6f4572726f7253656c6563746f720000000000000000000000000000000000600082015250565b6000611ab7600f836119c6565b9150611ac282611a81565b600f82019050919050565b6000611ad982846119d1565b9150611ae482611aaa565b915081905092915050565b7f556e657870656374656452657475726e64617461000000000000000000000000600082015250565b6000611b256014836119c6565b9150611b3082611aef565b601482019050919050565b6000611b4782846119d1565b9150611b5282611b18565b91508190509291505056fea264697066735822122023cc4df320a9d341d0c2119f680e9e8f56d159a8300508f5cc4edafe54bd1b9764736f6c634300080b003300000000000000000000000093719de6a0ea910c37a4c3e3ca24b88d386fb940