0x6080604052600436106101385760003560e01c80638456cb59116100b0578063affca9321161006c578063affca93214610362578063cb56923e14610382578063cdc4080e146103a0578063dd72c853146103b5578063e226094a146103d5578063f2fde38b146103f557005b80638456cb59146102b257806384e5eed0146102c75780638da5cb5b146102e657806398a599c714610304578063a5a9acdc14610322578063a7cc74001461034257005b80635c975abb116100ff5780635c975abb146101fe5780636945cc991461021d5780636d945fa01461023d578063715018a61461025d578063820904a1146102725780638226429f1461029257005b8063034c200714610141578063273ae3db1461015457806337fa539d146101995780633f4ba83a146101cb57806353f4aa97146101e057005b3661013f57005b005b61013f61014f366004612fc8565b610415565b34801561016057600080fd5b5061018461016f366004613040565b60026020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b3480156101a557600080fd5b506005546001600160a01b03165b6040516001600160a01b039091168152602001610190565b3480156101d757600080fd5b5061013f610f8a565b3480156101ec57600080fd5b506006546001600160a01b03166101b3565b34801561020a57600080fd5b50600054600160a01b900460ff16610184565b34801561022957600080fd5b5061013f610238366004613059565b610f9c565b34801561024957600080fd5b5061013f610258366004613089565b6111b3565b34801561026957600080fd5b5061013f6112f6565b34801561027e57600080fd5b5061013f61028d366004613040565b611308565b34801561029e57600080fd5b5061013f6102ad366004613040565b611578565b3480156102be57600080fd5b5061013f6117b9565b3480156102d357600080fd5b506008545b604051908152602001610190565b3480156102f257600080fd5b506000546001600160a01b03166101b3565b34801561031057600080fd5b506004546001600160a01b03166101b3565b34801561032e57600080fd5b5061013f61033d366004613089565b6117c9565b34801561034e57600080fd5b5061013f61035d3660046130bc565b611902565b34801561036e57600080fd5b5061013f61037d366004613040565b611e42565b34801561038e57600080fd5b506007546001600160a01b03166101b3565b3480156103ac57600080fd5b506009546102d8565b3480156103c157600080fd5b5061013f6103d0366004613089565b611fc7565b3480156103e157600080fd5b5061013f6103f0366004613147565b612103565b34801561040157600080fd5b5061013f610410366004613089565b612abc565b61041d612b44565b610425612b91565b8661044b5760405162461bcd60e51b815260040161044290613218565b60405180910390fd5b60075460405163c9cb65e160e01b81526004810189905288916001600160a01b03169063c9cb65e190602401602060405180830381865afa158015610494573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b8919061324f565b146104d55760405162461bcd60e51b815260040161044290613268565b600754604051636efb959560e01b8152600481018990526001600160a01b03888116921690636efb959590602401602060405180830381865afa158015610520573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610544919061329f565b6001600160a01b03161461056a5760405162461bcd60e51b8152600401610442906132bc565b60075460405163d03b823360e01b8152600481018990526001916001600160a01b03169063d03b823390602401602060405180830381865afa1580156105b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d89190613323565b60018111156105e9576105e9613300565b146106365760405162461bcd60e51b815260206004820152601c60248201527f57656d69784272696467653a20746f6b656e206973206c6f636b6564000000006044820152606401610442565b600082116106995760405162461bcd60e51b815260206004820152602a60248201527f57656d69784272696467653a20616d6f756e74206d7573742067726561746572604482015269207468616e207a65726f60b01b6064820152608401610442565b600754604051636c2f63a960e11b8152600481018990526000916001600160a01b03169063d85ec75290602401602060405180830381865afa1580156106e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107079190613323565b600181111561071857610718613300565b14156107fa576007546040516326b6315d60e01b8152600481018990526000916001600160a01b0316906326b6315d90602401602060405180830381865afa158015610768573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078c9190613323565b600181111561079d5761079d613300565b146107fa5760405162461bcd60e51b815260206004820152602760248201527f57656d69784272696467653a20696e76616c69642065786368616e67652064696044820152663932b1ba34b7b760c91b6064820152608401610442565b60075460405163968de94760e01b8152600481018990526000916001600160a01b03169063968de94790602401602060405180830381865afa158015610844573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108689190613323565b600181111561087957610879613300565b141561093f57600754604051630221fbb760e11b8152600481018990526001600160a01b0390911690630443f76e90602401602060405180830381865afa1580156108c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ec919061324f565b811461093a5760405162461bcd60e51b815260206004820152601f60248201527f57656d69784272696467653a20696e76616c69642066656520616d6f756e74006044820152606401610442565b610a0f565b600754604051630221fbb760e11b8152600481018990526109c1916109b99185916001600160a01b031690630443f76e90602401602060405180830381865afa158015610990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b4919061324f565b612beb565b612710612bfe565b8114610a0f5760405162461bcd60e51b815260206004820152601f60248201527f57656d69784272696467653a20696e76616c69642066656520616d6f756e74006044820152606401610442565b60075460405163bef3cf9560e01b8152600481018990526001600160a01b039091169063f623bc2c908990610a9290849063bef3cf95906024015b602060405180830381865afa158015610a67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8b919061324f565b6001612c0a565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401600060405180830381600087803b158015610ad057600080fd5b505af1158015610ae4573d6000803e3d6000fd5b5060009250610af1915050565b6007546040516357d3fe4560e11b8152600481018a90526001600160a01b039091169063afa7fc8a90602401602060405180830381865afa158015610b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5e9190613323565b6001811115610b6f57610b6f613300565b1415610bef57610b7f8282612c0a565b3414610bcd5760405162461bcd60e51b815260206004820152601d60248201527f57656d69784272696467653a206e6f7420656e6f756e676820636f696e0000006044820152606401610442565b610bea88600083886b77656d69785f62726964676560a01b612c16565b610f13565b6007546040516304e490c160e01b8152600481018990526000916001600160a01b0316906304e490c190602401602060405180830381865afa158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190613323565b6001811115610c6e57610c6e613300565b1415610db157600754604051636efb959560e01b8152600481018990526001600160a01b0390911690636efb959590602401602060405180830381865afa158015610cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce1919061329f565b60405163079cc67960e41b81526001600160a01b0387811660048301526024820185905291909116906379cc6790906044016020604051808303816000875af1158015610d32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d569190613340565b610dac5760405162461bcd60e51b815260206004820152602160248201527f57656d69784272696467653a206661696c656420746f206275726e20746f6b656044820152603760f91b6064820152608401610442565b610ef7565b600754604051636efb959560e01b8152600481018990526001600160a01b0390911690636efb959590602401602060405180830381865afa158015610dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1e919061329f565b6040516323b872dd60e01b81526001600160a01b0387811660048301523060248301526044820185905291909116906323b872dd906064016020604051808303816000875af1158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e999190613340565b610ef75760405162461bcd60e51b815260206004820152602960248201527f57656d69784272696467653a206661696c656420746f207472616e73666572466044820152683937b6903a37b5b2b760b91b6064820152608401610442565b610f13888783886b77656d69785f62726964676560a01b612c16565b6003546040805191825260208201859052810188905260608101839052608081018290526001600160a01b0380861691878216918916907f6a440599a3417949ba51331b5310c7438465d0058b0f27d3a2e92d99ea0308849060a00160405180910390a4610f8060018055565b5050505050505050565b610f92612e21565b610f9a612e7b565b565b610fa4612e21565b81610fc15760405162461bcd60e51b815260040161044290613218565b60075460405163c9cb65e160e01b81526004810184905283916001600160a01b03169063c9cb65e190602401602060405180830381865afa15801561100a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102e919061324f565b1461104b5760405162461bcd60e51b815260040161044290613268565b600754604051636efb959560e01b8152600481018490526001600160a01b03838116921690636efb959590602401602060405180830381865afa158015611096573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ba919061329f565b6001600160a01b03161461111b5760405162461bcd60e51b815260206004820152602260248201527f57656d69784272696467653a20696e76616c696420746f6b656e206164647265604482015261737360f01b6064820152608401610442565b60075460405163f1a3b94360e01b8152600481018490526001600160a01b039091169063f1a3b94390602401600060405180830381600087803b15801561116157600080fd5b505af1158015611175573d6000803e3d6000fd5b50506040518492506001600160a01b03841691507f6531b9b0af0f8b48171805cfd27a84b87bf83c1cea33a76c96483cf50ab9389590600090a35050565b60065460405163281d205560e21b81523360048201526001600160a01b039091169063a074815490602401602060405180830381865afa1580156111fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121f9190613340565b61123b5760405162461bcd60e51b815260040161044290613362565b6001600160a01b0381163b6112a15760405162461bcd60e51b815260206004820152602660248201527f57656d69784272696467653a20696e76616c69642076616c696461746f72206160448201526564647265737360d01b6064820152608401610442565b600580546001600160a01b0319166001600160a01b0383169081179091556040519081527f2156371e007244f5fd40a573c539b80ba2e0024a3779404b4e88509951880a63906020015b60405180910390a150565b6112fe612e21565b610f9a6000612ed0565b60065460405163281d205560e21b81523360048201526001600160a01b039091169063a074815490602401602060405180830381865afa158015611350573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113749190613340565b6113905760405162461bcd60e51b815260040161044290613362565b806113ad5760405162461bcd60e51b815260040161044290613218565b60075460405163c9cb65e160e01b81526004810183905282916001600160a01b03169063c9cb65e190602401602060405180830381865afa1580156113f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141a919061324f565b146114375760405162461bcd60e51b815260040161044290613268565b60075460405163d03b823360e01b8152600481018390526001916001600160a01b03169063d03b823390602401602060405180830381865afa158015611481573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a59190613323565b60018111156114b6576114b6613300565b1461150f5760405162461bcd60e51b815260206004820152602360248201527f57656d69784272696467653a20746f6b656e20697320616c65616479206c6f636044820152621ad95960ea1b6064820152608401610442565b60075460405163f969c9b360e01b815260048101839052600060248201526001600160a01b039091169063f969c9b3906044015b600060405180830381600087803b15801561155d57600080fd5b505af1158015611571573d6000803e3d6000fd5b5050505050565b60065460405163281d205560e21b81523360048201526001600160a01b039091169063a074815490602401602060405180830381865afa1580156115c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e49190613340565b6116005760405162461bcd60e51b815260040161044290613362565b8061161d5760405162461bcd60e51b815260040161044290613218565b60075460405163c9cb65e160e01b81526004810183905282916001600160a01b03169063c9cb65e190602401602060405180830381865afa158015611666573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168a919061324f565b146116a75760405162461bcd60e51b815260040161044290613268565b60075460405163d03b823360e01b8152600481018390526001916001600160a01b03169063d03b823390602401602060405180830381865afa1580156116f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117159190613323565b600181111561172657611726613300565b146117815760405162461bcd60e51b815260206004820152602560248201527f57656d69784272696467653a20746f6b656e20697320616c6561647920756e6c6044820152641bd8dad95960da1b6064820152608401610442565b60075460405163f969c9b360e01b815260048101839052600160248201526001600160a01b039091169063f969c9b390604401611543565b6117c1612e21565b610f9a612f20565b60065460405163281d205560e21b81523360048201526001600160a01b039091169063a074815490602401602060405180830381865afa158015611811573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118359190613340565b6118515760405162461bcd60e51b815260040161044290613362565b6001600160a01b0381163b6118b45760405162461bcd60e51b815260206004820152602360248201527f57656d69784272696467653a20696e76616c696420656469746f72206164647260448201526265737360e81b6064820152608401610442565b600680546001600160a01b0319166001600160a01b0383169081179091556040519081527ffc7d9061848e2741ecaef0970c54dcf3117703ed3ceb793d18ef446d24d8a231906020016112eb565b61190a612e21565b60008660ff16600181111561192157611921613300565b600181111561193257611932613300565b1480611963575060018660ff16600181111561195057611950613300565b600181111561196157611961613300565b145b6119af5760405162461bcd60e51b815260206004820152601e60248201527f57656d69784272696467653a20696e76616c696420746f6b656e5479706500006044820152606401610442565b876119cc5760405162461bcd60e51b815260040161044290613218565b60ff851660011480156119e0575061271081105b806119ec575060ff8516155b611a385760405162461bcd60e51b815260206004820152601e60248201527f57656d69784272696467653a20696e76616c696420696e636f6d6546656500006044820152606401610442565b60075460405163c9cb65e160e01b8152600481018a90526001600160a01b039091169063c9cb65e190602401602060405180830381865afa158015611a81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa5919061324f565b15611af25760405162461bcd60e51b815260206004820181905260248201527f57656d69784272696467653a206475706c69636174656420746f6b656e2069646044820152606401610442565b60018660ff166001811115611b0957611b09613300565b6001811115611b1a57611b1a613300565b1415611c5a576001600160a01b0387163b611b8b5760405162461bcd60e51b815260206004820152602b60248201527f57656d69784272696467653a20696e76616c696420746f6b656e20636f6e747260448201526a616374206164647265737360a81b6064820152608401610442565b6004805460405163095ea7b360e01b81526001600160a01b0391821692810192909252600019602483015288919082169063095ea7b3906044016020604051808303816000875af1158015611be4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c089190613340565b611c545760405162461bcd60e51b815260206004820152601e60248201527f57656d69784272696467653a206661696c656420746f20617070726f766500006044820152606401610442565b50611cbb565b6001600160a01b03871615611cbb5760405162461bcd60e51b815260206004820152602160248201527f57656d69784272696467653a20696e76616c696420636f696e206164647265736044820152607360f81b6064820152608401610442565b60075460408051631bb7116d60e31b815290518a928a926000926001600160a01b039092169163ddb88b689160048082019286929091908290030181865afa158015611d0b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d3391908101906133af565b51600754604051637637fb3560e11b8152600481018690526001600160a01b03858116602483015260448201889052600060648301819052608483015260a4820184905260ff808e1660c4840152808d1660e4840152808c166101048401526001610124840152808b16610144840152891661016483015292935086928c928c928c928c928c9291169063ec6ff66a9061018401600060405180830381600087803b158015611de157600080fd5b505af1158015611df5573d6000803e3d6000fd5b50506040518b92506001600160a01b038b1691507f274cba0945e9bd65cfa36002aa4e58d5584aae2e0c5d177e23ffc4c181af09e190600090a35050505050505050505050505050505050565b60065460405163281d205560e21b81523360048201526001600160a01b039091169063a074815490602401602060405180830381865afa158015611e8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eae9190613340565b611eca5760405162461bcd60e51b815260040161044290613362565b6064811115611f2d5760405162461bcd60e51b815260206004820152602960248201527f57656d69784272696467653a2063616e6e6f74207365742066656520726174656044820152680206f766572203130360bc1b6064820152608401610442565b600854811415611f925760405162461bcd60e51b815260206004820152602a60248201527f57656d69784272696467653a20616c72656164792073657420746f207468652060448201526973616d652076616c756560b01b6064820152608401610442565b60088190556040518181527f959e25ed7f2462e87a914c01dc168688aafb2a2a3686e904a02c1ade7282fa29906020016112eb565b60065460405163281d205560e21b81523360048201526001600160a01b039091169063a074815490602401602060405180830381865afa15801561200f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120339190613340565b61204f5760405162461bcd60e51b815260040161044290613362565b6001600160a01b0381163b6120b55760405162461bcd60e51b815260206004820152602660248201527f57656d69784272696467653a20696e76616c696420726563697069656e74206160448201526564647265737360d01b6064820152608401610442565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527f59eb369fc8b80d86f35bb245619eb1b1bd7e4e7dd85fce1e860437593071b535906020016112eb565b60055460405163facd743b60e01b81523360048201526001600160a01b039091169063facd743b90602401602060405180830381865afa15801561214b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216f9190613340565b6121bb5760405162461bcd60e51b815260206004820152601a60248201527f57656d69784272696467653a206e6f742076616c696461746f720000000000006044820152606401610442565b886121d85760405162461bcd60e51b815260040161044290613218565b60075460405163c9cb65e160e01b8152600481018b90528a916001600160a01b03169063c9cb65e190602401602060405180830381865afa158015612221573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612245919061324f565b146122625760405162461bcd60e51b815260040161044290613268565b600754604051636efb959560e01b8152600481018b90526001600160a01b038a8116921690636efb959590602401602060405180830381865afa1580156122ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d1919061329f565b6001600160a01b0316146122f75760405162461bcd60e51b8152600401610442906132bc565b60075460405163d03b823360e01b8152600481018b90526001916001600160a01b03169063d03b823390602401602060405180830381865afa158015612341573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123659190613323565b600181111561237657612376613300565b146123c35760405162461bcd60e51b815260206004820152601b60248201527f57656d69784272696467653a746f6b656e206973206c6f636b656400000000006044820152606401610442565b60008481526002602052604090205460ff16156124225760405162461bcd60e51b815260206004820152601e60248201527f57656d69784272696467653a20616c72656164792066696e616c697a656400006044820152606401610442565b600083116124725760405162461bcd60e51b815260206004820152601b60248201527f57656d69784272696467653a20616d6f756e74206973207a65726f00000000006044820152606401610442565b600061247f826041612bfe565b905060008a308b8b8b8b8b8b885b8a8110156125d6573660008e8e6124a5856041613483565b906124b18660016134a2565b6124bc906041613483565b926124c9939291906134ba565b60408051602081018f90526bffffffffffffffffffffffff1960608f811b8216838501528e811b821660548401528d811b821660688401528c901b16607c820152609081018a905260b0810189905260d08082018990528251808303909101815260f082019283905260055462abcfa360e71b9093529395509193506001600160a01b0316906355e7d180906125679084908790879060f4016134e4565b602060405180830381865afa158015612584573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a89190613340565b1515600114156125c0578c6125bc8161356a565b9d50505b50505080806125ce9061356a565b91505061248d565b5060055460408051637aea07cf60e01b8152905161264d926001600160a01b031691637aea07cf9160048083019260209291908290030181865afa158015612622573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612646919061324f565b6002612bfe565b89116126c15760405162461bcd60e51b815260206004820152603b60248201527f57656d69784272696467653a206661696c20746f20736174697366792073756660448201527f66696369656e74206e756d626572206f662076616c69642073696700000000006064820152608401610442565b60075460405163557ea6f960e01b8152600481018a90526001600160a01b0390911690634aeae3bf908a9061270090849063557ea6f990602401610a4a565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401600060405180830381600087803b15801561273e57600080fd5b505af1158015612752573d6000803e3d6000fd5b5050506000838152600260205260408120805460ff1916600117905590506007546040516357d3fe4560e11b8152600481018b90526001600160a01b039091169063afa7fc8a90602401602060405180830381865afa1580156127b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127dd9190613323565b60018111156127ee576127ee613300565b1415612830576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561282a573d6000803e3d6000fd5b50612a42565b6007546040516304e490c160e01b8152600481018a90526000916001600160a01b0316906304e490c190602401602060405180830381865afa15801561287a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061289e9190613323565b60018111156128af576128af613300565b1415612983576040516340c10f1960e01b81526001600160a01b038581166004830152602482018390528716906340c10f19906044016020604051808303816000875af1158015612904573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129289190613340565b61297e5760405162461bcd60e51b815260206004820152602160248201527f57656d69784272696467653a206661696c656420746f206d696e7420746f6b656044820152603760f91b6064820152608401610442565b612a42565b60405163a9059cbb60e01b81526001600160a01b0385811660048301526024820183905287169063a9059cbb906044016020604051808303816000875af11580156129d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f69190613340565b612a425760405162461bcd60e51b815260206004820152601f60248201527f57656d69784272696467653a206661696c656420746f207472616e73666572006044820152606401610442565b600354604080518581526020810192909252810189905260608101829052608081018390526001600160a01b0380861691878216918916907f3a84926296bbaf75677f0addcc3040b4e7be291520cb4aba13341181477a121a9060a00160405180910390a450505050505050505050505050505050505050565b612ac4612e21565b6001600160a01b038116612b295760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610442565b612b3281612ed0565b50565b6001600160a01b03163b151590565b600054600160a01b900460ff1615610f9a5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610442565b60026001541415612be45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610442565b6002600155565b6000612bf78284613483565b9392505050565b6000612bf78284613585565b6000612bf782846134a2565b6001600160a01b03841615612d8e576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018590528516906323b872dd906064016020604051808303816000875af1158015612c7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9e9190613340565b612cfb5760405162461bcd60e51b815260206004820152602860248201527f57656d69784272696467653a206661696c656420746f207472616e73666572466044820152671c9bdb4818dbdcdd60c21b6064820152608401610442565b6004805460085460405162cab8c160e11b81529283018890526001600160a01b03878116602485015260448401859052606484018790526084840191909152169063019571829060a4016020604051808303816000875af1158015612d64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d889190613340565b50611571565b6004805460085460405162cab8c160e11b815292830188905260006024840152604483018490526064830186905260848301526001600160a01b031690630195718290859060a40160206040518083038185885af1158015612df4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e199190613340565b505050505050565b6000546001600160a01b03163314610f9a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610442565b612e83612f63565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b612f28612b44565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612eb33390565b600054600160a01b900460ff16610f9a5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610442565b6001600160a01b0381168114612b3257600080fd5b600080600080600080600080610100898b031215612fe557600080fd5b88359750602089013596506040890135612ffe81612fb3565b9550606089013561300e81612fb3565b9450608089013561301e81612fb3565b979a969950949793969560a0850135955060c08501359460e001359350915050565b60006020828403121561305257600080fd5b5035919050565b6000806040838503121561306c57600080fd5b82359150602083013561307e81612fb3565b809150509250929050565b60006020828403121561309b57600080fd5b8135612bf781612fb3565b803560ff811681146130b757600080fd5b919050565b600080600080600080600080610100898b0312156130d957600080fd5b8835975060208901356130eb81612fb3565b96506130f960408a016130a6565b955061310760608a016130a6565b945061311560808a016130a6565b935061312360a08a016130a6565b925061313160c08a016130a6565b915060e089013590509295985092959890939650565b60008060008060008060008060006101008a8c03121561316657600080fd5b8935985060208a013561317881612fb3565b975060408a013561318881612fb3565b965060608a013561319881612fb3565b955060808a0135945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff808211156131ca57600080fd5b818c0191508c601f8301126131de57600080fd5b8135818111156131ed57600080fd5b8d60208285010111156131ff57600080fd5b6020830194508093505050509295985092959850929598565b6020808252601d908201527f57656d69784272696467653a20696e76616c696420746f6b656e206964000000604082015260600190565b60006020828403121561326157600080fd5b5051919050565b6020808252601f908201527f57656d69784272696467653a20696e636f727265637420746f6b656e20696400604082015260600190565b6000602082840312156132b157600080fd5b8151612bf781612fb3565b60208082526024908201527f57656d69784272696467653a20696e636f727265637420746f6b656e206164646040820152637265737360e01b606082015260800190565b634e487b7160e01b600052602160045260246000fd5b60028110612b3257600080fd5b60006020828403121561333557600080fd5b8151612bf781613316565b60006020828403121561335257600080fd5b81518015158114612bf757600080fd5b60208082526017908201527f57656d69784272696467653a206e6f7420656469746f72000000000000000000604082015260600190565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156133c257600080fd5b825167ffffffffffffffff808211156133da57600080fd5b818501915085601f8301126133ee57600080fd5b81518181111561340057613400613399565b8060051b604051601f19603f8301168101818110858211171561342557613425613399565b60405291825284820192508381018501918883111561344357600080fd5b938501935b8285101561346157845184529385019392850192613448565b98975050505050505050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561349d5761349d61346d565b500290565b600082198211156134b5576134b561346d565b500190565b600080858511156134ca57600080fd5b838611156134d757600080fd5b5050820193919092039150565b604081526000845180604084015260005b8181101561351257602081880181015160608684010152016134f5565b81811115613524576000606083860101525b50601f1980601f83011684019150606084830301602085015284606083015284866080840137600060808684010152608081601f87011683010192505050949350505050565b600060001982141561357e5761357e61346d565b5060010190565b6000826135a257634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212202cf04f9135cc05c44c683d2db9bea927481775293d0a34d522a4b62616d7dad564736f6c634300080a0033