0x60a06040523060805234801561001457600080fd5b506000805462ff000019169055608051613c526100586000396000818161056b015281816105b40152818161075a0152818161079a01526108160152613c526000f3fe6080604052600436106101c25760003560e01c8063665da0b9116100f7578063bd3ce6b011610095578063e37259e911610064578063e37259e91461049c578063e492ebbc146104bc578063f8ab6f7a146104dd578063f9e69cb6146104fd57600080fd5b8063bd3ce6b01461045f578063bdb6dead14610473578063c4ae316814610487578063d240f3cf1461028157600080fd5b80638cdf7f48116100d15780638cdf7f48146103f457806390d83480146104145780639a8a059214610434578063aaf10f421461044a57600080fd5b8063665da0b91461038a5780636e9960c3146103b85780636f30b5d4146103cd57600080fd5b8063423de2941161016457806352d1902d1161013e57806352d1902d146103425780635b4b3dcc146101fc5780635c975abb14610357578063663261d71461037557600080fd5b8063423de294146102e05780634dd18bf51461030f5780634f1ef2861461032f57600080fd5b80632df2a514116101a05780632df2a5141461025d578063330115fc146102815780633659cfe6146102a15780633fa9a8de146102c157600080fd5b80630fddfc44146101c757806316dc5270146101fc578063267822471461022b575b600080fd5b3480156101d357600080fd5b506101e76101e2366004612eb3565b61051d565b60405190151581526020015b60405180910390f35b34801561020857600080fd5b5061021c610217366004612fc0565b610526565b6040516101f393929190613044565b34801561023757600080fd5b506002546001600160a01b03165b6040516001600160a01b0390911681526020016101f3565b34801561026957600080fd5b50610272610549565b6040516101f393929190613071565b34801561028d57600080fd5b5061029f61029c366004612fc0565b50565b005b3480156102ad57600080fd5b5061029f6102bc3660046130eb565b610561565b3480156102cd57600080fd5b506003545b6040519081526020016101f3565b3480156102ec57600080fd5b506103006102fb366004613106565b61062f565b6040516101f393929190613163565b34801561031b57600080fd5b5061029f61032a3660046130eb565b610654565b61029f61033d3660046131fd565b610750565b34801561034e57600080fd5b506102d2610809565b34801561036357600080fd5b5060005462010000900460ff166101e7565b34801561038157600080fd5b5061029f6108bc565b34801561039657600080fd5b506103ab6103a5366004612fc0565b50606090565b6040516101f3919061324a565b3480156103c457600080fd5b5061024561096a565b3480156103d957600080fd5b5060005461024590630100000090046001600160a01b031681565b34801561040057600080fd5b506103ab61040f36600461325d565b610979565b34801561042057600080fd5b5061029f61042f3660046131fd565b6109a2565b34801561044057600080fd5b506102d260015481565b34801561045657600080fd5b506102456109e8565b34801561046b57600080fd5b5060606103ab565b34801561047f57600080fd5b5060006102d2565b34801561049357600080fd5b5061029f6109f2565b3480156104a857600080fd5b5061029f6104b7366004613297565b610a4a565b3480156104c857600080fd5b506040805160008082526020820152016101f3565b3480156104e957600080fd5b506103006104f83660046132db565b610c7d565b34801561050957600080fd5b5061029f61051836600461330b565b610ca0565b60015b92915050565b6000606080610533610e13565b61053c84610e5f565b9250925092509193909250565b6000806060610556610efe565b925092509250909192565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105b25760405162461bcd60e51b81526004016105a990613389565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105e4610f55565b6001600160a01b03161461060a5760405162461bcd60e51b81526004016105a9906133d5565b61061381610f76565b6040805160008082526020820190925261029c91839190610fe8565b6000606061063b612e89565b6106458585611158565b92509250925093509350939050565b61065c6111fd565b6001600160a01b0316336001600160a01b03161461068c5760405162461bcd60e51b81526004016105a990613421565b6001600160a01b0381166106f45760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c653a2070656e64696e6741646d696e20697320746865207a65726044820152686f206164647265737360b81b60648201526084016105a9565b6002546040516001600160a01b038084169216907fc294d940164d749e976ac50c543f95eeefc74a98d2ce60ba4157b711892152ae90600090a3600280546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107985760405162461bcd60e51b81526004016105a990613389565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107ca610f55565b6001600160a01b0316146107f05760405162461bcd60e51b81526004016105a9906133d5565b6107f982610f76565b61080582826001610fe8565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108a95760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016105a9565b50600080516020613bb683398151915290565b6002546001600160a01b0316331461090a5760405162461bcd60e51b815260206004820152601160248201527037b7363c903832b73234b733a0b236b4b760791b60448201526064016105a9565b6002546001600160a01b031661091e6111fd565b6001600160a01b03167ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec660405160405180910390a3600254610968906001600160a01b0316611225565b565b60006109746111fd565b905090565b60608160405160200161098c919061356b565b6040516020818303038152906040529050919050565b43826001600160a01b03167f7063ee7ac21ca792eb7d62d3a65598a5c986c4b0f7bd701aa453eb8a1387c956836040516109dc919061324a565b60405180910390a35050565b6000610974610f55565b6109fa6111fd565b6001600160a01b0316336001600160a01b031614610a2a5760405162461bcd60e51b81526004016105a990613421565b60005462010000900460ff16610a4257610968611279565b6109686112d7565b600054610100900460ff1615808015610a6a5750600054600160ff909116105b80610a845750303b158015610a84575060005460ff166001145b610ae75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105a9565b6000805460ff191660011790558015610b0a576000805461ff0019166101001790555b60008511610b4d5760405162461bcd60e51b815260206004820152601060248201526f1a5b9d985b1a590817d8da185a5b925960821b60448201526064016105a9565b6001600160a01b038416610ba35760405162461bcd60e51b815260206004820152601860248201527f5f636f6e74726f6c6c6572207a65726f2061646472657373000000000000000060448201526064016105a9565b6001600160a01b038316610bf95760405162461bcd60e51b815260206004820152601760248201527f5f6d7074566572696679207a65726f206164647265737300000000000000000060448201526064016105a9565b6001859055600080546301000000600160b81b03191663010000006001600160a01b038616021790556003829055610c3084611225565b8015610c76576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60006060610c89612e89565b610c938585611158565b9250925092509250925092565b610ca86111fd565b6001600160a01b0316336001600160a01b031614610cd85760405162461bcd60e51b81526004016105a990613421565b610ce26000611312565b6000610cec61135e565b805190915060005b81811015610d3057610d1e838281518110610d1157610d11613646565b602002602001015161138c565b80610d2881613672565b915050610cf4565b508260005b81811015610d7e57610d6c868683818110610d5257610d52613646565b9050602002016020810190610d6791906130eb565b61140c565b80610d7681613672565b915050610d35565b50610d8886611312565b6000868686604051602001610d9f9392919061368b565b604051602081830303815290604052805190602001209050610dcd81600080516020613bfd83398151915255565b7f176e974620214a84869e0e8d901b12662bea90d40328c1d9c28c0e688c9e604081888888604051610e0294939291906136d2565b60405180910390a150505050505050565b60005462010000900460ff16156109685760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105a9565b6000606080600084806020019051810190610e7a9190613812565b9050610e9681602001518260000151600154846040015161147d565b610eaa816020015182606001516000611606565b909450915083610ef65760405162461bcd60e51b81526020600482015260176024820152761b5c1d081d995c9a599a58d85d1a5bdb8819985a5b1959604a1b60448201526064016105a9565b509193909250565b600080516020613bfd83398151915280547f361038e55a7e4ee2039d84670b090156834de40f6814e0436947f398075fbcb3549091606090610f4d600080516020613b96833981519152611632565b915050909192565b6000600080516020613bb68339815191525b546001600160a01b0316919050565b610f7e6111fd565b6001600160a01b0316336001600160a01b03161461029c5760405162461bcd60e51b815260206004820152602160248201527f4c696768744e6f64653a206f6e6c792041646d696e2063616e207570677261646044820152606560f81b60648201526084016105a9565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156110205761101b83611698565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561107a575060408051601f3d908101601f191682019092526110779181019061393b565b60015b6110dd5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016105a9565b600080516020613bb6833981519152811461114c5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016105a9565b5061101b838383611737565b60006060611164612e89565b60008480602001905181019061117a9190613812565b905061119681602001518260000151600154846040015161147d565b6111a98682602001518360600151611762565b9094509150836111f55760405162461bcd60e51b81526020600482015260176024820152761b5c1d081d995c9a599a58d85d1a5bdb8819985a5b1959604a1b60448201526064016105a9565b509250925092565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103610f67565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61124e6111fd565b604080516001600160a01b03928316815291841660208301520160405180910390a161029c8161178c565b611281610e13565b6000805462ff00001916620100001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586112ba3390565b6040516001600160a01b03909116815260200160405180910390a1565b6112df611818565b6000805462ff0000191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336112ba565b600080516020613bfd833981519152611338600080516020613b96833981519152611867565b8211156113585760405163106abba760e01b815260040160405180910390fd5b60010155565b6060600080516020613bfd833981519152611386600080516020613b96833981519152611632565b91505090565b600080516020613bfd83398151915260016113b4600080516020613b96833981519152611867565b6113be9190613954565b816001015411156113e25760405163106abba760e01b815260040160405180910390fd5b6113ef6002820183611871565b6108055760405163652def2360e01b815260040160405180910390fd5b600080516020613bfd833981519152610100611435600080516020613b96833981519152611867565b10611453576040516372342a6160e11b815260040160405180910390fd5b611460600282018361188d565b610805576040516301159cdd60e31b815260040160405180910390fd5b80517f361038e55a7e4ee2039d84670b090156834de40f6814e0436947f398075fbcb354600080516020613bfd8339815191529110156114d0576040516324d5d9b760e11b815260040160405180910390fd5b6000805b83518110156115fd5760006115948583815181106114f4576114f4613646565b6020908102919091018101518654604080519384018d9052830152606082018a9052608082018990529061158e9060a001604051602081830303815290604052805190602001206040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b906118a2565b905060006115a560028601836118c6565b905061010081106115c95760405163a17d6a8560e01b815260040160405180910390fd5b6001811b848116156115ee5760405163b67f0b9160e01b815260040160405180910390fd5b939093179250506001016114d4565b50505050505050565b6000606061161485856118ea565b9150811561162a5783516116279061194c565b90505b935093915050565b8054604080516020808402820181019092528281526060928492839291839183018282801561168a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161166c575b505050505092505050919050565b6001600160a01b0381163b6117055760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105a9565b80600080516020613bb68339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6117408361198d565b60008251118061174d5750805b1561101b5761175c83836119cd565b50505050565b600061176c612e89565b61177684846118ea565b9150811561162a576116278584600001516119f2565b6001600160a01b0381166117f15760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a9565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103611716565b60005462010000900460ff166109685760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105a9565b6000610520825490565b6000611886836001600160a01b038416611a4b565b9392505050565b6000611886836001600160a01b038416611b10565b60008060006118b18585611b53565b915091506118be81611b98565b509392505050565b6001600160a01b038116600090815260018301602052604081205460001901611886565b80516020820151600091901561192657826020015160f81b81604051602001611914929190613967565b60405160208183030381529060405290505b805160208201206040840151606085015161194391839188611d4e565b95945050505050565b60408051808201825260008082526020918201528151808301909252825182528083019082015260609061052090611988906003905b90611fdf565b612117565b61199681611698565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606118868383604051806060016040528060278152602001613bd66027913961213b565b6119fa612e89565b6000611a3260036119828560408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b90506000611a408286611fdf565b905061194381612218565b60008181526001830160205260408120548015611b0957835460009085906000198101908110611a7d57611a7d613646565b9060005260206000200154905080856000016001840381548110611aa357611aa3613646565b6000918252602080832090910192909255918252600186019052604090208190558354849080611ad557611ad5613998565b6001900381819060005260206000200160009055905583600101600084815260200190815260200160002060009055600191505b5092915050565b6000818152600183016020526040812054610520575081546001808201845560008481526020808220909301849055845493815293810190915260409092205590565b6000808251604103611b895760208301516040840151606085015160001a611b7d878285856123af565b94509450505050611b91565b506000905060025b9250929050565b6000816004811115611bac57611bac6139ae565b03611bb45750565b6001816004811115611bc857611bc86139ae565b03611c155760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016105a9565b6002816004811115611c2957611c296139ae565b03611c765760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016105a9565b6003816004811115611c8a57611c8a6139ae565b03611ce25760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016105a9565b6004816004811115611cf657611cf66139ae565b0361029c5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016105a9565b600060608060008490506000808890508051600003611d7557600095505050505050611fd7565b60005b8851811015611fcc578151831115611d995760009650505050505050611fd7565b888181518110611dab57611dab613646565b6020026020010151955085805190602001208414611dd25760009650505050505050611fd7565b611e24611e1f8a8381518110611dea57611dea613646565b602002602001015160408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b61249c565b94508451601103611eef5781518303611e7e578a611e5b86601081518110611e4e57611e4e613646565b60200260200101516125e3565b03611e6f5760019650505050505050611fd7565b60009650505050505050611fd7565b6000828481518110611e9257611e92613646565b016020015160f81c90506010811115611eb5576000975050505050505050611fd7565b611eda868260ff1681518110611ecd57611ecd613646565b60200260200101516125fb565b9450611ee76001856139c4565b935050611fba565b8451600203611e6f576000611f27611f2087600081518110611f1357611f13613646565b602002602001015161266c565b848661271f565b8351909150611f3682866139c4565b03611f77578b611f5287600181518110611e4e57611e4e613646565b03611f67576001975050505050505050611fd7565b6000975050505050505050611fd7565b80600003611f8f576000975050505050505050611fd7565b611f9981856139c4565b9350611fb186600181518110611ecd57611ecd613646565b9450611fba9050565b80611fc481613672565b915050611d78565b506000955050505050505b949350505050565b6040805180820190915260008082526020820152611ffc83612827565b6120375760405162461bcd60e51b815260206004820152600c60248201526b1a5cc81b1a5cdd0819985a5b60a21b60448201526064016105a9565b8251602084015160009161204a916139c4565b9050600061205b8560200151612862565b856020015161206a91906139c4565b90506000805b858110156120a157612081836128dd565b915061208d82846139c4565b92508061209981613672565b915050612070565b506120ab826128dd565b9050826120b882846139c4565b11156120fa5760405162461bcd60e51b8152602060048201526011602482015270524c50206974656d206f766572666c6f7760781b60448201526064016105a9565b604080518082019091529081526020810191909152949350505050565b805160609060000361212857919050565b508051602090910151601f190190815290565b60606001600160a01b0384163b6121a35760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016105a9565b600080856001600160a01b0316856040516121be91906139d7565b600060405180830381855af49150503d80600081146121f9576040519150601f19603f3d011682016040523d82523d6000602084013e6121fe565b606091505b509150915061220e828286612981565b9695505050505050565b612220612e89565b600061222b8361249c565b90506003815110156122735760405162461bcd60e51b81526020600482015260116024820152706c6f67206c656e67746820746f206c6f7760781b60448201526064016105a9565b60006122988260018151811061228b5761228b613646565b602002602001015161249c565b9050600081516001600160401b038111156122b5576122b5612ed5565b6040519080825280602002602001820160405280156122de578160200160208202803683370190505b50905060005b825181101561233e5761230f83828151811061230257612302613646565b60200260200101516129ba565b82828151811061232157612321613646565b60209081029190910101528061233681613672565b9150506122e4565b50604051806060016040528061236d8560008151811061236057612360613646565b6020026020010151612a04565b6001600160a01b031681526020018281526020016123a48560028151811061239757612397613646565b6020026020010151612a56565b905295945050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156123e65750600090506003612493565b8460ff16601b141580156123fe57508460ff16601c14155b1561240f5750600090506004612493565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612463573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661248c57600060019250925050612493565b9150600090505b94509492505050565b60606124a782612827565b6124e25760405162461bcd60e51b815260206004820152600c60248201526b1a5cc81b1a5cdd0819985a5b60a21b60448201526064016105a9565b60006124ed83612a84565b90506000816001600160401b0381111561250957612509612ed5565b60405190808252806020026020018201604052801561254e57816020015b60408051808201909152600080825260208201528152602001906001900390816125275790505b50905060006125608560200151612862565b856020015161256f91906139c4565b90506000805b848110156125d857612586836128dd565b91506040518060400160405280838152602001848152508482815181106125af576125af613646565b60209081029190910101526125c482846139c4565b9250806125d081613672565b915050612575565b509195945050505050565b60008060006125f184612b09565b9020949350505050565b805160009060211461264f5760405162461bcd60e51b815260206004820152601760248201527f6974656d206973206e6f742075696e742073747269637400000000000000000060448201526064016105a9565b6000808360200151600161266391906139c4565b51949350505050565b80516060906126b05760405162461bcd60e51b815260206004820152601060248201526f6974656d206c656e206973207a65726f60801b60448201526064016105a9565b6000806126bc84612b09565b915091506000816001600160401b038111156126da576126da612ed5565b6040519080825280601f01601f191660200182016040528015612704576020820181803683370190505b50905060208101612716848285612b50565b50949350505050565b600080600061272d86612bd2565b9050600081516001600160401b0381111561274a5761274a612ed5565b6040519080825280601f01601f191660200182016040528015612774576020820181803683370190505b509050845b825161278590876139c4565b8110156127f85760008782815181106127a0576127a0613646565b01602001516001600160f81b031916905080836127bd8985613954565b815181106127cd576127cd613646565b60200101906001600160f81b031916908160001a9053505080806127f090613672565b915050612779565b508080519060200120828051906020012003612817578151925061281c565b600092505b509095945050505050565b8051600090810361283a57506000919050565b6020820151805160001a9060c0821015612858575060009392505050565b5060019392505050565b8051600090811a608081101561287b5750600092915050565b60b8811080612896575060c08110801590612896575060f881105b156128a45750600192915050565b60c08110156128d1576128b9600160b86139f3565b6128c69060ff1682613954565b6118869060016139c4565b6128b9600160f86139f3565b80516000908190811a60808110156128f85760019150611b09565b60b881101561291e5761290c608082613954565b6129179060016139c4565b9150611b09565b60c081101561294b5760b78103600185019450806020036101000a85510460018201810193505050611b09565b60f881101561295f5761290c60c082613954565b60019390930151602084900360f7016101000a900490920160f5190192915050565b60608315612990575081611886565b8251156129a05782518084602001fd5b8160405162461bcd60e51b81526004016105a9919061324a565b805160009060211461264f5760405162461bcd60e51b815260206004820152601360248201527234ba32b69034b9903737ba10313cba32b9999960691b60448201526064016105a9565b8051600090601514612a4d5760405162461bcd60e51b81526020600482015260126024820152716974656d206c656e206973206e6f7420323160701b60448201526064016105a9565b61052082612d81565b8051606090600003612a6757919050565b600080612a7384612b09565b601f19909101908152949350505050565b80516000908103612a9757506000919050565b600080612aa78460200151612862565b8460200151612ab691906139c4565b9050600084600001518560200151612ace91906139c4565b90505b80821015612b0057612ae2826128dd565b612aec90836139c4565b915082612af881613672565b935050612ad1565b50909392505050565b6000806000612b1b8460200151612862565b90506000818560200151612b2f91906139c4565b90506000828660000151612b439190613954565b9196919550909350505050565b80600003612b5d57505050565b60208110612b955782518252612b746020846139c4565b9250612b816020836139c4565b9150612b8e602082613954565b9050612b5d565b801561101b5760006001612baa836020613954565b612bb690610100613af0565b612bc09190613954565b84518451821691191617835250505050565b60608060008351111561052057600080612bed600086612e08565b60f81c90506001811480612c0457508060ff166003145b15612cab57600185516002612c199190613afc565b612c239190613954565b6001600160401b03811115612c3a57612c3a612ed5565b6040519080825280601f01601f191660200182016040528015612c64576020820181803683370190505b5092506000612c74600187612e08565b90508084600081518110612c8a57612c8a613646565b60200101906001600160f81b031916908160001a9053506001925050612d0e565b600285516002612cbb9190613afc565b612cc59190613954565b6001600160401b03811115612cdc57612cdc612ed5565b6040519080825280601f01601f191660200182016040528015612d06576020820181803683370190505b509250600091505b60ff82165b8351811015612d7857612d3d612d2c60ff851683613954565b612d379060026139c4565b87612e08565b848281518110612d4f57612d4f613646565b60200101906001600160f81b031916908160001a90535080612d7081613672565b915050612d13565b50505092915050565b805160009015801590612d9657508151602110155b612dd95760405162461bcd60e51b81526020600482015260146024820152731a5d195b481b195b881a5cc81b9bdd081d5a5b9d60621b60448201526064016105a9565b600080612de584612b09565b815191935091506020821015611fd75760208290036101000a9004949350505050565b6000612e15600284613b29565b15612e4f57601082612e28600286613b3d565b81518110612e3857612e38613646565b0160200151612e4a919060f81c613b51565b612e7f565b601082612e5d600286613b3d565b81518110612e6d57612e6d613646565b0160200151612e7f919060f81c613b73565b60f81b9392505050565b604051806060016040528060006001600160a01b0316815260200160608152602001606081525090565b60008060408385031215612ec657600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715612f0d57612f0d612ed5565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612f3b57612f3b612ed5565b604052919050565b60006001600160401b03821115612f5c57612f5c612ed5565b50601f01601f191660200190565b600082601f830112612f7b57600080fd5b8135612f8e612f8982612f43565b612f13565b818152846020838601011115612fa357600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215612fd257600080fd5b81356001600160401b03811115612fe857600080fd5b611fd784828501612f6a565b60005b8381101561300f578181015183820152602001612ff7565b50506000910152565b60008151808452613030816020860160208601612ff4565b601f01601f19169290920160200192915050565b831515815260606020820152600061305f6060830185613018565b828103604084015261220e8185613018565b6000606082018583526020858185015260606040850152818551808452608086019150828701935060005b818110156130c15784516001600160a01b03168352938301939183019160010161309c565b509098975050505050505050565b80356001600160a01b03811681146130e657600080fd5b919050565b6000602082840312156130fd57600080fd5b611886826130cf565b60008060006060848603121561311b57600080fd5b8335801515811461312b57600080fd5b92506020840135915060408401356001600160401b0381111561314d57600080fd5b61315986828701612f6a565b9150509250925092565b83151581526000602060608184015261317f6060840186613018565b838103604085015284516001600160a01b0316815281850151606083830181905281519083018190529083019060009060808401905b808310156131d557835182529285019260019290920191908501906131b5565b506040880151945083810360408501526131ef8186613018565b9a9950505050505050505050565b6000806040838503121561321057600080fd5b613219836130cf565b915060208301356001600160401b0381111561323457600080fd5b61324085828601612f6a565b9150509250929050565b6020815260006118866020830184613018565b60006020828403121561326f57600080fd5b81356001600160401b0381111561328557600080fd5b82016080818503121561188657600080fd5b600080600080608085870312156132ad57600080fd5b843593506132bd602086016130cf565b92506132cb604086016130cf565b9396929550929360600135925050565b600080604083850312156132ee57600080fd5b8235915060208301356001600160401b0381111561323457600080fd5b60008060006040848603121561332057600080fd5b8335925060208401356001600160401b038082111561333e57600080fd5b818601915086601f83011261335257600080fd5b81358181111561336157600080fd5b8760208260051b850101111561337657600080fd5b6020830194508093505050509250925092565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60208082526017908201527f6c696768746e6f6465203a3a206f6e6c792061646d696e000000000000000000604082015260600190565b6000808335601e1984360301811261346f57600080fd5b83016020810192503590506001600160401b0381111561348e57600080fd5b8060051b3603821315611b9157600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000808335601e198436030181126134e057600080fd5b83016020810192503590506001600160401b038111156134ff57600080fd5b803603821315611b9157600080fd5b81835260006020808501808196508560051b810191508460005b8781101561355e57828403895261353f82886134c9565b61354a8682846134a0565b9a87019a9550505090840190600101613528565b5091979650505050505050565b602081528135602082015260208201356040820152600061358f6040840184613458565b608060608501526135a460a08501828461350e565b9150506060840135607e198536030181126135be57600080fd5b838203601f1901608085015284016135d681806134c9565b608084526135e86080850182846134a0565b9150506020820135602084015261360260408301836134c9565b84830360408601526136158382846134a0565b925050506136266060830183613458565b9250838203606085015261363b82848361350e565b979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016136845761368461365c565b5060010190565b838152600060208083018560005b868110156136c5576001600160a01b036136b2836130cf565b1683529183019190830190600101613699565b5090979650505050505050565b84815260208082018590526060604083018190528201839052600090849060808401835b86811015613722576001600160a01b0361370f856130cf565b16825292820192908201906001016136f6565b5098975050505050505050565b600082601f83011261374057600080fd5b815161374e612f8982612f43565b81815284602083860101111561376357600080fd5b611fd7826020830160208701612ff4565b600082601f83011261378557600080fd5b815160206001600160401b03808311156137a1576137a1612ed5565b8260051b6137b0838201612f13565b93845285810183019383810190888611156137ca57600080fd5b84880192505b85831015613806578251848111156137e85760008081fd5b6137f68a87838c010161372f565b83525091840191908401906137d0565b98975050505050505050565b60006020828403121561382457600080fd5b81516001600160401b038082111561383b57600080fd5b908301906080828603121561384f57600080fd5b613857612eeb565b825181526020830151602082015260408301518281111561387757600080fd5b61388387828601613774565b60408301525060608301518281111561389b57600080fd5b9290920191608083870312156138b057600080fd5b6138b8612eeb565b8351838111156138c757600080fd5b6138d38882870161372f565b825250602084015160208201526040840151838111156138f257600080fd5b6138fe8882870161372f565b60408301525060608401518381111561391657600080fd5b61392288828701613774565b6060830152508060608301525080935050505092915050565b60006020828403121561394d57600080fd5b5051919050565b818103818111156105205761052061365c565b6001600160f81b031983168152815160009061398a816001850160208701612ff4565b919091016001019392505050565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b808201808211156105205761052061365c565b600082516139e9818460208701612ff4565b9190910192915050565b60ff82811682821603908111156105205761052061365c565b600181815b80851115613a47578160001904821115613a2d57613a2d61365c565b80851615613a3a57918102915b93841c9390800290613a11565b509250929050565b600082613a5e57506001610520565b81613a6b57506000610520565b8160018114613a815760028114613a8b57613aa7565b6001915050610520565b60ff841115613a9c57613a9c61365c565b50506001821b610520565b5060208310610133831016604e8410600b8410161715613aca575081810a610520565b613ad48383613a0c565b8060001904821115613ae857613ae861365c565b029392505050565b60006118868383613a4f565b80820281158282048414176105205761052061365c565b634e487b7160e01b600052601260045260246000fd5b600082613b3857613b38613b13565b500690565b600082613b4c57613b4c613b13565b500490565b600060ff831680613b6457613b64613b13565b8060ff84160691505092915050565b600060ff831680613b8657613b86613b13565b8060ff8416049150509291505056fe361038e55a7e4ee2039d84670b090156834de40f6814e0436947f398075fbcb4360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564361038e55a7e4ee2039d84670b090156834de40f6814e0436947f398075fbcb2a26469706673582212208047c516ef6503dcd5a4b073d68c851dc45be4081b5893a1876595a9b6c1cad264736f6c63430008140033