60e06040526101f4600a556101f4600b55610bb8600c553480156200002357600080fd5b506040518060400160405280601081526020017f546178204661726d6572204461766964000000000000000000000000000000008152506040518060400160405280600581526020017f44415649440000000000000000000000000000000000000000000000000000008152506012620000b2620000a66200059660201b60201c565b6200059e60201b60201c565b8260019081620000c3919062000a40565b508160029081620000d5919062000a40565b508060ff1660808160ff16815250504660a08181525050620000fc6200066260201b60201c565b60c08181525050505050600146146200014c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001439062000b88565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200020f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000235919062000c14565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002913369d3c21bcecceda1000000620006f260201b60201c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051620003f5919062000c57565b60405180910390a3600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004d0919062000c14565b6040518363ffffffff1660e01b8152600401620004ef92919062000c85565b6020604051808303816000875af11580156200050f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000535919062000c14565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60016101000a81548160ff02191690831515021790555062000e5c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600160405162000696919062000d61565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001620006d795949392919062000d95565b60405160208183030381529060405280519060200120905090565b806003600082825462000706919062000e21565b9250508190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620007ba919062000c57565b60405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200084857607f821691505b6020821081036200085e576200085d62000800565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008c87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000889565b620008d4868362000889565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620009216200091b6200091584620008ec565b620008f6565b620008ec565b9050919050565b6000819050919050565b6200093d8362000900565b620009556200094c8262000928565b84845462000896565b825550505050565b600090565b6200096c6200095d565b6200097981848462000932565b505050565b5b81811015620009a1576200099560008262000962565b6001810190506200097f565b5050565b601f821115620009f057620009ba8162000864565b620009c58462000879565b81016020851015620009d5578190505b620009ed620009e48562000879565b8301826200097e565b50505b505050565b600082821c905092915050565b600062000a1560001984600802620009f5565b1980831691505092915050565b600062000a30838362000a02565b9150826002028217905092915050565b62000a4b82620007c6565b67ffffffffffffffff81111562000a675762000a66620007d1565b5b62000a7382546200082f565b62000a80828285620009a5565b600060209050601f83116001811462000ab8576000841562000aa3578287015190505b62000aaf858262000a22565b86555062000b1f565b601f19841662000ac88662000864565b60005b8281101562000af25784890151825560018201915060208501945060208101905062000acb565b8683101562000b12578489015162000b0e601f89168262000a02565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f6578706563746564206d61696e6e657400000000000000000000000000000000600082015250565b600062000b7060108362000b27565b915062000b7d8262000b38565b602082019050919050565b6000602082019050818103600083015262000ba38162000b61565b9050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bdc8262000baf565b9050919050565b62000bee8162000bcf565b811462000bfa57600080fd5b50565b60008151905062000c0e8162000be3565b92915050565b60006020828403121562000c2d5762000c2c62000baa565b5b600062000c3d8482850162000bfd565b91505092915050565b62000c5181620008ec565b82525050565b600060208201905062000c6e600083018462000c46565b92915050565b62000c7f8162000bcf565b82525050565b600060408201905062000c9c600083018562000c74565b62000cab602083018462000c74565b9392505050565b600081905092915050565b60008190508160005260206000209050919050565b6000815462000ce1816200082f565b62000ced818662000cb2565b9450600182166000811462000d0b576001811462000d215762000d58565b60ff198316865281151582028601935062000d58565b62000d2c8562000cbd565b60005b8381101562000d505781548189015260018201915060208101905062000d2f565b838801955050505b50505092915050565b600062000d6f828462000cd2565b915081905092915050565b6000819050919050565b62000d8f8162000d7a565b82525050565b600060a08201905062000dac600083018862000d84565b62000dbb602083018762000d84565b62000dca604083018662000d84565b62000dd9606083018562000c46565b62000de8608083018462000c74565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000e2e82620008ec565b915062000e3b83620008ec565b925082820190508082111562000e565762000e5562000df2565b5b92915050565b60805160a05160c05161384362000e8c600039600061123401526000611200015260006111b401526138436000f3fe6080604052600436106102135760003560e01c80638da5cb5b11610118578063c473413a116100a0578063e2ed781c1161006f578063e2ed781c1461079d578063f2fde38b146107c6578063f887ea40146107ef578063f98eb6e11461081a578063fb235f34146108315761021a565b8063c473413a146106e1578063cffd129c1461070c578063d505accf14610737578063dd62ed3e146107605761021a565b8063a8aa1b31116100e7578063a8aa1b31146105fa578063a9059cbb14610625578063a944ff8414610662578063bd6e09081461068b578063c45a0155146106b65761021a565b80638da5cb5b1461053e57806392e37a931461056957806395d89b41146105a6578063a5db6198146105d15761021a565b80633312a6841161019b57806356cd8acf1161016a57806356cd8acf1461045757806370a0823114610482578063715018a6146104bf5780637d5ea21b146104d65780637ecebe00146105015761021a565b80633312a684146103ad5780633644e515146103d857806342966c6814610403578063444784251461042c5761021a565b806323b872dd116101e257806323b872dd146102d8578063270fd20a146103155780632ca1b45d14610340578063307aebc914610357578063313ce567146103825761021a565b80630387da3f1461021c57806306fdde0314610245578063095ea7b31461027057806318160ddd146102ad5761021a565b3661021a57005b005b34801561022857600080fd5b50610243600480360381019061023e91906128f1565b61085a565b005b34801561025157600080fd5b5061025a610902565b60405161026791906129b9565b60405180910390f35b34801561027c57600080fd5b5061029760048036038101906102929190612a11565b610990565b6040516102a49190612a6c565b60405180910390f35b3480156102b957600080fd5b506102c2610a82565b6040516102cf9190612a96565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa9190612ab1565b610a88565b60405161030c9190612a6c565b60405180910390f35b34801561032157600080fd5b5061032a6110d9565b6040516103379190612a6c565b60405180910390f35b34801561034c57600080fd5b506103556110ec565b005b34801561036357600080fd5b5061036c61119f565b6040516103799190612a6c565b60405180910390f35b34801561038e57600080fd5b506103976111b2565b6040516103a49190612b20565b60405180910390f35b3480156103b957600080fd5b506103c26111d6565b6040516103cf9190612b4a565b60405180910390f35b3480156103e457600080fd5b506103ed6111fc565b6040516103fa9190612b7e565b60405180910390f35b34801561040f57600080fd5b5061042a60048036038101906104259190612b99565b611259565b005b34801561043857600080fd5b50610441611266565b60405161044e9190612b4a565b60405180910390f35b34801561046357600080fd5b5061046c61128c565b6040516104799190612a96565b60405180910390f35b34801561048e57600080fd5b506104a960048036038101906104a49190612bc6565b611292565b6040516104b69190612a96565b60405180910390f35b3480156104cb57600080fd5b506104d46112aa565b005b3480156104e257600080fd5b506104eb6112be565b6040516104f89190612a6c565b60405180910390f35b34801561050d57600080fd5b5061052860048036038101906105239190612bc6565b6112d1565b6040516105359190612a96565b60405180910390f35b34801561054a57600080fd5b506105536112e9565b6040516105609190612b4a565b60405180910390f35b34801561057557600080fd5b50610590600480360381019061058b9190612b99565b611312565b60405161059d9190612b4a565b60405180910390f35b3480156105b257600080fd5b506105bb611351565b6040516105c891906129b9565b60405180910390f35b3480156105dd57600080fd5b506105f860048036038101906105f39190612bc6565b6113df565b005b34801561060657600080fd5b5061060f6114c1565b60405161061c9190612c52565b60405180910390f35b34801561063157600080fd5b5061064c60048036038101906106479190612a11565b6114e7565b6040516106599190612a6c565b60405180910390f35b34801561066e57600080fd5b5061068960048036038101906106849190612bc6565b6114fc565b005b34801561069757600080fd5b506106a06115b7565b6040516106ad9190612b4a565b60405180910390f35b3480156106c257600080fd5b506106cb6115dd565b6040516106d89190612c8e565b60405180910390f35b3480156106ed57600080fd5b506106f6611603565b6040516107039190612a96565b60405180910390f35b34801561071857600080fd5b50610721611609565b60405161072e9190612a96565b60405180910390f35b34801561074357600080fd5b5061075e60048036038101906107599190612d01565b61160f565b005b34801561076c57600080fd5b5061078760048036038101906107829190612da3565b611908565b6040516107949190612a96565b60405180910390f35b3480156107a957600080fd5b506107c460048036038101906107bf9190612bc6565b61192d565b005b3480156107d257600080fd5b506107ed60048036038101906107e89190612bc6565b611a77565b005b3480156107fb57600080fd5b50610804611afa565b6040516108119190612e04565b60405180910390f35b34801561082657600080fd5b5061082f611b20565b005b34801561083d57600080fd5b5061085860048036038101906108539190612bc6565b611bd3565b005b610862611c8e565b60005b81518110156108fe57601082828151811061088357610882612e1f565b5b60200260200101519080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080806108f690612e7d565b915050610865565b5050565b6001805461090f90612ef4565b80601f016020809104026020016040519081016040528092919081815260200182805461093b90612ef4565b80156109885780601f1061095d57610100808354040283529160200191610988565b820191906000526020600020905b81548152906001019060200180831161096b57829003601f168201915b505050505081565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a709190612a96565b60405180910390a36001905092915050565b60035481565b60003373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610bf4576000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610bf2578281610b719190612f25565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505b601160019054906101000a900460ff16610de757610c106112e9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610c7e5750610c4e6112e9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610cd85750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610d325750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610de657600061271060c8600354610d4b9190612f59565b610d559190612fca565b90508083600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610da39190612ffb565b1115610de4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddb906130a1565b60405180910390fd5b505b5b610def611d0c565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118015610e495750600d60009054906101000a900460ff16155b8015610ea35750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610edb57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15610ee957610ee8611d2f565b5b6000610ef68585856120ed565b905060008184610f069190612f25565b905083600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f579190612f25565b9250508190555080600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110089190612a96565b60405180910390a360008211156110cc5781600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110c39190612a96565b60405180910390a35b6001925050509392505050565b601160019054906101000a900460ff1681565b6110f4611c8e565b601160009054906101000a900460ff1615611144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113b9061310d565b60405180910390fd5b6001601160006101000a81548160ff021916908315150217905550610bb8600a81905550610bb8600b819055507fa1f3078ed9e1e966576844270dda3bb31267ba7d982fc64933d94552630a436860405160405180910390a1565b600d60019054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f000000000000000000000000000000000000000000000000000000000000000046146112325761122d6124fe565b611254565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b611263338261258a565b50565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b60046020528060005260406000206000915090505481565b6112b2611c8e565b6112bc600061265a565b565b601160009054906101000a900460ff1681565b60066020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6010818154811061132257600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002805461135e90612ef4565b80601f016020809104026020016040519081016040528092919081815260200182805461138a90612ef4565b80156113d75780601f106113ac576101008083540402835291602001916113d7565b820191906000526020600020905b8154815290600101906020018083116113ba57829003601f168201915b505050505081565b6113e7611c8e565b60005b6010805490508110156114bd578173ffffffffffffffffffffffffffffffffffffffff166010828154811061142257611421612e1f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036114aa576010818154811061147c5761147b612e1f565b5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b80806114b590612e7d565b9150506113ea565b5050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006114f4338484610a88565b905092915050565b611504611c8e565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156a90613179565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b600b5481565b42841015611652576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611649906131e5565b60405180910390fd5b6000600161165e6111fc565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a600660008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b6040516020016116e696959493929190613205565b6040516020818303038152906040528051906020012060405160200161170d9291906132de565b60405160208183030381529060405280519060200120858585604051600081526020016040526040516117439493929190613315565b6020604051602081039080840390855afa158015611765573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156117d957508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180f906133a6565b60405180910390fd5b85600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925876040516118f79190612a96565b60405180910390a350505050505050565b6005602052816000526040600020602052806000526040600020600091509150505481565b61193561271e565b73ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bb90613412565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2a90613179565b60405180910390fd5b80600d60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a7f611c8e565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae5906134a4565b60405180910390fd5b611af78161265a565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b28611c8e565b601160019054906101000a900460ff1615611b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6f9061310d565b60405180910390fd5b6001601160016101000a81548160ff0219169083151502179055506101f4600a819055506101f4600b819055507fc8c66e37e8b41bcc2deecfa7487ae0d5ed2fd626c0544a58c33ba95d90a47d4a60405160405180910390a1565b611bdb611c8e565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4190613179565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611c9661271e565b73ffffffffffffffffffffffffffffffffffffffff16611cb46112e9565b73ffffffffffffffffffffffffffffffffffffffff1614611d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0190613510565b60405180910390fd5b565b60006127106002600354611d209190612f59565b611d2a9190612fca565b905090565b6001600d60006101000a81548160ff0219169083151502179055506000600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600267ffffffffffffffff811115611dab57611daa612750565b5b604051908082528060200260200182016040528015611dd95781602001602082028036833780820191505090505b5090503081600081518110611df157611df0612e1f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ebc9190613545565b81600181518110611ed057611ecf612e1f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f6e95949392919061366b565b600060405180830381600087803b158015611f8857600080fd5b505af1158015611f9c573d6000803e3d6000fd5b50505050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166064602847611fe89190612f59565b611ff29190612fca565b604051611ffe906136f6565b60006040518083038185875af1925050503d806000811461203b576040519150601f19603f3d011682016040523d82523d6000602084013e612040565b606091505b505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612089906136f6565b60006040518083038185875af1925050503d80600081146120c6576040519150601f19603f3d011682016040523d82523d6000602084013e6120cb565b606091505b50505050506000600d60006101000a81548160ff021916908315150217905550565b60006120f76112e9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061216257506121336112e9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061219857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156121a657600090506124f7565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036122d55760005b6010805490508110156122b2578373ffffffffffffffffffffffffffffffffffffffff166010828154811061223657612235612e1f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361229f57612710600c548461228d9190612f59565b6122979190612fca565b9150506124f7565b80806122aa90612e7d565b9150506121fe565b50612710600a54836122c49190612f59565b6122ce9190612fca565b90506124f7565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124045760005b6010805490508110156123e1578473ffffffffffffffffffffffffffffffffffffffff166010828154811061236557612364612e1f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036123ce57612710600c54846123bc9190612f59565b6123c69190612fca565b9150506124f7565b80806123d990612e7d565b91505061232d565b50612710600b54836123f39190612f59565b6123fd9190612fca565b90506124f7565b601160019054906101000a900460ff1661243a57612710600c54836124299190612f59565b6124339190612fca565b90506124f7565b60005b6010805490508110156124f1578473ffffffffffffffffffffffffffffffffffffffff166010828154811061247557612474612e1f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036124de57612710600c54846124cc9190612f59565b6124d69190612fca565b9150506124f7565b80806124e990612e7d565b91505061243d565b50600090505b9392505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600160405161253091906137a3565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6463060405160200161256f9594939291906137ba565b60405160208183030381529060405280519060200120905090565b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125d99190612f25565b9250508190555080600360008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161264e9190612a96565b60405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6127888261273f565b810181811067ffffffffffffffff821117156127a7576127a6612750565b5b80604052505050565b60006127ba612726565b90506127c6828261277f565b919050565b600067ffffffffffffffff8211156127e6576127e5612750565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612827826127fc565b9050919050565b6128378161281c565b811461284257600080fd5b50565b6000813590506128548161282e565b92915050565b600061286d612868846127cb565b6127b0565b905080838252602082019050602084028301858111156128905761288f6127f7565b5b835b818110156128b957806128a58882612845565b845260208401935050602081019050612892565b5050509392505050565b600082601f8301126128d8576128d761273a565b5b81356128e884826020860161285a565b91505092915050565b60006020828403121561290757612906612730565b5b600082013567ffffffffffffffff81111561292557612924612735565b5b612931848285016128c3565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612974578082015181840152602081019050612959565b60008484015250505050565b600061298b8261293a565b6129958185612945565b93506129a5818560208601612956565b6129ae8161273f565b840191505092915050565b600060208201905081810360008301526129d38184612980565b905092915050565b6000819050919050565b6129ee816129db565b81146129f957600080fd5b50565b600081359050612a0b816129e5565b92915050565b60008060408385031215612a2857612a27612730565b5b6000612a3685828601612845565b9250506020612a47858286016129fc565b9150509250929050565b60008115159050919050565b612a6681612a51565b82525050565b6000602082019050612a816000830184612a5d565b92915050565b612a90816129db565b82525050565b6000602082019050612aab6000830184612a87565b92915050565b600080600060608486031215612aca57612ac9612730565b5b6000612ad886828701612845565b9350506020612ae986828701612845565b9250506040612afa868287016129fc565b9150509250925092565b600060ff82169050919050565b612b1a81612b04565b82525050565b6000602082019050612b356000830184612b11565b92915050565b612b448161281c565b82525050565b6000602082019050612b5f6000830184612b3b565b92915050565b6000819050919050565b612b7881612b65565b82525050565b6000602082019050612b936000830184612b6f565b92915050565b600060208284031215612baf57612bae612730565b5b6000612bbd848285016129fc565b91505092915050565b600060208284031215612bdc57612bdb612730565b5b6000612bea84828501612845565b91505092915050565b6000819050919050565b6000612c18612c13612c0e846127fc565b612bf3565b6127fc565b9050919050565b6000612c2a82612bfd565b9050919050565b6000612c3c82612c1f565b9050919050565b612c4c81612c31565b82525050565b6000602082019050612c676000830184612c43565b92915050565b6000612c7882612c1f565b9050919050565b612c8881612c6d565b82525050565b6000602082019050612ca36000830184612c7f565b92915050565b612cb281612b04565b8114612cbd57600080fd5b50565b600081359050612ccf81612ca9565b92915050565b612cde81612b65565b8114612ce957600080fd5b50565b600081359050612cfb81612cd5565b92915050565b600080600080600080600060e0888a031215612d2057612d1f612730565b5b6000612d2e8a828b01612845565b9750506020612d3f8a828b01612845565b9650506040612d508a828b016129fc565b9550506060612d618a828b016129fc565b9450506080612d728a828b01612cc0565b93505060a0612d838a828b01612cec565b92505060c0612d948a828b01612cec565b91505092959891949750929550565b60008060408385031215612dba57612db9612730565b5b6000612dc885828601612845565b9250506020612dd985828601612845565b9150509250929050565b6000612dee82612c1f565b9050919050565b612dfe81612de3565b82525050565b6000602082019050612e196000830184612df5565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e88826129db565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612eba57612eb9612e4e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f0c57607f821691505b602082108103612f1f57612f1e612ec5565b5b50919050565b6000612f30826129db565b9150612f3b836129db565b9250828203905081811115612f5357612f52612e4e565b5b92915050565b6000612f64826129db565b9150612f6f836129db565b9250828202612f7d816129db565b91508282048414831517612f9457612f93612e4e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612fd5826129db565b9150612fe0836129db565b925082612ff057612fef612f9b565b5b828204905092915050565b6000613006826129db565b9150613011836129db565b925082820190508082111561302957613028612e4e565b5b92915050565b7f526563697069656e7420686f6c64696e672065786365656473206d6178696d7560008201527f6d20616c6c6f7765640000000000000000000000000000000000000000000000602082015250565b600061308b602983612945565b91506130968261302f565b604082019050919050565b600060208201905081810360008301526130ba8161307e565b9050919050565b7f746869732069732061206f6e652073686f742066756e6374696f6e0000000000600082015250565b60006130f7601b83612945565b9150613102826130c1565b602082019050919050565b60006020820190508181036000830152613126816130ea565b9050919050565b7f6e756c6c20616464726573730000000000000000000000000000000000000000600082015250565b6000613163600c83612945565b915061316e8261312d565b602082019050919050565b6000602082019050818103600083015261319281613156565b9050919050565b7f5045524d49545f444541444c494e455f45585049524544000000000000000000600082015250565b60006131cf601783612945565b91506131da82613199565b602082019050919050565b600060208201905081810360008301526131fe816131c2565b9050919050565b600060c08201905061321a6000830189612b6f565b6132276020830188612b3b565b6132346040830187612b3b565b6132416060830186612a87565b61324e6080830185612a87565b61325b60a0830184612a87565b979650505050505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b60006132a7600283613266565b91506132b282613271565b600282019050919050565b6000819050919050565b6132d86132d382612b65565b6132bd565b82525050565b60006132e98261329a565b91506132f582856132c7565b60208201915061330582846132c7565b6020820191508190509392505050565b600060808201905061332a6000830187612b6f565b6133376020830186612b11565b6133446040830185612b6f565b6133516060830184612b6f565b95945050505050565b7f494e56414c49445f5349474e4552000000000000000000000000000000000000600082015250565b6000613390600e83612945565b915061339b8261335a565b602082019050919050565b600060208201905081810360008301526133bf81613383565b9050919050565b7f457874726163746f72206973206e6f7420636f72726563742100000000000000600082015250565b60006133fc601983612945565b9150613407826133c6565b602082019050919050565b6000602082019050818103600083015261342b816133ef565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061348e602683612945565b915061349982613432565b604082019050919050565b600060208201905081810360008301526134bd81613481565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134fa602083612945565b9150613505826134c4565b602082019050919050565b60006020820190508181036000830152613529816134ed565b9050919050565b60008151905061353f8161282e565b92915050565b60006020828403121561355b5761355a612730565b5b600061356984828501613530565b91505092915050565b6000819050919050565b600061359761359261358d84613572565b612bf3565b6129db565b9050919050565b6135a78161357c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6135e28161281c565b82525050565b60006135f483836135d9565b60208301905092915050565b6000602082019050919050565b6000613618826135ad565b61362281856135b8565b935061362d836135c9565b8060005b8381101561365e57815161364588826135e8565b975061365083613600565b925050600181019050613631565b5085935050505092915050565b600060a0820190506136806000830188612a87565b61368d602083018761359e565b818103604083015261369f818661360d565b90506136ae6060830185612b3b565b6136bb6080830184612a87565b9695505050505050565b600081905092915050565b50565b60006136e06000836136c5565b91506136eb826136d0565b600082019050919050565b6000613701826136d3565b9150819050919050565b60008190508160005260206000209050919050565b6000815461372d81612ef4565b61373781866136c5565b9450600182166000811461375257600181146137675761379a565b60ff198316865281151582028601935061379a565b6137708561370b565b60005b8381101561379257815481890152600182019150602081019050613773565b838801955050505b50505092915050565b60006137af8284613720565b915081905092915050565b600060a0820190506137cf6000830188612b6f565b6137dc6020830187612b6f565b6137e96040830186612b6f565b6137f66060830185612a87565b6138036080830184612b3b565b969550505050505056fea26469706673582212209535c84138c165dd49dd41af8b7998824fa102917b30a54f3665061369b58f1f64736f6c63430008130033