608060405260405180606001604052806021815260200162004a0c60219139600b90805190602001906200003592919062000495565b506040518060400160405280601f81526020017f68747470733a2f2f7265656c6d696e742e636f6d2f6e66742f3f736565643d00815250600c90805190602001906200008392919062000495565b503480156200009157600080fd5b506040518060400160405280600881526020017f5245454c4d494e540000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f524d4e540000000000000000000000000000000000000000000000000000000081525081600390805190602001906200011692919062000495565b5080600490805190602001906200012f92919062000495565b506012600560006101000a81548160ff021916908360ff16021790555050506000620001606200022160201b60201c565b905080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200021b33693f870857a3e0e38000006200022960201b60201c565b62000544565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b620002e1600083836200040760201b60201c565b620002fd816002546200040c60201b620034b31790919060201c565b6002819055506200035b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200040c60201b620034b31790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b6000808284019050838110156200048b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004d857805160ff191683800117855562000509565b8280016001018555821562000509579182015b8281111562000508578251825591602001919060010190620004eb565b5b5090506200051891906200051c565b5090565b6200054191905b808211156200053d57600081600090555060010162000523565b5090565b90565b6144b880620005546000396000f3fe6080604052600436106101f95760003560e01c806379cc67901161010d578063a8366413116100a0578063c8ce35241161006f578063c8ce352414610e53578063dd62ed3e14610e7e578063e336a10814610f03578063f2fde38b14610f7e578063f64dfb0214610fcf576101f9565b8063a836641314610cdb578063a9059cbb14610d36578063a9dd122514610da9578063c30ccaf514610e02576101f9565b80638da5cb5b116100dc5780638da5cb5b14610b4657806395d89b4114610b9d578063a457c2d714610c2d578063a5b6ea8f14610ca0576101f9565b806379cc67901461091257806381a882fc1461096d57806382a65651146109d8578063854737e514610a4b576101f9565b8063395093511161019057806342966c681161015f57806342966c681461079a5780634c4adb67146107d557806370a08231146107df578063715018a61461084457806375ce02cf1461085b576101f9565b806339509351146105d05780633c7fdb8b14610643578063405113361461070b57806341c0e1b514610783576101f9565b806318160ddd116101cc57806318160ddd1461049057806323b872dd146104bb57806327891f191461054e578063313ce5671461059f576101f9565b8063046c6417146101fe57806306fdde03146102d9578063095ea7b3146103695780631574a901146103dc575b600080fd5b34801561020a57600080fd5b506102d76004803603604081101561022157600080fd5b810190808035906020019064010000000081111561023e57600080fd5b82018360208201111561025057600080fd5b8035906020019184602083028401116401000000008311171561027257600080fd5b90919293919293908035906020019064010000000081111561029357600080fd5b8201836020820111156102a557600080fd5b803590602001918460208302840111640100000000831117156102c757600080fd5b9091929391929390505050611097565b005b3480156102e557600080fd5b506102ee6114b5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561032e578082015181840152602081019050610313565b50505050905090810190601f16801561035b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561037557600080fd5b506103c26004803603604081101561038c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611557565b604051808215151515815260200191505060405180910390f35b3480156103e857600080fd5b50610415600480360360208110156103ff57600080fd5b8101908080359060200190929190505050611575565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561045557808201518184015260208101905061043a565b50505050905090810190601f1680156104825780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561049c57600080fd5b506104a5611629565b6040518082815260200191505060405180910390f35b3480156104c757600080fd5b50610534600480360360608110156104de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611633565b604051808215151515815260200191505060405180910390f35b34801561055a57600080fd5b5061059d6004803603602081101561057157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061170c565b005b3480156105ab57600080fd5b506105b461178d565b604051808260ff1660ff16815260200191505060405180910390f35b3480156105dc57600080fd5b50610629600480360360408110156105f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117a4565b604051808215151515815260200191505060405180910390f35b34801561064f57600080fd5b506107096004803603602081101561066657600080fd5b810190808035906020019064010000000081111561068357600080fd5b82018360208201111561069557600080fd5b803590602001918460018302840111640100000000831117156106b757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611857565b005b34801561071757600080fd5b506107676004803603604081101561072e57600080fd5b81019080803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061193b565b604051808260ff1660ff16815260200191505060405180910390f35b34801561078f57600080fd5b506107986119a9565b005b3480156107a657600080fd5b506107d3600480360360208110156107bd57600080fd5b8101908080359060200190929190505050611a93565b005b6107dd611aa7565b005b3480156107eb57600080fd5b5061082e6004803603602081101561080257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b51565b6040518082815260200191505060405180910390f35b34801561085057600080fd5b50610859611b99565b005b34801561086757600080fd5b506108976004803603602081101561087e57600080fd5b81019080803560ff169060200190929190505050611d24565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108d75780820151818401526020810190506108bc565b50505050905090810190601f1680156109045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561091e57600080fd5b5061096b6004803603604081101561093557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611dde565b005b34801561097957600080fd5b506109d66004803603606081101561099057600080fd5b81019080803560ff169060200190929190803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e40565b005b3480156109e457600080fd5b50610a31600480360360408110156109fb57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612326565b604051808215151515815260200191505060405180910390f35b348015610a5757600080fd5b50610b4460048036036060811015610a6e57600080fd5b8101908080359060200190640100000000811115610a8b57600080fd5b820183602082011115610a9d57600080fd5b80359060200191846020830284011164010000000083111715610abf57600080fd5b909192939192939080359060200190640100000000811115610ae057600080fd5b820183602082011115610af257600080fd5b80359060200191846020830284011164010000000083111715610b1457600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612392565b005b348015610b5257600080fd5b50610b5b612a0e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ba957600080fd5b50610bb2612a38565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bf2578082015181840152602081019050610bd7565b50505050905090810190601f168015610c1f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c3957600080fd5b50610c8660048036036040811015610c5057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612ada565b604051808215151515815260200191505060405180910390f35b348015610cac57600080fd5b50610cd960048036036020811015610cc357600080fd5b8101908080359060200190929190505050612ba7565b005b348015610ce757600080fd5b50610d3460048036036040811015610cfe57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612dd3565b005b348015610d4257600080fd5b50610d8f60048036036040811015610d5957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612fc2565b604051808215151515815260200191505060405180910390f35b348015610db557600080fd5b50610dec60048036036040811015610dcc57600080fd5b810190808035906020019092919080359060200190929190505050612fe0565b6040518082815260200191505060405180910390f35b348015610e0e57600080fd5b50610e5160048036036020811015610e2557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061306b565b005b348015610e5f57600080fd5b50610e686130ec565b6040518082815260200191505060405180910390f35b348015610e8a57600080fd5b50610eed60048036036040811015610ea157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130fb565b6040518082815260200191505060405180910390f35b348015610f0f57600080fd5b50610f3c60048036036020811015610f2657600080fd5b8101908080359060200190929190505050613182565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f8a57600080fd5b50610fcd60048036036020811015610fa157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506131bf565b005b348015610fdb57600080fd5b5061109560048036036020811015610ff257600080fd5b810190808035906020019064010000000081111561100f57600080fd5b82018360208201111561102157600080fd5b8035906020019184600183028401116401000000008311171561104357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506133cf565b005b600080600090505b858590508160ff16101561138157600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087878460ff168181106110fd57fe5b9050602002013560ff1660ff1660ff16815260200190815260200160002060009054906101000a900460ff1660ff1684848360ff1681811061113b57fe5b9050602002013560ff16600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600089898660ff1681811061119557fe5b9050602002013560ff1660ff1660ff16815260200190815260200160002060009054906101000a900460ff160360ff1610611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f696e76616c69642062616c616e6365000000000000000000000000000000000081525060200191505060405180910390fd5b83838260ff1681811061124757fe5b9050602002013560ff16600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888560ff168181106112a157fe5b9050602002013560ff1660ff1660ff16815260200190815260200160002060009054906101000a900460ff1603600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888560ff1681811061131e57fe5b9050602002013560ff1660ff1660ff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555083838260ff1681811061136357fe5b9050602002013560ff1660ff1682019150808060010191505061109f565b508484905081029050611394338261353b565b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4438554cc03b60319d551b8e6d066d3ac963a9b7a4faf4f9d88a6dd9a8eca509878787876040518080602001806020018381038352878782818152602001925060200280828437600081840152601f19601f8201169050808301925050508381038252858582818152602001925060200280828437600081840152601f19601f820116905080830192505050965050505050505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f97fc7b95295dc155dba877d744d639e5bf6bf2b789bd437b63830d71e848aec3826040518082815260200191505060405180910390a25050505050565b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561154d5780601f106115225761010080835404028352916020019161154d565b820191906000526020600020905b81548152906001019060200180831161153057829003601f168201915b5050505050905090565b600061156b611564613702565b848461370a565b6001905092915050565b6060600c82604051602001808060200183815260200182810382528481815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561160c5780601f106115e15761010080835404028352916020019161160c565b820191906000526020600020905b8154815290600101906020018083116115ef57829003601f168201915b505093505050506040516020818303038152906040529050919050565b6000600254905090565b6000611640848484613901565b6117018461164c613702565b6116fc856040518060600160405280602881526020016143a860289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006116b2613702565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bc29092919063ffffffff16565b61370a565b600190509392505050565b80600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560009054906101000a900460ff16905090565b600061184d6117b1613702565b8461184885600160006117c2613702565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134b390919063ffffffff16565b61370a565b6001905092915050565b61185f613702565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611921576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b9080519060200190611937929190614228565b5050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008460ff1660ff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6119b1613702565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a73576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611a7b612a0e565b73ffffffffffffffffffffffffffffffffffffffff16ff5b611aa4611a9e613702565b82613c82565b50565b6000670de0b6b3a7640000611aba6130ec565b3481611ac257fe5b04029050611ad0338261353b565b611ae5611adf600060ff612fe0565b33613e46565b611af460065460001c3361406f565b611afc612a0e565b73ffffffffffffffffffffffffffffffffffffffff166108fc60043481611b1f57fe5b0434039081150290604051600060405180830381858888f19350505050158015611b4d573d6000803e3d6000fd5b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611ba1613702565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c63576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600b8260405160200180806020018360ff1660ff168152602001828103825284818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015611dc15780601f10611d9657610100808354040283529160200191611dc1565b820191906000526020600020905b815481529060010190602001808311611da457829003601f168201915b505093505050506040516020818303038152906040529050919050565b6000611e1d826040518060600160405280602481526020016143d060249139611e0e86611e09613702565b6130fb565b613bc29092919063ffffffff16565b9050611e3183611e2b613702565b8361370a565b611e3b8383613c82565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e7a57600080fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008460ff1660ff16815260200190815260200160002060009054906101000a900460ff1660ff1682600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008660ff1660ff16815260200190815260200160002060009054906101000a900460ff160360ff1610611fbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f696e76616c69642062616c616e6365000000000000000000000000000000000081525060200191505060405180910390fd5b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008460ff1660ff16815260200190815260200160002060009054906101000a900460ff1660ff1682600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008660ff1660ff16815260200190815260200160002060009054906101000a900460ff160160ff1611612100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7461726765742068617320746f6f206d616e790000000000000000000000000081525060200191505060405180910390fd5b81600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008560ff1660ff16815260200190815260200160002060009054906101000a900460ff1603600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008560ff1660ff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555081600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008560ff1660ff16815260200190815260200160002060009054906101000a900460ff1601600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008560ff1660ff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f7d89ed17a15c53967be6c7bd7996640d20aa056783b6770e1975154a18f211db8585604051808360ff1660ff1681526020018260ff1660ff1681526020019250505060405180910390a3505050565b60008173ffffffffffffffffffffffffffffffffffffffff166007600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156123cc57600080fd5b60008090505b858590508160ff16101561293b57600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087878460ff1681811061243057fe5b9050602002013560ff1660ff1660ff16815260200190815260200160002060009054906101000a900460ff1660ff1684848360ff1681811061246e57fe5b9050602002013560ff16600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600089898660ff168181106124c857fe5b9050602002013560ff1660ff1660ff16815260200190815260200160002060009054906101000a900460ff160360ff161061256b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f696e76616c69642062616c616e6365000000000000000000000000000000000081525060200191505060405180910390fd5b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087878460ff168181106125bb57fe5b9050602002013560ff1660ff1660ff16815260200190815260200160002060009054906101000a900460ff1660ff1684848360ff168181106125f957fe5b9050602002013560ff16600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600089898660ff1681811061265357fe5b9050602002013560ff1660ff1660ff16815260200190815260200160002060009054906101000a900460ff160160ff16116126f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7461726765742068617320746f6f206d616e790000000000000000000000000081525060200191505060405180910390fd5b83838260ff1681811061270557fe5b9050602002013560ff16600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888560ff1681811061275f57fe5b9050602002013560ff1660ff1660ff16815260200190815260200160002060009054906101000a900460ff1603600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888560ff168181106127dc57fe5b9050602002013560ff1660ff1660ff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555083838260ff1681811061282157fe5b9050602002013560ff16600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888560ff1681811061287b57fe5b9050602002013560ff1660ff1660ff16815260200190815260200160002060009054906101000a900460ff1601600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888560ff168181106128f857fe5b9050602002013560ff1660ff1660ff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555080806001019150506123d2565b508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4438554cc03b60319d551b8e6d066d3ac963a9b7a4faf4f9d88a6dd9a8eca509878787876040518080602001806020018381038352878782818152602001925060200280828437600081840152601f19601f8201169050808301925050508381038252858582818152602001925060200280828437600081840152601f19601f820116905080830192505050965050505050505060405180910390a35050505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612ad05780601f10612aa557610100808354040283529160200191612ad0565b820191906000526020600020905b815481529060010190602001808311612ab357829003601f168201915b5050505050905090565b6000612b9d612ae7613702565b84612b988560405180606001604052806025815260200161445e6025913960016000612b11613702565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bc29092919063ffffffff16565b61370a565b6001905092915050565b612bb081611a93565b6000612bc06000620f4240612fe0565b9050600080620186a08381612bd157fe5b061415612c2a57620186a090503373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015612c24573d6000803e3d6000fd5b50612d47565b60006103e88381612c3757fe5b061415612c48576127109050612d46565b60006101f48381612c5557fe5b061415612c66576113889050612d45565b600060fa8381612c7257fe5b061415612c83576109c49050612d44565b600060648381612c8f57fe5b061415612ca0576103e89050612d43565b600060328381612cac57fe5b061415612cbd576101909050612d42565b600060198381612cc957fe5b061415612cd95760c89050612d41565b6000600c8381612ce557fe5b061415612cf55760af9050612d40565b600060068381612d0157fe5b061415612d2657607d9050612d216101008381612d1a57fe5b0633613e46565b612d3f565b600060038381612d3257fe5b061415612d3e57601990505b5b5b5b5b5b5b5b5b5b60008163ffffffff161115612dce57600060648481612d6257fe5b048263ffffffff16029050612d77338261353b565b8163ffffffff163373ffffffffffffffffffffffffffffffffffffffff167f7239c2aa995004632c99bbefd6b36acfa46b74eeca3cde6d995e759408730c76836040518082815260200191505060405180910390a3505b505050565b3373ffffffffffffffffffffffffffffffffffffffff16612df383613182565b73ffffffffffffffffffffffffffffffffffffffff1614612e1357600080fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806007600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe8502e1a9d6e4a8ffb42218f7294364afac8712ce1735cad1e91ed6e248ff08a60405160405180910390a45050565b6000612fd6612fcf613702565b8484613901565b6001905092915050565b60006006544233604051602001808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050604051602081830303815290604052805190602001206006819055508260018385010160065460001c8161306157fe5b0603905092915050565b80600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600066012f2a36ecd555905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006007600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6131c7613702565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613289576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561330f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806143136026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6133d7613702565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613499576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600c90805190602001906134af929190614228565b5050565b600080828401905083811015613531576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156135de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6135ea600083836141d9565b6135ff816002546134b390919063ffffffff16565b600281905550613656816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134b390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613790576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061443a6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613816576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806143396022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613987576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806144156025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613a0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806142ce6023913960400191505060405180910390fd5b613a188383836141d9565b613a838160405180606001604052806026815260200161435b602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bc29092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613b16816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134b390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290613c6f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613c34578082015181840152602081019050613c19565b50505050905090810190601f168015613c615780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613d08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806143f46021913960400191505060405180910390fd5b613d14826000836141d9565b613d7f816040518060600160405280602281526020016142f1602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bc29092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613dd6816002546141de90919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360ff1660ff16815260200190815260200160002060009054906101000a900460ff1660ff166001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008560ff1660ff16815260200190815260200160002060009054906101000a900460ff160160ff16111561406b576001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008460ff1660ff16815260200190815260200160002060009054906101000a900460ff1601600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008460ff1660ff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f7d89ed17a15c53967be6c7bd7996640d20aa056783b6770e1975154a18f211db846001604051808360ff1660ff1681526020018260ff1681526020019250505060405180910390a35b5050565b600073ffffffffffffffffffffffffffffffffffffffff166007600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614127576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806143816027913960400191505060405180910390fd5b806007600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fe8502e1a9d6e4a8ffb42218f7294364afac8712ce1735cad1e91ed6e248ff08a60405160405180910390a45050565b505050565b600061422083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613bc2565b905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061426957805160ff1916838001178555614297565b82800160010185558215614297579182015b8281111561429657825182559160200191906001019061427b565b5b5090506142a491906142a8565b5090565b6142ca91905b808211156142c65760008160009055506001016142ae565b5090565b9056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63656e66745f696420636f6c6c6973696f6e2c20706c65617365207265706f7274206966207365656e45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220696e0a92adc316a76d4cd4a7c9c982c93ac18fef2a1f5288ab9e8c23d7666f6864736f6c634300060b003368747470733a2f2f7265656c6d696e742e636f6d2f696d672f737469636b65722f