Skip to content

Instantly share code, notes, and snippets.

@hav-noms
Created December 5, 2018 03:25
Show Gist options
  • Save hav-noms/87351f2898123d93fa6a32b2f0931eae to your computer and use it in GitHub Desktop.
Save hav-noms/87351f2898123d93fa6a32b2f0931eae to your computer and use it in GitHub Desktop.
0x6080604052612a306007553480156200001757600080fd5b50604051620026f6380380620026f683398101604090815281516020830151918301516060840151919390810191018380600160a060020a0381161515620000c057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b60008054600160a060020a031916600160a060020a038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600160a060020a0381161515620001b757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4f776e6572206d757374206e6f7420626520746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60038054600160a060020a038316610100810261010060a860020a03199092169190911790915560408051918252517fd5da63a0b864b315bc04128dedbc93888c8529ee6cf47ce664dc204339228c539181900360200190a1508051825114620002a857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f43757272656e6379206b6579206c656e67746820616e642072617465206c656e60448201527f677468206d757374206d617463682e0000000000000000000000000000000000606482015290519081900360840190fd5b60068054600160a060020a031916600160a060020a038516179055604080517f907af6c000000000000000000000000000000000000000000000000000000000815290517384D626B2BB4D0F064067e4BF80FCe7055d8F3E7B9163907af6c0916004808301926020929190829003018186803b1580156200032857600080fd5b505af41580156200033d573d6000803e3d6000fd5b505050506040513d60208110156200035457600080fd5b50517f735553440000000000000000000000000000000000000000000000000000000060008190527f9fb26aab670129fe77edeb65291121f3b0b41e28b5cdcb1e5461de51bb21e3c89190915560056020818152427f74c62d09fbc50aefae0794a9a068f786a692826fbdfe63828ec23a875865823f556040805160a0810182529384527f7341554400000000000000000000000000000000000000000000000000000000918401919091527f7343484600000000000000000000000000000000000000000000000000000000908301527f734555520000000000000000000000000000000000000000000000000000000060608301527f734742500000000000000000000000000000000000000000000000000000000060808301526200047f9160089162000c08565b5062000496828242640100000000620004a1810204565b505050505062000cec565b600080835185511415156200053d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f43757272656e6379206b6579206172726179206c656e677468206d757374206d60448201527f61746368207261746573206172726179206c656e6774682e0000000000000000606482015290519081900360840190fd5b42610258018310620005b057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f54696d6520697320746f6f2066617220696e746f207468652066757475726500604482015290519081900360640190fd5b5060005b84518160ff1610156200086757838160ff16815181101515620005d357fe5b6020908102909101015115156200067157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f5a65726f206973206e6f7420612076616c696420726174652c20706c6561736560448201527f2063616c6c2064656c6574655261746520696e73746561642e00000000000000606482015290519081900360840190fd5b848160ff168151811015156200068357fe5b90602001906020020151600160e060020a0319167f7355534400000000000000000000000000000000000000000000000000000000141515156200074e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f52617465206f6620735553442063616e6e6f7420626520757064617465642c2060448201527f6974277320616c7761797320554e49542e000000000000000000000000000000606482015290519081900360840190fd5b60056000868360ff168151811015156200076457fe5b60209081029091018101517fffffffff00000000000000000000000000000000000000000000000000000000168252810191909152604001600020548311156200085e57838160ff16815181101515620007ba57fe5b9060200190602002015160046000878460ff16815181101515620007da57fe5b90602001906020020151600160e060020a031916600160e060020a0319168152602001908152602001600020819055508260056000878460ff168151811015156200082157fe5b60209081029091018101517fffffffff00000000000000000000000000000000000000000000000000000000168252810191909152604001600020555b600101620005b4565b600080516020620026b68339815191528585604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015620008bf578181015183820152602001620008a5565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101562000900578181015183820152602001620008e6565b5050505090500194505050505060405180910390a1620009298364010000000062000934810204565b506001949350505050565b6000806060805b6005831015620009df57620009d18460046000600887600581106200095c57fe5b600891828204019190066004029054906101000a90047c010000000000000000000000000000000000000000000000000000000002600160e060020a031916600160e060020a03191681526020019081526020016000205462000bee6401000000000262001692179091906401000000009004565b93506001909201916200093b565b7f5844520000000000000000000000000000000000000000000000000000000000600052600080516020620026d683398151915284905560056020527fc6095f8ba0c30294f3d36501e92c5966cb30d5606d2b235ecebf5abd9fffed92859055604080516001808252818301909252908160200160208202803883390190505091507f584452000000000000000000000000000000000000000000000000000000000082600081518110151562000a9257fe5b7fffffffff000000000000000000000000000000000000000000000000000000009290921660209283029190910182015260408051600180825281830190925291828101908038833950507f584452000000000000000000000000000000000000000000000000000000000060009081526004602052600080516020620026d683398151915254835193945092849250811062000b2b57fe5b9060200190602002018181525050600080516020620026b68339815191528282604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101562000b9157818101518382015260200162000b77565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101562000bd257818101518382015260200162000bb8565b5050505090500194505050505060405180910390a15050505050565b60008282018381101562000c0157600080fd5b9392505050565b60018301918390821562000cb35791602002820160005b8382111562000c7f57835183826101000a81548163ffffffff02191690837c010000000000000000000000000000000000000000000000000000000090040217905550926020019260040160208160030104928301926001030262000c1f565b801562000cb15782816101000a81549063ffffffff021916905560040160208160030104928301926001030262000c7f565b505b5062000cc192915062000cc5565b5090565b62000ce991905b8082111562000cc157805463ffffffff1916815560010162000ccc565b90565b6119ba8062000cfc6000396000f3006080604052600436106101455763ffffffff60e060020a6000350416630ee4951b811461014a5780631627540c1461017157806317c70de4146101945780631d2fed16146101a957806320714f88146101ec5780633278c9601461020d5780633608069414610222578063370d62ad1461024457806353a47bb7146102645780635dc2944a1461029557806379ba50971461033a57806379cb657a1461034f5780637adbf973146103675780637dc0d1d01461038857806389f8ab941461039d5780638da5cb5b146103f25780639cb8a26a14610407578063a461fc821461041c578063aa687daf14610431578063af1ff97214610466578063b8225dec14610488578063bd32aa441461049d578063c0e59e4d146104b2578063c58aaae6146104d4578063de5eb832146104e9578063e1686e721461050b578063ea3d41091461052d575b600080fd5b34801561015657600080fd5b5061015f61054f565b60408051918252519081900360200190f35b34801561017d57600080fd5b50610192600160a060020a0360043516610555565b005b3480156101a057600080fd5b5061015f61061a565b3480156101b557600080fd5b506101d86024600480358281019290820135918135918201910135604435610620565b604080519115158252519081900360200190f35b3480156101f857600080fd5b50610192600160a060020a0360043516610718565b34801561021957600080fd5b5061019261086b565b34801561022e57600080fd5b50610192600160e060020a031960043516610909565b34801561025057600080fd5b506101d86004803560248101910135610a5e565b34801561027057600080fd5b50610279610b22565b60408051600160a060020a039092168252519081900360200190f35b3480156102a157600080fd5b50604080516020600480358082013583810280860185019096528085526102ea95369593946024949385019291829185019084908082843750949750610b319650505050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561032657818101518382015260200161030e565b505050509050019250505060405180910390f35b34801561034657600080fd5b50610192610bd1565b34801561035b57600080fd5b50610192600435610cd9565b34801561037357600080fd5b50610192600160a060020a0360043516610d78565b34801561039457600080fd5b50610279610e43565b3480156103a957600080fd5b50604080516020600480358082013583810280860185019096528085526102ea95369593946024949385019291829185019084908082843750949750610e529650505050505050565b3480156103fe57600080fd5b50610279610ef2565b34801561041357600080fd5b50610192610f01565b34801561042857600080fd5b5061015f6110c6565b34801561043d57600080fd5b506104496004356110cd565b60408051600160e060020a03199092168252519081900360200190f35b34801561047257600080fd5b5061015f600160e060020a0319600435166110fa565b34801561049457600080fd5b506101d861111a565b3480156104a957600080fd5b50610192611123565b3480156104be57600080fd5b5061015f600160e060020a0319600435166111d0565b3480156104e057600080fd5b506102796111ec565b3480156104f557600080fd5b5061015f600160e060020a031960043516611200565b34801561051757600080fd5b5061015f600160e060020a031960043516611212565b34801561053957600080fd5b506101d8600160e060020a031960043516611224565b60075481565b600054600160a060020a031633146105b9576040805160e560020a62461bcd02815260206004820152602f602482015260008051602061194f833981519152604482015260008051602061196f833981519152606482015290519081900360840190fd5b60018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60025481565b600654600090600160a060020a031633146106ab576040805160e560020a62461bcd02815260206004820152602760248201527f4f6e6c7920746865206f7261636c652063616e20706572666f726d207468697360448201527f20616374696f6e00000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61070e8686808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020808c0282810182019093528b82529095508b94508a9350839250850190849080828437508994506112969350505050565b9695505050505050565b600054600160a060020a0316331461077c576040805160e560020a62461bcd02815260206004820152602f602482015260008051602061194f833981519152604482015260008051602061196f833981519152606482015290519081900360840190fd5b600160a060020a0381161515610802576040805160e560020a62461bcd02815260206004820152602860248201527f42656e6566696369617279206d757374206e6f7420626520746865207a65726f60448201527f2061646472657373000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60038054600160a060020a038316610100810274ffffffffffffffffffffffffffffffffffffffff00199092169190911790915560408051918252517fd5da63a0b864b315bc04128dedbc93888c8529ee6cf47ce664dc204339228c539181900360200190a150565b600054600160a060020a031633146108cf576040805160e560020a62461bcd02815260206004820152602f602482015260008051602061194f833981519152604482015260008051602061196f833981519152606482015290519081900360840190fd5b600060028190556003805460ff191690556040517f6adcc7125002935e0aa31697538ebbd65cfddf20431eb6ecdcfc3e238bfd082c9190a1565b600654600160a060020a03163314610991576040805160e560020a62461bcd02815260206004820152602760248201527f4f6e6c7920746865206f7261636c652063616e20706572666f726d207468697360448201527f20616374696f6e00000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160e060020a0319811660009081526004602052604081205411610a00576040805160e560020a62461bcd02815260206004820152600c60248201527f52617465206973207a65726f0000000000000000000000000000000000000000604482015290519081900360640190fd5b600160e060020a0319811660008181526004602090815260408083208390556005825280832092909255815192835290517f2cefb058ca1556b021b67f710e3df89c564650f01fef8cd944cbb14d7358680b9281900390910190a150565b6000805b82811015610b1657838382818110610a7657fe5b90506020020135600160e060020a031916600160e060020a0319167f735553440000000000000000000000000000000000000000000000000000000014158015610b00575042610afe600754600560008888878181101515610ad457fe5b60209081029290920135600160e060020a0319168352508101919091526040016000205490611692565b105b15610b0e5760019150610b1b565b600101610a62565b600091505b5092915050565b600154600160a060020a031681565b60608060008351604051908082528060200260200182016040528015610b61578160200160208202803883390190505b509150600090505b83518160ff161015610b1b5760046000858360ff16815181101515610b8a57fe5b6020908102909101810151600160e060020a0319168252810191909152604001600020548251839060ff8416908110610bbf57fe5b60209081029091010152600101610b69565b600154600160a060020a03163314610c59576040805160e560020a62461bcd02815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527f2063616e20616363657074206f776e6572736869700000000000000000000000606482015290519081900360840190fd5b60005460015460408051600160a060020a03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a03163314610d3d576040805160e560020a62461bcd02815260206004820152602f602482015260008051602061194f833981519152604482015260008051602061196f833981519152606482015290519081900360840190fd5b60078190556040805182815290517f16529d8c407b08938da67de7fa4319199baffce4f5d1971f812cc770b0237e669181900360200190a150565b600054600160a060020a03163314610ddc576040805160e560020a62461bcd02815260206004820152602f602482015260008051602061194f833981519152604482015260008051602061196f833981519152606482015290519081900360840190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051929091168252517f3df77beb5db05fcdd70a30fc8adf3f83f9501b68579455adbd100b8180940394916020908290030190a150565b600654600160a060020a031681565b60608060008351604051908082528060200260200182016040528015610e82578160200160208202803883390190505b509150600090505b83518160ff161015610b1b5760056000858360ff16815181101515610eab57fe5b6020908102909101810151600160e060020a0319168252810191909152604001600020548251839060ff8416908110610ee057fe5b60209081029091010152600101610e8a565b600054600160a060020a031681565b60008054600160a060020a03163314610f66576040805160e560020a62461bcd02815260206004820152602f602482015260008051602061194f833981519152604482015260008051602061196f833981519152606482015290519081900360840190fd5b60035460ff161515610fe8576040805160e560020a62461bcd02815260206004820152602860248201527f53656c6620646573747275637420686173206e6f7420796574206265656e206960448201527f6e69746961746564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b426224ea006002540110151561106e576040805160e560020a62461bcd02815260206004820152602760248201527f53656c662064657374727563742064656c617920686173206e6f74207965742060448201527f656c617073656400000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5060035460408051600160a060020a0361010090930492909216808352905190917f8a09e1677ced846cb537dc2b172043bd05a1a81ad7e0033a7ef8ba762df990b7919081900360200190a180600160a060020a0316ff5b6224ea0081565b600881600581106110da57fe5b60089182820401919006600402915054906101000a900460e060020a0281565b600160e060020a031981166000908152600460205260409020545b919050565b60035460ff1681565b600054600160a060020a03163314611187576040805160e560020a62461bcd02815260206004820152602f602482015260008051602061194f833981519152604482015260008051602061196f833981519152606482015290519081900360840190fd5b426002556003805460ff19166001179055604080516224ea00815290517fcbd94ca75b8dc45c9d80c77e851670e78843c0d75180cb81db3e2158228fa9a69181900360200190a1565b600160e060020a03191660009081526005602052604090205490565b6003546101009004600160a060020a031681565b60046020526000908152604090205481565b60056020526000908152604090205481565b60007f7355534400000000000000000000000000000000000000000000000000000000600160e060020a03198316141561126057506000611115565b600754600160e060020a03198316600090815260056020526040902054429161128f919063ffffffff61169216565b1092915050565b6000808351855114151561131a576040805160e560020a62461bcd02815260206004820152603860248201527f43757272656e6379206b6579206172726179206c656e677468206d757374206d60448201527f61746368207261746573206172726179206c656e6774682e0000000000000000606482015290519081900360840190fd5b42610258018310611375576040805160e560020a62461bcd02815260206004820152601f60248201527f54696d6520697320746f6f2066617220696e746f207468652066757475726500604482015290519081900360640190fd5b5060005b84518160ff1610156115c357838160ff1681518110151561139657fe5b60209081029091010151151561141c576040805160e560020a62461bcd02815260206004820152603960248201527f5a65726f206973206e6f7420612076616c696420726174652c20706c6561736560448201527f2063616c6c2064656c6574655261746520696e73746561642e00000000000000606482015290519081900360840190fd5b848160ff1681518110151561142d57fe5b90602001906020020151600160e060020a0319167f7355534400000000000000000000000000000000000000000000000000000000141515156114e0576040805160e560020a62461bcd02815260206004820152603160248201527f52617465206f6620735553442063616e6e6f7420626520757064617465642c2060448201527f6974277320616c7761797320554e49542e000000000000000000000000000000606482015290519081900360840190fd5b60056000868360ff168151811015156114f557fe5b6020908102909101810151600160e060020a0319168252810191909152604001600020548311156115bb57838160ff1681518110151561153157fe5b9060200190602002015160046000878460ff1681518110151561155057fe5b90602001906020020151600160e060020a031916600160e060020a0319168152602001908152602001600020819055508260056000878460ff1681518110151561159657fe5b6020908102909101810151600160e060020a0319168252810191909152604001600020555b600101611379565b7f7a72efae5f6b256f1ca71728b01f9dd7004ff3770dcaef4c44872b94d9f9e91b8585604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561162a578181015183820152602001611612565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611669578181015183820152602001611651565b5050505090500194505050505060405180910390a1611687836116ab565b506001949350505050565b6000828201838110156116a457600080fd5b9392505050565b6000806060805b600583101561172a5761171d8460046000600887600581106116d057fe5b600891828204019190066004029054906101000a900460e060020a02600160e060020a031916600160e060020a03191681526020019081526020016000205461169290919063ffffffff16565b93506001909201916116b2565b7f58445200000000000000000000000000000000000000000000000000000000006000527fff1c33bb980e6507c2f1abbbb539f436519cfa198453007a4295f347e328ef6b84905560056020527fc6095f8ba0c30294f3d36501e92c5966cb30d5606d2b235ecebf5abd9fffed92859055604080516001808252818301909252908160200160208202803883390190505091507f58445200000000000000000000000000000000000000000000000000000000008260008151811015156117ed57fe5b600160e060020a03199290921660209283029190910182015260408051600180825281830190925291828101908038833950507f5844520000000000000000000000000000000000000000000000000000000000600090815260046020527fff1c33bb980e6507c2f1abbbb539f436519cfa198453007a4295f347e328ef6b54835193945092849250811061187e57fe5b90602001906020020181815250507f7a72efae5f6b256f1ca71728b01f9dd7004ff3770dcaef4c44872b94d9f9e91b8282604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156118f35781810151838201526020016118db565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561193257818101518382015260200161191a565b5050505090500194505050505060405180910390a1505050505056004f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e0000000000000000000000000000000000
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment