police 3 лет назад
Родитель
Сommit
131bf0c901

+ 11 - 13
script/research/lotterysim/constants.py

@@ -4,20 +4,18 @@ N_TERM = 2
 CONTROLLER_TYPE_ANALOGUE=-1
 CONTROLLER_TYPE_DISCRETE=0
 CONTROLLER_TYPE_TAKAHASHI=1
+ERC20DRK=2.1*10**9
 
 L = 28948022309329048855892746252171976963363056481941560715954676764349967630337.0
-N_TERM = 2
-REWARD = 1
-BASE_L = L*0.01
-F_MIN = 0.00001
-F_MAX = 0.99999
+REWARD = 33
+F_MIN = 0.0001
+F_MAX = 0.9999
 EPSILON = 1
 
-L_HP = Num(28948022309329048855892746252171976963363056481941560715954676764349967630337.0)
-REWARD_HP = Num(1)
-BASE_L_HP = L_HP*Num(0.01)
-F_MIN_HP = Num(0.00001)
-F_MAX_HP = Num(0.99999)
-EPSILON_HP = Num(1)
-
-ERC20DRK=2.1*10**9
+L_HP = Num(L)
+REWARD_HP = Num(REWARD)
+F_MIN_HP = Num(F_MIN)
+F_MAX_HP = Num(F_MAX)
+EPSILON_HP = Num(EPSILON)
+SLOT = 90
+ONE_YEAR = 365.25*24*60*60/SLOT

+ 11 - 2
script/research/lotterysim/darkie.py

@@ -2,12 +2,12 @@ from utils import *
 from threading import Thread
 
 class Darkie(Thread):
-    def __init__(self, airdrop, vesting=[], hp=False, commit=True, epoch_len=100):
+    def __init__(self, airdrop, initial_stake=None, vesting=[], hp=False, commit=True, epoch_len=100):
         Thread.__init__(self)
         self.vesting = [0] + vesting
         self.stake = (Num(airdrop) if hp else airdrop)
         self.initial_stake = self.stake # for debugging purpose
-        self.finalized_stake = (Num(airdrop) if hp else airdrop) # after fork finalization
+        self.finalized_stake = (Num(airdrop) if hp else airdrop) if initial_stake==None else (Num(initial_stake) if hp else initial_stake) # after fork finalization
         self.Sigma = None
         self.feedback = None
         self.f = None
@@ -16,9 +16,18 @@ class Darkie(Thread):
         self.epoch_len=epoch_len # epoch length during which the stake is static
         self.staked_tokens_ratio = 1 # ratio of staked tokens, if commit is true then it's 100%
         self.slot = 0
+
     def clone(self):
         return Darkie(self.finalized_stake)
 
+    def apy(self):
+        # approximation to APY assuming linear relation
+        # note! relation is logarithmic depending on PID output.
+        return Num(self.stake - self.initial_stake) / Num(self.initial_stake)
+
+    def apy_percentage(self):
+        return self.apy()*100
+
     def set_sigma_feedback(self, sigma, feedback, f, count, hp=True):
         self.Sigma = (Num(sigma) if hp else sigma)
         self.feedback = (Num(feedback) if hp else feedback)

+ 0 - 1
script/research/lotterysim/f.hist

@@ -1 +0,0 @@
-0,0.7290000000000001,0.6561,0.6841000000000664,0.654299999646183,0.7121000000001328,0.6073000000000567,0.654299999646183,0.7206999996462543,0.673700000000128,0.5987000003539352,0.5792999999999903,0.6669000007078235,0.48710000106155465,0.4975000010614932,0.5445000007076195,0.6109000007076908,0.5639000010615645,0.49750000106149317,0.5445000007076195,0.6023000010615693,0.4975000010614931,0.5445000007076194,0.6023000010615692,0.48890000141537154,0.46090000141530524,0.49930000141531017,0.5079000010614316,0.5829000007076244,0.6195000003538123,0.6561000000000001,0.6755000003539451,0.5621000007077475,0.534100000707681,0.5811000003538074,0.6303000010616358,0.4591000010614883,0.5445000007076196,0.6023000010615694,0.47170000212312885,0.3195000017690414,0.5097000014152488,0.5377000014153153,0.49930000141531033,0.49930000141531033,0.5079000010614317,0.5657000014153816,0.46090000141530535,0.5079000010614317,0.5829000007076245,0.6109000007076909,0.5811000003538075,0.6475000003538788,0.6176999999999954,0.6755000003539452,0.5792999999999905,0.6926999996461881,0.729299999292376,0.7658999989385639,0.7938999989386303,0.7554999989386254,0.7554999989386254,0.7554999989386254,0.746899999292504,0.6890999989385541,0.7938999989386303,0.7554999989386254,0.7640999985847469,0.8218999989386967,0.7084999992924991,0.6633000000001897,0.5774999996461736,0.7206999996462548,0.6908999992923713,0.7572999992924426,0.7188999992924378,0.7188999992924378,0.7274999989385592,0.802499998584752,0.8218999989386969,0.7170999989386208,0.7554999989386256,0.7468999992925042,0.6804999992924329,0.7188999992924378,0.7274999989385592,0.785299999292509,0.6718999996463114,0.6353000000001235,0.6073000000000571,0.6371000003539405,0.5707000003538693,0.6091000003538741,0.6091000003538741,0.6091000003538741,0.6176999999999956,0.6926999996461883,0.7206999996462548,0.6908999992923713,0.7486999996463212,0.6524999992923665,

+ 11 - 3
script/research/lotterysim/instance.py

@@ -4,16 +4,24 @@ import numpy
 os.system("rm f.hist; rm leads.hist")
 
 RUNNING_TIME = int(input("running time:"))
+
 NODES=1000
-ERC20DRK = 2.1*10**9
 
 if __name__ == "__main__":
-    darkies = [ Darkie(random.gauss(ERC20DRK/NODES, ERC20DRK/NODES*0.1)) for id in range(NODES) ]
+    darkies = []
+    egalitarian = ERC20DRK/NODES
+    darkies += [ Darkie(random.gauss(egalitarian, egalitarian*0.1)) for id in range(int(NODES)) ]
+    darkies += [Darkie(0) for _ in range(NODES)]
     airdrop = ERC20DRK
-    print("network airdrop: {} on {} nodes".format(airdrop, len(darkies)))
+    effective_airdrop  = 0
+    for darkie in darkies:
+        effective_airdrop+=darkie.stake
+    print("network airdrop: {}, staked token: {}/{}% on {} nodes".format(airdrop, effective_airdrop, effective_airdrop/airdrop*100, len(darkies)))
     dt = DarkfiTable(airdrop, RUNNING_TIME, CONTROLLER_TYPE_DISCRETE, kp=-0.010399999999938556, ki=-0.0365999996461878, kd=0.03840000000000491)
     for darkie in darkies:
         dt.add_darkie(darkie)
     acc = dt.background(rand_running_time=False)
+    sum_zero_stake = sum([darkie.stake for darkie in darkies[NODES:]])
     print('acc: {}'.format(acc))
+    print('total stake of 0mint: {}, ration: {}'.format(sum_zero_stake, sum_zero_stake/ERC20DRK))
     dt.write()

+ 0 - 1
script/research/lotterysim/leads.hist

@@ -1 +0,0 @@
-0,0,0,0,1,0,2,1,0,1,2,2,0,3,2,1,0,1,2,1,0,2,1,0,2,2,1,1,0,0,0,0,2,2,1,0,3,1,0,2,4,0,0,1,1,1,0,2,1,0,0,1,0,1,0,2,0,0,0,0,1,1,1,1,2,0,1,1,0,2,2,3,0,1,0,1,1,1,0,0,2,1,1,2,1,1,0,2,2,2,1,2,1,1,1,1,0,0,1,0,2,0,

+ 37 - 0
script/research/lotterysim/one_year_reward.py

@@ -0,0 +1,37 @@
+from lottery import *
+import os
+import numpy
+from matplotlib import pyplot as plt
+
+os.system("rm f.hist; rm leads.hist")
+
+RUNNING_TIME = 100000
+NODES=1000
+NORM_NODES = NODES/10
+
+stakes =  [100, 1000, 10000, 100000]
+rewards = []
+airdrop = ERC20DRK
+
+for stake in stakes:
+    effective_airdrop  = 0
+    darkies = []
+    norm_staker_sum = stake*NORM_NODES
+    egalitarian = (ERC20DRK-norm_staker_sum)/NODES
+    darkies += [ Darkie(random.gauss(egalitarian, egalitarian*0.1)) for id in range(int(NODES)) ]
+    darkies += [Darkie(stake) for _ in range(int(NORM_NODES))]
+    for darkie in darkies:
+        effective_airdrop+=darkie.stake
+    dt = DarkfiTable(effective_airdrop, RUNNING_TIME, CONTROLLER_TYPE_DISCRETE, kp=-0.010399999999938556, ki=-0.0365999996461878, kd=0.03840000000000491)
+    for darkie in darkies:
+        dt.add_darkie(darkie)
+    acc = dt.background(rand_running_time=False)
+    sum_zero_stake = sum([darkie.stake for darkie in darkies[NODES:]])
+    avg_zero_stake = sum_zero_stake/NORM_NODES
+    reward = ((avg_zero_stake/stake)-1)
+    print("stake: {}, acc: {}, reward: {}%".format(stake, acc*100, reward*100))
+    rewards += [(stake, reward)]
+print('avg rwards: {}%'. format(sum([r[1] for r in rewards])/len(stakes)))
+
+plt.plot([r[0] for r in rewards], [r[1] for r in rewards])
+plt.show()

+ 30 - 0
script/research/lotterysim/stake_reward.py

@@ -0,0 +1,30 @@
+# running time ONE_YEAR
+#network airdrop: 2100000000.0, staked token: 2099223067.1631408/99.9630031982448% on 1000 nodes
+#acc: 37.5249500998004, reward: 0.0005964171059733166794378382704% with instant finality: 0.001589388138790594006649208260%
+
+from lottery import *
+import os
+import numpy
+
+os.system("rm f.hist; rm leads.hist")
+
+RUNNING_TIME = ONE_YEAR
+NODES=1000
+
+rewards = []
+airdrop = ERC20DRK
+darkies = []
+
+
+effective_airdrop  = 0
+egalitarian = ERC20DRK/NODES
+darkies = [ Darkie(random.gauss(egalitarian, egalitarian*0.01)) for id in range(int(NODES)) ]
+for darkie in darkies:
+    effective_airdrop+=darkie.stake
+print("network airdrop: {}, staked token: {}/{}% on {} nodes".format(airdrop, effective_airdrop, effective_airdrop/airdrop*100, len(darkies)))
+dt = DarkfiTable(effective_airdrop, RUNNING_TIME, CONTROLLER_TYPE_DISCRETE, kp=-0.010399999999938556, ki=-0.0365999996461878, kd=0.03840000000000491)
+for darkie in darkies:
+    dt.add_darkie(darkie)
+acc = dt.background(rand_running_time=False)
+apy_per = sum([darkie.apy_percentage() for darkie in darkies])/NODES
+print("acc: {}, reward: {}% with instant finality: {}%".format(acc*100, apy_per, apy_per/Num(acc)))

+ 1100 - 0
script/research/lotterysim/stake_rewards.txt

@@ -0,0 +1,1100 @@
+2010234.7055550239,2010236.7055550239,0.000099490870119457117520200
+2279437.21387141,2279437.21387141,0
+2252307.1195725747,2252308.1195725747,0.000044398918393943193372600
+2361698.423216163,2361698.423216163,0
+1860558.2007074137,1860558.2007074137,0
+2689765.855570792,2689766.855570792,0.000037177957253375540089300
+1744875.1497252102,1744875.1497252102,0
+1914638.7627833295,1914638.7627833295,0
+2172781.1255306895,2172781.1255306895,0
+2022191.6022882988,2022192.6022882988,0.000049451298228536136173100
+1920778.1346919287,1920778.1346919287,0
+2127840.8644528924,2127840.8644528924,0
+2160644.8482974614,2160644.8482974614,0
+1719421.7007811517,1719421.7007811517,0
+2030035.6994898014,2030035.6994898014,0
+2113068.510872341,2113068.510872341,0
+2475775.3357982617,2475775.3357982617,0
+2484812.354875422,2484812.354875422,0
+2314453.710980655,2314455.710980655,0.000086413480231262942275400
+2378766.5553335976,2378766.5553335976,0
+2250567.914315139,2250569.914315139,0.000088866458429387667071600
+2035543.3388953842,2035543.3388953842,0
+2129586.6520784367,2129588.6520784367,0.000093914938753397869855300
+2055542.7626450984,2055542.7626450984,0
+1860745.2785806383,1860745.2785806383,0
+1815362.5486902595,1815362.5486902595,0
+1871305.2429184355,1871305.2429184355,0
+1843867.0315861907,1843867.0315861907,0
+2246395.5962394285,2246395.5962394285,0
+2321832.87728077,2321833.87728077,0.000043069421997812206876700
+1861026.5370146963,1861027.5370146963,0.000053733785097127990697400
+2280614.7449282357,2280615.7449282357,0.000043847826653925589090500
+2115202.4637114606,2115202.4637114606,0
+2137106.3642968168,2137106.3642968168,0
+2043019.818168649,2043019.818168649,0
+2076139.254286832,2076139.254286832,0
+1913163.4699109662,1913163.4699109662,0
+2120389.301857084,2120389.301857084,0
+1593475.2969822688,1593475.2969822688,0
+2381946.703065572,2381946.703065572,0
+1823049.8226200824,1823049.8226200824,0
+2296710.726233967,2296711.726233967,0.000043540529008620543219200
+2075042.3040570752,2075043.3040570752,0.000048191788574373780654600
+2102671.2457147646,2102672.2457147646,0.000047558552105470406834800
+2265636.4661964043,2265637.4661964043,0.000044137707656110423953600
+1853695.1698350841,1853695.1698350841,0
+1858430.4503108147,1858430.4503108147,0
+1920415.1580931374,1920416.1580931374,0.000052072073883906586342600
+2104137.957599517,2104137.957599517,0
+2202895.737283509,2202895.737283509,0
+1735664.5527001503,1735664.5527001503,0
+2178061.2781549967,2178063.2781549967,0.000091824781059152304956500
+2387500.0536547806,2387500.0536547806,0
+2245580.78134369,2245580.78134369,0
+2261164.7720040106,2261165.7720040106,0.000044224994674480374527700
+2149983.7780321985,2149985.7780321985,0.000093023957689137858975800
+2080454.6366426554,2080455.6366426554,0.000048066416944988297079100
+1957559.9547432365,1957560.9547432365,0.000051084003714775880639900
+1822800.175885985,1822800.175885985,0
+2210652.545352448,2210652.545352448,0
+2263758.5728494935,2263758.5728494935,0
+2266910.02820175,2266911.02820175,0.000044112910859248366965900
+2247060.9851571117,2247062.9851571117,0.000089005149980838750208400
+2231995.745553576,2231995.745553576,0
+1891883.4820157501,1891883.4820157501,0
+2162072.46729451,2162073.46729451,0.000046251918708873853839800
+2360378.63143166,2360378.63143166,0
+1821549.5961265767,1821549.5961265767,0
+1862646.1028257336,1862646.1028257336,0
+1910406.7488603701,1910407.7488603701,0.000052344873707996363267000
+2124889.4850075347,2124889.4850075347,0
+1903513.770499123,1903513.770499123,0
+1858893.762452899,1858893.762452899,0
+2292643.968170196,2292643.968170196,0
+1823094.2868511854,1823095.2868511854,0.000054851798242820531554300
+2016671.35297377,2016671.35297377,0
+1697461.4515475633,1697461.4515475633,0
+1665616.0513550192,1665616.0513550192,0
+2324762.5719900387,2324762.5719900387,0
+2295819.649683727,2295821.649683727,0.000087114856790929584267900
+2111143.6792154526,2111143.6792154526,0
+2357889.0649747686,2357889.0649747686,0
+2134567.596902403,2134567.596902403,0
+2380669.0789139615,2380669.0789139615,0
+2372027.812927355,2372028.812927355,0.000042158021695617684150700
+2169141.55440144,2169141.55440144,0
+2144527.156877957,2144527.156877957,0
+2431302.9025578815,2431302.9025578815,0
+2263640.298661922,2263640.298661922,0
+2374551.840566417,2374551.840566417,0
+2219758.3579039373,2219759.3579039373,0.000045049948632439215142900
+1797417.2338004431,1797417.2338004431,0
+1643523.8446500935,1643523.8446500935,0
+1940364.3908359855,1940365.3908359855,0.000051536711595143247427900
+2127519.121249443,2127519.121249443,0
+2013150.973390687,2013150.973390687,0
+2122310.599458164,2122311.599458164,0.000047118456660175222606000
+1948487.4176693677,1948487.4176693677,0
+2227773.75360565,2227773.75360565,0
+2322530.9026888,2322530.9026888,0
+2394161.8921054006,2394161.8921054006,0
+2091731.1644929848,2091731.1644929848,0
+1888768.7850613394,1888769.7850613394,0.000052944542916486421313300
+2064102.7389042184,2064102.7389042184,0
+1984721.9682715773,1984721.9682715773,0
+1950884.9029355114,1950885.9029355114,0.000051258790228746573036100
+2124468.4873659466,2124468.4873659466,0
+2464099.6865383787,2464099.6865383787,0
+2147939.6404708135,2147939.6404708135,0
+1927633.3413715174,1927633.3413715174,0
+2402233.4440733865,2402233.4440733865,0
+1972423.3463266438,1972423.3463266438,0
+2040299.03439658,2040299.03439658,0
+2151906.074218582,2151907.074218582,0.000046470429726498557831400
+2213085.0734127956,2213086.0734127956,0.000045185791184154585107200
+1783036.8339690268,1783036.8339690268,0
+2313550.006149275,2313550.006149275,0
+1805361.6331339804,1805361.6331339804,0
+2167785.8829766717,2167785.8829766717,0
+2343436.485246453,2343436.485246453,0
+1988066.7810577704,1988067.7810577704,0.000050300121179427394542300
+2423348.468904145,2423348.468904145,0
+1865712.219911417,1865712.219911417,0
+2426489.214026999,2426489.214026999,0
+1415990.2816103564,1415991.2816103564,0.000070621953624055586191300
+2088742.1987014487,2088744.1987014487,0.000095751404900201713555800
+2356904.128805649,2356904.128805649,0
+1916386.7460939237,1916387.7460939237,0.000052181533922536801816000
+2138423.2128138957,2138424.2128138957,0.000046763428025275030927200
+2227664.460240834,2227664.460240834,0
+2270088.8507230533,2270088.8507230533,0
+2011495.5957763137,2011495.5957763137,0
+1865466.9385528446,1865466.9385528446,0
+2115443.791049672,2115444.791049672,0.000047271404904774396365400
+1762754.3867773388,1762754.3867773388,0
+1966110.0511662331,1966111.0511662331,0.000050861852794396336898700
+2327346.4101425344,2327346.4101425344,0
+2174894.4018226936,2174894.4018226936,0
+2529996.36301356,2529997.36301356,0.000039525748519609248439200
+2438613.996580344,2438614.996580344,0.000041006899878467639685600
+2405807.4837962557,2405807.4837962557,0
+2260064.287887078,2260064.287887078,0
+1910198.9857955207,1910198.9857955207,0
+1781293.204112479,1781293.204112479,0
+2211381.0284801554,2211381.0284801554,0
+2272399.644476911,2272399.644476911,0
+1915316.4402450786,1915316.4402450786,0
+2154275.8132461826,2154275.8132461826,0
+1814773.9090694794,1814773.9090694794,0
+1887356.694162275,1887356.694162275,0
+2112403.6414571623,2112403.6414571623,0
+2392223.602027405,2392223.602027405,0
+2472633.8447096543,2472633.8447096543,0
+2213850.801068165,2213850.801068165,0
+1992835.2216550177,1992835.2216550177,0
+2267127.1657670215,2267127.1657670215,0
+2051122.3324752275,2051122.3324752275,0
+2239653.6185115734,2239653.6185115734,0
+1803592.7168275127,1803592.7168275127,0
+1935287.8141795748,1935287.8141795748,0
+2266173.826708167,2266175.826708167,0.000088254483236406905584700
+1720267.1582756555,1720268.1582756555,0.000058130505787390035182000
+1981331.4478601303,1981332.4478601303,0.000050471111286302753464600
+2223332.1480334345,2223333.1480334345,0.000044977535222729212058400
+2240390.654184393,2240390.654184393,0
+1907089.405958926,1907089.405958926,0
+2024328.3382583554,2024328.3382583554,0
+2063440.3067887612,2063441.3067887612,0.000048462754008922835061000
+2278245.963544817,2278245.963544817,0
+1927799.0387805472,1927799.0387805472,0
+1833579.3663215274,1833579.3663215274,0
+1875782.886997704,1875782.886997704,0
+1707126.8904425337,1707126.8904425337,0
+1876936.5024569272,1876936.5024569272,0
+1985384.3175121653,1985384.3175121653,0
+1807391.2420262329,1807391.2420262329,0
+2247256.2980009024,2247257.2980009024,0.000044498707196396449581400
+1999149.0257416065,1999149.0257416065,0
+2308004.5804138486,2308004.5804138486,0
+2204875.726921292,2204875.726921292,0
+1948637.420513306,1948638.420513306,0.000051317910118783517188600
+2088799.669375564,2088801.669375564,0.000095748770421717359768100
+2213719.631447545,2213719.631447545,0
+1793015.0612530124,1793015.0612530124,0
+2170697.498983027,2170698.498983027,0.000046068141713366352836500
+1566063.7476952444,1566064.7476952444,0.000063854361067465291458200
+1932419.2534436553,1932419.2534436553,0
+2072128.0539518613,2072128.0539518613,0
+2001597.316833556,2001597.316833556,0
+2027623.4006082297,2027623.4006082297,0
+2000574.3462364983,2000574.3462364983,0
+2108207.065384384,2108207.065384384,0
+2194382.7600530405,2194384.7600530405,0.000091141802442508159741400
+2043289.4976686083,2043290.4976686083,0.000048940691034775013362900
+1972633.1892405301,1972633.1892405301,0
+1986050.2696222465,1986051.2696222465,0.000050351192781751863311800
+2280840.2534119324,2280840.2534119324,0
+2140878.7127242098,2140878.7127242098,0
+2167433.6644223756,2167434.6644223756,0.000046137513521849884546200
+2588456.934205677,2588456.934205677,0
+2068395.1381179416,2068397.1381179416,0.000096693323395636331453900
+1909773.1270363973,1909773.1270363973,0
+2037147.5877509923,2037148.5877509923,0.000049088245054645177907500
+1942047.0997749565,1942047.0997749565,0
+1655178.146318024,1655178.146318024,0
+2359409.238146098,2359410.238146098,0.000042383490910875149531200
+1938764.0257461295,1938764.0257461295,0
+2119893.655888835,2119893.655888835,0
+2408505.2555833524,2408505.2555833524,0
+2114116.677999685,2114116.677999685,0
+1787596.0461034847,1787596.0461034847,0
+2434294.5321610025,2434294.5321610025,0
+2532459.868573008,2532459.868573008,0
+1783684.450238509,1783685.450238509,0.000056063728080731034274500
+2483785.5847213813,2483788.5847213813,0.000120783372705519790280900
+2123337.0717731244,2123337.0717731244,0
+2197310.4929026533,2197310.4929026533,0
+1890655.4775895826,1890655.4775895826,0
+1788615.126666489,1788615.126666489,0
+2376975.297842514,2376975.297842514,0
+2128077.349757834,2128077.349757834,0
+2260271.620384075,2260273.620384075,0.000088484940569229076806200
+2199305.670860012,2199305.670860012,0
+2171811.3711489313,2171812.3711489313,0.000046044514421663615698300
+2328047.2213784857,2328047.2213784857,0
+2430598.8338920968,2430599.8338920968,0.000041142124568483755111400
+1971460.3115175215,1971461.3115175215,0.000050723821025352273370700
+2257083.1768886456,2257083.1768886456,0
+2316750.6134567456,2316750.6134567456,0
+2061047.5961310046,2061047.5961310046,0
+1416191.9931487925,1416191.9931487925,0
+2520788.0305731297,2520788.0305731297,0
+2184108.503554488,2184109.503554488,0.000045785271124239844386700
+1956078.9523802698,1956079.9523802698,0.000051122680850031246654600
+2044175.4808174905,2044175.4808174905,0
+2373797.510254193,2373798.510254193,0.000042126592334866722062400
+1974085.60589253,1974085.60589253,0
+1609616.526230896,1609617.526230896,0.000062126598708676046227100
+2083792.4345194604,2083793.4345194604,0.000047989424639148772862800
+2101408.819123662,2101408.819123662,0
+1798115.0940124313,1798116.0940124313,0.000055613792650421211763300
+1811421.3431322728,1811422.3431322728,0.000055205267608850208359500
+2034209.167360699,2034209.167360699,0
+1966833.3325205615,1966833.3325205615,0
+2121975.9278801857,2121975.9278801857,0
+2065314.298848954,2065314.298848954,0
+2365126.7879737373,2365126.7879737373,0
+1717805.6961071054,1717805.6961071054,0
+2021674.1292066644,2021674.1292066644,0
+1853620.422486478,1853620.422486478,0
+2321293.9821713157,2321293.9821713157,0
+2193205.528670368,2193205.528670368,0
+2270527.475603166,2270528.475603166,0.000044042629333712414925200
+1939287.1200905978,1939287.1200905978,0
+1982960.5850448813,1982960.5850448813,0
+1919874.7296390936,1919875.7296390936,0.000052086731731084576317400
+2295173.817244652,2295174.817244652,0.000043569684896479707898300
+2508332.592280806,2508334.592280806,0.000079734242825486574405600
+2011301.3653762164,2011302.3653762164,0.000049719053405651558702700
+2195415.437780731,2195415.437780731,0
+2065044.0119836573,2065044.0119836573,0
+2319052.6356070987,2319052.6356070987,0
+2019363.8912977655,2019363.8912977655,0
+2177722.045368501,2177722.045368501,0
+2488335.347960938,2488335.347960938,0
+2316687.7435032916,2316687.7435032916,0
+1904470.8112418337,1904471.8112418337,0.000052508024491482630969700
+1807423.4158568743,1807423.4158568743,0
+1684276.8095693272,1684277.8095693272,0.000059372663348354356015900
+1886586.6129583598,1886586.6129583598,0
+2346233.168719876,2346234.168719876,0.000042621509802693998097600
+2064665.0516257652,2064665.0516257652,0
+2368836.9715657025,2368837.9715657025,0.000042214808870491484146300
+1882504.695677457,1882505.695677457,0.000053120717430143250094200
+2365151.5342581086,2365151.5342581086,0
+2325005.7698324844,2325006.7698324844,0.000043010645950872179179900
+2022847.60214883,2022847.60214883,0
+1859747.9713267647,1859748.9713267647,0.000053770726755334971168000
+2069203.0097721347,2069203.0097721347,0
+1975078.5624968358,1975078.5624968358,0
+2015062.3664356235,2015062.3664356235,0
+2157033.3372697206,2157033.3372697206,0
+2211383.586699846,2211383.586699846,0
+1954181.9005887057,1954182.9005887057,0.000051172308969740519834900
+2134916.705093114,2134916.705093114,0
+2026598.4613273735,2026598.4613273735,0
+2252760.8690900863,2252760.8690900863,0
+1967155.903146485,1967155.903146485,0
+2288117.259790372,2288117.259790372,0
+1973121.277966522,1973121.277966522,0
+2194309.9013338177,2194309.9013338177,0
+1914213.983452596,1914213.983452596,0
+2491573.243750014,2491573.243750014,0
+2156692.4476536177,2156692.4476536177,0
+1885615.6199389833,1885616.6199389833,0.000053033077867288721758100
+2065401.7549967845,2065401.7549967845,0
+1933742.2605912576,1933742.2605912576,0
+1853271.3678867193,1853271.3678867193,0
+1824303.6130743437,1824304.6130743437,0.000054815437125336011842700
+2054154.8683718785,2054154.8683718785,0
+2039411.3780222847,2039412.3780222847,0.000049033756052187376212900
+1934297.2971149664,1934297.2971149664,0
+2127918.022339515,2127918.022339515,0
+2428381.107169682,2428381.107169682,0
+2193446.577205192,2193446.577205192,0
+1861537.126694615,1861537.126694615,0
+2288593.1559872134,2288594.1559872134,0.000043694965939397710734400
+2307088.3633967894,2307091.3633967894,0.000130034031101566382932800
+1953901.8481710795,1953901.8481710795,0
+1890672.0873017542,1890672.0873017542,0
+1973669.440831505,1973669.440831505,0
+2091539.1742980683,2091539.1742980683,0
+1947716.2222500183,1947716.2222500183,0
+2124311.787653417,2124312.787653417,0.000047074069155574953040100
+2112438.0766063724,2112438.0766063724,0
+2144621.5237116413,2144621.5237116413,0
+1762637.448825649,1762637.448825649,0
+2722783.105766323,2722784.105766323,0.000036727126662501881767400
+1946876.0544681821,1946876.0544681821,0
+2033786.7914322503,2033787.7914322503,0.000049169362502141714787400
+2277191.7630315176,2277191.7630315176,0
+2159109.8024671655,2159111.8024671655,0.000092630768371050218318200
+1969733.3437873241,1969733.3437873241,0
+2126962.0335020064,2126962.0335020064,0
+2025487.3585817032,2025487.3585817032,0
+2083473.4225543337,2083473.4225543337,0
+2019943.9322340442,2019943.9322340442,0
+1935521.409157785,1935521.409157785,0
+1958918.8494004854,1958918.8494004854,0
+2275905.7745558904,2275905.7745558904,0
+1815096.2583270122,1815096.2583270122,0
+2269067.6748734075,2269067.6748734075,0
+2213253.0814605244,2213253.0814605244,0
+2363838.6349401837,2363838.6349401837,0
+2195255.9723829646,2195255.9723829646,0
+2108781.9588695467,2108782.9588695467,0.000047420739531367640197100
+1721798.6424959647,1721798.6424959647,0
+1872715.7613360914,1872716.7613360914,0.000053398386484799419266200
+2030103.5095141619,2030103.5095141619,0
+1806393.0827227673,1806393.0827227673,0
+1885584.2754280707,1885584.2754280707,0
+1920835.0800258562,1920835.0800258562,0
+2423142.437506696,2423142.437506696,0
+2138524.757449385,2138525.757449385,0.000046761207534146037991700
+1796618.2186055137,1796618.2186055137,0
+1946250.6500847363,1946250.6500847363,0
+2194100.9283641037,2194100.9283641037,0
+1591405.180544589,1591405.180544589,0
+2251652.6887759115,2251652.6887759115,0
+2138253.733434542,2138253.733434542,0
+2246795.597201214,2246795.597201214,0
+2257837.9895557584,2257837.9895557584,0
+1858391.1026607694,1858391.1026607694,0
+2396636.677747705,2396636.677747705,0
+1758148.6208079562,1758148.6208079562,0
+2289461.0797537724,2289461.0797537724,0
+2006437.196469319,2006438.196469319,0.000049839586395212209030100
+1670957.8820589283,1670957.8820589283,0
+2270626.580703251,2270628.580703251,0.000088081414046538930178800
+2080732.8351732153,2080732.8351732153,0
+2117316.2843580157,2117316.2843580157,0
+2221162.7402056404,2221163.7402056404,0.000045021464744515643292300
+2133872.483265725,2133872.483265725,0
+2226890.7659520824,2226891.7659520824,0.000044905660182773317795300
+1957286.547721945,1957286.547721945,0
+2082412.782010803,2082412.782010803,0
+2230327.874902987,2230327.874902987,0
+1747070.0966891488,1747072.0966891488,0.000114477375795634964123600
+2599480.4353078543,2599482.4353078543,0.000076938451731918561331500
+2102055.061176361,2102055.061176361,0
+2268737.901477913,2268737.901477913,0
+1808548.1550505355,1808548.1550505355,0
+1831951.8785344358,1831951.8785344358,0
+1866410.692983793,1866410.692983793,0
+2216998.306380878,2217000.306380878,0.000090212067110907476726100
+2185631.660987274,2185632.660987274,0.000045753363563020908725500
+2292416.4585263696,2292416.4585263696,0
+1745350.3744329433,1745350.3744329433,0
+1870771.1577755306,1870771.1577755306,0
+1947189.0054082195,1947189.0054082195,0
+2034115.5526735045,2034116.5526735045,0.000049161415568828789722300
+1892338.6084129978,1892338.6084129978,0
+2102136.284834028,2102136.284834028,0
+1867055.0493386043,1867055.0493386043,0
+2485905.44422047,2485905.44422047,0
+2709441.3697814904,2709441.3697814904,0
+1911979.1770712351,1911979.1770712351,0
+2343406.7166040265,2343406.7166040265,0
+2253030.842540907,2253031.842540907,0.000044384656486647429297500
+2183795.296188896,2183796.296188896,0.000045791837803899227022500
+2402236.7427615565,2402237.7427615565,0.000041627870484173130518200
+1704492.6619783347,1704492.6619783347,0
+2113972.859680699,2113972.859680699,0
+2459333.944451837,2459334.944451837,0.000040661415756732089088900
+2183893.1932182,2183893.1932182,0
+2098820.841973028,2098820.841973028,0
+2057429.1697055607,2057431.1697055607,0.000097208692743780852962500
+2239044.836168607,2239044.836168607,0
+1983711.7980555354,1983712.7980555354,0.000050410548597846484781500
+2105070.7184137395,2105071.7184137395,0.000047504342312715395824500
+1657567.2179191615,1657567.2179191615,0
+1816031.3607193353,1816031.3607193353,0
+1748769.479293705,1748770.479293705,0.000057183065683641800189100
+1595183.5257449113,1595183.5257449113,0
+1876295.5937783727,1876295.5937783727,0
+1639230.8989385325,1639230.8989385325,0
+2154126.2136321133,2154127.2136321133,0.000046422535210408164724200
+2049868.1124005497,2049868.1124005497,0
+2328950.3822986744,2328951.3822986744,0.000042937797541783600610800
+1713476.3952860227,1713476.3952860227,0
+2008541.8054075055,2008541.8054075055,0
+2011529.6253738538,2011530.6253738538,0.000049713411494704906671100
+1934929.616959817,1934930.616959817,0.000051681466407610792127900
+2429888.7384136394,2429889.7384136394,0.000041154147685496628865500
+2176193.591589575,2176193.591589575,0
+1821559.746081319,1821559.746081319,0
+2029408.069961864,2029408.069961864,0
+1747750.178735912,1747751.178735912,0.000057216415261548752588600
+2562654.3935849145,2562655.3935849145,0.000039022039120971488442400
+2015360.1764071807,2015360.1764071807,0
+2129659.522176671,2129659.522176671,0
+2298351.400213532,2298351.400213532,0
+2205008.4255904215,2205008.4255904215,0
+2258547.3195694736,2258548.3195694736,0.000044276247450534750147500
+2202661.9139356217,2202661.9139356217,0
+2189281.2343149562,2189281.2343149562,0
+2159956.30442609,2159957.30442609,0.000046297232863037223047400
+1989074.6594411621,1989076.6594411621,0.000100549267495163172063200
+1841519.0007365746,1841519.0007365746,0
+2085790.6789097295,2085790.6789097295,0
+1965581.9290825054,1965581.9290825054,0
+2110106.5224917256,2110106.5224917256,0
+2178571.415926061,2178571.415926061,0
+2194186.30299603,2194186.30299603,0
+2418730.9772447217,2418730.9772447217,0
+2047444.0440679474,2047445.0440679474,0.000048841383621559600317500
+2201219.648152599,2201219.648152599,0
+1990841.6866486496,1990842.6866486496,0.000050230011090604781484900
+2331283.227909883,2331283.227909883,0
+2424383.8999610306,2424383.8999610306,0
+2056520.7418631457,2056520.7418631457,0
+2158322.750806188,2158322.750806188,0
+1524995.504588514,1524995.504588514,0
+2177232.400913005,2177232.400913005,0
+2011621.8473841613,2011621.8473841613,0
+2274396.2203234197,2274397.2203234197,0.000043967712884160516706200
+2240420.418050899,2240421.418050899,0.000044634479847758708476100
+2081287.0363201327,2081287.0363201327,0
+1903502.8280453968,1903502.8280453968,0
+2082006.0635726338,2082007.0635726338,0.000048030599790091032098100
+1950125.0123390325,1950126.0123390325,0.000051278763857326923567900
+2140477.1800841987,2140477.1800841987,0
+2408840.5555293066,2408840.5555293066,0
+2134758.6997642624,2134758.6997642624,0
+1836680.9082386012,1836680.9082386012,0
+2103956.919064646,2103956.919064646,0
+2348851.714200625,2348853.714200625,0.000085147989032617649529000
+2346257.58845001,2346257.58845001,0
+2423415.5409149555,2423415.5409149555,0
+1982035.4822580796,1982035.4822580796,0
+2034443.2439583775,2034444.2439583775,0.000049153497054767624096400
+2135778.0567727676,2135778.0567727676,0
+1863641.1298395076,1863641.1298395076,0
+1989688.2665136484,1989689.2665136484,0.000050259129373678719003200
+2391422.8818614585,2391422.8818614585,0
+1727394.8488897104,1727394.8488897104,0
+2073505.5867818496,2073505.5867818496,0
+2088330.3382550864,2088330.3382550864,0
+1690735.8601691138,1690735.8601691138,0
+2179528.995818006,2179528.995818006,0
+2183462.808050996,2183463.808050996,0.000045798810784078368692100
+1832682.4388579375,1832682.4388579375,0
+2053200.4370733823,2053202.4370733823,0.000097408901921469788369600
+2522434.7761855046,2522435.7761855046,0.000039644236173758576018100
+1799237.2744032342,1799237.2744032342,0
+2088643.0676765009,2088644.0676765009,0.000047877974723198843158700
+2107648.586303969,2107648.586303969,0
+2328755.5481678923,2328756.5481678923,0.000042941389910449489883500
+1767411.7551692522,1767411.7551692522,0
+2256813.6648357906,2256814.6648357906,0.000044310259884604234488700
+1940629.4431578808,1940629.4431578808,0
+2388106.310436254,2388106.310436254,0
+2339992.167895225,2339992.167895225,0
+1854867.8663577195,1854868.8663577195,0.000053912196018772668096300
+2468386.009353384,2468386.009353384,0
+1922585.9466604446,1922585.9466604446,0
+2056420.4155960144,2056420.4155960144,0
+2415497.0942015094,2415498.0942015094,0.000041399346014554817615500
+2218757.2808924853,2218757.2808924853,0
+2260297.6132394406,2260297.6132394406,0
+2049368.6672805278,2049368.6672805278,0
+2283038.189915508,2283039.189915508,0.000043801282186918150738300
+2265236.5692146216,2265237.5692146216,0.000044145499573437896440800
+2249674.078228049,2249674.078228049,0
+2038564.181758357,2038564.181758357,0
+2342507.0299752285,2342507.0299752285,0
+2061290.9796768562,2061290.9796768562,0
+1959797.6718750084,1959797.6718750084,0
+1865949.8698464956,1865950.8698464956,0.000053592007811135146293200
+1895817.0818072464,1895818.0818072464,0.000052747704912897977749700
+1691066.1837736368,1691066.1837736368,0
+1688568.9952329218,1688569.9952329218,0.000059221743548717691192600
+2334915.727293719,2334915.727293719,0
+2369924.787345634,2369925.787345634,0.000042195431911576454072300
+2128086.406369923,2128087.406369923,0.000046990573174413247593800
+1790692.007896417,1790692.007896417,0
+2242013.569737067,2242014.569737067,0.000044602763047383133889000
+2247224.305186902,2247224.305186902,0
+1636553.2159770578,1636553.2159770578,0
+1806687.4591597668,1806688.4591597668,0.000055349916496629050625900
+2407332.0862368466,2407332.0862368466,0
+1712683.7396516032,1712683.7396516032,0
+2040188.8446172555,2040188.8446172555,0
+2134945.195848396,2134946.195848396,0.000046839609838444335394500
+2378266.3065907704,2378266.3065907704,0
+2362576.2572567454,2362578.2572567454,0.000084653352197920460413600
+1837117.084722854,1837117.084722854,0
+2401059.10516247,2401059.10516247,0
+2129986.0348574836,2129986.0348574836,0
+1956382.9354394272,1956382.9354394272,0
+2082187.8489552066,2082187.8489552066,0
+2198915.6451435154,2198915.6451435154,0
+2031789.6135475691,2031790.6135475691,0.000049217694259887876217000
+1899265.823737071,1899265.823737071,0
+1765822.8092500006,1765822.8092500006,0
+1939726.8996714335,1939726.8996714335,0
+2031626.7246376805,2031627.7246376805,0.000049221640366949771436100
+2010290.5270700757,2010290.5270700757,0
+2239449.7543996363,2239449.7543996363,0
+1905544.9089172552,1905544.9089172552,0
+2401414.5519684707,2401414.5519684707,0
+1936079.6710466864,1936079.6710466864,0
+2215208.4068058245,2215209.4068058245,0.000045142479458261447471900
+1768117.0310575338,1768117.0310575338,0
+2338595.458138827,2338597.458138827,0.000085521418124693603101400
+2100118.6998802307,2100118.6998802307,0
+1900581.4298568272,1900582.4298568272,0.000052615477784360495756300
+1834322.5753272185,1834323.5753272185,0.000054516038424790875794600
+1854052.563098038,1854053.563098038,0.000053935903431402461013300
+2112804.0296778893,2112804.0296778893,0
+2024209.945426898,2024209.945426898,0
+1848600.363478351,1848601.363478351,0.000054094980167502875545900
+2234573.4721644153,2234575.4721644153,0.000089502539295017825290300
+2102005.341471356,2102005.341471356,0
+1968137.3295666878,1968137.3295666878,0
+1972616.7678614403,1972616.7678614403,0
+2119564.5486100935,2119564.5486100935,0
+2051449.6251351833,2051450.6251351833,0.000048746017827959266011100
+1701122.5296778448,1701122.5296778448,0
+2449239.396478185,2449239.396478185,0
+2307230.3217688617,2307230.3217688617,0
+1926101.4919674057,1926101.4919674057,0
+2348022.0347921113,2348022.0347921113,0
+2222788.735027479,2222788.735027479,0
+2076471.479936362,2076473.479936362,0.000096317239091638973711000
+2178835.6848570574,2178835.6848570574,0
+2316380.3904092284,2316381.3904092284,0.000043170802349234739453000
+1968088.565220646,1968089.565220646,0.000050810721512824201962600
+2277013.013307795,2277014.013307795,0.000043917184230199440418300
+2159984.6967356424,2159984.6967356424,0
+2580668.805585384,2580669.805585384,0.000038749644969384818668700
+2317223.5725303506,2317223.5725303506,0
+2158956.286857871,2158956.286857871,0
+1900982.4121935612,1900983.4121935612,0.000052604379376981754477100
+2063358.3382025638,2063358.3382025638,0
+2180220.3289838457,2180221.3289838457,0.000045866923939108426742500
+2327918.850796919,2327918.850796919,0
+2274211.3221290023,2274212.3221290023,0.000043971287552286489971600
+1835433.7262446764,1835433.7262446764,0
+2287032.42117965,2287033.42117965,0.000043724784604680008356400
+1953823.345803684,1953823.345803684,0
+2300136.6897821575,2300136.6897821575,0
+1983147.0705313801,1983147.0705313801,0
+2149489.3916486166,2149492.3916486166,0.000139568030047315480355200
+1627105.9500872032,1627105.9500872032,0
+1973427.944286643,1973427.944286643,0
+2178023.8478967138,2178023.8478967138,0
+2199312.799355029,2199312.799355029,0
+2441091.78010159,2441091.78010159,0
+1975109.918740056,1975109.918740056,0
+2675000.2917427747,2675002.2917427747,0.000074766346985965786646200
+1967459.5587835864,1967459.5587835864,0
+1981811.2324783162,1981812.2324783162,0.000050458892532840734015000
+2181450.0238340865,2181450.0238340865,0
+2033899.6532509483,2033899.6532509483,0
+2415800.7066902304,2415801.7066902304,0.000041394143036328967697600
+2282065.328020943,2282066.328020943,0.000043819955008352979403500
+1873804.3040712327,1873804.3040712327,0
+2145944.236745958,2145944.236745958,0
+2176258.0356574706,2176258.0356574706,0
+1754217.4489195324,1754217.4489195324,0
+1878006.507582095,1878006.507582095,0
+2050984.8647655435,2050984.8647655435,0
+2060549.7199034365,2060549.7199034365,0
+2287675.0996974334,2287677.0996974334,0.000087425001927263134757400
+1930474.7401136982,1930474.7401136982,0
+2382360.2861517193,2382360.2861517193,0
+1832893.7258900215,1832893.7258900215,0
+1967611.5124432934,1967611.5124432934,0
+1948936.6987381876,1948936.6987381876,0
+2097977.571085059,2097978.571085059,0.000047664951893780595070600
+2341226.7538585784,2341226.7538585784,0
+2318624.984511746,2318624.984511746,0
+1739894.7236243275,1739894.7236243275,0
+2198445.5759747643,2198446.5759747643,0.000045486684361363461932100
+2250635.7997937705,2250635.7997937705,0
+2268756.7995804753,2268757.7995804753,0.000044077002884791966565600
+2254355.528363454,2254357.528363454,0.000088717151080952029304100
+2034561.6261616407,2034562.6261616407,0.000049150637028703722598300
+2040588.6500747628,2040589.6500747628,0.000049005467121625035073800
+2246448.799667251,2246448.799667251,0
+2128457.9881227077,2128457.9881227077,0
+2166425.48480334,2166427.48480334,0.000092317968655245605173800
+1922866.9100731784,1922866.9100731784,0
+2118592.417387517,2118592.417387517,0
+2181530.610590347,2181530.610590347,0
+2015546.616452745,2015546.616452745,0
+2190474.6057773684,2190475.6057773684,0.000045652206940108039391300
+2104412.1099452,2104413.1099452,0.000047519209534773137462600
+2087516.0786588618,2087516.0786588618,0
+2526468.463660007,2526468.463660007,0
+2119013.090134306,2119013.090134306,0
+2194725.510913366,2194725.510913366,0
+1995655.7923635573,1995655.7923635573,0
+2141631.447102267,2141631.447102267,0
+2057132.8165184017,2057132.8165184017,0
+2483403.7983838324,2483403.7983838324,0
+2327780.0439963476,2327781.0439963476,0.000042959385384333549048100
+1819320.0206122673,1819320.0206122673,0
+2077762.8881513763,2077762.8881513763,0
+2288422.3383543883,2288422.3383543883,0
+2137161.180511031,2137162.180511031,0.000046791042674698187448100
+2113939.6405298123,2113939.6405298123,0
+2008977.9964283344,2008977.9964283344,0
+2045342.985218914,2045342.985218914,0
+1826659.4742737755,1826659.4742737755,0
+2482584.3440869236,2482584.3440869236,0
+1735663.2360967332,1735663.2360967332,0
+2276605.9471801436,2276605.9471801436,0
+2254477.3720501973,2254477.3720501973,0
+2372792.0648796,2372794.0648796,0.000084288886059701310306900
+2569328.4706404796,2569328.4706404796,0
+2008217.525578071,2008217.525578071,0
+2287321.832439652,2287321.832439652,0
+2040630.8080969243,2040630.8080969243,0
+2058977.1485703595,2058977.1485703595,0
+1989128.6727796537,1989128.6727796537,0
+1939231.3500569533,1939232.3500569533,0.000051566823111158501632700
+2009777.223070134,2009777.223070134,0
+2261863.563005916,2261864.563005916,0.000044211331592036638111600
+2062628.8288604734,2062628.8288604734,0
+1835360.9781908386,1835361.9781908386,0.000054485194568412646167100
+1969056.0251791805,1969058.0251791805,0.000101571513173070004679200
+2082396.7035200794,2082397.7035200794,0.000048021589657225346465600
+2265000.9582589595,2265001.9582589595,0.000044150091696591201126800
+2104319.6249373546,2104319.6249373546,0
+1845164.6879672094,1845165.6879672094,0.000054195704400873029737400
+1963897.3498328861,1963897.3498328861,0
+2058274.9012707227,2058275.9012707227,0.000048584375166923878723100
+1949190.459368513,1949190.459368513,0
+1799626.0509782005,1799627.0509782005,0.000055567099590297792607300
+2112968.0109037384,2112968.0109037384,0
+2314952.1421240955,2314952.1421240955,0
+2122233.509324103,2122233.509324103,0
+1794623.2583486745,1794623.2583486745,0
+2378536.1217924273,2378536.1217924273,0
+2208400.9207602493,2208402.9207602493,0.000090563265990284655672400
+2107236.947840433,2107236.947840433,0
+2022006.3696093427,2022007.3696093427,0.000049455828380659494461300
+2225193.478020941,2225193.478020941,0
+2086764.2622563147,2086764.2622563147,0
+2492292.427689528,2492293.427689528,0.000040123702535462376509100
+2390306.909139034,2390306.909139034,0
+1849215.4514752862,1849216.4514752862,0.000054076987038054959776100
+2041253.402547722,2041253.402547722,0
+1919303.9233038991,1919305.9233038991,0.000104204444940496461764500
+2381418.8628603187,2381418.8628603187,0
+1631179.798379252,1631179.798379252,0
+2070585.0749626525,2070585.0749626525,0
+2210505.7068015053,2210505.7068015053,0
+2483786.9842847744,2483786.9842847744,0
+2172805.7837061076,2172806.7837061076,0.000046023441556489311029600
+2244621.6675480837,2244621.6675480837,0
+2315630.7929617064,2315633.7929617064,0.000129554331766463558512700
+1719395.1940330106,1719395.1940330106,0
+2171735.5657117865,2171735.5657117865,0
+2204516.341335245,2204516.341335245,0
+2086392.8853427225,2086392.8853427225,0
+2173208.582139297,2173208.582139297,0
+2231221.5215153,2231221.5215153,0
+2107242.2061939435,2107242.2061939435,0
+2314369.8399133827,2314370.8399133827,0.000043208305896235922473300
+2503413.009577932,2503414.009577932,0.000039945466296374208588900
+1748552.4859154061,1748553.4859154061,0.000057190162037170862756100
+1710324.0618973933,1710324.0618973933,0
+2026307.7649535858,2026307.7649535858,0
+2060277.6797482534,2060277.6797482534,0
+2209836.0485823513,2209836.0485823513,0
+2031545.6094211447,2031545.6094211447,0
+1622919.375940394,1622919.375940394,0
+2648053.1190274027,2648054.1190274027,0.000037763592913396226674100
+2006375.0539314265,2006375.0539314265,0
+2253890.585352262,2253891.585352262,0.000044367726033325142695400
+2156773.2853407897,2156773.2853407897,0
+2026619.5081688291,2026620.5081688291,0.000049343253431107020110600
+2538812.430133136,2538812.430133136,0
+2006099.496104612,2006099.496104612,0
+1903290.8947049319,1903290.8947049319,0
+1748482.328866429,1748483.328866429,0.000057192456766109677814700
+2175165.9743883535,2175165.9743883535,0
+2088714.8462645526,2088714.8462645526,0
+2213647.3754393165,2213647.3754393165,0
+1886844.068858403,1886844.068858403,0
+1891039.0545559737,1891039.0545559737,0
+2195389.3797422065,2195389.3797422065,0
+1901335.55047035,1901335.55047035,0
+1989844.4906934504,1989844.4906934504,0
+2325735.760185489,2325736.760185489,0.000042997145983611011716100
+2320134.6991408,2320135.6991408,0.000043100945836046642305000
+2351451.7539701597,2351452.7539701597,0.000042526919734228583602900
+1692905.8113076114,1692906.8113076114,0.000059070031736000334559700
+2130114.0599739263,2130114.0599739263,0
+2372247.739157751,2372247.739157751,0
+2042107.7220862762,2042107.7220862762,0
+1900309.125493077,1900309.125493077,0
+2268219.0628398033,2268220.0628398033,0.000044087452415112104632800
+2190852.5909906183,2190852.5909906183,0
+2088196.5533086953,2088196.5533086953,0
+1954282.605287685,1954282.605287685,0
+2293925.391237247,2293925.391237247,0
+2088220.7308973947,2088220.7308973947,0
+1979955.9813511895,1979956.9813511895,0.000050506173340155060652300
+2327135.782278683,2327135.782278683,0
+2126382.0749773514,2126382.0749773514,0
+2112969.013716813,2112969.013716813,0
+2084432.4621900737,2084433.4621900737,0.000047974689424540958880200
+2066243.9572169615,2066243.9572169615,0
+2328992.9380593835,2328992.9380593835,0
+1877454.2109769266,1877454.2109769266,0
+1898280.811794223,1898280.811794223,0
+1977062.8717693335,1977062.8717693335,0
+2444238.5907856002,2444238.5907856002,0
+2060831.648036543,2060831.648036543,0
+2133099.847970839,2133099.847970839,0
+2006781.4242836894,2006781.4242836894,0
+2228914.9990209197,2228915.9990209197,0.000044864878222779388088700
+1969668.1219305664,1969668.1219305664,0
+2121888.068227708,2121890.068227708,0.000094255678701774593224000
+1843819.2631196596,1843820.2631196596,0.000054235250710421843847300
+1862047.8178835874,1862047.8178835874,0
+2071777.2712758863,2071777.2712758863,0
+2054597.6062141152,2054597.6062141152,0
+2279087.8067681855,2279087.8067681855,0
+1852448.4919069444,1852448.4919069444,0
+1917491.3585526457,1917491.3585526457,0
+1678346.443609827,1678346.443609827,0
+2168494.876170464,2168494.876170464,0
+2329605.6293633245,2329605.6293633245,0
+1912611.989784249,1912611.989784249,0
+1950387.174498225,1950387.174498225,0
+2060031.9262693222,2060032.9262693222,0.000048542936992776640571400
+1824295.5108951752,1824297.5108951752,0.000109631361150398670141500
+1799157.2519167522,1799157.2519167522,0
+1877135.9493123551,1877135.9493123551,0
+2012207.6293521596,2012207.6293521596,0
+2030742.182496529,2030743.182496529,0.000049243080122097635680500
+2154987.199445702,2154987.199445702,0
+2223983.2837209897,2223983.2837209897,0
+1901322.7037519547,1901324.7037519547,0.000105189928887575028829300
+1786613.6066662944,1786616.6066662944,0.000167915434473702808936600
+2052873.1536956022,2052873.1536956022,0
+2269044.3016499025,2269045.3016499025,0.000044071418053533136389800
+2261897.609801893,2261897.609801893,0
+2219144.210878273,2219145.210878273,0.000045062416182688233793400
+2045080.7402876175,2045080.7402876175,0
+1737612.5768660773,1737612.5768660773,0
+1851664.1627566018,1851664.1627566018,0
+2068536.274772553,2068536.274772553,0
+2058583.6481648711,2058584.6481648711,0.000048577088470097008960700
+2125927.5265878984,2125927.5265878984,0
+2399248.9127556407,2399250.9127556407,0.000083359420915727909152000
+2123897.8242680356,2123898.8242680356,0.000047083244239615556393400
+2450205.5841102116,2450205.5841102116,0
+2084254.9902036535,2084255.9902036535,0.000047978774415806463525200
+2139736.4194130716,2139736.4194130716,0
+2369487.5463389545,2369487.5463389545,0
+2247279.4872437688,2247280.4872437688,0.000044498248022833804871800
+1880817.9769150978,1880817.9769150978,0
+2141743.2015235797,2141743.2015235797,0
+2087257.2847065218,2087259.2847065218,0.000095819524246202807472400
+2139607.9386984715,2139607.9386984715,0
+2135965.3379095164,2135967.3379095164,0.000093634478261590770946300
+2111172.1554738893,2111173.1554738893,0.000047367051398777690087100
+2101208.20368104,2101209.20368104,0.000047591666463519972850900
+2137554.339247556,2137554.339247556,0
+2115215.1372926566,2115216.1372926566,0.000047276514921311390341800
+2131592.611700786,2131593.611700786,0.000046913279512735109271600
+2463426.442207484,2463427.442207484,0.000040593864824471759449600
+2061930.1767377446,2061930.1767377446,0
+2413032.128580326,2413032.128580326,0
+1907229.529297022,1907229.529297022,0
+2328143.567745177,2328143.567745177,0
+1836858.454572246,1836858.454572246,0
+2072237.4906636947,2072237.4906636947,0
+2485359.356937515,2485361.356937515,0.000080471260400122588779700
+2187944.6182619412,2187945.6182619412,0.000045704995988169923842800
+1851882.9416803212,1851882.9416803212,0
+1858776.3166736942,1858776.3166736942,0
+2207505.346634849,2207506.346634849,0.000045300003532241203100600
+1712735.6739792868,1712736.6739792868,0.000058386125494580761166200
+1886573.8688825346,1886573.8688825346,0
+2004773.5590521072,2004773.5590521072,0
+2623783.0277888104,2623783.0277888104,0
+1807932.615649299,1807932.615649299,0
+2008136.5012190614,2008136.5012190614,0
+1994968.5276455902,1994968.5276455902,0
+1892920.6740598048,1892920.6740598048,0
+1718717.6639385275,1718718.6639385275,0.000058182912818179223280000
+1812748.0592801992,1812749.0592801992,0.000055164863913691189626700
+1891918.31772801,1891918.31772801,0
+2079134.7300674838,2079134.7300674838,0
+2159816.3931074096,2159816.3931074096,0
+1772215.6148133238,1772215.6148133238,0
+2042007.5988204784,2042007.5988204784,0
+2436316.6265438194,2436316.6265438194,0
+1491174.050796534,1491175.050796534,0.000067061252807198084241600
+2062763.844008351,2062763.844008351,0
+2300390.384569403,2300390.384569403,0
+2080293.01209332,2080294.01209332,0.000048070151377076342529700
+1931031.8459626134,1931031.8459626134,0
+2004913.5747019108,2004913.5747019108,0
+2402197.3057145323,2402198.3057145323,0.000041628553891935639734300
+2557543.2952258335,2557543.2952258335,0
+2321133.1467345716,2321135.1467345716,0.000086164811476396787827700
+2233631.16065849,2233631.16065849,0
+2169317.3245361126,2169318.3245361126,0.000046097451428127983424700
+1998827.178982016,1998827.178982016,0
+2045017.101397425,2045018.101397425,0.000048899346578406035686900
+1691113.7571684732,1691113.7571684732,0
+2106380.472464424,2106380.472464424,0
+1621116.279150583,1621116.279150583,0
+1909926.0544680092,1909926.0544680092,0
+2176024.062442092,2176024.062442092,0
+2397605.9181154296,2397605.9181154296,0
+2111974.5060961456,2111974.5060961456,0
+2039305.1862621417,2039305.1862621417,0
+2367858.7922519622,2367860.7922519622,0.000084464496216765166197900
+1896809.7693502286,1896809.7693502286,0
+1924654.143800602,1924654.143800602,0
+2640239.2889223504,2640239.2889223504,0
+1733117.902739605,1733117.902739605,0
+1860748.2533764427,1860748.2533764427,0
+1900054.456988554,1900055.456988554,0.000052630070486765214183600
+2061995.3886291771,2061995.3886291771,0
+2081650.1877445513,2081650.1877445513,0
+2016527.5182809017,2016527.5182809017,0
+1888414.6741150792,1888414.6741150792,0
+2399808.6798504177,2399808.6798504177,0
+1889680.9163080032,1889681.9163080032,0.000052918987082420628235100
+2078391.9404704226,2078391.9404704226,0
+2193781.907766033,2193781.907766033,0
+2276860.9566753674,2276860.9566753674,0
+2497347.758786015,2497348.758786015,0.000040042480927290223568200
+1985904.8352163727,1985904.8352163727,0
+1750291.702100244,1750291.702100244,0
+1834781.4805386197,1834781.4805386197,0
+2156308.850932095,2156308.850932095,0
+2009738.1681984935,2009738.1681984935,0
+1925433.6137190904,1925433.6137190904,0
+2207223.862330732,2207223.862330732,0
+1751802.530221702,1751803.530221702,0.000057084059575678513317000
+2332333.6500244034,2332334.6500244034,0.000042875512257413811171400
+2079891.2833558547,2079891.2833558547,0
+2317286.0911026374,2317288.0911026374,0.000086307858476306536495600
+1907068.1322684141,1907069.1322684141,0.000052436511474318579392100
+2367789.0975589417,2367789.0975589417,0
+2154986.6828413433,2154986.6828413433,0
+2474048.2605548003,2474049.2605548003,0.000040419583398739038334800
+2187114.707532291,2187114.707532291,0
+2006985.3684063978,2006986.3684063978,0.000049825973609066608863000
+1997360.5076490392,1997360.5076490392,0
+1842316.8574452773,1842316.8574452773,0
+2103059.694223865,2103059.694223865,0
+1935714.9264061544,1935714.9264061544,0
+2160832.5280617564,2160832.5280617564,0
+1862073.2700686299,1862073.2700686299,0
+1830869.1748095474,1830870.1748095474,0.000054618867025494766251000
+1939810.9737636626,1939810.9737636626,0
+2005778.6875761498,2005778.6875761498,0
+2119597.1494104313,2119597.1494104313,0
+1938286.5593231693,1938286.5593231693,0
+2229337.4625285626,2229337.4625285626,0
+2055235.9063501635,2055236.9063501635,0.000048656214934268654701100
+1882179.1811857733,1882179.1811857733,0
+2170681.1969330385,2170681.1969330385,0
+2183423.085232537,2183423.085232537,0
+2053943.705389538,2053943.705389538,0
+2242596.908266064,2242596.908266064,0
+2001423.5317480508,2001423.5317480508,0
+2277669.377758537,2277669.377758537,0
+1822829.0757077013,1822830.0757077013,0.000054859778863893568821700
+1990387.0078338678,1990387.0078338678,0
+2411169.1493615843,2411170.1493615843,0.000041473656058712194326700
+2314355.763872285,2314355.763872285,0
+1919713.5983429938,1919713.5983429938,0
+1971906.2390345547,1971906.2390345547,0
+2514967.6537464857,2514967.6537464857,0
+2461702.942851436,2461702.942851436,0
+1966468.7415817557,1966468.7415817557,0
+1996752.200453638,1996753.200453638,0.000050081327055646264965900
+2267957.141750881,2267958.141750881,0.000044092543972325333837100
+2037138.7480954644,2037138.7480954644,0
+2221908.0416867095,2221908.0416867095,0
+2170872.840610677,2170872.840610677,0
+2274071.4014448947,2274071.4014448947,0
+2360298.0795833985,2360298.0795833985,0
+2170735.034058583,2170736.034058583,0.000046067345130111000985400
+2013367.2697885025,2013367.2697885025,0
+2176332.887042325,2176333.887042325,0.000045948853043296043916700
+2189148.7582626753,2189148.7582626753,0
+2299870.572910421,2299870.572910421,0
+1853289.1520688676,1853289.1520688676,0
+2328241.759265391,2328241.759265391,0
+1982123.6339964503,1982123.6339964503,0
+1950500.0180853072,1950500.0180853072,0
+1952283.5427682048,1952283.5427682048,0
+1864386.3606376294,1864386.3606376294,0
+1882450.1843781336,1882450.1843781336,0
+1976655.5921804064,1976655.5921804064,0
+2006904.5453475374,2006904.5453475374,0
+2169828.5853298465,2169828.5853298465,0
+2324615.749855173,2324617.749855173,0.000086035724404112942670700
+2194565.564908539,2194565.564908539,0
+2162217.492082167,2162218.492082167,0.000046248816488716055468300
+2022753.7638255935,2022754.7638255935,0.000049437554777241897691900
+2114302.682161282,2114303.682161282,0.000047296917723141717694300
+2180075.765131902,2180076.765131902,0.000045869965438540463812100
+1787913.9678050675,1787913.9678050675,0
+1622604.6338359956,1622604.6338359956,0
+2021550.5730938606,2021551.5730938606,0.000049466979125313723988000
+2216779.996040566,2216779.996040566,0
+2006270.3026522396,2006270.3026522396,0
+2040743.8250708275,2040743.8250708275,0
+2045724.6819387276,2045724.6819387276,0
+2230193.282318418,2230194.282318418,0.000044839162951851456280100
+1873501.7911281763,1873502.7911281763,0.000053375983131450588439900
+2135319.099009069,2135320.099009069,0.000046831408030025436028900
+1722033.4640757595,1722033.4640757595,0
+1911321.7128253302,1911321.7128253302,0
+2068315.5855278363,2068316.5855278363,0.000048348521231338056789100
+2190246.5844745804,2190246.5844745804,0
+2102139.6261179503,2102139.6261179503,0
+1967320.3866554692,1967320.3866554692,0
+2258431.150381693,2258432.150381693,0.000044278524932273977138400
+2304935.8179393425,2304935.8179393425,0
+2204213.7931051664,2204214.7931051664,0.000045367650049556171759700
+2272548.824399562,2272548.824399562,0
+2140728.8140602,2140728.8140602,0
+2424346.4462380167,2424346.4462380167,0
+1666493.3197899486,1666493.3197899486,0
+1919468.026477706,1919469.026477706,0.000052097768038107756312000
+1650525.854942415,1650525.854942415,0
+2294425.2050680895,2294426.2050680895,0.000043583900568697070488300
+2447279.764269394,2447280.764269394,0.000040861695283070264386900
+1938550.6439003318,1938550.6439003318,0
+2032370.7758185246,2032370.7758185246,0
+2095258.594304417,2095259.594304417,0.000047726805785134103436100
+2004929.0724575238,2004930.0724575238,0.000049877076138871037033200
+2231138.242098159,2231139.242098159,0.000044820172104602602074600
+2223377.2220626883,2223377.2220626883,0
+2240131.8059852626,2240131.8059852626,0
+2063853.5545982386,2063853.5545982386,0
+1778750.4774404094,1778751.4774404094,0.000056219240004870295452700
+2048468.9659616086,2048469.9659616086,0.000048816946539903867102300
+2267591.966062164,2267593.966062164,0.000088199289375378385507400
+1828552.2025891899,1828553.2025891899,0.000054688075001852389220100
+1877531.6387093263,1877531.6387093263,0
+1807792.5138354574,1807792.5138354574,0
+2122397.969623807,2122398.969623807,0.000047116516992204298626600
+1839147.9485210034,1839147.9485210034,0
+1855604.8195356177,1855604.8195356177,0
+2395411.413402941,2395412.413402941,0.000041746482228678697311600
+1792758.7047680616,1792759.7047680616,0.000055779955068151523167600
+1801394.5917509675,1801394.5917509675,0
+1850229.973629293,1850230.973629293,0.000054047335426009979797700
+2096682.0412768126,2096683.0412768126,0.000047694403839650949864700
+1818423.019464903,1818423.019464903,0
+2095541.592026087,2095541.592026087,0
+2043919.0605355662,2043921.0605355662,0.000097851232889620486595200
+2144372.8944314276,2144372.8944314276,0
+2157836.202691983,2157836.202691983,0
+1959440.2402624188,1959440.2402624188,0
+1989028.139210042,1989028.139210042,0
+1873836.953264988,1873836.953264988,0
+2329309.2656737645,2329309.2656737645,0
+2228912.938743287,2228912.938743287,0
+2221033.9014406856,2221033.9014406856,0
+2180861.671648669,2180862.671648669,0.000045853435502125570279300
+2249510.996655681,2249510.996655681,0
+2320069.05389631,2320069.05389631,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0
+100000,100000,0

+ 1 - 2
script/research/lotterysim/utils.py

@@ -14,7 +14,6 @@ def fact(n, hp=False):
     else:
         return (Num(n) if hp else n)* fact(n-1, hp)
 
-
 # all inputs to this function are integers
 # sigmas are public
 # stake is private
@@ -25,7 +24,7 @@ def approx_target_in_zk(sigmas, stake):
     # secondly the reward, or at least the total stake in the network,
     # can't be anonymous, should be public.
     T = [sigma*(stake)**(i+1) for i, sigma in enumerate(sigmas)]
-    return -1*sum(T)
+    return -1*sum(T) #+ F_MIN_HP*L_HP
 
 def rnd(hp=False):
     return Num(random.random()) if hp else random.random()