Loading
60806040526012600a62000014919062000d5b565b641029c1230062000026919062000dab565b60035562000056606462000047600260035462000a8b60201b90919060201c565b62000b0b60201b90919060201c565b60045562000086606462000077600260035462000a8b60201b90919060201c565b62000b0b60201b90919060201c565b6005555f600b55610384600c555f600d555f600e555f600f55600f54600d54600b54600c54600e54620000ba919062000df5565b620000c6919062000df5565b620000d2919062000df5565b620000de919062000df5565b6010556103e8601155610384601255610384601355610384601455601e601a556064601b555f601e60146101000a81548160ff0219169083151502179055506001601e60156101000a81548160ff0219169083151502179055506103e86003546200014a919062000e5c565b601f5534801562000159575f80fd5b505f6200016b62000b5c60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001805f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200033a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000360919062000ef8565b60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200040a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000430919062000ef8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200048d92919062000f39565b6020604051808303815f875af1158015620004aa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004d0919062000ef8565b601e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550733e6edca66bcf37adcca0f9dfa0d80b7587bf67d760155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733e6edca66bcf37adcca0f9dfa0d80b7587bf67d760165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead60195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035460065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000a7d919062000f75565b60405180910390a3620010da565b5f80830362000a9d575f905062000b05565b5f828462000aac919062000dab565b905082848262000abd919062000e5c565b1462000b00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000af79062001014565b60405180910390fd5b809150505b92915050565b5f62000b5483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b6360201b60201c565b905092915050565b5f33905090565b5f808311829062000bac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ba39190620010b8565b60405180910390fd5b505f838562000bbc919062000e5c565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000c535780860481111562000c2b5762000c2a62000bc9565b5b600185161562000c3b5780820291505b808102905062000c4b8562000bf6565b945062000c0b565b94509492505050565b5f8262000c6d576001905062000d3f565b8162000c7c575f905062000d3f565b816001811462000c95576002811462000ca05762000cd6565b600191505062000d3f565b60ff84111562000cb55762000cb462000bc9565b5b8360020a91508482111562000ccf5762000cce62000bc9565b5b5062000d3f565b5060208310610133831016604e8410600b841016171562000d105782820a90508381111562000d0a5762000d0962000bc9565b5b62000d3f565b62000d1f848484600162000c02565b9250905081840481111562000d395762000d3862000bc9565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000d678262000d46565b915062000d748362000d4f565b925062000da37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c5c565b905092915050565b5f62000db78262000d46565b915062000dc48362000d46565b925082820262000dd48162000d46565b9150828204841483151762000dee5762000ded62000bc9565b5b5092915050565b5f62000e018262000d46565b915062000e0e8362000d46565b925082820190508082111562000e295762000e2862000bc9565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000e688262000d46565b915062000e758362000d46565b92508262000e885762000e8762000e2f565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000ec28262000e97565b9050919050565b62000ed48162000eb6565b811462000edf575f80fd5b50565b5f8151905062000ef28162000ec9565b92915050565b5f6020828403121562000f105762000f0f62000e93565b5b5f62000f1f8482850162000ee2565b91505092915050565b62000f338162000eb6565b82525050565b5f60408201905062000f4e5f83018562000f28565b62000f5d602083018462000f28565b9392505050565b62000f6f8162000d46565b82525050565b5f60208201905062000f8a5f83018462000f64565b92915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000ffc60218362000f90565b9150620010098262000fa0565b604082019050919050565b5f6020820190508181035f8301526200102d8162000fee565b9050919050565b5f81519050919050565b5f5b838110156200105d57808201518184015260208101905062001040565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620010848262001034565b62001090818562000f90565b9350620010a28185602086016200103e565b620010ad8162001068565b840191505092915050565b5f6020820190508181035f830152620010d2818462001078565b905092915050565b6142dd80620010e85f395ff3fe60806040526004361061021d575f3560e01c806377b54bad11610122578063a9059cbb116100aa578063ded1e4381161006e578063ded1e4381461079e578063df20fd49146107da578063f2fde38b14610802578063f42938901461082a578063f887ea401461084057610224565b8063a9059cbb146106ac578063ab4dde87146106e8578063b2bdfa7b14610710578063c0cbdea41461073a578063dd62ed3e1461076257610224565b8063893d20e8116100f1578063893d20e8146105ee5780638da5cb5b1461061857806395d89b4114610642578063a70419d21461066c578063a8aa1b311461068257610224565b806377b54bad1461053657806378109e54146105725780637d1db4a51461059c57806382528791146105c657610224565b806330c9a6a0116101a55780635d83e1d5116101745780635d83e1d51461047c5780636ddd1713146104a457806370a08231146104ce578063715018a61461050a578063751039fc1461052057610224565b806330c9a6a0146103b0578063313ce567146103ec5780635526566914610416578063571ac8b01461044057610224565b806318160ddd116101ec57806318160ddd146102e25780631df4ccfc1461030c57806323b872dd14610336578063282c874914610372578063293230b81461039a57610224565b80630445b6671461022857806306fdde031461025257806308fd3d051461027c578063095ea7b3146102a657610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061023c61086a565b6040516102499190613407565b60405180910390f35b34801561025d575f80fd5b50610266610870565b60405161027391906134aa565b60405180910390f35b348015610287575f80fd5b506102906108ad565b60405161029d91906134e4565b60405180910390f35b3480156102b1575f80fd5b506102cc60048036038101906102c79190613589565b6108c0565b6040516102d991906134e4565b60405180910390f35b3480156102ed575f80fd5b506102f66109ad565b6040516103039190613407565b60405180910390f35b348015610317575f80fd5b506103206109b6565b60405161032d9190613407565b60405180910390f35b348015610341575f80fd5b5061035c600480360381019061035791906135c7565b6109bc565b60405161036991906134e4565b60405180910390f35b34801561037d575f80fd5b5061039860048036038101906103939190613617565b610baf565b005b3480156103a5575f80fd5b506103ae610ccc565b005b3480156103bb575f80fd5b506103d660048036038101906103d191906136a0565b610d7d565b6040516103e39190613407565b60405180910390f35b3480156103f7575f80fd5b50610400610ded565b60405161040d91906136e6565b60405180910390f35b348015610421575f80fd5b5061042a610df5565b6040516104379190613407565b60405180910390f35b34801561044b575f80fd5b50610466600480360381019061046191906136ff565b610e34565b60405161047391906134e4565b60405180910390f35b348015610487575f80fd5b506104a2600480360381019061049d91906136a0565b610e66565b005b3480156104af575f80fd5b506104b8610f64565b6040516104c591906134e4565b60405180910390f35b3480156104d9575f80fd5b506104f460048036038101906104ef91906136ff565b610f77565b6040516105019190613407565b60405180910390f35b348015610515575f80fd5b5061051e610fbd565b005b34801561052b575f80fd5b5061053461110b565b005b348015610541575f80fd5b5061055c60048036038101906105579190613589565b6111b3565b60405161056991906134e4565b60405180910390f35b34801561057d575f80fd5b506105866113a7565b6040516105939190613407565b60405180910390f35b3480156105a7575f80fd5b506105b06113ad565b6040516105bd9190613407565b60405180910390f35b3480156105d1575f80fd5b506105ec60048036038101906105e7919061372a565b6113b3565b005b3480156105f9575f80fd5b5061060261164f565b60405161060f91906137b0565b60405180910390f35b348015610623575f80fd5b5061062c61165d565b60405161063991906137b0565b60405180910390f35b34801561064d575f80fd5b50610656611684565b60405161066391906134aa565b60405180910390f35b348015610677575f80fd5b506106806116c1565b005b34801561068d575f80fd5b5061069661176e565b6040516106a391906137b0565b60405180910390f35b3480156106b7575f80fd5b506106d260048036038101906106cd9190613589565b611793565b6040516106df91906134e4565b60405180910390f35b3480156106f3575f80fd5b5061070e60048036038101906107099190613854565b6117a7565b005b34801561071b575f80fd5b506107246118d6565b60405161073191906137b0565b60405180910390f35b348015610745575f80fd5b50610760600480360381019061075b91906138b1565b6118f9565b005b34801561076d575f80fd5b5061078860048036038101906107839190613901565b6119a7565b6040516107959190613407565b60405180910390f35b3480156107a9575f80fd5b506107c460048036038101906107bf919061393f565b611a29565b6040516107d191906134e4565b60405180910390f35b3480156107e5575f80fd5b5061080060048036038101906107fb919061397d565b611a3d565b005b34801561080d575f80fd5b50610828600480360381019061082391906136ff565b611b40565b005b348015610835575f80fd5b5061083e611cfd565b005b34801561084b575f80fd5b50610854611d64565b6040516108619190613a16565b60405180910390f35b601f5481565b60606040518060400160405280600681526020017f4d49424f49530000000000000000000000000000000000000000000000000000815250905090565b601e60149054906101000a900460ff1681565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161099b9190613407565b60405180910390a36001905092915050565b5f600354905090565b60105481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610b9b57610b1e826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d899092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610ba6848484611deb565b90509392505050565b610bb7612422565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a90613a79565b60405180910390fd5b85600b8190555084600e8190555083600c8190555082600d8190555081600f81905550610caf82610ca185610c9388610c858b8d61242990919063ffffffff16565b61242990919063ffffffff16565b61242990919063ffffffff16565b61242990919063ffffffff16565b60108190555080601181905550610cc4612486565b505050505050565b610cd4612422565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5790613a79565b60405180910390fd5b6001601e60146101000a81548160ff021916908315150217905550565b5f610de6610d89610df5565b610dd8610dc96002610dbb601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f77565b61254190919063ffffffff16565b8561254190919063ffffffff16565b6125b890919063ffffffff16565b9050919050565b5f6012905090565b5f610e2f610e025f610f77565b610e21610e1061dead610f77565b60035461260190919063ffffffff16565b61260190919063ffffffff16565b905090565b5f610e5f827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108c0565b9050919050565b610e6e612422565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610efa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef190613a79565b60405180910390fd5b6001811015610f07575f80fd5b6103e881600354610f189190613ac4565b610f229190613b32565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600554604051610f599190613407565b60405180910390a150565b601e60159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610fc5612422565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611051576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104890613a79565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611113612422565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119690613a79565b60405180910390fd5b600354600481905550600354600581905550565b5f6111bc612422565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123f90613a79565b60405180910390fd5b5f82036112ca578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161128891906137b0565b602060405180830381865afa1580156112a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112c79190613b76565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f83836040516112fb929190613ba1565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040161135f929190613ba1565b6020604051808303815f875af115801561137b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061139f9190613bdc565b905092915050565b60055481565b60045481565b6113bb612422565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143e90613a79565b60405180910390fd5b8460155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b1560165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516116409493929190613c07565b60405180910390a15050505050565b5f61165861165d565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f424f495300000000000000000000000000000000000000000000000000000000815250905090565b6116c9612422565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174c90613a79565b60405180910390fd5b600a601381905550600a6012819055505f601481905550565b601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61179f338484611deb565b905092915050565b6117af612422565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461183b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183290613a79565b60405180910390fd5b5f5b838390508110156118d0578160085f86868581811061185f5761185e613c4a565b5b905060200201602081019061187491906136ff565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061183d565b50505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611901612422565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461198d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198490613a79565b60405180910390fd5b816012819055508260138190555080601481905550505050565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f82611a3483610d7d565b11905092915050565b611a45612422565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac890613a79565b60405180910390fd5b81601e60156101000a81548160ff02191690831515021790555080601f819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601f54601e60159054906101000a900460ff16604051611b34929190613c77565b60405180910390a15050565b611b48612422565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcb90613a79565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3990613d0e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611d61573d5f803e3d5ffd5b50565b601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f838311158290611dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc791906134aa565b60405180910390fd5b505f8385611dde9190613d2c565b9050809150509392505050565b5f60205f9054906101000a900460ff1615611e1257611e0b84848461264a565b905061241b565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611eb0575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f0557601e60149054906101000a900460ff16611f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efb90613da9565b60405180910390fd5b5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611f8857503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611fc2575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561201b5750601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612074575060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120cd575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121205750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612183575f61212f84610f77565b905060055483826121409190613dc7565b1115612181576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217890613e6a565b60405180910390fd5b505b61218d8483612814565b6121956128ae565b156121a3576121a2612980565b5b61222a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d899092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612307575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61231b57612316858486612f7b565b61231d565b825b905061236f8160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461242990919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161240d9190613407565b60405180910390a360019150505b9392505050565b5f33905090565b5f8082846124379190613dc7565b90508381101561247c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247390613ed2565b60405180910390fd5b8091505092915050565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006124d26011546124c460135460105461254190919063ffffffff16565b6125b890919063ffffffff16565b6124fd6011546124ef60125460105461254190919063ffffffff16565b6125b890919063ffffffff16565b61252860115461251a60145460105461254190919063ffffffff16565b6125b890919063ffffffff16565b60405161253793929190613ef0565b60405180910390a1565b5f808303612551575f90506125b2565b5f828461255e9190613ac4565b905082848261256d9190613b32565b146125ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a490613f95565b60405180910390fd5b809150505b92915050565b5f6125f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061338e565b905092915050565b5f61264283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d89565b905092915050565b5f6126d2826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d899092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506127638260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461242990919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128019190613407565b60405180910390a3600190509392505050565b6004548111158061286b5750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6128aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a190613ffd565b60405180910390fd5b5050565b5f601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612918575060205f9054906101000a900460ff16155b80156129305750601e60159054906101000a900460ff165b801561297b5750601f5460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b600160205f6101000a81548160ff0219169083151502179055505f6129a9601a54601b54611a29565b6129b557600b546129b7565b5f5b90505f6129f660026129e86010546129da86601f5461254190919063ffffffff16565b6125b890919063ffffffff16565b6125b890919063ffffffff16565b90505f612a0e82601f5461260190919063ffffffff16565b90505f600267ffffffffffffffff811115612a2c57612a2b61401b565b5b604051908082528060200260200182016040528015612a5a5781602001602082028036833780820191505090505b50905030815f81518110612a7157612a70613c4a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612ae157612ae0613c4a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f479050601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612b81959493929190614138565b5f604051808303815f87803b158015612b98575f80fd5b505af1158015612baa573d5f803e3d5ffd5b505050505f612bc2824761260190919063ffffffff16565b90505f612bed612bdc6002896125b890919063ffffffff16565b60105461260190919063ffffffff16565b90505f612c286002612c1a84612c0c8c8861254190919063ffffffff16565b6125b890919063ffffffff16565b6125b890919063ffffffff16565b90505f612c5283612c44600c548761254190919063ffffffff16565b6125b890919063ffffffff16565b90505f612c7c84612c6e600e548861254190919063ffffffff16565b6125b890919063ffffffff16565b90505f612ca685612c98600d548961254190919063ffffffff16565b6125b890919063ffffffff16565b90505f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612cee906141bd565b5f6040518083038185875af1925050503d805f8114612d28576040519150601f19603f3d011682016040523d82523d5f602084013e612d2d565b606091505b5050905060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612d76906141bd565b5f6040518083038185875af1925050503d805f8114612db0576040519150601f19603f3d011682016040523d82523d5f602084013e612db5565b606091505b50508091505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612e00906141bd565b5f6040518083038185875af1925050503d805f8114612e3a576040519150601f19603f3d011682016040523d82523d5f602084013e612e3f565b606091505b5050809150505f90505f8b1115612f5457601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f8060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612ed6969594939291906141d1565b60606040518083038185885af1158015612ef2573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612f179190614230565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612f4b929190614280565b60405180910390a15b5050505050505050505050505f60205f6101000a81548160ff021916908315150217905550565b5f806014549050601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612fe057601254905061308f565b601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361308e57601354905060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561308d57600a90505b5b5b5f6130d86103e86011546130a39190613ac4565b6130ca846130bc6010548a61254190919063ffffffff16565b61254190919063ffffffff16565b6125b890919063ffffffff16565b90505f6131046010546130f6600f548561254190919063ffffffff16565b6125b890919063ffffffff16565b90505f61311a828461260190919063ffffffff16565b905061316c8160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461242990919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061321e8260065f60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461242990919063ffffffff16565b60065f60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132dd9190613407565b60405180910390a35f82111561336e576133028260035461260190919063ffffffff16565b6003819055505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133659190613407565b60405180910390a35b613381838861260190919063ffffffff16565b9450505050509392505050565b5f80831182906133d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133cb91906134aa565b60405180910390fd5b505f83856133e29190613b32565b9050809150509392505050565b5f819050919050565b613401816133ef565b82525050565b5f60208201905061341a5f8301846133f8565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561345757808201518184015260208101905061343c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61347c82613420565b613486818561342a565b935061349681856020860161343a565b61349f81613462565b840191505092915050565b5f6020820190508181035f8301526134c28184613472565b905092915050565b5f8115159050919050565b6134de816134ca565b82525050565b5f6020820190506134f75f8301846134d5565b92915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61352e82613505565b9050919050565b61353e81613524565b8114613548575f80fd5b50565b5f8135905061355981613535565b92915050565b613568816133ef565b8114613572575f80fd5b50565b5f813590506135838161355f565b92915050565b5f806040838503121561359f5761359e6134fd565b5b5f6135ac8582860161354b565b92505060206135bd85828601613575565b9150509250929050565b5f805f606084860312156135de576135dd6134fd565b5b5f6135eb8682870161354b565b93505060206135fc8682870161354b565b925050604061360d86828701613575565b9150509250925092565b5f805f805f8060c08789031215613631576136306134fd565b5b5f61363e89828a01613575565b965050602061364f89828a01613575565b955050604061366089828a01613575565b945050606061367189828a01613575565b935050608061368289828a01613575565b92505060a061369389828a01613575565b9150509295509295509295565b5f602082840312156136b5576136b46134fd565b5b5f6136c284828501613575565b91505092915050565b5f60ff82169050919050565b6136e0816136cb565b82525050565b5f6020820190506136f95f8301846136d7565b92915050565b5f60208284031215613714576137136134fd565b5b5f6137218482850161354b565b91505092915050565b5f805f805f60a08688031215613743576137426134fd565b5b5f6137508882890161354b565b95505060206137618882890161354b565b94505060406137728882890161354b565b93505060606137838882890161354b565b92505060806137948882890161354b565b9150509295509295909350565b6137aa81613524565b82525050565b5f6020820190506137c35f8301846137a1565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126137ea576137e96137c9565b5b8235905067ffffffffffffffff811115613807576138066137cd565b5b602083019150836020820283011115613823576138226137d1565b5b9250929050565b613833816134ca565b811461383d575f80fd5b50565b5f8135905061384e8161382a565b92915050565b5f805f6040848603121561386b5761386a6134fd565b5b5f84013567ffffffffffffffff81111561388857613887613501565b5b613894868287016137d5565b935093505060206138a786828701613840565b9150509250925092565b5f805f606084860312156138c8576138c76134fd565b5b5f6138d586828701613575565b93505060206138e686828701613575565b92505060406138f786828701613575565b9150509250925092565b5f8060408385031215613917576139166134fd565b5b5f6139248582860161354b565b92505060206139358582860161354b565b9150509250929050565b5f8060408385031215613955576139546134fd565b5b5f61396285828601613575565b925050602061397385828601613575565b9150509250929050565b5f8060408385031215613993576139926134fd565b5b5f6139a085828601613840565b92505060206139b185828601613575565b9150509250929050565b5f819050919050565b5f6139de6139d96139d484613505565b6139bb565b613505565b9050919050565b5f6139ef826139c4565b9050919050565b5f613a00826139e5565b9050919050565b613a10816139f6565b82525050565b5f602082019050613a295f830184613a07565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613a6360208361342a565b9150613a6e82613a2f565b602082019050919050565b5f6020820190508181035f830152613a9081613a57565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613ace826133ef565b9150613ad9836133ef565b9250828202613ae7816133ef565b91508282048414831517613afe57613afd613a97565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613b3c826133ef565b9150613b47836133ef565b925082613b5757613b56613b05565b5b828204905092915050565b5f81519050613b708161355f565b92915050565b5f60208284031215613b8b57613b8a6134fd565b5b5f613b9884828501613b62565b91505092915050565b5f604082019050613bb45f8301856137a1565b613bc160208301846133f8565b9392505050565b5f81519050613bd68161382a565b92915050565b5f60208284031215613bf157613bf06134fd565b5b5f613bfe84828501613bc8565b91505092915050565b5f608082019050613c1a5f8301876137a1565b613c2760208301866137a1565b613c3460408301856137a1565b613c4160608301846137a1565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f604082019050613c8a5f8301856133f8565b613c9760208301846134d5565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613cf860268361342a565b9150613d0382613c9e565b604082019050919050565b5f6020820190508181035f830152613d2581613cec565b9050919050565b5f613d36826133ef565b9150613d41836133ef565b9250828203905081811115613d5957613d58613a97565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f613d9360148361342a565b9150613d9e82613d5f565b602082019050919050565b5f6020820190508181035f830152613dc081613d87565b9050919050565b5f613dd1826133ef565b9150613ddc836133ef565b9250828201905080821115613df457613df3613a97565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f613e54603e8361342a565b9150613e5f82613dfa565b604082019050919050565b5f6020820190508181035f830152613e8181613e48565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613ebc601b8361342a565b9150613ec782613e88565b602082019050919050565b5f6020820190508181035f830152613ee981613eb0565b9050919050565b5f606082019050613f035f8301866136d7565b613f1060208301856136d7565b613f1d60408301846136d7565b949350505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613f7f60218361342a565b9150613f8a82613f25565b604082019050919050565b5f6020820190508181035f830152613fac81613f73565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f613fe760118361342a565b9150613ff282613fb3565b602082019050919050565b5f6020820190508181035f83015261401481613fdb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f819050919050565b5f61406b61406661406184614048565b6139bb565b6133ef565b9050919050565b61407b81614051565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6140b381613524565b82525050565b5f6140c483836140aa565b60208301905092915050565b5f602082019050919050565b5f6140e682614081565b6140f0818561408b565b93506140fb8361409b565b805f5b8381101561412b57815161411288826140b9565b975061411d836140d0565b9250506001810190506140fe565b5085935050505092915050565b5f60a08201905061414b5f8301886133f8565b6141586020830187614072565b818103604083015261416a81866140dc565b905061417960608301856137a1565b61418660808301846133f8565b9695505050505050565b5f81905092915050565b50565b5f6141a85f83614190565b91506141b38261419a565b5f82019050919050565b5f6141c78261419d565b9150819050919050565b5f60c0820190506141e45f8301896137a1565b6141f160208301886133f8565b6141fe6040830187614072565b61420b6060830186614072565b61421860808301856137a1565b61422560a08301846133f8565b979650505050505050565b5f805f60608486031215614247576142466134fd565b5b5f61425486828701613b62565b935050602061426586828701613b62565b925050604061427686828701613b62565b9150509250925092565b5f6040820190506142935f8301856133f8565b6142a060208301846133f8565b939250505056fea26469706673582212205cd6e436f9386432ae7af8a4728cc20ec4e201a8b883620ef27420946015bca764736f6c63430008170033