diff --git a/client/apps/game/src/data/geodata/flags_heights.json b/client/apps/game/src/data/geodata/flags_heights.json deleted file mode 100644 index fce952554..000000000 --- a/client/apps/game/src/data/geodata/flags_heights.json +++ /dev/null @@ -1,1588 +0,0 @@ -[ - 0.07975732168710746, 0.1025871708305449, 0.09629542396367444, 0.3362853187069289, 0.5123563087165737, - 0.21279813540303685, 0.42264750055382083, 0.05840239833565332, 0.34896782829740425, 0.11233950317644056, - 0.07255737477327626, 0.45673741279933233, 0.2187805078527287, 0.2651001505872718, 0.29499133528556504, - 0.12370112083751802, 0.06661827262723818, 0.008949926334894954, 0, 0.2543933333390861, 0.1576664291454069, - 0.11466358474504451, 0.2583499581098378, 0.5447424874476017, 0.15600939730311073, 0.19368500521423132, - 0.22778667719596282, 0.018805893425264897, 0.08088166212697821, 0.06661827262723818, 0.2286743331940592, - 0.21741510783094314, 0.18764835370339164, 0.2554053479183802, 0.5425111874987137, 0.429181335392691, - 0.19952171146452213, 0.26353687284858596, 0.6930632943215639, 0.19854659386090684, 0.14187590403481706, - 0.4400959083838554, 0.37674580346715164, 0.5266847679844521, 0.17987450866494328, 0.04627341863244623, - 0.5384695071086609, 0.05070950858687222, 0.00823792591396033, 0.20209572467631937, 0.5212715154136132, - 0.2160852524413248, 0.3100432408597033, 0.06749721002073385, 0.3034368129550665, 0.3318149651652147, - 0.33615433863054045, 0.11764309153472695, 0.2906336667147242, 0.2281670754966132, 0.11631462534751578, - 0.16282946324350622, 0.14876504498434032, 0.19764994264933938, 0.2037230139077382, 0.027493826215019914, - 0.25762090982221997, 0.33113470612411233, 0.3009504997845494, 0.05089324006300485, 0.18755261572562165, - 0.01643808703239895, 0.11515665281331237, 0.07345588170972492, 0.3176273408650413, 0.13774169504626782, - 0.13166029638104246, 0.2361204969651805, 0.2701777081773037, 0.6227709292220894, 0.35125052084628916, - 0.046880739810597157, 0.35111940578335255, 0.1288299678169129, 0.16833883722990442, 0.3344830764919783, - 0.19314278299381077, 0.15284555873196598, 0.035729678344379685, 0.5671774230141622, 0.06661827262723749, - 0.20446721375811344, 0.534245425396401, 0.23154990355809052, 0.1529788581067523, 0.25650556525965135, - 0.24822063367630057, 0.22637620844298512, 0.30774294584382117, 0.5022976283915999, 0.2164673378967844, - 0.13300156381478198, 0.3943346261861984, 0.4287041286017608, 0.350618842422391, 0.3931864173852107, - 0.053017669765481744, 0.1832871725990195, 0.07015278074247532, 0.2840991364670391, 0.16491077058418066, - 0.20459732224674504, 0.2931307447026477, 0.09164845228331944, 0.07719075856556099, 0.18357759316736522, - 0.02028254199159505, 0.16039898658382531, 0.29108071448961576, 0.4663427310623509, 0.1944117033637141, - 0.11077444688394344, 0.5959094805612973, 0.06759669068697309, 0.2095794522226146, 0.3843664668686494, - 0.5583680097360115, 0.18446471949968857, 0.32548960241256286, 0.10734311256854533, 0.2445923645165749, - 0.06297559052741603, 0.28979883876978224, 0.3311680250950793, 0.15162341551432726, 0.07708263129742395, - 0.0779146426067898, 0.1959815585074056, 0.04404744078697977, 0.6124758314011842, 0.2015408532972617, - 0.12350779528229197, 0.41180106823911056, 0.19824424569520757, 0.47474132598674706, 0.28134599217787915, - 0.01754232345084347, 0.24811836334668763, 0.11631948483720551, 0.15830768974414328, 0.32426310788331186, - 0.2198444860995489, 0.28815046545741657, 0.21659136677330948, 0, 0.5631763309500559, 0.3263054185489342, - 0.14842307472384006, 0.34102992580277597, 0.03210785377255207, 0.16995380607441357, 0.4427098083827797, - 0.4465038876828437, 0.23900739649470912, 0.03924350805383325, 0.1471468030639187, 0.3379971170357858, - 0.11376816616806171, 0.13565047700391464, 0.03919178041396427, 0.6870916143912327, 0.4908191438895979, - 0.20425752730548286, 0.6734055910128476, 0.4668199377525867, 0, 0.22895212116999766, 0.2161767332612768, - 0.038040080398227774, 0.16716900047579553, 0.051398781557540525, 0.3261520502392079, 0.023954532620593896, - 0.16369503299938584, 0.299175393226766, 0.19024639744047336, 0.5647531001033295, 0.2016560538111874, - 0.279617176603778, 0.20227430237016228, 0.37809553808296115, 0.5674319340021073, 0.35068384460106383, - 0.13143009315186382, 0.08700994969149141, 0.1153384132257326, 0.2836105672149169, 0.03289916383206538, - 0.6916120872718028, 0.022023661222784558, 0.08812059609481576, 0.2360436330664722, 0.30124189526631745, - 0.34614650899292254, 0.08846122428531487, 0.043983238014388776, 0.10469156516755172, 0.41150213316885975, - 0.29679785166582456, 0.2955520664199671, 0.2397141297908247, 0.03640779621238895, 0.37124556189154345, - 0.22607541894524996, 0.22805559349210325, 0.18700299909843912, 0.13068125992718915, 0.2458739186777559, - 0.5678766842013211, 0.5613620729002584, 0.28733340034274074, 0.5021292067011183, 0.21404361778674785, - 0.2015850914158249, 0.15123463724754108, 0.20555479174884142, 0.13842982703281803, 0.1238492138635824, - 0.1608106099942356, 0.17813676490555597, 0.200224838225255, 0.2506885751745356, 0.1552284050116802, - 0.3440351662079714, 0.05424551003305419, 0.19802398456138884, 0.3181209275700298, 0.18789260916827435, - 0.14495795392633679, 0.04717834870008107, 0.33489393443623816, 0.29327239901547786, 0.17019108308110484, - 0.18628289092138134, 0.1398897758702541, 0.580506427033993, 0.16728260880121346, 0.19439171197157787, - 0.4476361338306439, 0.15434164910308637, 0.06217503345933006, 0.18883590877672393, 0.539375521187413, - 0.023177848190986533, 0.25540458261084376, 0.2541959678058153, 0.21688409095925748, 0.07629122647702961, - 0.31971162119273205, 0.15757107854038452, 0.6181210755517901, 0.2509841663886968, 0.17429263954380927, - 0.19927079608429724, 0.03553055084015249, 0.19828056296165877, 0.3321718270890735, 0.2064051475137601, - 0.2830454570994511, 0.32548960241256286, 0.22841284204041587, 0.17288540683351697, 0.19091784952383503, - 0.0288259598525196, 0.3060824485336174, 0.19260317416627354, 0.039689701010644965, 0.21223341318545863, - 0.14601937481847369, 0.2260510323242311, 0.1273045467558839, 0.5698188972953464, 0.05698411311574014, - 0.40679115265488497, 0.4482532085775752, 0.27469481348054564, 0.5539210177545125, 0.12984970440532248, - 0.27285936154996887, 0.1960539843305021, 0.2144439574239672, 0.1350991841797237, 0.30961970643024567, - 0.18393341428132387, 0.2203595861500791, 0.1379555221605668, 0.3152321205636242, 0.13483362164179616, - 0.07238281860700004, 0.15332583187263463, 0.11022724931929956, 0.3255303145549676, 0.06567826688009457, - 0.35344066944370905, 0.10248570908780712, 0.3760141604132959, 0.36139041374470215, 0.2774875802259267, - 0.40167200762586264, 0.5187227364040512, 0.18938864157263924, 0.13329736649332088, 0.06424701682725902, - 0.23792662274853274, 0.5382390714916213, 0.5243833188397546, 0.36172163005939856, 0.06661827262723818, - 0.43230342397459015, 0.03962918180496531, 0.036305448902176345, 0.10685193423008267, 0.18181958858784875, - 0.3578218423903964, 0.47534558056545895, 0.3296928469247619, 0.22841284204041587, 0.2196503033913233, - 0.0800742597683337, 0.1124685393834956, 0.1997641970373071, 0.5938598798603328, 0.31803141583338235, - 0.05696600978017277, 0.35495920332028363, 0.061122513504473334, 0.15852656239745683, 0.27602820503794184, - 0.26772294256042606, 0.24546410517334455, 0.13122435762132256, 0.18423971755182034, 0.3469691478775264, - 0.16687845254395814, 0.1725885359022044, 0.04555139526256597, 0.3963908911074639, 0.14375104003048167, - 0.1856443127984014, 0.4542706630324125, 0.20026229908467394, 0.34107950786537544, 0.12859153192132036, - 0.2863412851654027, 0.14772854163557256, 0.14957568801927276, 0.2687944942981186, 0.32548960241256286, - 0.4572820443059458, 0.21355367638645448, 0.22324397185079475, 0.2393534751993015, 0.4811564608538485, - 0.1632219094698395, 0.286256659378358, 0.19937097989081481, 0.5284675139671784, 0.23190881658979615, - 0.34950347523535424, 0.3165155917874488, 0.17633237951476027, 0.1285167388006063, 0.06661827262723818, - 0.22036754530670982, 0.30619800423134946, 0.1946933474495783, 0.009117768180344918, 0.011228844862046939, - 0.041256721163980305, 0.32548960241256286, 0.11612406125186242, 0.16294014345390181, 0.3397364767000856, - 0.4335869515143122, 0.11606726007670072, 0.17987450866494328, 0.5122856777510577, -0.15142988375837135, - 0.29624437322695885, 0.13512306750045344, 0.09169792129336353, 0.04635804784834079, 0.42853965885875717, - 0.03310804028314301, 0.7499951919974089, 0.08864863248880275, 0.4801785251185452, 0.3242196145397129, - 0.23858294816868772, 0.04191707867988842, 0.09476283909996185, 0.3291284023397463, 0.08287883222313548, - 0.17637143972281777, 0.1740503584201368, 0.13922170661380312, 0.32548960241256286, 0.04770344511120029, - 0.3927026820608125, 0.19921000452658877, 0.12839324690570705, 0.6356454082075798, 0.057275393653049164, - 0.18646116968551316, 0.47676538366454785, 0.12627290850793085, 0.5231306073570251, 0, 0.37050785214595466, - 0.24743818139488913, 0.05718252397344971, 0.5423200796459503, 0.11393510056462824, 0.5521282589335943, - 0.21343970508384458, 0.22730773631133658, 0.06661827262723818, 0.20863293130667315, 0.13797421725898168, - 0.16408758671289508, 0.2532639300559232, 0.5324672824779826, 0.5321536316874056, 0.1441589762607423, - 0.32284905183794543, 0.051270907648650554, 0.17980960424392187, 0.14411889675202208, 0.20306876969452187, - 0.1050127393116425, 0.21571000880789828, 0.18652110371600714, 0.014883755057633685, 0.18051248690006522, - 0.2842735977483308, 0.18680104372651796, 0.12842377226881932, 0.20929580524034258, 0.34730668225272426, - 0.012245182943924906, 0.12136859140886712, 0.06964708982023153, 0.06904410574629688, 0.18201116602636214, - 0.045089876407563, 0.3057213799971901, 0.5744348195886192, 0.15710263471329589, 0.2704159975158823, - 0.1474336485578398, 0.08521901743017489, 0.21278790656684288, 0.17987450866494328, 0.16180078866488343, - 0.17987450866494328, 0.2774623447923007, 0.07633868207796535, 0.04574110683586615, 0.22360175132453863, - 0.06677949455286507, 0.2146371899386076, 0.9219971911534182, 0.14372429092741024, 0.2773938760505938, - 0.058936123958414195, 0.06661827262723818, 0.0410515455405154, 0.6022332029967347, 0.12246085695999841, - 0.28677999358872364, 0.25801372406133904, 0.5034636943018995, 0.12275375218892734, 0.43874588526086883, - 0.009510190871782509, 0.0666544988481905, 0.2871324550942031, 0.16294014345390181, 0.3354501082047283, - 0.33569417740371776, 0.4002342116727197, 0.3935767458392641, 0.31741623233428595, 0.1531096818812078, - 0.2816468012079524, 0.3038510889447976, 0.5516869998890885, 0.5419874614390215, 0.2165243641375335, - 0.1810846042202343, 0.24188394569848076, 0.18644602742875055, 0.08784749652387645, 0.5381318794950656, - 0.07392476763003758, 0.3857953312700492, 0.07024192650394538, 0.13220242099501497, 0.11674312766671009, - 0.1278623947805344, 0.24243242364903855, 0.5856061254987257, 0.37076776391957056, 0.19643925442618476, - 0.2213426450429269, 0.5762090262888456, 0.14547689968875113, 0.33226265767836827, 0.2622360538709655, - 0.3037467594223818, 0.23048728008084254, 0.3787199898869326, 0.2983314282351723, 0.18263020030953322, - 0.5675505521385087, 0.1523203855768047, 0, 0.060773939032609005, 0.2047810562552422, 0.35893628966901836, - 0.15937998998277836, 0.0764605993479149, 0.3676729977821303, 0.14556927395839767, 0.22313904359930067, - 0.23933993191746683, 0.27040842450297375, 0.23189551392214813, 0.2321573934386304, 0.16325634801453237, - 0.32429490232662, 0.42922997042913735, 0.210790884409391, 0.43191710391927723, 0.1497942896061214, 0.1705388655464747, - 0.25227880937555763, 0.23959107172651586, 0.0803487893524067, 0.22866174620842297, 0.42750291729767226, - 0.1642970758450734, 0.29320678846980286, 0.21181785960547364, 0.3341076424271141, 0.21426047515007252, - 0.17826667568008012, 0.3247301048804338, 0.0758125024959811, 0.04467353221199156, 0.43874588526086883, - 0.05747968178563366, 0.6012329423068331, 0.1904690189057856, 0.0768410412573136, 0.3638775539180907, - 0.2769512222264893, 0.30948060156085194, 0.2189990422816102, 0.3243837896853068, -0.2596838641195183, - 0.5232566872962456, 0.24420746217982303, 0.3388828404587561, 0.09155711468291876, 0.018079892441164702, - 0.11782758317852038, 0.4336128930193205, 0.27076456163580287, 0.33974352099649074, 0.21755724967352866, - 0.1000542185900922, 0.27529076015413767, 0.22196854086540246, 0.5713371841386431, 0.17533692280766922, - 0.19685343604642647, 0.26188477754349415, 0.20168138985461373, 0.25022636144682986, 0.38993314304892185, - 0.5344423321550141, 0.16461048240286416, 0.16240915723419094, 0.5914792245390988, 0.6203194706071267, - 0.5412316580351106, 0.04568798043808302, 0.18194015860328502, 0.1621349779599299, 0.2008017719176556, - 0.40697900160357103, 0.16635844361107985, 0.2343619255689512, 0.11682528102542081, 0.06661827262723889, - 0.37683633088439333, 0.295216359132382, 0.23491506745435697, 0.5617481770505641, 0.16172437781882243, - 0.24469942538823014, 0.3388473626349759, 0.048716354639096605, 0.11616824925109065, 0.1864228653999334, - 0.2756892384309107, 0.3256714641986664, 0.2575210173461756, 0.34166912488872186, 0.11493520144063397, - 0.26032501986613193, 0.23609041765982944, 0.11515665281331167, 0.1272068654682523, 0.15508797623429263, - 0.14189067939055713, 0.18262622600579606, 0.3287757389251491, 0.28041246461983005, 0.19462069155965747, - 0.1628628892533891, 0.36116910266358343, 0.5551165837081934, 0.36108875667863266, 0.4603729433384817, - 0.1646599859893205, 0.30236560381395255, 0.22267656618400494, 0.5524247758900529, 0.06986324420757113, - 0.11459810822573722, 0.5318466814724069, 0.1716077454824903, 0.05185065959315346, 0.07716471939698091, - 0.11669629178418994, 0.364372221559795, 0.17648020946221865, 0.18689632094558828, 0.20278427555612644, - 0.26673295040963185, 0.30169384778604935, 0.14348863028471304, 0.20975472836657863, 0.47236264682454415, - 0.264987489186749, 0.05523656554309526, 0.17693177048066336, 0.2379104485749277, 0.1882323153390281, - 0.18634445774387903, 0.11808251932247223, 0.28505867345720676, 0.13428421622419326, 0.18657585618654057, - 0.4731447672457142, 0.22210098868198566, 0.1293552802814323, 0.16677654047470442, 0.10598527488024495, - 0.5037391824935336, 0.26773091258332604, 0.28749030608296744, 0.06552387352733424, 0.1686521389135813, - 0.2797828725540357, 0.5520941633571844, 0.3368364942899632, 0.17692983099312676, 0.0913222794764563, - 0.45814494685522145, 0.030332919344419132, 0.20520838019485796, 0.2559485269649124, 0.23789066249472912, - 0.012060730261152286, 0.17811980218425622, 0.1221168922189809, 0.33912130182755545, 0.3259082596852003, - 0.5658401231608231, 0.12622075068641364, 0.2304687132412453, 0.38265736897492103, 0.253097676626443, - 0.04955318780761497, 0.1832531735932836, 0.3329628901387006, 0.576965954532036, 0.015553444336910534, - 0.11573108395615721, 0.01671758052038207, 0.00537592961209345, 0.35222573632788295, 0.3142377608439494, - 0.1846461574499399, 0.086232914478569, 0.2984000947181325, 0.07786185234345128, 0.08053307564154909, - 0.3859309424385098, 0.16037116147737862, 0.24910320338556646, 0.10912741798163937, 0.5410830332256167, - 0.039665443217971864, 0.40470025235746965, 0.0796856834137106, 0.33288981803363543, 0.08042967107234586, - 0.1945845515482021, 0.19741801322140387, 0.48289770632578444, 0.6529306084152896, 0.047203128096185785, - 0.026426265390192633, 0.033412970628484244, 0.2785155033317754, 0.08692471946541563, 0.18359879586092956, - 0.10877335408731838, 0.01383081499121436, 0.5148673310069395, 0.1261373895876502, 0.14378402571178564, - 0.06798529354783371, 0.19655059910483388, 0.12723306842238583, 0.11711816599383362, 0.23530087824239435, - 0.11879102273901439, 0.262996861036375, 0.2769512222264893, 0.1793734811516088, 0.5806831810150952, - 0.24452208643298784, 0.5061934908174818, 0.22554323453782446, 0.37259143787284155, 0.08588809355677735, - 0.20266302690854573, 0.18232695624126632, 0.17020059194719808, 0.1880949038213946, 0.27562468099637627, - 0.1877226208895188, 0.1861874499826437, 0.08268037678914307, 0.16992454145830882, 0.041595695550812495, - 0.08214779618929396, 0.06661827262723818, 0.32907836581403754, -0.1948553980142488, 0.20717309562560338, - 0.06771985087388967, 0.012622150080718594, 0.24802720037842524, 0.12657681206905794, 0.17638849333190015, - 0.16016574277716666, 0.0164530931145171, -0.24400533290942034, 0.12654796747003014, 0.24160890586569028, - 0.17831467540530696, 0.03229984280670719, 0.4388025594714597, 0.0623451048613306, 0.29581693428704386, - 0.12073338200556197, 0.2268228634982412, 0.18794739017902512, 0.10010202297024756, 0.029423834274466827, - 0.13065412941859297, 0.2797165556684654, 0.38138222022581986, 0.05674271418014008, 0.5366971697557394, - 0.28204334220863414, 0.24371499548508374, 0.17317615337400233, 0.1185563561454119, 0.3318270347431403, - 0.20370232936719912, 0.1768139633003, 0.21117370933741836, 0.02028840466307933, 0.3579029119235515, - 0.05992240976397002, 0.1867467106623245, 0.3608230622898905, 0.3241090666404035, 0.2800077797488988, - 0.552002074487973, 0.25347210615536736, 0.49101328778775777, 0.2028394757488915, 0.43647755312527414, - 0.23228274066289886, 0.1358739735551913, 0.08500882288829267, 0.09475003012700133, 0.09255416730092243, - 0.2445923645165749, 0.18950181576852396, 0.5919039912069031, 0.3263778385294869, 0.050437592382917, - 0.31301339463411176, 0.059521334159185126, 0.17178354886093525, 0.5838626304907528, 0.48338373151075276, - 0.020422931478718206, 0.1601440300043022, 0.23026273837293104, 0.002508631996576333, 0.5153056946536534, - 0.3280274568665767, 0.16828020392777018, 0.04028463528965121, 0.3248831917880207, 0.42809294553224553, - 0.22642755940745707, 0.22335431180238646, 0.5354315619108327, 0.11381233668760249, 0.12211383424329632, - 0.014837480192256053, 0.20781796834147162, 0.302378450782794, 0.31212492949709647, -0.45492132687161874, - 0.11918309456724577, 0.22805335476539465, 0.08415121659957722, 0.2721794690362384, 0.039929714137345085, - 0.6479578124842447, 0.07964130026066031, 0.12150406546595871, -0.030861258916578656, 0.25008920052470696, - 0.277509220495071, 0.03461460196323353, 0.026579923674596568, 0.11790998497843058, 0.19751116996563545, - 0.1766861653975801, 0.18161566087293393, 0.4979329820828589, 0.05717618881149636, 0.16525536939366345, - 0.16949322560057145, 0.19461855272470596, 0.12086560315929946, 0.31231373069130486, 0.4642824852485732, - 0.17031138770731538, 0.36339481314096683, 0.16369503299938515, 0.10707097613159931, 0.012008098167362972, - 0.21760666192877057, 0.19665390353219792, 0.06661827262723818, 0.06661827262723818, 0.24277533307314816, - 0.11360301075684102, 0.2875247344152899, 0.0936667002799469, 0.2862307440203692, 0.3064817951730027, - 0.08769824018127845, 0.17301728260749133, 0.30100838860045526, 0.5003761861351627, 0.1733458720468726, - 0.24917876947705686, 0.1534323884307569, 0.2887922829142242, 0.03925782970155535, 0.2897945580795755, - 0.47108152981346796, 0.1639212158229269, 0.2694188089598748, 0.052305411618472734, 0.41065105455035755, - 0.27206062976962997, 0.48994247666437896, 0.11982905826989133, 0.19747557484132247, 0.2874847471880233, - 0.2204111669460789, 0.21070811191612368, 0.5371058358333208, 0.5123518449745267, 0.0913222794764563, - 0.22435998033808716, 0.23809272477880294, 0.047960078476032016, 0.23113069169860004, 0.18190012040489256, - 0.334202535752887, 0.2769512222264893, 0.14836053392722057, 0.19313047874400555, 0.178460425111383, - 0.12292517051941036, 0.07105163022417389, 0.31947353764327296, 0.19210670602294153, 0.6434510807905409, - 0.31898399973563957, 0.23516105471369492, 0.025560793021689166, 0.024730396831430086, 0.384874305161837, - 0.07451988771713758, 0.08206898159073751, 0.2045099375446829, 0.0911051105974991, 0.22576851631546666, - 0.21239626607835446, 0.3407007442815273, 0.22508688316269337, 0.2839059545441277, 0.46786686869643507, - 0.5188199444903439, 0.3010353512894915, 0.22846849900570038, 0.22013185377538888, 0.11411331330584958, - 0.325471085421967, 0.6071944757718765, 0.13753240062981034, 0.051075112727198016, 0.1617773473932044, - 0.28678403047700013, 0.330820896268836, 0.017154471060112118, 0.22351866935661133, 0.011179587192187711, - 0.18453119384902816, 0.184291185032722, 0.09034938488147373, 0.48344272468052524, 0.20227321835936926, - 0.2220998412620111, 0.18827005385568132, 0.47355543510366427, 0.039643659675381415, 0.33649406739121984, - 0.5094821128295061, 0.5092668068691442, 0.4590944876263503, 0.19605398433050142, 0.3435241909771736, - 0.36222052056615395, 0.20544688922776505, 0.02229434813023574, 0.22321827472452427, 0.3448635339170986, - 0.6350466139895135, 0, 0.29876409343654686, 0.12209561006018375, 0.2288985747562048, 0.32548960241256286, - 0.21169801114531098, 0.45834505628898015, 0.07448310613366306, 0.019781751381994558, 0.26715376039029304, - 0.3398003718753174, 0.1692153167951148, 0.19966758327541956, 0.09648163948906077, 0.08915944689677374, - 0.3092097038936911, 0.16373442720060882, 0.15435511520517448, 0.011037073908938938, 0.101298029233125, - 0.18352374141670474, 0.14121870999030287, 0.1170725309407769, 0.1960539843305021, 0.2666090404853437, - 0.06661827262723818, 0.13463683753282243, 0.2164913637167315, 0.17050627531974044, 0.12388412242787353, - 0.4038275407751069, 0.21903977181150053, 0.7884820535237962, 0.1689552831593163, -0.5406739719038169, - 0.517680621955043, 0.21887308472545872, 0.2226223352358122, 0.21223341318545863, 0.20915363171944581, - 0.35622121005608304, 0.4434116991752312, 0.13298615358143984, 0.23104872294849116, -0.546781045534145, - 0.08951617130805557, 0.9106235061024058, 0.38596982028560495, 0.12740922349225195, 0.23534347572323247, - 0.16451742014186022, 0.20591176786188867, 0.06661827262723818, 0.09212287088711794, 0.03419742093851496, - 0.11255576305207825, 0.06661827262723818, 0.18559327778838766, 0.19549812527367894, 0.22821619216432404, - 0.2931307447026484, 0.35946042613430496, 0.13654915380659466, 0.10439336510631894, 0.332927252725203, - 0.17392799551187735, 0.3108873768839677, 0.5352079309751715, 0.10686814031248455, 0.19238885143320486, - 0.4107962790349954, 0.30695554241397655, 0.0639902890833064, 0.041347224547787435, 0.5409530624925636, - 0.44965016708976635, 0.15164671506287178, 0.2445191135159863, 0.2969053501946878, 0.17186042908593832, - 0.13626643326582785, 0.10586006829324364, 0.3498363460559387, 0.23841298418253767, 0.27699976520271563, - 0.016267723268398336, 0.11811537979673989, 0.5388829588628656, -0.15084015642969636, 0.5714221483824247, - 0.23424671976508, 0.0326006667864024, 0.11060004642814372, 0.20872549410598362, 0.38302672974164553, - 0.13110504760607666, 0.04147444847337074, 0.5255568463311427, 0.1249860762264151, 0.06278865915115787, - 0.18904141533617555, 0.21951023434820788, 0.3245094645159243, 0.07930798532856999, 0.2891174275982299, - 0.35714239665393804, 0.16688923961302887, 0.1730624378519655, 0.15104916044838174, 0.5317608292792227, - 0.3632750008553766, 0.10535097059884638, 0.26374284367135997, 0.06661827262723818, 0.1868596321034853, - 0.010546572743355208, 0.14146402774280378, 0.3264673955234173, 0.750990944891226, 0.05956253838155777, - 0.28943971684729813, 0.317317373950047, 0.13262114072413256, 0.20841862488911608, 0.1409527960628196, - 0.34735314949469903, 0.3352346975235444, 0.0918753639987566, 0.017040218226104475, 0.006488520080513687, - 0.32864081755917185, 0.04870982967341354, 0.0327273174257207, 0.25070737542415766, 0.2813481368014546, - 0.19283797481393924, 0.5034636943018995, 0.17059715291434668, 0.552002074487973, 0.28637067175617004, - 0.32548960241256286, 0.5579297553935814, 0.06661827262723818, 0.4591801886641951, 0.17212097510894958, - 0.4750604597125098, 0.18953269750532886, 0.25561335554721704, 0.16054604006013815, 0.2898899346350312, - 0.1367484234154068, 0.1633006103550215, 0.6011594938992906, 0.24036347409220538, 0.1911825569449554, - 0.20215214991054023, 0.17522781649040106, 0.2463681193415004, 0.05034381218411034, 0.10257859699176208, - 0.054036264483176194, 0.5339018577441619, 0.20845652590204933, 0.11465932531188308, 0.25406891137919635, - 0.5155284673805427, 0.44408261364216106, 0.08279774829279632, 0.015706570341707225, 0.08161981311363531, - 0.10771846511395798, 0.13297026618772095, 0.1827824822263693, 0.3446915508895786, 0.06661827262723818, - 0.2482112405114247, 0.10829640093445526, 0.05850918283525665, 0.09959655535065848, 0.11759464324357037, - 0.8604575206897292, 0.019988485610570355, 0.2042134529502567, 0.3020007914086744, 0.07581321062175303, - 0.07953536767706278, 0.5058487896845683, 0.22699144636916044, 0.09954638207666801, 0.17246991441034615, - 0.5036612864652948, 0.6220467515970329, 0.1222798763432764, 0.2611245316736968, 0.025405439059464713, - 0.0319735768318185, 0.09600267811842259, 0.05822115229082933, 0.3258812686750228, 0.18584577684339249, - 0.0377714405202859, 0.06661827262723818, 0.3430154447227741, 0.23941039993412072, 0.14955516578998493, - 0.06661827262723818, 0.09174359543470166, 0.2753732680546419, 0.1401865297384516, 0.478848801814457, - 0.08811299275536895, 0.2744570197510982, 0.16049654923342832, 0.32491760682316134, 0.10824974150637169, - 0.26122716403564183, 0.6478356546066387, 0.10201085621175193, 0.06661827262723889, 0.31573473351081954, - 0.020566197115515793, 0.08394432128915368, 0.3163593749231754, 0.01653280710711334, 0.12006172717277871, - 0.18085823968843703, 0.5887888300510138, 0.0925632719240941, 0.10015565719375599, 0.23481761116225683, - 0.18092093645592114, 0.09140417871411328, 0.1484907624413346, 0.3819406879889456, 0.27316443335236745, - 0.03763653229147525, 0.22833362951159616, 0.10965174870431092, 0.358654995109599, 0.07735259559980494, - 0.257045902135019, 0.19467530048066986, 0.5393142783264021, 0.021516656823610383, 0, 0.16833656893321153, - 0.5151239885732051, 0.16280098898109663, 0.12970931056904073, 0.2025482825162721, 0.17987450866494328, - 0.2970869741337021, 0.33820981816786383, 0.4401254289525189, 0.23278271339333315, 0.18974931200267914, - 0.33672857824938607, 0.16592023696069577, 0.522636440850321, 0.18098420530338227, 0.044237135600569306, - 0.331768399261505, 0.0968261604870971, 0.18007813387933683, 0.7700635186451554, 0.34166912488872186, - 0.26804200710897297, 0.33038474200630397, 0.17906771956365253, 0.15812662146239834, 0.19646428251747725, - 0.32559808796433154, 0.32669006492583325, 0.4080553270053077, 0.24068891674867765, 0.11919237292536805, - 0.09193253874915877, 0.39608493832502123, 0.005410326446568852, 0.18898035345918623, 0.3653592267134383, - 0.3511931709287902, 0.23762649522237375, 0.2984473347347724, 0.38879607563194685, 0.2370969937453674, - 0.12001325012491311, 0.21267625905209944, 0.671979976322073, 0.12238280205857606, 0.3644659664085082, - 0.19198742522119555, 0.13233854546695487, 0.1854550073674235, 0.022950517780605834, 0.6514083558517849, - 0.3403878470509322, 0.11715187133525151, 0.14181358859139917, 0.1908712814489416, 0.2192248578764043, - 0.2805185517147777, 0.3110560228023429, 0.07710518720073667, 0.12606070196858662, 0.21225588188549108, - 0.20016776124493288, 0.5261264294890965, 0.12867070880162904, 0.07162543051590309, 0.20998510522708108, - 0.21895714222327692, 0.18485472518413296, 0.5187412186256908, 0.15772265946914193, 0.28732255037703447, - 0.03775870677450601, 0.1813332608223794, 0.1556092031559926, 0.12350359134600573, 0.028411120331326638, - 0.11401463259005264, 0.18823358172925755, 0.14440498480263714, 0.13817757455476062, 0.2275527090956003, - 0.10504509212220765, 0.30234772061660786, 0.29428640750862445, 0.0398512086633969, 0.1218567718828452, - 0.2748109646859377, 0.3540403260264998, 0.09088169484023824, 0.2032646217991263, 0.7668319918323792, - 0.014693062958730166, 0.3313954161244189, 0.20988035616394007, 0.04628740458535673, 0.2503158592943382, - 0.06816878421459133, 0.011925543085220862, 0.25907294512106427, 0.2769512222264893, 0.347882811870211, - 0.5162841938224871, 0.22327164126412027, 0.24093892376547266, 0.3227786389902261, 0.47136869046377333, - 0.05357803647189444, 0.09876584337005032, 0.193789593556425, 0.167635896768093, 0.19739254225863245, - 0.16379133888089187, 0.30537130005664354, 0.303202349879998, 0.3650028650310353, 0.014800019919534323, - 0.2203141725501897, 0.1697898078963408, 0.2570817457385442, 0.5087527513904503, 0.12089204945129917, - 0.3574553648745698, 0.23234638222134818, 0.18844383565131195, 0.050454331642470956, 0.5034636943019003, - 0.06661827262723818, 0.34097013941979487, 0.5225693696379939, 0.057154672195708384, 0.08036014115125031, - 0.29298124184534513, 0.5240655992406996, 0.21147458875579017, 0.014640549392944194, 0.24615023087056706, - 0.0735715122418984, 0.04524200332763416, 0.010443046000925013, 0.6369791227481778, 0.48232725492537526, - 0.06661827262723818, 0.060933047030062186, 0.22604269847182726, 0.12272885831115539, 0.005818203889879939, - 0.1176308832199798, 0.06750539049705002, 0.24866453708629147, 0.06426745134139644, 0.2261217466422381, - 0.062482121097230336, 0.12848714325368635, 0.255569656550585, 0.4991159967960277, 0.33074855971766826, - 0.20410013933085222, 0.15520118227493657, 0.14345422982377834, 0.14500673067376038, 0.27906656102962696, - 0.32813931161133625, 0.08818453278134347, 0.2499657394241084, 0.0289433839220131, 0.14891843521244724, - 0.18452706831085075, 0.05194630244755791, 0.30585480417406874, 0.1645961294114845, 0.034132511685388, - 0.0792426946549367, 0.10497846220335308, 0.18880643202674788, 0.2306830333536516, 0.07735219488576349, - 0.03819345465014954, 0.19965397046709168, 0.1942147068257899, 0.2824206583652884, 0.4907938200390238, - 0.09836986425712559, 0.090176002562977, 0.06759654197640771, 0.23266052922580077, 0.41849730650225214, - 0.2899730660301063, 0.17398969020657212, 0.3216119615258579, 0.007973441722010354, 0.5042754586047195, - 0.07982947816995159, 0.03084926897994927, 0.22011260970477894, 0.20179587210023267, 0.1926549190970561, - 0.21223341318545794, 0.20933583984551385, 0.005869546003270964, 0.16012297290200989, 0.08447940825104555, - 0.19941006832826993, 0.6245038085180161, 0.20084691673944366, 0.17930584897834004, 0.21474917626047574, - 0.36959465149466897, 0.5432969883629769, 0.01167735040910851, 0.6322380078631801, 0.40429205632352627, - 0.30886745639868285, 0.18454920386101123, 0.11776608240379462, 0.4144428072496138, 0.5712692572098186, - 0.16840773019570796, 0.018708936665289475, 0.2771549228031658, 0.19114389615988236, 0.3518707034488372, - 0.21427536778889514, 0.09032149312859589, 0.299690907505201, 0.26671208181900086, 0.3068631630229627, - 0.1807806752100657, 0.510576495709189, 0.10868505248092827, 0.27603503354804865, 0.21181973805797055, - 0.21617989146718275, 0.32009511651058514, 0.2968275329167851, 0.2323250135146184, 0.14510492912856413, - 0.20476745882647568, 0.25431983754084964, 0.28468214723546315, 0.02148300297347585, 0.1266806203916092, - 0.0440787779140748, 0.5407043181124637, 0.659202515364623, 0.519302284798304, 0.09176380179642359, - 0.23766465998346942, 0.22043197134998904, 0.15554355565473707, 0.414226554245468, 0.12825852980794777, - 0.5889399726665766, 0.14368574524087832, 0.31391148376605876, 0.32141875719288027, 0.09315679803304792, - 0.032763931809325755, 0.20931508545268585, 0.3316515766541162, 0.09477726475468846, 0.07063486211695358, - 0.199776800602051, 0.13907484073870804, 0.11775802424544057, 0.3883507949954266, 0.16643081707300886, - 0.08569533340221006, 0.4568038755207972, 0.094048188954928, 0.22104112689028013, 0.17912581634649094, - 0.0740632172229028, 0.29728011693279915, 0.06260355814210844, 0.326096584205304, 0.09436380621438789, - 0.1464471502674521, 0.1834698764507617, 0.1645577703251682, 0.1669787437944535, 0.1313361284788698, - 0.5413694526994385, 0.29308684533227614, 0.08074388243938047, 0.5422944629780138, 0.26104838530202623, - 0.11359359468361394, 0.36396506439740856, 0.007308884342679951, 0.039939317948299774, 0.21603529161497936, - 0.0326330901645661, 0.17326105311545478, 0.1478201548375484, 0.5020335531554653, 0.06482567510381755, - 0.5304493402973158, 0.11941421919717399, 0.1882699792704034, 0.3621864471387498, 0.11897426970077364, - 0.22023059828152625, 0.10563148401957786, 0.15493030454476908, 0.17914514179406327, 0.05389636362109105, - 0.18474977386341576, 0.18757202272744464, 0.09115815409841158, 0.491931074567117, 0.18505287935079656, - 0.07020660722569613, 0.09645553058369055, 0.018002054532068486, 0.22641823149334017, 0.47176181924497956, - 0.030676153856665445, 0.26868522463976735, 0.14590417413528758, 0.06103664272533083, 0.11036702227246255, - 0.048564794034232764, 0.1275044738676814, 0.16994550711721934, 0.09418346851211944, 0.3228071867166702, - 0.04833857929542943, 0.05343226783902553, 0.2058222659820298, 0.15428929783950185, 0.19952427864515823, - 0.5752694358642129, 0.2704653990518606, 0.16493572211129115, 0.4917804277486857, 0.3678501587874972, - 0.7616189336969748, 0.2733172963093967, 0.23662702559715226, 0.08160495170313191, 0.06661827262723818, - 0.535219116827879, 0.15020587545932115, 0.09311250742710363, 0.1209497149760568, 0.04862282400339482, - 0.0993997702377537, 0.5205408379000704, 0.259174051766136, 0.5536148636582032, 0.1261038702105426, - 0.08519385121958346, 0.06661827262723818, 0.001992199848291944, 0.01972946931517555, 0.295792434944667, - 0.13118969992191926, 0.011246385961654056, 0.1621429630426166, 0.22388751505627374, 0.35981536202944403, - 0.01700660625656803, 0.10532448474805742, 0.2711993554959172, 0.14261589743074604, 0.18477891146289144, - 0.24811664063757607, 0.23861587508980506, 0.22174724611550164, 0.09804808644402994, 0.11275767632439224, - 0.5809021612214471, 0.0630304954606904, 0.2142068560146218, 0.22754817939807404, 0.1995173309302151, - 0.07750708941109735, 0.24341499846379153, 0.2229546386678538, 0.19816721310529317, 0.15673251917328226, - 0.0023898866139217176, 0.23146248803880334, 0.37268425792992416, 0.005798144160036661, 0.1355064964456882, - 0.12920861095880296, 0.22814552348039507, 0.3410459333844674, 0.2540601268356025, 0.3593434444748777, - 0.19439409526881762, 0.07032119814598536, 0.3389786935775337, 0.22959446430845162, 0.5750555279872857, - 0.08369113969307171, 0.30063702575806456, 0.06351942306043724, 0.3013724788801504, 0.15717755944621764, - 0.12602752437465398, 0, 0.22746804127079226, 0.14308911004715055, 0.40424378476100137, 0.07856482571234966, - 0.1624630036183531, 0.050438843772280965, 0.18234004728353712, 0.006277031081442226, 0.13186670057707678, - 0.33257686234724076, 0.2587507000445507, 0.5073450704206214, 0.7153042651380693, 0.19668108008371396, - 0.30110822347482485, 0.2858821183612821, 0.28527351484051217, 0.295969845234815, 0.0044142623431218395, - 0.15429593123736998, 0.24219691366028617, 0.18791372827876854, 0.08463280231561086, 0.12879895569736377, - 0.059545850782440846, 0.39980407423164244, 0.21191664221635859, 0.20330686288509192, 0.3536132560404401, - 0.33321655932644806, 0.012651249574638966, 0.5583774062493019, 0.08189571006401024, 0.19000377207403357, - 0.009440374870863756, 0.5060782009290586, 0.11590357092397877, 0.32899483244148137, 0.2473345548567639, 0, - 0.46712187382371606, 0.21473807723792657, 0.292887838967766, 0.12798691032297127, 0.08721950338601801, - 0.2769512222264893, 0.3525681571839897, 0.2004282807911634, 0.5946332928694275, 0.09773489201019435, - 0.14802126161278778, 0.14906287101760765, 0.373362008101821, 0.06000381558465504, 0.31132817680370006, - 0.2710542717283219, 0.6303757055518262, 0.1987825656900662, 0.40549627433903, 0.3921707089503618, 0.2946831476799873, - 0.4432886553459483, 0.33273077185453814, 0.2987805879310368, 0.15947573457974912, 0.22826465943645152, - 0.040173840969069, 0.20415073786259988, 0.15343400111463332, 0.0669333786680682, 0.03175924653462087, - 0.1870962458372088, 0.096069067997696, 0.19857921304368606, 0.3718345024992911, 0.0760570623617435, - 0.18696973845604323, 0.1243578341107344, 0.13973717469512942, 0.12990412862690176, 0.061701347731712715, - 0.30981191150897514, 0.06661827262723818, 0.3277662942527494, 0.060407635281161214, 0.19740183728863003, - 0.3066790887355957, 0.5691173048455188, 0.19889842207440428, 0.04989416960921745, 0.1777910068216151, - 0.24912869668859786, 0.17055645323614532, 0.44547099217921093, 0.22663901327689648, 0.30998731475506336, - 0.18161885115825527, 0.36959767302672336, 0.2877972277237427, 0.05982212012464037, 0.09479039942701023, - 0.19774202958976306, 0.09160365753655539, 0.31102934357655926, 0.11515665281331167, 0.27606237149257185, - 0.14273954276810455, 0.18710081670431336, 0.3575546832172561, 0.0691127414849381, 0.19102900600722417, - 0.23531654634289376, 0.18432289097261378, 0.20305394498880058, 0.21612722797546782, 0.20586480262242648, - 0.013916138471062616, 0.36416049371495357, 0.32861259720926567, 0.15791434019343445, 0.5409952694939233, - 0.20718999524102044, 0.24364831613063212, 0.010018314970775464, 0.28051615889514003, 0.1611209070880697, - 0.2799007886426988, 0.13412147039053174, 0.09907706468379454, 0.43315936984516784, 0.2251155862435049, - 0.2807748529241026, 0.04324710871125288, 0.5640062975390624, 0.2090006129752819, 0.07276228050828068, - 0.36996936803942954, 0.7327137194116965, 0.1727644870581369, 0.1882044423964357, 0.5265343006727178, - 0.27984044918499124, 0.3524866603975198, 0.06991372412676897, 0.25886619752335127, 0.16673137535811336, - 0.22918278243743714, 0.1602643980737046, 0.2732704117542034, 0.14501366319090167, 0.34186872256987927, - 0.0992524222387124, 0.22283871000584418, 0.14589976355995757, 0.17613823654383012, 0.3913647437672383, - 0.17987450866494328, 0.18249659718416122, 0.241249325872337, 0.1302652324590568, 0.07967303966572213, - 0.3544309289097566, 0.11768587888823749, 0.3148386490172522, 0.13679303192550002, 0.526379849823172, - 0.5374801761777263, 0.1344784241696561, 0.20697823013328667, 0.19018902549834363, 0.23111650857662547, - 0.252015437590715, 0.5164337273863499, 0.011306368361935947, 0.09698968482760478, 0.15816166072524632, - 0.25149276508391327, 0.11082380558283389, 0.09024054342769353, 0.30996730647084436, 0.15381853898078562, - 0.14526814657930756, 0.05886186304103223, 0.15656029439284572, 0.06661827262723818, 0.25133005350438664, - 0.2031074866349929, 0.4422892000897878, 0.24566463331780614, 0.21997168355889118, 0.14024837318956407, - 0.42570520681551743, 0.2620009700653027, 0.04292070312002209, 0.2653615824447391, 0.17113974452774208, - 0.35888439767030456, 0.37539869238306683, 0.10333679812059159, 0.13260147921301282, 0.27486033852168035, - 0.2011317422250162, 0.6311432369314046, 0.06719440038108179, 0.07407851876969636, 0.19168205092526774, - 0.018079892441164005, 0.06975957442818409, 0.1405450038608585, 0.13030241186580635, 0.22750621510216004, - 0.11784187733018428, 0.15890165412896606, 0.6313778160891599, 0.5633233018269022, 0.1710425157996987, - 0.04637450339920569, 0.04514583379240531, 0.07002764428592277, 0.3356169282753545, 0.08500672791988977, - 0.013567546928448913, 0.6233179975168551, 0.06661827262723889, 0.17082122900026978, 0.10397375710053476, - 0.18011760005399358, 0.009236148382942662, 0.0990182965271146, 0.4631750551338855, 0.4764352516589985, - 0.06219414887735283, 0.17534376684112668, 0.2276098034733715, 0.005818203889879939, 0.34444001616495284, - 0.2373470885175988, 0.23939970045254713, 0.164362886620504, 0.13404684365001693, 0.5695106784861568, - 0.08176876067565984, 0.2926977604895727, 0.06661827262723818, 0.45409733205824787, 0.17739750362315976, - 0.07179359482613909, 0.1806168963940051, 0.2976534107753075, 0.15458261832418466, 0.22841284204041587, - 0.5081505547307588, 0.06338080614047475, 0.15338543693485404, 0.21464805669188114, 0.16221486343198652, - 0.37103317087689375, 0.20365490032523648, 0.3087063865507807, 0.029548648137800206, 0.33051788469335985, - 0.24516276486404678, 0.039366832584959675, 0.2156001597394478, 0.038460670682351455, 0.28222482505479646, - 0.17455460051966248, 0.20172289115846634, 0.1498299408636418, 0.3527302139630404, 0.21918628435847415, - 0.23107385085145912, 0.06303196148652163, 0.11125732399459004, 0.12990873181991985, 0.49838899604262216, - 0.3679922605024768, 0.25897314782939723, 0.44471671327292517, 0.10202775585757512, 0.2989895428639013, - 0.2480450647478586, 0.27231650605089536, 0.1313361284788698, 0.02011336046360313, 0.22304510204838038, - 0.03540914483376088, 0.5231042150256093, 0.31554175460236056, 0.13922066013541012, 0.14817185840672972, - 0.1560606572377755, 0.259673856139155, 0.10348825475398181, 0.15952292975966437, 0.18261379271600886, - 0.12188269475630309, 0.6787819941521887, 0.029166033740786065, 0.15664513933081056, 0.0239814540390554, - 0.2374024334495723, 0.2504630054206458, 0.12249974315142498, 0.007664595566564283, 0.13816723821869142, - 0.4008271823621992, -0.15307550415675894, 0.21215558432067935, 0.06597178008085165, 0.13256477437538697, - 0.025770067173458904, 0.027013521131767332, 0.520520373329, 0.050334852385858476, 0.14618653008795762, - 0.16341824945207256, 0.1942986544580611, 0.2596967721540337, 0.3757465921862818, 0.09947782614852901, - 0.13413504919650532, 0.19830001172440218, 0.06776688237940187, -0.03990372153849057, 0.11032554910076948, - 0.17987450866494328, 0.6146250183454568, 0.0913222794764556, 0.10099810082955021, 0.943412145041061, - 0.18868897345465363, 0.18682795921966708, 0.08351224390779735, 0.4196070853508182, 0.0222402087802093, - 0.552002074487973, 0.48926470239661485, 0.17521013141560243, 0.18530769754285026, 0.06661827262723818, - 0.1309505153400568, 0.20581366439264318, 0.13356147542620345, 0.059645963621609004, 0.06561270523446247, - 0.36250077335165143, 0.41746084581979054, 0.22443012114149824, 0.2769512222264893, 0.19890221731679225, - 0.2161998113038403, 0.14323015938002667, 0.18436699644189916, 0.32267236859717663, 0.12834019829149002, - 0.3549374298683295, 0.5168890724458739, 0.0967101063110288, 0.10343847551461127, 0.41516033642117617, - 0.5885004674464539, 0.12426791490743185, 0.2866230620278081, 0.004105459709142587, 0.17198347029667727, - 0.1776017763490454, 0.0615922288025512, 0.337733480623602, 0.1866378579716971, 0.24049129532297334, - 0.18038217383184352, 0.32548960241256286, 0.2112587245546883, 0.3326773037457461, 0.13452017692550597, - 0.3353239776238634, 0.399981180291652, 0.032106266939163776, 0.5084292708116014, 0.6765753597837978, - 0.09017897222274822, 0.22395247333610432, 0.1972492634548467, 0.5717656949111672, 0.04889072629803384, - 0.19920832519222578, 0.2079651543389374, 0.08700298374453731, 0.4671514829109282, 0.11379929155421445, - 0.5821834185883954, 0.2399411402281624, 0.27121300808606263, 0.3249361002210172, 0.18325275069663702, - 0.1567459056175789, 0.19435375286390377, 0.19601736547458914, 0.12810725907338003, 0.34177348757892245, - 0.06949331534027116, 0.10254252300255802, 0.16846182138931115, 0.18000878188347844, 0.08731813344499995, - 0.6231264454917665, 0.1313361284788698, 0.11118390365771814, 0.09846036502097555, 0.2659241138362029, 0, - 0.18927942170800793, 0.08247534078776375, 0.6516096343835717, 0.42388319788073947, 0.11515665281331167, - 0.03820565488071485, 0.1313361284788698, 0.9179460812175053, 0.27431320779976154, 0.3658278503482176, - 0.12021717701517175, 0.12316301261001515, 0.04347167340038681, 0.17927754473971133, 0.13744443026304484, - 0.2613173783094798, 0.33799253529164003, 0.17822077022700597, 0.1915581333418286, 0.05662226957199888, - 0.1941131528969428, 0.10216191788417979, 0.18658291755515571, 0.3991850644848916, 0.23549630437200816, - 0.6765678264820726, 0.2807468365518691, 0.14555731516570283, 0.002330956156274935, 0.13282939866599755, - 0.1593866198507326, 0.2271845860179114, 0.35026729433320825, 0.05838110252475311, 0.15658629087284603, - 0.22841284204041656, 0.1944994520112065, 0.03400684574063044, 0.46587206010289667, 0.479722554775667, - 0.11447833585379397, 0.5362946512093085, 0.23894789924953078, 0.03239835029078189, 0.2646132122699973, - 0.3151796238375286, 0.061810785663141965, 0.13407961891600462, 0.14946785723620254, 0.06661827262723818, - 0.18897828063039396, 0.3365606312922364, 0.21378429317853356, 0.28716835123190754, 0.47443172812131157, - 0.18732330754245352, 0.015595325496087881, 0.4080397738393449, 0.3221490368792432, 0.3292823838506436, - 0.1895500189353525, 0.09837218483545128, 0.16547770537702625, 0.048755027729323136, 0.15660237725781495, - 0.1579765117657696, 0.048709337333646296, 0.4886138162306741, 0.3227327941586331, 0.21103647295273742, - 0.09902445669217184, 0.17953030265401063, 0.07245679013177489, 0.235744754028431, 0.24790328381618526, - 0.10152917824618934, 0.17282822083348112, 0.11715472880144978, 0.21478512830865437, 0.004288049926899284, - 0.3357233017337985, 0.7501447916463128, 0.21333741667625541, 0.335650240579526, 0.2388777386997968, - 0.28129095212643024, 0.16766197266521243, 0.0709727694934239, 0.7192481216879895, 0.39020750507479535, - 0.15588002555556543, 0.1764902471088955, 0.04084270227785766, 0.16131633067390735, 0.3773397383333508, - 0.2748642905361702, 0.33228165505196594, 0.3223609441632884, 0.12327893159411693, 0.019769912654818433, - 0.14668250815542977, 0.23549310196182588, 0.23237709439240398, 0.07400144025290355, 0, 0.5190780734015165, - 0.19527438875051523, 0.11002801918147131, 0.34629973720727225, 0.13251391514339947, 0.1313361284788698, - 0.04256846506841672, 0.05967622612305759, 0.12750240401522323, 0.17987450866494328, 0.5547375792082422, - 0.10647659867289573, 0.04934951344030913, 0.3391923549599123, 0.08120651915883079, 0.022245787391247343, - 0.2942334251185183, 0.2848565410445989, 0.3403347006371923, 0.06802785458366543, 0.15072617585579812, - 0.015391865116336384, 0.1012199011303372, 0.23241568654737768, 0.40414553615220644, 0.3317614072246599, - 0.5349786132186717, 0.33128426100641023, 0.07253741925538294, 0.14070207619555172, 0.04851404977222417, - 0.11874088112505146, 0.20890183293851997, 0.5424289489657201, 0.3275899206739782, 0.03000206159135797, - 0.31739923967389433, 0.18551962036495506, 0.05628952056444687, 0.16744302934316163, 0.552002074487973, - 0.24352482091406588, -0.3717163968172232, 0.11088483862708592, 0.0022167671019041046, 0.11367859534351014, - 0.5678625738200177, 0.1280492981094669, 0.3952030355743694, 0.21977662648895313, 0.12945921298823734, - 0.2273511831880821, 0.6483280872674151, 0.5552561647357467, 0.5385484492754905, 0.11584347623292142, - 0.2552881308762014, 0.31012483189452705, 0.18540051826911466, 0.29083766034477304, 0.27565562865245163, - 0.08718039344726684, 0, 0.16253527979625026, 0.06519528701321237, 0.35084606939461177, 0.08868669470030535, - 0.26150785853066405, 0.15141525070034828, 0.19605398433050142, 0.10233229394291558, 0.07250214218675848, - 0.3306344256814611, 0.26141303479549244, 0.18543378919239953, 0.19069410075005228, 0.2769512222264893, - 0.0929296777355433, 0.06427810788862036, 0.12733679731405775, 0.1842095872875635, 0.16250460783339535, - 0.4813849625528505, 0.17711507732156198, 0.2650566074330831, 0.10053148572027494, 0.06661827262723818, - 0.549459857178965, 0.30566866647827656, 0.17821671944269304, 0.1313361284788698, 0.15699031186486118, - 0.2961227197226233, 0.283498164221862, 0.11515665281331167, 0.4765344580610469, 0.29150622267312604, - 0.3416265101232563, 0.19090219584865326, 0.40151145933306287, 0.051502774725513546, 0.558024751418075, - 0.11444547797143291, 0.18921318491526465, -0.4758149946940725, 0.28973128848356383, 0.31515143785805966, - 0.26752926839276453, 0.17467675223461995, 0.20262975215780413, 0.17173692971253848, 0.2847181327123211, - 0.39149305836225384, 0.19215313126940117, 0.25545351772605596, 0.5314911927070662, 0.12151132115169545, - 0.25599005477953024, 0.10197859882882777, 0.08577987724135734, 0.05344949588817164, 0.43874588526086883, - 0.13578736421789223, 0.15080383144635107, 0.07922101677745062, 0.2170632725991072, 0.2132912468267135, - 0.21664623221282134, 0.17987450866494328, 0.3927998797216659, 0.026765586019050186, 0.07353390518035535, - 0.40454376780884854, 0.22383209580623858, 0.2617497533267741, 0.21998852870018212, 0.1785127158170413, - 0.14299853037338653, 0.156355118125841, 0.20111357451317846, 0.1809833618958777, 0.030114996705540097, - 0.3322525663713163, 0.12551128319325464, 0.2969812433084939, 0.196079783769762, 0.093496349126582, - 0.18758792666054813, 0.392658999702893, 0.08864117205213617, 0.060523392209178836, 0.11858065396681014, - 0.34762912914146127, 0.29227682093525104, 0.06661827262723818, 0.262178880302407, 0.37118502808422466, - 0.319633582023233, 0.3134174715093157, 0.03840268142670503, 0.18378303291230694, 0.1259413696335819, - 0.3745250868443751, 0.13059013340416056, 0.15573348312960214, 0.0753634290897879, 0.2595462352307331, - 0.17870282190545517, 0.1778195720613126, 0.22181117261146246, 0.13956350987614072, 0.28162823868200654, - 0.3537943826214249, 0.04950888647885245, 0.44885584872247447, 0.13447842638544352, 0.057625183825621366, - 0.05185830112621557, 0.18377821156833016, 0.16439446245100683, 0.1878472334844863, 0.30484704424384446, - 0.3929368312154005, 0.11022928117446013, 0.14405723899507683, 0.18167846681827768, 0.09743234007720994, - 0.12872218885277228, 0.2167839809352558, 0.026026213526088224, 0.2449909027769763, 0.455713185530773, - 0.13678546896921123, 0.10646321834551382, 0.19447951569005034, 0.3565592291859381, 0.548557188227979, - 0.1808656647433227, 0.6829829851238652, 0.08877424846647854, 0.06661827262723889, 0.7234792607162178, - 0.1810641444016496, 0.2750551953155571, 0.21518865047706529, 0.2531546152230282, 0.12315320078859143, - 0.30086003064747424, 0.48865506558365573, 0.18726042319984848, 0.521195332334634, 0.21988762193610198, - 0.32428049007784004, 0.02496291045936829, 0.2657741664257191, 0.5162713694793889, 0.3326632315983049, - 0.15982577254444608, 0.427376861899853, 0.31111095240672754, 0.09762966375412117, 0.2867504526116061, - 0.2514500299610899, 0.3299960071259605, 0.24730575276308248, 0.21901473259833232, 0.025911532839758503, - 0.11318596499798206, 0.09618975451646648, 0.29614604091697017, 0.18834746327897334, 0.11993868039684519, - 0.12199738020052929, 0.2904393099282288, 0.41141436324689423, 0.369272224070442, 0.44462979212950693, - 0.2272786591289881, 0.18019138889634206, 0.28474091009638225, 0.17395080216047967, 0.24856577168182245, - 0.46402396552496694, 0.23560863397913476, 0.16285244904860816, 0.36906898757158974, 0.13850726030137064, - 0.2559055541393938, 0.15401962395407373, 0.21872575188488755, 0.10311298388264684, 0.38832281547150227, - 0.25308470895009505, 0.08433104424916198, 0, 0.5050036475288069, 0.20736715196951122, 0.061048087736816935, - 0.19328228316429408, 0.3870793697494252, 0.0883424939325152, 0.2956929245993592, 0.1284105354800595, - 0.042024035757490176, -0.028694234157106792, 0.33585287915076883, 0.5210055937563273, 0.1740164198989823, - 0.13687410532986316, 0.16316360896110613, 0.08338639897974306, 0.2843737797853456, -0.21687175419995172, - 0.544527621802636, 0.19752650448148054, 0.19813943427308198, 0.12341822652475395, 0.1397648877318417, - 0.3791398159935257, 0.08574344368981307, 0.28198947670151414, 0.47369577078949815, 0.3375322733809942, - 0.34394222194547613, 0.20990832808662882, 0.17330027512349255, 0.38320128885840254, 0.19051693340186854, - 0.17987450866494328, 0.11781627757208478, 0.021883830377765003, 0.1586313129962745, 0.3405334830453058, - 0.20880437741296806, 0.037858337505479636, 0.4244136216108527, 0.3485167791821504, 0.2517941456607343, - 0.3173266109627919, 0.4079188012725371, 0.20906199155753927, 0.06661827262723818, 0.135624205360123, - 0.11141185864692305, 0.046717283973773616, 0.0982333506490485, 0.14600722452494186, 0.17356307666378887, - 0.537559907334514, 0.29354419999457027, 0.35514182892869806, 0.5981323116271786, 0.29175229979749756, - 0.21349330361130797, 0.18764835370339233, 0.1313361284788698, 0.3480820971879976, 0.38202895530218856, - 0.28384520675179076, 0.24080072900043298, 0.21575627999728833, 0.19200907974822046, 0.1327824336476852, - 0.16127374486830365, 0.2896953063819441, 0.13027205340355655, 0.32548960241256286, 0.10325969592051076, - 0.06309471548110214, 0.16466821454212968, 0.13633698005837686, 0.17307471550351963, 0.738991532375168, - 0.5264345544692323, 0.41615565720071873, 0.1137619498301444, 0.33872411185950824, 0.3005830701331407, - 0.23809534195264134, 0.13942002407180598, 0.06661827262723749, 0.3099959459498598, 0.216663248369962, - 0.7873707270868672, 0.03049104014374535, 0.5343289025686994, 0.16714564499316395, 0.18723461355158172, - 0.006033942511531556, 0.20838845346219628, 0.16129933139621436, 0.2810633657373417, 0.08526277461458528, - 0.10335644749611395, 0.6062496457947594, 0.18068368126045903, 0.14310780970906314, 0.273520899700355, - 0.11854271661462054, 0.25793535393858025, 0.012471146366624223, 0.07251785872200418, 0.01612655673038124, - 0.3077677287331656, 0.08065650172058357, 0.2861974982906672, 0.20035395881687756, 0.06661827262723818, - 0.21598152259916392, 0.3524623108373635, 0.2837530003343355, 0.27051159516223494, 0.06906267338531849, - 0.18889989800086485, 0.16598682262768139, 0.182926368373719, 0.31273901611957544, 0.21842888393567628, - 0.1563514561121995, 0.2822506897028755, 0.5034636943018989, 0.12433596010993726, 0.14978312741193944, - 0.19450887685814075, 0.18442663189069558, 0.11723671331247768, 0.27256640742201926, 0.20908017458720327, - 0.05395127631791189, 0.2945159436167344, 0.127256931874193, 0.025290384003830716, 0.2262997776465137, - 0.19652958800591555, 0.034216534952663274, 0.5421337154482819, 0.16132979473726128, 0.05043884377228166, - 0.36341507119465494, 0.7293524359335596, 0.008279318908484247, 0.4885905186535687, 0.5182537306061601, - 0.572445334818898, 0.1618492966502266, 0.4933718628483475, 0.48507479823231764, 0.05718387092462361, - 0.15686832480829607, 0.09723958406625452, 0.2721611277546536, 0.18242620053244388, 0.07722572155084512, - 0.29257022196370297, 0.2886076004527883, 0.4186402049510568, 0, 0.5149547052900864, 0.43113933790056397, - 0.3169160154585402, 0.16917366188562644, 0.17303132998239548, 0.029398818614107616, 0.11759865241264184, - 0.32548960241256286, 0.11879858162785345, 0.21619030649839374, 0.12759994302475594, 0.17897046329900757, - 0.48696762808932614, 0.08365079218310581, 0.3208038521374133, 0.16792097298640796, 0.1710740217495614, - 0.1313361284788698, 0.14021235611968075, 0.45823893618523137, 0.06065903490230522, 0.5131177962107005, - 0.2056390515290324, 0.09811513829204194, 0.2051970603626234, 0.347247314284218, 0.017866059077074562, - 0.256255985429598, 0.10760085347055723, 0.6136343027000852, 0.24367514661892126, 0.06661827262723818, - 0.29450098766453625, 0, 0.40246818443715615, 0.06661827262723818, 0.2760641260506822, 0.1798815503809525, 0, - 0.659938998285763, 0.13251716655806198, 0.17305860855868335, 0.18633081425655118, 0.06661827262723818, - 0.056728858114414055, 0.27952311470809793, 0.15536359918718862, 0.08560950162144959, 0.55830041110077, - 0.12285275036076028, 0.17470960078921485, 0.32548960241256286, 0.34742422308903015, 0.33098771053645304, - 0.22265813227522555, 0.11845185577832011, 0.31058114481352583, 0.268619870785102, 0.5590804692325003, - 0.5645293278237855, 0.06661827262723818, 0.03920870615322467, 0.12414254581997713, 0.1313361284788698, - 0.39766066061938327, 0.32790486622052817, 0.3409513944036249, 0.2908757970251382, 0.17404732040448787, - 0.22010828924635512, 0.14015345742366336, 0.5449596350235789, 0.4628092867586748, 0.3145469780310404, - 0.24600306675592865, 0.0762449824480271, 0.42959463864663633, 0.18457588184674356, 0.048790849610619386, - 0.10067273538099086, 0.11515665281331167, 0.5843610258190893, 0.12790523190616995, 0.20140847751627214, - 0.30825142305505565, 0.2153163136642702, 0.4235175915853234, 0.27896862887996116, 0.356819751861747, - 0.32925031517854647, 0.18327473120624013, 0.05629244514729606, 0.0566330817055232, 0.08279774829279632, - 0.18674733844763639, 0.5051269773318903, 0.05141905387904067, 0.04533559696077816, 0.48434153749646097, - 0.44535161516243693, 0.2058709978510707, 0.2622004521754567, 0.3562041313425931, 0.050694166706190806, - 0.018079892441164702, 0.29348891117072023, 0.20809480766997704, 0.5468601309560023, 0.3104893019645522, - 0.10709550377324839, 0.06392418952101062, 0.1175471291788546, 0.11755853947537065, 0.19605398433050142, - 0.15641187653214045, 0.2041491160148488, 0.194761403275671, 0.3578485537436791, 0.19296962938112655, - 0.1877646044872504, 0.21168809925868387, 0.15390300172964444, 0.32544691866489966, 0.11168415121936245, - 0.2700967207143695, 0.08936677075557711, 0.12273156102891443, 0.16225508443680706, 0.5515972004648448, - 0.21461882114535658, 0.3632796846484756, 0.08229605644517915, 0.25759942266225183, 0.30292936840624796, - 0.19173523536301101, 0.16021579978604555, 0.6394624630668827, 0.17061206601703738, 0.3017524915729794, - 0.31516327772452224, 0.5200163989084775, 0.1818815136031301, 0.05861485179519713, 0.08852472452026826, - 0.055229483761619076, 0.41404587460987036, 0.058048243842289696, 0.2445923645165749, 0.21423036602313725, - 0.3861391310754269, 0.28503126842726045, 0.24896295299709018, 0.6452495641899658, 0.007568129749713674, - 0.3251277203657286, 0.06149729885719279, 0.17969856922405825, 0.18189867783961194, 0.1754791032834312, - 0.7544525470516047, 0.4971353186855871, 0.12560773868902797, 0.353330997160857, 0.21946857087991295, - 0.142383685932673, 0.0681173928395141, 0.06464411947950495, 0.08358862098481329, 0.2769512222264893, - 0.0833872784388626, 0.45271810629410497, 0.15901020622563447, 0.09665989789238628, 0.13635298725360961, - 0.254779437909715, 0.21062398432444018, 0.0961642913291177, 0.14185222106344808, 0.3931563280561606, - 0.0646963974304648, 0.20231398156855598, 0.3605917689343434, 0.11256792442425556, 0.552002074487973, - 0.13459798098952747, 0.12104018916905263, 0.1991562491009125, 0.46875800684975916, 0.21938725539607026, - 0.5510578703751332, 0.3306908664656114, 0.17765581175583156, 0.3732772775116328, 0.27389592156763837, - 0.33433442085683107, 0.21781528719609536, 0.15228921442703097, 0.041679195331699774, 0.21447836950513313, - 0.3336951769249677, 0.06705244150200583, 0.1664645623098186, 0.11450513834565845, 0.05765760976992064, - 0.1342225012265832, 0.3402594313437605, 0.16783568254213352, 0.47238274109748063, 0.2617902908959304, - 0.21217595883677115, 0.22521399746250642, 0.20799693315792567, 0.024247367760330672, 0.11515665281331167, - 0.3271500865817441, 0.1641911832813005, 0.1932698545241547, 0.007973188956363746, 0.13698526761953148, - 0.27769884859941174, 0.27714312099145577, 0.34161849777012476, 0.014229941650472783, 0.2904878292440636, - 0.25697543641379467, 0.23818951376096292, 0.21176402861451865, 0.27978793796503504, 0.28861521152070413, - 0.17987450866494328, 0.13498762266445022, 0.12594418839628482, 0.2515898084578986, 0.2559252651344398, - 0.45003793775917267, 0.1638817365026788, 0.41312490322269885, 0.018045845197585425, 0.11889640310331817, - 0.48885810304480376, 0.2154926437147339, 0.33344173041121555, 0.6400479655461012, 0.4959589547958244, - 0.3319018716910175, 0.09477180442479848, 0.2696663401924674, 0.26148809827380004, 0.34514669723904184, 0, - 0.01610942150090326, 0.22454487195245862, 0.27666253771826005, 0.11121156724718459, 0.10519549753628354, - 0.08684550980121605, 0.1713750283112174, 0.3270995589547075, 0.174604252852748, 0.24774377997756206, - 0.10708012405980259, 0.2322850379216006, 0.3572113325607499, 0.14119245598195276, 0.1874929548979729, - 0.3719346460474134, 0.2956316028293758, 0.19024152951382622, 0.10570867587476641, 0.27266416829486756, 0, - 0.192250426375482, 0.24956262378245772, 0.35283507316459256, 0.17779581313841616, 0.11430382960010273, - 0.006808591596840832, 0.08050181607337849, 0.15335047844507357, 0.48931212448982275, 0.1077835883575194, - -0.5406739719038169, 0.17988219392124807, 0.24250445583929725, 0.06527948791589455, 0.31645595940521787, - 0.22580916869682988, 0.1542007469715529, -0.5330735831129062, 0.06011749064682129, 0.21361100066023547, - 0.28289505632464373, 0.5765734123266931, 0.28319357194863476, 0.11123443272398295, 0.1295048955407493, - 0.44700693411240877, 0.14733979358364277, 0.009440374870863756, 0.2359251271694974, 0.04150003318434023, - 0.12147093996746795, 0.17480446798306837, 0.21120936907873825, 0.24696002294913982, 0.018279107341167368, - 0.2624247444991189, 0.11104448309597863, 0.16083067377888094, 0.0939953143804616, 0.36158342732790727, - 0.3736330304732006, 0.3492875284968836, 0.05071711239774136, 0.26972460499741796, 0.2700506037318267, - 0.2281161889460748, 0.15561643673361789, 0.07569778225353017, 0.07822785695750957, 0.10575981160074076, - 0.42703838596858673, 0.21477209979986425, 0.10027330154249645, 0.2667281389915643, 0.5408371921700268, - 0.2758506478043178, 0.2695676304760023, 0.050640098304742504, 0.17987450866494328, 0.1726955918379571, - 0.8799272032955766, 0.23255847688577175, 0.10723667562729314, 0.18685131011033115, 0.0758467393530228, - 0.26376568818241153, 0.398121291363401, 0.18043759043357172, 0.1338145865308037, 0.18576915016090426, - 0.5464702874506722, 0.1115830830330883, 0.4068353521085668, 0.06522768805112025, 0.3111163871055333, - 0.19882484106680737, 0.051877036334696924, 0.2495631707559102, 0.3971572437907835, 0.6319407103569182, - 0.10886009264543746, 0.07547530685402261, 0.2238009717632415, 0.11515665281331097, 0.11522681509616302, - 0.11316129687298472, 0.3165647822164615, 0.09778674596212476, 0.06100172192180158, 0.37402798259863634, - 0.03437866598027982, 0.2143995003649413, 0.10935947535456224, 0.2863328016103772, 0.22438826030271147, - 0.5065719953038058, 0.04063022783772708, 0.20414024635208403, 0.5533104703457732, 0.19026116940155527, - 0.08947605149736935, 0.046100653375333374, 0.1313361284788698, 0.22903457568661598, 0.05701423426535276, - 0.22569261634998486, 0.29295950541853505, 0.4337591209555423, 0.04912860977736066, 0.16212642178621212, - 0.3001219102879549, 0.3667891861367248, 0.08744240323302435, 0.19015425540816452, 0.18528866341598854, - 0.34687973821571827, 0.22555391532293315, 0.051097561252269094, 0.32651347622676685, 0.179227074848095, - 0.2932792891165039, 0.16535425354451574, 0.05714741614355584, 0.5735589596024365, 0.3789976674501644, - 0.1818086504515572, 0.10655630570978208, 0.10046365165789026, 0.17353729350735492, 0.2619608618458283, - 0.07959497168096386, 0.4225663627847098, 0.015938702756397576, 0.3379224448748687, 0.2893372542848327, - 0.10198266910198696, 0.054940863235779694, 0.1754084169786356, 0.7298538296490701, 0.06743512542754927, - 0.375386480723586, 0.09342214050318333, 0, 0.2968849733920376, 0.12394485047860289, 0.48819672204068626, - 0.04489176432951835, 0.23433026669406498, 0.05901126043007331, 0.06814217878989466, 0.02899451127717702, - 0.400078752124482, 0.08433249860751535, 0.08279774829279632, 0.1307316669687351, 0.2151714670338311, - 0.10925726297255127, 0.10620105562335187, 0.25045961616053625, 0.31116187533163325, 0.18925097763372037, - 0.011763596374802275, 0.26282575482793674, 0.1900836635399058, 0.28334151102641386, 0.23673919862433393, - 0.22301729064767348, 0.22276617646343713, 0.27947070500669763, 0.12320532291878866, 0.25339568632360515, - 0.42337270356995965, 0.4011134533915161, 0.4270723371307378, 0.14473085804523497, 0.6342247795667663, - 0.21927950518567071, 0.12530095659839408, 0.126001777712113, 0.8632210869761531, 0.3750264321644341, - 0.10354808503828071, 0.13669564134371193, 0.013109216736992094, 0.09750771058608705, 0.375512492995735, - 0.19370060882436918, 0.31023098707895647, 0.29586585508007623, 0.06169670069601, 0.10945212485132137, - 0.27209765103524497, 0.11246033266532268, 0.308295092753402, 0.20189757514488352, 0.18951515655093473, - 0.15314741071988341, 0.09016537622493016, 0.13723394625053026, 0.021968032442990115, 0.028045481255019773, - 0.03263026424150081, 0.01755932797287525, 0.3468568291310881, 0.38224800913440105, 0.11144853434841435, - 0.22674171470347765, 0.4151816654941152, 0.1290170442015537, 0.34119754084208825, -0.17064440054113178, - 0.1393872754570484, 0.053993974578419715, 0.06661827262723818, 0.47561049633206476, 0.1525969015564256, - 0.17987450866494328, 0.35664396271076887, 0.5843708188213786, 0.38999663951757674, 0.29261731898004695, - 0.3770308020832743, 0.06661827262723818, 0.07555772738098102, 0.21245225299566708, 0.19229705879084424, - 0.11257878098125851, 0.15269640601797166, 0.18111565228860232, 0.4573835925434169, 0.39464885179806836, - 0.14193899715274927, 0.10446422783102743, 0.049415689720014505, 0.018079892441164005, 0.2892536423571399, - 0.4157587876948576, 0.13228388696773213, 0.017679872458138624, 0.17130540517849427, 0.2172227245154558, - 0.21975721587978878, 0.024419904446083145, 0.16198482198281852, 0.24845134003177935, 0.5843610258190893, - 0.5360641835013442, 0.1475145659880188, 0.5451840081332061, 0.22123250728819818, 0.17354602798302826, - 0.13479022509457164, 0.14259598956102185, 0.11247759239836311, 0.4225663627847098, 0.19874070519487685, - 0.17635505942120833, 0.29051695065002187, 0.2457151673000645, 0.18910201693636655, 0.3657636944176248, - 0.27181508752267897, 0.1943843243243504, 0.22985318001460134, 0.17987450866494328, 0.17224081108349804, - -0.10028788843940141, 0.38983010217010244, 0.15703956837865896, 0.6197198787930247, 0.18978482084559287, - 0.5240544919259478, 0.2306419628288634, 0.14874039820581683, 0.23295382254069472, 0.2386716106229101, - 0.40470215981629104, 0.1936541369521498, 0.47870367856254026, 0.14898815518716693, -0.3476142426969411, - 0.22675753550449698, 0.22803387575123718, 0.24181264451087955, 0.0956543581553674, 0.07398007535182635, - 0.27378985033497305, 0.33394956009764065, 0.26245732453411796, 0.11288688443071677, 0.3217582277343118, - 0.5136129045847363, 0.2616195546168994, 0.21253336757938865, 0.24671761383298643, 0.03483685832445923, - 0.015872723217704388, 0.29612229791964667, 0.1151982998540992, 0.2052851904399788, 0.3629389693308158, - 0.16949942844834154, 0.06825937732995084, 0.20013650629867136, 0.1812486408926139, 0.27603197688456393, - 0.15043174084887936, 0.1601499912323593, 0.05044332622492062, 0.28329837347236186, 0.3167862933649301, - 0.11298767893461593, 0.21223341318545863, 0.34674546685161806, 0.24458066954940227, 0.09163948288548356, - 0.041929782368459796, 0.221442343813635, 0.10166416519095615, 0.47583907879335746, 0.2679499111686882, - 0.3547577558723394, 0.020271559089388807, 0.2451199765488331, 0.1313361284788698, 0.17092050638268633, - 0.6582035304803152, 0.174459499857363, 0.4083860493542228, 0.15738695286260715, 0.2257296409873706, 0.506426781254079, - 0.11033490540710271, 0.4186676708907771, 0.08636248885969179, 0.5482578949412125, 0.6184133564367633, - 0.5507311767199192, 0.35856536439101155, 0.3132049649560713, 0.17551671037387578, 0.32548960241256286, - 0.31640779514267775, 0.2558526226872577, 0.13843929964202514, 0.11515665281331167, 0.04810167258585858, - 0.18268500315609698, 0.2469336669995669, 0.08879797593226586, 0.006379599147258464, 0.32779122000368405, - 0.11515665281331167, 0.30540931789909315, 0.17987450866494328, 0.06147304712689854, 0.19087597606732004, - 0.08357752706537841, 0.12994743147606688, 0.18363295730375223, 0.08226398825775745, 0.12488212365621687, - 0.373361204443352, 0.27313477986673906, 0.6299018321006251, 0.21223341318545935, 0.04895506043972508, - 0.12078264389938738, 0.3303019788213688, 0.024401058907854024, 0.029848779556529887, 0.024146272589975867, - 0.7536057237582213, 0.15812628697742584, 0.1310146222181589, 0, 0.02709745155083285, 0.05503963719489938, - 0.5452969134487312, 0.02386067699827427, 0.19605398433050142, 0.2937690405746158, 0.15720506133066026, - 0.54633926094595, 0.058848685300798675, 0.2122881093165334, 0.17639364781065428, 0.12478743166209486, - 0.38631809352553675, 0.11402943417379019, 0.666328191658704, 0.0488838577270101, 0.1692565369085095, - 0.06661827262723818, 0.28200103199765814, 0.4674608206374853, 0.06661827262723818, 0.27658726567225417, - 0.03044602232071558, 0.3343773261463946, 0.06370579377812007, 0.15841663311868628, 0.17596779043689856, - 0.1217799443225269, 0.16884116305980745, 0.1077007057880517, 0.29483411499787116, 0.23086547591919893, - 0.4316894835883711, 0.2141604430630543, 0.22354792486465377, 0.35392860176336455, 0.1146590642355338, - 0.5190471192345281, 0.1966600088284074, 0.22753111192923461, 0.12466491364969094, 0.1076000449259693, - 0.19555148920408838, 0.5500049927508597, 0.5483721124424611, 0.4374595233796485, 0.17819828720885128, - 0.4873776885217878, 0.40780095999282195, 0.21857009510965641, 0.1806118394338002, 0.27320440454868633, - 0.2231183842637812, 0.42694894010937795, 0.05093166547923373, 0.5298611247493641, 0.18065559816328022, - 0.23529530565629092, 0.22095386594637023, 0.1106417237796509, 0.05834356026134868, 0.22395436959924406, - 0.2559841000239954, 0.240542441832364, 0.0349589921275166, 0.024985777250339153, 0.6270819323555047, - 0.06070935900814611, 0.11885518340073305, 0.2190885584050949, 0.18504513566830383, 0.18052356162499433, - 0.43038921300519023, 0.13797279673676485, 0.1727812641631413, 0.19704183086726684, 0.006814001221089966, - 0.4104813180718269, 0.2946980719295143, 0.3332263280362701, 0.052814664665541015, 0.18141491313278335, - 0.2442373378584152, 0.06459625717292332, 0.07621437981158105, 0.17021844423844373, 0.03982660208656983, - 0.20831418070024485, 0.43620151878065716, 0.13887596025823679, 0.2931307447026484, 0.03589584409540102, - 0.32738270813811093, 0.02105572409883687, 0.14385317054572097, 0.4057127984174928, 0.07060280758813874, - 0.20761103955427807, 0.06290284348097426, 0.22441369195161887, 0.196169680197377, 0.8521181990745734, - 0.2832211684806471, 0.09283565094094814, 0.20849723007123644, 0.28649401294658616, 0.1121956207851775, - 0.1807801845300361, 0.22926811226307026, 0.14922467940928047, 0.11807739071923158, 0.2549295643245352, - 0.04202294212079944, 0.4615016011307479, 0.243352602861634, 0.02886538509988589, 0.4247530797577015, - 0.23882146135375074, 0.521353813320949, 0.3794855605278003, 0.1780676296551761, 0.6335751397138647, - 0.20506386964854556, 0.9173290000584322, 0.03654874200831084, 0.22787866718910513, 0.6550622554463075, - 0.08019322452344674, 0.2992368290989193, 0.4128230428021745, 0.2300742034766928, 0.06661827262723818, - 0.4663547309760151, 0.136237052272313, 0.03538281395242428, 0.42659104121428437, 0.1679984791320077, - 0.007574164388550788, 0.5157233568708776, 0.20078854558537176, 0.06603169452134394, 0.34047845599967946, - 0.13750279858072856, 0.13778264775933882, 0.22902742953505306, 0.13928190600406676, 0.18532999441595846, - 0.2215544313798912, 0.23254711393725153, 0.5975471093282455, 0.13597950937396605, 0.2028701009236528, - 0.2903373477040548, 0.0301496317493235, 0.5569463302782071, 0.348955426733793, 0.09591820657724573, - -0.507599059046814, 0.15265363418466102, 0.29148837479801537, 0.21109703207680375, 0.08895335904899436, - 0.3405504020669304, 0.19065194557653942, 0.37291291645471497, 0.14231358873863736, 0.2536725971363496, - 0.1783317555657293, 0.3124605309192201, 0.5454714845607812, 0.24509279633626502, 0.2894614314979914, - 0.2808304610145174, 0.0716390525205067, 0.14615082828354917, 0.03611081518025665, 0.17966109618548243, - 0.11303985990631045, 0.014486102172575344, 0.202684817602529, 0.2495842332050653, 0.20502608667997393, - 0.031002811767233775, 0.16219423782938555, 0.12160386831428044, 0.0720225165308539, 0.22121922196620958, - 0.29576707314336326, 0.23874228426811714, 0.6183997504046878, 0.13358482032131297, 0.2098179244083732, - 0.16729995517836016, 0.03966874923730087, 0.40619784971467987, 0.4424786208866981, 0.6252369409720478, - 0.20105049427045596, 0.0817943006943922, 0.08838268581636555, 0.16228853381109545, 0.18528227814602535, - 0.11762381867400036, 0.10783493195394434, 0.1300076190240922, 0.09262265122312476, 0.17745653912222775, - 0.14887117318555054, 0.1846727821215842, 0.4196396194879115, 0.21770036970294887, 0.09310038957346838, - 0.3354285871466821, 0.3551219920690548, 0.10522060728238156, 0.14392557799513914, 0.45379297562998916, - 0.21274041180033637, 0.12525701840401032, 0.4106134148298642, 0.12762135064287847, 0.3014467513646514, - 0.428728331530879, 0.030367825240555014, 0.13867001344597435, 0.7128219140175328, 0.4158109554399012, - 0.12970826104681274, 0.013951732178258475, 0.18174916371777922, 0.04374460523921787, 0.019288420124132843, - 0.11200871328309475, 0.21844929945814826, 0.17313027874663103, 0.16367386376595813, 0.14639257302781938, - 0.18728626651313174, 0.23028154408757998, 0.33404610668704815, 0.20615952015663988, 0.3672456172720646, - 0.21798667805698524, 0.12020820593885269, 0.32548960241256286, 0.14838166994736834, 0.37147284692184485, - 0.5211646227031008, 0.24918847072455885, 0.20895779635037556, 0.31910849789436874, 0.1313361284788698, - 0.17433919174865126, 0.16371361477516852, 0.3638775539180907, 0.10271827775572222, 0.3937966266928284, - 0.44472973767931084, 0.3992984428371275, 0.29317204553643295, 0.04157377795965189, 0.13003426429299228, - 0.366564800473488, 0.21223341318545863, 0.2810342831349977, 0.15127376916399934, 0.4458186504845858, - 0.07137321806651432, 0.22732980011860962, -0.03824541037071445, 0.1313361284788698, 0.2229598918205999, - 0.1776138707082802, 0.11787954992354717, 0.06189562097222362, 0.23592178315866516, 0.19605398433050142, - 0.23299580213436907, 0.1771628078285083, 0.02250399936956247, 0.12273570503525863, 0.2993293108552898, - 0.05054067314479375, 0.12262585298429811, 0.2885377733436382, 0.1313361284788698, 0.24985292684487956, - 0.4293008215529391, 0.4310612406068387, 0.11943797728354295, 0.1624469718652252, 0.21890739866643744, - 0.142201177567609, 0.015130317927767246, 0.027055269956067017, 0.49089309901541534, 0.06661827262723818, - 0.19233952886900546, 0.06661827262723818, 0.29155067901139253, 0.2804092877172988, 0.148541374131405, - 0.562998722379181, 0.13156845994685987, 0.24588442888224996, 0.2716465284744908, 0.24247677791321276, - 0.1663814647261057, 0.11515665281331167, 0.052596579146788676, 0.22304142590887815, 0.23102971782777532, - 0.26403542691399084, 0.2260377803068008, 0.2873829797083692, 0.07927381847132994, 0.22194866829474788, - 0.3307558499688311, 0.11720189852769611, 0.011340821219800673, 0.28596607323451206, 0.5401130849707856, - 0.5855172464005646, 0.07529867870793812, 0.3310253578368333, 0.40002583363987193, 0.12494229188016004, - 0.12068353498285447, 0.2938387095272556, 0.217494001114177, 0.08279774829279632, 0, 0.16983600814482205, - 0.5245108371199263, 0.26729548954535326, 0.3395805964505426, 0.33708764611380676, 0.32917043405485463, - 0.4801047726054881, 0.2981981547820482, 0.2315323833672418, 0.35946055728978593, 0.5596867967083278, - 0.28026801886579494, 0.4664662345846262, 0.25050300604876086, 0.15148510817595504, 0.02983850140882218, - 0.23679271154147993, 0.35698328694027703, 0.23860925888902407, 0.08879673936879211, 0.22806481882492705, - 0.20170818573327134, 0.23061809371166603, 0.10663782451249498, 0.2491082209271387, 0.32779770570766664, - 0.1838536099278344, 0.3128194873221148, 0.06772275108700024, 0.19893401703875074, 0.06511991522182166, - 0.08019424151999005, 0.30543119921948114, 0.08982635235892052, 0.04355406405389254, 0.22203706437838286, - 0.18365016891871278, 0.29050643126599146, 0, 0.1901617887301607, 0.07334966648276338, 0, 0.02736439086356573, - 0.16342661595482966, 0.07694694422489112, 0.3837019656328394, 0.2986429031035789, 0.17257503718326347, - 0.3451824477277799, 0.21255578491276303, 0.4038299810636925, 0.032806748507765965, 0.27949963147191187, - 0.2646174996899316, 0.2389530566056845, 0.25306495362919357, 0.4333361800594087, 0.13159882879298718, - 0.3091306328984069, 0.15029314118357204, 0.48576410366655326, 0.37764181801398206, 0.4905495592740192, - 0.17117854025441984, 0.2743306323825072, 0.23189662761832863, 0.13918024154846156, 0.12289581449040599, - 0.07897110811608873, 0.23003179160332626, 0.03703777074080917, 0.15370101670472217, 0.15292264735662903, - 0.17937583193807016, 0.29432143276996287, 0.10475306472252366, 0.2534884409246136, 0.03446355633276394, - 0.48249570386821605, 0.39257823099610417, 0.5313259814331426, 0.3038262342724813, 0.18099503383672405, - 0.18600759766969688, 0.065623133756777, 0.768786871305337, 0.30970255589019696, 0.28114514489957365, - 0.2861700044359842, 0.06661827262723818, 0.360215633159922, 0.23996852498844337, 0.2340840023014658, - 0.17206949487143547, 0.3042920849129874, 0.06661827262723818, 0.1258810085792696, 0.05696635086246445, - 0.20258723680144028, 0.1602121596299173, 0.29759403071200463, 0.10866028941952986, 0.2789417679389732, - 0.5976474736660291, 0.3970962390950118, 0, 0.37402798259863634, 0.2538564951906809, 0.4903902085008119, - 0.4927982324419516, 0.1542592492009593, 0.33925618499595683, 0.06072282320165399, 0.07807966914604801, - 0.267212841507135, 0.21030192239137507, 0.04816277038253157, 0.1445982536681938, 0.24019051779325482, - 0.2170036426756337, 0.16758516974825863, 0.019304282822821695, 0.209719322675725, 0.30179254184423454, - 0.42263150081794837, 0.018079892441164702, 0.2662537011417284, 0.09292760563867516, 0.566288037709511, - 0.1924552762685385, 0.1907839213613306, 0.08953588099161457, 0.5260498675293673, 0.2612833114433715, - 0.23322901564064413, 0.2268405901290664, 0.20718842786207545, 0.022953920662803672, 0.05892291852870998, - 0.12794932314832339, 0.1477026757016311, 0.1437763304110679, 0.4229555661777174, 0.2679884653351002, - 0.04708394860921444, -0.24400533290942034, 0.2049804598275179, 0.017283509497396973, 0.3488855314815886, - 0.5836353707228097, 0.15955892524309623, 0.14052405842436386, 0.6977092178845816, 0.20826682137657168, - 0.06661827262723818, 0.03735061718596849, 0.29519669338376675, 0.05427697381803252, 0.24213334493670557, - 0.18285330744238204, 0.1754797256858374, 0.23526224976237026, 0.15659396762999098, 0.4372957741483968, - 0.328903200311621, 0.18524842159096694, 0.37524222158283194, 0.2180915115774499, 0.193772320268438, - 0.05141160963019753, 0.04185464325983837, 0.19234163739465887, 0.09939110273805506, 0.367629323895883, - 0.1294542501556085, 0.44192234875482433, 0.14978570761337143, 0.19341201783461054, 0.22722147960044636, - 0.18995801158900447, 0.38077913841120126, 0.2295812273900359, 0.05975203723699795, 0.2496494457284258, - 0.1842298894419395, 0.25449415530654124, 0.40561895251746505, 0.2753761089380558, 0.1313361284788698, - 0.3432786473309735, 0.111116068553555, 0.3329837982774053, 0.3860746629633449, 0.376128708327384, 0.13534272194285285, - 0.20984481992903023, 0.15219569980825443, 0.027481811118658904, 0.26339308963719177, 0.34271399511598366, - 0.09202448558289537, 0.06987681255088164, 0.11207956640700131, 0.11428365156422972, 0.18048252425160938, - 0.14002940431691033, 0.5828154466468517, 0.22189477428879936, 0.6406833263950049, 0.25595445027740527, - 0.25660760722064513, 0.2445923645165749, 0.21058525985211085, 0.2711966517687529, 0.15814106024216074, - 0.27877379533391766, 0.5311126873623987, 0.19177270246962697, 0.5358226456330158, 0.3901754051436192, - 0.5186242853562226, 0.30240779794980105, 0.11913874443575517, 0.14013775626559763, 0.1351789242931053, - 0.30936626676229045, 0.017785976036426926, 0.08581873957501587, 0.2524104175353693, 0.13416379724135025, - 0.0715318457643801, 0.2669608855099362, 0.07016514902139327, 0.6208896543372623, 0.05140109215536537, - 0.1379028335873297, 0.05896421314424093, 0.8168915259988906, 0.05553839369722302, 0.35076999958987354, - 0.3362126223474348, 0.1707617670516702, 0.32634079143539435, 0.07590162035658216, 0.2931307447026484, - 0.2260125276599454, 0.4120776168562829, 0.13138427612044615, 0.23667060912322407, 0.04975815114065373, - 0.47549064145783654, 0.37402798259863634, 0.4262519240108277, 0.05655055803306987, 0.3172032642984191, - 0.25746461615530125, 0.31962951227098746, 0.07101394029510538, 0.3632483965022647, 0.031020820874364675, - 0.10169458364624817, 0.3505633423698713, 0.046400978888438166, 0.18875616193412886, 0.22012422568568213, - 0.5667812433473686, 0.160614678597445, 0.018053330341565574, 0.22406651843441136, 0.33889269291721247, - 0.09094827685406232, 0.12181584689305285, 0.03671003735731027, 0.09380938647866861, 0.15032942438415653, - 0.09330561811759706, 0.3413021630438381, 0.22549799127682266, 0.17221151119469594, 0.1343836090140817, - 0.08184892975852849, 0.38763833091804567, 0.040675921456720956, 0.11921494164451235, 0.1288736847791571, - 0.5327548543477659, 0.12471246374747637, 0.17891469936131268, 0.2269609898937357, 0.4695253247227688, - 0.30006130510168677, 0.276892517589561, 0.11358972283575357, 0.274208329118913, 0.28224908733558424, - 0.06088476146920288, 0.35707543150819676, 0.2021064858027531, 0.20730267424500642, 0.29497142732639275, - 0.06920875348664651, 0.0432936368350251, 0.16472405644981522, 0.1914042460758839, 0.2263171503671818, - 0.03504645915902566, 0.5156725578909392, 0.25348864071210164, 0.031438406937550886, 0.1578522214594968, - 0.29393816645428356, 0.19605398433050142, 0.09995464230777013, 0.06141086700936501, 0.20758363142126446, 0, - 0.12747814760368015, 0.2891295105902438, 0.09068015050417029, 0.27017038060740267, 0.06661827262723818, - 0.17203682910424553, 0.19167928980501525, 0.17201246076508325, 0.19412622710092034, 0.057593047043730305, - 0.32847115450758235, 0.5277187266921161, 0.16369503299938445, 0.016333023972470908, 0.1088256067923958, - 0.23642130774400283, 0.20233509651001677, 0.1713893936235204, 0.5346026470427534, 0.5401407107957328, - 0.38350499584965003, 0.28906076324951263, 0.5088278515510718, 0.1533997500588262, 0.22167419657482199, - 0.47234827436791504, 0.4247062753530713, 0.04528362478554395, 0.0464716982593811, 0.02218408384199303, - 0.14486392463333575, 0.5088757429085334, -0.425500881754545, 0.06661827262723818, 0.027908112594096434, - 0.06428168385498095, 0.06661827262723749, 0.08279774829279632, 0.19056844907710918, 0.4029812305096078, - 0.333312091928503, 0.08826763145865936, 0, 0.08930813707242492, 0.015029400795044388, 0, 0.06578674567445414, - 0.06370475272157107, 0.21614399921749272, 0.23419420613675188, 0.2038267166422157, 0.31047919792127243, - 0.17655257787538367, 0.02759015730105866, 0.29268704286186203, 0.14221887266526892, 0.0943828395341601, - 0.0474717028784692, 0.5071341405985256, 0.23589629353427408, 0.40740249925940714, 0.29840171278503663, - 0.5252975962052164, 0.38126983452726937, 0.39655362539457106, 0.19608220667313533, 0.1125196142684949, - 0.1408877333974979, 0.12854689587223234, 0.05192701928186914, 0.30338760731059883, 0.372776032225029, - 0.17977241053583268, 0.32548960241256286, 0.16192269462686257, 0.15759999656461587, 0.3758055832699263, - 0.2392297816883779, 0.009260229173685368, 0.0056697147483430535, 0.23099044685616968, 0.5793990484199872, - 0.14097222863530307, 0.15981300350159147, 0.2232938432969934, 0.23187896563224009, 0.466150195066261, - 0.23682609283812436, 0.017604323578439315, 0.3684560530448607, 0.06661827262723818, 0, 0.9517005619754932, - 0.22841284204041587, 0.19260984178687082, 0.37505856150040284, 0.4374052799211963, 0.11905597837256457, - 0.4266117064982422, 0.27997373200838843, 0.4159755500365455, 0.07123226147210591, 0.5096387396837981, - 0.03886214880637468, 0.14534183764954128, 0.3411314313414644, 0.1445552665169059, 0.14669039705972214, - 0.5472122736489945, 0.19450653173954166, 0.3257873596465709, 0.13352530469210488, 0.1401710053430041, - 0.12567978722680037, 0.36175092727549474, 0.22804385970912558, 0.2938296794069247, 0.01406808429377496, - 0.2011906851031263, 0.08326321345291669, 0.022998596717462235, 0.11271271969012153, 0.16143263175496975, - 0.3036759561059567, 0.17292685843803, 0.3378896207406735, 0.20421065532007565, 0.3153702231803371, 0.3459639049852032, - 0.23843974768954318, 0.220077526797402, 0.17397044649745902, 0.14990272890228007, 0.3064821519951019, - 0.18068368126045903, 0.05704046232242622, 0.10554804435309645, 0.3300684433861702, 0.2096435963366515, - 0.07188475171474823, 0.14548338685309642, 0.22747762802757446, 0.1812268276994707, 0.4426891261943426, - 0.1391444079713244, 0.1443154187488864, 0.45271625381158975, 0.08161981311363531, 0.6505627354498235, - 0.48051063928897225, 0.06661827262723818, 0.292989507334725, 0.06661827262723818, 0, 0.3761590861170864, - 0.33420163703636174, 0.22417294721241363, 0.06572395450527142, 0.22976389904825623, 0.2543997703969045, - 0.18666278829359728, 0.27638559138204144, 0.18441709379434768, 0.13564645088605873, 0.29097928096604214, - 0.1665661053721565, 0.11456129285446168, 0.1606814165930103, 0.4471633379540424, 0.2279599731270117, - 0.32786648965405846, 0.20838787269938794, 0.5228016957327335, 0.0747536598183749, 0.5213931568497693, - 0.3554625398921921, 0.2875757337857783, 0.17987450866494328, 0.06943182017044978, 0.5370760336570451, - 0.09634585500183572, 0.43948831387010556, 0.2780762895804738, 0.12608149754526862, 0.04017025189382119, - 0.2431354593520671, 0.3456563647981756, 0.13645060691690183, 0.6336944702046023, 0.4519555481398322, - 0.16551189682738407, 0.20368191679579734, 0.3374094134727513, 0.18359006706228337, 0.32546016686048906, - 0.11752545252731854, 0.6873933455858003, 0.14434690149337326, 0.23393760601219388, 0.27824238318301425, - 0.39932593515561976, 0.11842615615471654, 0.13970847825285496, 0.384249667078625, 0.19147372780510347, - 0.22059788523797685, 0.19936032955484548, 0.2043095515432117, 0.06641585590869735, 0.12905992719643541, - 0.28707464701075447, 0.1657998058144266, 0.20266864027450568, 0.2773344411337114, 0.37263613015283686, - 0.08054557150424009, 0.06661827262723818, 0.11353160365270575, 0.13567590891933376, 0.33665825018454054, - 0.18610065275784288, 0.3079279161669077, 0.5158901120314217, 0.0498391099217199, 0.5350621898241891, - 0.24194192046908056, 0.22131343654221527, 0.518830967148093, 0.7447747337292431, 0.5034636943018995, - 0.32740173649486054, 0.1885264332839601, 0.40320846386492093, 0.2930381592419473, 0.10637504040272891, - 0.022884989501961894, 0.3318629505380732, 0.24634604294496826, 0.2723250991166471, 0.018719489444968943, - 0.226988071874495, 0.12336275565968205, 0.3890094851497016, 0.3554041804256319, 0.06661827262723818, - 0.37502684892658256, 0.010651137051610676, 0.16194976060758043, 0.28810048907756686, 0.21714013937674062, - 0.5358226456330158, 0.35295890577329114, 0.5335475323822283, 0.16062906164513896, 0.1262364955789837, - 0.04979381902529293, 0.22529567368751824, 0.2811306323512006, 0.275324052329281, 0.3236547191040715, - 0.5154922680157722, 0.47448224084145985, 0.14960665934488565, 0.1377180021431067, 0.056214073290942114, - 0.1553768111227397, 0.1869514111366369, 0.16459334941388368, 0.25155201017988643, 0.014091689066557255, - 0.22036073247172977, 0.29805391107202717, 0.3276933828042249, 0.5299004621347201, 0.05776054288704115, - 0.06661827262723818, 0.17277152620149003, 0, 0.0336398906295429, 0.07601737538084159, 0.13574285416374934, - 0.34456968662216075, 0.1435649408919228, 0.15469589203475168, 0.5344641869394566, 0.057693561634588275, - 0.09277220699731951, 0.1648034849267475, 0.34566833977295175, 0.06661827262723818, 0.08735831718413381, - 0.2553949083595162, 0.39584906353342003, 0.24100091853531308, 0.5109615890045811, 0.3882897102892155, - 0.26610901152342803, 0.005105086712119281, 0.35644164526358246, 0.26922663024764903, 0.06752480251215633, - 0.2993045107903806, 0.28958269075816695, 0.08787566083497438, 0.13961986999611112, 0.06661827262723818, - 0.11107750082328757, 0.1708785144740002, 0.1323767983316999, 0.3520495163421815, 0.03805237497421339, - 0.3458897712639553, 0.28103805685391087, 0.366980371472134, 0.4263541666430571, 0.2184855076437756, - 0.36700413110599167, 0.22342182609055136, 0.035570939024468964, 0.03943838533644651, 0.7337159543298646, - 0.06361710952323195, 0.03377146434980101, 0.4880463171855521, 0.057073030015766364, 0.11071454715555222, - 0.11773629971749934, 0.01178959842099673, 0.2769512222264893, 0.18485931889887064, 0.16449903650732656, - 0.21995448571790863, 0.4306336318810585, 0.20700842997459526, 0.07912806049572936, 0.1213075578898132, - 0.13914550469083312, 0.5758757307194354, 0.3231530714299109, 0.281674975442108, 0.15211506034182004, - 0.23452938130097767, 0.12334758756133114, 0.39919844950556593, 0.19938993711837005, 0.6395124881189996, - 0.039814192262801196, 0.09337531467145506, 0.1608557012980497, 0.5089908426279264, 0.12875608589897794, - 0.12083330623861595, 0.5319737251484344, 0.3726470605404805, 0.06661827262723818, 0.1331327746667155, - 0.2077130527023173, 0.19660237042211418, 0.12785119332740305, 0.2221665198262151, 0.13860526122550054, - 0.265484289996185, 0.44280778566390827, 0.4913754447062972, 0.5113037138373351, 0.5297728369853081, - 0.28019887605209876, 0.06359991524724287, 0.1061205074138719, 0.18272019571913903, 0.4164835611562505, - 0.11255656825229661, 0.17554894036971025, 0.383561073705255, 0.26812704340434546, 0.16231011685750782, - 0.13462511360796917, 0.5239506707240483, 0.1864319628862956, 0.08955221400494043, 0.1758270576033615, - 0.1992752873674183, 0.3738063305871373, 0.01756638890743626, 0.2208212232941269, 0.20763229525452379, - 0.4495043082919103, 0.1346416135522065, 0.1817390384123858, 0.1709571317850893, 0.17916007459670769, - 0.20651166309972038, 0.336149488354894, 0.09210353975694799, 0.2008295653972271, 0.17987450866494328, - 0.07761420524574911, 0.21198437985030105, 0.26858576985473065, 0.2715341901421083, 0.4172320072642096, - 0.01287999738720238, 0.19979924357035367, 0.23569743024577564, 0.3252759473909465, 0.45708941582121776, - 0.21326295820437258, 0.21149122419053715, 0.3479700074145253, 0.02447442618461289, 0.10527225876989443, - 0.316889651650765, 0.26501912349981016, 0.13993277853431318, 0.31783982775659725, 0.29007255324357706, - 0.19257252709579867, 0.2158984195647341, 0.11188723121292107, 0.17593787333564104, 0.3121817433607127, - 0.2845664276133324, 0.09090377637866538, 0.11249206678734383, 0.030003537064626783, 0.19270230603808763, - 0.028483932905024982, 0.17530545320665603, 0.46562558729408365, 0.030578612765999057, 0.32548960241256286, - 0.18167190857114066, 0.1432497097114869, 0.3980588470408152, 0.20367940437183957, 0.34641302780409067, - 0.22504180821198366, 0.5487837810881143, 0.5181759293423723, 0.4337911177299375, 0.37480846740381724, - 0.10757396123222432, 0.06276788867085831, 0.17987450866494328, 0.03792017478189308, 0.6750838531449368, - 0.1550363882709649, 0.14069420592161913, 0.2622111855553832, 0.06215129140572309, 0.12533327959987622, - 0.5405919681804404, 0.31297585363623187, 0.25524117426728693, 0.18722465859815468, 0.06224218748966412, - 0.14067127789318956, 0.2769512222264893, 0.12031532781628614, 0.2858732648374493, 0.7224081282520154, - 0.17305117272505763, 0.05700920754987535, 0.3134813039114429, 0, 0.07883880203928106, 0.06760352061084325, - 0.06220556319234345, 0.06661827262723818, 0.11860078071387668, 0.45142851642804294, 0.06897597719602618, - 0.21727024620461124, 0.7511078632881906, 0.024919162023262335, 0.12359747881103382, 0.5150468457372516, - 0.22208024535856366, 0.12188028196889626, 0.4557274234417586, 0.3060161359437314, 0.529088469710257, - 0.01734760895243277, 0, 0.46467701148691576, 0.22841284204041587, 0.1313361284788698, 0.03296032602722097, 0, - 0.09372896596417205, 0.1313361284788698, 0.35180613063908767, 0.08096501428185612, 0.5099431375951125, 0, - 0.2688140232999141, 0.18020822752115503, 0.020768403340717143, 0.10761675202883107, 0.2056171006660919, - 0.2819801701047359, 0.27243768467041524, 0.35849337121618535, 0.21686450764881982, 0.20973705448991556, - 0.09349393915961776, 0.07474069886947983, 0.23722753184135004, 0.15891741640847618, 0.17146220268920812, - 0.3765879701626313, 0.11013026601100379, 0.42070565878316935, 0.5763174179232877, 0.16215638040788088, - 0.12236596712770377, 0.3681628902252341, 0.08830072248180056, 0.3151999358059617, 0.02502865928768688, - 0.3068438506326602, -0.23164137207499902, 0.3114349541240553, 0.353084086827727, 0.29897573410711414, - 0.1890998689013873, 0.3786530649737731, 0.38700522491934614, 0.10678680103516121, 0.17987450866494328, - 0.2464227449764479, 0.5064811527950148, 0.09751300529201022, 0.38733216944120774, 0.3716294700882829, - 0.08464236670371279, 0.18123655005290043, 0.11830765448216761, 0.1701224640467079, 0.23018870891385618, - 0.07722832798969195, 0.4513383511632247, 0.07455282843734269, 0.17860652761383908, 0.4454794631151013, - 0.22406771785693677, 0.15464385039327153, 0.09032837011263424, 0.15710025194138655, 0.128554714264945, - 0.32044564494365385, 0.45848357235245024, 0.3178091980584205, 0.26459531364527816, 0.018079892441164702, - 0.2931307447026484, 0.3416897052599665, 0.5606997926911219, 0.18763011826293766, 0.21647374229727429, - 0.2843488591586276, 0.17647809121645386, 0.15953155039659297, 0.6302880255633235, 0.46712314233986985, - 0.6276014767004346, 0.04058712703767367, 0.23542519971638684, 0.5683329429634224, 0.05050635949766446, - 0.20154691658102414, 0.2601336751949078, 0.4043921815131673, 0.07187264579509771, 0.1833402210439015, - 0.40288383532442246, 0.28231576716887785, 0.1313361284788698, 0.0956279544342047, 0.4913342616755867, - 0.1405855074137371, 0.23294475224726066, 0.2094505648675252, 0.1482693353895201, 0.3654503555843725, - 0.5163282641168546, 0.5594117970201636, 0.29361502479008894, 0.11449010932562764, 0.16684256734583708, - 0.16671595002689502, 0.24024143445439225, 0.18122294131917127, 0.07194071345515526, -0.002042288663208648, - 0.18141161275697273, 0.2404627338783057, 0.0146380219371763, 0.282092042816878, 0.20852904221001084, - 0.3725763103168005, 0.1279365344588135, 0.08939280556880311, 0.6301284577185448, 0.11200936784917125, - 0.07438103117752162, 0.0668998953394764, 0.06661827262723818, 0.20637968178504584, 0.3149083618797916, - 0.14581789868923825, 0.3782575900529361, 0.280176570549856, 0.16509917814229721, 0.1713105640703372, - 0.2890583074070942, 0.21410225803849273, 0.2759990548773357, 0.19831682251420715, 0.0408286412809385, - 0.171608575105759, 0.21360251868968883, 0.12942524210341189, 0.2522152857068752, 0.18377298335482856, - 0.22427922986747983, 0.17875466534353757, 0.6980976821442461, 0.5391004672295131, 0.2825597679267623, - 0.11056418284554238, 0.16402485405428707, 0.35612320507375134, 0.09833410874762526, 0.07294287895309083, - 0.06661827262723818, 0.25519410391808023, 0.2995622991221908, 0.28177268397621585, 0.23082287736850315, - 0.13147554526657518, 0.29932508326940427, 0.3194768586561803, 0.2028342299457825, 0.10686489581988856, - 0.06409360217301938, 0.1920497883462334, 0.03785370903596093, 0.06661827262723818, 0.11892852020016388, - 0.14432068415153096, 0.3282436811598231, 0.3266740235741662, 0.1946394793236493, 0.15478968345565552, - 0.24537106254924856, 0.20718119058062268, 0.13434945540047816, 0.04617565642454827, 0.422736392918275, - 0.23069138847891102, 0.53667929707057, 0.0381543179436511, 0.06661827262723818, 0.19078130548694677, - 0.15661380235255568, 0.03964937389180779, 0.46901010232056684, 0.3796703310729529, 0.06661827262723818, - 0.08189912823698961, 0.09525126632728771, 0.32575301935895146, 0.14168800172093265, 0.05464285254710122, - 0.21276719665746036, 0.22771936776058424, 0.18020877120019452, 0.32943897871558986, 0.1669133586566785, - 0.009358998306512732, 0.09280703469897092, 0.08513563481148223, 0.11676133906673604, 0.1855444086546846, - 0.3135673236612327, 0.09803905539866238, 0.5326930440406559, 0.2722911634559491, 0.11515665281331237, - 0.1617828311792017, 0.07010531970066201, 0.04485759991942812, 0.0967607448894554, 0.5393212009414654, - 0.5082260240481232, 0.10056137876227315, 0.32826579381899396, 0.18686264016107576, 0.6090777847680184, - 0.315587505052964, 0.051466557923326765, 0.16441937048162286, 0.4209850410499459, 0.3144434815484288, - 0.04043868715767719, 0.06674266610767518, 0.20886085126829634, 0.5516133809624264, 0.3432885508007615, - 0.28014571987048326, 0.2781612857732992, 0.2941999293230829, 0.2792609828698312, 0.3116147759178026, - 0.26308203233827143, 0.2793478665241167, 0.17987450866494328, 0.27453692076977587, 0.516199264103181, - 0.31021609814288575, 0.3771309845221744, 0.4798699248887865, -0.19351321890184714, 0.18507321429393153, 0, - 0.24316143239850643, 0.09300927300265503, 0.32288305842834075, 0.1987798576221869, 0.12230132801317936, - 0.25835859251564336, 0.11784002226463015, 0.16146999112052055, 0.19490367018172675, 0.4326282517573631, - 0.26721398468642005, 0.21936793841823518, 0.34539902036690545, 0.1118272710248441, 0.38223392932140904, - 0.20405346847263803, 0.2425245135166538, 0.19199400727318092, 0.26148605791474405, 0.0693828397715119, - 0.1675312942625895, 0.148364109809306, 0.07129857493421066, 0.07518657431305718, 0.1193105364493632, - 0.1268499803014925, 0.537752407886456, 0.30033591269197474, 0.19640672368409628, 0.3038903032097406, - 0.09346839166019388, 0.10951541909061036, 0.5034636943018995, 0.3094994618282333, 0.22533935134783528, - 0.1471203280989836, 0.19356607585629934, 0.45373184175756665, 0.2890047273070861, 0.2934137698258786, - 0.1553532989968154, 0.03961745769629762, 0.09619709306934641, 0.06661827262723818, 0.01979584680820731, - 0.19177105021974813, 0.33927943256394305, 0.12895577873897246, 0.11515665281331167, 0.14073511035073985, - 0.23099211675485615, 0.2864560222374765, 0.18201348316871552, 0.10458571489252469, 0.18036233193252096, - 0.1313361284788698, 0.1451385465799791, 0.3077602001694216, 0.518019974254126, 0.12723889087215728, - 0.1891995802511322, 0.09639521852216365, 0.3444057130671006, 0.33062376894711715, 0.3316077273647739, - 0.17987450866494328, 0.30059928770649663, 0.2573157448745054, 0.061394184344090816, 0.16523960440742802, - 0.15965267030947022, 0.5347219026098982, 0.18831591339970252, 0.19926066313151325, 0.23590368715109952, - 0.5365989825313259, 0.27311502380322794, 0.42902956944374304, 0.1549492349536802, 0.33274718925486596, - 0.038928625780509526, 0.32689274561899523, 0.2607836000864464, 0.04266120163974887, 0.3795268978974595, - 0.1982034081968182, 0.06862386558393187, 0.08800023282982478, 0.11531525616826382, 0.1278866640219727, - 0.08979233421978199, 0.3055410241416691, 0.14890878518276315, 0.20842168659347426, 0.17001440448035862, - -0.24400533290942172, 0.48705252359250045, 0.2876203680012903, 0.46795942896271, 0.27452511532482377, - 0.10310245602261256, 0.22266792790399753, 0.22918511473170175, 0.3135179347097989, 0.27433415735089534, - 0.11080708279879149, 0.2689489264944346, 0.18935515188556334, 0.2843965206784964, 0.1546912417215197, - 0.3282477770342024, 0.455527507006655, 0.78055707921814, 0.01759982571955211, 0.1961475477211584, 0.2816229267716631, - 0.043378767807424716, 0.07496675624439911, 0.25807513813232646, 0.31136781420587895, 0.21977593463775044, - 0.3363194801343159, 0.12643949072276747, 0.32548960241256286, 0.46088300366766444, 0.25877962022635553, - 0.08281575532345375, 0.32548960241256286, 0.08311768156398827, 0.24704507182015556, 0.19444262893604417, - 0.5202742966321886, 0.06661827262723818, 0.009220627584454438, 0.4790918759529187, 0.39467335914174484, - 0.2380370617423221, 0.054325890456286954, 0.5177197700619516, 0.44800998970235484, 0.005203664987621584, - 0.2745419626809939, 0.30445561045253083, 0.27530476751262395, 0.16369503299938515, 0.3426644313527063, - 0.1665522817588889, 0.1533575077011894, 0.08430638094635687, 0.07223738735434541, 0.1852064037081551, - 0.26988081549746384, 0.1834956967577902, 0.10788652828380382, 0.08187771114618997, 0.36632596539819556, - 0.15578338191888316, 0.034736252240175715, 0.22203761615115897, 0.09709437476053429, 0.1261259174928246, - 0.04816136895222885, 0.16599106466580094, 0.05449141461934774, 0.10645490767628266, 0.3226788642329158, - 0.3889687128640305, 0.22323103805569833, 0.23404786923349047, 0.12059093221431767, 0.10513298475613368, - 0.004900799665618403, 0.25096789318990276, 0.15654078858958745, 0.20135891927644903, 0.5805529846492422, - 0.15581648498487227, 0.03951292588924065, 0.3343384270866011, 0.10309800296843469, 0.21190677879365066, - 0.16726079625228737, 0.06809108185958343, 0.10227047875482323, 0.22440715771046643, 0.14421033176273867, - 0.242009441753189, 0.15623441725059445, 0.2135278651609451, 0.24072075950289426, 0.05592314565806508, - 0.009715008415337048, 0.06661827262723818, 0.09165272742352529, 0.22143894315415247, 0.25334436906523783, - 0.1373708452288792, 0.2961030605025819, 0.1608933208254445, 0, 0.166492654083207, 0.1956432826628799, - 0.13650933483607267, 0.2030959053789438, 0.1585095528012995, 0.10975726459822523, 0.3363761272064294, - 0.5286435683471208, 0.2017020464068063, 0.1607234883071799, 0.11344827932728764, 0.010993581528342598, - 0.06661827262723889, 0.4547471894681162, 0.19569966375001652, 0.5123296996551828, 0.3633418754788785, - 0.21600052104502568, 0.2345070541558266, 0.37624214274485074, 0.1045128130629575, 0.3370791028482703, - 0.21301109200878282, 0.1787747153040098, 0.12136070274963598, 0.13036707031275332, 0.07016882888072369, - 0.1858776034568496, 0.17723844247600334, 0.18299262316067746, 0.25252336929304764, 0.4773181655738177, - 0.34902356352494895, 0.17034587427020428, 0.1313744758918957, 0.10397875532424614, 0.47363730686600974, - 0.23417298075489587, 0.12356098775011576, 0.5358226456330158, 0.17840145705537339, 0.268591093429976, - 0.3322492130422678, 0.08846028997900106, 0.31486189364650546, 0.3453519219241351, 0.33020734557394316, - 0.15543474129478238, 0.285877529468316, 0.33835285789598835, 0.22841284204041587, 0.14836271990395575, - 0.06696311744325231, 0.20084691673944366, 0.16380905283287941, 0.15417250372041658, 0.017102493965515945, - 0.3380380290305233, 0.5568953293620512, 0.5404462668406618, 0.4432268891375103, 0.44828011232680953, - 0.17236654308021065, 0.19811591783735524, 0.11515665281331167, 0.6055693388454298, 0.05909090862417614, - 0.3832947710912994, 0.12364432020439753, 0.07504069763352166, 0.305890663679065, 0.17249255433217542, - 0.24714091701571522, 0.3189382459706856, 0.16135295315211398, 0.3666420285578804, 0.18112178778469565, - 0.591070379280171, 0.4046927211407634, 0.1396116384802928, 0.08973973094728135, 0.15628668668093698, - 0.5977391375332719, 0.17134023618657926, 0.19605398433050142, 0.1554102414264313, 0.4540814370525856, - 0.3053786440662748, 0.44892238452678285, 0.06537086203598924, 0.32966739125632877, 0.2755000731363522, - 0.09069714261331956, 0.23918442930484612, 0.06958009177098999, 0.12482997215803443, 0.046924842012215015, 0, - 0.12285685597766187, 0.30919907583637574, 0.31098722403666723, 0.20622303873956474, 0.04425496011145166, - 0.21593349902661602, 0.21517887299575147, 0.11386194181018693, 0.3673741760578498, 0.08768541376860466, - 0.8865162709459913, 0.1582643845034768, 0.39993386281810384, 0.2045783837925374, 0.11919995147468608, - 0.32121847845564533, 0.39506133950562644, 0.05018722995518228, 0.06961701948385274, 0.10971246632986537, - 0.2520746008031289, 0.1357137711493597, 0.623497542497475, 0.23717525085984736, 0.2693739203616082, - 0.14346852903148774, 0.325380154824536, 0.3536341141266014, 0.11964119643860241, 0.08846564336442382, - 0.20739931366175915, 0.072763074173929, 0.18252181868959946, 0.5760831531130424, 0.1790649773926632, - 0.07867942565244036, 0.018079892441164702, 0.01757116881000779, 0.5249909848889507, 0.12110596763801483, - 0.100609156038403, 0.06661827262723818, 0.288281798901688, 0.18225327049606888, 0.41748510939509853, - 0.10681100334891219, 0.08172278994168984, 0.7747683323839338, 0.06834373818207685, 0.11605553197040491, - 0.023655918749675094, 0.5855438341488682, 0.29225851110626927, 0.2923497656666608, 0.10656146476271104, - 0.0037221791807270036, 0.060979770781379256, 0.22841284204041587, 0.11405415622582371, 0.31148947134992, - 0.06632238229212971, 0.3276719951952415, 0.14553212597864335, 0.21432341881993078, 0.5723564733031681, - 0.2347627996519672, 0.7911992910268058, 0.3709770172124492, 0.11256698264442153, 0.36853195356348006, - 0.49160513354993485, 0.2364495478494714, 0.5084934820347127, 0.3370114910295942, 0.15255341781329512, - 0.2588718297679632, 0.31411343616215437, 0.44844874664331397, 0.5480693848947817, 0.031564821896110234, - 0.3384318214965636, 0.18979035535398014, 0.17529890935432307, 0.04906829546544595, 0.689791232794043, - 0.0228893950285719, 0.1313361284788691, 0.0399972864728765, 0.13728540915827056, 0.5390742544575104, - 0.1353526132077324, 0.21707729213991295, 0.3472066973753407, 0.20593884378040583, 0.24333410136340303, - 0.16829624582589453, 0.4108510900628375, 0.22523310729658216, 0.28430818102555877, 0.12607543915232863, - 0.33328789259433306, 0.5835736125509566, 0.03620294870437887, 0.192805201212821, 0.44535815355460834, - 0.2670215519990761, 0.3232231737145046, 0.2832359647633679, 0.11025254109875617, 0.026309065638425878, - 0.1572487310294042, 0.5757719162685034, 0.40384227354262187, 0.10642157092607994, 0.04642289510988108, - 0.06661827262723749, 0.46379158995117675, 0.07829973805611497, 0.19373878593844326, 0.02000568307316743, - 0.013491008879960638, 0.683369986404438, 0.1835806914865657, 0.12355728024769848, 0.24454152658452677, - 0.03473745742303872, 0.19426716607983385, 0.1163281375173615, 0.1720392946075918, 0.05407511962240976, - 0.11541159889836497, 0.2321500000233897, 0.03413532461442662, 0.06661827262723818, 0.07951165330204288, - 0.43874588526086955, 0.008728387537275159, 0.04898786086782716, 0.18607739600934795, 0.16403852800929258, - 0.19440676992106506, 0.17987450866494328, 0.029533978072008617, 0.2389484908545651, 0.4852355044455304, - 0.33717733262604077, 0.33706735503484875, 0.2654569371750945, 0.10316756656265347, 0.215277437427217, - 0.2386472583093022, 0.15506238805951092, 0.21814638351741883, 0.16611759697610162, 0.17461583370207437, - 0.5077698167850765, 0.18869587536662735, 0.09635201083467396, 0.27779488919890694, 0.5034636943018995, - 0.21141280000360527, 0.06537189099033383, 0.18216027730651105, 0.15255780429408325, 0.03924256782803633, - 0.1570472687071833, 0.07584764856308253, 0.507290844773797, 0.052468151175097504, 0.06580526579877595, - 0.02643812932672562, 0.4789748555868272, 0.1938268052204202, 0.056850897273724214, 0.27654824045416954, - 0.3406059452891081, 0.3831898559491125, 0.40481688907773844, 0.3342694596498159, 0.040912157830665034, - 0.2402116291647013, 0.13739481785647994, 0.10875618356291339, 0.20514911836749888, 0.32482878745181387, - 0.16988300475117943, 0.34805975374928555, 0.394290115934197, 0.27437048712886153, 0.07060015655808187, - 0.23761244452637947, 0.07059129616365697, 0.21714607928317906, 0.1608666148072279, 0.21517944296162597, - 0.19605398433050142, 0.5237843030714768, 0.08218681759648826, 0.080710923124878, 0.2718203776507806, - 0.10262642704180536, 0.6710110595329365, 0.22841284204041587, 0.05675245762204321, 0.4401560816286417, - 0.1318119800997479, 0.29242741844338793, 0.41559249022685435, 0.10383254333347201, 0.3052858655725575, - 0.21568793160548475, 0.16185017046240496, 0.12399669411688197, 0.17411085763008186, 0.5418289646960209, - 0.5097303143950399, 0.014064802305999283, 0.11774131292236044, 0.08345002573033548, 0.08947136490549383, - 0.21204430895050905, 0.28119534108784644, 0.09085206088116542, 0.19605398433050142, 0.1802408628142974, - 0.17339924709135313, 0.1313361284788698, 0.2448880278290247, 0.2367044950995557, 0.056121848015741264, - 0.3306778295848537, 0.30135482552597603, 0.07113186497801449, 0.27062620718870023, 0.21718414866264504, - 0.10645048137908147, 0.17752018501277333, 0.06626433087992463, 0.37006352974243806, 0.16837119745041948, - 0.08837541608219347, 0.19096424242871737, 0.20672319729556318, 0.09464416810564598, 0.1900630273728941, - 0.273392692190418, 0.23918182808967717, 0.41722018673575745, 0.20506806324227542, 0.20698737218230331, - 0.13482189022420638, -0.1682858585451541, 0.25511428144572096, 0.28321516533318813, 0.33810862907497674, - 0.08855139545832247, 0.04348099663436952, 0.21826076528225788, 0.2855428531999113, 0, 0.16269176902195734, - 0.5097302836170859, 0.12148380190414465, 0.31427343878316594, 0.06033829847968959, 0.34842935969923006, - 0.016967329504708143, 0.11763059932407587, 0.04978622438512729, 0.2939756096694609, 0.274021716221613, - 0.5338921599927169, 0.04973565462040866, 0.09131587526375606, 0.014403056485398845, 0.15900317354820429, - 0.3326212588326348, 0.06661827262723818, 0.41919209133449203, 0.3774567439763991, 0.31215518113914026, - 0.4260401712688183, 0.40321368544981695, 0.2883933294789928, 0.11847375720474002, 0.31618379973940663, - 0.336129882336587, 0.18101982561917365, 0.1051306963859627, 0.36915831190323745, 0.126151383554674, - 0.20394412527385855, 0.5565095766114657, 0.44842719071598336, 0.3551967448640965, 0.1094946136816057, - 0.00515221472853109, 0.27944965335594607, 0.5656912813566475, 0.4050498813366601, 0.16754850834429144, - 0.1760683983866548, 0.36706333013888764, 0.20992121714103473, 0.05153563606543693, 0.11922684824075075, - 0.11075562782624152, 0.029918526315697885, 0.2111508425187206, 0.22996898765836427, 0.12436586991438045, - 0.25310271524739075, 0.09209433281286436, 0.07092709010050871, 0.1637000426141465, 0.19535405334151215, - 0.11790837015416444, 0.3375103649024354, 0.23816213449650417, 0.2299682071330598, 0.5902323726173142, - 0.41572901729025435, 0.040065250168719674, 0.22642590921167, 0.17736706081635145, 0.29191714746083436, - 0.10859899965566862, 0.1477283134084883, 0.20314736475187287, 0.18513266411159607, 0.530108679963384, - 0.2955077587036236, 0.054396747177921485, 0.17528496763930088, 0.2157653540995836, 0.23919074800727605, - 0.2900375155273124, 0.3141276529112792, 0.31704793448805557, 0.5757472475001504, 0.039336424819464005, - 0.18478744272988165, 0.15196219369190753, 0.34181598935637325, 0.14832693886540346, 0.4461253390023952, - 0.13197252535822143, 0.19098220054987128, 0.026199710826786734, 0.213417869372925, 0.05412538635073, - 0.22626708262758652, 0.29651258231023114, 0.04713330707725726, 0.18876448023535816, 0.1711456674398486, - 0.32643609795570167, 0.04657559510930337, 0.07050257458250431, 0.23273525345875754, 0.1100275571579691, - 0.412527474695773, 0.14018808099315327, 0.29325031153243275, 0.18898998747003315, 0.039321115189251014, - 0.13090434240779178, 0.11658522812364411, 0.3466449554953709, 0.05807100194225614, 0.17987450866494328, - 0.26237039789099087, 0.45875089497120436, 0.160329940616758, 0.19175865400790051, 0.14042069667404292, - 0.17987450866494328, 0.23257953946751236, 0.23029840035188434, 0.2797829691210155, 0.4075964705338899, - 0.5102615388298253, 0.2207419288958228, 0.14895900761967412, 0.23990167138868532, 0, 0.5442432103713567, - 0.37108959970482897, 0.5701838918125574, 0.24663109831499044, 0.4211572553825049, 0.09901477795482291, - 0.2321125368914628, 0.2627657700512195, 0.018564273922055233, 0.1296455750886046, 0.629099334105955, - 0.01280146976671497, 0.5392491962167478, 0.021048952310626173, 0.6541829522513652, 0.06661827262723818, - 0.08957316223247877, 0.19332736867148703, 0.011338664253034567, 0.08258984753718422, 0.2990370460359574, - 0.23283911497416157, 0.18824079565796614, 0.26683709816838086, 0.49451099280736444, 0.24914304478285082, - 0.4956030317071028, 0.17309145498864018, 0.3978467101724294, 0.18312049250986848, 0.5348288728755165, - 0.03804287248820405, 0.16418717662859217, 0.41075328324930727, 0.029959184494039386, 0.20589681449809483, - 0.10841693925307544, 0.5067739007010421, 0.5200745058839225, 0.1449371418833562, 0.11674809528718257, - 0.3188414222381795, 0.016112732532628994, 0.2115512151699475, 0.3333322108266618, 0.1530471745451316, - 0.2106815235413209, 0.2472666830517904, 0.07543376587373495, 0.6909282203302415, 0.07019141394164657, - 0.36744816500403954, 0.10951006772182463, 0.16573946666216846, 0.3928222347727264, 0.6061294346646985, - 0.10989685296572961, 0.35787081590996794, 0.021672015452827514, 0.40201331828048154, 0.7935475297462706, - 0.1751860601212606, 0.2692643286280971, 0.17681580929456361, 0.30115097845604577, 0.37521244563988077, - 0.21223341318545935, 0.5396689356025347, 0.5774968842986344, 0.496409643506451, 0.22124531668734468, - 0.1288354693430067, 0.3162666535094477, 0.21019296736725288, 0, 0.15683545455355122, 0.0333136583695415, - 0.26301182725529587, 0.23085960257800792, 0.09397066794815898, 0.09478248424087367, 0.2098015545451632, - 0.5476035653270229, 0.18767718944018702, 0.17184784339756362, 0.26149106582637005, 0.19665390353219792, - 0.20882410033528015, 0.09626331401907322, 0.15182342813956046, 0.5437337564088983, 0.17600365078203273, - 0.33835967270414363, 0.13644895495410428, 0.06331160309033315, 0.22267357934203683, 0.3093101735576063, - 0.20709342208199272, 0.10867170993070278, 0.1427031053022803, 0.39864215132082137, 0.16321146459333588, - 0.1313361284788698, 0.18586737602105563, 0.05751497030712064, 0.15689745427371707, 0.33170172886460214, - 0.20438307636170516, 0.29320766720900626, 0.1730778608124703, 0.31852574013064605, 0.2051146946240566, - 0.408616371790216, 0.38323272652364526, 0.08128332804627196, 0.4029464274810072, 0.22962114061742162, - 0.14108510669756147, 0.024116201478221553, 0.22841284204041587, 0.01057601165959452, 0.19861008486087076, - 0.06661827262723818, 0.22261939447849102, 0.15205298396580813, 0.2831054527106636, 0.017053053689377175, - 0.21888946030458678, 0.5762886386784155, 0.33911725989490593, 0.3081536285210196, 0.3473464955285018, - 0.468415874049893, 0.552002074487973, 0.44947287976819467, 0.3724719602659704, 0.1861674421361897, 0.286127060285742, - 0.3365261850809039, 0.23061726489487303, 0.12806342319406222, 0.05285986332049275, 0.11402209049688951, - 0.3099237693606455, 0.08913343884122753, 0.3366307617654116, 0.2717153329115924, 0.0582831894814229, - 0.11815428249866276, 0.29223139005894344, 0.5173507936225724, 0.32919291261056594, 0.1769503583207417, - 0.05979800467090284, 0.12556647237815421, 0.11653178836386599, 0.4340337093109416, 0.22606995523271958, - 0.1153008680721135, 0, 0.04714607820592668, 0.19146416797339977, 0.43729377661794605, 0.04044190973474132, - 0.06418597970547513, 0.29481673007422615, 0.3011073244226059, 0.15859244919653, 0.18434847395226692, - 0.5602335214729691, 0.20114883283016183, 0.24272338616540176, 0.12602933875148972, 0.27064123281584324, - 0.18209793859373968, 0.20734316628602595, 0.20118807516625328, 0.14740731498087145, 0.5384496244019313, - 0.4864639369628781, 0.5924771374155641, 0.1890935782473656, 0.1513072948083964, 0.2931307447026484, 0.371942604261438, - 0.025461766472894935, 0.2257245247722152, 0.40113255321697483, 0.28873239994509303, 0.033200735831687644, - 0.23846141408908067, 0.2845782000998759, 0.1630098374431909, 0.24452347397921478, 0.22841284204041587, - 0.3599209102622815, 0.012172748100331483, 0.089410406184694, 0.09163729564141238, 0.08500584676571721, - 0.6814531096992863, 0.16597488664580953, 0.2823931116022008, 0.23656762201198153, 0.2152764854039508, - 0.09558506545020734, 0.32270401169399077, 0.11692270860359089, 0.16921348137379066, 0.30639439347298153, - 0.17426327901743185, 0.2550135756221079, 0.8146237469161463, 0.17190253836930763, 0.44683374500350437, - 0.06203420756137543, 0.10968089875775726, 0.22926352479359322, 0.3828383637752915, 0.4630529411859277, - 0.5107564272773828, 0.026268224486146016, 0.25139277719213204, 0.19228219532912919, 0.12351916675687308, - 0.1097085987607777, 0.29082680590156434, 0.37633483607652124, 0.22804411268948588, 0.03578255034541572, - 0.061496798236683976, 0.06661827262723818, 0.05083543147053965, 0.21223341318545863, 0.1833521500169401, - 0.18726430850715628, 0.23999488057132984, 0.10627397237168779, 0.23108350583490606, 0.2403546665605728, - 0.18402912450900835, 0.08248997532037222, 0.18861883496953233, 0.08279774829279632, 0.0789676142247725, - 0.0716408154928405, 0.19012193318001483, 0.05605123377562853, 0.08829154416694496, 0.1937430750872721, - 0.06182411662809518, 0.29648905970165945, 0.13677149388469045, 0.45171778413851005, 0.06358019011959869, - 0.5319298061984217, 0.03545055943911642, 0.3244586068766213, 0.06661827262723818, 0.2931307447026484, - 0.06450102078946676, 0.322404194368904, 0.20930092596441452, 0.32481676364456685, 0.2419075588341223, - 0.47090734293055286, 0.1854697085039004, 0.25118057620371786, 0.3310974573195217, 0.06408030462572586, - 0.33226924535861, 0.33888964096959096, 0.11792458892266458, 0.5278913837059719, 0.5408964354340365, - 0.19173909108521062, 0.5792664059333847, 0.27088905477423086, 0.17283390323322048, 0.1748612898165004, - 0.41038054176509137, 0.5151465498796679, 0.6104596801886348, 0.18130883059272102, 0.2553254453556506, - 0.3849849430673305, 0.06588840995730846, 0.23163516960016112, 0.235812464411041, 0.15942439345922557, - 0.19396324067467266, 0.4219127583772757, 0.2790039108673666, 0.20084691673944366, 0.23772675776887328, - 0.2732367515464427, 0.3223028591876373, 0.1743030817485235, 0.02360653983359817, 0.018619841516357843, - 0.261638205662581, 0.2316716990486203, 0.01806331253212751, 0.3231016151243697, 0.17603957820780072, - 0.0891880895805128, 0.510313752488137, 0.36050438858573947, 0.1272698801786011, 0.07059254447487363, - 0.5154963503659117, 0.4108277312168711, 0.18608252424769062, 0.5826633864362951, 0.4019898659306083, - 0.062346258893878695, 0.21399397213193364, 0.018101407280136296, 0.014985068249152458, 0.07136859847502224, - 0.3094385085067165, 0.2308422015468115, 0.32548960241256286, 0.39214071607622597, 0.12061214595420038, - 0.22774910902097134, 0.3111861037774724, 0.41758508101420994, 0.2089970965084664, 0.2403672784645003, - 0.1848938049001979, 0.40202448926312484, 0.2250920188865196, 0.7840460577337216, 0.08854579928782579, - 0.1313361284788698, 0.167473670270346, 0.2199434778849462, 0.22841284204041587, 0.2724371245131927, - 0.4234165859895442, 0.12100474466189662, 0.06661827262723749, 0.07821305638974109, 0.04940439152650239, - 0.3152092196154294, 0.05312690082326059, 0.1171764649017736, 0.018451600376240742, 0.21349279141156263, - 0.17242215790295554, 0.2263142211971809, 0.13409630556640506, 0.0222273309913115, 0.5450808093737798, - 0.1372175771852086, 0.25684701784486763, 0.08434588265336178, 0.1668994513411018, 0.035901184140574166, - 0.1254048152746519, 0.9360178087190756, 0.07314513133784782, 0.4697910220604739, 0.19885836809799698, - 0.06079282080126896, 0.22841284204041656, 0.2713123819887913, 0.6573209681577261, 0.1682694609417028, - 0.01989258920219618, 0.25811727843775256, 0.10208118834166645, 0.4452297662968534, 0.27101067483049784, - 0.051293393540540716, 0.1441565248164276, 0.17908389619784743, 0.024363693145655018, 0.7137966439011507, - 0.18881801490490208, 0.16066326638457262, 0.04117928513436462, 0.260009384151893, 0.18163490299564025, - 0.4269879056995214, 0.14572717115235062, 0.015824342252159878, 0.5933890489332982, 0.1590197887910831, - 0.014947178813221529, 0.40643548957315867, 0.3244242657206599, 0.3639570959040288, 0.08168188522952655, - 0.3993473153287818, 0.09332715484933586, 0.5861294481147519, 0.06661827262723818, 0.5794407653187772, - 0.2702638418354854, 0.1514720873814461, 0.2632787538042017, 0.1594929365006567, 0.187378111754141, - 0.051775167136048884, 0.07028514428768652, 0.033412970628484244, 0.14944504424895738, 0.10711178550850001, - 0.23588842936180934, 0.1960267310382545, 0.18759246847417294, 0.16197095128387606, 0.18742351579298366, - 0.22978628349575772, 0.2981635517842677, 0.12443824723131872, 0.1388927138672043, 0.17195809113263363, - 0.20114879390091084, 0.2725847205877298, 0.11268544237207453, 0.0872920490021255, 0.19185432026681792, - 0.1240735108313834, 0.18266295294063303, 0.5300627091090289, 0.09957156833681285, -0.19395952493443508, - 0.07497063265692765, 0.11193360722846478, 0.5249693180377513, 0.12570991570162385, 0.37981784798456775, - 0.11928879066181738, 0.521628802488928, 0.07814170612617935, 0.1960945468201944, 0.12752675607765532, - 0.26488446975061763, 0.1745401618903006, 0.4214085442993368, 0.33737941886607353, 0.084090325801083, - 0.27040874913061014, 0.27938287550529517, 0.24623602278389697, 0.009327622465423084, 0.144536896010413, - 0.32548960241256286, 0.16474712014815207, 0.4898814011468684, 0.24932986037596644, 0.15363053704565902, - 0.18009317544133827, 0.17330922589413408, 0.4564766235905316, 0.3360719844726701, 0.1221444177178302, - 0.26371135590150785, 0.15454106227688452, 0.19222647283935104, 0.20409299720555807, 0.5542482100814883, - 0.645945594247393, 0.28793781483450476, 0.2687192195974903, 0, 0.059862473155517286, 0.30771391689668776, - 0.4402382052143465, 0.27588048910458157, 0.3219133022605981, 0.49966183637015676, 0.18441401191039652, - 0.18076057059198009, 0.27989685999681296, 0.21443618220160524, 0.5505978838167958, 0.8876570715390528, - 0.740237742106583, 0.2885670496282483, 0.3769574953463692, 0.1746865325114389, 0.4052727821540929, - 0.03242249290272296, 0.24545108449683786, 0.14764808219426218, 0.23761927850477127, 0.12494117551006056, - 0.18770901171883517, 0.2590930966325911, 0.08789046949715609, 0.18666984731732922, 0.1228177396348352, - 0.12851607712846752, 0.36281077966875525, 0.33003018186784977, 0.3572505405468181, 0.20916305019803563, - 0.10896106122857525, 0.318859594889314, 0.06128857851303972, 0.45620206381103545, 0.16745512335689963, - 0.1260291806791256, 0.22955825129848295, 0.15807316579247602, 0.16390777799867307, 0.10630245282376963, - 0.4105899246214067, 0.16384296861581013, 0.3549646883143908, 0.44811672174693973, 0.16799770030429598, - 0.28203029962691906, 0.3815522206414318, 0.12811456903691823, 0.326313209499849, 0.30845033073971173, - 0.1761637339796442, 0.43383461762757797, 0.4939640666188759, 0.12880078340210213, 0.04200034956222872, - 0.25415546985834747, 0.5161873036856091, 0.0847185054804102, 0.17090437946857634, 0.3219338260975026, - 0.13574561866261747, 0.1546833422558941, 0.047064188680747236, 0.237960294629987, 0.06195567902014747, - 0.07906991628087873, 0.19214447919516223, 0.17579081061228188, 0.3163408848593593, 0.1996306367048029, - 0.32389962012085066, 0.21271991941552715, 0.2378233544038908, 0.14277668834002338, 0.46696680046824407, - 0.5398370668565569, 0.012490800113003313, 0.10683825233795603, 0.6298894504132458, 0.6494508150585399, - 0.4144675706565578, 0.21280050497760283, 0.11515665281331237, 0.08283129783995292, 0.2837531642443454, - 0.06661827262723818, 0.20372662806455916, 0.13297336218248848, 0.34303307388970594, 0.5951629315064934, - 0.37402798259863634, 0.3979116257102722, 0.8604281715688679, 0.6201988552147374, 0.5424403299736692, - 0.12295987741408296, 0.28977998994880705, 0.23865507351229726, 0.186286971228457, 0.2446705980762237, - 0.1785867931557858, 0.11559555901469395, 0.24374126817549402, 0.30040616743747484, 0.329739812962568, - 0.36617824768006707, 0.13318888280173347, 0.1764528932985213, 0.16310056593496539, 0.2310960014127151, - 0.07280888288401571, 0.5276235967490613, 0.5572581870826647, 0.11745501136420419, 0.22092835080745607, - 0.06934703933768241, 0.08682617439565574, 0.18969271285189465, 0.20762356162464327, 0.33942139298407087, - 0.20415987114821396, 0.1879990724313093, 0.12094024128248411, 0.27283751524752475, 0.26646857568491, - 0.43813004051232435, 0.1748035670935256, 0.29680591477364887, 0.04678369123778638, 0.22422579751177074, - 0.20568850436411484, 0.12408408067844524, 0.05388769270186652, 0.1651287425162004, 0.5532726606421281, - 0.05974689581955447, 0.06661827262723818, 0.1835280960353658, 0.2296778849327739, 0.16020408504568878, - 0.12289924949936977, 0.058966267325014005, 0.5351694056261399, 0.2941359899597052, 0.07636947935921833, - 0.5415199503336054, 0.12655507781260358, 0.3395590956385419, 0.09624055277875285, 0.11674795845423641, - 0.12905852675092486, 0, 0.11880646822762184, 0.3542057306500071, 0.2604183589082075, 0.4601609869865387, - 0.12510363856505982, 0.16181316012079183, 0.6128750807283846, 0.2914013728170825, 0.1013611900905773, - 0.1993412161028517, 0.27521682253192464, 0.3603877346416269, 0.01721613050732533, 0.170644675884839, - 0.003685158731554723, 0.08483558286632503, 0.11186616966099205, 0.2008196592560104, 0.17248456085936992, - 0.3063114750655977, 0.24308811539307063, 0.0497390958640376, 0.2963827257636579, 0.2652875838678686, - 0.0724155880088322, 0.13017738232290893, 0.23187595567257943, 0.5495818645982804, 0.09608943886287859, - 0.1903336222997053, 0.2386184626680639, 0.17412180180558023, 0.015448014937848737, 0.03744532870607898, - 0.1449471073362572, 0.2071578636516778, 0.22635673736434095, 0.5979963916885775, 0.16818747373994752, - 0.19418394549952409, 0.2105186446995221, 0.3316808806214044, 0.5305582455427074, 0.1831896445717424, - 0.13335472384843244, 0.1672184740776934, 0.43372699485047, 0.1858042579844471, 0.04214813680200959, - 0.24748752085778247, 0.21047049064352236, 0.22720025918410666, 0.22198683598605612, 0.12217062515282898, - 0.013778473724197656, 0.15823207067061043, 0.05343111067148194, 0.048712005489533174, 0.06661827262723749, - 0.28415883707111766, 0.2215987932778081, 0.07940825381248268, 0.23187490499617194, 0.38801762847695725, - 0.049580675507954315, 0.11445631307937593, 0.4381307902051906, 0.20960465001787706, 0.20565280102757943, - 0.34066711950277956, 0.2183689746061037, 0.20721713229550395, 0.05155358780579196, 0.29736099137375915, - 0.1362055790529521, 0.03026930599637365, 0.32772401008797164, 0.2978992407856547, 0.1120699227246785, - 0.5358359944857052, 0.17811750395003742, 0.2855411142882284, 0.1081283638397643, 0.45507268652243454, - 0.09638445249486444, 0.24477791604953705, 0.13766509368237, 0.22916095629086367, 0.4317061158247783, - 0.4678953767758263, 0.48545596971125465, 0.058995942276650955, 0.1658824378802599, 0.10904184513898821, - 0.2887683988078059, 0.2173321881758072, 0.06636727615339619, 0.19740580147715403, 0.10134413564226238, - 0.5017503372461984, 0.5562695540850078, 0.12579527006419686, 0.17984130457298445, 0.17040770303872965, - 0.1812948367012769, 0.2037078966980711, 0.025318222868731855, 0.33488026753653133, 0.12909582172951, - 0.08252705493555683, 0.48598133518501885, 0.05295035429701437, 0.017254072488739027, 0.357739329165695, - 0.15091751811927603, 0.2045197027699739, 0.007223104875730143, 0.20998755374836084, 0.24787895479692626, - 0.36274126241364807, 0.16720893943647833, 0.21698844241064663, 0.47176875489506137, 0.25370583234751826, 0, - 0.11913990327165375, 0.14007122372656702, 0.14433142758120587, 0.23626424396305204, 0.16652323123139975, - 0.11819214082128499, 0.5259699655782055, 0.011783494756924286, 0.06795951358877138, 0.24217933536756506, - 0.08279774829279632, 0.33060188104875254, 0.0072853679841853956, 0.062193511421311416, 0.665715886396478, - 0.19365250080875726, 0.19359185488748745, 0.06661827262723818, 0.31600006364822864, 0.11417670242502974, - 0.1935521724049414, 0.3503205289478956, 0.213159884911044, 0.183519405405945, 0.35425086011125967, - 0.17916600571129124, 0.06661827262723818, 0.1714802378519888, 0.4073588209194418, 0.03333098130997788, - 0.24046754144643856, 0.03504589436330877, 0.1963593924425682, 0.4775765566720643, 0.17202378552069478, - 0.17134940151793604, 0.0776532057365017, 0.31277896415787326, 0.19365113797889577, 0.2697733683719872, - 0.1412219803267346, 0.07190925076921163, 0.2683638609068426, 0.37600938362816366, 0.29144659826628005, - 0.2321465052112534, 0.08566811297704524, 0.12842699910851038, 0.5584923365191079, 0.15609401330681075, - 0.17998919314930645, 0.05995353366701282, 0.576145284863645, 0.23047137295028167, 0.04599453755340134, - 0.1313361284788698, 0.24056108464810677, 0.18526318540883552, 0.3548008535587355, 0.07574710585656515, - 0.25132862809855216, 0.40264621537740036, 0.361347687119285, 0.13005736893416617, 0.11892188996841445, - 0.08801225294119197, 0.1434849027115325, 0.1874404532574155, 0.2694521544073121, 0.12016560886226382, - 0.41138098134328016, 0.19025695672106188, 0.2750581553626872, 0.15012065814748762, 0.5827390862108509, - 0.5056562435725223, 0.3871631040296128, 0.217771535285175, 0.0638673196964426, 0.11542649872023232, - 0.13176033722482688, 0.12252007124198581, 0.17647476067223133, 0.06005887592399653, 0.16826069972239382, - 0.3259514234091781, 0.028480952777741445, 0.5759199211940642, 0.14974008531245808, 0.050438843772280965, - 0.008174139941100838, 0.5106395778413186, 0.05477795978676883, 0.15769755664894616, 0.23365142092350805, - 0.30737821697151924, 0.3172032642984191, 0.3191602987014227, 0.11827158626473161, 0.007890299291514392, - 0.04001390067598786, 0.2770965696540148, 0.0977763130214097, 0.4442578366663403, 0.2435167893499661, - 0.28771456029285886, 0.3099211475677942, 0.15062125152861802, 0.38899784130772364, 0.06709810818997547, - 0.07209758433934439, 0.329323014553659, 0.39677784471182187, 0.3102949048418658, 0.3790094495075501, - 0.2208834289618546, 0.09345749296673102, 0.038985895897994324, 0, 0.5212482002744235, 0.2544712689797432, - 0.11570520181254768, 0.3970462111654548, 0.061040658938485336, 0.515295302980393, 0, 0.19092902530946332, - 0.1122585155320015, 0.0921536894139516, 0.12976866045703098, 0.07560400054478299, 0.24078175237217098, - 0.2594500279112651, 0.11283763492079209, 0.4614011664073408, 0.18975014022623204, 0.13428302016175075, - 0.25369466126010487, 0.07851294097705727, 0.5049294656899319, 0.5085630690103748, 0.13523369963513235, - 0.20758975196088603, 0.5663050299940903, 0.5870109442309326, 0.2695408353367331, 0.12076169243260038, - 0.29423208421595887, 0.004309247693600403, 0.40224943047737594, 0.19541126583845114, 0.3297265488322192, - 0.3561752266082823, 0.3441474211665895, 0.316916417008194, 0.22186241335725335, 0.2194518683198245, - 0.23428928294303272, 0.16430458936215678, 0.3105535387525651, 0.3894938386326629, 0.39516214637230923, - 0.4466790802333918, 0.1776367762839985, 0.12340838217459175, 0.23516888355230686, 0.2908050716577207, - 0.33931642567547576, 0.483960072957693, 0.3700444378690792, 0.5035757959192592, -0.11693581823312511, - 0.06584000615803125, 0.2721304721359719, 0.11430817480764881, 0.06661827262723818, 0.2898100070305122, - 0.089766836111846, 0.1946849158808937, 0.3224579705275082, -0.5512881058988182, 0.1313361284788698, 0.410253632227172, - 0.11797616935750448, 0.1460855125332457, 0.05585961686333626, 0.37443565710818755, 0.03425343324165523, - 0.10079588911210918, 0.726050810777326, 0.3074993160768403, 0.5120708259279341, 0.10203345310258004, - 0.03732143432562384, 0.32548960241256286, 0.10273039823254071, 0, 0.4315021252086877, 0.22208804581938982, - 0.12424974251054022, 0.25982516504430486, 0.08689509051865724, 0.3131791716196562, 0.2073323498071369, - 0.3128084394711434, 0.22597752832466156, 0.1925639920031667, 0.552002074487973, 0.2390718708821726, - 0.2640310175737778, 0.17953800453180865, 0.5900898293124737, 0.01119703325856162, 0.2873093015589038, - 0.05279260838428169, 0.3200101046314523, 0.24452706108840846, 0.24629156541622116, 0.38136414967346605, - 0.1875792520406022, 0.13748322310366035, 0.06114621070732825, 0.31305637952630594, 0.17194234325620936, - 0.3301390922219868, 0.05586505894357054, 0.31447711381263155, 0.16782916835725384, 0.2091740880881173, - 0.12188066851114518, 0.6165218794217607, 0.08783497609249039, 0.17987450866494398, 0.21117924281778255, - 0.058793068121460394, 0.06661827262723818, 0.28865298148829255, 0.2666940302593554, 0.03606337228767323, - 0.22905810229856763, 0.211968532709587, 0.5073919733548955, 0.24310328921731358, 0.27033331706349945, - 0.1977964163769889, 0.06317901122229093, 0.14062315597122824, 0.11232422518637615, 0.08969413181310544, - 0.10108181764271967, 0.31683964637881173, 0.27785868175521306, 0.21247903409742847, 0.3451311042855752, - 0.1061380481716805, 0.15292264735662903, 0.18598887004255957, 0.3550608442974242, 0.3602435907646196, - 0.3542213659131881, 0.10312143988551298, 0.11819079449146938, 0.25733480599238756, 0.19921788135231822, - 0.493967669411566, 0.2210966778665988, 0.19956348452340938, 0.5034636943018995, 0.0601134538077445, - 0.15362727362787099, 0.3381617560502113, 0.23225653857273165, 0.14427899730813176, 0.4873102651558769, - 0.3604330266576511, 0.06919966341027611, 0.36364498679367924, 0.5366991418003406, 0.1705150211164894, - 0.22631526496148335, 0.08655598357172954, 0.35096361214609584, 0.4594701810082031, 0.21622076573743593, - 0.2127525405344712, 0.051621021292656034, 0.5178807840939204, 0.6005404546740465, 0.2555640322950541, - 0.18815249969741998, 0.1683950325073981, 0.31362947981477723, 0.21703962682172348, 0.620647776957358, - 0.3177809913174053, 0.6499360711098258, 0.18065059074223358, 0.32548960241256286, 0.0875260370399501, - 0.2132060720378153, 0.28162823868200654, 0.14592589487438537, 0.5331908962705445, 0.30029926986952055, - 0.4308004823222198, 0.2854192252386867, 0.2744618435302398, 0.050438843772280965, 0.09114367736239855, - 0.19982555005620714, 0.09587018285715856, 0.22873997227137605, 0.29053894519321266, 0.1645035341905849, - 0.25896499005812257, 0.2916621875353192, 0.4260816290625383, 0.6053203397534035, 0.0339815338171843, - 0.2337371648687903, 0.04017025189382119, 0.17688525994493884, 0.44713125020787403, 0.05528672828669226, - 0.09961945768298405, 0.018719489444968943, -0.5512881058988175, 0.3858062427202452, 0.07157928173542086, - 0.21834710379908728, 0.220909311305847, 0.101789304351718, 0.3106630243024116, 0.050438843772280965, - 0.3405013374404666, 0.01034133350135276, 0.5254289478249686, 0.22349342553025217, 0.19641613135946126, - 0.17804104311104962, 0.1309057454550832, 0.12192647769443364, 0.5014190651583371, 0.1335788725808787, - 0.3033073110139457, 0.07917006408664752, 0.41799960336612796, 0.06661827262723818, 0.2576557363051799, - 0.07298322722641795, 0.13806766407360554, 0.21992835971392263, 0.06019293207938788, 0.02812723705313147, - 0.1332724134505592, 0.07580856785364297, 0.12872057247476756, 0.21451864432862125, 0.5089566319585648, - 0.3478000012665404, 0.05640639944448396, 0.06020186775669765, 0.5091275957848874, 0.2572201629829349, - 0.10613609165808054, 0.12027647794893061, 0.25613388047265306, 0.1452771271207857, 0.16151713698333486, - 0.07404855540168573, 0.27617836008805025, 0.20850103000988415, 0.28977914392638426, 0.20890443720277355, - 0.1617160272302371, 0.5470968186429607, 0.4403039745713116, 0.25440317037752697, 0.25135317147980923, - 0.18549757260704253, 0.21890609938787278, 0.18027376992933639, 0.1313361284788698, 0.5433997334788427, - 0.25138802310290087, 0.20770396844013608, 0.20404376361733778, 0.3263941871756578, 0.1729931419009965, - 0.11083335199800443, 0.2789132371435174, 0.1417129751628412, 0.1117120644976277, 0.19013783683712568, - 0.061682124659730525, 0.007028614230060693, 0.32006344975144313, 0.0604936591772944, 0.015399392210998486, - 0.31319447227866554, 0.03634165138764221, 0.26385314630817824, 0.22801698553401892, 0.2940633029241353, - 0.1257271778885718, 0.013059089548601393, 0.2436875378840769, 0.6084442781651995, 0.29848329708968846, - 0.22679976167325358, 0.4339138956940865, 0.1999403217460443, 0.2144776772805728, 0.1467257199624504, - 0.3577676538826851, 0.23880624666020736, 0.3048191420687241, 0.06749007896302235, 0.6311797252695689, - 0.2815281804670079, 0.24074257393322332, 0.3665065140089566, 0.2605358323716944, 0.05479330955429809, - 0.18298014735543594, 0.27997373200838843, 0.2941840633670165, 0.14870523008830308, 0.24213334493670557, - 0.1023761796777742, 0.1851057570882623, 0.1405002534949413, 0.2380920401305672, 0.32964203505402545, - 0.3296567599320845, 0, 0.5566096614476391, 0.21282210876501217, 0.07223893556917824, 0.6354921202278798, - -0.09379491812897563, 0.4444176530667445, 0.20088840677402775, 0.3249722675616762, 0.1855007372080412, - 0.11938550627977718, 0.1954048405822314, 0.10483284403119299, 0.3724803915920631, 0.16530546659593673, - 0.2499855126481155, 0, 0.5276815101113217, 0.21431468270956955, 0.10223496655153366, 0.06539757123710017, - 0.3484837704433809, 0.29804828402496425, 0.18086605920034168, 0.02372036641681931, 0.15464170656746865, - 0.11118468431043735, 0.2058425771585921, 0.29769675235603804, 0.1535930753254287, 0.014761568646014304, - 0.059491700599291215, 0.19266742406201712, 0.01593294433248833, 0.3833775738386447, 0.018828687572088408, - 0.5823171734653945, 0.25160740289614963, 0.23367248205564747, 0.19455801051127325, 0.1822892769256109, - 0.27243754930302216, 0.27381360391241855, 0.3708132261038953, 0.22960048940854835, 0.301297720002523, - 0.025896551544965753, 0.10453823864848297, 0.5641583906252613, 0.08402998250764458, 0.2086426094773887, - 0.029542197922640474, 0.08184269337642389, 0.2977653788356347, 0.3163756592629694, 0.2113075183118272, - 0.31472971553766327, 0.19046130601244154, 0.39803602707818, 0.09399878095744355, 0.18121037668935142, - 0.18610473886445328, 0.06661827262723818, 0.2363542756460106, 0.09808879401557177, 0.18624601777004063, - 0.18471957029810773, 0.07163905252050809, 0.187950538521601, 0.36941552295379393, 0.46347657968612127, - 0.27934343625621355, 0.12191080636908402, 0.19615481319540157, 0.06559061403518981, 0.3039087419224787, - 0.27478042228953004, 0.16029813849256241, 0.09929804784507233, 0.1825023137546657, 0.5034636943018989, - 0.2559277003342552, 0.2652751529483353, 0.0028538187073998554, 0.3214623095295147, 0.15516411145741726, - 0.5219724588191507, 0.07464891797593631, 0.085580457344258, 0.1982835018571769, 0.42396223482297135, - 0.2764987073678714, 0.12389146657683896, 0.006122523660437875, 0.036197965355029935, 0.44354456046386415, - 0.18067323793718829, 0.26369941767256144, 0.19736310068953758, 0.20571810684659506, 0.22771751986176794, - 0.12322467457519305, 0.2785614760258, 0.3511781007657006, 0.20585960563551492, 0.08503761070026788, - 0.06587217699867558, 0.10078677154950602, 0.4259172570038517, 0.15268886010116886, 0.36452982295379316, - 0.23887931796659595, 0.09813169400871112, 0.1837992539673961, 0.12638114046837068, 0.028026674380360665, - 0.1628894259415165, 0.21982667644849868, 0.184645291682567, 0.03270748624372957, 0.31319838817782153, - 0.20733157352484127, 0.2282728507563713, 0.12465349027569406, 0.2353872072568722, 0.421305021183022, - 0.26066374187198776, 0.5191105110218831, 0.0767403316952838, 0.32978402427673553, 0.09777551556381044, - 0.222530974776915, 0.2103475582601156, 0.03734370734624711, 0.12581795073786417, 0.15324038674679266, - -0.037191315613499046, 0.2000295558863933, 0.19372942033364024, 0.5678595393040647, 0.25719015227894343, - 0.15263131232925667, 0.20532149904278088, 0.25383185971698197, 0.19152705603831136, 0.18933339268659172, - 0.11782912635083005, 0.11810278666123195, -0.26608014033499455, 0.3532023858625467, 0.2315769005842212, - 0.649757822172451, 0.04421507724249263, 0.13397903013000761, 0.376783801214499, 0.22841284204041587, - 0.5442134058437861, 0.17908116320116016, 0.20030323524531998, 0.3014114101457312, 0.0656389408793761, - 0.04192227627802244, 0.42212669236694783, 0.38624845732509894, 0.1313361284788698, 0.11487785821210718, - 0.04643608871682837, 0.2445923645165749, 0.12372116561229718, 0.08674449936030203, 0.3096004167170276, - 0.23886249897400422, 0.2282682534885826, 0.08427742134687218, 0.18089369555939533, 0, 0.33150194909277625, - 0.4657843883918327, 0.08977650279028915, 0.5429408468455839, 0.4533851130481857, 0.06661827262723749, - 0.49367243303173425, 0.3025645870997266, 0.6667162703217446, 0.19482099973556066, 0.2621690123213994, - 0.06619637229093243, 0.1865380377697913, 0.3577068471254596, 0.22184539048053772, 0.2730111060334767, - 0.14375998769754667, 0.13168030987225574, 0.18760998436306092, 0.11914890451367757, 0.2873555601050387, - 0.08229605644517846, 0.06732894915603108, 0.5460057710993833, 0.28884674954561795, 0.39591265551718297, - 0.3150731027006955, 0.11425967937929205, 0.07880791232470566, 0.06630196710814087, 0.21302183269290081, - 0.15726503781218729, 0.23840467927238576, 0.5828592791183029, 0.26164467505767575, 0.06723089556089956, - 0.13069444977605346, 0.38943945196254853, 0.23089008511615963, 0.2053742015793788, 0.23574124840177402, - 0.020917671088266265, 0.2853711690911442, 0.17223800030774236, 0.240218533745555, 0.2868534098048585, - 0.04743364018889958, 0.2914065483867765, 0.2042129248171742, 0.014027837297021421, 0.06661827262723818, - 0.21854714800205108, 0.1825825590296735, 0.025674173742532082, 0.3353995384375858, 0.32548960241256286, - 0.05185191460878213, 0.15094313782321356, 0.3085999605297623, 0.46631953278973687, 0.4599023539344061, - 0.08095043949134076, 0.04040474391836321, 0.23488964366117704, 0.21715159694003047, 0.15515629432805003, - 0.4578570104759777, 0.6243883880687708, 0.4001190278005255, 0.3143593706325122, 0.07850553594920523, - 0.08510476687185106, 0.3201559051289148, 0.32548960241256286, 0.18702587840522525, 0.21089860513357991, - 0.18745190318474522, 0.5135506797028799, 0.15947749880747436, 0.39020750507479535, 0.2696410775195839, - 0.24957519683491394, 0.07113170436634396, 0.11515665281331167, 0.05465301516779047, 0.016837737500356217, - 0.09518936905181585, 0.24764753595210034, 0.39025578093981117, 0.15089768431863282, 0.3467220481009269, - 0.0452134587587277, 0.246223576680767, 0.1323773642138729, 0.33373745541307825, 0.13309142980618147, - 0.26714168774015756, 0.07087897622575233, 0.17994136093561072, 0.01660169271828685, 0.24515148547397034, - 0.12897995037816257, 0.11016467213177217, 0.3345640703666134, 0.4349062752153353, 0.18239744001945518, - 0.12049414496971347, 0.339065403885816, 0.23063261458332027, 0.1807874253204761, 0.08601927062641825, - 0.2730418537090729, 0.2225671606664222, 0.10907910278853754, 0.4837599619291913, 0.2071196348518037, - 0.1258172002456343, 0.1475904414078534, 0.3519433298762774, 0.11520473684324976, 0.06661827262723818, - 0.20222167119893966, 0.03839479981354769, 0.1383906965673853, 0.16575600819408287, 0.4572256510590451, - 0.11465598105885369, 0.17208814965229868, 0.7701946986858242, 0.20894188180382553, 0.1280480078733428, - 0.2838524529150996, 0.11886020642267782, -0.21640956240820447, 0.45113262061952397, 0.20019866909200507, - 0.10359405859765626, 0.25700023356459384, 0.1560459406259626, 0.011437089890741818, 0.503833973073423, - 0.4223858823538998, 0.25183086823008205, 0.30581128438832217, 0.14588677185613544, 0.07783957978348391, - 0.22030011953596632, 0.5091688574115604, 0.04816373685381101, 0.11515665281331167, -0.1161661430585663, - 0.17772750461101028, 0.17582761123018967, 0.3445341155557386, 0.37906952495890855, 0.13212019878763737, - 0.2346356593939217, 0.3275101478575706, 0.11543318352699684, 0.09062815077869985, 0.3644325060606743, - 0.07928223085121741, 0.29087931837997066, 0.3578485537436791, 0.29542530291717284, 0.4102276595221468, - 0.3128146700387261, 0.12256540552819875, 0.014458550881500007, 0.4452185637984796, 0.19189103652021428, - 0.12464109652690068, 0.538563598573892, 0.180629209764717, 0.13404494267018954, 0.16468158764984292, - 0.08279774829279632, 0.32548960241256286, 0.4876987173037152, 0.1295491649062237, 0.5547093863595127, - 0.47626078614744266, 0.50194702505984, 0.2490761310932854, 0.5516942383267387, 0.37558407505772273, - 0.14442677332832096, 0.16617783986016654, 0.08808012478933225, 0.22078569176898658, 0.05887376456891716, - 0.927708158049019, 0.12337811288916155, 0.05107616752297743, 0.09542047872594266, 0.552002074487973, - 0.1781294155377696, 0.16797330598396779, 0.27938429787270747, 0.04110082132645359, 0.16845855171561183, - 0.06661827262723818, 0.2049230833073455, 0.21762442796842532, 0.20661397742012777, 0.5351304924702996, - 0.65627188468511, 0.2779351050862682, 0.06416670027762554, 0.1944392266024534, 0.5787138251837508, - 0.23056807127213125, 0.09814250796257644, 0.12429864064055048, 0.22511168282311753, 0.17851949663435576, - 0.21440473034424873, 0.33206980687475435, 0.5851261003279458, 0.2300596550936116, 0.06305506510865172, - 0.08061010582912108, 0.19820247581704467, 0.15293974368604007, 0.3470767610589049, 0.5338748278644352, - 0.41870134275066717, 0.337931966905748, 0.5337010193794152, 0.5022005617785814, 0.3340185390762446, - 0.17831051986896015, 0.08398285715692852, 0.29691033405326045, 0.3077023498351582, 0.32122140095510154, - 0.17017663448253376, 0.33442967914854144, 0.11086239941437741, 0.1373158536410028, 0.007220180090157137, - 0.1629754550062232, 0.36324891623919264, 0.5176952452152964, 0.19804893320665226, 0.483849866165444, - 0.03982196974378674, 0.1894846612198361, 0.21137218636536212, 0.0790863562212342, 0.4280750313167195, - 0.33881398011813746, 0.24571791292613368, 0.21221515130798674, 0.042675459565808864, 0.08891380017576876, - 0.11695215390476474, 0.3136580310519796, 0.1280200106287092, 0.3334299719397521, 0.2434094104697916, - 0.3044329344238065, 0.3209225166024501, 0.059398185324514824, 0.4645667971847619, 0.5992362709781685, - 0.29906280983199635, 0.10980334070100811, 0.1045255624070944, 0.1421811261617222, 0.07919957434803859, 0, - 0.1276266807940671, 0.3396188189037969, -0.3964494376010751, 0.6344400431283012, 0.2716653541786572, - 0.33252275020115996, 0.16676181918081956, 0.03270066743673178, 0.19945520933645355, 0.10024495767455935, - 0.43786858187004746, 0.19718543545834827, 0.32548960241256286, 0.1720746211898867, 0.10081946567946524, - 0.12178072405189329, 0.10025576330707348, 0.19676910968949132, 0.46043317325198496, 0.15191593678093412, - 0.3714021269002019, 0.4271874102967965, 0.04899628593306649, 0.03652511988865613, 0.22265553773740854, - 0.12980083712650922, 0.012726368715918824, 0.22049895712672435, 0.707899122290983, 0.24387145865507268, - 0.19605398433050142, 0.22263374955783743, 0.05105841629448588, 0.278161870752797, 0.09575171572631266, 0, - 0.3429980297394758, 0.1701294977443872, 0.4093066174498049, 0, 0.05807797055991775, 0.4321929560462168, - 0.39994120053669396, 0.35176752036929965, 0.11982919602116318, 0.16555372443763516, 0.08096106333201616, - 0.4506846762536903, 0.5191607209160338, 0.157096514801791, 0.1569541538323077, 0.19316598425355394, - 0.019605147867484893, 0.13764402376370277, 0.07401754087919499, 0.019369498082712357, 0.24848201060051547, - 0.2687246425133166, 0.03825371503370764, 0.32548960241256286, 0.0943491008424488, 0.289475306406473, - 0.10291040993081672, 0.32953352582847195, 0.006806197131573078, 0.5413631989556801, 0.07532258475690021, - 0.21928514670341528, 0.13222096820734489, 0.45784227641087616, 0.06672392192513514, 0.372941301183504, - 0.27163862495298263, 0.13773949134136743, 0.4677075738350391, 0.36632630026019475, 0.050438843772280965, - 0.11755252761048983, 0.11903167720071427, 0.5791660223141438, 0.22255919055034656, 0.552002074487973, - 0.552002074487973, 0.09142487269758529, 0.3301995775578091, 0.06661827262723818, 0.18403353683560206, - 0.3026268351162124, 0.13263932261405736, 0.35947666199264805, 0.9591092480218095, 0.04044039299503209, - 0.33140058737714195, 0.1996581527785322, 0.08962339683352037, 0.5143023667212369, 0.08147303476413065, - 0.6056202719543728, 0.20095394737242664, 0.15002825806556588, 0.16879699103649792, 0.2286816341896449, - 0.1346398202585917, 0.35123084546765027, 0.20699268227714246, 0.2512580491721036, 0.19710821923004782, - 0.5352627554533952, 0.10354018925420903, 0.0782749043125553, 0.13325245725665244, 0.08475252054129678, - 0.261201659773884, 0.1857518461749151, 0.4132662802642213, 0.25220460597008215, 0.33055477193695, 0.18307493857970009, - 0.19572277481043304, 0.33634870526937766, 0.1093995888910053, 0.24188999971236383, 0.32548960241256286, - 0.10305584408370816, 0.08854482581960463, 0.005256492697945198, 0.37591786625811086, 0.21955424902493006, - 0.16811315909366273, 0.49750378234775633, 0.48929666255794785, 0.26990217228157937, 0.13590224584256227, - 0.2556143448491314, 0.2266699075786278, 0.17786627619272408, 0.37402798259863634, 0.0538320922379128, - 0.13737605603398745, 0.307689806178541, 0.09223389105532451, 0.13129928800469617, 0.3011110187397638, - 0.19062376285806956, 0.3226119284441262, 0.12276709632645318, 0.2898309764469742, 0.08365651301162161, - 0.10540831494607758, 0.03992024575910042, 0.09936028762430558, 0.025013009008294666, 0.1960320035333783, - 0.255033719914093, 0.11848841118292891, 0.6000841813647632, 0.13543308349837244, 0.34245077495406906, - 0.11245231668149568, 0.1313361284788705, 0.11361932363221938, 0.2720078362401829, 0.04787018343446117, - 0.06661827262723818, 0.2117170049573268, 0.4861146117921009, 0.19142860110957763, 0.3787963099630319, - 0.3263441778215683, 0.07611502832199266, 0.2858218898818809, 0.37402798259863634, 0.25889580341873014, - 0.1261212715389973, 0.22389557161690563, 0.14551532328527794, 0.3736865265183612, 0.4650905842180077, - 0.1288874241201654, 0.06661827262723818, 0.45240761909434857, 0.1652890582352161, 0, 0.21107417904017817, - 0.15675981137092457, 0.3566342770083722, 0.053796468882169594, 0.10943329197139313, 0.22841284204041587, - 0.027258879133600547, 0.012791915099953437, 0.03881421723137076, 0.08747811762468514, 0.2130271139068583, - 0.1604916294634784, 0.1561865499527353, 0.20404232447570686, 0.06992919095117593, 0.028598741679444314, - 0.058559991325158635, 0.2663904655007374, 0.37496942657001286, 0.3619815864416035, 0.047095090440037825, - 0.06812365562940444, 0.1952054506712969, 0.04502859723339035, 0.1956770866576574, 0.24142193972259635, - 0.2931307447026484, 0.14536823415692876, 0.40624035410600673, 0.01962761246767911, 0.07184123530252672, - 0.41241700797716135, 0.32548960241256286, 0.1970162315510757, 0.3189777083900195, 0.02919300644893432, - 0.06643546179866186, 0.34474783671622594, 0.5191189002555677, 0.21674491832657947, 0.08034838293084828, - 0.3028460638395702, 0.32548960241256286, 0.17776796504708217, 0.475034340613212, 0.12112630188062787, - 0.1172808884617957, 0.15636052206269696, 0.23387338091182105, 0.1517231215709661, 0.38894357709921146, - 0.6027371674670076, 0.10394525364005185, 0.20274872507815228, 0.07615011353211697, 0.44946864571304224, - 0.4254871631639831, 0.06811599600193081, 0.16058142345038928, 0.22036073247173046, 0.06961701948385274, - 0.3592481686368969, 0.4239049250000223, 0.023550792950714054, 0.07129664377486734, 0.18052158420156458, - 0.06661827262723818, 0.18958537246941906, 0.2114197663612545, 0.06661827262723818, -0.4053120415962072, - 0.3370739746551996, 0.18552989828763328, 0.09009630272160167, 0.1532253148929426, 0.03195779171801065, - 0.19605398433050142, 0.06661827262723818, 0.4329528440128069, 0.14061511003363258, 0.2023699894798445, - 0.15732237773142618, 0.14617822345860482, 0.083336056910015, 0.05252340993887008, 0.01660385150287517, - 0.3021130646623729, 0.34166912488872186, 0.16770679527045854, 0.16246349952065015, 0.5034636943018995, - 0.06661827262723749, 0.3080199085194844, 0.1088914166185484, 0.2777934706897474, 0.7263469571040906, - 0.10328202236916259, 0.3303492407082959, 0.5377328800525478, 0.047084895750759616, 0.13077132186422427, - 0.17987450866494328, 0.08119599595122402, 0, 0.6105920261248061, 0.12700442454454094, 0.09778545136800225, - 0.47129542998104423, 0.8038842148141915, 0.08866207348161105, 0.08622228553300408, 0.16211623590897886, - 0.552002074487973, 0.19361143208441017, 0.4545362256393797, 0.1313361284788691, 0.061113720458038034, - 0.5638094333415264, 0.011238503288780517, 0.22841284204041587, 0.08814448809588589, 0.15973085433949183, - -0.3472113782852959, 0.18565614199005698, 0.039684078087451655, 0.12906812382980198, 0.07968332031220332, - 0.2933858249522422, 0.3055757127540415, 0.24106788802925036, 0.20469251418722345, 0.19258923333014413, - 0.6045927941637642, 0.0030229098796051646, 0.13742142835922788, 0.11050372271561996, 0.19730681622173893, - 0.5990958871505344, 0.25416324404841745, 0.19944484193154682, 0.520448985669816, 0.5782161241654339, - 0.14094573771586838, 0.327055530229695, 0.10930036510133956, 0.45372855888965585, 0.13162181390602054, - 0.05676360288179313, 0.3806684802090549, 0.30057711287894606, 0.2437065824703282, 0.05156969225175499, - 0.2931307447026484, 0.09615148203637629, 0.17481581567003227, 0.23869437645276637, 0.19150480849738963, - 0.13385071323715392, 0.21524509134117442, 0.2821255947907328, 0.14563487207750248, 0.1868997146598546, - 0.012603718603308752, 0.4839581178269969, 0.16293620365853537, 0.1281616552532997, 0.18561832805785172, - 0.07304885237763896, 0.23263668918835637, 0.5396445242536041, 0.09941575556405952, 0.17323960008455958, - 0.6490788348601193, 0.14433353478167069, 0.1648445863465489, 0.1660748004676232, 0.4930910388190022, - 0.2570414474155692, 0.13816954247401053, 0.2963475564564442, 0.1766344461774353, 0.3157687085636105, - 0.11351246180329067, 0.24312401105148526, 0.17425015035954752, 0.03376632370528331, 0.03895629414287219, - 0.13039679351374853, 0.5486526962646173, 0.22463118276983776, 0.16527979092441386, 0.21494014090757022, - 0.017532581311003676, 0.1319468832644175, -0.11180476523777698, 0.007265297782990573, 0.15733873702093296, - 0.004174381014318082, 0.06661827262723818, 0.2420858618492546, 0.32243776303428007, 0.15488855086984715, - 0.2217476130903824, 0.11465610712560348, 0.12574900059819852, 0.18804045969234295, 0.21205226657240267, - 0.6388828265913503, 0.20733021515484162, 0.1423398135807551, 0.5255778874736642, 0.1652684434541572, - 0.2423024306603514, 0.16120361268640723, 0.12310760533202557, 0.275823050666959, 0.08279774829279701, - 0.23400717031145948, 0.062256958076365325, 0.4577230899504002, 0.26720996394250857, 0.3315860627310241, - 0.5043060451772615, 0.39776070023675736, 0.6087515090840436, 0.31475955551322743, 0.22816805967624304, - 0.034759865319125324, 0.2640026188412799, 0.23197733891552563, 0.31974055503082655, 0.166258005725809, - 0.884075288127169, 0.1505976058501311, 0.12252393780818803, 0.23860211221404196, 0.1314598032018848, - 0.06057338371502157, 0.169266403996168, 0.19092089305020338, 0.3616494613796545, 0.5994576353849242, - 0.20133497360377486, 0.14124278798008574, 0.2290802867310293, 0.5332073477519431, 0.2770642463329317, - 0.23098783878062676, 0.2700985181953984, 0.09177584773744848, 0.2371831541512284, 0.4246437596676192, - 0.254165888369038, 0.1692971319480755, 0.23763338393195674, 0.06661827262723818, 0.4962796193490509, - 0.24871258942149352, 0.21230960653427222, 0.16711146036911123, 0.1633903217249689, 0.16822371986613244, - 0.18948742132267984, 0, 0.15465375183235455, 0.397647497273303, 0.2648608530467886, 0.18566502121286618, - 0.22328566068164, 0.28636925774031835, 0.19788825229408938, 0.16839112029111852, 0.12996844361561902, - 0.5360386625119957, 0.14345273661903593, 0.16106917350236558, 0.35728435382083445, 0.1802796550903156, - 0.7014353109051498, 0.46742348797212924, 0.19707513357311404, 0.14954962680280057, 0.27697080223051435, - 0.23609493706446222, 0.4242600169706767, 0.06493171965873958, 0.1295563462836691, 0.2966307019347095, - 0.2589317003476894, 0.25666361638521645, 0.2904877612495892, 0.19924328482753498, 0.2023643120984065, - 0.22949684633265888, 0.38063490615295736, 0.47328843687818883, 0.12580435282042815, 0.35292012209306195, - 0.17155269029800885, 0.5116899219482671, 0.1412769783819939, 0.07039576368018491, 0.07194759496846273, - 0.36511815231758477, 0.11863443485588385, 0.19841927017408031, 0.41311160885559955, 0.0948157411380205, - 0.34084363202247303, 0.08928038895609643, 0.566739819407589, 0.5148419362403013, 0.07875469116364268, - 0.3181905716465191, 0.34362529140907255, 0.05314517794595889, 0.26999861608784814, 0.4390588878547942, - 0.2290370328692465, 0.5816859655029526, 0.11029284776065662, 0.18574934336701637, 0.19410521903194985, 0, - 0.3185689818297414, 0.2921960184686399, 0.5347165118064239, 0.16549816714202115, 0.6895658376499713, - 0.18110536273085082, 0.519804623468718, 0.4292199473462641, 0.013173108287622824, 0.052944706890378404, - 0.26359001664587167, 0.11596556664669225, 0.39549161039218117, 0.16464493240868391, 0.31233410108329757, - 0.16993297148161618, 0.16155534426946266, 0.16506576722410132, 0.5055180400873311, 0.15069657113520596, - 0.43657512525125325, 0.3330375698291169, 0.43247647809529466, 0.21783326553694965, 0.12202446020272145, - 0.19695615888415252, 0.5659211809059277, 0.2728153141169348, 0.5719815255398765, 0.22706480102090257, - 0.24282742055392387, 0.33097582651263846, 0.3223901679163789, 0.35262808810640944, 0.3276218788956803, - 0.11607523647901984, 0.007283565571720957, 0.2598005211383819, 0.33489338313774286, 0.011312757187168286, - 0.23548582006246782, 0.4695716810842048, 0.08671090044238611, 0.42752348971650306, 0.6225915529589279, - 0.17987450866494328, 0.3249721103798585, 0.09090291185014543, 0.041468101754250086, 0.1812362256774032, - 0.268767896247631, 0.20396677854982392, 0.13551049572030918, 0.1305628426409767, 0.007973188956363746, - 0.15566407035670382, 0.1563023819178267, 0.26788425714458064, 0.17470371523670725, 0.1964131168979543, - 0.13010248050984144, 0.011121285764109538, 0.14176435113410668, 0.22979680539094907, 0.21580076076246596, - 0.18359375807404427, 0.032945458139275595, 0.2535373445097039, 0.1313361284788698, 0.11523627557579245, - 0.42330129623557383, 0.5565170858578412, 0.3174724038259997, 0.10213223983327425, 0.021151999011558, - 0.2755177166192084, 0.44622088029067275, 0.05897652323975544, 0.1319959613319452, 0.34948728684193436, - 0.09814624508517172, 0.23231147996409535, 0.17738192681626938, 0.3812623867264285, 0.21639779818304322, - 0.08091963137430838, 0.16091388809097146, 0.5941743764823175, 0.2281899606674502, 0.448712839484756, - 0.20499229320690351, 0.4600827583992671, 0.1285920787466086, 0.22495121127600531, 0, 0.16936591096994502, - 0.06661827262723889, 0.10196530718271339, 0.1802607445895681, 0.11142845118642958, 0.21692038901655195, - 0.18630938975282457, 0.4075122084089992, 0.1204881384737179, 0.17500129176519807, 0.2445923645165749, - 0.22387342490317438, 0.34103549134184996, 0.2555591254527976, 0.09064637367868499, 0.019394838828359545, - 0.12088432649884238, 0.09149716253320482, 0.016100140317196858, 0.2218722214613572, 0, 0.38260382719175706, - 0.15506377206342883, 0.23779605895477626, 0.19703938423538936, 0.6433390041704381, 0, 0.19890393216553426, - 0.22348590518412378, 0.14413318112697898, 0.31091422094545296, 0.058703874631865195, 0.07921209958178814, - 0.07005105502738757, 0.17778126043246847, 0.6386521212613709, 0.16218646914001003, 0.42051457470274856, - 0.4253487158258039, 0.11515665281331167, 0.014865783828923453, 0.0677787826715302, 0.009385078644370473, - 0.49423615775623986, 0.3943652841849287, 0.029179870029342945, 0.06661827262723818, 0.13130735132331123, - 0.12046398577274414, 0.2217841667659223, 0.29677878993180445, 0.2973611966359753, 0.12705979630714426, - 0.4083043903003576, 0.1718543337289665, 0.1536199861978525, 0.289735923480841, 0.043174169172521246, - 0.17532836159368342, 0.1116561885247332, 0.17246404224181927, 0.35094631440530455, 0.40663040604523315, - 0.061332578573904256, 0.27885942112889706, 0.3699762940009006, 0.2836258419656092, 0.17728977497020829, - 0.034012590020489404, 0.4935625321607643, 0.21339529653801365, 0.2840144867916353, 0.08011569960270046, - 0.31371755003315405, 0.1821505217463596, 0.25736084242710483, 0.6077559220947333, 0.5331953801779318, - 0.056687517803039975, 0.552002074487973, 0.12654699469398217, 0.09153079805671235, 0.426729921492338, - 0.11572059952167696, 0.1236935367034243, 0.0703304997951893, 0.21262646284173922, 0.07380080220387222, - 0.4322029136211489, 0.11523627101238262, 0.07696864845274624, 0.43943517992929104, 0.37002632444450073, - 0.5812471776106078, 0.13980638774022613, 0.10028927808488251, 0.3551800762618305, 0.059514823042157876, - 0.32423314510050294, 0.07839930714155117, 0.31174772725833105, 0.18992604705466148, 0.357977250522316, - 0.33042456467625414, 0.27858173524320223, 0.22697128549805579, 0.10218847575969764, 0.2498770310009534, - 0.46457535924218285, 0.3021220206486184, 0.07350101755076427, 0.1769020105830193, 0.6142822480453012, - 0.3175974241301654, 0.21526867542824407, 0.15258622328223093, 0.19370965463611978, 0.21331451540433868, - 0.6652582637150772, 0.2464184049556837, 0.2740663049900435, 0.6520644104085218, 0.22316022665930033, - 0.4466383890423688, 0.3604166624843537, 0.16234110525249176, 0.33155061444700545, 0.07180806529083512, - 0.11773118390785504, 0.0711860793623204, 0.3631109418717404, 0.17637102130212162, 0.3489615443830479, - 0.3491908300676699, 0.1479324030033297, 0.3326932999011294, 0.3890067273856048, 0.1869830683047613, - 0.18274382156983057, 0.3843719208542019, 0.13886592414883606, 0.19151455270416273, 0.17960771281338828, - 0.24028453547486167, 0.06330110682643315, 0.48084545638654846, 0.050443140071148695, 0.3740279825986356, - 0.2309547386950809, 0.2640885410902441, 0.3748455281460348, 0.1527503902786846, 0.3707405918361633, - 0.034843911193603416, -0.39138145271185953, 0.15320645919893533, 0.22084864977390317, 0.2628384701626143, - 0.1531046964725893, 0.0938018177303087, 0.025206322283646464, 0.552002074487973, 0.12857521450059828, - 0.1695870776201116, 0.18951054527772748, 0.4841067647936004, 0.1954679502378574, 0.3301118826488539, - 0.18117712411446074, 0.21963791440919928, 0.01227360140252627, 0.0702065518998433, 0.11327521348681617, - 0.2583739954701326, -0.32512418930664533, 0.004916503038875148, 0.3895502908717195, 0.14764057937143096, - 0.21843713252181918, 0.32862913566863466, 0.2696865267082316, 0.3263140049042982, 0.09808621880523878, - 0.15139026289448262, 0.19268375981571234, 0.06661827262723818, 0.28549717804429076, 0.40589933697725405, - 0.6015246847810408, 0.17987450866494328, 0.20137486768932547, 0.4395389649175019, 0.13739382038656126, - 0.14322078813355513, 0.24350230642329312, 0.2561964570462, 0.24403162158775105, 0.1887541930599948, - 0.19027962910595903, 0.3644260456860262, 0.41138098134328016, 0.2165551284591949, 0.2936332315236516, - 0.014152356068825004, 0.018540190250866805, 0.14192031623480283, 0.4590599262539331, 0.2223617306952558, - 0.18734364510165344, 0.1342968059314443, 0.2959225682359753, 0.43864102405435634, -0.23906847171426177, - 0.2216519064857191, 0.2833312540282318, 0.28765896938498614, 0.20876403100925844, 0.08921404703573438, - 0.22867439011688503, 0.19135905185320873, 0.23039838818267966, 0.33862843038987206, 0.36101603008610034, - 0.29427038763367797, 0.04594218983370925, 0.27298925982326105, 0.20116552056738807, 0.5086267391492005, - 0.17987450866494398, 0, 0.34608556429965576, 0.3735803274787348, 0.2134397797507282, 0.1221004026725731, - 0.08189547837116905, 0.27276580566447983, 0.5358226456330158, 0.43167097692959877, 0.2956082894851391, - 0.4711799676892987, 0.08137360088079469, 0.07869814625927558, 0.0928727511166551, 0.05356530028686848, - 0.03705323084516545, 0.24239350865903356, 0.10263167075004835, 0.19953171220554572, 0.42553193755638885, - 0.13382064853887507, 0.1335764234401491, 0.33254867255606674, 0.599122975894537, 0.4449694479194725, - 0.23306509612930543, 0.058901441080678144, 0.15619466986316644, 0.26689458504003055, 0.06697904735589225, - 0.17999654997837972, 0.26406308624221914, 0.04024079585628212, 0.25237777032222286, 0.3389776561575045, - 0.5077633971014562, 0.15013500245953207, 0.1023630448365373, 0.23400743344280872, 0.18095115178416013, - 0.1659572501619256, 0.2850677971532443, 0.06055776049008683, 0.15827492543343064, -0.03425348381654784, - 0.04151135740896365, 0.07772476811818517, 0, 0.013586772969434127, 0.018079892441164702, 0.19155479242888665, - 0.035308371258342124, 0.33247507967208867, 0.23043173238903333, 0.05798545253415855, 0.15676087660145951, - 0.46801979482670775, 0.10578675408173722, 0.31820234599669245, 0.18373552652417416, 0.3969593080557111, - 0.22016293203434056, 0.23031166042289505, 0.06059982419034468, 0.1270325503080259, 0.6215188287258587, - 0.36329484444742177, 0.11317071363793717, 0.3351856990316291, 0.3156242964415672, 0.11564142336313427, - 0.6151173562387269, 0.27961990464767195, 0.3063386948699169, 0.23056411912969307, 0.11731829922143222, - 0.18457236971210314, 0.24174143684334146, 0.3642701282506773, 0.32754991331651084, 0.12391084656896864, - 0.22670513141763468, 0.19075229014272785, 0.26738473034195587, 0.19172515869266102, 0.23752312425343722, - 0.10801810562428182, 0.11515665281331167, 0.33572750712272226, 0.06331475418674011, 0.1881459620477013, - 0.46389419852684105, 0.19409802239161933, 0.19988752953375866, 0.07428065531207634, 0.23009189342117373, - 0.22073095034752954, 0.19605398433050142, 0.32962925050973385, 0.13213403635684196, 0.4557000064981886, - 0.18959102052844445, 0.1313361284788705, 0.1816260517323869, 0.22185853955439547, 0.0725935415162191, - 0.17498445451452443, 0.06451150554725602, 0.5219361570058958, 0.23660063193528297, 0.04198086633513237, - 0.5392731560606036, 0.2628863203819717, 0.09818474855504702, 0.25250986268068387, 0.33255074039744575, - 0.018079892441164702, 0.05645427021790807, 0.34331887332973965, 0.10613609165808054, 0.6443845617977864, - 0.26385806695378233, 0.3934465247484361, 0.1208809825644318, 0.20895386202697153, 0.4230913540896468, - 0.17732827668012519, 0.12200005548056057, 0.0953460925778243, 0.2289412077714251, 0.06661827262723818, - 0.12614393439641153, 0.03245930056010868, 0.17841139977492282, 0.06661827262723818, 0.24340271353667617, - 0.19677212742983402, 0.2619749598041566, 0.30241716114431394, 0.31146159374645854, 0.27581821194620454, - 0.18698498278647538, 0.047743850457377106, 0.1830099218158952, 0.07882427026026106, 0.2503106426633139, - 0.2535753937559956, 0.3323260187613261, 0.11962161692291208, 0.02866976398309327, 0.10926202837177991, - 0.3159828490800642, 0.4558453691754374, 0.30291224629638663, 0.41934508567724305, 0.14706282917074184, - 0.32492812785482306, 0.5346314919266122, 0.02327717080789346, 0.0599201186472293, -0.32676980970476505, - 0.05213172743426632, 0.12123331725802401, 0.3983485963240413, 0.12647811776434878, 0.20558984404440608, - 0.5341414560372376, 0.2945142587895905, 0.14868140276545183, 0.052179703688622556, 0.32548960241256286, - 0.32583695847187827, 0.31757840528225434, 0.2282752644564601, 0.06661827262723889, 0.1787315967185691, - 0.26069871947504564, 0.18026020048945907, 0.35881889052018423, 0.07920489601577091, 0.33100659554958056, - 0.05558739214679042, 0.12387925477717436, 0.21269562453313107, 0.04615216187930154, 0.10715495520147943, - 0.1705186292697446, 0.22053995918221952, 0.123938656485211, 0.15751124679323272, 0.3387109795008579, - 0.11246425920155063, 0.643071210228335, 0.16351059874083615, 0.28822068879521445, 0.024319639293194844, - 0.2459189729007427, 0.04438341301934046, 0.12469758539813185, 0.19978560193929393, 0.299016503269758, - 0.06634849297463646, 0.361621404571759, 0.033412970628484244, 0.04108539061920239, 0.44048401103251406, - 0.042826349199324744, 0.3964527079535571, 0.19662744243615543, 0.053329071194151687, 0.1766485377099948, - 0.36074708879606515, 0.5329513424764741, 0.06169284294510252, 0.5545478150619716, 0.11725857093469093, - 0.1486220749232548, 0.2536233674574798, 0.30192137848318873, 0.2905056455074955, 0.3578485537436798, - 0.18490438370795023, 0.8825875292428992, 0.23588070645202966, 0.0136088685671837, 0.07699657105961051, - 0.16967226430818416, 0.046301752299674315, 0.18832038770418266, 0.20241150368982216, 0.1826490483510098, - 0.31538003927181507, 0.06392382155471533, 0.39648577498102666, 0.2998529876961878, 0.4692866193765331, - 0.11259371107716577, 0.3683551764337386, 0.21976091699776049, 0.3281816670882983, 0.19314278299381077, - 0.18118545201095218, 0.06455177733940053, 0.6802532972351362, 0.11515665281331097, 0.056254063681523345, - 0.7502453033081851, 0.5274610747886199, 0.1105354635604917, 0.14952705178650616, 0.05054141818145672, - 0.30253321459620564, 0.13271107318857478, 0.3122511197959876, 0.18000608805544294, 0.5299449049287701, - 0.01156342057999873, 0.1363470560070739, 0.3766129853575739, 0.552002074487973, 0.21223341318545863, - 0.06021820620327008, 0.08279774829279632, 0.4638272475835984, 0.5342887611263839, 0.2916494038864666, - 0.551779258069855, 0.07460500191755695, 0.21568576601486372, 0.05224157655624892, 0.3203988354953085, - 0.2387394746704768, 0.37402798259863634, 0.17598035378108126 -] diff --git a/client/apps/game/src/data/geodata/realms_raw.json b/client/apps/game/src/data/geodata/realms_raw.json deleted file mode 100644 index 5d020783a..000000000 --- a/client/apps/game/src/data/geodata/realms_raw.json +++ /dev/null @@ -1,32002 +0,0 @@ -[ - { - "id": 1, - "order": "Giants" - }, - { - "id": 2, - "order": "Perfection" - }, - { - "id": 3, - "order": "Rage" - }, - { - "id": 4, - "order": "the Fox" - }, - { - "id": 5, - "order": "the Twins" - }, - { - "id": 6, - "order": "Fury" - }, - { - "id": 7, - "order": "Reflection" - }, - { - "id": 8, - "order": "Detection" - }, - { - "id": 9, - "order": "Fury" - }, - { - "id": 10, - "order": "Perfection" - }, - { - "id": 11, - "order": "Fury" - }, - { - "id": 12, - "order": "Fury" - }, - { - "id": 13, - "order": "Skill" - }, - { - "id": 14, - "order": "Perfection" - }, - { - "id": 15, - "order": "Reflection" - }, - { - "id": 16, - "order": "Detection" - }, - { - "id": 17, - "order": "Brilliance" - }, - { - "id": 18, - "order": "the Twins" - }, - { - "id": 19, - "order": "Reflection" - }, - { - "id": 20, - "order": "Giants" - }, - { - "id": 21, - "order": "Detection" - }, - { - "id": 22, - "order": "Protection" - }, - { - "id": 23, - "order": "Detection" - }, - { - "id": 24, - "order": "Perfection" - }, - { - "id": 25, - "order": "Detection" - }, - { - "id": 26, - "order": "Power" - }, - { - "id": 27, - "order": "Perfection" - }, - { - "id": 28, - "order": "Fury" - }, - { - "id": 29, - "order": "the Fox" - }, - { - "id": 30, - "order": "Titans" - }, - { - "id": 31, - "order": "Titans" - }, - { - "id": 32, - "order": "the Fox" - }, - { - "id": 33, - "order": "Brilliance" - }, - { - "id": 34, - "order": "Reflection" - }, - { - "id": 35, - "order": "Perfection" - }, - { - "id": 36, - "order": "Reflection" - }, - { - "id": 37, - "order": "Protection" - }, - { - "id": 38, - "order": "Skill" - }, - { - "id": 39, - "order": "Perfection" - }, - { - "id": 40, - "order": "Skill" - }, - { - "id": 41, - "order": "Brilliance" - }, - { - "id": 42, - "order": "Perfection" - }, - { - "id": 43, - "order": "Power" - }, - { - "id": 44, - "order": "Vitriol" - }, - { - "id": 45, - "order": "the Fox" - }, - { - "id": 46, - "order": "Fury" - }, - { - "id": 47, - "order": "Perfection" - }, - { - "id": 48, - "order": "the Fox" - }, - { - "id": 49, - "order": "Detection" - }, - { - "id": 50, - "order": "Detection" - }, - { - "id": 51, - "order": "Titans" - }, - { - "id": 52, - "order": "Power" - }, - { - "id": 53, - "order": "Power" - }, - { - "id": 54, - "order": "Fury" - }, - { - "id": 55, - "order": "Skill" - }, - { - "id": 56, - "order": "Skill" - }, - { - "id": 57, - "order": "Power" - }, - { - "id": 58, - "order": "Brilliance" - }, - { - "id": 59, - "order": "Skill" - }, - { - "id": 60, - "order": "Vitriol" - }, - { - "id": 61, - "order": "Anger" - }, - { - "id": 62, - "order": "Skill" - }, - { - "id": 63, - "order": "Anger" - }, - { - "id": 64, - "order": "Anger" - }, - { - "id": 65, - "order": "Giants" - }, - { - "id": 66, - "order": "Anger" - }, - { - "id": 67, - "order": "Vitriol" - }, - { - "id": 68, - "order": "Enlightenment" - }, - { - "id": 69, - "order": "Anger" - }, - { - "id": 70, - "order": "Enlightenment" - }, - { - "id": 71, - "order": "Giants" - }, - { - "id": 72, - "order": "Detection" - }, - { - "id": 73, - "order": "Enlightenment" - }, - { - "id": 74, - "order": "Giants" - }, - { - "id": 75, - "order": "Fury" - }, - { - "id": 76, - "order": "Brilliance" - }, - { - "id": 77, - "order": "Titans" - }, - { - "id": 78, - "order": "the Fox" - }, - { - "id": 79, - "order": "the Fox" - }, - { - "id": 80, - "order": "the Fox" - }, - { - "id": 81, - "order": "Perfection" - }, - { - "id": 82, - "order": "Reflection" - }, - { - "id": 83, - "order": "Detection" - }, - { - "id": 84, - "order": "the Fox" - }, - { - "id": 85, - "order": "Anger" - }, - { - "id": 86, - "order": "Detection" - }, - { - "id": 87, - "order": "the Twins" - }, - { - "id": 88, - "order": "Enlightenment" - }, - { - "id": 89, - "order": "Reflection" - }, - { - "id": 90, - "order": "Giants" - }, - { - "id": 91, - "order": "Enlightenment" - }, - { - "id": 92, - "order": "Giants" - }, - { - "id": 93, - "order": "Anger" - }, - { - "id": 94, - "order": "Giants" - }, - { - "id": 95, - "order": "Protection" - }, - { - "id": 96, - "order": "Enlightenment" - }, - { - "id": 97, - "order": "Brilliance" - }, - { - "id": 98, - "order": "Titans" - }, - { - "id": 99, - "order": "Perfection" - }, - { - "id": 100, - "order": "Protection" - }, - { - "id": 101, - "order": "Protection" - }, - { - "id": 102, - "order": "Fury" - }, - { - "id": 103, - "order": "Skill" - }, - { - "id": 104, - "order": "Skill" - }, - { - "id": 105, - "order": "Skill" - }, - { - "id": 106, - "order": "Power" - }, - { - "id": 107, - "order": "Rage" - }, - { - "id": 108, - "order": "Enlightenment" - }, - { - "id": 109, - "order": "Enlightenment" - }, - { - "id": 110, - "order": "Brilliance" - }, - { - "id": 111, - "order": "the Fox" - }, - { - "id": 112, - "order": "Titans" - }, - { - "id": 113, - "order": "Anger" - }, - { - "id": 114, - "order": "Fury" - }, - { - "id": 115, - "order": "Brilliance" - }, - { - "id": 116, - "order": "Perfection" - }, - { - "id": 117, - "order": "Detection" - }, - { - "id": 118, - "order": "the Fox" - }, - { - "id": 119, - "order": "Giants" - }, - { - "id": 120, - "order": "Perfection" - }, - { - "id": 121, - "order": "Skill" - }, - { - "id": 122, - "order": "Enlightenment" - }, - { - "id": 123, - "order": "Skill" - }, - { - "id": 124, - "order": "Detection" - }, - { - "id": 125, - "order": "Power" - }, - { - "id": 126, - "order": "the Fox" - }, - { - "id": 127, - "order": "Giants" - }, - { - "id": 128, - "order": "the Twins" - }, - { - "id": 129, - "order": "Titans" - }, - { - "id": 130, - "order": "the Twins" - }, - { - "id": 131, - "order": "Vitriol" - }, - { - "id": 132, - "order": "Fury" - }, - { - "id": 133, - "order": "Detection" - }, - { - "id": 134, - "order": "Enlightenment" - }, - { - "id": 135, - "order": "Power" - }, - { - "id": 136, - "order": "the Twins" - }, - { - "id": 137, - "order": "Protection" - }, - { - "id": 138, - "order": "the Twins" - }, - { - "id": 139, - "order": "Vitriol" - }, - { - "id": 140, - "order": "Perfection" - }, - { - "id": 141, - "order": "Power" - }, - { - "id": 142, - "order": "Fury" - }, - { - "id": 143, - "order": "Vitriol" - }, - { - "id": 144, - "order": "Brilliance" - }, - { - "id": 145, - "order": "Perfection" - }, - { - "id": 146, - "order": "Protection" - }, - { - "id": 147, - "order": "Giants" - }, - { - "id": 148, - "order": "Titans" - }, - { - "id": 149, - "order": "Protection" - }, - { - "id": 150, - "order": "Titans" - }, - { - "id": 151, - "order": "Protection" - }, - { - "id": 152, - "order": "Protection" - }, - { - "id": 153, - "order": "Detection" - }, - { - "id": 154, - "order": "Enlightenment" - }, - { - "id": 155, - "order": "Reflection" - }, - { - "id": 156, - "order": "Perfection" - }, - { - "id": 157, - "order": "Power" - }, - { - "id": 158, - "order": "Titans" - }, - { - "id": 159, - "order": "Rage" - }, - { - "id": 160, - "order": "the Twins" - }, - { - "id": 161, - "order": "Giants" - }, - { - "id": 162, - "order": "Enlightenment" - }, - { - "id": 163, - "order": "the Fox" - }, - { - "id": 164, - "order": "Detection" - }, - { - "id": 165, - "order": "Enlightenment" - }, - { - "id": 166, - "order": "Power" - }, - { - "id": 167, - "order": "Anger" - }, - { - "id": 168, - "order": "Fury" - }, - { - "id": 169, - "order": "Brilliance" - }, - { - "id": 170, - "order": "Detection" - }, - { - "id": 171, - "order": "Protection" - }, - { - "id": 172, - "order": "Perfection" - }, - { - "id": 173, - "order": "Brilliance" - }, - { - "id": 174, - "order": "the Twins" - }, - { - "id": 175, - "order": "Titans" - }, - { - "id": 176, - "order": "Enlightenment" - }, - { - "id": 177, - "order": "the Fox" - }, - { - "id": 178, - "order": "Titans" - }, - { - "id": 179, - "order": "Vitriol" - }, - { - "id": 180, - "order": "Fury" - }, - { - "id": 181, - "order": "Vitriol" - }, - { - "id": 182, - "order": "Titans" - }, - { - "id": 183, - "order": "Anger" - }, - { - "id": 184, - "order": "Power" - }, - { - "id": 185, - "order": "Protection" - }, - { - "id": 186, - "order": "Rage" - }, - { - "id": 187, - "order": "Detection" - }, - { - "id": 188, - "order": "the Fox" - }, - { - "id": 189, - "order": "the Fox" - }, - { - "id": 190, - "order": "Protection" - }, - { - "id": 191, - "order": "Vitriol" - }, - { - "id": 192, - "order": "Vitriol" - }, - { - "id": 193, - "order": "Detection" - }, - { - "id": 194, - "order": "Protection" - }, - { - "id": 195, - "order": "Protection" - }, - { - "id": 196, - "order": "Brilliance" - }, - { - "id": 197, - "order": "Rage" - }, - { - "id": 198, - "order": "Anger" - }, - { - "id": 199, - "order": "Protection" - }, - { - "id": 200, - "order": "Anger" - }, - { - "id": 201, - "order": "Brilliance" - }, - { - "id": 202, - "order": "the Twins" - }, - { - "id": 203, - "order": "Rage" - }, - { - "id": 204, - "order": "Giants" - }, - { - "id": 205, - "order": "Fury" - }, - { - "id": 206, - "order": "Fury" - }, - { - "id": 207, - "order": "Fury" - }, - { - "id": 208, - "order": "the Twins" - }, - { - "id": 209, - "order": "Detection" - }, - { - "id": 210, - "order": "Detection" - }, - { - "id": 211, - "order": "the Fox" - }, - { - "id": 212, - "order": "the Twins" - }, - { - "id": 213, - "order": "Anger" - }, - { - "id": 214, - "order": "Perfection" - }, - { - "id": 215, - "order": "Power" - }, - { - "id": 216, - "order": "Titans" - }, - { - "id": 217, - "order": "Protection" - }, - { - "id": 218, - "order": "Titans" - }, - { - "id": 219, - "order": "Perfection" - }, - { - "id": 220, - "order": "Fury" - }, - { - "id": 221, - "order": "Giants" - }, - { - "id": 222, - "order": "Power" - }, - { - "id": 223, - "order": "Giants" - }, - { - "id": 224, - "order": "Fury" - }, - { - "id": 225, - "order": "Vitriol" - }, - { - "id": 226, - "order": "Rage" - }, - { - "id": 227, - "order": "Skill" - }, - { - "id": 228, - "order": "Titans" - }, - { - "id": 229, - "order": "Brilliance" - }, - { - "id": 230, - "order": "Skill" - }, - { - "id": 231, - "order": "Brilliance" - }, - { - "id": 232, - "order": "Vitriol" - }, - { - "id": 233, - "order": "Reflection" - }, - { - "id": 234, - "order": "the Fox" - }, - { - "id": 235, - "order": "Reflection" - }, - { - "id": 236, - "order": "Skill" - }, - { - "id": 237, - "order": "Giants" - }, - { - "id": 238, - "order": "Giants" - }, - { - "id": 239, - "order": "the Twins" - }, - { - "id": 240, - "order": "Rage" - }, - { - "id": 241, - "order": "Rage" - }, - { - "id": 242, - "order": "the Fox" - }, - { - "id": 243, - "order": "Enlightenment" - }, - { - "id": 244, - "order": "Brilliance" - }, - { - "id": 245, - "order": "Giants" - }, - { - "id": 246, - "order": "Power" - }, - { - "id": 247, - "order": "Brilliance" - }, - { - "id": 248, - "order": "Skill" - }, - { - "id": 249, - "order": "Fury" - }, - { - "id": 250, - "order": "Reflection" - }, - { - "id": 251, - "order": "Brilliance" - }, - { - "id": 252, - "order": "Protection" - }, - { - "id": 253, - "order": "the Fox" - }, - { - "id": 254, - "order": "Detection" - }, - { - "id": 255, - "order": "the Fox" - }, - { - "id": 256, - "order": "the Fox" - }, - { - "id": 257, - "order": "Detection" - }, - { - "id": 258, - "order": "Perfection" - }, - { - "id": 259, - "order": "Perfection" - }, - { - "id": 260, - "order": "Vitriol" - }, - { - "id": 261, - "order": "Protection" - }, - { - "id": 262, - "order": "Vitriol" - }, - { - "id": 263, - "order": "Perfection" - }, - { - "id": 264, - "order": "Titans" - }, - { - "id": 265, - "order": "Rage" - }, - { - "id": 266, - "order": "Rage" - }, - { - "id": 267, - "order": "Skill" - }, - { - "id": 268, - "order": "Perfection" - }, - { - "id": 269, - "order": "Brilliance" - }, - { - "id": 270, - "order": "Giants" - }, - { - "id": 271, - "order": "Vitriol" - }, - { - "id": 272, - "order": "Reflection" - }, - { - "id": 273, - "order": "Rage" - }, - { - "id": 274, - "order": "Anger" - }, - { - "id": 275, - "order": "Protection" - }, - { - "id": 276, - "order": "Vitriol" - }, - { - "id": 277, - "order": "Enlightenment" - }, - { - "id": 278, - "order": "Detection" - }, - { - "id": 279, - "order": "the Fox" - }, - { - "id": 280, - "order": "Fury" - }, - { - "id": 281, - "order": "Detection" - }, - { - "id": 282, - "order": "Skill" - }, - { - "id": 283, - "order": "the Fox" - }, - { - "id": 284, - "order": "Protection" - }, - { - "id": 285, - "order": "Reflection" - }, - { - "id": 286, - "order": "the Fox" - }, - { - "id": 287, - "order": "the Twins" - }, - { - "id": 288, - "order": "Skill" - }, - { - "id": 289, - "order": "Giants" - }, - { - "id": 290, - "order": "Detection" - }, - { - "id": 291, - "order": "Reflection" - }, - { - "id": 292, - "order": "Brilliance" - }, - { - "id": 293, - "order": "Enlightenment" - }, - { - "id": 294, - "order": "the Fox" - }, - { - "id": 295, - "order": "Anger" - }, - { - "id": 296, - "order": "the Twins" - }, - { - "id": 297, - "order": "Vitriol" - }, - { - "id": 298, - "order": "Perfection" - }, - { - "id": 299, - "order": "Rage" - }, - { - "id": 300, - "order": "Detection" - }, - { - "id": 301, - "order": "Giants" - }, - { - "id": 302, - "order": "Giants" - }, - { - "id": 303, - "order": "Titans" - }, - { - "id": 304, - "order": "Skill" - }, - { - "id": 305, - "order": "Giants" - }, - { - "id": 306, - "order": "Fury" - }, - { - "id": 307, - "order": "the Fox" - }, - { - "id": 308, - "order": "Reflection" - }, - { - "id": 309, - "order": "Power" - }, - { - "id": 310, - "order": "Reflection" - }, - { - "id": 311, - "order": "Perfection" - }, - { - "id": 312, - "order": "Anger" - }, - { - "id": 313, - "order": "Giants" - }, - { - "id": 314, - "order": "Protection" - }, - { - "id": 315, - "order": "Fury" - }, - { - "id": 316, - "order": "Reflection" - }, - { - "id": 317, - "order": "Perfection" - }, - { - "id": 318, - "order": "Detection" - }, - { - "id": 319, - "order": "Titans" - }, - { - "id": 320, - "order": "Skill" - }, - { - "id": 321, - "order": "Detection" - }, - { - "id": 322, - "order": "Anger" - }, - { - "id": 323, - "order": "Titans" - }, - { - "id": 324, - "order": "Power" - }, - { - "id": 325, - "order": "Enlightenment" - }, - { - "id": 326, - "order": "Power" - }, - { - "id": 327, - "order": "Perfection" - }, - { - "id": 328, - "order": "the Fox" - }, - { - "id": 329, - "order": "Enlightenment" - }, - { - "id": 330, - "order": "Brilliance" - }, - { - "id": 331, - "order": "Vitriol" - }, - { - "id": 332, - "order": "Enlightenment" - }, - { - "id": 333, - "order": "Vitriol" - }, - { - "id": 334, - "order": "Skill" - }, - { - "id": 335, - "order": "Rage" - }, - { - "id": 336, - "order": "Enlightenment" - }, - { - "id": 337, - "order": "Vitriol" - }, - { - "id": 338, - "order": "Detection" - }, - { - "id": 339, - "order": "Enlightenment" - }, - { - "id": 340, - "order": "Giants" - }, - { - "id": 341, - "order": "Titans" - }, - { - "id": 342, - "order": "Enlightenment" - }, - { - "id": 343, - "order": "Skill" - }, - { - "id": 344, - "order": "Vitriol" - }, - { - "id": 345, - "order": "the Twins" - }, - { - "id": 346, - "order": "Rage" - }, - { - "id": 347, - "order": "Rage" - }, - { - "id": 348, - "order": "Vitriol" - }, - { - "id": 349, - "order": "Power" - }, - { - "id": 350, - "order": "Enlightenment" - }, - { - "id": 351, - "order": "Protection" - }, - { - "id": 352, - "order": "the Twins" - }, - { - "id": 353, - "order": "Power" - }, - { - "id": 354, - "order": "Giants" - }, - { - "id": 355, - "order": "Rage" - }, - { - "id": 356, - "order": "Anger" - }, - { - "id": 357, - "order": "Protection" - }, - { - "id": 358, - "order": "Skill" - }, - { - "id": 359, - "order": "Giants" - }, - { - "id": 360, - "order": "Rage" - }, - { - "id": 361, - "order": "Enlightenment" - }, - { - "id": 362, - "order": "Perfection" - }, - { - "id": 363, - "order": "the Twins" - }, - { - "id": 364, - "order": "Anger" - }, - { - "id": 365, - "order": "Giants" - }, - { - "id": 366, - "order": "Enlightenment" - }, - { - "id": 367, - "order": "Titans" - }, - { - "id": 368, - "order": "Enlightenment" - }, - { - "id": 369, - "order": "Perfection" - }, - { - "id": 370, - "order": "the Twins" - }, - { - "id": 371, - "order": "Rage" - }, - { - "id": 372, - "order": "Brilliance" - }, - { - "id": 373, - "order": "Enlightenment" - }, - { - "id": 374, - "order": "Titans" - }, - { - "id": 375, - "order": "Protection" - }, - { - "id": 376, - "order": "Power" - }, - { - "id": 377, - "order": "Rage" - }, - { - "id": 378, - "order": "Rage" - }, - { - "id": 379, - "order": "Perfection" - }, - { - "id": 380, - "order": "Giants" - }, - { - "id": 381, - "order": "Fury" - }, - { - "id": 382, - "order": "Enlightenment" - }, - { - "id": 383, - "order": "Power" - }, - { - "id": 384, - "order": "Perfection" - }, - { - "id": 385, - "order": "Perfection" - }, - { - "id": 386, - "order": "the Fox" - }, - { - "id": 387, - "order": "Giants" - }, - { - "id": 388, - "order": "the Twins" - }, - { - "id": 389, - "order": "Anger" - }, - { - "id": 390, - "order": "Perfection" - }, - { - "id": 391, - "order": "Vitriol" - }, - { - "id": 392, - "order": "Reflection" - }, - { - "id": 393, - "order": "the Twins" - }, - { - "id": 394, - "order": "Enlightenment" - }, - { - "id": 395, - "order": "Protection" - }, - { - "id": 396, - "order": "Enlightenment" - }, - { - "id": 397, - "order": "Titans" - }, - { - "id": 398, - "order": "Skill" - }, - { - "id": 399, - "order": "Fury" - }, - { - "id": 400, - "order": "Detection" - }, - { - "id": 401, - "order": "Fury" - }, - { - "id": 402, - "order": "Anger" - }, - { - "id": 403, - "order": "Detection" - }, - { - "id": 404, - "order": "Reflection" - }, - { - "id": 405, - "order": "the Fox" - }, - { - "id": 406, - "order": "Vitriol" - }, - { - "id": 407, - "order": "Reflection" - }, - { - "id": 408, - "order": "Reflection" - }, - { - "id": 409, - "order": "Perfection" - }, - { - "id": 410, - "order": "Skill" - }, - { - "id": 411, - "order": "Power" - }, - { - "id": 412, - "order": "Perfection" - }, - { - "id": 413, - "order": "Enlightenment" - }, - { - "id": 414, - "order": "Vitriol" - }, - { - "id": 415, - "order": "Giants" - }, - { - "id": 416, - "order": "Perfection" - }, - { - "id": 417, - "order": "Perfection" - }, - { - "id": 418, - "order": "Detection" - }, - { - "id": 419, - "order": "the Fox" - }, - { - "id": 420, - "order": "Anger" - }, - { - "id": 421, - "order": "Brilliance" - }, - { - "id": 422, - "order": "Power" - }, - { - "id": 423, - "order": "Anger" - }, - { - "id": 424, - "order": "Titans" - }, - { - "id": 425, - "order": "Protection" - }, - { - "id": 426, - "order": "Rage" - }, - { - "id": 427, - "order": "Titans" - }, - { - "id": 428, - "order": "Anger" - }, - { - "id": 429, - "order": "Fury" - }, - { - "id": 430, - "order": "Detection" - }, - { - "id": 431, - "order": "Skill" - }, - { - "id": 432, - "order": "Reflection" - }, - { - "id": 433, - "order": "Brilliance" - }, - { - "id": 434, - "order": "Reflection" - }, - { - "id": 435, - "order": "Protection" - }, - { - "id": 436, - "order": "Reflection" - }, - { - "id": 437, - "order": "Power" - }, - { - "id": 438, - "order": "the Fox" - }, - { - "id": 439, - "order": "the Fox" - }, - { - "id": 440, - "order": "Vitriol" - }, - { - "id": 441, - "order": "the Fox" - }, - { - "id": 442, - "order": "Rage" - }, - { - "id": 443, - "order": "Vitriol" - }, - { - "id": 444, - "order": "Titans" - }, - { - "id": 445, - "order": "Reflection" - }, - { - "id": 446, - "order": "the Fox" - }, - { - "id": 447, - "order": "Enlightenment" - }, - { - "id": 448, - "order": "the Fox" - }, - { - "id": 449, - "order": "Anger" - }, - { - "id": 450, - "order": "Enlightenment" - }, - { - "id": 451, - "order": "Brilliance" - }, - { - "id": 452, - "order": "Protection" - }, - { - "id": 453, - "order": "Detection" - }, - { - "id": 454, - "order": "the Twins" - }, - { - "id": 455, - "order": "Titans" - }, - { - "id": 456, - "order": "the Fox" - }, - { - "id": 457, - "order": "Perfection" - }, - { - "id": 458, - "order": "Titans" - }, - { - "id": 459, - "order": "Skill" - }, - { - "id": 460, - "order": "Rage" - }, - { - "id": 461, - "order": "Enlightenment" - }, - { - "id": 462, - "order": "Titans" - }, - { - "id": 463, - "order": "Enlightenment" - }, - { - "id": 464, - "order": "Enlightenment" - }, - { - "id": 465, - "order": "Giants" - }, - { - "id": 466, - "order": "Titans" - }, - { - "id": 467, - "order": "Detection" - }, - { - "id": 468, - "order": "the Twins" - }, - { - "id": 469, - "order": "Power" - }, - { - "id": 470, - "order": "Rage" - }, - { - "id": 471, - "order": "Perfection" - }, - { - "id": 472, - "order": "Rage" - }, - { - "id": 473, - "order": "Perfection" - }, - { - "id": 474, - "order": "Enlightenment" - }, - { - "id": 475, - "order": "the Fox" - }, - { - "id": 476, - "order": "Brilliance" - }, - { - "id": 477, - "order": "the Fox" - }, - { - "id": 478, - "order": "the Twins" - }, - { - "id": 479, - "order": "the Twins" - }, - { - "id": 480, - "order": "Enlightenment" - }, - { - "id": 481, - "order": "Anger" - }, - { - "id": 482, - "order": "Power" - }, - { - "id": 483, - "order": "Rage" - }, - { - "id": 484, - "order": "Perfection" - }, - { - "id": 485, - "order": "Detection" - }, - { - "id": 486, - "order": "Vitriol" - }, - { - "id": 487, - "order": "Power" - }, - { - "id": 488, - "order": "Enlightenment" - }, - { - "id": 489, - "order": "Titans" - }, - { - "id": 490, - "order": "Vitriol" - }, - { - "id": 491, - "order": "Brilliance" - }, - { - "id": 492, - "order": "Titans" - }, - { - "id": 493, - "order": "Reflection" - }, - { - "id": 494, - "order": "the Fox" - }, - { - "id": 495, - "order": "Brilliance" - }, - { - "id": 496, - "order": "Vitriol" - }, - { - "id": 497, - "order": "Perfection" - }, - { - "id": 498, - "order": "the Fox" - }, - { - "id": 499, - "order": "Detection" - }, - { - "id": 500, - "order": "Protection" - }, - { - "id": 501, - "order": "Giants" - }, - { - "id": 502, - "order": "Fury" - }, - { - "id": 503, - "order": "Giants" - }, - { - "id": 504, - "order": "Enlightenment" - }, - { - "id": 505, - "order": "Fury" - }, - { - "id": 506, - "order": "Vitriol" - }, - { - "id": 507, - "order": "Power" - }, - { - "id": 508, - "order": "the Twins" - }, - { - "id": 509, - "order": "Power" - }, - { - "id": 510, - "order": "Enlightenment" - }, - { - "id": 511, - "order": "Reflection" - }, - { - "id": 512, - "order": "Rage" - }, - { - "id": 513, - "order": "Perfection" - }, - { - "id": 514, - "order": "Vitriol" - }, - { - "id": 515, - "order": "Power" - }, - { - "id": 516, - "order": "Perfection" - }, - { - "id": 517, - "order": "Protection" - }, - { - "id": 518, - "order": "the Twins" - }, - { - "id": 519, - "order": "Power" - }, - { - "id": 520, - "order": "Vitriol" - }, - { - "id": 521, - "order": "Giants" - }, - { - "id": 522, - "order": "Power" - }, - { - "id": 523, - "order": "Titans" - }, - { - "id": 524, - "order": "Skill" - }, - { - "id": 525, - "order": "Perfection" - }, - { - "id": 526, - "order": "Protection" - }, - { - "id": 527, - "order": "Vitriol" - }, - { - "id": 528, - "order": "Anger" - }, - { - "id": 529, - "order": "Brilliance" - }, - { - "id": 530, - "order": "Giants" - }, - { - "id": 531, - "order": "Titans" - }, - { - "id": 532, - "order": "Anger" - }, - { - "id": 533, - "order": "Vitriol" - }, - { - "id": 534, - "order": "Rage" - }, - { - "id": 535, - "order": "Giants" - }, - { - "id": 536, - "order": "Detection" - }, - { - "id": 537, - "order": "Reflection" - }, - { - "id": 538, - "order": "Anger" - }, - { - "id": 539, - "order": "Reflection" - }, - { - "id": 540, - "order": "Protection" - }, - { - "id": 541, - "order": "Brilliance" - }, - { - "id": 542, - "order": "the Twins" - }, - { - "id": 543, - "order": "the Fox" - }, - { - "id": 544, - "order": "Giants" - }, - { - "id": 545, - "order": "Perfection" - }, - { - "id": 546, - "order": "Rage" - }, - { - "id": 547, - "order": "the Twins" - }, - { - "id": 548, - "order": "Fury" - }, - { - "id": 549, - "order": "Vitriol" - }, - { - "id": 550, - "order": "Power" - }, - { - "id": 551, - "order": "Power" - }, - { - "id": 552, - "order": "the Twins" - }, - { - "id": 553, - "order": "Brilliance" - }, - { - "id": 554, - "order": "the Twins" - }, - { - "id": 555, - "order": "the Twins" - }, - { - "id": 556, - "order": "Skill" - }, - { - "id": 557, - "order": "Titans" - }, - { - "id": 558, - "order": "Perfection" - }, - { - "id": 559, - "order": "Brilliance" - }, - { - "id": 560, - "order": "Anger" - }, - { - "id": 561, - "order": "Titans" - }, - { - "id": 562, - "order": "Brilliance" - }, - { - "id": 563, - "order": "Protection" - }, - { - "id": 564, - "order": "Anger" - }, - { - "id": 565, - "order": "Titans" - }, - { - "id": 566, - "order": "Skill" - }, - { - "id": 567, - "order": "Enlightenment" - }, - { - "id": 568, - "order": "Giants" - }, - { - "id": 569, - "order": "Brilliance" - }, - { - "id": 570, - "order": "Perfection" - }, - { - "id": 571, - "order": "Detection" - }, - { - "id": 572, - "order": "Fury" - }, - { - "id": 573, - "order": "Vitriol" - }, - { - "id": 574, - "order": "Enlightenment" - }, - { - "id": 575, - "order": "the Twins" - }, - { - "id": 576, - "order": "Vitriol" - }, - { - "id": 577, - "order": "Anger" - }, - { - "id": 578, - "order": "Enlightenment" - }, - { - "id": 579, - "order": "Titans" - }, - { - "id": 580, - "order": "Power" - }, - { - "id": 581, - "order": "Perfection" - }, - { - "id": 582, - "order": "Rage" - }, - { - "id": 583, - "order": "Titans" - }, - { - "id": 584, - "order": "Rage" - }, - { - "id": 585, - "order": "Giants" - }, - { - "id": 586, - "order": "Anger" - }, - { - "id": 587, - "order": "Power" - }, - { - "id": 588, - "order": "Brilliance" - }, - { - "id": 589, - "order": "Anger" - }, - { - "id": 590, - "order": "Skill" - }, - { - "id": 591, - "order": "Titans" - }, - { - "id": 592, - "order": "Protection" - }, - { - "id": 593, - "order": "Skill" - }, - { - "id": 594, - "order": "Protection" - }, - { - "id": 595, - "order": "Rage" - }, - { - "id": 596, - "order": "Rage" - }, - { - "id": 597, - "order": "Vitriol" - }, - { - "id": 598, - "order": "Fury" - }, - { - "id": 599, - "order": "Fury" - }, - { - "id": 600, - "order": "Brilliance" - }, - { - "id": 601, - "order": "Brilliance" - }, - { - "id": 602, - "order": "Skill" - }, - { - "id": 603, - "order": "Skill" - }, - { - "id": 604, - "order": "Fury" - }, - { - "id": 605, - "order": "Giants" - }, - { - "id": 606, - "order": "the Twins" - }, - { - "id": 607, - "order": "Protection" - }, - { - "id": 608, - "order": "Brilliance" - }, - { - "id": 609, - "order": "Fury" - }, - { - "id": 610, - "order": "the Twins" - }, - { - "id": 611, - "order": "the Twins" - }, - { - "id": 612, - "order": "Fury" - }, - { - "id": 613, - "order": "Titans" - }, - { - "id": 614, - "order": "the Twins" - }, - { - "id": 615, - "order": "Enlightenment" - }, - { - "id": 616, - "order": "the Fox" - }, - { - "id": 617, - "order": "Skill" - }, - { - "id": 618, - "order": "Titans" - }, - { - "id": 619, - "order": "Detection" - }, - { - "id": 620, - "order": "Vitriol" - }, - { - "id": 621, - "order": "Perfection" - }, - { - "id": 622, - "order": "Skill" - }, - { - "id": 623, - "order": "Fury" - }, - { - "id": 624, - "order": "Skill" - }, - { - "id": 625, - "order": "Enlightenment" - }, - { - "id": 626, - "order": "Fury" - }, - { - "id": 627, - "order": "Detection" - }, - { - "id": 628, - "order": "Enlightenment" - }, - { - "id": 629, - "order": "Giants" - }, - { - "id": 630, - "order": "Anger" - }, - { - "id": 631, - "order": "Enlightenment" - }, - { - "id": 632, - "order": "the Twins" - }, - { - "id": 633, - "order": "Enlightenment" - }, - { - "id": 634, - "order": "Perfection" - }, - { - "id": 635, - "order": "Rage" - }, - { - "id": 636, - "order": "Perfection" - }, - { - "id": 637, - "order": "Power" - }, - { - "id": 638, - "order": "the Twins" - }, - { - "id": 639, - "order": "Enlightenment" - }, - { - "id": 640, - "order": "Rage" - }, - { - "id": 641, - "order": "Power" - }, - { - "id": 642, - "order": "Vitriol" - }, - { - "id": 643, - "order": "Reflection" - }, - { - "id": 644, - "order": "Perfection" - }, - { - "id": 645, - "order": "Protection" - }, - { - "id": 646, - "order": "Fury" - }, - { - "id": 647, - "order": "Fury" - }, - { - "id": 648, - "order": "the Fox" - }, - { - "id": 649, - "order": "Protection" - }, - { - "id": 650, - "order": "Rage" - }, - { - "id": 651, - "order": "Protection" - }, - { - "id": 652, - "order": "Titans" - }, - { - "id": 653, - "order": "the Twins" - }, - { - "id": 654, - "order": "Enlightenment" - }, - { - "id": 655, - "order": "the Fox" - }, - { - "id": 656, - "order": "Power" - }, - { - "id": 657, - "order": "Anger" - }, - { - "id": 658, - "order": "Reflection" - }, - { - "id": 659, - "order": "Vitriol" - }, - { - "id": 660, - "order": "Perfection" - }, - { - "id": 661, - "order": "Titans" - }, - { - "id": 662, - "order": "Skill" - }, - { - "id": 663, - "order": "Detection" - }, - { - "id": 664, - "order": "Rage" - }, - { - "id": 665, - "order": "Enlightenment" - }, - { - "id": 666, - "order": "Brilliance" - }, - { - "id": 667, - "order": "Power" - }, - { - "id": 668, - "order": "Vitriol" - }, - { - "id": 669, - "order": "Anger" - }, - { - "id": 670, - "order": "Brilliance" - }, - { - "id": 671, - "order": "Reflection" - }, - { - "id": 672, - "order": "Titans" - }, - { - "id": 673, - "order": "Rage" - }, - { - "id": 674, - "order": "the Fox" - }, - { - "id": 675, - "order": "the Twins" - }, - { - "id": 676, - "order": "Brilliance" - }, - { - "id": 677, - "order": "Brilliance" - }, - { - "id": 678, - "order": "Protection" - }, - { - "id": 679, - "order": "Power" - }, - { - "id": 680, - "order": "Titans" - }, - { - "id": 681, - "order": "Rage" - }, - { - "id": 682, - "order": "Perfection" - }, - { - "id": 683, - "order": "Detection" - }, - { - "id": 684, - "order": "Skill" - }, - { - "id": 685, - "order": "Titans" - }, - { - "id": 686, - "order": "Protection" - }, - { - "id": 687, - "order": "Titans" - }, - { - "id": 688, - "order": "Vitriol" - }, - { - "id": 689, - "order": "Enlightenment" - }, - { - "id": 690, - "order": "Perfection" - }, - { - "id": 691, - "order": "Enlightenment" - }, - { - "id": 692, - "order": "Perfection" - }, - { - "id": 693, - "order": "Titans" - }, - { - "id": 694, - "order": "Power" - }, - { - "id": 695, - "order": "the Fox" - }, - { - "id": 696, - "order": "Brilliance" - }, - { - "id": 697, - "order": "Protection" - }, - { - "id": 698, - "order": "the Fox" - }, - { - "id": 699, - "order": "Vitriol" - }, - { - "id": 700, - "order": "the Twins" - }, - { - "id": 701, - "order": "Reflection" - }, - { - "id": 702, - "order": "Vitriol" - }, - { - "id": 703, - "order": "Reflection" - }, - { - "id": 704, - "order": "Vitriol" - }, - { - "id": 705, - "order": "Fury" - }, - { - "id": 706, - "order": "Giants" - }, - { - "id": 707, - "order": "Titans" - }, - { - "id": 708, - "order": "Titans" - }, - { - "id": 709, - "order": "Perfection" - }, - { - "id": 710, - "order": "Titans" - }, - { - "id": 711, - "order": "the Twins" - }, - { - "id": 712, - "order": "Giants" - }, - { - "id": 713, - "order": "the Fox" - }, - { - "id": 714, - "order": "Perfection" - }, - { - "id": 715, - "order": "Vitriol" - }, - { - "id": 716, - "order": "Skill" - }, - { - "id": 717, - "order": "Fury" - }, - { - "id": 718, - "order": "Vitriol" - }, - { - "id": 719, - "order": "Perfection" - }, - { - "id": 720, - "order": "Perfection" - }, - { - "id": 721, - "order": "Giants" - }, - { - "id": 722, - "order": "Enlightenment" - }, - { - "id": 723, - "order": "Power" - }, - { - "id": 724, - "order": "Perfection" - }, - { - "id": 725, - "order": "Power" - }, - { - "id": 726, - "order": "Rage" - }, - { - "id": 727, - "order": "Rage" - }, - { - "id": 728, - "order": "Skill" - }, - { - "id": 729, - "order": "the Twins" - }, - { - "id": 730, - "order": "Rage" - }, - { - "id": 731, - "order": "Giants" - }, - { - "id": 732, - "order": "the Fox" - }, - { - "id": 733, - "order": "the Twins" - }, - { - "id": 734, - "order": "Power" - }, - { - "id": 735, - "order": "Perfection" - }, - { - "id": 736, - "order": "Power" - }, - { - "id": 737, - "order": "Enlightenment" - }, - { - "id": 738, - "order": "Reflection" - }, - { - "id": 739, - "order": "Rage" - }, - { - "id": 740, - "order": "Giants" - }, - { - "id": 741, - "order": "Vitriol" - }, - { - "id": 742, - "order": "Fury" - }, - { - "id": 743, - "order": "the Twins" - }, - { - "id": 744, - "order": "the Fox" - }, - { - "id": 745, - "order": "Enlightenment" - }, - { - "id": 746, - "order": "Reflection" - }, - { - "id": 747, - "order": "Detection" - }, - { - "id": 748, - "order": "Giants" - }, - { - "id": 749, - "order": "Anger" - }, - { - "id": 750, - "order": "Anger" - }, - { - "id": 751, - "order": "Anger" - }, - { - "id": 752, - "order": "Protection" - }, - { - "id": 753, - "order": "Perfection" - }, - { - "id": 754, - "order": "Anger" - }, - { - "id": 755, - "order": "Fury" - }, - { - "id": 756, - "order": "Titans" - }, - { - "id": 757, - "order": "Anger" - }, - { - "id": 758, - "order": "Rage" - }, - { - "id": 759, - "order": "Anger" - }, - { - "id": 760, - "order": "Giants" - }, - { - "id": 761, - "order": "Power" - }, - { - "id": 762, - "order": "Detection" - }, - { - "id": 763, - "order": "Brilliance" - }, - { - "id": 764, - "order": "Anger" - }, - { - "id": 765, - "order": "Rage" - }, - { - "id": 766, - "order": "the Twins" - }, - { - "id": 767, - "order": "Anger" - }, - { - "id": 768, - "order": "Anger" - }, - { - "id": 769, - "order": "Vitriol" - }, - { - "id": 770, - "order": "Detection" - }, - { - "id": 771, - "order": "Brilliance" - }, - { - "id": 772, - "order": "Skill" - }, - { - "id": 773, - "order": "Vitriol" - }, - { - "id": 774, - "order": "Detection" - }, - { - "id": 775, - "order": "Brilliance" - }, - { - "id": 776, - "order": "Titans" - }, - { - "id": 777, - "order": "Perfection" - }, - { - "id": 778, - "order": "Rage" - }, - { - "id": 779, - "order": "Fury" - }, - { - "id": 780, - "order": "Enlightenment" - }, - { - "id": 781, - "order": "Titans" - }, - { - "id": 782, - "order": "Brilliance" - }, - { - "id": 783, - "order": "the Twins" - }, - { - "id": 784, - "order": "Skill" - }, - { - "id": 785, - "order": "Vitriol" - }, - { - "id": 786, - "order": "Vitriol" - }, - { - "id": 787, - "order": "Giants" - }, - { - "id": 788, - "order": "Rage" - }, - { - "id": 789, - "order": "Giants" - }, - { - "id": 790, - "order": "Rage" - }, - { - "id": 791, - "order": "Titans" - }, - { - "id": 792, - "order": "Protection" - }, - { - "id": 793, - "order": "Brilliance" - }, - { - "id": 794, - "order": "Perfection" - }, - { - "id": 795, - "order": "Protection" - }, - { - "id": 796, - "order": "Vitriol" - }, - { - "id": 797, - "order": "Protection" - }, - { - "id": 798, - "order": "Reflection" - }, - { - "id": 799, - "order": "the Fox" - }, - { - "id": 800, - "order": "Reflection" - }, - { - "id": 801, - "order": "Enlightenment" - }, - { - "id": 802, - "order": "Giants" - }, - { - "id": 803, - "order": "Enlightenment" - }, - { - "id": 804, - "order": "Rage" - }, - { - "id": 805, - "order": "Perfection" - }, - { - "id": 806, - "order": "the Twins" - }, - { - "id": 807, - "order": "Fury" - }, - { - "id": 808, - "order": "the Twins" - }, - { - "id": 809, - "order": "Protection" - }, - { - "id": 810, - "order": "Enlightenment" - }, - { - "id": 811, - "order": "the Fox" - }, - { - "id": 812, - "order": "Power" - }, - { - "id": 813, - "order": "Perfection" - }, - { - "id": 814, - "order": "Titans" - }, - { - "id": 815, - "order": "Fury" - }, - { - "id": 816, - "order": "Vitriol" - }, - { - "id": 817, - "order": "Skill" - }, - { - "id": 818, - "order": "Protection" - }, - { - "id": 819, - "order": "Rage" - }, - { - "id": 820, - "order": "Power" - }, - { - "id": 821, - "order": "Giants" - }, - { - "id": 822, - "order": "Fury" - }, - { - "id": 823, - "order": "Vitriol" - }, - { - "id": 824, - "order": "Enlightenment" - }, - { - "id": 825, - "order": "Perfection" - }, - { - "id": 826, - "order": "Vitriol" - }, - { - "id": 827, - "order": "Rage" - }, - { - "id": 828, - "order": "the Twins" - }, - { - "id": 829, - "order": "Fury" - }, - { - "id": 830, - "order": "Enlightenment" - }, - { - "id": 831, - "order": "Protection" - }, - { - "id": 832, - "order": "the Fox" - }, - { - "id": 833, - "order": "Fury" - }, - { - "id": 834, - "order": "Brilliance" - }, - { - "id": 835, - "order": "the Fox" - }, - { - "id": 836, - "order": "Titans" - }, - { - "id": 837, - "order": "Giants" - }, - { - "id": 838, - "order": "Rage" - }, - { - "id": 839, - "order": "Giants" - }, - { - "id": 840, - "order": "Rage" - }, - { - "id": 841, - "order": "Brilliance" - }, - { - "id": 842, - "order": "Anger" - }, - { - "id": 843, - "order": "Protection" - }, - { - "id": 844, - "order": "Perfection" - }, - { - "id": 845, - "order": "Reflection" - }, - { - "id": 846, - "order": "Detection" - }, - { - "id": 847, - "order": "Titans" - }, - { - "id": 848, - "order": "Detection" - }, - { - "id": 849, - "order": "Skill" - }, - { - "id": 850, - "order": "Titans" - }, - { - "id": 851, - "order": "Enlightenment" - }, - { - "id": 852, - "order": "Protection" - }, - { - "id": 853, - "order": "Rage" - }, - { - "id": 854, - "order": "Detection" - }, - { - "id": 855, - "order": "Anger" - }, - { - "id": 856, - "order": "Titans" - }, - { - "id": 857, - "order": "Protection" - }, - { - "id": 858, - "order": "Rage" - }, - { - "id": 859, - "order": "Detection" - }, - { - "id": 860, - "order": "Skill" - }, - { - "id": 861, - "order": "Titans" - }, - { - "id": 862, - "order": "Protection" - }, - { - "id": 863, - "order": "Titans" - }, - { - "id": 864, - "order": "Skill" - }, - { - "id": 865, - "order": "Fury" - }, - { - "id": 866, - "order": "Power" - }, - { - "id": 867, - "order": "Enlightenment" - }, - { - "id": 868, - "order": "Rage" - }, - { - "id": 869, - "order": "Giants" - }, - { - "id": 870, - "order": "Titans" - }, - { - "id": 871, - "order": "Power" - }, - { - "id": 872, - "order": "the Twins" - }, - { - "id": 873, - "order": "Reflection" - }, - { - "id": 874, - "order": "Detection" - }, - { - "id": 875, - "order": "the Fox" - }, - { - "id": 876, - "order": "Protection" - }, - { - "id": 877, - "order": "Brilliance" - }, - { - "id": 878, - "order": "Brilliance" - }, - { - "id": 879, - "order": "Brilliance" - }, - { - "id": 880, - "order": "Protection" - }, - { - "id": 881, - "order": "Titans" - }, - { - "id": 882, - "order": "Reflection" - }, - { - "id": 883, - "order": "Anger" - }, - { - "id": 884, - "order": "the Fox" - }, - { - "id": 885, - "order": "Reflection" - }, - { - "id": 886, - "order": "Perfection" - }, - { - "id": 887, - "order": "Protection" - }, - { - "id": 888, - "order": "Vitriol" - }, - { - "id": 889, - "order": "the Fox" - }, - { - "id": 890, - "order": "Protection" - }, - { - "id": 891, - "order": "Titans" - }, - { - "id": 892, - "order": "Giants" - }, - { - "id": 893, - "order": "Fury" - }, - { - "id": 894, - "order": "Rage" - }, - { - "id": 895, - "order": "the Twins" - }, - { - "id": 896, - "order": "the Twins" - }, - { - "id": 897, - "order": "Power" - }, - { - "id": 898, - "order": "Enlightenment" - }, - { - "id": 899, - "order": "Vitriol" - }, - { - "id": 900, - "order": "Protection" - }, - { - "id": 901, - "order": "Perfection" - }, - { - "id": 902, - "order": "Enlightenment" - }, - { - "id": 903, - "order": "Detection" - }, - { - "id": 904, - "order": "Power" - }, - { - "id": 905, - "order": "Reflection" - }, - { - "id": 906, - "order": "Enlightenment" - }, - { - "id": 907, - "order": "the Fox" - }, - { - "id": 908, - "order": "Fury" - }, - { - "id": 909, - "order": "Giants" - }, - { - "id": 910, - "order": "the Fox" - }, - { - "id": 911, - "order": "Rage" - }, - { - "id": 912, - "order": "Vitriol" - }, - { - "id": 913, - "order": "the Twins" - }, - { - "id": 914, - "order": "Fury" - }, - { - "id": 915, - "order": "Reflection" - }, - { - "id": 916, - "order": "Power" - }, - { - "id": 917, - "order": "Anger" - }, - { - "id": 918, - "order": "Reflection" - }, - { - "id": 919, - "order": "Detection" - }, - { - "id": 920, - "order": "Giants" - }, - { - "id": 921, - "order": "Reflection" - }, - { - "id": 922, - "order": "Reflection" - }, - { - "id": 923, - "order": "Giants" - }, - { - "id": 924, - "order": "Giants" - }, - { - "id": 925, - "order": "Perfection" - }, - { - "id": 926, - "order": "the Twins" - }, - { - "id": 927, - "order": "the Twins" - }, - { - "id": 928, - "order": "Brilliance" - }, - { - "id": 929, - "order": "Fury" - }, - { - "id": 930, - "order": "Detection" - }, - { - "id": 931, - "order": "Titans" - }, - { - "id": 932, - "order": "Enlightenment" - }, - { - "id": 933, - "order": "Rage" - }, - { - "id": 934, - "order": "Anger" - }, - { - "id": 935, - "order": "Anger" - }, - { - "id": 936, - "order": "Titans" - }, - { - "id": 937, - "order": "Enlightenment" - }, - { - "id": 938, - "order": "Anger" - }, - { - "id": 939, - "order": "Brilliance" - }, - { - "id": 940, - "order": "Giants" - }, - { - "id": 941, - "order": "Skill" - }, - { - "id": 942, - "order": "Giants" - }, - { - "id": 943, - "order": "Giants" - }, - { - "id": 944, - "order": "Skill" - }, - { - "id": 945, - "order": "Fury" - }, - { - "id": 946, - "order": "Power" - }, - { - "id": 947, - "order": "Vitriol" - }, - { - "id": 948, - "order": "Perfection" - }, - { - "id": 949, - "order": "Titans" - }, - { - "id": 950, - "order": "Anger" - }, - { - "id": 951, - "order": "Titans" - }, - { - "id": 952, - "order": "the Fox" - }, - { - "id": 953, - "order": "Vitriol" - }, - { - "id": 954, - "order": "Rage" - }, - { - "id": 955, - "order": "Power" - }, - { - "id": 956, - "order": "Fury" - }, - { - "id": 957, - "order": "Titans" - }, - { - "id": 958, - "order": "Fury" - }, - { - "id": 959, - "order": "Giants" - }, - { - "id": 960, - "order": "Rage" - }, - { - "id": 961, - "order": "Giants" - }, - { - "id": 962, - "order": "Vitriol" - }, - { - "id": 963, - "order": "Brilliance" - }, - { - "id": 964, - "order": "Perfection" - }, - { - "id": 965, - "order": "Power" - }, - { - "id": 966, - "order": "Rage" - }, - { - "id": 967, - "order": "the Twins" - }, - { - "id": 968, - "order": "Power" - }, - { - "id": 969, - "order": "Giants" - }, - { - "id": 970, - "order": "Skill" - }, - { - "id": 971, - "order": "Reflection" - }, - { - "id": 972, - "order": "Power" - }, - { - "id": 973, - "order": "Fury" - }, - { - "id": 974, - "order": "Detection" - }, - { - "id": 975, - "order": "Brilliance" - }, - { - "id": 976, - "order": "Fury" - }, - { - "id": 977, - "order": "Perfection" - }, - { - "id": 978, - "order": "the Fox" - }, - { - "id": 979, - "order": "the Twins" - }, - { - "id": 980, - "order": "Enlightenment" - }, - { - "id": 981, - "order": "Brilliance" - }, - { - "id": 982, - "order": "Reflection" - }, - { - "id": 983, - "order": "Giants" - }, - { - "id": 984, - "order": "Enlightenment" - }, - { - "id": 985, - "order": "Detection" - }, - { - "id": 986, - "order": "Brilliance" - }, - { - "id": 987, - "order": "Protection" - }, - { - "id": 988, - "order": "Perfection" - }, - { - "id": 989, - "order": "Titans" - }, - { - "id": 990, - "order": "Titans" - }, - { - "id": 991, - "order": "Brilliance" - }, - { - "id": 992, - "order": "Rage" - }, - { - "id": 993, - "order": "Giants" - }, - { - "id": 994, - "order": "Fury" - }, - { - "id": 995, - "order": "Vitriol" - }, - { - "id": 996, - "order": "Reflection" - }, - { - "id": 997, - "order": "Anger" - }, - { - "id": 998, - "order": "Brilliance" - }, - { - "id": 999, - "order": "Vitriol" - }, - { - "id": 1000, - "order": "Giants" - }, - { - "id": 1001, - "order": "Vitriol" - }, - { - "id": 1002, - "order": "Vitriol" - }, - { - "id": 1003, - "order": "Detection" - }, - { - "id": 1004, - "order": "Reflection" - }, - { - "id": 1005, - "order": "Fury" - }, - { - "id": 1006, - "order": "Detection" - }, - { - "id": 1007, - "order": "Detection" - }, - { - "id": 1008, - "order": "Titans" - }, - { - "id": 1009, - "order": "Skill" - }, - { - "id": 1010, - "order": "Rage" - }, - { - "id": 1011, - "order": "Titans" - }, - { - "id": 1012, - "order": "Reflection" - }, - { - "id": 1013, - "order": "Fury" - }, - { - "id": 1014, - "order": "Fury" - }, - { - "id": 1015, - "order": "Rage" - }, - { - "id": 1016, - "order": "Fury" - }, - { - "id": 1017, - "order": "Skill" - }, - { - "id": 1018, - "order": "Enlightenment" - }, - { - "id": 1019, - "order": "the Fox" - }, - { - "id": 1020, - "order": "Power" - }, - { - "id": 1021, - "order": "Fury" - }, - { - "id": 1022, - "order": "Detection" - }, - { - "id": 1023, - "order": "the Fox" - }, - { - "id": 1024, - "order": "Perfection" - }, - { - "id": 1025, - "order": "Skill" - }, - { - "id": 1026, - "order": "Anger" - }, - { - "id": 1027, - "order": "Detection" - }, - { - "id": 1028, - "order": "Skill" - }, - { - "id": 1029, - "order": "Titans" - }, - { - "id": 1030, - "order": "Titans" - }, - { - "id": 1031, - "order": "Rage" - }, - { - "id": 1032, - "order": "the Twins" - }, - { - "id": 1033, - "order": "Reflection" - }, - { - "id": 1034, - "order": "Skill" - }, - { - "id": 1035, - "order": "Detection" - }, - { - "id": 1036, - "order": "Giants" - }, - { - "id": 1037, - "order": "Skill" - }, - { - "id": 1038, - "order": "Detection" - }, - { - "id": 1039, - "order": "Giants" - }, - { - "id": 1040, - "order": "Anger" - }, - { - "id": 1041, - "order": "Anger" - }, - { - "id": 1042, - "order": "Protection" - }, - { - "id": 1043, - "order": "Protection" - }, - { - "id": 1044, - "order": "Giants" - }, - { - "id": 1045, - "order": "the Fox" - }, - { - "id": 1046, - "order": "Titans" - }, - { - "id": 1047, - "order": "Brilliance" - }, - { - "id": 1048, - "order": "the Twins" - }, - { - "id": 1049, - "order": "Skill" - }, - { - "id": 1050, - "order": "Protection" - }, - { - "id": 1051, - "order": "Reflection" - }, - { - "id": 1052, - "order": "the Twins" - }, - { - "id": 1053, - "order": "Power" - }, - { - "id": 1054, - "order": "Reflection" - }, - { - "id": 1055, - "order": "Titans" - }, - { - "id": 1056, - "order": "the Twins" - }, - { - "id": 1057, - "order": "Enlightenment" - }, - { - "id": 1058, - "order": "Reflection" - }, - { - "id": 1059, - "order": "Titans" - }, - { - "id": 1060, - "order": "Vitriol" - }, - { - "id": 1061, - "order": "Enlightenment" - }, - { - "id": 1062, - "order": "Giants" - }, - { - "id": 1063, - "order": "Reflection" - }, - { - "id": 1064, - "order": "Detection" - }, - { - "id": 1065, - "order": "the Twins" - }, - { - "id": 1066, - "order": "Rage" - }, - { - "id": 1067, - "order": "Giants" - }, - { - "id": 1068, - "order": "Reflection" - }, - { - "id": 1069, - "order": "Detection" - }, - { - "id": 1070, - "order": "Anger" - }, - { - "id": 1071, - "order": "Titans" - }, - { - "id": 1072, - "order": "Titans" - }, - { - "id": 1073, - "order": "the Twins" - }, - { - "id": 1074, - "order": "Giants" - }, - { - "id": 1075, - "order": "Rage" - }, - { - "id": 1076, - "order": "Detection" - }, - { - "id": 1077, - "order": "Brilliance" - }, - { - "id": 1078, - "order": "Reflection" - }, - { - "id": 1079, - "order": "Enlightenment" - }, - { - "id": 1080, - "order": "Protection" - }, - { - "id": 1081, - "order": "Reflection" - }, - { - "id": 1082, - "order": "Vitriol" - }, - { - "id": 1083, - "order": "Protection" - }, - { - "id": 1084, - "order": "Giants" - }, - { - "id": 1085, - "order": "Giants" - }, - { - "id": 1086, - "order": "Protection" - }, - { - "id": 1087, - "order": "Rage" - }, - { - "id": 1088, - "order": "Giants" - }, - { - "id": 1089, - "order": "Skill" - }, - { - "id": 1090, - "order": "Reflection" - }, - { - "id": 1091, - "order": "Fury" - }, - { - "id": 1092, - "order": "Fury" - }, - { - "id": 1093, - "order": "Detection" - }, - { - "id": 1094, - "order": "the Fox" - }, - { - "id": 1095, - "order": "Anger" - }, - { - "id": 1096, - "order": "Perfection" - }, - { - "id": 1097, - "order": "Rage" - }, - { - "id": 1098, - "order": "Vitriol" - }, - { - "id": 1099, - "order": "Vitriol" - }, - { - "id": 1100, - "order": "Titans" - }, - { - "id": 1101, - "order": "Titans" - }, - { - "id": 1102, - "order": "Protection" - }, - { - "id": 1103, - "order": "Titans" - }, - { - "id": 1104, - "order": "Power" - }, - { - "id": 1105, - "order": "the Fox" - }, - { - "id": 1106, - "order": "the Fox" - }, - { - "id": 1107, - "order": "Anger" - }, - { - "id": 1108, - "order": "Vitriol" - }, - { - "id": 1109, - "order": "Skill" - }, - { - "id": 1110, - "order": "Anger" - }, - { - "id": 1111, - "order": "Vitriol" - }, - { - "id": 1112, - "order": "Vitriol" - }, - { - "id": 1113, - "order": "Vitriol" - }, - { - "id": 1114, - "order": "Giants" - }, - { - "id": 1115, - "order": "Titans" - }, - { - "id": 1116, - "order": "Anger" - }, - { - "id": 1117, - "order": "Protection" - }, - { - "id": 1118, - "order": "Reflection" - }, - { - "id": 1119, - "order": "Perfection" - }, - { - "id": 1120, - "order": "Perfection" - }, - { - "id": 1121, - "order": "Perfection" - }, - { - "id": 1122, - "order": "Vitriol" - }, - { - "id": 1123, - "order": "the Fox" - }, - { - "id": 1124, - "order": "the Twins" - }, - { - "id": 1125, - "order": "Brilliance" - }, - { - "id": 1126, - "order": "Detection" - }, - { - "id": 1127, - "order": "Reflection" - }, - { - "id": 1128, - "order": "Anger" - }, - { - "id": 1129, - "order": "Fury" - }, - { - "id": 1130, - "order": "Titans" - }, - { - "id": 1131, - "order": "Vitriol" - }, - { - "id": 1132, - "order": "Power" - }, - { - "id": 1133, - "order": "Power" - }, - { - "id": 1134, - "order": "Protection" - }, - { - "id": 1135, - "order": "Enlightenment" - }, - { - "id": 1136, - "order": "Reflection" - }, - { - "id": 1137, - "order": "Protection" - }, - { - "id": 1138, - "order": "Enlightenment" - }, - { - "id": 1139, - "order": "the Fox" - }, - { - "id": 1140, - "order": "Skill" - }, - { - "id": 1141, - "order": "Brilliance" - }, - { - "id": 1142, - "order": "Vitriol" - }, - { - "id": 1143, - "order": "the Twins" - }, - { - "id": 1144, - "order": "Skill" - }, - { - "id": 1145, - "order": "Enlightenment" - }, - { - "id": 1146, - "order": "Reflection" - }, - { - "id": 1147, - "order": "Brilliance" - }, - { - "id": 1148, - "order": "the Twins" - }, - { - "id": 1149, - "order": "Titans" - }, - { - "id": 1150, - "order": "Anger" - }, - { - "id": 1151, - "order": "Vitriol" - }, - { - "id": 1152, - "order": "Perfection" - }, - { - "id": 1153, - "order": "Titans" - }, - { - "id": 1154, - "order": "Enlightenment" - }, - { - "id": 1155, - "order": "Brilliance" - }, - { - "id": 1156, - "order": "Detection" - }, - { - "id": 1157, - "order": "Power" - }, - { - "id": 1158, - "order": "Rage" - }, - { - "id": 1159, - "order": "Detection" - }, - { - "id": 1160, - "order": "the Twins" - }, - { - "id": 1161, - "order": "Rage" - }, - { - "id": 1162, - "order": "the Twins" - }, - { - "id": 1163, - "order": "Fury" - }, - { - "id": 1164, - "order": "Anger" - }, - { - "id": 1165, - "order": "Giants" - }, - { - "id": 1166, - "order": "Fury" - }, - { - "id": 1167, - "order": "Vitriol" - }, - { - "id": 1168, - "order": "the Twins" - }, - { - "id": 1169, - "order": "Titans" - }, - { - "id": 1170, - "order": "Protection" - }, - { - "id": 1171, - "order": "Vitriol" - }, - { - "id": 1172, - "order": "Anger" - }, - { - "id": 1173, - "order": "Detection" - }, - { - "id": 1174, - "order": "Vitriol" - }, - { - "id": 1175, - "order": "Giants" - }, - { - "id": 1176, - "order": "Titans" - }, - { - "id": 1177, - "order": "Reflection" - }, - { - "id": 1178, - "order": "Rage" - }, - { - "id": 1179, - "order": "the Twins" - }, - { - "id": 1180, - "order": "Anger" - }, - { - "id": 1181, - "order": "Protection" - }, - { - "id": 1182, - "order": "Protection" - }, - { - "id": 1183, - "order": "the Fox" - }, - { - "id": 1184, - "order": "Skill" - }, - { - "id": 1185, - "order": "Giants" - }, - { - "id": 1186, - "order": "Enlightenment" - }, - { - "id": 1187, - "order": "Skill" - }, - { - "id": 1188, - "order": "Reflection" - }, - { - "id": 1189, - "order": "Reflection" - }, - { - "id": 1190, - "order": "Power" - }, - { - "id": 1191, - "order": "Power" - }, - { - "id": 1192, - "order": "Protection" - }, - { - "id": 1193, - "order": "Enlightenment" - }, - { - "id": 1194, - "order": "Protection" - }, - { - "id": 1195, - "order": "Fury" - }, - { - "id": 1196, - "order": "Detection" - }, - { - "id": 1197, - "order": "Rage" - }, - { - "id": 1198, - "order": "the Twins" - }, - { - "id": 1199, - "order": "Power" - }, - { - "id": 1200, - "order": "Perfection" - }, - { - "id": 1201, - "order": "Detection" - }, - { - "id": 1202, - "order": "Enlightenment" - }, - { - "id": 1203, - "order": "Fury" - }, - { - "id": 1204, - "order": "Enlightenment" - }, - { - "id": 1205, - "order": "Fury" - }, - { - "id": 1206, - "order": "Reflection" - }, - { - "id": 1207, - "order": "Protection" - }, - { - "id": 1208, - "order": "Perfection" - }, - { - "id": 1209, - "order": "Power" - }, - { - "id": 1210, - "order": "Titans" - }, - { - "id": 1211, - "order": "Protection" - }, - { - "id": 1212, - "order": "Skill" - }, - { - "id": 1213, - "order": "the Twins" - }, - { - "id": 1214, - "order": "Anger" - }, - { - "id": 1215, - "order": "Anger" - }, - { - "id": 1216, - "order": "Skill" - }, - { - "id": 1217, - "order": "Fury" - }, - { - "id": 1218, - "order": "Detection" - }, - { - "id": 1219, - "order": "Giants" - }, - { - "id": 1220, - "order": "Rage" - }, - { - "id": 1221, - "order": "Enlightenment" - }, - { - "id": 1222, - "order": "Detection" - }, - { - "id": 1223, - "order": "Vitriol" - }, - { - "id": 1224, - "order": "Protection" - }, - { - "id": 1225, - "order": "the Twins" - }, - { - "id": 1226, - "order": "Brilliance" - }, - { - "id": 1227, - "order": "Fury" - }, - { - "id": 1228, - "order": "Anger" - }, - { - "id": 1229, - "order": "Detection" - }, - { - "id": 1230, - "order": "Perfection" - }, - { - "id": 1231, - "order": "Perfection" - }, - { - "id": 1232, - "order": "Rage" - }, - { - "id": 1233, - "order": "Vitriol" - }, - { - "id": 1234, - "order": "Protection" - }, - { - "id": 1235, - "order": "Anger" - }, - { - "id": 1236, - "order": "Enlightenment" - }, - { - "id": 1237, - "order": "Detection" - }, - { - "id": 1238, - "order": "Anger" - }, - { - "id": 1239, - "order": "Vitriol" - }, - { - "id": 1240, - "order": "Detection" - }, - { - "id": 1241, - "order": "Giants" - }, - { - "id": 1242, - "order": "Reflection" - }, - { - "id": 1243, - "order": "Vitriol" - }, - { - "id": 1244, - "order": "the Twins" - }, - { - "id": 1245, - "order": "Rage" - }, - { - "id": 1246, - "order": "Protection" - }, - { - "id": 1247, - "order": "Brilliance" - }, - { - "id": 1248, - "order": "the Fox" - }, - { - "id": 1249, - "order": "Perfection" - }, - { - "id": 1250, - "order": "Power" - }, - { - "id": 1251, - "order": "Power" - }, - { - "id": 1252, - "order": "Vitriol" - }, - { - "id": 1253, - "order": "Brilliance" - }, - { - "id": 1254, - "order": "Enlightenment" - }, - { - "id": 1255, - "order": "Perfection" - }, - { - "id": 1256, - "order": "Fury" - }, - { - "id": 1257, - "order": "Giants" - }, - { - "id": 1258, - "order": "the Twins" - }, - { - "id": 1259, - "order": "Rage" - }, - { - "id": 1260, - "order": "Skill" - }, - { - "id": 1261, - "order": "Vitriol" - }, - { - "id": 1262, - "order": "the Twins" - }, - { - "id": 1263, - "order": "Detection" - }, - { - "id": 1264, - "order": "Protection" - }, - { - "id": 1265, - "order": "Titans" - }, - { - "id": 1266, - "order": "Protection" - }, - { - "id": 1267, - "order": "Skill" - }, - { - "id": 1268, - "order": "Skill" - }, - { - "id": 1269, - "order": "the Fox" - }, - { - "id": 1270, - "order": "Skill" - }, - { - "id": 1271, - "order": "Rage" - }, - { - "id": 1272, - "order": "Detection" - }, - { - "id": 1273, - "order": "the Twins" - }, - { - "id": 1274, - "order": "Giants" - }, - { - "id": 1275, - "order": "Reflection" - }, - { - "id": 1276, - "order": "the Twins" - }, - { - "id": 1277, - "order": "Rage" - }, - { - "id": 1278, - "order": "Enlightenment" - }, - { - "id": 1279, - "order": "Perfection" - }, - { - "id": 1280, - "order": "Perfection" - }, - { - "id": 1281, - "order": "Brilliance" - }, - { - "id": 1282, - "order": "Detection" - }, - { - "id": 1283, - "order": "Protection" - }, - { - "id": 1284, - "order": "Perfection" - }, - { - "id": 1285, - "order": "Vitriol" - }, - { - "id": 1286, - "order": "Vitriol" - }, - { - "id": 1287, - "order": "Skill" - }, - { - "id": 1288, - "order": "Skill" - }, - { - "id": 1289, - "order": "Anger" - }, - { - "id": 1290, - "order": "Anger" - }, - { - "id": 1291, - "order": "the Fox" - }, - { - "id": 1292, - "order": "Brilliance" - }, - { - "id": 1293, - "order": "the Twins" - }, - { - "id": 1294, - "order": "Fury" - }, - { - "id": 1295, - "order": "Giants" - }, - { - "id": 1296, - "order": "Titans" - }, - { - "id": 1297, - "order": "Fury" - }, - { - "id": 1298, - "order": "Reflection" - }, - { - "id": 1299, - "order": "Fury" - }, - { - "id": 1300, - "order": "Power" - }, - { - "id": 1301, - "order": "Vitriol" - }, - { - "id": 1302, - "order": "the Fox" - }, - { - "id": 1303, - "order": "Giants" - }, - { - "id": 1304, - "order": "Protection" - }, - { - "id": 1305, - "order": "Protection" - }, - { - "id": 1306, - "order": "Perfection" - }, - { - "id": 1307, - "order": "Vitriol" - }, - { - "id": 1308, - "order": "Brilliance" - }, - { - "id": 1309, - "order": "Titans" - }, - { - "id": 1310, - "order": "Titans" - }, - { - "id": 1311, - "order": "Enlightenment" - }, - { - "id": 1312, - "order": "Vitriol" - }, - { - "id": 1313, - "order": "Rage" - }, - { - "id": 1314, - "order": "Anger" - }, - { - "id": 1315, - "order": "Vitriol" - }, - { - "id": 1316, - "order": "the Fox" - }, - { - "id": 1317, - "order": "Reflection" - }, - { - "id": 1318, - "order": "Fury" - }, - { - "id": 1319, - "order": "Giants" - }, - { - "id": 1320, - "order": "Fury" - }, - { - "id": 1321, - "order": "Enlightenment" - }, - { - "id": 1322, - "order": "Rage" - }, - { - "id": 1323, - "order": "Detection" - }, - { - "id": 1324, - "order": "Power" - }, - { - "id": 1325, - "order": "Brilliance" - }, - { - "id": 1326, - "order": "the Twins" - }, - { - "id": 1327, - "order": "Titans" - }, - { - "id": 1328, - "order": "Enlightenment" - }, - { - "id": 1329, - "order": "Protection" - }, - { - "id": 1330, - "order": "Protection" - }, - { - "id": 1331, - "order": "Brilliance" - }, - { - "id": 1332, - "order": "Detection" - }, - { - "id": 1333, - "order": "Reflection" - }, - { - "id": 1334, - "order": "Anger" - }, - { - "id": 1335, - "order": "Anger" - }, - { - "id": 1336, - "order": "Titans" - }, - { - "id": 1337, - "order": "Titans" - }, - { - "id": 1338, - "order": "Detection" - }, - { - "id": 1339, - "order": "Skill" - }, - { - "id": 1340, - "order": "Protection" - }, - { - "id": 1341, - "order": "Rage" - }, - { - "id": 1342, - "order": "the Twins" - }, - { - "id": 1343, - "order": "Enlightenment" - }, - { - "id": 1344, - "order": "Rage" - }, - { - "id": 1345, - "order": "Protection" - }, - { - "id": 1346, - "order": "Power" - }, - { - "id": 1347, - "order": "Anger" - }, - { - "id": 1348, - "order": "Perfection" - }, - { - "id": 1349, - "order": "Brilliance" - }, - { - "id": 1350, - "order": "Anger" - }, - { - "id": 1351, - "order": "Perfection" - }, - { - "id": 1352, - "order": "Vitriol" - }, - { - "id": 1353, - "order": "Detection" - }, - { - "id": 1354, - "order": "Giants" - }, - { - "id": 1355, - "order": "Rage" - }, - { - "id": 1356, - "order": "Vitriol" - }, - { - "id": 1357, - "order": "Detection" - }, - { - "id": 1358, - "order": "Perfection" - }, - { - "id": 1359, - "order": "Vitriol" - }, - { - "id": 1360, - "order": "Power" - }, - { - "id": 1361, - "order": "Reflection" - }, - { - "id": 1362, - "order": "Protection" - }, - { - "id": 1363, - "order": "Skill" - }, - { - "id": 1364, - "order": "Brilliance" - }, - { - "id": 1365, - "order": "Detection" - }, - { - "id": 1366, - "order": "Detection" - }, - { - "id": 1367, - "order": "Anger" - }, - { - "id": 1368, - "order": "Detection" - }, - { - "id": 1369, - "order": "Vitriol" - }, - { - "id": 1370, - "order": "the Fox" - }, - { - "id": 1371, - "order": "the Fox" - }, - { - "id": 1372, - "order": "Skill" - }, - { - "id": 1373, - "order": "the Fox" - }, - { - "id": 1374, - "order": "Fury" - }, - { - "id": 1375, - "order": "Anger" - }, - { - "id": 1376, - "order": "Vitriol" - }, - { - "id": 1377, - "order": "Brilliance" - }, - { - "id": 1378, - "order": "Protection" - }, - { - "id": 1379, - "order": "Titans" - }, - { - "id": 1380, - "order": "the Fox" - }, - { - "id": 1381, - "order": "Skill" - }, - { - "id": 1382, - "order": "Skill" - }, - { - "id": 1383, - "order": "Protection" - }, - { - "id": 1384, - "order": "Vitriol" - }, - { - "id": 1385, - "order": "Detection" - }, - { - "id": 1386, - "order": "Enlightenment" - }, - { - "id": 1387, - "order": "Anger" - }, - { - "id": 1388, - "order": "Titans" - }, - { - "id": 1389, - "order": "Giants" - }, - { - "id": 1390, - "order": "Anger" - }, - { - "id": 1391, - "order": "Enlightenment" - }, - { - "id": 1392, - "order": "Enlightenment" - }, - { - "id": 1393, - "order": "Anger" - }, - { - "id": 1394, - "order": "Reflection" - }, - { - "id": 1395, - "order": "Power" - }, - { - "id": 1396, - "order": "Vitriol" - }, - { - "id": 1397, - "order": "Giants" - }, - { - "id": 1398, - "order": "Protection" - }, - { - "id": 1399, - "order": "Fury" - }, - { - "id": 1400, - "order": "Anger" - }, - { - "id": 1401, - "order": "Brilliance" - }, - { - "id": 1402, - "order": "Skill" - }, - { - "id": 1403, - "order": "Skill" - }, - { - "id": 1404, - "order": "Protection" - }, - { - "id": 1405, - "order": "Enlightenment" - }, - { - "id": 1406, - "order": "Fury" - }, - { - "id": 1407, - "order": "the Fox" - }, - { - "id": 1408, - "order": "Power" - }, - { - "id": 1409, - "order": "Power" - }, - { - "id": 1410, - "order": "Reflection" - }, - { - "id": 1411, - "order": "Enlightenment" - }, - { - "id": 1412, - "order": "Anger" - }, - { - "id": 1413, - "order": "Titans" - }, - { - "id": 1414, - "order": "Detection" - }, - { - "id": 1415, - "order": "Fury" - }, - { - "id": 1416, - "order": "the Fox" - }, - { - "id": 1417, - "order": "the Fox" - }, - { - "id": 1418, - "order": "Perfection" - }, - { - "id": 1419, - "order": "Skill" - }, - { - "id": 1420, - "order": "Vitriol" - }, - { - "id": 1421, - "order": "Detection" - }, - { - "id": 1422, - "order": "Anger" - }, - { - "id": 1423, - "order": "Skill" - }, - { - "id": 1424, - "order": "Titans" - }, - { - "id": 1425, - "order": "the Fox" - }, - { - "id": 1426, - "order": "Giants" - }, - { - "id": 1427, - "order": "Protection" - }, - { - "id": 1428, - "order": "Giants" - }, - { - "id": 1429, - "order": "the Fox" - }, - { - "id": 1430, - "order": "Rage" - }, - { - "id": 1431, - "order": "Fury" - }, - { - "id": 1432, - "order": "Protection" - }, - { - "id": 1433, - "order": "Perfection" - }, - { - "id": 1434, - "order": "Giants" - }, - { - "id": 1435, - "order": "Detection" - }, - { - "id": 1436, - "order": "Protection" - }, - { - "id": 1437, - "order": "Perfection" - }, - { - "id": 1438, - "order": "Rage" - }, - { - "id": 1439, - "order": "Rage" - }, - { - "id": 1440, - "order": "Reflection" - }, - { - "id": 1441, - "order": "Titans" - }, - { - "id": 1442, - "order": "Brilliance" - }, - { - "id": 1443, - "order": "the Twins" - }, - { - "id": 1444, - "order": "Rage" - }, - { - "id": 1445, - "order": "Rage" - }, - { - "id": 1446, - "order": "Fury" - }, - { - "id": 1447, - "order": "Brilliance" - }, - { - "id": 1448, - "order": "Giants" - }, - { - "id": 1449, - "order": "Power" - }, - { - "id": 1450, - "order": "Power" - }, - { - "id": 1451, - "order": "the Fox" - }, - { - "id": 1452, - "order": "Protection" - }, - { - "id": 1453, - "order": "Titans" - }, - { - "id": 1454, - "order": "the Twins" - }, - { - "id": 1455, - "order": "Power" - }, - { - "id": 1456, - "order": "Detection" - }, - { - "id": 1457, - "order": "Perfection" - }, - { - "id": 1458, - "order": "Enlightenment" - }, - { - "id": 1459, - "order": "Rage" - }, - { - "id": 1460, - "order": "Power" - }, - { - "id": 1461, - "order": "Giants" - }, - { - "id": 1462, - "order": "Detection" - }, - { - "id": 1463, - "order": "Titans" - }, - { - "id": 1464, - "order": "Power" - }, - { - "id": 1465, - "order": "Power" - }, - { - "id": 1466, - "order": "Protection" - }, - { - "id": 1467, - "order": "Giants" - }, - { - "id": 1468, - "order": "Skill" - }, - { - "id": 1469, - "order": "Perfection" - }, - { - "id": 1470, - "order": "Giants" - }, - { - "id": 1471, - "order": "Skill" - }, - { - "id": 1472, - "order": "Fury" - }, - { - "id": 1473, - "order": "Reflection" - }, - { - "id": 1474, - "order": "Protection" - }, - { - "id": 1475, - "order": "Anger" - }, - { - "id": 1476, - "order": "Anger" - }, - { - "id": 1477, - "order": "Rage" - }, - { - "id": 1478, - "order": "Rage" - }, - { - "id": 1479, - "order": "Reflection" - }, - { - "id": 1480, - "order": "the Twins" - }, - { - "id": 1481, - "order": "the Twins" - }, - { - "id": 1482, - "order": "Vitriol" - }, - { - "id": 1483, - "order": "Protection" - }, - { - "id": 1484, - "order": "Anger" - }, - { - "id": 1485, - "order": "Anger" - }, - { - "id": 1486, - "order": "Brilliance" - }, - { - "id": 1487, - "order": "Power" - }, - { - "id": 1488, - "order": "Protection" - }, - { - "id": 1489, - "order": "Skill" - }, - { - "id": 1490, - "order": "Fury" - }, - { - "id": 1491, - "order": "Protection" - }, - { - "id": 1492, - "order": "the Fox" - }, - { - "id": 1493, - "order": "Enlightenment" - }, - { - "id": 1494, - "order": "Anger" - }, - { - "id": 1495, - "order": "the Fox" - }, - { - "id": 1496, - "order": "Titans" - }, - { - "id": 1497, - "order": "Anger" - }, - { - "id": 1498, - "order": "Rage" - }, - { - "id": 1499, - "order": "Vitriol" - }, - { - "id": 1500, - "order": "Power" - }, - { - "id": 1501, - "order": "Power" - }, - { - "id": 1502, - "order": "Skill" - }, - { - "id": 1503, - "order": "Brilliance" - }, - { - "id": 1504, - "order": "Giants" - }, - { - "id": 1505, - "order": "Skill" - }, - { - "id": 1506, - "order": "Anger" - }, - { - "id": 1507, - "order": "Power" - }, - { - "id": 1508, - "order": "Brilliance" - }, - { - "id": 1509, - "order": "Brilliance" - }, - { - "id": 1510, - "order": "Titans" - }, - { - "id": 1511, - "order": "Detection" - }, - { - "id": 1512, - "order": "Rage" - }, - { - "id": 1513, - "order": "Power" - }, - { - "id": 1514, - "order": "Anger" - }, - { - "id": 1515, - "order": "Skill" - }, - { - "id": 1516, - "order": "Titans" - }, - { - "id": 1517, - "order": "Titans" - }, - { - "id": 1518, - "order": "Detection" - }, - { - "id": 1519, - "order": "Skill" - }, - { - "id": 1520, - "order": "Giants" - }, - { - "id": 1521, - "order": "Detection" - }, - { - "id": 1522, - "order": "Rage" - }, - { - "id": 1523, - "order": "Protection" - }, - { - "id": 1524, - "order": "Giants" - }, - { - "id": 1525, - "order": "the Twins" - }, - { - "id": 1526, - "order": "Detection" - }, - { - "id": 1527, - "order": "Anger" - }, - { - "id": 1528, - "order": "Skill" - }, - { - "id": 1529, - "order": "Enlightenment" - }, - { - "id": 1530, - "order": "Skill" - }, - { - "id": 1531, - "order": "Perfection" - }, - { - "id": 1532, - "order": "Giants" - }, - { - "id": 1533, - "order": "Perfection" - }, - { - "id": 1534, - "order": "the Fox" - }, - { - "id": 1535, - "order": "Titans" - }, - { - "id": 1536, - "order": "Reflection" - }, - { - "id": 1537, - "order": "Anger" - }, - { - "id": 1538, - "order": "Enlightenment" - }, - { - "id": 1539, - "order": "Enlightenment" - }, - { - "id": 1540, - "order": "the Fox" - }, - { - "id": 1541, - "order": "Detection" - }, - { - "id": 1542, - "order": "the Twins" - }, - { - "id": 1543, - "order": "the Fox" - }, - { - "id": 1544, - "order": "the Twins" - }, - { - "id": 1545, - "order": "Brilliance" - }, - { - "id": 1546, - "order": "Rage" - }, - { - "id": 1547, - "order": "Protection" - }, - { - "id": 1548, - "order": "Perfection" - }, - { - "id": 1549, - "order": "Fury" - }, - { - "id": 1550, - "order": "Reflection" - }, - { - "id": 1551, - "order": "Power" - }, - { - "id": 1552, - "order": "Enlightenment" - }, - { - "id": 1553, - "order": "Protection" - }, - { - "id": 1554, - "order": "the Fox" - }, - { - "id": 1555, - "order": "Power" - }, - { - "id": 1556, - "order": "Detection" - }, - { - "id": 1557, - "order": "Giants" - }, - { - "id": 1558, - "order": "Titans" - }, - { - "id": 1559, - "order": "Perfection" - }, - { - "id": 1560, - "order": "Titans" - }, - { - "id": 1561, - "order": "Reflection" - }, - { - "id": 1562, - "order": "Skill" - }, - { - "id": 1563, - "order": "Giants" - }, - { - "id": 1564, - "order": "Protection" - }, - { - "id": 1565, - "order": "Brilliance" - }, - { - "id": 1566, - "order": "Titans" - }, - { - "id": 1567, - "order": "Skill" - }, - { - "id": 1568, - "order": "Perfection" - }, - { - "id": 1569, - "order": "Fury" - }, - { - "id": 1570, - "order": "Perfection" - }, - { - "id": 1571, - "order": "Brilliance" - }, - { - "id": 1572, - "order": "Perfection" - }, - { - "id": 1573, - "order": "Skill" - }, - { - "id": 1574, - "order": "Giants" - }, - { - "id": 1575, - "order": "Giants" - }, - { - "id": 1576, - "order": "Skill" - }, - { - "id": 1577, - "order": "Detection" - }, - { - "id": 1578, - "order": "Perfection" - }, - { - "id": 1579, - "order": "Giants" - }, - { - "id": 1580, - "order": "Anger" - }, - { - "id": 1581, - "order": "Vitriol" - }, - { - "id": 1582, - "order": "Skill" - }, - { - "id": 1583, - "order": "Skill" - }, - { - "id": 1584, - "order": "Rage" - }, - { - "id": 1585, - "order": "Brilliance" - }, - { - "id": 1586, - "order": "Perfection" - }, - { - "id": 1587, - "order": "Titans" - }, - { - "id": 1588, - "order": "Vitriol" - }, - { - "id": 1589, - "order": "Protection" - }, - { - "id": 1590, - "order": "Rage" - }, - { - "id": 1591, - "order": "Fury" - }, - { - "id": 1592, - "order": "Skill" - }, - { - "id": 1593, - "order": "Fury" - }, - { - "id": 1594, - "order": "Anger" - }, - { - "id": 1595, - "order": "Vitriol" - }, - { - "id": 1596, - "order": "Vitriol" - }, - { - "id": 1597, - "order": "the Twins" - }, - { - "id": 1598, - "order": "Skill" - }, - { - "id": 1599, - "order": "Titans" - }, - { - "id": 1600, - "order": "Detection" - }, - { - "id": 1601, - "order": "Perfection" - }, - { - "id": 1602, - "order": "Brilliance" - }, - { - "id": 1603, - "order": "Titans" - }, - { - "id": 1604, - "order": "Reflection" - }, - { - "id": 1605, - "order": "Rage" - }, - { - "id": 1606, - "order": "Titans" - }, - { - "id": 1607, - "order": "Skill" - }, - { - "id": 1608, - "order": "Protection" - }, - { - "id": 1609, - "order": "Detection" - }, - { - "id": 1610, - "order": "Skill" - }, - { - "id": 1611, - "order": "the Twins" - }, - { - "id": 1612, - "order": "Rage" - }, - { - "id": 1613, - "order": "Protection" - }, - { - "id": 1614, - "order": "Fury" - }, - { - "id": 1615, - "order": "Detection" - }, - { - "id": 1616, - "order": "Protection" - }, - { - "id": 1617, - "order": "Detection" - }, - { - "id": 1618, - "order": "Protection" - }, - { - "id": 1619, - "order": "Titans" - }, - { - "id": 1620, - "order": "Vitriol" - }, - { - "id": 1621, - "order": "Rage" - }, - { - "id": 1622, - "order": "the Fox" - }, - { - "id": 1623, - "order": "Fury" - }, - { - "id": 1624, - "order": "Rage" - }, - { - "id": 1625, - "order": "Detection" - }, - { - "id": 1626, - "order": "Giants" - }, - { - "id": 1627, - "order": "Rage" - }, - { - "id": 1628, - "order": "the Twins" - }, - { - "id": 1629, - "order": "Reflection" - }, - { - "id": 1630, - "order": "Power" - }, - { - "id": 1631, - "order": "Detection" - }, - { - "id": 1632, - "order": "Detection" - }, - { - "id": 1633, - "order": "Vitriol" - }, - { - "id": 1634, - "order": "Power" - }, - { - "id": 1635, - "order": "Power" - }, - { - "id": 1636, - "order": "Giants" - }, - { - "id": 1637, - "order": "Perfection" - }, - { - "id": 1638, - "order": "Vitriol" - }, - { - "id": 1639, - "order": "Brilliance" - }, - { - "id": 1640, - "order": "Reflection" - }, - { - "id": 1641, - "order": "Titans" - }, - { - "id": 1642, - "order": "Skill" - }, - { - "id": 1643, - "order": "the Twins" - }, - { - "id": 1644, - "order": "Reflection" - }, - { - "id": 1645, - "order": "Reflection" - }, - { - "id": 1646, - "order": "Power" - }, - { - "id": 1647, - "order": "Vitriol" - }, - { - "id": 1648, - "order": "Giants" - }, - { - "id": 1649, - "order": "Fury" - }, - { - "id": 1650, - "order": "the Twins" - }, - { - "id": 1651, - "order": "Rage" - }, - { - "id": 1652, - "order": "the Twins" - }, - { - "id": 1653, - "order": "Reflection" - }, - { - "id": 1654, - "order": "Giants" - }, - { - "id": 1655, - "order": "Giants" - }, - { - "id": 1656, - "order": "Enlightenment" - }, - { - "id": 1657, - "order": "Detection" - }, - { - "id": 1658, - "order": "Detection" - }, - { - "id": 1659, - "order": "Detection" - }, - { - "id": 1660, - "order": "Rage" - }, - { - "id": 1661, - "order": "the Twins" - }, - { - "id": 1662, - "order": "the Fox" - }, - { - "id": 1663, - "order": "Fury" - }, - { - "id": 1664, - "order": "Detection" - }, - { - "id": 1665, - "order": "Detection" - }, - { - "id": 1666, - "order": "Titans" - }, - { - "id": 1667, - "order": "Titans" - }, - { - "id": 1668, - "order": "Power" - }, - { - "id": 1669, - "order": "Rage" - }, - { - "id": 1670, - "order": "Titans" - }, - { - "id": 1671, - "order": "Anger" - }, - { - "id": 1672, - "order": "Power" - }, - { - "id": 1673, - "order": "the Twins" - }, - { - "id": 1674, - "order": "Reflection" - }, - { - "id": 1675, - "order": "Detection" - }, - { - "id": 1676, - "order": "Vitriol" - }, - { - "id": 1677, - "order": "Enlightenment" - }, - { - "id": 1678, - "order": "Rage" - }, - { - "id": 1679, - "order": "Brilliance" - }, - { - "id": 1680, - "order": "Vitriol" - }, - { - "id": 1681, - "order": "Reflection" - }, - { - "id": 1682, - "order": "Rage" - }, - { - "id": 1683, - "order": "Giants" - }, - { - "id": 1684, - "order": "Protection" - }, - { - "id": 1685, - "order": "Skill" - }, - { - "id": 1686, - "order": "Titans" - }, - { - "id": 1687, - "order": "Power" - }, - { - "id": 1688, - "order": "the Fox" - }, - { - "id": 1689, - "order": "Fury" - }, - { - "id": 1690, - "order": "Skill" - }, - { - "id": 1691, - "order": "Anger" - }, - { - "id": 1692, - "order": "Perfection" - }, - { - "id": 1693, - "order": "Brilliance" - }, - { - "id": 1694, - "order": "Power" - }, - { - "id": 1695, - "order": "Anger" - }, - { - "id": 1696, - "order": "Fury" - }, - { - "id": 1697, - "order": "Power" - }, - { - "id": 1698, - "order": "the Fox" - }, - { - "id": 1699, - "order": "Titans" - }, - { - "id": 1700, - "order": "Fury" - }, - { - "id": 1701, - "order": "Fury" - }, - { - "id": 1702, - "order": "Giants" - }, - { - "id": 1703, - "order": "Detection" - }, - { - "id": 1704, - "order": "Power" - }, - { - "id": 1705, - "order": "Anger" - }, - { - "id": 1706, - "order": "Enlightenment" - }, - { - "id": 1707, - "order": "Enlightenment" - }, - { - "id": 1708, - "order": "Giants" - }, - { - "id": 1709, - "order": "Rage" - }, - { - "id": 1710, - "order": "Fury" - }, - { - "id": 1711, - "order": "Protection" - }, - { - "id": 1712, - "order": "Rage" - }, - { - "id": 1713, - "order": "Anger" - }, - { - "id": 1714, - "order": "Skill" - }, - { - "id": 1715, - "order": "Fury" - }, - { - "id": 1716, - "order": "Skill" - }, - { - "id": 1717, - "order": "Titans" - }, - { - "id": 1718, - "order": "Fury" - }, - { - "id": 1719, - "order": "Perfection" - }, - { - "id": 1720, - "order": "Rage" - }, - { - "id": 1721, - "order": "Fury" - }, - { - "id": 1722, - "order": "Vitriol" - }, - { - "id": 1723, - "order": "Anger" - }, - { - "id": 1724, - "order": "Detection" - }, - { - "id": 1725, - "order": "Reflection" - }, - { - "id": 1726, - "order": "the Fox" - }, - { - "id": 1727, - "order": "Detection" - }, - { - "id": 1728, - "order": "Vitriol" - }, - { - "id": 1729, - "order": "Fury" - }, - { - "id": 1730, - "order": "Vitriol" - }, - { - "id": 1731, - "order": "Titans" - }, - { - "id": 1732, - "order": "Skill" - }, - { - "id": 1733, - "order": "Brilliance" - }, - { - "id": 1734, - "order": "Reflection" - }, - { - "id": 1735, - "order": "Fury" - }, - { - "id": 1736, - "order": "Vitriol" - }, - { - "id": 1737, - "order": "Rage" - }, - { - "id": 1738, - "order": "Power" - }, - { - "id": 1739, - "order": "Power" - }, - { - "id": 1740, - "order": "the Twins" - }, - { - "id": 1741, - "order": "Brilliance" - }, - { - "id": 1742, - "order": "Detection" - }, - { - "id": 1743, - "order": "Power" - }, - { - "id": 1744, - "order": "Fury" - }, - { - "id": 1745, - "order": "Power" - }, - { - "id": 1746, - "order": "Giants" - }, - { - "id": 1747, - "order": "Protection" - }, - { - "id": 1748, - "order": "Titans" - }, - { - "id": 1749, - "order": "Detection" - }, - { - "id": 1750, - "order": "the Twins" - }, - { - "id": 1751, - "order": "Fury" - }, - { - "id": 1752, - "order": "Perfection" - }, - { - "id": 1753, - "order": "the Fox" - }, - { - "id": 1754, - "order": "Reflection" - }, - { - "id": 1755, - "order": "the Fox" - }, - { - "id": 1756, - "order": "Titans" - }, - { - "id": 1757, - "order": "Skill" - }, - { - "id": 1758, - "order": "Vitriol" - }, - { - "id": 1759, - "order": "Skill" - }, - { - "id": 1760, - "order": "Skill" - }, - { - "id": 1761, - "order": "the Fox" - }, - { - "id": 1762, - "order": "Titans" - }, - { - "id": 1763, - "order": "the Fox" - }, - { - "id": 1764, - "order": "Titans" - }, - { - "id": 1765, - "order": "the Fox" - }, - { - "id": 1766, - "order": "Power" - }, - { - "id": 1767, - "order": "Titans" - }, - { - "id": 1768, - "order": "Vitriol" - }, - { - "id": 1769, - "order": "Giants" - }, - { - "id": 1770, - "order": "Perfection" - }, - { - "id": 1771, - "order": "Vitriol" - }, - { - "id": 1772, - "order": "Reflection" - }, - { - "id": 1773, - "order": "Perfection" - }, - { - "id": 1774, - "order": "Titans" - }, - { - "id": 1775, - "order": "Detection" - }, - { - "id": 1776, - "order": "Power" - }, - { - "id": 1777, - "order": "Titans" - }, - { - "id": 1778, - "order": "the Fox" - }, - { - "id": 1779, - "order": "Vitriol" - }, - { - "id": 1780, - "order": "Brilliance" - }, - { - "id": 1781, - "order": "Titans" - }, - { - "id": 1782, - "order": "Brilliance" - }, - { - "id": 1783, - "order": "Reflection" - }, - { - "id": 1784, - "order": "Perfection" - }, - { - "id": 1785, - "order": "Detection" - }, - { - "id": 1786, - "order": "Vitriol" - }, - { - "id": 1787, - "order": "Detection" - }, - { - "id": 1788, - "order": "Giants" - }, - { - "id": 1789, - "order": "Power" - }, - { - "id": 1790, - "order": "Reflection" - }, - { - "id": 1791, - "order": "Vitriol" - }, - { - "id": 1792, - "order": "the Fox" - }, - { - "id": 1793, - "order": "Enlightenment" - }, - { - "id": 1794, - "order": "Vitriol" - }, - { - "id": 1795, - "order": "Protection" - }, - { - "id": 1796, - "order": "the Fox" - }, - { - "id": 1797, - "order": "the Fox" - }, - { - "id": 1798, - "order": "Reflection" - }, - { - "id": 1799, - "order": "Anger" - }, - { - "id": 1800, - "order": "Power" - }, - { - "id": 1801, - "order": "the Fox" - }, - { - "id": 1802, - "order": "Enlightenment" - }, - { - "id": 1803, - "order": "Brilliance" - }, - { - "id": 1804, - "order": "Brilliance" - }, - { - "id": 1805, - "order": "Giants" - }, - { - "id": 1806, - "order": "Detection" - }, - { - "id": 1807, - "order": "Giants" - }, - { - "id": 1808, - "order": "the Twins" - }, - { - "id": 1809, - "order": "Giants" - }, - { - "id": 1810, - "order": "Anger" - }, - { - "id": 1811, - "order": "Perfection" - }, - { - "id": 1812, - "order": "Vitriol" - }, - { - "id": 1813, - "order": "Fury" - }, - { - "id": 1814, - "order": "Vitriol" - }, - { - "id": 1815, - "order": "the Twins" - }, - { - "id": 1816, - "order": "Perfection" - }, - { - "id": 1817, - "order": "Rage" - }, - { - "id": 1818, - "order": "Brilliance" - }, - { - "id": 1819, - "order": "Anger" - }, - { - "id": 1820, - "order": "the Fox" - }, - { - "id": 1821, - "order": "the Fox" - }, - { - "id": 1822, - "order": "Titans" - }, - { - "id": 1823, - "order": "Fury" - }, - { - "id": 1824, - "order": "Power" - }, - { - "id": 1825, - "order": "Skill" - }, - { - "id": 1826, - "order": "Skill" - }, - { - "id": 1827, - "order": "the Twins" - }, - { - "id": 1828, - "order": "Skill" - }, - { - "id": 1829, - "order": "Anger" - }, - { - "id": 1830, - "order": "Detection" - }, - { - "id": 1831, - "order": "Giants" - }, - { - "id": 1832, - "order": "Fury" - }, - { - "id": 1833, - "order": "Giants" - }, - { - "id": 1834, - "order": "Protection" - }, - { - "id": 1835, - "order": "Protection" - }, - { - "id": 1836, - "order": "the Fox" - }, - { - "id": 1837, - "order": "Brilliance" - }, - { - "id": 1838, - "order": "Detection" - }, - { - "id": 1839, - "order": "the Fox" - }, - { - "id": 1840, - "order": "Reflection" - }, - { - "id": 1841, - "order": "the Twins" - }, - { - "id": 1842, - "order": "the Twins" - }, - { - "id": 1843, - "order": "Skill" - }, - { - "id": 1844, - "order": "Brilliance" - }, - { - "id": 1845, - "order": "Perfection" - }, - { - "id": 1846, - "order": "Fury" - }, - { - "id": 1847, - "order": "Detection" - }, - { - "id": 1848, - "order": "Protection" - }, - { - "id": 1849, - "order": "Fury" - }, - { - "id": 1850, - "order": "Brilliance" - }, - { - "id": 1851, - "order": "Enlightenment" - }, - { - "id": 1852, - "order": "Giants" - }, - { - "id": 1853, - "order": "Detection" - }, - { - "id": 1854, - "order": "Giants" - }, - { - "id": 1855, - "order": "the Fox" - }, - { - "id": 1856, - "order": "the Twins" - }, - { - "id": 1857, - "order": "Brilliance" - }, - { - "id": 1858, - "order": "Giants" - }, - { - "id": 1859, - "order": "Perfection" - }, - { - "id": 1860, - "order": "Detection" - }, - { - "id": 1861, - "order": "Skill" - }, - { - "id": 1862, - "order": "Giants" - }, - { - "id": 1863, - "order": "Enlightenment" - }, - { - "id": 1864, - "order": "Reflection" - }, - { - "id": 1865, - "order": "Brilliance" - }, - { - "id": 1866, - "order": "Anger" - }, - { - "id": 1867, - "order": "Power" - }, - { - "id": 1868, - "order": "Giants" - }, - { - "id": 1869, - "order": "Perfection" - }, - { - "id": 1870, - "order": "Skill" - }, - { - "id": 1871, - "order": "Protection" - }, - { - "id": 1872, - "order": "Power" - }, - { - "id": 1873, - "order": "Skill" - }, - { - "id": 1874, - "order": "Enlightenment" - }, - { - "id": 1875, - "order": "Skill" - }, - { - "id": 1876, - "order": "the Fox" - }, - { - "id": 1877, - "order": "Vitriol" - }, - { - "id": 1878, - "order": "Giants" - }, - { - "id": 1879, - "order": "Enlightenment" - }, - { - "id": 1880, - "order": "Protection" - }, - { - "id": 1881, - "order": "Brilliance" - }, - { - "id": 1882, - "order": "Titans" - }, - { - "id": 1883, - "order": "Perfection" - }, - { - "id": 1884, - "order": "Rage" - }, - { - "id": 1885, - "order": "Fury" - }, - { - "id": 1886, - "order": "the Fox" - }, - { - "id": 1887, - "order": "the Twins" - }, - { - "id": 1888, - "order": "Fury" - }, - { - "id": 1889, - "order": "Detection" - }, - { - "id": 1890, - "order": "Reflection" - }, - { - "id": 1891, - "order": "Protection" - }, - { - "id": 1892, - "order": "Protection" - }, - { - "id": 1893, - "order": "Perfection" - }, - { - "id": 1894, - "order": "Anger" - }, - { - "id": 1895, - "order": "Reflection" - }, - { - "id": 1896, - "order": "Rage" - }, - { - "id": 1897, - "order": "Skill" - }, - { - "id": 1898, - "order": "Skill" - }, - { - "id": 1899, - "order": "Power" - }, - { - "id": 1900, - "order": "Skill" - }, - { - "id": 1901, - "order": "Perfection" - }, - { - "id": 1902, - "order": "Protection" - }, - { - "id": 1903, - "order": "Giants" - }, - { - "id": 1904, - "order": "Anger" - }, - { - "id": 1905, - "order": "Fury" - }, - { - "id": 1906, - "order": "the Fox" - }, - { - "id": 1907, - "order": "Brilliance" - }, - { - "id": 1908, - "order": "the Fox" - }, - { - "id": 1909, - "order": "Brilliance" - }, - { - "id": 1910, - "order": "Fury" - }, - { - "id": 1911, - "order": "Brilliance" - }, - { - "id": 1912, - "order": "Fury" - }, - { - "id": 1913, - "order": "Power" - }, - { - "id": 1914, - "order": "Skill" - }, - { - "id": 1915, - "order": "the Twins" - }, - { - "id": 1916, - "order": "the Fox" - }, - { - "id": 1917, - "order": "Protection" - }, - { - "id": 1918, - "order": "the Twins" - }, - { - "id": 1919, - "order": "Vitriol" - }, - { - "id": 1920, - "order": "Vitriol" - }, - { - "id": 1921, - "order": "Vitriol" - }, - { - "id": 1922, - "order": "Brilliance" - }, - { - "id": 1923, - "order": "the Fox" - }, - { - "id": 1924, - "order": "Fury" - }, - { - "id": 1925, - "order": "Brilliance" - }, - { - "id": 1926, - "order": "Reflection" - }, - { - "id": 1927, - "order": "Protection" - }, - { - "id": 1928, - "order": "Fury" - }, - { - "id": 1929, - "order": "Power" - }, - { - "id": 1930, - "order": "Rage" - }, - { - "id": 1931, - "order": "Power" - }, - { - "id": 1932, - "order": "Fury" - }, - { - "id": 1933, - "order": "the Twins" - }, - { - "id": 1934, - "order": "Perfection" - }, - { - "id": 1935, - "order": "Fury" - }, - { - "id": 1936, - "order": "Brilliance" - }, - { - "id": 1937, - "order": "Enlightenment" - }, - { - "id": 1938, - "order": "Rage" - }, - { - "id": 1939, - "order": "Giants" - }, - { - "id": 1940, - "order": "Detection" - }, - { - "id": 1941, - "order": "Enlightenment" - }, - { - "id": 1942, - "order": "Skill" - }, - { - "id": 1943, - "order": "Skill" - }, - { - "id": 1944, - "order": "Titans" - }, - { - "id": 1945, - "order": "Power" - }, - { - "id": 1946, - "order": "Power" - }, - { - "id": 1947, - "order": "the Fox" - }, - { - "id": 1948, - "order": "Skill" - }, - { - "id": 1949, - "order": "Skill" - }, - { - "id": 1950, - "order": "Anger" - }, - { - "id": 1951, - "order": "Enlightenment" - }, - { - "id": 1952, - "order": "Fury" - }, - { - "id": 1953, - "order": "Reflection" - }, - { - "id": 1954, - "order": "Rage" - }, - { - "id": 1955, - "order": "Perfection" - }, - { - "id": 1956, - "order": "Protection" - }, - { - "id": 1957, - "order": "the Fox" - }, - { - "id": 1958, - "order": "Fury" - }, - { - "id": 1959, - "order": "Enlightenment" - }, - { - "id": 1960, - "order": "Perfection" - }, - { - "id": 1961, - "order": "Reflection" - }, - { - "id": 1962, - "order": "Reflection" - }, - { - "id": 1963, - "order": "the Fox" - }, - { - "id": 1964, - "order": "the Fox" - }, - { - "id": 1965, - "order": "Giants" - }, - { - "id": 1966, - "order": "Brilliance" - }, - { - "id": 1967, - "order": "the Twins" - }, - { - "id": 1968, - "order": "Anger" - }, - { - "id": 1969, - "order": "Reflection" - }, - { - "id": 1970, - "order": "Brilliance" - }, - { - "id": 1971, - "order": "Giants" - }, - { - "id": 1972, - "order": "Perfection" - }, - { - "id": 1973, - "order": "Vitriol" - }, - { - "id": 1974, - "order": "Giants" - }, - { - "id": 1975, - "order": "the Twins" - }, - { - "id": 1976, - "order": "Enlightenment" - }, - { - "id": 1977, - "order": "Brilliance" - }, - { - "id": 1978, - "order": "Detection" - }, - { - "id": 1979, - "order": "the Fox" - }, - { - "id": 1980, - "order": "Perfection" - }, - { - "id": 1981, - "order": "Giants" - }, - { - "id": 1982, - "order": "Skill" - }, - { - "id": 1983, - "order": "the Twins" - }, - { - "id": 1984, - "order": "Power" - }, - { - "id": 1985, - "order": "Skill" - }, - { - "id": 1986, - "order": "Power" - }, - { - "id": 1987, - "order": "Perfection" - }, - { - "id": 1988, - "order": "Giants" - }, - { - "id": 1989, - "order": "Protection" - }, - { - "id": 1990, - "order": "Anger" - }, - { - "id": 1991, - "order": "Skill" - }, - { - "id": 1992, - "order": "Reflection" - }, - { - "id": 1993, - "order": "Skill" - }, - { - "id": 1994, - "order": "Brilliance" - }, - { - "id": 1995, - "order": "Reflection" - }, - { - "id": 1996, - "order": "Brilliance" - }, - { - "id": 1997, - "order": "Protection" - }, - { - "id": 1998, - "order": "Fury" - }, - { - "id": 1999, - "order": "Enlightenment" - }, - { - "id": 2000, - "order": "Rage" - }, - { - "id": 2001, - "order": "Fury" - }, - { - "id": 2002, - "order": "Rage" - }, - { - "id": 2003, - "order": "Enlightenment" - }, - { - "id": 2004, - "order": "Vitriol" - }, - { - "id": 2005, - "order": "Power" - }, - { - "id": 2006, - "order": "Enlightenment" - }, - { - "id": 2007, - "order": "Anger" - }, - { - "id": 2008, - "order": "Skill" - }, - { - "id": 2009, - "order": "Vitriol" - }, - { - "id": 2010, - "order": "Perfection" - }, - { - "id": 2011, - "order": "Brilliance" - }, - { - "id": 2012, - "order": "Titans" - }, - { - "id": 2013, - "order": "Fury" - }, - { - "id": 2014, - "order": "Fury" - }, - { - "id": 2015, - "order": "Perfection" - }, - { - "id": 2016, - "order": "Protection" - }, - { - "id": 2017, - "order": "Perfection" - }, - { - "id": 2018, - "order": "the Twins" - }, - { - "id": 2019, - "order": "Reflection" - }, - { - "id": 2020, - "order": "Protection" - }, - { - "id": 2021, - "order": "Vitriol" - }, - { - "id": 2022, - "order": "Skill" - }, - { - "id": 2023, - "order": "Reflection" - }, - { - "id": 2024, - "order": "Giants" - }, - { - "id": 2025, - "order": "Skill" - }, - { - "id": 2026, - "order": "Enlightenment" - }, - { - "id": 2027, - "order": "Skill" - }, - { - "id": 2028, - "order": "Vitriol" - }, - { - "id": 2029, - "order": "Brilliance" - }, - { - "id": 2030, - "order": "Skill" - }, - { - "id": 2031, - "order": "Titans" - }, - { - "id": 2032, - "order": "the Fox" - }, - { - "id": 2033, - "order": "Brilliance" - }, - { - "id": 2034, - "order": "Titans" - }, - { - "id": 2035, - "order": "Enlightenment" - }, - { - "id": 2036, - "order": "Perfection" - }, - { - "id": 2037, - "order": "Vitriol" - }, - { - "id": 2038, - "order": "Titans" - }, - { - "id": 2039, - "order": "Perfection" - }, - { - "id": 2040, - "order": "Perfection" - }, - { - "id": 2041, - "order": "Perfection" - }, - { - "id": 2042, - "order": "Skill" - }, - { - "id": 2043, - "order": "the Twins" - }, - { - "id": 2044, - "order": "Detection" - }, - { - "id": 2045, - "order": "Perfection" - }, - { - "id": 2046, - "order": "Giants" - }, - { - "id": 2047, - "order": "Brilliance" - }, - { - "id": 2048, - "order": "Enlightenment" - }, - { - "id": 2049, - "order": "the Fox" - }, - { - "id": 2050, - "order": "Detection" - }, - { - "id": 2051, - "order": "Titans" - }, - { - "id": 2052, - "order": "the Twins" - }, - { - "id": 2053, - "order": "Titans" - }, - { - "id": 2054, - "order": "Fury" - }, - { - "id": 2055, - "order": "Fury" - }, - { - "id": 2056, - "order": "Power" - }, - { - "id": 2057, - "order": "Fury" - }, - { - "id": 2058, - "order": "the Fox" - }, - { - "id": 2059, - "order": "Reflection" - }, - { - "id": 2060, - "order": "Skill" - }, - { - "id": 2061, - "order": "Reflection" - }, - { - "id": 2062, - "order": "Reflection" - }, - { - "id": 2063, - "order": "Perfection" - }, - { - "id": 2064, - "order": "Perfection" - }, - { - "id": 2065, - "order": "Vitriol" - }, - { - "id": 2066, - "order": "Reflection" - }, - { - "id": 2067, - "order": "Brilliance" - }, - { - "id": 2068, - "order": "Brilliance" - }, - { - "id": 2069, - "order": "Perfection" - }, - { - "id": 2070, - "order": "Skill" - }, - { - "id": 2071, - "order": "Giants" - }, - { - "id": 2072, - "order": "Protection" - }, - { - "id": 2073, - "order": "Vitriol" - }, - { - "id": 2074, - "order": "Protection" - }, - { - "id": 2075, - "order": "the Twins" - }, - { - "id": 2076, - "order": "Enlightenment" - }, - { - "id": 2077, - "order": "Brilliance" - }, - { - "id": 2078, - "order": "Brilliance" - }, - { - "id": 2079, - "order": "Skill" - }, - { - "id": 2080, - "order": "Enlightenment" - }, - { - "id": 2081, - "order": "Reflection" - }, - { - "id": 2082, - "order": "the Twins" - }, - { - "id": 2083, - "order": "Giants" - }, - { - "id": 2084, - "order": "Reflection" - }, - { - "id": 2085, - "order": "Rage" - }, - { - "id": 2086, - "order": "Skill" - }, - { - "id": 2087, - "order": "Reflection" - }, - { - "id": 2088, - "order": "Perfection" - }, - { - "id": 2089, - "order": "the Fox" - }, - { - "id": 2090, - "order": "Protection" - }, - { - "id": 2091, - "order": "the Twins" - }, - { - "id": 2092, - "order": "Protection" - }, - { - "id": 2093, - "order": "Fury" - }, - { - "id": 2094, - "order": "Rage" - }, - { - "id": 2095, - "order": "Vitriol" - }, - { - "id": 2096, - "order": "Power" - }, - { - "id": 2097, - "order": "Rage" - }, - { - "id": 2098, - "order": "Fury" - }, - { - "id": 2099, - "order": "Skill" - }, - { - "id": 2100, - "order": "Brilliance" - }, - { - "id": 2101, - "order": "Detection" - }, - { - "id": 2102, - "order": "Brilliance" - }, - { - "id": 2103, - "order": "the Fox" - }, - { - "id": 2104, - "order": "Enlightenment" - }, - { - "id": 2105, - "order": "Reflection" - }, - { - "id": 2106, - "order": "Detection" - }, - { - "id": 2107, - "order": "Protection" - }, - { - "id": 2108, - "order": "Protection" - }, - { - "id": 2109, - "order": "Titans" - }, - { - "id": 2110, - "order": "Protection" - }, - { - "id": 2111, - "order": "Rage" - }, - { - "id": 2112, - "order": "Giants" - }, - { - "id": 2113, - "order": "Titans" - }, - { - "id": 2114, - "order": "Reflection" - }, - { - "id": 2115, - "order": "Brilliance" - }, - { - "id": 2116, - "order": "Titans" - }, - { - "id": 2117, - "order": "Skill" - }, - { - "id": 2118, - "order": "Vitriol" - }, - { - "id": 2119, - "order": "Protection" - }, - { - "id": 2120, - "order": "Giants" - }, - { - "id": 2121, - "order": "Titans" - }, - { - "id": 2122, - "order": "Vitriol" - }, - { - "id": 2123, - "order": "Anger" - }, - { - "id": 2124, - "order": "Enlightenment" - }, - { - "id": 2125, - "order": "Titans" - }, - { - "id": 2126, - "order": "Rage" - }, - { - "id": 2127, - "order": "Power" - }, - { - "id": 2128, - "order": "the Fox" - }, - { - "id": 2129, - "order": "Reflection" - }, - { - "id": 2130, - "order": "Skill" - }, - { - "id": 2131, - "order": "Enlightenment" - }, - { - "id": 2132, - "order": "the Fox" - }, - { - "id": 2133, - "order": "Enlightenment" - }, - { - "id": 2134, - "order": "Power" - }, - { - "id": 2135, - "order": "Protection" - }, - { - "id": 2136, - "order": "Brilliance" - }, - { - "id": 2137, - "order": "Fury" - }, - { - "id": 2138, - "order": "Skill" - }, - { - "id": 2139, - "order": "Skill" - }, - { - "id": 2140, - "order": "Detection" - }, - { - "id": 2141, - "order": "Vitriol" - }, - { - "id": 2142, - "order": "the Fox" - }, - { - "id": 2143, - "order": "Skill" - }, - { - "id": 2144, - "order": "Brilliance" - }, - { - "id": 2145, - "order": "the Fox" - }, - { - "id": 2146, - "order": "Vitriol" - }, - { - "id": 2147, - "order": "Power" - }, - { - "id": 2148, - "order": "Brilliance" - }, - { - "id": 2149, - "order": "Reflection" - }, - { - "id": 2150, - "order": "Enlightenment" - }, - { - "id": 2151, - "order": "the Fox" - }, - { - "id": 2152, - "order": "Giants" - }, - { - "id": 2153, - "order": "Rage" - }, - { - "id": 2154, - "order": "Vitriol" - }, - { - "id": 2155, - "order": "Detection" - }, - { - "id": 2156, - "order": "Perfection" - }, - { - "id": 2157, - "order": "Protection" - }, - { - "id": 2158, - "order": "Vitriol" - }, - { - "id": 2159, - "order": "Power" - }, - { - "id": 2160, - "order": "Giants" - }, - { - "id": 2161, - "order": "Vitriol" - }, - { - "id": 2162, - "order": "Brilliance" - }, - { - "id": 2163, - "order": "Enlightenment" - }, - { - "id": 2164, - "order": "Reflection" - }, - { - "id": 2165, - "order": "Detection" - }, - { - "id": 2166, - "order": "Brilliance" - }, - { - "id": 2167, - "order": "Anger" - }, - { - "id": 2168, - "order": "Reflection" - }, - { - "id": 2169, - "order": "the Twins" - }, - { - "id": 2170, - "order": "Perfection" - }, - { - "id": 2171, - "order": "Perfection" - }, - { - "id": 2172, - "order": "Reflection" - }, - { - "id": 2173, - "order": "Skill" - }, - { - "id": 2174, - "order": "Giants" - }, - { - "id": 2175, - "order": "Vitriol" - }, - { - "id": 2176, - "order": "Giants" - }, - { - "id": 2177, - "order": "Anger" - }, - { - "id": 2178, - "order": "the Twins" - }, - { - "id": 2179, - "order": "Perfection" - }, - { - "id": 2180, - "order": "Rage" - }, - { - "id": 2181, - "order": "Giants" - }, - { - "id": 2182, - "order": "Skill" - }, - { - "id": 2183, - "order": "Giants" - }, - { - "id": 2184, - "order": "Titans" - }, - { - "id": 2185, - "order": "Reflection" - }, - { - "id": 2186, - "order": "Power" - }, - { - "id": 2187, - "order": "Anger" - }, - { - "id": 2188, - "order": "Power" - }, - { - "id": 2189, - "order": "Titans" - }, - { - "id": 2190, - "order": "Skill" - }, - { - "id": 2191, - "order": "Skill" - }, - { - "id": 2192, - "order": "the Twins" - }, - { - "id": 2193, - "order": "Vitriol" - }, - { - "id": 2194, - "order": "Reflection" - }, - { - "id": 2195, - "order": "Power" - }, - { - "id": 2196, - "order": "Giants" - }, - { - "id": 2197, - "order": "Protection" - }, - { - "id": 2198, - "order": "Enlightenment" - }, - { - "id": 2199, - "order": "Skill" - }, - { - "id": 2200, - "order": "Enlightenment" - }, - { - "id": 2201, - "order": "Skill" - }, - { - "id": 2202, - "order": "Protection" - }, - { - "id": 2203, - "order": "Perfection" - }, - { - "id": 2204, - "order": "Reflection" - }, - { - "id": 2205, - "order": "Skill" - }, - { - "id": 2206, - "order": "the Fox" - }, - { - "id": 2207, - "order": "Skill" - }, - { - "id": 2208, - "order": "Anger" - }, - { - "id": 2209, - "order": "Fury" - }, - { - "id": 2210, - "order": "the Fox" - }, - { - "id": 2211, - "order": "Reflection" - }, - { - "id": 2212, - "order": "Detection" - }, - { - "id": 2213, - "order": "Enlightenment" - }, - { - "id": 2214, - "order": "Brilliance" - }, - { - "id": 2215, - "order": "Power" - }, - { - "id": 2216, - "order": "the Fox" - }, - { - "id": 2217, - "order": "Power" - }, - { - "id": 2218, - "order": "Anger" - }, - { - "id": 2219, - "order": "Skill" - }, - { - "id": 2220, - "order": "Power" - }, - { - "id": 2221, - "order": "the Twins" - }, - { - "id": 2222, - "order": "Skill" - }, - { - "id": 2223, - "order": "Rage" - }, - { - "id": 2224, - "order": "Anger" - }, - { - "id": 2225, - "order": "Rage" - }, - { - "id": 2226, - "order": "Titans" - }, - { - "id": 2227, - "order": "Fury" - }, - { - "id": 2228, - "order": "Skill" - }, - { - "id": 2229, - "order": "Skill" - }, - { - "id": 2230, - "order": "Rage" - }, - { - "id": 2231, - "order": "Fury" - }, - { - "id": 2232, - "order": "the Fox" - }, - { - "id": 2233, - "order": "Detection" - }, - { - "id": 2234, - "order": "Skill" - }, - { - "id": 2235, - "order": "Perfection" - }, - { - "id": 2236, - "order": "Detection" - }, - { - "id": 2237, - "order": "Vitriol" - }, - { - "id": 2238, - "order": "Perfection" - }, - { - "id": 2239, - "order": "Perfection" - }, - { - "id": 2240, - "order": "Perfection" - }, - { - "id": 2241, - "order": "the Fox" - }, - { - "id": 2242, - "order": "the Fox" - }, - { - "id": 2243, - "order": "Vitriol" - }, - { - "id": 2244, - "order": "Reflection" - }, - { - "id": 2245, - "order": "Vitriol" - }, - { - "id": 2246, - "order": "Perfection" - }, - { - "id": 2247, - "order": "Anger" - }, - { - "id": 2248, - "order": "Reflection" - }, - { - "id": 2249, - "order": "Perfection" - }, - { - "id": 2250, - "order": "Reflection" - }, - { - "id": 2251, - "order": "Perfection" - }, - { - "id": 2252, - "order": "Enlightenment" - }, - { - "id": 2253, - "order": "Brilliance" - }, - { - "id": 2254, - "order": "the Twins" - }, - { - "id": 2255, - "order": "Rage" - }, - { - "id": 2256, - "order": "Power" - }, - { - "id": 2257, - "order": "the Twins" - }, - { - "id": 2258, - "order": "Enlightenment" - }, - { - "id": 2259, - "order": "the Fox" - }, - { - "id": 2260, - "order": "Brilliance" - }, - { - "id": 2261, - "order": "Brilliance" - }, - { - "id": 2262, - "order": "Vitriol" - }, - { - "id": 2263, - "order": "Brilliance" - }, - { - "id": 2264, - "order": "Power" - }, - { - "id": 2265, - "order": "Skill" - }, - { - "id": 2266, - "order": "Enlightenment" - }, - { - "id": 2267, - "order": "Rage" - }, - { - "id": 2268, - "order": "Rage" - }, - { - "id": 2269, - "order": "Enlightenment" - }, - { - "id": 2270, - "order": "Vitriol" - }, - { - "id": 2271, - "order": "Skill" - }, - { - "id": 2272, - "order": "Protection" - }, - { - "id": 2273, - "order": "Reflection" - }, - { - "id": 2274, - "order": "Brilliance" - }, - { - "id": 2275, - "order": "Fury" - }, - { - "id": 2276, - "order": "Titans" - }, - { - "id": 2277, - "order": "Titans" - }, - { - "id": 2278, - "order": "Titans" - }, - { - "id": 2279, - "order": "Vitriol" - }, - { - "id": 2280, - "order": "Anger" - }, - { - "id": 2281, - "order": "Fury" - }, - { - "id": 2282, - "order": "Anger" - }, - { - "id": 2283, - "order": "Brilliance" - }, - { - "id": 2284, - "order": "Fury" - }, - { - "id": 2285, - "order": "the Twins" - }, - { - "id": 2286, - "order": "Giants" - }, - { - "id": 2287, - "order": "Giants" - }, - { - "id": 2288, - "order": "Power" - }, - { - "id": 2289, - "order": "Giants" - }, - { - "id": 2290, - "order": "Enlightenment" - }, - { - "id": 2291, - "order": "Perfection" - }, - { - "id": 2292, - "order": "Detection" - }, - { - "id": 2293, - "order": "Anger" - }, - { - "id": 2294, - "order": "Brilliance" - }, - { - "id": 2295, - "order": "Power" - }, - { - "id": 2296, - "order": "the Fox" - }, - { - "id": 2297, - "order": "Brilliance" - }, - { - "id": 2298, - "order": "Enlightenment" - }, - { - "id": 2299, - "order": "Anger" - }, - { - "id": 2300, - "order": "Fury" - }, - { - "id": 2301, - "order": "Detection" - }, - { - "id": 2302, - "order": "Fury" - }, - { - "id": 2303, - "order": "Enlightenment" - }, - { - "id": 2304, - "order": "Enlightenment" - }, - { - "id": 2305, - "order": "Vitriol" - }, - { - "id": 2306, - "order": "Detection" - }, - { - "id": 2307, - "order": "Anger" - }, - { - "id": 2308, - "order": "Fury" - }, - { - "id": 2309, - "order": "Rage" - }, - { - "id": 2310, - "order": "Vitriol" - }, - { - "id": 2311, - "order": "the Twins" - }, - { - "id": 2312, - "order": "the Fox" - }, - { - "id": 2313, - "order": "Vitriol" - }, - { - "id": 2314, - "order": "Skill" - }, - { - "id": 2315, - "order": "Detection" - }, - { - "id": 2316, - "order": "Reflection" - }, - { - "id": 2317, - "order": "Rage" - }, - { - "id": 2318, - "order": "Enlightenment" - }, - { - "id": 2319, - "order": "Anger" - }, - { - "id": 2320, - "order": "Protection" - }, - { - "id": 2321, - "order": "Protection" - }, - { - "id": 2322, - "order": "Titans" - }, - { - "id": 2323, - "order": "Fury" - }, - { - "id": 2324, - "order": "the Twins" - }, - { - "id": 2325, - "order": "Rage" - }, - { - "id": 2326, - "order": "Brilliance" - }, - { - "id": 2327, - "order": "Reflection" - }, - { - "id": 2328, - "order": "Reflection" - }, - { - "id": 2329, - "order": "Reflection" - }, - { - "id": 2330, - "order": "Giants" - }, - { - "id": 2331, - "order": "Protection" - }, - { - "id": 2332, - "order": "Detection" - }, - { - "id": 2333, - "order": "Perfection" - }, - { - "id": 2334, - "order": "Fury" - }, - { - "id": 2335, - "order": "Reflection" - }, - { - "id": 2336, - "order": "Protection" - }, - { - "id": 2337, - "order": "Titans" - }, - { - "id": 2338, - "order": "Protection" - }, - { - "id": 2339, - "order": "Titans" - }, - { - "id": 2340, - "order": "the Fox" - }, - { - "id": 2341, - "order": "Perfection" - }, - { - "id": 2342, - "order": "Giants" - }, - { - "id": 2343, - "order": "the Twins" - }, - { - "id": 2344, - "order": "Power" - }, - { - "id": 2345, - "order": "Anger" - }, - { - "id": 2346, - "order": "the Twins" - }, - { - "id": 2347, - "order": "Rage" - }, - { - "id": 2348, - "order": "the Fox" - }, - { - "id": 2349, - "order": "Protection" - }, - { - "id": 2350, - "order": "Giants" - }, - { - "id": 2351, - "order": "Rage" - }, - { - "id": 2352, - "order": "Brilliance" - }, - { - "id": 2353, - "order": "Giants" - }, - { - "id": 2354, - "order": "Protection" - }, - { - "id": 2355, - "order": "the Fox" - }, - { - "id": 2356, - "order": "Reflection" - }, - { - "id": 2357, - "order": "Enlightenment" - }, - { - "id": 2358, - "order": "Rage" - }, - { - "id": 2359, - "order": "Vitriol" - }, - { - "id": 2360, - "order": "the Fox" - }, - { - "id": 2361, - "order": "Power" - }, - { - "id": 2362, - "order": "Rage" - }, - { - "id": 2363, - "order": "Detection" - }, - { - "id": 2364, - "order": "Rage" - }, - { - "id": 2365, - "order": "Skill" - }, - { - "id": 2366, - "order": "Fury" - }, - { - "id": 2367, - "order": "Giants" - }, - { - "id": 2368, - "order": "the Twins" - }, - { - "id": 2369, - "order": "Vitriol" - }, - { - "id": 2370, - "order": "Brilliance" - }, - { - "id": 2371, - "order": "Enlightenment" - }, - { - "id": 2372, - "order": "Detection" - }, - { - "id": 2373, - "order": "Giants" - }, - { - "id": 2374, - "order": "Vitriol" - }, - { - "id": 2375, - "order": "Titans" - }, - { - "id": 2376, - "order": "Brilliance" - }, - { - "id": 2377, - "order": "Protection" - }, - { - "id": 2378, - "order": "Perfection" - }, - { - "id": 2379, - "order": "Power" - }, - { - "id": 2380, - "order": "the Fox" - }, - { - "id": 2381, - "order": "Reflection" - }, - { - "id": 2382, - "order": "the Fox" - }, - { - "id": 2383, - "order": "Brilliance" - }, - { - "id": 2384, - "order": "Rage" - }, - { - "id": 2385, - "order": "Skill" - }, - { - "id": 2386, - "order": "Skill" - }, - { - "id": 2387, - "order": "Detection" - }, - { - "id": 2388, - "order": "Reflection" - }, - { - "id": 2389, - "order": "Enlightenment" - }, - { - "id": 2390, - "order": "Protection" - }, - { - "id": 2391, - "order": "Brilliance" - }, - { - "id": 2392, - "order": "Enlightenment" - }, - { - "id": 2393, - "order": "Skill" - }, - { - "id": 2394, - "order": "Titans" - }, - { - "id": 2395, - "order": "the Fox" - }, - { - "id": 2396, - "order": "Reflection" - }, - { - "id": 2397, - "order": "the Fox" - }, - { - "id": 2398, - "order": "the Twins" - }, - { - "id": 2399, - "order": "Perfection" - }, - { - "id": 2400, - "order": "Detection" - }, - { - "id": 2401, - "order": "Rage" - }, - { - "id": 2402, - "order": "Power" - }, - { - "id": 2403, - "order": "Titans" - }, - { - "id": 2404, - "order": "Brilliance" - }, - { - "id": 2405, - "order": "Titans" - }, - { - "id": 2406, - "order": "Fury" - }, - { - "id": 2407, - "order": "Reflection" - }, - { - "id": 2408, - "order": "Vitriol" - }, - { - "id": 2409, - "order": "Titans" - }, - { - "id": 2410, - "order": "Giants" - }, - { - "id": 2411, - "order": "Rage" - }, - { - "id": 2412, - "order": "Skill" - }, - { - "id": 2413, - "order": "Fury" - }, - { - "id": 2414, - "order": "Enlightenment" - }, - { - "id": 2415, - "order": "Rage" - }, - { - "id": 2416, - "order": "the Twins" - }, - { - "id": 2417, - "order": "Skill" - }, - { - "id": 2418, - "order": "Enlightenment" - }, - { - "id": 2419, - "order": "Fury" - }, - { - "id": 2420, - "order": "Titans" - }, - { - "id": 2421, - "order": "Anger" - }, - { - "id": 2422, - "order": "Titans" - }, - { - "id": 2423, - "order": "Rage" - }, - { - "id": 2424, - "order": "Anger" - }, - { - "id": 2425, - "order": "Perfection" - }, - { - "id": 2426, - "order": "Enlightenment" - }, - { - "id": 2427, - "order": "Anger" - }, - { - "id": 2428, - "order": "Detection" - }, - { - "id": 2429, - "order": "Fury" - }, - { - "id": 2430, - "order": "Perfection" - }, - { - "id": 2431, - "order": "Rage" - }, - { - "id": 2432, - "order": "Skill" - }, - { - "id": 2433, - "order": "Anger" - }, - { - "id": 2434, - "order": "Enlightenment" - }, - { - "id": 2435, - "order": "Fury" - }, - { - "id": 2436, - "order": "Giants" - }, - { - "id": 2437, - "order": "Reflection" - }, - { - "id": 2438, - "order": "Rage" - }, - { - "id": 2439, - "order": "Titans" - }, - { - "id": 2440, - "order": "Titans" - }, - { - "id": 2441, - "order": "Enlightenment" - }, - { - "id": 2442, - "order": "Anger" - }, - { - "id": 2443, - "order": "Titans" - }, - { - "id": 2444, - "order": "Enlightenment" - }, - { - "id": 2445, - "order": "Vitriol" - }, - { - "id": 2446, - "order": "Detection" - }, - { - "id": 2447, - "order": "the Twins" - }, - { - "id": 2448, - "order": "Rage" - }, - { - "id": 2449, - "order": "Enlightenment" - }, - { - "id": 2450, - "order": "Power" - }, - { - "id": 2451, - "order": "Giants" - }, - { - "id": 2452, - "order": "Power" - }, - { - "id": 2453, - "order": "the Fox" - }, - { - "id": 2454, - "order": "Perfection" - }, - { - "id": 2455, - "order": "Vitriol" - }, - { - "id": 2456, - "order": "Titans" - }, - { - "id": 2457, - "order": "Brilliance" - }, - { - "id": 2458, - "order": "Power" - }, - { - "id": 2459, - "order": "Reflection" - }, - { - "id": 2460, - "order": "Perfection" - }, - { - "id": 2461, - "order": "Brilliance" - }, - { - "id": 2462, - "order": "Vitriol" - }, - { - "id": 2463, - "order": "Reflection" - }, - { - "id": 2464, - "order": "Protection" - }, - { - "id": 2465, - "order": "Protection" - }, - { - "id": 2466, - "order": "Enlightenment" - }, - { - "id": 2467, - "order": "Vitriol" - }, - { - "id": 2468, - "order": "Fury" - }, - { - "id": 2469, - "order": "Anger" - }, - { - "id": 2470, - "order": "the Twins" - }, - { - "id": 2471, - "order": "Anger" - }, - { - "id": 2472, - "order": "Rage" - }, - { - "id": 2473, - "order": "Brilliance" - }, - { - "id": 2474, - "order": "Power" - }, - { - "id": 2475, - "order": "Perfection" - }, - { - "id": 2476, - "order": "Perfection" - }, - { - "id": 2477, - "order": "Enlightenment" - }, - { - "id": 2478, - "order": "Titans" - }, - { - "id": 2479, - "order": "Vitriol" - }, - { - "id": 2480, - "order": "Anger" - }, - { - "id": 2481, - "order": "Perfection" - }, - { - "id": 2482, - "order": "Protection" - }, - { - "id": 2483, - "order": "Detection" - }, - { - "id": 2484, - "order": "Power" - }, - { - "id": 2485, - "order": "Brilliance" - }, - { - "id": 2486, - "order": "Protection" - }, - { - "id": 2487, - "order": "Rage" - }, - { - "id": 2488, - "order": "Power" - }, - { - "id": 2489, - "order": "Giants" - }, - { - "id": 2490, - "order": "the Fox" - }, - { - "id": 2491, - "order": "Fury" - }, - { - "id": 2492, - "order": "Giants" - }, - { - "id": 2493, - "order": "Enlightenment" - }, - { - "id": 2494, - "order": "Skill" - }, - { - "id": 2495, - "order": "Enlightenment" - }, - { - "id": 2496, - "order": "Brilliance" - }, - { - "id": 2497, - "order": "Reflection" - }, - { - "id": 2498, - "order": "Enlightenment" - }, - { - "id": 2499, - "order": "Reflection" - }, - { - "id": 2500, - "order": "Fury" - }, - { - "id": 2501, - "order": "Enlightenment" - }, - { - "id": 2502, - "order": "Rage" - }, - { - "id": 2503, - "order": "Fury" - }, - { - "id": 2504, - "order": "Anger" - }, - { - "id": 2505, - "order": "Detection" - }, - { - "id": 2506, - "order": "Brilliance" - }, - { - "id": 2507, - "order": "Anger" - }, - { - "id": 2508, - "order": "Skill" - }, - { - "id": 2509, - "order": "Rage" - }, - { - "id": 2510, - "order": "Power" - }, - { - "id": 2511, - "order": "Vitriol" - }, - { - "id": 2512, - "order": "Giants" - }, - { - "id": 2513, - "order": "Titans" - }, - { - "id": 2514, - "order": "Reflection" - }, - { - "id": 2515, - "order": "Detection" - }, - { - "id": 2516, - "order": "Power" - }, - { - "id": 2517, - "order": "Fury" - }, - { - "id": 2518, - "order": "Detection" - }, - { - "id": 2519, - "order": "the Fox" - }, - { - "id": 2520, - "order": "the Fox" - }, - { - "id": 2521, - "order": "Perfection" - }, - { - "id": 2522, - "order": "Vitriol" - }, - { - "id": 2523, - "order": "Fury" - }, - { - "id": 2524, - "order": "the Fox" - }, - { - "id": 2525, - "order": "the Fox" - }, - { - "id": 2526, - "order": "Giants" - }, - { - "id": 2527, - "order": "Brilliance" - }, - { - "id": 2528, - "order": "Enlightenment" - }, - { - "id": 2529, - "order": "the Twins" - }, - { - "id": 2530, - "order": "the Fox" - }, - { - "id": 2531, - "order": "Detection" - }, - { - "id": 2532, - "order": "Power" - }, - { - "id": 2533, - "order": "Brilliance" - }, - { - "id": 2534, - "order": "Detection" - }, - { - "id": 2535, - "order": "Brilliance" - }, - { - "id": 2536, - "order": "Enlightenment" - }, - { - "id": 2537, - "order": "Anger" - }, - { - "id": 2538, - "order": "Power" - }, - { - "id": 2539, - "order": "Fury" - }, - { - "id": 2540, - "order": "Skill" - }, - { - "id": 2541, - "order": "Titans" - }, - { - "id": 2542, - "order": "Vitriol" - }, - { - "id": 2543, - "order": "Anger" - }, - { - "id": 2544, - "order": "the Fox" - }, - { - "id": 2545, - "order": "Titans" - }, - { - "id": 2546, - "order": "Perfection" - }, - { - "id": 2547, - "order": "Protection" - }, - { - "id": 2548, - "order": "Power" - }, - { - "id": 2549, - "order": "the Fox" - }, - { - "id": 2550, - "order": "Anger" - }, - { - "id": 2551, - "order": "Power" - }, - { - "id": 2552, - "order": "Reflection" - }, - { - "id": 2553, - "order": "Brilliance" - }, - { - "id": 2554, - "order": "Titans" - }, - { - "id": 2555, - "order": "Fury" - }, - { - "id": 2556, - "order": "Rage" - }, - { - "id": 2557, - "order": "Brilliance" - }, - { - "id": 2558, - "order": "Perfection" - }, - { - "id": 2559, - "order": "Vitriol" - }, - { - "id": 2560, - "order": "Vitriol" - }, - { - "id": 2561, - "order": "the Twins" - }, - { - "id": 2562, - "order": "Titans" - }, - { - "id": 2563, - "order": "Titans" - }, - { - "id": 2564, - "order": "Enlightenment" - }, - { - "id": 2565, - "order": "Reflection" - }, - { - "id": 2566, - "order": "Rage" - }, - { - "id": 2567, - "order": "Anger" - }, - { - "id": 2568, - "order": "Perfection" - }, - { - "id": 2569, - "order": "Detection" - }, - { - "id": 2570, - "order": "Brilliance" - }, - { - "id": 2571, - "order": "Enlightenment" - }, - { - "id": 2572, - "order": "Skill" - }, - { - "id": 2573, - "order": "Brilliance" - }, - { - "id": 2574, - "order": "Fury" - }, - { - "id": 2575, - "order": "Brilliance" - }, - { - "id": 2576, - "order": "Fury" - }, - { - "id": 2577, - "order": "Enlightenment" - }, - { - "id": 2578, - "order": "Titans" - }, - { - "id": 2579, - "order": "Skill" - }, - { - "id": 2580, - "order": "Titans" - }, - { - "id": 2581, - "order": "the Fox" - }, - { - "id": 2582, - "order": "Detection" - }, - { - "id": 2583, - "order": "Enlightenment" - }, - { - "id": 2584, - "order": "Perfection" - }, - { - "id": 2585, - "order": "Perfection" - }, - { - "id": 2586, - "order": "Detection" - }, - { - "id": 2587, - "order": "Detection" - }, - { - "id": 2588, - "order": "Titans" - }, - { - "id": 2589, - "order": "Reflection" - }, - { - "id": 2590, - "order": "Detection" - }, - { - "id": 2591, - "order": "the Twins" - }, - { - "id": 2592, - "order": "Power" - }, - { - "id": 2593, - "order": "Detection" - }, - { - "id": 2594, - "order": "Fury" - }, - { - "id": 2595, - "order": "Vitriol" - }, - { - "id": 2596, - "order": "Protection" - }, - { - "id": 2597, - "order": "Protection" - }, - { - "id": 2598, - "order": "the Twins" - }, - { - "id": 2599, - "order": "Rage" - }, - { - "id": 2600, - "order": "Perfection" - }, - { - "id": 2601, - "order": "Giants" - }, - { - "id": 2602, - "order": "Detection" - }, - { - "id": 2603, - "order": "Anger" - }, - { - "id": 2604, - "order": "Reflection" - }, - { - "id": 2605, - "order": "Giants" - }, - { - "id": 2606, - "order": "Protection" - }, - { - "id": 2607, - "order": "Fury" - }, - { - "id": 2608, - "order": "the Twins" - }, - { - "id": 2609, - "order": "Perfection" - }, - { - "id": 2610, - "order": "Brilliance" - }, - { - "id": 2611, - "order": "Power" - }, - { - "id": 2612, - "order": "Anger" - }, - { - "id": 2613, - "order": "Vitriol" - }, - { - "id": 2614, - "order": "Brilliance" - }, - { - "id": 2615, - "order": "Anger" - }, - { - "id": 2616, - "order": "Protection" - }, - { - "id": 2617, - "order": "Vitriol" - }, - { - "id": 2618, - "order": "Titans" - }, - { - "id": 2619, - "order": "Protection" - }, - { - "id": 2620, - "order": "Giants" - }, - { - "id": 2621, - "order": "Fury" - }, - { - "id": 2622, - "order": "Vitriol" - }, - { - "id": 2623, - "order": "Brilliance" - }, - { - "id": 2624, - "order": "Anger" - }, - { - "id": 2625, - "order": "Perfection" - }, - { - "id": 2626, - "order": "Skill" - }, - { - "id": 2627, - "order": "Detection" - }, - { - "id": 2628, - "order": "Giants" - }, - { - "id": 2629, - "order": "Enlightenment" - }, - { - "id": 2630, - "order": "the Fox" - }, - { - "id": 2631, - "order": "Rage" - }, - { - "id": 2632, - "order": "Enlightenment" - }, - { - "id": 2633, - "order": "Perfection" - }, - { - "id": 2634, - "order": "Brilliance" - }, - { - "id": 2635, - "order": "Detection" - }, - { - "id": 2636, - "order": "Power" - }, - { - "id": 2637, - "order": "Giants" - }, - { - "id": 2638, - "order": "Skill" - }, - { - "id": 2639, - "order": "Vitriol" - }, - { - "id": 2640, - "order": "the Fox" - }, - { - "id": 2641, - "order": "the Fox" - }, - { - "id": 2642, - "order": "Perfection" - }, - { - "id": 2643, - "order": "Protection" - }, - { - "id": 2644, - "order": "Giants" - }, - { - "id": 2645, - "order": "Detection" - }, - { - "id": 2646, - "order": "Power" - }, - { - "id": 2647, - "order": "Power" - }, - { - "id": 2648, - "order": "Perfection" - }, - { - "id": 2649, - "order": "Fury" - }, - { - "id": 2650, - "order": "Power" - }, - { - "id": 2651, - "order": "the Fox" - }, - { - "id": 2652, - "order": "Detection" - }, - { - "id": 2653, - "order": "the Fox" - }, - { - "id": 2654, - "order": "Fury" - }, - { - "id": 2655, - "order": "Power" - }, - { - "id": 2656, - "order": "Detection" - }, - { - "id": 2657, - "order": "Reflection" - }, - { - "id": 2658, - "order": "the Twins" - }, - { - "id": 2659, - "order": "Power" - }, - { - "id": 2660, - "order": "Rage" - }, - { - "id": 2661, - "order": "the Twins" - }, - { - "id": 2662, - "order": "Enlightenment" - }, - { - "id": 2663, - "order": "Skill" - }, - { - "id": 2664, - "order": "the Fox" - }, - { - "id": 2665, - "order": "Perfection" - }, - { - "id": 2666, - "order": "Enlightenment" - }, - { - "id": 2667, - "order": "Rage" - }, - { - "id": 2668, - "order": "the Twins" - }, - { - "id": 2669, - "order": "Detection" - }, - { - "id": 2670, - "order": "Brilliance" - }, - { - "id": 2671, - "order": "Power" - }, - { - "id": 2672, - "order": "Power" - }, - { - "id": 2673, - "order": "Skill" - }, - { - "id": 2674, - "order": "Titans" - }, - { - "id": 2675, - "order": "Anger" - }, - { - "id": 2676, - "order": "Giants" - }, - { - "id": 2677, - "order": "Power" - }, - { - "id": 2678, - "order": "the Twins" - }, - { - "id": 2679, - "order": "Vitriol" - }, - { - "id": 2680, - "order": "Rage" - }, - { - "id": 2681, - "order": "Rage" - }, - { - "id": 2682, - "order": "Reflection" - }, - { - "id": 2683, - "order": "the Twins" - }, - { - "id": 2684, - "order": "Giants" - }, - { - "id": 2685, - "order": "Brilliance" - }, - { - "id": 2686, - "order": "Rage" - }, - { - "id": 2687, - "order": "Protection" - }, - { - "id": 2688, - "order": "Rage" - }, - { - "id": 2689, - "order": "Power" - }, - { - "id": 2690, - "order": "Rage" - }, - { - "id": 2691, - "order": "Detection" - }, - { - "id": 2692, - "order": "Protection" - }, - { - "id": 2693, - "order": "Fury" - }, - { - "id": 2694, - "order": "Brilliance" - }, - { - "id": 2695, - "order": "Skill" - }, - { - "id": 2696, - "order": "Perfection" - }, - { - "id": 2697, - "order": "Brilliance" - }, - { - "id": 2698, - "order": "Rage" - }, - { - "id": 2699, - "order": "Skill" - }, - { - "id": 2700, - "order": "Power" - }, - { - "id": 2701, - "order": "Rage" - }, - { - "id": 2702, - "order": "Skill" - }, - { - "id": 2703, - "order": "Giants" - }, - { - "id": 2704, - "order": "Rage" - }, - { - "id": 2705, - "order": "Power" - }, - { - "id": 2706, - "order": "Reflection" - }, - { - "id": 2707, - "order": "Anger" - }, - { - "id": 2708, - "order": "Reflection" - }, - { - "id": 2709, - "order": "Perfection" - }, - { - "id": 2710, - "order": "Vitriol" - }, - { - "id": 2711, - "order": "the Twins" - }, - { - "id": 2712, - "order": "Perfection" - }, - { - "id": 2713, - "order": "Detection" - }, - { - "id": 2714, - "order": "Protection" - }, - { - "id": 2715, - "order": "Anger" - }, - { - "id": 2716, - "order": "Brilliance" - }, - { - "id": 2717, - "order": "the Fox" - }, - { - "id": 2718, - "order": "Anger" - }, - { - "id": 2719, - "order": "Enlightenment" - }, - { - "id": 2720, - "order": "Giants" - }, - { - "id": 2721, - "order": "Brilliance" - }, - { - "id": 2722, - "order": "Reflection" - }, - { - "id": 2723, - "order": "Enlightenment" - }, - { - "id": 2724, - "order": "Detection" - }, - { - "id": 2725, - "order": "Power" - }, - { - "id": 2726, - "order": "Anger" - }, - { - "id": 2727, - "order": "Enlightenment" - }, - { - "id": 2728, - "order": "Fury" - }, - { - "id": 2729, - "order": "Rage" - }, - { - "id": 2730, - "order": "Perfection" - }, - { - "id": 2731, - "order": "Brilliance" - }, - { - "id": 2732, - "order": "Anger" - }, - { - "id": 2733, - "order": "Protection" - }, - { - "id": 2734, - "order": "Vitriol" - }, - { - "id": 2735, - "order": "Fury" - }, - { - "id": 2736, - "order": "the Twins" - }, - { - "id": 2737, - "order": "the Twins" - }, - { - "id": 2738, - "order": "Rage" - }, - { - "id": 2739, - "order": "Brilliance" - }, - { - "id": 2740, - "order": "Perfection" - }, - { - "id": 2741, - "order": "Perfection" - }, - { - "id": 2742, - "order": "the Fox" - }, - { - "id": 2743, - "order": "Perfection" - }, - { - "id": 2744, - "order": "Power" - }, - { - "id": 2745, - "order": "Vitriol" - }, - { - "id": 2746, - "order": "Titans" - }, - { - "id": 2747, - "order": "Protection" - }, - { - "id": 2748, - "order": "Skill" - }, - { - "id": 2749, - "order": "Reflection" - }, - { - "id": 2750, - "order": "Skill" - }, - { - "id": 2751, - "order": "Skill" - }, - { - "id": 2752, - "order": "Rage" - }, - { - "id": 2753, - "order": "Fury" - }, - { - "id": 2754, - "order": "Giants" - }, - { - "id": 2755, - "order": "Giants" - }, - { - "id": 2756, - "order": "Brilliance" - }, - { - "id": 2757, - "order": "Reflection" - }, - { - "id": 2758, - "order": "Protection" - }, - { - "id": 2759, - "order": "Reflection" - }, - { - "id": 2760, - "order": "Brilliance" - }, - { - "id": 2761, - "order": "the Fox" - }, - { - "id": 2762, - "order": "Brilliance" - }, - { - "id": 2763, - "order": "the Twins" - }, - { - "id": 2764, - "order": "Vitriol" - }, - { - "id": 2765, - "order": "Enlightenment" - }, - { - "id": 2766, - "order": "the Fox" - }, - { - "id": 2767, - "order": "Rage" - }, - { - "id": 2768, - "order": "Vitriol" - }, - { - "id": 2769, - "order": "Reflection" - }, - { - "id": 2770, - "order": "the Fox" - }, - { - "id": 2771, - "order": "Brilliance" - }, - { - "id": 2772, - "order": "Reflection" - }, - { - "id": 2773, - "order": "Detection" - }, - { - "id": 2774, - "order": "Giants" - }, - { - "id": 2775, - "order": "the Twins" - }, - { - "id": 2776, - "order": "Giants" - }, - { - "id": 2777, - "order": "Reflection" - }, - { - "id": 2778, - "order": "Reflection" - }, - { - "id": 2779, - "order": "Rage" - }, - { - "id": 2780, - "order": "Detection" - }, - { - "id": 2781, - "order": "Power" - }, - { - "id": 2782, - "order": "Fury" - }, - { - "id": 2783, - "order": "Fury" - }, - { - "id": 2784, - "order": "Power" - }, - { - "id": 2785, - "order": "Giants" - }, - { - "id": 2786, - "order": "Vitriol" - }, - { - "id": 2787, - "order": "the Twins" - }, - { - "id": 2788, - "order": "Vitriol" - }, - { - "id": 2789, - "order": "Fury" - }, - { - "id": 2790, - "order": "Anger" - }, - { - "id": 2791, - "order": "Perfection" - }, - { - "id": 2792, - "order": "Reflection" - }, - { - "id": 2793, - "order": "the Twins" - }, - { - "id": 2794, - "order": "the Twins" - }, - { - "id": 2795, - "order": "Vitriol" - }, - { - "id": 2796, - "order": "Protection" - }, - { - "id": 2797, - "order": "Reflection" - }, - { - "id": 2798, - "order": "Skill" - }, - { - "id": 2799, - "order": "Enlightenment" - }, - { - "id": 2800, - "order": "Skill" - }, - { - "id": 2801, - "order": "Vitriol" - }, - { - "id": 2802, - "order": "the Fox" - }, - { - "id": 2803, - "order": "Titans" - }, - { - "id": 2804, - "order": "Detection" - }, - { - "id": 2805, - "order": "Detection" - }, - { - "id": 2806, - "order": "Anger" - }, - { - "id": 2807, - "order": "Vitriol" - }, - { - "id": 2808, - "order": "Enlightenment" - }, - { - "id": 2809, - "order": "Detection" - }, - { - "id": 2810, - "order": "Reflection" - }, - { - "id": 2811, - "order": "the Twins" - }, - { - "id": 2812, - "order": "Reflection" - }, - { - "id": 2813, - "order": "Protection" - }, - { - "id": 2814, - "order": "Enlightenment" - }, - { - "id": 2815, - "order": "Anger" - }, - { - "id": 2816, - "order": "Reflection" - }, - { - "id": 2817, - "order": "the Fox" - }, - { - "id": 2818, - "order": "Skill" - }, - { - "id": 2819, - "order": "Vitriol" - }, - { - "id": 2820, - "order": "Fury" - }, - { - "id": 2821, - "order": "Giants" - }, - { - "id": 2822, - "order": "Reflection" - }, - { - "id": 2823, - "order": "Protection" - }, - { - "id": 2824, - "order": "Brilliance" - }, - { - "id": 2825, - "order": "Anger" - }, - { - "id": 2826, - "order": "Anger" - }, - { - "id": 2827, - "order": "Perfection" - }, - { - "id": 2828, - "order": "Reflection" - }, - { - "id": 2829, - "order": "Brilliance" - }, - { - "id": 2830, - "order": "Brilliance" - }, - { - "id": 2831, - "order": "Enlightenment" - }, - { - "id": 2832, - "order": "Protection" - }, - { - "id": 2833, - "order": "Anger" - }, - { - "id": 2834, - "order": "Anger" - }, - { - "id": 2835, - "order": "Detection" - }, - { - "id": 2836, - "order": "Skill" - }, - { - "id": 2837, - "order": "the Twins" - }, - { - "id": 2838, - "order": "Power" - }, - { - "id": 2839, - "order": "Perfection" - }, - { - "id": 2840, - "order": "Protection" - }, - { - "id": 2841, - "order": "Reflection" - }, - { - "id": 2842, - "order": "the Twins" - }, - { - "id": 2843, - "order": "Skill" - }, - { - "id": 2844, - "order": "Giants" - }, - { - "id": 2845, - "order": "Reflection" - }, - { - "id": 2846, - "order": "Protection" - }, - { - "id": 2847, - "order": "the Twins" - }, - { - "id": 2848, - "order": "Detection" - }, - { - "id": 2849, - "order": "Titans" - }, - { - "id": 2850, - "order": "Titans" - }, - { - "id": 2851, - "order": "Titans" - }, - { - "id": 2852, - "order": "Perfection" - }, - { - "id": 2853, - "order": "Protection" - }, - { - "id": 2854, - "order": "Protection" - }, - { - "id": 2855, - "order": "the Fox" - }, - { - "id": 2856, - "order": "Fury" - }, - { - "id": 2857, - "order": "Fury" - }, - { - "id": 2858, - "order": "Rage" - }, - { - "id": 2859, - "order": "Power" - }, - { - "id": 2860, - "order": "Rage" - }, - { - "id": 2861, - "order": "Protection" - }, - { - "id": 2862, - "order": "Giants" - }, - { - "id": 2863, - "order": "Power" - }, - { - "id": 2864, - "order": "Reflection" - }, - { - "id": 2865, - "order": "Detection" - }, - { - "id": 2866, - "order": "Reflection" - }, - { - "id": 2867, - "order": "Fury" - }, - { - "id": 2868, - "order": "Enlightenment" - }, - { - "id": 2869, - "order": "Power" - }, - { - "id": 2870, - "order": "Perfection" - }, - { - "id": 2871, - "order": "Enlightenment" - }, - { - "id": 2872, - "order": "Giants" - }, - { - "id": 2873, - "order": "Detection" - }, - { - "id": 2874, - "order": "Protection" - }, - { - "id": 2875, - "order": "Rage" - }, - { - "id": 2876, - "order": "Reflection" - }, - { - "id": 2877, - "order": "Power" - }, - { - "id": 2878, - "order": "Perfection" - }, - { - "id": 2879, - "order": "Giants" - }, - { - "id": 2880, - "order": "Vitriol" - }, - { - "id": 2881, - "order": "Perfection" - }, - { - "id": 2882, - "order": "Giants" - }, - { - "id": 2883, - "order": "Reflection" - }, - { - "id": 2884, - "order": "Fury" - }, - { - "id": 2885, - "order": "the Fox" - }, - { - "id": 2886, - "order": "Anger" - }, - { - "id": 2887, - "order": "Rage" - }, - { - "id": 2888, - "order": "Brilliance" - }, - { - "id": 2889, - "order": "Vitriol" - }, - { - "id": 2890, - "order": "Detection" - }, - { - "id": 2891, - "order": "Rage" - }, - { - "id": 2892, - "order": "Brilliance" - }, - { - "id": 2893, - "order": "the Fox" - }, - { - "id": 2894, - "order": "Reflection" - }, - { - "id": 2895, - "order": "Rage" - }, - { - "id": 2896, - "order": "Giants" - }, - { - "id": 2897, - "order": "Rage" - }, - { - "id": 2898, - "order": "Skill" - }, - { - "id": 2899, - "order": "Fury" - }, - { - "id": 2900, - "order": "Brilliance" - }, - { - "id": 2901, - "order": "Perfection" - }, - { - "id": 2902, - "order": "Detection" - }, - { - "id": 2903, - "order": "Titans" - }, - { - "id": 2904, - "order": "the Twins" - }, - { - "id": 2905, - "order": "Skill" - }, - { - "id": 2906, - "order": "Giants" - }, - { - "id": 2907, - "order": "Anger" - }, - { - "id": 2908, - "order": "Anger" - }, - { - "id": 2909, - "order": "Giants" - }, - { - "id": 2910, - "order": "Perfection" - }, - { - "id": 2911, - "order": "Fury" - }, - { - "id": 2912, - "order": "Reflection" - }, - { - "id": 2913, - "order": "Skill" - }, - { - "id": 2914, - "order": "Rage" - }, - { - "id": 2915, - "order": "Detection" - }, - { - "id": 2916, - "order": "Power" - }, - { - "id": 2917, - "order": "Power" - }, - { - "id": 2918, - "order": "the Twins" - }, - { - "id": 2919, - "order": "Protection" - }, - { - "id": 2920, - "order": "the Fox" - }, - { - "id": 2921, - "order": "Rage" - }, - { - "id": 2922, - "order": "Brilliance" - }, - { - "id": 2923, - "order": "Skill" - }, - { - "id": 2924, - "order": "Rage" - }, - { - "id": 2925, - "order": "Protection" - }, - { - "id": 2926, - "order": "Detection" - }, - { - "id": 2927, - "order": "Detection" - }, - { - "id": 2928, - "order": "Power" - }, - { - "id": 2929, - "order": "Protection" - }, - { - "id": 2930, - "order": "the Fox" - }, - { - "id": 2931, - "order": "Fury" - }, - { - "id": 2932, - "order": "Enlightenment" - }, - { - "id": 2933, - "order": "Brilliance" - }, - { - "id": 2934, - "order": "Enlightenment" - }, - { - "id": 2935, - "order": "Enlightenment" - }, - { - "id": 2936, - "order": "Rage" - }, - { - "id": 2937, - "order": "Fury" - }, - { - "id": 2938, - "order": "Vitriol" - }, - { - "id": 2939, - "order": "Power" - }, - { - "id": 2940, - "order": "Anger" - }, - { - "id": 2941, - "order": "Enlightenment" - }, - { - "id": 2942, - "order": "Power" - }, - { - "id": 2943, - "order": "Power" - }, - { - "id": 2944, - "order": "Vitriol" - }, - { - "id": 2945, - "order": "Brilliance" - }, - { - "id": 2946, - "order": "Protection" - }, - { - "id": 2947, - "order": "Protection" - }, - { - "id": 2948, - "order": "the Twins" - }, - { - "id": 2949, - "order": "the Fox" - }, - { - "id": 2950, - "order": "Detection" - }, - { - "id": 2951, - "order": "Giants" - }, - { - "id": 2952, - "order": "Skill" - }, - { - "id": 2953, - "order": "the Fox" - }, - { - "id": 2954, - "order": "Enlightenment" - }, - { - "id": 2955, - "order": "Skill" - }, - { - "id": 2956, - "order": "Reflection" - }, - { - "id": 2957, - "order": "Detection" - }, - { - "id": 2958, - "order": "Brilliance" - }, - { - "id": 2959, - "order": "Enlightenment" - }, - { - "id": 2960, - "order": "Protection" - }, - { - "id": 2961, - "order": "Brilliance" - }, - { - "id": 2962, - "order": "the Fox" - }, - { - "id": 2963, - "order": "the Twins" - }, - { - "id": 2964, - "order": "Fury" - }, - { - "id": 2965, - "order": "Protection" - }, - { - "id": 2966, - "order": "the Fox" - }, - { - "id": 2967, - "order": "the Twins" - }, - { - "id": 2968, - "order": "Enlightenment" - }, - { - "id": 2969, - "order": "Protection" - }, - { - "id": 2970, - "order": "Vitriol" - }, - { - "id": 2971, - "order": "Skill" - }, - { - "id": 2972, - "order": "Fury" - }, - { - "id": 2973, - "order": "Enlightenment" - }, - { - "id": 2974, - "order": "Anger" - }, - { - "id": 2975, - "order": "Giants" - }, - { - "id": 2976, - "order": "Giants" - }, - { - "id": 2977, - "order": "Vitriol" - }, - { - "id": 2978, - "order": "Giants" - }, - { - "id": 2979, - "order": "the Twins" - }, - { - "id": 2980, - "order": "Power" - }, - { - "id": 2981, - "order": "Rage" - }, - { - "id": 2982, - "order": "Skill" - }, - { - "id": 2983, - "order": "Protection" - }, - { - "id": 2984, - "order": "Reflection" - }, - { - "id": 2985, - "order": "Protection" - }, - { - "id": 2986, - "order": "the Twins" - }, - { - "id": 2987, - "order": "Giants" - }, - { - "id": 2988, - "order": "Giants" - }, - { - "id": 2989, - "order": "Titans" - }, - { - "id": 2990, - "order": "Detection" - }, - { - "id": 2991, - "order": "Skill" - }, - { - "id": 2992, - "order": "the Fox" - }, - { - "id": 2993, - "order": "Power" - }, - { - "id": 2994, - "order": "Enlightenment" - }, - { - "id": 2995, - "order": "Rage" - }, - { - "id": 2996, - "order": "Detection" - }, - { - "id": 2997, - "order": "Reflection" - }, - { - "id": 2998, - "order": "Vitriol" - }, - { - "id": 2999, - "order": "Power" - }, - { - "id": 3000, - "order": "Power" - }, - { - "id": 3001, - "order": "the Twins" - }, - { - "id": 3002, - "order": "Perfection" - }, - { - "id": 3003, - "order": "Giants" - }, - { - "id": 3004, - "order": "Skill" - }, - { - "id": 3005, - "order": "Detection" - }, - { - "id": 3006, - "order": "Perfection" - }, - { - "id": 3007, - "order": "the Fox" - }, - { - "id": 3008, - "order": "the Fox" - }, - { - "id": 3009, - "order": "Enlightenment" - }, - { - "id": 3010, - "order": "Perfection" - }, - { - "id": 3011, - "order": "Power" - }, - { - "id": 3012, - "order": "the Twins" - }, - { - "id": 3013, - "order": "Anger" - }, - { - "id": 3014, - "order": "Fury" - }, - { - "id": 3015, - "order": "Enlightenment" - }, - { - "id": 3016, - "order": "Titans" - }, - { - "id": 3017, - "order": "Protection" - }, - { - "id": 3018, - "order": "Enlightenment" - }, - { - "id": 3019, - "order": "Brilliance" - }, - { - "id": 3020, - "order": "Vitriol" - }, - { - "id": 3021, - "order": "Anger" - }, - { - "id": 3022, - "order": "the Fox" - }, - { - "id": 3023, - "order": "Titans" - }, - { - "id": 3024, - "order": "Anger" - }, - { - "id": 3025, - "order": "Brilliance" - }, - { - "id": 3026, - "order": "the Fox" - }, - { - "id": 3027, - "order": "Fury" - }, - { - "id": 3028, - "order": "Protection" - }, - { - "id": 3029, - "order": "the Fox" - }, - { - "id": 3030, - "order": "Anger" - }, - { - "id": 3031, - "order": "Anger" - }, - { - "id": 3032, - "order": "Anger" - }, - { - "id": 3033, - "order": "Rage" - }, - { - "id": 3034, - "order": "Protection" - }, - { - "id": 3035, - "order": "the Fox" - }, - { - "id": 3036, - "order": "Titans" - }, - { - "id": 3037, - "order": "Protection" - }, - { - "id": 3038, - "order": "Skill" - }, - { - "id": 3039, - "order": "Fury" - }, - { - "id": 3040, - "order": "Power" - }, - { - "id": 3041, - "order": "Anger" - }, - { - "id": 3042, - "order": "Skill" - }, - { - "id": 3043, - "order": "Vitriol" - }, - { - "id": 3044, - "order": "Detection" - }, - { - "id": 3045, - "order": "Perfection" - }, - { - "id": 3046, - "order": "Reflection" - }, - { - "id": 3047, - "order": "Skill" - }, - { - "id": 3048, - "order": "the Fox" - }, - { - "id": 3049, - "order": "the Twins" - }, - { - "id": 3050, - "order": "Power" - }, - { - "id": 3051, - "order": "Perfection" - }, - { - "id": 3052, - "order": "Power" - }, - { - "id": 3053, - "order": "Titans" - }, - { - "id": 3054, - "order": "Giants" - }, - { - "id": 3055, - "order": "Skill" - }, - { - "id": 3056, - "order": "Vitriol" - }, - { - "id": 3057, - "order": "Enlightenment" - }, - { - "id": 3058, - "order": "Brilliance" - }, - { - "id": 3059, - "order": "Power" - }, - { - "id": 3060, - "order": "the Fox" - }, - { - "id": 3061, - "order": "the Twins" - }, - { - "id": 3062, - "order": "Anger" - }, - { - "id": 3063, - "order": "Fury" - }, - { - "id": 3064, - "order": "Vitriol" - }, - { - "id": 3065, - "order": "the Fox" - }, - { - "id": 3066, - "order": "the Fox" - }, - { - "id": 3067, - "order": "the Fox" - }, - { - "id": 3068, - "order": "Vitriol" - }, - { - "id": 3069, - "order": "Detection" - }, - { - "id": 3070, - "order": "Vitriol" - }, - { - "id": 3071, - "order": "Perfection" - }, - { - "id": 3072, - "order": "Fury" - }, - { - "id": 3073, - "order": "Anger" - }, - { - "id": 3074, - "order": "the Fox" - }, - { - "id": 3075, - "order": "Titans" - }, - { - "id": 3076, - "order": "Enlightenment" - }, - { - "id": 3077, - "order": "Skill" - }, - { - "id": 3078, - "order": "Skill" - }, - { - "id": 3079, - "order": "Vitriol" - }, - { - "id": 3080, - "order": "Anger" - }, - { - "id": 3081, - "order": "Vitriol" - }, - { - "id": 3082, - "order": "Brilliance" - }, - { - "id": 3083, - "order": "Reflection" - }, - { - "id": 3084, - "order": "the Fox" - }, - { - "id": 3085, - "order": "the Fox" - }, - { - "id": 3086, - "order": "Enlightenment" - }, - { - "id": 3087, - "order": "Detection" - }, - { - "id": 3088, - "order": "Brilliance" - }, - { - "id": 3089, - "order": "Anger" - }, - { - "id": 3090, - "order": "Vitriol" - }, - { - "id": 3091, - "order": "Power" - }, - { - "id": 3092, - "order": "Brilliance" - }, - { - "id": 3093, - "order": "the Twins" - }, - { - "id": 3094, - "order": "Vitriol" - }, - { - "id": 3095, - "order": "Titans" - }, - { - "id": 3096, - "order": "Perfection" - }, - { - "id": 3097, - "order": "Detection" - }, - { - "id": 3098, - "order": "Anger" - }, - { - "id": 3099, - "order": "Perfection" - }, - { - "id": 3100, - "order": "the Fox" - }, - { - "id": 3101, - "order": "Titans" - }, - { - "id": 3102, - "order": "Vitriol" - }, - { - "id": 3103, - "order": "the Twins" - }, - { - "id": 3104, - "order": "Enlightenment" - }, - { - "id": 3105, - "order": "Rage" - }, - { - "id": 3106, - "order": "Giants" - }, - { - "id": 3107, - "order": "Rage" - }, - { - "id": 3108, - "order": "Vitriol" - }, - { - "id": 3109, - "order": "Fury" - }, - { - "id": 3110, - "order": "Detection" - }, - { - "id": 3111, - "order": "Reflection" - }, - { - "id": 3112, - "order": "Titans" - }, - { - "id": 3113, - "order": "Giants" - }, - { - "id": 3114, - "order": "the Twins" - }, - { - "id": 3115, - "order": "Enlightenment" - }, - { - "id": 3116, - "order": "Detection" - }, - { - "id": 3117, - "order": "Protection" - }, - { - "id": 3118, - "order": "Perfection" - }, - { - "id": 3119, - "order": "Reflection" - }, - { - "id": 3120, - "order": "Enlightenment" - }, - { - "id": 3121, - "order": "the Fox" - }, - { - "id": 3122, - "order": "Rage" - }, - { - "id": 3123, - "order": "Enlightenment" - }, - { - "id": 3124, - "order": "Brilliance" - }, - { - "id": 3125, - "order": "Reflection" - }, - { - "id": 3126, - "order": "Vitriol" - }, - { - "id": 3127, - "order": "Reflection" - }, - { - "id": 3128, - "order": "Fury" - }, - { - "id": 3129, - "order": "the Twins" - }, - { - "id": 3130, - "order": "Detection" - }, - { - "id": 3131, - "order": "Titans" - }, - { - "id": 3132, - "order": "Vitriol" - }, - { - "id": 3133, - "order": "Power" - }, - { - "id": 3134, - "order": "Brilliance" - }, - { - "id": 3135, - "order": "Fury" - }, - { - "id": 3136, - "order": "Reflection" - }, - { - "id": 3137, - "order": "Power" - }, - { - "id": 3138, - "order": "Anger" - }, - { - "id": 3139, - "order": "the Twins" - }, - { - "id": 3140, - "order": "Perfection" - }, - { - "id": 3141, - "order": "Vitriol" - }, - { - "id": 3142, - "order": "Detection" - }, - { - "id": 3143, - "order": "Fury" - }, - { - "id": 3144, - "order": "Giants" - }, - { - "id": 3145, - "order": "Reflection" - }, - { - "id": 3146, - "order": "the Fox" - }, - { - "id": 3147, - "order": "Giants" - }, - { - "id": 3148, - "order": "Anger" - }, - { - "id": 3149, - "order": "Protection" - }, - { - "id": 3150, - "order": "Power" - }, - { - "id": 3151, - "order": "the Twins" - }, - { - "id": 3152, - "order": "the Twins" - }, - { - "id": 3153, - "order": "Rage" - }, - { - "id": 3154, - "order": "the Fox" - }, - { - "id": 3155, - "order": "Vitriol" - }, - { - "id": 3156, - "order": "Anger" - }, - { - "id": 3157, - "order": "Rage" - }, - { - "id": 3158, - "order": "Titans" - }, - { - "id": 3159, - "order": "Anger" - }, - { - "id": 3160, - "order": "Vitriol" - }, - { - "id": 3161, - "order": "Reflection" - }, - { - "id": 3162, - "order": "Giants" - }, - { - "id": 3163, - "order": "Perfection" - }, - { - "id": 3164, - "order": "the Twins" - }, - { - "id": 3165, - "order": "Enlightenment" - }, - { - "id": 3166, - "order": "Vitriol" - }, - { - "id": 3167, - "order": "Vitriol" - }, - { - "id": 3168, - "order": "Giants" - }, - { - "id": 3169, - "order": "Perfection" - }, - { - "id": 3170, - "order": "Perfection" - }, - { - "id": 3171, - "order": "Titans" - }, - { - "id": 3172, - "order": "Fury" - }, - { - "id": 3173, - "order": "Giants" - }, - { - "id": 3174, - "order": "Protection" - }, - { - "id": 3175, - "order": "Power" - }, - { - "id": 3176, - "order": "Brilliance" - }, - { - "id": 3177, - "order": "Rage" - }, - { - "id": 3178, - "order": "Titans" - }, - { - "id": 3179, - "order": "Titans" - }, - { - "id": 3180, - "order": "Detection" - }, - { - "id": 3181, - "order": "Detection" - }, - { - "id": 3182, - "order": "Rage" - }, - { - "id": 3183, - "order": "Fury" - }, - { - "id": 3184, - "order": "Reflection" - }, - { - "id": 3185, - "order": "Anger" - }, - { - "id": 3186, - "order": "Reflection" - }, - { - "id": 3187, - "order": "Rage" - }, - { - "id": 3188, - "order": "Fury" - }, - { - "id": 3189, - "order": "Protection" - }, - { - "id": 3190, - "order": "Titans" - }, - { - "id": 3191, - "order": "Protection" - }, - { - "id": 3192, - "order": "Rage" - }, - { - "id": 3193, - "order": "Enlightenment" - }, - { - "id": 3194, - "order": "Giants" - }, - { - "id": 3195, - "order": "Perfection" - }, - { - "id": 3196, - "order": "Fury" - }, - { - "id": 3197, - "order": "Detection" - }, - { - "id": 3198, - "order": "Fury" - }, - { - "id": 3199, - "order": "Fury" - }, - { - "id": 3200, - "order": "the Twins" - }, - { - "id": 3201, - "order": "the Twins" - }, - { - "id": 3202, - "order": "Detection" - }, - { - "id": 3203, - "order": "Perfection" - }, - { - "id": 3204, - "order": "Protection" - }, - { - "id": 3205, - "order": "Enlightenment" - }, - { - "id": 3206, - "order": "the Fox" - }, - { - "id": 3207, - "order": "Protection" - }, - { - "id": 3208, - "order": "Brilliance" - }, - { - "id": 3209, - "order": "Perfection" - }, - { - "id": 3210, - "order": "Protection" - }, - { - "id": 3211, - "order": "Detection" - }, - { - "id": 3212, - "order": "Power" - }, - { - "id": 3213, - "order": "the Twins" - }, - { - "id": 3214, - "order": "Protection" - }, - { - "id": 3215, - "order": "Power" - }, - { - "id": 3216, - "order": "the Fox" - }, - { - "id": 3217, - "order": "Giants" - }, - { - "id": 3218, - "order": "Protection" - }, - { - "id": 3219, - "order": "Vitriol" - }, - { - "id": 3220, - "order": "the Fox" - }, - { - "id": 3221, - "order": "Power" - }, - { - "id": 3222, - "order": "the Fox" - }, - { - "id": 3223, - "order": "Titans" - }, - { - "id": 3224, - "order": "Brilliance" - }, - { - "id": 3225, - "order": "Rage" - }, - { - "id": 3226, - "order": "the Twins" - }, - { - "id": 3227, - "order": "Anger" - }, - { - "id": 3228, - "order": "Rage" - }, - { - "id": 3229, - "order": "Rage" - }, - { - "id": 3230, - "order": "Anger" - }, - { - "id": 3231, - "order": "the Twins" - }, - { - "id": 3232, - "order": "Brilliance" - }, - { - "id": 3233, - "order": "Brilliance" - }, - { - "id": 3234, - "order": "Protection" - }, - { - "id": 3235, - "order": "Vitriol" - }, - { - "id": 3236, - "order": "Enlightenment" - }, - { - "id": 3237, - "order": "Anger" - }, - { - "id": 3238, - "order": "Brilliance" - }, - { - "id": 3239, - "order": "Skill" - }, - { - "id": 3240, - "order": "Reflection" - }, - { - "id": 3241, - "order": "the Twins" - }, - { - "id": 3242, - "order": "Vitriol" - }, - { - "id": 3243, - "order": "Enlightenment" - }, - { - "id": 3244, - "order": "Perfection" - }, - { - "id": 3245, - "order": "Protection" - }, - { - "id": 3246, - "order": "the Twins" - }, - { - "id": 3247, - "order": "Enlightenment" - }, - { - "id": 3248, - "order": "the Fox" - }, - { - "id": 3249, - "order": "Protection" - }, - { - "id": 3250, - "order": "the Twins" - }, - { - "id": 3251, - "order": "Brilliance" - }, - { - "id": 3252, - "order": "Perfection" - }, - { - "id": 3253, - "order": "the Twins" - }, - { - "id": 3254, - "order": "Reflection" - }, - { - "id": 3255, - "order": "the Twins" - }, - { - "id": 3256, - "order": "Enlightenment" - }, - { - "id": 3257, - "order": "Titans" - }, - { - "id": 3258, - "order": "Anger" - }, - { - "id": 3259, - "order": "Perfection" - }, - { - "id": 3260, - "order": "Perfection" - }, - { - "id": 3261, - "order": "Power" - }, - { - "id": 3262, - "order": "Vitriol" - }, - { - "id": 3263, - "order": "Protection" - }, - { - "id": 3264, - "order": "Vitriol" - }, - { - "id": 3265, - "order": "Perfection" - }, - { - "id": 3266, - "order": "Rage" - }, - { - "id": 3267, - "order": "Titans" - }, - { - "id": 3268, - "order": "Vitriol" - }, - { - "id": 3269, - "order": "Reflection" - }, - { - "id": 3270, - "order": "the Fox" - }, - { - "id": 3271, - "order": "Vitriol" - }, - { - "id": 3272, - "order": "Anger" - }, - { - "id": 3273, - "order": "Protection" - }, - { - "id": 3274, - "order": "Anger" - }, - { - "id": 3275, - "order": "the Fox" - }, - { - "id": 3276, - "order": "Giants" - }, - { - "id": 3277, - "order": "Power" - }, - { - "id": 3278, - "order": "Vitriol" - }, - { - "id": 3279, - "order": "Enlightenment" - }, - { - "id": 3280, - "order": "Titans" - }, - { - "id": 3281, - "order": "Brilliance" - }, - { - "id": 3282, - "order": "Enlightenment" - }, - { - "id": 3283, - "order": "Detection" - }, - { - "id": 3284, - "order": "Skill" - }, - { - "id": 3285, - "order": "Fury" - }, - { - "id": 3286, - "order": "Rage" - }, - { - "id": 3287, - "order": "Rage" - }, - { - "id": 3288, - "order": "Brilliance" - }, - { - "id": 3289, - "order": "the Fox" - }, - { - "id": 3290, - "order": "Skill" - }, - { - "id": 3291, - "order": "Skill" - }, - { - "id": 3292, - "order": "Vitriol" - }, - { - "id": 3293, - "order": "Detection" - }, - { - "id": 3294, - "order": "Titans" - }, - { - "id": 3295, - "order": "Rage" - }, - { - "id": 3296, - "order": "Reflection" - }, - { - "id": 3297, - "order": "Fury" - }, - { - "id": 3298, - "order": "the Twins" - }, - { - "id": 3299, - "order": "Rage" - }, - { - "id": 3300, - "order": "Enlightenment" - }, - { - "id": 3301, - "order": "Brilliance" - }, - { - "id": 3302, - "order": "the Twins" - }, - { - "id": 3303, - "order": "Power" - }, - { - "id": 3304, - "order": "Enlightenment" - }, - { - "id": 3305, - "order": "the Twins" - }, - { - "id": 3306, - "order": "Anger" - }, - { - "id": 3307, - "order": "Fury" - }, - { - "id": 3308, - "order": "Rage" - }, - { - "id": 3309, - "order": "Detection" - }, - { - "id": 3310, - "order": "the Twins" - }, - { - "id": 3311, - "order": "Giants" - }, - { - "id": 3312, - "order": "Giants" - }, - { - "id": 3313, - "order": "Power" - }, - { - "id": 3314, - "order": "Rage" - }, - { - "id": 3315, - "order": "Detection" - }, - { - "id": 3316, - "order": "Power" - }, - { - "id": 3317, - "order": "Skill" - }, - { - "id": 3318, - "order": "Detection" - }, - { - "id": 3319, - "order": "the Twins" - }, - { - "id": 3320, - "order": "Protection" - }, - { - "id": 3321, - "order": "Protection" - }, - { - "id": 3322, - "order": "Detection" - }, - { - "id": 3323, - "order": "Giants" - }, - { - "id": 3324, - "order": "Titans" - }, - { - "id": 3325, - "order": "Vitriol" - }, - { - "id": 3326, - "order": "Anger" - }, - { - "id": 3327, - "order": "Skill" - }, - { - "id": 3328, - "order": "Power" - }, - { - "id": 3329, - "order": "Rage" - }, - { - "id": 3330, - "order": "Perfection" - }, - { - "id": 3331, - "order": "the Fox" - }, - { - "id": 3332, - "order": "the Twins" - }, - { - "id": 3333, - "order": "Power" - }, - { - "id": 3334, - "order": "Vitriol" - }, - { - "id": 3335, - "order": "Reflection" - }, - { - "id": 3336, - "order": "Perfection" - }, - { - "id": 3337, - "order": "Anger" - }, - { - "id": 3338, - "order": "Rage" - }, - { - "id": 3339, - "order": "Anger" - }, - { - "id": 3340, - "order": "Protection" - }, - { - "id": 3341, - "order": "Fury" - }, - { - "id": 3342, - "order": "Perfection" - }, - { - "id": 3343, - "order": "Reflection" - }, - { - "id": 3344, - "order": "Anger" - }, - { - "id": 3345, - "order": "the Twins" - }, - { - "id": 3346, - "order": "Giants" - }, - { - "id": 3347, - "order": "Brilliance" - }, - { - "id": 3348, - "order": "Anger" - }, - { - "id": 3349, - "order": "the Fox" - }, - { - "id": 3350, - "order": "Titans" - }, - { - "id": 3351, - "order": "Brilliance" - }, - { - "id": 3352, - "order": "Skill" - }, - { - "id": 3353, - "order": "Anger" - }, - { - "id": 3354, - "order": "Skill" - }, - { - "id": 3355, - "order": "the Fox" - }, - { - "id": 3356, - "order": "Rage" - }, - { - "id": 3357, - "order": "Anger" - }, - { - "id": 3358, - "order": "Giants" - }, - { - "id": 3359, - "order": "the Twins" - }, - { - "id": 3360, - "order": "Fury" - }, - { - "id": 3361, - "order": "Enlightenment" - }, - { - "id": 3362, - "order": "Titans" - }, - { - "id": 3363, - "order": "Anger" - }, - { - "id": 3364, - "order": "the Fox" - }, - { - "id": 3365, - "order": "Enlightenment" - }, - { - "id": 3366, - "order": "Skill" - }, - { - "id": 3367, - "order": "Detection" - }, - { - "id": 3368, - "order": "Titans" - }, - { - "id": 3369, - "order": "Perfection" - }, - { - "id": 3370, - "order": "the Fox" - }, - { - "id": 3371, - "order": "Skill" - }, - { - "id": 3372, - "order": "Titans" - }, - { - "id": 3373, - "order": "Titans" - }, - { - "id": 3374, - "order": "Enlightenment" - }, - { - "id": 3375, - "order": "Power" - }, - { - "id": 3376, - "order": "Protection" - }, - { - "id": 3377, - "order": "Power" - }, - { - "id": 3378, - "order": "Giants" - }, - { - "id": 3379, - "order": "Fury" - }, - { - "id": 3380, - "order": "the Fox" - }, - { - "id": 3381, - "order": "Protection" - }, - { - "id": 3382, - "order": "Fury" - }, - { - "id": 3383, - "order": "Enlightenment" - }, - { - "id": 3384, - "order": "Skill" - }, - { - "id": 3385, - "order": "Reflection" - }, - { - "id": 3386, - "order": "Fury" - }, - { - "id": 3387, - "order": "Detection" - }, - { - "id": 3388, - "order": "Detection" - }, - { - "id": 3389, - "order": "Reflection" - }, - { - "id": 3390, - "order": "Protection" - }, - { - "id": 3391, - "order": "Brilliance" - }, - { - "id": 3392, - "order": "Reflection" - }, - { - "id": 3393, - "order": "Giants" - }, - { - "id": 3394, - "order": "Protection" - }, - { - "id": 3395, - "order": "Fury" - }, - { - "id": 3396, - "order": "Perfection" - }, - { - "id": 3397, - "order": "Protection" - }, - { - "id": 3398, - "order": "the Twins" - }, - { - "id": 3399, - "order": "Skill" - }, - { - "id": 3400, - "order": "Reflection" - }, - { - "id": 3401, - "order": "Titans" - }, - { - "id": 3402, - "order": "Titans" - }, - { - "id": 3403, - "order": "Protection" - }, - { - "id": 3404, - "order": "Titans" - }, - { - "id": 3405, - "order": "Anger" - }, - { - "id": 3406, - "order": "Titans" - }, - { - "id": 3407, - "order": "Fury" - }, - { - "id": 3408, - "order": "Vitriol" - }, - { - "id": 3409, - "order": "Perfection" - }, - { - "id": 3410, - "order": "the Twins" - }, - { - "id": 3411, - "order": "the Fox" - }, - { - "id": 3412, - "order": "Giants" - }, - { - "id": 3413, - "order": "Detection" - }, - { - "id": 3414, - "order": "Perfection" - }, - { - "id": 3415, - "order": "Reflection" - }, - { - "id": 3416, - "order": "Giants" - }, - { - "id": 3417, - "order": "Brilliance" - }, - { - "id": 3418, - "order": "Vitriol" - }, - { - "id": 3419, - "order": "Rage" - }, - { - "id": 3420, - "order": "Perfection" - }, - { - "id": 3421, - "order": "Brilliance" - }, - { - "id": 3422, - "order": "Protection" - }, - { - "id": 3423, - "order": "Power" - }, - { - "id": 3424, - "order": "Giants" - }, - { - "id": 3425, - "order": "Perfection" - }, - { - "id": 3426, - "order": "Titans" - }, - { - "id": 3427, - "order": "the Fox" - }, - { - "id": 3428, - "order": "Perfection" - }, - { - "id": 3429, - "order": "Power" - }, - { - "id": 3430, - "order": "Anger" - }, - { - "id": 3431, - "order": "Skill" - }, - { - "id": 3432, - "order": "Power" - }, - { - "id": 3433, - "order": "Enlightenment" - }, - { - "id": 3434, - "order": "Fury" - }, - { - "id": 3435, - "order": "Detection" - }, - { - "id": 3436, - "order": "Power" - }, - { - "id": 3437, - "order": "the Twins" - }, - { - "id": 3438, - "order": "Detection" - }, - { - "id": 3439, - "order": "the Fox" - }, - { - "id": 3440, - "order": "Rage" - }, - { - "id": 3441, - "order": "Skill" - }, - { - "id": 3442, - "order": "Reflection" - }, - { - "id": 3443, - "order": "Vitriol" - }, - { - "id": 3444, - "order": "Protection" - }, - { - "id": 3445, - "order": "Skill" - }, - { - "id": 3446, - "order": "Fury" - }, - { - "id": 3447, - "order": "Giants" - }, - { - "id": 3448, - "order": "Giants" - }, - { - "id": 3449, - "order": "Anger" - }, - { - "id": 3450, - "order": "Skill" - }, - { - "id": 3451, - "order": "the Fox" - }, - { - "id": 3452, - "order": "Enlightenment" - }, - { - "id": 3453, - "order": "Giants" - }, - { - "id": 3454, - "order": "Giants" - }, - { - "id": 3455, - "order": "the Fox" - }, - { - "id": 3456, - "order": "Reflection" - }, - { - "id": 3457, - "order": "Rage" - }, - { - "id": 3458, - "order": "Power" - }, - { - "id": 3459, - "order": "Enlightenment" - }, - { - "id": 3460, - "order": "Titans" - }, - { - "id": 3461, - "order": "Skill" - }, - { - "id": 3462, - "order": "Detection" - }, - { - "id": 3463, - "order": "Vitriol" - }, - { - "id": 3464, - "order": "Enlightenment" - }, - { - "id": 3465, - "order": "Power" - }, - { - "id": 3466, - "order": "Titans" - }, - { - "id": 3467, - "order": "Fury" - }, - { - "id": 3468, - "order": "Protection" - }, - { - "id": 3469, - "order": "Giants" - }, - { - "id": 3470, - "order": "Brilliance" - }, - { - "id": 3471, - "order": "Vitriol" - }, - { - "id": 3472, - "order": "Brilliance" - }, - { - "id": 3473, - "order": "Protection" - }, - { - "id": 3474, - "order": "Detection" - }, - { - "id": 3475, - "order": "the Fox" - }, - { - "id": 3476, - "order": "Reflection" - }, - { - "id": 3477, - "order": "the Twins" - }, - { - "id": 3478, - "order": "Perfection" - }, - { - "id": 3479, - "order": "Giants" - }, - { - "id": 3480, - "order": "Power" - }, - { - "id": 3481, - "order": "Detection" - }, - { - "id": 3482, - "order": "Giants" - }, - { - "id": 3483, - "order": "Vitriol" - }, - { - "id": 3484, - "order": "Titans" - }, - { - "id": 3485, - "order": "Brilliance" - }, - { - "id": 3486, - "order": "Detection" - }, - { - "id": 3487, - "order": "Detection" - }, - { - "id": 3488, - "order": "Anger" - }, - { - "id": 3489, - "order": "Anger" - }, - { - "id": 3490, - "order": "the Twins" - }, - { - "id": 3491, - "order": "Power" - }, - { - "id": 3492, - "order": "Skill" - }, - { - "id": 3493, - "order": "Protection" - }, - { - "id": 3494, - "order": "the Fox" - }, - { - "id": 3495, - "order": "Skill" - }, - { - "id": 3496, - "order": "Perfection" - }, - { - "id": 3497, - "order": "Protection" - }, - { - "id": 3498, - "order": "the Twins" - }, - { - "id": 3499, - "order": "Reflection" - }, - { - "id": 3500, - "order": "Enlightenment" - }, - { - "id": 3501, - "order": "Rage" - }, - { - "id": 3502, - "order": "Giants" - }, - { - "id": 3503, - "order": "Giants" - }, - { - "id": 3504, - "order": "Titans" - }, - { - "id": 3505, - "order": "Power" - }, - { - "id": 3506, - "order": "Fury" - }, - { - "id": 3507, - "order": "Titans" - }, - { - "id": 3508, - "order": "Perfection" - }, - { - "id": 3509, - "order": "the Twins" - }, - { - "id": 3510, - "order": "Titans" - }, - { - "id": 3511, - "order": "Anger" - }, - { - "id": 3512, - "order": "Titans" - }, - { - "id": 3513, - "order": "Vitriol" - }, - { - "id": 3514, - "order": "Enlightenment" - }, - { - "id": 3515, - "order": "the Twins" - }, - { - "id": 3516, - "order": "Reflection" - }, - { - "id": 3517, - "order": "Perfection" - }, - { - "id": 3518, - "order": "Rage" - }, - { - "id": 3519, - "order": "Vitriol" - }, - { - "id": 3520, - "order": "Perfection" - }, - { - "id": 3521, - "order": "Protection" - }, - { - "id": 3522, - "order": "Reflection" - }, - { - "id": 3523, - "order": "Giants" - }, - { - "id": 3524, - "order": "the Twins" - }, - { - "id": 3525, - "order": "Rage" - }, - { - "id": 3526, - "order": "Anger" - }, - { - "id": 3527, - "order": "Enlightenment" - }, - { - "id": 3528, - "order": "the Twins" - }, - { - "id": 3529, - "order": "Fury" - }, - { - "id": 3530, - "order": "Brilliance" - }, - { - "id": 3531, - "order": "the Fox" - }, - { - "id": 3532, - "order": "Anger" - }, - { - "id": 3533, - "order": "Brilliance" - }, - { - "id": 3534, - "order": "Vitriol" - }, - { - "id": 3535, - "order": "the Twins" - }, - { - "id": 3536, - "order": "Detection" - }, - { - "id": 3537, - "order": "Power" - }, - { - "id": 3538, - "order": "Enlightenment" - }, - { - "id": 3539, - "order": "Rage" - }, - { - "id": 3540, - "order": "the Fox" - }, - { - "id": 3541, - "order": "Power" - }, - { - "id": 3542, - "order": "Anger" - }, - { - "id": 3543, - "order": "Detection" - }, - { - "id": 3544, - "order": "the Twins" - }, - { - "id": 3545, - "order": "Rage" - }, - { - "id": 3546, - "order": "Perfection" - }, - { - "id": 3547, - "order": "Titans" - }, - { - "id": 3548, - "order": "Power" - }, - { - "id": 3549, - "order": "the Twins" - }, - { - "id": 3550, - "order": "Titans" - }, - { - "id": 3551, - "order": "the Fox" - }, - { - "id": 3552, - "order": "Reflection" - }, - { - "id": 3553, - "order": "Detection" - }, - { - "id": 3554, - "order": "Vitriol" - }, - { - "id": 3555, - "order": "Giants" - }, - { - "id": 3556, - "order": "the Fox" - }, - { - "id": 3557, - "order": "Giants" - }, - { - "id": 3558, - "order": "Reflection" - }, - { - "id": 3559, - "order": "Vitriol" - }, - { - "id": 3560, - "order": "Enlightenment" - }, - { - "id": 3561, - "order": "Rage" - }, - { - "id": 3562, - "order": "the Fox" - }, - { - "id": 3563, - "order": "Titans" - }, - { - "id": 3564, - "order": "Rage" - }, - { - "id": 3565, - "order": "Brilliance" - }, - { - "id": 3566, - "order": "Titans" - }, - { - "id": 3567, - "order": "Perfection" - }, - { - "id": 3568, - "order": "Protection" - }, - { - "id": 3569, - "order": "Brilliance" - }, - { - "id": 3570, - "order": "Skill" - }, - { - "id": 3571, - "order": "Vitriol" - }, - { - "id": 3572, - "order": "Fury" - }, - { - "id": 3573, - "order": "Fury" - }, - { - "id": 3574, - "order": "Brilliance" - }, - { - "id": 3575, - "order": "Skill" - }, - { - "id": 3576, - "order": "Enlightenment" - }, - { - "id": 3577, - "order": "Detection" - }, - { - "id": 3578, - "order": "Power" - }, - { - "id": 3579, - "order": "Enlightenment" - }, - { - "id": 3580, - "order": "Detection" - }, - { - "id": 3581, - "order": "Fury" - }, - { - "id": 3582, - "order": "Rage" - }, - { - "id": 3583, - "order": "Rage" - }, - { - "id": 3584, - "order": "Perfection" - }, - { - "id": 3585, - "order": "the Fox" - }, - { - "id": 3586, - "order": "Protection" - }, - { - "id": 3587, - "order": "Fury" - }, - { - "id": 3588, - "order": "Power" - }, - { - "id": 3589, - "order": "the Fox" - }, - { - "id": 3590, - "order": "Enlightenment" - }, - { - "id": 3591, - "order": "Rage" - }, - { - "id": 3592, - "order": "Fury" - }, - { - "id": 3593, - "order": "the Twins" - }, - { - "id": 3594, - "order": "Detection" - }, - { - "id": 3595, - "order": "the Fox" - }, - { - "id": 3596, - "order": "Brilliance" - }, - { - "id": 3597, - "order": "the Twins" - }, - { - "id": 3598, - "order": "Giants" - }, - { - "id": 3599, - "order": "Enlightenment" - }, - { - "id": 3600, - "order": "Giants" - }, - { - "id": 3601, - "order": "Power" - }, - { - "id": 3602, - "order": "Brilliance" - }, - { - "id": 3603, - "order": "Rage" - }, - { - "id": 3604, - "order": "Vitriol" - }, - { - "id": 3605, - "order": "Skill" - }, - { - "id": 3606, - "order": "Titans" - }, - { - "id": 3607, - "order": "Detection" - }, - { - "id": 3608, - "order": "Skill" - }, - { - "id": 3609, - "order": "Reflection" - }, - { - "id": 3610, - "order": "Fury" - }, - { - "id": 3611, - "order": "Brilliance" - }, - { - "id": 3612, - "order": "Rage" - }, - { - "id": 3613, - "order": "Power" - }, - { - "id": 3614, - "order": "the Twins" - }, - { - "id": 3615, - "order": "Fury" - }, - { - "id": 3616, - "order": "Reflection" - }, - { - "id": 3617, - "order": "Perfection" - }, - { - "id": 3618, - "order": "the Twins" - }, - { - "id": 3619, - "order": "Rage" - }, - { - "id": 3620, - "order": "Vitriol" - }, - { - "id": 3621, - "order": "Anger" - }, - { - "id": 3622, - "order": "Rage" - }, - { - "id": 3623, - "order": "Brilliance" - }, - { - "id": 3624, - "order": "Perfection" - }, - { - "id": 3625, - "order": "Vitriol" - }, - { - "id": 3626, - "order": "Giants" - }, - { - "id": 3627, - "order": "Anger" - }, - { - "id": 3628, - "order": "Vitriol" - }, - { - "id": 3629, - "order": "Giants" - }, - { - "id": 3630, - "order": "the Fox" - }, - { - "id": 3631, - "order": "the Fox" - }, - { - "id": 3632, - "order": "Anger" - }, - { - "id": 3633, - "order": "Titans" - }, - { - "id": 3634, - "order": "Giants" - }, - { - "id": 3635, - "order": "Protection" - }, - { - "id": 3636, - "order": "Anger" - }, - { - "id": 3637, - "order": "Brilliance" - }, - { - "id": 3638, - "order": "the Fox" - }, - { - "id": 3639, - "order": "Anger" - }, - { - "id": 3640, - "order": "the Fox" - }, - { - "id": 3641, - "order": "Fury" - }, - { - "id": 3642, - "order": "Power" - }, - { - "id": 3643, - "order": "Perfection" - }, - { - "id": 3644, - "order": "Detection" - }, - { - "id": 3645, - "order": "Titans" - }, - { - "id": 3646, - "order": "Brilliance" - }, - { - "id": 3647, - "order": "Power" - }, - { - "id": 3648, - "order": "Skill" - }, - { - "id": 3649, - "order": "Skill" - }, - { - "id": 3650, - "order": "Power" - }, - { - "id": 3651, - "order": "the Twins" - }, - { - "id": 3652, - "order": "the Twins" - }, - { - "id": 3653, - "order": "Perfection" - }, - { - "id": 3654, - "order": "Brilliance" - }, - { - "id": 3655, - "order": "Power" - }, - { - "id": 3656, - "order": "Protection" - }, - { - "id": 3657, - "order": "Enlightenment" - }, - { - "id": 3658, - "order": "Rage" - }, - { - "id": 3659, - "order": "Detection" - }, - { - "id": 3660, - "order": "Detection" - }, - { - "id": 3661, - "order": "Fury" - }, - { - "id": 3662, - "order": "Power" - }, - { - "id": 3663, - "order": "Giants" - }, - { - "id": 3664, - "order": "Protection" - }, - { - "id": 3665, - "order": "Titans" - }, - { - "id": 3666, - "order": "Detection" - }, - { - "id": 3667, - "order": "Power" - }, - { - "id": 3668, - "order": "Anger" - }, - { - "id": 3669, - "order": "Perfection" - }, - { - "id": 3670, - "order": "Titans" - }, - { - "id": 3671, - "order": "Titans" - }, - { - "id": 3672, - "order": "Protection" - }, - { - "id": 3673, - "order": "Protection" - }, - { - "id": 3674, - "order": "Detection" - }, - { - "id": 3675, - "order": "Anger" - }, - { - "id": 3676, - "order": "Reflection" - }, - { - "id": 3677, - "order": "Fury" - }, - { - "id": 3678, - "order": "Anger" - }, - { - "id": 3679, - "order": "Vitriol" - }, - { - "id": 3680, - "order": "Vitriol" - }, - { - "id": 3681, - "order": "Giants" - }, - { - "id": 3682, - "order": "Power" - }, - { - "id": 3683, - "order": "the Fox" - }, - { - "id": 3684, - "order": "Detection" - }, - { - "id": 3685, - "order": "Brilliance" - }, - { - "id": 3686, - "order": "Skill" - }, - { - "id": 3687, - "order": "Vitriol" - }, - { - "id": 3688, - "order": "Perfection" - }, - { - "id": 3689, - "order": "Giants" - }, - { - "id": 3690, - "order": "Vitriol" - }, - { - "id": 3691, - "order": "Vitriol" - }, - { - "id": 3692, - "order": "Rage" - }, - { - "id": 3693, - "order": "Skill" - }, - { - "id": 3694, - "order": "Anger" - }, - { - "id": 3695, - "order": "Fury" - }, - { - "id": 3696, - "order": "Power" - }, - { - "id": 3697, - "order": "Brilliance" - }, - { - "id": 3698, - "order": "the Fox" - }, - { - "id": 3699, - "order": "Giants" - }, - { - "id": 3700, - "order": "Perfection" - }, - { - "id": 3701, - "order": "the Fox" - }, - { - "id": 3702, - "order": "Detection" - }, - { - "id": 3703, - "order": "Perfection" - }, - { - "id": 3704, - "order": "Reflection" - }, - { - "id": 3705, - "order": "Vitriol" - }, - { - "id": 3706, - "order": "the Fox" - }, - { - "id": 3707, - "order": "Giants" - }, - { - "id": 3708, - "order": "Vitriol" - }, - { - "id": 3709, - "order": "Anger" - }, - { - "id": 3710, - "order": "Brilliance" - }, - { - "id": 3711, - "order": "Reflection" - }, - { - "id": 3712, - "order": "Perfection" - }, - { - "id": 3713, - "order": "Skill" - }, - { - "id": 3714, - "order": "Anger" - }, - { - "id": 3715, - "order": "Anger" - }, - { - "id": 3716, - "order": "Giants" - }, - { - "id": 3717, - "order": "Titans" - }, - { - "id": 3718, - "order": "Rage" - }, - { - "id": 3719, - "order": "the Twins" - }, - { - "id": 3720, - "order": "the Fox" - }, - { - "id": 3721, - "order": "Skill" - }, - { - "id": 3722, - "order": "Vitriol" - }, - { - "id": 3723, - "order": "the Twins" - }, - { - "id": 3724, - "order": "Perfection" - }, - { - "id": 3725, - "order": "Titans" - }, - { - "id": 3726, - "order": "Enlightenment" - }, - { - "id": 3727, - "order": "the Twins" - }, - { - "id": 3728, - "order": "Titans" - }, - { - "id": 3729, - "order": "Protection" - }, - { - "id": 3730, - "order": "Vitriol" - }, - { - "id": 3731, - "order": "the Fox" - }, - { - "id": 3732, - "order": "Vitriol" - }, - { - "id": 3733, - "order": "Enlightenment" - }, - { - "id": 3734, - "order": "Giants" - }, - { - "id": 3735, - "order": "Brilliance" - }, - { - "id": 3736, - "order": "Anger" - }, - { - "id": 3737, - "order": "Brilliance" - }, - { - "id": 3738, - "order": "Anger" - }, - { - "id": 3739, - "order": "Brilliance" - }, - { - "id": 3740, - "order": "Enlightenment" - }, - { - "id": 3741, - "order": "Protection" - }, - { - "id": 3742, - "order": "Fury" - }, - { - "id": 3743, - "order": "Power" - }, - { - "id": 3744, - "order": "Brilliance" - }, - { - "id": 3745, - "order": "Rage" - }, - { - "id": 3746, - "order": "Detection" - }, - { - "id": 3747, - "order": "Protection" - }, - { - "id": 3748, - "order": "the Twins" - }, - { - "id": 3749, - "order": "Anger" - }, - { - "id": 3750, - "order": "Skill" - }, - { - "id": 3751, - "order": "Anger" - }, - { - "id": 3752, - "order": "Fury" - }, - { - "id": 3753, - "order": "Titans" - }, - { - "id": 3754, - "order": "Fury" - }, - { - "id": 3755, - "order": "Perfection" - }, - { - "id": 3756, - "order": "Skill" - }, - { - "id": 3757, - "order": "the Fox" - }, - { - "id": 3758, - "order": "Protection" - }, - { - "id": 3759, - "order": "Perfection" - }, - { - "id": 3760, - "order": "Anger" - }, - { - "id": 3761, - "order": "Skill" - }, - { - "id": 3762, - "order": "Power" - }, - { - "id": 3763, - "order": "Protection" - }, - { - "id": 3764, - "order": "Anger" - }, - { - "id": 3765, - "order": "Detection" - }, - { - "id": 3766, - "order": "Power" - }, - { - "id": 3767, - "order": "Anger" - }, - { - "id": 3768, - "order": "Fury" - }, - { - "id": 3769, - "order": "Protection" - }, - { - "id": 3770, - "order": "the Twins" - }, - { - "id": 3771, - "order": "Protection" - }, - { - "id": 3772, - "order": "Rage" - }, - { - "id": 3773, - "order": "Detection" - }, - { - "id": 3774, - "order": "the Fox" - }, - { - "id": 3775, - "order": "Rage" - }, - { - "id": 3776, - "order": "Protection" - }, - { - "id": 3777, - "order": "Power" - }, - { - "id": 3778, - "order": "Anger" - }, - { - "id": 3779, - "order": "Vitriol" - }, - { - "id": 3780, - "order": "Fury" - }, - { - "id": 3781, - "order": "Giants" - }, - { - "id": 3782, - "order": "Rage" - }, - { - "id": 3783, - "order": "Protection" - }, - { - "id": 3784, - "order": "Anger" - }, - { - "id": 3785, - "order": "the Fox" - }, - { - "id": 3786, - "order": "Skill" - }, - { - "id": 3787, - "order": "Detection" - }, - { - "id": 3788, - "order": "Rage" - }, - { - "id": 3789, - "order": "Reflection" - }, - { - "id": 3790, - "order": "Power" - }, - { - "id": 3791, - "order": "Skill" - }, - { - "id": 3792, - "order": "the Twins" - }, - { - "id": 3793, - "order": "Skill" - }, - { - "id": 3794, - "order": "Giants" - }, - { - "id": 3795, - "order": "Giants" - }, - { - "id": 3796, - "order": "Brilliance" - }, - { - "id": 3797, - "order": "Power" - }, - { - "id": 3798, - "order": "Anger" - }, - { - "id": 3799, - "order": "Skill" - }, - { - "id": 3800, - "order": "the Twins" - }, - { - "id": 3801, - "order": "Brilliance" - }, - { - "id": 3802, - "order": "Power" - }, - { - "id": 3803, - "order": "Protection" - }, - { - "id": 3804, - "order": "Rage" - }, - { - "id": 3805, - "order": "the Fox" - }, - { - "id": 3806, - "order": "Anger" - }, - { - "id": 3807, - "order": "Fury" - }, - { - "id": 3808, - "order": "Detection" - }, - { - "id": 3809, - "order": "Vitriol" - }, - { - "id": 3810, - "order": "the Twins" - }, - { - "id": 3811, - "order": "Anger" - }, - { - "id": 3812, - "order": "Vitriol" - }, - { - "id": 3813, - "order": "Titans" - }, - { - "id": 3814, - "order": "Vitriol" - }, - { - "id": 3815, - "order": "Reflection" - }, - { - "id": 3816, - "order": "Vitriol" - }, - { - "id": 3817, - "order": "Skill" - }, - { - "id": 3818, - "order": "Skill" - }, - { - "id": 3819, - "order": "Titans" - }, - { - "id": 3820, - "order": "Reflection" - }, - { - "id": 3821, - "order": "Enlightenment" - }, - { - "id": 3822, - "order": "Power" - }, - { - "id": 3823, - "order": "Giants" - }, - { - "id": 3824, - "order": "the Twins" - }, - { - "id": 3825, - "order": "Brilliance" - }, - { - "id": 3826, - "order": "Enlightenment" - }, - { - "id": 3827, - "order": "Power" - }, - { - "id": 3828, - "order": "the Fox" - }, - { - "id": 3829, - "order": "Detection" - }, - { - "id": 3830, - "order": "Protection" - }, - { - "id": 3831, - "order": "the Twins" - }, - { - "id": 3832, - "order": "Fury" - }, - { - "id": 3833, - "order": "Power" - }, - { - "id": 3834, - "order": "Power" - }, - { - "id": 3835, - "order": "Vitriol" - }, - { - "id": 3836, - "order": "Fury" - }, - { - "id": 3837, - "order": "Giants" - }, - { - "id": 3838, - "order": "the Fox" - }, - { - "id": 3839, - "order": "Reflection" - }, - { - "id": 3840, - "order": "Vitriol" - }, - { - "id": 3841, - "order": "Reflection" - }, - { - "id": 3842, - "order": "Brilliance" - }, - { - "id": 3843, - "order": "Vitriol" - }, - { - "id": 3844, - "order": "Detection" - }, - { - "id": 3845, - "order": "Giants" - }, - { - "id": 3846, - "order": "Power" - }, - { - "id": 3847, - "order": "Protection" - }, - { - "id": 3848, - "order": "Vitriol" - }, - { - "id": 3849, - "order": "Power" - }, - { - "id": 3850, - "order": "Skill" - }, - { - "id": 3851, - "order": "Brilliance" - }, - { - "id": 3852, - "order": "the Twins" - }, - { - "id": 3853, - "order": "Anger" - }, - { - "id": 3854, - "order": "Skill" - }, - { - "id": 3855, - "order": "Titans" - }, - { - "id": 3856, - "order": "the Fox" - }, - { - "id": 3857, - "order": "Giants" - }, - { - "id": 3858, - "order": "Brilliance" - }, - { - "id": 3859, - "order": "Rage" - }, - { - "id": 3860, - "order": "the Fox" - }, - { - "id": 3861, - "order": "Brilliance" - }, - { - "id": 3862, - "order": "Fury" - }, - { - "id": 3863, - "order": "Anger" - }, - { - "id": 3864, - "order": "Fury" - }, - { - "id": 3865, - "order": "Power" - }, - { - "id": 3866, - "order": "Skill" - }, - { - "id": 3867, - "order": "Brilliance" - }, - { - "id": 3868, - "order": "the Fox" - }, - { - "id": 3869, - "order": "Anger" - }, - { - "id": 3870, - "order": "Fury" - }, - { - "id": 3871, - "order": "Detection" - }, - { - "id": 3872, - "order": "Brilliance" - }, - { - "id": 3873, - "order": "Perfection" - }, - { - "id": 3874, - "order": "Rage" - }, - { - "id": 3875, - "order": "Enlightenment" - }, - { - "id": 3876, - "order": "the Twins" - }, - { - "id": 3877, - "order": "Power" - }, - { - "id": 3878, - "order": "the Fox" - }, - { - "id": 3879, - "order": "Fury" - }, - { - "id": 3880, - "order": "Anger" - }, - { - "id": 3881, - "order": "Enlightenment" - }, - { - "id": 3882, - "order": "the Twins" - }, - { - "id": 3883, - "order": "Power" - }, - { - "id": 3884, - "order": "Power" - }, - { - "id": 3885, - "order": "the Twins" - }, - { - "id": 3886, - "order": "Titans" - }, - { - "id": 3887, - "order": "Reflection" - }, - { - "id": 3888, - "order": "Skill" - }, - { - "id": 3889, - "order": "the Twins" - }, - { - "id": 3890, - "order": "Enlightenment" - }, - { - "id": 3891, - "order": "Perfection" - }, - { - "id": 3892, - "order": "Skill" - }, - { - "id": 3893, - "order": "Vitriol" - }, - { - "id": 3894, - "order": "the Twins" - }, - { - "id": 3895, - "order": "Perfection" - }, - { - "id": 3896, - "order": "Brilliance" - }, - { - "id": 3897, - "order": "Detection" - }, - { - "id": 3898, - "order": "Titans" - }, - { - "id": 3899, - "order": "Giants" - }, - { - "id": 3900, - "order": "Protection" - }, - { - "id": 3901, - "order": "Skill" - }, - { - "id": 3902, - "order": "the Twins" - }, - { - "id": 3903, - "order": "Protection" - }, - { - "id": 3904, - "order": "Giants" - }, - { - "id": 3905, - "order": "Perfection" - }, - { - "id": 3906, - "order": "Skill" - }, - { - "id": 3907, - "order": "Enlightenment" - }, - { - "id": 3908, - "order": "Reflection" - }, - { - "id": 3909, - "order": "the Fox" - }, - { - "id": 3910, - "order": "Power" - }, - { - "id": 3911, - "order": "Titans" - }, - { - "id": 3912, - "order": "Reflection" - }, - { - "id": 3913, - "order": "Power" - }, - { - "id": 3914, - "order": "Vitriol" - }, - { - "id": 3915, - "order": "Power" - }, - { - "id": 3916, - "order": "Fury" - }, - { - "id": 3917, - "order": "the Twins" - }, - { - "id": 3918, - "order": "Fury" - }, - { - "id": 3919, - "order": "Reflection" - }, - { - "id": 3920, - "order": "Vitriol" - }, - { - "id": 3921, - "order": "Brilliance" - }, - { - "id": 3922, - "order": "Skill" - }, - { - "id": 3923, - "order": "Brilliance" - }, - { - "id": 3924, - "order": "Fury" - }, - { - "id": 3925, - "order": "the Twins" - }, - { - "id": 3926, - "order": "the Twins" - }, - { - "id": 3927, - "order": "Vitriol" - }, - { - "id": 3928, - "order": "Reflection" - }, - { - "id": 3929, - "order": "Brilliance" - }, - { - "id": 3930, - "order": "Reflection" - }, - { - "id": 3931, - "order": "Vitriol" - }, - { - "id": 3932, - "order": "Rage" - }, - { - "id": 3933, - "order": "Detection" - }, - { - "id": 3934, - "order": "Anger" - }, - { - "id": 3935, - "order": "Brilliance" - }, - { - "id": 3936, - "order": "the Twins" - }, - { - "id": 3937, - "order": "Enlightenment" - }, - { - "id": 3938, - "order": "Titans" - }, - { - "id": 3939, - "order": "Enlightenment" - }, - { - "id": 3940, - "order": "Skill" - }, - { - "id": 3941, - "order": "Vitriol" - }, - { - "id": 3942, - "order": "Reflection" - }, - { - "id": 3943, - "order": "Reflection" - }, - { - "id": 3944, - "order": "Power" - }, - { - "id": 3945, - "order": "Enlightenment" - }, - { - "id": 3946, - "order": "Enlightenment" - }, - { - "id": 3947, - "order": "Protection" - }, - { - "id": 3948, - "order": "Enlightenment" - }, - { - "id": 3949, - "order": "Anger" - }, - { - "id": 3950, - "order": "Perfection" - }, - { - "id": 3951, - "order": "Reflection" - }, - { - "id": 3952, - "order": "Detection" - }, - { - "id": 3953, - "order": "Power" - }, - { - "id": 3954, - "order": "Brilliance" - }, - { - "id": 3955, - "order": "Vitriol" - }, - { - "id": 3956, - "order": "Detection" - }, - { - "id": 3957, - "order": "Titans" - }, - { - "id": 3958, - "order": "the Twins" - }, - { - "id": 3959, - "order": "Skill" - }, - { - "id": 3960, - "order": "Vitriol" - }, - { - "id": 3961, - "order": "the Twins" - }, - { - "id": 3962, - "order": "Rage" - }, - { - "id": 3963, - "order": "Anger" - }, - { - "id": 3964, - "order": "Reflection" - }, - { - "id": 3965, - "order": "Perfection" - }, - { - "id": 3966, - "order": "the Fox" - }, - { - "id": 3967, - "order": "the Fox" - }, - { - "id": 3968, - "order": "Enlightenment" - }, - { - "id": 3969, - "order": "Giants" - }, - { - "id": 3970, - "order": "Giants" - }, - { - "id": 3971, - "order": "Fury" - }, - { - "id": 3972, - "order": "Fury" - }, - { - "id": 3973, - "order": "Anger" - }, - { - "id": 3974, - "order": "Protection" - }, - { - "id": 3975, - "order": "the Twins" - }, - { - "id": 3976, - "order": "Enlightenment" - }, - { - "id": 3977, - "order": "Power" - }, - { - "id": 3978, - "order": "Detection" - }, - { - "id": 3979, - "order": "Skill" - }, - { - "id": 3980, - "order": "Skill" - }, - { - "id": 3981, - "order": "Power" - }, - { - "id": 3982, - "order": "Brilliance" - }, - { - "id": 3983, - "order": "Rage" - }, - { - "id": 3984, - "order": "Brilliance" - }, - { - "id": 3985, - "order": "Titans" - }, - { - "id": 3986, - "order": "Anger" - }, - { - "id": 3987, - "order": "Giants" - }, - { - "id": 3988, - "order": "Skill" - }, - { - "id": 3989, - "order": "Enlightenment" - }, - { - "id": 3990, - "order": "Fury" - }, - { - "id": 3991, - "order": "Rage" - }, - { - "id": 3992, - "order": "Anger" - }, - { - "id": 3993, - "order": "Vitriol" - }, - { - "id": 3994, - "order": "Protection" - }, - { - "id": 3995, - "order": "the Twins" - }, - { - "id": 3996, - "order": "Rage" - }, - { - "id": 3997, - "order": "Brilliance" - }, - { - "id": 3998, - "order": "Detection" - }, - { - "id": 3999, - "order": "Anger" - }, - { - "id": 4000, - "order": "Reflection" - }, - { - "id": 4001, - "order": "the Twins" - }, - { - "id": 4002, - "order": "Brilliance" - }, - { - "id": 4003, - "order": "the Twins" - }, - { - "id": 4004, - "order": "Power" - }, - { - "id": 4005, - "order": "Enlightenment" - }, - { - "id": 4006, - "order": "Titans" - }, - { - "id": 4007, - "order": "Vitriol" - }, - { - "id": 4008, - "order": "the Fox" - }, - { - "id": 4009, - "order": "Detection" - }, - { - "id": 4010, - "order": "Reflection" - }, - { - "id": 4011, - "order": "Giants" - }, - { - "id": 4012, - "order": "Anger" - }, - { - "id": 4013, - "order": "Giants" - }, - { - "id": 4014, - "order": "Vitriol" - }, - { - "id": 4015, - "order": "Vitriol" - }, - { - "id": 4016, - "order": "Power" - }, - { - "id": 4017, - "order": "Brilliance" - }, - { - "id": 4018, - "order": "Giants" - }, - { - "id": 4019, - "order": "Titans" - }, - { - "id": 4020, - "order": "Skill" - }, - { - "id": 4021, - "order": "the Fox" - }, - { - "id": 4022, - "order": "the Fox" - }, - { - "id": 4023, - "order": "Perfection" - }, - { - "id": 4024, - "order": "Enlightenment" - }, - { - "id": 4025, - "order": "Fury" - }, - { - "id": 4026, - "order": "Rage" - }, - { - "id": 4027, - "order": "Power" - }, - { - "id": 4028, - "order": "Detection" - }, - { - "id": 4029, - "order": "Protection" - }, - { - "id": 4030, - "order": "Reflection" - }, - { - "id": 4031, - "order": "Titans" - }, - { - "id": 4032, - "order": "Perfection" - }, - { - "id": 4033, - "order": "Skill" - }, - { - "id": 4034, - "order": "Perfection" - }, - { - "id": 4035, - "order": "Protection" - }, - { - "id": 4036, - "order": "Titans" - }, - { - "id": 4037, - "order": "Protection" - }, - { - "id": 4038, - "order": "the Fox" - }, - { - "id": 4039, - "order": "the Twins" - }, - { - "id": 4040, - "order": "Rage" - }, - { - "id": 4041, - "order": "Skill" - }, - { - "id": 4042, - "order": "Brilliance" - }, - { - "id": 4043, - "order": "Protection" - }, - { - "id": 4044, - "order": "Rage" - }, - { - "id": 4045, - "order": "Protection" - }, - { - "id": 4046, - "order": "Enlightenment" - }, - { - "id": 4047, - "order": "Reflection" - }, - { - "id": 4048, - "order": "Giants" - }, - { - "id": 4049, - "order": "Vitriol" - }, - { - "id": 4050, - "order": "Enlightenment" - }, - { - "id": 4051, - "order": "Protection" - }, - { - "id": 4052, - "order": "Brilliance" - }, - { - "id": 4053, - "order": "Enlightenment" - }, - { - "id": 4054, - "order": "Fury" - }, - { - "id": 4055, - "order": "Skill" - }, - { - "id": 4056, - "order": "Enlightenment" - }, - { - "id": 4057, - "order": "Power" - }, - { - "id": 4058, - "order": "Perfection" - }, - { - "id": 4059, - "order": "Reflection" - }, - { - "id": 4060, - "order": "Reflection" - }, - { - "id": 4061, - "order": "Detection" - }, - { - "id": 4062, - "order": "Enlightenment" - }, - { - "id": 4063, - "order": "Detection" - }, - { - "id": 4064, - "order": "Power" - }, - { - "id": 4065, - "order": "Vitriol" - }, - { - "id": 4066, - "order": "Protection" - }, - { - "id": 4067, - "order": "Titans" - }, - { - "id": 4068, - "order": "Fury" - }, - { - "id": 4069, - "order": "the Fox" - }, - { - "id": 4070, - "order": "Detection" - }, - { - "id": 4071, - "order": "Reflection" - }, - { - "id": 4072, - "order": "Enlightenment" - }, - { - "id": 4073, - "order": "Brilliance" - }, - { - "id": 4074, - "order": "Anger" - }, - { - "id": 4075, - "order": "Power" - }, - { - "id": 4076, - "order": "Rage" - }, - { - "id": 4077, - "order": "Fury" - }, - { - "id": 4078, - "order": "Reflection" - }, - { - "id": 4079, - "order": "Enlightenment" - }, - { - "id": 4080, - "order": "the Fox" - }, - { - "id": 4081, - "order": "Rage" - }, - { - "id": 4082, - "order": "Enlightenment" - }, - { - "id": 4083, - "order": "Rage" - }, - { - "id": 4084, - "order": "Skill" - }, - { - "id": 4085, - "order": "Rage" - }, - { - "id": 4086, - "order": "the Fox" - }, - { - "id": 4087, - "order": "Vitriol" - }, - { - "id": 4088, - "order": "Vitriol" - }, - { - "id": 4089, - "order": "Brilliance" - }, - { - "id": 4090, - "order": "Reflection" - }, - { - "id": 4091, - "order": "Power" - }, - { - "id": 4092, - "order": "Rage" - }, - { - "id": 4093, - "order": "Power" - }, - { - "id": 4094, - "order": "Rage" - }, - { - "id": 4095, - "order": "Rage" - }, - { - "id": 4096, - "order": "Reflection" - }, - { - "id": 4097, - "order": "Reflection" - }, - { - "id": 4098, - "order": "Skill" - }, - { - "id": 4099, - "order": "Detection" - }, - { - "id": 4100, - "order": "Fury" - }, - { - "id": 4101, - "order": "Anger" - }, - { - "id": 4102, - "order": "Reflection" - }, - { - "id": 4103, - "order": "Skill" - }, - { - "id": 4104, - "order": "the Fox" - }, - { - "id": 4105, - "order": "Power" - }, - { - "id": 4106, - "order": "Giants" - }, - { - "id": 4107, - "order": "Titans" - }, - { - "id": 4108, - "order": "Anger" - }, - { - "id": 4109, - "order": "Enlightenment" - }, - { - "id": 4110, - "order": "Reflection" - }, - { - "id": 4111, - "order": "the Fox" - }, - { - "id": 4112, - "order": "Enlightenment" - }, - { - "id": 4113, - "order": "Skill" - }, - { - "id": 4114, - "order": "the Twins" - }, - { - "id": 4115, - "order": "Titans" - }, - { - "id": 4116, - "order": "Anger" - }, - { - "id": 4117, - "order": "Brilliance" - }, - { - "id": 4118, - "order": "Skill" - }, - { - "id": 4119, - "order": "the Twins" - }, - { - "id": 4120, - "order": "Giants" - }, - { - "id": 4121, - "order": "Perfection" - }, - { - "id": 4122, - "order": "Power" - }, - { - "id": 4123, - "order": "Giants" - }, - { - "id": 4124, - "order": "Skill" - }, - { - "id": 4125, - "order": "Skill" - }, - { - "id": 4126, - "order": "Brilliance" - }, - { - "id": 4127, - "order": "Titans" - }, - { - "id": 4128, - "order": "Reflection" - }, - { - "id": 4129, - "order": "Enlightenment" - }, - { - "id": 4130, - "order": "Protection" - }, - { - "id": 4131, - "order": "Brilliance" - }, - { - "id": 4132, - "order": "the Fox" - }, - { - "id": 4133, - "order": "Reflection" - }, - { - "id": 4134, - "order": "Fury" - }, - { - "id": 4135, - "order": "Power" - }, - { - "id": 4136, - "order": "Giants" - }, - { - "id": 4137, - "order": "Brilliance" - }, - { - "id": 4138, - "order": "Giants" - }, - { - "id": 4139, - "order": "Power" - }, - { - "id": 4140, - "order": "Anger" - }, - { - "id": 4141, - "order": "Titans" - }, - { - "id": 4142, - "order": "Detection" - }, - { - "id": 4143, - "order": "Skill" - }, - { - "id": 4144, - "order": "Detection" - }, - { - "id": 4145, - "order": "the Twins" - }, - { - "id": 4146, - "order": "Vitriol" - }, - { - "id": 4147, - "order": "Protection" - }, - { - "id": 4148, - "order": "Giants" - }, - { - "id": 4149, - "order": "the Twins" - }, - { - "id": 4150, - "order": "Skill" - }, - { - "id": 4151, - "order": "Skill" - }, - { - "id": 4152, - "order": "Detection" - }, - { - "id": 4153, - "order": "Anger" - }, - { - "id": 4154, - "order": "Reflection" - }, - { - "id": 4155, - "order": "Giants" - }, - { - "id": 4156, - "order": "Giants" - }, - { - "id": 4157, - "order": "Fury" - }, - { - "id": 4158, - "order": "Anger" - }, - { - "id": 4159, - "order": "Skill" - }, - { - "id": 4160, - "order": "Fury" - }, - { - "id": 4161, - "order": "Protection" - }, - { - "id": 4162, - "order": "Vitriol" - }, - { - "id": 4163, - "order": "Reflection" - }, - { - "id": 4164, - "order": "Giants" - }, - { - "id": 4165, - "order": "Reflection" - }, - { - "id": 4166, - "order": "Detection" - }, - { - "id": 4167, - "order": "Skill" - }, - { - "id": 4168, - "order": "Perfection" - }, - { - "id": 4169, - "order": "Titans" - }, - { - "id": 4170, - "order": "Vitriol" - }, - { - "id": 4171, - "order": "Vitriol" - }, - { - "id": 4172, - "order": "Giants" - }, - { - "id": 4173, - "order": "Fury" - }, - { - "id": 4174, - "order": "Reflection" - }, - { - "id": 4175, - "order": "Rage" - }, - { - "id": 4176, - "order": "Reflection" - }, - { - "id": 4177, - "order": "the Twins" - }, - { - "id": 4178, - "order": "Protection" - }, - { - "id": 4179, - "order": "Fury" - }, - { - "id": 4180, - "order": "Fury" - }, - { - "id": 4181, - "order": "Reflection" - }, - { - "id": 4182, - "order": "Detection" - }, - { - "id": 4183, - "order": "Enlightenment" - }, - { - "id": 4184, - "order": "Titans" - }, - { - "id": 4185, - "order": "Giants" - }, - { - "id": 4186, - "order": "Skill" - }, - { - "id": 4187, - "order": "Giants" - }, - { - "id": 4188, - "order": "Titans" - }, - { - "id": 4189, - "order": "Brilliance" - }, - { - "id": 4190, - "order": "Brilliance" - }, - { - "id": 4191, - "order": "Titans" - }, - { - "id": 4192, - "order": "Power" - }, - { - "id": 4193, - "order": "Rage" - }, - { - "id": 4194, - "order": "Protection" - }, - { - "id": 4195, - "order": "Enlightenment" - }, - { - "id": 4196, - "order": "the Twins" - }, - { - "id": 4197, - "order": "Reflection" - }, - { - "id": 4198, - "order": "the Fox" - }, - { - "id": 4199, - "order": "Brilliance" - }, - { - "id": 4200, - "order": "the Twins" - }, - { - "id": 4201, - "order": "Reflection" - }, - { - "id": 4202, - "order": "the Twins" - }, - { - "id": 4203, - "order": "Rage" - }, - { - "id": 4204, - "order": "Protection" - }, - { - "id": 4205, - "order": "Anger" - }, - { - "id": 4206, - "order": "Power" - }, - { - "id": 4207, - "order": "Perfection" - }, - { - "id": 4208, - "order": "Anger" - }, - { - "id": 4209, - "order": "Protection" - }, - { - "id": 4210, - "order": "the Twins" - }, - { - "id": 4211, - "order": "Anger" - }, - { - "id": 4212, - "order": "the Fox" - }, - { - "id": 4213, - "order": "Anger" - }, - { - "id": 4214, - "order": "Giants" - }, - { - "id": 4215, - "order": "Protection" - }, - { - "id": 4216, - "order": "Power" - }, - { - "id": 4217, - "order": "the Twins" - }, - { - "id": 4218, - "order": "Skill" - }, - { - "id": 4219, - "order": "Protection" - }, - { - "id": 4220, - "order": "Reflection" - }, - { - "id": 4221, - "order": "the Twins" - }, - { - "id": 4222, - "order": "Enlightenment" - }, - { - "id": 4223, - "order": "Fury" - }, - { - "id": 4224, - "order": "Power" - }, - { - "id": 4225, - "order": "Perfection" - }, - { - "id": 4226, - "order": "Fury" - }, - { - "id": 4227, - "order": "Enlightenment" - }, - { - "id": 4228, - "order": "Skill" - }, - { - "id": 4229, - "order": "Enlightenment" - }, - { - "id": 4230, - "order": "Enlightenment" - }, - { - "id": 4231, - "order": "Titans" - }, - { - "id": 4232, - "order": "Perfection" - }, - { - "id": 4233, - "order": "Brilliance" - }, - { - "id": 4234, - "order": "Enlightenment" - }, - { - "id": 4235, - "order": "Titans" - }, - { - "id": 4236, - "order": "Titans" - }, - { - "id": 4237, - "order": "the Fox" - }, - { - "id": 4238, - "order": "Enlightenment" - }, - { - "id": 4239, - "order": "Brilliance" - }, - { - "id": 4240, - "order": "Enlightenment" - }, - { - "id": 4241, - "order": "Perfection" - }, - { - "id": 4242, - "order": "Brilliance" - }, - { - "id": 4243, - "order": "the Twins" - }, - { - "id": 4244, - "order": "Detection" - }, - { - "id": 4245, - "order": "Anger" - }, - { - "id": 4246, - "order": "Brilliance" - }, - { - "id": 4247, - "order": "Skill" - }, - { - "id": 4248, - "order": "Fury" - }, - { - "id": 4249, - "order": "Enlightenment" - }, - { - "id": 4250, - "order": "Skill" - }, - { - "id": 4251, - "order": "Vitriol" - }, - { - "id": 4252, - "order": "Giants" - }, - { - "id": 4253, - "order": "the Fox" - }, - { - "id": 4254, - "order": "Skill" - }, - { - "id": 4255, - "order": "the Twins" - }, - { - "id": 4256, - "order": "Detection" - }, - { - "id": 4257, - "order": "Detection" - }, - { - "id": 4258, - "order": "Reflection" - }, - { - "id": 4259, - "order": "Protection" - }, - { - "id": 4260, - "order": "the Twins" - }, - { - "id": 4261, - "order": "Giants" - }, - { - "id": 4262, - "order": "Reflection" - }, - { - "id": 4263, - "order": "Power" - }, - { - "id": 4264, - "order": "Detection" - }, - { - "id": 4265, - "order": "Brilliance" - }, - { - "id": 4266, - "order": "Perfection" - }, - { - "id": 4267, - "order": "Vitriol" - }, - { - "id": 4268, - "order": "Brilliance" - }, - { - "id": 4269, - "order": "Brilliance" - }, - { - "id": 4270, - "order": "Power" - }, - { - "id": 4271, - "order": "Vitriol" - }, - { - "id": 4272, - "order": "Giants" - }, - { - "id": 4273, - "order": "Titans" - }, - { - "id": 4274, - "order": "Titans" - }, - { - "id": 4275, - "order": "Titans" - }, - { - "id": 4276, - "order": "Rage" - }, - { - "id": 4277, - "order": "Protection" - }, - { - "id": 4278, - "order": "Rage" - }, - { - "id": 4279, - "order": "Reflection" - }, - { - "id": 4280, - "order": "Rage" - }, - { - "id": 4281, - "order": "Anger" - }, - { - "id": 4282, - "order": "Titans" - }, - { - "id": 4283, - "order": "Vitriol" - }, - { - "id": 4284, - "order": "Detection" - }, - { - "id": 4285, - "order": "Giants" - }, - { - "id": 4286, - "order": "Brilliance" - }, - { - "id": 4287, - "order": "Fury" - }, - { - "id": 4288, - "order": "the Twins" - }, - { - "id": 4289, - "order": "Perfection" - }, - { - "id": 4290, - "order": "Detection" - }, - { - "id": 4291, - "order": "Detection" - }, - { - "id": 4292, - "order": "Perfection" - }, - { - "id": 4293, - "order": "Perfection" - }, - { - "id": 4294, - "order": "Anger" - }, - { - "id": 4295, - "order": "Reflection" - }, - { - "id": 4296, - "order": "Skill" - }, - { - "id": 4297, - "order": "Detection" - }, - { - "id": 4298, - "order": "Skill" - }, - { - "id": 4299, - "order": "the Twins" - }, - { - "id": 4300, - "order": "Reflection" - }, - { - "id": 4301, - "order": "Anger" - }, - { - "id": 4302, - "order": "Anger" - }, - { - "id": 4303, - "order": "Reflection" - }, - { - "id": 4304, - "order": "Reflection" - }, - { - "id": 4305, - "order": "the Twins" - }, - { - "id": 4306, - "order": "Perfection" - }, - { - "id": 4307, - "order": "Power" - }, - { - "id": 4308, - "order": "Perfection" - }, - { - "id": 4309, - "order": "Protection" - }, - { - "id": 4310, - "order": "Protection" - }, - { - "id": 4311, - "order": "Perfection" - }, - { - "id": 4312, - "order": "Brilliance" - }, - { - "id": 4313, - "order": "Brilliance" - }, - { - "id": 4314, - "order": "Reflection" - }, - { - "id": 4315, - "order": "Rage" - }, - { - "id": 4316, - "order": "Enlightenment" - }, - { - "id": 4317, - "order": "Anger" - }, - { - "id": 4318, - "order": "the Fox" - }, - { - "id": 4319, - "order": "Rage" - }, - { - "id": 4320, - "order": "the Fox" - }, - { - "id": 4321, - "order": "Anger" - }, - { - "id": 4322, - "order": "Enlightenment" - }, - { - "id": 4323, - "order": "Brilliance" - }, - { - "id": 4324, - "order": "Giants" - }, - { - "id": 4325, - "order": "the Twins" - }, - { - "id": 4326, - "order": "Enlightenment" - }, - { - "id": 4327, - "order": "Skill" - }, - { - "id": 4328, - "order": "Perfection" - }, - { - "id": 4329, - "order": "Rage" - }, - { - "id": 4330, - "order": "Fury" - }, - { - "id": 4331, - "order": "Perfection" - }, - { - "id": 4332, - "order": "Titans" - }, - { - "id": 4333, - "order": "Enlightenment" - }, - { - "id": 4334, - "order": "Anger" - }, - { - "id": 4335, - "order": "Power" - }, - { - "id": 4336, - "order": "Fury" - }, - { - "id": 4337, - "order": "Anger" - }, - { - "id": 4338, - "order": "Detection" - }, - { - "id": 4339, - "order": "Detection" - }, - { - "id": 4340, - "order": "Vitriol" - }, - { - "id": 4341, - "order": "Perfection" - }, - { - "id": 4342, - "order": "Anger" - }, - { - "id": 4343, - "order": "Detection" - }, - { - "id": 4344, - "order": "Detection" - }, - { - "id": 4345, - "order": "Enlightenment" - }, - { - "id": 4346, - "order": "the Fox" - }, - { - "id": 4347, - "order": "Giants" - }, - { - "id": 4348, - "order": "Skill" - }, - { - "id": 4349, - "order": "the Fox" - }, - { - "id": 4350, - "order": "Vitriol" - }, - { - "id": 4351, - "order": "the Fox" - }, - { - "id": 4352, - "order": "Reflection" - }, - { - "id": 4353, - "order": "Titans" - }, - { - "id": 4354, - "order": "Power" - }, - { - "id": 4355, - "order": "the Twins" - }, - { - "id": 4356, - "order": "the Twins" - }, - { - "id": 4357, - "order": "the Twins" - }, - { - "id": 4358, - "order": "Rage" - }, - { - "id": 4359, - "order": "Anger" - }, - { - "id": 4360, - "order": "Enlightenment" - }, - { - "id": 4361, - "order": "Protection" - }, - { - "id": 4362, - "order": "Protection" - }, - { - "id": 4363, - "order": "Power" - }, - { - "id": 4364, - "order": "Rage" - }, - { - "id": 4365, - "order": "the Fox" - }, - { - "id": 4366, - "order": "the Twins" - }, - { - "id": 4367, - "order": "Perfection" - }, - { - "id": 4368, - "order": "the Fox" - }, - { - "id": 4369, - "order": "Enlightenment" - }, - { - "id": 4370, - "order": "Protection" - }, - { - "id": 4371, - "order": "the Fox" - }, - { - "id": 4372, - "order": "Reflection" - }, - { - "id": 4373, - "order": "Skill" - }, - { - "id": 4374, - "order": "Detection" - }, - { - "id": 4375, - "order": "Giants" - }, - { - "id": 4376, - "order": "Detection" - }, - { - "id": 4377, - "order": "Titans" - }, - { - "id": 4378, - "order": "Perfection" - }, - { - "id": 4379, - "order": "the Twins" - }, - { - "id": 4380, - "order": "Detection" - }, - { - "id": 4381, - "order": "Power" - }, - { - "id": 4382, - "order": "Rage" - }, - { - "id": 4383, - "order": "Titans" - }, - { - "id": 4384, - "order": "Power" - }, - { - "id": 4385, - "order": "Anger" - }, - { - "id": 4386, - "order": "Giants" - }, - { - "id": 4387, - "order": "Reflection" - }, - { - "id": 4388, - "order": "Giants" - }, - { - "id": 4389, - "order": "the Fox" - }, - { - "id": 4390, - "order": "Rage" - }, - { - "id": 4391, - "order": "Protection" - }, - { - "id": 4392, - "order": "Protection" - }, - { - "id": 4393, - "order": "Titans" - }, - { - "id": 4394, - "order": "Perfection" - }, - { - "id": 4395, - "order": "Anger" - }, - { - "id": 4396, - "order": "Power" - }, - { - "id": 4397, - "order": "the Twins" - }, - { - "id": 4398, - "order": "Giants" - }, - { - "id": 4399, - "order": "Power" - }, - { - "id": 4400, - "order": "Rage" - }, - { - "id": 4401, - "order": "Giants" - }, - { - "id": 4402, - "order": "Reflection" - }, - { - "id": 4403, - "order": "Protection" - }, - { - "id": 4404, - "order": "Perfection" - }, - { - "id": 4405, - "order": "the Fox" - }, - { - "id": 4406, - "order": "Fury" - }, - { - "id": 4407, - "order": "Perfection" - }, - { - "id": 4408, - "order": "the Twins" - }, - { - "id": 4409, - "order": "Brilliance" - }, - { - "id": 4410, - "order": "Perfection" - }, - { - "id": 4411, - "order": "the Fox" - }, - { - "id": 4412, - "order": "Anger" - }, - { - "id": 4413, - "order": "Titans" - }, - { - "id": 4414, - "order": "Protection" - }, - { - "id": 4415, - "order": "Anger" - }, - { - "id": 4416, - "order": "Rage" - }, - { - "id": 4417, - "order": "Titans" - }, - { - "id": 4418, - "order": "Protection" - }, - { - "id": 4419, - "order": "the Fox" - }, - { - "id": 4420, - "order": "Protection" - }, - { - "id": 4421, - "order": "Reflection" - }, - { - "id": 4422, - "order": "Protection" - }, - { - "id": 4423, - "order": "Giants" - }, - { - "id": 4424, - "order": "the Twins" - }, - { - "id": 4425, - "order": "Titans" - }, - { - "id": 4426, - "order": "Giants" - }, - { - "id": 4427, - "order": "Anger" - }, - { - "id": 4428, - "order": "the Twins" - }, - { - "id": 4429, - "order": "Rage" - }, - { - "id": 4430, - "order": "Power" - }, - { - "id": 4431, - "order": "Brilliance" - }, - { - "id": 4432, - "order": "Power" - }, - { - "id": 4433, - "order": "Anger" - }, - { - "id": 4434, - "order": "Power" - }, - { - "id": 4435, - "order": "Brilliance" - }, - { - "id": 4436, - "order": "Detection" - }, - { - "id": 4437, - "order": "Protection" - }, - { - "id": 4438, - "order": "the Fox" - }, - { - "id": 4439, - "order": "Protection" - }, - { - "id": 4440, - "order": "Reflection" - }, - { - "id": 4441, - "order": "Titans" - }, - { - "id": 4442, - "order": "Fury" - }, - { - "id": 4443, - "order": "Fury" - }, - { - "id": 4444, - "order": "Anger" - }, - { - "id": 4445, - "order": "the Twins" - }, - { - "id": 4446, - "order": "Titans" - }, - { - "id": 4447, - "order": "Reflection" - }, - { - "id": 4448, - "order": "Protection" - }, - { - "id": 4449, - "order": "Anger" - }, - { - "id": 4450, - "order": "Perfection" - }, - { - "id": 4451, - "order": "Perfection" - }, - { - "id": 4452, - "order": "Detection" - }, - { - "id": 4453, - "order": "the Twins" - }, - { - "id": 4454, - "order": "Giants" - }, - { - "id": 4455, - "order": "the Twins" - }, - { - "id": 4456, - "order": "Enlightenment" - }, - { - "id": 4457, - "order": "Brilliance" - }, - { - "id": 4458, - "order": "Rage" - }, - { - "id": 4459, - "order": "Detection" - }, - { - "id": 4460, - "order": "the Fox" - }, - { - "id": 4461, - "order": "Power" - }, - { - "id": 4462, - "order": "Titans" - }, - { - "id": 4463, - "order": "Giants" - }, - { - "id": 4464, - "order": "Skill" - }, - { - "id": 4465, - "order": "Brilliance" - }, - { - "id": 4466, - "order": "Power" - }, - { - "id": 4467, - "order": "Anger" - }, - { - "id": 4468, - "order": "Detection" - }, - { - "id": 4469, - "order": "the Fox" - }, - { - "id": 4470, - "order": "Protection" - }, - { - "id": 4471, - "order": "Enlightenment" - }, - { - "id": 4472, - "order": "Titans" - }, - { - "id": 4473, - "order": "Perfection" - }, - { - "id": 4474, - "order": "Fury" - }, - { - "id": 4475, - "order": "Anger" - }, - { - "id": 4476, - "order": "the Fox" - }, - { - "id": 4477, - "order": "Fury" - }, - { - "id": 4478, - "order": "Detection" - }, - { - "id": 4479, - "order": "the Twins" - }, - { - "id": 4480, - "order": "Protection" - }, - { - "id": 4481, - "order": "Anger" - }, - { - "id": 4482, - "order": "Perfection" - }, - { - "id": 4483, - "order": "Perfection" - }, - { - "id": 4484, - "order": "Protection" - }, - { - "id": 4485, - "order": "Skill" - }, - { - "id": 4486, - "order": "the Fox" - }, - { - "id": 4487, - "order": "Enlightenment" - }, - { - "id": 4488, - "order": "Detection" - }, - { - "id": 4489, - "order": "Reflection" - }, - { - "id": 4490, - "order": "Detection" - }, - { - "id": 4491, - "order": "Skill" - }, - { - "id": 4492, - "order": "Giants" - }, - { - "id": 4493, - "order": "Titans" - }, - { - "id": 4494, - "order": "Fury" - }, - { - "id": 4495, - "order": "Fury" - }, - { - "id": 4496, - "order": "Enlightenment" - }, - { - "id": 4497, - "order": "Giants" - }, - { - "id": 4498, - "order": "Power" - }, - { - "id": 4499, - "order": "Fury" - }, - { - "id": 4500, - "order": "Rage" - }, - { - "id": 4501, - "order": "Protection" - }, - { - "id": 4502, - "order": "the Twins" - }, - { - "id": 4503, - "order": "Skill" - }, - { - "id": 4504, - "order": "Brilliance" - }, - { - "id": 4505, - "order": "the Twins" - }, - { - "id": 4506, - "order": "Power" - }, - { - "id": 4507, - "order": "Vitriol" - }, - { - "id": 4508, - "order": "Brilliance" - }, - { - "id": 4509, - "order": "Skill" - }, - { - "id": 4510, - "order": "the Twins" - }, - { - "id": 4511, - "order": "the Fox" - }, - { - "id": 4512, - "order": "Protection" - }, - { - "id": 4513, - "order": "Fury" - }, - { - "id": 4514, - "order": "the Twins" - }, - { - "id": 4515, - "order": "Anger" - }, - { - "id": 4516, - "order": "Perfection" - }, - { - "id": 4517, - "order": "Anger" - }, - { - "id": 4518, - "order": "Brilliance" - }, - { - "id": 4519, - "order": "Skill" - }, - { - "id": 4520, - "order": "Skill" - }, - { - "id": 4521, - "order": "Fury" - }, - { - "id": 4522, - "order": "Skill" - }, - { - "id": 4523, - "order": "Vitriol" - }, - { - "id": 4524, - "order": "Rage" - }, - { - "id": 4525, - "order": "Giants" - }, - { - "id": 4526, - "order": "Enlightenment" - }, - { - "id": 4527, - "order": "Giants" - }, - { - "id": 4528, - "order": "Giants" - }, - { - "id": 4529, - "order": "Enlightenment" - }, - { - "id": 4530, - "order": "Detection" - }, - { - "id": 4531, - "order": "the Fox" - }, - { - "id": 4532, - "order": "Protection" - }, - { - "id": 4533, - "order": "Fury" - }, - { - "id": 4534, - "order": "Detection" - }, - { - "id": 4535, - "order": "Anger" - }, - { - "id": 4536, - "order": "Enlightenment" - }, - { - "id": 4537, - "order": "Anger" - }, - { - "id": 4538, - "order": "the Fox" - }, - { - "id": 4539, - "order": "Vitriol" - }, - { - "id": 4540, - "order": "Giants" - }, - { - "id": 4541, - "order": "the Twins" - }, - { - "id": 4542, - "order": "Perfection" - }, - { - "id": 4543, - "order": "Anger" - }, - { - "id": 4544, - "order": "Giants" - }, - { - "id": 4545, - "order": "Power" - }, - { - "id": 4546, - "order": "the Fox" - }, - { - "id": 4547, - "order": "Fury" - }, - { - "id": 4548, - "order": "Giants" - }, - { - "id": 4549, - "order": "the Fox" - }, - { - "id": 4550, - "order": "Power" - }, - { - "id": 4551, - "order": "Titans" - }, - { - "id": 4552, - "order": "Fury" - }, - { - "id": 4553, - "order": "Skill" - }, - { - "id": 4554, - "order": "Giants" - }, - { - "id": 4555, - "order": "Enlightenment" - }, - { - "id": 4556, - "order": "Enlightenment" - }, - { - "id": 4557, - "order": "Fury" - }, - { - "id": 4558, - "order": "Anger" - }, - { - "id": 4559, - "order": "the Twins" - }, - { - "id": 4560, - "order": "the Fox" - }, - { - "id": 4561, - "order": "Brilliance" - }, - { - "id": 4562, - "order": "the Fox" - }, - { - "id": 4563, - "order": "Power" - }, - { - "id": 4564, - "order": "Perfection" - }, - { - "id": 4565, - "order": "Titans" - }, - { - "id": 4566, - "order": "Reflection" - }, - { - "id": 4567, - "order": "Giants" - }, - { - "id": 4568, - "order": "Titans" - }, - { - "id": 4569, - "order": "Giants" - }, - { - "id": 4570, - "order": "Reflection" - }, - { - "id": 4571, - "order": "Giants" - }, - { - "id": 4572, - "order": "the Twins" - }, - { - "id": 4573, - "order": "Perfection" - }, - { - "id": 4574, - "order": "Perfection" - }, - { - "id": 4575, - "order": "Perfection" - }, - { - "id": 4576, - "order": "Giants" - }, - { - "id": 4577, - "order": "Perfection" - }, - { - "id": 4578, - "order": "Anger" - }, - { - "id": 4579, - "order": "Vitriol" - }, - { - "id": 4580, - "order": "Detection" - }, - { - "id": 4581, - "order": "the Fox" - }, - { - "id": 4582, - "order": "the Twins" - }, - { - "id": 4583, - "order": "Fury" - }, - { - "id": 4584, - "order": "Anger" - }, - { - "id": 4585, - "order": "the Twins" - }, - { - "id": 4586, - "order": "the Fox" - }, - { - "id": 4587, - "order": "Giants" - }, - { - "id": 4588, - "order": "the Fox" - }, - { - "id": 4589, - "order": "Vitriol" - }, - { - "id": 4590, - "order": "Rage" - }, - { - "id": 4591, - "order": "Titans" - }, - { - "id": 4592, - "order": "Reflection" - }, - { - "id": 4593, - "order": "Giants" - }, - { - "id": 4594, - "order": "Rage" - }, - { - "id": 4595, - "order": "the Twins" - }, - { - "id": 4596, - "order": "Power" - }, - { - "id": 4597, - "order": "Fury" - }, - { - "id": 4598, - "order": "Vitriol" - }, - { - "id": 4599, - "order": "Fury" - }, - { - "id": 4600, - "order": "Titans" - }, - { - "id": 4601, - "order": "Titans" - }, - { - "id": 4602, - "order": "Vitriol" - }, - { - "id": 4603, - "order": "Brilliance" - }, - { - "id": 4604, - "order": "Brilliance" - }, - { - "id": 4605, - "order": "Fury" - }, - { - "id": 4606, - "order": "Giants" - }, - { - "id": 4607, - "order": "Protection" - }, - { - "id": 4608, - "order": "Anger" - }, - { - "id": 4609, - "order": "Skill" - }, - { - "id": 4610, - "order": "Enlightenment" - }, - { - "id": 4611, - "order": "Power" - }, - { - "id": 4612, - "order": "Power" - }, - { - "id": 4613, - "order": "Rage" - }, - { - "id": 4614, - "order": "Giants" - }, - { - "id": 4615, - "order": "Protection" - }, - { - "id": 4616, - "order": "Fury" - }, - { - "id": 4617, - "order": "Rage" - }, - { - "id": 4618, - "order": "Skill" - }, - { - "id": 4619, - "order": "Vitriol" - }, - { - "id": 4620, - "order": "the Twins" - }, - { - "id": 4621, - "order": "Giants" - }, - { - "id": 4622, - "order": "Anger" - }, - { - "id": 4623, - "order": "Skill" - }, - { - "id": 4624, - "order": "Brilliance" - }, - { - "id": 4625, - "order": "Rage" - }, - { - "id": 4626, - "order": "Fury" - }, - { - "id": 4627, - "order": "Titans" - }, - { - "id": 4628, - "order": "Protection" - }, - { - "id": 4629, - "order": "Enlightenment" - }, - { - "id": 4630, - "order": "Power" - }, - { - "id": 4631, - "order": "Vitriol" - }, - { - "id": 4632, - "order": "Titans" - }, - { - "id": 4633, - "order": "Titans" - }, - { - "id": 4634, - "order": "Enlightenment" - }, - { - "id": 4635, - "order": "Enlightenment" - }, - { - "id": 4636, - "order": "Brilliance" - }, - { - "id": 4637, - "order": "Fury" - }, - { - "id": 4638, - "order": "the Fox" - }, - { - "id": 4639, - "order": "Giants" - }, - { - "id": 4640, - "order": "Brilliance" - }, - { - "id": 4641, - "order": "the Fox" - }, - { - "id": 4642, - "order": "the Fox" - }, - { - "id": 4643, - "order": "the Twins" - }, - { - "id": 4644, - "order": "Power" - }, - { - "id": 4645, - "order": "Brilliance" - }, - { - "id": 4646, - "order": "Vitriol" - }, - { - "id": 4647, - "order": "Power" - }, - { - "id": 4648, - "order": "Vitriol" - }, - { - "id": 4649, - "order": "Detection" - }, - { - "id": 4650, - "order": "Perfection" - }, - { - "id": 4651, - "order": "the Fox" - }, - { - "id": 4652, - "order": "Brilliance" - }, - { - "id": 4653, - "order": "Protection" - }, - { - "id": 4654, - "order": "Anger" - }, - { - "id": 4655, - "order": "the Twins" - }, - { - "id": 4656, - "order": "the Fox" - }, - { - "id": 4657, - "order": "Rage" - }, - { - "id": 4658, - "order": "Rage" - }, - { - "id": 4659, - "order": "Skill" - }, - { - "id": 4660, - "order": "Giants" - }, - { - "id": 4661, - "order": "Vitriol" - }, - { - "id": 4662, - "order": "Giants" - }, - { - "id": 4663, - "order": "Rage" - }, - { - "id": 4664, - "order": "Rage" - }, - { - "id": 4665, - "order": "the Twins" - }, - { - "id": 4666, - "order": "Reflection" - }, - { - "id": 4667, - "order": "Rage" - }, - { - "id": 4668, - "order": "Power" - }, - { - "id": 4669, - "order": "Fury" - }, - { - "id": 4670, - "order": "Detection" - }, - { - "id": 4671, - "order": "Anger" - }, - { - "id": 4672, - "order": "Protection" - }, - { - "id": 4673, - "order": "the Twins" - }, - { - "id": 4674, - "order": "Skill" - }, - { - "id": 4675, - "order": "Rage" - }, - { - "id": 4676, - "order": "Detection" - }, - { - "id": 4677, - "order": "the Fox" - }, - { - "id": 4678, - "order": "Reflection" - }, - { - "id": 4679, - "order": "Protection" - }, - { - "id": 4680, - "order": "Detection" - }, - { - "id": 4681, - "order": "Anger" - }, - { - "id": 4682, - "order": "Fury" - }, - { - "id": 4683, - "order": "Brilliance" - }, - { - "id": 4684, - "order": "Anger" - }, - { - "id": 4685, - "order": "Protection" - }, - { - "id": 4686, - "order": "Protection" - }, - { - "id": 4687, - "order": "Titans" - }, - { - "id": 4688, - "order": "Skill" - }, - { - "id": 4689, - "order": "Vitriol" - }, - { - "id": 4690, - "order": "Fury" - }, - { - "id": 4691, - "order": "Fury" - }, - { - "id": 4692, - "order": "the Fox" - }, - { - "id": 4693, - "order": "Enlightenment" - }, - { - "id": 4694, - "order": "Rage" - }, - { - "id": 4695, - "order": "Anger" - }, - { - "id": 4696, - "order": "Fury" - }, - { - "id": 4697, - "order": "Detection" - }, - { - "id": 4698, - "order": "Brilliance" - }, - { - "id": 4699, - "order": "Power" - }, - { - "id": 4700, - "order": "Giants" - }, - { - "id": 4701, - "order": "Enlightenment" - }, - { - "id": 4702, - "order": "the Twins" - }, - { - "id": 4703, - "order": "Vitriol" - }, - { - "id": 4704, - "order": "Reflection" - }, - { - "id": 4705, - "order": "the Fox" - }, - { - "id": 4706, - "order": "Protection" - }, - { - "id": 4707, - "order": "Perfection" - }, - { - "id": 4708, - "order": "Detection" - }, - { - "id": 4709, - "order": "Rage" - }, - { - "id": 4710, - "order": "Reflection" - }, - { - "id": 4711, - "order": "the Fox" - }, - { - "id": 4712, - "order": "Rage" - }, - { - "id": 4713, - "order": "Brilliance" - }, - { - "id": 4714, - "order": "Giants" - }, - { - "id": 4715, - "order": "Protection" - }, - { - "id": 4716, - "order": "Giants" - }, - { - "id": 4717, - "order": "Protection" - }, - { - "id": 4718, - "order": "Protection" - }, - { - "id": 4719, - "order": "Power" - }, - { - "id": 4720, - "order": "Power" - }, - { - "id": 4721, - "order": "Vitriol" - }, - { - "id": 4722, - "order": "Anger" - }, - { - "id": 4723, - "order": "Detection" - }, - { - "id": 4724, - "order": "Power" - }, - { - "id": 4725, - "order": "Vitriol" - }, - { - "id": 4726, - "order": "Reflection" - }, - { - "id": 4727, - "order": "Giants" - }, - { - "id": 4728, - "order": "Protection" - }, - { - "id": 4729, - "order": "Titans" - }, - { - "id": 4730, - "order": "the Twins" - }, - { - "id": 4731, - "order": "Rage" - }, - { - "id": 4732, - "order": "Power" - }, - { - "id": 4733, - "order": "the Twins" - }, - { - "id": 4734, - "order": "Giants" - }, - { - "id": 4735, - "order": "Reflection" - }, - { - "id": 4736, - "order": "the Fox" - }, - { - "id": 4737, - "order": "the Twins" - }, - { - "id": 4738, - "order": "Anger" - }, - { - "id": 4739, - "order": "Vitriol" - }, - { - "id": 4740, - "order": "Detection" - }, - { - "id": 4741, - "order": "Brilliance" - }, - { - "id": 4742, - "order": "Detection" - }, - { - "id": 4743, - "order": "Brilliance" - }, - { - "id": 4744, - "order": "Power" - }, - { - "id": 4745, - "order": "Protection" - }, - { - "id": 4746, - "order": "Vitriol" - }, - { - "id": 4747, - "order": "Reflection" - }, - { - "id": 4748, - "order": "Brilliance" - }, - { - "id": 4749, - "order": "Rage" - }, - { - "id": 4750, - "order": "Power" - }, - { - "id": 4751, - "order": "Power" - }, - { - "id": 4752, - "order": "Detection" - }, - { - "id": 4753, - "order": "Enlightenment" - }, - { - "id": 4754, - "order": "Titans" - }, - { - "id": 4755, - "order": "Reflection" - }, - { - "id": 4756, - "order": "Enlightenment" - }, - { - "id": 4757, - "order": "Power" - }, - { - "id": 4758, - "order": "Skill" - }, - { - "id": 4759, - "order": "Anger" - }, - { - "id": 4760, - "order": "Detection" - }, - { - "id": 4761, - "order": "Skill" - }, - { - "id": 4762, - "order": "Vitriol" - }, - { - "id": 4763, - "order": "Reflection" - }, - { - "id": 4764, - "order": "Enlightenment" - }, - { - "id": 4765, - "order": "Brilliance" - }, - { - "id": 4766, - "order": "Rage" - }, - { - "id": 4767, - "order": "Brilliance" - }, - { - "id": 4768, - "order": "Enlightenment" - }, - { - "id": 4769, - "order": "Rage" - }, - { - "id": 4770, - "order": "Skill" - }, - { - "id": 4771, - "order": "Vitriol" - }, - { - "id": 4772, - "order": "Enlightenment" - }, - { - "id": 4773, - "order": "Reflection" - }, - { - "id": 4774, - "order": "Titans" - }, - { - "id": 4775, - "order": "Vitriol" - }, - { - "id": 4776, - "order": "Titans" - }, - { - "id": 4777, - "order": "Enlightenment" - }, - { - "id": 4778, - "order": "Rage" - }, - { - "id": 4779, - "order": "Skill" - }, - { - "id": 4780, - "order": "Vitriol" - }, - { - "id": 4781, - "order": "the Twins" - }, - { - "id": 4782, - "order": "Protection" - }, - { - "id": 4783, - "order": "Protection" - }, - { - "id": 4784, - "order": "Giants" - }, - { - "id": 4785, - "order": "the Fox" - }, - { - "id": 4786, - "order": "Brilliance" - }, - { - "id": 4787, - "order": "Rage" - }, - { - "id": 4788, - "order": "Detection" - }, - { - "id": 4789, - "order": "Detection" - }, - { - "id": 4790, - "order": "Power" - }, - { - "id": 4791, - "order": "Enlightenment" - }, - { - "id": 4792, - "order": "Reflection" - }, - { - "id": 4793, - "order": "Detection" - }, - { - "id": 4794, - "order": "the Twins" - }, - { - "id": 4795, - "order": "Titans" - }, - { - "id": 4796, - "order": "Perfection" - }, - { - "id": 4797, - "order": "Detection" - }, - { - "id": 4798, - "order": "Vitriol" - }, - { - "id": 4799, - "order": "Protection" - }, - { - "id": 4800, - "order": "the Twins" - }, - { - "id": 4801, - "order": "Rage" - }, - { - "id": 4802, - "order": "Titans" - }, - { - "id": 4803, - "order": "Rage" - }, - { - "id": 4804, - "order": "Brilliance" - }, - { - "id": 4805, - "order": "Rage" - }, - { - "id": 4806, - "order": "Brilliance" - }, - { - "id": 4807, - "order": "Detection" - }, - { - "id": 4808, - "order": "the Fox" - }, - { - "id": 4809, - "order": "Anger" - }, - { - "id": 4810, - "order": "Titans" - }, - { - "id": 4811, - "order": "the Fox" - }, - { - "id": 4812, - "order": "Enlightenment" - }, - { - "id": 4813, - "order": "Titans" - }, - { - "id": 4814, - "order": "the Twins" - }, - { - "id": 4815, - "order": "the Fox" - }, - { - "id": 4816, - "order": "Giants" - }, - { - "id": 4817, - "order": "Protection" - }, - { - "id": 4818, - "order": "Fury" - }, - { - "id": 4819, - "order": "Detection" - }, - { - "id": 4820, - "order": "Power" - }, - { - "id": 4821, - "order": "Vitriol" - }, - { - "id": 4822, - "order": "Power" - }, - { - "id": 4823, - "order": "Skill" - }, - { - "id": 4824, - "order": "Brilliance" - }, - { - "id": 4825, - "order": "Brilliance" - }, - { - "id": 4826, - "order": "Skill" - }, - { - "id": 4827, - "order": "Reflection" - }, - { - "id": 4828, - "order": "Reflection" - }, - { - "id": 4829, - "order": "Detection" - }, - { - "id": 4830, - "order": "Fury" - }, - { - "id": 4831, - "order": "Protection" - }, - { - "id": 4832, - "order": "Anger" - }, - { - "id": 4833, - "order": "Vitriol" - }, - { - "id": 4834, - "order": "Giants" - }, - { - "id": 4835, - "order": "the Fox" - }, - { - "id": 4836, - "order": "Enlightenment" - }, - { - "id": 4837, - "order": "Detection" - }, - { - "id": 4838, - "order": "Fury" - }, - { - "id": 4839, - "order": "Rage" - }, - { - "id": 4840, - "order": "Fury" - }, - { - "id": 4841, - "order": "the Twins" - }, - { - "id": 4842, - "order": "Power" - }, - { - "id": 4843, - "order": "Fury" - }, - { - "id": 4844, - "order": "Fury" - }, - { - "id": 4845, - "order": "Brilliance" - }, - { - "id": 4846, - "order": "Rage" - }, - { - "id": 4847, - "order": "Fury" - }, - { - "id": 4848, - "order": "Titans" - }, - { - "id": 4849, - "order": "Enlightenment" - }, - { - "id": 4850, - "order": "the Fox" - }, - { - "id": 4851, - "order": "Protection" - }, - { - "id": 4852, - "order": "Power" - }, - { - "id": 4853, - "order": "Detection" - }, - { - "id": 4854, - "order": "Giants" - }, - { - "id": 4855, - "order": "Brilliance" - }, - { - "id": 4856, - "order": "Enlightenment" - }, - { - "id": 4857, - "order": "Brilliance" - }, - { - "id": 4858, - "order": "Giants" - }, - { - "id": 4859, - "order": "Skill" - }, - { - "id": 4860, - "order": "Protection" - }, - { - "id": 4861, - "order": "Titans" - }, - { - "id": 4862, - "order": "Vitriol" - }, - { - "id": 4863, - "order": "Rage" - }, - { - "id": 4864, - "order": "Titans" - }, - { - "id": 4865, - "order": "Anger" - }, - { - "id": 4866, - "order": "Detection" - }, - { - "id": 4867, - "order": "Enlightenment" - }, - { - "id": 4868, - "order": "Skill" - }, - { - "id": 4869, - "order": "Titans" - }, - { - "id": 4870, - "order": "Anger" - }, - { - "id": 4871, - "order": "Vitriol" - }, - { - "id": 4872, - "order": "Giants" - }, - { - "id": 4873, - "order": "Giants" - }, - { - "id": 4874, - "order": "Anger" - }, - { - "id": 4875, - "order": "Titans" - }, - { - "id": 4876, - "order": "Giants" - }, - { - "id": 4877, - "order": "the Twins" - }, - { - "id": 4878, - "order": "the Fox" - }, - { - "id": 4879, - "order": "Titans" - }, - { - "id": 4880, - "order": "Skill" - }, - { - "id": 4881, - "order": "Detection" - }, - { - "id": 4882, - "order": "Fury" - }, - { - "id": 4883, - "order": "Detection" - }, - { - "id": 4884, - "order": "Fury" - }, - { - "id": 4885, - "order": "Vitriol" - }, - { - "id": 4886, - "order": "Fury" - }, - { - "id": 4887, - "order": "the Twins" - }, - { - "id": 4888, - "order": "Anger" - }, - { - "id": 4889, - "order": "Protection" - }, - { - "id": 4890, - "order": "Fury" - }, - { - "id": 4891, - "order": "Anger" - }, - { - "id": 4892, - "order": "the Twins" - }, - { - "id": 4893, - "order": "Perfection" - }, - { - "id": 4894, - "order": "Reflection" - }, - { - "id": 4895, - "order": "Enlightenment" - }, - { - "id": 4896, - "order": "Fury" - }, - { - "id": 4897, - "order": "Detection" - }, - { - "id": 4898, - "order": "the Fox" - }, - { - "id": 4899, - "order": "Protection" - }, - { - "id": 4900, - "order": "Giants" - }, - { - "id": 4901, - "order": "Rage" - }, - { - "id": 4902, - "order": "the Twins" - }, - { - "id": 4903, - "order": "Giants" - }, - { - "id": 4904, - "order": "Power" - }, - { - "id": 4905, - "order": "Perfection" - }, - { - "id": 4906, - "order": "Vitriol" - }, - { - "id": 4907, - "order": "Vitriol" - }, - { - "id": 4908, - "order": "the Twins" - }, - { - "id": 4909, - "order": "Giants" - }, - { - "id": 4910, - "order": "Enlightenment" - }, - { - "id": 4911, - "order": "Brilliance" - }, - { - "id": 4912, - "order": "Power" - }, - { - "id": 4913, - "order": "Protection" - }, - { - "id": 4914, - "order": "Reflection" - }, - { - "id": 4915, - "order": "Reflection" - }, - { - "id": 4916, - "order": "Reflection" - }, - { - "id": 4917, - "order": "Reflection" - }, - { - "id": 4918, - "order": "Vitriol" - }, - { - "id": 4919, - "order": "Enlightenment" - }, - { - "id": 4920, - "order": "Fury" - }, - { - "id": 4921, - "order": "the Twins" - }, - { - "id": 4922, - "order": "the Fox" - }, - { - "id": 4923, - "order": "Vitriol" - }, - { - "id": 4924, - "order": "Perfection" - }, - { - "id": 4925, - "order": "Protection" - }, - { - "id": 4926, - "order": "Rage" - }, - { - "id": 4927, - "order": "Vitriol" - }, - { - "id": 4928, - "order": "Anger" - }, - { - "id": 4929, - "order": "Detection" - }, - { - "id": 4930, - "order": "Protection" - }, - { - "id": 4931, - "order": "Giants" - }, - { - "id": 4932, - "order": "Power" - }, - { - "id": 4933, - "order": "Rage" - }, - { - "id": 4934, - "order": "Skill" - }, - { - "id": 4935, - "order": "Power" - }, - { - "id": 4936, - "order": "Vitriol" - }, - { - "id": 4937, - "order": "Enlightenment" - }, - { - "id": 4938, - "order": "Enlightenment" - }, - { - "id": 4939, - "order": "Giants" - }, - { - "id": 4940, - "order": "Power" - }, - { - "id": 4941, - "order": "Skill" - }, - { - "id": 4942, - "order": "Enlightenment" - }, - { - "id": 4943, - "order": "Perfection" - }, - { - "id": 4944, - "order": "Reflection" - }, - { - "id": 4945, - "order": "Protection" - }, - { - "id": 4946, - "order": "Skill" - }, - { - "id": 4947, - "order": "Protection" - }, - { - "id": 4948, - "order": "Power" - }, - { - "id": 4949, - "order": "Vitriol" - }, - { - "id": 4950, - "order": "Brilliance" - }, - { - "id": 4951, - "order": "Brilliance" - }, - { - "id": 4952, - "order": "the Fox" - }, - { - "id": 4953, - "order": "Vitriol" - }, - { - "id": 4954, - "order": "Skill" - }, - { - "id": 4955, - "order": "Brilliance" - }, - { - "id": 4956, - "order": "the Twins" - }, - { - "id": 4957, - "order": "the Twins" - }, - { - "id": 4958, - "order": "Rage" - }, - { - "id": 4959, - "order": "Fury" - }, - { - "id": 4960, - "order": "Detection" - }, - { - "id": 4961, - "order": "Detection" - }, - { - "id": 4962, - "order": "Anger" - }, - { - "id": 4963, - "order": "the Fox" - }, - { - "id": 4964, - "order": "Vitriol" - }, - { - "id": 4965, - "order": "Brilliance" - }, - { - "id": 4966, - "order": "Fury" - }, - { - "id": 4967, - "order": "the Fox" - }, - { - "id": 4968, - "order": "Protection" - }, - { - "id": 4969, - "order": "Reflection" - }, - { - "id": 4970, - "order": "Vitriol" - }, - { - "id": 4971, - "order": "Anger" - }, - { - "id": 4972, - "order": "Fury" - }, - { - "id": 4973, - "order": "Rage" - }, - { - "id": 4974, - "order": "Enlightenment" - }, - { - "id": 4975, - "order": "Giants" - }, - { - "id": 4976, - "order": "Giants" - }, - { - "id": 4977, - "order": "Anger" - }, - { - "id": 4978, - "order": "the Fox" - }, - { - "id": 4979, - "order": "Titans" - }, - { - "id": 4980, - "order": "Protection" - }, - { - "id": 4981, - "order": "Vitriol" - }, - { - "id": 4982, - "order": "Rage" - }, - { - "id": 4983, - "order": "the Twins" - }, - { - "id": 4984, - "order": "Vitriol" - }, - { - "id": 4985, - "order": "the Fox" - }, - { - "id": 4986, - "order": "Protection" - }, - { - "id": 4987, - "order": "Reflection" - }, - { - "id": 4988, - "order": "Detection" - }, - { - "id": 4989, - "order": "the Fox" - }, - { - "id": 4990, - "order": "Perfection" - }, - { - "id": 4991, - "order": "Rage" - }, - { - "id": 4992, - "order": "Enlightenment" - }, - { - "id": 4993, - "order": "Titans" - }, - { - "id": 4994, - "order": "Giants" - }, - { - "id": 4995, - "order": "Power" - }, - { - "id": 4996, - "order": "the Twins" - }, - { - "id": 4997, - "order": "Perfection" - }, - { - "id": 4998, - "order": "Detection" - }, - { - "id": 4999, - "order": "Skill" - }, - { - "id": 5000, - "order": "Power" - }, - { - "id": 5001, - "order": "Brilliance" - }, - { - "id": 5002, - "order": "Perfection" - }, - { - "id": 5003, - "order": "Giants" - }, - { - "id": 5004, - "order": "Fury" - }, - { - "id": 5005, - "order": "Giants" - }, - { - "id": 5006, - "order": "Power" - }, - { - "id": 5007, - "order": "Giants" - }, - { - "id": 5008, - "order": "Enlightenment" - }, - { - "id": 5009, - "order": "Detection" - }, - { - "id": 5010, - "order": "Titans" - }, - { - "id": 5011, - "order": "the Twins" - }, - { - "id": 5012, - "order": "Protection" - }, - { - "id": 5013, - "order": "Titans" - }, - { - "id": 5014, - "order": "Anger" - }, - { - "id": 5015, - "order": "Reflection" - }, - { - "id": 5016, - "order": "Skill" - }, - { - "id": 5017, - "order": "Perfection" - }, - { - "id": 5018, - "order": "Enlightenment" - }, - { - "id": 5019, - "order": "Detection" - }, - { - "id": 5020, - "order": "Fury" - }, - { - "id": 5021, - "order": "Fury" - }, - { - "id": 5022, - "order": "Reflection" - }, - { - "id": 5023, - "order": "Perfection" - }, - { - "id": 5024, - "order": "the Twins" - }, - { - "id": 5025, - "order": "the Twins" - }, - { - "id": 5026, - "order": "Perfection" - }, - { - "id": 5027, - "order": "Rage" - }, - { - "id": 5028, - "order": "Anger" - }, - { - "id": 5029, - "order": "Reflection" - }, - { - "id": 5030, - "order": "Protection" - }, - { - "id": 5031, - "order": "Vitriol" - }, - { - "id": 5032, - "order": "Protection" - }, - { - "id": 5033, - "order": "Skill" - }, - { - "id": 5034, - "order": "Reflection" - }, - { - "id": 5035, - "order": "Rage" - }, - { - "id": 5036, - "order": "Anger" - }, - { - "id": 5037, - "order": "Detection" - }, - { - "id": 5038, - "order": "the Fox" - }, - { - "id": 5039, - "order": "Fury" - }, - { - "id": 5040, - "order": "Rage" - }, - { - "id": 5041, - "order": "Vitriol" - }, - { - "id": 5042, - "order": "the Fox" - }, - { - "id": 5043, - "order": "Enlightenment" - }, - { - "id": 5044, - "order": "Anger" - }, - { - "id": 5045, - "order": "Rage" - }, - { - "id": 5046, - "order": "Vitriol" - }, - { - "id": 5047, - "order": "Brilliance" - }, - { - "id": 5048, - "order": "Enlightenment" - }, - { - "id": 5049, - "order": "the Twins" - }, - { - "id": 5050, - "order": "Enlightenment" - }, - { - "id": 5051, - "order": "Giants" - }, - { - "id": 5052, - "order": "Perfection" - }, - { - "id": 5053, - "order": "the Twins" - }, - { - "id": 5054, - "order": "Detection" - }, - { - "id": 5055, - "order": "Brilliance" - }, - { - "id": 5056, - "order": "the Fox" - }, - { - "id": 5057, - "order": "Power" - }, - { - "id": 5058, - "order": "Reflection" - }, - { - "id": 5059, - "order": "Skill" - }, - { - "id": 5060, - "order": "Reflection" - }, - { - "id": 5061, - "order": "the Fox" - }, - { - "id": 5062, - "order": "Enlightenment" - }, - { - "id": 5063, - "order": "Enlightenment" - }, - { - "id": 5064, - "order": "Brilliance" - }, - { - "id": 5065, - "order": "Brilliance" - }, - { - "id": 5066, - "order": "Power" - }, - { - "id": 5067, - "order": "Skill" - }, - { - "id": 5068, - "order": "Enlightenment" - }, - { - "id": 5069, - "order": "Titans" - }, - { - "id": 5070, - "order": "Titans" - }, - { - "id": 5071, - "order": "Detection" - }, - { - "id": 5072, - "order": "Power" - }, - { - "id": 5073, - "order": "Rage" - }, - { - "id": 5074, - "order": "Brilliance" - }, - { - "id": 5075, - "order": "Vitriol" - }, - { - "id": 5076, - "order": "Protection" - }, - { - "id": 5077, - "order": "Anger" - }, - { - "id": 5078, - "order": "Perfection" - }, - { - "id": 5079, - "order": "Detection" - }, - { - "id": 5080, - "order": "Protection" - }, - { - "id": 5081, - "order": "Reflection" - }, - { - "id": 5082, - "order": "Titans" - }, - { - "id": 5083, - "order": "Skill" - }, - { - "id": 5084, - "order": "Rage" - }, - { - "id": 5085, - "order": "Detection" - }, - { - "id": 5086, - "order": "Giants" - }, - { - "id": 5087, - "order": "Reflection" - }, - { - "id": 5088, - "order": "the Fox" - }, - { - "id": 5089, - "order": "Skill" - }, - { - "id": 5090, - "order": "Titans" - }, - { - "id": 5091, - "order": "the Fox" - }, - { - "id": 5092, - "order": "Rage" - }, - { - "id": 5093, - "order": "Power" - }, - { - "id": 5094, - "order": "Perfection" - }, - { - "id": 5095, - "order": "Reflection" - }, - { - "id": 5096, - "order": "Reflection" - }, - { - "id": 5097, - "order": "the Twins" - }, - { - "id": 5098, - "order": "Detection" - }, - { - "id": 5099, - "order": "Titans" - }, - { - "id": 5100, - "order": "Skill" - }, - { - "id": 5101, - "order": "Skill" - }, - { - "id": 5102, - "order": "Detection" - }, - { - "id": 5103, - "order": "Fury" - }, - { - "id": 5104, - "order": "Skill" - }, - { - "id": 5105, - "order": "Brilliance" - }, - { - "id": 5106, - "order": "Perfection" - }, - { - "id": 5107, - "order": "Perfection" - }, - { - "id": 5108, - "order": "Protection" - }, - { - "id": 5109, - "order": "Perfection" - }, - { - "id": 5110, - "order": "Power" - }, - { - "id": 5111, - "order": "Power" - }, - { - "id": 5112, - "order": "the Twins" - }, - { - "id": 5113, - "order": "Titans" - }, - { - "id": 5114, - "order": "Vitriol" - }, - { - "id": 5115, - "order": "the Fox" - }, - { - "id": 5116, - "order": "Reflection" - }, - { - "id": 5117, - "order": "Giants" - }, - { - "id": 5118, - "order": "Enlightenment" - }, - { - "id": 5119, - "order": "Giants" - }, - { - "id": 5120, - "order": "Detection" - }, - { - "id": 5121, - "order": "Brilliance" - }, - { - "id": 5122, - "order": "Skill" - }, - { - "id": 5123, - "order": "Skill" - }, - { - "id": 5124, - "order": "Giants" - }, - { - "id": 5125, - "order": "Power" - }, - { - "id": 5126, - "order": "Titans" - }, - { - "id": 5127, - "order": "Titans" - }, - { - "id": 5128, - "order": "the Twins" - }, - { - "id": 5129, - "order": "Detection" - }, - { - "id": 5130, - "order": "Rage" - }, - { - "id": 5131, - "order": "Giants" - }, - { - "id": 5132, - "order": "Giants" - }, - { - "id": 5133, - "order": "Reflection" - }, - { - "id": 5134, - "order": "Enlightenment" - }, - { - "id": 5135, - "order": "Vitriol" - }, - { - "id": 5136, - "order": "the Twins" - }, - { - "id": 5137, - "order": "Reflection" - }, - { - "id": 5138, - "order": "Reflection" - }, - { - "id": 5139, - "order": "Power" - }, - { - "id": 5140, - "order": "Skill" - }, - { - "id": 5141, - "order": "Protection" - }, - { - "id": 5142, - "order": "Power" - }, - { - "id": 5143, - "order": "Reflection" - }, - { - "id": 5144, - "order": "Reflection" - }, - { - "id": 5145, - "order": "Anger" - }, - { - "id": 5146, - "order": "Brilliance" - }, - { - "id": 5147, - "order": "the Fox" - }, - { - "id": 5148, - "order": "Skill" - }, - { - "id": 5149, - "order": "Vitriol" - }, - { - "id": 5150, - "order": "Protection" - }, - { - "id": 5151, - "order": "Enlightenment" - }, - { - "id": 5152, - "order": "Fury" - }, - { - "id": 5153, - "order": "Detection" - }, - { - "id": 5154, - "order": "Reflection" - }, - { - "id": 5155, - "order": "Giants" - }, - { - "id": 5156, - "order": "Detection" - }, - { - "id": 5157, - "order": "the Twins" - }, - { - "id": 5158, - "order": "Fury" - }, - { - "id": 5159, - "order": "Power" - }, - { - "id": 5160, - "order": "Vitriol" - }, - { - "id": 5161, - "order": "Power" - }, - { - "id": 5162, - "order": "Reflection" - }, - { - "id": 5163, - "order": "Protection" - }, - { - "id": 5164, - "order": "Reflection" - }, - { - "id": 5165, - "order": "Titans" - }, - { - "id": 5166, - "order": "Titans" - }, - { - "id": 5167, - "order": "Rage" - }, - { - "id": 5168, - "order": "Anger" - }, - { - "id": 5169, - "order": "Brilliance" - }, - { - "id": 5170, - "order": "Giants" - }, - { - "id": 5171, - "order": "Protection" - }, - { - "id": 5172, - "order": "Power" - }, - { - "id": 5173, - "order": "the Twins" - }, - { - "id": 5174, - "order": "Giants" - }, - { - "id": 5175, - "order": "Detection" - }, - { - "id": 5176, - "order": "Protection" - }, - { - "id": 5177, - "order": "Fury" - }, - { - "id": 5178, - "order": "Skill" - }, - { - "id": 5179, - "order": "Anger" - }, - { - "id": 5180, - "order": "Skill" - }, - { - "id": 5181, - "order": "the Fox" - }, - { - "id": 5182, - "order": "Vitriol" - }, - { - "id": 5183, - "order": "Reflection" - }, - { - "id": 5184, - "order": "Fury" - }, - { - "id": 5185, - "order": "Brilliance" - }, - { - "id": 5186, - "order": "Anger" - }, - { - "id": 5187, - "order": "Giants" - }, - { - "id": 5188, - "order": "Vitriol" - }, - { - "id": 5189, - "order": "Brilliance" - }, - { - "id": 5190, - "order": "Fury" - }, - { - "id": 5191, - "order": "Giants" - }, - { - "id": 5192, - "order": "Anger" - }, - { - "id": 5193, - "order": "Protection" - }, - { - "id": 5194, - "order": "the Fox" - }, - { - "id": 5195, - "order": "Enlightenment" - }, - { - "id": 5196, - "order": "Reflection" - }, - { - "id": 5197, - "order": "Protection" - }, - { - "id": 5198, - "order": "Rage" - }, - { - "id": 5199, - "order": "Fury" - }, - { - "id": 5200, - "order": "Enlightenment" - }, - { - "id": 5201, - "order": "Detection" - }, - { - "id": 5202, - "order": "Vitriol" - }, - { - "id": 5203, - "order": "Giants" - }, - { - "id": 5204, - "order": "Skill" - }, - { - "id": 5205, - "order": "Vitriol" - }, - { - "id": 5206, - "order": "Reflection" - }, - { - "id": 5207, - "order": "Vitriol" - }, - { - "id": 5208, - "order": "Enlightenment" - }, - { - "id": 5209, - "order": "Vitriol" - }, - { - "id": 5210, - "order": "Giants" - }, - { - "id": 5211, - "order": "Brilliance" - }, - { - "id": 5212, - "order": "Titans" - }, - { - "id": 5213, - "order": "Titans" - }, - { - "id": 5214, - "order": "Reflection" - }, - { - "id": 5215, - "order": "Fury" - }, - { - "id": 5216, - "order": "Vitriol" - }, - { - "id": 5217, - "order": "Giants" - }, - { - "id": 5218, - "order": "Rage" - }, - { - "id": 5219, - "order": "Vitriol" - }, - { - "id": 5220, - "order": "Protection" - }, - { - "id": 5221, - "order": "Perfection" - }, - { - "id": 5222, - "order": "Vitriol" - }, - { - "id": 5223, - "order": "Enlightenment" - }, - { - "id": 5224, - "order": "the Twins" - }, - { - "id": 5225, - "order": "Vitriol" - }, - { - "id": 5226, - "order": "Rage" - }, - { - "id": 5227, - "order": "Detection" - }, - { - "id": 5228, - "order": "Brilliance" - }, - { - "id": 5229, - "order": "Vitriol" - }, - { - "id": 5230, - "order": "Power" - }, - { - "id": 5231, - "order": "Power" - }, - { - "id": 5232, - "order": "Rage" - }, - { - "id": 5233, - "order": "Detection" - }, - { - "id": 5234, - "order": "Perfection" - }, - { - "id": 5235, - "order": "Perfection" - }, - { - "id": 5236, - "order": "Titans" - }, - { - "id": 5237, - "order": "the Twins" - }, - { - "id": 5238, - "order": "Reflection" - }, - { - "id": 5239, - "order": "the Fox" - }, - { - "id": 5240, - "order": "Perfection" - }, - { - "id": 5241, - "order": "Vitriol" - }, - { - "id": 5242, - "order": "Titans" - }, - { - "id": 5243, - "order": "Vitriol" - }, - { - "id": 5244, - "order": "Fury" - }, - { - "id": 5245, - "order": "Enlightenment" - }, - { - "id": 5246, - "order": "Titans" - }, - { - "id": 5247, - "order": "Protection" - }, - { - "id": 5248, - "order": "Anger" - }, - { - "id": 5249, - "order": "the Fox" - }, - { - "id": 5250, - "order": "Brilliance" - }, - { - "id": 5251, - "order": "Fury" - }, - { - "id": 5252, - "order": "the Fox" - }, - { - "id": 5253, - "order": "Rage" - }, - { - "id": 5254, - "order": "the Fox" - }, - { - "id": 5255, - "order": "Perfection" - }, - { - "id": 5256, - "order": "Fury" - }, - { - "id": 5257, - "order": "Anger" - }, - { - "id": 5258, - "order": "Vitriol" - }, - { - "id": 5259, - "order": "Titans" - }, - { - "id": 5260, - "order": "Fury" - }, - { - "id": 5261, - "order": "Perfection" - }, - { - "id": 5262, - "order": "Enlightenment" - }, - { - "id": 5263, - "order": "Fury" - }, - { - "id": 5264, - "order": "the Fox" - }, - { - "id": 5265, - "order": "Titans" - }, - { - "id": 5266, - "order": "the Twins" - }, - { - "id": 5267, - "order": "the Twins" - }, - { - "id": 5268, - "order": "Protection" - }, - { - "id": 5269, - "order": "Fury" - }, - { - "id": 5270, - "order": "the Twins" - }, - { - "id": 5271, - "order": "Enlightenment" - }, - { - "id": 5272, - "order": "Protection" - }, - { - "id": 5273, - "order": "Anger" - }, - { - "id": 5274, - "order": "Fury" - }, - { - "id": 5275, - "order": "the Twins" - }, - { - "id": 5276, - "order": "Detection" - }, - { - "id": 5277, - "order": "Rage" - }, - { - "id": 5278, - "order": "Fury" - }, - { - "id": 5279, - "order": "Perfection" - }, - { - "id": 5280, - "order": "Titans" - }, - { - "id": 5281, - "order": "Reflection" - }, - { - "id": 5282, - "order": "Reflection" - }, - { - "id": 5283, - "order": "Brilliance" - }, - { - "id": 5284, - "order": "the Fox" - }, - { - "id": 5285, - "order": "Titans" - }, - { - "id": 5286, - "order": "Giants" - }, - { - "id": 5287, - "order": "Protection" - }, - { - "id": 5288, - "order": "Enlightenment" - }, - { - "id": 5289, - "order": "Skill" - }, - { - "id": 5290, - "order": "Brilliance" - }, - { - "id": 5291, - "order": "Vitriol" - }, - { - "id": 5292, - "order": "Titans" - }, - { - "id": 5293, - "order": "Skill" - }, - { - "id": 5294, - "order": "Titans" - }, - { - "id": 5295, - "order": "the Twins" - }, - { - "id": 5296, - "order": "Vitriol" - }, - { - "id": 5297, - "order": "Enlightenment" - }, - { - "id": 5298, - "order": "the Fox" - }, - { - "id": 5299, - "order": "Detection" - }, - { - "id": 5300, - "order": "Detection" - }, - { - "id": 5301, - "order": "Detection" - }, - { - "id": 5302, - "order": "Vitriol" - }, - { - "id": 5303, - "order": "Reflection" - }, - { - "id": 5304, - "order": "the Fox" - }, - { - "id": 5305, - "order": "Vitriol" - }, - { - "id": 5306, - "order": "the Fox" - }, - { - "id": 5307, - "order": "Reflection" - }, - { - "id": 5308, - "order": "Brilliance" - }, - { - "id": 5309, - "order": "Power" - }, - { - "id": 5310, - "order": "Brilliance" - }, - { - "id": 5311, - "order": "the Twins" - }, - { - "id": 5312, - "order": "Brilliance" - }, - { - "id": 5313, - "order": "Giants" - }, - { - "id": 5314, - "order": "Protection" - }, - { - "id": 5315, - "order": "Protection" - }, - { - "id": 5316, - "order": "Rage" - }, - { - "id": 5317, - "order": "Protection" - }, - { - "id": 5318, - "order": "Enlightenment" - }, - { - "id": 5319, - "order": "the Fox" - }, - { - "id": 5320, - "order": "Rage" - }, - { - "id": 5321, - "order": "Giants" - }, - { - "id": 5322, - "order": "Vitriol" - }, - { - "id": 5323, - "order": "Reflection" - }, - { - "id": 5324, - "order": "Power" - }, - { - "id": 5325, - "order": "Perfection" - }, - { - "id": 5326, - "order": "Power" - }, - { - "id": 5327, - "order": "Rage" - }, - { - "id": 5328, - "order": "the Fox" - }, - { - "id": 5329, - "order": "Fury" - }, - { - "id": 5330, - "order": "Skill" - }, - { - "id": 5331, - "order": "Titans" - }, - { - "id": 5332, - "order": "Perfection" - }, - { - "id": 5333, - "order": "Detection" - }, - { - "id": 5334, - "order": "Skill" - }, - { - "id": 5335, - "order": "Vitriol" - }, - { - "id": 5336, - "order": "Skill" - }, - { - "id": 5337, - "order": "the Fox" - }, - { - "id": 5338, - "order": "Skill" - }, - { - "id": 5339, - "order": "Detection" - }, - { - "id": 5340, - "order": "Rage" - }, - { - "id": 5341, - "order": "the Twins" - }, - { - "id": 5342, - "order": "Protection" - }, - { - "id": 5343, - "order": "Perfection" - }, - { - "id": 5344, - "order": "Giants" - }, - { - "id": 5345, - "order": "Skill" - }, - { - "id": 5346, - "order": "the Fox" - }, - { - "id": 5347, - "order": "Reflection" - }, - { - "id": 5348, - "order": "Perfection" - }, - { - "id": 5349, - "order": "Detection" - }, - { - "id": 5350, - "order": "Anger" - }, - { - "id": 5351, - "order": "Brilliance" - }, - { - "id": 5352, - "order": "Detection" - }, - { - "id": 5353, - "order": "Reflection" - }, - { - "id": 5354, - "order": "Giants" - }, - { - "id": 5355, - "order": "Perfection" - }, - { - "id": 5356, - "order": "Perfection" - }, - { - "id": 5357, - "order": "the Twins" - }, - { - "id": 5358, - "order": "Reflection" - }, - { - "id": 5359, - "order": "Giants" - }, - { - "id": 5360, - "order": "Anger" - }, - { - "id": 5361, - "order": "Giants" - }, - { - "id": 5362, - "order": "Protection" - }, - { - "id": 5363, - "order": "the Fox" - }, - { - "id": 5364, - "order": "the Fox" - }, - { - "id": 5365, - "order": "Skill" - }, - { - "id": 5366, - "order": "Protection" - }, - { - "id": 5367, - "order": "Detection" - }, - { - "id": 5368, - "order": "Rage" - }, - { - "id": 5369, - "order": "Skill" - }, - { - "id": 5370, - "order": "Skill" - }, - { - "id": 5371, - "order": "Anger" - }, - { - "id": 5372, - "order": "Rage" - }, - { - "id": 5373, - "order": "Fury" - }, - { - "id": 5374, - "order": "the Twins" - }, - { - "id": 5375, - "order": "Vitriol" - }, - { - "id": 5376, - "order": "Vitriol" - }, - { - "id": 5377, - "order": "Perfection" - }, - { - "id": 5378, - "order": "Reflection" - }, - { - "id": 5379, - "order": "Enlightenment" - }, - { - "id": 5380, - "order": "Detection" - }, - { - "id": 5381, - "order": "Perfection" - }, - { - "id": 5382, - "order": "Reflection" - }, - { - "id": 5383, - "order": "Power" - }, - { - "id": 5384, - "order": "Rage" - }, - { - "id": 5385, - "order": "Detection" - }, - { - "id": 5386, - "order": "Brilliance" - }, - { - "id": 5387, - "order": "Brilliance" - }, - { - "id": 5388, - "order": "Titans" - }, - { - "id": 5389, - "order": "Enlightenment" - }, - { - "id": 5390, - "order": "Detection" - }, - { - "id": 5391, - "order": "Reflection" - }, - { - "id": 5392, - "order": "Fury" - }, - { - "id": 5393, - "order": "Enlightenment" - }, - { - "id": 5394, - "order": "Titans" - }, - { - "id": 5395, - "order": "Titans" - }, - { - "id": 5396, - "order": "Anger" - }, - { - "id": 5397, - "order": "Power" - }, - { - "id": 5398, - "order": "Perfection" - }, - { - "id": 5399, - "order": "Enlightenment" - }, - { - "id": 5400, - "order": "Power" - }, - { - "id": 5401, - "order": "Giants" - }, - { - "id": 5402, - "order": "Power" - }, - { - "id": 5403, - "order": "the Twins" - }, - { - "id": 5404, - "order": "Anger" - }, - { - "id": 5405, - "order": "Skill" - }, - { - "id": 5406, - "order": "Brilliance" - }, - { - "id": 5407, - "order": "Reflection" - }, - { - "id": 5408, - "order": "Vitriol" - }, - { - "id": 5409, - "order": "Rage" - }, - { - "id": 5410, - "order": "Brilliance" - }, - { - "id": 5411, - "order": "Perfection" - }, - { - "id": 5412, - "order": "Fury" - }, - { - "id": 5413, - "order": "Perfection" - }, - { - "id": 5414, - "order": "Giants" - }, - { - "id": 5415, - "order": "Rage" - }, - { - "id": 5416, - "order": "Titans" - }, - { - "id": 5417, - "order": "the Twins" - }, - { - "id": 5418, - "order": "Power" - }, - { - "id": 5419, - "order": "Giants" - }, - { - "id": 5420, - "order": "Rage" - }, - { - "id": 5421, - "order": "Enlightenment" - }, - { - "id": 5422, - "order": "the Twins" - }, - { - "id": 5423, - "order": "Anger" - }, - { - "id": 5424, - "order": "the Fox" - }, - { - "id": 5425, - "order": "Anger" - }, - { - "id": 5426, - "order": "Detection" - }, - { - "id": 5427, - "order": "the Fox" - }, - { - "id": 5428, - "order": "the Fox" - }, - { - "id": 5429, - "order": "Titans" - }, - { - "id": 5430, - "order": "Power" - }, - { - "id": 5431, - "order": "the Fox" - }, - { - "id": 5432, - "order": "Perfection" - }, - { - "id": 5433, - "order": "Skill" - }, - { - "id": 5434, - "order": "the Twins" - }, - { - "id": 5435, - "order": "Perfection" - }, - { - "id": 5436, - "order": "Titans" - }, - { - "id": 5437, - "order": "Skill" - }, - { - "id": 5438, - "order": "Reflection" - }, - { - "id": 5439, - "order": "Giants" - }, - { - "id": 5440, - "order": "Reflection" - }, - { - "id": 5441, - "order": "Protection" - }, - { - "id": 5442, - "order": "Reflection" - }, - { - "id": 5443, - "order": "Skill" - }, - { - "id": 5444, - "order": "the Twins" - }, - { - "id": 5445, - "order": "the Twins" - }, - { - "id": 5446, - "order": "Titans" - }, - { - "id": 5447, - "order": "Brilliance" - }, - { - "id": 5448, - "order": "Detection" - }, - { - "id": 5449, - "order": "Anger" - }, - { - "id": 5450, - "order": "Skill" - }, - { - "id": 5451, - "order": "Anger" - }, - { - "id": 5452, - "order": "Anger" - }, - { - "id": 5453, - "order": "the Twins" - }, - { - "id": 5454, - "order": "Anger" - }, - { - "id": 5455, - "order": "the Twins" - }, - { - "id": 5456, - "order": "Rage" - }, - { - "id": 5457, - "order": "Fury" - }, - { - "id": 5458, - "order": "Perfection" - }, - { - "id": 5459, - "order": "Power" - }, - { - "id": 5460, - "order": "Giants" - }, - { - "id": 5461, - "order": "Rage" - }, - { - "id": 5462, - "order": "the Fox" - }, - { - "id": 5463, - "order": "the Fox" - }, - { - "id": 5464, - "order": "Protection" - }, - { - "id": 5465, - "order": "Protection" - }, - { - "id": 5466, - "order": "Skill" - }, - { - "id": 5467, - "order": "Titans" - }, - { - "id": 5468, - "order": "Protection" - }, - { - "id": 5469, - "order": "Titans" - }, - { - "id": 5470, - "order": "Brilliance" - }, - { - "id": 5471, - "order": "the Twins" - }, - { - "id": 5472, - "order": "Vitriol" - }, - { - "id": 5473, - "order": "Giants" - }, - { - "id": 5474, - "order": "Fury" - }, - { - "id": 5475, - "order": "Skill" - }, - { - "id": 5476, - "order": "Perfection" - }, - { - "id": 5477, - "order": "Rage" - }, - { - "id": 5478, - "order": "Anger" - }, - { - "id": 5479, - "order": "Protection" - }, - { - "id": 5480, - "order": "Anger" - }, - { - "id": 5481, - "order": "Brilliance" - }, - { - "id": 5482, - "order": "Protection" - }, - { - "id": 5483, - "order": "Anger" - }, - { - "id": 5484, - "order": "Perfection" - }, - { - "id": 5485, - "order": "the Fox" - }, - { - "id": 5486, - "order": "Fury" - }, - { - "id": 5487, - "order": "the Fox" - }, - { - "id": 5488, - "order": "Fury" - }, - { - "id": 5489, - "order": "the Fox" - }, - { - "id": 5490, - "order": "Perfection" - }, - { - "id": 5491, - "order": "Reflection" - }, - { - "id": 5492, - "order": "Reflection" - }, - { - "id": 5493, - "order": "Detection" - }, - { - "id": 5494, - "order": "Anger" - }, - { - "id": 5495, - "order": "the Fox" - }, - { - "id": 5496, - "order": "Enlightenment" - }, - { - "id": 5497, - "order": "the Fox" - }, - { - "id": 5498, - "order": "Skill" - }, - { - "id": 5499, - "order": "Power" - }, - { - "id": 5500, - "order": "Brilliance" - }, - { - "id": 5501, - "order": "Anger" - }, - { - "id": 5502, - "order": "Power" - }, - { - "id": 5503, - "order": "the Fox" - }, - { - "id": 5504, - "order": "Skill" - }, - { - "id": 5505, - "order": "Rage" - }, - { - "id": 5506, - "order": "Anger" - }, - { - "id": 5507, - "order": "Vitriol" - }, - { - "id": 5508, - "order": "Detection" - }, - { - "id": 5509, - "order": "the Twins" - }, - { - "id": 5510, - "order": "Protection" - }, - { - "id": 5511, - "order": "Titans" - }, - { - "id": 5512, - "order": "Power" - }, - { - "id": 5513, - "order": "Titans" - }, - { - "id": 5514, - "order": "Brilliance" - }, - { - "id": 5515, - "order": "Giants" - }, - { - "id": 5516, - "order": "Reflection" - }, - { - "id": 5517, - "order": "Vitriol" - }, - { - "id": 5518, - "order": "Power" - }, - { - "id": 5519, - "order": "Detection" - }, - { - "id": 5520, - "order": "Power" - }, - { - "id": 5521, - "order": "Reflection" - }, - { - "id": 5522, - "order": "Perfection" - }, - { - "id": 5523, - "order": "Protection" - }, - { - "id": 5524, - "order": "Brilliance" - }, - { - "id": 5525, - "order": "Enlightenment" - }, - { - "id": 5526, - "order": "Protection" - }, - { - "id": 5527, - "order": "Titans" - }, - { - "id": 5528, - "order": "Brilliance" - }, - { - "id": 5529, - "order": "Power" - }, - { - "id": 5530, - "order": "Power" - }, - { - "id": 5531, - "order": "Giants" - }, - { - "id": 5532, - "order": "the Fox" - }, - { - "id": 5533, - "order": "Fury" - }, - { - "id": 5534, - "order": "Skill" - }, - { - "id": 5535, - "order": "the Twins" - }, - { - "id": 5536, - "order": "Anger" - }, - { - "id": 5537, - "order": "Titans" - }, - { - "id": 5538, - "order": "the Twins" - }, - { - "id": 5539, - "order": "Enlightenment" - }, - { - "id": 5540, - "order": "Rage" - }, - { - "id": 5541, - "order": "Anger" - }, - { - "id": 5542, - "order": "Detection" - }, - { - "id": 5543, - "order": "Anger" - }, - { - "id": 5544, - "order": "Giants" - }, - { - "id": 5545, - "order": "the Twins" - }, - { - "id": 5546, - "order": "Protection" - }, - { - "id": 5547, - "order": "Perfection" - }, - { - "id": 5548, - "order": "Protection" - }, - { - "id": 5549, - "order": "Vitriol" - }, - { - "id": 5550, - "order": "Protection" - }, - { - "id": 5551, - "order": "Rage" - }, - { - "id": 5552, - "order": "Giants" - }, - { - "id": 5553, - "order": "Power" - }, - { - "id": 5554, - "order": "Fury" - }, - { - "id": 5555, - "order": "Titans" - }, - { - "id": 5556, - "order": "Fury" - }, - { - "id": 5557, - "order": "Fury" - }, - { - "id": 5558, - "order": "Giants" - }, - { - "id": 5559, - "order": "Fury" - }, - { - "id": 5560, - "order": "the Twins" - }, - { - "id": 5561, - "order": "Enlightenment" - }, - { - "id": 5562, - "order": "Power" - }, - { - "id": 5563, - "order": "Reflection" - }, - { - "id": 5564, - "order": "Anger" - }, - { - "id": 5565, - "order": "the Twins" - }, - { - "id": 5566, - "order": "Reflection" - }, - { - "id": 5567, - "order": "Detection" - }, - { - "id": 5568, - "order": "Reflection" - }, - { - "id": 5569, - "order": "Perfection" - }, - { - "id": 5570, - "order": "Power" - }, - { - "id": 5571, - "order": "Enlightenment" - }, - { - "id": 5572, - "order": "Rage" - }, - { - "id": 5573, - "order": "Rage" - }, - { - "id": 5574, - "order": "Brilliance" - }, - { - "id": 5575, - "order": "the Fox" - }, - { - "id": 5576, - "order": "Anger" - }, - { - "id": 5577, - "order": "the Fox" - }, - { - "id": 5578, - "order": "Perfection" - }, - { - "id": 5579, - "order": "Anger" - }, - { - "id": 5580, - "order": "Fury" - }, - { - "id": 5581, - "order": "Rage" - }, - { - "id": 5582, - "order": "Vitriol" - }, - { - "id": 5583, - "order": "Rage" - }, - { - "id": 5584, - "order": "Anger" - }, - { - "id": 5585, - "order": "Brilliance" - }, - { - "id": 5586, - "order": "Detection" - }, - { - "id": 5587, - "order": "Reflection" - }, - { - "id": 5588, - "order": "Perfection" - }, - { - "id": 5589, - "order": "Anger" - }, - { - "id": 5590, - "order": "Enlightenment" - }, - { - "id": 5591, - "order": "Enlightenment" - }, - { - "id": 5592, - "order": "Reflection" - }, - { - "id": 5593, - "order": "Anger" - }, - { - "id": 5594, - "order": "Titans" - }, - { - "id": 5595, - "order": "Reflection" - }, - { - "id": 5596, - "order": "Enlightenment" - }, - { - "id": 5597, - "order": "Giants" - }, - { - "id": 5598, - "order": "Protection" - }, - { - "id": 5599, - "order": "Reflection" - }, - { - "id": 5600, - "order": "Fury" - }, - { - "id": 5601, - "order": "Detection" - }, - { - "id": 5602, - "order": "Rage" - }, - { - "id": 5603, - "order": "Vitriol" - }, - { - "id": 5604, - "order": "Skill" - }, - { - "id": 5605, - "order": "Rage" - }, - { - "id": 5606, - "order": "Power" - }, - { - "id": 5607, - "order": "Enlightenment" - }, - { - "id": 5608, - "order": "Skill" - }, - { - "id": 5609, - "order": "Fury" - }, - { - "id": 5610, - "order": "Detection" - }, - { - "id": 5611, - "order": "Power" - }, - { - "id": 5612, - "order": "Titans" - }, - { - "id": 5613, - "order": "the Twins" - }, - { - "id": 5614, - "order": "Enlightenment" - }, - { - "id": 5615, - "order": "Power" - }, - { - "id": 5616, - "order": "Rage" - }, - { - "id": 5617, - "order": "the Fox" - }, - { - "id": 5618, - "order": "Detection" - }, - { - "id": 5619, - "order": "Anger" - }, - { - "id": 5620, - "order": "Skill" - }, - { - "id": 5621, - "order": "Skill" - }, - { - "id": 5622, - "order": "Giants" - }, - { - "id": 5623, - "order": "Skill" - }, - { - "id": 5624, - "order": "Reflection" - }, - { - "id": 5625, - "order": "Skill" - }, - { - "id": 5626, - "order": "Protection" - }, - { - "id": 5627, - "order": "Fury" - }, - { - "id": 5628, - "order": "the Twins" - }, - { - "id": 5629, - "order": "Enlightenment" - }, - { - "id": 5630, - "order": "the Twins" - }, - { - "id": 5631, - "order": "Reflection" - }, - { - "id": 5632, - "order": "the Twins" - }, - { - "id": 5633, - "order": "Enlightenment" - }, - { - "id": 5634, - "order": "Brilliance" - }, - { - "id": 5635, - "order": "Detection" - }, - { - "id": 5636, - "order": "the Fox" - }, - { - "id": 5637, - "order": "Enlightenment" - }, - { - "id": 5638, - "order": "the Twins" - }, - { - "id": 5639, - "order": "Anger" - }, - { - "id": 5640, - "order": "Protection" - }, - { - "id": 5641, - "order": "Rage" - }, - { - "id": 5642, - "order": "Vitriol" - }, - { - "id": 5643, - "order": "Anger" - }, - { - "id": 5644, - "order": "Enlightenment" - }, - { - "id": 5645, - "order": "the Twins" - }, - { - "id": 5646, - "order": "Reflection" - }, - { - "id": 5647, - "order": "Fury" - }, - { - "id": 5648, - "order": "Fury" - }, - { - "id": 5649, - "order": "Reflection" - }, - { - "id": 5650, - "order": "the Twins" - }, - { - "id": 5651, - "order": "Skill" - }, - { - "id": 5652, - "order": "Anger" - }, - { - "id": 5653, - "order": "Rage" - }, - { - "id": 5654, - "order": "Vitriol" - }, - { - "id": 5655, - "order": "Skill" - }, - { - "id": 5656, - "order": "Power" - }, - { - "id": 5657, - "order": "Vitriol" - }, - { - "id": 5658, - "order": "the Fox" - }, - { - "id": 5659, - "order": "Reflection" - }, - { - "id": 5660, - "order": "Enlightenment" - }, - { - "id": 5661, - "order": "Brilliance" - }, - { - "id": 5662, - "order": "Perfection" - }, - { - "id": 5663, - "order": "Fury" - }, - { - "id": 5664, - "order": "Perfection" - }, - { - "id": 5665, - "order": "Protection" - }, - { - "id": 5666, - "order": "Fury" - }, - { - "id": 5667, - "order": "Detection" - }, - { - "id": 5668, - "order": "Brilliance" - }, - { - "id": 5669, - "order": "Brilliance" - }, - { - "id": 5670, - "order": "Brilliance" - }, - { - "id": 5671, - "order": "Protection" - }, - { - "id": 5672, - "order": "Skill" - }, - { - "id": 5673, - "order": "the Fox" - }, - { - "id": 5674, - "order": "Enlightenment" - }, - { - "id": 5675, - "order": "Titans" - }, - { - "id": 5676, - "order": "Reflection" - }, - { - "id": 5677, - "order": "Giants" - }, - { - "id": 5678, - "order": "Reflection" - }, - { - "id": 5679, - "order": "Power" - }, - { - "id": 5680, - "order": "Titans" - }, - { - "id": 5681, - "order": "Skill" - }, - { - "id": 5682, - "order": "the Twins" - }, - { - "id": 5683, - "order": "the Twins" - }, - { - "id": 5684, - "order": "Protection" - }, - { - "id": 5685, - "order": "Vitriol" - }, - { - "id": 5686, - "order": "Power" - }, - { - "id": 5687, - "order": "Power" - }, - { - "id": 5688, - "order": "Rage" - }, - { - "id": 5689, - "order": "the Twins" - }, - { - "id": 5690, - "order": "Brilliance" - }, - { - "id": 5691, - "order": "Protection" - }, - { - "id": 5692, - "order": "Giants" - }, - { - "id": 5693, - "order": "Brilliance" - }, - { - "id": 5694, - "order": "Reflection" - }, - { - "id": 5695, - "order": "Vitriol" - }, - { - "id": 5696, - "order": "Perfection" - }, - { - "id": 5697, - "order": "Giants" - }, - { - "id": 5698, - "order": "Fury" - }, - { - "id": 5699, - "order": "Titans" - }, - { - "id": 5700, - "order": "Reflection" - }, - { - "id": 5701, - "order": "Anger" - }, - { - "id": 5702, - "order": "Titans" - }, - { - "id": 5703, - "order": "Giants" - }, - { - "id": 5704, - "order": "Fury" - }, - { - "id": 5705, - "order": "Power" - }, - { - "id": 5706, - "order": "Enlightenment" - }, - { - "id": 5707, - "order": "Anger" - }, - { - "id": 5708, - "order": "Enlightenment" - }, - { - "id": 5709, - "order": "Reflection" - }, - { - "id": 5710, - "order": "the Fox" - }, - { - "id": 5711, - "order": "Enlightenment" - }, - { - "id": 5712, - "order": "Vitriol" - }, - { - "id": 5713, - "order": "Protection" - }, - { - "id": 5714, - "order": "Giants" - }, - { - "id": 5715, - "order": "Giants" - }, - { - "id": 5716, - "order": "Detection" - }, - { - "id": 5717, - "order": "Titans" - }, - { - "id": 5718, - "order": "Rage" - }, - { - "id": 5719, - "order": "Reflection" - }, - { - "id": 5720, - "order": "Titans" - }, - { - "id": 5721, - "order": "Detection" - }, - { - "id": 5722, - "order": "Power" - }, - { - "id": 5723, - "order": "Detection" - }, - { - "id": 5724, - "order": "Fury" - }, - { - "id": 5725, - "order": "the Fox" - }, - { - "id": 5726, - "order": "Giants" - }, - { - "id": 5727, - "order": "Power" - }, - { - "id": 5728, - "order": "Protection" - }, - { - "id": 5729, - "order": "the Fox" - }, - { - "id": 5730, - "order": "Perfection" - }, - { - "id": 5731, - "order": "Enlightenment" - }, - { - "id": 5732, - "order": "Vitriol" - }, - { - "id": 5733, - "order": "Reflection" - }, - { - "id": 5734, - "order": "Skill" - }, - { - "id": 5735, - "order": "Titans" - }, - { - "id": 5736, - "order": "Titans" - }, - { - "id": 5737, - "order": "Enlightenment" - }, - { - "id": 5738, - "order": "Protection" - }, - { - "id": 5739, - "order": "Perfection" - }, - { - "id": 5740, - "order": "Reflection" - }, - { - "id": 5741, - "order": "the Twins" - }, - { - "id": 5742, - "order": "the Fox" - }, - { - "id": 5743, - "order": "Perfection" - }, - { - "id": 5744, - "order": "Perfection" - }, - { - "id": 5745, - "order": "Protection" - }, - { - "id": 5746, - "order": "Perfection" - }, - { - "id": 5747, - "order": "Giants" - }, - { - "id": 5748, - "order": "Skill" - }, - { - "id": 5749, - "order": "Reflection" - }, - { - "id": 5750, - "order": "the Twins" - }, - { - "id": 5751, - "order": "Skill" - }, - { - "id": 5752, - "order": "Power" - }, - { - "id": 5753, - "order": "the Twins" - }, - { - "id": 5754, - "order": "Brilliance" - }, - { - "id": 5755, - "order": "Titans" - }, - { - "id": 5756, - "order": "the Fox" - }, - { - "id": 5757, - "order": "Power" - }, - { - "id": 5758, - "order": "Anger" - }, - { - "id": 5759, - "order": "Power" - }, - { - "id": 5760, - "order": "Skill" - }, - { - "id": 5761, - "order": "Vitriol" - }, - { - "id": 5762, - "order": "Enlightenment" - }, - { - "id": 5763, - "order": "Brilliance" - }, - { - "id": 5764, - "order": "Giants" - }, - { - "id": 5765, - "order": "Fury" - }, - { - "id": 5766, - "order": "Anger" - }, - { - "id": 5767, - "order": "Skill" - }, - { - "id": 5768, - "order": "Detection" - }, - { - "id": 5769, - "order": "Perfection" - }, - { - "id": 5770, - "order": "Vitriol" - }, - { - "id": 5771, - "order": "Detection" - }, - { - "id": 5772, - "order": "the Twins" - }, - { - "id": 5773, - "order": "Vitriol" - }, - { - "id": 5774, - "order": "Vitriol" - }, - { - "id": 5775, - "order": "Reflection" - }, - { - "id": 5776, - "order": "Fury" - }, - { - "id": 5777, - "order": "Rage" - }, - { - "id": 5778, - "order": "Anger" - }, - { - "id": 5779, - "order": "Reflection" - }, - { - "id": 5780, - "order": "Vitriol" - }, - { - "id": 5781, - "order": "the Fox" - }, - { - "id": 5782, - "order": "Rage" - }, - { - "id": 5783, - "order": "Protection" - }, - { - "id": 5784, - "order": "Detection" - }, - { - "id": 5785, - "order": "Enlightenment" - }, - { - "id": 5786, - "order": "Power" - }, - { - "id": 5787, - "order": "Perfection" - }, - { - "id": 5788, - "order": "Power" - }, - { - "id": 5789, - "order": "the Fox" - }, - { - "id": 5790, - "order": "Detection" - }, - { - "id": 5791, - "order": "Brilliance" - }, - { - "id": 5792, - "order": "the Twins" - }, - { - "id": 5793, - "order": "Rage" - }, - { - "id": 5794, - "order": "Detection" - }, - { - "id": 5795, - "order": "the Twins" - }, - { - "id": 5796, - "order": "Skill" - }, - { - "id": 5797, - "order": "Titans" - }, - { - "id": 5798, - "order": "Detection" - }, - { - "id": 5799, - "order": "Rage" - }, - { - "id": 5800, - "order": "the Fox" - }, - { - "id": 5801, - "order": "Fury" - }, - { - "id": 5802, - "order": "Giants" - }, - { - "id": 5803, - "order": "Protection" - }, - { - "id": 5804, - "order": "Skill" - }, - { - "id": 5805, - "order": "Skill" - }, - { - "id": 5806, - "order": "Protection" - }, - { - "id": 5807, - "order": "Enlightenment" - }, - { - "id": 5808, - "order": "Detection" - }, - { - "id": 5809, - "order": "the Fox" - }, - { - "id": 5810, - "order": "Perfection" - }, - { - "id": 5811, - "order": "Protection" - }, - { - "id": 5812, - "order": "Detection" - }, - { - "id": 5813, - "order": "Skill" - }, - { - "id": 5814, - "order": "Rage" - }, - { - "id": 5815, - "order": "Enlightenment" - }, - { - "id": 5816, - "order": "Perfection" - }, - { - "id": 5817, - "order": "Power" - }, - { - "id": 5818, - "order": "Brilliance" - }, - { - "id": 5819, - "order": "Anger" - }, - { - "id": 5820, - "order": "Detection" - }, - { - "id": 5821, - "order": "Perfection" - }, - { - "id": 5822, - "order": "Power" - }, - { - "id": 5823, - "order": "Fury" - }, - { - "id": 5824, - "order": "Power" - }, - { - "id": 5825, - "order": "Protection" - }, - { - "id": 5826, - "order": "Rage" - }, - { - "id": 5827, - "order": "Fury" - }, - { - "id": 5828, - "order": "Rage" - }, - { - "id": 5829, - "order": "Rage" - }, - { - "id": 5830, - "order": "Fury" - }, - { - "id": 5831, - "order": "the Twins" - }, - { - "id": 5832, - "order": "Giants" - }, - { - "id": 5833, - "order": "Rage" - }, - { - "id": 5834, - "order": "Enlightenment" - }, - { - "id": 5835, - "order": "Fury" - }, - { - "id": 5836, - "order": "the Twins" - }, - { - "id": 5837, - "order": "Titans" - }, - { - "id": 5838, - "order": "Power" - }, - { - "id": 5839, - "order": "Protection" - }, - { - "id": 5840, - "order": "Rage" - }, - { - "id": 5841, - "order": "Power" - }, - { - "id": 5842, - "order": "the Twins" - }, - { - "id": 5843, - "order": "Detection" - }, - { - "id": 5844, - "order": "Rage" - }, - { - "id": 5845, - "order": "Reflection" - }, - { - "id": 5846, - "order": "the Fox" - }, - { - "id": 5847, - "order": "Rage" - }, - { - "id": 5848, - "order": "the Twins" - }, - { - "id": 5849, - "order": "Rage" - }, - { - "id": 5850, - "order": "Brilliance" - }, - { - "id": 5851, - "order": "Anger" - }, - { - "id": 5852, - "order": "Power" - }, - { - "id": 5853, - "order": "Brilliance" - }, - { - "id": 5854, - "order": "the Twins" - }, - { - "id": 5855, - "order": "Enlightenment" - }, - { - "id": 5856, - "order": "Anger" - }, - { - "id": 5857, - "order": "Fury" - }, - { - "id": 5858, - "order": "Anger" - }, - { - "id": 5859, - "order": "Perfection" - }, - { - "id": 5860, - "order": "Giants" - }, - { - "id": 5861, - "order": "the Twins" - }, - { - "id": 5862, - "order": "the Twins" - }, - { - "id": 5863, - "order": "the Twins" - }, - { - "id": 5864, - "order": "Reflection" - }, - { - "id": 5865, - "order": "the Fox" - }, - { - "id": 5866, - "order": "Fury" - }, - { - "id": 5867, - "order": "Titans" - }, - { - "id": 5868, - "order": "Anger" - }, - { - "id": 5869, - "order": "Detection" - }, - { - "id": 5870, - "order": "Anger" - }, - { - "id": 5871, - "order": "Reflection" - }, - { - "id": 5872, - "order": "Enlightenment" - }, - { - "id": 5873, - "order": "Fury" - }, - { - "id": 5874, - "order": "Detection" - }, - { - "id": 5875, - "order": "Brilliance" - }, - { - "id": 5876, - "order": "Rage" - }, - { - "id": 5877, - "order": "Brilliance" - }, - { - "id": 5878, - "order": "Titans" - }, - { - "id": 5879, - "order": "Titans" - }, - { - "id": 5880, - "order": "the Fox" - }, - { - "id": 5881, - "order": "Anger" - }, - { - "id": 5882, - "order": "Vitriol" - }, - { - "id": 5883, - "order": "Reflection" - }, - { - "id": 5884, - "order": "Detection" - }, - { - "id": 5885, - "order": "Protection" - }, - { - "id": 5886, - "order": "the Twins" - }, - { - "id": 5887, - "order": "Titans" - }, - { - "id": 5888, - "order": "Enlightenment" - }, - { - "id": 5889, - "order": "the Fox" - }, - { - "id": 5890, - "order": "Enlightenment" - }, - { - "id": 5891, - "order": "Giants" - }, - { - "id": 5892, - "order": "Titans" - }, - { - "id": 5893, - "order": "Brilliance" - }, - { - "id": 5894, - "order": "Protection" - }, - { - "id": 5895, - "order": "Protection" - }, - { - "id": 5896, - "order": "the Fox" - }, - { - "id": 5897, - "order": "Power" - }, - { - "id": 5898, - "order": "Titans" - }, - { - "id": 5899, - "order": "Brilliance" - }, - { - "id": 5900, - "order": "Vitriol" - }, - { - "id": 5901, - "order": "Enlightenment" - }, - { - "id": 5902, - "order": "Detection" - }, - { - "id": 5903, - "order": "Vitriol" - }, - { - "id": 5904, - "order": "Brilliance" - }, - { - "id": 5905, - "order": "Rage" - }, - { - "id": 5906, - "order": "Skill" - }, - { - "id": 5907, - "order": "the Fox" - }, - { - "id": 5908, - "order": "Giants" - }, - { - "id": 5909, - "order": "Rage" - }, - { - "id": 5910, - "order": "Power" - }, - { - "id": 5911, - "order": "Perfection" - }, - { - "id": 5912, - "order": "Vitriol" - }, - { - "id": 5913, - "order": "Fury" - }, - { - "id": 5914, - "order": "Perfection" - }, - { - "id": 5915, - "order": "Perfection" - }, - { - "id": 5916, - "order": "Skill" - }, - { - "id": 5917, - "order": "Reflection" - }, - { - "id": 5918, - "order": "Perfection" - }, - { - "id": 5919, - "order": "Titans" - }, - { - "id": 5920, - "order": "Reflection" - }, - { - "id": 5921, - "order": "Detection" - }, - { - "id": 5922, - "order": "Brilliance" - }, - { - "id": 5923, - "order": "Giants" - }, - { - "id": 5924, - "order": "Fury" - }, - { - "id": 5925, - "order": "Titans" - }, - { - "id": 5926, - "order": "Protection" - }, - { - "id": 5927, - "order": "Brilliance" - }, - { - "id": 5928, - "order": "Fury" - }, - { - "id": 5929, - "order": "Fury" - }, - { - "id": 5930, - "order": "Perfection" - }, - { - "id": 5931, - "order": "Skill" - }, - { - "id": 5932, - "order": "Detection" - }, - { - "id": 5933, - "order": "Titans" - }, - { - "id": 5934, - "order": "Fury" - }, - { - "id": 5935, - "order": "Rage" - }, - { - "id": 5936, - "order": "Perfection" - }, - { - "id": 5937, - "order": "Reflection" - }, - { - "id": 5938, - "order": "Perfection" - }, - { - "id": 5939, - "order": "Rage" - }, - { - "id": 5940, - "order": "Detection" - }, - { - "id": 5941, - "order": "Vitriol" - }, - { - "id": 5942, - "order": "Rage" - }, - { - "id": 5943, - "order": "Brilliance" - }, - { - "id": 5944, - "order": "the Twins" - }, - { - "id": 5945, - "order": "Skill" - }, - { - "id": 5946, - "order": "Fury" - }, - { - "id": 5947, - "order": "Rage" - }, - { - "id": 5948, - "order": "Anger" - }, - { - "id": 5949, - "order": "Skill" - }, - { - "id": 5950, - "order": "Fury" - }, - { - "id": 5951, - "order": "Giants" - }, - { - "id": 5952, - "order": "Detection" - }, - { - "id": 5953, - "order": "Detection" - }, - { - "id": 5954, - "order": "Perfection" - }, - { - "id": 5955, - "order": "Skill" - }, - { - "id": 5956, - "order": "Reflection" - }, - { - "id": 5957, - "order": "Enlightenment" - }, - { - "id": 5958, - "order": "Rage" - }, - { - "id": 5959, - "order": "Protection" - }, - { - "id": 5960, - "order": "Fury" - }, - { - "id": 5961, - "order": "the Fox" - }, - { - "id": 5962, - "order": "Fury" - }, - { - "id": 5963, - "order": "Skill" - }, - { - "id": 5964, - "order": "Skill" - }, - { - "id": 5965, - "order": "Skill" - }, - { - "id": 5966, - "order": "Power" - }, - { - "id": 5967, - "order": "Skill" - }, - { - "id": 5968, - "order": "Perfection" - }, - { - "id": 5969, - "order": "Giants" - }, - { - "id": 5970, - "order": "Vitriol" - }, - { - "id": 5971, - "order": "the Fox" - }, - { - "id": 5972, - "order": "Rage" - }, - { - "id": 5973, - "order": "Anger" - }, - { - "id": 5974, - "order": "Titans" - }, - { - "id": 5975, - "order": "Fury" - }, - { - "id": 5976, - "order": "Power" - }, - { - "id": 5977, - "order": "Titans" - }, - { - "id": 5978, - "order": "Protection" - }, - { - "id": 5979, - "order": "Perfection" - }, - { - "id": 5980, - "order": "Power" - }, - { - "id": 5981, - "order": "Detection" - }, - { - "id": 5982, - "order": "Perfection" - }, - { - "id": 5983, - "order": "Anger" - }, - { - "id": 5984, - "order": "Giants" - }, - { - "id": 5985, - "order": "Titans" - }, - { - "id": 5986, - "order": "Rage" - }, - { - "id": 5987, - "order": "Enlightenment" - }, - { - "id": 5988, - "order": "the Twins" - }, - { - "id": 5989, - "order": "Skill" - }, - { - "id": 5990, - "order": "Rage" - }, - { - "id": 5991, - "order": "Fury" - }, - { - "id": 5992, - "order": "Protection" - }, - { - "id": 5993, - "order": "Vitriol" - }, - { - "id": 5994, - "order": "Detection" - }, - { - "id": 5995, - "order": "Perfection" - }, - { - "id": 5996, - "order": "Brilliance" - }, - { - "id": 5997, - "order": "Skill" - }, - { - "id": 5998, - "order": "Anger" - }, - { - "id": 5999, - "order": "Anger" - }, - { - "id": 6000, - "order": "Vitriol" - }, - { - "id": 6001, - "order": "Enlightenment" - }, - { - "id": 6002, - "order": "Skill" - }, - { - "id": 6003, - "order": "Titans" - }, - { - "id": 6004, - "order": "Detection" - }, - { - "id": 6005, - "order": "Power" - }, - { - "id": 6006, - "order": "Enlightenment" - }, - { - "id": 6007, - "order": "Protection" - }, - { - "id": 6008, - "order": "Rage" - }, - { - "id": 6009, - "order": "Detection" - }, - { - "id": 6010, - "order": "Titans" - }, - { - "id": 6011, - "order": "Protection" - }, - { - "id": 6012, - "order": "Skill" - }, - { - "id": 6013, - "order": "Titans" - }, - { - "id": 6014, - "order": "Brilliance" - }, - { - "id": 6015, - "order": "Protection" - }, - { - "id": 6016, - "order": "Giants" - }, - { - "id": 6017, - "order": "Protection" - }, - { - "id": 6018, - "order": "Titans" - }, - { - "id": 6019, - "order": "Titans" - }, - { - "id": 6020, - "order": "Reflection" - }, - { - "id": 6021, - "order": "Anger" - }, - { - "id": 6022, - "order": "Protection" - }, - { - "id": 6023, - "order": "Fury" - }, - { - "id": 6024, - "order": "Vitriol" - }, - { - "id": 6025, - "order": "Rage" - }, - { - "id": 6026, - "order": "Fury" - }, - { - "id": 6027, - "order": "Protection" - }, - { - "id": 6028, - "order": "Brilliance" - }, - { - "id": 6029, - "order": "the Fox" - }, - { - "id": 6030, - "order": "the Fox" - }, - { - "id": 6031, - "order": "the Fox" - }, - { - "id": 6032, - "order": "Enlightenment" - }, - { - "id": 6033, - "order": "Fury" - }, - { - "id": 6034, - "order": "Power" - }, - { - "id": 6035, - "order": "Anger" - }, - { - "id": 6036, - "order": "Power" - }, - { - "id": 6037, - "order": "the Fox" - }, - { - "id": 6038, - "order": "Brilliance" - }, - { - "id": 6039, - "order": "Brilliance" - }, - { - "id": 6040, - "order": "Brilliance" - }, - { - "id": 6041, - "order": "Skill" - }, - { - "id": 6042, - "order": "Anger" - }, - { - "id": 6043, - "order": "Fury" - }, - { - "id": 6044, - "order": "Rage" - }, - { - "id": 6045, - "order": "Brilliance" - }, - { - "id": 6046, - "order": "the Twins" - }, - { - "id": 6047, - "order": "Brilliance" - }, - { - "id": 6048, - "order": "Protection" - }, - { - "id": 6049, - "order": "Power" - }, - { - "id": 6050, - "order": "Reflection" - }, - { - "id": 6051, - "order": "Enlightenment" - }, - { - "id": 6052, - "order": "Perfection" - }, - { - "id": 6053, - "order": "Rage" - }, - { - "id": 6054, - "order": "Protection" - }, - { - "id": 6055, - "order": "Anger" - }, - { - "id": 6056, - "order": "Fury" - }, - { - "id": 6057, - "order": "Rage" - }, - { - "id": 6058, - "order": "Perfection" - }, - { - "id": 6059, - "order": "Fury" - }, - { - "id": 6060, - "order": "Giants" - }, - { - "id": 6061, - "order": "Reflection" - }, - { - "id": 6062, - "order": "Reflection" - }, - { - "id": 6063, - "order": "Giants" - }, - { - "id": 6064, - "order": "Skill" - }, - { - "id": 6065, - "order": "Perfection" - }, - { - "id": 6066, - "order": "the Fox" - }, - { - "id": 6067, - "order": "Rage" - }, - { - "id": 6068, - "order": "Brilliance" - }, - { - "id": 6069, - "order": "Reflection" - }, - { - "id": 6070, - "order": "Brilliance" - }, - { - "id": 6071, - "order": "the Twins" - }, - { - "id": 6072, - "order": "Detection" - }, - { - "id": 6073, - "order": "Giants" - }, - { - "id": 6074, - "order": "the Twins" - }, - { - "id": 6075, - "order": "Reflection" - }, - { - "id": 6076, - "order": "Vitriol" - }, - { - "id": 6077, - "order": "Enlightenment" - }, - { - "id": 6078, - "order": "Enlightenment" - }, - { - "id": 6079, - "order": "Power" - }, - { - "id": 6080, - "order": "the Twins" - }, - { - "id": 6081, - "order": "Rage" - }, - { - "id": 6082, - "order": "Rage" - }, - { - "id": 6083, - "order": "Skill" - }, - { - "id": 6084, - "order": "Titans" - }, - { - "id": 6085, - "order": "Power" - }, - { - "id": 6086, - "order": "Giants" - }, - { - "id": 6087, - "order": "Power" - }, - { - "id": 6088, - "order": "Skill" - }, - { - "id": 6089, - "order": "Skill" - }, - { - "id": 6090, - "order": "Enlightenment" - }, - { - "id": 6091, - "order": "Protection" - }, - { - "id": 6092, - "order": "Titans" - }, - { - "id": 6093, - "order": "the Fox" - }, - { - "id": 6094, - "order": "Enlightenment" - }, - { - "id": 6095, - "order": "Titans" - }, - { - "id": 6096, - "order": "Perfection" - }, - { - "id": 6097, - "order": "Protection" - }, - { - "id": 6098, - "order": "Brilliance" - }, - { - "id": 6099, - "order": "Anger" - }, - { - "id": 6100, - "order": "Protection" - }, - { - "id": 6101, - "order": "Skill" - }, - { - "id": 6102, - "order": "Vitriol" - }, - { - "id": 6103, - "order": "Detection" - }, - { - "id": 6104, - "order": "Power" - }, - { - "id": 6105, - "order": "Anger" - }, - { - "id": 6106, - "order": "Giants" - }, - { - "id": 6107, - "order": "Skill" - }, - { - "id": 6108, - "order": "the Fox" - }, - { - "id": 6109, - "order": "Skill" - }, - { - "id": 6110, - "order": "the Twins" - }, - { - "id": 6111, - "order": "Giants" - }, - { - "id": 6112, - "order": "Detection" - }, - { - "id": 6113, - "order": "the Twins" - }, - { - "id": 6114, - "order": "the Fox" - }, - { - "id": 6115, - "order": "the Twins" - }, - { - "id": 6116, - "order": "Perfection" - }, - { - "id": 6117, - "order": "Skill" - }, - { - "id": 6118, - "order": "Rage" - }, - { - "id": 6119, - "order": "the Twins" - }, - { - "id": 6120, - "order": "Reflection" - }, - { - "id": 6121, - "order": "Protection" - }, - { - "id": 6122, - "order": "Rage" - }, - { - "id": 6123, - "order": "Detection" - }, - { - "id": 6124, - "order": "Anger" - }, - { - "id": 6125, - "order": "Power" - }, - { - "id": 6126, - "order": "Reflection" - }, - { - "id": 6127, - "order": "Power" - }, - { - "id": 6128, - "order": "Enlightenment" - }, - { - "id": 6129, - "order": "Anger" - }, - { - "id": 6130, - "order": "Rage" - }, - { - "id": 6131, - "order": "the Fox" - }, - { - "id": 6132, - "order": "Skill" - }, - { - "id": 6133, - "order": "Brilliance" - }, - { - "id": 6134, - "order": "Giants" - }, - { - "id": 6135, - "order": "Protection" - }, - { - "id": 6136, - "order": "the Twins" - }, - { - "id": 6137, - "order": "the Fox" - }, - { - "id": 6138, - "order": "Vitriol" - }, - { - "id": 6139, - "order": "Titans" - }, - { - "id": 6140, - "order": "Rage" - }, - { - "id": 6141, - "order": "Vitriol" - }, - { - "id": 6142, - "order": "Brilliance" - }, - { - "id": 6143, - "order": "Anger" - }, - { - "id": 6144, - "order": "Fury" - }, - { - "id": 6145, - "order": "Skill" - }, - { - "id": 6146, - "order": "the Twins" - }, - { - "id": 6147, - "order": "Power" - }, - { - "id": 6148, - "order": "Enlightenment" - }, - { - "id": 6149, - "order": "Giants" - }, - { - "id": 6150, - "order": "Perfection" - }, - { - "id": 6151, - "order": "the Fox" - }, - { - "id": 6152, - "order": "Skill" - }, - { - "id": 6153, - "order": "Anger" - }, - { - "id": 6154, - "order": "Vitriol" - }, - { - "id": 6155, - "order": "Giants" - }, - { - "id": 6156, - "order": "Giants" - }, - { - "id": 6157, - "order": "the Twins" - }, - { - "id": 6158, - "order": "Brilliance" - }, - { - "id": 6159, - "order": "Power" - }, - { - "id": 6160, - "order": "Brilliance" - }, - { - "id": 6161, - "order": "Detection" - }, - { - "id": 6162, - "order": "the Fox" - }, - { - "id": 6163, - "order": "Fury" - }, - { - "id": 6164, - "order": "Skill" - }, - { - "id": 6165, - "order": "Rage" - }, - { - "id": 6166, - "order": "Perfection" - }, - { - "id": 6167, - "order": "the Twins" - }, - { - "id": 6168, - "order": "the Twins" - }, - { - "id": 6169, - "order": "Fury" - }, - { - "id": 6170, - "order": "Power" - }, - { - "id": 6171, - "order": "Protection" - }, - { - "id": 6172, - "order": "Power" - }, - { - "id": 6173, - "order": "Skill" - }, - { - "id": 6174, - "order": "Detection" - }, - { - "id": 6175, - "order": "Vitriol" - }, - { - "id": 6176, - "order": "Skill" - }, - { - "id": 6177, - "order": "Protection" - }, - { - "id": 6178, - "order": "Reflection" - }, - { - "id": 6179, - "order": "Vitriol" - }, - { - "id": 6180, - "order": "Power" - }, - { - "id": 6181, - "order": "Titans" - }, - { - "id": 6182, - "order": "the Twins" - }, - { - "id": 6183, - "order": "Vitriol" - }, - { - "id": 6184, - "order": "Reflection" - }, - { - "id": 6185, - "order": "Enlightenment" - }, - { - "id": 6186, - "order": "Perfection" - }, - { - "id": 6187, - "order": "Protection" - }, - { - "id": 6188, - "order": "Vitriol" - }, - { - "id": 6189, - "order": "Power" - }, - { - "id": 6190, - "order": "the Twins" - }, - { - "id": 6191, - "order": "the Twins" - }, - { - "id": 6192, - "order": "Anger" - }, - { - "id": 6193, - "order": "Anger" - }, - { - "id": 6194, - "order": "Vitriol" - }, - { - "id": 6195, - "order": "Titans" - }, - { - "id": 6196, - "order": "Brilliance" - }, - { - "id": 6197, - "order": "Giants" - }, - { - "id": 6198, - "order": "Fury" - }, - { - "id": 6199, - "order": "Fury" - }, - { - "id": 6200, - "order": "Reflection" - }, - { - "id": 6201, - "order": "Fury" - }, - { - "id": 6202, - "order": "Perfection" - }, - { - "id": 6203, - "order": "Giants" - }, - { - "id": 6204, - "order": "Perfection" - }, - { - "id": 6205, - "order": "Perfection" - }, - { - "id": 6206, - "order": "Enlightenment" - }, - { - "id": 6207, - "order": "Giants" - }, - { - "id": 6208, - "order": "Anger" - }, - { - "id": 6209, - "order": "Fury" - }, - { - "id": 6210, - "order": "the Twins" - }, - { - "id": 6211, - "order": "Brilliance" - }, - { - "id": 6212, - "order": "Enlightenment" - }, - { - "id": 6213, - "order": "Enlightenment" - }, - { - "id": 6214, - "order": "Brilliance" - }, - { - "id": 6215, - "order": "Perfection" - }, - { - "id": 6216, - "order": "Titans" - }, - { - "id": 6217, - "order": "Reflection" - }, - { - "id": 6218, - "order": "Anger" - }, - { - "id": 6219, - "order": "Rage" - }, - { - "id": 6220, - "order": "Perfection" - }, - { - "id": 6221, - "order": "the Twins" - }, - { - "id": 6222, - "order": "Fury" - }, - { - "id": 6223, - "order": "Brilliance" - }, - { - "id": 6224, - "order": "the Twins" - }, - { - "id": 6225, - "order": "the Fox" - }, - { - "id": 6226, - "order": "Vitriol" - }, - { - "id": 6227, - "order": "Detection" - }, - { - "id": 6228, - "order": "Fury" - }, - { - "id": 6229, - "order": "Brilliance" - }, - { - "id": 6230, - "order": "Anger" - }, - { - "id": 6231, - "order": "Detection" - }, - { - "id": 6232, - "order": "Protection" - }, - { - "id": 6233, - "order": "Reflection" - }, - { - "id": 6234, - "order": "Reflection" - }, - { - "id": 6235, - "order": "the Fox" - }, - { - "id": 6236, - "order": "Vitriol" - }, - { - "id": 6237, - "order": "Giants" - }, - { - "id": 6238, - "order": "Vitriol" - }, - { - "id": 6239, - "order": "Titans" - }, - { - "id": 6240, - "order": "the Twins" - }, - { - "id": 6241, - "order": "Protection" - }, - { - "id": 6242, - "order": "Anger" - }, - { - "id": 6243, - "order": "Perfection" - }, - { - "id": 6244, - "order": "Enlightenment" - }, - { - "id": 6245, - "order": "Skill" - }, - { - "id": 6246, - "order": "Rage" - }, - { - "id": 6247, - "order": "Enlightenment" - }, - { - "id": 6248, - "order": "Skill" - }, - { - "id": 6249, - "order": "Enlightenment" - }, - { - "id": 6250, - "order": "Perfection" - }, - { - "id": 6251, - "order": "Rage" - }, - { - "id": 6252, - "order": "the Fox" - }, - { - "id": 6253, - "order": "Giants" - }, - { - "id": 6254, - "order": "Reflection" - }, - { - "id": 6255, - "order": "Titans" - }, - { - "id": 6256, - "order": "Perfection" - }, - { - "id": 6257, - "order": "Brilliance" - }, - { - "id": 6258, - "order": "Brilliance" - }, - { - "id": 6259, - "order": "the Twins" - }, - { - "id": 6260, - "order": "Detection" - }, - { - "id": 6261, - "order": "the Twins" - }, - { - "id": 6262, - "order": "Reflection" - }, - { - "id": 6263, - "order": "Rage" - }, - { - "id": 6264, - "order": "Skill" - }, - { - "id": 6265, - "order": "Brilliance" - }, - { - "id": 6266, - "order": "Skill" - }, - { - "id": 6267, - "order": "Detection" - }, - { - "id": 6268, - "order": "Brilliance" - }, - { - "id": 6269, - "order": "Brilliance" - }, - { - "id": 6270, - "order": "Vitriol" - }, - { - "id": 6271, - "order": "Giants" - }, - { - "id": 6272, - "order": "Reflection" - }, - { - "id": 6273, - "order": "Fury" - }, - { - "id": 6274, - "order": "Brilliance" - }, - { - "id": 6275, - "order": "Power" - }, - { - "id": 6276, - "order": "Rage" - }, - { - "id": 6277, - "order": "Anger" - }, - { - "id": 6278, - "order": "Perfection" - }, - { - "id": 6279, - "order": "Skill" - }, - { - "id": 6280, - "order": "Power" - }, - { - "id": 6281, - "order": "Vitriol" - }, - { - "id": 6282, - "order": "Brilliance" - }, - { - "id": 6283, - "order": "Vitriol" - }, - { - "id": 6284, - "order": "Detection" - }, - { - "id": 6285, - "order": "Titans" - }, - { - "id": 6286, - "order": "Perfection" - }, - { - "id": 6287, - "order": "Skill" - }, - { - "id": 6288, - "order": "Protection" - }, - { - "id": 6289, - "order": "Reflection" - }, - { - "id": 6290, - "order": "Perfection" - }, - { - "id": 6291, - "order": "Giants" - }, - { - "id": 6292, - "order": "the Fox" - }, - { - "id": 6293, - "order": "Titans" - }, - { - "id": 6294, - "order": "Fury" - }, - { - "id": 6295, - "order": "the Twins" - }, - { - "id": 6296, - "order": "Perfection" - }, - { - "id": 6297, - "order": "Fury" - }, - { - "id": 6298, - "order": "Anger" - }, - { - "id": 6299, - "order": "Enlightenment" - }, - { - "id": 6300, - "order": "Skill" - }, - { - "id": 6301, - "order": "Titans" - }, - { - "id": 6302, - "order": "Enlightenment" - }, - { - "id": 6303, - "order": "Power" - }, - { - "id": 6304, - "order": "Brilliance" - }, - { - "id": 6305, - "order": "Giants" - }, - { - "id": 6306, - "order": "Perfection" - }, - { - "id": 6307, - "order": "Fury" - }, - { - "id": 6308, - "order": "Rage" - }, - { - "id": 6309, - "order": "Skill" - }, - { - "id": 6310, - "order": "Power" - }, - { - "id": 6311, - "order": "Skill" - }, - { - "id": 6312, - "order": "Anger" - }, - { - "id": 6313, - "order": "Skill" - }, - { - "id": 6314, - "order": "Power" - }, - { - "id": 6315, - "order": "the Twins" - }, - { - "id": 6316, - "order": "Titans" - }, - { - "id": 6317, - "order": "Fury" - }, - { - "id": 6318, - "order": "Skill" - }, - { - "id": 6319, - "order": "Detection" - }, - { - "id": 6320, - "order": "Protection" - }, - { - "id": 6321, - "order": "Fury" - }, - { - "id": 6322, - "order": "Giants" - }, - { - "id": 6323, - "order": "Fury" - }, - { - "id": 6324, - "order": "Anger" - }, - { - "id": 6325, - "order": "Detection" - }, - { - "id": 6326, - "order": "Titans" - }, - { - "id": 6327, - "order": "the Twins" - }, - { - "id": 6328, - "order": "the Fox" - }, - { - "id": 6329, - "order": "the Twins" - }, - { - "id": 6330, - "order": "Perfection" - }, - { - "id": 6331, - "order": "Reflection" - }, - { - "id": 6332, - "order": "Skill" - }, - { - "id": 6333, - "order": "the Twins" - }, - { - "id": 6334, - "order": "Perfection" - }, - { - "id": 6335, - "order": "Power" - }, - { - "id": 6336, - "order": "Reflection" - }, - { - "id": 6337, - "order": "Skill" - }, - { - "id": 6338, - "order": "Rage" - }, - { - "id": 6339, - "order": "Rage" - }, - { - "id": 6340, - "order": "Enlightenment" - }, - { - "id": 6341, - "order": "Reflection" - }, - { - "id": 6342, - "order": "Enlightenment" - }, - { - "id": 6343, - "order": "Reflection" - }, - { - "id": 6344, - "order": "Titans" - }, - { - "id": 6345, - "order": "Anger" - }, - { - "id": 6346, - "order": "Skill" - }, - { - "id": 6347, - "order": "the Twins" - }, - { - "id": 6348, - "order": "Anger" - }, - { - "id": 6349, - "order": "Titans" - }, - { - "id": 6350, - "order": "Anger" - }, - { - "id": 6351, - "order": "Anger" - }, - { - "id": 6352, - "order": "Brilliance" - }, - { - "id": 6353, - "order": "Fury" - }, - { - "id": 6354, - "order": "Power" - }, - { - "id": 6355, - "order": "Protection" - }, - { - "id": 6356, - "order": "Rage" - }, - { - "id": 6357, - "order": "Fury" - }, - { - "id": 6358, - "order": "Skill" - }, - { - "id": 6359, - "order": "Giants" - }, - { - "id": 6360, - "order": "Detection" - }, - { - "id": 6361, - "order": "Rage" - }, - { - "id": 6362, - "order": "Enlightenment" - }, - { - "id": 6363, - "order": "the Twins" - }, - { - "id": 6364, - "order": "Power" - }, - { - "id": 6365, - "order": "the Fox" - }, - { - "id": 6366, - "order": "Reflection" - }, - { - "id": 6367, - "order": "Titans" - }, - { - "id": 6368, - "order": "the Twins" - }, - { - "id": 6369, - "order": "Detection" - }, - { - "id": 6370, - "order": "Perfection" - }, - { - "id": 6371, - "order": "Power" - }, - { - "id": 6372, - "order": "Titans" - }, - { - "id": 6373, - "order": "Titans" - }, - { - "id": 6374, - "order": "Detection" - }, - { - "id": 6375, - "order": "Perfection" - }, - { - "id": 6376, - "order": "Brilliance" - }, - { - "id": 6377, - "order": "Brilliance" - }, - { - "id": 6378, - "order": "Rage" - }, - { - "id": 6379, - "order": "the Twins" - }, - { - "id": 6380, - "order": "Power" - }, - { - "id": 6381, - "order": "Rage" - }, - { - "id": 6382, - "order": "the Twins" - }, - { - "id": 6383, - "order": "Power" - }, - { - "id": 6384, - "order": "Perfection" - }, - { - "id": 6385, - "order": "Brilliance" - }, - { - "id": 6386, - "order": "Brilliance" - }, - { - "id": 6387, - "order": "Fury" - }, - { - "id": 6388, - "order": "the Twins" - }, - { - "id": 6389, - "order": "Rage" - }, - { - "id": 6390, - "order": "Detection" - }, - { - "id": 6391, - "order": "Anger" - }, - { - "id": 6392, - "order": "Enlightenment" - }, - { - "id": 6393, - "order": "Skill" - }, - { - "id": 6394, - "order": "Fury" - }, - { - "id": 6395, - "order": "Brilliance" - }, - { - "id": 6396, - "order": "Perfection" - }, - { - "id": 6397, - "order": "Enlightenment" - }, - { - "id": 6398, - "order": "Rage" - }, - { - "id": 6399, - "order": "Titans" - }, - { - "id": 6400, - "order": "Giants" - }, - { - "id": 6401, - "order": "the Fox" - }, - { - "id": 6402, - "order": "Brilliance" - }, - { - "id": 6403, - "order": "Vitriol" - }, - { - "id": 6404, - "order": "Detection" - }, - { - "id": 6405, - "order": "Power" - }, - { - "id": 6406, - "order": "Anger" - }, - { - "id": 6407, - "order": "Enlightenment" - }, - { - "id": 6408, - "order": "Vitriol" - }, - { - "id": 6409, - "order": "Vitriol" - }, - { - "id": 6410, - "order": "Brilliance" - }, - { - "id": 6411, - "order": "Fury" - }, - { - "id": 6412, - "order": "Protection" - }, - { - "id": 6413, - "order": "Anger" - }, - { - "id": 6414, - "order": "Power" - }, - { - "id": 6415, - "order": "the Twins" - }, - { - "id": 6416, - "order": "Perfection" - }, - { - "id": 6417, - "order": "the Twins" - }, - { - "id": 6418, - "order": "Skill" - }, - { - "id": 6419, - "order": "Anger" - }, - { - "id": 6420, - "order": "Protection" - }, - { - "id": 6421, - "order": "Titans" - }, - { - "id": 6422, - "order": "Brilliance" - }, - { - "id": 6423, - "order": "Vitriol" - }, - { - "id": 6424, - "order": "Vitriol" - }, - { - "id": 6425, - "order": "Power" - }, - { - "id": 6426, - "order": "Giants" - }, - { - "id": 6427, - "order": "the Fox" - }, - { - "id": 6428, - "order": "the Twins" - }, - { - "id": 6429, - "order": "Protection" - }, - { - "id": 6430, - "order": "Enlightenment" - }, - { - "id": 6431, - "order": "Power" - }, - { - "id": 6432, - "order": "Protection" - }, - { - "id": 6433, - "order": "Rage" - }, - { - "id": 6434, - "order": "Anger" - }, - { - "id": 6435, - "order": "Rage" - }, - { - "id": 6436, - "order": "Rage" - }, - { - "id": 6437, - "order": "Vitriol" - }, - { - "id": 6438, - "order": "Brilliance" - }, - { - "id": 6439, - "order": "Titans" - }, - { - "id": 6440, - "order": "Detection" - }, - { - "id": 6441, - "order": "Brilliance" - }, - { - "id": 6442, - "order": "Enlightenment" - }, - { - "id": 6443, - "order": "Fury" - }, - { - "id": 6444, - "order": "the Fox" - }, - { - "id": 6445, - "order": "Titans" - }, - { - "id": 6446, - "order": "Anger" - }, - { - "id": 6447, - "order": "Perfection" - }, - { - "id": 6448, - "order": "the Fox" - }, - { - "id": 6449, - "order": "Giants" - }, - { - "id": 6450, - "order": "Anger" - }, - { - "id": 6451, - "order": "Protection" - }, - { - "id": 6452, - "order": "Perfection" - }, - { - "id": 6453, - "order": "Reflection" - }, - { - "id": 6454, - "order": "Reflection" - }, - { - "id": 6455, - "order": "the Fox" - }, - { - "id": 6456, - "order": "Power" - }, - { - "id": 6457, - "order": "Enlightenment" - }, - { - "id": 6458, - "order": "the Twins" - }, - { - "id": 6459, - "order": "Skill" - }, - { - "id": 6460, - "order": "Skill" - }, - { - "id": 6461, - "order": "Protection" - }, - { - "id": 6462, - "order": "Anger" - }, - { - "id": 6463, - "order": "Rage" - }, - { - "id": 6464, - "order": "Reflection" - }, - { - "id": 6465, - "order": "Giants" - }, - { - "id": 6466, - "order": "Rage" - }, - { - "id": 6467, - "order": "Titans" - }, - { - "id": 6468, - "order": "Anger" - }, - { - "id": 6469, - "order": "the Twins" - }, - { - "id": 6470, - "order": "Fury" - }, - { - "id": 6471, - "order": "Vitriol" - }, - { - "id": 6472, - "order": "Anger" - }, - { - "id": 6473, - "order": "Protection" - }, - { - "id": 6474, - "order": "Anger" - }, - { - "id": 6475, - "order": "the Twins" - }, - { - "id": 6476, - "order": "Protection" - }, - { - "id": 6477, - "order": "Enlightenment" - }, - { - "id": 6478, - "order": "Rage" - }, - { - "id": 6479, - "order": "Titans" - }, - { - "id": 6480, - "order": "Anger" - }, - { - "id": 6481, - "order": "Detection" - }, - { - "id": 6482, - "order": "Fury" - }, - { - "id": 6483, - "order": "Rage" - }, - { - "id": 6484, - "order": "the Fox" - }, - { - "id": 6485, - "order": "Anger" - }, - { - "id": 6486, - "order": "Enlightenment" - }, - { - "id": 6487, - "order": "Giants" - }, - { - "id": 6488, - "order": "Brilliance" - }, - { - "id": 6489, - "order": "Perfection" - }, - { - "id": 6490, - "order": "the Fox" - }, - { - "id": 6491, - "order": "Vitriol" - }, - { - "id": 6492, - "order": "the Fox" - }, - { - "id": 6493, - "order": "the Fox" - }, - { - "id": 6494, - "order": "Reflection" - }, - { - "id": 6495, - "order": "Power" - }, - { - "id": 6496, - "order": "Rage" - }, - { - "id": 6497, - "order": "Protection" - }, - { - "id": 6498, - "order": "Giants" - }, - { - "id": 6499, - "order": "Reflection" - }, - { - "id": 6500, - "order": "the Twins" - }, - { - "id": 6501, - "order": "Fury" - }, - { - "id": 6502, - "order": "Enlightenment" - }, - { - "id": 6503, - "order": "Fury" - }, - { - "id": 6504, - "order": "the Fox" - }, - { - "id": 6505, - "order": "the Fox" - }, - { - "id": 6506, - "order": "Perfection" - }, - { - "id": 6507, - "order": "Brilliance" - }, - { - "id": 6508, - "order": "Vitriol" - }, - { - "id": 6509, - "order": "Reflection" - }, - { - "id": 6510, - "order": "Rage" - }, - { - "id": 6511, - "order": "Giants" - }, - { - "id": 6512, - "order": "Fury" - }, - { - "id": 6513, - "order": "Power" - }, - { - "id": 6514, - "order": "Brilliance" - }, - { - "id": 6515, - "order": "Vitriol" - }, - { - "id": 6516, - "order": "Skill" - }, - { - "id": 6517, - "order": "Anger" - }, - { - "id": 6518, - "order": "the Twins" - }, - { - "id": 6519, - "order": "Titans" - }, - { - "id": 6520, - "order": "Protection" - }, - { - "id": 6521, - "order": "Fury" - }, - { - "id": 6522, - "order": "Enlightenment" - }, - { - "id": 6523, - "order": "Skill" - }, - { - "id": 6524, - "order": "Protection" - }, - { - "id": 6525, - "order": "Rage" - }, - { - "id": 6526, - "order": "Skill" - }, - { - "id": 6527, - "order": "Brilliance" - }, - { - "id": 6528, - "order": "Perfection" - }, - { - "id": 6529, - "order": "Perfection" - }, - { - "id": 6530, - "order": "Giants" - }, - { - "id": 6531, - "order": "Fury" - }, - { - "id": 6532, - "order": "Perfection" - }, - { - "id": 6533, - "order": "Titans" - }, - { - "id": 6534, - "order": "Power" - }, - { - "id": 6535, - "order": "Rage" - }, - { - "id": 6536, - "order": "Fury" - }, - { - "id": 6537, - "order": "Power" - }, - { - "id": 6538, - "order": "Anger" - }, - { - "id": 6539, - "order": "Enlightenment" - }, - { - "id": 6540, - "order": "Rage" - }, - { - "id": 6541, - "order": "Detection" - }, - { - "id": 6542, - "order": "Detection" - }, - { - "id": 6543, - "order": "Perfection" - }, - { - "id": 6544, - "order": "Anger" - }, - { - "id": 6545, - "order": "Perfection" - }, - { - "id": 6546, - "order": "Enlightenment" - }, - { - "id": 6547, - "order": "Detection" - }, - { - "id": 6548, - "order": "Fury" - }, - { - "id": 6549, - "order": "Detection" - }, - { - "id": 6550, - "order": "the Fox" - }, - { - "id": 6551, - "order": "Fury" - }, - { - "id": 6552, - "order": "Detection" - }, - { - "id": 6553, - "order": "Detection" - }, - { - "id": 6554, - "order": "Anger" - }, - { - "id": 6555, - "order": "Titans" - }, - { - "id": 6556, - "order": "Rage" - }, - { - "id": 6557, - "order": "Protection" - }, - { - "id": 6558, - "order": "Enlightenment" - }, - { - "id": 6559, - "order": "the Twins" - }, - { - "id": 6560, - "order": "Skill" - }, - { - "id": 6561, - "order": "Detection" - }, - { - "id": 6562, - "order": "Fury" - }, - { - "id": 6563, - "order": "the Fox" - }, - { - "id": 6564, - "order": "Brilliance" - }, - { - "id": 6565, - "order": "Detection" - }, - { - "id": 6566, - "order": "Protection" - }, - { - "id": 6567, - "order": "Enlightenment" - }, - { - "id": 6568, - "order": "Titans" - }, - { - "id": 6569, - "order": "Reflection" - }, - { - "id": 6570, - "order": "Giants" - }, - { - "id": 6571, - "order": "Detection" - }, - { - "id": 6572, - "order": "Power" - }, - { - "id": 6573, - "order": "Power" - }, - { - "id": 6574, - "order": "Skill" - }, - { - "id": 6575, - "order": "Power" - }, - { - "id": 6576, - "order": "Brilliance" - }, - { - "id": 6577, - "order": "Enlightenment" - }, - { - "id": 6578, - "order": "Titans" - }, - { - "id": 6579, - "order": "the Fox" - }, - { - "id": 6580, - "order": "Detection" - }, - { - "id": 6581, - "order": "Anger" - }, - { - "id": 6582, - "order": "Giants" - }, - { - "id": 6583, - "order": "Perfection" - }, - { - "id": 6584, - "order": "the Twins" - }, - { - "id": 6585, - "order": "Detection" - }, - { - "id": 6586, - "order": "Brilliance" - }, - { - "id": 6587, - "order": "Enlightenment" - }, - { - "id": 6588, - "order": "Brilliance" - }, - { - "id": 6589, - "order": "the Fox" - }, - { - "id": 6590, - "order": "Fury" - }, - { - "id": 6591, - "order": "Skill" - }, - { - "id": 6592, - "order": "Detection" - }, - { - "id": 6593, - "order": "Fury" - }, - { - "id": 6594, - "order": "Reflection" - }, - { - "id": 6595, - "order": "the Twins" - }, - { - "id": 6596, - "order": "Reflection" - }, - { - "id": 6597, - "order": "Anger" - }, - { - "id": 6598, - "order": "Protection" - }, - { - "id": 6599, - "order": "Perfection" - }, - { - "id": 6600, - "order": "Vitriol" - }, - { - "id": 6601, - "order": "Protection" - }, - { - "id": 6602, - "order": "the Fox" - }, - { - "id": 6603, - "order": "Giants" - }, - { - "id": 6604, - "order": "Enlightenment" - }, - { - "id": 6605, - "order": "Detection" - }, - { - "id": 6606, - "order": "Titans" - }, - { - "id": 6607, - "order": "Protection" - }, - { - "id": 6608, - "order": "Vitriol" - }, - { - "id": 6609, - "order": "Enlightenment" - }, - { - "id": 6610, - "order": "the Fox" - }, - { - "id": 6611, - "order": "Enlightenment" - }, - { - "id": 6612, - "order": "Brilliance" - }, - { - "id": 6613, - "order": "Vitriol" - }, - { - "id": 6614, - "order": "Power" - }, - { - "id": 6615, - "order": "Brilliance" - }, - { - "id": 6616, - "order": "Brilliance" - }, - { - "id": 6617, - "order": "the Fox" - }, - { - "id": 6618, - "order": "Giants" - }, - { - "id": 6619, - "order": "Rage" - }, - { - "id": 6620, - "order": "Detection" - }, - { - "id": 6621, - "order": "Protection" - }, - { - "id": 6622, - "order": "Enlightenment" - }, - { - "id": 6623, - "order": "Reflection" - }, - { - "id": 6624, - "order": "Skill" - }, - { - "id": 6625, - "order": "Vitriol" - }, - { - "id": 6626, - "order": "Perfection" - }, - { - "id": 6627, - "order": "Perfection" - }, - { - "id": 6628, - "order": "Perfection" - }, - { - "id": 6629, - "order": "Vitriol" - }, - { - "id": 6630, - "order": "Perfection" - }, - { - "id": 6631, - "order": "Perfection" - }, - { - "id": 6632, - "order": "Vitriol" - }, - { - "id": 6633, - "order": "Giants" - }, - { - "id": 6634, - "order": "Protection" - }, - { - "id": 6635, - "order": "Power" - }, - { - "id": 6636, - "order": "Skill" - }, - { - "id": 6637, - "order": "Perfection" - }, - { - "id": 6638, - "order": "Power" - }, - { - "id": 6639, - "order": "Power" - }, - { - "id": 6640, - "order": "Brilliance" - }, - { - "id": 6641, - "order": "Enlightenment" - }, - { - "id": 6642, - "order": "Giants" - }, - { - "id": 6643, - "order": "Skill" - }, - { - "id": 6644, - "order": "the Twins" - }, - { - "id": 6645, - "order": "Detection" - }, - { - "id": 6646, - "order": "Enlightenment" - }, - { - "id": 6647, - "order": "the Fox" - }, - { - "id": 6648, - "order": "the Fox" - }, - { - "id": 6649, - "order": "Perfection" - }, - { - "id": 6650, - "order": "the Fox" - }, - { - "id": 6651, - "order": "Enlightenment" - }, - { - "id": 6652, - "order": "Anger" - }, - { - "id": 6653, - "order": "Skill" - }, - { - "id": 6654, - "order": "Anger" - }, - { - "id": 6655, - "order": "Titans" - }, - { - "id": 6656, - "order": "Perfection" - }, - { - "id": 6657, - "order": "the Twins" - }, - { - "id": 6658, - "order": "Vitriol" - }, - { - "id": 6659, - "order": "Rage" - }, - { - "id": 6660, - "order": "Anger" - }, - { - "id": 6661, - "order": "Power" - }, - { - "id": 6662, - "order": "Giants" - }, - { - "id": 6663, - "order": "the Fox" - }, - { - "id": 6664, - "order": "Rage" - }, - { - "id": 6665, - "order": "Fury" - }, - { - "id": 6666, - "order": "Rage" - }, - { - "id": 6667, - "order": "Giants" - }, - { - "id": 6668, - "order": "Reflection" - }, - { - "id": 6669, - "order": "Reflection" - }, - { - "id": 6670, - "order": "Fury" - }, - { - "id": 6671, - "order": "Fury" - }, - { - "id": 6672, - "order": "Skill" - }, - { - "id": 6673, - "order": "Brilliance" - }, - { - "id": 6674, - "order": "Vitriol" - }, - { - "id": 6675, - "order": "Protection" - }, - { - "id": 6676, - "order": "Perfection" - }, - { - "id": 6677, - "order": "Skill" - }, - { - "id": 6678, - "order": "Detection" - }, - { - "id": 6679, - "order": "Reflection" - }, - { - "id": 6680, - "order": "Fury" - }, - { - "id": 6681, - "order": "Rage" - }, - { - "id": 6682, - "order": "Power" - }, - { - "id": 6683, - "order": "Rage" - }, - { - "id": 6684, - "order": "Rage" - }, - { - "id": 6685, - "order": "Rage" - }, - { - "id": 6686, - "order": "the Twins" - }, - { - "id": 6687, - "order": "Anger" - }, - { - "id": 6688, - "order": "Perfection" - }, - { - "id": 6689, - "order": "Enlightenment" - }, - { - "id": 6690, - "order": "Reflection" - }, - { - "id": 6691, - "order": "Protection" - }, - { - "id": 6692, - "order": "Vitriol" - }, - { - "id": 6693, - "order": "Titans" - }, - { - "id": 6694, - "order": "Vitriol" - }, - { - "id": 6695, - "order": "Titans" - }, - { - "id": 6696, - "order": "Vitriol" - }, - { - "id": 6697, - "order": "Anger" - }, - { - "id": 6698, - "order": "Rage" - }, - { - "id": 6699, - "order": "Detection" - }, - { - "id": 6700, - "order": "Perfection" - }, - { - "id": 6701, - "order": "Skill" - }, - { - "id": 6702, - "order": "Vitriol" - }, - { - "id": 6703, - "order": "Power" - }, - { - "id": 6704, - "order": "Titans" - }, - { - "id": 6705, - "order": "Protection" - }, - { - "id": 6706, - "order": "the Twins" - }, - { - "id": 6707, - "order": "Detection" - }, - { - "id": 6708, - "order": "Detection" - }, - { - "id": 6709, - "order": "Detection" - }, - { - "id": 6710, - "order": "Titans" - }, - { - "id": 6711, - "order": "Perfection" - }, - { - "id": 6712, - "order": "Giants" - }, - { - "id": 6713, - "order": "the Fox" - }, - { - "id": 6714, - "order": "Anger" - }, - { - "id": 6715, - "order": "Rage" - }, - { - "id": 6716, - "order": "the Fox" - }, - { - "id": 6717, - "order": "Titans" - }, - { - "id": 6718, - "order": "Titans" - }, - { - "id": 6719, - "order": "Titans" - }, - { - "id": 6720, - "order": "the Fox" - }, - { - "id": 6721, - "order": "Anger" - }, - { - "id": 6722, - "order": "the Fox" - }, - { - "id": 6723, - "order": "Reflection" - }, - { - "id": 6724, - "order": "Detection" - }, - { - "id": 6725, - "order": "Enlightenment" - }, - { - "id": 6726, - "order": "Anger" - }, - { - "id": 6727, - "order": "Perfection" - }, - { - "id": 6728, - "order": "Titans" - }, - { - "id": 6729, - "order": "Brilliance" - }, - { - "id": 6730, - "order": "Detection" - }, - { - "id": 6731, - "order": "Perfection" - }, - { - "id": 6732, - "order": "the Twins" - }, - { - "id": 6733, - "order": "Giants" - }, - { - "id": 6734, - "order": "Brilliance" - }, - { - "id": 6735, - "order": "Vitriol" - }, - { - "id": 6736, - "order": "Fury" - }, - { - "id": 6737, - "order": "Giants" - }, - { - "id": 6738, - "order": "Protection" - }, - { - "id": 6739, - "order": "Titans" - }, - { - "id": 6740, - "order": "Vitriol" - }, - { - "id": 6741, - "order": "Protection" - }, - { - "id": 6742, - "order": "Anger" - }, - { - "id": 6743, - "order": "Protection" - }, - { - "id": 6744, - "order": "Fury" - }, - { - "id": 6745, - "order": "the Twins" - }, - { - "id": 6746, - "order": "Anger" - }, - { - "id": 6747, - "order": "Fury" - }, - { - "id": 6748, - "order": "Brilliance" - }, - { - "id": 6749, - "order": "Titans" - }, - { - "id": 6750, - "order": "Reflection" - }, - { - "id": 6751, - "order": "Titans" - }, - { - "id": 6752, - "order": "Perfection" - }, - { - "id": 6753, - "order": "the Twins" - }, - { - "id": 6754, - "order": "Titans" - }, - { - "id": 6755, - "order": "Giants" - }, - { - "id": 6756, - "order": "Detection" - }, - { - "id": 6757, - "order": "Detection" - }, - { - "id": 6758, - "order": "Rage" - }, - { - "id": 6759, - "order": "Brilliance" - }, - { - "id": 6760, - "order": "Vitriol" - }, - { - "id": 6761, - "order": "Vitriol" - }, - { - "id": 6762, - "order": "Vitriol" - }, - { - "id": 6763, - "order": "Vitriol" - }, - { - "id": 6764, - "order": "the Fox" - }, - { - "id": 6765, - "order": "Perfection" - }, - { - "id": 6766, - "order": "Skill" - }, - { - "id": 6767, - "order": "Protection" - }, - { - "id": 6768, - "order": "Protection" - }, - { - "id": 6769, - "order": "Enlightenment" - }, - { - "id": 6770, - "order": "Enlightenment" - }, - { - "id": 6771, - "order": "Rage" - }, - { - "id": 6772, - "order": "Anger" - }, - { - "id": 6773, - "order": "Fury" - }, - { - "id": 6774, - "order": "Reflection" - }, - { - "id": 6775, - "order": "Rage" - }, - { - "id": 6776, - "order": "Rage" - }, - { - "id": 6777, - "order": "Rage" - }, - { - "id": 6778, - "order": "Rage" - }, - { - "id": 6779, - "order": "Brilliance" - }, - { - "id": 6780, - "order": "Giants" - }, - { - "id": 6781, - "order": "Anger" - }, - { - "id": 6782, - "order": "Enlightenment" - }, - { - "id": 6783, - "order": "Reflection" - }, - { - "id": 6784, - "order": "Fury" - }, - { - "id": 6785, - "order": "Giants" - }, - { - "id": 6786, - "order": "Brilliance" - }, - { - "id": 6787, - "order": "Giants" - }, - { - "id": 6788, - "order": "Titans" - }, - { - "id": 6789, - "order": "Skill" - }, - { - "id": 6790, - "order": "Detection" - }, - { - "id": 6791, - "order": "Brilliance" - }, - { - "id": 6792, - "order": "Detection" - }, - { - "id": 6793, - "order": "Power" - }, - { - "id": 6794, - "order": "Titans" - }, - { - "id": 6795, - "order": "the Fox" - }, - { - "id": 6796, - "order": "Rage" - }, - { - "id": 6797, - "order": "Giants" - }, - { - "id": 6798, - "order": "Skill" - }, - { - "id": 6799, - "order": "Power" - }, - { - "id": 6800, - "order": "Vitriol" - }, - { - "id": 6801, - "order": "Power" - }, - { - "id": 6802, - "order": "Perfection" - }, - { - "id": 6803, - "order": "Fury" - }, - { - "id": 6804, - "order": "Rage" - }, - { - "id": 6805, - "order": "Detection" - }, - { - "id": 6806, - "order": "Rage" - }, - { - "id": 6807, - "order": "Vitriol" - }, - { - "id": 6808, - "order": "Power" - }, - { - "id": 6809, - "order": "Giants" - }, - { - "id": 6810, - "order": "Rage" - }, - { - "id": 6811, - "order": "Perfection" - }, - { - "id": 6812, - "order": "Fury" - }, - { - "id": 6813, - "order": "Anger" - }, - { - "id": 6814, - "order": "Reflection" - }, - { - "id": 6815, - "order": "Perfection" - }, - { - "id": 6816, - "order": "Fury" - }, - { - "id": 6817, - "order": "Enlightenment" - }, - { - "id": 6818, - "order": "Reflection" - }, - { - "id": 6819, - "order": "Perfection" - }, - { - "id": 6820, - "order": "Skill" - }, - { - "id": 6821, - "order": "Enlightenment" - }, - { - "id": 6822, - "order": "the Fox" - }, - { - "id": 6823, - "order": "Detection" - }, - { - "id": 6824, - "order": "Power" - }, - { - "id": 6825, - "order": "the Twins" - }, - { - "id": 6826, - "order": "Titans" - }, - { - "id": 6827, - "order": "Titans" - }, - { - "id": 6828, - "order": "Rage" - }, - { - "id": 6829, - "order": "the Twins" - }, - { - "id": 6830, - "order": "Protection" - }, - { - "id": 6831, - "order": "Protection" - }, - { - "id": 6832, - "order": "Fury" - }, - { - "id": 6833, - "order": "Giants" - }, - { - "id": 6834, - "order": "Perfection" - }, - { - "id": 6835, - "order": "the Fox" - }, - { - "id": 6836, - "order": "Rage" - }, - { - "id": 6837, - "order": "Reflection" - }, - { - "id": 6838, - "order": "Power" - }, - { - "id": 6839, - "order": "Anger" - }, - { - "id": 6840, - "order": "the Twins" - }, - { - "id": 6841, - "order": "Giants" - }, - { - "id": 6842, - "order": "the Twins" - }, - { - "id": 6843, - "order": "Power" - }, - { - "id": 6844, - "order": "Power" - }, - { - "id": 6845, - "order": "Titans" - }, - { - "id": 6846, - "order": "Brilliance" - }, - { - "id": 6847, - "order": "Enlightenment" - }, - { - "id": 6848, - "order": "Brilliance" - }, - { - "id": 6849, - "order": "Perfection" - }, - { - "id": 6850, - "order": "Rage" - }, - { - "id": 6851, - "order": "Giants" - }, - { - "id": 6852, - "order": "Power" - }, - { - "id": 6853, - "order": "Rage" - }, - { - "id": 6854, - "order": "the Fox" - }, - { - "id": 6855, - "order": "Brilliance" - }, - { - "id": 6856, - "order": "Vitriol" - }, - { - "id": 6857, - "order": "Rage" - }, - { - "id": 6858, - "order": "Reflection" - }, - { - "id": 6859, - "order": "Vitriol" - }, - { - "id": 6860, - "order": "Protection" - }, - { - "id": 6861, - "order": "Rage" - }, - { - "id": 6862, - "order": "Vitriol" - }, - { - "id": 6863, - "order": "the Fox" - }, - { - "id": 6864, - "order": "Enlightenment" - }, - { - "id": 6865, - "order": "the Fox" - }, - { - "id": 6866, - "order": "Skill" - }, - { - "id": 6867, - "order": "Perfection" - }, - { - "id": 6868, - "order": "Vitriol" - }, - { - "id": 6869, - "order": "Power" - }, - { - "id": 6870, - "order": "Anger" - }, - { - "id": 6871, - "order": "Titans" - }, - { - "id": 6872, - "order": "Protection" - }, - { - "id": 6873, - "order": "Vitriol" - }, - { - "id": 6874, - "order": "Power" - }, - { - "id": 6875, - "order": "Fury" - }, - { - "id": 6876, - "order": "Titans" - }, - { - "id": 6877, - "order": "Detection" - }, - { - "id": 6878, - "order": "Anger" - }, - { - "id": 6879, - "order": "Enlightenment" - }, - { - "id": 6880, - "order": "Brilliance" - }, - { - "id": 6881, - "order": "Brilliance" - }, - { - "id": 6882, - "order": "Rage" - }, - { - "id": 6883, - "order": "Skill" - }, - { - "id": 6884, - "order": "Skill" - }, - { - "id": 6885, - "order": "Fury" - }, - { - "id": 6886, - "order": "Skill" - }, - { - "id": 6887, - "order": "Giants" - }, - { - "id": 6888, - "order": "Power" - }, - { - "id": 6889, - "order": "Perfection" - }, - { - "id": 6890, - "order": "Fury" - }, - { - "id": 6891, - "order": "Detection" - }, - { - "id": 6892, - "order": "Enlightenment" - }, - { - "id": 6893, - "order": "Titans" - }, - { - "id": 6894, - "order": "Vitriol" - }, - { - "id": 6895, - "order": "Detection" - }, - { - "id": 6896, - "order": "Vitriol" - }, - { - "id": 6897, - "order": "Vitriol" - }, - { - "id": 6898, - "order": "Reflection" - }, - { - "id": 6899, - "order": "Perfection" - }, - { - "id": 6900, - "order": "Anger" - }, - { - "id": 6901, - "order": "Reflection" - }, - { - "id": 6902, - "order": "Brilliance" - }, - { - "id": 6903, - "order": "Detection" - }, - { - "id": 6904, - "order": "Brilliance" - }, - { - "id": 6905, - "order": "Protection" - }, - { - "id": 6906, - "order": "Perfection" - }, - { - "id": 6907, - "order": "Anger" - }, - { - "id": 6908, - "order": "Reflection" - }, - { - "id": 6909, - "order": "Anger" - }, - { - "id": 6910, - "order": "Titans" - }, - { - "id": 6911, - "order": "Vitriol" - }, - { - "id": 6912, - "order": "Rage" - }, - { - "id": 6913, - "order": "Vitriol" - }, - { - "id": 6914, - "order": "Titans" - }, - { - "id": 6915, - "order": "Reflection" - }, - { - "id": 6916, - "order": "Vitriol" - }, - { - "id": 6917, - "order": "Fury" - }, - { - "id": 6918, - "order": "Anger" - }, - { - "id": 6919, - "order": "Perfection" - }, - { - "id": 6920, - "order": "Giants" - }, - { - "id": 6921, - "order": "Brilliance" - }, - { - "id": 6922, - "order": "Reflection" - }, - { - "id": 6923, - "order": "Vitriol" - }, - { - "id": 6924, - "order": "Protection" - }, - { - "id": 6925, - "order": "Titans" - }, - { - "id": 6926, - "order": "Enlightenment" - }, - { - "id": 6927, - "order": "Anger" - }, - { - "id": 6928, - "order": "Skill" - }, - { - "id": 6929, - "order": "Brilliance" - }, - { - "id": 6930, - "order": "Skill" - }, - { - "id": 6931, - "order": "Vitriol" - }, - { - "id": 6932, - "order": "Rage" - }, - { - "id": 6933, - "order": "Giants" - }, - { - "id": 6934, - "order": "Brilliance" - }, - { - "id": 6935, - "order": "the Fox" - }, - { - "id": 6936, - "order": "Giants" - }, - { - "id": 6937, - "order": "the Twins" - }, - { - "id": 6938, - "order": "Titans" - }, - { - "id": 6939, - "order": "Power" - }, - { - "id": 6940, - "order": "Enlightenment" - }, - { - "id": 6941, - "order": "Titans" - }, - { - "id": 6942, - "order": "Reflection" - }, - { - "id": 6943, - "order": "Vitriol" - }, - { - "id": 6944, - "order": "Power" - }, - { - "id": 6945, - "order": "Perfection" - }, - { - "id": 6946, - "order": "Giants" - }, - { - "id": 6947, - "order": "Fury" - }, - { - "id": 6948, - "order": "the Fox" - }, - { - "id": 6949, - "order": "Protection" - }, - { - "id": 6950, - "order": "Reflection" - }, - { - "id": 6951, - "order": "Reflection" - }, - { - "id": 6952, - "order": "Reflection" - }, - { - "id": 6953, - "order": "the Twins" - }, - { - "id": 6954, - "order": "Anger" - }, - { - "id": 6955, - "order": "Rage" - }, - { - "id": 6956, - "order": "the Twins" - }, - { - "id": 6957, - "order": "Giants" - }, - { - "id": 6958, - "order": "Fury" - }, - { - "id": 6959, - "order": "Anger" - }, - { - "id": 6960, - "order": "Vitriol" - }, - { - "id": 6961, - "order": "the Twins" - }, - { - "id": 6962, - "order": "Titans" - }, - { - "id": 6963, - "order": "Brilliance" - }, - { - "id": 6964, - "order": "Enlightenment" - }, - { - "id": 6965, - "order": "the Fox" - }, - { - "id": 6966, - "order": "the Fox" - }, - { - "id": 6967, - "order": "Giants" - }, - { - "id": 6968, - "order": "Skill" - }, - { - "id": 6969, - "order": "Protection" - }, - { - "id": 6970, - "order": "the Fox" - }, - { - "id": 6971, - "order": "Power" - }, - { - "id": 6972, - "order": "Anger" - }, - { - "id": 6973, - "order": "Vitriol" - }, - { - "id": 6974, - "order": "Reflection" - }, - { - "id": 6975, - "order": "Titans" - }, - { - "id": 6976, - "order": "Giants" - }, - { - "id": 6977, - "order": "Power" - }, - { - "id": 6978, - "order": "the Fox" - }, - { - "id": 6979, - "order": "Enlightenment" - }, - { - "id": 6980, - "order": "Rage" - }, - { - "id": 6981, - "order": "Vitriol" - }, - { - "id": 6982, - "order": "Skill" - }, - { - "id": 6983, - "order": "Rage" - }, - { - "id": 6984, - "order": "Protection" - }, - { - "id": 6985, - "order": "Fury" - }, - { - "id": 6986, - "order": "Protection" - }, - { - "id": 6987, - "order": "Reflection" - }, - { - "id": 6988, - "order": "Fury" - }, - { - "id": 6989, - "order": "Anger" - }, - { - "id": 6990, - "order": "the Fox" - }, - { - "id": 6991, - "order": "Power" - }, - { - "id": 6992, - "order": "Rage" - }, - { - "id": 6993, - "order": "the Twins" - }, - { - "id": 6994, - "order": "Giants" - }, - { - "id": 6995, - "order": "Rage" - }, - { - "id": 6996, - "order": "Detection" - }, - { - "id": 6997, - "order": "Brilliance" - }, - { - "id": 6998, - "order": "Skill" - }, - { - "id": 6999, - "order": "Brilliance" - }, - { - "id": 7000, - "order": "Detection" - }, - { - "id": 7001, - "order": "Titans" - }, - { - "id": 7002, - "order": "Enlightenment" - }, - { - "id": 7003, - "order": "the Twins" - }, - { - "id": 7004, - "order": "Perfection" - }, - { - "id": 7005, - "order": "Protection" - }, - { - "id": 7006, - "order": "Detection" - }, - { - "id": 7007, - "order": "Brilliance" - }, - { - "id": 7008, - "order": "the Fox" - }, - { - "id": 7009, - "order": "Fury" - }, - { - "id": 7010, - "order": "the Twins" - }, - { - "id": 7011, - "order": "Titans" - }, - { - "id": 7012, - "order": "Enlightenment" - }, - { - "id": 7013, - "order": "Anger" - }, - { - "id": 7014, - "order": "Detection" - }, - { - "id": 7015, - "order": "Enlightenment" - }, - { - "id": 7016, - "order": "Fury" - }, - { - "id": 7017, - "order": "Skill" - }, - { - "id": 7018, - "order": "Anger" - }, - { - "id": 7019, - "order": "Vitriol" - }, - { - "id": 7020, - "order": "Anger" - }, - { - "id": 7021, - "order": "Reflection" - }, - { - "id": 7022, - "order": "Anger" - }, - { - "id": 7023, - "order": "Protection" - }, - { - "id": 7024, - "order": "Skill" - }, - { - "id": 7025, - "order": "Power" - }, - { - "id": 7026, - "order": "Anger" - }, - { - "id": 7027, - "order": "Perfection" - }, - { - "id": 7028, - "order": "Brilliance" - }, - { - "id": 7029, - "order": "Reflection" - }, - { - "id": 7030, - "order": "Fury" - }, - { - "id": 7031, - "order": "Perfection" - }, - { - "id": 7032, - "order": "Perfection" - }, - { - "id": 7033, - "order": "Rage" - }, - { - "id": 7034, - "order": "Power" - }, - { - "id": 7035, - "order": "the Twins" - }, - { - "id": 7036, - "order": "Enlightenment" - }, - { - "id": 7037, - "order": "Enlightenment" - }, - { - "id": 7038, - "order": "Anger" - }, - { - "id": 7039, - "order": "Perfection" - }, - { - "id": 7040, - "order": "Perfection" - }, - { - "id": 7041, - "order": "Protection" - }, - { - "id": 7042, - "order": "Rage" - }, - { - "id": 7043, - "order": "Rage" - }, - { - "id": 7044, - "order": "Detection" - }, - { - "id": 7045, - "order": "the Twins" - }, - { - "id": 7046, - "order": "Fury" - }, - { - "id": 7047, - "order": "Detection" - }, - { - "id": 7048, - "order": "Vitriol" - }, - { - "id": 7049, - "order": "Anger" - }, - { - "id": 7050, - "order": "Protection" - }, - { - "id": 7051, - "order": "Enlightenment" - }, - { - "id": 7052, - "order": "Power" - }, - { - "id": 7053, - "order": "Rage" - }, - { - "id": 7054, - "order": "Detection" - }, - { - "id": 7055, - "order": "Detection" - }, - { - "id": 7056, - "order": "Anger" - }, - { - "id": 7057, - "order": "Enlightenment" - }, - { - "id": 7058, - "order": "Titans" - }, - { - "id": 7059, - "order": "Power" - }, - { - "id": 7060, - "order": "Protection" - }, - { - "id": 7061, - "order": "the Fox" - }, - { - "id": 7062, - "order": "Enlightenment" - }, - { - "id": 7063, - "order": "the Twins" - }, - { - "id": 7064, - "order": "Skill" - }, - { - "id": 7065, - "order": "Reflection" - }, - { - "id": 7066, - "order": "the Fox" - }, - { - "id": 7067, - "order": "Enlightenment" - }, - { - "id": 7068, - "order": "the Twins" - }, - { - "id": 7069, - "order": "Titans" - }, - { - "id": 7070, - "order": "Enlightenment" - }, - { - "id": 7071, - "order": "Skill" - }, - { - "id": 7072, - "order": "Enlightenment" - }, - { - "id": 7073, - "order": "the Twins" - }, - { - "id": 7074, - "order": "Vitriol" - }, - { - "id": 7075, - "order": "Protection" - }, - { - "id": 7076, - "order": "Titans" - }, - { - "id": 7077, - "order": "Detection" - }, - { - "id": 7078, - "order": "Reflection" - }, - { - "id": 7079, - "order": "the Twins" - }, - { - "id": 7080, - "order": "Power" - }, - { - "id": 7081, - "order": "Protection" - }, - { - "id": 7082, - "order": "Fury" - }, - { - "id": 7083, - "order": "Fury" - }, - { - "id": 7084, - "order": "the Twins" - }, - { - "id": 7085, - "order": "Rage" - }, - { - "id": 7086, - "order": "Reflection" - }, - { - "id": 7087, - "order": "Titans" - }, - { - "id": 7088, - "order": "the Twins" - }, - { - "id": 7089, - "order": "Fury" - }, - { - "id": 7090, - "order": "Enlightenment" - }, - { - "id": 7091, - "order": "Brilliance" - }, - { - "id": 7092, - "order": "Titans" - }, - { - "id": 7093, - "order": "Titans" - }, - { - "id": 7094, - "order": "Detection" - }, - { - "id": 7095, - "order": "Fury" - }, - { - "id": 7096, - "order": "Vitriol" - }, - { - "id": 7097, - "order": "Anger" - }, - { - "id": 7098, - "order": "Reflection" - }, - { - "id": 7099, - "order": "Reflection" - }, - { - "id": 7100, - "order": "Fury" - }, - { - "id": 7101, - "order": "Skill" - }, - { - "id": 7102, - "order": "Anger" - }, - { - "id": 7103, - "order": "the Twins" - }, - { - "id": 7104, - "order": "Giants" - }, - { - "id": 7105, - "order": "Anger" - }, - { - "id": 7106, - "order": "Protection" - }, - { - "id": 7107, - "order": "Anger" - }, - { - "id": 7108, - "order": "Detection" - }, - { - "id": 7109, - "order": "Rage" - }, - { - "id": 7110, - "order": "the Fox" - }, - { - "id": 7111, - "order": "Skill" - }, - { - "id": 7112, - "order": "Protection" - }, - { - "id": 7113, - "order": "the Twins" - }, - { - "id": 7114, - "order": "Rage" - }, - { - "id": 7115, - "order": "Brilliance" - }, - { - "id": 7116, - "order": "Anger" - }, - { - "id": 7117, - "order": "Reflection" - }, - { - "id": 7118, - "order": "Skill" - }, - { - "id": 7119, - "order": "Reflection" - }, - { - "id": 7120, - "order": "Skill" - }, - { - "id": 7121, - "order": "Protection" - }, - { - "id": 7122, - "order": "Power" - }, - { - "id": 7123, - "order": "Detection" - }, - { - "id": 7124, - "order": "Brilliance" - }, - { - "id": 7125, - "order": "Titans" - }, - { - "id": 7126, - "order": "Titans" - }, - { - "id": 7127, - "order": "Enlightenment" - }, - { - "id": 7128, - "order": "Reflection" - }, - { - "id": 7129, - "order": "the Fox" - }, - { - "id": 7130, - "order": "Protection" - }, - { - "id": 7131, - "order": "Protection" - }, - { - "id": 7132, - "order": "the Twins" - }, - { - "id": 7133, - "order": "the Fox" - }, - { - "id": 7134, - "order": "Perfection" - }, - { - "id": 7135, - "order": "Anger" - }, - { - "id": 7136, - "order": "Anger" - }, - { - "id": 7137, - "order": "Perfection" - }, - { - "id": 7138, - "order": "Skill" - }, - { - "id": 7139, - "order": "Detection" - }, - { - "id": 7140, - "order": "Perfection" - }, - { - "id": 7141, - "order": "the Fox" - }, - { - "id": 7142, - "order": "Rage" - }, - { - "id": 7143, - "order": "Vitriol" - }, - { - "id": 7144, - "order": "the Fox" - }, - { - "id": 7145, - "order": "Detection" - }, - { - "id": 7146, - "order": "Vitriol" - }, - { - "id": 7147, - "order": "Fury" - }, - { - "id": 7148, - "order": "Brilliance" - }, - { - "id": 7149, - "order": "Reflection" - }, - { - "id": 7150, - "order": "Anger" - }, - { - "id": 7151, - "order": "Brilliance" - }, - { - "id": 7152, - "order": "Fury" - }, - { - "id": 7153, - "order": "Giants" - }, - { - "id": 7154, - "order": "Reflection" - }, - { - "id": 7155, - "order": "Vitriol" - }, - { - "id": 7156, - "order": "Skill" - }, - { - "id": 7157, - "order": "the Twins" - }, - { - "id": 7158, - "order": "Brilliance" - }, - { - "id": 7159, - "order": "Anger" - }, - { - "id": 7160, - "order": "the Fox" - }, - { - "id": 7161, - "order": "Fury" - }, - { - "id": 7162, - "order": "Giants" - }, - { - "id": 7163, - "order": "Fury" - }, - { - "id": 7164, - "order": "Rage" - }, - { - "id": 7165, - "order": "Enlightenment" - }, - { - "id": 7166, - "order": "Giants" - }, - { - "id": 7167, - "order": "Fury" - }, - { - "id": 7168, - "order": "Vitriol" - }, - { - "id": 7169, - "order": "Power" - }, - { - "id": 7170, - "order": "Fury" - }, - { - "id": 7171, - "order": "Perfection" - }, - { - "id": 7172, - "order": "Vitriol" - }, - { - "id": 7173, - "order": "Enlightenment" - }, - { - "id": 7174, - "order": "Perfection" - }, - { - "id": 7175, - "order": "Vitriol" - }, - { - "id": 7176, - "order": "Rage" - }, - { - "id": 7177, - "order": "Rage" - }, - { - "id": 7178, - "order": "Anger" - }, - { - "id": 7179, - "order": "Titans" - }, - { - "id": 7180, - "order": "Enlightenment" - }, - { - "id": 7181, - "order": "the Fox" - }, - { - "id": 7182, - "order": "Detection" - }, - { - "id": 7183, - "order": "Power" - }, - { - "id": 7184, - "order": "Fury" - }, - { - "id": 7185, - "order": "Anger" - }, - { - "id": 7186, - "order": "Giants" - }, - { - "id": 7187, - "order": "Reflection" - }, - { - "id": 7188, - "order": "Anger" - }, - { - "id": 7189, - "order": "Detection" - }, - { - "id": 7190, - "order": "Protection" - }, - { - "id": 7191, - "order": "Rage" - }, - { - "id": 7192, - "order": "Brilliance" - }, - { - "id": 7193, - "order": "the Twins" - }, - { - "id": 7194, - "order": "Power" - }, - { - "id": 7195, - "order": "Rage" - }, - { - "id": 7196, - "order": "Perfection" - }, - { - "id": 7197, - "order": "Rage" - }, - { - "id": 7198, - "order": "Vitriol" - }, - { - "id": 7199, - "order": "Vitriol" - }, - { - "id": 7200, - "order": "Rage" - }, - { - "id": 7201, - "order": "Reflection" - }, - { - "id": 7202, - "order": "Perfection" - }, - { - "id": 7203, - "order": "Rage" - }, - { - "id": 7204, - "order": "Protection" - }, - { - "id": 7205, - "order": "Fury" - }, - { - "id": 7206, - "order": "the Twins" - }, - { - "id": 7207, - "order": "Skill" - }, - { - "id": 7208, - "order": "Brilliance" - }, - { - "id": 7209, - "order": "Skill" - }, - { - "id": 7210, - "order": "Brilliance" - }, - { - "id": 7211, - "order": "Perfection" - }, - { - "id": 7212, - "order": "Detection" - }, - { - "id": 7213, - "order": "Brilliance" - }, - { - "id": 7214, - "order": "Rage" - }, - { - "id": 7215, - "order": "Enlightenment" - }, - { - "id": 7216, - "order": "Power" - }, - { - "id": 7217, - "order": "Enlightenment" - }, - { - "id": 7218, - "order": "Giants" - }, - { - "id": 7219, - "order": "Protection" - }, - { - "id": 7220, - "order": "Rage" - }, - { - "id": 7221, - "order": "Brilliance" - }, - { - "id": 7222, - "order": "Reflection" - }, - { - "id": 7223, - "order": "Fury" - }, - { - "id": 7224, - "order": "Titans" - }, - { - "id": 7225, - "order": "Skill" - }, - { - "id": 7226, - "order": "Vitriol" - }, - { - "id": 7227, - "order": "Enlightenment" - }, - { - "id": 7228, - "order": "Skill" - }, - { - "id": 7229, - "order": "Anger" - }, - { - "id": 7230, - "order": "Power" - }, - { - "id": 7231, - "order": "Enlightenment" - }, - { - "id": 7232, - "order": "Enlightenment" - }, - { - "id": 7233, - "order": "Reflection" - }, - { - "id": 7234, - "order": "Giants" - }, - { - "id": 7235, - "order": "Skill" - }, - { - "id": 7236, - "order": "Fury" - }, - { - "id": 7237, - "order": "Anger" - }, - { - "id": 7238, - "order": "Reflection" - }, - { - "id": 7239, - "order": "Titans" - }, - { - "id": 7240, - "order": "Reflection" - }, - { - "id": 7241, - "order": "Reflection" - }, - { - "id": 7242, - "order": "Enlightenment" - }, - { - "id": 7243, - "order": "Reflection" - }, - { - "id": 7244, - "order": "Vitriol" - }, - { - "id": 7245, - "order": "Brilliance" - }, - { - "id": 7246, - "order": "Detection" - }, - { - "id": 7247, - "order": "Protection" - }, - { - "id": 7248, - "order": "Enlightenment" - }, - { - "id": 7249, - "order": "Fury" - }, - { - "id": 7250, - "order": "the Fox" - }, - { - "id": 7251, - "order": "Perfection" - }, - { - "id": 7252, - "order": "Vitriol" - }, - { - "id": 7253, - "order": "Reflection" - }, - { - "id": 7254, - "order": "Fury" - }, - { - "id": 7255, - "order": "Anger" - }, - { - "id": 7256, - "order": "Titans" - }, - { - "id": 7257, - "order": "Anger" - }, - { - "id": 7258, - "order": "Titans" - }, - { - "id": 7259, - "order": "Anger" - }, - { - "id": 7260, - "order": "Protection" - }, - { - "id": 7261, - "order": "the Fox" - }, - { - "id": 7262, - "order": "Protection" - }, - { - "id": 7263, - "order": "Skill" - }, - { - "id": 7264, - "order": "the Twins" - }, - { - "id": 7265, - "order": "Anger" - }, - { - "id": 7266, - "order": "the Fox" - }, - { - "id": 7267, - "order": "the Fox" - }, - { - "id": 7268, - "order": "Giants" - }, - { - "id": 7269, - "order": "Giants" - }, - { - "id": 7270, - "order": "Protection" - }, - { - "id": 7271, - "order": "Vitriol" - }, - { - "id": 7272, - "order": "Vitriol" - }, - { - "id": 7273, - "order": "Detection" - }, - { - "id": 7274, - "order": "Detection" - }, - { - "id": 7275, - "order": "Protection" - }, - { - "id": 7276, - "order": "Anger" - }, - { - "id": 7277, - "order": "Perfection" - }, - { - "id": 7278, - "order": "the Fox" - }, - { - "id": 7279, - "order": "Skill" - }, - { - "id": 7280, - "order": "Skill" - }, - { - "id": 7281, - "order": "Perfection" - }, - { - "id": 7282, - "order": "Rage" - }, - { - "id": 7283, - "order": "the Twins" - }, - { - "id": 7284, - "order": "Reflection" - }, - { - "id": 7285, - "order": "Enlightenment" - }, - { - "id": 7286, - "order": "Power" - }, - { - "id": 7287, - "order": "Fury" - }, - { - "id": 7288, - "order": "Titans" - }, - { - "id": 7289, - "order": "Perfection" - }, - { - "id": 7290, - "order": "Brilliance" - }, - { - "id": 7291, - "order": "the Twins" - }, - { - "id": 7292, - "order": "Fury" - }, - { - "id": 7293, - "order": "Fury" - }, - { - "id": 7294, - "order": "Fury" - }, - { - "id": 7295, - "order": "Brilliance" - }, - { - "id": 7296, - "order": "Anger" - }, - { - "id": 7297, - "order": "Giants" - }, - { - "id": 7298, - "order": "Titans" - }, - { - "id": 7299, - "order": "Giants" - }, - { - "id": 7300, - "order": "Fury" - }, - { - "id": 7301, - "order": "Skill" - }, - { - "id": 7302, - "order": "Anger" - }, - { - "id": 7303, - "order": "Perfection" - }, - { - "id": 7304, - "order": "the Fox" - }, - { - "id": 7305, - "order": "Power" - }, - { - "id": 7306, - "order": "Reflection" - }, - { - "id": 7307, - "order": "Protection" - }, - { - "id": 7308, - "order": "Giants" - }, - { - "id": 7309, - "order": "Giants" - }, - { - "id": 7310, - "order": "Fury" - }, - { - "id": 7311, - "order": "Perfection" - }, - { - "id": 7312, - "order": "Power" - }, - { - "id": 7313, - "order": "Anger" - }, - { - "id": 7314, - "order": "Protection" - }, - { - "id": 7315, - "order": "Skill" - }, - { - "id": 7316, - "order": "Anger" - }, - { - "id": 7317, - "order": "Titans" - }, - { - "id": 7318, - "order": "Detection" - }, - { - "id": 7319, - "order": "the Twins" - }, - { - "id": 7320, - "order": "Protection" - }, - { - "id": 7321, - "order": "Fury" - }, - { - "id": 7322, - "order": "Reflection" - }, - { - "id": 7323, - "order": "Giants" - }, - { - "id": 7324, - "order": "Perfection" - }, - { - "id": 7325, - "order": "the Fox" - }, - { - "id": 7326, - "order": "Detection" - }, - { - "id": 7327, - "order": "the Twins" - }, - { - "id": 7328, - "order": "Giants" - }, - { - "id": 7329, - "order": "Rage" - }, - { - "id": 7330, - "order": "Enlightenment" - }, - { - "id": 7331, - "order": "Giants" - }, - { - "id": 7332, - "order": "Detection" - }, - { - "id": 7333, - "order": "the Fox" - }, - { - "id": 7334, - "order": "Protection" - }, - { - "id": 7335, - "order": "the Twins" - }, - { - "id": 7336, - "order": "Fury" - }, - { - "id": 7337, - "order": "Brilliance" - }, - { - "id": 7338, - "order": "Titans" - }, - { - "id": 7339, - "order": "the Fox" - }, - { - "id": 7340, - "order": "Reflection" - }, - { - "id": 7341, - "order": "Protection" - }, - { - "id": 7342, - "order": "Vitriol" - }, - { - "id": 7343, - "order": "Skill" - }, - { - "id": 7344, - "order": "Giants" - }, - { - "id": 7345, - "order": "Protection" - }, - { - "id": 7346, - "order": "Enlightenment" - }, - { - "id": 7347, - "order": "Reflection" - }, - { - "id": 7348, - "order": "Giants" - }, - { - "id": 7349, - "order": "the Fox" - }, - { - "id": 7350, - "order": "Brilliance" - }, - { - "id": 7351, - "order": "Power" - }, - { - "id": 7352, - "order": "the Fox" - }, - { - "id": 7353, - "order": "Vitriol" - }, - { - "id": 7354, - "order": "the Fox" - }, - { - "id": 7355, - "order": "the Fox" - }, - { - "id": 7356, - "order": "Skill" - }, - { - "id": 7357, - "order": "Protection" - }, - { - "id": 7358, - "order": "Protection" - }, - { - "id": 7359, - "order": "Power" - }, - { - "id": 7360, - "order": "Perfection" - }, - { - "id": 7361, - "order": "Power" - }, - { - "id": 7362, - "order": "Brilliance" - }, - { - "id": 7363, - "order": "Titans" - }, - { - "id": 7364, - "order": "Reflection" - }, - { - "id": 7365, - "order": "Rage" - }, - { - "id": 7366, - "order": "Detection" - }, - { - "id": 7367, - "order": "Protection" - }, - { - "id": 7368, - "order": "the Twins" - }, - { - "id": 7369, - "order": "Power" - }, - { - "id": 7370, - "order": "Reflection" - }, - { - "id": 7371, - "order": "Protection" - }, - { - "id": 7372, - "order": "Detection" - }, - { - "id": 7373, - "order": "Skill" - }, - { - "id": 7374, - "order": "Power" - }, - { - "id": 7375, - "order": "Detection" - }, - { - "id": 7376, - "order": "the Fox" - }, - { - "id": 7377, - "order": "Brilliance" - }, - { - "id": 7378, - "order": "Power" - }, - { - "id": 7379, - "order": "the Fox" - }, - { - "id": 7380, - "order": "Fury" - }, - { - "id": 7381, - "order": "Brilliance" - }, - { - "id": 7382, - "order": "Protection" - }, - { - "id": 7383, - "order": "Skill" - }, - { - "id": 7384, - "order": "Anger" - }, - { - "id": 7385, - "order": "Power" - }, - { - "id": 7386, - "order": "Perfection" - }, - { - "id": 7387, - "order": "Giants" - }, - { - "id": 7388, - "order": "the Fox" - }, - { - "id": 7389, - "order": "Perfection" - }, - { - "id": 7390, - "order": "the Fox" - }, - { - "id": 7391, - "order": "Protection" - }, - { - "id": 7392, - "order": "Anger" - }, - { - "id": 7393, - "order": "the Twins" - }, - { - "id": 7394, - "order": "Skill" - }, - { - "id": 7395, - "order": "Perfection" - }, - { - "id": 7396, - "order": "the Twins" - }, - { - "id": 7397, - "order": "Skill" - }, - { - "id": 7398, - "order": "Rage" - }, - { - "id": 7399, - "order": "Fury" - }, - { - "id": 7400, - "order": "Anger" - }, - { - "id": 7401, - "order": "Detection" - }, - { - "id": 7402, - "order": "Rage" - }, - { - "id": 7403, - "order": "Perfection" - }, - { - "id": 7404, - "order": "Titans" - }, - { - "id": 7405, - "order": "Perfection" - }, - { - "id": 7406, - "order": "Reflection" - }, - { - "id": 7407, - "order": "Protection" - }, - { - "id": 7408, - "order": "Titans" - }, - { - "id": 7409, - "order": "Giants" - }, - { - "id": 7410, - "order": "Giants" - }, - { - "id": 7411, - "order": "Rage" - }, - { - "id": 7412, - "order": "Titans" - }, - { - "id": 7413, - "order": "Enlightenment" - }, - { - "id": 7414, - "order": "the Fox" - }, - { - "id": 7415, - "order": "Protection" - }, - { - "id": 7416, - "order": "Enlightenment" - }, - { - "id": 7417, - "order": "Enlightenment" - }, - { - "id": 7418, - "order": "Fury" - }, - { - "id": 7419, - "order": "Fury" - }, - { - "id": 7420, - "order": "Fury" - }, - { - "id": 7421, - "order": "Skill" - }, - { - "id": 7422, - "order": "Brilliance" - }, - { - "id": 7423, - "order": "Power" - }, - { - "id": 7424, - "order": "Anger" - }, - { - "id": 7425, - "order": "Titans" - }, - { - "id": 7426, - "order": "Titans" - }, - { - "id": 7427, - "order": "Reflection" - }, - { - "id": 7428, - "order": "the Fox" - }, - { - "id": 7429, - "order": "Perfection" - }, - { - "id": 7430, - "order": "the Fox" - }, - { - "id": 7431, - "order": "Giants" - }, - { - "id": 7432, - "order": "Brilliance" - }, - { - "id": 7433, - "order": "the Fox" - }, - { - "id": 7434, - "order": "Anger" - }, - { - "id": 7435, - "order": "Titans" - }, - { - "id": 7436, - "order": "Rage" - }, - { - "id": 7437, - "order": "Enlightenment" - }, - { - "id": 7438, - "order": "Titans" - }, - { - "id": 7439, - "order": "Reflection" - }, - { - "id": 7440, - "order": "Brilliance" - }, - { - "id": 7441, - "order": "Perfection" - }, - { - "id": 7442, - "order": "Reflection" - }, - { - "id": 7443, - "order": "Power" - }, - { - "id": 7444, - "order": "Detection" - }, - { - "id": 7445, - "order": "Fury" - }, - { - "id": 7446, - "order": "Giants" - }, - { - "id": 7447, - "order": "Perfection" - }, - { - "id": 7448, - "order": "the Fox" - }, - { - "id": 7449, - "order": "Reflection" - }, - { - "id": 7450, - "order": "Anger" - }, - { - "id": 7451, - "order": "Rage" - }, - { - "id": 7452, - "order": "Enlightenment" - }, - { - "id": 7453, - "order": "Rage" - }, - { - "id": 7454, - "order": "Perfection" - }, - { - "id": 7455, - "order": "Protection" - }, - { - "id": 7456, - "order": "the Fox" - }, - { - "id": 7457, - "order": "Reflection" - }, - { - "id": 7458, - "order": "Brilliance" - }, - { - "id": 7459, - "order": "Enlightenment" - }, - { - "id": 7460, - "order": "Giants" - }, - { - "id": 7461, - "order": "Vitriol" - }, - { - "id": 7462, - "order": "Rage" - }, - { - "id": 7463, - "order": "Protection" - }, - { - "id": 7464, - "order": "Detection" - }, - { - "id": 7465, - "order": "Vitriol" - }, - { - "id": 7466, - "order": "Power" - }, - { - "id": 7467, - "order": "Power" - }, - { - "id": 7468, - "order": "Fury" - }, - { - "id": 7469, - "order": "Skill" - }, - { - "id": 7470, - "order": "Titans" - }, - { - "id": 7471, - "order": "Power" - }, - { - "id": 7472, - "order": "the Twins" - }, - { - "id": 7473, - "order": "Enlightenment" - }, - { - "id": 7474, - "order": "Rage" - }, - { - "id": 7475, - "order": "Perfection" - }, - { - "id": 7476, - "order": "Fury" - }, - { - "id": 7477, - "order": "Vitriol" - }, - { - "id": 7478, - "order": "Brilliance" - }, - { - "id": 7479, - "order": "Brilliance" - }, - { - "id": 7480, - "order": "the Twins" - }, - { - "id": 7481, - "order": "Reflection" - }, - { - "id": 7482, - "order": "Perfection" - }, - { - "id": 7483, - "order": "Titans" - }, - { - "id": 7484, - "order": "Reflection" - }, - { - "id": 7485, - "order": "Protection" - }, - { - "id": 7486, - "order": "Protection" - }, - { - "id": 7487, - "order": "Titans" - }, - { - "id": 7488, - "order": "Detection" - }, - { - "id": 7489, - "order": "Detection" - }, - { - "id": 7490, - "order": "Perfection" - }, - { - "id": 7491, - "order": "Titans" - }, - { - "id": 7492, - "order": "Vitriol" - }, - { - "id": 7493, - "order": "the Fox" - }, - { - "id": 7494, - "order": "Fury" - }, - { - "id": 7495, - "order": "Brilliance" - }, - { - "id": 7496, - "order": "Enlightenment" - }, - { - "id": 7497, - "order": "Vitriol" - }, - { - "id": 7498, - "order": "Brilliance" - }, - { - "id": 7499, - "order": "Perfection" - }, - { - "id": 7500, - "order": "Power" - }, - { - "id": 7501, - "order": "Reflection" - }, - { - "id": 7502, - "order": "Brilliance" - }, - { - "id": 7503, - "order": "Rage" - }, - { - "id": 7504, - "order": "the Twins" - }, - { - "id": 7505, - "order": "Titans" - }, - { - "id": 7506, - "order": "Giants" - }, - { - "id": 7507, - "order": "Fury" - }, - { - "id": 7508, - "order": "the Fox" - }, - { - "id": 7509, - "order": "Giants" - }, - { - "id": 7510, - "order": "Giants" - }, - { - "id": 7511, - "order": "Protection" - }, - { - "id": 7512, - "order": "Fury" - }, - { - "id": 7513, - "order": "Anger" - }, - { - "id": 7514, - "order": "Protection" - }, - { - "id": 7515, - "order": "Skill" - }, - { - "id": 7516, - "order": "the Fox" - }, - { - "id": 7517, - "order": "Brilliance" - }, - { - "id": 7518, - "order": "Skill" - }, - { - "id": 7519, - "order": "Giants" - }, - { - "id": 7520, - "order": "Perfection" - }, - { - "id": 7521, - "order": "Vitriol" - }, - { - "id": 7522, - "order": "Skill" - }, - { - "id": 7523, - "order": "Perfection" - }, - { - "id": 7524, - "order": "Skill" - }, - { - "id": 7525, - "order": "the Twins" - }, - { - "id": 7526, - "order": "Anger" - }, - { - "id": 7527, - "order": "Enlightenment" - }, - { - "id": 7528, - "order": "the Twins" - }, - { - "id": 7529, - "order": "Giants" - }, - { - "id": 7530, - "order": "Detection" - }, - { - "id": 7531, - "order": "Rage" - }, - { - "id": 7532, - "order": "Vitriol" - }, - { - "id": 7533, - "order": "Rage" - }, - { - "id": 7534, - "order": "Detection" - }, - { - "id": 7535, - "order": "Power" - }, - { - "id": 7536, - "order": "the Twins" - }, - { - "id": 7537, - "order": "Titans" - }, - { - "id": 7538, - "order": "Reflection" - }, - { - "id": 7539, - "order": "Fury" - }, - { - "id": 7540, - "order": "Fury" - }, - { - "id": 7541, - "order": "Perfection" - }, - { - "id": 7542, - "order": "Vitriol" - }, - { - "id": 7543, - "order": "Reflection" - }, - { - "id": 7544, - "order": "Brilliance" - }, - { - "id": 7545, - "order": "Rage" - }, - { - "id": 7546, - "order": "Protection" - }, - { - "id": 7547, - "order": "the Fox" - }, - { - "id": 7548, - "order": "the Fox" - }, - { - "id": 7549, - "order": "the Twins" - }, - { - "id": 7550, - "order": "Vitriol" - }, - { - "id": 7551, - "order": "Protection" - }, - { - "id": 7552, - "order": "the Twins" - }, - { - "id": 7553, - "order": "Enlightenment" - }, - { - "id": 7554, - "order": "Skill" - }, - { - "id": 7555, - "order": "Detection" - }, - { - "id": 7556, - "order": "Protection" - }, - { - "id": 7557, - "order": "Perfection" - }, - { - "id": 7558, - "order": "Skill" - }, - { - "id": 7559, - "order": "the Fox" - }, - { - "id": 7560, - "order": "the Twins" - }, - { - "id": 7561, - "order": "Giants" - }, - { - "id": 7562, - "order": "Rage" - }, - { - "id": 7563, - "order": "the Twins" - }, - { - "id": 7564, - "order": "Power" - }, - { - "id": 7565, - "order": "Giants" - }, - { - "id": 7566, - "order": "Fury" - }, - { - "id": 7567, - "order": "Brilliance" - }, - { - "id": 7568, - "order": "Anger" - }, - { - "id": 7569, - "order": "Rage" - }, - { - "id": 7570, - "order": "Fury" - }, - { - "id": 7571, - "order": "Perfection" - }, - { - "id": 7572, - "order": "Vitriol" - }, - { - "id": 7573, - "order": "Titans" - }, - { - "id": 7574, - "order": "Rage" - }, - { - "id": 7575, - "order": "the Twins" - }, - { - "id": 7576, - "order": "Vitriol" - }, - { - "id": 7577, - "order": "Fury" - }, - { - "id": 7578, - "order": "the Fox" - }, - { - "id": 7579, - "order": "Protection" - }, - { - "id": 7580, - "order": "the Twins" - }, - { - "id": 7581, - "order": "the Twins" - }, - { - "id": 7582, - "order": "Protection" - }, - { - "id": 7583, - "order": "Detection" - }, - { - "id": 7584, - "order": "Anger" - }, - { - "id": 7585, - "order": "Rage" - }, - { - "id": 7586, - "order": "Perfection" - }, - { - "id": 7587, - "order": "Protection" - }, - { - "id": 7588, - "order": "Titans" - }, - { - "id": 7589, - "order": "Anger" - }, - { - "id": 7590, - "order": "Rage" - }, - { - "id": 7591, - "order": "the Twins" - }, - { - "id": 7592, - "order": "the Fox" - }, - { - "id": 7593, - "order": "Anger" - }, - { - "id": 7594, - "order": "Titans" - }, - { - "id": 7595, - "order": "Detection" - }, - { - "id": 7596, - "order": "Vitriol" - }, - { - "id": 7597, - "order": "Protection" - }, - { - "id": 7598, - "order": "Fury" - }, - { - "id": 7599, - "order": "Reflection" - }, - { - "id": 7600, - "order": "Giants" - }, - { - "id": 7601, - "order": "Reflection" - }, - { - "id": 7602, - "order": "Giants" - }, - { - "id": 7603, - "order": "Perfection" - }, - { - "id": 7604, - "order": "Detection" - }, - { - "id": 7605, - "order": "Fury" - }, - { - "id": 7606, - "order": "Protection" - }, - { - "id": 7607, - "order": "Reflection" - }, - { - "id": 7608, - "order": "Rage" - }, - { - "id": 7609, - "order": "Enlightenment" - }, - { - "id": 7610, - "order": "Titans" - }, - { - "id": 7611, - "order": "Titans" - }, - { - "id": 7612, - "order": "Brilliance" - }, - { - "id": 7613, - "order": "Enlightenment" - }, - { - "id": 7614, - "order": "Reflection" - }, - { - "id": 7615, - "order": "Enlightenment" - }, - { - "id": 7616, - "order": "Perfection" - }, - { - "id": 7617, - "order": "Power" - }, - { - "id": 7618, - "order": "the Twins" - }, - { - "id": 7619, - "order": "the Twins" - }, - { - "id": 7620, - "order": "Rage" - }, - { - "id": 7621, - "order": "Protection" - }, - { - "id": 7622, - "order": "Power" - }, - { - "id": 7623, - "order": "Detection" - }, - { - "id": 7624, - "order": "Enlightenment" - }, - { - "id": 7625, - "order": "Power" - }, - { - "id": 7626, - "order": "Giants" - }, - { - "id": 7627, - "order": "Reflection" - }, - { - "id": 7628, - "order": "Power" - }, - { - "id": 7629, - "order": "Power" - }, - { - "id": 7630, - "order": "Reflection" - }, - { - "id": 7631, - "order": "Anger" - }, - { - "id": 7632, - "order": "Titans" - }, - { - "id": 7633, - "order": "Power" - }, - { - "id": 7634, - "order": "Anger" - }, - { - "id": 7635, - "order": "Protection" - }, - { - "id": 7636, - "order": "the Fox" - }, - { - "id": 7637, - "order": "Giants" - }, - { - "id": 7638, - "order": "the Fox" - }, - { - "id": 7639, - "order": "Reflection" - }, - { - "id": 7640, - "order": "Detection" - }, - { - "id": 7641, - "order": "Brilliance" - }, - { - "id": 7642, - "order": "Giants" - }, - { - "id": 7643, - "order": "Power" - }, - { - "id": 7644, - "order": "Reflection" - }, - { - "id": 7645, - "order": "Power" - }, - { - "id": 7646, - "order": "Protection" - }, - { - "id": 7647, - "order": "Vitriol" - }, - { - "id": 7648, - "order": "the Twins" - }, - { - "id": 7649, - "order": "Enlightenment" - }, - { - "id": 7650, - "order": "Perfection" - }, - { - "id": 7651, - "order": "Fury" - }, - { - "id": 7652, - "order": "Detection" - }, - { - "id": 7653, - "order": "Perfection" - }, - { - "id": 7654, - "order": "Protection" - }, - { - "id": 7655, - "order": "Skill" - }, - { - "id": 7656, - "order": "Detection" - }, - { - "id": 7657, - "order": "Fury" - }, - { - "id": 7658, - "order": "Fury" - }, - { - "id": 7659, - "order": "Enlightenment" - }, - { - "id": 7660, - "order": "Anger" - }, - { - "id": 7661, - "order": "Enlightenment" - }, - { - "id": 7662, - "order": "Titans" - }, - { - "id": 7663, - "order": "Titans" - }, - { - "id": 7664, - "order": "Fury" - }, - { - "id": 7665, - "order": "Titans" - }, - { - "id": 7666, - "order": "Perfection" - }, - { - "id": 7667, - "order": "Fury" - }, - { - "id": 7668, - "order": "Rage" - }, - { - "id": 7669, - "order": "Vitriol" - }, - { - "id": 7670, - "order": "Perfection" - }, - { - "id": 7671, - "order": "Titans" - }, - { - "id": 7672, - "order": "Reflection" - }, - { - "id": 7673, - "order": "Detection" - }, - { - "id": 7674, - "order": "Titans" - }, - { - "id": 7675, - "order": "Skill" - }, - { - "id": 7676, - "order": "Anger" - }, - { - "id": 7677, - "order": "the Fox" - }, - { - "id": 7678, - "order": "Brilliance" - }, - { - "id": 7679, - "order": "Brilliance" - }, - { - "id": 7680, - "order": "Power" - }, - { - "id": 7681, - "order": "Giants" - }, - { - "id": 7682, - "order": "Fury" - }, - { - "id": 7683, - "order": "Enlightenment" - }, - { - "id": 7684, - "order": "Detection" - }, - { - "id": 7685, - "order": "Titans" - }, - { - "id": 7686, - "order": "Titans" - }, - { - "id": 7687, - "order": "Titans" - }, - { - "id": 7688, - "order": "Perfection" - }, - { - "id": 7689, - "order": "Skill" - }, - { - "id": 7690, - "order": "Titans" - }, - { - "id": 7691, - "order": "Titans" - }, - { - "id": 7692, - "order": "Rage" - }, - { - "id": 7693, - "order": "Brilliance" - }, - { - "id": 7694, - "order": "Titans" - }, - { - "id": 7695, - "order": "Titans" - }, - { - "id": 7696, - "order": "the Twins" - }, - { - "id": 7697, - "order": "Reflection" - }, - { - "id": 7698, - "order": "Skill" - }, - { - "id": 7699, - "order": "Vitriol" - }, - { - "id": 7700, - "order": "Protection" - }, - { - "id": 7701, - "order": "Vitriol" - }, - { - "id": 7702, - "order": "Detection" - }, - { - "id": 7703, - "order": "Titans" - }, - { - "id": 7704, - "order": "Reflection" - }, - { - "id": 7705, - "order": "Enlightenment" - }, - { - "id": 7706, - "order": "Anger" - }, - { - "id": 7707, - "order": "Giants" - }, - { - "id": 7708, - "order": "Skill" - }, - { - "id": 7709, - "order": "Skill" - }, - { - "id": 7710, - "order": "Reflection" - }, - { - "id": 7711, - "order": "the Twins" - }, - { - "id": 7712, - "order": "Perfection" - }, - { - "id": 7713, - "order": "Anger" - }, - { - "id": 7714, - "order": "Fury" - }, - { - "id": 7715, - "order": "Detection" - }, - { - "id": 7716, - "order": "Titans" - }, - { - "id": 7717, - "order": "Vitriol" - }, - { - "id": 7718, - "order": "Rage" - }, - { - "id": 7719, - "order": "Vitriol" - }, - { - "id": 7720, - "order": "Titans" - }, - { - "id": 7721, - "order": "Giants" - }, - { - "id": 7722, - "order": "Anger" - }, - { - "id": 7723, - "order": "Perfection" - }, - { - "id": 7724, - "order": "the Fox" - }, - { - "id": 7725, - "order": "Brilliance" - }, - { - "id": 7726, - "order": "Vitriol" - }, - { - "id": 7727, - "order": "Skill" - }, - { - "id": 7728, - "order": "Power" - }, - { - "id": 7729, - "order": "Skill" - }, - { - "id": 7730, - "order": "Giants" - }, - { - "id": 7731, - "order": "Fury" - }, - { - "id": 7732, - "order": "Detection" - }, - { - "id": 7733, - "order": "Skill" - }, - { - "id": 7734, - "order": "Giants" - }, - { - "id": 7735, - "order": "Power" - }, - { - "id": 7736, - "order": "Skill" - }, - { - "id": 7737, - "order": "Reflection" - }, - { - "id": 7738, - "order": "Power" - }, - { - "id": 7739, - "order": "Brilliance" - }, - { - "id": 7740, - "order": "Reflection" - }, - { - "id": 7741, - "order": "Reflection" - }, - { - "id": 7742, - "order": "Detection" - }, - { - "id": 7743, - "order": "Perfection" - }, - { - "id": 7744, - "order": "the Twins" - }, - { - "id": 7745, - "order": "the Twins" - }, - { - "id": 7746, - "order": "Skill" - }, - { - "id": 7747, - "order": "Brilliance" - }, - { - "id": 7748, - "order": "Vitriol" - }, - { - "id": 7749, - "order": "the Fox" - }, - { - "id": 7750, - "order": "Enlightenment" - }, - { - "id": 7751, - "order": "Giants" - }, - { - "id": 7752, - "order": "Titans" - }, - { - "id": 7753, - "order": "Reflection" - }, - { - "id": 7754, - "order": "Power" - }, - { - "id": 7755, - "order": "the Twins" - }, - { - "id": 7756, - "order": "Skill" - }, - { - "id": 7757, - "order": "Skill" - }, - { - "id": 7758, - "order": "Vitriol" - }, - { - "id": 7759, - "order": "Fury" - }, - { - "id": 7760, - "order": "Brilliance" - }, - { - "id": 7761, - "order": "Anger" - }, - { - "id": 7762, - "order": "Vitriol" - }, - { - "id": 7763, - "order": "Enlightenment" - }, - { - "id": 7764, - "order": "Vitriol" - }, - { - "id": 7765, - "order": "Brilliance" - }, - { - "id": 7766, - "order": "Brilliance" - }, - { - "id": 7767, - "order": "Anger" - }, - { - "id": 7768, - "order": "Reflection" - }, - { - "id": 7769, - "order": "Reflection" - }, - { - "id": 7770, - "order": "the Fox" - }, - { - "id": 7771, - "order": "Anger" - }, - { - "id": 7772, - "order": "Fury" - }, - { - "id": 7773, - "order": "Reflection" - }, - { - "id": 7774, - "order": "Detection" - }, - { - "id": 7775, - "order": "Anger" - }, - { - "id": 7776, - "order": "Vitriol" - }, - { - "id": 7777, - "order": "the Fox" - }, - { - "id": 7778, - "order": "Skill" - }, - { - "id": 7779, - "order": "Vitriol" - }, - { - "id": 7780, - "order": "Brilliance" - }, - { - "id": 7781, - "order": "the Fox" - }, - { - "id": 7782, - "order": "Anger" - }, - { - "id": 7783, - "order": "Titans" - }, - { - "id": 7784, - "order": "Brilliance" - }, - { - "id": 7785, - "order": "Enlightenment" - }, - { - "id": 7786, - "order": "Giants" - }, - { - "id": 7787, - "order": "Reflection" - }, - { - "id": 7788, - "order": "the Twins" - }, - { - "id": 7789, - "order": "Brilliance" - }, - { - "id": 7790, - "order": "Enlightenment" - }, - { - "id": 7791, - "order": "Brilliance" - }, - { - "id": 7792, - "order": "Enlightenment" - }, - { - "id": 7793, - "order": "the Twins" - }, - { - "id": 7794, - "order": "the Fox" - }, - { - "id": 7795, - "order": "Perfection" - }, - { - "id": 7796, - "order": "Giants" - }, - { - "id": 7797, - "order": "Brilliance" - }, - { - "id": 7798, - "order": "Rage" - }, - { - "id": 7799, - "order": "Rage" - }, - { - "id": 7800, - "order": "Fury" - }, - { - "id": 7801, - "order": "Perfection" - }, - { - "id": 7802, - "order": "Skill" - }, - { - "id": 7803, - "order": "Brilliance" - }, - { - "id": 7804, - "order": "Fury" - }, - { - "id": 7805, - "order": "Reflection" - }, - { - "id": 7806, - "order": "Titans" - }, - { - "id": 7807, - "order": "Enlightenment" - }, - { - "id": 7808, - "order": "Detection" - }, - { - "id": 7809, - "order": "Protection" - }, - { - "id": 7810, - "order": "the Twins" - }, - { - "id": 7811, - "order": "Protection" - }, - { - "id": 7812, - "order": "Protection" - }, - { - "id": 7813, - "order": "Skill" - }, - { - "id": 7814, - "order": "Enlightenment" - }, - { - "id": 7815, - "order": "Fury" - }, - { - "id": 7816, - "order": "Detection" - }, - { - "id": 7817, - "order": "Rage" - }, - { - "id": 7818, - "order": "Enlightenment" - }, - { - "id": 7819, - "order": "Fury" - }, - { - "id": 7820, - "order": "Detection" - }, - { - "id": 7821, - "order": "Fury" - }, - { - "id": 7822, - "order": "Titans" - }, - { - "id": 7823, - "order": "Brilliance" - }, - { - "id": 7824, - "order": "Detection" - }, - { - "id": 7825, - "order": "the Fox" - }, - { - "id": 7826, - "order": "Enlightenment" - }, - { - "id": 7827, - "order": "Anger" - }, - { - "id": 7828, - "order": "Titans" - }, - { - "id": 7829, - "order": "Enlightenment" - }, - { - "id": 7830, - "order": "Giants" - }, - { - "id": 7831, - "order": "Protection" - }, - { - "id": 7832, - "order": "the Twins" - }, - { - "id": 7833, - "order": "Protection" - }, - { - "id": 7834, - "order": "Rage" - }, - { - "id": 7835, - "order": "Vitriol" - }, - { - "id": 7836, - "order": "Rage" - }, - { - "id": 7837, - "order": "Anger" - }, - { - "id": 7838, - "order": "Perfection" - }, - { - "id": 7839, - "order": "Brilliance" - }, - { - "id": 7840, - "order": "Enlightenment" - }, - { - "id": 7841, - "order": "Brilliance" - }, - { - "id": 7842, - "order": "the Twins" - }, - { - "id": 7843, - "order": "the Twins" - }, - { - "id": 7844, - "order": "Rage" - }, - { - "id": 7845, - "order": "Giants" - }, - { - "id": 7846, - "order": "Brilliance" - }, - { - "id": 7847, - "order": "Perfection" - }, - { - "id": 7848, - "order": "the Twins" - }, - { - "id": 7849, - "order": "the Twins" - }, - { - "id": 7850, - "order": "the Twins" - }, - { - "id": 7851, - "order": "Reflection" - }, - { - "id": 7852, - "order": "the Twins" - }, - { - "id": 7853, - "order": "Power" - }, - { - "id": 7854, - "order": "Enlightenment" - }, - { - "id": 7855, - "order": "Enlightenment" - }, - { - "id": 7856, - "order": "the Fox" - }, - { - "id": 7857, - "order": "Protection" - }, - { - "id": 7858, - "order": "Reflection" - }, - { - "id": 7859, - "order": "Vitriol" - }, - { - "id": 7860, - "order": "Detection" - }, - { - "id": 7861, - "order": "Fury" - }, - { - "id": 7862, - "order": "the Fox" - }, - { - "id": 7863, - "order": "Rage" - }, - { - "id": 7864, - "order": "Fury" - }, - { - "id": 7865, - "order": "Skill" - }, - { - "id": 7866, - "order": "the Twins" - }, - { - "id": 7867, - "order": "Titans" - }, - { - "id": 7868, - "order": "Enlightenment" - }, - { - "id": 7869, - "order": "the Fox" - }, - { - "id": 7870, - "order": "the Fox" - }, - { - "id": 7871, - "order": "Reflection" - }, - { - "id": 7872, - "order": "Perfection" - }, - { - "id": 7873, - "order": "Fury" - }, - { - "id": 7874, - "order": "Skill" - }, - { - "id": 7875, - "order": "Skill" - }, - { - "id": 7876, - "order": "Reflection" - }, - { - "id": 7877, - "order": "Power" - }, - { - "id": 7878, - "order": "Brilliance" - }, - { - "id": 7879, - "order": "the Twins" - }, - { - "id": 7880, - "order": "Fury" - }, - { - "id": 7881, - "order": "the Fox" - }, - { - "id": 7882, - "order": "Anger" - }, - { - "id": 7883, - "order": "Perfection" - }, - { - "id": 7884, - "order": "the Twins" - }, - { - "id": 7885, - "order": "Anger" - }, - { - "id": 7886, - "order": "Enlightenment" - }, - { - "id": 7887, - "order": "Detection" - }, - { - "id": 7888, - "order": "Rage" - }, - { - "id": 7889, - "order": "Vitriol" - }, - { - "id": 7890, - "order": "Perfection" - }, - { - "id": 7891, - "order": "Vitriol" - }, - { - "id": 7892, - "order": "the Fox" - }, - { - "id": 7893, - "order": "the Twins" - }, - { - "id": 7894, - "order": "Reflection" - }, - { - "id": 7895, - "order": "Giants" - }, - { - "id": 7896, - "order": "Reflection" - }, - { - "id": 7897, - "order": "Enlightenment" - }, - { - "id": 7898, - "order": "Protection" - }, - { - "id": 7899, - "order": "Titans" - }, - { - "id": 7900, - "order": "Power" - }, - { - "id": 7901, - "order": "the Twins" - }, - { - "id": 7902, - "order": "Enlightenment" - }, - { - "id": 7903, - "order": "Power" - }, - { - "id": 7904, - "order": "Skill" - }, - { - "id": 7905, - "order": "Giants" - }, - { - "id": 7906, - "order": "Rage" - }, - { - "id": 7907, - "order": "Fury" - }, - { - "id": 7908, - "order": "Brilliance" - }, - { - "id": 7909, - "order": "Reflection" - }, - { - "id": 7910, - "order": "Giants" - }, - { - "id": 7911, - "order": "the Twins" - }, - { - "id": 7912, - "order": "Perfection" - }, - { - "id": 7913, - "order": "Titans" - }, - { - "id": 7914, - "order": "Brilliance" - }, - { - "id": 7915, - "order": "Detection" - }, - { - "id": 7916, - "order": "Power" - }, - { - "id": 7917, - "order": "Enlightenment" - }, - { - "id": 7918, - "order": "Giants" - }, - { - "id": 7919, - "order": "Perfection" - }, - { - "id": 7920, - "order": "Protection" - }, - { - "id": 7921, - "order": "Anger" - }, - { - "id": 7922, - "order": "the Twins" - }, - { - "id": 7923, - "order": "Rage" - }, - { - "id": 7924, - "order": "the Twins" - }, - { - "id": 7925, - "order": "Giants" - }, - { - "id": 7926, - "order": "Brilliance" - }, - { - "id": 7927, - "order": "Perfection" - }, - { - "id": 7928, - "order": "Enlightenment" - }, - { - "id": 7929, - "order": "Titans" - }, - { - "id": 7930, - "order": "Skill" - }, - { - "id": 7931, - "order": "Protection" - }, - { - "id": 7932, - "order": "Detection" - }, - { - "id": 7933, - "order": "Vitriol" - }, - { - "id": 7934, - "order": "Titans" - }, - { - "id": 7935, - "order": "Protection" - }, - { - "id": 7936, - "order": "Reflection" - }, - { - "id": 7937, - "order": "Anger" - }, - { - "id": 7938, - "order": "Power" - }, - { - "id": 7939, - "order": "Perfection" - }, - { - "id": 7940, - "order": "Skill" - }, - { - "id": 7941, - "order": "Giants" - }, - { - "id": 7942, - "order": "Power" - }, - { - "id": 7943, - "order": "Skill" - }, - { - "id": 7944, - "order": "Skill" - }, - { - "id": 7945, - "order": "Reflection" - }, - { - "id": 7946, - "order": "the Fox" - }, - { - "id": 7947, - "order": "Enlightenment" - }, - { - "id": 7948, - "order": "the Twins" - }, - { - "id": 7949, - "order": "Perfection" - }, - { - "id": 7950, - "order": "Perfection" - }, - { - "id": 7951, - "order": "Detection" - }, - { - "id": 7952, - "order": "Skill" - }, - { - "id": 7953, - "order": "Giants" - }, - { - "id": 7954, - "order": "Anger" - }, - { - "id": 7955, - "order": "the Fox" - }, - { - "id": 7956, - "order": "Fury" - }, - { - "id": 7957, - "order": "Reflection" - }, - { - "id": 7958, - "order": "Giants" - }, - { - "id": 7959, - "order": "Reflection" - }, - { - "id": 7960, - "order": "Anger" - }, - { - "id": 7961, - "order": "Giants" - }, - { - "id": 7962, - "order": "Enlightenment" - }, - { - "id": 7963, - "order": "Giants" - }, - { - "id": 7964, - "order": "Perfection" - }, - { - "id": 7965, - "order": "Rage" - }, - { - "id": 7966, - "order": "Enlightenment" - }, - { - "id": 7967, - "order": "the Twins" - }, - { - "id": 7968, - "order": "Anger" - }, - { - "id": 7969, - "order": "Reflection" - }, - { - "id": 7970, - "order": "Perfection" - }, - { - "id": 7971, - "order": "Power" - }, - { - "id": 7972, - "order": "Vitriol" - }, - { - "id": 7973, - "order": "Rage" - }, - { - "id": 7974, - "order": "Titans" - }, - { - "id": 7975, - "order": "the Twins" - }, - { - "id": 7976, - "order": "Brilliance" - }, - { - "id": 7977, - "order": "Detection" - }, - { - "id": 7978, - "order": "the Twins" - }, - { - "id": 7979, - "order": "Reflection" - }, - { - "id": 7980, - "order": "Power" - }, - { - "id": 7981, - "order": "Detection" - }, - { - "id": 7982, - "order": "the Twins" - }, - { - "id": 7983, - "order": "Detection" - }, - { - "id": 7984, - "order": "the Fox" - }, - { - "id": 7985, - "order": "the Fox" - }, - { - "id": 7986, - "order": "Enlightenment" - }, - { - "id": 7987, - "order": "Detection" - }, - { - "id": 7988, - "order": "Power" - }, - { - "id": 7989, - "order": "Skill" - }, - { - "id": 7990, - "order": "Power" - }, - { - "id": 7991, - "order": "Power" - }, - { - "id": 7992, - "order": "Perfection" - }, - { - "id": 7993, - "order": "Enlightenment" - }, - { - "id": 7994, - "order": "Anger" - }, - { - "id": 7995, - "order": "Giants" - }, - { - "id": 7996, - "order": "Fury" - }, - { - "id": 7997, - "order": "the Fox" - }, - { - "id": 7998, - "order": "Detection" - }, - { - "id": 7999, - "order": "Vitriol" - }, - { - "id": 8000, - "order": "Protection" - } -] diff --git a/client/apps/game/src/dojo/createSystemCalls.ts b/client/apps/game/src/dojo/createSystemCalls.ts index b8142cec4..134287a5e 100644 --- a/client/apps/game/src/dojo/createSystemCalls.ts +++ b/client/apps/game/src/dojo/createSystemCalls.ts @@ -1,7 +1,6 @@ import type * as SystemProps from "@bibliothecadao/eternum"; -import { type SetupNetworkResult } from "./setupNetwork"; -export function createSystemCalls({ provider }: SetupNetworkResult) { +export function createSystemCalls({ provider }: { provider: SystemProps.EternumProvider }) { const uuid = async () => { return await provider.uuid(); }; diff --git a/client/apps/game/src/dojo/modelManager/utils/ArmyMovementUtils.ts b/client/apps/game/src/dojo/modelManager/utils/ArmyMovementUtils.ts deleted file mode 100644 index 477a48b8d..000000000 --- a/client/apps/game/src/dojo/modelManager/utils/ArmyMovementUtils.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { type ClientComponents } from "@/dojo/createClientComponents"; -import { GRAMS_PER_KG } from "@/ui/constants"; -import { EternumGlobalConfig } from "@bibliothecadao/eternum"; -import { type ComponentValue } from "@dojoengine/recs"; - -export const getRemainingCapacity = ( - army: ComponentValue, - capacity: ComponentValue, - armyWeight: ComponentValue | undefined, -) => { - return getArmyTotalCapacity(army, capacity) - getArmyWeight(armyWeight); -}; - -export const getArmyTotalCapacity = ( - army: ComponentValue, - capacity: ComponentValue, -) => { - return (capacity.weight_gram / BigInt(GRAMS_PER_KG)) * getArmyNumberOfTroops(army); -}; - -const getArmyWeight = (weight: ComponentValue | undefined) => { - if (!weight) return 0n; - return weight.value / BigInt(EternumGlobalConfig.resources.resourcePrecision); -}; - -export const getArmyNumberOfTroops = (army: ComponentValue) => { - const knights = army.troops.knight_count || 0n; - const crossbowmen = army.troops.crossbowman_count || 0n; - const paladins = army.troops.paladin_count || 0n; - return (knights + crossbowmen + paladins) / BigInt(EternumGlobalConfig.resources.resourcePrecision); -}; diff --git a/client/apps/game/src/dojo/setup.ts b/client/apps/game/src/dojo/setup.ts index 33b3032e7..0a2882286 100644 --- a/client/apps/game/src/dojo/setup.ts +++ b/client/apps/game/src/dojo/setup.ts @@ -2,6 +2,7 @@ import { AppStore } from "@/hooks/store/useUIStore"; import { LoadingStateKey } from "@/hooks/store/useWorldLoading"; import { BUILDING_CATEGORY_POPULATION_CONFIG_ID, + ClientConfigManager, HYPERSTRUCTURE_CONFIG_ID, WORLD_CONFIG_ID, } from "@bibliothecadao/eternum"; @@ -12,7 +13,6 @@ import { Clause, EntityKeysClause, ToriiClient } from "@dojoengine/torii-client" import { debounce } from "lodash"; import { createClientComponents } from "./createClientComponents"; import { createSystemCalls } from "./createSystemCalls"; -import { ClientConfigManager } from "./modelManager/ConfigManager"; import { setupNetwork } from "./setupNetwork"; export type SetupResult = Awaited>; diff --git a/client/apps/game/src/hooks/helpers/battles/useBattles.tsx b/client/apps/game/src/hooks/helpers/battles/useBattles.tsx index 90429d656..d3bfc98de 100644 --- a/client/apps/game/src/hooks/helpers/battles/useBattles.tsx +++ b/client/apps/game/src/hooks/helpers/battles/useBattles.tsx @@ -1,6 +1,5 @@ import { ClientComponents } from "@/dojo/createClientComponents"; -import { BattleManager } from "@/dojo/modelManager/BattleManager"; -import { EternumGlobalConfig, ID, Position } from "@bibliothecadao/eternum"; +import { BattleManager, EternumGlobalConfig, ID, Position } from "@bibliothecadao/eternum"; import { useComponentValue, useEntityQuery } from "@dojoengine/react"; import { Component, @@ -62,7 +61,7 @@ export const useBattleManager = (battleEntityId: ID) => { const battle = useComponentValue(dojo.setup.components.Battle, getEntityIdFromKeys([BigInt(battleEntityId)])); const battleManager = useMemo(() => { - return new BattleManager(battleEntityId, dojo); + return new BattleManager(dojo.setup.components, dojo.network.provider, battleEntityId); }, [battleEntityId, battle]); return battleManager; diff --git a/client/apps/game/src/hooks/helpers/useArmies.tsx b/client/apps/game/src/hooks/helpers/useArmies.tsx index 617eea3ff..04806f7c7 100644 --- a/client/apps/game/src/hooks/helpers/useArmies.tsx +++ b/client/apps/game/src/hooks/helpers/useArmies.tsx @@ -1,9 +1,10 @@ import { type ClientComponents } from "@/dojo/createClientComponents"; -import { getArmyTotalCapacity } from "@/dojo/modelManager/utils/ArmyMovementUtils"; import { + ArmyInfo, CapacityConfigCategory, ContractAddress, EternumGlobalConfig, + getArmyTotalCapacity, type ID, type Position, } from "@bibliothecadao/eternum"; @@ -16,7 +17,6 @@ import { getComponentValue, runQuery, type Component, - type ComponentValue, type Entity, } from "@dojoengine/recs"; import { getEntityIdFromKeys } from "@dojoengine/utils"; @@ -25,27 +25,6 @@ import { shortString } from "starknet"; import { useDojo } from "../context/DojoContext"; import { type PlayerStructure } from "./useEntities"; -export type ArmyInfo = ComponentValue & { - name: string; - isMine: boolean; - isMercenary: boolean; - isHome: boolean; - offset: Position; - health: ComponentValue; - position: ComponentValue; - quantity: ComponentValue; - owner: ComponentValue; - entityOwner: ComponentValue; - protectee: ComponentValue | undefined; - movable: ComponentValue | undefined; - totalCapacity: bigint; - weight: bigint; - arrivalTime: ComponentValue | undefined; - stamina: ComponentValue | undefined; - realm: ComponentValue | undefined; - homePosition: ComponentValue | undefined; -}; - const formatArmies = ( armies: Entity[], playerAddress: string, diff --git a/client/apps/game/src/hooks/helpers/useHyperstructures.tsx b/client/apps/game/src/hooks/helpers/useHyperstructures.tsx index 955d2d105..e235b3959 100644 --- a/client/apps/game/src/hooks/helpers/useHyperstructures.tsx +++ b/client/apps/game/src/hooks/helpers/useHyperstructures.tsx @@ -1,8 +1,7 @@ import { ClientComponents } from "@/dojo/createClientComponents"; import { configManager } from "@/dojo/setup"; -import { DUMMY_HYPERSTRUCTURE_ENTITY_ID } from "@/three/scenes/constants"; import { divideByPrecision, toHexString, toInteger } from "@/ui/utils/utils"; -import { ContractAddress, ID, ResourcesIds } from "@bibliothecadao/eternum"; +import { ContractAddress, DUMMY_HYPERSTRUCTURE_ENTITY_ID, ID, ResourcesIds } from "@bibliothecadao/eternum"; import { useEntityQuery } from "@dojoengine/react"; import { Component, ComponentValue, Entity, Has, HasValue, getComponentValue, runQuery } from "@dojoengine/recs"; import { useCallback, useMemo } from "react"; diff --git a/client/apps/game/src/hooks/helpers/useQuests.tsx b/client/apps/game/src/hooks/helpers/useQuests.tsx index 083e418e0..675278aa4 100644 --- a/client/apps/game/src/hooks/helpers/useQuests.tsx +++ b/client/apps/game/src/hooks/helpers/useQuests.tsx @@ -1,13 +1,12 @@ -import { TileManager } from "@/dojo/modelManager/TileManager"; import { questDetails } from "@/ui/components/quest/questDetails"; -import { BuildingType, ContractAddress, ID, QuestType } from "@bibliothecadao/eternum"; +import { ArmyInfo, BuildingType, ContractAddress, ID, QuestType, TileManager } from "@bibliothecadao/eternum"; import { useComponentValue, useEntityQuery } from "@dojoengine/react"; import { HasValue, getComponentValue } from "@dojoengine/recs"; import { getEntityIdFromKeys } from "@dojoengine/utils"; import { useMemo } from "react"; import { useDojo } from "../context/DojoContext"; import useUIStore from "../store/useUIStore"; -import { ArmyInfo, useArmiesByEntityOwnerWithPositionAndQuantity } from "./useArmies"; +import { useArmiesByEntityOwnerWithPositionAndQuantity } from "./useArmies"; import { useEntitiesUtils } from "./useEntities"; import { useGetMyOffers } from "./useTrade"; @@ -82,7 +81,7 @@ const useQuestDependencies = () => { [structureEntityId, getEntityInfo], ); - const tileManager = new TileManager(setup, { + const tileManager = new TileManager(setup.components, setup.network.provider, { col: structurePosition.x, row: structurePosition.y, }); diff --git a/client/apps/game/src/hooks/helpers/useRealm.tsx b/client/apps/game/src/hooks/helpers/useRealm.tsx index a62fb4bf7..a3dad3e5f 100644 --- a/client/apps/game/src/hooks/helpers/useRealm.tsx +++ b/client/apps/game/src/hooks/helpers/useRealm.tsx @@ -10,7 +10,7 @@ import { useEntityQuery } from "@dojoengine/react"; import { Has, HasValue, getComponentValue, runQuery, type ComponentValue, type Entity } from "@dojoengine/recs"; import { useMemo } from "react"; import { shortString } from "starknet"; -import realmIdsByOrder from "../../data/realmids_by_order.json"; +import realmIdsByOrder from "../../../../../common/data/realmids_by_order.json"; import { unpackResources } from "../../ui/utils/packedData"; import { getRealmNameById } from "../../ui/utils/realms"; import { getEntityIdFromKeys } from "../../ui/utils/utils"; diff --git a/client/apps/game/src/hooks/helpers/useResources.tsx b/client/apps/game/src/hooks/helpers/useResources.tsx index d8b4f5dae..422446bb5 100644 --- a/client/apps/game/src/hooks/helpers/useResources.tsx +++ b/client/apps/game/src/hooks/helpers/useResources.tsx @@ -1,9 +1,15 @@ import { configManager } from "@/dojo/setup"; -import { CapacityConfigCategory, ID, ResourcesIds, resources, type Resource } from "@bibliothecadao/eternum"; +import { + CapacityConfigCategory, + ID, + ResourceManager, + ResourcesIds, + resources, + type Resource, +} from "@bibliothecadao/eternum"; import { useComponentValue } from "@dojoengine/react"; import { Has, HasValue, getComponentValue, runQuery, type Entity } from "@dojoengine/recs"; import { useEffect, useMemo, useState } from "react"; -import { ResourceManager } from "../../dojo/modelManager/ResourceManager"; import { getEntityIdFromKeys } from "../../ui/utils/utils"; import { useDojo } from "../context/DojoContext"; import useUIStore from "../store/useUIStore"; @@ -30,7 +36,7 @@ export function useResourcesUtils() { return resources .map(({ id }) => { - const resourceManager = new ResourceManager(setup, entityId, id); + const resourceManager = new ResourceManager(setup.components, entityId, id); const balance = resourceManager.balance(currentDefaultTick); return { resourceId: id, amount: balance }; }) @@ -50,7 +56,7 @@ export function useResourcesUtils() { const resourceIds = resources.map((r) => r.id); return resourceIds .map((id) => { - const resourceManager = new ResourceManager(setup, entityId, id); + const resourceManager = new ResourceManager(setup.components, entityId, id); const balance = resourceManager.balance(currentDefaultTick); return { resourceId: id, amount: balance }; }) @@ -77,7 +83,7 @@ export function useResourcesUtils() { const realmsWithResource = allRealms .map((id: Entity) => { const realm = getComponentValue(Realm, id); - const resourceManager = realm ? new ResourceManager(setup, realm.entity_id, resourceId) : undefined; + const resourceManager = realm ? new ResourceManager(setup.components, realm.entity_id, resourceId) : undefined; const resource = resourceManager ? { balance: resourceManager.balance(currentDefaultTick), @@ -110,8 +116,12 @@ export function useResourceBalance() { const getFoodResources = (entityId: ID): Resource[] => { const currentDefaultTick = useUIStore.getState().currentDefaultTick; - const wheatBalance = new ResourceManager(dojo.setup, entityId, ResourcesIds.Wheat).balance(currentDefaultTick); - const fishBalance = new ResourceManager(dojo.setup, entityId, ResourcesIds.Fish).balance(currentDefaultTick); + const wheatBalance = new ResourceManager(dojo.setup.components, entityId, ResourcesIds.Wheat).balance( + currentDefaultTick, + ); + const fishBalance = new ResourceManager(dojo.setup.components, entityId, ResourcesIds.Fish).balance( + currentDefaultTick, + ); return [ { resourceId: ResourcesIds.Wheat, amount: wheatBalance }, @@ -120,13 +130,13 @@ export function useResourceBalance() { }; const getResourceProductionInfo = (entityId: ID, resourceId: ResourcesIds) => { - const resourceManager = new ResourceManager(dojo.setup, entityId, resourceId); + const resourceManager = new ResourceManager(dojo.setup.components, entityId, resourceId); return resourceManager.getProduction(); }; const getBalance = (entityId: ID, resourceId: ResourcesIds) => { const currentDefaultTick = useUIStore.getState().currentDefaultTick; - const resourceManager = new ResourceManager(dojo.setup, entityId, resourceId); + const resourceManager = new ResourceManager(dojo.setup.components, entityId, resourceId); return { balance: resourceManager.balance(currentDefaultTick), resourceId }; }; @@ -145,7 +155,7 @@ export function useResourceBalance() { const [resourceBalance, setResourceBalance] = useState({ amount: 0, resourceId }); useEffect(() => { - const resourceManager = new ResourceManager(dojo.setup, entityId, resourceId); + const resourceManager = new ResourceManager(dojo.setup.components, entityId, resourceId); setResourceBalance({ amount: resourceManager.balance(currentDefaultTick), resourceId }); }, []); @@ -169,7 +179,7 @@ export const useResourceManager = (entityId: ID, resourceId: ResourcesIds) => { ); const resourceManager = useMemo(() => { - return new ResourceManager(dojo.setup, entityId, resourceId); + return new ResourceManager(dojo.setup.components, entityId, resourceId); }, [dojo.setup, entityId, resourceId, production]); return resourceManager; diff --git a/client/apps/game/src/hooks/helpers/useStamina.tsx b/client/apps/game/src/hooks/helpers/useStamina.tsx index baac7d125..c4fdbb2a8 100644 --- a/client/apps/game/src/hooks/helpers/useStamina.tsx +++ b/client/apps/game/src/hooks/helpers/useStamina.tsx @@ -1,5 +1,4 @@ -import { StaminaManager } from "@/dojo/modelManager/StaminaManager"; -import { ID } from "@bibliothecadao/eternum"; +import { ID, StaminaManager } from "@bibliothecadao/eternum"; import { useComponentValue } from "@dojoengine/react"; import { getEntityIdFromKeys } from "@dojoengine/utils"; import { useMemo } from "react"; @@ -11,7 +10,7 @@ export const useStaminaManager = (entityId: ID) => { const stamina = useComponentValue(setup.components.Stamina, getEntityIdFromKeys([BigInt(entityId)])); const manager = useMemo(() => { - return new StaminaManager(setup, entityId); + return new StaminaManager(setup.components, entityId); }, [entityId, stamina?.amount, stamina?.last_refill_tick]); return manager; diff --git a/client/apps/game/src/hooks/helpers/useStructures.tsx b/client/apps/game/src/hooks/helpers/useStructures.tsx index 88a9282ec..cd00edcc1 100644 --- a/client/apps/game/src/hooks/helpers/useStructures.tsx +++ b/client/apps/game/src/hooks/helpers/useStructures.tsx @@ -1,27 +1,23 @@ -import { ClientComponents } from "@/dojo/createClientComponents"; -import { BattleManager } from "@/dojo/modelManager/BattleManager"; import { configManager } from "@/dojo/setup"; import { currentTickCount } from "@/ui/utils/utils"; -import { ContractAddress, ID, Position, StructureType, TickIds } from "@bibliothecadao/eternum"; -import { ComponentValue, Has, HasValue, getComponentValue, runQuery } from "@dojoengine/recs"; +import { + BattleManager, + ContractAddress, + ID, + Position, + Structure, + StructureType, + TickIds, +} from "@bibliothecadao/eternum"; +import { Has, HasValue, getComponentValue, runQuery } from "@dojoengine/recs"; import { getEntityIdFromKeys } from "@dojoengine/utils"; import { useMemo } from "react"; import { shortString } from "starknet"; import { useDojo } from "../context/DojoContext"; import useNextBlockTimestamp from "../useNextBlockTimestamp"; -import { ArmyInfo, getArmyByEntityId } from "./useArmies"; +import { getArmyByEntityId } from "./useArmies"; import { useEntitiesUtils } from "./useEntities"; -export type Structure = ComponentValue & { - isMine: boolean; - isMercenary: boolean; - name: string; - ownerName?: string; - protector: ArmyInfo | undefined; - owner: ComponentValue; - entityOwner: ComponentValue; -}; - export const useStructureAtPosition = ({ x, y }: Position): Structure | undefined => { const { account: { account }, @@ -251,7 +247,11 @@ export const useIsResourcesLocked = (structureEntityId: ID) => { const structure = getStructureByEntityId(structureEntityId); return useMemo(() => { - const battleManager = new BattleManager(structure?.protector?.battle_id || 0, dojo); + const battleManager = new BattleManager( + dojo.setup.components, + dojo.network.provider, + structure?.protector?.battle_id || 0, + ); return battleManager.isResourcesLocked(nextBlockTimestamp!); }, [structure, nextBlockTimestamp]); }; diff --git a/client/apps/game/src/hooks/store/_buildModeStore.tsx b/client/apps/game/src/hooks/store/_buildModeStore.tsx index 4011964dd..c0911e1d0 100644 --- a/client/apps/game/src/hooks/store/_buildModeStore.tsx +++ b/client/apps/game/src/hooks/store/_buildModeStore.tsx @@ -1,6 +1,5 @@ -import { BuildingType, ResourcesIds, StructureType } from "@bibliothecadao/eternum"; +import { BUILDINGS_CENTER, BuildingType, ResourcesIds, StructureType } from "@bibliothecadao/eternum"; import { Entity } from "@dojoengine/recs"; -import { BUILDINGS_CENTER } from "@/three/scenes/constants"; export interface BuildModeStore { previewBuilding: { type: BuildingType | StructureType; resource?: ResourcesIds } | null; diff --git a/client/apps/game/src/hooks/store/_threeStore.tsx b/client/apps/game/src/hooks/store/_threeStore.tsx index 44bf8f1cc..3711f6912 100644 --- a/client/apps/game/src/hooks/store/_threeStore.tsx +++ b/client/apps/game/src/hooks/store/_threeStore.tsx @@ -1,5 +1,5 @@ -import { HexPosition, StructureInfo } from "@/types"; -import { BuildingType, ID, Position } from "@bibliothecadao/eternum"; +import { StructureInfo } from "@/types"; +import { BuildingType, HexPosition, ID, Position } from "@bibliothecadao/eternum"; export interface ThreeStore { navigationTarget: HexPosition | null; diff --git a/client/apps/game/src/hooks/store/useLeaderBoardStore.tsx b/client/apps/game/src/hooks/store/useLeaderBoardStore.tsx index dd2dc63f4..f191d5539 100644 --- a/client/apps/game/src/hooks/store/useLeaderBoardStore.tsx +++ b/client/apps/game/src/hooks/store/useLeaderBoardStore.tsx @@ -1,5 +1,4 @@ -import { LeaderboardManager } from "@/dojo/modelManager/LeaderboardManager"; -import { ContractAddress, ID } from "@bibliothecadao/eternum"; +import { ContractAddress, ID, LeaderboardManager } from "@bibliothecadao/eternum"; import { useCallback } from "react"; import { create } from "zustand"; import { useDojo } from "../context/DojoContext"; @@ -33,7 +32,7 @@ export const useHyperstructureData = () => { const setGuildsByRank = useLeaderBoardStore((state) => state.setGuildsByRank); const updateLeaderboard = useCallback(() => { - const leaderboardManager = LeaderboardManager.instance(dojo); + const leaderboardManager = LeaderboardManager.instance(dojo.setup.components); const playersByRank = leaderboardManager.getPlayersByRank(nextBlockTimestamp || 0); const guildsByRank = leaderboardManager.getGuildsByRank(nextBlockTimestamp || 0, getGuildFromPlayerAddress); setPlayersByRank(playersByRank); diff --git a/client/apps/game/src/three/components/HighlightHexManager.ts b/client/apps/game/src/three/components/HighlightHexManager.ts index f99ebacb0..617307611 100644 --- a/client/apps/game/src/three/components/HighlightHexManager.ts +++ b/client/apps/game/src/three/components/HighlightHexManager.ts @@ -1,6 +1,6 @@ import { highlightHexMaterial } from "@/three/shaders/highlightHexMaterial"; -import { HexPosition } from "@/types"; import { getWorldPositionForHex } from "@/ui/utils/utils"; +import { HexPosition } from "@bibliothecadao/eternum"; import * as THREE from "three"; import { createHexagonShape } from "../geometry/HexagonGeometry"; import { HEX_SIZE } from "../scenes/constants"; diff --git a/client/apps/game/src/three/components/Navigator.ts b/client/apps/game/src/three/components/Navigator.ts index f941eeeeb..32a61ba56 100644 --- a/client/apps/game/src/three/components/Navigator.ts +++ b/client/apps/game/src/three/components/Navigator.ts @@ -1,5 +1,5 @@ -import { type HexPosition } from "@/types"; import { calculateDistanceInHexes, getWorldPositionForHex } from "@/ui/utils/utils"; +import { type HexPosition } from "@bibliothecadao/eternum"; import throttle from "lodash/throttle"; import * as THREE from "three"; import { CSS2DObject } from "three-stdlib"; diff --git a/client/apps/game/src/three/helpers/pathfinding.ts b/client/apps/game/src/three/helpers/pathfinding.ts index 2c63791a7..ec82b7f8f 100644 --- a/client/apps/game/src/three/helpers/pathfinding.ts +++ b/client/apps/game/src/three/helpers/pathfinding.ts @@ -1,6 +1,5 @@ -import { HexPosition } from "@/types"; import { Position } from "@/types/Position"; -import { getNeighborOffsets } from "@bibliothecadao/eternum"; +import { getNeighborOffsets, HexPosition } from "@bibliothecadao/eternum"; interface Node { col: number; diff --git a/client/apps/game/src/three/scenes/HexagonScene.ts b/client/apps/game/src/three/scenes/HexagonScene.ts index 4ef880b65..a48024b70 100644 --- a/client/apps/game/src/three/scenes/HexagonScene.ts +++ b/client/apps/game/src/three/scenes/HexagonScene.ts @@ -1,10 +1,11 @@ import { type SetupResult } from "@/dojo/setup"; import useUIStore, { type AppStore } from "@/hooks/store/useUIStore"; -import { type HexPosition, type SceneName } from "@/types"; +import { type SceneName } from "@/types"; import { GRAPHICS_SETTING, GraphicsSettings, IS_FLAT_MODE } from "@/ui/config"; import { LeftView } from "@/ui/modules/navigation/LeftNavigationModule"; import { RightView } from "@/ui/modules/navigation/RightNavigationModule"; import { getWorldPositionForHex } from "@/ui/utils/utils"; +import { type HexPosition } from "@bibliothecadao/eternum"; import gsap from "gsap"; import throttle from "lodash/throttle"; import * as THREE from "three"; diff --git a/client/apps/game/src/three/scenes/Hexception.tsx b/client/apps/game/src/three/scenes/Hexception.tsx index 702c2bb82..cd0b67860 100644 --- a/client/apps/game/src/three/scenes/Hexception.tsx +++ b/client/apps/game/src/three/scenes/Hexception.tsx @@ -1,9 +1,9 @@ import * as THREE from "three"; -import { TileManager } from "@/dojo/modelManager/TileManager"; import { SetupResult } from "@/dojo/setup"; +import { useAccountStore } from "@/hooks/context/accountStore"; import useUIStore from "@/hooks/store/useUIStore"; -import { HexPosition, ResourceMiningTypes, SceneName } from "@/types"; +import { ResourceMiningTypes, SceneName } from "@/types"; import { Position } from "@/types/Position"; import { IS_FLAT_MODE } from "@/ui/config"; import { ResourceIcon } from "@/ui/elements/ResourceIcon"; @@ -15,10 +15,13 @@ import { getWorldPositionForHex, } from "@/ui/utils/utils"; import { + BUILDINGS_CENTER, BuildingType, + HexPosition, RealmLevels, ResourcesIds, StructureType, + TileManager, findResourceById, getNeighborHexes, } from "@bibliothecadao/eternum"; @@ -36,7 +39,6 @@ import { playBuildingSound } from "../sound/utils"; import { BuildingSystemUpdate, RealmSystemUpdate } from "../systems/types"; import { HexagonScene } from "./HexagonScene"; import { - BUILDINGS_CENTER, HEX_SIZE, MinesMaterialsParams, StructureProgress, @@ -144,7 +146,7 @@ export default class HexceptionScene extends HexagonScene { this.loadBuildingModels(); this.loadBiomeModels(900); - this.tileManager = new TileManager(this.dojo, { col: 0, row: 0 }); + this.tileManager = new TileManager(this.dojo.components, this.dojo.network.provider, { col: 0, row: 0 }); this.setup(); @@ -308,7 +310,12 @@ export default class HexceptionScene extends HexagonScene { if (!this.tileManager.isHexOccupied(normalizedCoords)) { this.clearBuildingMode(); try { - await this.tileManager.placeBuilding(buildingType.type, normalizedCoords, buildingType.resource); + await this.tileManager.placeBuilding( + useAccountStore.getState().account!, + buildingType.type, + normalizedCoords, + buildingType.resource, + ); } catch (error) { this.removeBuilding(normalizedCoords.col, normalizedCoords.row); } @@ -404,7 +411,7 @@ export default class HexceptionScene extends HexagonScene { updateCastleLevel() { const structureType = this.tileManager.structureType(); if (structureType === StructureType.Realm) { - this.structureStage = this.tileManager.getRealmLevel(); + this.structureStage = this.tileManager.getRealmLevel(this.state.structureEntityId); } else if (structureType === StructureType.Hyperstructure) { this.structureStage = this.systemManager.getStructureStage( structureType, @@ -471,7 +478,7 @@ export default class HexceptionScene extends HexagonScene { if (parseInt(buildingType) === BuildingType.Castle) { buildingType = castleLevelToRealmCastle[this.structureStage]; - if (this.tileManager.getWonder()) { + if (this.tileManager.getWonder(this.state.structureEntityId)) { buildingType = WONDER_REALM; } } diff --git a/client/apps/game/src/three/scenes/Worldmap.ts b/client/apps/game/src/three/scenes/Worldmap.ts index b0b5710a8..80876a362 100644 --- a/client/apps/game/src/three/scenes/Worldmap.ts +++ b/client/apps/game/src/three/scenes/Worldmap.ts @@ -1,16 +1,24 @@ -import { ArmyMovementManager, TravelPaths } from "@/dojo/modelManager/ArmyMovementManager"; -import { TileManager } from "@/dojo/modelManager/TileManager"; import { SetupResult } from "@/dojo/setup"; +import { useAccountStore } from "@/hooks/context/accountStore"; import useUIStore from "@/hooks/store/useUIStore"; import { LoadingStateKey } from "@/hooks/store/useWorldLoading"; import { soundSelector } from "@/hooks/useUISound"; -import { HexPosition, SceneName } from "@/types"; +import { SceneName } from "@/types"; import { Position } from "@/types/Position"; import { FELT_CENTER, IS_FLAT_MODE, IS_MOBILE } from "@/ui/config"; import { UNDEFINED_STRUCTURE_ENTITY_ID } from "@/ui/constants"; import { LeftView } from "@/ui/modules/navigation/LeftNavigationModule"; import { getWorldPositionForHex } from "@/ui/utils/utils"; -import { BiomeType, ID, getNeighborOffsets } from "@bibliothecadao/eternum"; +import { + ArmyMovementManager, + BiomeType, + DUMMY_HYPERSTRUCTURE_ENTITY_ID, + HexPosition, + ID, + TileManager, + TravelPaths, + getNeighborOffsets, +} from "@bibliothecadao/eternum"; import { getEntities } from "@dojoengine/state"; import * as torii from "@dojoengine/torii-client"; import throttle from "lodash/throttle"; @@ -28,7 +36,7 @@ import { StructurePreview } from "../components/StructurePreview"; import { playSound } from "../sound/utils"; import { ArmySystemUpdate, TileSystemUpdate } from "../systems/types"; import { HexagonScene } from "./HexagonScene"; -import { DUMMY_HYPERSTRUCTURE_ENTITY_ID, HEX_SIZE, PREVIEW_BUILD_COLOR_INVALID } from "./constants"; +import { HEX_SIZE, PREVIEW_BUILD_COLOR_INVALID } from "./constants"; export default class WorldmapScene extends HexagonScene { private biome!: Biome; @@ -80,7 +88,7 @@ export default class WorldmapScene extends HexagonScene { this.biome = new Biome(); this.structurePreview = new StructurePreview(this.scene); - this.tileManager = new TileManager(this.dojo, { col: 0, row: 0 }); + this.tileManager = new TileManager(this.dojo.components, this.dojo.network.provider, { col: 0, row: 0 }); this.loadBiomeModels(this.renderChunkSize.width * this.renderChunkSize.height); @@ -295,12 +303,19 @@ export default class WorldmapScene extends HexagonScene { this.clearCache(); this.totalStructures = this.structureManager.getTotalStructures() + 1; - this.tileManager.placeStructure(this.structureEntityId, buildingType.type, contractHexPosition).catch(() => { - this.structureManager.structures.removeStructureFromPosition(hexCoords); - this.structureManager.structureHexCoords.get(hexCoords.col)?.delete(hexCoords.row); - this.clearCache(); - this.updateVisibleChunks(true); - }); + this.tileManager + .placeStructure( + useAccountStore.getState().account!, + this.structureEntityId, + buildingType.type, + contractHexPosition, + ) + .catch(() => { + this.structureManager.structures.removeStructureFromPosition(hexCoords); + this.structureManager.structureHexCoords.get(hexCoords.col)?.delete(hexCoords.row); + this.clearCache(); + this.updateVisibleChunks(true); + }); this.clearEntitySelection(); } @@ -333,9 +348,19 @@ export default class WorldmapScene extends HexagonScene { const selectedPath = travelPath.path; const isExplored = travelPath.isExplored ?? false; if (selectedPath.length > 0) { - const armyMovementManager = new ArmyMovementManager(this.dojo, selectedEntityId); + const armyMovementManager = new ArmyMovementManager( + this.dojo.components, + this.dojo.network.provider, + selectedEntityId, + ); playSound(soundSelector.unitMarching1, this.state.isSoundOn, this.state.effectsLevel); - armyMovementManager.moveArmy(selectedPath, isExplored, this.state.currentArmiesTick); + armyMovementManager.moveArmy( + useAccountStore.getState().account!, + selectedPath, + isExplored, + this.state.nextBlockTimestamp || 0, + this.state.currentArmiesTick, + ); this.state.updateHoveredHex(null); } } @@ -348,7 +373,11 @@ export default class WorldmapScene extends HexagonScene { return; } - const armyMovementManager = new ArmyMovementManager(this.dojo, selectedEntityId); + const armyMovementManager = new ArmyMovementManager( + this.dojo.components, + this.dojo.network.provider, + selectedEntityId, + ); const travelPaths = armyMovementManager.findPaths( this.exploredTiles, this.state.currentDefaultTick, diff --git a/client/apps/game/src/three/scenes/constants.ts b/client/apps/game/src/three/scenes/constants.ts index b04e15741..8c3b251ce 100644 --- a/client/apps/game/src/three/scenes/constants.ts +++ b/client/apps/game/src/three/scenes/constants.ts @@ -5,13 +5,10 @@ import * as THREE from "three"; import { BiomeType } from "../components/Biome"; export const HEX_SIZE = 1; -export const BUILDINGS_CENTER = [10, 10]; export const PREVIEW_BUILD_COLOR_VALID = 0x00a300; export const PREVIEW_BUILD_COLOR_INVALID = 0xff0000; -export const DUMMY_HYPERSTRUCTURE_ENTITY_ID = 99999999n; - export const structureTypeToBuildingType: Record = { [StructureType.Bank]: BuildingType.Bank, [StructureType.Realm]: BuildingType.Castle, diff --git a/client/apps/game/src/three/systems/SystemManager.ts b/client/apps/game/src/three/systems/SystemManager.ts index 8b5afe1c5..def27b468 100644 --- a/client/apps/game/src/three/systems/SystemManager.ts +++ b/client/apps/game/src/three/systems/SystemManager.ts @@ -1,9 +1,8 @@ import { ClientComponents } from "@/dojo/createClientComponents"; import { configManager, SetupResult } from "@/dojo/setup"; -import { HexPosition } from "@/types"; import { Position } from "@/types/Position"; import { divideByPrecision } from "@/ui/utils/utils"; -import { ID, RealmLevels, StructureType } from "@bibliothecadao/eternum"; +import { ID, RealmLevels, StructureType, type HexPosition } from "@bibliothecadao/eternum"; import { Component, ComponentValue, diff --git a/client/apps/game/src/three/systems/types.ts b/client/apps/game/src/three/systems/types.ts index c0fbf17c5..afef4f030 100644 --- a/client/apps/game/src/three/systems/types.ts +++ b/client/apps/game/src/three/systems/types.ts @@ -1,6 +1,5 @@ -import { HexPosition } from "@/types"; import { Position } from "@/types/Position"; -import { ID, StructureType } from "@bibliothecadao/eternum"; +import { ID, StructureType, type HexPosition } from "@bibliothecadao/eternum"; import { StructureProgress } from "../scenes/constants"; export type ArmySystemUpdate = { diff --git a/client/apps/game/src/types/index.ts b/client/apps/game/src/types/index.ts index 6a863e587..3e3d33a45 100644 --- a/client/apps/game/src/types/index.ts +++ b/client/apps/game/src/types/index.ts @@ -1,16 +1,11 @@ import { ID, StructureType } from "@bibliothecadao/eternum"; import * as THREE from "three"; import { Position } from "./Position"; -export type HexPosition = { col: number; row: number }; export enum SceneName { WorldMap = "map", Hexception = "hex", } -export interface Health { - current: bigint; - lifetime: bigint; -} export enum ResourceMiningTypes { Forge = "forge", diff --git a/client/apps/game/src/ui/components/bank/AddLiquidity.tsx b/client/apps/game/src/ui/components/bank/AddLiquidity.tsx index 0762967b3..5b191e3fd 100644 --- a/client/apps/game/src/ui/components/bank/AddLiquidity.tsx +++ b/client/apps/game/src/ui/components/bank/AddLiquidity.tsx @@ -1,4 +1,3 @@ -import { MarketManager } from "@/dojo/modelManager/MarketManager"; import { useDojo } from "@/hooks/context/DojoContext"; import { useEntities } from "@/hooks/helpers/useEntities"; import { useResourceBalance } from "@/hooks/helpers/useResources"; @@ -6,7 +5,7 @@ import { useIsResourcesLocked } from "@/hooks/helpers/useStructures"; import Button from "@/ui/elements/Button"; import { ResourceCost } from "@/ui/elements/ResourceCost"; import { divideByPrecision, multiplyByPrecision } from "@/ui/utils/utils"; -import { ContractAddress, ID, ResourcesIds, resources } from "@bibliothecadao/eternum"; +import { ContractAddress, ID, MarketManager, ResourcesIds, resources } from "@bibliothecadao/eternum"; import { useEffect, useMemo, useState } from "react"; import { ConfirmationPopup } from "./ConfirmationPopup"; import { LiquidityResourceRow } from "./LiquidityResourceRow"; @@ -40,7 +39,7 @@ const AddLiquidity = ({ const [openConfirmation, setOpenConfirmation] = useState(false); const marketManager = useMemo( - () => new MarketManager(setup, bankEntityId, ContractAddress(account.address), resourceId), + () => new MarketManager(setup.components, bankEntityId, ContractAddress(account.address), resourceId), [setup, bankEntityId, resourceId, account.address], ); diff --git a/client/apps/game/src/ui/components/bank/LiquidityResourceRow.tsx b/client/apps/game/src/ui/components/bank/LiquidityResourceRow.tsx index 16903573b..2eaf2da90 100644 --- a/client/apps/game/src/ui/components/bank/LiquidityResourceRow.tsx +++ b/client/apps/game/src/ui/components/bank/LiquidityResourceRow.tsx @@ -1,4 +1,3 @@ -import { MarketManager } from "@/dojo/modelManager/MarketManager"; import { configManager } from "@/dojo/setup"; import { useDojo } from "@/hooks/context/DojoContext"; import { useTravel } from "@/hooks/helpers/useTravel"; @@ -6,7 +5,7 @@ import Button from "@/ui/elements/Button"; import { ResourceCost } from "@/ui/elements/ResourceCost"; import { ResourceIcon } from "@/ui/elements/ResourceIcon"; import { divideByPrecision, formatNumber, getEntityIdFromKeys } from "@/ui/utils/utils"; -import { ContractAddress, EntityType, ID, ResourcesIds, resources } from "@bibliothecadao/eternum"; +import { ContractAddress, EntityType, ID, MarketManager, ResourcesIds, resources } from "@bibliothecadao/eternum"; import { useComponentValue } from "@dojoengine/react"; import React, { useCallback, useMemo, useState } from "react"; import { TravelInfo } from "../resources/TravelInfo"; @@ -49,7 +48,7 @@ export const LiquidityResourceRow = ({ const marketManager = useMemo( () => new MarketManager( - dojoContext.setup, + dojoContext.setup.components, bankEntityId, ContractAddress(dojoContext.account.account.address), resourceId, @@ -352,7 +351,7 @@ const InputResourcesPrice = ({ marketManager }: { marketManager: MarketManager } const totalPrice = inputResources.reduce((sum, resource) => { const price = new MarketManager( - setup, + setup.components, marketManager.bankEntityId, marketManager.player, resource.resource, diff --git a/client/apps/game/src/ui/components/bank/Swap.tsx b/client/apps/game/src/ui/components/bank/Swap.tsx index 52668b282..5a0678a82 100644 --- a/client/apps/game/src/ui/components/bank/Swap.tsx +++ b/client/apps/game/src/ui/components/bank/Swap.tsx @@ -1,5 +1,4 @@ import { ReactComponent as Refresh } from "@/assets/icons/common/refresh.svg"; -import { MarketManager } from "@/dojo/modelManager/MarketManager"; import { configManager } from "@/dojo/setup"; import { useDojo } from "@/hooks/context/DojoContext"; import { useResourceBalance } from "@/hooks/helpers/useResources"; @@ -14,6 +13,7 @@ import { ContractAddress, DONKEY_ENTITY_TYPE, ID, + MarketManager, RESOURCE_TIERS, Resources, ResourcesIds, @@ -59,7 +59,7 @@ export const ResourceSwap = ({ const lpFee = (isBuyResource ? lordsAmount : resourceAmount) * configManager.getAdminBankLpFee(); const marketManager = useMemo( - () => new MarketManager(setup, bankEntityId, ContractAddress(account.address), resourceId), + () => new MarketManager(setup.components, bankEntityId, ContractAddress(account.address), resourceId), [setup, bankEntityId, resourceId, account.address], ); diff --git a/client/apps/game/src/ui/components/battles/BattleListItem.tsx b/client/apps/game/src/ui/components/battles/BattleListItem.tsx index d1b73ac3b..2d056c4ba 100644 --- a/client/apps/game/src/ui/components/battles/BattleListItem.tsx +++ b/client/apps/game/src/ui/components/battles/BattleListItem.tsx @@ -1,13 +1,12 @@ import { ReactComponent as Inventory } from "@/assets/icons/common/bagpack.svg"; import { ReactComponent as Sword } from "@/assets/icons/common/cross-swords.svg"; import { ReactComponent as Eye } from "@/assets/icons/common/eye.svg"; -import { BattleManager } from "@/dojo/modelManager/BattleManager"; import { useDojo } from "@/hooks/context/DojoContext"; import { BattleInfo } from "@/hooks/helpers/battles/useBattles"; -import { ArmyInfo } from "@/hooks/helpers/useArmies"; import { useEntitiesUtils } from "@/hooks/helpers/useEntities"; import useUIStore from "@/hooks/store/useUIStore"; import useNextBlockTimestamp from "@/hooks/useNextBlockTimestamp"; +import { ArmyInfo, BattleManager } from "@bibliothecadao/eternum"; import { getComponentValue, HasValue, runQuery } from "@dojoengine/recs"; import React, { useMemo, useState } from "react"; import { ViewOnMapIcon } from "../military/ArmyManagementCard"; @@ -32,7 +31,10 @@ export const BattleListItem = ({ battle, ownArmySelected, showCompass = false }: const setBattleView = useUIStore((state) => state.setBattleView); const setTooltip = useUIStore((state) => state.setTooltip); - const battleManager = useMemo(() => new BattleManager(battle.entity_id, dojo), [battle]); + const battleManager = useMemo( + () => new BattleManager(dojo.setup.components, dojo.network.provider, battle.entity_id), + [battle], + ); const updatedBattle = useMemo(() => { const updatedBattle = battleManager.getUpdatedBattle(nextBlockTimestamp!); diff --git a/client/apps/game/src/ui/components/hyperstructures/HyperstructureDetails.tsx b/client/apps/game/src/ui/components/hyperstructures/HyperstructureDetails.tsx index cce097d6f..1c62a74c9 100644 --- a/client/apps/game/src/ui/components/hyperstructures/HyperstructureDetails.tsx +++ b/client/apps/game/src/ui/components/hyperstructures/HyperstructureDetails.tsx @@ -1,7 +1,6 @@ -import { LeaderboardManager } from "@/dojo/modelManager/LeaderboardManager"; import { useDojo } from "@/hooks/context/DojoContext"; import { Tabs } from "@/ui/elements/tab"; -import { ID } from "@bibliothecadao/eternum"; +import { ID, LeaderboardManager } from "@bibliothecadao/eternum"; import { useMemo, useState } from "react"; import { CoOwners } from "./CoOwners"; import { Leaderboard } from "./Leaderboard"; @@ -10,7 +9,9 @@ export const HyperstructureDetails = ({ hyperstructureEntityId }: { hyperstructu const dojo = useDojo(); const [selectedTab, setSelectedTab] = useState(0); - const latestChangeEvent = LeaderboardManager.instance(dojo).getCurrentCoOwners(hyperstructureEntityId); + const latestChangeEvent = LeaderboardManager.instance(dojo.setup.components).getCurrentCoOwners( + hyperstructureEntityId, + ); const coOwners = latestChangeEvent?.coOwners || []; const timestamp = latestChangeEvent?.timestamp || 0; diff --git a/client/apps/game/src/ui/components/hyperstructures/HyperstructurePanel.tsx b/client/apps/game/src/ui/components/hyperstructures/HyperstructurePanel.tsx index 3cca884a8..3e3a460b0 100644 --- a/client/apps/game/src/ui/components/hyperstructures/HyperstructurePanel.tsx +++ b/client/apps/game/src/ui/components/hyperstructures/HyperstructurePanel.tsx @@ -1,5 +1,3 @@ -import { LeaderboardManager } from "@/dojo/modelManager/LeaderboardManager"; -import { calculateCompletionPoints } from "@/dojo/modelManager/utils/LeaderboardUtils"; import { configManager } from "@/dojo/setup"; import { useDojo } from "@/hooks/context/DojoContext"; import { useContributions } from "@/hooks/helpers/useContributions"; @@ -16,7 +14,13 @@ import Button from "@/ui/elements/Button"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/ui/elements/Select"; import TextInput from "@/ui/elements/TextInput"; import { currencyIntlFormat, getEntityIdFromKeys, multiplyByPrecision, separateCamelCase } from "@/ui/utils/utils"; -import { Access, ContractAddress, MAX_NAME_LENGTH } from "@bibliothecadao/eternum"; +import { + Access, + calculateCompletionPoints, + ContractAddress, + LeaderboardManager, + MAX_NAME_LENGTH, +} from "@bibliothecadao/eternum"; import { useComponentValue } from "@dojoengine/react"; import { useMemo, useState } from "react"; import { ContributionSummary } from "./ContributionSummary"; @@ -140,7 +144,10 @@ export const HyperstructurePanel = ({ entity }: any) => { }, [myContributions, updates]); const myShares = useMemo(() => { - return LeaderboardManager.instance(dojo).getAddressShares(ContractAddress(account.address), entity.entity_id); + return LeaderboardManager.instance(dojo.setup.components).getAddressShares( + ContractAddress(account.address), + entity.entity_id, + ); }, [myContributions, updates]); const setAccess = async (access: bigint) => { diff --git a/client/apps/game/src/ui/components/hyperstructures/Leaderboard.tsx b/client/apps/game/src/ui/components/hyperstructures/Leaderboard.tsx index fed724c01..95dbad1de 100644 --- a/client/apps/game/src/ui/components/hyperstructures/Leaderboard.tsx +++ b/client/apps/game/src/ui/components/hyperstructures/Leaderboard.tsx @@ -1,4 +1,3 @@ -import { LeaderboardManager } from "@/dojo/modelManager/LeaderboardManager"; import { useDojo } from "@/hooks/context/DojoContext"; import { useHyperstructureUpdates } from "@/hooks/helpers/useHyperstructures"; import { useRealm } from "@/hooks/helpers/useRealm"; @@ -7,7 +6,7 @@ import Button from "@/ui/elements/Button"; import { SortButton, SortInterface } from "@/ui/elements/SortButton"; import { SortPanel } from "@/ui/elements/SortPanel"; import { currencyIntlFormat, displayAddress, getEntityIdFromKeys } from "@/ui/utils/utils"; -import { ContractAddress, ID } from "@bibliothecadao/eternum"; +import { ContractAddress, ID, LeaderboardManager } from "@bibliothecadao/eternum"; import { getComponentValue } from "@dojoengine/recs"; import { useMemo, useState } from "react"; @@ -31,7 +30,10 @@ export const Leaderboard = ({ const { getAddressName } = useRealm(); const playerPointsLeaderboard = useMemo(() => { - return LeaderboardManager.instance(dojo).getPlayersByRank(nextBlockTimestamp || 0, hyperstructureEntityId); + return LeaderboardManager.instance(dojo.setup.components).getPlayersByRank( + nextBlockTimestamp || 0, + hyperstructureEntityId, + ); }, [hyperstructureEntityId, nextBlockTimestamp]); const hyperstructure = useHyperstructureUpdates(hyperstructureEntityId); diff --git a/client/apps/game/src/ui/components/hyperstructures/ResourceExchange.tsx b/client/apps/game/src/ui/components/hyperstructures/ResourceExchange.tsx index b8d246acf..56d0b38b0 100644 --- a/client/apps/game/src/ui/components/hyperstructures/ResourceExchange.tsx +++ b/client/apps/game/src/ui/components/hyperstructures/ResourceExchange.tsx @@ -1,11 +1,10 @@ import { useDojo } from "@/hooks/context/DojoContext"; -import { ArmyInfo } from "@/hooks/helpers/useArmies"; import { useResourcesUtils } from "@/hooks/helpers/useResources"; import Button from "@/ui/elements/Button"; import { NumberInput } from "@/ui/elements/NumberInput"; import { ResourceIcon } from "@/ui/elements/ResourceIcon"; import { currencyFormat, divideByPrecision, multiplyByPrecision } from "@/ui/utils/utils"; -import { ID, ResourcesIds } from "@bibliothecadao/eternum"; +import { ArmyInfo, ID, ResourcesIds } from "@bibliothecadao/eternum"; import { ArrowRight } from "lucide-react"; import { useMemo, useState } from "react"; diff --git a/client/apps/game/src/ui/components/list/EntityList.tsx b/client/apps/game/src/ui/components/list/EntityList.tsx index 366364463..f03a72e48 100644 --- a/client/apps/game/src/ui/components/list/EntityList.tsx +++ b/client/apps/game/src/ui/components/list/EntityList.tsx @@ -1,6 +1,5 @@ -import { DUMMY_HYPERSTRUCTURE_ENTITY_ID } from "@/three/scenes/constants"; import Button from "@/ui/elements/Button"; -import { ID } from "@bibliothecadao/eternum"; +import { DUMMY_HYPERSTRUCTURE_ENTITY_ID, ID } from "@bibliothecadao/eternum"; import clsx from "clsx"; import React, { useEffect, useState } from "react"; diff --git a/client/apps/game/src/ui/components/military/ArmyChip.tsx b/client/apps/game/src/ui/components/military/ArmyChip.tsx index 6cafa5cf3..ef67635f2 100644 --- a/client/apps/game/src/ui/components/military/ArmyChip.tsx +++ b/client/apps/game/src/ui/components/military/ArmyChip.tsx @@ -2,9 +2,8 @@ import { ReactComponent as Inventory } from "@/assets/icons/common/bagpack.svg"; import { ReactComponent as Plus } from "@/assets/icons/common/plus-sign.svg"; import { ReactComponent as Swap } from "@/assets/icons/common/swap.svg"; import { ReactComponent as Compass } from "@/assets/icons/Compass.svg"; -import { BattleManager } from "@/dojo/modelManager/BattleManager"; import { useDojo } from "@/hooks/context/DojoContext"; -import { ArmyInfo, getArmiesByPosition } from "@/hooks/helpers/useArmies"; +import { getArmiesByPosition } from "@/hooks/helpers/useArmies"; import { armyHasTroops } from "@/hooks/helpers/useQuests"; import useUIStore from "@/hooks/store/useUIStore"; import useNextBlockTimestamp from "@/hooks/useNextBlockTimestamp"; @@ -12,7 +11,7 @@ import { Position as PositionInterface } from "@/types/Position"; import { ArmyCapacity } from "@/ui/elements/ArmyCapacity"; import Button from "@/ui/elements/Button"; import { StaminaResource } from "@/ui/elements/StaminaResource"; -import { Position } from "@bibliothecadao/eternum"; +import { ArmyInfo, BattleManager, Position } from "@bibliothecadao/eternum"; import { LucideArrowRight } from "lucide-react"; import React, { Dispatch, SetStateAction, useMemo, useState } from "react"; import { useLocation } from "wouter"; @@ -76,7 +75,10 @@ export const ArmyChip = ({ const [editMode, setEditMode] = useState(false); - const battleManager = useMemo(() => new BattleManager(army.battle_id, dojo), [army.battle_id]); + const battleManager = useMemo( + () => new BattleManager(dojo.setup.components, dojo.network.provider, army.battle_id), + [army.battle_id], + ); const isHome = army.isHome; diff --git a/client/apps/game/src/ui/components/military/ArmyList.tsx b/client/apps/game/src/ui/components/military/ArmyList.tsx index c93c1f201..a5e56e189 100644 --- a/client/apps/game/src/ui/components/military/ArmyList.tsx +++ b/client/apps/game/src/ui/components/military/ArmyList.tsx @@ -1,4 +1,3 @@ -import { TileManager } from "@/dojo/modelManager/TileManager"; import { configManager } from "@/dojo/setup"; import { useDojo } from "@/hooks/context/DojoContext"; import { useArmiesByEntityOwner } from "@/hooks/helpers/useArmies"; @@ -7,7 +6,7 @@ import useUIStore from "@/hooks/store/useUIStore"; import Button from "@/ui/elements/Button"; import { Headline } from "@/ui/elements/Headline"; import { HintModalButton } from "@/ui/elements/HintModalButton"; -import { BuildingType, StructureType } from "@bibliothecadao/eternum"; +import { BuildingType, StructureType, TileManager } from "@bibliothecadao/eternum"; import { useMemo, useState } from "react"; import { HintSection } from "../hints/HintModal"; import { ArmyChip } from "./ArmyChip"; @@ -24,7 +23,10 @@ export const EntityArmyList = ({ structure }: { structure: PlayerStructure }) => const dojo = useDojo(); const setTooltip = useUIStore((state) => state.setTooltip); - const tileManager = new TileManager(dojo.setup, { col: structure.position.x, row: structure.position.y }); + const tileManager = new TileManager(dojo.setup.components, dojo.network.provider, { + col: structure.position.x, + row: structure.position.y, + }); const existingBuildings = tileManager.existingBuildings(); const { entityArmies: structureArmies } = useArmiesByEntityOwner({ diff --git a/client/apps/game/src/ui/components/military/ArmyManagementCard.tsx b/client/apps/game/src/ui/components/military/ArmyManagementCard.tsx index cd1ca54c6..d8e3195f3 100644 --- a/client/apps/game/src/ui/components/military/ArmyManagementCard.tsx +++ b/client/apps/game/src/ui/components/military/ArmyManagementCard.tsx @@ -20,12 +20,11 @@ import { ID, Position, ResourcesIds, U32_MAX } from "@bibliothecadao/eternum"; import { useComponentValue } from "@dojoengine/react"; import { useCallback, useEffect, useMemo, useState } from "react"; -import { ArmyManager } from "@/dojo/modelManager/ArmyManager"; import { configManager } from "@/dojo/setup"; -import { ArmyInfo } from "@/hooks/helpers/useArmies"; import { useQuery } from "@/hooks/helpers/useQuery"; import { Position as PositionInterface } from "@/types/Position"; import { ResourceIcon } from "@/ui/elements/ResourceIcon"; +import { ArmyInfo, ArmyManager } from "@bibliothecadao/eternum"; import clsx from "clsx"; type ArmyManagementCardProps = { @@ -48,7 +47,7 @@ export const ArmyManagementCard = ({ owner_entity, army, setSelectedEntity }: Ar const maxTroopCountPerArmy = configManager.getTroopConfig().maxTroopCount; - const armyManager = new ArmyManager(dojo, army?.entity_id || 0); + const armyManager = new ArmyManager(dojo.setup.network.provider, dojo.setup.components, army?.entity_id || 0); const isDefendingArmy = Boolean(army?.protectee); @@ -110,7 +109,7 @@ export const ArmyManagementCard = ({ owner_entity, army, setSelectedEntity }: Ar setIsLoading(true); try { - await armyManager.deleteArmy(army?.entity_id || 0); + await armyManager.deleteArmy(account, army?.entity_id || 0); setSelectedEntity && setSelectedEntity(null); } catch (e) { console.error(e); @@ -120,7 +119,7 @@ export const ArmyManagementCard = ({ owner_entity, army, setSelectedEntity }: Ar const handleBuyArmy = async () => { setIsLoading(true); - armyManager.addTroops({ + armyManager.addTroops(account, { [ResourcesIds.Knight]: multiplyByPrecision(troopCounts[ResourcesIds.Knight]), [ResourcesIds.Crossbowman]: multiplyByPrecision(troopCounts[ResourcesIds.Crossbowman]), [ResourcesIds.Paladin]: multiplyByPrecision(troopCounts[ResourcesIds.Paladin]), diff --git a/client/apps/game/src/ui/components/military/EntitiesArmyTable.tsx b/client/apps/game/src/ui/components/military/EntitiesArmyTable.tsx index 27a948427..8191c173a 100644 --- a/client/apps/game/src/ui/components/military/EntitiesArmyTable.tsx +++ b/client/apps/game/src/ui/components/military/EntitiesArmyTable.tsx @@ -1,4 +1,4 @@ -import { ArmyInfo, useArmiesByEntityOwner } from "@/hooks/helpers/useArmies"; +import { useArmiesByEntityOwner } from "@/hooks/helpers/useArmies"; import { useEntities } from "@/hooks/helpers/useEntities"; import useUIStore from "@/hooks/store/useUIStore"; import Button from "@/ui/elements/Button"; @@ -7,8 +7,8 @@ import { HintModalButton } from "@/ui/elements/HintModalButton"; import { ResourceIcon } from "@/ui/elements/ResourceIcon"; import { BattleSimulation } from "@/ui/modules/simulation/BattleSimulation"; import { PillageSimulation } from "@/ui/modules/simulation/pillage-simulation"; -import { divideByPrecision, divideByPrecisionFormatted } from "@/ui/utils/utils"; -import { ID, ResourcesIds } from "@bibliothecadao/eternum"; +import { divideByPrecisionFormatted } from "@/ui/utils/utils"; +import { ArmyInfo, ID, ResourcesIds } from "@bibliothecadao/eternum"; import { HintSection } from "../hints/HintModal"; import { battleSimulation, pillageSimulation } from "../navigation/Config"; import { ArmyChip } from "./ArmyChip"; diff --git a/client/apps/game/src/ui/components/quest/steps/pauseProductionSteps.tsx b/client/apps/game/src/ui/components/quest/steps/pauseProductionSteps.tsx index 9ad21170f..19de7a152 100644 --- a/client/apps/game/src/ui/components/quest/steps/pauseProductionSteps.tsx +++ b/client/apps/game/src/ui/components/quest/steps/pauseProductionSteps.tsx @@ -1,7 +1,7 @@ import useUIStore from "@/hooks/store/useUIStore"; -import { BUILDINGS_CENTER } from "@/three/scenes/constants"; import { LeftView } from "@/ui/modules/navigation/LeftNavigationModule"; import { RightView } from "@/ui/modules/navigation/RightNavigationModule"; +import { BUILDINGS_CENTER } from "@bibliothecadao/eternum"; import { StepOptions } from "shepherd.js"; import { StepButton, waitForElement } from "./utils"; diff --git a/client/apps/game/src/ui/components/resources/DepositResources.tsx b/client/apps/game/src/ui/components/resources/DepositResources.tsx index 23bc50f21..2be3e0e4b 100644 --- a/client/apps/game/src/ui/components/resources/DepositResources.tsx +++ b/client/apps/game/src/ui/components/resources/DepositResources.tsx @@ -1,5 +1,3 @@ -import { BattleManager } from "@/dojo/modelManager/BattleManager"; -import { ResourceInventoryManager } from "@/dojo/modelManager/ResourceInventoryManager"; import { useDojo } from "@/hooks/context/DojoContext"; import { ArrivalInfo } from "@/hooks/helpers/use-resource-arrivals"; import { useStructureByEntityId } from "@/hooks/helpers/useStructures"; @@ -7,7 +5,7 @@ import useUIStore from "@/hooks/store/useUIStore"; import { soundSelector, useUiSounds } from "@/hooks/useUISound"; import Button from "@/ui/elements/Button"; import { getEntityIdFromKeys } from "@/ui/utils/utils"; -import { ID, Resource } from "@bibliothecadao/eternum"; +import { BattleManager, ID, Resource, ResourceInventoryManager } from "@bibliothecadao/eternum"; import { useComponentValue } from "@dojoengine/react"; import { useMemo, useState } from "react"; @@ -31,7 +29,11 @@ export const DepositResources = ({ arrival, resources, armyInBattle }: DepositRe return false; } const currentTimestamp = useUIStore.getState().nextBlockTimestamp; - const battleManager = new BattleManager(structureAtPosition.protector.battle_id, dojo); + const battleManager = new BattleManager( + dojo.setup.components, + dojo.network.provider, + structureAtPosition.protector.battle_id, + ); const battleOngoing = battleManager.isBattleOngoing(currentTimestamp!); return battleOngoing && !battleManager.isSiege(currentTimestamp!); @@ -43,14 +45,14 @@ export const DepositResources = ({ arrival, resources, armyInBattle }: DepositRe useComponentValue(dojo.setup.components.Weight, getEntityIdFromKeys([BigInt(arrival.entityId)]))?.value || 0n; const depositManager = useMemo(() => { - return new ResourceInventoryManager(dojo.setup, arrival.entityId); + return new ResourceInventoryManager(dojo.setup.components, dojo.network.provider, arrival.entityId); }, [dojo.setup, arrival.entityId]); const onOffload = async (receiverEntityId: ID) => { if (resources.length > 0) { playDeposit(); setIsLoading(true); - await depositManager.onOffloadAll(receiverEntityId, resources).then(() => { + await depositManager.onOffloadAll(dojo.account.account, receiverEntityId, resources).then(() => { setIsLoading(false); }); } diff --git a/client/apps/game/src/ui/components/structures/worldmap/StructureCard.tsx b/client/apps/game/src/ui/components/structures/worldmap/StructureCard.tsx index 0e779ad50..6bdf8a585 100644 --- a/client/apps/game/src/ui/components/structures/worldmap/StructureCard.tsx +++ b/client/apps/game/src/ui/components/structures/worldmap/StructureCard.tsx @@ -1,6 +1,6 @@ import { configManager } from "@/dojo/setup"; import { useDojo } from "@/hooks/context/DojoContext"; -import { ArmyInfo, getArmyByEntityId } from "@/hooks/helpers/useArmies"; +import { getArmyByEntityId } from "@/hooks/helpers/useArmies"; import { useGuilds } from "@/hooks/helpers/useGuilds"; import { useQuery } from "@/hooks/helpers/useQuery"; import { useIsStructureImmune, useStructureAtPosition, useStructureImmunityTimer } from "@/hooks/helpers/useStructures"; @@ -15,7 +15,7 @@ import { ResourceIcon } from "@/ui/elements/ResourceIcon"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/ui/elements/Tabs"; import { getTotalTroops } from "@/ui/modules/military/battle-view/BattleHistory"; import { currencyFormat, formatNumber, formatStringNumber } from "@/ui/utils/utils"; -import { ContractAddress, ID, ResourcesIds } from "@bibliothecadao/eternum"; +import { ArmyInfo, ContractAddress, ID, ResourcesIds } from "@bibliothecadao/eternum"; import { useComponentValue } from "@dojoengine/react"; import { getEntityIdFromKeys } from "@dojoengine/utils"; import clsx from "clsx"; diff --git a/client/apps/game/src/ui/components/trading/MarketModal.tsx b/client/apps/game/src/ui/components/trading/MarketModal.tsx index aafb821e3..a7f6a243f 100644 --- a/client/apps/game/src/ui/components/trading/MarketModal.tsx +++ b/client/apps/game/src/ui/components/trading/MarketModal.tsx @@ -3,7 +3,6 @@ import { ReactComponent as Crown } from "@/assets/icons/Crown.svg"; import { ReactComponent as Scroll } from "@/assets/icons/Scroll.svg"; import { ReactComponent as Sparkles } from "@/assets/icons/Sparkles.svg"; import { ReactComponent as Swap } from "@/assets/icons/Swap.svg"; -import { BattleManager } from "@/dojo/modelManager/BattleManager"; import { configManager } from "@/dojo/setup"; import { useDojo } from "@/hooks/context/DojoContext"; import { useBattlesByPosition } from "@/hooks/helpers/battles/useBattles"; @@ -23,7 +22,7 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@ import { Tabs } from "@/ui/elements/tab"; import { formatTimeDifference } from "@/ui/modules/military/battle-view/BattleProgress"; import { currencyFormat, getEntityIdFromKeys } from "@/ui/utils/utils"; -import { ID, ResourcesIds } from "@bibliothecadao/eternum"; +import { BattleManager, ID, ResourcesIds } from "@bibliothecadao/eternum"; import { useComponentValue } from "@dojoengine/react"; import { Suspense, lazy, useMemo, useState } from "react"; import { ModalContainer } from "../ModalContainer"; @@ -72,7 +71,10 @@ export const MarketModal = () => { .sort((a, b) => Number(a.last_updated || 0) - Number(b.last_updated || 0))[0]; }, [battles]); - const battleManager = useMemo(() => new BattleManager(battle?.entity_id || 0, dojo), [battle?.entity_id, dojo]); + const battleManager = useMemo( + () => new BattleManager(dojo.setup.components, dojo.network.provider, battle?.entity_id || 0), + [battle?.entity_id], + ); // initial entity id const selectedEntityId = useUIStore((state) => state.structureEntityId); diff --git a/client/apps/game/src/ui/components/trading/MarketOrderPanel.tsx b/client/apps/game/src/ui/components/trading/MarketOrderPanel.tsx index 749af7cc3..63c5f2abd 100644 --- a/client/apps/game/src/ui/components/trading/MarketOrderPanel.tsx +++ b/client/apps/game/src/ui/components/trading/MarketOrderPanel.tsx @@ -1,4 +1,3 @@ -import { ResourceManager } from "@/dojo/modelManager/ResourceManager"; import { configManager } from "@/dojo/setup"; import { useDojo } from "@/hooks/context/DojoContext"; import { useRealm } from "@/hooks/helpers/useRealm"; @@ -21,6 +20,7 @@ import { import { DONKEY_ENTITY_TYPE, ONE_MONTH, + ResourceManager, ResourcesIds, findResourceById, type ID, @@ -255,7 +255,7 @@ const OrderRow = memo( const { play: playLordsSound } = useUiSounds(soundSelector.addLords); - const lordsManager = new ResourceManager(dojo.setup, entityId, ResourcesIds.Lords); + const lordsManager = new ResourceManager(dojo.setup.components, entityId, ResourcesIds.Lords); const lordsBalance = useMemo(() => Number(lordsManager.getResource()?.balance || 0n), [entityId, updateBalance]); const resourceManager = useResourceManager(entityId, offer.makerGets[0].resourceId); diff --git a/client/apps/game/src/ui/components/trading/MarketResourceSideBar.tsx b/client/apps/game/src/ui/components/trading/MarketResourceSideBar.tsx index 278d109b7..fd2dac241 100644 --- a/client/apps/game/src/ui/components/trading/MarketResourceSideBar.tsx +++ b/client/apps/game/src/ui/components/trading/MarketResourceSideBar.tsx @@ -1,6 +1,5 @@ -import { MarketManager } from "@/dojo/modelManager/MarketManager"; import { useDojo } from "@/hooks/context/DojoContext"; -import { ID, MarketInterface, RESOURCE_TIERS, ResourcesIds } from "@bibliothecadao/eternum"; +import { ID, MarketInterface, MarketManager, RESOURCE_TIERS, ResourcesIds } from "@bibliothecadao/eternum"; import { useMemo } from "react"; import { MarketResource } from "./MarketOrderPanel"; @@ -21,7 +20,7 @@ export const MarketResourceSidebar = ({ resourceAskOffers: MarketInterface[]; resourceBidOffers: MarketInterface[]; }) => { - const { setup } = useDojo(); + const dojo = useDojo(); const filteredResources = useMemo(() => { return Object.entries(RESOURCE_TIERS).flatMap(([_, resourceIds]) => { @@ -33,7 +32,9 @@ export const MarketResourceSidebar = ({ return filteredResources .filter((resourceId) => resourceId !== ResourcesIds.Lords) .map((resourceId) => { - const marketManager = bankEntityId ? new MarketManager(setup, bankEntityId, 0n, resourceId) : undefined; + const marketManager = bankEntityId + ? new MarketManager(dojo.setup.components, bankEntityId, 0n, resourceId) + : undefined; const askPrice = resourceBidOffers .filter((offer) => (resourceId ? offer.makerGets[0]?.resourceId === resourceId : true)) @@ -58,8 +59,16 @@ export const MarketResourceSidebar = ({ /> ); }); - }, [filteredResources, bankEntityId, setup, resourceBidOffers, resourceAskOffers, selectedResource, entityId, onClick]); - + }, [ + filteredResources, + bankEntityId, + dojo.setup, + resourceBidOffers, + resourceAskOffers, + selectedResource, + entityId, + onClick, + ]); return (
@@ -72,9 +81,7 @@ export const MarketResourceSidebar = ({
-
- {resourceList} -
+
{resourceList}
); }; diff --git a/client/apps/game/src/ui/components/worldmap/armies/ActionInfo.tsx b/client/apps/game/src/ui/components/worldmap/armies/ActionInfo.tsx index 6c879247d..aeac82e52 100644 --- a/client/apps/game/src/ui/components/worldmap/armies/ActionInfo.tsx +++ b/client/apps/game/src/ui/components/worldmap/armies/ActionInfo.tsx @@ -7,8 +7,7 @@ import { BaseThreeTooltip, Position } from "@/ui/elements/BaseThreeTooltip"; import { Headline } from "@/ui/elements/Headline"; import { ResourceCost } from "@/ui/elements/ResourceCost"; import { StaminaResourceCost } from "@/ui/elements/StaminaResourceCost"; -import { computeExploreFoodCosts, computeTravelFoodCosts } from "@/ui/utils/utils"; -import { ResourcesIds } from "@bibliothecadao/eternum"; +import { computeExploreFoodCosts, computeTravelFoodCosts, ResourcesIds } from "@bibliothecadao/eternum"; import { getComponentValue } from "@dojoengine/recs"; import { getEntityIdFromKeys } from "@dojoengine/utils"; import { memo, useCallback, useMemo } from "react"; diff --git a/client/apps/game/src/ui/components/worldmap/armies/ArmyInfoLabel.tsx b/client/apps/game/src/ui/components/worldmap/armies/ArmyInfoLabel.tsx index 6eaff4fe6..796dc50e3 100644 --- a/client/apps/game/src/ui/components/worldmap/armies/ArmyInfoLabel.tsx +++ b/client/apps/game/src/ui/components/worldmap/armies/ArmyInfoLabel.tsx @@ -1,20 +1,16 @@ import useUIStore from "../../../../hooks/store/useUIStore"; import { currencyFormat } from "../../../utils/utils"; -import { ArmyInfo, getArmyByEntityId } from "@/hooks/helpers/useArmies"; +import { getArmyByEntityId } from "@/hooks/helpers/useArmies"; import { useQuery } from "@/hooks/helpers/useQuery"; -import { - Structure, - useIsStructureImmune, - useStructureImmunityTimer, - useStructures, -} from "@/hooks/helpers/useStructures"; +import { useIsStructureImmune, useStructureImmunityTimer, useStructures } from "@/hooks/helpers/useStructures"; import useNextBlockTimestamp from "@/hooks/useNextBlockTimestamp"; import { ArmyCapacity } from "@/ui/elements/ArmyCapacity"; import { BaseThreeTooltip, Position } from "@/ui/elements/BaseThreeTooltip"; import { Headline } from "@/ui/elements/Headline"; import { ResourceIcon } from "@/ui/elements/ResourceIcon"; import { StaminaResource } from "@/ui/elements/StaminaResource"; +import { ArmyInfo, Structure } from "@bibliothecadao/eternum"; import clsx from "clsx"; import { useMemo } from "react"; import { useRealm } from "../../../../hooks/helpers/useRealm"; diff --git a/client/apps/game/src/ui/components/worldmap/armies/ArmyWarning.tsx b/client/apps/game/src/ui/components/worldmap/armies/ArmyWarning.tsx index 3e91c21e0..0f1b8459a 100644 --- a/client/apps/game/src/ui/components/worldmap/armies/ArmyWarning.tsx +++ b/client/apps/game/src/ui/components/worldmap/armies/ArmyWarning.tsx @@ -1,10 +1,8 @@ -import { ArmyMovementManager } from "@/dojo/modelManager/ArmyMovementManager"; -import { StaminaManager } from "@/dojo/modelManager/StaminaManager"; import { configManager } from "@/dojo/setup"; import { useDojo } from "@/hooks/context/DojoContext"; -import { ArmyInfo } from "@/hooks/helpers/useArmies"; import useUIStore from "@/hooks/store/useUIStore"; -import { computeExploreFoodCosts, currencyFormat, multiplyByPrecision } from "@/ui/utils/utils"; +import { currencyFormat, multiplyByPrecision } from "@/ui/utils/utils"; +import { ArmyInfo, ArmyMovementManager, computeExploreFoodCosts, StaminaManager } from "@bibliothecadao/eternum"; import { useMemo } from "react"; interface ArmyWarningProps { @@ -12,10 +10,10 @@ interface ArmyWarningProps { } export const ArmyWarning = ({ army }: ArmyWarningProps) => { - const { setup } = useDojo(); + const dojo = useDojo(); const remainingCapacity = useMemo(() => army.totalCapacity - army.weight, [army]); const armyManager = useMemo(() => { - return new ArmyMovementManager(setup, army.entity_id); + return new ArmyMovementManager(dojo.setup.components, dojo.network.provider, army.entity_id); }, [army]); const food = armyManager.getFood(useUIStore.getState().currentDefaultTick); @@ -29,7 +27,7 @@ export const ArmyWarning = ({ army }: ArmyWarningProps) => { }, [exploreFoodCosts.wheatPayAmount, exploreFoodCosts.fishPayAmount, food.wheat, food.fish]); const stamina = useMemo(() => { - const staminaManager = new StaminaManager(setup, army.entity_id); + const staminaManager = new StaminaManager(dojo.setup.components, army.entity_id); return staminaManager.getStamina(useUIStore.getState().currentArmiesTick); }, [army]); diff --git a/client/apps/game/src/ui/components/worldmap/battles/BattleLabel.tsx b/client/apps/game/src/ui/components/worldmap/battles/BattleLabel.tsx index 578847aef..d4b25c312 100644 --- a/client/apps/game/src/ui/components/worldmap/battles/BattleLabel.tsx +++ b/client/apps/game/src/ui/components/worldmap/battles/BattleLabel.tsx @@ -1,13 +1,13 @@ -import { BattleManager } from "@/dojo/modelManager/BattleManager"; import { DojoResult, useDojo } from "@/hooks/context/DojoContext"; import { useBattlesByPosition } from "@/hooks/helpers/battles/useBattles"; import { useQuery } from "@/hooks/helpers/useQuery"; -import { Structure, useStructureByPosition } from "@/hooks/helpers/useStructures"; +import { useStructureByPosition } from "@/hooks/helpers/useStructures"; import useUIStore from "@/hooks/store/useUIStore"; import { BaseThreeTooltip, Position } from "@/ui/elements/BaseThreeTooltip"; import { Headline } from "@/ui/elements/Headline"; import { DurationLeft, ProgressBar } from "@/ui/modules/military/battle-view/BattleProgress"; import { divideByPrecision } from "@/ui/utils/utils"; +import { BattleManager, Structure } from "@bibliothecadao/eternum"; import { useMemo } from "react"; export const BattleInfoLabel = () => { @@ -58,7 +58,10 @@ const BattleInfo = ({ currentTimestamp: number; structure: Structure | undefined; }) => { - const battleManager = useMemo(() => new BattleManager(battleEntityId, dojo), [battleEntityId, dojo]); + const battleManager = useMemo( + () => new BattleManager(dojo.setup.components, dojo.network.provider, battleEntityId), + [battleEntityId, dojo], + ); const { attackerHealth, defenderHealth, isOngoing, isSiege } = useMemo(() => { const adjustedBattle = battleManager.getUpdatedBattle(currentTimestamp); diff --git a/client/apps/game/src/ui/components/worldmap/structures/StructureLabel.tsx b/client/apps/game/src/ui/components/worldmap/structures/StructureLabel.tsx index 7b21dc1a2..b8b43cdb1 100644 --- a/client/apps/game/src/ui/components/worldmap/structures/StructureLabel.tsx +++ b/client/apps/game/src/ui/components/worldmap/structures/StructureLabel.tsx @@ -1,16 +1,11 @@ import { useGuilds } from "@/hooks/helpers/useGuilds"; import { useQuery } from "@/hooks/helpers/useQuery"; -import { - Structure, - useIsStructureImmune, - useStructureImmunityTimer, - useStructures, -} from "@/hooks/helpers/useStructures"; +import { useIsStructureImmune, useStructureImmunityTimer, useStructures } from "@/hooks/helpers/useStructures"; import useNextBlockTimestamp from "@/hooks/useNextBlockTimestamp"; import { BaseThreeTooltip, Position } from "@/ui/elements/BaseThreeTooltip"; import { Headline } from "@/ui/elements/Headline"; import { formatTime } from "@/ui/utils/utils"; -import { ContractAddress } from "@bibliothecadao/eternum"; +import { ContractAddress, Structure } from "@bibliothecadao/eternum"; import { memo, useMemo } from "react"; import useUIStore from "../../../../hooks/store/useUIStore"; import { StructureListItem } from "./StructureListItem"; diff --git a/client/apps/game/src/ui/components/worldmap/structures/StructureListItem.tsx b/client/apps/game/src/ui/components/worldmap/structures/StructureListItem.tsx index 49d339121..5209b65e6 100644 --- a/client/apps/game/src/ui/components/worldmap/structures/StructureListItem.tsx +++ b/client/apps/game/src/ui/components/worldmap/structures/StructureListItem.tsx @@ -1,14 +1,13 @@ import { ReactComponent as Sword } from "@/assets/icons/common/cross-swords.svg"; import { ReactComponent as Eye } from "@/assets/icons/common/eye.svg"; import { ReactComponent as Shield } from "@/assets/icons/common/shield.svg"; -import { BattleManager } from "@/dojo/modelManager/BattleManager"; import { useDojo } from "@/hooks/context/DojoContext"; -import { ArmyInfo, getUserArmyInBattle } from "@/hooks/helpers/useArmies"; +import { getUserArmyInBattle } from "@/hooks/helpers/useArmies"; import { useGetHyperstructureProgress } from "@/hooks/helpers/useHyperstructures"; -import { Structure, useIsStructureImmune } from "@/hooks/helpers/useStructures"; +import { useIsStructureImmune } from "@/hooks/helpers/useStructures"; import useUIStore from "@/hooks/store/useUIStore"; import useNextBlockTimestamp from "@/hooks/useNextBlockTimestamp"; -import { StructureType } from "@bibliothecadao/eternum"; +import { ArmyInfo, BattleManager, Structure, StructureType } from "@bibliothecadao/eternum"; import clsx from "clsx"; import { useMemo } from "react"; import { TroopDisplay } from "../../military/TroopChip"; @@ -52,7 +51,10 @@ export const StructureListItem = ({ ? getHyperstructureProgress(structure.entity_id) : undefined; - const battleManager = useMemo(() => new BattleManager(structure.protector?.battle_id || 0, dojo), [structure]); + const battleManager = useMemo( + () => new BattleManager(dojo.setup.components, dojo.network.provider, structure.protector?.battle_id || 0), + [structure], + ); const { updatedBattle } = useMemo(() => { if (!nextBlockTimestamp) throw new Error("Current timestamp is undefined"); diff --git a/client/apps/game/src/ui/elements/ArmyCapacity.tsx b/client/apps/game/src/ui/elements/ArmyCapacity.tsx index e9f9c976a..680155ab6 100644 --- a/client/apps/game/src/ui/elements/ArmyCapacity.tsx +++ b/client/apps/game/src/ui/elements/ArmyCapacity.tsx @@ -1,8 +1,7 @@ import { ReactComponent as Inventory } from "@/assets/icons/common/bagpack.svg"; -import { getArmyNumberOfTroops } from "@/dojo/modelManager/utils/ArmyMovementUtils"; import { configManager } from "@/dojo/setup"; -import { ArmyInfo } from "@/hooks/helpers/useArmies"; import useUIStore from "@/hooks/store/useUIStore"; +import { ArmyInfo, getArmyNumberOfTroops } from "@bibliothecadao/eternum"; import { useMemo } from "react"; import { formatNumber, formatStringNumber } from "../utils/utils"; diff --git a/client/apps/game/src/ui/modules/entity-details/Battles.tsx b/client/apps/game/src/ui/modules/entity-details/Battles.tsx index 8cb173318..c022b69d8 100644 --- a/client/apps/game/src/ui/modules/entity-details/Battles.tsx +++ b/client/apps/game/src/ui/modules/entity-details/Battles.tsx @@ -1,6 +1,6 @@ import { BattleInfo } from "@/hooks/helpers/battles/useBattles"; -import { ArmyInfo } from "@/hooks/helpers/useArmies"; import { BattleListItem } from "@/ui/components/battles/BattleListItem"; +import { ArmyInfo } from "@bibliothecadao/eternum"; export const Battles = ({ ownArmy, battles }: { ownArmy: ArmyInfo | undefined; battles: BattleInfo[] }) => { return ( diff --git a/client/apps/game/src/ui/modules/entity-details/BuildingEntityDetails.tsx b/client/apps/game/src/ui/modules/entity-details/BuildingEntityDetails.tsx index 66ed2a163..9217628b2 100644 --- a/client/apps/game/src/ui/modules/entity-details/BuildingEntityDetails.tsx +++ b/client/apps/game/src/ui/modules/entity-details/BuildingEntityDetails.tsx @@ -1,15 +1,13 @@ -import { TileManager } from "@/dojo/modelManager/TileManager"; import { configManager } from "@/dojo/setup"; import { useDojo } from "@/hooks/context/DojoContext"; import { useEntities, useEntitiesUtils } from "@/hooks/helpers/useEntities"; import useUIStore from "@/hooks/store/useUIStore"; import { soundSelector, useUiSounds } from "@/hooks/useUISound"; -import { BUILDINGS_CENTER } from "@/three/scenes/constants"; import { ResourceMiningTypes } from "@/types"; import { BuildingInfo, ResourceInfo } from "@/ui/components/construction/SelectPreviewBuilding"; import Button from "@/ui/elements/Button"; import { ResourceIdToMiningType, getEntityIdFromKeys } from "@/ui/utils/utils"; -import { BuildingType, ID, ResourcesIds, StructureType } from "@bibliothecadao/eternum"; +import { BUILDINGS_CENTER, BuildingType, ID, ResourcesIds, StructureType, TileManager } from "@bibliothecadao/eternum"; import { useComponentValue } from "@dojoengine/react"; import { getComponentValue } from "@dojoengine/recs"; import { useCallback, useEffect, useMemo, useState } from "react"; @@ -82,12 +80,12 @@ export const BuildingEntityDetails = () => { const handlePauseResumeProduction = useCallback(() => { setIsLoading(true); - const tileManager = new TileManager(dojo.setup, { + const tileManager = new TileManager(dojo.setup.components, dojo.network.provider, { col: selectedBuildingHex.outerCol, row: selectedBuildingHex.outerRow, }); const action = !isPaused ? tileManager.pauseProduction : tileManager.resumeProduction; - action(selectedBuildingHex.innerCol, selectedBuildingHex.innerRow).then(() => { + action(dojo.account.account, selectedBuildingHex.innerCol, selectedBuildingHex.innerRow).then(() => { setIsLoading(false); }); }, [selectedBuildingHex, isPaused]); @@ -98,11 +96,11 @@ export const BuildingEntityDetails = () => { return; } - const tileManager = new TileManager(dojo.setup, { + const tileManager = new TileManager(dojo.setup.components, dojo.network.provider, { col: selectedBuildingHex.outerCol, row: selectedBuildingHex.outerRow, }); - tileManager.destroyBuilding(selectedBuildingHex.innerCol, selectedBuildingHex.innerRow); + tileManager.destroyBuilding(dojo.account.account, selectedBuildingHex.innerCol, selectedBuildingHex.innerRow); if ( buildingState.buildingType === BuildingType.Resource && (ResourceIdToMiningType[buildingState.resource!] === ResourceMiningTypes.Forge || diff --git a/client/apps/game/src/ui/modules/entity-details/CombatEntityDetails.tsx b/client/apps/game/src/ui/modules/entity-details/CombatEntityDetails.tsx index 439883ff5..420e6b2bb 100644 --- a/client/apps/game/src/ui/modules/entity-details/CombatEntityDetails.tsx +++ b/client/apps/game/src/ui/modules/entity-details/CombatEntityDetails.tsx @@ -1,5 +1,7 @@ import { useBattlesByPosition } from "@/hooks/helpers/battles/useBattles"; -import { ArmyInfo, useOwnArmiesByPosition } from "@/hooks/helpers/useArmies"; +import { useOwnArmiesByPosition } from "@/hooks/helpers/useArmies"; +import { ArmyInfo } from "@bibliothecadao/eternum"; + import { useEntities } from "@/hooks/helpers/useEntities"; import { useStructureAtPosition } from "@/hooks/helpers/useStructures"; import useUIStore from "@/hooks/store/useUIStore"; diff --git a/client/apps/game/src/ui/modules/entity-details/EnemyArmies.tsx b/client/apps/game/src/ui/modules/entity-details/EnemyArmies.tsx index e27f701b2..bbcaf2342 100644 --- a/client/apps/game/src/ui/modules/entity-details/EnemyArmies.tsx +++ b/client/apps/game/src/ui/modules/entity-details/EnemyArmies.tsx @@ -1,13 +1,12 @@ import { ReactComponent as Swords } from "@/assets/icons/common/cross-swords.svg"; -import { BattleManager } from "@/dojo/modelManager/BattleManager"; import { useDojo } from "@/hooks/context/DojoContext"; -import { ArmyInfo } from "@/hooks/helpers/useArmies"; import { useEntitiesUtils } from "@/hooks/helpers/useEntities"; import { useIsStructureImmune, useStructureAtPosition } from "@/hooks/helpers/useStructures"; import useUIStore from "@/hooks/store/useUIStore"; import useNextBlockTimestamp from "@/hooks/useNextBlockTimestamp"; import { Position } from "@/types/Position"; import { ArmyChip } from "@/ui/components/military/ArmyChip"; +import { ArmyInfo, BattleManager } from "@bibliothecadao/eternum"; import clsx from "clsx"; import React, { useCallback, useMemo } from "react"; @@ -74,7 +73,7 @@ export const EnemyArmies = ({ ); const armyClone = army.protectee ? structuredClone(army) : army; armyClone.name = army.protectee ? `${structureAtPosition?.name}` : army.name; - const battleManager = new BattleManager(army.battle_id, dojo); + const battleManager = new BattleManager(dojo.setup.components, dojo.network.provider, army.battle_id); if ( battleManager.isBattleOngoing(nextBlockTimestamp!) || battleManager.getUpdatedArmy(army, battleManager.getUpdatedBattle(nextBlockTimestamp!))!.health.current <= 0 diff --git a/client/apps/game/src/ui/modules/entity-details/Entities.tsx b/client/apps/game/src/ui/modules/entity-details/Entities.tsx index 867ecc540..7df8c6772 100644 --- a/client/apps/game/src/ui/modules/entity-details/Entities.tsx +++ b/client/apps/game/src/ui/modules/entity-details/Entities.tsx @@ -1,9 +1,10 @@ import { BattleInfo } from "@/hooks/helpers/battles/useBattles"; -import { ArmyInfo, useEnemyArmiesByPosition } from "@/hooks/helpers/useArmies"; +import { useEnemyArmiesByPosition } from "@/hooks/helpers/useArmies"; import { useEntities } from "@/hooks/helpers/useEntities"; import { Position } from "@/types/Position"; import { StructureCard } from "@/ui/components/structures/worldmap/StructureCard"; import { Checkbox } from "@/ui/elements/Checkbox"; +import { ArmyInfo } from "@bibliothecadao/eternum"; import { useState } from "react"; import { Battles } from "./Battles"; import { EnemyArmies } from "./EnemyArmies"; diff --git a/client/apps/game/src/ui/modules/entity-details/realm/Buildings.tsx b/client/apps/game/src/ui/modules/entity-details/realm/Buildings.tsx index ef3dfb34c..c421bdb88 100644 --- a/client/apps/game/src/ui/modules/entity-details/realm/Buildings.tsx +++ b/client/apps/game/src/ui/modules/entity-details/realm/Buildings.tsx @@ -1,5 +1,4 @@ import { ReactComponent as ArrowRight } from "@/assets/icons/common/arrow-right.svg"; -import { TileManager } from "@/dojo/modelManager/TileManager"; import { useDojo } from "@/hooks/context/DojoContext"; import { Building, useBuildings } from "@/hooks/helpers/use-buildings"; import { useGetRealm } from "@/hooks/helpers/useRealm"; @@ -8,7 +7,7 @@ import { BUILDING_IMAGES_PATH } from "@/ui/config"; import Button from "@/ui/elements/Button"; import { ResourceIcon } from "@/ui/elements/ResourceIcon"; import { toHexString } from "@/ui/utils/utils"; -import { BuildingType, ResourcesIds } from "@bibliothecadao/eternum"; +import { BuildingType, ResourcesIds, TileManager } from "@bibliothecadao/eternum"; import clsx from "clsx"; import { useState } from "react"; @@ -46,13 +45,13 @@ export const Buildings = ({ structure }: { structure: any }) => { const handlePauseResumeProduction = (paused: boolean, innerCol: number, innerRow: number) => { setIsLoading({ isLoading: true, innerCol, innerRow }); - const tileManager = new TileManager(dojo.setup, { + const tileManager = new TileManager(dojo.setup.components, dojo.network.provider, { col: structure.position!.x, row: structure.position!.y, }); const action = paused ? tileManager.resumeProduction : tileManager.pauseProduction; - action(innerCol, innerRow).then(() => { + action(dojo.account.account, innerCol, innerRow).then(() => { setIsLoading({ isLoading: false, innerCol, innerRow }); }); }; diff --git a/client/apps/game/src/ui/modules/entity-details/realm/Castle.tsx b/client/apps/game/src/ui/modules/entity-details/realm/Castle.tsx index 1913797d9..b143fc1af 100644 --- a/client/apps/game/src/ui/modules/entity-details/realm/Castle.tsx +++ b/client/apps/game/src/ui/modules/entity-details/realm/Castle.tsx @@ -75,7 +75,7 @@ export const Castle = () => {

Upgrade Cost to {RealmLevels[realm.level + 1]}
- {configManager.realmUpgradeCosts[getNextRealmLevel]?.map((a) => ( + {configManager.realmUpgradeCosts[getNextRealmLevel]?.map((a: any) => ( { const defender = structure?.protector ?? defenderArmies[0]; - const battleManager = new BattleManager(defender?.battle_id || battleAdjusted?.entity_id || 0, dojo); + const battleManager = new BattleManager( + dojo.setup.components, + dojo.network.provider, + defender?.battle_id || battleAdjusted?.entity_id || 0, + ); return battleManager.getUpdatedArmy(defender, battleManager.getUpdatedBattle(currentTimestamp!)); }, [defenderArmies, localSelectedUnit, isActive, currentTimestamp, battleAdjusted]); @@ -105,7 +112,7 @@ export const BattleActions = ({ setLoading(Loading.Raid); setRaidWarning(false); try { - await battleManager.pillageStructure(selectedArmy!, structure!.entity_id); + await battleManager.pillageStructure(account, selectedArmy!, structure!.entity_id); toggleModal( Pillage History @@ -189,7 +196,7 @@ export const BattleActions = ({ ? defenderArmies.length - 1 : defenderArmies.length; if (attackerArmiesLength === 0 && defenderArmiesLength === 0) { - battleManager.deleteBattle(); + world.deleteEntity(getEntityIdFromKeys([BigInt(battleManager?.battleEntityId || 0)])); } }); setLoading(Loading.None); diff --git a/client/apps/game/src/ui/modules/military/battle-view/BattleProgress.tsx b/client/apps/game/src/ui/modules/military/battle-view/BattleProgress.tsx index 733972b4e..4840d69f3 100644 --- a/client/apps/game/src/ui/modules/military/battle-view/BattleProgress.tsx +++ b/client/apps/game/src/ui/modules/military/battle-view/BattleProgress.tsx @@ -1,9 +1,6 @@ -import { BattleManager, BattleStatus, BattleType } from "@/dojo/modelManager/BattleManager"; -import { ArmyInfo } from "@/hooks/helpers/useArmies"; -import { Structure } from "@/hooks/helpers/useStructures"; import useNextBlockTimestamp from "@/hooks/useNextBlockTimestamp"; import { soundSelector, useUiSounds } from "@/hooks/useUISound"; -import { Health } from "@/types"; +import { ArmyInfo, BattleManager, BattleStatus, BattleType, Structure, type Health } from "@bibliothecadao/eternum"; import { motion } from "framer-motion"; import { useEffect, useMemo, useState } from "react"; diff --git a/client/apps/game/src/ui/modules/military/battle-view/BattleSideView.tsx b/client/apps/game/src/ui/modules/military/battle-view/BattleSideView.tsx index f5e8e44b1..487ad7dac 100644 --- a/client/apps/game/src/ui/modules/military/battle-view/BattleSideView.tsx +++ b/client/apps/game/src/ui/modules/military/battle-view/BattleSideView.tsx @@ -1,12 +1,10 @@ import { ClientComponents } from "@/dojo/createClientComponents"; -import { BattleManager } from "@/dojo/modelManager/BattleManager"; import { useDojo } from "@/hooks/context/DojoContext"; -import { ArmyInfo, useArmyByArmyEntityId } from "@/hooks/helpers/useArmies"; +import { useArmyByArmyEntityId } from "@/hooks/helpers/useArmies"; import { useEntitiesUtils } from "@/hooks/helpers/useEntities"; -import { Structure } from "@/hooks/helpers/useStructures"; import useNextBlockTimestamp from "@/hooks/useNextBlockTimestamp"; import Button from "@/ui/elements/Button"; -import { BattleSide, ID } from "@bibliothecadao/eternum"; +import { ArmyInfo, BattleManager, BattleSide, ID, Structure } from "@bibliothecadao/eternum"; import { ComponentValue } from "@dojoengine/recs"; import React, { useMemo, useState } from "react"; import { BattleHistory } from "./BattleHistory"; diff --git a/client/apps/game/src/ui/modules/military/battle-view/BattleView.tsx b/client/apps/game/src/ui/modules/military/battle-view/BattleView.tsx index 2c38e8e80..03ba113c1 100644 --- a/client/apps/game/src/ui/modules/military/battle-view/BattleView.tsx +++ b/client/apps/game/src/ui/modules/military/battle-view/BattleView.tsx @@ -1,11 +1,10 @@ -import { BattleManager } from "@/dojo/modelManager/BattleManager"; import { useDojo } from "@/hooks/context/DojoContext"; import { useBattleManager } from "@/hooks/helpers/battles/useBattles"; import { getArmiesByBattleId, getArmyByEntityId, useArmyByArmyEntityId } from "@/hooks/helpers/useArmies"; -import { Structure, useStructureByEntityId, useStructureByPosition } from "@/hooks/helpers/useStructures"; +import { useStructureByEntityId, useStructureByPosition } from "@/hooks/helpers/useStructures"; import useUIStore from "@/hooks/store/useUIStore"; import useNextBlockTimestamp from "@/hooks/useNextBlockTimestamp"; -import { BattleSide } from "@bibliothecadao/eternum"; +import { BattleManager, BattleSide, Structure } from "@bibliothecadao/eternum"; import { memo, useMemo } from "react"; import { Battle } from "./Battle"; @@ -28,7 +27,11 @@ export const BattleView = memo(() => { ); const targetArmy = useMemo(() => { - const tempBattleManager = new BattleManager(updatedTarget?.battle_id || 0, dojo); + const tempBattleManager = new BattleManager( + dojo.setup.components, + dojo.network.provider, + updatedTarget?.battle_id || 0, + ); const updatedBattle = tempBattleManager.getUpdatedBattle(currentTimestamp!); return tempBattleManager.getUpdatedArmy(updatedTarget, updatedBattle); }, [updatedTarget, battleView?.targetArmy]); diff --git a/client/apps/game/src/ui/modules/military/battle-view/EntityAvatar.tsx b/client/apps/game/src/ui/modules/military/battle-view/EntityAvatar.tsx index 954cb4d61..ae894ae5c 100644 --- a/client/apps/game/src/ui/modules/military/battle-view/EntityAvatar.tsx +++ b/client/apps/game/src/ui/modules/military/battle-view/EntityAvatar.tsx @@ -1,6 +1,5 @@ import { useDojo } from "@/hooks/context/DojoContext"; -import { Structure } from "@/hooks/helpers/useStructures"; -import { ID, RealmLevels } from "@bibliothecadao/eternum"; +import { ID, RealmLevels, Structure } from "@bibliothecadao/eternum"; import { getComponentValue } from "@dojoengine/recs"; import { getEntityIdFromKeys } from "@dojoengine/utils"; import { motion } from "framer-motion"; diff --git a/client/apps/game/src/ui/modules/military/battle-view/battle-twitter-share-button.tsx b/client/apps/game/src/ui/modules/military/battle-view/battle-twitter-share-button.tsx index da6cba146..904a745ff 100644 --- a/client/apps/game/src/ui/modules/military/battle-view/battle-twitter-share-button.tsx +++ b/client/apps/game/src/ui/modules/military/battle-view/battle-twitter-share-button.tsx @@ -1,11 +1,9 @@ import { ClientComponents } from "@/dojo/createClientComponents"; -import { ArmyInfo } from "@/hooks/helpers/useArmies"; import { useEntitiesUtils } from "@/hooks/helpers/useEntities"; -import { Structure } from "@/hooks/helpers/useStructures"; import TwitterShareButton from "@/ui/elements/TwitterShareButton"; import { formatSocialText, twitterTemplates } from "@/ui/socials"; import { currencyFormat } from "@/ui/utils/utils"; -import { BattleSide } from "@bibliothecadao/eternum"; +import { ArmyInfo, BattleSide, Structure } from "@bibliothecadao/eternum"; import { ComponentValue } from "@dojoengine/recs"; import { useMemo } from "react"; import { env } from "../../../../../env"; diff --git a/client/apps/game/src/ui/modules/military/battle-view/utils.tsx b/client/apps/game/src/ui/modules/military/battle-view/utils.tsx index 1bb74a68b..b20301afa 100644 --- a/client/apps/game/src/ui/modules/military/battle-view/utils.tsx +++ b/client/apps/game/src/ui/modules/military/battle-view/utils.tsx @@ -1,7 +1,14 @@ import { ClientComponents } from "@/dojo/createClientComponents"; import { configManager } from "@/dojo/setup"; import { roundDownToPrecision, roundUpToPrecision } from "@/ui/utils/utils"; -import { Battle, Health, Percentage, ResourcesIds, Troops as SdkTroops, TroopConfig } from "@bibliothecadao/eternum"; +import { + Battle, + HealthSimulator, + Percentage, + ResourcesIds, + Troops as SdkTroops, + TroopConfig, +} from "@bibliothecadao/eternum"; import { ComponentValue } from "@dojoengine/recs"; import { getTotalTroops } from "./BattleHistory"; @@ -92,8 +99,8 @@ export const getTroopLossOnRaidPerTroopType = ( const battle = new Battle( attackerArmy.troops, defenderArmy.troops, - new Health(attackerArmy.health), - new Health(defenderArmy.health), + new HealthSimulator(attackerArmy.health), + new HealthSimulator(defenderArmy.health), new TroopConfig( troopConfig.health, troopConfig.knight_strength, diff --git a/client/apps/game/src/ui/modules/world-structures/WorldStructuresMenu.tsx b/client/apps/game/src/ui/modules/world-structures/WorldStructuresMenu.tsx index 2e55caf1e..4c9a1c070 100644 --- a/client/apps/game/src/ui/modules/world-structures/WorldStructuresMenu.tsx +++ b/client/apps/game/src/ui/modules/world-structures/WorldStructuresMenu.tsx @@ -1,4 +1,3 @@ -import { LeaderboardManager } from "@/dojo/modelManager/LeaderboardManager"; import { useDojo } from "@/hooks/context/DojoContext"; import { getArmiesByPosition } from "@/hooks/helpers/useArmies"; import { useGetHyperstructuresWithContributionsFromPlayer } from "@/hooks/helpers/useContributions"; @@ -17,7 +16,14 @@ import { Checkbox } from "@/ui/elements/Checkbox"; import { HintModalButton } from "@/ui/elements/HintModalButton"; import { ResourceIcon } from "@/ui/elements/ResourceIcon"; import { currencyFormat, currencyIntlFormat, divideByPrecision } from "@/ui/utils/utils"; -import { BattleSide, ContractAddress, ID, ResourcesIds, findResourceById } from "@bibliothecadao/eternum"; +import { + BattleSide, + ContractAddress, + ID, + LeaderboardManager, + ResourcesIds, + findResourceById, +} from "@bibliothecadao/eternum"; import { ArrowRight } from "lucide-react"; import { useCallback, useMemo, useState } from "react"; import { Tabs } from "../../elements/tab"; @@ -231,15 +237,18 @@ const HyperStructureExtraContent = ({ y: number; }) => { const { + setup: { components }, account: { account }, } = useDojo(); const progress = useHyperstructureProgress(hyperstructureEntityId); - const latestChangeEvent = LeaderboardManager.instance(useDojo()).getCurrentCoOwners(hyperstructureEntityId); + const latestChangeEvent = LeaderboardManager.instance(components).getCurrentCoOwners(hyperstructureEntityId); const needTosetCoOwners = !latestChangeEvent && progress.percentage === 100; const shares = - LeaderboardManager.instance(useDojo()).getAddressShares(ContractAddress(account.address), hyperstructureEntityId) || - 0; + LeaderboardManager.instance(components).getAddressShares( + ContractAddress(account.address), + hyperstructureEntityId, + ) || 0; return ( diff --git a/client/apps/game/src/ui/utils/realms.tsx b/client/apps/game/src/ui/utils/realms.tsx index 0fb981e3e..65e5cce87 100644 --- a/client/apps/game/src/ui/utils/realms.tsx +++ b/client/apps/game/src/ui/utils/realms.tsx @@ -2,7 +2,7 @@ import { ClientComponents } from "@/dojo/createClientComponents"; import { configManager } from "@/dojo/setup"; import { findResourceIdByTrait, ID, orders, RealmInterface } from "@bibliothecadao/eternum"; import { ComponentValue } from "@dojoengine/recs"; -import realmsJson from "../../data/geodata/realms.json"; +import realmsJson from "../../../../../common/data/realms.json"; import { packResources } from "./packedData"; interface Attribute { diff --git a/client/apps/game/src/ui/utils/utils.tsx b/client/apps/game/src/ui/utils/utils.tsx index faa2c3326..c633bb1c7 100644 --- a/client/apps/game/src/ui/utils/utils.tsx +++ b/client/apps/game/src/ui/utils/utils.tsx @@ -1,20 +1,19 @@ -import { type ClientComponents } from "@/dojo/createClientComponents"; -import { ClientConfigManager } from "@/dojo/modelManager/ConfigManager"; import { HEX_SIZE } from "@/three/scenes/constants"; -import { ResourceMiningTypes, type HexPosition } from "@/types"; +import { ResourceMiningTypes } from "@/types"; import { BuildingType, CapacityConfigCategory, + ClientConfigManager, ContractAddress, EternumGlobalConfig, ResourceCost, ResourcesIds, TickIds, + type HexPosition, type ID, type Position, type Resource, } from "@bibliothecadao/eternum"; -import { type ComponentValue } from "@dojoengine/recs"; import { getEntityIdFromKeys } from "@dojoengine/utils"; import * as THREE from "three"; import { env } from "../../../env"; @@ -369,66 +368,6 @@ export const toValidAscii = (str: string) => { return accentsToAscii(intermediateString); }; -export const computeTravelFoodCosts = ( - troops: ComponentValue | undefined, -) => { - const configManager = ClientConfigManager.instance(); - - const paladinFoodConsumption = configManager.getTravelFoodCostConfig(ResourcesIds.Paladin); - const knightFoodConsumption = configManager.getTravelFoodCostConfig(ResourcesIds.Knight); - const crossbowmanFoodConsumption = configManager.getTravelFoodCostConfig(ResourcesIds.Crossbowman); - - const paladinCount = divideByPrecision(Number(troops?.paladin_count)); - const knightCount = divideByPrecision(Number(troops?.knight_count)); - const crossbowmanCount = divideByPrecision(Number(troops?.crossbowman_count)); - - const paladinWheatConsumption = paladinFoodConsumption.travelWheatBurnAmount * paladinCount; - const knightWheatConsumption = knightFoodConsumption.travelWheatBurnAmount * knightCount; - const crossbowmanWheatConsumption = crossbowmanFoodConsumption.travelWheatBurnAmount * crossbowmanCount; - - const paladinFishConsumption = paladinFoodConsumption.travelFishBurnAmount * paladinCount; - const knightFishConsumption = knightFoodConsumption.travelFishBurnAmount * knightCount; - const crossbowmanFishConsumption = crossbowmanFoodConsumption.travelFishBurnAmount * crossbowmanCount; - - const wheatPayAmount = paladinWheatConsumption + knightWheatConsumption + crossbowmanWheatConsumption; - const fishPayAmount = paladinFishConsumption + knightFishConsumption + crossbowmanFishConsumption; - - return { - wheatPayAmount, - fishPayAmount, - }; -}; - -export const computeExploreFoodCosts = ( - troops: ComponentValue | undefined, -) => { - const configManager = ClientConfigManager.instance(); - - const paladinFoodConsumption = configManager.getTravelFoodCostConfig(ResourcesIds.Paladin); - const knightFoodConsumption = configManager.getTravelFoodCostConfig(ResourcesIds.Knight); - const crossbowmanFoodConsumption = configManager.getTravelFoodCostConfig(ResourcesIds.Crossbowman); - - const paladinCount = divideByPrecision(Number(troops?.paladin_count)); - const knightCount = divideByPrecision(Number(troops?.knight_count)); - const crossbowmanCount = divideByPrecision(Number(troops?.crossbowman_count)); - - const paladinWheatConsumption = paladinFoodConsumption.exploreWheatBurnAmount * paladinCount; - const knightWheatConsumption = knightFoodConsumption.exploreWheatBurnAmount * knightCount; - const crossbowmanWheatConsumption = crossbowmanFoodConsumption.exploreWheatBurnAmount * crossbowmanCount; - - const paladinFishConsumption = paladinFoodConsumption.exploreFishBurnAmount * paladinCount; - const knightFishConsumption = knightFoodConsumption.exploreFishBurnAmount * knightCount; - const crossbowmanFishConsumption = crossbowmanFoodConsumption.exploreFishBurnAmount * crossbowmanCount; - - const wheatPayAmount = paladinWheatConsumption + knightWheatConsumption + crossbowmanWheatConsumption; - const fishPayAmount = paladinFishConsumption + knightFishConsumption + crossbowmanFishConsumption; - - return { - wheatPayAmount, - fishPayAmount, - }; -}; - export const separateCamelCase = (str: string): string => { return str .replace(/([a-z])([A-Z])/g, "$1 $2") diff --git a/client/apps/landing/dojoConfig.ts b/client/apps/landing/dojoConfig.ts index 7aaa3ec7d..26c173229 100644 --- a/client/apps/landing/dojoConfig.ts +++ b/client/apps/landing/dojoConfig.ts @@ -1,7 +1,7 @@ import { createDojoConfig } from "@dojoengine/core"; -import devManifest from "../../../contracts/manifest_dev.json"; -import productionManifest from "../../../contracts/manifest_mainnet.json"; -import sepoliaManifest from "../../../contracts/manifest_prod.json"; +import devManifest from "../../common/manifests/manifest_dev.json"; +import productionManifest from "../../common/manifests/manifest_mainnet.json"; +import sepoliaManifest from "../../common/manifests/manifest_prod.json"; import { env } from "./env"; const { @@ -11,7 +11,6 @@ const { VITE_PUBLIC_MASTER_ADDRESS, VITE_PUBLIC_MASTER_PRIVATE_KEY, VITE_PUBLIC_ACCOUNT_CLASS_HASH, - VITE_PUBLIC_DEV, VITE_PUBLIC_FEE_TOKEN_ADDRESS, VITE_PUBLIC_CHAIN, } = env; diff --git a/client/apps/landing/src/components/ui/utils/utils.ts b/client/apps/landing/src/components/ui/utils/utils.ts index 0eabd5601..61dbbe9da 100644 --- a/client/apps/landing/src/components/ui/utils/utils.ts +++ b/client/apps/landing/src/components/ui/utils/utils.ts @@ -1,18 +1,15 @@ -import { type ClientComponents } from "@/dojo/createClientComponents"; -import { ClientConfigManager } from "@/dojo/modelManager/ConfigManager"; +import { ClientConfigManager } from "@bibliothecadao/eternum"; import { env } from "../../../../env"; import { BuildingType, ContractAddress, EternumGlobalConfig, - ResourcesIds, TickIds, type ID, type Position, type Resource, } from "@bibliothecadao/eternum"; -import { type ComponentValue } from "@dojoengine/recs"; import { getEntityIdFromKeys } from "@dojoengine/utils"; export { getEntityIdFromKeys }; @@ -354,66 +351,6 @@ export const toValidAscii = (str: string) => { return accentsToAscii(intermediateString); }; -export const computeTravelFoodCosts = ( - troops: ComponentValue | undefined, -) => { - const configManager = ClientConfigManager.instance(); - - const paladinFoodConsumption = configManager.getTravelFoodCostConfig(ResourcesIds.Paladin); - const knightFoodConsumption = configManager.getTravelFoodCostConfig(ResourcesIds.Knight); - const crossbowmanFoodConsumption = configManager.getTravelFoodCostConfig(ResourcesIds.Crossbowman); - - const paladinCount = divideByPrecision(Number(troops?.paladin_count)); - const knightCount = divideByPrecision(Number(troops?.knight_count)); - const crossbowmanCount = divideByPrecision(Number(troops?.crossbowman_count)); - - const paladinWheatConsumption = paladinFoodConsumption.travelWheatBurnAmount * paladinCount; - const knightWheatConsumption = knightFoodConsumption.travelWheatBurnAmount * knightCount; - const crossbowmanWheatConsumption = crossbowmanFoodConsumption.travelWheatBurnAmount * crossbowmanCount; - - const paladinFishConsumption = paladinFoodConsumption.travelFishBurnAmount * paladinCount; - const knightFishConsumption = knightFoodConsumption.travelFishBurnAmount * knightCount; - const crossbowmanFishConsumption = crossbowmanFoodConsumption.travelFishBurnAmount * crossbowmanCount; - - const wheatPayAmount = paladinWheatConsumption + knightWheatConsumption + crossbowmanWheatConsumption; - const fishPayAmount = paladinFishConsumption + knightFishConsumption + crossbowmanFishConsumption; - - return { - wheatPayAmount, - fishPayAmount, - }; -}; - -export const computeExploreFoodCosts = ( - troops: ComponentValue | undefined, -) => { - const configManager = ClientConfigManager.instance(); - - const paladinFoodConsumption = configManager.getTravelFoodCostConfig(ResourcesIds.Paladin); - const knightFoodConsumption = configManager.getTravelFoodCostConfig(ResourcesIds.Knight); - const crossbowmanFoodConsumption = configManager.getTravelFoodCostConfig(ResourcesIds.Crossbowman); - - const paladinCount = divideByPrecision(Number(troops?.paladin_count)); - const knightCount = divideByPrecision(Number(troops?.knight_count)); - const crossbowmanCount = divideByPrecision(Number(troops?.crossbowman_count)); - - const paladinWheatConsumption = paladinFoodConsumption.exploreWheatBurnAmount * paladinCount; - const knightWheatConsumption = knightFoodConsumption.exploreWheatBurnAmount * knightCount; - const crossbowmanWheatConsumption = crossbowmanFoodConsumption.exploreWheatBurnAmount * crossbowmanCount; - - const paladinFishConsumption = paladinFoodConsumption.exploreFishBurnAmount * paladinCount; - const knightFishConsumption = knightFoodConsumption.exploreFishBurnAmount * knightCount; - const crossbowmanFishConsumption = crossbowmanFoodConsumption.exploreFishBurnAmount * crossbowmanCount; - - const wheatPayAmount = paladinWheatConsumption + knightWheatConsumption + crossbowmanWheatConsumption; - const fishPayAmount = paladinFishConsumption + knightFishConsumption + crossbowmanFishConsumption; - - return { - wheatPayAmount, - fishPayAmount, - }; -}; - export const separateCamelCase = (str: string): string => { return str .replace(/([a-z])([A-Z])/g, "$1 $2") diff --git a/client/apps/landing/src/dojo/modelManager/ConfigManager.ts b/client/apps/landing/src/dojo/modelManager/ConfigManager.ts deleted file mode 100644 index f71880dc9..000000000 --- a/client/apps/landing/src/dojo/modelManager/ConfigManager.ts +++ /dev/null @@ -1,653 +0,0 @@ -import { divideByPrecision } from "@/components/ui/utils/utils"; -import { - ADMIN_BANK_ENTITY_ID, - BUILDING_CATEGORY_POPULATION_CONFIG_ID, - BuildingType, - CapacityConfigCategory, - EternumGlobalConfig, - GET_HYPERSTRUCTURE_RESOURCES_PER_TIER, - HYPERSTRUCTURE_CONFIG_ID, - POPULATION_CONFIG_ID, - ResourcesIds, - ResourceTier, - StructureType, - TickIds, - TravelTypes, - WORLD_CONFIG_ID, -} from "@bibliothecadao/eternum"; -import { getComponentValue } from "@dojoengine/recs"; -import { getEntityIdFromKeys } from "@dojoengine/utils"; -import { ContractComponents } from "../contractComponents"; -import { configManager } from "../setup"; - -export class ClientConfigManager { - private static _instance: ClientConfigManager; - private components!: ContractComponents; - - resourceInputs: Record = {}; - resourceOutput: Record = {}; - hyperstructureTotalCosts: Record = {}; - realmUpgradeCosts: Record = {}; - buildingCosts: Record = {}; - resourceBuildingCosts: Record = {}; - structureCosts: Record = {}; - - public setDojo(components: ContractComponents) { - this.components = components; - this.initializeResourceInputs(); - this.initializeResourceOutput(); - this.initializeHyperstructureTotalCosts(); - this.initializeRealmUpgradeCosts(); - this.initializeResourceBuildingCosts(); - this.initializeBuildingCosts(); - this.initializeStructureCosts(); - } - - public static instance(): ClientConfigManager { - if (!ClientConfigManager._instance) { - ClientConfigManager._instance = new ClientConfigManager(); - } - - return ClientConfigManager._instance; - } - - private getValueOrDefault(callback: () => T, defaultValue: T): T { - if (!this.components) { - return defaultValue; - } - return callback(); - } - - private initializeResourceInputs() { - if (!this.components) return; - - for (const resourceType of Object.values(ResourcesIds).filter(Number.isInteger)) { - const productionConfig = getComponentValue( - this.components.ProductionConfig, - getEntityIdFromKeys([BigInt(resourceType)]), - ); - - const inputCount = productionConfig?.input_count ?? 0; - const inputs: { resource: ResourcesIds; amount: number }[] = []; - - for (let index = 0; index < inputCount; index++) { - const productionInput = getComponentValue( - this.components.ProductionInput, - getEntityIdFromKeys([BigInt(resourceType), BigInt(index)]), - ); - - if (productionInput) { - const resource = productionInput.input_resource_type; - const amount = divideByPrecision(Number(productionInput.input_resource_amount)); - inputs.push({ resource, amount }); - } - } - - this.resourceInputs[Number(resourceType)] = inputs; - } - } - - private initializeResourceOutput() { - if (!this.components) return; - - for (const resourceType of Object.values(ResourcesIds).filter(Number.isInteger)) { - const productionConfig = getComponentValue( - this.components.ProductionConfig, - getEntityIdFromKeys([BigInt(resourceType)]), - ); - - this.resourceOutput[Number(resourceType)] = { - resource: Number(resourceType) as ResourcesIds, - amount: divideByPrecision(Number(productionConfig?.amount)), - }; - } - } - - private initializeHyperstructureTotalCosts() { - const hyperstructureTotalCosts: { resource: ResourceTier; min_amount: number; max_amount: number }[] = []; - - for (const resourceTier of Object.values(ResourceTier).filter(Number.isInteger)) { - const hyperstructureResourceConfig = getComponentValue( - this.components.HyperstructureResourceConfig, - getEntityIdFromKeys([HYPERSTRUCTURE_CONFIG_ID, BigInt(resourceTier)]), - ); - - const min_amount = - Number(hyperstructureResourceConfig?.min_amount ?? 0) / EternumGlobalConfig.resources.resourcePrecision; - - const max_amount = - Number(hyperstructureResourceConfig?.max_amount ?? 0) / EternumGlobalConfig.resources.resourcePrecision; - - hyperstructureTotalCosts.push({ resource: resourceTier as ResourceTier, min_amount, max_amount }); - } - - this.hyperstructureTotalCosts = hyperstructureTotalCosts; - } - - private initializeRealmUpgradeCosts() { - const realmMaxLevel = - getComponentValue(this.components.RealmMaxLevelConfig, getEntityIdFromKeys([WORLD_CONFIG_ID]))?.max_level ?? 0; - - for (let index = 1; index <= realmMaxLevel; index++) { - const realmLevelConfig = getComponentValue( - this.components.RealmLevelConfig, - getEntityIdFromKeys([BigInt(index)]), - ); - - const resourcesCount = realmLevelConfig?.required_resource_count ?? 0; - const detachedResourceId = realmLevelConfig?.required_resources_id ?? 0; - - const resources: { resource: ResourcesIds; amount: number }[] = []; - - for (let index = 0; index < resourcesCount; index++) { - const resource = getComponentValue( - this.components.DetachedResource, - getEntityIdFromKeys([BigInt(detachedResourceId), BigInt(index)]), - ); - if (resource) { - const resourceId = resource.resource_type; - const amount = divideByPrecision(Number(resource.resource_amount)); - resources.push({ resource: resourceId, amount }); - } - } - this.realmUpgradeCosts[index] = resources; - } - } - - private initializeResourceBuildingCosts() { - for (const resourceId of Object.values(ResourcesIds).filter(Number.isInteger)) { - const buildingConfig = getComponentValue( - this.components.BuildingConfig, - getEntityIdFromKeys([WORLD_CONFIG_ID, BigInt(BuildingType.Resource), BigInt(resourceId)]), - ); - - const resourceCostCount = buildingConfig?.resource_cost_count || 0; - const resourceCostId = buildingConfig?.resource_cost_id || 0; - - const resourceCosts: { resource: ResourcesIds; amount: number }[] = []; - for (let index = 0; index < resourceCostCount; index++) { - const resourceCost = getComponentValue( - this.components.ResourceCost, - getEntityIdFromKeys([BigInt(resourceCostId), BigInt(index)]), - ); - if (!resourceCost) { - continue; - } - - const resourceType = resourceCost.resource_type; - const amount = Number(resourceCost.amount) / EternumGlobalConfig.resources.resourcePrecision; - - resourceCosts.push({ resource: resourceType, amount }); - } - this.resourceBuildingCosts[Number(resourceId)] = resourceCosts; - } - } - - private initializeBuildingCosts() { - for (const buildingType of Object.values(BuildingType).filter(Number.isInteger)) { - const resourceType = this.getResourceBuildingProduced(Number(buildingType)); - - const buildingConfig = getComponentValue( - this.components.BuildingConfig, - getEntityIdFromKeys([WORLD_CONFIG_ID, BigInt(buildingType), BigInt(resourceType)]), - ); - - const resourceCostCount = buildingConfig?.resource_cost_count || 0; - const resourceCostId = buildingConfig?.resource_cost_id || 0; - - const resourceCosts: { resource: ResourcesIds; amount: number }[] = []; - for (let index = 0; index < resourceCostCount; index++) { - const resourceCost = getComponentValue( - this.components.ResourceCost, - getEntityIdFromKeys([BigInt(resourceCostId), BigInt(index)]), - ); - if (!resourceCost) { - continue; - } - - const resourceType = resourceCost.resource_type; - const amount = Number(resourceCost.amount) / this.getResourcePrecision(); - - resourceCosts.push({ resource: resourceType, amount }); - } - this.buildingCosts[Number(buildingType)] = resourceCosts; - } - } - - private initializeStructureCosts() { - this.structureCosts[StructureType.Hyperstructure] = [this.getHyperstructureConstructionCosts()]; - } - - private getHyperstructureConstructionCosts() { - const hyperstructureResourceConfig = getComponentValue( - this.components.HyperstructureResourceConfig, - getEntityIdFromKeys([HYPERSTRUCTURE_CONFIG_ID, BigInt(ResourceTier.Lords)]), - ); - - return { - amount: divideByPrecision(Number(hyperstructureResourceConfig?.min_amount) ?? 0), - resource: ResourcesIds.AncientFragment, - }; - } - - getResourceWeight(resourceId: number): number { - // todo: using EternumGlobalConfig because no access to recs - return this.getValueOrDefault(() => { - const weightGram = - EternumGlobalConfig.resources.resourceWeightsGrams[ - resourceId as keyof typeof EternumGlobalConfig.resources.resourceWeightsGrams - ]; - return weightGram; - }, 0); - } - - getTravelStaminaCost() { - return this.getValueOrDefault(() => { - const staminaConfig = getComponentValue( - this.components.TravelStaminaCostConfig, - getEntityIdFromKeys([WORLD_CONFIG_ID, BigInt(TravelTypes.Travel)]), - ); - return staminaConfig?.cost ?? 0; - }, 1); - } - - getExploreStaminaCost() { - return this.getValueOrDefault(() => { - const staminaConfig = getComponentValue( - this.components.TravelStaminaCostConfig, - getEntityIdFromKeys([WORLD_CONFIG_ID, BigInt(TravelTypes.Explore)]), - ); - return staminaConfig?.cost ?? 0; - }, 1); - } - - getExploreReward() { - return this.getValueOrDefault(() => { - const exploreConfig = getComponentValue(this.components.MapConfig, getEntityIdFromKeys([WORLD_CONFIG_ID])); - - return divideByPrecision(Number(exploreConfig?.reward_resource_amount ?? 0)); - }, 0); - } - - getTroopConfig() { - return this.getValueOrDefault( - () => { - const troopConfig = getComponentValue(this.components.TroopConfig, getEntityIdFromKeys([WORLD_CONFIG_ID])); - - return { - health: troopConfig?.health ?? 0, - knightStrength: troopConfig?.knight_strength ?? 0, - paladinStrength: troopConfig?.paladin_strength ?? 0, - crossbowmanStrength: troopConfig?.crossbowman_strength ?? 0, - advantagePercent: troopConfig?.advantage_percent ?? 0, - disadvantagePercent: troopConfig?.disadvantage_percent ?? 0, - maxTroopCount: divideByPrecision(troopConfig?.max_troop_count ?? 0), - pillageHealthDivisor: troopConfig?.pillage_health_divisor ?? 0, - baseArmyNumberForStructure: troopConfig?.army_free_per_structure ?? 0, - armyExtraPerMilitaryBuilding: troopConfig?.army_extra_per_building ?? 0, - maxArmiesPerStructure: troopConfig?.army_max_per_structure ?? 0, - battleLeaveSlashNum: troopConfig?.battle_leave_slash_num ?? 0, - battleLeaveSlashDenom: troopConfig?.battle_leave_slash_denom ?? 0, - battleTimeScale: troopConfig?.battle_time_scale ?? 0, - }; - }, - { - health: 0, - knightStrength: 0, - paladinStrength: 0, - crossbowmanStrength: 0, - advantagePercent: 0, - disadvantagePercent: 0, - maxTroopCount: 0, - pillageHealthDivisor: 0, - baseArmyNumberForStructure: 0, - armyExtraPerMilitaryBuilding: 0, - maxArmiesPerStructure: 0, - battleLeaveSlashNum: 0, - battleLeaveSlashDenom: 0, - battleTimeScale: 0, - }, - ); - } - - getBattleGraceTickCount(category: StructureType) { - return this.getValueOrDefault(() => { - const battleConfig = getComponentValue(this.components.BattleConfig, getEntityIdFromKeys([WORLD_CONFIG_ID])); - switch (category) { - case StructureType.Hyperstructure: - return Number(battleConfig?.hyperstructure_immunity_ticks ?? 0); - case StructureType.FragmentMine: - return 0; - default: - return Number(battleConfig?.regular_immunity_ticks ?? 0); - } - }, 0); - } - - getBattleDelay() { - return this.getValueOrDefault(() => { - const battleConfig = getComponentValue(this.components.BattleConfig, getEntityIdFromKeys([WORLD_CONFIG_ID])); - - return Number(battleConfig?.battle_delay_seconds ?? 0); - }, 0); - } - - getResourceBridgeFeeSplitConfig() { - return this.getValueOrDefault( - () => { - const resourceBridgeFeeSplitConfig = getComponentValue( - this.components.ResourceBridgeFeeSplitConfig, - getEntityIdFromKeys([WORLD_CONFIG_ID]), - ); - return { - config_id: Number(resourceBridgeFeeSplitConfig?.config_id ?? WORLD_CONFIG_ID), - velords_fee_on_dpt_percent: Number(resourceBridgeFeeSplitConfig?.velords_fee_on_dpt_percent ?? 0), - velords_fee_on_wtdr_percent: Number(resourceBridgeFeeSplitConfig?.velords_fee_on_wtdr_percent ?? 0), - season_pool_fee_on_dpt_percent: Number(resourceBridgeFeeSplitConfig?.season_pool_fee_on_dpt_percent ?? 0), - season_pool_fee_on_wtdr_percent: Number(resourceBridgeFeeSplitConfig?.season_pool_fee_on_wtdr_percent ?? 0), - client_fee_on_dpt_percent: Number(resourceBridgeFeeSplitConfig?.client_fee_on_dpt_percent ?? 0), - client_fee_on_wtdr_percent: Number(resourceBridgeFeeSplitConfig?.client_fee_on_wtdr_percent ?? 0), - velords_fee_recipient: resourceBridgeFeeSplitConfig?.velords_fee_recipient ?? BigInt(0), - season_pool_fee_recipient: resourceBridgeFeeSplitConfig?.season_pool_fee_recipient ?? BigInt(0), - max_bank_fee_dpt_percent: Number(resourceBridgeFeeSplitConfig?.max_bank_fee_dpt_percent ?? 0), - max_bank_fee_wtdr_percent: Number(resourceBridgeFeeSplitConfig?.max_bank_fee_wtdr_percent ?? 0), - }; - }, - { - config_id: Number(WORLD_CONFIG_ID), - velords_fee_on_dpt_percent: 0, - velords_fee_on_wtdr_percent: 0, - season_pool_fee_on_dpt_percent: 0, - season_pool_fee_on_wtdr_percent: 0, - client_fee_on_dpt_percent: 0, - client_fee_on_wtdr_percent: 0, - velords_fee_recipient: BigInt(0), - season_pool_fee_recipient: BigInt(0), - max_bank_fee_dpt_percent: 0, - max_bank_fee_wtdr_percent: 0, - }, - ); - } - - getTick(tickId: TickIds) { - return this.getValueOrDefault(() => { - const tickConfig = getComponentValue( - this.components.TickConfig, - getEntityIdFromKeys([WORLD_CONFIG_ID, BigInt(tickId)]), - ); - - return Number(tickConfig?.tick_interval_in_seconds ?? 0); - }, 0); - } - - getBankConfig() { - return this.getValueOrDefault( - () => { - const bankConfig = getComponentValue(this.components.BankConfig, getEntityIdFromKeys([WORLD_CONFIG_ID])); - - return { - lordsCost: divideByPrecision(Number(bankConfig?.lords_cost)), - lpFeesNumerator: Number(bankConfig?.lp_fee_num ?? 0), - lpFeesDenominator: Number(bankConfig?.lp_fee_denom ?? 0), - }; - }, - { - lordsCost: 0, - lpFeesNumerator: 0, - lpFeesDenominator: 0, - }, - ); - } - - getAdminBankOwnerFee() { - const adminBank = getComponentValue(this.components.Bank, getEntityIdFromKeys([ADMIN_BANK_ENTITY_ID])); - - const numerator = Number(adminBank?.owner_fee_num) ?? 0; - const denominator = Number(adminBank?.owner_fee_denom) ?? 0; - return numerator / denominator; - } - - getAdminBankLpFee() { - const bankConfig = this.getBankConfig(); - - return bankConfig.lpFeesNumerator / bankConfig.lpFeesDenominator; - } - - getCapacityConfig(category: CapacityConfigCategory) { - return this.getValueOrDefault(() => { - const capacityConfig = getComponentValue(this.components.CapacityConfig, getEntityIdFromKeys([BigInt(category)])); - return Number(capacityConfig?.weight_gram ?? 0); - }, 0); - } - - getSpeedConfig(entityType: number): number { - return this.getValueOrDefault(() => { - const speedConfig = getComponentValue( - this.components.SpeedConfig, - getEntityIdFromKeys([WORLD_CONFIG_ID, BigInt(entityType)]), - ); - - return speedConfig?.sec_per_km ?? 0; - }, 0); - } - - getBuildingPopConfig(buildingId: BuildingType): { - population: number; - capacity: number; - } { - return this.getValueOrDefault( - () => { - const buildingConfig = getComponentValue( - this.components.BuildingCategoryPopConfig, - getEntityIdFromKeys([BUILDING_CATEGORY_POPULATION_CONFIG_ID, BigInt(buildingId)]), - ); - - return { - population: buildingConfig?.population ?? 0, - capacity: buildingConfig?.capacity ?? 0, - }; - }, - { - population: 0, - capacity: 0, - }, - ); - } - - getHyperstructureConfig() { - return this.getValueOrDefault( - () => { - const hyperstructureConfig = getComponentValue( - this.components.HyperstructureConfig, - getEntityIdFromKeys([HYPERSTRUCTURE_CONFIG_ID]), - ); - - return { - timeBetweenSharesChange: hyperstructureConfig?.time_between_shares_change ?? 0, - pointsPerCycle: Number(hyperstructureConfig?.points_per_cycle) ?? 0, - pointsForWin: Number(hyperstructureConfig?.points_for_win) ?? 0, - pointsOnCompletion: Number(hyperstructureConfig?.points_on_completion) ?? 0, - }; - }, - { - timeBetweenSharesChange: 0, - pointsPerCycle: 0, - pointsForWin: 0, - pointsOnCompletion: 0, - }, - ); - } - - getHyperstructureTotalContributableAmount(hyperstructureId: number) { - const requiredAmounts = this.getHyperstructureRequiredAmounts(hyperstructureId); - return requiredAmounts.reduce( - (total, { amount, resource }) => total + amount * configManager.getResourceRarity(resource), - 0, - ); - } - - getHyperstructureRequiredAmounts(hyperstructureId: number) { - const hyperstructure = getComponentValue( - this.components.Hyperstructure, - getEntityIdFromKeys([BigInt(hyperstructureId)]), - ); - - const randomness = BigInt(hyperstructure?.randomness ?? 0); - const requiredAmounts: { resource: ResourcesIds; amount: number }[] = []; - - // Get amounts for each tier - for (const tier in ResourceTier) { - if (isNaN(Number(tier))) continue; // Skip non-numeric enum values - - const resourceTierNumber = Number(tier) as ResourceTier; - const resourcesInTier = GET_HYPERSTRUCTURE_RESOURCES_PER_TIER(resourceTierNumber, true); - const amountForTier = this.getHyperstructureRequiredAmountPerTier(resourceTierNumber, randomness); - - // Add entry for each resource in this tier - resourcesInTier.forEach((resourceId) => { - requiredAmounts.push({ - resource: resourceId, - amount: amountForTier, - }); - }); - } - - return requiredAmounts; - } - - getHyperstructureRequiredAmountPerTier(resourceTier: ResourceTier, randomness: bigint): number { - const hyperstructureResourceConfig = getComponentValue( - this.components.HyperstructureResourceConfig, - getEntityIdFromKeys([HYPERSTRUCTURE_CONFIG_ID, BigInt(resourceTier)]), - ); - - if (!hyperstructureResourceConfig) { - return 0; - } - - const minAmount = Number(hyperstructureResourceConfig.min_amount); - const maxAmount = Number(hyperstructureResourceConfig.max_amount); - - if (minAmount === maxAmount) { - return divideByPrecision(minAmount); - } - - const additionalAmount = Number(randomness % BigInt(maxAmount - minAmount)); - return divideByPrecision(minAmount + Number(additionalAmount)); - } - - getBasePopulationCapacity(): number { - return this.getValueOrDefault(() => { - return ( - getComponentValue(this.components.PopulationConfig, getEntityIdFromKeys([POPULATION_CONFIG_ID])) - ?.base_population ?? 0 - ); - }, 0); - } - - getResourceOutputs(resourceType: number): number { - return this.getValueOrDefault(() => { - const productionConfig = getComponentValue( - this.components.ProductionConfig, - getEntityIdFromKeys([BigInt(resourceType)]), - ); - - return Number(productionConfig?.amount ?? 0); - }, 0); - } - - getTravelFoodCostConfig(troopType: number) { - return this.getValueOrDefault( - () => { - const travelFoodCostConfig = getComponentValue( - this.components.TravelFoodCostConfig, - getEntityIdFromKeys([WORLD_CONFIG_ID, BigInt(troopType)]), - ); - - return { - exploreWheatBurnAmount: Number(travelFoodCostConfig?.explore_wheat_burn_amount) ?? 0, - exploreFishBurnAmount: Number(travelFoodCostConfig?.explore_fish_burn_amount) ?? 0, - travelWheatBurnAmount: Number(travelFoodCostConfig?.travel_wheat_burn_amount) ?? 0, - travelFishBurnAmount: Number(travelFoodCostConfig?.travel_fish_burn_amount) ?? 0, - }; - }, - { - exploreWheatBurnAmount: 0, - exploreFishBurnAmount: 0, - travelWheatBurnAmount: 0, - travelFishBurnAmount: 0, - }, - ); - } - - getTroopStaminaConfig(troopId: number) { - return this.getValueOrDefault(() => { - const staminaConfig = getComponentValue( - this.components.StaminaConfig, - getEntityIdFromKeys([WORLD_CONFIG_ID, BigInt(troopId)]), - ); - return staminaConfig?.max_stamina ?? 0; - }, 0); - } - - getResourceRarity(resourceId: ResourcesIds) { - return EternumGlobalConfig.resources.resourceRarity[resourceId] ?? 0; - } - - getResourcePrecision() { - return EternumGlobalConfig.resources.resourcePrecision; - } - - getResourceMultiplier() { - return EternumGlobalConfig.resources.resourceMultiplier; - } - - getResourceBuildingProduced(buildingType: BuildingType) { - return EternumGlobalConfig.buildings.buildingResourceProduced[buildingType] ?? 0; - } - - getBuildingBaseCostPercentIncrease() { - return this.getValueOrDefault(() => { - const buildingGeneralConfig = getComponentValue( - this.components.BuildingGeneralConfig, - getEntityIdFromKeys([WORLD_CONFIG_ID]), - ); - return buildingGeneralConfig?.base_cost_percent_increase ?? 0; - }, 0); - } - - getSeasonBridgeConfig() { - return this.getValueOrDefault( - () => { - const seasonBridgeConfig = getComponentValue( - this.components.SeasonBridgeConfig, - getEntityIdFromKeys([WORLD_CONFIG_ID]), - ); - return { - closeAfterEndSeconds: seasonBridgeConfig?.close_after_end_seconds ?? 0n, - }; - }, - { - closeAfterEndSeconds: 0n, - }, - ); - } - - getSeasonConfig() { - return this.getValueOrDefault( - () => { - const season = getComponentValue(this.components.Season, getEntityIdFromKeys([WORLD_CONFIG_ID])); - return { - startAt: season?.start_at, - isOver: season?.is_over, - endedAt: season?.ended_at, - }; - }, - { - startAt: 0n, - isOver: true, - endedAt: 0n, - }, - ); - } -} diff --git a/client/apps/landing/src/dojo/modelManager/ResourceManager.ts b/client/apps/landing/src/dojo/modelManager/ResourceManager.ts deleted file mode 100644 index 5bef6a233..000000000 --- a/client/apps/landing/src/dojo/modelManager/ResourceManager.ts +++ /dev/null @@ -1,251 +0,0 @@ -import { BuildingType, CapacityConfigCategory, ResourcesIds, type ID } from "@bibliothecadao/eternum"; -import { getComponentValue } from "@dojoengine/recs"; -import { getEntityIdFromKeys, gramToKg, multiplyByPrecision } from "../../components/ui/utils/utils"; -import { configManager, type SetupResult } from "../setup"; - -export class ResourceManager { - entityId: ID; - resourceId: ResourcesIds; - - constructor( - private readonly setup: SetupResult, - entityId: ID, - resourceId: ResourcesIds, - ) { - this.entityId = entityId; - this.resourceId = resourceId; - } - - public getProduction() { - return this._getProduction(this.resourceId); - } - - public getResource() { - return this._getResource(this.resourceId); - } - - public isActive(): boolean { - const production = this._getProduction(this.resourceId); - return production !== undefined && (production.building_count > 0 || production.consumption_rate > 0); - } - - public netRate(): [boolean, number] { - return this._netRate(this.resourceId); - } - - public balanceExhaustionTick(currentTick: number): number { - return this._balanceExhaustionTick(currentTick, this.resourceId); - } - - public productionDuration(currentTick: number): number { - return this._productionDuration(currentTick, this.resourceId); - } - - public depletionDuration(currentTick: number): number { - return this._depletionDuration(currentTick, this.resourceId); - } - - public balance(currentTick: number): number { - return this._balance(currentTick, this.resourceId); - } - - public timeUntilFinishTick(currentTick: number): number { - const finishTick = this._finish_tick(); - return finishTick > currentTick ? finishTick - currentTick : 0; - } - - public timeUntilValueReached(currentTick: number, value: number): number { - const production = this._getProduction(this.resourceId); - const resource = this._getResource(this.resourceId); - - if (!production || !resource) return 0; - - const [sign, rate] = this._netRate(this.resourceId); - const balance = this.balance(currentTick); - - if (rate !== 0) { - if (sign) { - // Positive net rate, increase balance - const timeToValue = (value - balance) / rate; - return Math.round(timeToValue > 0 ? timeToValue : 0); - } else { - // Negative net rate, decrease balance but not below zero - const timeToValue = balance / -rate; - return Math.round(timeToValue > 0 ? timeToValue : 0); - } - } else { - return 0; - } - } - - public getStoreCapacity(): number { - const storehouseCapacityKg = gramToKg(configManager.getCapacityConfig(CapacityConfigCategory.Storehouse)); - const quantity = - getComponentValue( - this.setup.components.BuildingQuantityv2, - getEntityIdFromKeys([BigInt(this.entityId || 0), BigInt(BuildingType.Storehouse)]), - )?.value || 0; - return multiplyByPrecision(Number(quantity) * storehouseCapacityKg + storehouseCapacityKg); - } - - public isConsumingInputsWithoutOutput(currentTick: number): boolean { - const production = this._getProduction(this.resourceId); - if (!production) return false; - return production?.production_rate > 0n && !this._inputs_available(currentTick, this.resourceId); - } - - public balanceFromComponents( - resourceId: ResourcesIds, - rate: number, - sign: boolean, - resourceBalance: bigint | undefined, - productionDuration: number, - depletionDuration: number, - ): number { - return this._calculateBalance(resourceId, rate, sign, resourceBalance, productionDuration, depletionDuration); - } - - private _calculateBalance( - resourceId: ResourcesIds, - rate: number, - sign: boolean, - resourceBalance: bigint | undefined, - productionDuration: number, - depletionDuration: number, - ): number { - if (rate !== 0) { - if (sign) { - // Positive net rate, increase balance - const balance = Number(resourceBalance || 0n) + productionDuration * rate; - const storeCapacity = this.getStoreCapacity(); - const maxAmountStorable = multiplyByPrecision( - storeCapacity / (configManager.getResourceWeight(resourceId) || 1000), - ); - const result = Math.min(balance, maxAmountStorable); - return result; - } else { - // Negative net rate, decrease balance but not below zero - const balance = Number(resourceBalance || 0n) - -depletionDuration * rate; - if (balance < 0) { - return 0; - } else { - return balance; - } - } - } else { - // No net rate change, return current balance - const currentBalance = Number(resourceBalance || 0n); - return currentBalance; - } - } - - private _balance(currentTick: number, resourceId: ResourcesIds): number { - const resource = this._getResource(resourceId); - - const [sign, rate] = this._netRate(resourceId); - const productionDuration = this._productionDuration(currentTick, resourceId); - const productionDepletion = this._depletionDuration(currentTick, resourceId); - return this._calculateBalance(resourceId, rate, sign, resource?.balance, productionDuration, productionDepletion); - } - - private _finish_tick(): number { - const productionDeadline = this._getProductionDeadline(this.entityId); - const production = this._getProduction(this.resourceId); - if (!productionDeadline || !production) { - return Number(production?.input_finish_tick || 0); - } else { - return Math.min(Number(productionDeadline.deadline_tick), Number(production.input_finish_tick)); - } - } - - private _productionDuration(currentTick: number, resourceId: ResourcesIds): number { - const production = this._getProduction(resourceId); - const input_finish_tick = this._finish_tick(); - - if (!production) return 0; - - if (production.last_updated_tick >= input_finish_tick && input_finish_tick !== 0) { - return 0; - } - - if (input_finish_tick === 0 || input_finish_tick > currentTick) { - return Number(currentTick) - Number(production.last_updated_tick); - } else { - return Number(input_finish_tick) - Number(production.last_updated_tick); - } - } - - private _depletionDuration(currentTick: number, resourceId: ResourcesIds): number { - const production = this._getProduction(resourceId); - return Number(currentTick) - Number(production?.last_updated_tick); - } - - private _netRate(resourceId: ResourcesIds): [boolean, number] { - const production = this._getProduction(resourceId); - if (!production) return [false, 0]; - const difference = Number(production.production_rate) - Number(production.consumption_rate); - return [difference > 0, difference]; - } - - private _balanceExhaustionTick(currentTick: number, resourceId: ResourcesIds): number { - const production = this._getProduction(resourceId); - const resource = this._getResource(resourceId); - - // If there is no production or resource, return current tick - if (!production || !resource) return currentTick; - - const [_, value] = this.netRate(); - const balance = this.balance(currentTick); - - if (value != 0) { - if (value < 0) { - const lossPerTick = Math.abs(value); - const numTicksLeft = balance / lossPerTick; - return currentTick + Number(numTicksLeft); - } else { - return Number.MAX_SAFE_INTEGER; - } - } else { - if (balance > 0) { - return Number.MAX_SAFE_INTEGER; - } else { - return currentTick; - } - } - } - - private _inputs_available(currentTick: number, resourceId: ResourcesIds): boolean { - const inputs = configManager.resourceInputs[resourceId]; - - // Ensure inputs is an array before proceeding - if (inputs.length == 0) { - return true; - } - - for (const input of inputs) { - const balance = this._balance(currentTick, input.resource); - if (balance === undefined || balance <= 0) { - return false; - } - } - return true; - } - - private _getProduction(resourceId: ResourcesIds) { - return getComponentValue( - this.setup.components.Production, - getEntityIdFromKeys([BigInt(this.entityId), BigInt(resourceId)]), - ); - } - - private _getProductionDeadline(entityId: ID) { - return getComponentValue(this.setup.components.ProductionDeadline, getEntityIdFromKeys([BigInt(entityId)])); - } - - private _getResource(resourceId: ResourcesIds) { - return getComponentValue( - this.setup.components.Resource, - getEntityIdFromKeys([BigInt(this.entityId), BigInt(resourceId)]), - ); - } -} diff --git a/client/apps/landing/src/dojo/modelManager/leaderboard/LeaderboardManager.ts b/client/apps/landing/src/dojo/modelManager/leaderboard/LeaderboardManager.ts deleted file mode 100644 index 5e32a84a2..000000000 --- a/client/apps/landing/src/dojo/modelManager/leaderboard/LeaderboardManager.ts +++ /dev/null @@ -1,205 +0,0 @@ -import { configManager } from "@/dojo/setup"; -import { DojoResult } from "@/hooks/context/DojoContext"; -import { - ContractAddress, - GuildInfo, - ID, - RESOURCE_RARITY, - ResourcesIds, - TickIds, - WORLD_CONFIG_ID, -} from "@bibliothecadao/eternum"; -import { Entity, getComponentValue, HasValue, runQuery } from "@dojoengine/recs"; -import { getEntityIdFromKeys } from "@dojoengine/utils"; -import { ClientConfigManager } from "../ConfigManager"; - -export interface HyperstructureFinishedEvent { - hyperstructureEntityId: ID; - timestamp: number; -} - -export class LeaderboardManager { - private static _instance: LeaderboardManager; - - private constructor(private dojoResult: DojoResult) {} - - public static instance(dojoResult: DojoResult) { - if (!LeaderboardManager._instance) { - LeaderboardManager._instance = new LeaderboardManager(dojoResult); - } - return LeaderboardManager._instance; - } - - public getCurrentCoOwners(hyperstructureEntityId: ID) { - const hyperstructure = getComponentValue( - this.dojoResult.setup.components.Hyperstructure, - getEntityIdFromKeys([BigInt(hyperstructureEntityId)]), - ); - if (!hyperstructure) return; - const currentEpoch = getComponentValue( - this.dojoResult.setup.components.Epoch, - getEntityIdFromKeys([BigInt(hyperstructureEntityId), BigInt(hyperstructure.current_epoch)]), - ); - if (!currentEpoch) return; - - const coOwners = (currentEpoch.owners as any).map((owner: any) => { - let [owner_address, percentage] = owner.value.map((value: any) => value.value); - return { address: owner_address, percentage: Number(percentage) / 10_000 }; - }); - - return { coOwners, timestamp: Number(currentEpoch.start_timestamp) }; - } - - public getGuildsByRank( - currentTimestamp: number, - getGuildFromPlayerAddress: (playerAddress: ContractAddress) => GuildInfo | undefined, - ): [ID, number][] { - const pointsPerGuild = new Map(); - - const season = getComponentValue(this.dojoResult.setup.components.Season, getEntityIdFromKeys([WORLD_CONFIG_ID])); - if (!season) return []; - const finishedHyperstructuresEntityIds = runQuery([ - HasValue(this.dojoResult.setup.components.Hyperstructure, { completed: true }), - ]); - - this.getPoints( - Array.from(finishedHyperstructuresEntityIds), - currentTimestamp, - (address) => getGuildFromPlayerAddress(address)?.entityId, - pointsPerGuild, - ); - return Array.from(pointsPerGuild).sort(([_A, guildA], [_B, guildB]) => guildB - guildA); - } - - public getPlayersByRank(currentTimestamp: number, hyperstructureEntityId?: ID): [ContractAddress, number][] { - const pointsPerPlayer = new Map(); - - const finishedHyperstructuresEntityIds = hyperstructureEntityId - ? [getEntityIdFromKeys([BigInt(hyperstructureEntityId)])] - : Array.from(runQuery([HasValue(this.dojoResult.setup.components.Hyperstructure, { completed: true })])); - - this.getPoints(finishedHyperstructuresEntityIds, currentTimestamp, (address) => address, pointsPerPlayer); - - return Array.from(pointsPerPlayer).sort(([_A, playerA], [_B, playerB]) => playerB - playerA); - } - - public getPoints( - hyperstructuresEntityIds: Entity[], - currentTimestamp: number, - getKey: (identifier: any) => any, - keyPointsMap: Map, - ): boolean { - const season = getComponentValue(this.dojoResult.setup.components.Season, getEntityIdFromKeys([999999999n])); - console.log(this.dojoResult.setup.components.Season); - if (!season) return false; - - const pointsOnCompletion = configManager.getHyperstructureConfig().pointsOnCompletion; - - hyperstructuresEntityIds.forEach((entityId) => { - const hyperstructure = getComponentValue(this.dojoResult.setup.components.Hyperstructure, entityId); - if (!hyperstructure || hyperstructure.completed === false) return; - - const totalContributableAmount = configManager.getHyperstructureTotalContributableAmount( - hyperstructure.entity_id, - ); - - const contributions = runQuery([ - HasValue(this.dojoResult.setup.components.Contribution, { - hyperstructure_entity_id: hyperstructure.entity_id, - }), - ]); - - contributions.forEach((contributionEntityId) => { - const contribution = getComponentValue(this.dojoResult.setup.components.Contribution, contributionEntityId); - if (!contribution) return; - - if (this.hasClaimedReward(contribution.player_address)) return; - - const effectiveContribution = - (Number(contribution.amount) * RESOURCE_RARITY[contribution.resource_type as ResourcesIds]!) / - configManager.getResourcePrecision(); - - const percentage = effectiveContribution / totalContributableAmount; - - const points = pointsOnCompletion * percentage; - const currentPoints = keyPointsMap.get(getKey(contribution.player_address)) || 0; - - const newPoints = currentPoints + points; - - keyPointsMap.set(getKey(contribution.player_address), newPoints); - }); - - for (let i = 0; i < hyperstructure.current_epoch; i++) { - const epoch = getComponentValue( - this.dojoResult.setup.components.Epoch, - getEntityIdFromKeys([BigInt(hyperstructure.entity_id), BigInt(i)]), - ); - if (!epoch) return false; - - const nextEpoch = getComponentValue( - this.dojoResult.setup.components.Epoch, - getEntityIdFromKeys([BigInt(hyperstructure.entity_id), BigInt(i + 1)]), - ); - - const epochEndTimestamp = - season.is_over && nextEpoch === undefined - ? season.ended_at - : nextEpoch?.start_timestamp ?? BigInt(currentTimestamp); - const epochDuration = epochEndTimestamp - epoch.start_timestamp; - - const nbOfCycles = Number(epochDuration) / ClientConfigManager.instance().getTick(TickIds.Default); - - const totalPoints = nbOfCycles * ClientConfigManager.instance().getHyperstructureConfig().pointsPerCycle; - - epoch.owners.forEach((owner) => { - let [owner_address, percentage] = (owner as any).value.map((value: any) => value.value); - - owner_address = ContractAddress(owner_address); - percentage = Number(percentage) / 10_000; - - if (this.hasClaimedReward(owner_address)) return; - - const previousPoints = keyPointsMap.get(getKey(owner_address)) || 0; - const userShare = totalPoints * percentage; - const newPointsForPlayer = previousPoints + userShare; - - keyPointsMap.set(getKey(owner_address), newPointsForPlayer); - }); - } - }); - - return true; - } - - public hasClaimedReward(playerAddress: ContractAddress) { - const claimed = getComponentValue( - this.dojoResult.setup.components.LeaderboardRewardClaimed, - getEntityIdFromKeys([playerAddress]), - ); - return claimed?.claimed; - } - - public getAddressShares(playerAddress: ContractAddress, hyperstructureEntityId: ID) { - const hyperstructure = getComponentValue( - this.dojoResult.setup.components.Hyperstructure, - getEntityIdFromKeys([BigInt(hyperstructureEntityId)]), - ); - if (!hyperstructure) return 0; - const currentEpoch = getComponentValue( - this.dojoResult.setup.components.Epoch, - getEntityIdFromKeys([BigInt(hyperstructureEntityId), BigInt(hyperstructure.current_epoch)]), - ); - if (!currentEpoch) return 0; - - for (let i = 0; i < currentEpoch.owners.length; i += 2) { - const owner_address = currentEpoch.owners[i]; - const percentage = Number(currentEpoch.owners[i + 1]) / 10_000; - - if (owner_address === playerAddress) { - return percentage; - } - } - - return 0; - } -} diff --git a/client/apps/landing/src/dojo/modelManager/leaderboard/LeaderboardUtils.ts b/client/apps/landing/src/dojo/modelManager/leaderboard/LeaderboardUtils.ts deleted file mode 100644 index b178fb698..000000000 --- a/client/apps/landing/src/dojo/modelManager/leaderboard/LeaderboardUtils.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { divideByPrecision } from "@/components/ui/utils/utils"; -import { ClientComponents } from "@/dojo/createClientComponents"; -import { configManager } from "@/dojo/setup"; -import { Resource } from "@bibliothecadao/eternum"; -import { ComponentValue } from "@dojoengine/recs"; -import { ClientConfigManager } from "../ConfigManager"; - -export function computeInitialContributionPoints( - hyperstructureId: number, - contributions: Resource[], - totalPoints: number, -): number { - return getContributionsTotalPercentage(hyperstructureId, contributions) * totalPoints; -} - -function getContributionsTotalPercentage(hyperstructureId: number, contributions: Resource[]): number { - const totalPlayerContribution = divideByPrecision( - contributions.reduce((acc, { amount, resourceId }) => { - return acc + amount * configManager.getResourceRarity(resourceId); - }, 0), - ); - - const totalHyperstructureContribution = configManager.getHyperstructureTotalContributableAmount(hyperstructureId); - - return totalPlayerContribution / totalHyperstructureContribution; -} - -export const calculateCompletionPoints = ( - contributions: ComponentValue[], -) => { - const configManager = ClientConfigManager.instance(); - const pointsOnCompletion = configManager.getHyperstructureConfig().pointsOnCompletion; - - if (contributions.length === 0) { - return 0; - } - const hyperstructureId = contributions[0].hyperstructure_entity_id; - - const formattedContributions = contributions.map((contribution) => { - return { - resourceId: contribution.resource_type, - amount: Number(contribution.amount), - }; - }); - - return computeInitialContributionPoints(hyperstructureId, formattedContributions, pointsOnCompletion); -}; diff --git a/client/apps/landing/src/dojo/setup.ts b/client/apps/landing/src/dojo/setup.ts index 368a77a0f..6fa6e87c7 100644 --- a/client/apps/landing/src/dojo/setup.ts +++ b/client/apps/landing/src/dojo/setup.ts @@ -1,11 +1,10 @@ -import { WORLD_CONFIG_ID } from "@bibliothecadao/eternum"; +import { ClientConfigManager, WORLD_CONFIG_ID } from "@bibliothecadao/eternum"; import { DojoConfig } from "@dojoengine/core"; +import { getEvents } from "@dojoengine/state"; import { Clause } from "@dojoengine/torii-client"; import { createClientComponents } from "./createClientComponents"; import { createSystemCalls } from "./createSystemCalls"; -import { ClientConfigManager } from "./modelManager/ConfigManager"; import { setupNetwork } from "./setupNetwork"; -import { getEvents } from "@dojoengine/state"; export type SetupResult = Awaited>; export const configManager = ClientConfigManager.instance(); diff --git a/client/apps/landing/src/hooks/helpers/useRealms.tsx b/client/apps/landing/src/hooks/helpers/useRealms.tsx index bdace4e59..fd639edd5 100644 --- a/client/apps/landing/src/hooks/helpers/useRealms.tsx +++ b/client/apps/landing/src/hooks/helpers/useRealms.tsx @@ -1,6 +1,6 @@ import { type ID } from "@bibliothecadao/eternum"; import { type Entity, HasValue, getComponentValue, runQuery } from "@dojoengine/recs"; -import realmsJson from "../../../../../apps/game/src/data/geodata/realms.json"; +import realmsJson from "../../../../../common/data/realms.json"; import { useDojo } from "../context/DojoContext"; export function useRealm() { diff --git a/client/apps/game/src/data/realmids_by_order.json b/client/common/data/realmids_by_order.json similarity index 100% rename from client/apps/game/src/data/realmids_by_order.json rename to client/common/data/realmids_by_order.json diff --git a/client/apps/game/src/data/geodata/realms.json b/client/common/data/realms.json similarity index 100% rename from client/apps/game/src/data/geodata/realms.json rename to client/common/data/realms.json diff --git a/client/sdk/packages/eternum/package.json b/client/sdk/packages/eternum/package.json index 65e13eefc..083ca4499 100644 --- a/client/sdk/packages/eternum/package.json +++ b/client/sdk/packages/eternum/package.json @@ -21,6 +21,7 @@ }, "dependencies": { "@dojoengine/core": "1.0.0-alpha.24", + "@latticexyz/utils": "^2.0.0-next.12", "@scure/starknet": "^1.1.0", "eventemitter3": "^5.0.1" }, diff --git a/client/sdk/packages/eternum/src/constants/buildings.ts b/client/sdk/packages/eternum/src/constants/buildings.ts index 1d868ec30..6fab32b7c 100644 --- a/client/sdk/packages/eternum/src/constants/buildings.ts +++ b/client/sdk/packages/eternum/src/constants/buildings.ts @@ -2,6 +2,9 @@ import { ResourceInputs } from "../types"; import { ResourcesIds } from "./index"; import { BuildingType } from "./structures"; +export const BUILDINGS_CENTER = [10, 10]; +export const DUMMY_HYPERSTRUCTURE_ENTITY_ID = 99999999n; + export const BUILDING_INFORMATION: { [key: number]: string; } = { diff --git a/client/sdk/packages/eternum/src/dojo/components/contractComponents.ts b/client/sdk/packages/eternum/src/dojo/components/contractComponents.ts new file mode 100644 index 000000000..d173da9f4 --- /dev/null +++ b/client/sdk/packages/eternum/src/dojo/components/contractComponents.ts @@ -0,0 +1,2213 @@ +/* Autogenerated file. Do not edit manually. */ + +import { defineComponent, Type as RecsType, type World } from "@dojoengine/recs"; + +export type ContractComponents = ReturnType; + +export function defineContractComponents(world: World) { + return { + AddressName: (() => { + return defineComponent( + world, + { address: RecsType.BigInt, name: RecsType.BigInt }, + { + metadata: { + namespace: "s0_eternum", + name: "AddressName", + types: ["felt252", "felt252"], + customTypes: [], + }, + }, + ); + })(), + Army: (() => { + return defineComponent( + world, + { + entity_id: RecsType.Number, + troops: { knight_count: RecsType.BigInt, paladin_count: RecsType.BigInt, crossbowman_count: RecsType.BigInt }, + battle_id: RecsType.Number, + battle_side: RecsType.String, + }, + { + metadata: { + namespace: "s0_eternum", + name: "Army", + types: ["u32", "u64", "u64", "u64", "u32", "enum"], + customTypes: ["Troops", "BattleSide"], + }, + }, + ); + })(), + ArrivalTime: (() => { + return defineComponent( + world, + { entity_id: RecsType.Number, arrives_at: RecsType.BigInt }, + { + metadata: { + namespace: "s0_eternum", + name: "ArrivalTime", + types: ["u32", "u64"], + customTypes: [], + }, + }, + ); + })(), + Bank: (() => { + return defineComponent( + world, + { + entity_id: RecsType.Number, + owner_fee_num: RecsType.BigInt, + owner_fee_denom: RecsType.BigInt, + owner_bridge_fee_dpt_percent: RecsType.Number, + owner_bridge_fee_wtdr_percent: RecsType.Number, + exists: RecsType.Boolean, + }, + { + metadata: { + namespace: "s0_eternum", + name: "Bank", + types: ["u32", "u128", "u128", "u16", "u16", "bool"], + customTypes: [], + }, + }, + ); + })(), + BankConfig: (() => { + return defineComponent( + world, + { + config_id: RecsType.Number, + lords_cost: RecsType.BigInt, + lp_fee_num: RecsType.BigInt, + lp_fee_denom: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "BankConfig", + types: ["u32", "u128", "u128", "u128"], + customTypes: [], + }, + }, + ); + })(), + Battle: (() => { + return defineComponent( + world, + { + entity_id: RecsType.Number, + attack_army: { + troops: { + knight_count: RecsType.BigInt, + paladin_count: RecsType.BigInt, + crossbowman_count: RecsType.BigInt, + }, + battle_id: RecsType.Number, + battle_side: RecsType.String, + }, + attack_army_lifetime: { + troops: { + knight_count: RecsType.BigInt, + paladin_count: RecsType.BigInt, + crossbowman_count: RecsType.BigInt, + }, + battle_id: RecsType.Number, + battle_side: RecsType.String, + }, + defence_army: { + troops: { + knight_count: RecsType.BigInt, + paladin_count: RecsType.BigInt, + crossbowman_count: RecsType.BigInt, + }, + battle_id: RecsType.Number, + battle_side: RecsType.String, + }, + defence_army_lifetime: { + troops: { + knight_count: RecsType.BigInt, + paladin_count: RecsType.BigInt, + crossbowman_count: RecsType.BigInt, + }, + battle_id: RecsType.Number, + battle_side: RecsType.String, + }, + attackers_resources_escrow_id: RecsType.Number, + defenders_resources_escrow_id: RecsType.Number, + attack_army_health: { current: RecsType.BigInt, lifetime: RecsType.BigInt }, + defence_army_health: { current: RecsType.BigInt, lifetime: RecsType.BigInt }, + attack_delta: RecsType.BigInt, + defence_delta: RecsType.BigInt, + last_updated: RecsType.BigInt, + duration_left: RecsType.BigInt, + start_at: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "Battle", + types: [ + "u32", + "u64", + "u64", + "u64", + "u32", + "enum", + "u64", + "u64", + "u64", + "u32", + "enum", + "u64", + "u64", + "u64", + "u32", + "enum", + "u64", + "u64", + "u64", + "u32", + "enum", + "u32", + "u32", + "u128", + "u128", + "u128", + "u128", + "u64", + "u64", + "u64", + "u64", + "u64", + ], + customTypes: [ + "BattleArmy", + "Troops", + "BattleSide", + "BattleArmy", + "Troops", + "BattleSide", + "BattleArmy", + "Troops", + "BattleSide", + "BattleArmy", + "Troops", + "BattleSide", + "BattleHealth", + "BattleHealth", + ], + }, + }, + ); + })(), + BattleConfig: (() => { + return defineComponent( + world, + { + config_id: RecsType.Number, + regular_immunity_ticks: RecsType.Number, + hyperstructure_immunity_ticks: RecsType.Number, + battle_delay_seconds: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "BattleConfig", + types: ["u32", "u8", "u8", "u64"], + customTypes: [], + }, + }, + ); + })(), + Building: (() => { + return defineComponent( + world, + { + outer_col: RecsType.Number, + outer_row: RecsType.Number, + inner_col: RecsType.Number, + inner_row: RecsType.Number, + category: RecsType.String, + produced_resource_type: RecsType.Number, + bonus_percent: RecsType.Number, + entity_id: RecsType.Number, + outer_entity_id: RecsType.Number, + paused: RecsType.Boolean, + }, + { + metadata: { + namespace: "s0_eternum", + name: "Building", + types: ["u32", "u32", "u32", "u32", "enum", "u8", "u32", "u32", "u32", "bool"], + customTypes: ["BuildingCategory"], + }, + }, + ); + })(), + BuildingCategoryPopConfig: (() => { + return defineComponent( + world, + { + config_id: RecsType.Number, + building_category: RecsType.String, + population: RecsType.Number, + capacity: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "BuildingCategoryPopConfig", + types: ["u32", "enum", "u32", "u32"], + customTypes: ["BuildingCategory"], + }, + }, + ); + })(), + BuildingConfig: (() => { + return defineComponent( + world, + { + config_id: RecsType.Number, + category: RecsType.String, + resource_type: RecsType.Number, + resource_cost_id: RecsType.Number, + resource_cost_count: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "BuildingConfig", + types: ["u32", "enum", "u8", "u32", "u32"], + customTypes: ["BuildingCategory"], + }, + }, + ); + })(), + BuildingGeneralConfig: (() => { + return defineComponent( + world, + { + config_id: RecsType.Number, + base_cost_percent_increase: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "BuildingGeneralConfig", + types: ["u32", "u16"], + customTypes: [], + }, + }, + ); + })(), + BuildingQuantityv2: (() => { + return defineComponent( + world, + { entity_id: RecsType.Number, category: RecsType.String, value: RecsType.Number }, + { + metadata: { + namespace: "s0_eternum", + name: "BuildingQuantityv2", + types: ["u32", "enum", "u8"], + customTypes: ["BuildingCategory"], + }, + }, + ); + })(), + CapacityCategory: (() => { + return defineComponent( + world, + { entity_id: RecsType.Number, category: RecsType.String }, + { + metadata: { + namespace: "s0_eternum", + name: "CapacityCategory", + types: ["u32", "enum"], + customTypes: ["CapacityConfigCategory"], + }, + }, + ); + })(), + CapacityConfig: (() => { + return defineComponent( + world, + { + category: RecsType.String, + weight_gram: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "CapacityConfig", + types: ["enum", "u128"], + customTypes: ["CapacityConfigCategory"], + }, + }, + ); + })(), + Contribution: (() => { + return defineComponent( + world, + { + hyperstructure_entity_id: RecsType.Number, + player_address: RecsType.BigInt, + resource_type: RecsType.Number, + amount: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "Contribution", + types: ["u32", "contractaddress", "u8", "u128"], + customTypes: [], + }, + }, + ); + })(), + DetachedResource: (() => { + return defineComponent( + world, + { + entity_id: RecsType.Number, + index: RecsType.Number, + resource_type: RecsType.Number, + resource_amount: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "DetachedResource", + types: ["u32", "u32", "u8", "u128"], + customTypes: [], + }, + }, + ); + })(), + EntityName: (() => { + return defineComponent( + world, + { entity_id: RecsType.Number, name: RecsType.BigInt }, + { + metadata: { + namespace: "s0_eternum", + name: "EntityName", + types: ["u32", "felt252"], + customTypes: [], + }, + }, + ); + })(), + EntityOwner: (() => { + return defineComponent( + world, + { entity_id: RecsType.Number, entity_owner_id: RecsType.Number }, + { + metadata: { + namespace: "s0_eternum", + name: "EntityOwner", + types: ["u32", "u32"], + customTypes: [], + }, + }, + ); + })(), + Epoch: (() => { + return defineComponent( + world, + { + hyperstructure_entity_id: RecsType.Number, + index: RecsType.Number, + start_timestamp: RecsType.BigInt, + owners: RecsType.BigIntArray, + }, + { + metadata: { + namespace: "s0_eternum", + name: "Epoch", + types: ["u32", "u16", "u64", "array"], + customTypes: [], + }, + }, + ); + })(), + Guild: (() => { + return defineComponent( + world, + { entity_id: RecsType.Number, is_public: RecsType.Boolean, member_count: RecsType.Number }, + { + metadata: { + namespace: "s0_eternum", + name: "Guild", + types: ["u32", "bool", "u16"], + customTypes: [], + }, + }, + ); + })(), + GuildMember: (() => { + return defineComponent( + world, + { address: RecsType.BigInt, guild_entity_id: RecsType.Number }, + { + metadata: { + namespace: "s0_eternum", + name: "GuildMember", + types: ["contractaddress", "u32"], + customTypes: [], + }, + }, + ); + })(), + GuildWhitelist: (() => { + return defineComponent( + world, + { address: RecsType.BigInt, guild_entity_id: RecsType.Number, is_whitelisted: RecsType.Boolean }, + { + metadata: { + namespace: "s0_eternum", + name: "GuildWhitelist", + types: ["contractaddress", "u32", "bool"], + customTypes: [], + }, + }, + ); + })(), + Health: (() => { + return defineComponent( + world, + { entity_id: RecsType.Number, current: RecsType.BigInt, lifetime: RecsType.BigInt }, + { + metadata: { + namespace: "s0_eternum", + name: "Health", + types: ["u32", "u128", "u128"], + customTypes: [], + }, + }, + ); + })(), + Hyperstructure: (() => { + return defineComponent( + world, + { + entity_id: RecsType.Number, + current_epoch: RecsType.Number, + completed: RecsType.Boolean, + last_updated_by: RecsType.BigInt, + last_updated_timestamp: RecsType.Number, + access: RecsType.String, + randomness: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "Hyperstructure", + types: ["u32", "u16", "bool", "contractaddress", "u64", "enum", "felt252"], + customTypes: ["Access"], + }, + }, + ); + })(), + HyperstructureConfig: (() => { + return defineComponent( + world, + { + config_id: RecsType.Number, + time_between_shares_change: RecsType.Number, + points_per_cycle: RecsType.BigInt, + points_for_win: RecsType.BigInt, + points_on_completion: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "HyperstructureConfig", + types: ["u32", "u64", "u128", "u128", "u128"], + customTypes: [], + }, + }, + ); + })(), + HyperstructureResourceConfig: (() => { + return defineComponent( + world, + { + config_id: RecsType.Number, + resource_tier: RecsType.Number, + min_amount: RecsType.BigInt, + max_amount: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "HyperstructureResourceConfig", + types: ["u32", "u8", "u128", "u128"], + customTypes: [], + }, + }, + ); + })(), + Leaderboard: (() => { + return defineComponent( + world, + { + config_id: RecsType.Number, + registration_end_timestamp: RecsType.Number, + total_points: RecsType.BigInt, + total_price_pool: RecsType.OptionalBigInt, + distribution_started: RecsType.Boolean, + }, + { + metadata: { + namespace: "s0_eternum", + name: "Leaderboard", + types: ["u32", "u64", "u128", "u256", "bool"], + customTypes: [], + }, + }, + ); + })(), + + LeaderboardEntry: (() => { + return defineComponent( + world, + { + address: RecsType.BigInt, + points: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "LeaderboardEntry", + types: ["contractaddress", "u128"], + customTypes: [], + }, + }, + ); + })(), + + LeaderboardRewardClaimed: (() => { + return defineComponent( + world, + { + address: RecsType.BigInt, + claimed: RecsType.Boolean, + }, + { + metadata: { + namespace: "s0_eternum", + name: "LeaderboardRewardClaimed", + types: ["contractaddress", "bool"], + customTypes: [], + }, + }, + ); + })(), + + LeaderboardRegistered: (() => { + return defineComponent( + world, + { + address: RecsType.BigInt, + registered: RecsType.Boolean, + }, + { + metadata: { + namespace: "s0_eternum", + name: "LeaderboardRegistered", + types: ["contractaddress", "bool"], + customTypes: [], + }, + }, + ); + })(), + + LeaderboardRegisterContribution: (() => { + return defineComponent( + world, + { + address: RecsType.BigInt, + hyperstructure_entity_id: RecsType.Number, + registered: RecsType.Boolean, + }, + { + metadata: { + namespace: "s0_eternum", + name: "LeaderboardRegisterContribution", + types: ["contractaddress", "u32", "bool"], + customTypes: [], + }, + }, + ); + })(), + + LeaderboardRegisterShare: (() => { + return defineComponent( + world, + { + address: RecsType.BigInt, + hyperstructure_entity_id: RecsType.Number, + epoch: RecsType.Number, + registered: RecsType.Boolean, + }, + { + metadata: { + namespace: "s0_eternum", + name: "LeaderboardRegisterShare", + types: ["contractaddress", "u32", "u16", "bool"], + customTypes: [], + }, + }, + ); + })(), + + Liquidity: (() => { + return defineComponent( + world, + { + bank_entity_id: RecsType.Number, + player: RecsType.BigInt, + resource_type: RecsType.Number, + shares: { mag: RecsType.BigInt, sign: RecsType.Boolean }, + }, + { + metadata: { + namespace: "s0_eternum", + name: "Liquidity", + types: ["u32", "contractaddress", "u8", "u128", "bool"], + customTypes: ["Fixed"], + }, + }, + ); + })(), + + MapConfig: (() => { + return defineComponent( + world, + { + config_id: RecsType.Number, + reward_resource_amount: RecsType.BigInt, + shards_mines_fail_probability: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "MapConfig", + types: ["u32", "u128", "u128"], + customTypes: [], + }, + }, + ); + })(), + Market: (() => { + return defineComponent( + world, + { + bank_entity_id: RecsType.Number, + resource_type: RecsType.Number, + lords_amount: RecsType.BigInt, + resource_amount: RecsType.BigInt, + total_shares: { mag: RecsType.BigInt, sign: RecsType.Boolean }, + }, + { + metadata: { + namespace: "s0_eternum", + name: "Market", + types: ["u32", "u8", "u128", "u128", "u128", "bool"], + customTypes: ["Fixed"], + }, + }, + ); + })(), + MercenariesConfig: (() => { + return defineComponent( + world, + { + config_id: RecsType.Number, + troops: { knight_count: RecsType.BigInt, paladin_count: RecsType.BigInt, crossbowman_count: RecsType.BigInt }, + rewards: RecsType.StringArray, + }, + { + metadata: { + namespace: "s0_eternum", + name: "MercenariesConfig", + types: ["u32", "u64", "u64", "u64"], + customTypes: ["Troops"], + }, + }, + ); + })(), + Message: (() => { + return defineComponent( + world, + { + identity: RecsType.BigInt, + channel: RecsType.BigInt, + content: RecsType.String, + salt: RecsType.BigInt, + timestamp: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "Message", + types: ["felt252", "felt252", "BytesArray", "felt252", "u64"], + customTypes: [], + }, + }, + ); + })(), + Movable: (() => { + return defineComponent( + world, + { + entity_id: RecsType.Number, + sec_per_km: RecsType.Number, + blocked: RecsType.Boolean, + round_trip: RecsType.Boolean, + start_coord_x: RecsType.Number, + start_coord_y: RecsType.Number, + intermediate_coord_x: RecsType.Number, + intermediate_coord_y: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "Movable", + types: ["u32", "u16", "bool", "bool", "u32", "u32", "u32", "u32"], + customTypes: [], + }, + }, + ); + })(), + Orders: (() => { + return defineComponent( + world, + { order_id: RecsType.Number, hyperstructure_count: RecsType.Number }, + { + metadata: { + namespace: "s0_eternum", + name: "Orders", + types: ["u32", "u32"], + customTypes: [], + }, + }, + ); + })(), + OwnedResourcesTracker: (() => { + return defineComponent( + world, + { entity_id: RecsType.Number, resource_types: RecsType.BigInt }, + { + metadata: { + namespace: "s0_eternum", + name: "OwnedResourcesTracker", + types: ["u32", "u256"], + customTypes: [], + }, + }, + ); + })(), + Owner: (() => { + return defineComponent( + world, + { entity_id: RecsType.Number, address: RecsType.BigInt }, + { + metadata: { + namespace: "s0_eternum", + name: "Owner", + types: ["u32", "contractaddress"], + customTypes: [], + }, + }, + ); + })(), + Population: (() => { + return defineComponent( + world, + { entity_id: RecsType.Number, population: RecsType.Number, capacity: RecsType.Number }, + { + metadata: { + namespace: "s0_eternum", + name: "Population", + types: ["u32", "u32", "u32"], + customTypes: [], + }, + }, + ); + })(), + PopulationConfig: (() => { + return defineComponent( + world, + { config_id: RecsType.Number, base_population: RecsType.Number }, + { + metadata: { + namespace: "s0_eternum", + name: "PopulationConfig", + types: ["u32", "u32"], + customTypes: [], + }, + }, + ); + })(), + Position: (() => { + return defineComponent( + world, + { entity_id: RecsType.Number, x: RecsType.Number, y: RecsType.Number }, + { + metadata: { + namespace: "s0_eternum", + name: "Position", + types: ["u32", "u32", "u32"], + customTypes: [], + }, + }, + ); + })(), + Production: (() => { + return defineComponent( + world, + { + entity_id: RecsType.Number, + resource_type: RecsType.Number, + building_count: RecsType.Number, + production_rate: RecsType.BigInt, + consumption_rate: RecsType.BigInt, + last_updated_tick: RecsType.BigInt, + input_finish_tick: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "Production", + types: ["u32", "u8", "u8", "u128", "u128", "u64", "u64"], + customTypes: [], + }, + }, + ); + })(), + ProductionConfig: (() => { + return defineComponent( + world, + { + resource_type: RecsType.Number, + amount: RecsType.BigInt, + input_count: RecsType.BigInt, + output_count: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "ProductionConfig", + types: ["u8", "u128", "u128", "u128"], + customTypes: [], + }, + }, + ); + })(), + ProductionDeadline: (() => { + return defineComponent( + world, + { entity_id: RecsType.Number, deadline_tick: RecsType.Number }, + { + metadata: { + namespace: "s0_eternum", + name: "ProductionDeadline", + types: ["u32", "u64"], + customTypes: [], + }, + }, + ); + })(), + ProductionInput: (() => { + return defineComponent( + world, + { + output_resource_type: RecsType.Number, + index: RecsType.Number, + input_resource_type: RecsType.Number, + input_resource_amount: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "ProductionInput", + types: ["u8", "u8", "u8", "u128"], + customTypes: [], + }, + }, + ); + })(), + ProductionOutput: (() => { + return defineComponent( + world, + { input_resource_type: RecsType.Number, index: RecsType.Number, output_resource_type: RecsType.Number }, + { + metadata: { + namespace: "s0_eternum", + name: "ProductionOutput", + types: ["u8", "u8", "u8"], + customTypes: [], + }, + }, + ); + })(), + Progress: (() => { + return defineComponent( + world, + { hyperstructure_entity_id: RecsType.Number, resource_type: RecsType.Number, amount: RecsType.BigInt }, + { + metadata: { + namespace: "s0_eternum", + name: "Progress", + types: ["u32", "u8", "u128"], + customTypes: [], + }, + }, + ); + })(), + Protectee: (() => { + return defineComponent( + world, + { army_id: RecsType.Number, protectee_id: RecsType.Number }, + { + metadata: { + namespace: "s0_eternum", + name: "Protectee", + types: ["u32", "u32"], + customTypes: [], + }, + }, + ); + })(), + Protector: (() => { + return defineComponent( + world, + { entity_id: RecsType.Number, army_id: RecsType.Number }, + { + metadata: { + namespace: "s0_eternum", + name: "Protector", + types: ["u32", "u32"], + customTypes: [], + }, + }, + ); + })(), + Quantity: (() => { + return defineComponent( + world, + { entity_id: RecsType.Number, value: RecsType.BigInt }, + { + metadata: { + namespace: "s0_eternum", + name: "Quantity", + types: ["u32", "u128"], + customTypes: [], + }, + }, + ); + })(), + QuantityTracker: (() => { + return defineComponent( + world, + { entity_id: RecsType.BigInt, count: RecsType.BigInt }, + { + metadata: { + namespace: "s0_eternum", + name: "QuantityTracker", + types: ["felt252", "u128"], + customTypes: [], + }, + }, + ); + })(), + Quest: (() => { + return defineComponent( + world, + { entity_id: RecsType.Number, config_id: RecsType.Number, completed: RecsType.Boolean }, + { + metadata: { + namespace: "s0_eternum", + name: "Quest", + types: ["u32", "u32", "bool"], + customTypes: [], + }, + }, + ); + })(), + QuestBonus: (() => { + return defineComponent( + world, + { entity_id: RecsType.Number, resource_type: RecsType.Number, claimed: RecsType.Boolean }, + { + metadata: { + namespace: "s0_eternum", + name: "QuestBonus", + types: ["u32", "u8", "bool"], + customTypes: [], + }, + }, + ); + })(), + QuestConfig: (() => { + return defineComponent( + world, + { config_id: RecsType.Number, production_material_multiplier: RecsType.Number }, + { + metadata: { + namespace: "s0_eternum", + name: "QuestConfig", + types: ["u32", "u16"], + customTypes: [], + }, + }, + ); + })(), + QuestRewardConfig: (() => { + return defineComponent( + world, + { quest_id: RecsType.Number, detached_resource_id: RecsType.Number, detached_resource_count: RecsType.Number }, + { + metadata: { + namespace: "s0_eternum", + name: "QuestRewardConfig", + types: ["u32", "u32", "u32"], + customTypes: [], + }, + }, + ); + })(), + Realm: (() => { + return defineComponent( + world, + { + entity_id: RecsType.Number, + realm_id: RecsType.Number, + produced_resources: RecsType.BigInt, + order: RecsType.Number, + level: RecsType.Number, + has_wonder: RecsType.Boolean, + settler_address: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "Realm", + types: ["u32", "u32", "u128", "u8", "u8", "bool", "contractaddress"], + customTypes: [], + }, + }, + ); + })(), + RealmLevelConfig: (() => { + return defineComponent( + world, + { level: RecsType.Number, required_resources_id: RecsType.Number, required_resource_count: RecsType.Number }, + { + metadata: { + namespace: "s0_eternum", + name: "RealmLevelConfig", + types: ["u8", "u32", "u8"], + customTypes: [], + }, + }, + ); + })(), + RealmMaxLevelConfig: (() => { + return defineComponent( + world, + { config_id: RecsType.Number, max_level: RecsType.Number }, + { + metadata: { + namespace: "s0_eternum", + name: "RealmMaxLevelConfig", + types: ["u32", "u8"], + customTypes: [], + }, + }, + ); + })(), + Resource: (() => { + return defineComponent( + world, + { entity_id: RecsType.Number, resource_type: RecsType.Number, balance: RecsType.BigInt }, + { + metadata: { + namespace: "s0_eternum", + name: "Resource", + types: ["u32", "u8", "u128"], + customTypes: [], + }, + }, + ); + })(), + ResourceAllowance: (() => { + return defineComponent( + world, + { + owner_entity_id: RecsType.Number, + approved_entity_id: RecsType.Number, + resource_type: RecsType.Number, + amount: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "ResourceAllowance", + types: ["u32", "u32", "u8", "u128"], + customTypes: [], + }, + }, + ); + })(), + ResourceBridgeFeeSplitConfig: (() => { + return defineComponent( + world, + { + config_id: RecsType.Number, + velords_fee_on_dpt_percent: RecsType.Number, + velords_fee_on_wtdr_percent: RecsType.Number, + season_pool_fee_on_dpt_percent: RecsType.Number, + season_pool_fee_on_wtdr_percent: RecsType.Number, + client_fee_on_dpt_percent: RecsType.Number, + client_fee_on_wtdr_percent: RecsType.Number, + velords_fee_recipient: RecsType.BigInt, + season_pool_fee_recipient: RecsType.BigInt, + max_bank_fee_dpt_percent: RecsType.Number, + max_bank_fee_wtdr_percent: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "ResourceBridgeFeeSplitConfig", + types: [ + "u32", + "u16", + "u16", + "u16", + "u16", + "u16", + "u16", + "ContractAddress", + "ContractAddress", + "u16", + "u16", + ], + customTypes: [], + }, + }, + ); + })(), + ResourceBridgeWhitelistConfig: (() => { + return defineComponent( + world, + { + token: RecsType.BigInt, + resource_type: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "ResourceBridgeWhitelistConfig", + types: ["ContractAddress", "u8"], + customTypes: [], + }, + }, + ); + })(), + ResourceCost: (() => { + return defineComponent( + world, + { entity_id: RecsType.Number, index: RecsType.Number, resource_type: RecsType.Number, amount: RecsType.BigInt }, + { + metadata: { + namespace: "s0_eternum", + name: "ResourceCost", + types: ["u32", "u32", "u8", "u128"], + customTypes: [], + }, + }, + ); + })(), + ResourceTransferLock: (() => { + return defineComponent( + world, + { entity_id: RecsType.Number, start_at: RecsType.BigInt, release_at: RecsType.BigInt }, + { + metadata: { + namespace: "s0_eternum", + name: "ResourceTransferLock", + types: ["u32", "u64", "u64"], + customTypes: [], + }, + }, + ); + })(), + Season: (() => { + return defineComponent( + world, + { + config_id: RecsType.Number, + start_at: RecsType.BigInt, + is_over: RecsType.Boolean, + ended_at: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "Season", + types: ["u32", "u64", "bool", "u64"], + customTypes: [], + }, + }, + ); + })(), + SeasonAddressesConfig: (() => { + return defineComponent( + world, + { + config_id: RecsType.Number, + season_pass_address: RecsType.BigInt, + realms_address: RecsType.BigInt, + lords_address: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "SeasonAddressesConfig", + types: ["u32", "ContractAddress", "ContractAddress", "ContractAddress"], + customTypes: [], + }, + }, + ); + })(), + SeasonBridgeConfig: (() => { + return defineComponent( + world, + { + config_id: RecsType.Number, + close_after_end_seconds: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "SeasonBridgeConfig", + types: ["u32", "u64"], + customTypes: [], + }, + }, + ); + })(), + + SettlementConfig: (() => { + return defineComponent( + world, + { + config_id: RecsType.Number, + angle_scaled: RecsType.BigInt, + center: RecsType.Number, + min_scaling_factor_scaled: RecsType.BigInt, + radius: RecsType.Number, + min_distance: RecsType.Number, + max_distance: RecsType.Number, + min_angle_increase: RecsType.BigInt, + max_angle_increase: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "SettlementConfig", + types: ["u32", "u128", "u32", "u128", "u32", "u32", "u32", "u64", "u64"], + customTypes: [], + }, + }, + ); + })(), + SpeedConfig: (() => { + return defineComponent( + world, + { + config_id: RecsType.Number, + speed_config_id: RecsType.Number, + entity_type: RecsType.Number, + sec_per_km: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "SpeedConfig", + types: ["u32", "u32", "u32", "u16"], + customTypes: [], + }, + }, + ); + })(), + Stamina: (() => { + return defineComponent( + world, + { entity_id: RecsType.Number, amount: RecsType.Number, last_refill_tick: RecsType.BigInt }, + { + metadata: { + namespace: "s0_eternum", + name: "Stamina", + types: ["u32", "u16", "u64"], + customTypes: [], + }, + }, + ); + })(), + StaminaConfig: (() => { + return defineComponent( + world, + { config_id: RecsType.Number, unit_type: RecsType.Number, max_stamina: RecsType.Number }, + { + metadata: { + namespace: "s0_eternum", + name: "StaminaConfig", + types: ["u32", "u8", "u16"], + customTypes: [], + }, + }, + ); + })(), + StaminaRefillConfig: (() => { + return defineComponent( + world, + { config_id: RecsType.Number, amount_per_tick: RecsType.Number, start_boost_tick_count: RecsType.Number }, + { + metadata: { + namespace: "s0_eternum", + name: "StaminaRefillConfig", + types: ["u32", "u16", "u8"], + customTypes: [], + }, + }, + ); + })(), + Status: (() => { + return defineComponent( + world, + { trade_id: RecsType.Number, value: RecsType.BigInt }, + { + metadata: { + namespace: "s0_eternum", + name: "Status", + types: ["u32", "u128"], + customTypes: [], + }, + }, + ); + })(), + Structure: (() => { + return defineComponent( + world, + { entity_id: RecsType.Number, category: RecsType.String, created_at: RecsType.BigInt }, + { + metadata: { + namespace: "s0_eternum", + name: "Structure", + types: ["u32", "enum", "u64"], + customTypes: ["StructureCategory"], + }, + }, + ); + })(), + StructureCount: (() => { + return defineComponent( + world, + { coord: { x: RecsType.Number, y: RecsType.Number }, count: RecsType.Number }, + { + metadata: { + namespace: "s0_eternum", + name: "StructureCount", + types: ["u32", "u32", "u8"], + customTypes: ["Coord"], + }, + }, + ); + })(), + TickConfig: (() => { + return defineComponent( + world, + { config_id: RecsType.Number, tick_id: RecsType.Number, tick_interval_in_seconds: RecsType.BigInt }, + { + metadata: { + namespace: "s0_eternum", + name: "TickConfig", + types: ["u32", "u8", "u64"], + customTypes: [], + }, + }, + ); + })(), + Tile: (() => { + return defineComponent( + world, + { + col: RecsType.Number, + row: RecsType.Number, + explored_by_id: RecsType.Number, + explored_at: RecsType.BigInt, + biome: RecsType.String, + }, + { + metadata: { + namespace: "s0_eternum", + name: "Tile", + types: ["u32", "u32", "u32", "u64", "enum"], + customTypes: ["Biome"], + }, + }, + ); + })(), + Trade: (() => { + return defineComponent( + world, + { + trade_id: RecsType.Number, + maker_id: RecsType.Number, + maker_gives_resources_origin_id: RecsType.Number, + maker_gives_resources_id: RecsType.Number, + maker_gives_resources_hash: RecsType.BigInt, + maker_gives_resources_weight: RecsType.BigInt, + taker_id: RecsType.Number, + taker_gives_resources_origin_id: RecsType.Number, + taker_gives_resources_id: RecsType.Number, + taker_gives_resources_hash: RecsType.BigInt, + taker_gives_resources_weight: RecsType.BigInt, + expires_at: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "Trade", + types: ["u32", "u32", "u32", "u32", "felt252", "u128", "u32", "u32", "u32", "felt252", "u128", "u64"], + customTypes: [], + }, + }, + ); + })(), + TravelFoodCostConfig: (() => { + return defineComponent( + world, + { + config_id: RecsType.Number, + unit_type: RecsType.Number, + explore_wheat_burn_amount: RecsType.BigInt, + explore_fish_burn_amount: RecsType.BigInt, + travel_wheat_burn_amount: RecsType.BigInt, + travel_fish_burn_amount: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "TravelFoodCostConfig", + types: ["u32", "u8", "u128", "u128", "u128", "u128"], + customTypes: [], + }, + }, + ); + })(), + TravelStaminaCostConfig: (() => { + return defineComponent( + world, + { + config_id: RecsType.Number, + travel_type: RecsType.Number, + cost: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "TravelStaminaCostConfig", + types: ["u32", "u8", "u16"], + customTypes: [], + }, + }, + ); + })(), + TroopConfig: (() => { + return defineComponent( + world, + { + config_id: RecsType.Number, + health: RecsType.Number, + knight_strength: RecsType.Number, + paladin_strength: RecsType.Number, + crossbowman_strength: RecsType.Number, + advantage_percent: RecsType.Number, + disadvantage_percent: RecsType.Number, + max_troop_count: RecsType.Number, + pillage_health_divisor: RecsType.Number, + army_free_per_structure: RecsType.Number, + army_extra_per_building: RecsType.Number, + army_max_per_structure: RecsType.Number, + battle_leave_slash_num: RecsType.Number, + battle_leave_slash_denom: RecsType.Number, + battle_time_scale: RecsType.Number, + battle_max_time_seconds: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "TroopConfig", + types: [ + "u32", + "u32", + "u8", + "u8", + "u16", + "u16", + "u16", + "u64", + "u8", + "u8", + "u8", + "u8", + "u8", + "u8", + "u16", + "u64", + ], + customTypes: [], + }, + }, + ); + })(), + Weight: (() => { + return defineComponent( + world, + { entity_id: RecsType.Number, value: RecsType.BigInt }, + { + metadata: { + namespace: "s0_eternum", + name: "Weight", + types: ["u32", "u128"], + customTypes: [], + }, + }, + ); + })(), + WeightConfig: (() => { + return defineComponent( + world, + { + config_id: RecsType.Number, + weight_config_id: RecsType.Number, + entity_type: RecsType.Number, + weight_gram: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "WeightConfig", + types: ["u32", "u32", "u32", "u128"], + customTypes: [], + }, + }, + ); + })(), + WorldConfig: (() => { + return defineComponent( + world, + { config_id: RecsType.Number, admin_address: RecsType.BigInt, realm_l2_contract: RecsType.BigInt }, + { + metadata: { + namespace: "s0_eternum", + name: "WorldConfig", + types: ["u32", "contractaddress", "contractaddress"], + customTypes: [], + }, + }, + ); + })(), + ...eventsComponents(world), + }; +} + +const eventsComponents = (world: World) => { + return { + events: { + AcceptOrder: (() => { + return defineComponent( + world, + { + taker_id: RecsType.Number, + maker_id: RecsType.Number, + id: RecsType.Number, + trade_id: RecsType.Number, + timestamp: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "AcceptOrder", + types: ["u32", "u32", "u32", "u32", "u64"], + customTypes: [], + }, + }, + ); + })(), + + BattleClaimData: (() => { + return defineComponent( + world, + { + id: RecsType.Number, + event_id: RecsType.String, + structure_entity_id: RecsType.Number, + claimer: RecsType.BigInt, + claimer_name: RecsType.BigInt, + claimer_army_entity_id: RecsType.Number, + claimee_address: RecsType.BigInt, + claimee_name: RecsType.BigInt, + x: RecsType.Number, + y: RecsType.Number, + structure_type: RecsType.String, + timestamp: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "BattleClaimData", + types: [ + "u32", + "EventType", + "u32", + "ContractAddress", + "felt252", + "u32", + "ContractAddress", + "felt252", + "u32", + "u32", + "StructureCategory", + "u64", + ], + customTypes: [], + }, + }, + ); + })(), + + BattleJoinData: (() => { + return defineComponent( + world, + { + id: RecsType.Number, + event_id: RecsType.String, + battle_entity_id: RecsType.Number, + joiner: RecsType.BigInt, + joiner_name: RecsType.BigInt, + joiner_army_entity_id: RecsType.Number, + joiner_side: RecsType.String, + duration_left: RecsType.Number, + x: RecsType.Number, + y: RecsType.Number, + timestamp: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "BattleJoinData", + types: [ + "u32", + "EventType", + "u32", + "ContractAddress", + "felt252", + "u32", + "BattleSide", + "u64", + "u32", + "u32", + "u64", + ], + customTypes: [], + }, + }, + ); + })(), + + BattleLeaveData: (() => { + return defineComponent( + world, + { + id: RecsType.Number, + event_id: RecsType.String, + battle_entity_id: RecsType.Number, + leaver: RecsType.BigInt, + leaver_name: RecsType.BigInt, + leaver_army_entity_id: RecsType.Number, + leaver_side: RecsType.String, + duration_left: RecsType.Number, + x: RecsType.Number, + y: RecsType.Number, + timestamp: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "BattleLeaveData", + types: [ + "u32", + "EventType", + "u32", + "ContractAddress", + "felt252", + "u32", + "BattleSide", + "u64", + "u32", + "u32", + "u64", + ], + customTypes: [], + }, + }, + ); + })(), + + BattlePillageData: (() => { + return defineComponent( + world, + { + id: RecsType.Number, + event_id: RecsType.String, + pillager: RecsType.BigInt, + pillager_name: RecsType.BigInt, + pillager_realm_entity_id: RecsType.Number, + pillager_army_entity_id: RecsType.Number, + pillaged_structure_owner: RecsType.BigInt, + pillaged_structure_entity_id: RecsType.Number, + attacker_lost_troops: { + knight_count: RecsType.BigInt, + paladin_count: RecsType.BigInt, + crossbowman_count: RecsType.BigInt, + }, + structure_lost_troops: { + knight_count: RecsType.BigInt, + paladin_count: RecsType.BigInt, + crossbowman_count: RecsType.BigInt, + }, + pillaged_structure_owner_name: RecsType.BigInt, + winner: RecsType.String, + x: RecsType.Number, + y: RecsType.Number, + structure_type: RecsType.String, + pillaged_resources: RecsType.StringArray, + destroyed_building_category: RecsType.String, + timestamp: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "BattlePillageData", + types: [ + "u32", + "EventType", + "ContractAddress", + "felt252", + "u32", + "u32", + "ContractAddress", + "u32", + // attacking troops + "u64", + "u64", + "u64", + // structure troops + "u64", + "u64", + "u64", + "felt252", + "BattleSide", + "u32", + "u32", + "StructureCategory", + "array", + "enum", + "u64", + ], + customTypes: ["Troops", "BuildingCategory"], + }, + }, + ); + })(), + + BattleStartData: (() => { + return defineComponent( + world, + { + id: RecsType.Number, + event_id: RecsType.String, + battle_entity_id: RecsType.Number, + attacker: RecsType.BigInt, + attacker_name: RecsType.BigInt, + attacker_army_entity_id: RecsType.Number, + defender_name: RecsType.BigInt, + defender: RecsType.BigInt, + defender_army_entity_id: RecsType.Number, + duration_left: RecsType.Number, + x: RecsType.Number, + y: RecsType.Number, + structure_type: RecsType.String, + timestamp: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "BattleStartData", + types: [ + "u32", + "EventType", + "u32", + "ContractAddress", + "felt252", + "u32", + "felt252", + "ContractAddress", + "u32", + "u64", + "u32", + "u32", + "StructureCategory", + "u64", + ], + customTypes: [], + }, + }, + ); + })(), + + BurnDonkey: (() => { + return defineComponent( + world, + { + player_address: RecsType.BigInt, + entity_id: RecsType.Number, + amount: RecsType.BigInt, + timestamp: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "BurnDonkey", + types: ["ContractAddress", "u32", "u128", "u64"], + customTypes: [], + }, + }, + ); + })(), + + CreateGuild: (() => { + return defineComponent( + world, + { + guild_entity_id: RecsType.Number, + guild_name: RecsType.BigInt, + timestamp: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "CreateGuild", + types: ["u32", "felt252", "u64"], + customTypes: [], + }, + }, + ); + })(), + + GameEnded: (() => { + return defineComponent( + world, + { + winner_address: RecsType.BigInt, + timestamp: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "GameEnded", + types: ["ContractAddress", "u64"], + customTypes: [], + }, + }, + ); + })(), + + HyperstructureContribution: (() => { + return defineComponent( + world, + { + id: RecsType.Number, + hyperstructure_entity_id: RecsType.Number, + contributor_entity_id: RecsType.Number, + contributions: RecsType.StringArray, + timestamp: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "HyperstructureContribution", + types: ["u32", "u32", "u32", "array", "u64"], + customTypes: [], + }, + }, + ); + })(), + + HyperstructureFinished: (() => { + return defineComponent( + world, + { + id: RecsType.Number, + hyperstructure_entity_id: RecsType.Number, + contributor_entity_id: RecsType.Number, + timestamp: RecsType.Number, + hyperstructure_owner_name: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "HyperstructureFinished", + types: ["u32", "u32", "u32", "felt252", "u64"], + customTypes: [], + }, + }, + ); + })(), + + JoinGuild: (() => { + return defineComponent( + world, + { + guild_entity_id: RecsType.Number, + address: RecsType.BigInt, + guild_name: RecsType.BigInt, + timestamp: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "JoinGuild", + types: ["u32", "ContractAddress", "felt252", "u64"], + customTypes: [], + }, + }, + ); + })(), + + LiquidityEvent: (() => { + return defineComponent( + world, + { + bank_entity_id: RecsType.Number, + entity_id: RecsType.Number, + resource_type: RecsType.Number, + lords_amount: RecsType.BigInt, + resource_amount: RecsType.BigInt, + resource_price: RecsType.BigInt, + add: RecsType.Boolean, + timestamp: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "LiquidityEvent", + types: ["u32", "u32", "u8", "u128", "u128", "u128", "bool", "u64"], + customTypes: [], + }, + }, + ); + })(), + + MapExplored: (() => { + return defineComponent( + world, + { + entity_id: RecsType.Number, + col: RecsType.Number, + row: RecsType.Number, + id: RecsType.Number, + entity_owner_id: RecsType.Number, + biome: RecsType.String, + reward: RecsType.StringArray, + timestamp: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "MapExplored", + types: ["u32", "u32", "u32", "u32", "u32", "Biome", "array", "u64"], + customTypes: [], + }, + }, + ); + })(), + + SwapEvent: (() => { + return defineComponent( + world, + { + bank_entity_id: RecsType.Number, + entity_id: RecsType.Number, + id: RecsType.Number, + resource_type: RecsType.Number, + lords_amount: RecsType.BigInt, + resource_amount: RecsType.BigInt, + bank_owner_fees: RecsType.BigInt, + lp_fees: RecsType.BigInt, + resource_price: RecsType.BigInt, + buy: RecsType.Boolean, + timestamp: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "SwapEvent", + types: ["u32", "u32", "u32", "u8", "u128", "u128", "u128", "u128", "u128", "bool", "u64"], + customTypes: [], + }, + }, + ); + })(), + + SettleRealmData: (() => { + return defineComponent( + world, + { + id: RecsType.Number, + event_id: RecsType.String, + entity_id: RecsType.Number, + owner_address: RecsType.BigInt, + owner_name: RecsType.BigInt, + realm_name: RecsType.BigInt, + produced_resources: RecsType.BigInt, + cities: RecsType.Number, + harbors: RecsType.Number, + rivers: RecsType.Number, + regions: RecsType.Number, + wonder: RecsType.Number, + order: RecsType.Number, + x: RecsType.Number, + y: RecsType.Number, + timestamp: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "SettleRealmData", + types: [ + "u32", + "EventType", + "u32", + "ContractAddress", + "felt252", + "felt252", + "u128", + "u8", + "u8", + "u8", + "u8", + "u8", + "u8", + "u32", + "u32", + "u64", + ], + customTypes: [], + }, + }, + ); + })(), + + Transfer: (() => { + return defineComponent( + world, + { + recipient_entity_id: RecsType.Number, + sending_realm_id: RecsType.Number, + sender_entity_id: RecsType.Number, + resources: RecsType.StringArray, + timestamp: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "Transfer", + types: ["u32", "u32", "u32", "array", "u64"], + customTypes: ["Coord"], + }, + }, + ); + })(), + + Travel: (() => { + return defineComponent( + world, + { + destination_coord_x: RecsType.Number, + destination_coord_y: RecsType.Number, + owner: RecsType.BigInt, + entity_id: RecsType.Number, + travel_time: RecsType.BigInt, + travel_path: RecsType.StringArray, + timestamp: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "Travel", + types: ["u32", "u32", "ContractAddress", "u32", "array", "u64"], + customTypes: ["Coord"], + }, + }, + ); + })(), + + TrophyProgression: (() => { + return defineComponent( + world, + { + player_id: RecsType.BigInt, + task_id: RecsType.BigInt, + count: RecsType.Number, + time: RecsType.BigInt, + }, + { + metadata: { + namespace: "s0_eternum", + name: "TrophyProgression", + types: ["felt252", "felt252", "u32", "u64"], + customTypes: [], + }, + }, + ); + })(), + HyperstructureCoOwnersChange: (() => { + return defineComponent( + world, + { + id: RecsType.Number, + hyperstructure_entity_id: RecsType.Number, + co_owners: RecsType.StringArray, + timestamp: RecsType.Number, + }, + { + metadata: { + namespace: "s0_eternum", + name: "HyperstructureCoOwnersChange", + types: ["u32", "u32", "array", "u64"], + customTypes: [], + }, + }, + ); + })(), + }, + }; +}; diff --git a/client/sdk/packages/eternum/src/dojo/components/createClientComponents.ts b/client/sdk/packages/eternum/src/dojo/components/createClientComponents.ts new file mode 100644 index 000000000..209247ab6 --- /dev/null +++ b/client/sdk/packages/eternum/src/dojo/components/createClientComponents.ts @@ -0,0 +1,22 @@ +import { overridableComponent } from "@dojoengine/recs"; +import { ContractComponents } from "./contractComponents"; + +export type ClientComponents = ReturnType; + +export function createClientComponents(contractComponents: ContractComponents) { + return { + ...contractComponents, + Building: overridableComponent(contractComponents.Building), + Position: overridableComponent(contractComponents.Position), + Stamina: overridableComponent(contractComponents.Stamina), + Tile: overridableComponent(contractComponents.Tile), + Population: overridableComponent(contractComponents.Population), + Resource: overridableComponent(contractComponents.Resource), + Weight: overridableComponent(contractComponents.Weight), + OwnedResourcesTracker: overridableComponent(contractComponents.OwnedResourcesTracker), + Army: overridableComponent(contractComponents.Army), + BuildingQuantityv2: overridableComponent(contractComponents.BuildingQuantityv2), + Structure: overridableComponent(contractComponents.Structure), + ArrivalTime: overridableComponent(contractComponents.ArrivalTime), + }; +} diff --git a/client/sdk/packages/eternum/src/index.ts b/client/sdk/packages/eternum/src/index.ts index 5471375e3..f991f7b8f 100644 --- a/client/sdk/packages/eternum/src/index.ts +++ b/client/sdk/packages/eternum/src/index.ts @@ -1,5 +1,6 @@ -export * from "./types"; +export * from "./config"; export * from "./constants"; +export * from "./modelManager"; export * from "./provider"; +export * from "./types"; export * from "./utils"; -export * from "./config"; diff --git a/client/apps/game/src/dojo/modelManager/ArmyManager.ts b/client/sdk/packages/eternum/src/modelManager/ArmyManager.ts similarity index 67% rename from client/apps/game/src/dojo/modelManager/ArmyManager.ts rename to client/sdk/packages/eternum/src/modelManager/ArmyManager.ts index a451cc943..3d8415835 100644 --- a/client/apps/game/src/dojo/modelManager/ArmyManager.ts +++ b/client/sdk/packages/eternum/src/modelManager/ArmyManager.ts @@ -1,8 +1,11 @@ -import { DojoResult } from "@/hooks/context/DojoContext"; -import { ID, ResourcesIds } from "@bibliothecadao/eternum"; import { getComponentValue } from "@dojoengine/recs"; import { getEntityIdFromKeys } from "@dojoengine/utils"; import { uuid } from "@latticexyz/utils"; +import { Account, AccountInterface } from "starknet"; +import { ResourcesIds } from "../constants"; +import { ClientComponents } from "../dojo/components/createClientComponents"; +import { EternumProvider } from "../provider"; +import { ID } from "../types"; import { ResourceManager } from "./ResourceManager"; interface Troops { @@ -15,7 +18,8 @@ export class ArmyManager { private readonly realmEntityId: number; constructor( - private readonly dojo: DojoResult, + private readonly provider: EternumProvider, + private readonly components: ClientComponents, private readonly armyEntityId: ID, ) { this.realmEntityId = this.getRealmEntityId(); @@ -23,7 +27,7 @@ export class ArmyManager { private getRealmEntityId(): number { return ( - getComponentValue(this.dojo.setup.components.EntityOwner, getEntityIdFromKeys([BigInt(this.armyEntityId)])) + getComponentValue(this.components.EntityOwner, getEntityIdFromKeys([BigInt(this.armyEntityId)])) ?.entity_owner_id || 0 ); } @@ -31,7 +35,7 @@ export class ArmyManager { private _updateResourceBalances(overrideId: string, troops: Troops): void { Object.entries(troops).forEach(([troopType, amount]) => { const resourceManager = new ResourceManager( - this.dojo.setup, + this.components, this.realmEntityId, Number(troopType) as ResourcesIds, ); @@ -40,7 +44,7 @@ export class ArmyManager { } private _updateArmyTroops(overrideId: string, army: any, troops: Troops): void { - this.dojo.setup.components.Army.addOverride(overrideId, { + this.components.Army.addOverride(overrideId, { entity: getEntityIdFromKeys([BigInt(this.armyEntityId)]), value: { ...army, @@ -55,7 +59,7 @@ export class ArmyManager { private _optimisticAddTroops(overrideId: string, troops: Troops): void { const entity = getEntityIdFromKeys([BigInt(this.armyEntityId)]); - const army = getComponentValue(this.dojo.setup.components.Army, entity); + const army = getComponentValue(this.components.Army, entity); if (!army) return; @@ -63,9 +67,9 @@ export class ArmyManager { this._updateArmyTroops(overrideId, army, troops); } - public addTroops(troops: Troops): void { - this.dojo.setup.systemCalls.army_buy_troops({ - signer: this.dojo.account.account, + public addTroops(signer: Account | AccountInterface, troops: Troops): void { + this.provider.army_buy_troops({ + signer, payer_id: this.realmEntityId, army_id: this.armyEntityId, troops: { @@ -78,20 +82,20 @@ export class ArmyManager { this._optimisticAddTroops(uuid(), troops); } - public createArmy(structureEntityId: bigint, isDefensive: boolean): void { - this.dojo.setup.systemCalls.create_army({ - signer: this.dojo.account.account, + public createArmy(signer: Account | AccountInterface, structureEntityId: bigint, isDefensive: boolean): void { + this.provider.create_army({ + signer, is_defensive_army: isDefensive, army_owner_id: structureEntityId, }); } - public async deleteArmy(armyId: ID): Promise { - await this.dojo.setup.systemCalls.delete_army({ - signer: this.dojo.account.account, + public async deleteArmy(signer: Account | AccountInterface, armyId: ID): Promise { + await this.provider.delete_army({ + signer, army_id: armyId, }); - this.dojo.network.world.deleteEntity(getEntityIdFromKeys([BigInt(armyId)])); + this.components.Army.removeOverride(getEntityIdFromKeys([BigInt(armyId)])); } } diff --git a/client/apps/game/src/dojo/modelManager/ArmyMovementManager.ts b/client/sdk/packages/eternum/src/modelManager/ArmyMovementManager.ts similarity index 73% rename from client/apps/game/src/dojo/modelManager/ArmyMovementManager.ts rename to client/sdk/packages/eternum/src/modelManager/ArmyMovementManager.ts index f1974a7a1..ad325a054 100644 --- a/client/apps/game/src/dojo/modelManager/ArmyMovementManager.ts +++ b/client/sdk/packages/eternum/src/modelManager/ArmyMovementManager.ts @@ -1,28 +1,23 @@ -import { useAccountStore } from "@/hooks/context/accountStore"; -import useUIStore from "@/hooks/store/useUIStore"; -import { type HexPosition } from "@/types"; -import { FELT_CENTER } from "@/ui/config"; -import { - computeExploreFoodCosts, - computeTravelFoodCosts, - getEntityIdFromKeys, - multiplyByPrecision, -} from "@/ui/utils/utils"; +import { getComponentValue, type Entity } from "@dojoengine/recs"; +import { getEntityIdFromKeys } from "@dojoengine/utils"; +import { uuid } from "@latticexyz/utils"; +import { Account, AccountInterface } from "starknet"; import { CapacityConfigCategory, - ContractAddress, - ID, - ResourcesIds, - TravelTypes, + FELT_CENTER, getDirectionBetweenAdjacentHexes, getNeighborHexes, -} from "@bibliothecadao/eternum"; -import { getComponentValue, type Entity } from "@dojoengine/recs"; -import { uuid } from "@latticexyz/utils"; -import { configManager, type SetupResult } from "../setup"; + ResourcesIds, +} from "../constants"; +import { ClientComponents } from "../dojo/components/createClientComponents"; +import { EternumProvider } from "../provider"; +import { ContractAddress, ID, TravelTypes, type HexPosition } from "../types"; +import { multiplyByPrecision } from "../utils"; +import { configManager } from "./ConfigManager"; import { ResourceManager } from "./ResourceManager"; import { StaminaManager } from "./StaminaManager"; -import { getRemainingCapacity } from "./utils/ArmyMovementUtils"; +import { DojoAccount } from "./types"; +import { computeExploreFoodCosts, computeTravelFoodCosts, getRemainingCapacity } from "./utils/ArmyMovementUtils"; export class TravelPaths { private readonly paths: Map; @@ -76,23 +71,21 @@ export class TravelPaths { export class ArmyMovementManager { private readonly entity: Entity; private readonly entityId: ID; - private address: ContractAddress; private readonly fishManager: ResourceManager; private readonly wheatManager: ResourceManager; private readonly staminaManager: StaminaManager; constructor( - private readonly setup: SetupResult, + private readonly components: ClientComponents, + private readonly provider: EternumProvider, entityId: ID, ) { this.entity = getEntityIdFromKeys([BigInt(entityId)]); this.entityId = entityId; - const entityOwnerId = getComponentValue(this.setup.components.EntityOwner, this.entity); - this.wheatManager = new ResourceManager(this.setup, entityOwnerId!.entity_owner_id, ResourcesIds.Wheat); - this.fishManager = new ResourceManager(this.setup, entityOwnerId!.entity_owner_id, ResourcesIds.Fish); - this.staminaManager = new StaminaManager(this.setup, entityId); - - this.address = BigInt(useAccountStore.getState().account?.address || 0n); + const entityOwnerId = getComponentValue(this.components.EntityOwner, this.entity); + this.wheatManager = new ResourceManager(this.components, entityOwnerId!.entity_owner_id, ResourcesIds.Wheat); + this.fishManager = new ResourceManager(this.components, entityOwnerId!.entity_owner_id, ResourcesIds.Fish); + this.staminaManager = new StaminaManager(this.components, entityId); } private _canExplore(currentDefaultTick: number, currentArmiesTick: number): boolean { @@ -102,7 +95,7 @@ export class ArmyMovementManager { return false; } - const entityArmy = getComponentValue(this.setup.components.Army, this.entity); + const entityArmy = getComponentValue(this.components.Army, this.entity); const exploreFoodCosts = computeExploreFoodCosts(entityArmy?.troops); const { wheat, fish } = this.getFood(currentDefaultTick); @@ -128,7 +121,7 @@ export class ArmyMovementManager { ? Math.floor((stamina.amount || 0) / configManager.getTravelStaminaCost()) : 999; - const entityArmy = getComponentValue(this.setup.components.Army, this.entity); + const entityArmy = getComponentValue(this.components.Army, this.entity); const travelFoodCosts = computeTravelFoodCosts(entityArmy?.troops); const { wheat, fish } = this.getFood(currentDefaultTick); @@ -139,7 +132,7 @@ export class ArmyMovementManager { }; private readonly _getCurrentPosition = () => { - const position = getComponentValue(this.setup.components.Position, this.entity); + const position = getComponentValue(this.components.Position, this.entity); return { col: position!.x, row: position!.y }; }; @@ -200,23 +193,20 @@ export class ArmyMovementManager { return travelPaths; } - public isMine = () => { - const entityOwner = getComponentValue(this.setup.components.EntityOwner, this.entity); - let owner = getComponentValue(this.setup.components.Owner, this.entity); + public isMine = (address: ContractAddress) => { + const entityOwner = getComponentValue(this.components.EntityOwner, this.entity); + let owner = getComponentValue(this.components.Owner, this.entity); if (!owner && entityOwner?.entity_owner_id) { - owner = getComponentValue( - this.setup.components.Owner, - getEntityIdFromKeys([BigInt(entityOwner.entity_owner_id)]), - ); + owner = getComponentValue(this.components.Owner, getEntityIdFromKeys([BigInt(entityOwner.entity_owner_id)])); } - return owner?.address === this.address; + return owner?.address === address; }; private readonly _optimisticStaminaUpdate = (overrideId: string, cost: number, currentArmiesTick: number) => { const stamina = this.staminaManager.getStamina(currentArmiesTick); // substract the costs - this.setup.components.Stamina.addOverride(overrideId, { + this.components.Stamina.addOverride(overrideId, { entity: this.entity, value: { entity_id: stamina.entity_id, @@ -227,9 +217,9 @@ export class ArmyMovementManager { }; private readonly _optimisticCapacityUpdate = (overrideId: string, capacity: number) => { - const currentWeight = getComponentValue(this.setup.components.Weight, this.entity); + const currentWeight = getComponentValue(this.components.Weight, this.entity); - this.setup.components.Weight.addOverride(overrideId, { + this.components.Weight.addOverride(overrideId, { entity: this.entity, value: { entity_id: this.entityId, @@ -241,7 +231,7 @@ export class ArmyMovementManager { private readonly _optimisticTileUpdate = (overrideId: string, col: number, row: number) => { const entity = getEntityIdFromKeys([BigInt(col), BigInt(row)]); - this.setup.components.Tile.addOverride(overrideId, { + this.components.Tile.addOverride(overrideId, { entity, value: { col, @@ -254,7 +244,7 @@ export class ArmyMovementManager { }; private readonly _optimisticPositionUpdate = (overrideId: string, col: number, row: number) => { - this.setup.components.Position.addOverride(overrideId, { + this.components.Position.addOverride(overrideId, { entity: this.entity, value: { entity_id: this.entityId, @@ -264,23 +254,28 @@ export class ArmyMovementManager { }); }; - private readonly _optimisticArrivalTimeUpdate = (overrideId: string) => { - this.setup.components.ArrivalTime.addOverride(overrideId, { + private readonly _optimisticArrivalTimeUpdate = (blockTimestamp: number, overrideId: string) => { + this.components.ArrivalTime.addOverride(overrideId, { entity: this.entity, value: { entity_id: this.entityId, - arrives_at: BigInt(useUIStore.getState().nextBlockTimestamp || 0), + arrives_at: BigInt(blockTimestamp || 0), }, }); }; - private readonly _optimisticExplore = (col: number, row: number, currentArmiesTick: number) => { + private readonly _optimisticExplore = ( + blockTimestamp: number, + col: number, + row: number, + currentArmiesTick: number, + ) => { const overrideId = uuid(); this._optimisticStaminaUpdate(overrideId, configManager.getExploreStaminaCost(), currentArmiesTick); this._optimisticTileUpdate(overrideId, col, row); this._optimisticPositionUpdate(overrideId, col, row); - this._optimisticArrivalTimeUpdate(overrideId); + this._optimisticArrivalTimeUpdate(blockTimestamp, overrideId); this._optimisticCapacityUpdate( overrideId, // all resources you can find have the same weight as wood @@ -299,17 +294,22 @@ export class ArmyMovementManager { return getDirectionBetweenAdjacentHexes(startPos, endPos); }; - private readonly _exploreHex = async (path: HexPosition[], currentArmiesTick: number) => { + private readonly _exploreHex = async ( + signer: DojoAccount, + blockTimestamp: number, + path: HexPosition[], + currentArmiesTick: number, + ) => { const direction = this._findDirection(path); if (direction === undefined || direction === null) return; - const overrideId = this._optimisticExplore(path[1].col, path[1].row, currentArmiesTick); + const overrideId = this._optimisticExplore(blockTimestamp, path[1].col, path[1].row, currentArmiesTick); - this.setup.systemCalls + this.provider .explore({ unit_id: this.entityId, direction, - signer: useAccountStore.getState().account!, + signer, }) .catch((e) => { // remove all visual overrides only when the action fails @@ -322,14 +322,20 @@ export class ArmyMovementManager { }); }; - private readonly _optimisticTravelHex = (col: number, row: number, pathLength: number, currentArmiesTick: number) => { + private readonly _optimisticTravelHex = ( + col: number, + row: number, + pathLength: number, + blockTimestamp: number, + currentArmiesTick: number, + ) => { const overrideId = uuid(); this._optimisticStaminaUpdate(overrideId, configManager.getTravelStaminaCost() * pathLength, currentArmiesTick); this._optimisticFoodCosts(overrideId, TravelTypes.Travel); - this._optimisticArrivalTimeUpdate(overrideId); + this._optimisticArrivalTimeUpdate(blockTimestamp, overrideId); - this.setup.components.Position.addOverride(overrideId, { + this.components.Position.addOverride(overrideId, { entity: this.entity, value: { entity_id: this.entityId, @@ -342,20 +348,20 @@ export class ArmyMovementManager { // only remove visual overrides (linked to models on world map) when the action fails private readonly _removeVisualOverride = (overrideId: string) => { - this.setup.components.Tile.removeOverride(overrideId); - this.setup.components.Position.removeOverride(overrideId); + this.components.Tile.removeOverride(overrideId); + this.components.Position.removeOverride(overrideId); }; // you can remove all non visual overrides when the action fails or succeeds private readonly _removeNonVisualOverrides = (overrideId: string) => { - this.setup.components.Stamina.removeOverride(overrideId); - this.setup.components.Resource.removeOverride(overrideId); - this.setup.components.Weight.removeOverride(overrideId); - this.setup.components.ArrivalTime.removeOverride(overrideId); + this.components.Stamina.removeOverride(overrideId); + this.components.Resource.removeOverride(overrideId); + this.components.Weight.removeOverride(overrideId); + this.components.ArrivalTime.removeOverride(overrideId); }; private readonly _optimisticFoodCosts = (overrideId: string, travelType: TravelTypes) => { - const entityArmy = getComponentValue(this.setup.components.Army, this.entity); + const entityArmy = getComponentValue(this.components.Army, this.entity); let costs = { wheatPayAmount: 0, fishPayAmount: 0 }; if (travelType === TravelTypes.Explore) { costs = computeExploreFoodCosts(entityArmy?.troops); @@ -367,11 +373,17 @@ export class ArmyMovementManager { this.fishManager.optimisticResourceUpdate(overrideId, -BigInt(multiplyByPrecision(costs.fishPayAmount))); }; - private readonly _travelToHex = async (path: HexPosition[], currentArmiesTick: number) => { + private readonly _travelToHex = async ( + signer: Account | AccountInterface, + path: HexPosition[], + blockTimestamp: number, + currentArmiesTick: number, + ) => { const overrideId = this._optimisticTravelHex( path[path.length - 1].col, path[path.length - 1].row, path.length - 1, + blockTimestamp, currentArmiesTick, ); @@ -385,9 +397,9 @@ export class ArmyMovementManager { }) .filter((d) => d !== undefined) as number[]; - this.setup.systemCalls + this.provider .travel_hex({ - signer: useAccountStore.getState().account!, + signer, travelling_entity_id: this.entityId, directions, }) @@ -400,21 +412,27 @@ export class ArmyMovementManager { }); }; - public moveArmy = (path: HexPosition[], isExplored: boolean, currentArmiesTick: number) => { + public moveArmy = ( + signer: Account | AccountInterface, + path: HexPosition[], + isExplored: boolean, + blockTimestamp: number, + currentArmiesTick: number, + ) => { if (!isExplored) { - this._exploreHex(path, currentArmiesTick); + this._exploreHex(signer, blockTimestamp, path, currentArmiesTick); } else { - this._travelToHex(path, currentArmiesTick); + this._travelToHex(signer, path, blockTimestamp, currentArmiesTick); } }; private readonly _getArmyRemainingCapacity = () => { const armyCapacity = getComponentValue( - this.setup.components.CapacityConfig, + this.components.CapacityConfig, getEntityIdFromKeys([BigInt(CapacityConfigCategory.Army)]), ); - const armyWeight = getComponentValue(this.setup.components.Weight, this.entity); - const armyEntity = getComponentValue(this.setup.components.Army, this.entity); + const armyWeight = getComponentValue(this.components.Weight, this.entity); + const armyEntity = getComponentValue(this.components.Army, this.entity); if (!armyEntity || !armyCapacity) return 0n; diff --git a/client/apps/game/src/dojo/modelManager/BattleManager.ts b/client/sdk/packages/eternum/src/modelManager/BattleManager.ts similarity index 88% rename from client/apps/game/src/dojo/modelManager/BattleManager.ts rename to client/sdk/packages/eternum/src/modelManager/BattleManager.ts index 34bd883aa..9aabb7c6f 100644 --- a/client/apps/game/src/dojo/modelManager/BattleManager.ts +++ b/client/sdk/packages/eternum/src/modelManager/BattleManager.ts @@ -1,22 +1,13 @@ -import { DojoResult } from "@/hooks/context/DojoContext"; -import { ArmyInfo } from "@/hooks/helpers/useArmies"; -import { Structure } from "@/hooks/helpers/useStructures"; -import { Health } from "@/types"; -import { multiplyByPrecision } from "@/ui/utils/utils"; -import { BattleSide, EternumGlobalConfig, ID, MIN_TROOPS_BATTLE } from "@bibliothecadao/eternum"; -import { - ComponentValue, - Components, - Has, - HasValue, - getComponentValue, - removeComponent, - runQuery, -} from "@dojoengine/recs"; +import { ComponentValue, Components, Has, HasValue, getComponentValue, runQuery } from "@dojoengine/recs"; import { getEntityIdFromKeys } from "@dojoengine/utils"; -import { ClientComponents } from "../createClientComponents"; -import { ClientConfigManager } from "./ConfigManager"; +import { EternumGlobalConfig, MIN_TROOPS_BATTLE } from "../constants"; +import { ClientComponents } from "../dojo/components/createClientComponents"; +import { EternumProvider } from "../provider"; +import { BattleSide, Health, ID } from "../types"; +import { multiplyByPrecision } from "../utils"; +import { configManager } from "./ConfigManager"; import { StaminaManager } from "./StaminaManager"; +import { ArmyInfo, DojoAccount, Structure } from "./types"; export enum BattleType { Hex, @@ -67,17 +58,13 @@ export enum ClaimStatus { } export class BattleManager { - battleEntityId: ID; - dojo: DojoResult; battleType: BattleType | undefined; - private battleIsClaimable: ClaimStatus | undefined; - private configManager: ClientConfigManager; - constructor(battleEntityId: ID, dojo: DojoResult) { - this.battleEntityId = battleEntityId; - this.dojo = dojo; - this.configManager = ClientConfigManager.instance(); - } + constructor( + private readonly components: ClientComponents, + private readonly provider: EternumProvider, + public readonly battleEntityId: ID, + ) {} public getUpdatedBattle(currentTimestamp: number) { const battle = this.getBattle(); @@ -180,11 +167,12 @@ export class BattleManager { return date; } - public deleteBattle() { - removeComponent(this.dojo.setup.components.Battle, getEntityIdFromKeys([BigInt(this.battleEntityId)])); - this.dojo.network.world.deleteEntity(getEntityIdFromKeys([BigInt(this.battleEntityId)])); - this.battleEntityId = 0; - } + // todo: used deleteEntity directly in the react app, check if works there + // public deleteBattle() { + // removeComponent(this.components.Battle, getEntityIdFromKeys([BigInt(this.battleEntityId)])); + // this.dojo.network.world.deleteEntity(getEntityIdFromKeys([BigInt(this.battleEntityId)])); + // this.battleEntityId = 0; + // } public isBattleOngoing(currentTimestamp: number): boolean { const battle = this.getBattle(); @@ -199,7 +187,7 @@ export class BattleManager { } public getBattle(): ComponentValue | undefined { - return getComponentValue(this.dojo.setup.components.Battle, getEntityIdFromKeys([BigInt(this.battleEntityId)])); + return getComponentValue(this.components.Battle, getEntityIdFromKeys([BigInt(this.battleEntityId)])); } public getUpdatedArmy( @@ -321,7 +309,7 @@ export class BattleManager { if (totalTroops < MIN_TROOPS_BATTLE) return RaidStatus.MinTroops; - const staminaManager = new StaminaManager(this.dojo.setup, selectedArmy.entity_id); + const staminaManager = new StaminaManager(this.components, selectedArmy.entity_id); if (staminaManager.getStamina(currentArmiesTick).amount === 0) return RaidStatus.NoStamina; return RaidStatus.isRaidable; @@ -369,24 +357,22 @@ export class BattleManager { public isEmpty(): boolean { return ( - runQuery([ - Has(this.dojo.setup.components.Army), - HasValue(this.dojo.setup.components.Army, { battle_id: this.battleEntityId }), - ]).size === 0 + runQuery([Has(this.components.Army), HasValue(this.components.Army, { battle_id: this.battleEntityId })]).size === + 0 ); } - public async pillageStructure(raider: ArmyInfo, structureEntityId: ID) { + public async pillageStructure(signer: DojoAccount, raider: ArmyInfo, structureEntityId: ID) { if (this.battleEntityId !== 0 && this.battleEntityId === raider.battle_id) { - await this.dojo.setup.systemCalls.battle_leave_and_pillage({ - signer: this.dojo.account.account, + await this.provider.battle_leave_and_pillage({ + signer, army_id: raider.entity_id, battle_id: this.battleEntityId, structure_id: structureEntityId, }); } else { - await this.dojo.setup.systemCalls.battle_pillage({ - signer: this.dojo.account.account, + await this.provider.battle_pillage({ + signer, army_id: raider.entity_id, structure_id: structureEntityId, }); @@ -425,7 +411,7 @@ export class BattleManager { } private getTroopFullHealth(troops: ComponentValue): bigint { - const troopHealth = this.configManager.getTroopConfig().health; + const troopHealth = configManager.getTroopConfig().health; let totalKnightHealth = troopHealth * Number(troops.knight_count); let totalPaladinHealth = troopHealth * Number(troops.paladin_count); @@ -484,7 +470,7 @@ export class BattleManager { private updateHealth(battle: ComponentValue, currentTimestamp: number) { const durationPassed: number = this.getElapsedTime(currentTimestamp); - const troopHealth = this.configManager.getTroopConfig().health; + const troopHealth = configManager.getTroopConfig().health; const attackDelta = this.attackingDelta(battle); const defenceDelta = this.defendingDelta(battle); diff --git a/client/apps/game/src/dojo/modelManager/ConfigManager.ts b/client/sdk/packages/eternum/src/modelManager/ConfigManager.ts similarity index 98% rename from client/apps/game/src/dojo/modelManager/ConfigManager.ts rename to client/sdk/packages/eternum/src/modelManager/ConfigManager.ts index 466c151fd..9dfde0af4 100644 --- a/client/apps/game/src/dojo/modelManager/ConfigManager.ts +++ b/client/sdk/packages/eternum/src/modelManager/ConfigManager.ts @@ -1,3 +1,5 @@ +import { getComponentValue } from "@dojoengine/recs"; +import { getEntityIdFromKeys } from "@dojoengine/utils"; import { ADMIN_BANK_ENTITY_ID, BUILDING_CATEGORY_POPULATION_CONFIG_ID, @@ -10,14 +12,10 @@ import { ResourcesIds, ResourceTier, StructureType, - TickIds, - TravelTypes, WORLD_CONFIG_ID, -} from "@bibliothecadao/eternum"; -import { getComponentValue } from "@dojoengine/recs"; -import { getEntityIdFromKeys } from "@dojoengine/utils"; -import { ContractComponents } from "../contractComponents"; -import { configManager } from "../setup"; +} from "../constants"; +import { ContractComponents } from "../dojo/components/contractComponents"; +import { TickIds, TravelTypes } from "../types"; export class ClientConfigManager { private static _instance: ClientConfigManager; @@ -508,7 +506,7 @@ export class ClientConfigManager { getHyperstructureTotalContributableAmount(hyperstructureId: number) { const requiredAmounts = this.getHyperstructureRequiredAmounts(hyperstructureId); return requiredAmounts.reduce( - (total, { amount, resource }) => total + amount * configManager.getResourceRarity(resource), + (total, { amount, resource }) => total + amount * this.getResourceRarity(resource), 0, ); } @@ -694,3 +692,5 @@ export class ClientConfigManager { }, []); } } + +export const configManager = ClientConfigManager.instance(); diff --git a/client/apps/game/src/dojo/modelManager/LeaderboardManager.ts b/client/sdk/packages/eternum/src/modelManager/LeaderboardManager.ts similarity index 70% rename from client/apps/game/src/dojo/modelManager/LeaderboardManager.ts rename to client/sdk/packages/eternum/src/modelManager/LeaderboardManager.ts index 0809b7946..02344f6e4 100644 --- a/client/apps/game/src/dojo/modelManager/LeaderboardManager.ts +++ b/client/sdk/packages/eternum/src/modelManager/LeaderboardManager.ts @@ -1,41 +1,34 @@ -import { DojoResult } from "@/hooks/context/DojoContext"; -import { CoOwnersWithTimestamp } from "@/ui/components/hyperstructures/types"; -import { - ContractAddress, - GuildInfo, - ID, - RESOURCE_RARITY, - ResourcesIds, - TickIds, - WORLD_CONFIG_ID, -} from "@bibliothecadao/eternum"; -import { Entity, HasValue, getComponentValue, runQuery } from "@dojoengine/recs"; +import { Entity, getComponentValue, HasValue, runQuery } from "@dojoengine/recs"; import { getEntityIdFromKeys } from "@dojoengine/utils"; -import { configManager } from "../setup"; -import { ClientConfigManager } from "./ConfigManager"; +import { RESOURCE_RARITY, ResourcesIds, WORLD_CONFIG_ID } from "../constants"; +import { ClientComponents } from "../dojo/components/createClientComponents"; +import { ContractAddress, GuildInfo, ID, TickIds } from "../types"; +import { configManager } from "./ConfigManager"; export class LeaderboardManager { private static _instance: LeaderboardManager; - private constructor(private dojoResult: DojoResult) {} + constructor(private readonly components: ClientComponents) {} - public static instance(dojoResult: DojoResult) { + public static instance(components: ClientComponents) { if (!LeaderboardManager._instance) { - LeaderboardManager._instance = new LeaderboardManager(dojoResult); + LeaderboardManager._instance = new LeaderboardManager(components); } return LeaderboardManager._instance; } - public getCurrentCoOwners(hyperstructureEntityId: ID): CoOwnersWithTimestamp | undefined { + public getCurrentCoOwners( + hyperstructureEntityId: ID, + ): { coOwners: { address: ContractAddress; percentage: number }[]; timestamp: number } | undefined { const hyperstructure = getComponentValue( - this.dojoResult.setup.components.Hyperstructure, + this.components.Hyperstructure, getEntityIdFromKeys([BigInt(hyperstructureEntityId)]), ); if (!hyperstructure) return; const epochIndex = hyperstructure.current_epoch - 1 >= 0 ? hyperstructure.current_epoch - 1 : 0; const currentEpoch = getComponentValue( - this.dojoResult.setup.components.Epoch, + this.components.Epoch, getEntityIdFromKeys([BigInt(hyperstructureEntityId), BigInt(epochIndex)]), ); if (!currentEpoch) return; @@ -54,11 +47,9 @@ export class LeaderboardManager { ): [ID, number][] { const pointsPerGuild = new Map(); - const season = getComponentValue(this.dojoResult.setup.components.Season, getEntityIdFromKeys([WORLD_CONFIG_ID])); + const season = getComponentValue(this.components.Season, getEntityIdFromKeys([WORLD_CONFIG_ID])); if (!season) return []; - const finishedHyperstructuresEntityIds = runQuery([ - HasValue(this.dojoResult.setup.components.Hyperstructure, { completed: true }), - ]); + const finishedHyperstructuresEntityIds = runQuery([HasValue(this.components.Hyperstructure, { completed: true })]); this.getPoints( Array.from(finishedHyperstructuresEntityIds), @@ -74,7 +65,7 @@ export class LeaderboardManager { const finishedHyperstructuresEntityIds = hyperstructureEntityId ? [getEntityIdFromKeys([BigInt(hyperstructureEntityId)])] - : Array.from(runQuery([HasValue(this.dojoResult.setup.components.Hyperstructure, { completed: true })])); + : Array.from(runQuery([HasValue(this.components.Hyperstructure, { completed: true })])); this.getPoints(finishedHyperstructuresEntityIds, currentTimestamp, (address) => address, pointsPerPlayer); @@ -84,16 +75,16 @@ export class LeaderboardManager { public getPoints( hyperstructuresEntityIds: Entity[], currentTimestamp: number, - getKey: (identifier: any) => any, + getKey: (identifier: ContractAddress) => any, keyPointsMap: Map, ): boolean { - const season = getComponentValue(this.dojoResult.setup.components.Season, getEntityIdFromKeys([WORLD_CONFIG_ID])); + const season = getComponentValue(this.components.Season, getEntityIdFromKeys([WORLD_CONFIG_ID])); if (!season) return false; - const pointsOnCompletion = ClientConfigManager.instance().getHyperstructureConfig().pointsOnCompletion; + const pointsOnCompletion = configManager.getHyperstructureConfig().pointsOnCompletion; hyperstructuresEntityIds.forEach((entityId) => { - const hyperstructure = getComponentValue(this.dojoResult.setup.components.Hyperstructure, entityId); + const hyperstructure = getComponentValue(this.components.Hyperstructure, entityId); if (!hyperstructure || hyperstructure.completed === false) return; const totalContributableAmount = configManager.getHyperstructureTotalContributableAmount( @@ -101,13 +92,13 @@ export class LeaderboardManager { ); const contributions = runQuery([ - HasValue(this.dojoResult.setup.components.Contribution, { + HasValue(this.components.Contribution, { hyperstructure_entity_id: hyperstructure.entity_id, }), ]); contributions.forEach((contributionEntityId) => { - const contribution = getComponentValue(this.dojoResult.setup.components.Contribution, contributionEntityId); + const contribution = getComponentValue(this.components.Contribution, contributionEntityId); if (!contribution) return; const effectiveContribution = @@ -126,13 +117,13 @@ export class LeaderboardManager { for (let i = 0; i < hyperstructure.current_epoch; i++) { const epoch = getComponentValue( - this.dojoResult.setup.components.Epoch, + this.components.Epoch, getEntityIdFromKeys([BigInt(hyperstructure.entity_id), BigInt(i)]), ); if (!epoch) return false; const nextEpoch = getComponentValue( - this.dojoResult.setup.components.Epoch, + this.components.Epoch, getEntityIdFromKeys([BigInt(hyperstructure.entity_id), BigInt(i + 1)]), ); @@ -142,9 +133,9 @@ export class LeaderboardManager { : nextEpoch?.start_timestamp ?? BigInt(currentTimestamp); const epochDuration = epochEndTimestamp - epoch.start_timestamp; - const nbOfCycles = Number(epochDuration) / ClientConfigManager.instance().getTick(TickIds.Default); + const nbOfCycles = Number(epochDuration) / configManager.getTick(TickIds.Default); - const totalPoints = nbOfCycles * ClientConfigManager.instance().getHyperstructureConfig().pointsPerCycle; + const totalPoints = nbOfCycles * configManager.getHyperstructureConfig().pointsPerCycle; epoch.owners.forEach((owner) => { let [owner_address, percentage] = (owner as any).value.map((value: any) => value.value); @@ -165,12 +156,12 @@ export class LeaderboardManager { public getAddressShares(playerAddress: ContractAddress, hyperstructureEntityId: ID) { const hyperstructure = getComponentValue( - this.dojoResult.setup.components.Hyperstructure, + this.components.Hyperstructure, getEntityIdFromKeys([BigInt(hyperstructureEntityId)]), ); if (!hyperstructure) return 0; const currentEpoch = getComponentValue( - this.dojoResult.setup.components.Epoch, + this.components.Epoch, getEntityIdFromKeys([BigInt(hyperstructureEntityId), BigInt(hyperstructure.current_epoch)]), ); if (!currentEpoch) return 0; diff --git a/client/apps/game/src/dojo/modelManager/MarketManager.ts b/client/sdk/packages/eternum/src/modelManager/MarketManager.ts similarity index 91% rename from client/apps/game/src/dojo/modelManager/MarketManager.ts rename to client/sdk/packages/eternum/src/modelManager/MarketManager.ts index fc4ce199c..1bd17861f 100644 --- a/client/apps/game/src/dojo/modelManager/MarketManager.ts +++ b/client/sdk/packages/eternum/src/modelManager/MarketManager.ts @@ -1,23 +1,28 @@ -import { getEntityIdFromKeys } from "@/ui/utils/utils"; -import { ContractAddress, ID, ResourcesIds } from "@bibliothecadao/eternum"; -import { ComponentValue, getComponentValue, HasValue, runQuery } from "@dojoengine/recs"; -import { ClientComponents } from "../createClientComponents"; -import { configManager, SetupResult } from "../setup"; +import { getComponentValue, HasValue, runQuery, type ComponentValue } from "@dojoengine/recs"; +import { getEntityIdFromKeys } from "@dojoengine/utils"; +import { ResourcesIds } from "../constants"; +import { ClientComponents } from "../dojo/components/createClientComponents"; +import { ContractAddress, ID } from "../types"; +import { configManager } from "./ConfigManager"; export class MarketManager { - bankEntityId: ID; - player: ContractAddress; - resourceId: ResourcesIds; - constructor( - private setup: SetupResult, - bankEntityId: ID, - player: ContractAddress, - resourceId: ResourcesIds, - ) { - this.bankEntityId = bankEntityId; - this.resourceId = resourceId; - this.player = player; + private readonly components: ClientComponents, + private readonly _bankEntityId: ID, + private readonly _player: ContractAddress, + private readonly _resourceId: ResourcesIds, + ) {} + + get bankEntityId() { + return this._bankEntityId; + } + + get player() { + return this._player; + } + + get resourceId() { + return this._resourceId; } public hasReserves() { @@ -32,14 +37,14 @@ export class MarketManager { public getPlayerLiquidity() { return getComponentValue( - this.setup.components.Liquidity, + this.components.Liquidity, getEntityIdFromKeys([BigInt(this.bankEntityId), this.player, BigInt(this.resourceId)]), ); } public getMarket() { return getComponentValue( - this.setup.components.Market, + this.components.Market, getEntityIdFromKeys([BigInt(this.bankEntityId), BigInt(this.resourceId)]), ); } @@ -271,7 +276,7 @@ export class MarketManager { playerStructureIds.forEach((structureId) => { const liquidityEvents = runQuery([ - HasValue(this.setup.components.events.LiquidityEvent, { + HasValue(this.components.events.LiquidityEvent, { bank_entity_id: this.bankEntityId, entity_id: structureId, resource_type: this.resourceId, @@ -279,7 +284,7 @@ export class MarketManager { ]); liquidityEvents.forEach((event) => { - const eventInfo = getComponentValue(this.setup.components.events.LiquidityEvent, event); + const eventInfo = getComponentValue(this.components.events.LiquidityEvent, event); if (eventInfo && (!mostRecentEvent || eventInfo.timestamp > mostRecentEvent.timestamp)) { mostRecentEvent = eventInfo; } diff --git a/client/apps/game/src/dojo/modelManager/ResourceInventoryManager.ts b/client/sdk/packages/eternum/src/modelManager/ResourceInventoryManager.ts similarity index 64% rename from client/apps/game/src/dojo/modelManager/ResourceInventoryManager.ts rename to client/sdk/packages/eternum/src/modelManager/ResourceInventoryManager.ts index 199962e32..6e382b550 100644 --- a/client/apps/game/src/dojo/modelManager/ResourceInventoryManager.ts +++ b/client/sdk/packages/eternum/src/modelManager/ResourceInventoryManager.ts @@ -1,15 +1,17 @@ -import { useAccountStore } from "@/hooks/context/accountStore"; -import { Resource, type ID } from "@bibliothecadao/eternum"; import { getComponentValue } from "@dojoengine/recs"; import { getEntityIdFromKeys } from "@dojoengine/utils"; import { uuid } from "@latticexyz/utils"; -import { type SetupResult } from "../setup"; +import { ClientComponents } from "../dojo/components/createClientComponents"; +import { EternumProvider } from "../provider"; +import { type ID, type Resource } from "../types"; +import { DojoAccount } from "./types"; export class ResourceInventoryManager { carrierEntityId: ID; constructor( - private readonly setup: SetupResult, + private readonly components: ClientComponents, + private readonly provider: EternumProvider, carrierEntityId: ID, ) { this.carrierEntityId = carrierEntityId; @@ -22,10 +24,10 @@ export class ResourceInventoryManager { ) => { inventoryResources.forEach((resource) => { const receiveResourceEntity = getEntityIdFromKeys([BigInt(receiverEntityId), BigInt(resource.resourceId)]); - const receiverBalance = getComponentValue(this.setup.components.Resource, receiveResourceEntity)?.balance || 0n; + const receiverBalance = getComponentValue(this.components.Resource, receiveResourceEntity)?.balance || 0n; // optimistically update the balance of the receiver - this.setup.components.Resource.addOverride(overrideId, { + this.components.Resource.addOverride(overrideId, { entity: receiveResourceEntity, value: { entity_id: receiverEntityId, @@ -37,7 +39,7 @@ export class ResourceInventoryManager { const carrierEntity = getEntityIdFromKeys([BigInt(this.carrierEntityId)]); - this.setup.components.Weight.addOverride(overrideId, { + this.components.Weight.addOverride(overrideId, { entity: carrierEntity, value: { entity_id: this.carrierEntityId, @@ -46,7 +48,7 @@ export class ResourceInventoryManager { }); // need to update this for the arrivals list to get updated - this.setup.components.OwnedResourcesTracker.addOverride(overrideId, { + this.components.OwnedResourcesTracker.addOverride(overrideId, { entity: carrierEntity, value: { entity_id: this.carrierEntityId, @@ -55,22 +57,22 @@ export class ResourceInventoryManager { }); }; - public onOffloadAll = async (receiverEntityId: ID, inventoryResources: Resource[]) => { + public onOffloadAll = async (signer: DojoAccount, receiverEntityId: ID, inventoryResources: Resource[]) => { const overrideId = uuid(); this._optimisticOffloadAll(overrideId, receiverEntityId, inventoryResources); if (inventoryResources.length > 0) { - await this.setup.systemCalls + await this.provider .send_resources({ + signer, sender_entity_id: this.carrierEntityId, recipient_entity_id: receiverEntityId, resources: inventoryResources.flatMap((resource) => [resource.resourceId, resource.amount]), - signer: useAccountStore.getState().account!, }) .finally(() => { - this.setup.components.Resource.removeOverride(overrideId); - this.setup.components.Weight.removeOverride(overrideId); - this.setup.components.OwnedResourcesTracker.removeOverride(overrideId); + this.components.Resource.removeOverride(overrideId); + this.components.Weight.removeOverride(overrideId); + this.components.OwnedResourcesTracker.removeOverride(overrideId); }); } }; diff --git a/client/apps/game/src/dojo/modelManager/ResourceManager.ts b/client/sdk/packages/eternum/src/modelManager/ResourceManager.ts similarity index 90% rename from client/apps/game/src/dojo/modelManager/ResourceManager.ts rename to client/sdk/packages/eternum/src/modelManager/ResourceManager.ts index 5cac00620..f64a03792 100644 --- a/client/apps/game/src/dojo/modelManager/ResourceManager.ts +++ b/client/sdk/packages/eternum/src/modelManager/ResourceManager.ts @@ -1,14 +1,18 @@ -import { getEntityIdFromKeys, gramToKg, multiplyByPrecision } from "@/ui/utils/utils"; -import { BuildingType, CapacityConfigCategory, ResourcesIds, StructureType, type ID } from "@bibliothecadao/eternum"; +// import { getEntityIdFromKeys, gramToKg, multiplyByPrecision } from "@/ui/utils/utils"; import { getComponentValue } from "@dojoengine/recs"; -import { configManager, type SetupResult } from "../setup"; +import { getEntityIdFromKeys } from "@dojoengine/utils"; +import { BuildingType, CapacityConfigCategory, ResourcesIds, StructureType } from "../constants"; +import { ClientComponents } from "../dojo/components/createClientComponents"; +import { ID } from "../types"; +import { gramToKg, multiplyByPrecision } from "../utils"; +import { configManager } from "./ConfigManager"; export class ResourceManager { entityId: ID; resourceId: ResourcesIds; constructor( - private readonly setup: SetupResult, + private readonly components: ClientComponents, entityId: ID, resourceId: ResourcesIds, ) { @@ -56,8 +60,8 @@ export class ResourceManager { public optimisticResourceUpdate = (overrideId: string, change: bigint) => { const entity = getEntityIdFromKeys([BigInt(this.entityId), BigInt(this.resourceId)]); - const currentBalance = getComponentValue(this.setup.components.Resource, entity)?.balance || 0n; - this.setup.components.Resource.addOverride(overrideId, { + const currentBalance = getComponentValue(this.components.Resource, entity)?.balance || 0n; + this.components.Resource.addOverride(overrideId, { entity, value: { resource_type: this.resourceId, @@ -91,16 +95,13 @@ export class ResourceManager { } public getStoreCapacity(): number { - const structure = getComponentValue( - this.setup.components.Structure, - getEntityIdFromKeys([BigInt(this.entityId || 0)]), - ); + const structure = getComponentValue(this.components.Structure, getEntityIdFromKeys([BigInt(this.entityId || 0)])); if (structure?.category === StructureType[StructureType.FragmentMine]) return Infinity; const storehouseCapacityKg = gramToKg(configManager.getCapacityConfig(CapacityConfigCategory.Storehouse)); const quantity = getComponentValue( - this.setup.components.BuildingQuantityv2, + this.components.BuildingQuantityv2, getEntityIdFromKeys([BigInt(this.entityId || 0), BigInt(BuildingType.Storehouse)]), )?.value || 0; return multiplyByPrecision(Number(quantity) * storehouseCapacityKg + storehouseCapacityKg); @@ -254,18 +255,18 @@ export class ResourceManager { private _getProduction(resourceId: ResourcesIds) { return getComponentValue( - this.setup.components.Production, + this.components.Production, getEntityIdFromKeys([BigInt(this.entityId), BigInt(resourceId)]), ); } private _getProductionDeadline(entityId: ID) { - return getComponentValue(this.setup.components.ProductionDeadline, getEntityIdFromKeys([BigInt(entityId)])); + return getComponentValue(this.components.ProductionDeadline, getEntityIdFromKeys([BigInt(entityId)])); } private _getResource(resourceId: ResourcesIds) { return getComponentValue( - this.setup.components.Resource, + this.components.Resource, getEntityIdFromKeys([BigInt(this.entityId), BigInt(resourceId)]), ); } diff --git a/client/apps/game/src/dojo/modelManager/StaminaManager.ts b/client/sdk/packages/eternum/src/modelManager/StaminaManager.ts similarity index 81% rename from client/apps/game/src/dojo/modelManager/StaminaManager.ts rename to client/sdk/packages/eternum/src/modelManager/StaminaManager.ts index 05d142455..265091ef3 100644 --- a/client/apps/game/src/dojo/modelManager/StaminaManager.ts +++ b/client/sdk/packages/eternum/src/modelManager/StaminaManager.ts @@ -1,26 +1,26 @@ -import { ID, ResourcesIds, WORLD_CONFIG_ID } from "@bibliothecadao/eternum"; import { ComponentValue, getComponentValue } from "@dojoengine/recs"; import { getEntityIdFromKeys } from "@dojoengine/utils"; -import { ClientComponents } from "../createClientComponents"; -import { SetupResult } from "../setup"; +import { ResourcesIds, WORLD_CONFIG_ID } from "../constants"; +import { ClientComponents } from "../dojo/components/createClientComponents"; +import { ID } from "../types"; export class StaminaManager { constructor( - private setup: SetupResult, + private components: ClientComponents, private armyEntityId: ID, ) {} public getStaminaConfig() { const knightConfig = getComponentValue( - this.setup.components.StaminaConfig, + this.components.StaminaConfig, getEntityIdFromKeys([WORLD_CONFIG_ID, BigInt(ResourcesIds.Knight)]), ); const crossbowmanConfig = getComponentValue( - this.setup.components.StaminaConfig, + this.components.StaminaConfig, getEntityIdFromKeys([WORLD_CONFIG_ID, BigInt(ResourcesIds.Crossbowman)]), ); const paladinConfig = getComponentValue( - this.setup.components.StaminaConfig, + this.components.StaminaConfig, getEntityIdFromKeys([WORLD_CONFIG_ID, BigInt(ResourcesIds.Paladin)]), ); @@ -33,17 +33,14 @@ export class StaminaManager { public getStamina(currentArmiesTick: number) { let armyOnchainStamina = getComponentValue( - this.setup.components.Stamina, + this.components.Stamina, getEntityIdFromKeys([BigInt(this.armyEntityId)]), ); if (!armyOnchainStamina) { return { ...DEFAULT_STAMINA, entity_id: this.armyEntityId }; } - const armyEntityId = getComponentValue( - this.setup.components.Army, - getEntityIdFromKeys([BigInt(this.armyEntityId)]), - ); + const armyEntityId = getComponentValue(this.components.Army, getEntityIdFromKeys([BigInt(this.armyEntityId)])); if (!armyEntityId) { return { ...DEFAULT_STAMINA, entity_id: this.armyEntityId }; } @@ -87,7 +84,7 @@ export class StaminaManager { const totalStaminaSinceLastTick = numTicksPassed * staminaPerTick; const maxStamina = this.getMaxStamina( - getComponentValue(this.setup.components.Army, getEntityIdFromKeys([BigInt(this.armyEntityId)]))?.troops, + getComponentValue(this.components.Army, getEntityIdFromKeys([BigInt(this.armyEntityId)]))?.troops, ); const newAmount = Math.min(amount + totalStaminaSinceLastTick, maxStamina); @@ -100,7 +97,7 @@ export class StaminaManager { private getRefillPerTick() { const staminaRefillConfig = getComponentValue( - this.setup.components.StaminaRefillConfig, + this.components.StaminaRefillConfig, getEntityIdFromKeys([WORLD_CONFIG_ID]), ); return staminaRefillConfig?.amount_per_tick || 0; diff --git a/client/apps/game/src/dojo/modelManager/TileManager.ts b/client/sdk/packages/eternum/src/modelManager/TileManager.ts similarity index 67% rename from client/apps/game/src/dojo/modelManager/TileManager.ts rename to client/sdk/packages/eternum/src/modelManager/TileManager.ts index 86349766a..802a37916 100644 --- a/client/apps/game/src/dojo/modelManager/TileManager.ts +++ b/client/sdk/packages/eternum/src/modelManager/TileManager.ts @@ -1,49 +1,36 @@ -import { useAccountStore } from "@/hooks/context/accountStore"; -import useUIStore from "@/hooks/store/useUIStore"; -import { BUILDINGS_CENTER, DUMMY_HYPERSTRUCTURE_ENTITY_ID } from "@/three/scenes/constants"; -import { playBuildingSound } from "@/three/sound/utils"; -import { HexPosition } from "@/types"; -import { FELT_CENTER } from "@/ui/config"; -import { getEntityIdFromKeys } from "@/ui/utils/utils"; +import { Entity, Has, HasValue, NotValue, getComponentValue, runQuery } from "@dojoengine/recs"; +import { getEntityIdFromKeys } from "@dojoengine/utils"; +import { uuid } from "@latticexyz/utils"; +import { CairoOption, CairoOptionVariant } from "starknet"; import { + BUILDINGS_CENTER, BuildingType, + DUMMY_HYPERSTRUCTURE_ENTITY_ID, Direction, - ID, - Position, + FELT_CENTER, RealmLevels, ResourcesIds, StructureType, getDirectionBetweenAdjacentHexes, getNeighborHexes, -} from "@bibliothecadao/eternum"; -import { Entity, Has, HasValue, NotValue, getComponentValue, runQuery } from "@dojoengine/recs"; -import { uuid } from "@latticexyz/utils"; -import { AccountInterface, CairoOption, CairoOptionVariant } from "starknet"; -import { SetupResult, configManager } from "../setup"; +} from "../constants"; +import { ClientComponents } from "../dojo/components/createClientComponents"; +import { EternumProvider } from "../provider"; +import { ContractAddress, HexPosition, ID, Position } from "../types"; +import { configManager } from "./ConfigManager"; +import { DojoAccount } from "./types"; export class TileManager { private col: number; private row: number; - private address: bigint; - private account: AccountInterface | null; constructor( - private setup: SetupResult, + private readonly components: ClientComponents, + private readonly provider: EternumProvider, hexCoords: HexPosition, ) { this.col = hexCoords.col; this.row = hexCoords.row; - - this.account = null; - this.address = BigInt(useAccountStore.getState().account?.address || 0n); - - useAccountStore.subscribe((state) => { - const account = state.account; - if (account) { - this.address = BigInt(account.address); - this.account = account; - } - }); } getHexCoords = () => { @@ -55,29 +42,27 @@ export class TileManager { this.row = hexCoords.row + FELT_CENTER; } - getRealmLevel = (): RealmLevels => { - const realmEntityId = useUIStore.getState().structureEntityId; - const realm = getComponentValue(this.setup.components.Realm, getEntityIdFromKeys([BigInt(realmEntityId)])); + getRealmLevel = (realmEntityId: number): RealmLevels => { + const realm = getComponentValue(this.components.Realm, getEntityIdFromKeys([BigInt(realmEntityId)])); return (realm?.level || RealmLevels.Settlement) as RealmLevels; }; - getWonder = () => { - const realmEntityId = useUIStore.getState().structureEntityId; - const realm = getComponentValue(this.setup.components.Realm, getEntityIdFromKeys([BigInt(realmEntityId)])); + getWonder = (realmEntityId: number) => { + const realm = getComponentValue(this.components.Realm, getEntityIdFromKeys([BigInt(realmEntityId)])); return realm?.has_wonder || false; }; existingBuildings = () => { const builtBuildings = Array.from( runQuery([ - Has(this.setup.components.Building), - HasValue(this.setup.components.Building, { outer_col: this.col, outer_row: this.row }), - NotValue(this.setup.components.Building, { entity_id: 0 }), + Has(this.components.Building), + HasValue(this.components.Building, { outer_col: this.col, outer_row: this.row }), + NotValue(this.components.Building, { entity_id: 0 }), ]), ); const buildings = builtBuildings.map((entity) => { - const productionModelValue = getComponentValue(this.setup.components.Building, entity); + const productionModelValue = getComponentValue(this.components.Building, entity); const category = productionModelValue!.category; return { @@ -95,7 +80,7 @@ export class TileManager { getBuilding = (hexCoords: HexPosition) => { const building = getComponentValue( - this.setup.components.Building, + this.components.Building, getEntityIdFromKeys([BigInt(this.col), BigInt(this.row), BigInt(hexCoords.col), BigInt(hexCoords.row)]), ); return building; @@ -103,7 +88,7 @@ export class TileManager { isHexOccupied = (hexCoords: HexPosition) => { const building = getComponentValue( - this.setup.components.Building, + this.components.Building, getEntityIdFromKeys([BigInt(this.col), BigInt(this.row), BigInt(hexCoords.col), BigInt(hexCoords.row)]), ); return building !== undefined && building.category !== BuildingType[BuildingType.None]; @@ -111,29 +96,26 @@ export class TileManager { structureType = () => { const structures = Array.from( - runQuery([ - Has(this.setup.components.Structure), - HasValue(this.setup.components.Position, { x: this.col, y: this.row }), - ]), + runQuery([Has(this.components.Structure), HasValue(this.components.Position, { x: this.col, y: this.row })]), ); if (structures?.length === 1) { - const structure = getComponentValue(this.setup.components.Structure, structures[0])!; + const structure = getComponentValue(this.components.Structure, structures[0])!; let category = structure.category; return StructureType[category as keyof typeof StructureType]; } }; - private _getOwnerEntityId = () => { + private _getOwnerEntityId = (address: ContractAddress) => { const entities = Array.from( runQuery([ - Has(this.setup.components.Owner), - HasValue(this.setup.components.Owner, { address: this.address }), - HasValue(this.setup.components.Position, { x: this.col, y: this.row }), + Has(this.components.Owner), + HasValue(this.components.Owner, { address }), + HasValue(this.components.Position, { x: this.col, y: this.row }), ]), ); if (entities.length === 1) { - return getComponentValue(this.setup.components.Owner, entities[0])!.entity_id; + return getComponentValue(this.components.Owner, entities[0])!.entity_id; } }; @@ -143,7 +125,7 @@ export class TileManager { let bonusPercent = 0; neighborBuildingCoords.map((coord) => { const building = getComponentValue( - this.setup.components.Building, + this.components.Building, getEntityIdFromKeys([BigInt(this.col), BigInt(this.row), BigInt(coord.col), BigInt(coord.row)]), ); @@ -190,7 +172,7 @@ export class TileManager { let overrideId = uuid(); const entity = getEntityIdFromKeys([this.col, this.row, col, row].map((v) => BigInt(v))); - this.setup.components.Building.addOverride(overrideId, { + this.components.Building.addOverride(overrideId, { entity, value: { outer_col: this.col, @@ -210,14 +192,14 @@ export class TileManager { const realmEntity = getEntityIdFromKeys([BigInt(entityId)]); - this.setup.components.Population.addOverride(populationOverrideId, { + this.components.Population.addOverride(populationOverrideId, { entity: realmEntity, value: { population: - (getComponentValue(this.setup.components.Population, realmEntity)?.population || 0) + + (getComponentValue(this.components.Population, realmEntity)?.population || 0) + configManager.getBuildingPopConfig(buildingType).population, capacity: - (getComponentValue(this.setup.components.Population, realmEntity)?.capacity || 0) + + (getComponentValue(this.components.Population, realmEntity)?.capacity || 0) + configManager.getBuildingPopConfig(buildingType).capacity, }, }); @@ -226,9 +208,9 @@ export class TileManager { const buildingQuantityEntity = getEntityIdFromKeys([BigInt(entityId), BigInt(buildingType)]); const storehouseQuantity = - getComponentValue(this.setup.components.BuildingQuantityv2, buildingQuantityEntity)?.value || 0; + getComponentValue(this.components.BuildingQuantityv2, buildingQuantityEntity)?.value || 0; - this.setup.components.BuildingQuantityv2.addOverride(quantityOverrideId, { + this.components.BuildingQuantityv2.addOverride(quantityOverrideId, { entity: buildingQuantityEntity, value: { value: storehouseQuantity + 1, @@ -244,9 +226,9 @@ export class TileManager { }; private _overrideResource = (entity: Entity, resourceType: number, change: bigint) => { - const currentBalance = getComponentValue(this.setup.components.Resource, entity)?.balance || 0n; + const currentBalance = getComponentValue(this.components.Resource, entity)?.balance || 0n; const resourceOverrideId = uuid(); - this.setup.components.Resource.addOverride(resourceOverrideId, { + this.components.Resource.addOverride(resourceOverrideId, { entity, value: { resource_type: resourceType, @@ -257,15 +239,15 @@ export class TileManager { private _optimisticDestroy = (entityId: ID, col: number, row: number) => { const overrideId = uuid(); - const realmPosition = getComponentValue(this.setup.components.Position, getEntityIdFromKeys([BigInt(entityId)])); + const realmPosition = getComponentValue(this.components.Position, getEntityIdFromKeys([BigInt(entityId)])); const { x: outercol, y: outerrow } = realmPosition || { x: 0, y: 0 }; const entity = getEntityIdFromKeys([outercol, outerrow, col, row].map((v) => BigInt(v))); - const currentBuilding = getComponentValue(this.setup.components.Building, entity); + const currentBuilding = getComponentValue(this.components.Building, entity); console.log(currentBuilding); - this.setup.components.Building.addOverride(overrideId, { + this.components.Building.addOverride(overrideId, { entity, value: { outer_col: outercol, @@ -286,14 +268,14 @@ export class TileManager { const type = BuildingType[currentBuilding?.category as keyof typeof BuildingType]; - this.setup.components.Population.addOverride(populationOverrideId, { + this.components.Population.addOverride(populationOverrideId, { entity: realmEntityId, value: { population: - (getComponentValue(this.setup.components.Population, realmEntityId)?.population || 0) - + (getComponentValue(this.components.Population, realmEntityId)?.population || 0) - configManager.getBuildingPopConfig(type).population, capacity: - (getComponentValue(this.setup.components.Population, realmEntityId)?.capacity || 0) - + (getComponentValue(this.components.Population, realmEntityId)?.capacity || 0) - configManager.getBuildingPopConfig(type).capacity, }, }); @@ -304,8 +286,8 @@ export class TileManager { private _optimisticPause = (col: number, row: number) => { let overrideId = uuid(); const entity = getEntityIdFromKeys([this.col, this.row, col, row].map((v) => BigInt(v))); - const building = getComponentValue(this.setup.components.Building, entity); - this.setup.components.Building.addOverride(overrideId, { + const building = getComponentValue(this.components.Building, entity); + this.components.Building.addOverride(overrideId, { entity, value: { outer_col: building?.outer_col, @@ -326,8 +308,8 @@ export class TileManager { private _optimisticResume = (col: number, row: number) => { let overrideId = uuid(); const entity = getEntityIdFromKeys([this.col, this.row, col, row].map((v) => BigInt(v))); - const building = getComponentValue(this.setup.components.Building, entity); - this.setup.components.Building.addOverride(overrideId, { + const building = getComponentValue(this.components.Building, entity); + this.components.Building.addOverride(overrideId, { entity, value: { outer_col: building?.outer_col, @@ -349,7 +331,7 @@ export class TileManager { const overrideId = DUMMY_HYPERSTRUCTURE_ENTITY_ID.toString(); const entity: Entity = getEntityIdFromKeys([BigInt(DUMMY_HYPERSTRUCTURE_ENTITY_ID)]); - this.setup.components.Position.addOverride(overrideId, { + this.components.Position.addOverride(overrideId, { entity, value: { entity_id: Number(DUMMY_HYPERSTRUCTURE_ENTITY_ID), @@ -358,7 +340,7 @@ export class TileManager { }, }); - this.setup.components.Structure.addOverride(overrideId, { + this.components.Structure.addOverride(overrideId, { entity, value: { category: StructureType[structureType], @@ -370,8 +352,13 @@ export class TileManager { return { overrideId }; }; - placeBuilding = async (buildingType: BuildingType, hexCoords: HexPosition, resourceType?: number) => { - const entityId = this._getOwnerEntityId(); + placeBuilding = async ( + signer: DojoAccount, + buildingType: BuildingType, + hexCoords: HexPosition, + resourceType?: number, + ) => { + const entityId = this._getOwnerEntityId(ContractAddress(signer.address)); if (!entityId) throw new Error("TileManager: Not Owner of the Tile"); const { col, row } = hexCoords; @@ -387,13 +374,13 @@ export class TileManager { buildingType, resourceType, ); - const { isSoundOn, effectsLevel } = useUIStore.getState(); - playBuildingSound(buildingType, isSoundOn, effectsLevel); + // const { isSoundOn, effectsLevel } = useUIStore.getState(); + // playBuildingSound(buildingType, isSoundOn, effectsLevel); try { - await this.setup.systemCalls.create_building({ - signer: useAccountStore.getState().account!, + await this.provider.create_building({ + signer, entity_id: entityId, directions: directions, building_category: buildingType, @@ -403,24 +390,24 @@ export class TileManager { : new CairoOption(CairoOptionVariant.None, 0), }); } catch (error) { - this.setup.components.Building.removeOverride(overrideId); - this.setup.components.Population.removeOverride(populationOverrideId); - this.setup.components.BuildingQuantityv2.removeOverride(quantityOverrideId); + this.components.Building.removeOverride(overrideId); + this.components.Population.removeOverride(populationOverrideId); + this.components.BuildingQuantityv2.removeOverride(quantityOverrideId); console.error(error); throw error; } }; - destroyBuilding = async (col: number, row: number) => { - const entityId = this._getOwnerEntityId(); + destroyBuilding = async (signer: DojoAccount, col: number, row: number) => { + const entityId = this._getOwnerEntityId(ContractAddress(signer.address)); if (!entityId) throw new Error("TileManager: Not Owner of the Tile"); // add optimistic rendering this._optimisticDestroy(entityId, col, row); - await this.setup.systemCalls.destroy_building({ - signer: useAccountStore.getState().account!, + await this.provider.destroy_building({ + signer, entity_id: entityId, building_coord: { x: col, @@ -429,14 +416,14 @@ export class TileManager { }); }; - pauseProduction = async (col: number, row: number) => { - const entityId = this._getOwnerEntityId(); + pauseProduction = async (signer: DojoAccount, col: number, row: number) => { + const entityId = this._getOwnerEntityId(ContractAddress(signer.address)); if (!entityId) throw new Error("TileManager: Not Owner of the Tile"); this._optimisticPause(col, row); - await this.setup.systemCalls.pause_production({ - signer: useAccountStore.getState().account!, + await this.provider.pause_production({ + signer, entity_id: entityId, building_coord: { x: col, @@ -445,14 +432,14 @@ export class TileManager { }); }; - resumeProduction = async (col: number, row: number) => { - const entityId = this._getOwnerEntityId(); + resumeProduction = async (signer: DojoAccount, col: number, row: number) => { + const entityId = this._getOwnerEntityId(ContractAddress(signer.address)); if (!entityId) throw new Error("TileManager: Not Owner of the Tile"); this._optimisticResume(col, row); - await this.setup.systemCalls.resume_production({ - signer: useAccountStore.getState().account!, + await this.provider.resume_production({ + signer, entity_id: entityId, building_coord: { x: col, @@ -461,19 +448,19 @@ export class TileManager { }); }; - placeStructure = async (entityId: ID, structureType: StructureType, coords: Position) => { + placeStructure = async (signer: DojoAccount, entityId: ID, structureType: StructureType, coords: Position) => { const { overrideId } = this._optimisticStructure(coords, structureType); try { if (structureType == StructureType.Hyperstructure) { - return await this.setup.systemCalls.create_hyperstructure({ - signer: useAccountStore.getState().account!, + return await this.provider.create_hyperstructure({ + signer, creator_entity_id: entityId, coords, }); } } catch (error) { - this.setup.components.Structure.removeOverride(overrideId); - this.setup.components.Position.removeOverride(overrideId); + this.components.Structure.removeOverride(overrideId); + this.components.Position.removeOverride(overrideId); console.error(error); throw error; } diff --git a/client/apps/game/src/dojo/modelManager/__tests__/BattleManager.test.ts b/client/sdk/packages/eternum/src/modelManager/__tests__/BattleManager.test.ts similarity index 100% rename from client/apps/game/src/dojo/modelManager/__tests__/BattleManager.test.ts rename to client/sdk/packages/eternum/src/modelManager/__tests__/BattleManager.test.ts diff --git a/client/apps/game/src/dojo/modelManager/__tests__/__BattleManagerMock__.ts b/client/sdk/packages/eternum/src/modelManager/__tests__/__BattleManagerMock__.ts similarity index 100% rename from client/apps/game/src/dojo/modelManager/__tests__/__BattleManagerMock__.ts rename to client/sdk/packages/eternum/src/modelManager/__tests__/__BattleManagerMock__.ts diff --git a/client/apps/game/src/dojo/modelManager/__tests__/__LeaderboardManagerMock__.ts b/client/sdk/packages/eternum/src/modelManager/__tests__/__LeaderboardManagerMock__.ts similarity index 100% rename from client/apps/game/src/dojo/modelManager/__tests__/__LeaderboardManagerMock__.ts rename to client/sdk/packages/eternum/src/modelManager/__tests__/__LeaderboardManagerMock__.ts diff --git a/client/sdk/packages/eternum/src/modelManager/index.ts b/client/sdk/packages/eternum/src/modelManager/index.ts new file mode 100644 index 000000000..bb02135ef --- /dev/null +++ b/client/sdk/packages/eternum/src/modelManager/index.ts @@ -0,0 +1,12 @@ +export * from "./ArmyManager"; +export * from "./ArmyMovementManager"; +export * from "./BattleManager"; +export * from "./ConfigManager"; +export * from "./LeaderboardManager"; +export * from "./MarketManager"; +export * from "./ResourceInventoryManager"; +export * from "./ResourceManager"; +export * from "./StaminaManager"; +export * from "./TileManager"; +export * from "./types"; +export * from "./utils"; diff --git a/client/sdk/packages/eternum/src/modelManager/types/index.ts b/client/sdk/packages/eternum/src/modelManager/types/index.ts new file mode 100644 index 000000000..57ecff119 --- /dev/null +++ b/client/sdk/packages/eternum/src/modelManager/types/index.ts @@ -0,0 +1,37 @@ +import { ComponentValue } from "@dojoengine/recs"; +import { Account, AccountInterface } from "starknet"; +import { ClientComponents } from "../../dojo/components/createClientComponents"; +import { Position } from "../../types"; + +export type DojoAccount = Account | AccountInterface; + +export type ArmyInfo = ComponentValue & { + name: string; + isMine: boolean; + isMercenary: boolean; + isHome: boolean; + offset: Position; + health: ComponentValue; + position: ComponentValue; + quantity: ComponentValue; + owner: ComponentValue; + entityOwner: ComponentValue; + protectee: ComponentValue | undefined; + movable: ComponentValue | undefined; + totalCapacity: bigint; + weight: bigint; + arrivalTime: ComponentValue | undefined; + stamina: ComponentValue | undefined; + realm: ComponentValue | undefined; + homePosition: ComponentValue | undefined; +}; + +export type Structure = ComponentValue & { + isMine: boolean; + isMercenary: boolean; + name: string; + ownerName?: string; + protector: ArmyInfo | undefined; + owner: ComponentValue; + entityOwner: ComponentValue; +}; diff --git a/client/sdk/packages/eternum/src/modelManager/utils/ArmyMovementUtils.ts b/client/sdk/packages/eternum/src/modelManager/utils/ArmyMovementUtils.ts new file mode 100644 index 000000000..adef9a162 --- /dev/null +++ b/client/sdk/packages/eternum/src/modelManager/utils/ArmyMovementUtils.ts @@ -0,0 +1,88 @@ +import { type ComponentValue } from "@dojoengine/recs"; +import { EternumGlobalConfig, ResourcesIds } from "../../constants"; +import { ClientComponents } from "../../dojo/components/createClientComponents"; +import { divideByPrecision, gramToKg } from "../../utils"; +import { configManager } from "../ConfigManager"; + +export const getRemainingCapacity = ( + army: ComponentValue, + capacity: ComponentValue, + armyWeight: ComponentValue | undefined, +) => { + return getArmyTotalCapacity(army, capacity) - getArmyWeight(armyWeight); +}; + +export const getArmyTotalCapacity = ( + army: ComponentValue, + capacity: ComponentValue, +) => { + return BigInt(gramToKg(Number(capacity.weight_gram))) * getArmyNumberOfTroops(army); +}; + +const getArmyWeight = (weight: ComponentValue | undefined) => { + if (!weight) return 0n; + return BigInt(divideByPrecision(Number(weight.value))); +}; + +export const getArmyNumberOfTroops = (army: ComponentValue) => { + const knights = army.troops.knight_count || 0n; + const crossbowmen = army.troops.crossbowman_count || 0n; + const paladins = army.troops.paladin_count || 0n; + return (knights + crossbowmen + paladins) / BigInt(EternumGlobalConfig.resources.resourcePrecision); +}; + +export const computeTravelFoodCosts = ( + troops: ComponentValue | undefined, +) => { + const paladinFoodConsumption = configManager.getTravelFoodCostConfig(ResourcesIds.Paladin); + const knightFoodConsumption = configManager.getTravelFoodCostConfig(ResourcesIds.Knight); + const crossbowmanFoodConsumption = configManager.getTravelFoodCostConfig(ResourcesIds.Crossbowman); + + const paladinCount = divideByPrecision(Number(troops?.paladin_count)); + const knightCount = divideByPrecision(Number(troops?.knight_count)); + const crossbowmanCount = divideByPrecision(Number(troops?.crossbowman_count)); + + const paladinWheatConsumption = paladinFoodConsumption.travelWheatBurnAmount * paladinCount; + const knightWheatConsumption = knightFoodConsumption.travelWheatBurnAmount * knightCount; + const crossbowmanWheatConsumption = crossbowmanFoodConsumption.travelWheatBurnAmount * crossbowmanCount; + + const paladinFishConsumption = paladinFoodConsumption.travelFishBurnAmount * paladinCount; + const knightFishConsumption = knightFoodConsumption.travelFishBurnAmount * knightCount; + const crossbowmanFishConsumption = crossbowmanFoodConsumption.travelFishBurnAmount * crossbowmanCount; + + const wheatPayAmount = paladinWheatConsumption + knightWheatConsumption + crossbowmanWheatConsumption; + const fishPayAmount = paladinFishConsumption + knightFishConsumption + crossbowmanFishConsumption; + + return { + wheatPayAmount, + fishPayAmount, + }; +}; + +export const computeExploreFoodCosts = ( + troops: ComponentValue | undefined, +) => { + const paladinFoodConsumption = configManager.getTravelFoodCostConfig(ResourcesIds.Paladin); + const knightFoodConsumption = configManager.getTravelFoodCostConfig(ResourcesIds.Knight); + const crossbowmanFoodConsumption = configManager.getTravelFoodCostConfig(ResourcesIds.Crossbowman); + + const paladinCount = divideByPrecision(Number(troops?.paladin_count)); + const knightCount = divideByPrecision(Number(troops?.knight_count)); + const crossbowmanCount = divideByPrecision(Number(troops?.crossbowman_count)); + + const paladinWheatConsumption = paladinFoodConsumption.exploreWheatBurnAmount * paladinCount; + const knightWheatConsumption = knightFoodConsumption.exploreWheatBurnAmount * knightCount; + const crossbowmanWheatConsumption = crossbowmanFoodConsumption.exploreWheatBurnAmount * crossbowmanCount; + + const paladinFishConsumption = paladinFoodConsumption.exploreFishBurnAmount * paladinCount; + const knightFishConsumption = knightFoodConsumption.exploreFishBurnAmount * knightCount; + const crossbowmanFishConsumption = crossbowmanFoodConsumption.exploreFishBurnAmount * crossbowmanCount; + + const wheatPayAmount = paladinWheatConsumption + knightWheatConsumption + crossbowmanWheatConsumption; + const fishPayAmount = paladinFishConsumption + knightFishConsumption + crossbowmanFishConsumption; + + return { + wheatPayAmount, + fishPayAmount, + }; +}; diff --git a/client/apps/game/src/dojo/modelManager/utils/LeaderboardUtils.ts b/client/sdk/packages/eternum/src/modelManager/utils/LeaderboardUtils.ts similarity index 84% rename from client/apps/game/src/dojo/modelManager/utils/LeaderboardUtils.ts rename to client/sdk/packages/eternum/src/modelManager/utils/LeaderboardUtils.ts index a515cd4d5..aeca9d959 100644 --- a/client/apps/game/src/dojo/modelManager/utils/LeaderboardUtils.ts +++ b/client/sdk/packages/eternum/src/modelManager/utils/LeaderboardUtils.ts @@ -1,9 +1,8 @@ -import { ClientComponents } from "@/dojo/createClientComponents"; -import { configManager } from "@/dojo/setup"; -import { divideByPrecision } from "@/ui/utils/utils"; -import { Resource } from "@bibliothecadao/eternum"; import { ComponentValue } from "@dojoengine/recs"; -import { ClientConfigManager } from "../ConfigManager"; +import { ClientComponents } from "../../dojo/components/createClientComponents"; +import { Resource } from "../../types"; +import { divideByPrecision } from "../../utils"; +import { ClientConfigManager, configManager } from "../ConfigManager"; function computeInitialContributionPoints( hyperstructureId: number, diff --git a/client/sdk/packages/eternum/src/modelManager/utils/index.ts b/client/sdk/packages/eternum/src/modelManager/utils/index.ts new file mode 100644 index 000000000..158f33a7a --- /dev/null +++ b/client/sdk/packages/eternum/src/modelManager/utils/index.ts @@ -0,0 +1,2 @@ +export * from "./ArmyMovementUtils"; +export * from "./LeaderboardUtils"; diff --git a/client/sdk/packages/eternum/src/types/common.ts b/client/sdk/packages/eternum/src/types/common.ts index 1ba2ea6c9..c2baffbf6 100644 --- a/client/sdk/packages/eternum/src/types/common.ts +++ b/client/sdk/packages/eternum/src/types/common.ts @@ -8,6 +8,8 @@ import { TroopFoodConsumption, } from "../constants"; +export type HexPosition = { col: number; row: number }; + export enum Winner { Attacker = "Attacker", Target = "Target", @@ -48,6 +50,11 @@ export enum TravelTypes { Travel, } +export interface Health { + current: bigint; + lifetime: bigint; +} + export interface CombatResultInterface { attackerRealmEntityId: ID; targetRealmEntityId: ID; diff --git a/client/sdk/packages/eternum/src/utils/battleSimulation.ts b/client/sdk/packages/eternum/src/utils/battleSimulation.ts index cb288a601..4110e3813 100644 --- a/client/sdk/packages/eternum/src/utils/battleSimulation.ts +++ b/client/sdk/packages/eternum/src/utils/battleSimulation.ts @@ -88,7 +88,7 @@ export class TroopsSimulator { } } -export class Health { +export class HealthSimulator { current: bigint; lifetime: bigint; @@ -131,8 +131,8 @@ export class Health { export class Battle { attackArmy: TroopsSimulator; defenceArmy: TroopsSimulator; - attackHealth: Health; - defenceHealth: Health; + attackHealth: HealthSimulator; + defenceHealth: HealthSimulator; config: TroopConfig; constructor( @@ -152,8 +152,8 @@ export class Battle { defenceArmy.paladin_count, defenceArmy.crossbowman_count, ); - this.attackHealth = new Health(attackHealth); - this.defenceHealth = new Health(defenceHealth); + this.attackHealth = new HealthSimulator(attackHealth); + this.defenceHealth = new HealthSimulator(defenceHealth); this.config = config; } @@ -332,7 +332,7 @@ export class Battle { } private getUpdatedTroops = ( - health: Health, + health: HealthSimulator, currentTroops: { knight_count: bigint; paladin_count: bigint; crossbowman_count: bigint }, ): { knight_count: bigint; paladin_count: bigint; crossbowman_count: bigint } => { if (health.current > health.lifetime) { @@ -382,11 +382,11 @@ export class Battle { const [attackDelta, defenceDelta] = this.computeDelta(); const duration = this.calculateDuration(); - const attackerHealth = new Health({ + const attackerHealth = new HealthSimulator({ current: this.attackHealth.current - BigInt(defenceDelta) * BigInt(duration), lifetime: this.attackHealth.lifetime, }); - const defenderHealth = new Health({ + const defenderHealth = new HealthSimulator({ current: this.defenceHealth.current - BigInt(attackDelta) * BigInt(duration), lifetime: this.defenceHealth.lifetime, }); diff --git a/client/sdk/packages/eternum/src/utils/index.ts b/client/sdk/packages/eternum/src/utils/index.ts index d01a4cf86..4ee67f35c 100644 --- a/client/sdk/packages/eternum/src/utils/index.ts +++ b/client/sdk/packages/eternum/src/utils/index.ts @@ -144,3 +144,15 @@ export const HYPERSTRUCTURE_TOTAL_COSTS_SCALED: { resource: number; amount: numb HYPERSTRUCTURE_TOTAL_COSTS, EternumGlobalConfig.resources.resourceMultiplier, ); + +export function multiplyByPrecision(value: number): number { + return Math.floor(value * EternumGlobalConfig.resources.resourcePrecision); +} + +export function divideByPrecision(value: number): number { + return value / EternumGlobalConfig.resources.resourcePrecision; +} + +export function gramToKg(grams: number): number { + return Number(grams) / 1000; +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 466f79ede..e761a4c97 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -430,6 +430,9 @@ importers: '@dojoengine/core': specifier: 1.0.0-alpha.24 version: 1.0.0-alpha.24(starknet@6.11.0(encoding@0.1.13))(typescript@5.7.2) + '@latticexyz/utils': + specifier: ^2.0.0-next.12 + version: 2.2.14 '@scure/starknet': specifier: ^1.1.0 version: 1.1.0