60e06040526101f4600a556101f4600b553480156200001d57600080fd5b506040518060400160405280601881526020017f42494e474f2047616d652042657474696e6720546f6b656e00000000000000008152506040518060400160405280600581526020017f42494e474f0000000000000000000000000000000000000000000000000000008152506008620000ac620000a0620004e060201b60201c565b620004e860201b60201c565b8260019081620000bd9190620008ce565b508160029081620000cf9190620008ce565b508060ff1660808160ff16815250504660a08181525050620000f6620005ac60201b60201c565b60c08181525050505050620001106200063c60201b60201c565b156200017157737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200027f565b620001816200064760201b60201c565b15620001e25773c532a74256d3db42d0bf7a0400fefdbad7694008600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200027e565b6001461462000228576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200021f9062000a16565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000313919062000aa2565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051620004b7919062000ae5565b60405180910390a36000600c60156101000a81548160ff02191690831515021790555062000c53565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6001604051620005e0919062000bb1565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc646306040516020016200062195949392919062000bf6565b60405160208183030381529060405280519060200120905090565b600060054614905090565b600062aa36a74614905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620006d657607f821691505b602082108103620006ec57620006eb6200068e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620007567fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000717565b62000762868362000717565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620007af620007a9620007a3846200077a565b62000784565b6200077a565b9050919050565b6000819050919050565b620007cb836200078e565b620007e3620007da82620007b6565b84845462000724565b825550505050565b600090565b620007fa620007eb565b62000807818484620007c0565b505050565b5b818110156200082f5762000823600082620007f0565b6001810190506200080d565b5050565b601f8211156200087e576200084881620006f2565b620008538462000707565b8101602085101562000863578190505b6200087b620008728562000707565b8301826200080c565b50505b505050565b600082821c905092915050565b6000620008a36000198460080262000883565b1980831691505092915050565b6000620008be838362000890565b9150826002028217905092915050565b620008d98262000654565b67ffffffffffffffff811115620008f557620008f46200065f565b5b620009018254620006bd565b6200090e82828562000833565b600060209050601f83116001811462000946576000841562000931578287015190505b6200093d8582620008b0565b865550620009ad565b601f1984166200095686620006f2565b60005b82811015620009805784890151825560018201915060208501945060208101905062000959565b86831015620009a057848901516200099c601f89168262000890565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f6578706563746564206d61696e6e657400000000000000000000000000000000600082015250565b6000620009fe601083620009b5565b915062000a0b82620009c6565b602082019050919050565b6000602082019050818103600083015262000a3181620009ef565b9050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a6a8262000a3d565b9050919050565b62000a7c8162000a5d565b811462000a8857600080fd5b50565b60008151905062000a9c8162000a71565b92915050565b60006020828403121562000abb5762000aba62000a38565b5b600062000acb8482850162000a8b565b91505092915050565b62000adf816200077a565b82525050565b600060208201905062000afc600083018462000ad4565b92915050565b600081905092915050565b60008190508160005260206000209050919050565b6000815462000b3181620006bd565b62000b3d818662000b02565b9450600182166000811462000b5b576001811462000b715762000ba8565b60ff198316865281151582028601935062000ba8565b62000b7c8562000b0d565b60005b8381101562000ba05781548189015260018201915060208101905062000b7f565b838801955050505b50505092915050565b600062000bbf828462000b22565b915081905092915050565b6000819050919050565b62000bdf8162000bca565b82525050565b62000bf08162000a5d565b82525050565b600060a08201905062000c0d600083018862000bd4565b62000c1c602083018762000bd4565b62000c2b604083018662000bd4565b62000c3a606083018562000ad4565b62000c49608083018462000be5565b9695505050505050565b60805160a05160c051613f5762000c8a60003960006117cd01526000611799015260008181610f9a01526117730152613f576000f3fe60806040526004361061023f5760003560e01c80638da5cb5b1161012e578063c473413a116100ab578063eec1c69f1161006f578063eec1c69f14610840578063f2fde38b1461087d578063f887ea40146108a6578063f98eb6e1146108d1578063fb235f34146108e857610246565b8063c473413a14610759578063cffd129c14610784578063d505accf146107af578063dd62ed3e146107d8578063e298b8901461081557610246565b8063a8aa1b31116100f2578063a8aa1b3114610672578063a9059cbb1461069d578063ad555676146106da578063b3e5cb4514610703578063c45a01551461072e57610246565b80638da5cb5b1461059f57806392108c86146105ca57806395d89b41146105f55780639b0e6a9914610620578063a0712d681461064957610246565b80633644e515116101bc578063715018a611610180578063715018a6146104ca57806375f0a874146104e15780637d5ea21b1461050c5780637ecebe00146105375780637f50ce171461057457610246565b80633644e515146103e557806342966c681461041057806344478425146104395780635d098b381461046457806370a082311461048d57610246565b806323b872dd1161020357806323b872dd14610310578063270fd20a1461034d5780632ca1b45d14610378578063307aebc91461038f578063313ce567146103ba57610246565b806306fdde031461024857806307df7a0d14610273578063095ea7b31461027d57806318160ddd146102ba5780631a2f029c146102e557610246565b3661024657005b005b34801561025457600080fd5b5061025d610911565b60405161026a9190612d64565b60405180910390f35b61027b61099f565b005b34801561028957600080fd5b506102a4600480360381019061029f9190612e1f565b611006565b6040516102b19190612e7a565b60405180910390f35b3480156102c657600080fd5b506102cf6110f8565b6040516102dc9190612ea4565b60405180910390f35b3480156102f157600080fd5b506102fa6110fe565b6040516103079190612ece565b60405180910390f35b34801561031c57600080fd5b5061033760048036038101906103329190612ee9565b611124565b6040516103449190612e7a565b60405180910390f35b34801561035957600080fd5b50610362611698565b60405161036f9190612e7a565b60405180910390f35b34801561038457600080fd5b5061038d6116ab565b005b34801561039b57600080fd5b506103a461175e565b6040516103b19190612e7a565b60405180910390f35b3480156103c657600080fd5b506103cf611771565b6040516103dc9190612f58565b60405180910390f35b3480156103f157600080fd5b506103fa611795565b6040516104079190612f8c565b60405180910390f35b34801561041c57600080fd5b5061043760048036038101906104329190612fa7565b6117f2565b005b34801561044557600080fd5b5061044e6117ff565b60405161045b9190612ece565b60405180910390f35b34801561047057600080fd5b5061048b60048036038101906104869190612fd4565b611825565b005b34801561049957600080fd5b506104b460048036038101906104af9190612fd4565b6118e0565b6040516104c19190612ea4565b60405180910390f35b3480156104d657600080fd5b506104df6118f8565b005b3480156104ed57600080fd5b506104f661190c565b6040516105039190612ece565b60405180910390f35b34801561051857600080fd5b50610521611932565b60405161052e9190612e7a565b60405180910390f35b34801561054357600080fd5b5061055e60048036038101906105599190612fd4565b611945565b60405161056b9190612ea4565b60405180910390f35b34801561058057600080fd5b5061058961195d565b6040516105969190612e7a565b60405180910390f35b3480156105ab57600080fd5b506105b461196a565b6040516105c19190612ece565b60405180910390f35b3480156105d657600080fd5b506105df611993565b6040516105ec9190612e7a565b60405180910390f35b34801561060157600080fd5b5061060a6119b1565b6040516106179190612d64565b60405180910390f35b34801561062c57600080fd5b5061064760048036038101906106429190612fd4565b611a3f565b005b34801561065557600080fd5b50610670600480360381019061066b9190612fa7565b611afa565b005b34801561067e57600080fd5b50610687611b4e565b6040516106949190613060565b60405180910390f35b3480156106a957600080fd5b506106c460048036038101906106bf9190612e1f565b611b74565b6040516106d19190612e7a565b60405180910390f35b3480156106e657600080fd5b5061070160048036038101906106fc9190612fd4565b611b89565b005b34801561070f57600080fd5b50610718611c44565b6040516107259190612e7a565b60405180910390f35b34801561073a57600080fd5b50610743611c4f565b604051610750919061309c565b60405180910390f35b34801561076557600080fd5b5061076e611c75565b60405161077b9190612ea4565b60405180910390f35b34801561079057600080fd5b50610799611c7b565b6040516107a69190612ea4565b60405180910390f35b3480156107bb57600080fd5b506107d660048036038101906107d1919061310f565b611c81565b005b3480156107e457600080fd5b506107ff60048036038101906107fa91906131b1565b611f7a565b60405161080c9190612ea4565b60405180910390f35b34801561082157600080fd5b5061082a611f9f565b6040516108379190612ece565b60405180910390f35b34801561084c57600080fd5b506108676004803603810190610862919061322d565b611fc5565b6040516108749190612e7a565b60405180910390f35b34801561088957600080fd5b506108a4600480360381019061089f9190612fd4565b612146565b005b3480156108b257600080fd5b506108bb6121c9565b6040516108c8919061327b565b60405180910390f35b3480156108dd57600080fd5b506108e66121ef565b005b3480156108f457600080fd5b5061090f600480360381019061090a9190612fd4565b6122a2565b005b6001805461091e906132c5565b80601f016020809104026020016040519081016040528092919081815260200182805461094a906132c5565b80156109975780601f1061096c57610100808354040283529160200191610997565b820191906000526020600020905b81548152906001019060200180831161097a57829003601f168201915b505050505081565b6109a761235d565b600c60159054906101000a900460ff16156109f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ee90613342565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7f906133ae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b10906133ae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba1906133ae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c32906133ae565b60405180910390fd5b6001600c60156101000a81548160ff021916908315150217905550610c8130612710612328662386f26fc10000610c7291906133fd565b610c7c919061346e565b6123db565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600080610d0c61196a565b426040518863ffffffff1660e01b8152600401610d2e969594939291906134da565b60606040518083038185885af1158015610d4c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d719190613550565b505050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4491906135b8565b6040518363ffffffff1660e01b8152600401610e619291906135e5565b602060405180830381865afa158015610e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea291906135b8565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f3c600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612710612328612710610f1b919061360e565b662386f26fc10000610f2d91906133fd565b610f37919061346e565b6123db565b662386f26fc1000060035414610f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7e9061368e565b60405180910390fd5b610f8f611993565b15610fd857610fd7337f0000000000000000000000000000000000000000000000000000000000000000600a610fc591906137e1565b612710610fd291906133fd565b6123db565b5b7f0887e4063f397b46bca5f33853dd1a946a3b32547bf9cb3b3063bd9db9d8bdfe60405160405180910390a1565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516110e69190612ea4565b60405180910390a36001905092915050565b60035481565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611290576000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461128e57828161120d919061360e565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505b6112986124ab565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180156112f25750600c60009054906101000a900460ff16155b801561134c5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561138457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611392576113916124ce565b5b600061139f8585856128f9565b9050600081846113af919061360e565b905083600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611400919061360e565b9250508190555080600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114b19190612ea4565b60405180910390a3600082111561168b5760006005836114d1919061346e565b905080836114df919061360e565b925082600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508060046000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516115fa9190612ea4565b60405180910390a3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116819190612ea4565b60405180910390a3505b6001925050509392505050565b600f60159054906101000a900460ff1681565b6116b361235d565b600f60149054906101000a900460ff1615611703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fa90613878565b60405180910390fd5b6001600f60146101000a81548160ff0219169083151502179055506103e8600a819055506103e8600b819055507fa1f3078ed9e1e966576844270dda3bb31267ba7d982fc64933d94552630a436860405160405180910390a1565b600c60159054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000046146117cb576117c6612aac565b6117ed565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b6117fc3382612b38565b50565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61182d61235d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361189c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611893906133ae565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60046020528060005260406000206000915090505481565b61190061235d565b61190a6000612c08565b565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60149054906101000a900460ff1681565b60066020528060005260406000206000915090505481565b600062aa36a74614905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600061199d611c44565b806119ac57506119ab61195d565b5b905090565b600280546119be906132c5565b80601f01602080910402602001604051908101604052809291908181526020018280546119ea906132c5565b8015611a375780601f10611a0c57610100808354040283529160200191611a37565b820191906000526020600020905b815481529060010190602001808311611a1a57829003601f168201915b505050505081565b611a4761235d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aad906133ae565b60405180910390fd5b80600c60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611b02611993565b611b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b38906138e4565b60405180910390fd5b611b4b33826123db565b50565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611b81338484611124565b905092915050565b611b9161235d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf7906133ae565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060054614905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b600b5481565b42841015611cc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbb90613950565b60405180910390fd5b60006001611cd0611795565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a600660008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b604051602001611d5896959493929190613970565b60405160208183030381529060405280519060200120604051602001611d7f929190613a49565b6040516020818303038152906040528051906020012085858560405160008152602001604052604051611db59493929190613a80565b6020604051602081039080840390855afa158015611dd7573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611e4b57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8190613b11565b60405180910390fd5b85600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051611f699190612ea4565b60405180910390a350505050505050565b6005602052816000526040600020602052806000526040600020600091509150505481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080611fd0612ccc565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040516121349190612ea4565b60405180910390a36001915050919050565b61214e61235d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b490613ba3565b60405180910390fd5b6121c681612c08565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6121f761235d565b600f60159054906101000a900460ff1615612247576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223e90613878565b60405180910390fd5b6001600f60156101000a81548160ff0219169083151502179055506101f4600a819055506101f4600b819055507fc8c66e37e8b41bcc2deecfa7487ae0d5ed2fd626c0544a58c33ba95d90a47d4a60405160405180910390a1565b6122aa61235d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612319576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612310906133ae565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612365612ccc565b73ffffffffffffffffffffffffffffffffffffffff1661238361196a565b73ffffffffffffffffffffffffffffffffffffffff16146123d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d090613c0f565b60405180910390fd5b565b80600360008282546123ed9190613c2f565b9250508190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161249f9190612ea4565b60405180910390a35050565b600061271060026003546124bf91906133fd565b6124c9919061346e565b905090565b6001600c60006101000a81548160ff02191690831515021790555060006002600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612537919061346e565b9050600081600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612586919061360e565b90506000600267ffffffffffffffff8111156125a5576125a4613c63565b5b6040519080825280602002602001820160405280156125d35781602001602082028036833780820191505090505b50905030816000815181106125eb576125ea613c92565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126b691906135b8565b816001815181106126ca576126c9613c92565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612768959493929190613d7f565b600060405180830381600087803b15801561278257600080fd5b505af1158015612796573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730866000806127e661196a565b426040518863ffffffff1660e01b8152600401612808969594939291906134da565b60606040518083038185885af1158015612826573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061284b9190613550565b505050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161289490613e0a565b60006040518083038185875af1925050503d80600081146128d1576040519150601f19603f3d011682016040523d82523d6000602084013e6128d6565b606091505b5050505050506000600c60006101000a81548160ff021916908315150217905550565b600061290361196a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061296e575061293f61196a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806129a457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156129b25760009050612aa5565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612a2957612710600a5483612a1891906133fd565b612a22919061346e565b9050612aa5565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612aa057612710600b5483612a8f91906133fd565b612a99919061346e565b9050612aa5565b600090505b9392505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6001604051612ade9190613eb7565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001612b1d959493929190613ece565b60405160208183030381529060405280519060200120905090565b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b87919061360e565b9250508190555080600360008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612bfc9190612ea4565b60405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d0e578082015181840152602081019050612cf3565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d3682612cd4565b612d408185612cdf565b9350612d50818560208601612cf0565b612d5981612d1a565b840191505092915050565b60006020820190508181036000830152612d7e8184612d2b565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612db682612d8b565b9050919050565b612dc681612dab565b8114612dd157600080fd5b50565b600081359050612de381612dbd565b92915050565b6000819050919050565b612dfc81612de9565b8114612e0757600080fd5b50565b600081359050612e1981612df3565b92915050565b60008060408385031215612e3657612e35612d86565b5b6000612e4485828601612dd4565b9250506020612e5585828601612e0a565b9150509250929050565b60008115159050919050565b612e7481612e5f565b82525050565b6000602082019050612e8f6000830184612e6b565b92915050565b612e9e81612de9565b82525050565b6000602082019050612eb96000830184612e95565b92915050565b612ec881612dab565b82525050565b6000602082019050612ee36000830184612ebf565b92915050565b600080600060608486031215612f0257612f01612d86565b5b6000612f1086828701612dd4565b9350506020612f2186828701612dd4565b9250506040612f3286828701612e0a565b9150509250925092565b600060ff82169050919050565b612f5281612f3c565b82525050565b6000602082019050612f6d6000830184612f49565b92915050565b6000819050919050565b612f8681612f73565b82525050565b6000602082019050612fa16000830184612f7d565b92915050565b600060208284031215612fbd57612fbc612d86565b5b6000612fcb84828501612e0a565b91505092915050565b600060208284031215612fea57612fe9612d86565b5b6000612ff884828501612dd4565b91505092915050565b6000819050919050565b600061302661302161301c84612d8b565b613001565b612d8b565b9050919050565b60006130388261300b565b9050919050565b600061304a8261302d565b9050919050565b61305a8161303f565b82525050565b60006020820190506130756000830184613051565b92915050565b60006130868261302d565b9050919050565b6130968161307b565b82525050565b60006020820190506130b1600083018461308d565b92915050565b6130c081612f3c565b81146130cb57600080fd5b50565b6000813590506130dd816130b7565b92915050565b6130ec81612f73565b81146130f757600080fd5b50565b600081359050613109816130e3565b92915050565b600080600080600080600060e0888a03121561312e5761312d612d86565b5b600061313c8a828b01612dd4565b975050602061314d8a828b01612dd4565b965050604061315e8a828b01612e0a565b955050606061316f8a828b01612e0a565b94505060806131808a828b016130ce565b93505060a06131918a828b016130fa565b92505060c06131a28a828b016130fa565b91505092959891949750929550565b600080604083850312156131c8576131c7612d86565b5b60006131d685828601612dd4565b92505060206131e785828601612dd4565b9150509250929050565b600063ffffffff82169050919050565b61320a816131f1565b811461321557600080fd5b50565b60008135905061322781613201565b92915050565b60006020828403121561324357613242612d86565b5b600061325184828501613218565b91505092915050565b60006132658261302d565b9050919050565b6132758161325a565b82525050565b6000602082019050613290600083018461326c565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806132dd57607f821691505b6020821081036132f0576132ef613296565b5b50919050565b7f616c7265616479206c61756e6368656400000000000000000000000000000000600082015250565b600061332c601083612cdf565b9150613337826132f6565b602082019050919050565b6000602082019050818103600083015261335b8161331f565b9050919050565b7f6e756c6c20616464726573730000000000000000000000000000000000000000600082015250565b6000613398600c83612cdf565b91506133a382613362565b602082019050919050565b600060208201905081810360008301526133c78161338b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061340882612de9565b915061341383612de9565b925082820261342181612de9565b91508282048414831517613438576134376133ce565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061347982612de9565b915061348483612de9565b9250826134945761349361343f565b5b828204905092915050565b6000819050919050565b60006134c46134bf6134ba8461349f565b613001565b612de9565b9050919050565b6134d4816134a9565b82525050565b600060c0820190506134ef6000830189612ebf565b6134fc6020830188612e95565b61350960408301876134cb565b61351660608301866134cb565b6135236080830185612ebf565b61353060a0830184612e95565b979650505050505050565b60008151905061354a81612df3565b92915050565b60008060006060848603121561356957613568612d86565b5b60006135778682870161353b565b93505060206135888682870161353b565b92505060406135998682870161353b565b9150509250925092565b6000815190506135b281612dbd565b92915050565b6000602082840312156135ce576135cd612d86565b5b60006135dc848285016135a3565b91505092915050565b60006040820190506135fa6000830185612ebf565b6136076020830184612ebf565b9392505050565b600061361982612de9565b915061362483612de9565b925082820390508181111561363c5761363b6133ce565b5b92915050565b7f6e756d6265727320646f6e277420616464207570000000000000000000000000600082015250565b6000613678601483612cdf565b915061368382613642565b602082019050919050565b600060208201905081810360008301526136a78161366b565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115613705578086048111156136e1576136e06133ce565b5b60018516156136f05780820291505b80810290506136fe856136ae565b94506136c5565b94509492505050565b60008261371e57600190506137da565b8161372c57600090506137da565b8160018114613742576002811461374c5761377b565b60019150506137da565b60ff84111561375e5761375d6133ce565b5b8360020a915084821115613775576137746133ce565b5b506137da565b5060208310610133831016604e8410600b84101617156137b05782820a9050838111156137ab576137aa6133ce565b5b6137da565b6137bd84848460016136bb565b925090508184048111156137d4576137d36133ce565b5b81810290505b9392505050565b60006137ec82612de9565b91506137f783612f3c565b92506138247fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461370e565b905092915050565b7f746869732069732061206f6e652073686f742066756e6374696f6e0000000000600082015250565b6000613862601b83612cdf565b915061386d8261382c565b602082019050919050565b6000602082019050818103600083015261389181613855565b9050919050565b7f6e6f7420746573746e6574000000000000000000000000000000000000000000600082015250565b60006138ce600b83612cdf565b91506138d982613898565b602082019050919050565b600060208201905081810360008301526138fd816138c1565b9050919050565b7f5045524d49545f444541444c494e455f45585049524544000000000000000000600082015250565b600061393a601783612cdf565b915061394582613904565b602082019050919050565b600060208201905081810360008301526139698161392d565b9050919050565b600060c0820190506139856000830189612f7d565b6139926020830188612ebf565b61399f6040830187612ebf565b6139ac6060830186612e95565b6139b96080830185612e95565b6139c660a0830184612e95565b979650505050505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000613a126002836139d1565b9150613a1d826139dc565b600282019050919050565b6000819050919050565b613a43613a3e82612f73565b613a28565b82525050565b6000613a5482613a05565b9150613a608285613a32565b602082019150613a708284613a32565b6020820191508190509392505050565b6000608082019050613a956000830187612f7d565b613aa26020830186612f49565b613aaf6040830185612f7d565b613abc6060830184612f7d565b95945050505050565b7f494e56414c49445f5349474e4552000000000000000000000000000000000000600082015250565b6000613afb600e83612cdf565b9150613b0682613ac5565b602082019050919050565b60006020820190508181036000830152613b2a81613aee565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613b8d602683612cdf565b9150613b9882613b31565b604082019050919050565b60006020820190508181036000830152613bbc81613b80565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613bf9602083612cdf565b9150613c0482613bc3565b602082019050919050565b60006020820190508181036000830152613c2881613bec565b9050919050565b6000613c3a82612de9565b9150613c4583612de9565b9250828201905080821115613c5d57613c5c6133ce565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613cf681612dab565b82525050565b6000613d088383613ced565b60208301905092915050565b6000602082019050919050565b6000613d2c82613cc1565b613d368185613ccc565b9350613d4183613cdd565b8060005b83811015613d72578151613d598882613cfc565b9750613d6483613d14565b925050600181019050613d45565b5085935050505092915050565b600060a082019050613d946000830188612e95565b613da160208301876134cb565b8181036040830152613db38186613d21565b9050613dc26060830185612ebf565b613dcf6080830184612e95565b9695505050505050565b600081905092915050565b50565b6000613df4600083613dd9565b9150613dff82613de4565b600082019050919050565b6000613e1582613de7565b9150819050919050565b60008190508160005260206000209050919050565b60008154613e41816132c5565b613e4b8186613dd9565b94506001821660008114613e665760018114613e7b57613eae565b60ff1983168652811515820286019350613eae565b613e8485613e1f565b60005b83811015613ea657815481890152600182019150602081019050613e87565b838801955050505b50505092915050565b6000613ec38284613e34565b915081905092915050565b600060a082019050613ee36000830188612f7d565b613ef06020830187612f7d565b613efd6040830186612f7d565b613f0a6060830185612e95565b613f176080830184612ebf565b969550505050505056fea26469706673582212206e95cc56a1cb8c95956ea67eee49e17121f88f67bab8f075993a0247d2eb206a64736f6c63430008130033