608060405260a060405190810160405280601260ff16600a0a625b8d80028152602001601260ff16600a0a625b8d80028152602001601260ff16600a0a625b8d80028152602001601260ff16600a0a625b8d80028152602001601260ff16600a0a625b8d800281525060069060056200007a92919062000b8d565b5060a060405190810160405280635d92970063ffffffff168152602001635f751c0063ffffffff1681526020016361564f8063ffffffff168152602001636337830063ffffffff168152602001636518b68063ffffffff168152506007906005620000e792919062000bdf565b50348015620000f557600080fd5b506040805190810160405280601181526020017f4d696e676c65636861696e20546f6b656e0000000000000000000000000000008152506040805190810160405280600281526020017f4d43000000000000000000000000000000000000000000000000000000000000815250601282600390805190602001906200017c92919062000c39565b5081600490805190602001906200019592919062000c39565b5080600560006101000a81548160ff021916908360ff160217905550505050620001f073a3c986ac574c58ee85aec38e56d233ced228baf0601260ff16600a0a6302faf08002620009f6640100000000026401000000009004565b6200022b737c1277009fa4272a7c4a26da267b867fcdc4bc03601260ff16600a0a6298968002620009f6640100000000026401000000009004565b6200026673e52b38542659cb8a17e28c0fc6ff367abc8465c1601260ff16600a0a6298968002620009f6640100000000026401000000009004565b30734a2f6431354b58a93a22156410ba160d03e05d06600760008154811015156200028d57fe5b9060005260206000200154620002a262000cc0565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051809103906000f0801580156200032f573d6000803e3d6000fd5b50600860006005811015156200034157fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555030734a2f6431354b58a93a22156410ba160d03e05d0660076001815481101515620003a757fe5b9060005260206000200154620003bc62000cc0565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051809103906000f08015801562000449573d6000803e3d6000fd5b50600860016005811015156200045b57fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555030734a2f6431354b58a93a22156410ba160d03e05d0660076002815481101515620004c157fe5b9060005260206000200154620004d662000cc0565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051809103906000f08015801562000563573d6000803e3d6000fd5b50600860026005811015156200057557fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555030734a2f6431354b58a93a22156410ba160d03e05d0660076003815481101515620005db57fe5b9060005260206000200154620005f062000cc0565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051809103906000f0801580156200067d573d6000803e3d6000fd5b50600860036005811015156200068f57fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555030734a2f6431354b58a93a22156410ba160d03e05d0660076004815481101515620006f557fe5b90600052602060002001546200070a62000cc0565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051809103906000f08015801562000797573d6000803e3d6000fd5b5060086004600581101515620007a957fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200085060086000600581101515620007fd57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660008154811015156200083057fe5b9060005260206000200154620009f6640100000000026401000000009004565b620008b8600860016005811015156200086557fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660018154811015156200089857fe5b9060005260206000200154620009f6640100000000026401000000009004565b6200092060086002600581101515620008cd57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660028154811015156200090057fe5b9060005260206000200154620009f6640100000000026401000000009004565b62000988600860036005811015156200093557fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660038154811015156200096857fe5b9060005260206000200154620009f6640100000000026401000000009004565b620009f0600860046005811015156200099d57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660066004815481101515620009d057fe5b9060005260206000200154620009f6640100000000026401000000009004565b62000cf9565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151562000a3357600080fd5b62000a588160025462000b6b64010000000002620012d5179091906401000000009004565b60028190555062000abf816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000b6b64010000000002620012d5179091906401000000009004565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600080828401905083811015151562000b8357600080fd5b8091505092915050565b82805482825590600052602060002090810192821562000bcc579160200282015b8281111562000bcb57825182559160200191906001019062000bae565b5b50905062000bdb919062000cd1565b5090565b82805482825590600052602060002090810192821562000c26579160200282015b8281111562000c25578251829063ffffffff1690559160200191906001019062000c00565b5b50905062000c35919062000cd1565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000c7c57805160ff191683800117855562000cad565b8280016001018555821562000cad579182015b8281111562000cac57825182559160200191906001019062000c8f565b5b50905062000cbc919062000cd1565b5090565b60405161066f806200217f83390190565b62000cf691905b8082111562000cf257600081600090555060010162000cd8565b5090565b90565b6114768062000d096000396000f3fe608060405234801561001057600080fd5b5060043610610190576000357c010000000000000000000000000000000000000000000000000000000090048063495ccc52116100fb578063a3f4df7e116100b4578063dd62ed3e1161008e578063dd62ed3e14610808578063e0d1022114610880578063f015bc93146108ca578063f76f8d781461091457610190565b8063a3f4df7e146106b9578063a457c2d71461073c578063a9059cbb146107a257610190565b8063495ccc52146104f25780636c16b0de1461053c5780636e34800f1461055a57806370a082311461059c57806395d89b41146105f4578063a15557c01461067757610190565b806323b872dd1161014d57806323b872dd146103465780632e0f2625146103cc578063313ce567146103f0578063351509a814610414578063395093511461045e57806342966c68146104c457610190565b806306fdde0314610195578063095ea7b3146102185780631797d35e1461027e57806318160ddd1461029c5780631e73718d146102ba57806320fc5bb014610328575b600080fd5b61019d610997565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101dd5780820151818401526020810190506101c2565b50505050905090810190601f16801561020a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102646004803603604081101561022e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a39565b604051808215151515815260200191505060405180910390f35b610286610a50565b6040518082815260200191505060405180910390f35b6102a4610a60565b6040518082815260200191505060405180910390f35b6102e6600480360360208110156102d057600080fd5b8101908080359060200190929190505050610a6a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610330610a9f565b6040518082815260200191505060405180910390f35b6103b26004803603606081101561035c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610aaf565b604051808215151515815260200191505060405180910390f35b6103d4610b60565b604051808260ff1660ff16815260200191505060405180910390f35b6103f8610b65565b604051808260ff1660ff16815260200191505060405180910390f35b61041c610b7c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104aa6004803603604081101561047457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b94565b604051808215151515815260200191505060405180910390f35b6104f0600480360360208110156104da57600080fd5b8101908080359060200190929190505050610c39565b005b6104fa610c46565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610544610c5e565b6040518082815260200191505060405180910390f35b6105866004803603602081101561057057600080fd5b8101908080359060200190929190505050610c6f565b6040518082815260200191505060405180910390f35b6105de600480360360208110156105b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c92565b6040518082815260200191505060405180910390f35b6105fc610cda565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561063c578082015181840152602081019050610621565b50505050905090810190601f1680156106695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106a36004803603602081101561068d57600080fd5b8101908080359060200190929190505050610d7c565b6040518082815260200191505060405180910390f35b6106c1610d9f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107015780820151818401526020810190506106e6565b50505050905090810190601f16801561072e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107886004803603604081101561075257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dd8565b604051808215151515815260200191505060405180910390f35b6107ee600480360360408110156107b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e7d565b604051808215151515815260200191505060405180910390f35b61086a6004803603604081101561081e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e94565b6040518082815260200191505060405180910390f35b610888610f1b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108d2610f33565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61091c610f4b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561095c578082015181840152602081019050610941565b50505050905090810190601f1680156109895780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a2f5780601f10610a0457610100808354040283529160200191610a2f565b820191906000526020600020905b815481529060010190602001808311610a1257829003601f168201915b5050505050905090565b6000610a46338484610f84565b6001905092915050565b601260ff16600a0a629896800281565b6000600254905090565b600881600581101515610a7957fe5b016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260ff16600a0a629896800281565b6000610abc8484846110e7565b610b558433610b5085600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112b390919063ffffffff16565b610f84565b600190509392505050565b601281565b6000600560009054906101000a900460ff16905090565b734a2f6431354b58a93a22156410ba160d03e05d0681565b6000610c2f3384610c2a85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112d590919063ffffffff16565b610f84565b6001905092915050565b610c4333826112f6565b50565b73e52b38542659cb8a17e28c0fc6ff367abc8465c181565b601260ff16600a0a6302faf0800281565b600681815481101515610c7e57fe5b906000526020600020016000915090505481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d725780601f10610d4757610100808354040283529160200191610d72565b820191906000526020600020905b815481529060010190602001808311610d5557829003601f168201915b5050505050905090565b600781815481101515610d8b57fe5b906000526020600020016000915090505481565b6040805190810160405280601181526020017f4d696e676c65636861696e20546f6b656e00000000000000000000000000000081525081565b6000610e733384610e6e85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112b390919063ffffffff16565b610f84565b6001905092915050565b6000610e8a3384846110e7565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b73a3c986ac574c58ee85aec38e56d233ced228baf081565b737c1277009fa4272a7c4a26da267b867fcdc4bc0381565b6040805190810160405280600281526020017f4d4300000000000000000000000000000000000000000000000000000000000081525081565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610fc057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610ffc57600080fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561112357600080fd5b611174816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112b390919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611207816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112d590919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008282111515156112c457600080fd5b600082840390508091505092915050565b60008082840190508381101515156112ec57600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561133257600080fd5b611347816002546112b390919063ffffffff16565b60028190555061139e816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112b390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505056fea165627a7a72305820bef51ba6e8dffe0cc5154cf006dfa57efd2d555226cf4dd7283bf78e55b7899a0029608060405234801561001057600080fd5b5060405160608061066f8339810180604052606081101561003057600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050428111151561006357600080fd5b826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600281905550505050610572806100fd6000396000f3fe608060405234801561001057600080fd5b5060043610610069576000357c01000000000000000000000000000000000000000000000000000000009004806338af3eed1461006e57806386d1a69f146100b8578063b91d4001146100c2578063fc0c546a146100e0575b600080fd5b61007661012a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100c0610154565b005b6100ca6102de565b6040518082815260200191505060405180910390f35b6100e86102e8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600254421015151561016557600080fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561022157600080fd5b505afa158015610235573d6000803e3d6000fd5b505050506040513d602081101561024b57600080fd5b8101908080519060200190929190505050905060008111151561026d57600080fd5b6102db600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166103119092919063ffffffff16565b50565b6000600254905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6103f9838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb90507c0100000000000000000000000000000000000000000000000000000000028484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506103fe565b505050565b61041d8273ffffffffffffffffffffffffffffffffffffffff16610533565b151561042857600080fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b6020831015156104795780518252602082019150602081019050602083039250610454565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146104db576040519150601f19603f3d011682016040523d82523d6000602084013e6104e0565b606091505b50915091508115156104f157600080fd5b60008151111561052d5780806020019051602081101561051057600080fd5b8101908080519060200190929190505050151561052c57600080fd5b5b50505050565b600080823b90506000811191505091905056fea165627a7a72305820a7678ca36d8ac9b414c819393dd62b8b5b1f9855f3e9a55abdb63e2cff3e13fe0029