60a06040526b24e667107d3db87a1c0000006009556000600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055506000600e556000600f553480156200006157600080fd5b5060405162004ac438038062004ac48339818101604052810190620000879190620007fa565b6040518060400160405280600b81526020017f436869636b7320417661780000000000000000000000000000000000000000008152506040518060400160405280600681526020017f434849434b530000000000000000000000000000000000000000000000000000815250816003908162000104919062000aa6565b50806004908162000116919062000aa6565b505050620001396200012d6200037a60201b60201c565b6200038260201b60201c565b7360ae616a2155ee3d9a68541ba4544862310933d473ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200019660805160016200044860201b60201c565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001ea8160016200044860201b60201c565b60646005600954620001fd919062000bbc565b62000209919062000c36565b600a819055506064600560095462000222919062000bbc565b6200022e919062000c36565b600b819055506064600560095462000247919062000bbc565b62000253919062000c36565b600c81905550620002696200037a60201b60201c565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002cb620002bd620004b360201b60201c565b6001620004dd60201b60201c565b620002de816001620004dd60201b60201c565b620002f1306001620004dd60201b60201c565b6200030661dead6001620004dd60201b60201c565b620003286200031a620004b360201b60201c565b60016200044860201b60201c565b6200033b3060016200044860201b60201c565b6200035061dead60016200044860201b60201c565b62000373620003646200037a60201b60201c565b6009546200058860201b60201c565b5062000e06565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b62000458620006f560201b60201c565b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516200057c919062000c8b565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005fa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005f19062000d09565b60405180910390fd5b6200060e600083836200078660201b60201c565b806002600082825462000622919062000d2b565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006d5919062000d77565b60405180910390a3620006f1600083836200078b60201b60201c565b5050565b620007056200037a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200072b620004b360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000784576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200077b9062000de4565b60405180910390fd5b565b505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007c28262000795565b9050919050565b620007d481620007b5565b8114620007e057600080fd5b50565b600081519050620007f481620007c9565b92915050565b60006020828403121562000813576200081262000790565b5b60006200082384828501620007e3565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008ae57607f821691505b602082108103620008c457620008c362000866565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200092e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008ef565b6200093a8683620008ef565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000987620009816200097b8462000952565b6200095c565b62000952565b9050919050565b6000819050919050565b620009a38362000966565b620009bb620009b2826200098e565b848454620008fc565b825550505050565b600090565b620009d2620009c3565b620009df81848462000998565b505050565b5b8181101562000a0757620009fb600082620009c8565b600181019050620009e5565b5050565b601f82111562000a565762000a2081620008ca565b62000a2b84620008df565b8101602085101562000a3b578190505b62000a5362000a4a85620008df565b830182620009e4565b50505b505050565b600082821c905092915050565b600062000a7b6000198460080262000a5b565b1980831691505092915050565b600062000a96838362000a68565b9150826002028217905092915050565b62000ab1826200082c565b67ffffffffffffffff81111562000acd5762000acc62000837565b5b62000ad9825462000895565b62000ae682828562000a0b565b600060209050601f83116001811462000b1e576000841562000b09578287015190505b62000b15858262000a88565b86555062000b85565b601f19841662000b2e86620008ca565b60005b8281101562000b585784890151825560018201915060208501945060208101905062000b31565b8683101562000b78578489015162000b74601f89168262000a68565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000bc98262000952565b915062000bd68362000952565b925082820262000be68162000952565b9150828204841483151762000c005762000bff62000b8d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000c438262000952565b915062000c508362000952565b92508262000c635762000c6262000c07565b5b828204905092915050565b60008115159050919050565b62000c858162000c6e565b82525050565b600060208201905062000ca2600083018462000c7a565b92915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000cf1601f8362000ca8565b915062000cfe8262000cb9565b602082019050919050565b6000602082019050818103600083015262000d248162000ce2565b9050919050565b600062000d388262000952565b915062000d458362000952565b925082820190508082111562000d605762000d5f62000b8d565b5b92915050565b62000d718162000952565b82525050565b600060208201905062000d8e600083018462000d66565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000dcc60208362000ca8565b915062000dd98262000d94565b602082019050919050565b6000602082019050818103600083015262000dff8162000dbd565b9050919050565b608051613c7862000e4c60003960008181610a6701528181610ec401528181610f6f015281816111340152818161234201528181612423015261244a0152613c786000f3fe6080604052600436106102085760003560e01c80638da5cb5b11610118578063d63cad22116100a0578063dd8546521161006f578063dd85465214610750578063e2f456051461077b578063f2fde38b146107a6578063f8b45b05146107cf578063ffb54a99146107fa5761020f565b8063d63cad22146106aa578063db1b7182146106d3578063dbb859c8146106fc578063dd62ed3e146107135761020f565b8063a9059cbb116100e7578063a9059cbb146105d7578063afa4f3b214610614578063c8c8ebe41461063d578063c9567bf914610668578063cf9522fd1461067f5761020f565b80638da5cb5b1461051b57806395d89b41146105465780639a7a23d614610571578063a457c2d71461059a5761020f565b8063460731151161019b5780636ddd17131161016a5780636ddd17131461044a57806370a0823114610475578063715018a6146104b25780637571336a146104c9578063881dce60146104f25761020f565b806346073115146103a057806349bd5a5e146103b75780634fbee193146103e2578063583e05681461041f5761020f565b806323b872dd116101d757806323b872dd146102d0578063311028af1461030d578063313ce5671461033857806339509351146103635761020f565b8063032dc6a21461021457806306fdde031461023d578063095ea7b31461026857806318160ddd146102a55761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061023b600480360381019061023691906129d1565b610825565b005b34801561024957600080fd5b50610252610890565b60405161025f9190612aa1565b60405180910390f35b34801561027457600080fd5b5061028f600480360381019061028a9190612b21565b610922565b60405161029c9190612b7c565b60405180910390f35b3480156102b157600080fd5b506102ba610945565b6040516102c79190612ba6565b60405180910390f35b3480156102dc57600080fd5b506102f760048036038101906102f29190612bc1565b61094f565b6040516103049190612b7c565b60405180910390f35b34801561031957600080fd5b5061032261097e565b60405161032f9190612ba6565b60405180910390f35b34801561034457600080fd5b5061034d610984565b60405161035a9190612c30565b60405180910390f35b34801561036f57600080fd5b5061038a60048036038101906103859190612b21565b61098d565b6040516103979190612b7c565b60405180910390f35b3480156103ac57600080fd5b506103b56109c4565b005b3480156103c357600080fd5b506103cc6109e9565b6040516103d99190612c5a565b60405180910390f35b3480156103ee57600080fd5b5061040960048036038101906104049190612c75565b610a0f565b6040516104169190612b7c565b60405180910390f35b34801561042b57600080fd5b50610434610a65565b6040516104419190612d01565b60405180910390f35b34801561045657600080fd5b5061045f610a89565b60405161046c9190612b7c565b60405180910390f35b34801561048157600080fd5b5061049c60048036038101906104979190612c75565b610a9c565b6040516104a99190612ba6565b60405180910390f35b3480156104be57600080fd5b506104c7610ae4565b005b3480156104d557600080fd5b506104f060048036038101906104eb9190612d48565b610af8565b005b3480156104fe57600080fd5b5061051960048036038101906105149190612d88565b610b5b565b005b34801561052757600080fd5b50610530610c43565b60405161053d9190612c5a565b60405180910390f35b34801561055257600080fd5b5061055b610c6d565b6040516105689190612aa1565b60405180910390f35b34801561057d57600080fd5b5061059860048036038101906105939190612d48565b610cff565b005b3480156105a657600080fd5b506105c160048036038101906105bc9190612b21565b610da5565b6040516105ce9190612b7c565b60405180910390f35b3480156105e357600080fd5b506105fe60048036038101906105f99190612b21565b610e1c565b60405161060b9190612b7c565b60405180910390f35b34801561062057600080fd5b5061063b60048036038101906106369190612d88565b610e3f565b005b34801561064957600080fd5b50610652610e64565b60405161065f9190612ba6565b60405180910390f35b34801561067457600080fd5b5061067d610e6a565b005b34801561068b57600080fd5b5061069461120d565b6040516106a19190612ba6565b60405180910390f35b3480156106b657600080fd5b506106d160048036038101906106cc9190612d48565b611213565b005b3480156106df57600080fd5b506106fa60048036038101906106f59190612df3565b611229565b005b34801561070857600080fd5b506107116113d0565b005b34801561071f57600080fd5b5061073a60048036038101906107359190612e20565b6114bd565b6040516107479190612ba6565b60405180910390f35b34801561075c57600080fd5b50610765611544565b6040516107729190612ba6565b60405180910390f35b34801561078757600080fd5b5061079061154a565b60405161079d9190612ba6565b60405180910390f35b3480156107b257600080fd5b506107cd60048036038101906107c89190612c75565b611550565b005b3480156107db57600080fd5b506107e46115d3565b6040516107f19190612ba6565b60405180910390f35b34801561080657600080fd5b5061080f6115d9565b60405161081c9190612b7c565b60405180910390f35b61082d6115ec565b601e821115801561083f575060638111155b61087e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087590612eac565b60405180910390fd5b81600e8190555080600f819055505050565b60606003805461089f90612efb565b80601f01602080910402602001604051908101604052809291908181526020018280546108cb90612efb565b80156109185780601f106108ed57610100808354040283529160200191610918565b820191906000526020600020905b8154815290600101906020018083116108fb57829003601f168201915b5050505050905090565b60008061092d61166a565b905061093a818585611672565b600191505092915050565b6000600254905090565b60008061095a61166a565b905061096785828561183b565b6109728585856118c7565b60019150509392505050565b60095481565b60006012905090565b60008061099861166a565b90506109b98185856109aa85896114bd565b6109b49190612f5b565b611672565b600191505092915050565b6109cc6115ec565b60006109d6610945565b905080600a8190555080600b8190555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600d60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610aec6115ec565b610af660006121dd565b565b610b006115ec565b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b9c61166a565b73ffffffffffffffffffffffffffffffffffffffff1614610bbc57600080fd5b6000610bc6610945565b90506000610bd330610a9c565b9050600060648484610be59190612f8f565b610bef9190613000565b905080821015610c34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2b9061307d565b60405180910390fd5b610c3d816122a3565b50505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610c7c90612efb565b80601f0160208091040260200160405190810160405280929190818152602001828054610ca890612efb565b8015610cf55780601f10610cca57610100808354040283529160200191610cf5565b820191906000526020600020905b815481529060010190602001808311610cd857829003601f168201915b5050505050905090565b610d076115ec565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8e9061310f565b60405180910390fd5b610da18282612502565b5050565b600080610db061166a565b90506000610dbe82866114bd565b905083811015610e03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfa906131a1565b60405180910390fd5b610e108286868403611672565b60019250505092915050565b600080610e2761166a565b9050610e348185856118c7565b600191505092915050565b610e476115ec565b670de0b6b3a764000081610e5b9190612f8f565b600c8190555050565b600a5481565b610e726115ec565b600d60009054906101000a900460ff1615610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb99061320d565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f519190613242565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905307f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffc9190613242565b6040518363ffffffff1660e01b815260040161101992919061326f565b602060405180830381865afa158015611036573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105a9190613242565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110c7600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610af8565b6110f4600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612502565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611191929190613298565b6020604051808303816000875af11580156111b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d491906132d6565b506001600d60016101000a81548160ff0219169083151502179055506001600d60006101000a81548160ff021916908315150217905550565b600f5481565b61121b6115ec565b61122582826125a3565b5050565b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112649190612c5a565b602060405180830381865afa158015611281573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a59190613318565b9050600081116112ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e190613391565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661132b61166a565b73ffffffffffffffffffffffffffffffffffffffff161461134b57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead836040518363ffffffff1660e01b8152600401611388929190613298565b6020604051808303816000875af11580156113a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113cb91906132d6565b505050565b60004711611413576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140a906133fd565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661145461166a565b73ffffffffffffffffffffffffffffffffffffffff161461147457600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156114ba573d6000803e3d6000fd5b50565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e5481565b600c5481565b6115586115ec565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be9061348f565b60405180910390fd5b6115d0816121dd565b50565b600b5481565b600d60009054906101000a900460ff1681565b6115f461166a565b73ffffffffffffffffffffffffffffffffffffffff16611612610c43565b73ffffffffffffffffffffffffffffffffffffffff1614611668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165f906134fb565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d89061358d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611750576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117479061361f565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161182e9190612ba6565b60405180910390a3505050565b600061184784846114bd565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118c157818110156118b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118aa9061368b565b60405180910390fd5b6118c08484848403611672565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611936576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192d9061371d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199c906137af565b60405180910390fd5b600081036119be576119b98383600061264c565b6121d8565b6119c6610c43565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a345750611a04610c43565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a6d5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611aa7575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ac05750600860149054906101000a900460ff16155b15611ea357600d60009054906101000a900460ff16611bba57601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b7a5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb09061381b565b60405180910390fd5b5b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611c5d5750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d0457600a54811115611ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9e906138ad565b60405180910390fd5b600b54611cb383610a9c565b82611cbe9190612f5b565b1115611cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf690613919565b60405180910390fd5b611ea2565b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611da75750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611df657600a54811115611df1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de8906139ab565b60405180910390fd5b611ea1565b601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ea057600b54611e5383610a9c565b82611e5e9190612f5b565b1115611e9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9690613919565b60405180910390fd5b5b5b5b5b6000611eae30610a9c565b905060008082119050808015611ed05750600d60019054906101000a900460ff165b8015611ee95750600860149054906101000a900460ff16155b8015611f3f5750601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f955750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611feb5750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612030576001600860146101000a81548160ff021916908315150217905550612014836128c2565b6000600860146101000a81548160ff0219169083151502179055505b6000600860149054906101000a900460ff16159050601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120e65750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156120f057600090505b600081156121c857601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612179576121726064612164600f548861296090919063ffffffff16565b61297690919063ffffffff16565b90506121a4565b6121a16064612193600e548861296090919063ffffffff16565b61297690919063ffffffff16565b90505b60008111156121b9576121b887308361264c565b5b80856121c591906139cb565b94505b6121d387878761264c565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600267ffffffffffffffff8111156122c0576122bf6139ff565b5b6040519080825280602002602001820160405280156122ee5781602001602082028036833780820191505090505b509050308160008151811061230657612305613a2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123cf9190613242565b816001815181106123e3576123e2613a2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612448307f000000000000000000000000000000000000000000000000000000000000000084611672565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663762b156283600084600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016124cc959493929190613b56565b600060405180830381600087803b1580156124e657600080fd5b505af11580156124fa573d6000803e3d6000fd5b505050505050565b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516126409190612b7c565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b29061371d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361272a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612721906137af565b60405180910390fd5b61273583838361298c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156127bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b290613c22565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128a99190612ba6565b60405180910390a36128bc848484612991565b50505050565b60006128cd30610a9c565b905060008082036128df57505061295d565b6000821180156128f05750600c5482105b156128fd57819050612951565b60006129276064612919600f548761296090919063ffffffff16565b61297690919063ffffffff16565b9050808461293591906139cb565b9350600c5484111561294b57600c54915061294f565b8391505b505b61295a816122a3565b50505b50565b6000818361296e9190612f8f565b905092915050565b600081836129849190613000565b905092915050565b505050565b505050565b600080fd5b6000819050919050565b6129ae8161299b565b81146129b957600080fd5b50565b6000813590506129cb816129a5565b92915050565b600080604083850312156129e8576129e7612996565b5b60006129f6858286016129bc565b9250506020612a07858286016129bc565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a4b578082015181840152602081019050612a30565b60008484015250505050565b6000601f19601f8301169050919050565b6000612a7382612a11565b612a7d8185612a1c565b9350612a8d818560208601612a2d565b612a9681612a57565b840191505092915050565b60006020820190508181036000830152612abb8184612a68565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612aee82612ac3565b9050919050565b612afe81612ae3565b8114612b0957600080fd5b50565b600081359050612b1b81612af5565b92915050565b60008060408385031215612b3857612b37612996565b5b6000612b4685828601612b0c565b9250506020612b57858286016129bc565b9150509250929050565b60008115159050919050565b612b7681612b61565b82525050565b6000602082019050612b916000830184612b6d565b92915050565b612ba08161299b565b82525050565b6000602082019050612bbb6000830184612b97565b92915050565b600080600060608486031215612bda57612bd9612996565b5b6000612be886828701612b0c565b9350506020612bf986828701612b0c565b9250506040612c0a868287016129bc565b9150509250925092565b600060ff82169050919050565b612c2a81612c14565b82525050565b6000602082019050612c456000830184612c21565b92915050565b612c5481612ae3565b82525050565b6000602082019050612c6f6000830184612c4b565b92915050565b600060208284031215612c8b57612c8a612996565b5b6000612c9984828501612b0c565b91505092915050565b6000819050919050565b6000612cc7612cc2612cbd84612ac3565b612ca2565b612ac3565b9050919050565b6000612cd982612cac565b9050919050565b6000612ceb82612cce565b9050919050565b612cfb81612ce0565b82525050565b6000602082019050612d166000830184612cf2565b92915050565b612d2581612b61565b8114612d3057600080fd5b50565b600081359050612d4281612d1c565b92915050565b60008060408385031215612d5f57612d5e612996565b5b6000612d6d85828601612b0c565b9250506020612d7e85828601612d33565b9150509250929050565b600060208284031215612d9e57612d9d612996565b5b6000612dac848285016129bc565b91505092915050565b6000612dc082612ae3565b9050919050565b612dd081612db5565b8114612ddb57600080fd5b50565b600081359050612ded81612dc7565b92915050565b600060208284031215612e0957612e08612996565b5b6000612e1784828501612dde565b91505092915050565b60008060408385031215612e3757612e36612996565b5b6000612e4585828601612b0c565b9250506020612e5685828601612b0c565b9150509250929050565b7f466565732063616e6e6f74206578636565642033302500000000000000000000600082015250565b6000612e96601683612a1c565b9150612ea182612e60565b602082019050919050565b60006020820190508181036000830152612ec581612e89565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f1357607f821691505b602082108103612f2657612f25612ecc565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f668261299b565b9150612f718361299b565b9250828201905080821115612f8957612f88612f2c565b5b92915050565b6000612f9a8261299b565b9150612fa58361299b565b9250828202612fb38161299b565b91508282048414831517612fca57612fc9612f2c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061300b8261299b565b91506130168361299b565b92508261302657613025612fd1565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e73000000000000000000000000000000600082015250565b6000613067601183612a1c565b915061307282613031565b602082019050919050565b600060208201905081810360008301526130968161305a565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006130f9603983612a1c565b91506131048261309d565b604082019050919050565b60006020820190508181036000830152613128816130ec565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061318b602583612a1c565b91506131968261312f565b604082019050919050565b600060208201905081810360008301526131ba8161317e565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006131f7601783612a1c565b9150613202826131c1565b602082019050919050565b60006020820190508181036000830152613226816131ea565b9050919050565b60008151905061323c81612af5565b92915050565b60006020828403121561325857613257612996565b5b60006132668482850161322d565b91505092915050565b60006040820190506132846000830185612c4b565b6132916020830184612c4b565b9392505050565b60006040820190506132ad6000830185612c4b565b6132ba6020830184612b97565b9392505050565b6000815190506132d081612d1c565b92915050565b6000602082840312156132ec576132eb612996565b5b60006132fa848285016132c1565b91505092915050565b600081519050613312816129a5565b92915050565b60006020828403121561332e5761332d612996565b5b600061333c84828501613303565b91505092915050565b7f546f6b656e3a206e6f20746f6b656e7320746f206275726e0000000000000000600082015250565b600061337b601883612a1c565b915061338682613345565b602082019050919050565b600060208201905081810360008301526133aa8161336e565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b60006133e7601683612a1c565b91506133f2826133b1565b602082019050919050565b60006020820190508181036000830152613416816133da565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613479602683612a1c565b91506134848261341d565b604082019050919050565b600060208201905081810360008301526134a88161346c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134e5602083612a1c565b91506134f0826134af565b602082019050919050565b60006020820190508181036000830152613514816134d8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613577602483612a1c565b91506135828261351b565b604082019050919050565b600060208201905081810360008301526135a68161356a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613609602283612a1c565b9150613614826135ad565b604082019050919050565b60006020820190508181036000830152613638816135fc565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613675601d83612a1c565b91506136808261363f565b602082019050919050565b600060208201905081810360008301526136a481613668565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613707602583612a1c565b9150613712826136ab565b604082019050919050565b60006020820190508181036000830152613736816136fa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613799602383612a1c565b91506137a48261373d565b604082019050919050565b600060208201905081810360008301526137c88161378c565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613805601683612a1c565b9150613810826137cf565b602082019050919050565b60006020820190508181036000830152613834816137f8565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613897603583612a1c565b91506138a28261383b565b604082019050919050565b600060208201905081810360008301526138c68161388a565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613903601383612a1c565b915061390e826138cd565b602082019050919050565b60006020820190508181036000830152613932816138f6565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613995603683612a1c565b91506139a082613939565b604082019050919050565b600060208201905081810360008301526139c481613988565b9050919050565b60006139d68261299b565b91506139e18361299b565b92508282039050818111156139f9576139f8612f2c565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613a82613a7d613a7884613a5d565b612ca2565b61299b565b9050919050565b613a9281613a67565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613acd81612ae3565b82525050565b6000613adf8383613ac4565b60208301905092915050565b6000602082019050919050565b6000613b0382613a98565b613b0d8185613aa3565b9350613b1883613ab4565b8060005b83811015613b49578151613b308882613ad3565b9750613b3b83613aeb565b925050600181019050613b1c565b5085935050505092915050565b600060a082019050613b6b6000830188612b97565b613b786020830187613a89565b8181036040830152613b8a8186613af8565b9050613b996060830185612c4b565b613ba66080830184612b97565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613c0c602683612a1c565b9150613c1782613bb0565b604082019050919050565b60006020820190508181036000830152613c3b81613bff565b905091905056fea2646970667358221220426145e5d5503fb25a45a6ce80643eead3b8dedc3bbe502edf15ee3ad1919fc564736f6c6343000812003300000000000000000000000023f7d55a3862c9d961fd1d2dcd43601b6ed5ca40