0x60806040523480156200001157600080fd5b50604051620032b8380380620032b883398101604081905262000034916200020f565b600080546001600160a01b03191633179055620000518162000058565b5062000258565b600180546001600160a01b0319166001600160a01b038381169190911791829055604080516307dc0d1d60e41b815290519290911691637dc0d1d091600480820192602092909190829003018186803b158015620000b557600080fd5b505afa158015620000ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f091906200020f565b600280546001600160a01b0319166001600160a01b039283161790556001546040805163743aaa2360e11b81529051919092169163e8755446916004808301926020929190829003018186803b1580156200014a57600080fd5b505afa1580156200015f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018591906200023f565b60035560015460408051634ada90af60e01b815290516001600160a01b0390921691634ada90af91600480820192602092909190829003018186803b158015620001ce57600080fd5b505afa158015620001e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020991906200023f565b60045550565b60006020828403121562000221578081fd5b81516001600160a01b038116811462000238578182fd5b9392505050565b60006020828403121562000251578081fd5b5051919050565b61305080620002686000396000f3fe6080604052600436106100d65760003560e01c806380ee2e2f1161007f578063a6f9dae111610059578063a6f9dae1146101f9578063b71da2e414610219578063d986c54f14610239578063ecc2837314610259576100dd565b806380ee2e2f146101995780638bad38dd146101b95780639214db23146101d9576100dd565b806341c0e1b5116100b057806341c0e1b5146101445780635fe3b567146101595780637dc0d1d014610184576100dd565b806310d1e85c146100e2578063117de2fd14610104578063398fc08c14610124576100dd565b366100dd57005b600080fd5b3480156100ee57600080fd5b506101026100fd36600461273f565b610279565b005b34801561011057600080fd5b5061010261011f366004612714565b610a65565b34801561013057600080fd5b5061010261013f3660046127d0565b610b3e565b34801561015057600080fd5b50610102610bc2565b34801561016557600080fd5b5061016e610bfa565b60405161017b9190612b38565b60405180910390f35b34801561019057600080fd5b5061016e610c09565b3480156101a557600080fd5b506101026101b43660046129a4565b610c18565b3480156101c557600080fd5b506101026101d4366004612685565b610c90565b3480156101e557600080fd5b506101026101f43660046126c4565b610cc6565b34801561020557600080fd5b50610102610214366004612685565b610dab565b34801561022557600080fd5b50610102610234366004612685565b610e04565b34801561024557600080fd5b506101026102543660046126c4565b610ea1565b34801561026557600080fd5b506101026102743660046127d0565b6113c3565b6000610287828401846128c4565b90506000336001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156102c457600080fd5b505afa1580156102d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102fc91906126a8565b90506000336001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561033957600080fd5b505afa15801561034d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037191906126a8565b9050610392735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f838361150a565b6001600160a01b0316336001600160a01b0316146103cb5760405162461bcd60e51b81526004016103c290612cbb565b60405180910390fd5b6001600160a01b03821673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc214156103f4578091505b8251600314156105065773c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2632e1a7d4d610422888a612f63565b6040518263ffffffff1660e01b815260040161043e9190612e77565b600060405180830381600087803b15801561045857600080fd5b505af115801561046c573d6000803e3d6000fd5b505050506080830151602084015160608501516040517faae40a2a000000000000000000000000000000000000000000000000000000008152734ddc2d193948926d02f9b1fe9e1daa0718270ed59363aae40a2a9390926104cf92600401612b65565b6000604051808303818588803b1580156104e857600080fd5b505af11580156104fc573d6000803e3d6000fd5b5050505050610623565b816001600160a01b031663095ea7b3846040015185608001516040518363ffffffff1660e01b815260040161053c929190612b4c565b602060405180830381600087803b15801561055657600080fd5b505af115801561056a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058e91906128a4565b5082604001516001600160a01b031663f5e3c4628460200151856080015186606001516040518463ffffffff1660e01b81526004016105cf93929190612b7f565b602060405180830381600087803b1580156105e957600080fd5b505af11580156105fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062191906129bc565b505b60608301516040517f3af9e6690000000000000000000000000000000000000000000000000000000081526000916001600160a01b031690633af9e6699061066f903090600401612b38565b602060405180830381600087803b15801561068957600080fd5b505af115801561069d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c191906129bc565b60608501516040517f852a12e30000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063852a12e39061070d908490600401612e77565b602060405180830381600087803b15801561072757600080fd5b505af115801561073b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075f91906129bc565b50835161076e90600290612fc5565b156107fd5760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906107a19033908590600401612b4c565b602060405180830381600087803b1580156107bb57600080fd5b505af11580156107cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f391906128a4565b5050505050610a5e565b600080610833735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc261157a565b91509150600061084887608001518385611661565b8751909150610961576108d087606001516001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b15801561089157600080fd5b505afa1580156108a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c991906126a8565b8583611701565b60405163a9059cbb60e01b815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29063a9059cbb906109099033908590600401612b4c565b602060405180830381600087803b15801561092357600080fd5b505af1158015610937573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095b91906128a4565b50610a56565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156109b057600080fd5b505af11580156109c4573d6000803e3d6000fd5b505060405163a9059cbb60e01b815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2935063a9059cbb9250610a02915033908590600401612b4c565b602060405180830381600087803b158015610a1c57600080fd5b505af1158015610a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5491906128a4565b505b505050505050505b5050505050565b6001600160a01b038216610ab257600080546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610aac573d6000803e3d6000fd5b50610b3a565b60005460405163a9059cbb60e01b81526001600160a01b038481169263a9059cbb92610ae692909116908590600401612b4c565b602060405180830381600087803b158015610b0057600080fd5b505af1158015610b14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3891906128a4565b505b5050565b600254604051633b307a6160e21b81526001600160a01b039091169063ecc1e98490610b78908d908d908d908d908d908d90600401612ba2565b600060405180830381600087803b158015610b9257600080fd5b505af1158015610ba6573d6000803e3d6000fd5b50505050610bb684848484610ea1565b50505050505050505050565b6000546001600160a01b03163314610bec5760405162461bcd60e51b81526004016103c290612dac565b6000546001600160a01b0316ff5b6001546001600160a01b031681565b6002546001600160a01b031681565b6040517fa0712d680000000000000000000000000000000000000000000000000000000081526d4946c0e9f43f4dee607b0ef1fa1c9063a0712d6890610c62908490600401612e77565b600060405180830381600087803b158015610c7c57600080fd5b505af1158015610a5e573d6000803e3d6000fd5b6000546001600160a01b03163314610cba5760405162461bcd60e51b81526004016103c290612dac565b610cc3816118f0565b50565b60005a9050610cd785858585610ea1565b6000610ce4366010612f8f565b5a610cf184615208612f63565b610cfb9190612fae565b610d059190612f63565b90506d4946c0e9f43f4dee607b0ef1fa1c636366b93661a3db610d2a8461374a612f63565b610d349190612f7b565b6040518263ffffffff1660e01b8152600401610d509190612e77565b602060405180830381600087803b158015610d6a57600080fd5b505af1158015610d7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da291906129bc565b50505050505050565b6000546001600160a01b03163314610dd55760405162461bcd60e51b81526004016103c290612dac565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038116610e2157610e1c8147610a65565b610cc3565b610cc381826001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401610e519190612b38565b60206040518083038186803b158015610e6957600080fd5b505afa158015610e7d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061011f91906129bc565b60025460405163fc57d4df60e01b81526000916001600160a01b03169063fc57d4df90610ed2908690600401612b38565b60206040518083038186803b158015610eea57600080fd5b505afa158015610efe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2291906129bc565b6004805460025460405163fc57d4df60e01b815291926001600160a01b039091169163fc57d4df91610f56918a9101612b38565b60206040518083038186803b158015610f6e57600080fd5b505afa158015610f82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa691906129bc565b610fb09190612f8f565b610fba9190612f7b565b90506000670de0b6b3a7640000600354866001600160a01b03166395dd9193896040518263ffffffff1660e01b8152600401610ff69190612b38565b60206040518083038186803b15801561100e57600080fd5b505afa158015611022573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104691906129bc565b6110509190612f8f565b61105a9190612f7b565b9050600082856001600160a01b031663182df0f56040518163ffffffff1660e01b815260040160206040518083038186803b15801561109857600080fd5b505afa1580156110ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d091906129bc565b6040516370a0823160e01b81526001600160a01b038816906370a08231906110fc908c90600401612b38565b60206040518083038186803b15801561111457600080fd5b505afa158015611128573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114c91906129bc565b6111569190612f8f565b6111609190612f7b565b905060008183106111715781611173565b825b90506000670de0b6b3a764000061118a8684612f8f565b6111949190612f7b565b905060006111a58a8a8a8686611b00565b90508615610bb6578015806111ba5750806001145b15611337576040516370a0823160e01b815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290632e1a7d4d9082906370a08231906111fe903090600401612b38565b60206040518083038186803b15801561121657600080fd5b505afa15801561122a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124e91906129bc565b6040518263ffffffff1660e01b815260040161126a9190612e77565b600060405180830381600087803b15801561128457600080fd5b505af1158015611298573d6000803e3d6000fd5b504792504191506108fc90506127106112b18b85612f8f565b6112bb9190612f7b565b6040518115909202916000818181858888f193505050501580156112e3573d6000803e3d6000fd5b507f4a6a18e4c9b149324dfa011dab0c5e3450d1481cba2f95393384b46e68a0f40d73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc282604051611329929190612b4c565b60405180910390a150610bb6565b47416108fc6127106113498b85612f8f565b6113539190612f7b565b6040518115909202916000818181858888f1935050505015801561137b573d6000803e3d6000fd5b507f4a6a18e4c9b149324dfa011dab0c5e3450d1481cba2f95393384b46e68a0f40d6000826040516113ae929190612b4c565b60405180910390a15050505050505050505050565b60005a600254604051633b307a6160e21b81529192506001600160a01b03169063ecc1e98490611401908e908e908e908e908e908e90600401612ba2565b600060405180830381600087803b15801561141b57600080fd5b505af115801561142f573d6000803e3d6000fd5b5050505061143f85858585610ea1565b600061144c366010612f8f565b5a61145984615208612f63565b6114639190612fae565b61146d9190612f63565b90506d4946c0e9f43f4dee607b0ef1fa1c636366b93661a3db6114928461374a612f63565b61149c9190612f7b565b6040518263ffffffff1660e01b81526004016114b89190612e77565b602060405180830381600087803b1580156114d257600080fd5b505af11580156114e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5491906129bc565b60008060006115198585611fda565b91509150858282604051602001611531929190612aa3565b60405160208183030381529060405280519060200120604051602001611558929190612aca565b60408051601f1981840301815291905280516020909101209695505050505050565b60008060006115898585611fda565b50905060008061159a88888861150a565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156115d257600080fd5b505afa1580156115e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160a9190612956565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150826001600160a01b0316876001600160a01b03161461164f578082611652565b81815b90999098509650505050505050565b60008084116116825760405162461bcd60e51b81526004016103c290612c5e565b6000831180156116925750600082115b6116ae5760405162461bcd60e51b81526004016103c290612d4f565b60006116ba8585612f8f565b6116c6906103e8612f8f565b905060006116d48685612fae565b6116e0906103e5612f8f565b90506116ec8183612f7b565b6116f7906001612f63565b9695505050505050565b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063095ea7b39061175c90737a250d5630b4cf539739df2c5dacb4c659f2488d908690600401612b4c565b602060405180830381600087803b15801561177657600080fd5b505af115801561178a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ae91906128a4565b5060408051600280825260608201835260009260208301908036833701905050905083816000815181106117f257634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061184857634e487b7160e01b600052603260045260246000fd5b6001600160a01b03909216602092830291909101909101526040517f5c11d795000000000000000000000000000000000000000000000000000000008152737a250d5630b4cf539739df2c5dacb4c659f2488d90635c11d795906118b89086908690869030904290600401612eae565b600060405180830381600087803b1580156118d257600080fd5b505af11580156118e6573d6000803e3d6000fd5b5050505050505050565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038381169190911791829055604080517f7dc0d1d000000000000000000000000000000000000000000000000000000000815290519290911691637dc0d1d091600480820192602092909190829003018186803b15801561197257600080fd5b505afa158015611986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119aa91906126a8565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03928316179055600154604080517fe87554460000000000000000000000000000000000000000000000000000000081529051919092169163e8755446916004808301926020929190829003018186803b158015611a2957600080fd5b505afa158015611a3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6191906129bc565b600355600154604080517f4ada90af00000000000000000000000000000000000000000000000000000000815290516001600160a01b0390921691634ada90af91600480820192602092909190829003018186803b158015611ac257600080fd5b505afa158015611ad6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afa91906129bc565b60045550565b600080848614734ddc2d193948926d02f9b1fe9e1daa0718270ed5861460020201734ddc2d193948926d02f9b1fe9e1daa0718270ed587146003020190506000806000806000611b51868c8c612064565b9450945094509450945082881115611b935787611b6e848b612f8f565b611b789190612f7b565b89611b83858b612f8f565b611b8d9190612f7b565b90995097505b6000868d8d8d8d604051602001611bae959493929190612e80565b60408051601f198184030181529190529050611bcb600288612fc5565b611d2e57846001600160a01b0316866001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015611c1257600080fd5b505afa158015611c26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4a91906126a8565b6001600160a01b03161415611cc35760405163022c0d9f60e01b81526001600160a01b0387169063022c0d9f90611c8c908d9060009030908790600401612c30565b600060405180830381600087803b158015611ca657600080fd5b505af1158015611cba573d6000803e3d6000fd5b50505050611d29565b60405163022c0d9f60e01b81526001600160a01b0387169063022c0d9f90611cf6906000908e9030908790600401612c30565b600060405180830381600087803b158015611d1057600080fd5b505af1158015611d24573d6000803e3d6000fd5b505050505b611fc9565b8660011415611e7f57886103e50293506103e86103e7858c85036103e802018c6103e8028703860281611d7157634e487b7160e01b600052601260045260246000fd5b040281611d8e57634e487b7160e01b600052601260045260246000fd5b049350846001600160a01b0316866001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015611dd457600080fd5b505afa158015611de8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0c91906126a8565b6001600160a01b03161415611e4d5760405163022c0d9f60e01b81526001600160a01b0387169063022c0d9f90611c8c908d90889030908790600401612c30565b60405163022c0d9f60e01b81526001600160a01b0387169063022c0d9f90611cf69087908e9030908790600401612c30565b6103e86103e7611e908b868661234b565b611e9a9190612f8f565b611ea49190612f7b565b9350846001600160a01b0316866001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015611ee957600080fd5b505afa158015611efd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2191906126a8565b6001600160a01b03161415611f635760405163022c0d9f60e01b81526001600160a01b0387169063022c0d9f90611cf690879060009030908790600401612c30565b60405163022c0d9f60e01b81526001600160a01b0387169063022c0d9f90611f9690600090889030908790600401612c30565b600060405180830381600087803b158015611fb057600080fd5b505af1158015611fc4573d6000803e3d6000fd5b505050505b50949b9a5050505050505050505050565b600080826001600160a01b0316846001600160a01b0316141561200f5760405162461bcd60e51b81526004016103c290612cf2565b826001600160a01b0316846001600160a01b03161061202f578284612032565b83835b90925090506001600160a01b03821661205d5760405162461bcd60e51b81526004016103c290612de3565b9250929050565b60008080808080886121e857876001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b1580156120a957600080fd5b505afa1580156120bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e191906126a8565b9450866001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b15801561211c57600080fd5b505afa158015612130573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215491906126a8565b9050600061218b735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8773c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26123e6565b985091506121c49050735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2846123e6565b50945092506121d76103b685858461253d565b945060009350839250612340915050565b88600314156122805773c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29450866001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b15801561224157600080fd5b505afa158015612255573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227991906126a8565b905061230b565b876001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b1580156122b957600080fd5b505afa1580156122cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f191906126a8565b945073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290505b61232a735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f86836123e6565b97509350915061233c6103b6846125c3565b9350505b939792965093509350565b600080841161236c5760405162461bcd60e51b81526004016103c290612e1a565b60008311801561237c5750600082115b6123985760405162461bcd60e51b81526004016103c290612d4f565b60006123a6856103e5612f8f565b905060006123b48483612f8f565b90506000826123c5876103e8612f8f565b6123cf9190612f63565b90506123db8183612f7b565b979650505050505050565b60008060008060006123f88787611fda565b91509150878282604051602001612410929190612aa3565b60405160208183030381529060405280519060200120604051602001612437929190612aca565b60408051601f1981840301815291905280516020909101209250823b63ffffffff811661246d5760008095509550505050612534565b600080856001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156124a957600080fd5b505afa1580156124bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e19190612956565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150846001600160a01b03168a6001600160a01b031614612526578082612529565b81815b909850965050505050505b93509350939050565b600080826103e802846103e5020183866103e502028161256d57634e487b7160e01b600052601260045260246000fd5b049050620186a0620188fb876305f5e1008161259957634e487b7160e01b600052601260045260246000fd5b04038202816125b857634e487b7160e01b600052601260045260246000fd5b049695505050505050565b6000620186a0620187cd846305f5e100816125ee57634e487b7160e01b600052601260045260246000fd5b040383028161260d57634e487b7160e01b600052601260045260246000fd5b049392505050565b803561262081613005565b919050565b60008083601f840112612636578182fd5b50813567ffffffffffffffff81111561264d578182fd5b602083019150836020808302850101111561205d57600080fd5b80516dffffffffffffffffffffffffffff8116811461262057600080fd5b600060208284031215612696578081fd5b81356126a181613005565b9392505050565b6000602082840312156126b9578081fd5b81516126a181613005565b600080600080608085870312156126d9578283fd5b84356126e481613005565b935060208501356126f481613005565b9250604085013561270481613005565b9396929550929360600135925050565b60008060408385031215612726578182fd5b823561273181613005565b946020939093013593505050565b600080600080600060808688031215612756578081fd5b853561276181613005565b94506020860135935060408601359250606086013567ffffffffffffffff8082111561278b578283fd5b818801915088601f83011261279e578283fd5b8135818111156127ac578384fd5b8960208285010111156127bd578384fd5b9699959850939650602001949392505050565b60008060008060008060008060008060e08b8d0312156127ee578485fd5b8a3567ffffffffffffffff80821115612805578687fd5b6128118e838f01612625565b909c509a5060208d0135915080821115612829578687fd5b6128358e838f01612625565b909a50985060408d013591508082111561284d578687fd5b5061285a8d828e01612625565b90975095505060608b013561286e81613005565b935060808b013561287e81613005565b925061288c60a08c01612615565b915060c08b013590509295989b9194979a5092959850565b6000602082840312156128b5578081fd5b815180151581146126a1578182fd5b600060a082840312156128d5578081fd5b60405160a0810181811067ffffffffffffffff8211171561290457634e487b7160e01b83526041600452602483fd5b60405282358152602083013561291981613005565b6020820152604083013561292c81613005565b604082015261293d60608401612615565b6060820152608083013560808201528091505092915050565b60008060006060848603121561296a578283fd5b61297384612667565b925061298160208501612667565b9150604084015163ffffffff81168114612999578182fd5b809150509250925092565b6000602082840312156129b5578081fd5b5035919050565b6000602082840312156129cd578081fd5b5051919050565b818352602080840193600091908185020181018584845b87811015612a21578284038952612a028288612f1e565b612a0d868284612a2e565b9a87019a95505050908401906001016129eb565b5091979650505050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452815b81811015612a7d57602081850181015186830182015201612a61565b81811115612a8e5782602083870101525b50601f01601f19169290920160200192915050565b6bffffffffffffffffffffffff19606093841b811682529190921b16601482015260280190565b7fff00000000000000000000000000000000000000000000000000000000000000815260609290921b6bffffffffffffffffffffffff1916600183015260158201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f603582015260550190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b0393841681526020810192909252909116604082015260600190565b600060608252612bb660608301888a6129d4565b602083820381850152612bca82888a6129d4565b848103604086015285815291508082018186028301820187855b88811015612c1e57858303601f19018452612bff828b612f1e565b612c0a858284612a2e565b958701959450505090840190600101612be4565b50909c9b505050505050505050505050565b60008582528460208301526001600160a01b0384166040830152608060608301526116f76080830184612a58565b6020808252602c908201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4f60408201527f55545055545f414d4f554e540000000000000000000000000000000000000000606082015260800190565b60208082526011908201527f4861636b6572206e6f206861636b696e67000000000000000000000000000000604082015260600190565b60208082526025908201527f556e697377617056324c6962726172793a204944454e544943414c5f4144445260408201527f4553534553000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526028908201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60408201527f4951554944495459000000000000000000000000000000000000000000000000606082015260800190565b60208082526009908201527f4e6f74206f776e65720000000000000000000000000000000000000000000000604082015260600190565b6020808252601e908201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604082015260600190565b6020808252602b908201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4960408201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000606082015260800190565b90815260200190565b9485526001600160a01b03938416602086015291831660408501529091166060830152608082015260a00190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015612efd5784516001600160a01b031683529383019391830191600101612ed8565b50506001600160a01b03969096166060850152505050608001529392505050565b6000808335601e19843603018112612f34578283fd5b830160208101925035905067ffffffffffffffff811115612f5457600080fd5b80360383131561205d57600080fd5b60008219821115612f7657612f76612fd9565b500190565b600082612f8a57612f8a612fef565b500490565b6000816000190483118215151615612fa957612fa9612fd9565b500290565b600082821015612fc057612fc0612fd9565b500390565b600082612fd457612fd4612fef565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6001600160a01b0381168114610cc357600080fdfea264697066735822122042fcc9082de369e4ce85450e0e379aebbcd4eed08865930b4682ca7d5ce5997c64736f6c634300080000330000000000000000000000003d9819210a31b4961b30ef54be2aed79b9c9cd3b