60806040523480156200001157600080fd5b5060405180604001604052806009815260200168145d585b9d1b185b9960ba1b8152506040518060400160405280600381526020016214531560ea1b815250600982600390805190602001906200006a92919062000796565b5081516200008090600490602085019062000796565b506005805460ff191660ff9290921691909117905550620000a3905033620002dd565b73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb483010620001405760405162461bcd60e51b815260206004820152604560248201527f514c5420636f6e74726163742061646472657373206d75737420626520736d6160448201527f6c6c6572207468616e205553444320746f6b656e20636f6e7472616374206164606482015264647265737360d81b608482015260a4015b60405180910390fd5b33600090815260066020526040808220805460ff191660011790555163a167129560e01b815230600482015273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4860248201526127106044820152731f98431c8ad98523631ae4a59f267346ea31f9849063a1671295906064016020604051808303816000875af1158015620001cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f391906200083c565b9050806001600160a01b031663f637731d6200021d6159d7196200033760201b620007e21760201c565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b1580156200025f57600080fd5b505af115801562000274573d6000803e3d6000fd5b5050604080516332148f6760e01b815260048101919091526001600160a01b03841692506332148f679150602401600060405180830381600087803b158015620002bd57600080fd5b505af1158015620002d2573d6000803e3d6000fd5b505050505062000988565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008060008360020b1262000350578260020b6200035f565b8260020b6200035f9062000884565b905062000370620d89e719620008a4565b60020b811115620003a85760405162461bcd60e51b81526020600482015260016024820152601560fa1b604482015260640162000137565b600060018216620003be57600160801b620003d0565b6ffffcb933bd6fad37aa2d162d1a5940015b6001600160881b0316905060028216156200040857608062000403826ffff97272373d413259a46990580e213a620008ca565b901c90505b60048216156200043557608062000430826ffff2e50f5f656932ef12357cf3c7fdcc620008ca565b901c90505b6008821615620004625760806200045d826fffe5caca7e10e4e61c3624eaa0941cd0620008ca565b901c90505b60108216156200048f5760806200048a826fffcb9843d60f6159c9db58835c926644620008ca565b901c90505b6020821615620004bc576080620004b7826fff973b41fa98c081472e6896dfb254c0620008ca565b901c90505b6040821615620004e9576080620004e4826fff2ea16466c96a3843ec78b326b52861620008ca565b901c90505b60808216156200051657608062000511826ffe5dee046a99a2a811c461f1969c3053620008ca565b901c90505b610100821615620005445760806200053f826ffcbe86c7900a88aedcffc83b479aa3a4620008ca565b901c90505b610200821615620005725760806200056d826ff987a7253ac413176f2b074cf7815e54620008ca565b901c90505b610400821615620005a05760806200059b826ff3392b0822b70005940c7a398e4b70f3620008ca565b901c90505b610800821615620005ce576080620005c9826fe7159475a2c29b7443b29c7fa6e889d9620008ca565b901c90505b611000821615620005fc576080620005f7826fd097f3bdfd2022b8845ad8f792aa5825620008ca565b901c90505b6120008216156200062a57608062000625826fa9f746462d870fdf8a65dc1f90e061e5620008ca565b901c90505b6140008216156200065857608062000653826f70d869a156d2a1b890bb3df62baf32f7620008ca565b901c90505b6180008216156200068657608062000681826f31be135f97d08fd981231505542fcfa6620008ca565b901c90505b62010000821615620006b5576080620006b0826f09aa508b5b7a84e1c677de54f3e99bc9620008ca565b901c90505b62020000821615620006e3576080620006de826e5d6af8dedb81196699c329225ee604620008ca565b901c90505b62040000821615620007105760806200070b826d2216e584f5fa1ea926041bedfe98620008ca565b901c90505b620800008216156200073b57608062000736826b048a170391f7dc42444e8fa2620008ca565b901c90505b60008460020b13156200075957620007568160001962000902565b90505b6200076a6401000000008262000919565b15620007785760016200077b565b60005b6200078e9060ff16602083901c62000930565b949350505050565b828054620007a4906200094b565b90600052602060002090601f016020900481019282620007c8576000855562000813565b82601f10620007e357805160ff191683800117855562000813565b8280016001018555821562000813579182015b8281111562000813578251825591602001919060010190620007f6565b506200082192915062000825565b5090565b5b8082111562000821576000815560010162000826565b6000602082840312156200084f57600080fd5b81516001600160a01b03811681146200086757600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8214156200089d576200089d6200086e565b5060000390565b60008160020b627fffff19811415620008c157620008c16200086e565b60000392915050565b6000816000190483118215151615620008e757620008e76200086e565b500290565b634e487b7160e01b600052601260045260246000fd5b600082620009145762000914620008ec565b500490565b6000826200092b576200092b620008ec565b500690565b600082198211156200094657620009466200086e565b500190565b600181811c908216806200096057607f821691505b602082108114156200098257634e487b7160e01b600052602260045260246000fd5b50919050565b61143f80620009986000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80635f710f5c116100ad578063a457c2d711610071578063a457c2d714610264578063a9059cbb14610277578063aa2fe91b1461028a578063dd62ed3e146102ad578063f2fde38b146102e657600080fd5b80635f710f5c146101ef57806370a0823114610202578063715018a61461022b5780638da5cb5b1461023357806395d89b411461025c57600080fd5b8063313ce567116100f4578063313ce5671461018c57806339509351146101a157806340c10f19146101b457806342966c68146101c9578063475ae039146101dc57600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102f9565b60405161013b9190611172565b60405180910390f35b6101576101523660046111e3565b61038b565b604051901515815260200161013b565b6002545b60405190815260200161013b565b61015761018736600461120d565b6103a1565b60055460405160ff909116815260200161013b565b6101576101af3660046111e3565b610457565b6101c76101c23660046111e3565b610493565b005b6101c76101d7366004611249565b61053b565b6101c76101ea366004611262565b6105ab565b6101c76101fd366004611262565b6105fc565b61016b610210366004611262565b6001600160a01b031660009081526020819052604090205490565b6101c7610650565b60055461010090046001600160a01b03166040516001600160a01b03909116815260200161013b565b61012e61068c565b6101576102723660046111e3565b61069b565b6101576102853660046111e3565b610734565b610157610298366004611262565b60066020526000908152604090205460ff1681565b61016b6102bb366004611284565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6101c76102f4366004611262565b610741565b606060038054610308906112b7565b80601f0160208091040260200160405190810160405280929190818152602001828054610334906112b7565b80156103815780601f1061035657610100808354040283529160200191610381565b820191906000526020600020905b81548152906001019060200180831161036457829003601f168201915b5050505050905090565b6000610398338484610bff565b50600192915050565b6001600160a01b0383166000908152600160209081526040808320338452909152812054600019811461044157828110156104345760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6104418533858403610bff565b61044c858585610d24565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161039891859061048e908690611308565b610bff565b3360009081526006602052604090205460ff166104ea5760405162461bcd60e51b81526020600482015260156024820152743737ba1030baba3437b934bd32b21036b4b73a32b960591b604482015260640161042b565b6104f48282610ef3565b816001600160a01b03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405161052f91815260200190565b60405180910390a25050565b6005546001600160a01b0361010090910416331461056b5760405162461bcd60e51b815260040161042b90611320565b6105753382610fd2565b6040518181527fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9060200160405180910390a150565b6005546001600160a01b036101009091041633146105db5760405162461bcd60e51b815260040161042b90611320565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6005546001600160a01b0361010090910416331461062c5760405162461bcd60e51b815260040161042b90611320565b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b6005546001600160a01b036101009091041633146106805760405162461bcd60e51b815260040161042b90611320565b61068a6000611118565b565b606060048054610308906112b7565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561071d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161042b565b61072a3385858403610bff565b5060019392505050565b6000610398338484610d24565b6005546001600160a01b036101009091041633146107715760405162461bcd60e51b815260040161042b90611320565b6001600160a01b0381166107d65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042b565b6107df81611118565b50565b60008060008360020b126107f9578260020b610806565b8260020b61080690611355565b9050610815620d89e719611372565b60020b81111561084b5760405162461bcd60e51b81526020600482015260016024820152601560fa1b604482015260640161042b565b60006001821661085f57600160801b610871565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156108b05760806108ab826ffff97272373d413259a46990580e213a611395565b901c90505b60048216156108da5760806108d5826ffff2e50f5f656932ef12357cf3c7fdcc611395565b901c90505b60088216156109045760806108ff826fffe5caca7e10e4e61c3624eaa0941cd0611395565b901c90505b601082161561092e576080610929826fffcb9843d60f6159c9db58835c926644611395565b901c90505b6020821615610958576080610953826fff973b41fa98c081472e6896dfb254c0611395565b901c90505b604082161561098257608061097d826fff2ea16466c96a3843ec78b326b52861611395565b901c90505b60808216156109ac5760806109a7826ffe5dee046a99a2a811c461f1969c3053611395565b901c90505b6101008216156109d75760806109d2826ffcbe86c7900a88aedcffc83b479aa3a4611395565b901c90505b610200821615610a025760806109fd826ff987a7253ac413176f2b074cf7815e54611395565b901c90505b610400821615610a2d576080610a28826ff3392b0822b70005940c7a398e4b70f3611395565b901c90505b610800821615610a58576080610a53826fe7159475a2c29b7443b29c7fa6e889d9611395565b901c90505b611000821615610a83576080610a7e826fd097f3bdfd2022b8845ad8f792aa5825611395565b901c90505b612000821615610aae576080610aa9826fa9f746462d870fdf8a65dc1f90e061e5611395565b901c90505b614000821615610ad9576080610ad4826f70d869a156d2a1b890bb3df62baf32f7611395565b901c90505b618000821615610b04576080610aff826f31be135f97d08fd981231505542fcfa6611395565b901c90505b62010000821615610b30576080610b2b826f09aa508b5b7a84e1c677de54f3e99bc9611395565b901c90505b62020000821615610b5b576080610b56826e5d6af8dedb81196699c329225ee604611395565b901c90505b62040000821615610b85576080610b80826d2216e584f5fa1ea926041bedfe98611395565b901c90505b62080000821615610bad576080610ba8826b048a170391f7dc42444e8fa2611395565b901c90505b60008460020b1315610bc857610bc5816000196113ca565b90505b610bd7640100000000826113de565b15610be3576001610be6565b60005b610bf79060ff16602083901c611308565b949350505050565b6001600160a01b038316610c615760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161042b565b6001600160a01b038216610cc25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161042b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610d885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161042b565b6001600160a01b038216610dea5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161042b565b6001600160a01b03831660009081526020819052604090205481811015610e625760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161042b565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610e99908490611308565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ee591815260200190565b60405180910390a350505050565b6001600160a01b038216610f495760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161042b565b8060026000828254610f5b9190611308565b90915550506001600160a01b03821660009081526020819052604081208054839290610f88908490611308565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0382166110325760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161042b565b6001600160a01b038216600090815260208190526040902054818110156110a65760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161042b565b6001600160a01b03831660009081526020819052604081208383039055600280548492906110d59084906113f2565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610d17565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208083528351808285015260005b8181101561119f57858101830151858201604001528201611183565b818111156111b1576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146111de57600080fd5b919050565b600080604083850312156111f657600080fd5b6111ff836111c7565b946020939093013593505050565b60008060006060848603121561122257600080fd5b61122b846111c7565b9250611239602085016111c7565b9150604084013590509250925092565b60006020828403121561125b57600080fd5b5035919050565b60006020828403121561127457600080fd5b61127d826111c7565b9392505050565b6000806040838503121561129757600080fd5b6112a0836111c7565b91506112ae602084016111c7565b90509250929050565b600181811c908216806112cb57607f821691505b602082108114156112ec57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561131b5761131b6112f2565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000600160ff1b82141561136b5761136b6112f2565b5060000390565b60008160020b627fffff1981141561138c5761138c6112f2565b60000392915050565b60008160001904831182151516156113af576113af6112f2565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826113d9576113d96113b4565b500490565b6000826113ed576113ed6113b4565b500690565b600082821015611404576114046112f2565b50039056fea2646970667358221220b3ee33f627be47d8878876515575f7559691b173ac7cfd61ca0590a849908c4f64736f6c634300080b0033