opang

Posted on Sep 28, 2022Read on Mirror.xyz

FTX交易所羊毛攻击与损失分析

一、背景

各大交易所都会不定期地举办各种活动,也许是为了拉新、或者是提高用户的活跃度、和对交易所的关注度,也许是为了上新币之类的。但是不管初衷是什么,交易所肯定是不希望有用户控制一堆账号并假装自己是符合条件符合交易所的初衷的用户,然后开始批量薅羊毛。现在我们就来分析一下FTX交易所最近的一个活动的羊毛情况。 被分析活动介绍(大约66%的羊毛含量) 简单概括一下本文选取的作为反羊毛例子的这个活动:这是FTX近期推出的一个欧元稳定币的充值瓜分奖池的活动。

  1. 活动目标群体:FTX.COM和FTX Pro中已经通过2级身份验证的用户 二级身份验证需要姓名出生日期、地址、英文姓名、电话号码和短信认证、资金来源描述、护照或者其他政府发出的身份证明(正反面),其中也包括人脸识别。 从结果来说,KYC对于防羊毛,作用有限。

  2. 活动内容:在活动期间向FTX钱包净充值大于100EUROC,就会获得奖励

  3. 活动时间:7月29日14:00 UTC到8月12日14:00 UTC

  4. 活动奖励:每位用户的奖金=150,000 EUROC/符合条件的用户总数 由于充值超过100EUROC就算一个用户,所以羊毛党有意愿通过控制大量账户,提升最后分得的奖金比例

  5. 活动链接: https://help.ftx.com/hc/en-us/articles/8073943197076-Deposit-100-EUR-fiat-or-EUROC-to-share-a-pool-of-150-000-EUROC-

活动介绍

由下图EURO coin的入金地址去重前后的对比得,在活动期间有不少一个地址给多个地址入金的情况。下图中,蓝色线表示去重前的地址数量,绿色线表示去重后的地址数量。

去重前后的地址数量对比

二、链上同人挖掘方法

需要分析的数据:FTX交易所的EUROC币种入金,累计入金大于等于100EUROC的才会被考虑,向上溯源5跳以内的数据,排除掉正常用户,只算羊毛用户

分析判断标准:根据个人A地址给个人B地址入金EUROC就算一个2人团伙。如果A和B是一个同人团伙,B和C是一个同人团伙,则ABCD是一个同人团伙。羊毛同人团伙,也可以通俗理解成,活动期间有过直接或者间接EUROC转账关系的一群人。最终实现使用并查集的原理——所有活动期间相互进行过EUROC转账的地址都会被放在同一个组里,剔除掉非交易所的地址后就会得到最终对应FTX交易所用户的团伙。然后排除合约和交易所的热钱包地址。

使用的资金流追踪算法:深度优先算法和宽度优先的融合,可以理解成是简单版的网络流。按照时间线对用户的资金流进行一跳或者多跳的追踪。

2.1 基于一跳的分析

从链上信息的角度分析,活动期间,同人往不同账户充值以获得更多的奖励的情况,刚好对应从同一个地址充值EUROC到FTX不同账户的情况。

所以首先,根据链上信息分析FTX的归集行为,得到FTX最近的归集地址,然后根据归集的特性,反推出所有的用户地址,最后对这些用户地址在活动期间对EUROC的入金行为进行分析。下图就是一个可以被一跳分析出来的羊毛团伙,尾数是8b5c的地址直接向4个FTX交易所用户地址充值100EUROC,以获得瓜分奖池的效果。

Group 5 0x1b33b9d0322d84434cc217c76611902515db8b5c

2.2 基于多跳的分析

但是基于一跳,只能分析某个人直接用同一个地址往FTX多个用户打钱的情况,假如这个人聪明一点,为了躲避追踪他选择先给好几个不同的地址打钱,然后再让这些地址往FTX交易所打钱,我们就检测不出来了,这种情况,被称为羊毛的绕过。

比如下面这个图展示的团伙。这个尾数为afac的地址可以说是很聪明了,如果只做一跳的检测,他可以完美绕过。这个例子很好说明了多跳的作用和必要性。

Group 1 0x15392e0fc17d655720c3f6e3bb8d65d89119afac

但是这个算法是会导致一些小问题的,比如多跳如果追踪到交易所A的出金热钱包,会导致所有交易所A的用户都被检测成一个团伙,因为交易所的出金是通过一个叫做热钱包的大池子进行的。既然会有这个问题,那我们就直接顺水推舟,把这些羊毛党的来源分析一遍,所以接下来读者将会看到基于这个原理分析出来的,羊毛党的私人地址和交易所地址的分布情况。

但是,我们还是要做一些事情,防止这个错误分类的发现,所以我们如果识别到是交易所的热钱包地址(是的,我们可以识别出来是交易所热钱包地址,通过短时间内该地址给大于100个人转账以及一些其他的判断条件,我们还可以判断出来具体对应哪个交易所),那我们会停止溯源,并且不会因此把团伙归成一个。

而且,如果遇到智能合约地址,我们会根据链上信息简单分析具体是什么合约,也不会把这几个团伙放到同一团伙里。

三、团伙展示

团伙种类1

这些团伙毫不掩饰自己的行为,也许是对FTX的仁慈大方充满了信心。他直接在一跳的情况下,向多个FTX钱包充值大于等于100EUROC。如果FTX不进行任何防羊毛措施,他将会成为这场游戏的一个大赢家。

Group 2 0x1719f0381c17bfd7f80b16bd3e9d8929a400d5de

Group 4 0x88ce43b0c597db8d669dbd75613210abba416bc9

Group 5 0x1b33b9d0322d84434cc217c76611902515db8b5c

Group 6 0x5912cb37dbd803d0671c1b63bf1c5b08574362c1

Group 7 0x2e697b953ca2db42ee2d92c4d0ed3170d0c87e05

Group 8 0xbcdffecb673431f13069fc29bc2bbca52232eaf5

Group 9 0xf5683a32f8a795416081919ccabb200a9b5af137

Group 11 0x231887a438073623f58176ee91a086438209b98e

Group 12 0x7bf97c7a86508cdb54cccbd3e853042b14778ee9

Group 13 0x75bff95e3598bfd65d9150405eb201b52c0aaace

Group 14 0x9ee3f286e4b3ca837e4acb5294da10ff5219429a

Group 15 0x0e2ae905b17dc5f090270bbc8d1c4e3281a0f33c

Group 10 0x1b69c4a788ad8f940e624341ab45c731d01190de

团伙种类2

这类型的团伙有一部分资金是直接充值,然后又向另外几个个地址打钱,让他们也参与这个活动。

Group 3 0x1e03bf06e248ffa3ac32f6ac3c772817a174ad54

Group 16 0x18c12986c2586ceeba256b99ea443c519d868cf2

团伙种类3

这个团伙种类,我称其为最聪明的羊毛玩家,他们完美规避了一跳的探测,但是还是少了一点耐心,在第二跳的时候,资金流直接汇聚了。这个团伙规模是11个FTX用户钱包。

Group 1 0x15392e0fc17d655720c3f6e3bb8d65d89119afac

种类四

如下图,0x2551f92a90914a813798b56530ab82fa704482e0这个地址控制了366个羊毛用户,也就是说,他的收益是87980.7636 EUROC,占总奖池的58.65%。这个团伙绝大部分的直接充值金额都是101EUROC,12个FTX用户是直接充值,其他都是先把n个101EUROC拨款给一个中间地址,然后这个中间地址把钱充值到对应的多个FTX账户中。所有充值行为都发生于2022年8月9日。其资金来源全部汇总于地址0x2551f92a90914a813798b56530ab82fa704482e0。

Group 17 0x2551f92a90914a813798b56530ab82fa704482e0

四、FTX 损失分析——估计损失112260EUROC,羊毛含量66.35%

FTX的本意是希望更多的真实用户加入这个活动,一方面是希望可以有新用户的加入,另一方面也希望更多人接受和使用欧元稳定币。但是因为羊毛玩家的存在,导致大部分的奖金流入了非法获利的羊毛玩家手中。同时也对真实的用户的利益产生了非常大的损害,本该属于真实用户的奖金池,被恶魔分得了一大半。如果FTX有女巫识别能力,这次活动的羊毛党不会这么简单直接来攻击,因此推测FTX不会过滤他们。同时也从侧面说明了,防羊毛这个基础风控服务的重要性和必要性。

简单算一下,FTX的奖金池是150000 EUROC,一共有624个用户累计充值大于等于100参与了本次活动。最终分析出来,羊毛用户地址一共442个,剔除团伙规模在5以下的团伙,一共414个,也就是66.35%,正常用户只占33.65%。也就是说,99525EUROC都平白无故给了羊毛党,我已经想像到,FTX这次活动因为羊毛党损失了这么多资金后生无可恋的表情了。

现在再让我想象一下用户生无可恋的表情。如果按照624个用户发奖,每个用户得到的奖金数量是240.3846 EUROC。但是如果FTX认真对待这场羊毛的战争,剔除掉这些羊毛玩家,按照210位真实用户的情况去发奖,那么每位用户得到的奖金将会是714.2857EUROC。用户因此损失了473.9011EUROC。用户损失的金额大约是用户真实所得的2倍。

附言:如果有需要进行相关的检测或者防羊毛的服务,请不要犹豫,可以直接联系我们。衷心希望我们可以帮助到您。

五、附录

以下是所有羊毛用户的汇总

团伙1 0x15392e0fc17d655720c3f6e3bb8d65d89119afac:
    0x085b1a4da5fe1892edd3d43129471dc0b997e6d3
    0x9db2cb089d0285b4f977e39a03bf53c41fa45b0c
    0x053c7dccb49a44875038dc2967a88c7c1c8a508d
    0xe7d3a284a39cf4b7d505f57ca77cf3dd701fa45e
    0x42d761640d3cce83cee77bb5ace971a5d67168e9
    0x41983b029393392f5341126ba3e1308e6727a7ab
    0xea1954274fcff5b896ed96d8342ad3487a0a3b61
    0x344259bfad646c524efc42b68c5589a06d2843e5
    0xed95a246baad323c840c1d39aba4864deb8a56d7
    0xdf08a9a2b4a289cd17543518c7b1f5e6bbca570d
团伙2 0x1719f0381c17bfd7f80b16bd3e9d8929a400d5de:
    0x0f3497372c800c9bffc6857aff2f56e2c1a2c241
    0x1d0b2d159d419cb180a7f4ae1441b36dee1e4d8e
    0x1e053f113f7a3a510dcd3a7d3a4983c47ad46951
    0x37bb7b5c2f067ddaba180346b893782a2c29f1a9
    0x3b07003982b3903bc9ad0cd354380d33ce041dd9
    0x43718629109835da0a5c24e820dc0840962ee3a5
    0x6e4216d234e0a0709f65bc61a7f41db130a1c23d
    0x768027dc6e02494c05fbea255fd99bca2b6e5815
    0x798cbe5ef1e5ff23ee8bab2452d97e292d72efaf
    0x7ce8b7f56692a8430b687daa6a5ac2b669fb010e
    0x7fc3e1c8bb6e5679f2117653f4cc67a121325c09
    0x861835b4351dfe08fd15c19cee4e00566d5ed698
    0xc5411cad8db599c2f5c1d1d563776e98a856358a
    0xd8a060ed8eed31d863bcf04611b3f55b5de567d2
团伙3 0x1e03bf06e248ffa3ac32f6ac3c772817a174ad54:
    0x0940edc63d648f642710deca73d7bf1ebc3f9293
    0x0b2ee81b1f0a5ebeb9ef9722f4f97e03b2218384
    0x15b7d0f5b5f56037aeceefc74974996de54fa71a
    0x6438ab4061ae45f5feeabf8f1ba6be72ac5748ae
    0x98d7fb7f6f85385161cf4984abb93a14ebb7fd6b
    0xdf92a30b040bacf448398023d4ee696e789817ca
团伙4 0x88ce43b0c597db8d669dbd75613210abba416bc9:
    0x2c750783b15eac82b9521a3cdd432e8a9f598604
    0xa85d9d2b854cffd8c753ae15877b8ec05dd30fbc
    0xc42bf15cee3acfc724c93a4ecb2c547226ffcfda 
团伙5 0x1b33b9d0322d84434cc217c76611902515db8b5c:
    0x2918abd7d381eb06e525784bbfb48a32d50c1c90
    0x461e5f939ecb30e6ee3a342807b0cf985b3076e9
    0x84a4c58a10263303b765dee231dc4b73e240e144
    0xa0f04b90a0296bdbeb6a2450e0e9d54485f8995d
团伙6 0x5912cb37dbd803d0671c1b63bf1c5b08574362c1:
    0x4b32df8b2c429ee70d5ee6112cfbfe3b57432f7d
    0x95b86510560d32c18662778e346c03e27f33adb3
    0x97f382a64cbecd8552ffd363079ba04b61f8ed08
团伙7 0x2e697b953ca2db42ee2d92c4d0ed3170d0c87e05:
    0x4885259ad7d3a9b8e92bd00dc9083625be85c3f3
    0xb2e23d27a43649d295e887fc3ffe9c4ffc2442c1
    0x4b57c864afd63c5ada7878df1cf9d162fb9fcbfb
    0x51dcaec927e7e698713cf7cd8cc38c1c2fed3662
    0x9ed35cbdc142744b5c0d3c48578dad46134abc30
    0x724c5fe137d87cc8450c1ec96aa26b58aaa31982
    0xf57aa4ee96ff71ac6cf6bb37e453e3198c729c3b
    0xf6216e9658f471dca80b037267614e4654a884a2
团伙8 0xbcdffecb673431f13069fc29bc2bbca52232eaf5:
    0xa3914c554a9bff9d421ea44e9ff88dca475dd56e
    0xed529e8f4bc56acf8bb52689d8507b753c03831a
团伙9 0xf5683a32f8a795416081919ccabb200a9b5af137:
    0x8f3e3614c74f37c8a02097648c2425337edf2ecd
    0x997975db01dcf114977f07f7c7f6dc7725bed6b1
    0xa04dbec8e6f5344e396fbebae092834e179ca76d
    0xe2c1d6ed6a7011157639c8f85bb0d28a6e3046c0
团伙10 0x1b69c4a788ad8f940e624341ab45c731d01190de:
    0x7d80eba0f48bce681481555fc64446350c366864
    0xdefd9d443116c4e72dd0624a9e9c921c2658670a
团伙11 0x231887a438073623f58176ee91a086438209b98e:
    0x05debf984ad68c58349ee681143bae0d0715c4e7
    0x2927853b9d3e610a2ca7ee9c49e611dc378d9e75
    0xb0d14f628de0029b9fe03015c382be021ea707b7
    0xc575bc2ba28d7395a3e4f215329f07e8bcf66cd8
    0xc9e50c18808b9c77c8c805714d984e1d61b95879
团伙12 0x7bf97c7a86508cdb54cccbd3e853042b14778ee9:
    0x259914ab523330486bf939c94bfaf4842a83bd96
    0xeddb991be62ec7fa6c059328b76604557d2e688b
团伙13 0x75bff95e3598bfd65d9150405eb201b52c0aaace:
    0x95515829bd4b78d6782de5a15f989dbe27476479
    0xdfb87ae5636782b89d1c111dfb08d25a9ea5bfa2
团伙14 0x9ee3f286e4b3ca837e4acb5294da10ff5219429a:
    0x2475de89fcfebc90f14c1281d99fe94ec56a4c5e
    0x38bee14a4f5e150b508564f6cb3cf9b34946f414
    0x5c1a563ed5032885e3b03b8477a750de2ee1a532
    0x78899122cee6de6b2b034de788a0e8225a2a3062
    0xd6a66ccb8cfa04083fe3b8223612da362ea5be01
团伙15 0x0e2ae905b17dc5f090270bbc8d1c4e3281a0f33c:
    0x81aaa250aec718ab1e73abf3ff5cb958a592891c
    0xfa97bbc0cb1616ab80a64c46cec1e64e9967fc07
团伙16 0x18c12986c2586ceeba256b99ea443c519d868cf2:
    0xbc6053ee227578e161fadc0da5f5260164cdf2a5
    0x887efd597b20562cac3c2b14e9406b3f868b7b78
    0xc2df5ba2b235d5eeeb11adf1f19a0199830d897e
    0x1a7674b56897c1f606aaf297e527ef7f861f747b
团伙17 0x2551f92a90914a813798b56530ab82fa704482e0:
    0x00562fbcc6ff61411bcc9bcaef091658acb9ddcd
    0x023cc205596c18966e729301b9892b23bcd2a254
    0x0245586787b703f9cb8aa95eaca7d014c026598e
    0x0366722210bb0d889fca775f44ecce51592e841c
    0x060c431b695f763b00d75dd380070ef8624510f3
    0x063bea8ccc8310f40dc0d11426412a5c45a49405
    0x07aaf96bbd2e1ca4f40bf504375eab945579498b
    0x0848fbcd42b61fcac3cf95f4ab2a5d99fff9f4f2
    0x091757c41bfcc87dfe7698c4fd22920ed3ca8afe
    0x097c99f9b15b5f7ec85d19e3ded8a2579abff64d
    0x09f18ffb68009a0ef864e61f3a389773b7548432
    0x0aaa665392f3db13808bc41c28cb50c2dc71d6bb
    0x0bc70880dd639a1130aafcc8d5ea2bf3161c798d
    0x0bf7689495a8db3c40fa543ad51c0330733d0591
    0x0d3cba0802b8076ef6af79146f775a3cd180dc1b
    0x0dd6537f7ce32c5640c09de2c472897a897d7464
    0x0df74aa586e82d46ff38bd7fa07ea81b6976d297
    0x0e53a8ff81b9493d0b96d374a2aed6908516b7b9
    0x101cd382bcdda6205e3c15f367bcdf96b96d6961
    0x10a495212bf0ad3fd5b8562d66134f2048f70c3e
    0x119289c02a0f74aea9d6385f0b8c257ea00474d9
    0x130b401e3ec1de9653c26bc149cc9ed8ef576fe6
    0x139851db0b517f34a70d79cbfa45be2d6facbc3d
    0x13f1a43794670e707938c3c9244e728df4401e81
    0x1462ed5f1a51db3f06057551048bbfc03698bee3
    0x146e6ce655c4200806c4ef49965348de0d2b6196
    0x14f9f4519c73f28b26ee9b7dac8e8bf7137c67fb
    0x1577f3ffd0dee8c47c060251e950bbf2c379e1ea
    0x1663d16b0a7ac4d3c827e3babcbcdca1d40cb35b
    0x1672de5e44a6fa9e89e0dd9e49a80e6f36eef2d7
    0x16c35679c8b784477b71024ee8dbea9b7617b7e2
    0x171c580cbab9728a93a1791ad74825a02e445b6f
    0x175af6da943834a0b12c30d9bda1add3e48d5e16
    0x17f098724c03b63dc9afb99d250d0f036ed86837
    0x187cea953d483dce67b527cefce5f3febbb421d4
    0x19188a30d4d419c69b041e2eb9d68ab02a405e97
    0x193005b99e34a5bfe6181f4116adaed1ad638de2
    0x197aac657e86b62c143443e8fd4480e45a0a0dfb
    0x1a9beddd2b96d35bfce11291441177afa06275ff
    0x1ad9543a36bf8c3be45981630f3aae6957469d66
    0x1af99379b11ac48f66e7865f6c2c88a45d249cbe
    0x1b623293072f73d121dd7f4b32d7b6fc1cfb4bd7
    0x1bff6ff765eb31567ca20dfb62d16bce8c1a0b1c
    0x1c29a463636d54894ba20eda173c948d2ccedf2c
    0x1c48c52480551a663e40455b2da719d4367c201d
    0x1dce2d05123570fe572e62aada5460831036f63f
    0x1e0b54af5ad91c7d238910a92a4ab2ffb9068b53
    0x1fa32cbf996d621dd93d702a704247d079072b0c
    0x2139abd925524a4b953a5f429530802e6a3f0125
    0x21dee4c48f656f842de576247631a1b86c97c10f
    0x221c51eaef4564a655adc12b7cfe6ff04383d856
    0x2268a65e2632963667654708833ca4d37c63ec04
    0x2279340df3f007ccfdfe38454b95f422716595d2
    0x22f69fc506093b8d9bed294e04b4ed5de151a7a7
    0x230b3c97f3903c77231ec648c00cde38bd3614db
    0x23cd26f3b8a65d4bc362859d38a2843f434032e9
    0x243dae9191e3d5110b62411c22c27c60dc2fd07d
    0x249412ac005b99c23dc571d17cbe8f5c76047ba5
    0x2545ac2ae11fabf99643e7f6333d45a61ea7afeb
    0x25c1643ff891a8f582741013f91025440e761a4a
    0x25d47681204dc32d77bd62edd526e37519c889ca
    0x25ea0ec1b5d6c2eb8f355967ab735fef2c15d53e
    0x26f7bb6f1ff2d16a8902ef2d2a0ddb7e251dc725
    0x276d77da7f3d9613689957ef717f0538a96606c1
    0x27b4ecc680636d463968e045fc4ea3a05540a529
    0x2eceb7ac14b0bcd9126b451296a5a51e7dcd0e0a
    0x2f67d56c1903d62ce84764c4e8b6ade9720a28de
    0x2f978b2c7f42e9c920d38c955c8c344ca7e34c92
    0x310047842c545fc1578069c060cde949eaebbb0b
    0x31474fdae7710563e27975c47f457ad92bd52179
    0x33018d91d08a4ef4769dad0f28f5a795db29d5ae
    0x3507a8848ec10b94244b2663642b25342d9f07df
    0x35ac802cd23a832bafb85ce03a2d4f92672a2c2c
    0x35bc1cbbbd4b458b87775600b05b4dc7007ac7c2
    0x35f8c9ff0c04141c23b0b7b4149d1beb3c582a8b
    0x36d25303f13875174b323fba408f8dacfd82b4f1
    0x393816ee07ca169fa27502e054dec4f2c629d916
    0x39a1d3aad62d937288b20f5a01f50b65d6728309
    0x3afe0ab919ebf75033e9baba079ad37f9804e4a9
    0x3d09da5f69771a518ca8aadeb54deb2828e2e92e
    0x3d107f25001afa5e6b3293655aa07f32cfe2fd0a
    0x3d3a3b17603fe56c8c6f226bfb30147dba580236
    0x3ec2c2b6e7f6c7177633b6db399420c6716433c4
    0x3fdde0bea45b76e5323271689b63eba5bbc6fa16
    0x40b9aaeab00e60b9de57f1d448e49a48bbcb7f0d
    0x41bc499a45cd918a880c76ef5cd87969677909d5
    0x42258ddcec56b3499c38e3d64e96a4a799854172
    0x4230c32b60b108eb6d5d19a527b2580ed3789e6b
    0x42c5497bf7bf994e888593bd60b332c827d8b4be
    0x4325a731c3f4042a2c0e72f2daa083403cd517ee
    0x436564ce4acd4670765b858fd8ace547e2606233
    0x4382ac9f473968950955d21cfcfb5f7da046d4f6
    0x44849cdf92a59349dac19ce0dd59fb787bab2c38
    0x45480d597a9e6dba055eb9137803630138c9afe6
    0x45702c14d61b0b59dce52c96dc338acbee963f50
    0x47a211f1dfdb73fee16998b04789be24f323c06a
    0x48a7fcbbd5b882e0565894e49e15e852bd6f5bde
    0x4984441be556dc5385d0bc11ff94e2a4b8d4dca6
    0x49923e062f9204aa108060e494701a8a31fdc2f1
    0x499e6df76f465eaccf6ab16f5031c6ce0db41076
    0x4a079408914cb2345f3dc6f90fdf3df4138e916c
    0x4a97b0d58a13e3752aabdc2e6c41474e6544c362
    0x4ade18e875fab4c521b2ee59e68a4bbba4b5acb1
    0x4b31c2c34b0b2c1cec3ec31a642ccd3345ab83a6
    0x4bffbfce96d454c17cf2594fe1142c8d3b15fb95
    0x4c7d2d8154e8a1d7555a1f2aae70a3e7cd2c4b13
    0x4ca04eec7b5a8445c804a90b1a344861d9997da4
    0x4efa9f4e743eadf36cec2e61aaf25853367e38d3
    0x4f00e136154fb61339c1aefbd54bc21b193ad7a0
    0x51142ab9d9106617f058f7f36c167862a548d8cb
    0x515f3c2ed231736530b72b7d58aefab4e5274ce1
    0x518b2eb2b6c17993e4dad124451afc4ac82493f4
    0x519d2b7eec5c5c1e56f6a96d3972dc6c75ecab45
    0x51cf3f665e0f8d9ebdd926824bf472ec3c1a41f9
    0x52255d6e8d3941c705698d4c0e8999fbaac18927
    0x53025e6fe8eb8962a6c0613243e9e1df3734c0ef
    0x5394cc1bca9be1913f3287275a7cccdad053630a
    0x53a64b4da5576ffa9b7e26768e87685ee0ce0032
    0x563db4dff60a609aa1e2efa7301f58619ca14ba1
    0x576f08ecfe6c5dec14bd866879656d6b190591eb
    0x5858ccbef4730f1991208621da890f23afbf024b
    0x58faf9e20f52ee033f4f3a254e970b98eb86ca1e
    0x591d2f313fb9e0af337a9871b8cca282699e0568
    0x5940e12fd806dd93b5b1c8c0e96c89736935ea87
    0x59e8abf1d0b5acd52cdf03d2e16eeea667bad39c
    0x5a0d7083c0df003e41f81b7e15b2c7afac02c46e
    0x5a933e9026e002b67e769bfebd0f7787bbe470ba
    0x5ab91c8bcfed8daccee54fc3869fa1e8dd148edf
    0x5bc3613c6c06b5759551f5555f4520a83d3351f1
    0x5c050b22dd1a965f0d68c2010c871d509395c4cf
    0x5cad17c9ea74d142831e594e5d41895b8166f9ae
    0x5cb2afaa9649dfbb89c76205caa913a7c0102986
    0x5dd80a0ecd158f8cd1b75359e856eb41cdbd3852
    0x5f32677695059807be225239fca348ddae604aaa
    0x5fbaa60fc3827e493b912acc195fc1aa758986a5
    0x6068d743fd2aa386b39763a307c6184609682d72
    0x6070c07ff882b2e2683b57bd4996596847d7b233
    0x607fdd7cdf38f38bd7dbbc1e8f91e018050f8498
    0x609069fba87f0b8ca18920ee19668e61d274d54d
    0x60909b11830ac3c5e3a6dd05a84822b73f8a6fe2
    0x61a7a617aa208e19d1b0ae94385a05e01b45f441
    0x61ca34ea672168c20d8955f59d0b73c45d29b64f
    0x61eeeb0c47bbe73e7d5b335a938e362d3f7ba0ff
    0x62c0f610a1c47a23b3c7eac0887a701f4d0f3810
    0x634e927dfbcae4656ebda2e49402ec01b2a474a2
    0x634e9be4af5cb8293dcaee52faaf1519604ffd3a
    0x64ffd18739b6dbce3f2cb25249d21532a1d2bcd7
    0x65fa45b8ca7ad7b8cb840c2432506655bf27f28e
    0x679f8224959716ed49cef5c21ee9da350ea71627
    0x6831d444061a0ada3f2cc3a99df3126d7fa75cc5
    0x6a03a79ba98b6d340e7de1368662e4a7aebf47a7
    0x6a0874852ed3c161ae3944674d2adec4eae4d75e
    0x6a48af6c05ad9361823e2dec5838634717f05f3b
    0x6a7f3fc41c259d379a516d52f85be9a56068960e
    0x6b67764ab2d88ff999ba2f10105a5876bf8c1926
    0x6bda35e2bd4f5e9dcfd3513a81fb3be0a5461a00
    0x6c400d7d3395b0cbc6698f39bf8901ae35ce9c60
    0x706d060647b9d8a124d0e41246be1e2ce082b73f
    0x71412288a14efff751424aa72db7851dda04fba0
    0x71bb1e4f87fd13a7dd781bfc93b19e4103a92cea
    0x72d74990b4bf6e14fdb7a6edce369cdeaca26ee9
    0x72d7dafb9f7f0d400fbf5805a3d045bc24e8bd1c
    0x7307068790061e718df9beb142e31101230d2ec6
    0x730906988febb2ec494771c0316d340c542e1db3
    0x7353932ea31822a0dc27a47d0ca242fe84b024b1
    0x7379f1c0331e672942a6f827f01823ba53584b59
    0x7413063824b76f1e5b4af1f341834cd38647c389
    0x743cd76737ac54b6d60aefc3c80b0fdc0dda3fc8
    0x749c4458d20719b0d12ee8bb8526d57e9e8fa11c
    0x754a6cd5c9f35318dfa898c67a4d892e39d10243
    0x75fd60617e3bb772b7a18cad110ca466d1cf65a0
    0x7624e822fcdf691f2fe66d0f60bde62147dd8b7c
    0x768ae568657c18be6b132d2f4f3d9ae08a211fc8
    0x77084dcd7e7c3dc4f8ce77a0c61a5cc6b255af56
    0x77364dff67131e6cd3a07b5a2aabb51786cbe56e
    0x7738029d3d509020d9e0489ef0c5b325226b8190
    0x7780230df7e78b4c549a4e30179482a4dcdbc4bd
    0x788b855e51d783c796bc4bf99bbec38606d29c15
    0x789103c13f83d453b8d406fef5ed63d13fb2565d
    0x790898df362c6283ebe1f999ccf4cb22672bdfc2
    0x795d59a1ca83ca32790278deb968ca27d9f0614a
    0x796deb4ca715bb8dbc1f7b80517b570551765b33
    0x7988f5596b3f43cbf3226ac3ee44c033e2f88db8
    0x79effab60819f5673203183d9e02e5bd3011bd08
    0x7a5b8679693b132b3e114490d9fea068b7667f61
    0x7b68ddf92ef42803bff9307b3bc6ee80ede5e12b
    0x7be59c3c0d96629e11532e5c70a7232f3283a83d
    0x7c0642662a3d30c3547d366f81fae5c5e1629350
    0x7c4e805640a39a3d35857b50fae5e6c4196975f2
    0x7c6a5662977ef03c16f40f34aec4d57e3efb7d3d
    0x7cd75f9b2fa24f9f351269b19437b859ea66950e
    0x7cfd50f22a55760e0a715e6dc12a8052158d8899
    0x7dbb1710ec9f8272cedcbc59f53cf6db72536f6f
    0x7dbeea85096850a5036c5331793a9cd6be637072
    0x7f2b3aff29a17b24afdcd41402ca49f94daabe2e
    0x7f3a1f3093662f43178597bd94b9de6457687a2a
    0x7f3ca344e59163748dbe20bffa400a725868248f
    0x7f50ffddf8262dd79b01ae76e5d4dad8e79b3843
    0x801f60bf45634472a22f5f4e6551cec0932caa12
    0x810f6a54bf1ea1873443162b9f4a4c5cdcba58d8
    0x81b065c0cfdd12357d0ae10a91fa930a38d0d594
    0x81b1eedae2fa226e1c6504977fcda862b91e849b
    0x820f9108138dc94eae25914f394ddfe21d6f9740
    0x82538949135a3ece0edd38266142f5e0255cf2f6
    0x82b828551670a3d83a7c8ed82859bb3b4f29e155
    0x85cbee089dd61923a83d9da72751e13c77b32138
    0x86027ea959d21a0f638599d9216c37ba3624c171
    0x86473d8f44d92cddf655979fd234809752cf8184
    0x86a602997c1c029840b9e2543d8cbc7020f32ba8
    0x86dbf4fd518d6c533a7ec053ab46e9e81a2d9a56
    0x873109869d893c49bf00842a6816a2763e566638
    0x878f0fab40637f5c79c6e9968264b72ac71f6929
    0x87ee2608bcccd165410eafd67b518732791cacb9
    0x887b16a1797041b17dbf08b7e0bcee01a73820aa
    0x896fe7adaeb41e4c00acaab14a736dd9480cc1f1
    0x89be643766c476e53758205eb39cc88fac23d55b
    0x8a90a6516825fc87b1068f939739e39500798b3d
    0x8aa00dad8dc55d537c89b92dcb4776eff797ff69
    0x8b4b9e2ed08a82550d8ce7b9b7b8c5722cb61e3e
    0x8c119472b3678cb0d8c800bbf79b5aa9dce28eb5
    0x8c8d53503734a5b7b750fd02a70da04aeeadfbee
    0x8d494c8053c537807c678f8fffa4a657640646f7
    0x8d72e5867c2d1172bdbc10eb432656de839e4afb
    0x8d9019aa782c6ee3b4e491e80f686ceda80b1916
    0x8de5917c2cc1a9ac952931b69a2f76a241cf1be2
    0x8e1422925de79ea4086004286399cd81a340fb9f
    0x8e592ec9d9cc306787ba98676da89917b17fff96
    0x8f20553e0c3a95f385801d95eeeace824604edfc
    0x907b3908bf1e140fc82898a2ff4f1b1c3b947e35
    0x91dc634a5caf12d90683fb68fcd8b2abc36c9973
    0x91f17ce440c12d0e5d288ab58632fc0734924e37
    0x92cc395f79f45c40d351ca7dc87212c49a3ed737
    0x92f58a972f87040ff368ba0673231a91f0c80455
    0x9308798ca7c6650ac3f8833b239cc04acf882653
    0x93baf549bb3dd1c3fead579acfdb390eb19c3d7f
    0x9492bcf98e0094b70a6c0c3bd35efd611f940433
    0x96de33926acea65556dd99da13c2fe5daf081c6b
    0x9737fab30c7eeb50cbf842963fee218a4901c954
    0x9827f99a40f1e9cfc3aee230a66b40aa2adacd80
    0x98346d937adb58ac52a6fdfef45935cccd6b9a6d
    0x9858b4e7063a06d2a20a24c315981f99f59bdbf1
    0x9a1eeeeb6f862fb581409998c4dc7e166adfbc4b
    0x9a71d66209d75e77a26dfe888ebc1e635cd7ec1b
    0x9ab4dfcd0f890ef00535846c789220a1b276e06d
    0x9c3a9520d7683192359818f47a761302c530732c
    0x9df3574d3b2f68b08c26cb4bfb2906a9d0f8d234
    0x9eb610a081164c918e8d36d79ad770ba9b166f80
    0xa1219fbe8e5d0a5f1894229cc7f44f2adcc7ee8e
    0xa1de69026e8866e625a4e7005b8f99587d92744b
    0xa223aacba5b08f470fc1559dfc579d32d7f350f3
    0xa2a7137f1a7d19ff03da21210b7975f9643b0928
    0xa3162338ad4c25b7f756cb7e812daec9de27ac28
    0xa467d4786c701b9fb4bc312a8b02f0cf3d966ead
    0xa46dfe6bbef5fed07595d1bff5019ccac65392a2
    0xa52ec3fe2fce72a4ef68cb23c93db3f8576d1cbe
    0xa5d5b511151dd17515b4b03e61756e9063347bc2
    0xa745993a9876a248fbac8760ae86e1dbdf19d324
    0xa78a621bbeaeeb95f18331ae0fda66895986fad5
    0xa7b854a16f9f588c1ce3952b8f07573c6e1caca3
    0xa91d803af4b674467451e89892310b8d82aa213e
    0xa93b05afff9a27dbbcbdb67fdd75627b6312fb89
    0xa983b624312d4f5600366d505069968bcac9d92d
    0xaa2285f75ec449468e214ee00b38b153eb534d06
    0xaa5ddc43355a83b22be25c1b37e8921687bb7807
    0xaad701a384f057e2e5299a72c732f7ad4453c5d9
    0xac95063f90c07f230ebbe8f9c4ea36077bb31036
    0xadad587741329d4c410079568ee15601a734159e
    0xae10e9dbe896be59cb5d18baeed4ec3ba55986f8
    0xae35fef5944652b2a77325da877705c07cddcd96
    0xae4ce26fd95384162973037de21a1c8542ca1288
    0xaea39f0ca2e09b22eb79019b181d74f41ebd622e
    0xaf7cebe45aed15801b16a26c0023b352afcc5c25
    0xb1669d99b486a57ed7e45ce8e35c0070ad5e4d2c
    0xb2d05c798e26e5f10381c5bd742717af1609018f
    0xb324ddf80e50f49de974f3a1ec6de4f3d78bbccf
    0xb38a2250dee4e32a663e7c2f633699ca3b9aa130
    0xb47401de9bcf517dc108aace5a44d48e9d98ec24
    0xb4ca2939eac0c0c7ce2da669ab2e6f2d62bdd72d
    0xb501671fb69f5d808fd763ddb4808c4fc26b1dfc
    0xb54d7aa16d2671368687ad3dc1e1bf20771d3b05
    0xb5f42bd628613bffd7896ef912e8d8eef3aaa68f
    0xb5faf81de7cb6e1f2d24f08bb58c9f831b1b16b8
    0xb774b9fcc3a5968aa9932aaef8f79d1d94a3867d
    0xb98d3d23dcf2ae6111d6dd9a13153299452c9850
    0xb9e7e1bf06c23f951d334006f4e4e59d0ef71e4b
    0xbb05028efb56dda4da1be5fb3c5895d6193677e5
    0xbb47efb453303e8d072ba80c30a5d95542893ff3
    0xbb6d75e430dd28dd54f7d420dd69e5dca15373cd
    0xbbd947fb272250e4d315f8459c4c1b35e6185fa3
    0xbbf81f57d976aa7a8307063f1326884a243ba46d
    0xbcf0e8cd2b8fccbb0a9e8110fbd6ca1d8075bc04
    0xbd623b2b8f81585a0263e7d69529e948f0f19216
    0xc022765d0b4aa923fca84f23de18ef07895be0a2
    0xc0e777f6526e0395444f98a1e2d3fb678e0858bb
    0xc103c9de170d43703ad324e646bc0093dbd2dcc3
    0xc2471d01e209cd8813c6b523194c87c36ad0d662
    0xc65f4e99e04e815157b6f62b0a97cfcfe0156856
    0xc83e45c0c763008d461d60ec15389f48e84960e7
    0xc931dc5930aa5cc84a2d034474553d685e3b33b2
    0xca0fd07a59116c34e7178d39550f9447ccd3bcd2
    0xca131999d59ad0dcd0df8d21d0acb61f136d3c47
    0xcbb139e1dc958869ed5c19ae4fbdb865943e8778
    0xcbb5bf79c5e9c400b851b0cc57ed24ad07f3ed26
    0xccc93c325454cd52a43819de82a0f59d08ddf895
    0xcd6376e02abeece0b0ae7742d4ff18fe28e9c1bb
    0xcd819151ad9ee741cefb9fda7a020135fe354652
    0xcf18a5e73f0c419f68c88cdc24851df678350de8
    0xcf5bd5f9b26f396e8939d644466eebd6df826dd6
    0xcf6814586a90488faa7084ae0aadbd12a52fb51d
    0xd0cae0bda53a045c927fcc761f5ceeec498b3b66
    0xd36c87320a236e9e09e1f101daf31bcccd44171d
    0xd3b2a3f0ee6e6ae8045069f54affa597ffb5d29a
    0xd66ec02727a8abc4de5c0904b895b34f5e9c3b43
    0xd8156215dc397aca158441ba4762d54e951958c9
    0xd89f3b69ed5ca4193fe11a134bd45cf05b03730a
    0xd8eda506478b9657288a8bf32fac46f3e48881a6
    0xd9844bdd005ad9af85fae49d567eefb52ebaea23
    0xdb76237840f642bc0c014ed92733d53e3e88df45
    0xdbeb8be58f1e1f33119febdecc0d01551e7106e4
    0xdca2bac384d6e0166870c6a0a0493e13b4bc1a8e
    0xdcafaf8c2b1ffa8bee9d7e06371050557e73fade
    0xde2088255ff4a75dfc207a29ce5c3e4eddb7fd56
    0xde89529c73fad00ec40b6a826cc687edb1eea04f
    0xdf26ae239a80cb5dbfc03ce2f88bfd1bfa5bcd55
    0xdf34b913539962bfc4b65d59c7311616f842ac8e
    0xdfeeafcde49107991f32f1be32101f6d87b1e57c
    0xe03e98d5a7e8f04bb030e3f4bc95f3d10d091eb1
    0xe0859279453a44393ea3ea1d8584d779b97c8d02
    0xe1fbb8cc91a7ead380d40c9a9b1a8d159dc2d2b1
    0xe3541cfb896f77abb9c7385bc90cf2eae47ef221
    0xe3cf24eb3c2f2d2e509c58d57a8423b8f6753a77
    0xe4fe4ed1b7507022bf1baa1ae6b8065e342a4bc1
    0xe506cde7e515cf3cdbe7703540af832194dcbbdc
    0xe6b6b2d7413ae105fb111d717020792f56d27076
    0xe76188f9300c5d396fbcc78c64b60d44351ca384
    0xe854e767759635344c2b48a6ab4377850a538da8
    0xe91abe452e0725e974bf1fec8c55e02079eea419
    0xe95ccc5c8f6c1048bfbda8d877b9542a8a8f4591
    0xea0f75f3a66c7e45c684dcdd82e8c550a308d9ad
    0xeb8a004225d12699e1492cc273f36ea76cd3d307
    0xec5a968dd09b161074eab0ab31d838229526cb22
    0xecf9dd4133772cb0b9267c1e3a26aa39a8d56d61
    0xed31a0000982e5352ce7d448f47b1b8ce496c4eb
    0xee3b26ea6ef364697f5f3ed3991932ce50519799
    0xeeecc3b7f35fefee5c7549612f88412d9243ed54
    0xef7faf839eb0c3e18b57ee3caf98815f531cf928
    0xef90a5f6bc832328abb6e80dd1c6216a9b1bfeaf
    0xefd3d5b81fe62c4b9293c94620633d57792cda40
    0xf063ad4394de415529c9a4ce06ab691d51b9e7cc
    0xf0eb58e2bcb28931e9c48d07dbf22f3e647f4ae0
    0xf15d382b2d11ae53671ec8818db43d10de6fd2d3
    0xf1acde01b554e4f67e9f86a9d479b5b0145816f3
    0xf38e820ee4269ec0949438efa8778fd2884fdfd4
    0xf558aa0fe78803141c9af82b4f5334b7d42c7813
    0xf8c31b825ea33b01203692c04400e75780d2cd2c
    0xf92502bc56070dff5959f9ff2e0333b9c01d7dae
    0xf99cc0ef307919e2514db6b3eb6568dc23b86d80
    0xfa4da0feb436e193fd82f1e698611aaa275b2d17
    0xfaa224762ba5e7fde704ca2edf64ce82e672c858
    0xfcf706509bb8f3f6baacda766c4f28cea83b7ec5
    0xfd39e6e200a40406f120845892c348cd3c2bc988
    0xfdcb8d21ea005958d236684a0d5364ff68350215
    0xfdea8113c039085cdce0c08466e9223c98104144
    0xff10b95e0164a5ee5948b6bbe27ecc70d73d1961
    0xff2348b6fee93d54fe703d94ecc37d8904f89c62
    0xffa07cab423749fb8b45dfc36c5ddff2e6a709b8