0x608060405234801561001057600080fd5b506130c5806100206000396000f3fe6080604052600436106101665760003560e01c80635e8e9cd6116100d1578063beb3e3821161008a578063c78ad77f11610064578063c78ad77f14610464578063cc1e81d11461047a578063fa2af9da1461048d578063ff39e9c9146104ad57600080fd5b8063beb3e38214610404578063bed4a4b914610424578063c6a319fa1461044457600080fd5b80635e8e9cd61461034257806378358b99146103625780637de78d3e14610382578063a917f66f14610395578063abdb2f63146103ce578063b8a0a886146103e457600080fd5b80632785b911116101235780632785b9111461026d5780633f6d8256146102a65780634c4df870146102bc5780634fc4a1ae146102ec57806355460f81146103025780635da4a1d31461032257600080fd5b80630ccf21561461016b57806314ff5ea314610194578063163d36ba146101c45780631d1440fd146101da5780632374d2ae1461022b57806326b825d21461024d575b600080fd5b34801561017757600080fd5b5061018160395481565b6040519081526020015b60405180910390f35b3480156101a057600080fd5b506101816101af366004612c79565b60009081526040602081905290206002015490565b3480156101d057600080fd5b50610181603b5481565b3480156101e657600080fd5b506102136101f5366004612c79565b6000908152604060208190529020600401546001600160a01b031690565b6040516001600160a01b03909116815260200161018b565b34801561023757600080fd5b5061024b610246366004612c79565b6104cd565b005b34801561025957600080fd5b5061024b610268366004612c79565b6106f1565b34801561027957600080fd5b50610213610288366004612c79565b6000908152604060208190529020600101546001600160a01b031690565b3480156102b257600080fd5b50610181603a5481565b3480156102c857600080fd5b506101816102d7366004612c79565b60009081526040602081905290206005015490565b3480156102f857600080fd5b50610181603c5481565b34801561030e57600080fd5b5061024b61031d366004612c79565b61090c565b34801561032e57600080fd5b5061024b61033d366004612c79565b610b27565b34801561034e57600080fd5b50603554610213906001600160a01b031681565b34801561036e57600080fd5b5061024b61037d366004612d35565b610d42565b61024b610390366004612d8a565b61123c565b3480156103a157600080fd5b506102136103b0366004612c79565b6000908152604060208190529020600301546001600160a01b031690565b3480156103da57600080fd5b50610181603d5481565b3480156103f057600080fd5b5061024b6103ff366004612c79565b6118c5565b34801561041057600080fd5b5061024b61041f366004612e1d565b611ae0565b34801561043057600080fd5b5061018161043f366004612c79565b611c04565b34801561045057600080fd5b50603754610213906001600160a01b031681565b34801561047057600080fd5b50610181603e5481565b61024b610488366004612d35565b611cd1565b34801561049957600080fd5b50603854610213906001600160a01b031681565b3480156104b957600080fd5b50603654610213906001600160a01b031681565b6037546040805163a217fddf60e01b815290516001600160a01b03909216916391d1485491839163a217fddf91600480820192602092909190829003018186803b15801561051a57600080fd5b505afa15801561052e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105529190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b15801561058f57600080fd5b505afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c79190612ec0565b806106c757506037546040805163a6b4321160e01b815290516001600160a01b03909216916391d1485491839163a6b4321191600480820192602092909190829003018186803b15801561061a57600080fd5b505afa15801561062e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106529190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b15801561068f57600080fd5b505afa1580156106a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c79190612ec0565b6106ec5760405162461bcd60e51b81526004016106e390612ee4565b60405180910390fd5b603c55565b6037546040805163a217fddf60e01b815290516001600160a01b03909216916391d1485491839163a217fddf91600480820192602092909190829003018186803b15801561073e57600080fd5b505afa158015610752573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107769190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b1580156107b357600080fd5b505afa1580156107c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107eb9190612ec0565b806108eb57506037546040805163a6b4321160e01b815290516001600160a01b03909216916391d1485491839163a6b4321191600480820192602092909190829003018186803b15801561083e57600080fd5b505afa158015610852573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108769190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b1580156108b357600080fd5b505afa1580156108c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108eb9190612ec0565b6109075760405162461bcd60e51b81526004016106e390612ee4565b603955565b6037546040805163a217fddf60e01b815290516001600160a01b03909216916391d1485491839163a217fddf91600480820192602092909190829003018186803b15801561095957600080fd5b505afa15801561096d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109919190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b1580156109ce57600080fd5b505afa1580156109e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a069190612ec0565b80610b0657506037546040805163a6b4321160e01b815290516001600160a01b03909216916391d1485491839163a6b4321191600480820192602092909190829003018186803b158015610a5957600080fd5b505afa158015610a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a919190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b158015610ace57600080fd5b505afa158015610ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b069190612ec0565b610b225760405162461bcd60e51b81526004016106e390612ee4565b603a55565b6037546040805163a217fddf60e01b815290516001600160a01b03909216916391d1485491839163a217fddf91600480820192602092909190829003018186803b158015610b7457600080fd5b505afa158015610b88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bac9190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b158015610be957600080fd5b505afa158015610bfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c219190612ec0565b80610d2157506037546040805163a6b4321160e01b815290516001600160a01b03909216916391d1485491839163a6b4321191600480820192602092909190829003018186803b158015610c7457600080fd5b505afa158015610c88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cac9190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b158015610ce957600080fd5b505afa158015610cfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d219190612ec0565b610d3d5760405162461bcd60e51b81526004016106e390612ee4565b603e55565b604080517fc8be346292b8ae5a1419149a4d48922b0e66dd1fc34ef88bbb6cd0910a5c886d6020820152908101839052600090610d98906060015b60405160208183030381529060405280519060200120611ff4565b90506000610da68284612048565b603754604080516324b0afb360e21b815290519293506001600160a01b03909116916391d148549183916392c2becc91600480820192602092909190829003018186803b158015610df657600080fd5b505afa158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e9190612ea7565b6040516001600160e01b031960e084901b16815260048101919091526001600160a01b038416602482015260440160206040518083038186803b158015610e7457600080fd5b505afa158015610e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eac9190612ec0565b610f115760405162461bcd60e51b815260206004820152603060248201527f4d61726b6574706c6163653a20756e6c6973744d61726b65744974656d3a206960448201526f6e76616c6964207369676e617475726560801b60648201526084016106e3565b6000848152604060208190529020600301546001600160a01b031633148061102e57506037546040805163a217fddf60e01b815290516001600160a01b03909216916391d1485491839163a217fddf91600480820192602092909190829003018186803b158015610f8157600080fd5b505afa158015610f95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb99190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b158015610ff657600080fd5b505afa15801561100a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102e9190612ec0565b8061112e57506037546040805163a6b4321160e01b815290516001600160a01b03909216916391d1485491839163a6b4321191600480820192602092909190829003018186803b15801561108157600080fd5b505afa158015611095573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b99190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b1580156110f657600080fd5b505afa15801561110a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112e9190612ec0565b6111975760405162461bcd60e51b815260206004820152603460248201527f4d61726b6574706c6163653a206f6e6c792073656c6c6572206f722061646d696044820152736e2063616e20756e6c69737420616e206974656d60601b60648201526084016106e3565b6000848152604060208190529081902060028101546003820154600492830180546001600160a01b0319166001600160a01b0392831690811790915560355494516323b872dd60e01b81523094810194909452602484015260448301829052909216906323b872dd90606401600060405180830381600087803b15801561121d57600080fd5b505af1158015611231573d6000803e3d6000fd5b505050505050505050565b604080517fc47d23abe106557c5a8fe714c4d69edcb89c23c91476ef81f7b8a23d4addeeed6020820152908101879052606081018690526080810185905283151560a082015282151560c08201526000906112999060e001610d7d565b905060006112a78284612048565b603754604080516324b0afb360e21b815290519293506001600160a01b03909116916391d148549183916392c2becc91600480820192602092909190829003018186803b1580156112f757600080fd5b505afa15801561130b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132f9190612ea7565b6040516001600160e01b031960e084901b16815260048101919091526001600160a01b038416602482015260440160206040518083038186803b15801561137557600080fd5b505afa158015611389573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ad9190612ec0565b6114125760405162461bcd60e51b815260206004820152603060248201527f4d61726b6574706c6163653a206372656174654d61726b65744974656d3a206960448201526f6e76616c6964207369676e617475726560801b60648201526084016106e3565b8361149957603d548610156114995760405162461bcd60e51b815260206004820152604160248201527f4d61726b6574706c6163653a20666c6f6f72207072696365206d75737420626560448201527f20626967676572206f7220657175616c20746f20426174746c655061737346656064820152606560f81b608482015260a4016106e3565b8587101561150f5760405162461bcd60e51b815260206004820152603960248201527f4d61726b6574706c6163653a207072696365206d75737420626520626967676560448201527f72206f7220657175616c20746f20666c6f6f722070726963650000000000000060648201526084016106e3565b61151d603f80546001019055565b6000611528603f5490565b9050604051806101200160405280828152602001603560009054906101000a90046001600160a01b03166001600160a01b031681526020018a8152602001336001600160a01b03168152602001306001600160a01b031681526020018981526020016000151581526020018715158152602001861515815250604060008381526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506040820151816002015560608201518160030160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060808201518160040160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060a0820151816005015560c08201518160060160006101000a81548160ff02191690831515021790555060e08201518160060160016101000a81548160ff0219169083151502179055506101008201518160060160026101000a81548160ff021916908315150217905550905050603c5434146116cb57600080fd5b6037546040805163220ce7e760e21b815290516000926001600160a01b0316916388339f9c916004808301926020929190829003018186803b15801561171057600080fd5b505afa158015611724573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117489190612f2b565b90506000816001600160a01b03163460405160006040518083038185875af1925050503d8060008114611797576040519150601f19603f3d011682016040523d82523d6000602084013e61179c565b606091505b50509050806117e45760405162461bcd60e51b81526020600482015260146024820152734661696c656420746f2073656e64206d6f6e657960601b60448201526064016106e3565b6035546040516323b872dd60e01b8152336004820152306024820152604481018d90526001600160a01b03909116906323b872dd90606401600060405180830381600087803b15801561183657600080fd5b505af115801561184a573d6000803e3d6000fd5b5050603554604080513381523060208201529081018e9052600060608201528b151560808201528a151560a08201528e93506001600160a01b03909116915085907fde0eaa831f6f313e637b47b238d0be0b6c05d861ba220c83d12e89e3a2c4f82d9060c00160405180910390a45050505050505050505050565b6037546040805163a217fddf60e01b815290516001600160a01b03909216916391d1485491839163a217fddf91600480820192602092909190829003018186803b15801561191257600080fd5b505afa158015611926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194a9190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b15801561198757600080fd5b505afa15801561199b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119bf9190612ec0565b80611abf57506037546040805163a6b4321160e01b815290516001600160a01b03909216916391d1485491839163a6b4321191600480820192602092909190829003018186803b158015611a1257600080fd5b505afa158015611a26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a4a9190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b158015611a8757600080fd5b505afa158015611a9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abf9190612ec0565b611adb5760405162461bcd60e51b81526004016106e390612ee4565b603b55565b600054610100900460ff1680611af9575060005460ff16155b611b155760405162461bcd60e51b81526004016106e390612f48565b600054610100900460ff16158015611b37576000805461ffff19166101011790555b611b7d6040518060400160405280600b81526020016a4d61726b6574706c61636560a81b815250604051806040016040528060018152602001603160f81b81525061206c565b603580546001600160a01b03808d166001600160a01b031992831617909255603780548c8416908316179055603880548b841690831617905560368054928a16929091169190911790556039869055603a859055603b849055603c839055603d8290556103e8603e558015611bf8576000805461ff00191690555b50505050505050505050565b600081815260406020819052812060060154610100900460ff1615611c39575060009081526040602081905290206005015490565b600082815260406020819052812060050154603e54603954919291611c5e9084612fac565b611c689190612fcb565b90506000603e54603a5484611c7d9190612fac565b611c879190612fcb565b90506000603e54603b5485611c9c9190612fac565b611ca69190612fcb565b905080611cb38385612fed565b611cbd9190612fed565b611cc79085612fed565b9695505050505050565b604080517f35d74387c6df1142a85b0387679be5245ff31a2d197083572e72fa9cd3cdd7ff6020820152908101839052600090611d1090606001610d7d565b90506000611d1e8284612048565b603754604080516324b0afb360e21b815290519293506001600160a01b03909116916391d148549183916392c2becc91600480820192602092909190829003018186803b158015611d6e57600080fd5b505afa158015611d82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da69190612ea7565b6040516001600160e01b031960e084901b16815260048101919091526001600160a01b038416602482015260440160206040518083038186803b158015611dec57600080fd5b505afa158015611e00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e249190612ec0565b611e895760405162461bcd60e51b815260206004820152603060248201527f4d61726b6574706c6163653a206372656174654d61726b657453616c653a206960448201526f6e76616c6964207369676e617475726560801b60648201526084016106e3565b600084815260406020818152918190208151610120810183528154815260018201546001600160a01b03908116948201949094526002820154928101839052600382015484166060820152600482015490931660808401819052600582015460a0850181905260069092015460ff808216151560c08701526101008083048216151560e088015262010000909204161515908501819052903014611f885760405162461bcd60e51b815260206004820152603060248201527f4d61726b6574706c6163653a2074686973206974656d206973206e6f7420617660448201526f61696c61626c6520666f722073616c6560801b60648201526084016106e3565b33611f95858585856120f7565b611f9f8982612775565b603554604080516001600160a01b038481168252602082018790528c9316917f38d3b35f9d1a01bdaf62d50358599208ee79c951b1dc12e1032b30a03411d919910160405180910390a3505050505050505050565b60006120426120016128af565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b92915050565b6000806000612057858561292f565b915091506120648161299f565b509392505050565b600054610100900460ff1680612085575060005460ff16155b6120a15760405162461bcd60e51b81526004016106e390612f48565b600054610100900460ff161580156120c3576000805461ffff19166101011790555b825160208085019190912083519184019190912060019190915560025580156120f2576000805461ff00191690555b505050565b60608401516035546040516362848c0f60e01b8152600481018690526000916001600160a01b0316906362848c0f9060240160206040518083038186803b15801561214157600080fd5b505afa158015612155573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121799190612f2b565b60365460355460405163311b490f60e11b8152600481018990529293506000926001600160a01b0392831692636352211e921690636236921e9060240160206040518083038186803b1580156121ce57600080fd5b505afa1580156121e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122069190612ea7565b6040518263ffffffff1660e01b815260040161222491815260200190565b60206040518083038186803b15801561223c57600080fd5b505afa158015612250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122749190612f2b565b90506000603760009054906101000a90046001600160a01b03166001600160a01b03166388339f9c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156122c657600080fd5b505afa1580156122da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122fe9190612f2b565b90506000603e54603954886123139190612fac565b61231d9190612fcb565b90506000603e54603a54896123329190612fac565b61233c9190612fcb565b90506000603e54603b548a6123519190612fac565b61235b9190612fcb565b9050806123688385612fed565b6123729190612fed565b8910156123c15760405162461bcd60e51b815260206004820152601860248201527f4d61726b6574706c6163653a207072696365206572726f72000000000000000060448201526064016106e3565b60e08b01518990156123ef57816123d88486612fed565b6123e29190612fed565b6123ec9082613005565b90505b81836123fb8684612fed565b6124059190612fed565b61240f9190612fed565b34146124685760405162461bcd60e51b815260206004820152602260248201527f4d61726b6574706c6163653a206e6f7420636f7272656374206d73672e76616c604482015261756560f01b60648201526084016106e3565b6000896124f157603d5461247c9083613005565b603d546040519193506001600160a01b03891691600081818185875af1925050503d80600081146124c9576040519150601f19603f3d011682016040523d82523d6000602084013e6124ce565b606091505b505080915050806124f15760405162461bcd60e51b81526004016106e39061301c565b6040516001600160a01b038a16908390600081818185875af1925050503d806000811461253a576040519150601f19603f3d011682016040523d82523d6000602084013e61253f565b606091505b505080915050806125955760405162461bcd60e51b815260206004820152602c602482015260008051602061307083398151915260448201526b3c903337b91039b2b63632b960a11b60648201526084016106e3565b6040516001600160a01b038816908590600081818185875af1925050503d80600081146125de576040519150601f19603f3d011682016040523d82523d6000602084013e6125e3565b606091505b505080915050806126065760405162461bcd60e51b81526004016106e39061301c565b6040516001600160a01b038716908690600081818185875af1925050503d806000811461264f576040519150601f19603f3d011682016040523d82523d6000602084013e612654565b606091505b505080915050806126b15760405162461bcd60e51b815260206004820152603360248201526000805160206130708339815191526044820152721e48199bdc881b585c9ad95d14185e5b595b9d606a1b60648201526084016106e3565b6040516001600160a01b038916908490600081818185875af1925050503d80600081146126fa576040519150601f19603f3d011682016040523d82523d6000602084013e6126ff565b606091505b505080915050806127665760405162461bcd60e51b8152602060048201526038602482015260008051602061307083398151915260448201527f7920666f72206974656d43726561746f725061796d656e74000000000000000060648201526084016106e3565b50505050505050505050505050565b600082815260406020818152918190208151610120810183528154815260018201546001600160a01b0390811694820194909452600282015481840181905260038301548516606083015260048084015486166080840152600584015460a084015260069093015460ff808216151560c08501526101008083048216151560e0860152620100009092041615159083015260355493516323b872dd60e01b81523093810193909352336024840152604483018190529093909216906323b872dd90606401600060405180830381600087803b15801561285357600080fd5b505af1158015612867573d6000803e3d6000fd5b50505060009485525050604060208190529092206004810180546001600160a01b0319166001600160a01b039390931692909217909155600601805460ff1916600117905550565b600061292a7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6128de60015490565b6002546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b905090565b6000808251604114156129665760208301516040840151606085015160001a61295a87828585612b5d565b94509450505050612998565b8251604014156129905760208301516040840151612985868383612c4a565b935093505050612998565b506000905060025b9250929050565b60008160048111156129b3576129b3613059565b14156129bc5750565b60018160048111156129d0576129d0613059565b1415612a1e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016106e3565b6002816004811115612a3257612a32613059565b1415612a805760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016106e3565b6003816004811115612a9457612a94613059565b1415612aed5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016106e3565b6004816004811115612b0157612b01613059565b1415612b5a5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016106e3565b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612b945750600090506003612c41565b8460ff16601b14158015612bac57508460ff16601c14155b15612bbd5750600090506004612c41565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612c11573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c3a57600060019250925050612c41565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b01612c6b87828885612b5d565b935093505050935093915050565b600060208284031215612c8b57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112612cb957600080fd5b813567ffffffffffffffff80821115612cd457612cd4612c92565b604051601f8301601f19908116603f01168101908282118183101715612cfc57612cfc612c92565b81604052838152866020858801011115612d1557600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215612d4857600080fd5b82359150602083013567ffffffffffffffff811115612d6657600080fd5b612d7285828601612ca8565b9150509250929050565b8015158114612b5a57600080fd5b60008060008060008060c08789031215612da357600080fd5b8635955060208701359450604087013593506060870135612dc381612d7c565b92506080870135612dd381612d7c565b915060a087013567ffffffffffffffff811115612def57600080fd5b612dfb89828a01612ca8565b9150509295509295509295565b6001600160a01b0381168114612b5a57600080fd5b60008060008060008060008060006101208a8c031215612e3c57600080fd5b8935612e4781612e08565b985060208a0135612e5781612e08565b975060408a0135612e6781612e08565b965060608a0135612e7781612e08565b989b979a50959860808101359760a0820135975060c0820135965060e08201359550610100909101359350915050565b600060208284031215612eb957600080fd5b5051919050565b600060208284031215612ed257600080fd5b8151612edd81612d7c565b9392505050565b60208082526027908201527f506c6174666f726d53657474696e67733a43616c6c6572206973206e6f742061604082015266371030b236b4b760c91b606082015260800190565b600060208284031215612f3d57600080fd5b8151612edd81612e08565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615612fc657612fc6612f96565b500290565b600082612fe857634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561300057613000612f96565b500190565b60008282101561301757613017612f96565b500390565b6020808252602f9082015260008051602061307083398151915260408201526e3c903337b9103b30b634b230ba37b960891b606082015260800190565b634e487b7160e01b600052602160045260246000fdfe4d61726b6574706c6163653a204661696c656420746f2073656e64206d6f6e65a26469706673582212200ddd35c8dc634cfa7d1066f1461d8b4acd00fa73518f7b00c7f0081c8398f32264736f6c63430008090033
0x6080604052600436106101665760003560e01c80635e8e9cd6116100d1578063beb3e3821161008a578063c78ad77f11610064578063c78ad77f14610464578063cc1e81d11461047a578063fa2af9da1461048d578063ff39e9c9146104ad57600080fd5b8063beb3e38214610404578063bed4a4b914610424578063c6a319fa1461044457600080fd5b80635e8e9cd61461034257806378358b99146103625780637de78d3e14610382578063a917f66f14610395578063abdb2f63146103ce578063b8a0a886146103e457600080fd5b80632785b911116101235780632785b9111461026d5780633f6d8256146102a65780634c4df870146102bc5780634fc4a1ae146102ec57806355460f81146103025780635da4a1d31461032257600080fd5b80630ccf21561461016b57806314ff5ea314610194578063163d36ba146101c45780631d1440fd146101da5780632374d2ae1461022b57806326b825d21461024d575b600080fd5b34801561017757600080fd5b5061018160395481565b6040519081526020015b60405180910390f35b3480156101a057600080fd5b506101816101af366004612c79565b60009081526040602081905290206002015490565b3480156101d057600080fd5b50610181603b5481565b3480156101e657600080fd5b506102136101f5366004612c79565b6000908152604060208190529020600401546001600160a01b031690565b6040516001600160a01b03909116815260200161018b565b34801561023757600080fd5b5061024b610246366004612c79565b6104cd565b005b34801561025957600080fd5b5061024b610268366004612c79565b6106f1565b34801561027957600080fd5b50610213610288366004612c79565b6000908152604060208190529020600101546001600160a01b031690565b3480156102b257600080fd5b50610181603a5481565b3480156102c857600080fd5b506101816102d7366004612c79565b60009081526040602081905290206005015490565b3480156102f857600080fd5b50610181603c5481565b34801561030e57600080fd5b5061024b61031d366004612c79565b61090c565b34801561032e57600080fd5b5061024b61033d366004612c79565b610b27565b34801561034e57600080fd5b50603554610213906001600160a01b031681565b34801561036e57600080fd5b5061024b61037d366004612d35565b610d42565b61024b610390366004612d8a565b61123c565b3480156103a157600080fd5b506102136103b0366004612c79565b6000908152604060208190529020600301546001600160a01b031690565b3480156103da57600080fd5b50610181603d5481565b3480156103f057600080fd5b5061024b6103ff366004612c79565b6118c5565b34801561041057600080fd5b5061024b61041f366004612e1d565b611ae0565b34801561043057600080fd5b5061018161043f366004612c79565b611c04565b34801561045057600080fd5b50603754610213906001600160a01b031681565b34801561047057600080fd5b50610181603e5481565b61024b610488366004612d35565b611cd1565b34801561049957600080fd5b50603854610213906001600160a01b031681565b3480156104b957600080fd5b50603654610213906001600160a01b031681565b6037546040805163a217fddf60e01b815290516001600160a01b03909216916391d1485491839163a217fddf91600480820192602092909190829003018186803b15801561051a57600080fd5b505afa15801561052e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105529190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b15801561058f57600080fd5b505afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c79190612ec0565b806106c757506037546040805163a6b4321160e01b815290516001600160a01b03909216916391d1485491839163a6b4321191600480820192602092909190829003018186803b15801561061a57600080fd5b505afa15801561062e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106529190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b15801561068f57600080fd5b505afa1580156106a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c79190612ec0565b6106ec5760405162461bcd60e51b81526004016106e390612ee4565b60405180910390fd5b603c55565b6037546040805163a217fddf60e01b815290516001600160a01b03909216916391d1485491839163a217fddf91600480820192602092909190829003018186803b15801561073e57600080fd5b505afa158015610752573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107769190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b1580156107b357600080fd5b505afa1580156107c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107eb9190612ec0565b806108eb57506037546040805163a6b4321160e01b815290516001600160a01b03909216916391d1485491839163a6b4321191600480820192602092909190829003018186803b15801561083e57600080fd5b505afa158015610852573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108769190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b1580156108b357600080fd5b505afa1580156108c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108eb9190612ec0565b6109075760405162461bcd60e51b81526004016106e390612ee4565b603955565b6037546040805163a217fddf60e01b815290516001600160a01b03909216916391d1485491839163a217fddf91600480820192602092909190829003018186803b15801561095957600080fd5b505afa15801561096d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109919190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b1580156109ce57600080fd5b505afa1580156109e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a069190612ec0565b80610b0657506037546040805163a6b4321160e01b815290516001600160a01b03909216916391d1485491839163a6b4321191600480820192602092909190829003018186803b158015610a5957600080fd5b505afa158015610a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a919190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b158015610ace57600080fd5b505afa158015610ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b069190612ec0565b610b225760405162461bcd60e51b81526004016106e390612ee4565b603a55565b6037546040805163a217fddf60e01b815290516001600160a01b03909216916391d1485491839163a217fddf91600480820192602092909190829003018186803b158015610b7457600080fd5b505afa158015610b88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bac9190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b158015610be957600080fd5b505afa158015610bfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c219190612ec0565b80610d2157506037546040805163a6b4321160e01b815290516001600160a01b03909216916391d1485491839163a6b4321191600480820192602092909190829003018186803b158015610c7457600080fd5b505afa158015610c88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cac9190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b158015610ce957600080fd5b505afa158015610cfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d219190612ec0565b610d3d5760405162461bcd60e51b81526004016106e390612ee4565b603e55565b604080517fc8be346292b8ae5a1419149a4d48922b0e66dd1fc34ef88bbb6cd0910a5c886d6020820152908101839052600090610d98906060015b60405160208183030381529060405280519060200120611ff4565b90506000610da68284612048565b603754604080516324b0afb360e21b815290519293506001600160a01b03909116916391d148549183916392c2becc91600480820192602092909190829003018186803b158015610df657600080fd5b505afa158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e9190612ea7565b6040516001600160e01b031960e084901b16815260048101919091526001600160a01b038416602482015260440160206040518083038186803b158015610e7457600080fd5b505afa158015610e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eac9190612ec0565b610f115760405162461bcd60e51b815260206004820152603060248201527f4d61726b6574706c6163653a20756e6c6973744d61726b65744974656d3a206960448201526f6e76616c6964207369676e617475726560801b60648201526084016106e3565b6000848152604060208190529020600301546001600160a01b031633148061102e57506037546040805163a217fddf60e01b815290516001600160a01b03909216916391d1485491839163a217fddf91600480820192602092909190829003018186803b158015610f8157600080fd5b505afa158015610f95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb99190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b158015610ff657600080fd5b505afa15801561100a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102e9190612ec0565b8061112e57506037546040805163a6b4321160e01b815290516001600160a01b03909216916391d1485491839163a6b4321191600480820192602092909190829003018186803b15801561108157600080fd5b505afa158015611095573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b99190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b1580156110f657600080fd5b505afa15801561110a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112e9190612ec0565b6111975760405162461bcd60e51b815260206004820152603460248201527f4d61726b6574706c6163653a206f6e6c792073656c6c6572206f722061646d696044820152736e2063616e20756e6c69737420616e206974656d60601b60648201526084016106e3565b6000848152604060208190529081902060028101546003820154600492830180546001600160a01b0319166001600160a01b0392831690811790915560355494516323b872dd60e01b81523094810194909452602484015260448301829052909216906323b872dd90606401600060405180830381600087803b15801561121d57600080fd5b505af1158015611231573d6000803e3d6000fd5b505050505050505050565b604080517fc47d23abe106557c5a8fe714c4d69edcb89c23c91476ef81f7b8a23d4addeeed6020820152908101879052606081018690526080810185905283151560a082015282151560c08201526000906112999060e001610d7d565b905060006112a78284612048565b603754604080516324b0afb360e21b815290519293506001600160a01b03909116916391d148549183916392c2becc91600480820192602092909190829003018186803b1580156112f757600080fd5b505afa15801561130b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132f9190612ea7565b6040516001600160e01b031960e084901b16815260048101919091526001600160a01b038416602482015260440160206040518083038186803b15801561137557600080fd5b505afa158015611389573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ad9190612ec0565b6114125760405162461bcd60e51b815260206004820152603060248201527f4d61726b6574706c6163653a206372656174654d61726b65744974656d3a206960448201526f6e76616c6964207369676e617475726560801b60648201526084016106e3565b8361149957603d548610156114995760405162461bcd60e51b815260206004820152604160248201527f4d61726b6574706c6163653a20666c6f6f72207072696365206d75737420626560448201527f20626967676572206f7220657175616c20746f20426174746c655061737346656064820152606560f81b608482015260a4016106e3565b8587101561150f5760405162461bcd60e51b815260206004820152603960248201527f4d61726b6574706c6163653a207072696365206d75737420626520626967676560448201527f72206f7220657175616c20746f20666c6f6f722070726963650000000000000060648201526084016106e3565b61151d603f80546001019055565b6000611528603f5490565b9050604051806101200160405280828152602001603560009054906101000a90046001600160a01b03166001600160a01b031681526020018a8152602001336001600160a01b03168152602001306001600160a01b031681526020018981526020016000151581526020018715158152602001861515815250604060008381526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506040820151816002015560608201518160030160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060808201518160040160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060a0820151816005015560c08201518160060160006101000a81548160ff02191690831515021790555060e08201518160060160016101000a81548160ff0219169083151502179055506101008201518160060160026101000a81548160ff021916908315150217905550905050603c5434146116cb57600080fd5b6037546040805163220ce7e760e21b815290516000926001600160a01b0316916388339f9c916004808301926020929190829003018186803b15801561171057600080fd5b505afa158015611724573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117489190612f2b565b90506000816001600160a01b03163460405160006040518083038185875af1925050503d8060008114611797576040519150601f19603f3d011682016040523d82523d6000602084013e61179c565b606091505b50509050806117e45760405162461bcd60e51b81526020600482015260146024820152734661696c656420746f2073656e64206d6f6e657960601b60448201526064016106e3565b6035546040516323b872dd60e01b8152336004820152306024820152604481018d90526001600160a01b03909116906323b872dd90606401600060405180830381600087803b15801561183657600080fd5b505af115801561184a573d6000803e3d6000fd5b5050603554604080513381523060208201529081018e9052600060608201528b151560808201528a151560a08201528e93506001600160a01b03909116915085907fde0eaa831f6f313e637b47b238d0be0b6c05d861ba220c83d12e89e3a2c4f82d9060c00160405180910390a45050505050505050505050565b6037546040805163a217fddf60e01b815290516001600160a01b03909216916391d1485491839163a217fddf91600480820192602092909190829003018186803b15801561191257600080fd5b505afa158015611926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194a9190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b15801561198757600080fd5b505afa15801561199b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119bf9190612ec0565b80611abf57506037546040805163a6b4321160e01b815290516001600160a01b03909216916391d1485491839163a6b4321191600480820192602092909190829003018186803b158015611a1257600080fd5b505afa158015611a26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a4a9190612ea7565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b158015611a8757600080fd5b505afa158015611a9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abf9190612ec0565b611adb5760405162461bcd60e51b81526004016106e390612ee4565b603b55565b600054610100900460ff1680611af9575060005460ff16155b611b155760405162461bcd60e51b81526004016106e390612f48565b600054610100900460ff16158015611b37576000805461ffff19166101011790555b611b7d6040518060400160405280600b81526020016a4d61726b6574706c61636560a81b815250604051806040016040528060018152602001603160f81b81525061206c565b603580546001600160a01b03808d166001600160a01b031992831617909255603780548c8416908316179055603880548b841690831617905560368054928a16929091169190911790556039869055603a859055603b849055603c839055603d8290556103e8603e558015611bf8576000805461ff00191690555b50505050505050505050565b600081815260406020819052812060060154610100900460ff1615611c39575060009081526040602081905290206005015490565b600082815260406020819052812060050154603e54603954919291611c5e9084612fac565b611c689190612fcb565b90506000603e54603a5484611c7d9190612fac565b611c879190612fcb565b90506000603e54603b5485611c9c9190612fac565b611ca69190612fcb565b905080611cb38385612fed565b611cbd9190612fed565b611cc79085612fed565b9695505050505050565b604080517f35d74387c6df1142a85b0387679be5245ff31a2d197083572e72fa9cd3cdd7ff6020820152908101839052600090611d1090606001610d7d565b90506000611d1e8284612048565b603754604080516324b0afb360e21b815290519293506001600160a01b03909116916391d148549183916392c2becc91600480820192602092909190829003018186803b158015611d6e57600080fd5b505afa158015611d82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da69190612ea7565b6040516001600160e01b031960e084901b16815260048101919091526001600160a01b038416602482015260440160206040518083038186803b158015611dec57600080fd5b505afa158015611e00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e249190612ec0565b611e895760405162461bcd60e51b815260206004820152603060248201527f4d61726b6574706c6163653a206372656174654d61726b657453616c653a206960448201526f6e76616c6964207369676e617475726560801b60648201526084016106e3565b600084815260406020818152918190208151610120810183528154815260018201546001600160a01b03908116948201949094526002820154928101839052600382015484166060820152600482015490931660808401819052600582015460a0850181905260069092015460ff808216151560c08701526101008083048216151560e088015262010000909204161515908501819052903014611f885760405162461bcd60e51b815260206004820152603060248201527f4d61726b6574706c6163653a2074686973206974656d206973206e6f7420617660448201526f61696c61626c6520666f722073616c6560801b60648201526084016106e3565b33611f95858585856120f7565b611f9f8982612775565b603554604080516001600160a01b038481168252602082018790528c9316917f38d3b35f9d1a01bdaf62d50358599208ee79c951b1dc12e1032b30a03411d919910160405180910390a3505050505050505050565b60006120426120016128af565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b92915050565b6000806000612057858561292f565b915091506120648161299f565b509392505050565b600054610100900460ff1680612085575060005460ff16155b6120a15760405162461bcd60e51b81526004016106e390612f48565b600054610100900460ff161580156120c3576000805461ffff19166101011790555b825160208085019190912083519184019190912060019190915560025580156120f2576000805461ff00191690555b505050565b60608401516035546040516362848c0f60e01b8152600481018690526000916001600160a01b0316906362848c0f9060240160206040518083038186803b15801561214157600080fd5b505afa158015612155573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121799190612f2b565b60365460355460405163311b490f60e11b8152600481018990529293506000926001600160a01b0392831692636352211e921690636236921e9060240160206040518083038186803b1580156121ce57600080fd5b505afa1580156121e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122069190612ea7565b6040518263ffffffff1660e01b815260040161222491815260200190565b60206040518083038186803b15801561223c57600080fd5b505afa158015612250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122749190612f2b565b90506000603760009054906101000a90046001600160a01b03166001600160a01b03166388339f9c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156122c657600080fd5b505afa1580156122da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122fe9190612f2b565b90506000603e54603954886123139190612fac565b61231d9190612fcb565b90506000603e54603a54896123329190612fac565b61233c9190612fcb565b90506000603e54603b548a6123519190612fac565b61235b9190612fcb565b9050806123688385612fed565b6123729190612fed565b8910156123c15760405162461bcd60e51b815260206004820152601860248201527f4d61726b6574706c6163653a207072696365206572726f72000000000000000060448201526064016106e3565b60e08b01518990156123ef57816123d88486612fed565b6123e29190612fed565b6123ec9082613005565b90505b81836123fb8684612fed565b6124059190612fed565b61240f9190612fed565b34146124685760405162461bcd60e51b815260206004820152602260248201527f4d61726b6574706c6163653a206e6f7420636f7272656374206d73672e76616c604482015261756560f01b60648201526084016106e3565b6000896124f157603d5461247c9083613005565b603d546040519193506001600160a01b03891691600081818185875af1925050503d80600081146124c9576040519150601f19603f3d011682016040523d82523d6000602084013e6124ce565b606091505b505080915050806124f15760405162461bcd60e51b81526004016106e39061301c565b6040516001600160a01b038a16908390600081818185875af1925050503d806000811461253a576040519150601f19603f3d011682016040523d82523d6000602084013e61253f565b606091505b505080915050806125955760405162461bcd60e51b815260206004820152602c602482015260008051602061307083398151915260448201526b3c903337b91039b2b63632b960a11b60648201526084016106e3565b6040516001600160a01b038816908590600081818185875af1925050503d80600081146125de576040519150601f19603f3d011682016040523d82523d6000602084013e6125e3565b606091505b505080915050806126065760405162461bcd60e51b81526004016106e39061301c565b6040516001600160a01b038716908690600081818185875af1925050503d806000811461264f576040519150601f19603f3d011682016040523d82523d6000602084013e612654565b606091505b505080915050806126b15760405162461bcd60e51b815260206004820152603360248201526000805160206130708339815191526044820152721e48199bdc881b585c9ad95d14185e5b595b9d606a1b60648201526084016106e3565b6040516001600160a01b038916908490600081818185875af1925050503d80600081146126fa576040519150601f19603f3d011682016040523d82523d6000602084013e6126ff565b606091505b505080915050806127665760405162461bcd60e51b8152602060048201526038602482015260008051602061307083398151915260448201527f7920666f72206974656d43726561746f725061796d656e74000000000000000060648201526084016106e3565b50505050505050505050505050565b600082815260406020818152918190208151610120810183528154815260018201546001600160a01b0390811694820194909452600282015481840181905260038301548516606083015260048084015486166080840152600584015460a084015260069093015460ff808216151560c08501526101008083048216151560e0860152620100009092041615159083015260355493516323b872dd60e01b81523093810193909352336024840152604483018190529093909216906323b872dd90606401600060405180830381600087803b15801561285357600080fd5b505af1158015612867573d6000803e3d6000fd5b50505060009485525050604060208190529092206004810180546001600160a01b0319166001600160a01b039390931692909217909155600601805460ff1916600117905550565b600061292a7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6128de60015490565b6002546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b905090565b6000808251604114156129665760208301516040840151606085015160001a61295a87828585612b5d565b94509450505050612998565b8251604014156129905760208301516040840151612985868383612c4a565b935093505050612998565b506000905060025b9250929050565b60008160048111156129b3576129b3613059565b14156129bc5750565b60018160048111156129d0576129d0613059565b1415612a1e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016106e3565b6002816004811115612a3257612a32613059565b1415612a805760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016106e3565b6003816004811115612a9457612a94613059565b1415612aed5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016106e3565b6004816004811115612b0157612b01613059565b1415612b5a5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016106e3565b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612b945750600090506003612c41565b8460ff16601b14158015612bac57508460ff16601c14155b15612bbd5750600090506004612c41565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612c11573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c3a57600060019250925050612c41565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b01612c6b87828885612b5d565b935093505050935093915050565b600060208284031215612c8b57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112612cb957600080fd5b813567ffffffffffffffff80821115612cd457612cd4612c92565b604051601f8301601f19908116603f01168101908282118183101715612cfc57612cfc612c92565b81604052838152866020858801011115612d1557600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215612d4857600080fd5b82359150602083013567ffffffffffffffff811115612d6657600080fd5b612d7285828601612ca8565b9150509250929050565b8015158114612b5a57600080fd5b60008060008060008060c08789031215612da357600080fd5b8635955060208701359450604087013593506060870135612dc381612d7c565b92506080870135612dd381612d7c565b915060a087013567ffffffffffffffff811115612def57600080fd5b612dfb89828a01612ca8565b9150509295509295509295565b6001600160a01b0381168114612b5a57600080fd5b60008060008060008060008060006101208a8c031215612e3c57600080fd5b8935612e4781612e08565b985060208a0135612e5781612e08565b975060408a0135612e6781612e08565b965060608a0135612e7781612e08565b989b979a50959860808101359760a0820135975060c0820135965060e08201359550610100909101359350915050565b600060208284031215612eb957600080fd5b5051919050565b600060208284031215612ed257600080fd5b8151612edd81612d7c565b9392505050565b60208082526027908201527f506c6174666f726d53657474696e67733a43616c6c6572206973206e6f742061604082015266371030b236b4b760c91b606082015260800190565b600060208284031215612f3d57600080fd5b8151612edd81612e08565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615612fc657612fc6612f96565b500290565b600082612fe857634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561300057613000612f96565b500190565b60008282101561301757613017612f96565b500390565b6020808252602f9082015260008051602061307083398151915260408201526e3c903337b9103b30b634b230ba37b960891b606082015260800190565b634e487b7160e01b600052602160045260246000fdfe4d61726b6574706c6163653a204661696c656420746f2073656e64206d6f6e65a26469706673582212200ddd35c8dc634cfa7d1066f1461d8b4acd00fa73518f7b00c7f0081c8398f32264736f6c63430008090033