60806040523480156200001157600080fd5b506040518060400160405280600681526020016573766553544760d01b8152506040518060400160405280600681526020016573766553544760d01b8152506200006a620000646200009e60201b60201c565b620000a2565b81516200007f906004906020850190620000f2565b50805162000095906005906020840190620000f2565b505050620001d5565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054620001009062000198565b90600052602060002090601f0160209004810192826200012457600085556200016f565b82601f106200013f57805160ff19168380011785556200016f565b828001600101855582156200016f579182015b828111156200016f57825182559160200191906001019062000152565b506200017d92915062000181565b5090565b5b808211156200017d576000815560010162000182565b600181811c90821680620001ad57607f821691505b60208210811415620001cf57634e487b7160e01b600052602260045260246000fd5b50919050565b61124080620001e56000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c80635e0d9737116100d857806395d89b411161008c578063dd62ed3e11610066578063dd62ed3e146102d3578063eedc966a14610319578063f2fde38b1461032c57600080fd5b806395d89b41146102a5578063a457c2d7146102ad578063a9059cbb146102c057600080fd5b8063715018a6116100bd578063715018a614610262578063881527041461026a5780638da5cb5b1461027d57600080fd5b80635e0d97371461024457806370a082311461024f57600080fd5b806324e0cbe01161013a578063395093511161011457806339509351146102145780633bdb6f531461022757806340c10f191461022f57600080fd5b806324e0cbe0146101f55780632f6b96dc146101fd578063313ce5671461020557600080fd5b8063095ea7b31161016b578063095ea7b3146101b757806318160ddd146101da57806323b872dd146101e257600080fd5b806301a1a72a1461018757806306fdde03146101a2575b600080fd5b61018f61033f565b6040519081526020015b60405180910390f35b6101aa6103ad565b6040516101999190611071565b6101ca6101c5366004611030565b61043f565b6040519015158152602001610199565b61018f610457565b6101ca6101f0366004610ff5565b61046a565b61018f61048e565b61018f61049f565b60405160128152602001610199565b6101ca610222366004611030565b6104bb565b61018f610507565b61024261023d366004611030565b610573565b005b61018f636413ad8081565b61018f61025d366004610fa9565b6105ed565b610242610622565b61018f610278366004611059565b610695565b60005460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610199565b6101aa6106e9565b6101ca6102bb366004611030565b6106f8565b6101ca6102ce366004611030565b6107af565b61018f6102e1366004610fc3565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205490565b61018f610327366004610fa9565b6107bd565b61024261033a366004610fa9565b6107e8565b600061034f601862278d00611133565b61035d90636413ad806110e2565b42106103695750600090565b600062278d00610377610507565b61038191906110fa565b905060186103908260016110e2565b1061039c5760186103a7565b6103a78160016110e2565b91505090565b6060600480546103bc90611187565b80601f01602080910402602001604051908101604052809291908181526020018280546103e890611187565b80156104355780601f1061040a57610100808354040283529160200191610435565b820191906000526020600020905b81548152906001019060200180831161041857829003601f168201915b5050505050905090565b60003361044d8185856108e4565b5060019392505050565b600061046561027860035490565b905090565b600033610478858285610a63565b610483858585610b20565b506001949350505050565b61049c602462278d00611133565b81565b6104ad601862278d00611133565b61049c90636413ad806110e2565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061044d90829086906105029087906110e2565b6108e4565b6000610517601862278d00611133565b61052590636413ad806110e2565b42106105315750600090565b6000636413ad80421161054857636413ad8061054a565b425b90508061055b601862278d00611133565b61056990636413ad806110e2565b6103a79190611170565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105df5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6105e98282610d90565b5050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604081205461061c90610695565b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146106895760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105d6565b6106936000610ea2565b565b60008060186106a261033f565b6106ac9085611133565b6106b691906110fa565b90506106c6602462278d00611133565b6106ce610507565b6106d89083611133565b6106e291906110fa565b9392505050565b6060600580546103bc90611187565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156107a25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016105d6565b61048382868684036108e4565b60003361044d818585610b20565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604081205461061c565b60005473ffffffffffffffffffffffffffffffffffffffff16331461084f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105d6565b73ffffffffffffffffffffffffffffffffffffffff81166108d85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105d6565b6108e181610ea2565b50565b73ffffffffffffffffffffffffffffffffffffffff831661096c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105d6565b73ffffffffffffffffffffffffffffffffffffffff82166109f55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105d6565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600260209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b1a5781811015610b0d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105d6565b610b1a84848484036108e4565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610ba95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105d6565b73ffffffffffffffffffffffffffffffffffffffff8216610c325760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105d6565b610c3d838383610f17565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604090205481811015610cd95760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016105d6565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220858503905591851681529081208054849290610d1d9084906110e2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d8391815260200190565b60405180910390a3610b1a565b73ffffffffffffffffffffffffffffffffffffffff8216610df35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105d6565b610dff60008383610f17565b8060036000828254610e1191906110e2565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604081208054839290610e4b9084906110e2565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff831615610f7b5760405162461bcd60e51b815260206004820152601060248201527f6e6f6e2d7472616e7366657261626c650000000000000000000000000000000060448201526064016105d6565b505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610fa457600080fd5b919050565b600060208284031215610fba578081fd5b6106e282610f80565b60008060408385031215610fd5578081fd5b610fde83610f80565b9150610fec60208401610f80565b90509250929050565b600080600060608486031215611009578081fd5b61101284610f80565b925061102060208501610f80565b9150604084013590509250925092565b60008060408385031215611042578182fd5b61104b83610f80565b946020939093013593505050565b60006020828403121561106a578081fd5b5035919050565b6000602080835283518082850152825b8181101561109d57858101830151858201604001528201611081565b818111156110ae5783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600082198211156110f5576110f56111db565b500190565b60008261112e577f4e487b710000000000000000000000000000000000000000000000000000000081526012600452602481fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561116b5761116b6111db565b500290565b600082821015611182576111826111db565b500390565b600181811c9082168061119b57607f821691505b602082108114156111d5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220cfdc8efa3fe4bbbe755d94e5a9df0dcc33d0fbf20192b0c902b45a03a1ca25c264736f6c63430008040033