0x60806040526000600660146101000a81548160ff021916908315150217905550670f43fc2c04ee0000600a55604051806101c00160405280600067ffffffffffffffff1681526020016706f05b59d3b2000067ffffffffffffffff168152602001670853a0d2313c000067ffffffffffffffff1681526020016709b6e64a8ec6000067ffffffffffffffff168152602001670b1a2bc2ec50000067ffffffffffffffff168152602001670c7d713b49da000067ffffffffffffffff168152602001670d2f13f7789f000067ffffffffffffffff168152602001670de0b6b3a764000067ffffffffffffffff168152602001670e92596fd629000067ffffffffffffffff168152602001670f43fc2c04ee000067ffffffffffffffff1681526020016710a741a46278000067ffffffffffffffff16815260200167120a871cc002000067ffffffffffffffff16815260200167136dcc951d8c000067ffffffffffffffff1681526020016714d1120d7b16000067ffffffffffffffff16815250600d90600e6200019092919062000abd565b50604051806101c001604052806107d061ffff16815260200161076c61ffff16815260200161070861ffff1681526020016106a461ffff16815260200161064061ffff1681526020016105dc61ffff1681526020016105dc61ffff1681526020016105dc61ffff1681526020016105dc61ffff16815260200161057861ffff16815260200161038461ffff16815260200161019061ffff16815260200160c861ffff168152602001606461ffff16815250600e90600e6200025392919062000b1b565b506000600f60006101000a81548160ff0219169083151502179055503480156200027c57600080fd5b50604051620051503803806200515083398181016040526060811015620002a257600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050506040518060400160405280600d81526020017f507a6b546f6d6220546f6b656e000000000000000000000000000000000000008152506040518060400160405280600781526020017f505a4b544f4d420000000000000000000000000000000000000000000000000081525081600390805190602001906200034b92919062000b73565b5080600490805190602001906200036492919062000b73565b506012600560006101000a81548160ff021916908360ff1602179055505050600062000395620005fe60201b60201c565b905080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35062000444620005fe60201b60201c565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a3612710831062000579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f74617820657175616c206f722062696767657220746f2031303025000000000081525060200191505060405180910390fd5b6200058a306200060660201b60201c565b50620005a633683635c9adc5dea00000620007ea60201b60201c565b8260098190555081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060108190555050505062000c19565b600033905090565b600062000618620009c860201b60201c565b806200067157503373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b620006c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018062005124602c913960400191505060405180910390fd5b601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161562000789576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f616464726573732063616e2774206265206578636c756465640000000000000081525060200191505060405180910390fd5b6001601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200088e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b620008a26000838362000a2f60201b60201c565b620008be8160025462000a3460201b620032fc1790919060201c565b6002819055506200091c816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000a3460201b620032fc1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662000a13620005fe60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b505050565b60008082840190508381101562000ab3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b82805482825590600052602060002090810192821562000b08579160200282015b8281111562000b07578251829067ffffffffffffffff1690559160200191906001019062000ade565b5b50905062000b17919062000bfa565b5090565b82805482825590600052602060002090810192821562000b60579160200282015b8281111562000b5f578251829061ffff1690559160200191906001019062000b3c565b5b50905062000b6f919062000bfa565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000bb657805160ff191683800117855562000be7565b8280016001018555821562000be7579182015b8281111562000be657825182559160200191906001019062000bc9565b5b50905062000bf6919062000bfa565b5090565b5b8082111562000c1557600081600090555060010162000bfb565b5090565b6144fb8062000c296000396000f3fe608060405234801561001057600080fd5b50600436106103275760003560e01c806370a08231116101b8578063a8b0898211610104578063dd62ed3e116100a2578063ee2a95351161007c578063ee2a953514610fa5578063f2fde38b14610fc3578063ff87fc7c14611007578063ffb54a991461101157610327565b8063dd62ed3e14610e8f578063e311fc1714610f07578063ebca1bd914610f4b57610327565b8063c3bdf613116100de578063c3bdf61314610db5578063c6d69a3014610de9578063cb60f8b414610e17578063cf011b2614610e3557610327565b8063a8b0898214610ccc578063a9059cbb14610d00578063b87c5a4a14610d6457610327565b806393995d4b116101715780639d6b5f211161014b5780639d6b5f2114610bc2578063a22d483214610c06578063a457c2d714610c4a578063a6431bba14610cae57610327565b806393995d4b14610ac557806395d89b4114610b1f5780639662676c14610ba257610327565b806370a08231146109a3578063715018a6146109fb578063771a3a1d14610a0557806379cc679014610a235780638d3cc81814610a715780638da5cb5b14610a9157610327565b80633f07d76a116102775780634f6d38d0116102305780635c29908d1161020a5780635c29908d146108c257806365bbacd91461090457806366206ce91461090e57806369356d471461095f57610327565b80634f6d38d01461080257806354575af414610820578063570ca7351461088e57610327565b80633f07d76a146106ac57806340c10f19146106f057806342966c681461075457806342c6b4f1146107825780634456eda2146107c45780634e20a02c146107e457610327565b806323b872dd116102e4578063313ce567116102be578063313ce567146105995780633758e6ce146105ba57806339509351146106145780633e5f13d41461067857610327565b806323b872dd146104b3578063278d345c1461053757806329605e771461055557610327565b806306fdde031461032c578063092193ab146103af578063095ea7b3146103f357806318160ddd146104575780631eed1ac8146104755780631f2848b21461047f575b600080fd5b610334611031565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610374578082015181840152602081019050610359565b50505050905090810190601f1680156103a15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103f1600480360360208110156103c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110d3565b005b61043f6004803603604081101561040957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112d1565b60405180821515815260200191505060405180910390f35b61045f6112ef565b6040518082815260200191505060405180910390f35b61047d6112f9565b005b61048761138d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61051f600480360360608110156104c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113b3565b60405180821515815260200191505060405180910390f35b61053f611491565b6040518082815260200191505060405180910390f35b6105976004803603602081101561056b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114b1565b005b6105a161156c565b604051808260ff16815260200191505060405180910390f35b6105fc600480360360208110156105d057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611583565b60405180821515815260200191505060405180910390f35b6106606004803603604081101561062a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061175b565b60405180821515815260200191505060405180910390f35b61068061180e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106ee600480360360208110156106c257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611834565b005b61073c6004803603604081101561070657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a40565b60405180821515815260200191505060405180910390f35b6107806004803603602081101561076a57600080fd5b8101908080359060200190929190505050611b19565b005b6107ae6004803603602081101561079857600080fd5b8101908080359060200190929190505050611b25565b6040518082815260200191505060405180910390f35b6107cc611b46565b60405180821515815260200191505060405180910390f35b6107ec611ba5565b6040518082815260200191505060405180910390f35b61080a611bb3565b6040518082815260200191505060405180910390f35b61088c6004803603606081101561083657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bb9565b005b610896611d11565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108ee600480360360208110156108d857600080fd5b8101908080359060200190929190505050611d3b565b6040518082815260200191505060405180910390f35b61090c611d5c565b005b6109476004803603604081101561092457600080fd5b81019080803560ff16906020019092919080359060200190929190505050611e3c565b60405180821515815260200191505060405180910390f35b6109a16004803603602081101561097557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061208b565b005b6109e5600480360360208110156109b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612218565b6040518082815260200191505060405180910390f35b610a03612260565b005b610a0d6123d0565b6040518082815260200191505060405180910390f35b610a6f60048036036040811015610a3957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506123d6565b005b610a7961248a565b60405180821515815260200191505060405180910390f35b610a9961249d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b0760048036036020811015610adb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124c7565b60405180821515815260200191505060405180910390f35b610b2761269e565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b67578082015181840152602081019050610b4c565b50505050905090810190601f168015610b945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610baa612740565b60405180821515815260200191505060405180910390f35b610bee60048036036020811015610bd857600080fd5b8101908080359060200190929190505050612753565b60405180821515815260200191505060405180910390f35b610c4860048036036020811015610c1c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612824565b005b610c9660048036036040811015610c6057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061290e565b60405180821515815260200191505060405180910390f35b610cb66129db565b6040518082815260200191505060405180910390f35b610cd46129e8565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610d4c60048036036040811015610d1657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612a0e565b60405180821515815260200191505060405180910390f35b610d9d60048036036040811015610d7a57600080fd5b81019080803560ff16906020019092919080359060200190929190505050612a2c565b60405180821515815260200191505060405180910390f35b610dbd612bf6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610e1560048036036020811015610dff57600080fd5b8101908080359060200190929190505050612c1c565b005b610e1f612dc6565b6040518082815260200191505060405180910390f35b610e7760048036036020811015610e4b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612dcc565b60405180821515815260200191505060405180910390f35b610ef160048036036040811015610ea557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612dec565b6040518082815260200191505060405180910390f35b610f4960048036036020811015610f1d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e73565b005b610f8d60048036036020811015610f6157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612fb1565b60405180821515815260200191505060405180910390f35b610fad613007565b6040518082815260200191505060405180910390f35b61100560048036036020811015610fd957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613014565b005b61100f613209565b005b6110196132e9565b60405180821515815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110c95780601f1061109e576101008083540402835291602001916110c9565b820191906000526020600020905b8154815290600101906020018083116110ac57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611179576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806143776024913960400191505060405180910390fd5b600660149054906101000a900460ff16156111fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6f6e6c792063616e2064697374726962757465206f6e6365000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561129f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f215f67656e65736973506f6f6c0000000000000000000000000000000000000081525060200191505060405180910390fd5b6001600660146101000a81548160ff0219169083151502179055506112ce8169054b40b1f852bda00000613384565b50565b60006112e56112de61354b565b8484613553565b6001905092915050565b6000600254905090565b6010544211611370576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f5761697420756e74696c2073656c6c537461727454696d65000000000000000081525060200191505060405180910390fd5b6001600f60006101000a81548160ff021916908315150217905550565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600090506000808214806114135750601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156114285761142386868661374a565b611436565b6114348686868461386f565b505b6114848661144261354b565b61147f876040518060600160405280602881526020016142a9602891396114708c61146b61354b565b612dec565b6139109092919063ffffffff16565b613553565b6001925050509392505050565b600080600090506010544210156114aa57426010540390505b8091505090565b6114b961354b565b73ffffffffffffffffffffffffffffffffffffffff166114d761249d565b73ffffffffffffffffffffffffffffffffffffffff1614611560576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611569816139ca565b50565b6000600560009054906101000a900460ff16905090565b600061158d611b46565b806115e557503373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61163a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614451602c913960400191505060405180910390fd5b601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f616464726573732063616e2774206265206578636c756465640000000000000081525060200191505060405180910390fd5b6001601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b600061180461176861354b565b846117ff856001600061177961354b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132fc90919063ffffffff16565b613553565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61183c611b46565b8061189457503373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6118e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614451602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561196f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806142356026913960400191505060405180910390fd5b7f75237613d1cfb394eb7979839ecbeacaca4592ef0cf96791979625803948a601600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a180600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60003373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806143776024913960400191505060405180910390fd5b6000611af384612218565b9050611aff8484613384565b6000611b0a85612218565b90508181119250505092915050565b611b2281613aef565b50565b600d8181548110611b3257fe5b906000526020600020016000915090505481565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b8961354b565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b69054b40b1f852bda0000081565b600a5481565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806143776024913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611cd057600080fd5b505af1158015611ce4573d6000803e3d6000fd5b505050506040513d6020811015611cfa57600080fd5b810190808051906020019092919050505050505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e8181548110611d4857fe5b906000526020600020016000915090505481565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c6572206973206e6f742074686520746178206f66666963650000000081525060200191505060405180910390fd5b6000600c60146101000a81548160ff021916908315150217905550565b60003373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c6572206973206e6f742074686520746178206f66666963650000000081525060200191505060405180910390fd5b60008360ff161015611f7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f496e6465782068617320746f20626520686967686572207468616e203000000081525060200191505060405180910390fd5b611f836129db565b8360ff1610611fdd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061439b602a913960400191505060405180910390fd5b60008360ff16111561201357600d6001840360ff1681548110611ffc57fe5b9060005260206000200154821161201257600080fd5b5b61202e60016120206129db565b613b0390919063ffffffff16565b8360ff16101561206257600d6001840160ff168154811061204b57fe5b9060005260206000200154821061206157600080fd5b5b81600d8460ff168154811061207357fe5b90600052602060002001819055506001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461214e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c6572206973206e6f742074686520746178206f66666963650000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156121d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806142d1602e913960400191505060405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61226861354b565b73ffffffffffffffffffffffffffffffffffffffff1661228661249d565b73ffffffffffffffffffffffffffffffffffffffff161461230f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461247c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806143776024913960400191505060405180910390fd5b6124868282613b86565b5050565b600c60149054906101000a900460ff1681565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006124d1611b46565b8061252957503373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61257e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614451602c913960400191505060405180910390fd5b601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661263d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f616464726573732063616e277420626520696e636c756465640000000000000081525060200191505060405180910390fd5b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127365780601f1061270b57610100808354040283529160200191612736565b820191906000526020600020905b81548152906001019060200180831161271957829003601f168201915b5050505050905090565b600660149054906101000a900460ff1681565b60003373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c6572206973206e6f742074686520746178206f66666963650000000081525060200191505060405180910390fd5b81600a81905550919050565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806143776024913960400191505060405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006129d161291b61354b565b846129cc856040518060600160405280602581526020016144a1602591396001600061294561354b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139109092919063ffffffff16565b613553565b6001905092915050565b6000600d80549050905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612a22612a1b61354b565b848461374a565b6001905092915050565b60003373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612af1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c6572206973206e6f742074686520746178206f66666963650000000081525060200191505060405180910390fd5b60008360ff161015612b6b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f496e6465782068617320746f20626520686967686572207468616e203000000081525060200191505060405180910390fd5b612b73613007565b8360ff1610612bcd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061439b602a913960400191505060405180910390fd5b81600e8460ff1681548110612bde57fe5b90600052602060002001819055506001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612cdf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c6572206973206e6f742074686520746178206f66666963650000000081525060200191505060405180910390fd5b600c60149054906101000a900460ff1615612d45576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806144086024913960400191505060405180910390fd5b6127108110612dbc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f74617820657175616c206f722062696767657220746f2031303025000000000081525060200191505060405180910390fd5b8060098190555050565b60105481565b60116020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612e7b611b46565b80612ed357503373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b612f28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614451602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612fae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806143e66022913960400191505060405180910390fd5b50565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600e80549050905090565b61301c61354b565b73ffffffffffffffffffffffffffffffffffffffff1661303a61249d565b73ffffffffffffffffffffffffffffffffffffffff16146130c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613149576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806141c76026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146132cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c6572206973206e6f742074686520746178206f66666963650000000081525060200191505060405180910390fd5b6001600c60146101000a81548160ff021916908315150217905550565b600f60009054906101000a900460ff1681565b60008082840190508381101561337a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b61343360008383613be8565b613448816002546132fc90919063ffffffff16565b60028190555061349f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132fc90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156135d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061447d6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561365f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806141ed6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600081116137a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806142ff6029913960400191505060405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561385f57600f60009054906101000a900460ff1661385e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061434c602b913960400191505060405180910390fd5b5b61386a838383613bed565b505050565b60008061389b61271061388d60095487613eae90919063ffffffff16565b613f3490919063ffffffff16565b905060006138b28286613b0390919063ffffffff16565b905083156138c9576138c48783613b86565b6138f7565b6138f687600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461374a565b5b61390287878361374a565b600192505050949350505050565b60008383111582906139bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613982578082015181840152602081019050613967565b50505050905090810190601f1680156139af5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613a50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061425b602d913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b613b00613afa61354b565b82613fbd565b50565b600082821115613b7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b6000613bc58260405180606001604052806024815260200161432860249139613bb686613bb161354b565b612dec565b6139109092919063ffffffff16565b9050613bd983613bd361354b565b83613553565b613be38383613fbd565b505050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613c73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061442c6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806141826023913960400191505060405180910390fd5b613d04838383613be8565b613d6f8160405180606001604052806026815260200161420f602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139109092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e02816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132fc90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080831415613ec15760009050613f2e565b6000828402905082848281613ed257fe5b0414613f29576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806142886021913960400191505060405180910390fd5b809150505b92915050565b6000808211613fab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b818381613fb457fe5b04905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614043576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806143c56021913960400191505060405180910390fd5b61404f82600083613be8565b6140ba816040518060600160405280602281526020016141a5602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139109092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061411181600254613b0390919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365746178206f666669636520616464726573732063616e6e6f74206265203020616464726573736f70657261746f723a207a65726f206164647265737320676976656e20666f72206e6577206f70657261746f72536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636574617820636f6c6c6563746f722061646472657373206d757374206265206e6f6e2d7a65726f20616464726573735472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636553656c6c696e6720697320756e61626c652e205761697420756e74696c2073656c6c537461727454696d656f70657261746f723a2063616c6c6572206973206e6f7420746865206f70657261746f72496e6465782068617320746f206c6f776572207468616e20636f756e74206f662074617820746965727345524332303a206275726e2066726f6d20746865207a65726f20616464726573736f7261636c6520616464726573732063616e6e6f74206265203020616464726573736175746f2063616c63756c617465207461782063616e6e6f7420626520656e61626c656445524332303a207472616e736665722066726f6d20746865207a65726f206164647265737343616c6c6572206973206e6f7420746865206f70657261746f72206f722074686520746178206f666669636545524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122002633e93405c992bd8822aa16fd1b4e8ba9fc8077131204db8804b5190007c3064736f6c634300060c003343616c6c6572206973206e6f7420746865206f70657261746f72206f722074686520746178206f6666696365000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077f4dc7e6d7d9645a744dc439dc44023f799df9100000000000000000000000000000000000000000000000000000000634d9820