60806040523480156200001157600080fd5b5060405162003424380380620034248339810160408190526200003491620001fc565b604080518082018252600c81526b12dbd9185d995c9cd953919560a21b6020808301918252835180850190945260048452634b4f444160e01b908401528151919291620000849160029162000156565b5080516200009a90600390602084019062000156565b506000805550506008805460ff19169055620000b633620000fc565b6001600955600a859055600b849055600c839055600d805461ffff191661ffff84161790558051620000f090600e90602084019062000156565b50505050505062000366565b600880546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b828054620001649062000313565b90600052602060002090601f016020900481019282620001885760008555620001d3565b82601f10620001a357805160ff1916838001178555620001d3565b82800160010185558215620001d3579182015b82811115620001d3578251825591602001919060010190620001b6565b50620001e1929150620001e5565b5090565b5b80821115620001e15760008155600101620001e6565b600080600080600060a086880312156200021557600080fd5b85519450602080870151945060408701519350606087015161ffff811681146200023e57600080fd5b60808801519093506001600160401b03808211156200025c57600080fd5b818901915089601f8301126200027157600080fd5b81518181111562000286576200028662000350565b604051601f8201601f19908116603f01168101908382118183101715620002b157620002b162000350565b816040528281528c86848701011115620002ca57600080fd5b600093505b82841015620002ee5784840186015181850187015292850192620002cf565b82841115620003005760008684830101525b8096505050505050509295509295909350565b600181811c908216806200032857607f821691505b602082108114156200034a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6130ae80620003766000396000f3fe6080604052600436106102dc5760003560e01c806370a0823111610184578063b50fcaf9116100d6578063d111515d1161008a578063efee356811610064578063efee3568146107f5578063f2fde38b1461082e578063fdb4953a1461084e57600080fd5b8063d111515d14610781578063dad7b5c914610796578063e985e9c5146107ac57600080fd5b8063c23dc68f116100bb578063c23dc68f14610714578063c4e3709514610741578063c87b56dd1461076157600080fd5b8063b50fcaf9146106d4578063b88d4fde146106f457600080fd5b80638da5cb5b1161013857806399a2557a1161011257806399a2557a14610681578063a22cb465146106a1578063a71bbebe146106c157600080fd5b80638da5cb5b1461062957806391b7f5ed1461064c57806395d89b411461066c57600080fd5b80638456cb59116101695780638456cb59146105d15780638462151c146105e65780638d859f3e1461061357600080fd5b806370a082311461059c578063715018a6146105bc57600080fd5b80633ccfd60b1161023d57806355f804b3116101f1578063616cdb1e116101cb578063616cdb1e1461053c5780636352211e1461055c5780636f8b44b01461057c57600080fd5b806355f804b3146104d75780635bbb2177146104f75780635c975abb1461052457600080fd5b8063408cbf9411610222578063408cbf941461047757806342842e0e1461049757806342966c68146104b757600080fd5b80633ccfd60b1461044d5780633f4ba83a1461046257600080fd5b806309ef65271161029457806323b872dd1161027957806323b872dd146103e9578063293ae5cf1461040957806332cb6b0c1461043757600080fd5b806309ef6527146103ac57806318160ddd146103d057600080fd5b806306fdde03116102c557806306fdde0314610330578063081812fc14610352578063095ea7b31461038a57600080fd5b806301ffc9a7146102e157806306eda1b514610316575b600080fd5b3480156102ed57600080fd5b506103016102fc366004612c35565b61086d565b60405190151581526020015b60405180910390f35b34801561032257600080fd5b50600f546103019060ff1681565b34801561033c57600080fd5b506103456108bf565b60405161030d9190612e55565b34801561035e57600080fd5b5061037261036d366004612cdc565b610951565b6040516001600160a01b03909116815260200161030d565b34801561039657600080fd5b506103aa6103a5366004612b10565b610995565b005b3480156103b857600080fd5b506103c2600c5481565b60405190815260200161030d565b3480156103dc57600080fd5b50600154600054036103c2565b3480156103f557600080fd5b506103aa610404366004612a2e565b610a40565b34801561041557600080fd5b50600d546104249061ffff1681565b60405161ffff909116815260200161030d565b34801561044357600080fd5b506103c2600b5481565b34801561045957600080fd5b506103aa610a4b565b34801561046e57600080fd5b506103aa610b20565b34801561048357600080fd5b506103aa610492366004612b10565b610b78565b3480156104a357600080fd5b506103aa6104b2366004612a2e565b610c80565b3480156104c357600080fd5b506103aa6104d2366004612cdc565b610c9b565b3480156104e357600080fd5b506103aa6104f2366004612c6f565b610ca9565b34801561050357600080fd5b50610517610512366004612b6d565b610d66565b60405161030d9190612db2565b34801561053057600080fd5b5060085460ff16610301565b34801561054857600080fd5b506103aa610557366004612cdc565b610e2d565b34801561056857600080fd5b50610372610577366004612cdc565b610e80565b34801561058857600080fd5b506103aa610597366004612cdc565b610e92565b3480156105a857600080fd5b506103c26105b73660046129e0565b610f89565b3480156105c857600080fd5b506103aa610fd8565b3480156105dd57600080fd5b506103aa611030565b3480156105f257600080fd5b506106066106013660046129e0565b611086565b60405161030d9190612e1d565b34801561061f57600080fd5b506103c2600a5481565b34801561063557600080fd5b5060085461010090046001600160a01b0316610372565b34801561065857600080fd5b506103aa610667366004612cdc565b6111cd565b34801561067857600080fd5b50610345611220565b34801561068d57600080fd5b5061060661069c366004612b3a565b61122f565b3480156106ad57600080fd5b506103aa6106bc366004612ae6565b6113e9565b6103aa6106cf366004612cf5565b61147f565b3480156106e057600080fd5b506103aa6106ef366004612cb8565b61181f565b34801561070057600080fd5b506103aa61070f366004612a6a565b611885565b34801561072057600080fd5b5061073461072f366004612cdc565b6118d6565b60405161030d9190612e68565b34801561074d57600080fd5b506103aa61075c366004612c1a565b611985565b34801561076d57600080fd5b5061034561077c366004612cdc565b6119e6565b34801561078d57600080fd5b506103aa611a6a565b3480156107a257600080fd5b506103c260105481565b3480156107b857600080fd5b506103016107c73660046129fb565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b34801561080157600080fd5b506108156108103660046129e0565b611ac9565b60405167ffffffffffffffff909116815260200161030d565b34801561083a57600080fd5b506103aa6108493660046129e0565b611af8565b34801561085a57600080fd5b50600f5461030190610100900460ff1681565b60006001600160e01b031982166380ac58cd60e01b148061089e57506001600160e01b03198216635b5e139f60e01b145b806108b957506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600280546108ce90612fa9565b80601f01602080910402602001604051908101604052809291908181526020018280546108fa90612fa9565b80156109475780601f1061091c57610100808354040283529160200191610947565b820191906000526020600020905b81548152906001019060200180831161092a57829003601f168201915b5050505050905090565b600061095c82611bcb565b610979576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b60006109a082610e80565b9050806001600160a01b0316836001600160a01b031614156109d55760405163250fdee360e21b815260040160405180910390fd5b336001600160a01b03821614801590610a1257506001600160a01b038116600090815260076020908152604080832033845290915290205460ff16155b15610a30576040516367d9dca160e11b815260040160405180910390fd5b610a3b838383611bf6565b505050565b610a3b838383611c6a565b6008546001600160a01b03610100909104163314610a9e5760405162461bcd60e51b8152602060048201819052602482015260008051602061308283398151915260448201526064015b60405180910390fd5b60026009541415610af15760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a95565b600260095547610b18610b126008546001600160a01b036101009091041690565b82611e85565b506001600955565b6008546001600160a01b03610100909104163314610b6e5760405162461bcd60e51b815260206004820181905260248201526000805160206130828339815191526044820152606401610a95565b610b76611f9e565b565b80600b5481600054610b8a9190612ecf565b1115610bd85760405162461bcd60e51b815260206004820152601460248201527f4d617820737570706c79206578636565646564210000000000000000000000006044820152606401610a95565b60008111610c285760405162461bcd60e51b815260206004820152601460248201527f496e76616c6964206d696e7420616d6f756e74210000000000000000000000006044820152606401610a95565b6008546001600160a01b03610100909104163314610c765760405162461bcd60e51b815260206004820181905260248201526000805160206130828339815191526044820152606401610a95565b610a3b838361203a565b610a3b83838360405180602001604052806000815250611885565b610ca6816001612054565b50565b6008546001600160a01b03610100909104163314610cf75760405162461bcd60e51b815260206004820181905260248201526000805160206130828339815191526044820152606401610a95565b600f54610100900460ff1615610d4f5760405162461bcd60e51b815260206004820152601060248201527f4d657461646174612066726f7a656e21000000000000000000000000000000006044820152606401610a95565b8051610d6290600e9060208401906128c3565b5050565b805160609060008167ffffffffffffffff811115610d8657610d86613055565b604051908082528060200260200182016040528015610dd157816020015b6040805160608101825260008082526020808301829052928201528252600019909201910181610da45790505b50905060005b828114610e2557610e00858281518110610df357610df361303f565b60200260200101516118d6565b828281518110610e1257610e1261303f565b6020908102919091010152600101610dd7565b509392505050565b6008546001600160a01b03610100909104163314610e7b5760405162461bcd60e51b815260206004820181905260248201526000805160206130828339815191526044820152606401610a95565b600c55565b6000610e8b82612276565b5192915050565b6008546001600160a01b03610100909104163314610ee05760405162461bcd60e51b815260206004820181905260248201526000805160206130828339815191526044820152606401610a95565b600054811015610f325760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206e6577206d617820737570706c79000000000000000000006044820152606401610a95565b612710811115610f845760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206e6577206d617820737570706c79000000000000000000006044820152606401610a95565b600b55565b60006001600160a01b038216610fb2576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b031660009081526005602052604090205467ffffffffffffffff1690565b6008546001600160a01b036101009091041633146110265760405162461bcd60e51b815260206004820181905260248201526000805160206130828339815191526044820152606401610a95565b610b766000612392565b6008546001600160a01b0361010090910416331461107e5760405162461bcd60e51b815260206004820181905260248201526000805160206130828339815191526044820152606401610a95565b610b76612403565b6060600080600061109685610f89565b905060008167ffffffffffffffff8111156110b3576110b3613055565b6040519080825280602002602001820160405280156110dc578160200160208202803683370190505b50604080516060810182526000808252602082018190529181018290529192505b8386146111c157600081815260046020908152604091829020825160608101845290546001600160a01b0381168252600160a01b810467ffffffffffffffff1692820192909252600160e01b90910460ff16158015928201929092529250611164576111b9565b81516001600160a01b03161561117957815194505b876001600160a01b0316856001600160a01b031614156111b957808387806001019850815181106111ac576111ac61303f565b6020026020010181815250505b6001016110fd565b50909695505050505050565b6008546001600160a01b0361010090910416331461121b5760405162461bcd60e51b815260206004820181905260248201526000805160206130828339815191526044820152606401610a95565b600a55565b6060600380546108ce90612fa9565b606081831061125157604051631960ccad60e11b815260040160405180910390fd5b6000805480841115611261578093505b600061126c87610f89565b90508486101561128b5785850381811015611285578091505b5061128f565b5060005b60008167ffffffffffffffff8111156112aa576112aa613055565b6040519080825280602002602001820160405280156112d3578160200160208202803683370190505b509050816112e65793506113e292505050565b60006112f1886118d6565b905060008160400151611302575080515b885b8881141580156113145750848714155b156113d657600081815260046020908152604091829020825160608101845290546001600160a01b0381168252600160a01b810467ffffffffffffffff1692820192909252600160e01b90910460ff16158015928201929092529350611379576113ce565b82516001600160a01b03161561138e57825191505b8a6001600160a01b0316826001600160a01b031614156113ce57808488806001019950815181106113c1576113c161303f565b6020026020010181815250505b600101611304565b50505092835250909150505b9392505050565b6001600160a01b0382163314156114135760405163b06307db60e01b815260040160405180910390fd5b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b8063ffffffff16600b54816000546114979190612ecf565b11156114e55760405162461bcd60e51b815260206004820152601460248201527f4d617820737570706c79206578636565646564210000000000000000000000006044820152606401610a95565b600081116115355760405162461bcd60e51b815260206004820152601460248201527f496e76616c6964206d696e7420616d6f756e74210000000000000000000000006044820152606401610a95565b33600090815260056020526040812054600160c01b900467ffffffffffffffff16600d5490915060009061156e90839061ffff16612f54565b9050600c548463ffffffff1611156115c85760405162461bcd60e51b815260206004820152601460248201527f4d696e74206c696d6974206578636565646564210000000000000000000000006044820152606401610a95565b600a60005410156116415760405162461bcd60e51b815260206004820152602a60248201527f4669727374203130206d696e74732061726520726573657276656420666f722060448201527f746865206f776e657221000000000000000000000000000000000000000000006064820152608401610a95565b600f5460ff166116935760405162461bcd60e51b815260206004820152601060248201527f53616c65206e6f742073746172746564000000000000000000000000000000006044820152606401610a95565b60008463ffffffff16600a546116a99190612f1e565b9050600067ffffffffffffffff831615611736578267ffffffffffffffff168663ffffffff161061170257600a546116eb9067ffffffffffffffff8516612f1e565b6116f59083612f3d565b6000939092509050611736565b600a546117159063ffffffff8816612f1e565b61171f9083612f3d565b91505063ffffffff85166117338184612f54565b92505b813410156117865760405162461bcd60e51b815260206004820152601360248201527f496e73756666696369656e742066756e647321000000000000000000000000006044820152606401610a95565b611796338763ffffffff1661203a565b8067ffffffffffffffff16601060008282546117b29190612ecf565b909155506118179050336117c68387612ee7565b6001600160a01b039091166000908152600560205260409020805467ffffffffffffffff909216600160c01b0277ffffffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b505050505050565b6008546001600160a01b0361010090910416331461186d5760405162461bcd60e51b815260206004820181905260248201526000805160206130828339815191526044820152606401610a95565b600d805461ffff191661ffff92909216919091179055565b611890848484611c6a565b6001600160a01b0383163b151580156118b257506118b08484848461248b565b155b156118d0576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b604080516060808201835260008083526020808401829052838501829052845192830185528183528201819052928101839052909150600054831061191b5792915050565b50600082815260046020908152604091829020825160608101845290546001600160a01b0381168252600160a01b810467ffffffffffffffff1692820192909252600160e01b90910460ff16158015928201929092529061197c5792915050565b6113e283612276565b6008546001600160a01b036101009091041633146119d35760405162461bcd60e51b815260206004820181905260248201526000805160206130828339815191526044820152606401610a95565b600f805460ff1916911515919091179055565b60606119f182611bcb565b611a0e57604051630a14c4b560e41b815260040160405180910390fd5b6000611a18612583565b9050805160001415611a3957604051806020016040528060008152506113e2565b80611a4384612592565b604051602001611a54929190612d47565b6040516020818303038152906040529392505050565b6008546001600160a01b03610100909104163314611ab85760405162461bcd60e51b815260206004820181905260248201526000805160206130828339815191526044820152606401610a95565b600f805461ff001916610100179055565b6001600160a01b038116600090815260056020526040812054600160c01b900467ffffffffffffffff166108b9565b6008546001600160a01b03610100909104163314611b465760405162461bcd60e51b815260206004820181905260248201526000805160206130828339815191526044820152606401610a95565b6001600160a01b038116611bc25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a95565b610ca681612392565b60008054821080156108b9575050600090815260046020526040902054600160e01b900460ff161590565b60008281526006602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000611c7582612276565b9050836001600160a01b031681600001516001600160a01b031614611cac5760405162a1148160e81b815260040160405180910390fd5b6000336001600160a01b0386161480611ce857506001600160a01b038516600090815260076020908152604080832033845290915290205460ff165b80611d03575033611cf884610951565b6001600160a01b0316145b905080611d2357604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b038416611d4a57604051633a954ecd60e21b815260040160405180910390fd5b611d5785858560016126a8565b611d6360008487611bf6565b6001600160a01b038581166000908152600560209081526040808320805467ffffffffffffffff1980821667ffffffffffffffff92831660001901831617909255898616808652838620805493841693831660019081018416949094179055898652600490945282852080546001600160e01b031916909417600160a01b42909216919091021783558701808452922080549193909116611e39576000548214611e39578054602086015167ffffffffffffffff16600160a01b026001600160e01b03199091166001600160a01b038a16171781555b50505082846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b5050505050565b80471015611ed55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610a95565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611f22576040519150601f19603f3d011682016040523d82523d6000602084013e611f27565b606091505b5050905080610a3b5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610a95565b60085460ff16611ff05760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a95565b6008805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b610d628282604051806020016040528060008152506126b4565b600061205f83612276565b805190915082156120e3576000336001600160a01b03831614806120a657506001600160a01b038216600090815260076020908152604080832033845290915290205460ff165b806120c15750336120b686610951565b6001600160a01b0316145b9050806120e157604051632ce44b5f60e11b815260040160405180910390fd5b505b6120f18160008660016126a8565b6120fd60008583611bf6565b6001600160a01b038082166000818152600560209081526040808320805470010000000000000000000000000000000060001967ffffffffffffffff80841691909101811667ffffffffffffffff19841681178390048216600190810183169093027fffffffffffffffff0000000000000000ffffffffffffffff0000000000000000909416179290921783558b8652600490945282852080547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff42909316600160a01b026001600160e01b03199091169097179690961716600160e01b17855591890180845292208054919490911661222c57600054821461222c578054602087015167ffffffffffffffff16600160a01b026001600160e01b03199091166001600160a01b038716171781555b5050604051869250600091506001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4505060018054810190555050565b60408051606081018252600080825260208201819052918101919091528160005481101561237957600081815260046020908152604091829020825160608101845290546001600160a01b0381168252600160a01b810467ffffffffffffffff1692820192909252600160e01b90910460ff161515918101829052906123775780516001600160a01b03161561230d579392505050565b5060001901600081815260046020908152604091829020825160608101845290546001600160a01b038116808352600160a01b820467ffffffffffffffff1693830193909352600160e01b900460ff1615159281019290925215612372579392505050565b61230d565b505b604051636f96cda160e11b815260040160405180910390fd5b600880546001600160a01b038381166101008181027fffffffffffffffffffffff0000000000000000000000000000000000000000ff85161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60085460ff16156124565760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a95565b6008805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861201d3390565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a02906124c0903390899088908890600401612d76565b602060405180830381600087803b1580156124da57600080fd5b505af192505050801561250a575060408051601f3d908101601f1916820190925261250791810190612c52565b60015b612565573d808015612538576040519150601f19603f3d011682016040523d82523d6000602084013e61253d565b606091505b50805161255d576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b6060600e80546108ce90612fa9565b6060816125b65750506040805180820190915260018152600360fc1b602082015290565b8160005b81156125e057806125ca81612fe4565b91506125d99050600a83612f0a565b91506125ba565b60008167ffffffffffffffff8111156125fb576125fb613055565b6040519080825280601f01601f191660200182016040528015612625576020820181803683370190505b5090505b841561257b5761263a600183612f3d565b9150612647600a86612fff565b612652906030612ecf565b60f81b8183815181106126675761266761303f565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506126a1600a86612f0a565b9450612629565b6118d0848484846126c1565b610a3b83838360016126e5565b60085460ff16156118d05760405163ab35696f60e01b815260040160405180910390fd5b6000546001600160a01b03851661270e57604051622e076360e81b815260040160405180910390fd5b8361272c5760405163b562e8dd60e01b815260040160405180910390fd5b61273960008683876126a8565b6001600160a01b038516600081815260056020908152604080832080546fffffffffffffffffffffffffffffffff19811667ffffffffffffffff8083168c0181169182176801000000000000000067ffffffffffffffff1990941690921783900481168c01811690920217909155858452600490925290912080546001600160e01b031916909217600160a01b4290921691909102179055808085018380156127eb57506001600160a01b0387163b15155b15612874575b60405182906001600160a01b038916906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a461283c600088848060010195508861248b565b612859576040516368d2bf6b60e11b815260040160405180910390fd5b808214156127f157826000541461286f57600080fd5b6128ba565b5b6040516001830192906001600160a01b038916906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a480821415612875575b50600055611e7e565b8280546128cf90612fa9565b90600052602060002090601f0160209004810192826128f15760008555612937565b82601f1061290a57805160ff1916838001178555612937565b82800160010185558215612937579182015b8281111561293757825182559160200191906001019061291c565b50612943929150612947565b5090565b5b808211156129435760008155600101612948565b600067ffffffffffffffff83111561297657612976613055565b612989601f8401601f1916602001612e9e565b905082815283838301111561299d57600080fd5b828260208301376000602084830101529392505050565b80356001600160a01b03811681146129cb57600080fd5b919050565b803580151581146129cb57600080fd5b6000602082840312156129f257600080fd5b6113e2826129b4565b60008060408385031215612a0e57600080fd5b612a17836129b4565b9150612a25602084016129b4565b90509250929050565b600080600060608486031215612a4357600080fd5b612a4c846129b4565b9250612a5a602085016129b4565b9150604084013590509250925092565b60008060008060808587031215612a8057600080fd5b612a89856129b4565b9350612a97602086016129b4565b925060408501359150606085013567ffffffffffffffff811115612aba57600080fd5b8501601f81018713612acb57600080fd5b612ada8782356020840161295c565b91505092959194509250565b60008060408385031215612af957600080fd5b612b02836129b4565b9150612a25602084016129d0565b60008060408385031215612b2357600080fd5b612b2c836129b4565b946020939093013593505050565b600080600060608486031215612b4f57600080fd5b612b58846129b4565b95602085013595506040909401359392505050565b60006020808385031215612b8057600080fd5b823567ffffffffffffffff80821115612b9857600080fd5b818501915085601f830112612bac57600080fd5b813581811115612bbe57612bbe613055565b8060051b9150612bcf848301612e9e565b8181528481019084860184860187018a1015612bea57600080fd5b600095505b83861015612c0d578035835260019590950194918601918601612bef565b5098975050505050505050565b600060208284031215612c2c57600080fd5b6113e2826129d0565b600060208284031215612c4757600080fd5b81356113e28161306b565b600060208284031215612c6457600080fd5b81516113e28161306b565b600060208284031215612c8157600080fd5b813567ffffffffffffffff811115612c9857600080fd5b8201601f81018413612ca957600080fd5b61257b8482356020840161295c565b600060208284031215612cca57600080fd5b813561ffff811681146113e257600080fd5b600060208284031215612cee57600080fd5b5035919050565b600060208284031215612d0757600080fd5b813563ffffffff811681146113e257600080fd5b60008151808452612d33816020860160208601612f7d565b601f01601f19169290920160200192915050565b60008351612d59818460208801612f7d565b835190830190612d6d818360208801612f7d565b01949350505050565b60006001600160a01b03808716835280861660208401525083604083015260806060830152612da86080830184612d1b565b9695505050505050565b6020808252825182820181905260009190848201906040850190845b818110156111c157612e0a83855180516001600160a01b0316825260208082015167ffffffffffffffff16908301526040908101511515910152565b9284019260609290920191600101612dce565b6020808252825182820181905260009190848201906040850190845b818110156111c157835183529284019291840191600101612e39565b6020815260006113e26020830184612d1b565b81516001600160a01b0316815260208083015167ffffffffffffffff1690820152604080830151151590820152606081016108b9565b604051601f8201601f1916810167ffffffffffffffff81118282101715612ec757612ec7613055565b604052919050565b60008219821115612ee257612ee2613013565b500190565b600067ffffffffffffffff808316818516808303821115612d6d57612d6d613013565b600082612f1957612f19613029565b500490565b6000816000190483118215151615612f3857612f38613013565b500290565b600082821015612f4f57612f4f613013565b500390565b600067ffffffffffffffff83811690831681811015612f7557612f75613013565b039392505050565b60005b83811015612f98578181015183820152602001612f80565b838111156118d05750506000910152565b600181811c90821680612fbd57607f821691505b60208210811415612fde57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612ff857612ff8613013565b5060010190565b60008261300e5761300e613029565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610ca657600080fdfe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a164736f6c6343000806000a000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000000015b30000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000002368747470733a2f2f6170692e6b6f646176657273652e6172742f6d657461646174612f0000000000000000000000000000000000000000000000000000000000