Skip to content

Instantly share code, notes, and snippets.

@greghelton
Last active June 27, 2026 21:43
Show Gist options
  • Select an option

  • Save greghelton/a031cd2ad5d1b5e280b1475f6f874184 to your computer and use it in GitHub Desktop.

Select an option

Save greghelton/a031cd2ad5d1b5e280b1475f6f874184 to your computer and use it in GitHub Desktop.
Swift Model Training and Gameplay for Backgammon
/// Selects the best legal move for the current player using a trained NeuralNetwork.
public enum AIPlayer {
/// Returns the move that maximises P(currentPlayer wins) according to the network.
public static func bestMove(for state: GameState, network: NeuralNetwork) -> Move {
let moves = uniqueByResult(MoveGenerator.legalMoves(for: state), from: state)
let player = state.currentPlayer
return moves.max { a, b in
score(move: a, state: state, network: network, player: player)
< score(move: b, state: state, network: network, player: player)
} ?? Move([])
}
// MARK: - Private
private static func score(
move: Move, state: GameState, network: NeuralNetwork, player: Player
) -> Double {
let result = GameEngine.applyUnchecked(move, to: state)
if let winner = result.winner { return winner == player ? 1.0 : 0.0 }
return network.evaluate(result, for: player)
}
/// Keeps one representative move per unique resulting board state.
private static func uniqueByResult(_ moves: [Move], from state: GameState) -> [Move] {
var seen = [GameState: Move]()
for move in moves {
let result = GameEngine.applyUnchecked(move, to: state)
if seen[result] == nil { seen[result] = move }
}
return seen.isEmpty ? [Move([])] : Array(seen.values)
}
}
{"b1":[-0.0022122426987137853,0.027128007908985265,0.020788261719256667,-0.06340951301574115,0.1066821317134824,-0.059555446597347024,-0.0028410265171891474,-0.011995322416548986,-0.007057054581876339,0.03303402113340129,-0.0036986769089896354,-0.0036331834133831063,-0.03523872344603352,0.03814390513617305,-0.004377348194365942,-0.2084291020346614,-0.0016371059479373085,0.007123157693252921,0.006013228811542505,-0.0021095924079870187,0.0009935804328961044,0.005826427079505951,0.1305702188537365,-0.04008918366963748,0.12132990030870876,0.03747452218203013,-0.027856205442072096,-0.004218130880651822,-0.0024869103473491912,0.12269357077099753,-0.03472379250554363,-0.039334947696494676,-0.01084363291176679,0.015275216878399061,-0.007370959737671132,-0.003974945132737516,0.002453668134052247,-0.003980571281238823,-0.004875018141662589,0.002713558459113947],"w1":[-0.014538569857875534,0.0987400319373217,-0.04799876943079367,-0.05254315336961208,-0.05868809863505916,-0.1013244065978397,-0.04939652666413718,-0.05832277458805832,0.07708598761572387,-0.09030666347414115,-0.05363713885802113,0.04596938399001424,-0.03281696096553429,-0.045639300506658785,-0.04274557802711433,0.13752978074740663,-0.07729471356714138,0.01736742120696092,0.06335569945189533,-0.07328149107920927,0.014646875172858882,0.10227826196119347,0.025219766474762952,-0.13721868062039136,-0.021067625381548258,-0.05201032273117883,-0.010225705087620315,-0.06792166948388287,0.025337166298307675,-0.0659846774473231,0.10031108645029717,0.019279240885860756,0.04840776695749986,0.06360120069557165,0.06549576236167268,0.05856582125121825,0.05992675500326014,-0.0268372445008926,-0.07289344464621614,-0.03949066498859352,-0.08201280691379448,0.037707728230078584,-0.051066865967817746,0.04695590369645071,-0.0939818851323938,-0.0755097617581661,0.09238399874602761,-0.055036717041267204,0.029661700250691928,0.00662312705036415,-0.09705852078587938,-0.03544597308183557,0.08010349505044374,0.03293084135160748,0.003669063020551283,0.061439178268600535,-0.017113585964177915,0.016113712624964888,0.025930855056417526,0.06743499561594807,0.06486191283653639,0.07361351657446512,0.09652428602229328,0.07029181148092566,-0.06487985746811617,-0.011437877330851727,-0.015859257827291712,0.015456642729117492,0.030454983598948614,-0.10417656914890956,-0.07407956691404263,-0.04511269049881647,-0.030532404305617593,0.011423990390621242,-0.00771494163655668,0.08046647586439606,-0.03989399341090943,0.08569121002712955,-0.06860105278210087,-0.09440961267042884,0.06218844348453683,-0.046592414876076724,0.09298966017482567,0.012617373371717505,-0.005168943614068392,-0.08113739624708852,-0.07219981345470675,-0.023899778091729808,0.024995360096372207,-0.06927021213249739,-0.07954936653343132,0.08403513064443519,0.05763341307034185,-0.06741892512259605,-0.06339043679682144,0.05740976115534904,-0.09302066299286527,-0.012793005210155525,0.09891283751250105,0.0036260658269880197,-0.027431430959140624,-0.0671337012194897,0.005452406230771583,-0.06217561602664171,-0.01964974609540427,-0.13443625689353228,0.09796591803305035,-0.07186952066961667,0.05959849465768946,0.04192342000077702,0.08517107723214795,-0.06730741196960174,0.008294097734842694,0.061442399413233914,-0.11108824022189207,0.0857545461402021,-0.11180197957068476,-0.06475652603293788,0.09475631574769673,-0.012718664546298317,0.005188686553228863,0.02337477781463789,0.07658711057515218,-0.08826377813578162,-0.008508585891496868,-0.08796461901049468,0.018046620970968423,-0.030932099187276386,0.003877039391905998,0.009704062643930225,-0.05972734724617316,-0.09267955783706354,-0.016059186834268307,0.04151056717329617,-0.06355231256485384,0.05595700500974545,-0.08780626954337588,0.0934124453016434,0.08976638929984006,0.0012322164538172038,0.03208836964284559,0.04250191078649912,-0.019051963019306613,-0.08969835092956649,-0.005942134950176336,-0.02737571633387399,0.08529521934058194,-0.0883247100755668,-0.01927158683753684,-0.017670860201806412,0.08281384730743425,0.05600301754306469,0.06245721456110277,0.01100068329433529,-0.0857172373880238,-0.06604843246884122,0.05686975551801797,0.00985269766627632,0.022113893371313743,-0.09136628681099189,0.041041843450326715,-0.07298251213054888,-0.07952936852116377,0.110111094842525,-0.21149190939250664,0.07428970891686532,-0.008274824237521293,0.08057894594969695,0.028336169675041278,0.2411220548006038,0.014545556946524563,-0.08877444465837327,0.06838913760688159,0.002873676428016893,-0.01684966608716319,0.18792342490107314,-0.009577279916243839,0.04138125186829241,-0.024074430227050764,-0.01089613368655698,0.021070298873717523,-0.039578686242374234,0.36813966021784317,0.0029773719590297874,0.37455161397176157,0.03249960222171527,-0.08160098580048465,0.0452405941306235,-0.030432276705390924,-0.2979422137394194,-0.06764627457221747,-0.20145138627390785,-0.1697596692204049,-0.018138983139900155,0.11258123900378718,-0.014860382952536524,0.057426059522911896,-0.05941733692447491,0.08889879512854108,0.08832415555502923,-0.0027987749769247546,-0.10146972896757339,-0.059343729450547736,-0.0157817283678292,-0.1572603781325442,0.08344114358076131,0.07503433394907856,0.07898688928383162,-0.05594271441068531,0.19857963460004843,-0.06437431618148459,-0.0802112919069147,-0.004202241856580497,-0.10846487662407701,-0.05817580663660468,0.20730983643617823,0.03545623173151831,-0.09489125214112792,0.01511990250048501,-0.000958140634239053,-0.12797459129227687,0.019169464959312703,0.16256459026259237,0.1674931482936426,0.22152261943330281,-0.00035339463095845094,-0.14916757528821117,-0.05954994365796899,0.036756872871995284,-0.16810790935307876,-0.15360825575498904,-0.050110520276837614,-0.12870056479774955,-0.1765351210233009,-0.014440744798981095,-0.12163954600521958,0.03915529365357954,0.022797793454482018,0.00036526690400926414,0.022473687567677682,-0.008369016822348184,-0.1316925204927623,0.05806717159755917,0.036442996996167855,-0.05596921961477203,0.2316376228055037,0.05926033511873565,0.19826648134037608,-0.1558861072970585,0.18344096781958058,-0.08639796481945235,-0.09911507496773868,0.1224526158078837,-0.16397926817800415,-0.02894192724976863,0.10764818102199336,-0.00922020125658849,0.0022012707968919808,-0.09041030342136525,0.04053343077373324,-0.06994093854620308,-0.11677711107005817,0.1722811612025759,0.05214235194140096,0.08973041956155511,0.18023619706969798,-0.11835477582695561,0.10516927282554557,0.01962755979725121,-0.087650318203862,-0.07996468410139065,-0.01282302012390565,-0.19114310803769638,-0.14762636079982358,0.011698272703726751,-0.001713700857538651,0.09450300156470517,0.0714785016724115,0.030893744766548485,0.05470042931979329,-0.12005226559568147,-0.1869852704297303,0.041118498222465334,0.13492068554150138,-0.0413671189936146,0.2691397372297396,0.09622495162964669,0.15019842502684422,-0.05717289182260234,0.11353234704081493,0.0449210009914226,0.08901439186004974,-0.0358178731909818,-0.13713429948938308,-0.0651212407834018,0.17299176744972836,0.042786483002422146,-0.10206584871012127,-0.1603374428098894,-0.030033970816779675,-0.08723884958631932,-0.09231235886670801,0.1550144189763524,0.19089693569637523,0.11232861665890509,0.04194794966313552,-0.025822902814395265,-0.02184861091152808,-0.01145686621051173,-0.2600445328729005,-0.0722976002778205,-0.20880993111036947,-0.1868896282841682,-0.09404072564770467,0.10413932153796784,-0.060209899244099425,0.11728820045018423,-0.028707533099539388,0.02332294999962029,-2.6422940809785215e-06,0.07334479918978269,0.030137701626546207,-0.03593208428980206,-0.0013029469747195667,0.047041875044174106,-0.06055681640624609,0.08546834383261723,-0.03591577969147593,0.003623941469244441,0.006463041834674374,-0.08794637350245663,-0.05263684683726669,-0.04610494609448811,0.06802152381620094,-0.07008232445062446,0.04380437676440368,0.02311312533848464,0.06449322652344121,-0.033734282969378394,-0.02692443604304812,0.07531675247379738,0.06290440849705858,0.01640752206050277,-0.11001135742754649,-0.04793147563574453,-0.12845163425552253,-0.03383494168679288,0.052797923424321325,-0.07137077352715025,0.03350705585110775,0.06294095972339538,0.008328890538500501,0.13658888626440363,-0.024109483857175103,-0.11324205471411135,-0.030900560286637076,-0.01845235853860089,-0.07710858129652393,0.01475576370730441,-0.043753198504764994,0.07596843744504503,-0.0006724206875026963,0.11695175096474779,-0.0847488880595395,-0.10509616240345401,-0.02907749966840395,0.043662153708341846,0.008420360158904518,-0.003899783164029716,-0.0670863233985339,0.016409808660691128,0.03520000259675638,0.04332790974621874,0.009456923916006634,0.028714643494783594,0.03870855856512669,0.04112681123181258,0.040670547583662786,-0.09617169157597273,0.036993966571389154,0.06802046668370251,-0.07634068257206486,0.0446379551284622,0.10135645148239315,-0.025074976378889995,-0.044436775844402754,-0.025817094667650142,0.08046557276395101,-0.04718246311610955,-0.03029865045780416,-0.03011082825695533,-0.029787652858260957,-0.06718067324418822,-0.08170896226497529,6.0169827752190975e-05,-0.02155076314578264,0.09142422501511106,-0.02775720978832401,0.045511089920614305,0.06701456451001754,-0.0004684532429775559,0.05630459365373041,0.023271505359723228,0.01762163676690364,-0.0273939599269283,-0.030955874687358182,-0.016974760743529212,-0.14576653566465347,-0.007609995258928913,-0.08670777017470073,-0.11537749834384756,0.034145257823944786,-0.03920377261240101,0.05590593976707211,-0.008216372224426782,-0.04316486599237956,-0.05742716700251308,-0.04102037902084883,0.042189413276001356,-0.02958046701936764,0.10038775506252119,0.03555243065341881,0.022011282520605732,0.02803080429286712,-0.0845220280412071,-0.011305911826550686,-0.02286449903885344,0.020939676257748587,-0.08817985405036839,-0.07412907498001536,0.078855863075895,0.04768224867366174,0.015508167931989433,0.016097687829017823,-0.038949937440144855,0.04570658997050223,-0.06637087674799903,0.029243985298433483,0.07332592472381558,-0.04308047118297856,-0.007528558721549244,0.062095813121585804,0.11797414994293579,-0.07930984184320339,0.024157952834306277,-0.15871861919039243,-0.0325899319244956,-0.1541845569904369,0.12235795400724989,-0.10566055580220964,0.023729229048046273,-0.002284817167150717,0.03407080806293787,0.05563263542839135,-0.027509987732406486,-0.02349793864793303,-0.047804769201580735,-0.06606589210268551,-0.02882960770528793,0.04891527929389893,0.08100882657749935,0.104856934352744,0.00959246653142205,-0.04265262567363479,0.00933612329480764,-0.05211310539373449,0.005490711874181907,0.07616084268295457,-0.002914053619731938,-0.002929836512933936,0.008134516363620576,-0.01518109153660626,-0.004298802967894976,0.09693855949198239,-0.12550203208592092,0.08626242860230061,0.0023041013703531013,0.07998105315623405,0.06337174924024269,0.039958376039890456,0.041932930854909754,-0.15988897884230155,0.06676818716935025,0.024877395187897885,-0.07944403418083229,0.07309739717430681,0.0926504457661502,0.08992544015117666,-0.10284838608716497,0.10419415379238908,-0.07929635942893108,0.05394570597867927,0.09603258916408483,0.015034162021886293,-0.07289528713324342,0.12457228130461394,0.07137304292552929,-0.07892670567721279,-0.08190779841389566,-0.08850305192537415,-0.014827453515668092,-0.03619425552350145,0.23214336489294615,0.015759784319224996,0.26271417460847263,0.1810653208908888,-0.07618378619939817,0.028131057386860805,0.025362556455598356,-0.132407323280072,-0.1596477175819619,-0.17591476444372756,-0.08690052627396937,-0.1411093205673094,-0.009360880744496324,-0.11169991411590781,0.05156816631419655,-0.09414014068761382,0.08445355895294761,0.11579045571560281,-0.09705502811572085,-0.15334624822167345,-0.07416875601460829,-0.01234146747065318,-0.12933514785956424,0.18039290633790975,0.10016601786254384,0.15229350336823963,-0.0909133559779106,0.1300695933034445,0.05076926179289637,0.07856835891658313,0.09970389723454186,-0.11405121993705587,0.10162569557149448,0.0452032464558613,0.09605698229074434,-0.06315863223430875,-0.12790652473789121,-0.07802720837502392,-0.0629164587972228,-0.03850641296738949,0.08562662537827874,-0.0048167899616897115,0.20958906669781657,0.01813989674923923,-0.006974498085469736,-0.07762827040553458,0.03695930026753872,-0.1522975629137261,-0.16906359486232703,-0.0013216602133667569,-0.012889235950407038,-0.06288708396581337,-0.07673405232347606,0.07296145434118796,0.05413504530822842,0.01381424270346222,0.08306216904088888,0.12114473340947793,0.005564087361831902,-0.0553640856651081,-0.03006444449844814,-0.00972787275222648,-0.10171006662991014,0.23985233463233194,0.05389698350308168,0.1855843925103628,-0.06149814877916323,0.1680600006924199,-0.0656612628213712,-0.02632755738589413,0.10103054758012647,-0.04780333963433133,0.05662066573165659,0.08815821015340113,0.019816191027277788,-0.10650052302361501,-0.13216522882742815,-0.028634798150496164,0.030750916383526172,0.019502087552473953,0.1044485640320013,0.17399877929270963,0.17482230248472927,0.008266520334961955,-0.07472869946658589,0.062308691432850435,0.07065523225411288,-0.20530589929486817,-0.05388553973939808,-0.10082294395946685,-0.11523178707946441,0.0075624179854487435,0.029881089635123197,0.023360532729888462,0.14466265409912973,0.06011478069249881,-0.008266183075631619,0.09136027548735522,-0.027480221525394102,-0.15846626637950903,-0.1301164853257084,0.1736793473980988,-0.04262337885475881,0.2673563094019779,-0.00921116775167943,0.06374091425946639,-0.14851488732174806,0.21131887239954264,0.0032111645236471797,-0.05926501841003944,-0.0563598081562528,-0.17759679195803313,-0.03795222602982513,0.2147474437175326,0.1039233553861424,-0.07271795096066566,0.017577357103706906,-0.011208212050693297,0.04226433094342558,0.03382681325599377,0.22040352794558973,0.14417605889662244,0.12204330880603358,0.05307078405000094,-0.08105565162617821,0.037298156511571076,0.07322946349394883,-0.23950967777060428,-0.07154600266882263,-0.18563158956253506,-0.18715917256177517,-0.03367932583767819,0.06239716368306678,-0.041677442005092456,0.13848658655199322,0.047478427131928284,0.007946381555910575,0.1251476833333513,-0.0021459735241973563,-0.013790715954537363,0.14211546052071597,-0.0708646309368781,0.09143105267794785,-0.08544169650254621,0.06589467459339579,-0.041610265955242864,0.028904067260063022,-0.00030242776816958515,-0.09965106843853035,0.015674415998757796,-0.0441568607596787,0.02748161944843611,-0.07529365236204857,-0.05808705905620312,-0.018221714933525313,-0.08465525558676018,-0.062023781370427994,0.05718141788066542,-0.02764140191999737,0.019670966968405933,-0.05656213909534998,0.004492423311835422,-0.019810675392445017,-0.07817171170839612,0.10517529103304464,-0.008847081949457762,0.03853864474733781,0.015542288709078242,0.057185872001431076,-0.06677895721400999,0.09641206831504254,0.005788434230105459,-0.10984881273399928,0.05233486602936454,-0.10164395886465308,-0.022308172957808903,-0.05526896111110936,0.06820939968510502,0.0794863482095043,-0.005578286839347002,-0.015676186039373152,0.07490934020490614,-0.011600106043453691,0.05035019810165548,0.057952165265943836,-0.055196979817933034,-0.00540545818891366,0.007834455377115166,0.032057921197759895,0.04814255001326677,-0.08516455934297372,0.05482034822512999,-0.07068542075490011,-0.025671397688682995,0.07442633135221806,-0.03919554130796241,-0.060086955445590826,0.06588753531360289,-0.09856972821550089,-0.05331773486156829,-0.06492745283263597,0.03701014735630782,-0.05411000135543834,0.03371901234429565,-0.04106234996279029,0.06553156361698369,-0.056643479088791,-0.09253075436790782,0.006098836354005623,-0.07138461739963531,-0.10620247892860733,-0.11634796175799861,-0.01890999581568099,0.03080667783503736,-0.023711788861059502,-0.064135409605805,-0.04939750221640922,0.03361402846180628,0.09865587876849788,-0.03853489303041962,-0.0599425663192642,0.031439538718647804,-0.06568532227531439,-0.0493412031968695,0.08925540365936008,-0.08647051454395872,-0.026561745584452404,0.01271453750241421,0.06743082205763118,0.03277797246111212,0.06907788184055633,0.043418189635641494,-0.0641470521973532,-0.036841886439518495,-0.11819157952472167,0.038955616163458544,-0.012465845394591052,-0.0674925644895395,0.064946489314377,-0.045792536354975585,0.04046083908381138,-0.1238280078965108,-0.05888990753053196,-0.019870580573214225,0.054170397709714525,0.05740044902389445,-0.03801581835312182,0.03298543587121324,0.11255945381780272,0.05377705471411315,-0.037202572587783575,0.01161629108079669,-0.055881945216373095,0.007021779996683658,0.019920425677681083,0.043623106337230114,-0.02352873217484224,0.040241962771864974,0.031189167073888326,0.09717151829277852,0.08747809945783885,-0.07874346517812918,0.07464077135815195,-0.11489731628183894,-0.0019792420998869962,-0.05388401382547667,0.0012702990157876348,-0.03836896516235882,0.0433877479718767,0.08711141891760349,-0.030480196957428794,0.054378089395487925,0.06631314354788642,-0.06965404148766462,-0.020322434061403757,-0.00642685285557078,-0.06292183196486291,0.0810568859391555,-0.051733601602400106,0.03252151264224137,-0.06587259143709458,-0.13132441782383042,-0.028235348640520623,-0.10523717075026567,0.10434540264239794,0.05882919719032784,0.08912671654700942,-0.016749085776361364,0.12697210659814676,0.11241673446465036,0.0464912835129437,0.021132255465992757,-0.010207105920836594,-0.0812704241264412,0.06517038531415334,0.01973299769427553,0.015040019191924705,-0.11551092886433961,0.009329004628431548,-0.09693373993856229,-0.04631545374363015,0.03463447727628115,-0.021352017640414948,0.14022522949402835,-0.09505099081755607,0.16489867900439367,0.004055250372839724,0.1897019267128234,-0.041104472085365586,0.09578049876653733,0.05463775247521146,-0.04657474029550636,0.08992758339918386,0.061070892365829126,0.009921839580890856,-0.10247964788620145,0.04523298379892766,-0.07051962874111191,-0.0947993582996611,-0.05568148809076423,0.11002924112326588,0.05501620773404238,0.12332697713921485,0.07538105455338862,-0.11042316372449952,-0.055473647263766676,-0.07671546704618065,-0.09521088063272339,-0.05481385916372906,-0.06976478263210743,-0.15740716671344138,-0.12535727033813351,-0.056833171030512636,-0.07206422378170463,0.030217540487381716,-0.04742197110913026,-0.0052486817582778214,0.05228561301427891,-0.035125670513218285,0.008739363705608003,-0.06649630983916131,0.07042087307623152,-0.003261085631292088,0.12577922568139502,-0.06046318172826973,0.06625240617630256,-0.11602294141827982,0.14507122334700767,0.025920350160501416,-0.008529164818382022,0.034500620219973285,-0.01575081039825362,0.04305481135766356,0.049288457495398064,-0.028477190962093158,-0.0605478370724776,-0.12142794699448284,-0.08180835273908607,0.057153591748638,0.06478750656501811,0.19074475185119882,0.09824905668751581,0.22417234667946148,0.0353345651705141,0.0044930445648580205,-0.07517416403244222,0.058068438577687675,-0.10897037023832938,-0.03700966198117545,-0.08780118740167872,-0.1777680490837706,-0.13666181704719513,-0.012735076905654542,0.008423077482776233,0.04270843173749611,-0.04397427807174053,-0.030750738644291613,0.004017878990966869,-0.03117801200804729,-0.15404505932660206,-0.052918866178073044,0.1496957241529547,0.0024757308046371744,0.16517908730126726,0.027616108523883527,0.10798119084951306,0.04421339549091493,0.022536132243597712,0.07061338586774192,-0.09499950924183524,0.0032881823926362787,0.03764622606984104,0.0548875062659196,0.16401840235825038,0.024527627708520343,-0.13900337731494986,0.043475216453175945,0.005058197120560011,-0.01782508469781977,-0.05598765033659332,0.06074952735613018,0.09534339777556453,0.09700839156769284,0.14499610536494192,-0.15489515294949766,0.07255485189000048,-0.06633600001166166,-0.08643126717885079,-0.14095537676824418,-0.0857865389508366,-0.1589963056397646,-0.10385043995246392,0.032885325576434456,-0.01882287494230365,0.08695434430958277,0.08067825781331414,0.0424738086057864,0.06169781878333732,-0.10165019428851026,-0.08787227437673673,-0.11721829486804758,0.11384676915997294,-0.08402784826123419,0.29800931162429634,0.03223227994103473,0.1296282654872713,-0.11069822653446577,0.13123521531485066,-0.02471217290292643,0.01575071799675043,0.0966166255964667,-0.008456849242761319,0.03232657456800403,0.09055385655732552,0.18111359486710918,-0.08333276598524278,-0.07601497956775624,-0.09034465734281456,0.006547448338827722,-0.006124785501137498,0.2589714689760777,0.14118333920057494,0.22141488558447248,0.08034459725509015,-0.12154520533871246,-0.07050589409687257,-0.059715302608359375,-0.3182524924884222,-0.05761354993724329,-0.1734430829883977,-0.20050243512531862,-0.03160559733856058,0.07245833093336111,-0.0012016274132063908,0.0016533014008459602,-0.047961183351243636,-0.05721926112969351,0.06365750359602129,-0.0815703545998954,0.09284697548845317,0.1293821188501632,-0.036797140256896045,0.051077501334531115,-0.0764268654843891,-0.05476344576400532,-0.023351896249579722,-0.015045956696641733,0.03719342622865652,-0.1004993767224045,-0.06201305384990741,-0.09458594530979679,0.02909490070373302,-0.033852530625385714,-0.14934656118898593,-0.05828355223537786,0.08574871610507334,0.011980517414948088,0.03294550197806606,0.03191055169549081,0.003162868681821766,-0.11846547869580566,-0.04244562699553297,-0.020130878037533585,-0.12257810825913214,0.10516638051624419,-0.020409193570561625,-0.04376723373263682,-0.01633538384302098,-0.025287316534173383,0.0455908947674755,0.04740589421005493,0.09458384871564633,0.05064952938646309,0.09315257646659184,0.07802775843726863,-0.0611778434921641,0.05881796237910166,-0.04479612897381326,-0.06962036374790449,0.014888200536540967,0.11359558261534504,0.1316430135341264,0.05080297811930969,0.02966050994657934,-0.01665799818439318,0.13161797646098444,0.024797696728978132,0.0491600032116332,0.0253865920791932,0.011773634672997923,-0.06342909896051953,0.07511117140281424,0.004922816882475712,-0.10962960115365326,0.04449811487694826,-0.09631609046522494,-0.04871088236832242,-0.0651708730334742,0.03876066475655629,-0.05359462725730069,0.07092487981973834,0.12552695958800322,-0.05980330738336322,0.07963073629540443,-0.12353935416462229,-0.0957586659367928,-0.0705164904987156,0.006168113985055753,-0.017461560816951785,0.0410879699767514,-0.10939337200081416,-0.14422863424970003,0.011353776834602779,0.06992480263678423,0.05933229604634871,-0.04302654802662011,-0.08176004478511634,-0.02031207494374196,0.021958655437814473,0.03918186179284816,-0.03720487879536833,-0.024298888890241163,-0.09050908566106852,-0.035320275966201346,-0.03240366818801295,-0.02989727849151201,-0.04458744385566237,-0.02272523910456138,0.04606422805035801,0.08086403952503911,-0.0804250165549909,0.037085503000115046,-0.017892159627399762,-0.050213571608710476,-0.10449688664509106,0.004145245124491086,-0.04808315517241065,-0.049471924277986974,-0.050586670375048826,-0.0382535204824202,-0.004371181068739491,-0.12808499318924063,0.01973094870094708,0.023396279443775363,0.10882944451286103,-0.037607865497379954,0.03413000452186695,0.0032160387690390478,0.04652977059726319,0.0003248972312530811,-0.024063167376948635,0.09068456791906616,-0.1053763718197081,-0.0843584496322659,0.05734326869481457,0.06944134740791881,-0.03315001226764055,0.05491727044864086,0.03478085103581082,0.07466758387201781,0.036225230041094646,-0.056299309937236836,0.00719631172580616,-0.08051852590034035,-0.06044786999782403,-0.1439559348693256,0.0345363964712768,-0.01893639005727006,-0.012949201692361233,-0.0426037569857425,0.043735575769064824,0.03655858166899348,0.07004234311962085,-0.021954446451771907,-0.09192116680646914,0.08280812928872812,-0.03664238662422123,-0.05192259988381669,0.07617348644406519,-0.06674049011660312,-0.02920609106713213,-0.06585089878578604,-0.12286941553585341,-0.0665301921538323,0.03821588607825962,-0.10491473331789959,-0.07636388920763362,0.07297462055277883,0.1187014524983204,0.07730113569113378,0.030046845486212347,0.018758749560977707,-0.12182378636977104,0.04108626882867527,-0.026990338683449206,-0.06796467724560874,0.027985536612624172,-0.034697317183994145,-0.11792875145665707,-0.003454505637168304,-0.04650046862718227,0.04916839865051233,-0.018913059955881443,0.04292557907155467,0.002611805479425335,0.1578356912975794,-0.13220229756388754,0.1978397077033508,-0.0744714796278273,0.05012893875452677,0.0957004116117757,0.009340527042412181,0.04504227095433772,-0.0745163075496261,0.03249726351093753,-0.12589806248838395,-0.0593554168818149,0.0258134135557775,0.008883303450298802,-0.0874903507191307,0.18888822863730279,-0.03297527988308873,0.14055508454566307,0.11875612588272916,-0.14958661832989018,-0.08410851391658469,0.0559926769149276,-0.06626659006078846,-0.06826476820169074,-0.1468713483803661,-0.07060585626724779,-0.07425706880076834,-0.006396608387113349,0.04580213188812041,0.08670269792868025,-0.10015408914355746,0.02732136372950628,0.08703962213704881,0.0644423899057438,-0.0799028376362706,0.05662368367690047,-0.0033732088529111687,-0.000641133342288767,-0.021752423562993953,-0.0699150991684092,0.0057781330713912605,-0.07441106917033637,0.059875780324895427,-0.03209259819822864,-0.02096704752794467,0.02915178849274153,-0.08325154404806502,0.09987640331564336,-0.008866143802772484,0.08188555672254329,-0.1214403518946356,-0.02564206307085827,-0.0010145571262258173,-0.03670017521417848,-0.0019166701022141058,0.22337105751704425,0.11545822817760451,0.19334978409731024,0.05841673004156208,-0.03782756099190485,-0.04942837898262718,-0.0008047597649511597,0.026822743681905074,-0.14996956596446273,-0.007207232832227378,-0.1413798474040171,-0.0032144604320222966,-0.017466326497062017,-0.08070575462046534,0.12259129705842894,-0.098916390112341,-0.07131233801402992,0.007173195685662074,-0.10807985306928375,-0.14084541037108378,-0.09115458976501341,0.11110630595690868,-0.14492108635667397,0.03885984812571433,0.006865398784196512,0.07572892220126178,-0.023570821218097077,0.1684969418661943,-0.09258676158664263,0.02913019993052956,0.007977665804942654,-0.09854322041641662,-0.05734156604543842,0.026082481165833844,0.12782278377036024,-0.013770470068776847,-0.029090867737239547,-0.0023461712398008027,-0.10645992408541025,0.06559332977473056,0.13782249738559726,0.13121569495500338,0.17895087519024014,-0.013546885806710072,0.00524789277940944,-0.03992353736488705,0.027557743853199125,-0.11721809370433577,-0.006025923045535797,-0.08821537796393833,-0.041474878823450016,0.011730554141862231,0.08862436963699576,-0.05810126787733602,0.13446305915878196,0.0652212548220719,-0.08656630563053348,-0.0065802751989582344,-0.0406086396563269,-0.034078884000040784,-0.09808228261720334,0.06828677820620342,-0.2512961602460137,0.23501243878423125,0.01478793979305599,0.2432875081366705,-0.01773165819997782,0.1539040445143804,-0.060740393475272235,-0.014555643208305779,0.12069836916748929,-0.14749689941003766,-0.03017943803316047,0.2692964330613756,0.05536964554760463,-0.022806399564215703,-0.03008292433779258,-0.0820447640197274,0.0020890674027894893,-0.03286080850664999,0.11484305215570187,0.15096111386421254,0.15207316043157304,0.09569724953862666,-0.05857111499550426,-0.036173024376011075,-0.041840241253294976,-0.22487228103192275,-0.2289438586721226,-0.14409266174861957,-0.2676355494916121,-0.2180006482542599,0.018578650780914027,0.02178030677093807,0.0654685239620838,-0.08486184424831153,0.05401531306414295,0.14158535310633896,-0.09696968119167204,0.04563184754253017,0.12435958508636219,-0.038224503356226326,0.009595690667385186,-0.030622877248754003,-0.0010611390603034365,0.005283323238235229,0.06423014470065559,-0.08282200262255693,0.06840196993487455,-0.016204964958346422,0.05234005985077935,0.11572456297099604,-0.008308175913537328,-0.1981385441735492,-0.016974193640480636,0.03762853810752037,0.03981846405524812,-0.08269802082587986,-0.03668687349507722,0.09767757323104574,-0.04419785984977443,-0.05307127906855165,-0.12472727177682304,0.04431274243416808,-0.016018679022993608,0.07722221554957547,0.019677802118923535,0.10103514687586365,0.05064346411585811,0.06994419592080107,0.02359758562450798,0.03737813854848585,-0.1042128859899212,0.0979044660479277,-0.06811752148066264,0.059668080313489594,-0.08264703635773407,-0.039285912206123395,-0.001989005681079479,-0.02643491418470168,0.09927337607889922,0.0085959270189087,-0.07527719022860276,0.0832980954403339,-0.07471841149585215,-0.013349952217717832,-0.10017689893533788,0.06587390422727994,-0.05781282828103531,0.061375143394321194,0.0429775676336363,-0.003238409631928191,0.1063712254326496,-0.19851871578078195,0.05918379545652026,-0.007863832804638796,-0.06020311286898344,0.07467845223761727,0.06494711570026021,-0.00981605872612144,0.06925215710909949,0.11244919926304099,0.02796711057810366,-0.06689812935706219,-0.05357440689701738,-0.0168027000772687,-0.03754124528139977,0.026600198327113665,-0.04631947150911153,-0.08753020946217897,-0.12815893514935855,-0.11656151855311797,0.03395624812241714,-0.08394508861347819,0.0825621330145434,0.037074118838211045,-0.006024972159034849,0.019457458448087755,0.03604826233774727,0.02267517899709698,-0.017786943685176772,-0.08544353908442472,-0.0569946609176521,-0.0651544309206582,0.010606029983971048,-0.14001004464406575,-0.05817540046167594,-0.025026820707775285,-0.11032756627660173,-0.0035977199345284066,0.04883156370892908,0.11455118451364638,0.0530275916888469,-0.060125008464355464,-0.11812708630400559,0.05910740364215661,0.08378119091174038,-0.05183067360659912,-0.060353295064080874,-0.011417734383041857,0.024972080739723866,0.04528692972836288,0.008373123044989895,-0.05876146341592975,-0.00340355402017264,0.07296607065345315,0.05282633405482034,-0.05021953131989151,-0.029761025788424638,-0.04552948905920198,-0.04623702991341339,-0.03314308208354435,-0.041057774803480274,0.045182599860533176,-0.02044938121491193,0.08855132140375323,-0.02573596214226948,-0.08946426146295085,0.0976437274537956,0.02722132675189811,0.09316499707035734,-0.08713031434278388,0.1269247088327949,-0.08270217516758936,-0.08743242577494037,0.02753635971511486,0.020541512639875498,-0.047583216938782064,0.03064025256532595,-0.09150626505607039,-0.07414703667321433,-0.06310879890448991,0.06715419993576927,-0.09869703655688451,-0.11884868862391634,0.04953926361816469,0.06642981585771975,-0.013785746701844473,0.03308909651423521,0.019163403436009627,-0.00904136665539533,-0.084689559209398,-0.03922446488272535,-0.06908546208361724,0.04814719603096391,0.054229563435580046,-0.07428686169999733,0.05103480567088841,-0.04577501252315247,0.07354102860082908,0.13517310527924678,0.031814161059202525,-0.05745537843295516,-0.03756690947089024,-0.08052071356331177,-0.009433728697457353,-0.08729665258389292,0.01273131288703929,-0.024766920121320014,-0.136341149957732,0.05746937051028882,-0.022003948347789397,-0.048939055522949935,0.07673329873346373,-0.02364670551182531,0.08221044767163482,-0.10816636779611563,0.09531778331166402,0.03824476354182067,-0.040329068804758866,-0.02929174444646517,-0.14028589812206854,-0.0011637452610386513,0.01063415679352231,-0.030768248916411816,-0.037806119418289964,-0.07812542483594043,0.004711382383612103,0.061870218606854925,0.07512924595651861,0.2256173058604001,0.04187771044769434,0.3031371734342074,0.10557623809394462,-0.035922539072539436,0.014032988254304211,-0.06246124129053956,0.05793943352153678,-0.08711569682781362,-0.16114873831257748,-0.20436442995152676,0.047465725926485784,0.10528368110230504,-0.020336015483228553,0.14038960548750185,-0.06487057699369812,-0.0001669443116080365,-0.07400870393847443,0.024966653435046046,-0.03683475137420927,-0.043029286022331976,0.013655758697498787,-0.003320887038860038,0.06862290357806197,-0.05330664538483169,-0.06418299760440041,-0.08475258430352246,0.11692422672352522,-0.04362957056600728,0.032009268446358825,-0.0564672957922509,-0.12074439563429075,-0.004639956172810074,-0.01412695494560319,-0.01618806320491885,0.05270348478400784,0.020443199607680988,-0.09997851763346739,-0.017990838630304016,0.030031714534221085,0.20136106099937015,0.07295210825550894,0.25814044492476995,-0.01609319515261448,-0.07055630074920982,0.06725827364815082,0.034961003485342486,0.05329443412073714,-0.08954998964437588,-0.14580103145889947,-0.12194535491361426,-0.07422473598451307,0.08374573143543891,-0.020262169552196924,-0.029564507576155717,-0.09245294957272376,-0.032291375185029114,0.003370847881126461,-0.06527863655836232,-0.021947417934291908,0.011005001634701406,0.04210403957465005,-0.08784549092359588,0.18335268532103066,-0.07141756904264056,0.025244063420544666,-0.047141794731901464,-0.005665069564401089,0.032110622806521334,-0.07397229615147138,-0.05506994209500517,-0.01471136937593079,0.05089568189546278,0.13982200803939454,0.07907305395236196,-0.09483010275767419,-0.11352201163281898,0.04957093753384857,-0.05099774900676548,-0.035421163895988386,0.17369276498540476,-0.010645548691746323,0.12080379775588011,-0.02822675161473996,-0.010487970156258561,-0.007842459350604689,-0.011244042408092611,-0.04752740918871565,-0.18539039565185667,-0.15615344214004476,-0.017457479561502082,-0.021648440873886253,-0.010283078973257375,-0.0012482881365888686,0.054759767263218406,-0.022735818590873987,-0.08963893263107159,-0.016073382861231444,-0.008097880599100713,-0.04702777714686099,-0.08369095658625274,0.08914811943143773,-0.21502600882363165,0.20990046172011717,-0.03178167956534527,0.0855667172466355,-0.1282370865127932,0.2387119312246709,-0.02850544866356047,-0.02414933811795637,0.08724514586751245,-0.02118547261921908,0.14079993484143838,0.13690754034799954,0.05895980887298635,-0.04139920900160461,-0.06200593231045402,-0.018490127256754037,-0.05739840132476956,0.04652854330808479,0.24130895264484373,0.21514610780774138,0.15610626333601887,0.1323362866979105,-0.05217857672069836,0.04427885165949246,-0.037574792923222924,-0.317537620777864,-0.16139003091595897,-0.21734872682900325,-0.22258419167382779,-0.08793504201906814,0.10204031778889712,-0.12482586692802658,0.0376651013628616,-0.09593532014738418,-0.05664293839433051,0.026559227395543495,-0.06174243399379584,0.12173322384415851,0.13193600445541992,-0.01708390477614586,0.08166691338902951,-0.03315736963923127,0.09387836935335805,-0.0649880216635692,0.0813189227227576,-0.000828493103037415,0.05888185289567976,0.09016185480312038,-0.07129986719152126,-0.021952487488394703,0.017535856285118417,-0.28260753680818745,0.020228391325527707,-0.015162416205920607,-0.011360440062377044,-0.0346280135669638,-0.020930933247467715,-0.01702374878248366,-0.02423899147795661,-0.0684488002428164,0.04581018595298902,0.08905146005579478,0.08085233983880385,-0.02169248001403784,0.06534204233551619,0.21287944852017132,-0.05044892381165704,-0.05869530789583933,0.04843897345189891,0.10467568966452212,0.02210216183907684,0.04593424987669727,-0.09172358843607255,-0.10611383709692597,0.004346800353683509,-0.07467921469583101,-0.027680338158542185,0.052277658050631386,-0.04099898041811645,-0.06874275157250205,0.06316481985888031,0.07937877539768284,0.004642622934340642,0.15169627291583415,-0.019960402987395143,0.19223066125616342,0.049957187751992774,-0.055826828213645166,0.06884283604731968,0.07020140394273477,-0.04666790041698994,-0.21642108303024432,0.09381567374821198,0.0064729463360890865,-0.11585295477713198,0.053828362733481405,0.06505998138431242,0.0681695602333076,0.2423528641962684,-0.0013992709645743162,0.10032323185233007,0.16129568675706588,-0.05619512671596993,-0.05614839869514579,0.09422947247897427,0.1385335457503477,-0.07543024707499636,-0.09887442195690448,-0.057710977399809925,-0.02118336863687288,0.09731638630631162,0.007655151539760612,0.08277218833904,0.0550707726315566,-0.0865150385699157,0.08959923269909799,0.0017294535995255238,-0.0023464670463924212,0.10264291785691276,-0.10728792523459826,0.02255197208477615,0.014779191862402213,-0.05977590537234318,-0.1083223286752289,-0.08700223586652385,0.009243265090349196,-0.10992653260833185,0.0376210574953633,-0.08515651390268929,0.055098220267009765,0.0899743307507238,-0.1513001851732967,0.059394524822479866,0.0018728080394822917,-0.06865785715791868,-0.0786454526996874,-0.027231923056949225,-0.02841229094669763,0.11720906402933177,-0.04109640926560735,0.0891427075781921,0.10783474516124765,0.06716401538258328,0.04029696012646808,0.04165223433784639,0.10429529653378428,-0.00740335818588057,-0.01154820281420429,-0.03879753735861157,-0.018300749790010267,0.022078983180656462,-0.032297264775980515,-0.04265938118165096,0.04886672127646955,-0.08959119801560242,-0.009043105242130221,0.09674639849449193,-0.002575172668208239,-0.03842158787095003,-0.0862892812368413,0.16930606741181986,-0.13205435155436496,-0.07036503033083995,-0.17387331680599738,0.07752873368767854,0.06904831654978362,0.0417151599514561,-0.0833024213006518,-0.04549717403426026,0.07606904829294783,-0.11158124709378463,-0.14514089781907322,0.012282864957143891,0.12228638972270568,0.07970561492664913,0.04148358328942469,0.07925530346531354,0.08288592107220241,0.08373095762432907,0.0030724342405460607,-0.038682358046090826,0.02645968985524459,0.09377084563219337,0.06995739746935521,0.08839950278737546,0.0930648265483635,0.06961452434308561,0.06138439528166655,0.023502213411118515,0.03770788882707815,0.03337031659904678,-0.011661047993368544,0.048510825645473744,0.011455221123625238,0.0316220767663853,0.017794149925796025,-0.019374427536394845,0.037421054605010905,-0.11077405333580248,0.10405566917856211,-0.04857270088190633,0.05785699616061713,0.037284319989310824,0.018080941412961054,-0.011104217469107626,0.030924029250640375,0.01718054053976828,-0.012338654116964332,0.08451350906366582,0.02106663222332107,-0.03028686730009467,-0.00822024467359498,0.11353986441550006,-0.10506155091052485,0.00583513063326046,-0.02896196058635715,0.03669975021918899,0.03966142624048995,0.15551433432730105,0.10512700789831413,0.11883353354822397,0.03215988920743156,-0.10388491341224226,0.05570978721143926,-0.05432833748659504,-0.0025685765169880075,-0.04235073103597534,-0.13130356742399024,-0.05790633396866757,-0.1351461574321674,0.10783897569248539,-0.07619128146234623,0.04933189397889179,-0.015164399058044783,0.05243160296894445,0.09083682751608972,-0.046119446150313124,0.04636756111697189,0.07551649568635553,0.09581881735145574,-0.12305109114947468,0.07372187779955293,0.031233148247424257,0.12091457856469773,0.04498176034298514,0.11629101584984916,0.07070327960153365,-0.016790064904001947,0.0013200325109926656,0.06333536690682796,0.02004714498906402,0.10078671396746589,0.02167297663386363,-0.013904766923314008,-0.070866062510177,-0.09062234502361889,-0.11119033272555835,-0.014163157295614176,0.023325179095823885,-0.011810675080156284,0.13317765801607603,0.07508656933248309,-0.0125550053126027,0.08531152274411287,0.010476579775690387,-0.09768144757713354,-0.07888496110176518,-0.0800851229698223,-0.09528184310719288,0.05174068466520281,-0.05764313495933348,-0.07780245004396537,0.011384196973625835,0.07574157274705602,-0.02553715116603367,-0.0549555094812813,-0.013104448534520575,-0.06766961272302674,-0.06268874907063667,0.16090163115176756,-0.05732206872342419,0.19246372038502382,-0.09299104078604739,0.15226373797618864,0.004187490367928138,0.030297561062407653,0.06352596034666574,-0.029089583774699952,-0.0701149855326816,-0.09927609664340786,0.07422780799427066,0.058292632517347225,0.05188292382763169,0.0029550166328517705,0.00773724565521536,-0.05605924569716467,0.01118803388570856,0.0736423200917348,0.027004823351005857,0.012377685070856827,0.13062832570446703,0.02630998216566927,-0.06909331270566621,0.03106722349185806,0.04578919962466585,-0.03889004478499669,-0.08814975356579335,-0.1550816821424284,-0.08173942779758651,0.01152695024339032,0.09309934315352304,0.044657919947578346,-0.004263029925432361,-0.06300436134059491,0.08120320298521247,0.05189519441931454,-0.06551369634827822,-0.0233486809973113,-0.09516861947583784,0.1155764945612587,-0.008948780749968986,0.13452374519747282,-0.011321276920936606,0.024273230818245176,-0.04988625331301379,0.15514011742594905,0.004833118609394395,0.034182496507117514,0.09149604845909566,-0.083621148668097,0.08534755229302647,0.1781466753736311,0.12256004126114997,-0.018515871978895523,-0.0683689458283442,-0.05274307528193101,0.0015967825667954065,-0.022224585282125283,0.16139608547835096,0.10460714684184379,0.03786686314401503,0.11553843492460764,-0.12040254054107785,-0.06222845252170281,0.02405360689660783,-0.1946471944250646,-0.11310158139909843,-0.0038335074709902905,-0.02946513357148782,-0.07822234446405017,0.011638295070560765,0.07314083215304513,0.12587743928191902,0.08260395226725288,-0.08299403447552021,-0.03686687776856305,0.07361651933371492,-0.0033608164407177635,0.02667142945366898,-0.10076193858116315,-0.012670738537196385,-0.011381436616156922,-0.02312658936286385,-0.10204701592021324,0.022131672340836187,5.598773385724179e-05,0.011438931969175574,0.05958065374788588,-0.08865875776986765,0.01970998787689136,-0.044373839953174614,-0.10656914727602594,-0.04790710866635747,0.05895851509785367,0.1072720874288186,-0.07622530738208025,0.016571237766925387,0.058219135375587976,0.07433960944539146,-0.04776361502155365,0.0021089870778371496,0.07697366669481147,0.06834911460018749,0.04776433100287251,-0.04777835634640636,0.1255272593334735,0.01749295988764918,0.08843150910651176,0.0648756455731407,0.013123205010212323,-0.03434048154734563,0.07451119463451583,-0.03541777913827648,0.079398894017745,-0.09342805448525619,-0.03884056228718539,-0.0029496457937548425,-0.01327200488076056,0.02683532760906832,0.06344358877437944,-0.07085069603807777,-0.055058369817041944,-0.052178791919057256,0.04633388415755872,0.03736555849188878,-0.05886903548257173,-0.09172926008200318,-0.09638314482819237,0.1041185426711425,-0.006748269576647175,-0.09553728841538886,-0.14329239496416973,-0.013544327928325096,-0.0462701877828593,0.06231365345957031,0.028421287508794038,0.061404627291785606,-0.0524346669408817,0.05918169870406885,-0.05682582203973688,0.09221987315041337,0.037902933974652886,0.0021159933755825716,-0.07054663417312987,0.09376623951914806,0.12629115260584128,-0.024353436915139234,-0.1096877641600624,-0.030884662210816368,0.06691849983248872,0.03141248898707546,-0.040376040255612755,-0.07940594549729497,-0.01985953855304316,-0.02493362587206581,0.011699533379705343,-0.0048074521239566985,-0.040471436447409,-0.006297011358231126,0.03424193304087893,0.02754568495325723,-0.1325305031752583,-0.06043722022666313,-0.03610660799441508,-0.07034118001559793,0.02843080052257389,-0.03652334512827635,-0.07488860430079848,-0.03547821473555415,-0.0005740399345360531,-0.035546232237831335,-0.017060597044715322,0.0012659043037739307,0.03805739730268405,0.06458935291677094,-0.035433936239374145,0.08556195175370794,0.07812753237015589,-0.10693068980875621,-0.007059259368352593,-0.08898052910837585,-0.07763203148107813,0.010691999999493034,0.042828190993858664,0.07244670070017138,0.190933161269402,-0.014620891563658504,-0.018605778897671874,0.08946689827268403,0.0408562287882047,0.02300586544437256,-0.021407083799761223,0.01909301006691424,0.0781162791086937,0.027938788981888892,0.07441731818661214,-0.04374870446883079,0.15173443513311402,-0.05112815891057302,-0.014407390915380828,0.14977880193742935,-0.033363452951035585,0.06230757843336663,-0.027166125617780718,-0.05134476218809017,-0.08184060641519435,0.06341477187483838,-0.07564574107405074,0.023066518424600824,0.03297508489153474,0.05921599984282378,-0.16583613029448974,-0.12179691673174449,-0.03086322443588654,0.1320285453483876,-0.007943880129438415,0.1199593954510714,0.05749431225880861,-0.02647820126650671,-0.0020860216848127824,-0.17205040216386275,-0.038989497697298196,0.017195752673432093,-0.09444213033555296,-0.08635994730452574,0.14137735884231153,0.17898641900956902,0.11735176097813997,0.13813928941174344,0.044120734881336617,-0.025205785915241974,-0.04942249016940337,0.05634995929913617,0.05640240196015631,0.015217252724330681,-0.07813406927902893,0.011928550458078373,0.008889809879025679,0.016368835854797013,0.1035788899010789,-0.00954973863909262,0.14196114814485483,0.04654063345265005,0.12592157488356265,-0.033928128141241284,0.10630343193289164,0.02348616955533309,-0.0462371459279421,0.010064567741304898,-0.01335039273925536,0.020334347472926124,0.013979430495330661,0.1299341473034997,-0.08570956968599416,-0.014549651961938014,-0.07203989570358292,-0.10230405077497291,0.08259790261838139,0.028504447140163536,0.09613829951571252,0.15270271261466187,0.11772392465878888,-0.02540233014576236,0.05645856340894735,-0.016959767317146636,-0.07095557961282294,-0.10164605697626147,-0.09948357119189397,-0.06645034650326846,-0.0201981935017842,0.03350690698099302,-0.10618082637000373,0.057973961854653235,-0.017493857661039135,0.09696664753201405,0.02747932662231284,-0.022963322577253534,-0.12554750020581204,0.04068693571261667,0.14876816011880462,0.006428104132033442,0.10503270304172752,0.03125155267776622,-9.04746357976123e-05,0.046404327813905175,0.03312326206931289,-0.0428441471272964,-0.041215758208728505,-0.013114856061536896,0.010783126142267153,-0.043498790724467426,0.09853037909008922,0.0024154788334317797,-0.1221603084065195,-0.0033838455390243667,0.041257140724732834,0.04237739287250848,-0.0039416092427811125,0.14646540697981045,0.00013728136701266505,0.16555537139212037,0.15994109850907068,0.01665875703334287,-0.08708503937481789,0.06708676730001663,-0.03961881156483916,-0.036299092950799236,-0.1626196535861357,-0.013904981745692116,-0.14471765314093024,-0.009770019431952727,0.07648340361731137,0.13261693961064772,-0.06053602325247312,0.040183433507472666,-0.05042464515707966,0.007344392956538254,-0.015270548642160596,-0.05854653972307159,0.07236261976521756,-0.05300679785479019,0.05744183593082529,-0.02186254088488231,-0.004294847079739623,-0.10698865334990097,0.009737513003749962,0.07060766112646799,-0.09292232244008845,0.00909553338072325,-0.07173268842391682,0.11272017291433377,0.06886151096605508,0.04878351339725457,0.05062499224360508,-0.013296587928758867,-0.013760169520512682,0.034313932052867015,-0.03395987754136053,0.18196013833738559,0.047852631450417245,0.22173562164995322,0.051274414518305195,-0.13532638825086082,0.03339245093041541,0.048690581587086876,-0.15320966686013646,-0.04237890817596882,-0.011866370614435425,-0.156826141363647,-0.0954752964943307,0.08762678278020346,-0.02969643000229762,0.11158082622436735,0.009760157433449577,-0.015641645976811273,0.047125149556063686,0.03125517258804453,-0.12858446132570536,-0.056077758862298384,-0.03886682881905862,-0.04131876984484986,0.1713929606687239,0.01030246166197797,0.12642159764628688,-0.10062942001685025,0.06371032037760452,-0.09773082023515813,-0.02662252200524036,-0.03804210980078471,-0.1248652820686635,-0.03537128513283876,0.15262517035034975,0.03946851463422188,-0.07025194514172658,-0.11057334860270628,-0.08680621201362618,0.020611263868709737,-0.029317004503825603,0.12282402083633458,0.005667721885030147,0.10434862464365337,0.12214839708447944,-0.0025134310106013596,0.048392510000300884,-0.053400350063522777,-0.1363294525968458,-0.01888310918312454,-0.15625400336528691,-0.17633359283372715,-0.03296269088373256,0.09353402744782384,0.06574686968181805,0.10947283991318955,-0.028274356878921953,0.04178326748105072,0.09320997173520468,-0.05644038678199864,0.00684086523216563,-0.007929627034059382,-0.12683766378122763,0.09573443381713521,-0.1850812933442048,-0.038465560420675296,-0.13091821058313036,-0.01556760315692343,0.018223054249697966,-0.08632060906971363,-0.08493266308587151,0.07022364674668216,0.0360741550029303,0.0263743883026165,-0.17517763639248635,0.07320470290637544,0.08116161609659554,0.055336039733469934,-0.0055942290526514345,0.06928772525943268,-0.03677741513841597,0.14084008180371804,0.04025736504569158,0.04760790213300519,-0.011288156472642842,-0.04943055628192928,0.08557734389701055,0.014091656346036272,0.1769196882988003,0.08226623232690769,-0.09719868498850678,0.12170959459038072,0.08918727987523072,-0.05622077943667136,-0.04836618841568408,0.05044507349164691,0.02679797281877587,0.031521717754607756,-0.117117078095745,0.07405133678822703,0.016360543346342835,0.03133305511181571,0.05479749821179066,0.14356079457883048,-0.09264539739229269,-0.07386474818856816,0.003840535038882643,-0.032729206104514165,0.09123381816488962,0.050413597143093396,-0.009854070512412525,-0.09782020569188125,-0.03362279777241594,-0.08310867581600843,-0.23417476212690422,-0.014711558896802729,0.07740785828188902,-0.05500915625751296,-0.05131981078719564,0.09634942482898991,0.05713116199625899,0.058977423092949226,-0.0848134791011977,0.20637339160907833,0.12334013794211147,-0.08176790929675247,0.048691826337135924,0.01951883677894396,0.23446621785274993,-0.07898571940231812,-0.02468285000566325,0.07382984456960684,-0.03465287152575097,-0.030000415772879593,-0.009735104577533994,-0.09740283566577675,0.013168893759751669,0.023582284012108524,0.06251872400228614,-0.07695447030590008,0.09714152212059385,-0.04355576603813275,-0.09183278548620676,0.15894281351377562,0.005739376142159373,0.04267198975438929,-0.15496246420415663,-0.009523691165731436,0.08054664566832938,0.010881919095720203,0.025158870902429062,0.07153538192042555,0.07896756402550188,0.07262920942235285,-0.08764165679394108,-0.024196887764501573,-0.06412656956145556,-0.06922526525095929,-0.04201829269922135,-0.01099760123452865,-0.020619368969904735,0.02927309002286187,-0.10414980993687398,-0.02398924923844633,0.03470793397560041,0.013267277272330713,-0.03210946148786203,0.0308818566074867,0.11299898662184871,-0.05909868111231144,0.09647510560738524,0.1402710794760045,0.022134359568000573,-0.028883826218203196,-0.0069423487932513015,-0.058855996827868594,0.0005390015221542067,0.04020438384278558,0.016910562572382895,0.04017766741263122,-0.010621345204889632,0.10342768979690575,-0.05448378161657824,0.09307976101720039,-0.1553124380680561,-0.014757618088258413,-0.07991766268528802,0.10781132253034593,-0.01486284859325829,0.014506571055427561,0.008383219558921505,0.057740298468084136,0.026027049397618116,-0.05992627948252713,-0.06484570115294451,-0.09814531440595967,-0.0048339726875688245,0.06279849565512108,-0.013286622032502705,0.087990998571011,0.10973332189502852,-0.13121739452730818,-0.07930603676445884,-0.011755811199712377,0.015532167844416436,0.06101480627894114,-0.003274165994830383,-0.08266568103227154,0.14831267455382263,0.07414832943338794,-0.030235913488837356,0.1704483209190253,0.0606953331096567,-0.06568287338718654,-0.07901572914586093,0.046631239857285844,-0.04058445758215301,-0.07226922164014767,-0.09183657863640472,0.06331323028079315,0.009921175592405802,0.0070205745602855045,-0.019501352195193607,-0.09285637040531124,0.2003108119077477,-0.0822144514119122,0.09038464630813252,-0.011169112269870557,0.07824796992753286,-0.09309952933949128,0.02834876160118966,-0.07062774568074635,-0.029173784553865358,0.04724378294160346,0.04255431986137059,-0.031136486486839168,-0.12136286003575956,-0.06338544580721707,0.09253305580538163,-0.012095332321272504,-0.020494019546432107,0.12753179256378852,0.024743313053708804,0.1702936951496866,-0.03363500805496224,-0.07782631865151401,-0.07484496571507453,0.013416822386197907,-0.08007748581699083,-0.10964757874462823,-0.09631786355687348,-0.11582827018881893,-0.13457609048688807,0.11622538496960588,0.036385514947140506,0.02854573953330061,-0.1045168885575818,0.062282294979285696,0.11975379263574794,-0.0506833431862462,-0.060583809191686586,-0.06072142528907642,0.005706206047005845,-0.026068370402770845,0.21670666484303827,0.029934491326515274,0.08810555926690092,0.015313352289042757,0.1498715567869333,0.03788142927714606,-0.0077812688924776075,-0.0012262017010310179,0.029517578632267952,0.105069350050339,0.21067599843739737,-0.014917974104129792,-0.06469447272247564,-0.01256920839356237,0.08002117810770294,0.018919203464867328,0.022817680234026767,0.02109099439530977,0.0549369795298253,0.23009334962803274,0.012458672915701331,-0.07107106610817085,-0.0823815070999302,0.022685799482286516,-0.11828048161044279,-0.19872532610841642,-0.15285552582450607,-0.0280656113592897,-0.13317509894878538,0.039125815303588884,-0.049023646783291505,0.07169821542065638,0.031104891038540847,-0.020867787229861764,-0.051602051398163415,-0.02790945880199341,-0.05900221887095923,-0.11444588482389943,0.13439255846216722,-0.08356681916838753,0.20870080303221378,0.008460986100474995,-0.01393609794628967,-0.08532634785538468,-0.01617035766157973,0.016457433243936302,-0.07467691220576526,0.12456512746159193,0.013204205363805833,-0.019904705262780268,0.04385771822916622,0.046629821030512546,-0.008010124301706199,0.0012534129031711474,0.02062398967102584,0.06672546091501305,-0.049528953953226665,0.04814637623788074,0.17234445507175777,0.0638655872068744,0.01546095260478889,-0.039365402644592346,-0.07608747087918127,0.015216583940788158,-0.12833733423118393,-0.058040984424329714,-0.15809540951666076,-0.06753735766166688,-0.11732569387757413,-0.03709492444788239,-0.05178369839479114,0.06353288344394685,-0.04913023848150346,-0.009215354989125981,0.09443989944891792,0.04925853022551199,-0.08651168573319434,0.06371496946339318,0.13864511584854924,-0.032723210971577835,0.15571881797103534,-0.055482935525150386,0.03790714489126874,-0.09436739768135435,-0.01873683940609616,0.08225828280170235,-0.05013370041740486,0.00025998104752949255,0.0026599078769992267,-0.06677262500101676,0.11441839089385666,-0.046244701611550317,-0.01121890663469717,-0.005615281128479747,0.09116768655019428,0.06937463671576685,0.08017545602803643,0.11707436609065883,0.05341497329471889,-0.024777942605334936,0.11572122513911035,-0.02139589705082651,0.0648925269739187,-0.035010466659115926,-0.16687564740140803,-0.09529460219725552,0.057352694540734335,-0.11092142444011063,0.057261485022180925,-0.0284499253950179,0.055331581373668524,-0.050264399173765004,-0.08775674352086107,-0.08198919050894583,0.03472779125598275,0.10806394787388494,0.03667724790281779,0.10561689753856339,-0.06780938350303851,0.03373870416010305,-0.03674632526225154,0.07835525631742944,-0.03915897270797408,-0.0007611244821705654,0.004297338359207631,0.04063044930631676,-0.06952228072537402,0.01971509468967126,0.11678869398250726,-0.11497798465002025,-0.010933430990210482,-0.10450889153356278,0.0163296152431795,0.0722859238214658,-0.04413922229658768,-0.06405844242107257,0.0060214802098625545,-0.11305707941161691,0.043484728800783155,-0.06082222359954929,0.002745963533843026,0.04765327850605889,0.005302564719035154,-0.029156365024607576,0.08988615520111863,-0.028625978063431853,0.13283778548390246,0.14940968101253477,0.07760915960666333,-0.031166424868652013,-0.004286434402894956,-0.07342651575874694,-0.06826908714079154,0.03360742393952534,0.01574913185437807,-0.033711747213609845,0.07440741589732046,0.023747373416802383,-0.04101613137655818,-0.03218256590151957,-0.03737794848047859,0.07797474036557887,-0.04678660347494623,-0.03216018034283388,-0.10967306387094397,-0.001489867411819464,-0.08366849047179518,0.04333450623284746,0.10491267772322826,0.0024202638625680124,-0.14602856170540188,-0.10941304520624048,0.007966206265662523,-0.001168133943017737,-0.054491779238366685,-0.06144878457184576,-0.08372315543715196,-0.02027917082727283,-0.062337626300225796,-0.007566743171804791,0.05350566123851716,-0.05815255616519708,-0.0008052641085765631,-0.0884813907648028,0.10053335976884724,0.06933659307550664,-0.04571930204741038,0.026967990511863285,-0.0018543728244791468,0.028910008881147115,0.04913792118901918,0.058690761363810844,0.04791456499914259,-0.06363532806696014,0.01830093505774002,0.10497590937765514,0.11230210501767504,0.001335073670712362,-0.030741261902644375,0.14450006910418403,-0.08168918020539433,0.004251393532293976,-0.08122430056024606,-0.05914402552778024,0.01581592378843838,-0.04451120912194352,0.09519068141634637,-0.03315765968546868,0.04861684859267361,0.04200074730422131,-0.14058799093160154,0.04818115970149605,-0.021651831129612692,-0.042262103161823085,0.08943992326376936,-0.0008250219867616994,-0.02668096253204853,-0.15801831997345706,-0.020458440871759805,-0.017721484735582414,-0.1368986913570525,-0.003401306743665527,-0.04595453923007597,0.0665996706171344,0.10312720036523665,-0.028437660868323774,-0.00170504028898041,-0.027832373944895204,0.05134590549548291,0.053496559364568534,-0.0236521066093547,-0.09778361412654679,-0.004694170008193353,-0.09529206708919713,0.032950973433365435,0.018282248638833154,0.09344460973555337,-0.07929730485844598,0.05387337628452464,0.048526016731266775,-0.10141955781824667,-0.04272488086212204,0.0027549837370652052,0.11488465726388913,-0.12662380566326775,-0.04983880236910364,0.06541207241166101,0.033336388830754,0.12262938300251539,-0.05370496393881771,0.009774921801078718,0.00040107030158153785,-0.0436643728048869,-0.01334515538433698,-0.03572974313616144,0.07492591952131668,0.015733025807996046,-0.12223687642088103,-0.06621189478177077,-0.11542818367247544,-0.01747593108257865,0.03434927001044126,-0.03165241735786733,0.008764078078981778,0.13255093464411677,0.08441848517018188,0.06353868952427864,0.1089824169901883,-0.03929357215273093,-0.09098602505810764,0.038147096267848034,-0.08896256590975489,0.030205990026329135,0.0994216819364509,-0.10884873892469922,0.0513138488213351,-0.10232836611933858,0.03133450187654029,0.045018078826566055,-0.13357900614583681,0.17687141740310533,0.029045129035532982,0.14279085763903243,-0.009534377892745456,0.13312061820870547,-0.08644673077276585,-0.014099928217138132,0.06349709452523783,0.02813169817555374,-0.006350127247998069,0.11754558762974415,-0.04560755603658928,0.05144968493144895,0.014016341782270342,-0.05193344755366963,0.03702078632867377,-0.06857523944104693,0.17359599253019606,0.1417455336280095,0.13530265211959178,0.1338096311798457,-0.08039044981095192,-0.07580700745392058,0.07133349219072702,-0.0005396242678632972,-0.020858258819500198,0.04223410393779664,-0.08910173075641964,-0.1153108228590273,0.0767470422878292,-0.06539488800711585,-0.039435803028125056,-0.09493278131364392,0.09678306016694196,0.05638648728832283,0.024692778663168165,-0.03269958514458556,0.011570321100525756,0.03170713921159649,0.00675935367449227,0.04307105208666834,-0.002250829063596398,0.16695147915348854,-0.13246204060314534,0.10132702696790949,-0.05235555206185979,0.07499911862733118,-0.02961331796365587,0.005308180919992271,0.10782920659093488,0.19816501278546916,0.001382983263387763,0.02381466312507804,-0.14168724670197155,0.07473311103626472,0.013828704036143046,-0.01479731700623892,0.10998679393588746,0.028448587189782586,0.04961551134152108,0.06227897766328495,-0.1292138320591285,0.060024650161089724,0.0700687716052134,-0.20295078061616859,-0.10313864931149659,-0.06445258459614045,-0.19072609545586539,-0.07140956273114034,-0.012704067461925575,0.05584977564701778,0.12439123686181777,-0.08236668392873031,0.09677427026872881,0.10695017805874955,-0.054682450575361245,-0.08984051191826314,0.03502270331346292,0.08751120555456036,0.008040633532147916,0.08251706338052157,0.03374728935752817,0.05750817057405828,-0.1045491564725897,0.13932694471277693,0.02450062344194138,0.012496516035845454,0.0385058561225845,-0.11381702713841882,-0.07120873078595062,0.06049411721048064,0.024403271189851986,0.05329006653378485,-0.024129247259947327,0.018397001757355827,-0.09493069094249575,0.059508707485260263,0.09830730231349931,0.08105974250066071,0.02562862914940949,0.11760358515787867,-0.13189514886205916,0.07408832849460713,-0.02621309556872814,-0.04856806053670875,-0.045134284989162124,-0.10376112915666384,-0.1941300817631001,-0.05642240109554907,-0.015420206428003009,-0.07721639711786311,0.02861900740167184,0.01743067295256649,0.011539282997755824,0.06834901211387133,0.010018345359466038,-0.11768037431515198,0.07135337163157894,0.10032206127675106,0.016570556173372275,0.0711259879365309,-0.017867450782842666,0.14573928731379107,0.06050963909837458,-0.0030683515895494297,-0.07994774938164455,-0.07026634304267335,-0.003092405843907026,-0.03933418969898178,0.114059719183492,-0.025461419821787415,0.07143499777257241,-0.026219891234358108,-0.056946024985271154,-0.0023039283529026006,-0.06358462694940441,-0.055499704526079906,0.05607249141360546,0.05743878994820249,0.062154957969923916,-0.05153348862636008,-0.06190329608567853,0.09750075352591729,-0.06602872592139496,-0.12307852932713138,0.026068105693755055,-0.12368507347368576,-0.040701727291655374,-0.03391008106412953,-0.020914631665514927,0.03974261066206756,0.07806453709927301,0.015182659972096982,0.09257949871211821,0.015790126435226187,-0.0801365246734178,0.013672494609242017,0.03725194402004593,-0.09393753867078523,0.10204500864399006,-0.17498290332573435,-0.08020274576828913,-0.03903975322472742,0.11278194684668186,-0.14218769060738143,-0.09327068166632481,-0.10061597508811566,-0.10319705293536856,0.11596989237545834,-0.03276025437533281,-0.1461264701122267,0.043894623645419566,0.10212836921253424,-0.05976952496928806,0.00027169813388092383,-0.03695704546309076,-0.012250419782892975,0.003612794124921065,0.02232236731226021,-0.036393444745600585,-0.05243021212205732,-0.03051583417255023,-0.09967973549114334,0.06180574079747454,0.08524369257502636,-0.0368245495066456,0.030974148079784297,0.02194741479926376,0.09804297072806678,0.04856419830210982,-0.08372108054797868,-0.0028483584942896175,0.07289629004697129,0.053339724578274225,-0.05524638730766406,0.028575254252016003,-0.04594098644811072,0.01390188415266075,-0.06513180348936085,0.0936551298886924,-0.10758165937643914,-0.045044648576399914,-0.017040995076888884,0.08087318169457838,0.053819300426736875,0.05323514230311388,-0.10114899181289373,0.071924578978861,-0.004294272260929825,-0.017491075307277424,-0.12322818713035562,-0.08133653424596317,0.021002293514708423,0.07828786967274175,-0.03660409424590661,-0.022535363115621928,-0.017683653164416595,0.06964396878036871,-0.043411117653224265,-0.04115016280502085,0.04221063208681905,0.011245712962908648,-0.07303557593642361,0.06586617725863077,0.07621334632294721,0.07166572877192569,-0.06230791370087343,0.08342677912239707,-0.029637637201400006,0.07187460989001457,-0.01451655842105435,-0.014507142326546525,0.05270159552249626,-0.008325631187071985,0.05851989814739881,0.06649946800221786,-0.04217772508601079,0.010168258292140886,-0.09456661153775878,0.0754200501106372,0.002849455878201295,-0.01776100023828444,-0.1459684538078252,0.10206130112768175,-0.032265671013016965,0.09177534147026332,0.09715331911301082,0.06186954845902712,-0.018417981005793557,-0.012227001841253742,-0.1524233565906031,-0.09211519151653146,-0.05131940047384594,-0.06361420528520773,-0.04956676404028809,0.06646620197750386,-0.05040389570961176,-0.024337504029454324,-0.14467272182781246,-0.0010015976838751888,-0.03238060261102418,0.08283771887778807,-0.06881359717876032,-0.06410009131481009,0.15402100807643074,0.1064281414679833,0.06455783426933459,0.11014605935755956,-0.049507772067099644,-0.03724731718585522,0.08997225692303339,0.03467355831618918,-0.08609091922009582,-0.043486641533012654,-0.047510100860317386,-0.03398589950528056,0.07898185223658481,0.11421281723476716,-0.020889189220520726,0.004562915327519644,-0.15597621724701236,-0.09124705817150727,0.0303144703271293,0.01649395798229833,-0.05058222070180007,-0.03334919661945511,-0.0863157639222445,-0.013403438792937464,0.10766998188589573,-0.09277187588955861,-0.16979176313739927,-0.03655242403307699,-0.021470825634889012,0.01211406450867506,-0.09525848784169275,0.08831772905371023,-0.015935054475578476,0.03600158446444038,-0.07833576986076096,-0.006337193366507674,-0.09912855689228248,0.0050579469920865976,-0.02671100435759021,-0.09416580126484152,0.08272228647647757,0.014207117672304368,-0.006868493229093592,0.133359055357396,-0.005188564995045777,-0.10956171833043785,0.07540490564840852,0.032818737068311565,0.00047150390463609326,-0.07302659624180777,0.057796494842260855,-0.002456527611421156,-0.13426795649655965,-0.07282584977728061,0.020252309919414475,-0.07575411819489912,0.17045776062291423,-0.00550989756334797,0.07055305363832926,-0.028277481767321533,0.00835748380990427,-0.08607344821020425,-0.034137819045115946,0.0012266300806378682,0.014214922662641192,0.00013415756793742776,-0.004656933323308144,-0.025203245367245032,-0.04713882162731686,-0.09486248185731111,0.053760949922718834,0.0559082690115828,-0.08958083461372462,0.11848037810616811,-0.0038485857227061283,0.2095614615602938,0.09103421245327198,0.009950988351008229,-0.08532136794344428,-0.0896495497210582,-0.03490454989836671,-0.15954341649204998,-0.060028229136345465,-0.12134554592571206,-0.11626590628270965,-0.03391222796426997,-0.10049560130299674,-0.01751562278012889,0.09410933669272872,0.007926602223222333,-0.013525291198750585,0.0017994278981146843,-0.00010743069296330376,-0.11103287497164335,0.11370883036542155,-0.029743941416582237,0.07691865101114019,0.10265295587156922,0.07835476036863974,0.0057974588447264564,0.16694153077829763,0.020893148996661226,0.0529572173188484,0.009671160345835652,-0.09281451723597693,-0.047528405532794034,0.19410175434104307,0.14166831153235487,0.036985538929327676,0.002765246925745717,0.028474749007670507,0.03910209977775327,-0.07257800184815681,0.14638978718532145,0.03167649937640162,0.08643546478289255,-0.01836620026375413,-0.1456218938033606,0.06596596825896402,0.022041510647924485,-0.14007979757416994,-0.17412500667759087,-0.0057051739091528,-0.0706938178075641,-0.04694334914661212,0.08454676567291688,0.07168041801987908,-0.03662792648118429,-0.006915603178384392,-0.011705604997758903,-0.019507394363151093,-0.014164698784303788,-0.10051091623086479,0.010160263903141807,0.020016965462281513,-0.04459405246627656,0.05256311183631462,-0.08101072831316451,0.048042499284283016,-0.13138921853322047,0.10140785183729617,-0.011975872468048925,0.0875028354053577,0.007353768680842918,-0.07973901389724913,0.02685612329546649,0.11986459065240347,-0.008384590983216202,-0.08902827092273927,-0.05193043662876791,-0.08219507417339687,0.021765288386205842,-0.03684902769105821,0.10510341766191911,0.1579162761470857,0.027437948462823217,0.07416679905107666,-0.11658345338955375,0.01747312267453222,0.005391489051735849,-0.0819979855568202,-0.015983391370045612,-0.09256268287567153,-0.1704263038103468,-0.08112938399531218,-0.06961496022322107,0.08003196272536231,0.024221100964425975,-0.027063708274702662,-0.09464735473480834,0.06617216854968057,-0.014973932077214605,-0.12367345485601129,-0.015165964061193528,-0.005769293410094189,-0.056695524945304734,0.010631196805456523,0.011264268131914907,0.023265218038416694,-0.08859993570634457,0.013091484161267123,-0.06491631867142031,0.047484595235771324,0.0279128880599489,0.06165693197645013,-0.04780403641856108,0.013251976641571394,0.11653812048747447,0.05934887908634975,-0.0492683594644651,0.016776906893377783,-0.047097052280989586,0.062294637559333954,0.1495437284052166,0.08299403030012505,0.11379248060695811,0.10256186999720514,-0.025206015681664612,0.04803433891980474,0.0043470773048045535,-0.09845390620692465,0.040025064775240725,-0.002356383044535392,0.043361401929160145,-0.07695694997211801,-0.027888259201983574,0.03923141629937136,-0.03716880211976265,0.0659787108998022,0.026744004709403746,0.11126239462782739,0.058498883287178324,0.005698827165671112,-0.03902561731638533,0.00942989404521386,0.10074800052527196,-0.08305648601772082,0.06641608811149972,0.018777327320117446,0.008680457583132855,-0.008038161844488455,0.051952969219027735,-0.0737095307557346,0.02699879091422701,0.09288668689158157,-0.10684122912372855,-0.04699549315489574,-0.1062524813039274,0.08070927196359381,0.07375163715531724,0.01640457870087909,-0.041855657389809925,0.10061545125443126,-0.1598965557219318,-0.007836549847502757,-0.05716794203464212,-0.06191265829612649,0.030261379537039598,-0.10870896355210104,0.06876815953845965,0.0377534943863673,0.11674588850625808,0.09511805848678025,0.1165774907133641,0.08106693586419723,-0.09686084969805774,-0.048046390715069956,0.04244469492629998,-0.0416213863620155,-0.019357859986561057,0.05483089967524857,0.003777437196772978,0.1174431048984906,-0.032506639197225906,0.046263134080862495,0.05069977013049482,-0.05853248800366759,-0.01973751798275911,0.011346070181016302,0.10894439027801751,-0.060017521211887345,-0.07100725375904936,-0.0929533958404701,-0.05922457825439458,0.023946910546306113,0.016111462038491287,-0.12484894713312725,-0.027613938865722727,0.10978052464018724,-3.110165859261495e-05,0.03005585154340591,0.11603706518838328,-0.056329534282228734,-0.029066769846408432,-0.13920566639606818,-0.043497279002531614,-0.06849766461012378,-0.02337818046865715,0.03860467631139456,0.01967518180548758,0.041547959080169394,0.029201934955381557,0.06009537464100204,-0.012844720244767646,-0.049788778741343985,-0.0369683775480225,0.0003609729558678359,-0.07023803365108906,0.031003244030100654,-0.025898509958106768,-0.027450331618090313,-0.004068951737182285,0.00021379050451050523,0.043364055309284236,-0.14462890254530447,-0.01455007258393888,-0.15353893474772,0.046941729700843066,-0.14127081804238714,0.09567353625680493,-0.017932826982193166,0.018770913834120287,-0.03725460314880579,-0.08901075675264399,0.11499859181073543,-0.05751500104472302,0.0003714097561252835,-0.1342837136958574,0.04354852597272853,0.03933463984710237,-0.004191305930534811,-0.05762559687010711,0.06277092077914385,-0.06498014215736085,-0.030988647307547027,-0.13958819526456426,-0.08057013154795259,-0.0447737742293779,0.027579382686985246,0.02839574080048935,0.013206684393636973,0.08354104054929846,0.12785732710173878,0.14145770713792294,-0.051260679366328776,0.06423500577515441,0.005171018206075485,-0.1122546619109084,-0.051857850675777806,-0.09032199179328132,0.05632431905935745,0.04857119602340024,-0.022622943131073856,-0.05326373533136582,-0.03781627239510143,0.12167919370991158,-0.08079715401755459,-0.05348389143051865,-0.1543767874670548,0.10546796659657422,-0.06891602608360027,0.08224634176052881,0.026610367516910993,-0.09072669840564714,0.02589510564559966,-0.014603936776665686,-0.03378172873611534,-0.05504233609464011,0.09599056880768761,0.0856725248673634,0.028883002987299844,0.06607220974147152,0.04083127508612278,-0.03196928872158792,0.045679296453157374,-0.08140032384022733,0.01620686256740503,0.08205828044675671,0.06289876641493639,-0.026412559735873687,0.058581987784429815,0.08340845162642173,0.05284181349498743,0.10696603767086037,-0.015212178518831242,0.06930478560703013,0.06018813765748393,0.06450820406647687,-0.015379509859124054,0.07396184355553122,0.031353586245667905,-0.09297748380678042,0.03331635735532004,0.03449469384028381,0.10109004364216427,-0.12921673024276964,0.1729875100421869,0.04044891115024372,0.12060673755001462,-0.11036284721213352,0.05824576386251967,0.07757060429093178,-0.01621238669042477,0.11672728296535666,0.0020654543368749285,0.11467027767123103,0.048440959176854245,-0.04939289586333941,-0.06335680492369082,-0.1043050294548126,0.06899446775147186,0.06855224962032883,-0.03334560511240935,0.042625022491915555,0.01167144660862003,0.002500471560320858,-0.005534322186438168,-0.002872275377400139,-0.01682832403157548,0.043543055804618536,-0.1665060575030406,-0.08905651707835255,0.023660976281887854,-0.12535905251042279,-0.0672603119874029,0.04744715513715588,-0.0460435388845793,0.08633966482879452,0.0009453583167139528,-0.06126901314129748,-0.02915972904412976,-0.0682617828066166,0.024589017710167683,0.021677288622985347,0.0038435355336903,-0.07776099837079682,0.16519696604392092,0.0346724489370396,0.06920899249799843,-0.12297188743331697,0.02762252314640174,-0.049565000720333284,-0.04300689880340358,0.03412705707318283,-0.06481840343400545,-0.006523969765213106,0.05966490064618919,0.009319968459812792,-0.06708227155880893,-0.02060863329410744,-0.08031587539031473,0.010790905130296076,0.07261920853519194,0.07000260403863366,0.10280177954364302,0.11203530725164508,0.1626261423728294,-0.13241821101688664,-0.0017981169163339352,0.00854886638912193,-0.055509146294549463,-0.017385326945081603,-0.089091124424543,-0.04664564791926421,-0.1032844998762795,0.02064020337403212,0.010103719534168287,0.058027587476179164,0.03001017303581343,0.09061683458759624,0.056675896436896786,0.01174237169466224,-0.061376284491186935,-0.004562564745227181,0.07247911200385591,-0.08591421809935285,-0.0023233598267448237,0.06647967635316458,0.0349120092860406,-0.034972778149517256,0.11680432284953685,-0.035053840357094176,-0.06374080055214505,0.1114233460086526,-0.0046163918699378215,0.042779142648152156,0.1531605757454361,-0.013182447945167212,0.06820380382834283,-0.11832911194824215,-0.04853621257273195,-0.026782477287044155,0.023075165068425645,0.15110937964547472,0.030642409849833897,0.15623998457770016,0.06125108369635767,0.03658081720341332,0.035273221909743885,-0.09307480046820053,-0.04049987483212844,-0.08021970601060847,-0.07644725451090488,-0.0750123317731817,0.030233549026320188,-0.014625086338897503,-0.06738054889463228,-0.06574189444682865,0.03137023924533786,-0.04475315006753191,0.08063738777345182,-0.021714917467655272,-0.0563638452604312,-0.07096008785596918,0.015479536031965285,-0.1288344137984524,0.06796576630622728,0.0732461150238853,0.11983900239137955,0.05843474889085381,-0.011504074790523773,-0.06649466186667352,0.0015471364150496127,0.014696816764964548,0.06596042244126482,-0.004195206548812136,0.02285410175094673,-0.0011623092677329368,0.005591208594787261,-0.1131245836057505,-0.09764981106100508,-0.10728370943306374,-0.04214677081029224,0.09576734246675654,0.0763176144255532,0.08401854359605637,0.05612271655641243,0.06338968055542324,0.0343443414353602,0.0011769393108275765,-0.1016683866795402,-0.05518491296925587,-0.08235694694390104,-0.047247095972778146,0.05419347905175898,0.03884462715151691,0.056945267379672086,0.0929878458598792,-0.08287686545471651,-0.015162806799633805,0.008911327237653347,0.11012549787543317,-0.05095840805244755,0.12334461637042096,0.011054060471111769,0.07581868275438694,-0.04716927731558239,-0.019427827798468786,-0.025318364821261433,0.11097451424795175,-0.030444895087894792,-0.006175366624914278,-0.03291266320594318,-0.05389757562869429,0.13222425149292752,-0.09103803877217864,-0.11399674083025829,0.028792836727236662,-0.006393452712190998,0.05277863248623901,0.03348943914088673,-0.005536916366832149,-0.024135922804416253,-0.14905939241411306,-0.030578496279632078,-0.024608178139989927,-0.0033311951961783695,0.08783096343694681,-0.06886952043177738,-0.0644976468935341,0.15563901440461775,0.0819309178609444,0.07706795525184246,0.08279293129804283,-0.024749173891563246,0.07099611910393586,0.08335784715619315,0.04985537380581816,-0.00736724874575809,-0.01723368659272774,-0.08001899517133315,0.10209838608623537,0.08935754588200664,0.0006888544385904559,-0.1417112224042548,0.11441353885013993,-0.06508143294884404,-0.06485193538674545,-0.019977362309030713,-0.05035190329056667,-0.12242916933116155,-0.055160273423607506,0.0748120895684789,-0.09039169561293248,0.009814989465232245,0.08030161054770564,-0.08210350892198062,0.03309285952195698,-0.058001195988643825,0.1240971277563419,-0.07662819944912241,0.05201272629527581,0.0004730373624817361,-0.07445317848049957,-0.12230046443661545,0.0039235622702226925,-0.14901285055360614,0.0073621945472539755,-0.08012755580952531,0.0005864822485256634,0.1688881838028814,-0.014102843125447549,0.11927796984132165,-0.0026757497296775136,0.039330002655598696,0.020113402651488293,0.029186076735774183,0.04939031252658982,-0.07381122771159769,0.0466981470749188,-0.05983077127028794,0.036722001664118015,0.11547778113344068,0.005911003034649637,-0.0501786304265403,0.050169298905071415,-0.1290162729714621,0.09509340498895474,0.007431811348633358,0.010338220430832878,-0.08194376679872273,-0.06770330604058218,-0.001990254712595165,0.03380622767219765,0.005528268040299766,0.0009727871961449922,-0.13375569452502178,-0.07787240258003235,0.1087058671229775,0.12454266661899185,0.07412247903896425,0.04132082100259333,0.06952335516989518,0.006915264435061258,0.030952515962419495,0.008546404776389913,-0.00869713503381304,0.11852724300528873,0.04806494332374237,0.08026147010483763,0.18178339227385554,0.053599958612807024,0.08953090783676385,0.037760907433374444,-0.026356961979075322,-0.03715979022725278,-0.025112608667868117,0.07285177879373665,-0.09080729638764902,-0.008447976104133894,-0.01913721099056498,0.07597523249560362,0.039355596028978805,-0.0002621863396195623,-0.06375542876935264,0.03736251734054617,0.0304135667439811,-0.023575621028634218,0.0018503772081142524,0.005077594739519852,-0.07512413177862852,-0.06977781868427642,-0.09100766872304537,-0.09563709841819167,-0.017762156359298457,-0.04790202128293172,-0.13470854180353406,-0.020591252286234537,0.03008161141382661,-0.06627824423171838,0.07228437757048141,0.027658954465791842,0.05345876463258759,0.0037887099988475866,-0.049455820936975765,-0.13983698264797206,0.06868436663731706,0.1071876447985553,0.01801877003816696,-0.09111230815227349,0.035799268184212855,0.1299794517394811,-0.019674801949718584,0.04827383164674683,-4.708264110947661e-05,-0.10808580407755904,0.10307175006152082,-0.0362528136097275,0.023116016231367397,0.0743414430321714,0.015091295758468517,-0.10745319780465576,-0.015770721445905665,-0.08138486937254753,0.038485832832938056,0.07260363099970489,0.11870105029829317,-0.0060393623595137854,0.14964425190014624,0.03137170723294923,0.18524564818485006,-0.05208182995135205,-0.039452894742207825,-0.03454613898572133,-0.010842879921806933,-0.06633378721051827,-0.07948698700157263,-0.026026719189620705,0.06495685861855459,0.07574603028034772,-0.05761197693039188,-0.029304921354584623,0.01698349217977685,0.32722352251819986,0.06604910631646782,0.2530585007050203,0.1503112106020504,-0.03349917959237553,0.0862218190237632,-0.09887049440962789,0.16652103939732965,-0.08755990479556608,-0.08542843974082377,-0.1124122117069943,0.07520720699140071,-0.04768645633814837,0.027549159383988945,0.056400328607757795,-0.05423210797763872,0.007093171581729845,0.05502888263250272,0.0714286162251196,-0.006578734624657256,0.02566721119676713,-0.0641366156965581,0.10340224513820125,0.047093041898689694,0.09532731212087023,-0.0030920116108022577,0.050997934201223775,0.05477933161282849,0.07568782493198047,0.06151993958738282,0.07917070693186758,0.03166488922033858,-0.022426680563347165,-0.12168530984351486,-0.01919936938813014,-0.09482556161875935,-0.07567984394828105,-0.02001334307143943,0.07774373418587578,-0.08639471817575257,0.2740040441306116,-0.024314737895101784,0.25595178720789374,0.02054042442254757,-0.0012368740353784265,0.026983405600549553,0.07718506447856535,0.14015104117279714,-0.07714450253556313,-0.15367694397804704,-0.1358140107890574,-0.09792117254039398,0.09489817756878619,-0.05022198673102151,-0.06173585604913844,0.024893766634462685,-0.08272067234467317,0.039298447365627785,-0.05254814730650563,-0.059889484665580785,0.061697082662853425,-0.0732884491046495,0.08129045139381606,0.05897613777506012,-0.02688017134745261,0.08560485595084695,-0.12009104288325771,0.180807273143894,0.03132107883859935,0.021510714024239076,-0.04792414725358821,0.08660952694296895,0.06181343715203529,0.0011976374627253262,0.03776713407844069,0.03196600607816293,-0.09158727492694455,0.003088202221541509,-0.07289780959972395,0.07448919179612651,0.13815670674952749,0.10407748128179453,0.2508388369771346,0.0809017750150081,-0.018557793554644774,0.010702011927337392,-0.013420085093266764,0.13337144376318968,-0.07685154988879768,-0.1353808249669196,-0.021245545028906916,0.07937983803964185,0.08002559663549849,0.08464769826714473,0.10683957708231051,-0.09336441534701657,-0.05704453835380725,-0.07370888802991098,0.014821141493468365,0.009629452780614481,-0.04492512299508052,0.14957649075657664,-0.116236368011356,0.23410950410321443,-0.049694554913894844,0.12166658298736864,-0.15037493749563036,0.1892961070863064,-0.011637011257447993,-0.05963249094546183,0.09721673507107385,0.021653669886683116,0.014122974684558205,0.11603922093341593,0.0694634297287052,-0.05963141836263672,-0.0629806425101506,-0.07980998533242457,0.019149291454945302,0.01654793631154056,0.07091059456396426,0.1480029932593773,0.2936370632724075,0.12727062828444397,-0.050665877432893504,-0.06184397704630615,0.05766001701738543,-0.10645198338232824,-0.1794582756089292,-0.12793788720047966,-0.12107107424237451,0.005930429313237543,0.10063077177550772,-0.0091470885890306,-0.028495138150208096,-0.031261272249078376,-0.08253953312707174,0.04504207842692169,0.014963813089981187,0.04228338785285678,0.02376712025889581,-0.06149315782143272,0.18726917428480894,-0.12094612849957645,-0.09141823430829006,-0.13891054530381713,0.03792756813395834,0.042554080056458304,-0.09295112696662443,0.03657191545791422,-0.10909757494956453,0.0712349631702652,-0.03066623322540035,-0.34063491638410437,0.01675403623729672,0.08694563711597668,-0.0468527350117521,-0.03066181602684523,0.06568349429742563,0.06849692638062226,0.04124837320136435,-0.13117144859441007,0.08835739888286917,0.11112474290063236,-0.06638109265592394,-0.10277999682687028,0.03443874611500348,0.19211842710621418,0.020245267182567687,-0.09883937041012789,0.07380159796721573,0.11016132503944215,-0.09102740026695898,-0.07014061749424916,0.011165750058069485,0.09001484150191462,-0.08546419078502468,-0.005896237249400172,0.015126583549787317,0.07120068318611755,-0.008401780593213858,-0.13722795712114405,0.2158307587346011,0.0003034539031002427,-0.009443412407361436,-0.03152794992746968,0.062111724361776185,0.02203275049402728,-0.10082629327040832,-0.05088978775000004,0.08916058681957417,-0.015105285836126253,0.03709328749236091,-0.2860562502610507,0.04050252221149948,0.008070906394619019,-0.008262664542098706,0.025695315078092397,-0.0018574345613903802,0.05842580943185141,0.13161388074614072,-0.10595071505858647,0.0998217709711527,-0.046525138880214256,-0.02990231999386211,-0.06085507407405445,0.007128252222544722,0.21577704088764596,-0.09255389231212235,-0.04515021640278641,0.05720887299686918,0.060314128695867074,-0.07487967339614061,0.035973271880938275,0.08226933289860423,0.036610555961226775,0.03788289532664944,0.025639238789972513,-0.037419170922742356,0.048870328691044136,-0.04576347166222885,-0.06457371659196173,0.11510033393396063,-0.15138339997617362,-0.05302811903532706,-0.12091298494356412,0.07347276787638024,0.07648638873992361,-0.023419604777965723,0.07847847518482076,-0.04063360464098357,0.019599459766622092,-0.08049436340111091,-0.2537004000550219,0.06238393568692285,-0.06015788006446068,0.10380231700682824,0.03641933278174878,0.11901934827531661,0.03694085923272953,0.10418407936168174,0.004332116674729245,0.008310543352610791,0.11423606902750322,-0.05660099867322491,-0.07644105478643488,-0.07160705559311402,0.28165629072801823,-0.057740339595385215,0.02742261613405108,-0.030536006190186142,0.12824928982657985,0.06416296094705423,0.10834109145531999,-0.11133715486361881,0.08018930527073284,0.015780147354364258,-0.09290252276242301,-0.033033365345604075,0.20376266342836644,0.02312743425350502,-0.18314503892420292,0.20071781384480017,-0.1290292345169684,-0.09713153405270529,-0.18917662881834224,0.01864755463064561,-0.05634085105872101,0.01886352588321775,-0.01900216445038963,-0.02728279609435758,0.0467395455609477,-0.05614130260976011,-0.23331298471695405,-0.09384696204641281,0.03744712201450824,0.05420934528589187,0.01345451949016454,0.01695288824439418,0.12521851414098903,-0.2031496206219572,-0.08682830907691759,-0.07715409403849827,-0.0664121388805696,0.016462759202662804,-0.07130368433159692,-0.0663365678159626,0.3200614133165244,0.16282631497588088,0.15169445783465546,0.1142830450053996,0.15420160562735807,0.048263009687916726,-0.012636594082227212,-0.07231411819205548,-0.05401158211489333,0.07624204027826387,0.006317695385660939,-0.08019278369003745,-0.023485423892836706,-0.026650826182434854,0.05720131996981167,-0.06657621013671292,0.04624774410589465,0.062400351613505434,0.08539039758088224,0.050533647858000574,-0.026172486504783123,0.003165177266808812,-0.004460305975201736,0.03174751830991632,-0.07839563444903698,0.002366447398338494,0.05955133676163203,0.05707051004575989,0.04643754219113188,0.03873678912814513,-0.02572239707343445,-0.06462293988148655,0.048416531767430875,0.15709420108022198,-0.0002967297051463986,0.010802106266864035,0.0038877014040756045,-0.02125605272798622,0.018570971485791087,-0.07692639117049795,-0.16234282583735893,-0.07647369691873385,-0.047049590046257465,-0.15039129673399734,-0.12536951272259972,-0.048534266004253576,-0.058192498481815264,0.13467220673615266,8.137315166124556e-05,0.017296414903096205,-0.058840782213183236,-0.03069899333531185,-0.13929103391749914,-0.06494481631387261,0.09242835300995625,-0.08767310166329212,0.14938971778309762,-0.08074063218190541,0.041654404376329335,-0.0140326980606876,0.005897392754789934,-0.0916273629047287,-0.06103399707985257,0.06105520179088907,-0.06968832235474866,-0.05921697957709528,0.06610034798804527,0.03836524363676452,0.028160759899725264,0.010068791641965683,-0.06062053667638829,-0.03532171533305734,-0.0754529876878427,0.07516654042796848,0.09080730597658818,0.009933137252847455,0.04463928878249856,-0.032144542514370066,-0.08654408599193322,0.046822192846010746,-0.0597092074587064,-0.02218203430733152,-0.08171682576497669,-0.10575593558331804,-0.004659973725118518,0.06929454306397742,-0.10107046660549335,-0.012676872304563944,0.09393550822822959,0.00026016939511205704,0.0258260081644863,-0.07400630416461641,-0.002606969081358074,-0.05426477793421373,0.0875317184005131,-0.11747168337270725,-0.008505656759968498,-0.03368715879299737,0.11083374455451309,0.04617864486553952,0.037470054589933806,0.0418249694175139,0.07703669055644186,-0.02782981763690124,-0.09501391251194445,-0.05217285262728762,0.0023059647533729736,0.09425248478078847,-0.0623909173717334,0.05138199029256584,-0.06178041182158331,-0.018515542074584834,-0.06882498202173425,0.16005382073333901,-0.014900287423064727,0.054740379565602654,0.10686249609766757,-0.055740872758020116,-0.04152372081730547,0.03966620111211424,-0.17004368336143988,-0.13851165074556385,0.05548478668747019,-0.01617078949456918,-0.04901677795309201,0.10872513696980397,0.07450199624264182,0.10095306774057668,-0.04666548276324189,0.028879314335450462,0.001254335430673454,-0.034894219945356415,-0.01556181792049634,0.04612429659240944,0.05396346402360852,-0.12116799041682894,0.0057899081290499746,0.013729978350038731,0.024102425851457398,0.03768254025434038,0.1016664967212166,0.028617292761059895,-0.02987289719018719,-0.029904239314450812,-0.025256134406891218,0.06307775266956622,0.1250405055801592,0.05918633497790144,-0.06239363323699313,-0.006241765966770623,-0.011699141865736491,0.054560528862535256,-0.03670667518734961,-0.011214115270093793,0.12295745205806506,0.03824652713490712,-0.02366963365238233,-0.021444343750913718,-0.02878107828595617,0.06980053618666354,0.00826891236962772,-0.10777055851379291,-0.021578458105729916,-0.0063169197856123615,-0.09129499596390064,0.10181458585013411,0.07286528154764822,0.10678093812532907,0.049676228731640674,0.06738727937582885,0.07793853170840671,0.08838854987599597,0.08663208258497002,0.05748289341732384,-0.14587275150976795,0.011832499949263511,-0.12416128276912952,0.07824504684914588,-0.009516499867303714,0.11425672479190359,-0.058281543704989426,0.06764780000733314,-0.007244839396459981,-0.09745728928645016,0.1068999157249422,-0.030144094492548852,-0.17120992463711393,-0.003681367886147577,-0.016800441721708814,0.0684067274148827,-0.030243737380915348,0.025801864846936858,-0.018973738832662707,-0.0769833433241788,-0.005407715079858029,-0.1392224353082594,-0.005714794136786612,0.012876314963286428,-0.03405616640936503,-0.05554510244725035,0.14350072212727158,0.04058057347837532,0.007801505539707441,0.10065298678034537,0.11660192310557195,-0.03393795060766588,0.03891249896654785,0.0115053572927991,-0.04830384039446794,-0.03036964892814862,0.051711312331596995,-0.04828017617759043,0.026209256635506956,0.09348364759974448,-0.07028788134173258,0.1555948174641825,-0.17011120186170228,-0.036735634179045025,-0.15143811505363397,-0.011083181172174638,-0.039170884580612665,0.09179056188226577,0.06510888401340231,0.03441917974886477,0.09230915465168334,-0.09802886947816722,-0.06416414541492846,0.000767216621634179,0.04585466758100652,0.05700808619655965,0.08842970126870073,-0.043885235549889545,-0.07680225795202306,-0.024144184068184648,-0.1251340769321837,-0.18718089713133662,-0.09071980246974383,0.11347658512775144,-0.10259196863765754,0.08437110864196634,0.08547283775831675,0.09514576356756675,-0.01088665236439205,0.02496804242299158,0.03237760712856118,0.04749302124634346,-0.07436980400234966,-0.032997312618689253,-0.00047495632536865683,0.08743307618613651,-0.029655566063091048,0.06515282424485336,-0.044815077756119134,0.11176650809919825,0.047108995425056636,0.1025287269699362,-0.017151065549509268,-0.07471696410887156,-0.048434083899088064,-0.021589610625852452,0.0037081862049481227,-0.07100227423772251,-0.05299018894310315,-0.031378157420726215,0.0657951697263506,-0.10583516172240749,-0.11231615173688836,-0.021645147860548927,0.08609777805846777,0.05650223779802873,-0.03937018286728156,-0.05146165946257669,0.08623482526876838,-0.09203428450754626,0.03387147448312464,-0.08296258934686514,-0.03405654515226706,0.03738401280066599,-0.0381790696100847,-0.020432606854643667,0.16272629375447523,0.14219797825906216,-0.03662408429047654,0.14561138493142503,-0.033991106804152287,-0.09772604751689952,0.10323259108079309,-0.12215758261011868,0.03710976091791425,-0.05633215541536869,0.012018665589265957,0.08846505478375402,0.06907469634737382,0.02862158241155507,-0.09178943695596926,0.13053631824251571,-0.002619695722917036,-0.09529447558008844,0.054089303122892576,0.05449341349465958,-0.1270666060236846,-0.0006816520703288098,-0.03547416214908883,-0.10318630548066367,0.11991143675135876,0.03522451539702415,-0.052598693375343494,0.05236569164080766,-0.045733338456592505,0.10386264813445263,-0.09545450240835679,0.09488395127170829,-0.07795432322093757,-0.008015583764897112,0.06773177617512562,-0.03604389145444292,-0.01899772062598043,0.036111707495744536,0.020710208541404002,0.07727706060969691,0.057785963958345093,0.10461535100422736,-0.009641298596419047,0.02773591410683978,0.013363686353925526,0.03183679538490928,0.044143605752576795,-0.11589093062764676,0.06243030372778089,0.023526827664654946,-0.08060398946377073,-0.0010134942245832138,-0.014459957226851776,0.06389904471013594,0.13083329955228512,-0.10858718353311542,0.08254023513734941,-0.0039217788764019275,0.10999022993052612,-0.0748694686609975,0.059555348693754326,-0.0672034058085309,-0.01613143724414197,0.056720439379206684,-0.056832797483631944,0.06500270868646499,0.11429849486827925,-0.026457421698100433,-0.10216506926591695,0.0031944229583665148,-0.011459637443932191,0.05505429314961705,0.040102501774278335,0.018052115622690806,0.10289140300688324,0.03574637657169166,0.02768323570377095,-0.03409364999628876,0.01718942046391774,-0.06732769123356651,-0.13816970744590043,0.032473975165447685,0.013958076376518047,-0.08251113827438673,-0.07898974752223284,0.0596397461726091,0.05772836883901046,0.02915894180741177,0.07770041302355442,-0.052039098143345106,-0.03024104828575478,-0.0059489415997114655,-0.13208156098482343,-0.03627758646742731,0.020841050871307384,0.04572149547931632,-0.03117694551199618,-0.06556108436908654,0.11368664503435942,-0.1238231572047831,0.06757187375509364,0.02191846618078851,0.048754503524869354,-0.08448400005956237,-0.034721496010807436,-0.014310314509217928,0.09052890183388365,0.11351755880471305,-0.08712261657037201,-0.020862099793644735,-0.04241505259001742,0.05851023035188963,-0.06743419110649786,0.08330165633571116,0.07936428867922062,0.07547590425404684,-0.002795712854288326,-0.03077267489479994,-0.03248490958679565,0.07940262656616368,-0.10723726468201476,-0.1276301223352633,-0.1036997561789006,-0.015963189014982355,-0.10561611672898803,-0.04316923927698624,-0.0002423537159098872,-0.009211697437078887,0.023182433368844672,-0.04329190499576937,0.10283293029564376,-0.07238369446936087,-0.041426486026387876,0.03137654040519518,0.09371857294539987,-0.007872795487092502,0.04219023324321388,0.10022592223295909,0.09626181325221671,0.02942754049361719,0.06993763055087902,-0.05207805467865157,0.05304238581420524,0.10097178752801202,-0.07486201106775851,-0.06525985359615923,0.1599673850925815,-0.022931919469238324,0.05610291394898422,0.03972855506659232,-0.10004187528342574,-0.06153249253436394,-0.10646927089651512,0.008639151295937873,0.11774154376243952,0.1307191076928583,0.09969201049423052,0.03452335632995943,-0.056501051104526724,0.06663701196107406,-0.08192890028492943,-0.11591768464262901,0.05100624347290839,-0.05554574636940681,-0.10799476836793086,-0.06225140703165981,-0.0921983102188696,0.0035355952741397234,0.057965663647411535,0.07259621404286302,-0.016895615542932844,-0.09917613340069832,-0.0783715758782628,-0.08211974489891846,-0.042630849883073675,-0.02743777813420925,-0.0028129205916308064,0.004558355285161626,0.08757537620252774,0.058141939558806574,0.019493614055537272,-0.02787894115184834,0.06240931153102399,0.09536505534756969,-0.05476772864244378,0.09889907985093098,0.045785498771822905,0.005648831330234109,0.022487235329636045,0.020941115516189334,0.027184799579879165,-0.0980099607046638,0.0017964205696793375,0.13749506498316674,0.056761285309778337,0.10207756919426633,0.1298075082678674,-0.014631528967772195,-0.09410322699863775,0.07340160444584078,-0.1730772669258982,-0.06053926837986524,0.0017651716867319136,-0.0577634053573897,-0.09375918808610736,-0.05265727995075993,0.037945573247310134,0.026011940019442393,-0.09010543105577719,0.027152309868793537,-0.07855394505370099,-0.02575873569041447,0.15417996827256422,-0.0021687502873508034,0.029601298400014065,0.02597736398549292,-0.20832791669400075,0.026716508124209247,-0.10896290133506173,0.048048909521227784,-0.07088136699416177,0.034916216832433795,-0.04278483586679411,0.020086716508519318,-0.0020334306493180175,0.009592081344416655,-0.0182279833653821,-0.004248815449846325,0.05408301921773168,0.0948692874799241,-0.06553394619400829,-0.02326252739274043,-0.02714221771609296,-0.16589236449352684,-0.01613682456127436,-0.12453946913113398,-0.09393716408446516,0.07218538222990172,0.022748367985265333,0.07907894467339754,0.17040390296645783,0.1436022191176351,-0.04728425659052448,0.0693307733725529,0.0014976663499840256,0.011739315446855777,0.10769517233280146,-0.08400745385509709,-0.06538207494523693,0.025093497402769692,0.024239455839161296,0.03174240314039363,0.09328973000158737,0.011423782935278567,-0.0929750788536949,0.05800689480867986,-0.08754223377476619,-0.03895074125039957,-0.12283882757422393,0.11393490843537507,-0.08315065669683867,-0.07385711784529006,-0.09936470521309827,-0.09223629816132667,-0.04155841347088558,-0.07273466545012426,-0.08878901903143332,-0.11253982150825499,-0.018425050270152496,-0.02243250905547852,-0.007549597965732362,0.0398996709766946,0.1092094215179858,-0.09361113212045125,-0.12568466532313952,-0.07875770301911404,-0.09253993199105327,0.14993562841345434,-0.01824315011037677,0.06250778243877834,0.17649570723906222,0.14076186515943764,-0.0020055985310490493,0.14967264556484267,-0.010362229023914326,-0.06387982181560849,0.02413548312567013,-0.009668495841230066,0.10279078609432764,-0.062157444728659056,0.0516412776093808,0.11149921483501908,0.0564833421356714,-0.012670439997193982,-0.03324134259027851,0.013658627036970414,-0.1957114771351788,-0.047060759569887596,-0.12605744183347428,-0.017518260561831776,-0.1718139125239142,0.06901368820587118,0.02015843846010709,-0.11337338237927501,0.007215537067397415,0.00016231867656347847,-0.14219146971474508,-0.10245720592082372,0.075447265831066,0.10681431863897461,0.017396213683994508,-0.005487963500475693,-0.006469015854832532,-0.000949029438956364,-0.005816553295342347,-0.10701505159418045,0.03254184232900769,0.10606421334068984,0.06753938603512388,0.06985698726928273,0.06194768729730674,0.008179173253014186,0.0602020057858945,0.056019970580803644,0.1292436815364452,-0.054198044436272595,-0.020961491677065146,0.049565693020836236,0.04904823909497325,-0.04905181323551746,0.011265962446411796,-0.03013470922140653,0.04371412691325808,-0.06910039371118477,-0.022653471231787355,0.027688966007740335,-0.12125419355509656,-0.048559892552667815,-0.0014787594864085914,-0.025113451352163706,-0.11262039111845415,0.02452769949783001,-0.028001410075916132,0.06805214579639787,0.06408110905623023,0.013084638261940663,-0.008766179784491554,0.04533001879894441,0.11842347060755588,0.08942370484746935,-0.09107825784598138,0.09473093519138494,-0.06642313699695404,-0.053002389822786954,0.0014120364719406083,-0.06458042170090392,-0.06399032377021688,-0.04314531772729894,-0.09418006851799603,-0.027548254095767357,0.07425703322330732,-0.024824702454068925,0.09744593055764326,0.06754221077171053,-0.046712642612324065,0.026230237390409382,-0.06108664257671407,-0.05557262029286333,0.0770933282841611,0.04711969889277645,-0.08395714197382585,-0.06565239188711897,-0.11319949921419385,-0.05922833834658085,-0.034669758126307036,0.05264643269685711,0.11820190785572712,0.077756387497433,0.011322518767563112,0.014726763287909927,-0.013175044987067506,-0.03105687275181483,-0.006385437233703755,0.11491098566637313,-0.09491381355159857,-0.08016628667707906,0.09559482575251309,0.11216252869149491,-0.06901856957719128,0.01711418712391205,0.055834468620951976,0.03762586888636349,-0.054985742856386216,0.0024838541562704408,-0.005495259423601604,0.06931149366148422,0.14404832762382466,-0.01896854708417118,-0.004318557762259478,0.011766688704732683,-0.13995439913840493,-0.1491930300109425,0.011407785912203667,0.0057517456253846095,-0.02591615714635847,0.09625406855764414,0.0007327554913112484,-0.01436552490534783,-0.06211222698316218,0.09040019532466348,0.022947365015550843,0.08849134250423296,-0.04691969585321488,0.023740244568006517,-0.0010390923159279205,0.04378803078470499,0.0037487062825218033,0.09277999489447279,-0.01153391133069765,-0.055409705807123955,0.06999147017170755,0.009936852163559572,0.014719382906605927,-0.015118748005001627,0.01097734939400189,-0.004159399792070269,-0.010707275707575022,0.09556074169481299,-0.06777354517332948,-0.014342203978272818,-0.024571135273173925,-0.09182747540653992,-0.05706351863530381,0.08102986412091129,0.06051858920559635,0.02835428295788591,0.11509974960357205,-0.06933116996365135,0.07022259295302369,0.0011849297857195018,-0.028230524808649366,-0.030581667832867403,-0.011121414258323916,-0.06910609004008209,-0.08702159724402787,0.05024525307710433,-0.050045267868741077,0.04905104316567846,-0.06056720477343463,-0.05568295406344371,0.01826694936652738,0.004271449716736625,0.010765625211435828,-0.10212975966373847,-0.02647039942726595,0.01372869871915037,0.14647349845610938,0.08597127113040139,0.005594781879954126,-0.09811800407167867,0.008344443921349158,-0.03566007891474519,0.0006389689380317299,-0.011168512832993445,-0.07578757000793587,-0.05873648090763204,0.10923991539179229,0.07892506920085066,0.05093996401736933,0.05882534424603677,0.04762775848338271,-0.023697077310306954,6.832136118123038e-05,-0.007630470355307527,0.12194300495494606,0.12044966068476591,0.041402540593331906,-0.04092487949114024,0.05431244927609648,-0.0972597918794015,-0.16428466267529956,-0.002878889033552616,-0.028927910183390946,-0.08594822996325666,-0.11458089778521813,-0.029997196611743174,0.059931573976122345,0.004988643116593713,0.02175183592188256,-0.024820253300959456,-0.036943570193155285,0.014785092313308483,0.05897502038088572,0.06061419355597158,0.004034401695130396,-0.11841180679738446,0.16567304630218832,0.021891130661725572,0.08317982023877359,-0.09906450792964457,-0.012250932623868878,0.09850289582152855,-0.03641245277532048,-0.061791116991464126,-0.11743340991673673,-0.02289977353893606,0.16021429122044778,0.06200836102808236,0.06921313712734628,-0.060063335419379124,0.03322073013371327,0.06552296709074773,-0.02391813700106386,0.008235499406607675,0.1457770000448899,0.06766537226984437,0.0038570834162738915,-0.11648375458837687,0.09725167573983268,0.0447670885876551,-0.018630210056900295,0.02005979250863649,-0.13094410009970733,0.01531160577675425,-0.03851117153883663,-0.04039221832225036,-0.06101642979367656,0.07235642500263965,-0.024229232845678194,0.04347588897652517,-0.0832771336736461,0.05396107143116236,0.012553218596055843,0.1203721273173695,-0.0970111276614444,-0.009489574080679217,-0.08809426082085546,-0.06060859561469331,-0.1837140645897008,0.0786700503212523,-0.10344397858916364,0.058046223284412106,-0.07395490593257896,-0.09656353147541015,0.01860204124408097,-0.06390205763765043,-0.19309914871564024,-0.08086614369408718,-0.061486062437543065,0.13378624255826174,-0.0915968403404375,0.025262021426373318,-0.022262747788852413,0.026352111211934922,-0.0686861726901699,-0.032063765379420135,0.04036580932699663,0.0335099925799396,0.01864203581109268,0.08385191564757435,0.19459078058853577,0.11215003603035398,0.04975503612580405,0.09612942946434243,0.03326648713163401,0.006739267632465133,-0.012751603101450851,0.02695245902100242,-0.06235032639310823,0.045656050990105286,-0.04532853527558812,-0.030170916680476015,0.0621480945909799,-0.05361793449533693,0.014917215556040562,0.07567782414147158,-0.1972747636324522,0.09497839872877496,-0.12182329880562515,-0.015670717016540325,-0.05891275358207025,-0.017877277762082693,0.08190391427653093,-0.10304642197833697,0.11387044180628693,-0.06878567135570766,-0.03107362006882495,-0.059847738311700906,0.08762826774202685,0.08134805460730281,-0.052123935528015086,-0.003088691376665515,0.09233493333011107,-0.1661165367947702,-0.06770480784065122,-0.13613846222970777,-0.15693713203478685,-0.0016688281387372144,0.03201231740211426,0.07401904576708909,0.09677763158506451,0.0010758410918682991,-0.02896453945501223,0.1580794585224857,0.019336537916863836,-0.00414774550798364,0.0104399542811505,-0.13694374961976882,0.09229754086301042,0.0249471258022714,-0.041274748178632685,-0.06099157129751626,-0.01744827314886746,0.11435487227242414,0.026951003681251164,-0.009284719030094386,-0.09389650327320163,-0.07879297821727108,0.01344694895487199,-0.05638609934612794,-0.022996387277384903,0.022496971680368225,0.07166513372711392,0.011368414567931395,0.10237754942410995,-0.08815974236868859,-0.18876996488287776,-0.12174089611754145,-0.012394511773765953,0.074683151971833,0.08679127686939543,0.1009420412252747,-0.02135197557277913,-0.07154498543867674,-0.14995256792876915,-0.15243028565904138,-0.029472261943714943,0.0658925578240835,-0.015517070910302893,-0.03098898109565365,0.20120338798325627,0.14125404974349792,-0.02695623967460954,0.07792786884284518,0.08568728796384745,-0.09687971109261602,-0.06746673992169763,-0.08403709245200178,0.05320865391874664,-0.09638476161454354,-0.0948434910224198,0.056454474077985886,0.07936277744055413,-0.06870853837644202,0.042294031783897464,-0.026199509033928772,-0.03712557066427237,0.05185036597069161,-0.13029282238610915,-0.06442793839505391,-0.12818571396790862,-0.05020214149922184,-0.08338912726733966,-0.09727513994560008,-0.03302189964836884,-0.020468171278600074,-0.14072350566346492,-0.061684180356322005,0.0550301855487324,0.12421086137664172,-0.013402402034348946,-0.019971005956204577,-0.05734995361339111,-0.057820679159484065,-0.07721586881213707,-0.066617779548198,-0.10956320415719922,-0.03854023228169494,-0.0234298991267059,-0.05792660314791553,0.1544830993143436,0.11748821186277376,0.1398612923884555,-0.03613657916529996,0.07077010131669295,0.08587309394271712,0.03764275993528394,-0.028046527030452562,-0.0022406987049363577,0.05744898905447832,-0.01900338592450616,-0.0073942465988683335,0.07103568678520504,0.007543720724774672,-0.03151602483070647,-0.09471543143407382,0.13908471452931018,-0.009375981644946803,-0.05600914758165524,0.05815825803310382,0.12341006843636596,0.0755977955002874,0.006771199586158393,0.06245840142763677,-0.033202406914005174,0.09426829289457297,0.046765697302297654,-0.06328114129978571,-0.11030130888295427,0.004553114123020339,-0.07421465543695116,-0.03320688678336167,-0.0726426878437146,0.028126161263149745,0.11414986354757191,0.067757446369227,0.06883533099495608,-0.05297090867041252,0.03855227957409831,-0.006784056857199166,0.04077662588588366,-0.0932361405861601,0.018191090164802488,-0.12386263674795918,-0.051922775034088986,0.021592793684473578,0.020896664048163153,0.020514029495023612,-0.09160947882832293,-0.09521580003723693,0.04136713089089736,0.017618966575359014,-0.04599336645450149,0.036876987699859226,-0.0671022397251027,-0.06162982097566074,0.11053858053523216,0.034943832690579754,0.05260701492073562,-0.02098051739763036,0.06418732936624258,0.0027360781973628117,0.003962719583188051,0.0995280515310122,0.008037493920336727,0.10655305715802799,-0.013663899333716315,0.04728834042314904,0.05882723578618269,0.03388927475789472,0.006084935448245232,0.0008387719571345344,0.01291358639224506,0.1375817227497905,0.03337137543880005,-0.005905650831684762,0.040474905720358036,0.02944091773945457,0.09887233647242201,-0.07256728576706288,0.037511653233343746,0.06918589799833315,-0.05875467894987166,-0.12491785979870673,-0.06986685585604485,-0.021792100192174133,0.09133468191699459,-0.017129867486463383,0.08775384489687038,-0.0570546695288151,-0.04104846829245135,0.07708245607475153,0.04082641451082189,0.06470498005619506,-0.017378573806919533,-0.051757121066432904,0.1419908066137756,-0.06032247475596883,0.000557754196065228,0.028727091401206804,0.07584597070671152,-0.06727542014160248,0.022097953570340473,-0.007495039223870236,0.028708596691213784,0.024431653119820564,0.14318364465424063,0.0665857694134342,0.03154695156871492,0.037608094165314854,-0.07881563898941632,-0.058798507701843965,-0.11343141605645582,0.13704564246704615,0.13063706840926192,0.14357874249062186,-0.020501294841620873,-0.11613646858501643,-0.02286432974129854,-0.026088347633350106,-0.051461488402907755,-0.04953247213635034,-0.07421454067163735,0.029526863111415825,-0.054585014122356154,-0.07484303001544841,-0.0028212690393986293,-0.021948734372813986,-0.006930435409768197,0.04639782059110129,-0.03379588506512521,0.010502712396044079,-0.1342208835955368,0.032187780764206475,0.03128614141267615,-0.08155359172064004,0.0024998870832658436,-0.05126354859344443,-0.016838323655925035,-0.10673487957086532,0.139735661115847,-0.08344013865796117,-0.06969376289067744,-0.07878971839143827,-0.08775350989167752,0.05727434110963478,0.038984921722800006,0.06330811267114962,0.03778068917391787,-0.055813630930177445,-0.07108515891084526,-0.11866574771282334,-0.09612824501633149,-0.0066118859632495735,0.030232518269624323,-0.005367113317188077,-0.04569298768627457,-0.12572532602030673,-0.07964051749851382,-0.09176915048728133,-0.13572696437636858,0.02946524684524105,-0.12159179146602556,-0.11540077312672209,0.06029810674012366,-0.08012034075473963,-0.10545001875736912,0.09466184018528746,-0.04273748109753644,-0.047567553103115626,0.11047236260558678,-0.07596567892260875,0.1260100470769348,0.03903414705801447,-0.14819948827759843,0.1660187425715819,-0.19783198941003238,0.06669509405343747,-0.0887387922321118,0.08547035757846143,0.03585821530658768,-0.062909747298345,0.0977460618376626,-0.08807270997125187,-0.023555057558221557,-0.011275985831435336,-0.1613872259677029,0.03674013841090675,0.018950512296362926,0.11782127664530946,-0.018612635268141962,0.10237953163891467,-0.010660251199607264,-0.07637028247576667,0.019332949830886945,-0.015686373222139022,0.04131882483996105,-0.04419177939145358,-0.06087528992777673,0.07417867014378972,0.16095923077899443,0.10692812718688732,0.025590736435017587,0.16352544900514546,-0.03350011183876525,-0.10472502152332393,0.04894180112930472,-0.1028856437549308,0.08714648478935005,-0.05660405997377879,-0.10884470834706171,-0.027845828694649532,0.025334773857419647,0.07245249512673671,-0.07777644856611424,0.12114919243261506,-0.05240567509244578,0.06222524604332252,-0.1332254484883502,0.11364368917126347,-0.14423639809401667,-0.08197728922741084,-0.011868877895478702,0.0458469996483156,0.14112856848424923,0.030871955066710775,-0.14939765361545085,0.029205774647779247,-0.03950571761882359,-0.0050591265837855596,-0.026647938845227002,0.039483125954400435,-0.08048692563786007,-0.14011047435951296,-0.029009697951601385,-0.17412970537120553,0.04887426359616261,0.026191725727816747,0.0653837066084374,0.07370951250925793,0.20237529614608732,0.1482605594168298,0.00478202187369158,0.1499859384731582,0.09579419038050456,0.018905916782554693,0.09622286315319452,-0.08604559806517671,-0.04496263238357936,-0.08237620642192045,-0.07718589465481022,0.04012556315621178,0.038066917092395,0.05023723390689487,-0.13337373576580902,0.011715243656745374,-0.1537573531018633,-0.027587349725794404,-0.07072588600576893,0.07486868420035729,-0.1364139537886141,-0.05418239218418004,0.06431095310657065,-0.11141020133011022,0.0357376285769847,-0.002772998519913367,-0.14232355557621068,0.01705169209470656,0.04844369485481948,0.010455504980240763,0.018871848060642973,-0.03768636455511874,0.014912380476202145,-0.14964465520533404,-0.11366468983218164,0.0023204521702396407,0.025569806996738487,0.14665675257513286,-0.05000997749111426,0.007259023787637913,0.19507326122008822,0.12260891348367609,0.08799368470687825,-0.008848785761876522,0.045557315662110166,-0.07205487063757837,-0.05912905589996084,0.04248748763280787,-0.03443788396853169,-0.022733705891155167,-0.0721203199632969,0.1030538655325677,0.02831826183346844,0.01359219598271282,-0.022050325720023557,0.01642414558070678,-0.11842104676467909,0.037651200982940704,0.01892833805524988,-0.049725923080612654,0.012342922905230178,-0.034663865220771875,0.07732294889603882,0.011457298890712085,0.03857761470596176,-0.07254906235873164,-0.07798090472636125,-0.031189421937084454,0.027823372661857623,-0.06800777834684796,-0.08818234676476923,0.11656816633376389,0.09130228912027255,-0.10968802456751929,-0.06322910782298802,0.01643315833930908,0.0429942403090514,0.09140449619646047,0.054586430684059106,0.09347959475076952,0.12670725990078557,0.09269874993407087,-0.04322984115619071,0.11553783918034516,-0.038903700434494044,-0.030873623181517845,-0.02022862752186469,-0.08903277430609975,0.013564946881855685,0.02796649962461314,-0.0007601551314196372,-0.00012427668987243767,0.05803485143614593,-0.11538979132344068,-0.027778659472880274,0.11975079110143258,0.07356092667539724,0.0011879595195097424,0.03908389297133068,-0.08077896016096943,0.1776191731416749,-0.06390146644149751,0.09762980311587699,-0.040153549422757166,-0.0779648223119027,0.10874340662108548,-0.17219132886939437,0.09936128497147026,-0.057121520366675574,0.06091707776002077,-0.09972647659143719,0.0481588862542855,-0.024865941278058294,0.18016691307226435,-0.01752882260202293,0.2489337847684191,0.09763989819064944,0.03146283655199068,-0.08577955223981903,-0.10355488752606146,0.0651328577003615,-0.12624725301288042,-0.12001578728055147,-0.023863310497128663,0.014705186053105833,0.07731664694754538,-0.06123390000023397,-0.05716868173980514,-0.027842904494493788,0.02805702915536642,0.060412379462794305,-0.08794019446871014,0.10288711185646833,-0.07212022656369575,-0.03785399666245646,0.05641293612481044,-0.05803081619336811,0.07940859644667365,0.037399664367007965,0.019956454736580732,0.08982654282578731,-0.0928193348453354,0.018519474625368577,-0.00934165448131824,0.08623169152590848,0.01961152727583902,-0.1274463944867432,-0.02353616139586045,-0.053643181687717374,0.048498360851646195,-0.0014563989691380452,0.03725730329589682,-0.0027384852364718292,0.15707147826105408,-0.03108285476447368,0.19772623002621775,0.10981007661539265,-0.09228195178642563,0.09405108050628333,0.07097515881848435,0.08160087120116037,0.004003652469741914,0.010358814251183028,-0.12065641236494905,0.05777728114868514,-0.006039089606602189,-0.09772864423987908,0.09767226311696624,0.005104259825560962,-0.06963787721207514,0.1057612874346518,0.06462582731120718,-0.05755821916381262,0.06316952804006057,-0.023148351724160205,0.11340174600203115,0.08702447526622978,0.01444671638373745,0.026138182022693246,-0.0919369475982206,0.0771621864555758,-0.016451509463221735,0.02797447426177508,-0.01880206009170249,-0.003620137853325595,-0.07954744425068445,0.01361419510026164,-0.03997271692632699,-0.0505956316734839,0.04666028738899761,-0.03951507623946367,0.027259551403314663,0.0473885851642161,0.18658471361920378,0.06218321741547562,0.15597992477724829,-0.037025146343695595,-0.11124892037624608,-0.003296330746621709,0.061756135493282356,0.010377466432836666,0.01928773753907666,-0.08795915198419806,-0.09773620535493144,0.043409751528375874,-0.0020585076692221766,-0.006834507525155558,0.07922368563201007,-0.07375204067232449,-0.08821346778448372,0.0571812649733412,-0.021261498672653336,-0.04130741210433961,-0.1391867494700088,0.08921106617538162,-0.07783272362529926,0.08114248477165935,-0.03783051439358053,-0.003228905125952935,-0.05882460055121259,0.11862075972893853,0.032118469859965325,-0.0786172083894348,0.06972150444349945,0.032223460388804144,0.11887313907517895,0.1170343391887662,0.1109649034062104,0.0562160838973889,-0.05940458403171702,-0.06900248980352085,0.052412725406035095,-0.04125131396028116,0.13618687575217114,0.14367432372696737,0.1907493957050713,0.09959096084275525,-0.08040278811401773,-0.06624812876413243,0.08579653367025557,-0.04802323842395507,-0.02710338132711931,-0.14494409373010114,-0.010476846392609354,-0.11618529751458588,-0.06418145875769657,-0.047188684543054624,0.018296630312557283,-0.040890523344298935,0.04761388838298224,0.09321395167990669,0.0786090344261574,0.02633139471141817,0.14086165397299852,0.003481840085363139,0.12015629946858906,-0.15785247177555745,0.06570276131069053,-0.1265873766306227,0.09283980600528564,-0.1360125460945733,0.046942820593022724,0.06491983461217568,-0.1161768177105261,0.04574505442152937,-0.06055788117236947,-0.045169529400360155,-0.11175080059795876,0.07177358573812545,-0.03410202761976549,0.09100599927867382,0.017815824275524278,0.10328794920743263,-0.15220269073038828,-0.15568673693515075,-0.06594897164703056,0.039042019567621926,0.1299469175956139,0.009797433605660924,-0.0879821504712219,0.21032434283533347,0.045107456862528046,0.11794297528976225,0.016173277160339276,0.05881757632999169,-0.00680469734751956,-0.05673164270234776,0.035270716657006214,0.04904116534719361,0.05188099573525648,0.05590207712066747,0.017489501107072227,0.12672162114670274,0.11031352941153347,-0.026813509079964448,0.09544862060943614,-0.10735393700425695,-0.09818918871452299,7.303920143212965e-05,0.1021971134769245,-0.13888446646628677,0.025909367713408706,-0.012784661177878433,-0.08432237682044338,-0.016343365332542444,-0.03112607001164387,-0.03438312615066555,0.029284922919586176,0.10909228902337807,0.11728657858768689,-0.018779723784162202,-0.036842961888202165,-0.0611305375695307,-0.15187304867412388,0.00389703800170661,-0.03798072473130217,-0.09127889639079154,-0.021507998577099046,-0.059312074594833904,-0.077805919622263,0.2403546894335216,0.07064422636202036,0.11325796212505759,0.00044882420079528395,0.1315797591956366,-0.10239511658779772,0.0475215499805101,-0.12303324849641614,0.03972345299624545,-0.04874469522057878,-0.0023265997350055065,-0.013765117043614248,0.07913918689816447,-0.047273591256554726,-0.025586050112351082,0.044436690644868056,-0.17196370484254578,-0.022739478537376977,-0.020433280555915166,0.08728901557102667,-0.13732018329041148,-0.0006360741831928193,-0.08024747434511503,-0.03980557668389774,-0.04969123790653659,0.04100424556797986,-0.06341570953992667,-0.06485732906258723,-0.019021549298357854,0.12310638483635998,0.08745573182845653,0.0006148808721700711,0.09080897769456563,-0.029253221994576653,-0.045218643497616506,-0.17097095020792943,-0.12580212334666632,0.13234671131803863,0.03901235376327279,-0.015576707988664005,0.19090772276797918,0.13248017330324488,0.1320878640886134,0.17639603380386173,0.09736586848446915,-0.05133223964122983,-0.03196938663971939,-0.04247298350784962,0.012669665990209066,-0.045648257359911244,-0.10841785476043206,0.077634337885529,0.1437026521748048,0.005004921636441534,0.00010001372880749904,0.0035043238049307754,-0.042643054710705876,0.05590515553187861,-0.14012652458517535,0.050824096133396265,-0.111733695771723,-0.03618900338709689,0.08495433712977848,0.01430538291627029,0.09327963997170322,-0.009308014729821346,-0.00373059444811812,-0.1209286364923608,-0.06931512262232564,0.07456292517119491,-0.08163701656863771,0.022210228394534466,0.03246760996130661,-0.028319410834344305,-0.05010604472297658,-0.17494987740378873,-0.10255995726370341,0.15080317362845705,-0.02487163870316316,-0.04490830931785203,0.011091690436684981,-0.005515826580470284,0.039415712869100485,0.054578675848869114,0.1012396074339772,0.023439168317213984,-0.029702591008089457,0.03009043625740704,-0.0314539080197679,-0.09030557179384993,-0.03016540827945655,0.03484549482372621,-0.10533763570751435,-0.05644158588475645,0.08855398378754024,0.07298337980720651,0.046166562629861324,-0.027800535198113745,0.015398239645808517,-0.04160403925120903,0.06775273202533377,0.07573580951356554,-0.020540081234079396,-0.014072039935069548,-0.008452928745335112,-0.014707294309179593,0.0009475282779878249,0.11114069405336824,0.06644337023087211,-0.003721665570182638,-0.014575098473011795,0.07404682900738493,-0.030537267712204438,0.09548667208834306,0.1321195103094806,0.1040822359623161,0.03392523600023679,0.0447678414908391,0.028702148602883244,0.08745655793957627,0.002371791432107253,-0.11470237048616229,-0.01610902500634906,-0.1111437420813788,0.001660290179624894,-0.007452661010368912,0.014980087578216483,0.09815650495028751,0.007876615554147167,0.06284716084946075,-0.031063394959724135,-0.022104928228581486,-0.07638177011252423,0.04912819269110951,0.05612732358640831,-0.014019087351565202,-0.06624303444821505,-0.02742880712946836,0.03649252231487104,-0.034731628188268825,4.2198641125657383e-05,-0.006069865905188515,-0.005823856662813961,-0.0712335818859987,-0.056246059233805844,0.0170726357052288,-0.03375643452112719,-0.07664061147084374,-0.09042220949142234,0.07182967069485473,0.05446947650912793,-0.009817577302334398,-0.09916885415028942,-0.03345533918795746,0.07546071200415505,0.11388854570448093,0.027912769071712674,-0.012879377704053408,-0.026328701143958657,0.0030544894918041843,0.06403926389705822,0.03708117099429572,-0.0038287423573578777,0.05013852886121909,-0.0792213260204755,0.04819455620291012,-0.01787732341221684,0.016061869477242904,-0.02708922910039146,-0.056140415172144936,0.024787803985560318,0.08967132360121004,-0.10314845739590116,-0.05298308214213765,0.0479568523123177,-0.07764668154515635,0.11392641124633779,-0.0021190145660119676,0.025199738029749157,-0.00834187746714792,0.07121535552318023,-0.060303617828282315,0.008529948158540435,0.09075702439128118,-0.07245946993521934,0.04476839087883772,0.04179261687887935,-0.0536244914512339,-0.005265454571666309,0.033024758057415934,0.06146034285128984,-0.09211184811879666,-0.05428884876854883,0.1393537455675449,-0.06440994332787515,0.002838904692461126,0.05886317918032065,-0.10486227530565655,-0.0008661662527104817,-0.008495523070196874,-0.08635936416641776,-0.025654097841963833,-0.09994901679860964,0.020254458513898954,-0.07360314961485304,-0.0706194098560178,-0.022085840049901162,-0.049183223152443625,0.062033363182347756,0.06610085684458568,-0.05065640315428499,0.00241039729378038,-0.06794834434539217,-0.01753073735693961,-0.009612412826251727,-0.08016345694664839,0.06079614213444978,0.0662698101743573,0.005204623654519774,0.04419890188130686,0.1254144626536237,-0.07706600968405801,0.05578852996451124,0.06276496287700253,-0.05841097536828763,0.0970370798450861,0.10539346278391087,-0.04339383907120739,-0.09140126620653388,-0.05692081183846958,0.06929720878261424,-0.013763774453461433,0.03673488721998447,0.03496515410633221,0.012435977721824537,0.14942122868912772,-0.035456367737882924,-0.11340285544345027,-0.06384247009469984,-0.0894406303373393,-0.10882984188608077,0.020714879430064802,-0.0234535687387301,-0.08739674596010388,-0.1469775319393493,0.07812596065645488,0.07975913748360831,0.07604066260152352,0.05444164660726387,-0.08708593321958936,0.0711546510699914,-0.004984060863555585,0.08248876640696921,-0.054961528826176394,-0.06629485755998632,0.07120046110893714,-0.019783573185821895,-0.07440814245214443,-0.021983559839503578,-0.01599755860038489,-0.04902404942584804,-0.08991706771856951,0.011042447055418967,-0.018392463604963452,-0.010952590266117527,0.06118614582151081,-0.21688344934350542,-0.005915146901941104,-0.006429983097037448,0.024106338221501385,0.023610098611774967,-0.024548545182210505,-0.04957603719626258,0.019011731747624567,-0.0645516189290249,-0.010327007316650153,-0.12236244388860254,0.07137427183048801,0.05857769306557277,-0.06277786120897533,0.25425799178180586,0.15761252055183053,0.11463487026316353,0.09482512746259236,-0.012914202746504455,-0.06688030803166232,-0.0811505968709622,-0.07637025584667811,-0.028750419211918926,-0.09637171128945721,0.02188004516114949,0.06329504994320155,0.10355512355451862,0.0019102717204802226,-0.03172481838073125,0.15619364572979927,-0.027273869137395962,0.07559719894859705,-0.10181613004883822,0.05774738256381016,-0.1365342012893717,0.07601876100867012,-0.027361342483926587,0.006159619283820596,0.08698754469072284,0.00022843693986729282,-0.06939550823229687,-0.0984710927880257,0.030457606299115012,-0.028637853786918264,0.09965782554438751,-0.04914251445515753,-0.06992854900245499,0.011381205314276064,0.007760915334868334,-0.06641501829569153,-0.0017332815954381195,-0.025369012693533245,-0.02473820205875799,0.0862089342548779,0.08110077346817358,0.10495204196141497,0.03334262777702674,0.11629766949576235,-0.047981818242661824,0.06928129810833179,0.09681853661402945,-0.0005901011088506169,0.011433498132279724,-0.06224370871606192,-0.016785727352847266,-0.016359901183139316,0.10252508785248171,-0.06679205821196746,-0.035691063134207675,0.16609122180276306,-0.21139641308346455,0.07362870959246733,-0.07677930609794467,0.06862125100917214,-0.07460189286461945,-0.10106432589361772,0.02380007324683707,-0.052789268108975745,0.022149783869692474,-0.0835149860143726,-0.08021199492112206,0.041952782241046524,0.12535329265371203,0.00653101674301868,-0.05424368754003455,0.06637074107001702,0.02437484710499122,-0.019576626099582075,-0.10007104164151548,-0.02970092501712373,-0.0464120229047742,0.10190235930103354,0.03328065529279971,-0.030699602185688606,0.1925155347625493,0.07548112693930042,-0.003144178026676377,0.1262595721340021,0.043582046682096684,-0.039770645174176604,0.026600229436237324,-0.05546599385684776,-0.07700693749391095,-0.01812593547770023,-0.04682316301681732,-0.0706152492674992,0.08059878492087823,0.12179483915744624,-0.13331718351174096,0.03331334691873926,-0.10757568643566075,-0.06509445309121531,-0.1467399259036655,-0.0333755139113134,-0.19141465610927308,0.08030173409088803,-0.035613307406171114,-0.004493035092686102,0.13976146764059513,-0.06048325648629338,-0.06831721765365288,-0.12507304516166667,-0.021232068484083134,0.034644005734000435,0.009851044468944484,-0.0006799927326577251,0.12234565014035334,-0.07418455086124964,-0.09265087416237436,-0.09470571385722279,-0.02524878639418968,0.1423303836556338,-0.03169000425666419,-0.08568080332333913,0.13409143629911188,0.14241006284257077,0.10704874789298281,0.07575385146674336,0.1123203643365265,0.01997479529104557,-0.02078030273472627,0.029606634161929078,-0.04823183147532442,0.07407203037934934,-0.0878354594290478,0.0018990067086828758,-0.04081468837899118,-0.054565559720685976,0.03778778388040056,0.005803390447604324,0.06906445878499247,-0.07603760071655966,-0.036115894527491754,-0.09412359620216149,0.08435943790016855,0.011592502335736879,-0.010401338447864528,-0.013966476796589685,0.08286617138501588,-0.008767728308392958,-0.056298744746396075,0.02062513664023884,-0.012618763350647618,0.02301628048691626,0.03443362284746102,-0.030180429990382382,0.024659845711496355,0.3813975318994387,0.04375546813878758,0.2749200477314425,0.16462693846672,-0.09928049562496023,-0.07523619057106905,-0.04920072861135116,0.10473811177292691,-0.01107505551734305,-0.06760112577154764,-0.011783992204422796,-0.009179351343051555,-0.016883857957377933,0.046020322849304254,0.12147454642060942,0.039916341471147254,-0.027719344479870008,-0.04307346661135503,-0.03510458211027561,0.16304040001945497,0.13966069417014354,-0.005177315088092186,0.045090344999578424,-0.19332585729084792,0.035246534345598476,-0.00533057172627195,0.12238887211406362,-0.04737337031165469,0.023297561206693372,-0.030842559877318494,0.04664376718556805,0.08327699111860792,0.055848430729060934,-0.2006822684434544,-0.02037592529150193,0.11054087905841423,0.11860136348043528,0.011810071551678597,0.03053077593352126,-0.04588071689425583,0.24454050349273754,-0.02366755688446782,0.13061398711545874,0.038555018473946094,-0.03527257247740712,-0.0920914844232705,0.05423969730014213,0.10793406647527698,0.02161415814703175,-0.020049123625665372,-0.025432527864118894,0.08496388763389193,-0.039814681171924576,-0.013236082347347829,-0.12125913955585205,0.08003194047088062,0.00662742966282545,0.040236941064541835,0.035775606224900225,0.015169149388091129,0.0791228503548713,-0.09023331654950013,0.14514570826682227,0.024895121237804883,-0.096880124981173,0.06435402889361533,-0.10110800283307392,0.09043615252909613,0.031940085324780626,0.001188118163362081,0.07657454949282753,0.012854654706947431,-0.02306330578258521,-0.07423266490605462,0.09244569807329588,0.0003754637423571473,0.05027974971292555,-0.04413149452032719,0.0325351863499892,0.09454805913756477,0.11065500565877051,-0.006062768662996732,0.14816451911430628,0.13616036463975378,0.05913536411698162,-0.019662702087538213,0.0544225121110234,0.13981687924412423,0.044658045433921253,-0.1019127085068483,-0.061768075558527674,0.08869168977734423,0.07831653464698782,-0.06646113422807036,0.07701248361273508,0.022919420508826706,-0.05904834540083595,-0.03361382065633642,0.035494776046072145,-0.05519033042440824,-0.13353827765744544,0.0809343898596233,-0.062110438799988725,0.18217504900457826,-0.0370418056146559,-0.0029645261984668704,0.022191422313879834,0.08076555285895617,0.015777565988935694,-0.05953714356904758,0.0483144407644208,-0.07469272793776954,0.0076220368731024675,0.008703532935466468,0.08151676790812785,-0.071336923259782,0.027471788642774306,0.07545324668781146,0.06350683769654811,0.0733247813757474,0.16734326295265067,0.09324398362243339,0.1210493784074254,0.07021632502819056,-0.05280048827128046,-0.03861652687249143,0.07561629341056844,0.08862672035891497,-0.09999959512583287,-0.09217002877294889,-0.12475284748088052,0.028359366136969433,-0.022094301535225652,0.032026610528318795,-0.0448250591728825,-0.03684687195073535,-0.023518981125928557,-0.029312376249837388,-0.02101538781337067,0.08217006316525788,-0.028350730855635685,-0.04614918347865667,0.24347570723044992,-0.13842537877626288,0.07536411356797285,-0.055117093518731654,0.08185104516697923,-0.06704093161077572,0.041103322230489604,0.08417420035498437,-0.06116661919865278,0.17426786072323142,-0.10151622701525782,-0.2792895058860318,0.0370473692280544,0.03374862824605984,0.02076696813965788,0.05336704603747698,0.006786842230063887,-0.049673251799747825,-0.0025679850765488563,-0.03878855706487357,0.05492873562687867,-0.0998877118517594,0.08488460526510315,0.06758788582924498,-0.0018815896138349027,0.2275340948376884,0.14473005681252027,0.019707099931887528,-0.010930487085683074,0.15554081728335412,-0.05364608187410938,0.10746916124207684,0.0301432782858101,0.03949940318875502,0.07806380204373009,0.03284022879776351,0.08858165120510585,0.08325712592177253,0.07419606945564806,0.024085770787279675,0.06454418211756584,-0.046832822963883164,0.09435800774355563,-0.017379181329117054,-0.03921721297157619,0.06087568838632343,-0.046865618090079095,0.008357960667753584,0.029918681801846647,0.13265332335258997,0.05322631675130815,-0.25335812042155775,-0.09045729029758225,-0.04822903410852066,0.04202975262826019,0.01766058241250872,-0.045610519359365984,0.005445173976926379,-0.09514064142382883,-0.0743957077012713,0.08264348964276995,0.042117093931970766,0.05491631088000575,-0.05652245221738994,0.07781937669574383,0.30063787826617344,0.1244696621404863,0.11056784973721079,-0.04004317336926817,0.118648896293097,0.02911278902842692,-0.022015994197407775,-0.12632545373928952,-0.0015169482278041433,0.02076322613933647,-0.04135678447048028,-0.004490840568631639,-0.010054816682098811,-0.05717605010873236,-0.12032551569775693,0.06345369104010588,-0.190900493359569,0.06386422821535293,-0.04082252483595122,0.04798965856719963,-0.05730324916569751,-0.030377623627153155,-0.002374682384532066,-0.06576409952807226,-0.03109606048221827,0.05342569287994822,-0.2159619098800178,-0.10269863602190336,-0.06408087436062404,0.01002295307043087,-0.013721833397034084,0.0023106080869148243,0.051223551559889995,-0.14276659982041973,-0.1384650019082178,-0.10808093205099308,-0.02677792269955044,0.11813693249944032,-0.005059271569037826,0.006731607073681562,0.14811254445478486,0.09475889183069805,-0.0385430714280048,0.013790240733652577,0.04200338586648476,-0.041856402776907685,-0.06648800152053023,-0.01066965179037437,0.05254572414745637,0.0920949153455046,0.027035244491224946,-0.06086250687299927,0.16992023449825383,-0.02656528299398163,-0.07439767576485277,0.1943857183575183,-0.17674705010119637,-0.07679428082525128,-0.14411447850475706,0.054459200734216846,-0.24086684841722905,0.07278466520407999,-0.013845235319527792,-0.08867517395428771,0.17281967665172993,-0.12584731510829492,-0.16341645249414902,-0.10768039190400147,0.019296902808527673,0.16385835619521688,-0.06550248373212382,0.02324217722064918,0.10767048867375491,-0.13049958228956138,-0.19047691857047,-0.2617970926986783,-0.03008145514974433,0.024596862085141336,-0.01829756817209368,0.05658745362782686,0.16967657171137093,0.22573159757864214,0.21547804263413642,0.21590715787458717,0.1863918633003865,-0.12902991348640808,-0.033523771891325105,-0.021107195901987667,0.02391834422305784,0.031303564918702335,0.020653697376019395,-0.08286033923302533,-0.029943831150393785,0.0019939845690803816,0.03641189169985357,-0.06312764358630066,0.12762867661258093,0.006084138471187222,0.09439774460018904,-0.042291112064547574,0.06437060465215064,-0.04509038323389164,-0.07989086558771431,0.07259850113985739,0.06043619093389814,-0.004607896370922991,0.10139921672403977,0.07994949745860895,0.041010836766677335,-0.04157786291470826,-0.07243467688337198,0.019571044671095203,-0.09921040867465566,0.18203810414056867,-0.017901847763669276,0.11409005889670852,-0.00810788443612191,-0.10880280772042507,0.035277000074751715,-0.08427172646038582,-0.06441698470976696,-0.02482363194280624,-0.030768060620846676,0.025765571075549245,0.04708351735372987,-0.0777407048250236,-0.010111820403240811,0.05011101675838296,0.02161118417961978,-0.09709062679240668,0.0611838413108233,0.02409796482037319,0.007474313025011292,0.12857691737456428,-0.032464757168390895,0.10786757088558466,-0.09080376905334661,-0.0916094257660985,-0.0651541551752606,-0.024241651053580292,-0.0016849694154444175,-0.08000242291379983,-0.07851241675974577,-0.04652917974427609,0.03434862220793639,-0.0917594892703508,0.008372447272809332,-0.008436502868552234,0.10186819413095109,0.0513109926091094,-0.0028947753304362565,0.0005184660762032952,-0.034326859334368874,0.2005717151912532,-0.03893852399134564,-0.08710800648966815,-0.03275234797294136,0.08878674978313643,0.01324352513202711,0.06826809953474933,-0.021364490272814986,0.1165941493603227,0.036981826907114185,0.0240690513641162,0.0037217389019178946,-0.057865025577470704,0.0415846202669358,-0.11025392808512265,0.09095632435826914,0.04659449770972403,-0.040477013383741996,0.06431065877445921,-0.0328651890868263,0.024488294375897383,-0.027341755036819505,-0.04935087933197665,0.04233672900381359,0.07559669540118318,-0.003376783114546024,-0.011479330158208404,-0.026701670588011057,0.08966546376781603,-0.06915924106632139,-0.06580750288435812,-0.009989391332524857,0.012943562673527143,0.048653121646735104,0.07873309979584645,0.04065993009034388,-0.005910018285247785,-0.051463469154420134,0.06497282247694225,-0.06629074892588871,0.06776794296142839,-0.06462886736806325,-0.0375209502423198,-0.05450535578445919,-0.050318802344039446,0.06299085746761988,-0.10185106841813514,-0.012132811663006953,-0.0991334496473152,-0.05628055070629407,-0.07295359952104268,-0.0417292340198377,0.00868033831174712,-0.0880102746131329,0.030394197310485788,-0.08248600765330008,0.06236178036282261,-0.03453232953678148,-0.02483752513308758,-0.0370125703557895,-0.07004894212096789,-0.006470881380534804,0.012353087308361127,0.11346866375755683,0.03756330556998938,0.09300334090125315,-0.0761601931262259,0.00576152839927475,0.08587336819124218,0.08405256398540974,0.07062836818239529,-0.019102283813510815,-0.03949105282232362,0.10566232675028601,0.046425863402457634,0.029192647739129794,0.048859187749939394,0.03399896865291993,-0.11129890129737699,0.060089713396519945,0.09700638335580579,0.14438307391272037,0.17906767286129327,0.1202219007271261,-0.16035961655127798,-0.02300215195518067,-0.07737493185463135,-0.040329227664473284,-0.002016337878979899,-0.028405806543441114,-0.011585145801713052,-0.03978824734227188,0.10403099480745391,-0.04533702278156009,0.05028789524457766,0.08415514699866007,0.022283187940937133,-0.05739291980741632,-0.013426382275682386,0.15154305328165352,-0.002407568390369855,-0.15104177281207623,0.1922078041621704,-0.17110742220845704,0.04207478661569681,0.014871612009008628,0.12100252539220609,-0.05401811992306814,0.05561224087518666,0.015938268772503338,-0.10691869434471223,-0.00954306531747249,-0.06522982156962677,-0.26608699329145086,-0.049894174828941894,0.0910794567830625,0.07072456724577693,-0.07895132744709303,0.02636218533843993,0.04497775991535507,-0.024098299019280622,-0.05201101948405505,0.061680421623681224,-0.03125229224968972,0.10594254409568453,0.030613462840382848,0.09255291720449163,0.21640726625079013,-0.036987247752159544,-0.019391394071194935,0.119099351764935,0.10940830655861584,0.009368946388475097,-0.018884580809407858,-0.004994425616242323,0.09692927353195521,-0.06418344927711109,-0.05236173725180018,0.034189754387350266,0.07242792867322849,0.00883174810864941,-0.09226845705969264,0.166145522353809,-0.047508222733512025,0.023494164642970102,-0.15587077093239102,0.04381605016936021,0.04893590294257628,-0.07062487348175508,-0.05553011873190724,0.05506027162989464,-0.015543209887517171,0.061383653329640006,-0.22878634909899834,-0.10893041311060381,0.09103180434187698,0.05231031301733071,-0.020153179041836455,-0.04149365851330716,-0.07673281256171868,-0.027123762487172787,-0.11444162062139493,-0.08944618813261554,-0.12435706378042527,-0.01047808649332074,0.01966614009546497,0.05066862951036784,0.12499847435326714,0.09614021009797787,0.011065752117246298,0.06307425353292123,0.025224378049978124,0.05305311667444351,0.0347389693008,-0.13358749295388786,-0.01866164768741025,0.004404614878137301,0.07307976835533364,0.013888635250372046,0.14706273405936673,0.08679435485773922,-0.010723232630261145,0.049778969456385,-0.16460130347164867,0.08030580664181683,-0.027909663042032264,-0.01824684161200895,-0.11369546940268885,0.06840259306655802,0.03454129504648072,0.023967675449910148,0.07700218385179347,0.03278480889419742,-0.16065008437247963,-0.05963252686306361,0.10039707670630837,0.1186221909965851,0.0017437625684734884,-0.02516575905575807,-0.06249584220503312,-0.03140635899950841,-0.013413148682100457,-0.00332222544017896,-0.07718393290328052,0.08258033416063006,-0.04729979789444754,-0.0009330893838030706,0.07175511699140863,0.15515420873211078,0.04320580376310145,0.11077540790686437,0.1354039914130729,0.04983137791175681,0.0780026343004292,0.059238248152605,0.09744126377703934,-0.029281520426361403,-0.05893783941697716,0.06158094707986944,0.13403956111017196,0.13925588623831323,-0.057142702671332535,0.1416563708907006,-0.1411232615044482,0.0912486690178325,-0.23432214526189465,0.015691390446254637,-0.22048847277989156,-0.06948263585664188,-0.06607727592526874,-0.12858541779355237,0.038523828343823584,-0.05035461367764504,-0.15234413864572094,-0.08029472030827411,0.11607194012817683,0.1777204497022452,0.0005470170028416369,0.13780273478842145,0.13245789508731726,-0.09773408536277108,-0.0994414500198059,-0.1471522184244803,-0.17842171069465218,0.21516606512500536,-0.06309615493276759,-0.03836771148772506,0.3332907365388379,0.20624936693569337,0.11971672727089748,0.19180937041952534,0.07693336524014197,-0.09557261245678578,-0.05082957946224071,-0.05190107027293265,-0.05598342720914285,-0.028624167982372852,0.04254448302222994,-0.08276396716279667,-0.056707586098712355,0.04198576013466464,0.1004082392437505,-0.07485225904464438,0.07545752139235819,0.018917374740498052,0.10638231632764991,-0.07519177097175402,-0.036973991565804776,-0.04014211976888707,0.021422944174265483,0.0794419177299445,0.07434386625546709,-0.04483454212049427,-0.00504159221983913,0.008841597141508747,-0.022951321136466956,0.0038913849724941693,-0.09577824634623912,-0.08013120392766625,0.000827949078992067,0.2215680875270269,0.01905480193943018,-0.05076870144384196,0.026224637836638802,-0.020772219501504163,0.09813289714054248,-0.08080666475694136,-0.09308020559342589,-0.0017260280100445586,0.07004535516004984,-0.11473839092421755,-0.08168513507853964,-0.0006898508909892598,-0.04647635141956424,-0.0287379572231059,0.017071879988932063,0.02605166049483352,-0.031820896853509674,0.040259757043614876,-0.021403182504799785,0.10771454443698217,-0.0643362381706018,0.10731525561424508,-0.11279924215001028,-0.06120071482082462,-0.024014903577153215,-0.011422758152256447,0.002488000437575798,0.037254608928986,0.006050339931997637,0.026032998828301786,-0.03998652635800349,-0.11542303990613272,-0.002717826717755961,-0.10130687656286462,-0.05428594586058009,0.10583390601337027,0.0680800942717584,-0.04973120821569573,0.07151362027560354,0.16867173809509609,-0.04482177127248578,-0.07947034527953267,-0.09755389544085855,0.0038267647551551917,0.028942548625990952,-0.09535270932205085,-0.051004731107349696,0.0714449142577014,0.0477803085609293,0.03036049101052113,0.1358692657496188,-0.038287430953982224,0.03516940345915374,0.02674075000682858,0.08722073115898722,0.05972371289423347,-0.07677694036241357,-0.041744660792024324,-0.018595095432428207,0.008058320533392007,-0.01912261473963571,-0.062078447874750524,0.020494484298188252,-0.09422563180667974,-0.010157540754072311,0.02481521462392674,-0.0644572920988978,0.059564552301675615,-0.057907998967692685,0.05161169478307474,-0.09594391363509198,-0.03261706002862983,-0.005795083921671473,0.056789778873199546,0.0418965123338206,-0.053494929695541746,-0.052983505062297015,-0.074938569742842,-0.028219846908809274,-0.07026028330522857,0.05302412867629106,0.05348842266676712,0.09872343646182093,-0.07872992380865129,-0.06811201099021529,-0.03681139656514658,0.05367353788873743,0.0027746143360802907,-0.037536122318206085,0.015528174871872222,-0.08305793014319882,-0.07984427332384998,-0.020516014016429107,0.08353440295154323,-0.04429483509890097,-0.057969095360029574,-0.004812941872374547,-0.09195991666984396,-0.0964962863194196,-0.02133688457108106,0.08758381579018429,0.037608911382315424,0.014708915280637617,0.019060533844313388,0.14351979530135506,-0.06866928529293054,0.0459300760854129,-0.03419414462398498,0.00936177449605415,-0.01775052706674594,-0.03198254461759417,-0.003233030743070246,0.04927285420361869,0.028972903729585185,-0.08261003934565662,-0.10300624245667689,0.02482190908555603,0.015209759807114512,-0.0029873072403813826,0.09930405222963982,0.06946927732002749,0.007043790206098033,-0.036233923699531045,-0.10157796322936834,-0.043550120384191864,0.04863089176760474,-0.1104626813537668,-0.14260757662067117,-0.013179413872511375,-0.1115435030707829,0.01107524304244009,-0.058333578515412716,-0.06751181104494651,0.06963818225901988,-0.009433738965329562,0.06202840671854747,-0.05356935185353775,0.06794208987210587,0.12191570351482808,-0.03251286363811545,-0.06866335552396192,0.2043898998137447,-0.1578488234146719,-0.016944211810745388,-0.17554724405414865,0.00969164670325289,-0.030784074674396426,-0.06781414719626674,0.00833369933735114,-0.11357566094010536,0.15265833646528223,-0.10166396909439902,-0.23567378885235798,-0.05187234554603833,0.047827187334005525,0.1045642256864624,0.009981534277989286,-0.026733984130182912,0.07107449394281865,-0.037969228545310055,-0.08946199609100257,0.010254072836998284,-0.04712529310243164,0.10295859102409072,-0.04353206812704546,-0.0413069488877762,0.1646686979887065,0.11503251527619068,-0.0006131975276104757,0.016228672318110225,-0.03351125149404463,-0.038600097490799554,0.09106713561242295,-0.10248208897945113,-0.06997685978495043,0.08840267745945608,-0.003306725594424794,0.047663444487403506,0.0684078143889017,0.1353198403764164,-0.028311535368418177,0.06679916379560527,-0.0395592167420555,0.04547742585918218,-0.13500196572136772,0.03736017631792294,-0.09837249410387139,-0.03075205883371942,0.028153016445085943,0.0006702944316996559,0.0008391157581718248,-0.06993504086095337,-0.20952792158839817,-0.09904427411735951,0.10817350948893774,-0.05900081560129579,-0.07838416174420285,-0.0595595126009196,-0.026081952947264966,0.02143647494462974,-0.09665672162458624,-0.1034861029514454,-0.08485092145595186,0.14159991529013224,0.08641836385395345,0.054251591607386976,0.26395962465138706,0.11917949729614068,0.13688148287249252,0.08502451945628207,-0.016824591463898496,0.05830608599586637,0.024948656844908258,-0.009858038016898829,0.0788925453696824,-0.050061102774938894,-0.059359725403145436,-0.0007246038440169575,0.1529965594891515,-0.0005800752339434739,-0.1377398099370003,0.017293945609566746,-0.2292007393491967,-0.07121169638951581,-0.16009967962059343,0.03811747104161321,-0.13480719179031372,-0.09504616831360269,0.05726367431324028,-0.11081019028904644,-0.011984336561812118,-0.12245350118306846,-0.23425866152714728,-0.09887660336585467,0.023571027533293605,-0.0094873826235404,0.06403608236706065,-0.00046086031597806137,0.052867982561403154,-0.07016071208222338,-0.06637547454734179,-0.07228907623237685,0.008661844291141148,-0.018328968295828748,-0.0987444181814464,-0.04449060434971352,0.13084427036709653,0.08001889565976969,0.004547261582073028,0.08229488976159045,0.11713809355384233,-0.0075282550750714865,0.03857814012461113,-0.11955095807373635,-0.03322893402536626,-0.01570677604775714,-0.08299938522232529,0.09348934695225716,0.04396327156235748,-0.0018144463672135234,-0.14701290722042865,0.0974885009508965,-0.2693161442061517,0.07373111109776918,-0.21111196317019476,0.05971764513568726,-0.10591881033708365,-0.0624150276134345,-0.024971211224303878,-0.07597281211569,0.1392501320422168,0.018540318173678592,-0.14325479455053128,-0.08140854152180269,0.0920804763354814,0.17165156211270746,0.03315587405025035,0.10904867592359281,-0.03875071000847475,-0.2125294996427671,-0.16592957637311173,-0.2188379632531427,-0.09928172101642639,0.08587804226515293,-0.039123977496710226,-0.016372047517859586,0.25933586355881116,0.1281076304399433,0.14108041730514884,0.1637847124652878,0.021183644193925873,0.05405982675853598,0.02173407215965141,-0.17517085859916368,0.00010009496645345605,-0.07469651388514763,0.026709037009848575,-0.008999073118019455,-0.0053862235978516,0.004406849566378448,0.1032027059954035,0.07027192086037834,-0.002243625047609128,0.0356141955952861,0.05765384617938777,-0.024028977520307304,0.058003511262966684,0.06566973348181956,-0.03993484484309272,0.010093795163389282,0.03393991945776613,0.03912100387250591,0.02102522776102452,0.07547870648691746,-0.06423903624233414,0.03878948948778308,0.05590816846628622,0.03028988351916245,-0.10498522686807381,0.13298461505905895,0.10457999191798106,-0.005622355445904447,0.09484503799569653,-0.08545728663621034,0.09501568586178921,-0.007473079669598507,-0.007181147249775623,-0.12337461413436392,-0.10247442760119985,-0.043239966607857165,0.042369228497491564,0.05418733122075361,0.05023441803129534,-0.03761527591878296,0.0054855896927518905,0.07471494289679059,-0.04036549836397288,0.052167061922048834,-0.05767582971075931,-0.03083720929502894,-0.03867385557391523,-0.07099583956067662,-0.07462732515750574,-0.06952038274348507,-0.026450691832846155,0.07959438012147284,-0.11355524692860215,-0.009494297464038027,0.038827925424220255,0.030997940698043763,0.09120670260645743,0.03498325966037083,0.024406322010036965,-0.0627147213221486,-0.037249187808411376,-0.041293969316439146,0.044826607648799796,-0.02122437414189968,-0.013648809435153375,0.11147019847251899,-0.08490577752303115,-0.04050118296000074,-0.06709117609531146,0.0954137007738453,0.028494600694727507,-0.09207880121270763,-0.043444297663158514,0.07042591739887677,0.06377106215629941,0.04673227762529829,0.036746815844448596,-0.022994328805836187,0.0725719784766072,0.05223904476810321,-0.062268777219876635,-0.024817309738866727,0.04787359573051353,-0.07631741463860678,0.06804273594882726,0.058169838647189026,0.07396146391181305,-0.03313772482174606,0.0553730739299926,0.0866676862033008,0.06369844051139016,0.00581813369803125,-0.05200824720893633,-0.08694844234831368,0.038682648200308194,0.10155988950499915,-0.045099986493308965,0.09719859051228419,-0.0016401498857884509,-0.08729430887774149,-0.10254049689160707,-0.025757912125862505,-0.07949372325486938,0.057930606051693694,-0.012932165499319121,-0.050104936579065285,0.057855789037250874,0.018660408349843612,-0.027204058085727737,-0.11403748673742374,-0.010140334439881089,-0.09633696368475994,0.08571195383090363,-0.06300317138132684,-0.030461454147007943,-0.06823960734779376,-0.03472363147719186,-0.016898207597505783,-0.08008538775580464,0.02430088670808225,-0.00727492943561813,0.08722564057420128,0.064216442892485,-0.08008997730207411,0.05071014225664722,0.03047969082684162,0.025438528090026606,-0.010132399678179183,0.1651942970276042,0.044803373573094024,0.04463867247545832,-0.0999075440396781,-0.025537908743868847,-0.04808907809376285,-0.08503754655699734,0.07672293632972435,-0.12212269249377905,0.08342968596827717,0.0020536846077984813,0.11465273464593846,0.06190991360387621,0.03325408449284181,-0.04730524918031208,-0.08990417979149033,0.06109725424780543,0.03936816692862047,0.12806392773574266,-0.020166639792400704,0.030913425816304223,-0.023144370547091064,-0.03893171746182498,-0.05567174736369421,-0.09552615213020077,-0.020833665098455807,-0.07336137173196726,-0.09693643572674014,-0.10205391963142271,-0.058288428807711894,0.016971435782334194,0.050464855667518065,0.06558371338934874,0.09206140353544402,0.10950488255259778,-0.061528046067226706,0.1614289942290754,0.12659338772728534,-0.16418380818133319,0.17296845663832677,-0.07660204173275,-0.09457460457135554,-0.0737891639208296,-0.03235718119542132,-0.1112949893919414,-0.00020572144348518292,0.02446416638865449,-0.1184422985457095,0.1476978906749659,0.060249877989626756,-0.3083482498285999,-0.08725027894527897,0.11758395701528523,0.05995940662206148,0.06058223670799155,0.015326722243537882,0.05684727972366794,-0.08954273589201714,-0.06687718407773519,-0.1266877431575539,-0.05194446622413304,0.0961867132447327,-0.08150902288797754,0.07658525340524684,0.25790421476376807,0.012590871599901837,0.14650892154337192,0.13814954845004476,0.037965337221775856,0.07727704828922533,-0.05278426432414897,-0.0904286443233103,-0.08421612868121121,-0.07606400423115098,-0.04030915219102525,0.04215474735153577,-0.011006871405299785,0.052222653977080556,-0.10852463974737188,0.20945610112465984,-0.11674032791697939,0.01410429407898894,-0.06153068750486459,0.15834412187333052,-0.12131936770968578,-0.04257183341296018,-0.0572631535270781,0.0032801424248994574,0.040744066601214435,0.03278348053145368,-0.16781297348664492,-0.11071734675927518,-0.037073231856388965,0.10181541845047858,-0.05048182381649791,0.06407668185771723,0.06694554892899378,-0.11701898325684368,-0.03591410785147167,-0.16797769314878075,-0.138261153210554,0.06872926107194331,-0.10939342291465504,0.09019183287968753,0.14554223019097942,0.13052085430593569,-0.0177497112981868,0.05688139286164837,0.17981641942077448,-0.04990978147301334,0.032796743713409134,-0.11086739442800445,0.0671334457890107,-0.10057015017761514,-0.10331663490056664,0.09689233079977867,-0.006859008316938007,-0.025672343495792106,-0.151308080461342,0.1103449025881047,-0.18203664088303964,-0.014954444588205012,-0.06622232066264391,0.14929762796205986,-0.13033915988339048,-0.051157594929852404,-0.06185802234825259,-0.053640610454154816,0.1239730950434242,-0.11131330083728637,-0.11213061956547868,-0.1345942407386815,0.05633505607761668,0.0684126076428212,-0.03200202341510412,0.1083762100391409,-0.04321847074325503,-0.18574326022612267,-0.07581712268015689,-0.11185913358075374,-0.07478593066286296,0.08242169146965458,-0.07070976451156563,0.04082195098374639,0.16904537932813626,0.12992603444142226,0.07963797466741537,0.15689261455130202,0.029316060861270823,-0.045575985416813,0.008448633673824826,0.049268985291546226,0.02339054354929975,0.02654523158595089,-0.07965553196838987,0.11393113828624386,0.027531026108699334,0.12584494701656157,-0.06115879112975265,0.11152499767489563,-0.2330459255577412,0.057570604879624794,-0.22357128243766689,0.05613842717862179,-0.21224298141169606,0.022830669093078942,0.00841330372343416,-0.03703090971886907,0.17617141307761588,0.0015504187332206123,-0.22466438893223295,-0.01710661659038456,0.12653875013050858,0.16360409507620996,-0.07825248668063155,0.006486889118126728,0.12563390198184182,-0.14494273595863288,-0.0512230348665158,-0.134269125101087,-0.11453294291669097,0.07459385565007007,-0.030729406870062013,0.018797581668575696,0.15565852084349463,0.21985783307886309,0.15749053764521906,0.19492109830821855,0.1350936111144538,-0.07412976821337253,0.016535052321774667,0.011257945004136738,0.04382974568369142,-0.06820582561991348,-0.005319079695072571,0.063320275041802,-0.04220691956338039,-0.018384946880051063,0.11351549477262342,-0.02710578100699548,0.0546798145815117,-0.019673424898428767,0.030292136176996325,-0.09867300722616984,0.0060894121190925785,-0.05785445983263142,-0.006921603841068003,0.04358366313387354,-0.09968419503063913,0.08651138593943004,-0.06655165009270199,-0.008319001551621205,0.04931671982401202,-0.11985273610240399,0.00571472368905673,-0.13031244994689853,-0.0005256693650540473,-0.010399441619684705,0.11628207994528128,-0.006542889584190569,0.06642025858326753,-0.03035856543113499,0.018241484105405447,-0.04501668150093937,-0.009031231695544218,0.003750490870356244,0.004702855301448613,-0.0146836831248651,-0.055836701113774166,0.07123857256841602,-0.07681165723712192,-0.025103254600527095,0.029632726922301705,0.002060191172888294,0.14529663365065726,-0.07708288218617822,0.10458441613997897,-0.020977602296595066,-0.08147412524695385,-0.06193095625671922,-0.04425149193632695,-0.06214937188996213,0.022793293413883624,-0.03257702790585587,0.026491005807520562,0.0954614944181586,-0.034287859876387786,0.06188989507967697,0.09695169990617568,0.03633964745037103,0.033262361558785425,-0.01341853532064917,-0.040618747213944206,0.08727234631533536,-0.06453544397094985,0.08056926447256449,-0.06763354055164968,0.09796968099438548,-0.052840375276465734,-0.04876028439282479,-0.08210124039228725,0.09565135276981789,-0.04307338268923462,0.07639238039272148,0.028259039277152197,-0.015770797846079206,0.0037885935920595375,0.03477563742383681,-0.036785148818136756,0.08356116084584739,0.07029680982403376,-0.08264967452243656,-0.06376136105057618,-0.10654813586782517,0.07955753614464106,-0.08018225861980369,-0.028726493708529456,-0.11120172315144745,0.08415774850139052,-0.029724379918824064,0.08704327015627215,0.04209998094924592,0.09347987100793767,-0.02865479827509353,0.000854589227045082,-0.07040012463697302,0.06857313158613242,-0.08803921553153175,-0.09960320924147696,0.03541947097532543,-0.04608274859561118,-0.04355976428729292,-0.11009170129194401,0.025178730517578737,-0.006047635590266056,-0.08675893140827193,-0.09460204751444717,0.02693754766973763,-0.04099605677476822,-0.07824135294083162,0.05455958894711069,0.014596418379486213,0.08902963749337359,0.04074881177075035,-0.034333103541768696,-0.13138033772357424,0.03369906742971262,-0.031561059743422284,0.03122575870262844,0.10651534963449254,0.08846800221744285,0.07237218991434904,-0.051125336138912444,0.044381030254525604,0.04578808954313658,0.07709142762493415,-0.135734281917737,-0.0952800124490787,-0.0092172746845346,-0.016692876723878418,0.13384031327131596,-0.015549384604144798,0.053350171877646554,0.034413990180686735,0.060332839566788414,0.018374893623042426,0.008706179347750996,-0.04770687293058631,0.01192814597285123,0.01750266578954955,-0.031210013992010326,0.0585349175125456,-0.04625577144658213,-0.0771048047367986,0.046939482413260604,0.01760655834466076,-0.04012372885632703,-0.018607231706010696,0.0568917929531197,0.03785913839674588,0.06470101975232029,-0.030339707378090712,0.01294420313344679,-5.659964345248601e-05,-0.11325885073889619,-0.04087182683328012,-0.023371606211952643,-0.05065131632786179,-0.08369394921161998,0.015457544167450253,-0.024358064403083073,0.06852144448781748,0.10205628927490898,0.02235801976601455,0.03137614371566491,0.04061130534171196,0.022309601691315357,-0.03578895367313654,-0.18880129696979614,0.25753909669955066,-0.1370435951099715,0.0918579302461276,-0.14838281988647847,0.08124283360869534,-0.0456866352727822,0.08171224205779276,0.043020203716036716,-0.06638245165398793,0.17070787444652694,-0.09246629929053851,-0.3667494123561456,-0.06651560177806053,0.01967688738759858,1.7962945439623778e-05,0.0799358558388522,-0.04978412719381114,0.054765278251938936,-0.18263474908619512,-0.06043561400675923,-0.24926881529175457,-0.18501173071921373,-0.013937588394257629,0.05681832717083844,0.06778736088543076,0.31569605838774706,0.11478494285593503,0.13024337134933947,0.034813496256046676,0.005356582706225252,-0.06036155138503263,0.025413479383613817,0.05246044850766189,0.018756337555859922,0.06592484219823092,-0.04878930516470338,-0.07175454033643575,0.0024593240193566727,0.009558015847725282,-0.11930835763007186,0.1377044303981864,-0.13794761882212758,0.09466404618617691,-0.02153087626459756,0.09832060869958846,-0.0043123831953864175,0.06970105441709439,-0.01793350071335382,-0.11710323304160397,0.06483542460497595,-0.04153698597280236,-0.30656494235243487,-0.1629025308544589,0.09011657438984336,0.04042057942919485,0.09535619162179532,0.043540641327260224,-0.05734853399546098,-0.18123181056298837,-0.17219505549404962,-0.17222875347819228,-0.15474690645382214,0.04358236399841892,-0.10757390093551088,-0.013670047119303839,0.2031177887148039,0.18940120234762642,0.14440555666031674,0.1290961427279677,0.16501015628329202,-0.035454087675660044,0.012474162027615353,0.01833765160036032,0.00011391193799025215,0.055068254293650906,0.03040537087678167,-0.06226750372581517,0.14567245714750787,0.07554717891889624,-0.10530304599294342,0.03332819828769107,-0.10162377949313793,-0.016543062771746685,-0.2007166788633859,0.02426720322332068,-0.06872443969921004,0.046660704071039796,0.06767682986798104,0.011802898711446854,-0.002882783019647401,-0.005933938600806661,-0.1119773336314561,-0.15258569949387754,0.03669826553867344,0.1013402360207138,0.0953160185056789,0.0671380388642939,0.12161936956572718,-0.16264005638475607,-0.1521322155019023,-0.1258089760939019,-0.015906127482310094,0.15254534815306198,0.011544699770008122,0.04075009372054611,0.2651611600660082,0.18161873714053023,0.05980879077896513,0.22425185755713944,-0.0054543610270925335,0.03915189774411148,0.02232143452297104,-0.10551515913328519,0.005921321007417906,-0.06502857591311012,-0.052969446638920954,-0.010990545423128868,0.029430837849759264,0.08914841038969336,-0.029877333691173867,0.1301629648087065,-0.2050834020976707,-0.031352113329293,-0.09541084251744149,0.15615925115893797,-0.17097484983811587,-0.02542884729554293,0.0070274604773571765,-0.11568768350825644,0.16217119543198102,-0.09547830785632865,-0.0849908687824442,-0.1647341491393856,-0.009222212463082404,-0.01917325485774803,-0.005650611516224324,0.12327172733887443,0.023982573200988472,-0.22343429504363813,-0.14926890043850077,-0.17652740393014643,-0.05247501971329125,0.1737680931902174,-0.10736546703781293,0.0921924282727279,0.15637610712329636,0.1342137655220377,0.09009881649685933,0.14315673335698714,0.1880817690469763,0.03521506625440333,0.12007872152548768,-0.054459460052782585,-0.04471306389710116,0.025033718324757374,-0.04558288983171633,-0.0433383044959873,-0.07842458970384673,-0.059399810172339446,-0.00843042112538445,0.0680304882577831,0.18842043034852138,0.05886614843961859,0.11038104573868394,0.03918692607750113,-0.04895484206172229,-0.00692671239445702,-0.06212636408033075,0.09256617624958217,0.01989489618088225,0.1035103790870334,-0.13678599864628027,0.09265188225969384,-0.11733677141717058,0.008878668936936231,0.055381297957806004,-0.027446847918033566,0.050005630276814726,0.00734040138279938,0.09057426831148929,0.036353652903815745,0.04431070364250956,-0.031150974261599636,0.06182900538772775,0.027225868185873296,0.05026098636894549,-0.06300526407668967,0.024894173887569877,-0.07903190531588411,-0.09474233819328805,0.07001380711611668,0.022384820319644654,-0.025664548171802394,-0.005401981554320317,0.054790952856464334,-0.004660219393753768,-0.014979466748872397,-0.0678240611196481,0.08237676384628057,-0.026415986829093033,-0.06144527059897564,-0.017877215443314772,0.012331920009433502,-0.0316111187343661,-0.013072537408574674,0.04874243923067271,0.04573185989143291,0.032514997326016114,-0.004113576300392948,0.05100218903489314,-0.06867378494962516,-0.01103753208623526,-0.03882186192035235,-0.004182353483230955,-0.05160653267130207,-0.09074616936596548,0.027829190442155774,0.025154632413965317,-0.08429391382420617,0.06700807147335318,-0.09007059295759128,-0.06557529683067707,0.01749839646839024,0.0960618785066134,-0.10872607485269954,-0.09728957903652619,0.008753526693893732,0.07274403916078928,0.0011038922418074328,0.05017076912838569,-0.037901195856239425,0.08183431066926845,-0.03277506975425245,0.05723086227489921,-0.09332517225702784,-0.045926006592501505,0.021987161405609395,-0.000941035789193868,-0.050012746749503845,0.1136591218492034,0.02570918844847197,0.10711397943287089,0.05173997757712495,0.042880931739597485,0.060619241008148673,0.07013852791861294,0.04264185270615884,0.035247548525397424,0.09855307514817839,-0.07345668146049135,0.09598256554600582,-0.06452639192896958,0.016421527152895053,-0.04564848245757955,-0.09997003904825252,0.09272298785466226,-0.10553045390686148,0.03318625932342561,-0.021196515357346537,-0.03190292490669815,0.030304367332368125,0.001541933526607085,-0.10655105009906421,-0.06337647039444379,0.062020851350648144,-0.04087650170667362,-0.10676728554415872,0.024205449965372054,-0.09480677243762338,0.020187720095432446,-0.05660896088117868,0.06117011380553766,0.09204663363334385,-0.04482559920291125,0.01360677342298518,-0.049152610345454824,-0.03500486610896821,-0.010469622195410696,0.03145975625095604,-0.0008801685519525917,-0.025491024085589623,0.05133487369912433,0.09458458222907204,0.14912838242904866,-0.049210396036427066,0.06828371067652735,-0.057405435848650065,0.047156796365682804,0.026763076265082977,0.0031323634243807645,-0.014463450353439811,-0.04950783740894834,-0.028358844397245234,0.037726804552549315,-0.0866236057596492,0.005075317602005181,0.02404336844752632,-0.007232906237468403,-0.042859043521890614,0.11637902060874895,-0.01732662439943334,0.0513210931470447,-0.008926412404830063,0.03847567226426416,0.059375274262232436,0.011979788288372211,-0.03637024161509418,-0.04797262548702688,-0.023791715349501533,-0.007417243990828911,-0.02785735414183335,-0.07574461535129945,0.038242818711106775,0.07638076955930338,-0.07182784090677762,0.11040317201919313,-0.04547177257816631,0.18894912104664568,0.005987354178867856,-0.3070952617240131,0.4835347905010515,-0.3314476690122842,0.06399183766957117,-0.1522389359410135,0.1453833150139077,-0.35001431473514666,0.034391516919300424,-0.012657170911057088,-0.15310236906073965,0.0621610982140663,0.030376684085181162,-0.7192975439507348,-0.15752748480588913,0.037450652292041246,0.05635577558339793,-0.07157938313772247,0.1703852178773785,0.07840440438268743,-0.35688584588310013,-0.252368109710091,-0.6218735995695004,-0.26706040243301055,0.1752270805687202,0.06354787184389331,-0.05120519211282806,0.7569154486986626,0.24253262029278028,0.24363124310588422,0.2733801999700555,0.1630582266163526,-0.05520744661886918,0.05997340414721434,-0.15007568636910507,-0.07947474651605538,-0.006987584116702985,-0.08221382451338688,-0.08146861704764595,-0.14856545919747932,-0.05101224820686422,0.1816778468134126,-0.34319595794847624,0.23607507855179713,0.10160810281244247,0.1797595129371015,-0.0606102739222918,0.28983297917805356,0.06410584902755005,-0.07173102294621474,0.05064972127231387,-0.1631234016367907,0.07757888615945724,0.5376040533600932,0.2274937448347728,-0.10499830980354698,-0.18700636883764604,-0.031898643690104055,-0.16181888777307638,-0.13538710048364574,0.5103134453675011,0.14289599154319366,0.691557874955366,0.3322553894775252,-0.25385975986447457,-0.007865978563750884,-0.08726649899787044,-0.6549827842263171,-0.24758964778010992,-0.2847223041835003,-0.3293749450231822,-0.2126480314058524,0.09682577252347142,0.04890949473931158,0.02335157438760443,0.03588682387047246,-0.07477967408970444,0.1283504060519343,-0.03503321739308819,-0.4012276787874497,-0.17268830240347077,0.46714060615157554,-0.5106162524517628,0.7663450773452661,0.019790452112627362,0.5227375597027999,-0.23260523048034068,0.6004988501909765,0.014484902208051561,0.07696595118318814,0.157417871694039,-0.44113683417641825,0.06360018405082037,0.8416119117865807,0.39851627414747964,-0.24637700851850394,-0.2929298720411313,-0.09583220500137545,-0.2506456890951422,-0.097939058844027,0.5593866073919419,0.49432700819094477,0.71260512474162,0.39368577339716204,-0.4185366280573457,0.11353332602788273,-0.05346490378186634,-0.8423016022528236,-0.6189517922151775,-0.41279609740519974,-0.6209071090568968,-0.39639167643162426,0.12571230425186702,-0.1858872863067931,0.3379439516770518,-0.023244894417037035,0.044603013433689845,0.11095954435000753,0.19407107296015913,0.3674712908475688,0.3116737325857711,-0.4759037379878274,0.5845032444620396,-0.7654100897386991,0.020049564093944202,-0.5026855216128118,0.3791640587428185,-0.5926151161177795,-0.15173246314732372,0.008736235017189441,-0.14567569112672984,0.3983139490936378,-0.2230119765399432,-0.6571705898410082,-0.42283750208229326,0.24730539910403834,0.31262976409519755,-0.01435285641843718,0.30210744691067537,0.10581593353839032,-0.7636319635277788,-0.50151498996635,-0.7668584291335206,-0.5137269717078704,0.5254948721607254,-0.1014773299164518,0.019346312633997352,0.8841104382550177,0.579028125593942,0.3856687703000041,0.6283549750005198,0.44330736139741816,-0.10850053582503577,0.1567766228094927,-0.2904060462530954,0.06710112132548007,-0.05455895046852577,-0.23057947476622567,-0.053296314055252036,-0.012049947558144269,-0.0903677756810337,-0.01377892890621316,0.17873900008490268,0.13408637031205115,0.029174772692828917,0.05840417174020869,-0.0717202842304993,0.02090301870552246,0.036255314054166946,-0.07520547764099732,0.0051952346048605965,-0.10668179705780738,-0.06449627748654656,0.09050888994350761,0.02941640017512304,0.044279688142127356,0.07061565750737776,-0.06608088012247683,0.07308787637812193,-0.026839169537176667,0.29482670466698974,0.04247483873976011,0.10783716835321279,-0.06903294787441447,0.0034883035854130834,0.06848451796169455,-0.01438573827447972,0.05142753629352945,0.02629503704421334,-0.11895964914968732,-0.1591321159702552,0.0031121836018134026,-0.0005942628527874498,0.01302702140410319,-0.054668603042063654,0.09416076894012826,0.088423394601159,0.06015299554789356,0.0038393572891369816,0.0577034075945052,0.16281885841276084,0.040014837806218256,0.0944181981214593,-0.005843740847070186,-0.025357696748600334,-0.015893555857942807,-0.049864084130580265,0.061807085950062235,0.05383690957251489,-0.049196798724555395,-0.021489917189007078,0.07116622582925959,-0.11467049807744771,-0.2852913062042459,0.023662384313251714,0.04510493358321098,0.08486550993683709,0.0477183597745043,-0.06854529793759927,-0.032071973623416176,-0.15207892048695623,0.0036047413233080946,0.17016380064738237,0.06406143959775568,-0.016096211511206358,0.057672629374496985,0.03953386121601628,0.07275020950076887,-0.025435984916599343,-0.02412700097998429,0.07906019547876195,0.01275931639698042,0.009855432015811712,0.08074389500484845,-0.10823800141139821,0.06683936827762603,-0.036445388325120925,-0.08184155686306678],"w2":[-0.30150171306776097,-0.9757113980840328,-0.5580367124805671,1.0162985325700773,-1.3537694156956173,1.8678890621477264,0.03103871115102444,1.2706365094962264,-0.7271666259802956,1.3734266530382528,0.027483233790370376,-0.027759812120543192,0.4494113784853427,-0.8926605154372251,0.3349360019928647,1.9769552222550464,0.8524052333005154,-0.5745445696264552,-0.7452692205051454,-0.09843014075531374,-0.4805816484387466,-0.31224307561082076,1.7241904812217772,1.1513385850130633,1.896058949238764,1.006479323318089,-1.0457682796167607,0.13007593460776554,-0.10193654280988895,-2.2676106618513203,-1.4064154510804923,-1.1124833575627475,-1.5400908961308424,-0.9962138545719748,0.33292096575668345,-0.2751011299617246,0.6405241775666219,-0.11894705127724726,0.04520106632821838,0.40569076227253587],"b2":[-0.11878431821829234]}
/// Encodes a GameState into Tesauro's 198-feature vector.
///
/// Layout (per point, 24 points × 8 features = 192):
/// [0] 1 if white has ≥1 checker
/// [1] 1 if white has ≥2 checkers
/// [2] 1 if white has ≥3 checkers
/// [3] (n-3)/2 if white has ≥4 checkers, else 0
/// [4-7] same for black
/// [192] white bar / 2
/// [193] black bar / 2
/// [194] white borne off / 15
/// [195] black borne off / 15
/// [196] 1 if white to move
/// [197] 1 if black to move
public enum BoardEncoder {
public static let inputSize = 198
public static func encode(_ state: GameState) -> [Double] {
var f = [Double](repeating: 0.0, count: inputSize)
var offset = 0
for point in 0..<24 {
let raw = state.points[point]
encode(count: max(0, raw), into: &f, at: offset)
encode(count: max(0, -raw), into: &f, at: offset + 4)
offset += 8
}
f[192] = Double(state.whiteBar) / 2.0
f[193] = Double(state.blackBar) / 2.0
f[194] = Double(state.whiteBorneOff) / 15.0
f[195] = Double(state.blackBorneOff) / 15.0
f[196] = state.currentPlayer == .white ? 1.0 : 0.0
f[197] = state.currentPlayer == .black ? 1.0 : 0.0
return f
}
private static func encode(count n: Int, into f: inout [Double], at offset: Int) {
f[offset] = n >= 1 ? 1.0 : 0.0
f[offset + 1] = n >= 2 ? 1.0 : 0.0
f[offset + 2] = n >= 3 ? 1.0 : 0.0
f[offset + 3] = n >= 4 ? Double(n - 3) / 2.0 : 0.0
}
}
import Foundation
/// Applies moves to game state and manages turn flow.
public enum GameEngine {
// MARK: - Dice
public static func roll() -> [Int] {
let d1 = Int.random(in: 1...6)
let d2 = Int.random(in: 1...6)
return d1 == d2 ? [d1, d1, d1, d1] : [d1, d2]
}
// MARK: - Turn management
/// Returns a new state with dice set, ready for move selection.
public static func applyRoll(_ dice: [Int], to state: GameState) -> GameState {
var next = state
next.remainingDice = dice
return next
}
/// Applies a full move (sequence of checker moves) and advances the turn.
/// Returns nil if the move is not in the legal move list.
public static func apply(_ move: Move, to state: GameState) -> GameState? {
let legal = MoveGenerator.legalMoves(for: state)
guard legal.contains(move) else { return nil }
var next = state
for cm in move.checkerMoves {
applyCheckerMove(cm, player: state.currentPlayer, to: &next)
}
if next.winner == nil {
next.currentPlayer = state.currentPlayer.opponent
next.remainingDice = []
}
return next
}
/// Applies a move without legality checking (used internally by MoveGenerator and trainer).
public static func applyUnchecked(_ move: Move, to state: GameState) -> GameState {
var next = state
for cm in move.checkerMoves {
applyCheckerMove(cm, player: state.currentPlayer, to: &next)
}
if next.winner == nil {
next.currentPlayer = state.currentPlayer.opponent
next.remainingDice = []
}
return next
}
// MARK: - Internals
public static func applyCheckerMove(_ cm: CheckerMove, player: Player, to state: inout GameState) {
// Remove from source
if cm.isFromBar {
if player == .white { state.whiteBar -= 1 } else { state.blackBar -= 1 }
} else {
if player == .white { state.points[cm.from] -= 1 } else { state.points[cm.from] += 1 }
}
if cm.isBearOff {
if player == .white { state.whiteBorneOff += 1 } else { state.blackBorneOff += 1 }
return
}
// Hit opponent blot?
let opponentCount = state.checkerCount(at: cm.to, for: player.opponent)
if opponentCount == 1 {
if player == .white { state.points[cm.to] = 0; state.blackBar += 1 }
else { state.points[cm.to] = 0; state.whiteBar += 1 }
}
// Place on destination
if player == .white { state.points[cm.to] += 1 } else { state.points[cm.to] -= 1 }
}
}
/// Represents the complete state of a backgammon game at a single point in time.
///
/// Board layout (from White's perspective):
/// Points 1-24, where White bears off at point 0 and Black bears off at point 25.
/// Positive counts = White checkers, negative counts = Black checkers.
///
/// Bar: whitebar holds White checkers on the bar, blackBar holds Black checkers.
public struct GameState: Sendable, Hashable {
// MARK: - Board
/// 24 points. Positive = White checkers, negative = Black checkers.
public var points: [Int]
/// White checkers on the bar.
public var whiteBar: Int
/// Black checkers on the bar.
public var blackBar: Int
/// White checkers already borne off.
public var whiteBorneOff: Int
/// Black checkers already borne off.
public var blackBorneOff: Int
// MARK: - Turn
public var currentPlayer: Player
/// Remaining dice to use this turn. Empty when waiting for a roll.
public var remainingDice: [Int]
// MARK: - Init
public init() {
points = Array(repeating: 0, count: 24)
whiteBar = 0
blackBar = 0
whiteBorneOff = 0
blackBorneOff = 0
currentPlayer = .white
remainingDice = []
setupInitialPosition()
}
public init(
points: [Int],
whiteBar: Int = 0,
blackBar: Int = 0,
whiteBorneOff: Int = 0,
blackBorneOff: Int = 0,
currentPlayer: Player = .white,
remainingDice: [Int] = []
) {
self.points = points
self.whiteBar = whiteBar
self.blackBar = blackBar
self.whiteBorneOff = whiteBorneOff
self.blackBorneOff = blackBorneOff
self.currentPlayer = currentPlayer
self.remainingDice = remainingDice
}
// MARK: - Derived state
public var winner: Player? {
if whiteBorneOff == 15 { return .white }
if blackBorneOff == 15 { return .black }
return nil
}
public var isGameOver: Bool { winner != nil }
/// Checker count on a point from the current player's perspective (positive = owned).
public func checkerCount(at point: Int, for player: Player) -> Int {
let raw = points[point]
return player == .white ? raw : -raw
}
// MARK: - Private setup
private mutating func setupInitialPosition() {
// Standard backgammon starting position (White's perspective, 1-indexed → 0-indexed)
// White: 2 on point 24, 5 on point 13, 3 on point 8, 5 on point 6
// Black: mirror image (negative values)
points[23] = 2 // White: point 24
points[12] = 5 // White: point 13
points[ 7] = 3 // White: point 8
points[ 5] = 5 // White: point 6
points[ 0] = -2 // Black: point 1 (mirror of White point 24)
points[11] = -5 // Black: point 12 (mirror of White point 13)
points[16] = -3 // Black: point 17 (mirror of White point 8)
points[18] = -5 // Black: point 19 (mirror of White point 6)
}
}
/// A single checker movement using one die.
public struct CheckerMove: Sendable, Hashable {
/// Source point (0-23), or 24 meaning "from the bar".
public let from: Int
/// Destination point (0-23), or -1 meaning "bear off".
public let to: Int
/// The die value used.
public let die: Int
public static let barIndex = 24
public static let bearOffIndex = -1
public var isFromBar: Bool { from == CheckerMove.barIndex }
public var isBearOff: Bool { to == CheckerMove.bearOffIndex }
public init(from: Int, to: Int, die: Int) {
self.from = from
self.to = to
self.die = die
}
}
/// A full turn: an ordered sequence of checker moves that consumes some or all remaining dice.
public struct Move: Sendable, Hashable {
public let checkerMoves: [CheckerMove]
public init(_ checkerMoves: [CheckerMove]) {
self.checkerMoves = checkerMoves
}
public var isEmpty: Bool { checkerMoves.isEmpty }
}
/// Generates all legal moves for the current player given a rolled set of dice.
///
/// Backgammon rules enforced:
/// - Bar checkers must enter before any other move.
/// - Must use both dice if possible; if only one can be used, must use the higher.
/// - Bearing off requires all checkers in the home board; exact or higher die allowed.
/// - Cannot land on a point holding 2+ opponent checkers (a "made point").
public enum MoveGenerator {
public static func legalMoves(for state: GameState) -> [Move] {
let dice = state.remainingDice
guard !dice.isEmpty, state.winner == nil else { return [] }
let player = state.currentPlayer
let uniqueDice = uniqueCombinations(of: dice)
var allMoves: [Move] = []
for diceSet in uniqueDice {
let moves = generateMoves(state: state, player: player, dice: diceSet, path: [])
allMoves.append(contentsOf: moves)
}
// Deduplicate by checker move sequence
let unique = Array(Set(allMoves))
// Must maximise dice usage: prefer moves that use more dice
return filterMaximalMoves(unique)
}
// MARK: - Recursive move building
private static func generateMoves(
state: GameState,
player: Player,
dice: [Int],
path: [CheckerMove]
) -> [Move] {
if dice.isEmpty { return [Move(path)] }
let bar = player == .white ? state.whiteBar : state.blackBar
var results: [Move] = []
if bar > 0 {
// Must enter from bar
for (i, die) in dice.enumerated() {
if let move = enterMove(from: bar > 0, die: die, player: player, state: state) {
var nextState = state
GameEngine.applyCheckerMove(move, player: player, to: &nextState)
var remaining = dice
remaining.remove(at: i)
let sub = generateMoves(state: nextState, player: player, dice: remaining, path: path + [move])
results.append(contentsOf: sub)
}
}
if results.isEmpty { return [Move(path)] }
return results
}
let canBearOff = allCheckersInHomeBoard(state: state, player: player)
for (i, die) in dice.enumerated() {
// Skip duplicate dice values already processed at this level
if i > 0 && dice[i] == dice[i - 1] { continue }
let sources = sourcesForNormalMove(state: state, player: player, die: die, canBearOff: canBearOff)
for from in sources {
let to = destination(from: from, die: die, player: player, canBearOff: canBearOff, state: state)
let move = CheckerMove(from: from, to: to, die: die)
var nextState = state
GameEngine.applyCheckerMove(move, player: player, to: &nextState)
var remaining = dice
remaining.remove(at: i)
let sub = generateMoves(state: nextState, player: player, dice: remaining, path: path + [move])
results.append(contentsOf: sub)
}
}
if results.isEmpty { return [Move(path)] }
return results
}
// MARK: - Enter from bar
private static func enterMove(from _: Bool, die: Int, player: Player, state: GameState) -> CheckerMove? {
let target: Int
if player == .white {
// White enters on points 19-24 (indices 18-23), die 1 → index 23, die 6 → index 18
target = 24 - die // index
} else {
// Black enters on points 1-6 (indices 0-5), die 1 → index 0, die 6 → index 5
target = die - 1 // index
}
guard target >= 0, target < 24 else { return nil }
guard canLand(at: target, player: player, state: state) else { return nil }
return CheckerMove(from: CheckerMove.barIndex, to: target, die: die)
}
// MARK: - Normal move sources
private static func sourcesForNormalMove(
state: GameState,
player: Player,
die: Int,
canBearOff: Bool
) -> [Int] {
var sources: [Int] = []
for point in 0..<24 {
let count = state.checkerCount(at: point, for: player)
guard count > 0 else { continue }
let rawDest = pointIndex(from: point, die: die, player: player)
if rawDest >= 0 && rawDest < 24 {
if canLand(at: rawDest, player: player, state: state) {
sources.append(point)
}
} else if canBearOff {
// Bear off: destination is off the board
if bearOffAllowed(from: point, die: die, player: player, state: state) {
sources.append(point)
}
}
}
return sources
}
private static func destination(
from point: Int,
die: Int,
player: Player,
canBearOff: Bool,
state: GameState
) -> Int {
let raw = pointIndex(from: point, die: die, player: player)
if raw >= 0 && raw < 24 { return raw }
if canBearOff { return CheckerMove.bearOffIndex }
return raw // shouldn't reach
}
// MARK: - Bear off helpers
private static func allCheckersInHomeBoard(state: GameState, player: Player) -> Bool {
let bar = player == .white ? state.whiteBar : state.blackBar
if bar > 0 { return false }
// White home board: points 1-6 (indices 0-5)
// Black home board: points 19-24 (indices 18-23)
let homeRange: Range<Int> = player == .white ? 0..<6 : 18..<24
for point in 0..<24 {
guard !homeRange.contains(point) else { continue }
if state.checkerCount(at: point, for: player) > 0 { return false }
}
return true
}
private static func bearOffAllowed(from point: Int, die: Int, player: Player, state: GameState) -> Bool {
let raw = pointIndex(from: point, die: die, player: player)
if player == .white {
if raw == -1 { return true } // exact
if raw < -1 {
// Die overshoots; only allowed if no checker is on a higher point
let higherRange = (point + 1)..<6
return higherRange.allSatisfy { state.checkerCount(at: $0, for: player) == 0 }
}
} else {
if raw == 24 { return true }
if raw > 24 {
let lowerRange = 18..<point
return lowerRange.allSatisfy { state.checkerCount(at: $0, for: player) == 0 }
}
}
return false
}
// MARK: - Landing rules
private static func canLand(at point: Int, player: Player, state: GameState) -> Bool {
let opponentCount = state.checkerCount(at: point, for: player.opponent)
return opponentCount <= 1 // 0 = empty/own, 1 = blot (can hit), 2+ = made point
}
// MARK: - Geometry
private static func pointIndex(from point: Int, die: Int, player: Player) -> Int {
point + player.direction * die
}
// MARK: - Maximise dice usage
private static func filterMaximalMoves(_ moves: [Move]) -> [Move] {
guard !moves.isEmpty else { return [] }
let maxUsed = moves.map { $0.checkerMoves.count }.max()!
let maxMoves = moves.filter { $0.checkerMoves.count == maxUsed }
// If only one die can be used, must use the higher value
if maxUsed == 1 {
let maxDie = maxMoves.map { $0.checkerMoves[0].die }.max()!
return maxMoves.filter { $0.checkerMoves[0].die == maxDie }
}
return maxMoves
}
// MARK: - Dice combinations
private static func uniqueCombinations(of dice: [Int]) -> [[Int]] {
// For a standard roll of 2 dice (or 4 for doubles), permutations matter for
// move ordering but not legality — return the sorted unique set.
guard !dice.isEmpty else { return [[]] }
return [dice.sorted()]
}
}
import Foundation
/// Feedforward network: 198 → sigmoid(40) → sigmoid(1).
/// Output is P(White wins) from any board position.
///
/// Weight layout (row-major):
/// w1[i * hiddenSize + j] — input i to hidden j
/// w2[j] — hidden j to output
public final class NeuralNetwork: @unchecked Sendable {
public static let inputSize = 198
public static let hiddenSize = 40
public var w1: [Double] // inputSize × hiddenSize
public var b1: [Double] // hiddenSize
public var w2: [Double] // hiddenSize
public var b2: [Double] // 1
public init() {
w1 = Self.rand(count: Self.inputSize * Self.hiddenSize)
b1 = [Double](repeating: 0.0, count: Self.hiddenSize)
w2 = Self.rand(count: Self.hiddenSize)
b2 = [0.0]
}
public init(w1: [Double], b1: [Double], w2: [Double], b2: [Double]) {
self.w1 = w1; self.b1 = b1; self.w2 = w2; self.b2 = b2
}
// MARK: - Inference
/// Returns P(White wins) ∈ (0,1).
public func evaluate(_ state: GameState) -> Double {
forward(BoardEncoder.encode(state)).output
}
/// Returns P(player wins) ∈ (0,1).
public func evaluate(_ state: GameState, for player: Player) -> Double {
let v = evaluate(state)
return player == .white ? v : 1.0 - v
}
// MARK: - Forward pass (cache-friendly row-major accumulation)
public func forward(_ input: [Double]) -> (hidden: [Double], output: Double) {
let H = Self.hiddenSize
var hidden = b1 // start with biases
for i in 0..<Self.inputSize {
let xi = input[i]
guard xi != 0 else { continue } // ~60% of features are 0 at start
let base = i * H
for j in 0..<H { hidden[j] += xi * w1[base + j] }
}
for j in 0..<H { hidden[j] = sigmoid(hidden[j]) }
var out = b2[0]
for j in 0..<H { out += hidden[j] * w2[j] }
return (hidden, sigmoid(out))
}
// MARK: - Gradients + forward in one pass (avoids double forward in TD update)
/// Computes ∂output/∂weights given pre-computed forward activations.
/// Call `forward` once, pass results here to avoid a second forward pass.
public func gradients(input: [Double], hidden: [Double], output: Double) -> NetworkGradients {
let H = Self.hiddenSize
let dOut = sigmoidDeriv(output)
var gW2 = [Double](repeating: 0.0, count: H)
let gB2 = [dOut]
for j in 0..<H { gW2[j] = hidden[j] * dOut }
var dH = [Double](repeating: 0.0, count: H)
var gB1 = [Double](repeating: 0.0, count: H)
for j in 0..<H {
let d = sigmoidDeriv(hidden[j]) * w2[j] * dOut
dH[j] = d
gB1[j] = d
}
var gW1 = [Double](repeating: 0.0, count: Self.inputSize * H)
for i in 0..<Self.inputSize {
let xi = input[i]
let base = i * H
for j in 0..<H { gW1[base + j] = xi * dH[j] }
}
return NetworkGradients(w1: gW1, b1: gB1, w2: gW2, b2: gB2)
}
// MARK: - Private
private func sigmoid(_ x: Double) -> Double { 1.0 / (1.0 + exp(-x)) }
private func sigmoidDeriv(_ y: Double) -> Double { y * (1.0 - y) }
private static func rand(count: Int) -> [Double] {
(0..<count).map { _ in Double.random(in: -0.1...0.1) }
}
}
// MARK: - Gradient / eligibility-trace arrays (same shape as network weights)
public struct NetworkGradients {
public var w1: [Double]
public var b1: [Double]
public var w2: [Double]
public var b2: [Double]
public static func zero() -> NetworkGradients {
NetworkGradients(
w1: [Double](repeating: 0.0, count: NeuralNetwork.inputSize * NeuralNetwork.hiddenSize),
b1: [Double](repeating: 0.0, count: NeuralNetwork.hiddenSize),
w2: [Double](repeating: 0.0, count: NeuralNetwork.hiddenSize),
b2: [0.0]
)
}
}
public enum Player: Int, Sendable, Hashable, CaseIterable {
case white = 1
case black = -1
public var opponent: Player {
self == .white ? .black : .white
}
/// Direction of movement on the points array. White moves from high to low index.
public var direction: Int {
self == .white ? -1 : 1
}
}

A backgammon game with a trained AI opponent.

Here's what has been built:

BackgammonEngine — a complete Swift game engine with legal move generation, all backgammon rules, and the TD(λ) neural network
BackgammonTrainer — a self-play training harness that ran 500,000 episodes in under 50 minutes on your M4 Macbook Pro
BackgammonApp — a SwiftUI iPhone game where you play against the trained AI


Set which developer toolchain runs by default.
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

Training the model

cd /Users/gregh/dev/src/xcode/Backgammon
swift run -c release BackgammonTrainer ~/downloads/models/backgammon_v2.json

Running the game in the iPhone simulator
Select an iPhone simulator from the toolbar and hit Cmd+R.

The game begins with a prompt to load the trained model so the AI actually plays well:

After the app launches in the simulator, tap Load Model
Navigate to ~/downloads/models/backgammon_v1.json
Then tap Roll Dice to start your first game

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment