Contract: TransparentUpgradeableProxy
Malicious: no
Decompiled opcodes:
PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x0aaa CODESIZE SUB DUP1 PUSH2 0x0aaa DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x0026 JUMPI PUSH1 0x00 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP6 ADD DUP1 MLOAD SWAP2 MLOAD SWAP4 SWAP6 SWAP3 SWAP5 DUP4 ADD SWAP3 SWAP2 DUP5 PUSH5 0x0100000000 DUP3 GT ISZERO PUSH2 0x0051 JUMPI PUSH1 0x00 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH2 0x0066 JUMPI PUSH1 0x00 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH5 0x0100000000 DUP2 GT DUP3 DUP3 ADD DUP9 LT OR ISZERO PUSH2 0x0080 JUMPI PUSH1 0x00 DUP1 REVERT JUMPDEST DUP3 MSTORE POP DUP2 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x00 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x00ad JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x0095 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1f AND DUP1 ISZERO PUSH2 0x00da JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x01 DUP4 PUSH1 0x20 SUB PUSH2 0x0100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP PUSH1 0x40 MSTORE POP DUP5 SWAP2 POP DUP3 SWAP1 POP PUSH2 0x00ee DUP3 PUSH2 0x01bf JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x01a6 JUMPI PUSH1 0x00 DUP3 PUSH1 0x01 PUSH1 0x01 PUSH1 0xa0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x0131 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1f NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x0112 JUMP JUMPDEST PUSH1 0x01 DUP4 PUSH1 0x20 SUB PUSH2 0x0100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x00 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x00 DUP2 EQ PUSH2 0x0191 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1f NOT PUSH1 0x3f RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x00 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x0196 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x01a4 JUMPI PUSH1 0x00 DUP1 REVERT JUMPDEST POP JUMPDEST POP PUSH2 0x01ae SWAP1 POP JUMP JUMPDEST PUSH2 0x01b7 DUP3 PUSH2 0x0231 JUMP JUMPDEST POP POP POP PUSH2 0x0291 JUMP JUMPDEST PUSH2 0x01d2 DUP2 PUSH2 0x0255 PUSH1 0x20 SHL PUSH2 0x04bb OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x020d JUMPI PUSH1 0x40 MLOAD PUSH3 0x461bcd PUSH1 0xe5 SHL DUP2 MSTORE PUSH1 0x04 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x36 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x0a74 PUSH1 0x36 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc SSTORE JUMP JUMPDEST PUSH32 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103 SSTORE JUMP JUMPDEST PUSH1 0x00 DUP2 EXTCODEHASH PUSH32 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 DUP2 DUP2 EQ DUP1 ISZERO SWAP1 PUSH2 0x0289 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x07d4 DUP1 PUSH2 0x02a0 PUSH1 0x00 CODECOPY PUSH1 0x00 RETURN UNKNOWN_0xfe PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x04 CALLDATASIZE LT PUSH2 0x005e JUMPI PUSH1 0x00 CALLDATALOAD PUSH1 0xe0 SHR DUP1 PUSH4 0x5c60da1b GT PUSH2 0x0043 JUMPI DUP1 PUSH4 0x5c60da1b EQ PUSH2 0x0142 JUMPI DUP1 PUSH4 0x8f283970 EQ PUSH2 0x0180 JUMPI DUP1 PUSH4 0xf851a440 EQ PUSH2 0x01c0 JUMPI PUSH2 0x006d JUMP JUMPDEST DUP1 PUSH4 0x3659cfe6 EQ PUSH2 0x0075 JUMPI DUP1 PUSH4 0x4f1ef286 EQ PUSH2 0x00b5 JUMPI PUSH2 0x006d JUMP JUMPDEST CALLDATASIZE PUSH2 0x006d JUMPI PUSH2 0x006b PUSH2 0x01d5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x006b PUSH2 0x01d5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x0081 JUMPI PUSH1 0x00 DUP1 REVERT JUMPDEST POP PUSH2 0x006b PUSH1 0x04 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x0098 JUMPI PUSH1 0x00 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xffffffffffffffffffffffffffffffffffffffff AND PUSH2 0x01ef JUMP JUMPDEST PUSH2 0x006b PUSH1 0x04 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x00cb JUMPI PUSH1 0x00 DUP1 REVERT JUMPDEST PUSH20 0xffffffffffffffffffffffffffffffffffffffff DUP3 CALLDATALOAD AND SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x40 DUP2 ADD PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH5 0x0100000000 DUP2 GT ISZERO PUSH2 0x0103 JUMPI PUSH1 0x00 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x0115 JUMPI PUSH1 0x00 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x01 DUP4 MUL DUP5 ADD GT PUSH5 0x0100000000 DUP4 GT OR ISZERO PUSH2 0x0137 JUMPI PUSH1 0x00 DUP1 REVERT JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x0243 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x014e JUMPI PUSH1 0x00 DUP1 REVERT JUMPDEST POP PUSH2 0x0157 PUSH2 0x0317 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xffffffffffffffffffffffffffffffffffffffff SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x018c JUMPI PUSH1 0x00 DUP1 REVERT JUMPDEST POP PUSH2 0x006b PUSH1 0x04 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x01a3 JUMPI PUSH1 0x00 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xffffffffffffffffffffffffffffffffffffffff AND PUSH2 0x036e JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x01cc JUMPI PUSH1 0x00 DUP1 REVERT JUMPDEST POP PUSH2 0x0157 PUSH2 0x0476 JUMP JUMPDEST PUSH2 0x01dd PUSH2 0x04f7 JUMP JUMPDEST PUSH2 0x01ed PUSH2 0x01e8 PUSH2 0x058b JUMP JUMPDEST PUSH2 0x05b0 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x01f7 PUSH2 0x05d4 JUMP JUMPDEST PUSH20 0xffffffffffffffffffffffffffffffffffffffff AND CALLER PUSH20 0xffffffffffffffffffffffffffffffffffffffff AND EQ ISZERO PUSH2 0x0238 JUMPI PUSH2 0x0233 DUP2 PUSH2 0x05f9 JUMP JUMPDEST PUSH2 0x0240 JUMP JUMPDEST PUSH2 0x0240 PUSH2 0x01d5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x024b PUSH2 0x05d4 JUMP JUMPDEST PUSH20 0xffffffffffffffffffffffffffffffffffffffff AND CALLER PUSH20 0xffffffffffffffffffffffffffffffffffffffff AND EQ ISZERO PUSH2 0x030a JUMPI PUSH2 0x0287 DUP4 PUSH2 0x05f9 JUMP JUMPDEST PUSH1 0x00 DUP4 PUSH20 0xffffffffffffffffffffffffffffffffffffffff AND DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x40 MLOAD SWAP3 ADD SWAP5 POP PUSH1 0x00 SWAP4 POP SWAP1 SWAP2 POP POP DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x00 DUP2 EQ PUSH2 0x02f1 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1f NOT PUSH1 0x3f RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x00 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x02f6 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x0304 JUMPI PUSH1 0x00 DUP1 REVERT JUMPDEST POP PUSH2 0x0312 JUMP JUMPDEST PUSH2 0x0312 PUSH2 0x01d5 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x00 PUSH2 0x0321 PUSH2 0x05d4 JUMP JUMPDEST PUSH20 0xffffffffffffffffffffffffffffffffffffffff AND CALLER PUSH20 0xffffffffffffffffffffffffffffffffffffffff AND EQ ISZERO PUSH2 0x0363 JUMPI PUSH2 0x035c PUSH2 0x058b JUMP JUMPDEST SWAP1 POP PUSH2 0x036b JUMP JUMPDEST PUSH2 0x036b PUSH2 0x01d5 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x0376 PUSH2 0x05d4 JUMP JUMPDEST PUSH20 0xffffffffffffffffffffffffffffffffffffffff AND CALLER PUSH20 0xffffffffffffffffffffffffffffffffffffffff AND EQ ISZERO PUSH2 0x0238 JUMPI PUSH20 0xffffffffffffffffffffffffffffffffffffffff DUP2 AND PUSH2 0x0415 JUMPI PUSH1 0x40 MLOAD PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x04 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x3a DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x06ed PUSH1 0x3a SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f PUSH2 0x043e PUSH2 0x05d4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xffffffffffffffffffffffffffffffffffffffff SWAP3 DUP4 AND DUP2 MSTORE SWAP2 DUP5 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG1 PUSH2 0x0233 DUP2 PUSH2 0x0646 JUMP JUMPDEST PUSH1 0x00 PUSH2 0x0480 PUSH2 0x05d4 JUMP JUMPDEST PUSH20 0xffffffffffffffffffffffffffffffffffffffff AND CALLER PUSH20 0xffffffffffffffffffffffffffffffffffffffff AND EQ ISZERO PUSH2 0x0363 JUMPI PUSH2 0x035c PUSH2 0x05d4 JUMP JUMPDEST PUSH1 0x00 DUP2 EXTCODEHASH PUSH32 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 DUP2 DUP2 EQ DUP1 ISZERO SWAP1 PUSH2 0x04ef JUMPI POP DUP2 ISZERO ISZERO JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x04ff PUSH2 0x05d4 JUMP JUMPDEST PUSH20 0xffffffffffffffffffffffffffffffffffffffff AND CALLER PUSH20 0xffffffffffffffffffffffffffffffffffffffff AND EQ ISZERO PUSH2 0x0583 JUMPI PUSH1 0x40 MLOAD PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x04 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x42 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x075d PUSH1 0x42 SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x01ed PUSH2 0x01ed JUMP JUMPDEST PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc SLOAD SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x00 DUP1 CALLDATACOPY PUSH1 0x00 DUP1 CALLDATASIZE PUSH1 0x00 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x00 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x05cf JUMPI RETURNDATASIZE PUSH1 0x00 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x00 REVERT JUMPDEST PUSH32 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x0602 DUP2 PUSH2 0x066a JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xffffffffffffffffffffffffffffffffffffffff DUP3 AND SWAP1 PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b SWAP1 PUSH1 0x00 SWAP1 LOG2 POP JUMP JUMPDEST PUSH32 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103 SSTORE JUMP JUMPDEST PUSH2 0x0673 DUP2 PUSH2 0x04bb JUMP JUMPDEST PUSH2 0x06c8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x04 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x36 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x0727 PUSH1 0x36 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc SSTORE JUMP UNKNOWN_0xfe SLOAD PUSH19 0x616e73706172656e745570677261646561626c PUSH6 0x50726f78793a SHA3 PUSH15 0x65772061646d696e20697320746865 SHA3 PUSH27 0x65726f20616464726573735570677261646561626c6550726f7879 GASPRICE SHA3 PUSH15 0x657720696d706c656d656e74617469 PUSH16 0x6e206973206e6f74206120636f6e7472 PUSH2 0x6374 SLOAD PUSH19 0x616e73706172656e745570677261646561626c PUSH6 0x50726f78793a SHA3 PUSH2 0x646d PUSH10 0x6e2063616e6e6f742066 PUSH2 0x6c6c PUSH3 0x61636b SHA3 PUSH21 0x6f2070726f787920746172676574a2646970667358 UNKNOWN_0x22 SLT SHA3 UNOFFICIAL_DUP COINBASE UNKNOWN_0xef PUSH19 0xde179b8b56cef31601d40ff2875391088197e7 EXTCODECOPY UNKNOWN_0xac CODECOPY UNKNOWN_0xeb LOG1 UNKNOWN_0xdd UNKNOWN_0xcd UNKNOWN_0xf UNKNOWN_0xdd PUSH5 0x736f6c6343 STOP SMOD MOD STOP CALLER SSTORE PUSH17 0x677261646561626c6550726f78793a206e PUSH6 0x7720696d706c PUSH6 0x6d656e746174 PUSH10 0x6f6e206973206e6f7420 PUSH2 0x2063 PUSH16 0x6e747261637400000000000000000000 STOP STOP UNKNOWN_0xf9 UNKNOWN_0xc7 DUP7 UNKNOWN_0xe0 UNKNOWN_0xe3 UNKNOWN_0xcb UNKNOWN_0x4f LOG3 ADDRESS REVERT PUSH14 0x2a4b110d18a6b69c080000000000 STOP STOP STOP STOP STOP STOP STOP UNKNOWN_0xd9 UNKNOWN_0xa5 UNKNOWN_0xdf UNKNOWN_0x28 PUSH24 0xa42460e9055c4134946668dfcf51f8000000000000000000 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP PUSH1 0x00 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP ADD UNKNOWN_0x24 UNKNOWN_0xdb UNKNOWN_0xe UNKNOWN_0xd6 LOG0 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG0 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP UNKNOWN_0xe0 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP EQ SWAP5 UNKNOWN_0xca UNKNOWN_0x1f GT UNKNOWN_0xd4 DUP8 UNKNOWN_0xc2 UNKNOWN_0xbb UNKNOWN_0xe4 SLOAD RETURNDATACOPY SWAP1 ADDMOD EXP UNKNOWN_0xeb LOG4 UNKNOWN_0xba EXTCODECOPY UNKNOWN_0x2b STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP UNKNOWN_0x4e PUSH18 0x3d74957c167f2ddbdca46dadd51946c80fe9 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP UNKNOWN_0xde UNKNOWN_0xd8 UNKNOWN_0x21 PUSH30 0xe022706a191ee7ee0dc9df1185fb5da30000000000000000000000000000 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP EXP PUSH23 0x6144504920506f6f6c0000000000000000000000000000 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP SDIV PUSH23 0x6144504900000000000000000000000000000000000000 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP