Apple Microarchitecture Research by Dougall Johnson

M1/A14 P-core (Firestorm): Overview | Base Instructions | SIMD and FP Instructions
M1/A14 E-core (Icestorm):  Overview | Base Instructions | SIMD and FP Instructions

LDP (pre-index, 64-bit)

Test 1: uops

Code:

  ldp x0, x1, [x6, #8]!
  mov x0, 1
  mov x1, 2
  mov x8, 0

(no loop instructions)

1000 unrolls and 1 iteration

Retires: 3.000

Issues: 2.000

Integer unit issues: 1.000

Load/store unit issues: 1.000

SIMD/FP unit issues: 0.000

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)l2 tlb miss data (0b)0e1e202223292b3a3e3f404346494f51schedule uop (52)schedule int uop (53)schedule ldst uop (55)dispatch int uop (56)dispatch ldst uop (58)int uops in schedulers (59)simd uops in schedulers (5a)606d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map ldst uop (7d)map int uop inputs (7f)map ldst uop inputs (80)8283flush restart other nonspec (84)85inst all (8c)inst int load (95)inst ldst (9b)9dl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss st (a2)l1d cache miss ld (a3)ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9abacafldst x64 uop (b1)b5b6bbl1d cache miss ld nonspec (bf)l1d tlb miss nonspec (c1)c2c3cfd5map dispatch bubble (d6)ddfetch restart (de)e0e7? int output thing (e9)eaeb? ldst retires (ed)? int retires (ef)f5f6f7f8fd
3005105281110702000002010251935518252000100010001000100052835455901104010405763648200010002000100010001040381110011000100001016707710581001304010431253963243700732162210360100022141000200010411041104110411041
3004104071110773400005810251267122625200010001000100010005283645590010611042576364821511000200010001000104038111001100010000102870551050701163910451253154559710732162210360100026251000200010411041104110411041
300410408101092000002010251211114262520001000100010001000528284558911040104057636482000100020001000100010403811100110001000010266250104011020102710271253454343620732162210360100021201000200010411041104110411041
3004104071110682200004010251611062125200010001000100010005285245590110401040574364820001000200010001000104038111001100010000102171611053802665010551254563285701732162210370100024301000200010411041104110411041
300410407110047161000312102500422125200010001000100010005283545590110401040574364820001000200010001000104038111001100010000102271601037401643710361252232651700732162210371100014191000200010411041104110411041
3004104071110741610002010251219818252000100010001000100052820455880104010405743648200010002000100010001040381110011000100001026825910484014104010331253543843711732162210370100024231000200010411041104110411041
3004104071110692000001010251651661725200010001000100010005283345591110401040574364820001000200010001000104038111001100010000102463691057401004210411252845834600732162210370100022141000200010411041104110411041
300410408110057100000201025820510252000100010001000100052862455901104010405743648200010002000100010001040381110011000100001055714010371211102910261252553351600732162210371100030211000200010411041104110411041
30041040810011122200002010460224142520001000100010001000528524559111040104057436482000100020001000100010403811100110001000010077079104500102610381253263668700732162210370100020271000200010411041104110411041
3004104071000571510004010251223417252000100010001000100052825455900104010545743648200010002000100010001040381110011000100001039713410521501664510471253143552610732162210370100014141000200010411041104310411041

Test 2: Latency 1->3 (with chain penalty)

Chain cycles: 3

Code:

  ldp x0, x1, [x6, #8]!
  eor x8, x8, x0
  eor x8, x8, x0
  add x6, x6, x8
  mov x0, 1
  mov x1, 2
  mov x8, 0

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code, minus 3 chain cycles): 4.8450

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)09l2 tlb miss data (0b)0e0f18191e1f2022233a3f404346494d51schedule uop (52)schedule int uop (53)schedule ldst uop (55)dispatch int uop (56)dispatch ldst uop (58)int uops in schedulers (59)simd uops in schedulers (5a)60696a6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map ldst uop (7d)map int uop inputs (7f)map ldst uop inputs (80)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int load (95)inst int alu (97)inst ldst (9b)9d9fl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss ld (a3)ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9acafldst x64 uop (b1)ldst xpg uop (b2)b5bbbel1d cache miss ld nonspec (bf)l1d tlb miss nonspec (c1)c2c3cfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
6020983543593101000003150710532792607130677732255284542196110204010010000672640295960404974879781777868070794373486501004020020000702001000077965351140201100991001000030100100000100100203560100330168251003312504616234515120261027211782844216854995612472610000501007886278767795307836579205
6020479553586102000003110520514784859150979867578530884246510653428711074371484430671560497628679729797407070219573579534794346421662754261082980368351914020110099100100003010010000010010124748910089016113690710091125744952644991003004125021798124230152865069504210000501008027380317798988061180731
602047977660910000024233237199410205437975591611079903255263542308105264010010000675484298916304975944781757852671370243747775345740200204947717311043808123591402011009910010000301001000001001008415551011801892910032125044623045201003104129621802944240853215299537110000501008103980590809528101180427
602048014460512120120223247704710448780846152678577189532624212410536412661036769383330179610497661678836783627033237298750100402002000070200100007859335214020110099100100003010010000010010075151610092097366351009312594481324547130263015711790364216051845079515510000501007801478593785797815478350
60204787225881102001081419778510485782375150978239255268042176105034010010049687274300293004975555786337814970416372847501004020020000702001000078464351140201100991001000030100100000100100161509100320116241002912504496234488100261015711778214210452545260552110000501007839079191783617800280692
60204782315831000010031601010489783046150677716255289042224105424010010000682738300362804975362785317848270752372575501004020020000702001000078424351140201100991001000030100100000100100162485100340117241003012504466244501100261015711780604218050906251569110000501007848578531784417864579347
6020478405587100000003180101046378013615067847725526504208410522401001000067765329952110497532378371778517009137347950100403682000070200100007793635114020110099100100003010010000010010018255010033097251003312504520254522120261015711786814192851025135559010000501007900278513780187788078316
60204779675841001000032409205287868671916788232553045423081053740100100006770502993541049754307869378386707523738985010040200200007020010000792093511402011009910010000301001000001001001715041003401710301002912504521244511110261015711779674220853205214533310000501007875578808784477895679410
60204784895871000010030405105007854371508784952552820422361051440100100006738642996660049756937824078736726133729375010040200200007020010000789043511402011009910010000301001000001001001815541003701210301003312504521254534100261015711783744212452174801513410000501007826178532782057829078453
60204782715891110000031907105077881510161978514255284542268105364010010000679462300302004976616786897830271541372984501004020020000702001000078691351140201100991001000030100100000100100191535100300108241002912504518234489100261015711785934221250095046565610000501007858178428784917810678453

1000 unrolls and 10 iterations

Result (median cycles for code, minus 3 chain cycles): 4.8790

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)l2 tlb miss data (0b)0e0f191e1f2022243a3f404346494d51schedule uop (52)schedule int uop (53)schedule ldst uop (55)dispatch int uop (56)dispatch ldst uop (58)int uops in schedulers (59)simd uops in schedulers (5a)60696a6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map ldst uop (7d)map int uop inputs (7f)map ldst uop inputs (80)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int load (95)inst int alu (97)inst ldst (9b)9d9fl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss ld (a3)ld unit uop (a6)l1d cache writeback (a8)a9acafldst x64 uop (b1)ldst xpg uop (b2)b5bbbel1d cache miss ld nonspec (bf)l1d tlb miss nonspec (c1)c2c3branch cond mispred nonspec (c5)cfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
600298384859922000015507105067923692107849525535754217410616400101000068394830107290497580778966789557075437130450212400202000070020100007948235114002110910100003001010000010100194516100572952210017125046061345123000252026422784974187251445681613610000500107935078581785527833678336
60024783805954000001590710497788111020278245255269541946104724001010000675830298882604975565791527947770625371692500104002020000700201000079076351140021109101000030010100000101002365361002318132210020125045061345013000252038322781154226059795604547210000500107886678224783107834178461
6002478811594303000138091049978684921278534255276342114104994001010000681775302766404975685792207906771367371516500104002020000700201000079413351140021109101000030010100000101001865221004337122210017125045461344903400252028322782824227658485653555610000500107840178499783067839378382
6002478565587333000274264910537787451130378639255266042034105984001010000675989299921514975455789367933171856370953500104002020000700201000078754351140021109101000030010100000101001865741002311101910021125044911345173000252028322784194225257195559557910000500107953679409790737922279840
600247846358830000014807105297903972027895525527184203010522400101000068262130242170497560279321796817098437093750010400202000070020100007919635114002110910100003001010000010100186499100441572510017125045011345543000252028322786874213256395513567110000500107888578818780857855779945
6002479167588300000130081049278156720279324255264042110105464001010000676690301133014976101795347901771211371379500104002020000700201000078893351140021109101000030010100000101002334941002339162710021125045021645053300252038322784884212056635590562810000500107917778707790127858479146
6002479263593303000160071049578828102027914325525994217810495400101000068191930082981497557378449785347110237131150010400202000070020100007835635114002110910100003001010000010100176483100221461810018125044791244892200252028322791444200455075761563910000500107966879675794287904878759
6002478652592200000133091053178503920279073255273042142105004001010000679978301098704975363792947924570871371274500104002020000700201000079515351140021109101000030010100000101002625241002420113410016125045071144691000252021722782784203257835502569410000500107910678986789577888578833
600247898459522000015201010531787741020278840255269042118104974001010000681598300783214975744787747871671232371207500104002020000700201000078773351140021109101000030010100001101002125091002221131410017125044691244992000252028322787534212461305584537310000500107871178735787247888879821
6002478977595220000137071051779205720278292255261542054105314015810000678284303203914975870786737795971005371164500104002020000703141000078349351140021109101000030010100000101001744851002316121510019125144891244902000252038323787654193254225686612110000500107825779324785397840978643

Test 3: Latency 2->3 (with chain penalty)

Chain cycles: 3

Code:

  ldp x0, x1, [x6, #8]!
  eor x8, x8, x1
  eor x8, x8, x1
  add x6, x6, x8
  mov x0, 1
  mov x1, 2
  mov x8, 0

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code, minus 3 chain cycles): 4.8579

retire uop (01)cycle (02)03l1d tlb fill (05)0e0f1e202223243a3f4043494d51schedule uop (52)schedule int uop (53)schedule ldst uop (55)dispatch int uop (56)dispatch ldst uop (58)int uops in schedulers (59)simd uops in schedulers (5a)60696a6b6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map ldst uop (7d)map int uop inputs (7f)map ldst uop inputs (80)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int load (95)inst int alu (97)inst ldst (9b)9fl1d tlb access (a0)l1d cache miss ld (a3)ld unit uop (a6)l1d cache writeback (a8)a9acafldst x64 uop (b1)ldst xpg uop (b2)b5bbbel1d cache miss ld nonspec (bf)cfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
60209832515950003251110049578473642781092552535421121063940256100006795832988602149753450783797894670405371427501004020020000702001000078218351140201100991001000030100100001001001752510022198151002012504638164519261027311784534202851674973516610000501007887078570791727874078486
60204783175870013689100518785601055781982552760422041054840100100006856853021268049754690785317873671257371646501004020020000702001000077849351140201100991001000030100100001001001550710020109181002112504497144523261017311785344223654315232520610000501007860078468786497837178395
6020479021596000332910051077996743782902552830422241050640100100006772612995914049757180779977823671162370588501004020020000702001000078623351140201100991001000030100100001001001756710020109161002012504509134562261017311782004206054235069520310000501007850178328780367832878288
6020478239593000340910051678031945779192552695421921050840100100006775762992039049757690788057865970245371305501004020020000702001000077562351140201100991001000030100100001001001749510023159141005012504504124525261017311783384204848805204581610000501007860578617788317844679101
602047829261300035511100478779557447809725527554218810531401001000067808929945100497506307817477953706173706325010040200200007020010000787053511402011009910010000301001000010010014549100421010161001912504519134513261017311781454207248595300534710000501007820278473782777813278317
60204782795860002971010049178102955778422552625421041050340100100006768023005331049748540780917878270584370841501004020020000702001000077624351140201100991001000030100100001001001749410022127111002212504497134492261017311784114193249255251674810000501007867178627789287866178564
6020478134590000312111005177857464479098255269042232105544010010000675506299464304975571079102788187037937102850301402002000070200100007854235114020110099100100003010010000100100185251001799121002312504576134526261017311783064209251114926527610000501007798078623785227843678439
60204785085860003409100489783471054774772552650423481048740100100006757852999625049754220783087892571371371026501004020020000702001000078709351140201100991001000030100100001001001452210020117151002012504550124518261017311790214224050825208543610000501007877878427786157875179515
60204790955890003291010053278318754782994453475422761052440100100006847223015974049754740781417813670954371422501004020020000702001000078360351140201100991001000030100100001001001751310022149161002212504507134530261017311781864212852115180520910000501007854678758800077827378812
602047822358300033210100491786201063783962552935421721055340100100006811043011234049760000786787853370476371189501004020020000702001000078116351140201100991001000030100100001001001555810019197141002112504481134535261017311783994219254995352591110000501007823778175784117818278818

1000 unrolls and 10 iterations

Result (median cycles for code, minus 3 chain cycles): 4.8836

retire uop (01)cycle (02)030e0f18191e202223243a3f404346494d51schedule uop (52)schedule int uop (53)schedule ldst uop (55)dispatch int uop (56)dispatch ldst uop (58)int uops in schedulers (59)simd uops in schedulers (5a)60696a6b6d6emap stall dispatch (70)int prf full (71)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map ldst uop (7d)map int uop inputs (7f)map ldst uop inputs (80)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int load (95)inst int alu (97)inst ldst (9b)9d9fl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss ld (a3)ld unit uop (a6)l1d cache writeback (a8)a9acafldst x64 uop (b1)ldst xpg uop (b2)b5bbbel1d cache miss ld nonspec (bf)cfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
600298283760010001511010049678694710081327255260042170106364001010000681616304354004975560078562785497072503711085001040020200007002010000790323511400211091010000300101000001010017057410018101021100181250463294520252026422787394210454555326544910000500107899679193815817892079102
6002478664592000015291004967914291018122225526404205810507400101000067548730436911497560507962379087707940371137500104002020000700201000078854351140021109101000030010100000101001505351002081018100191250451794517252026422785154209254705255536210000500107865978645816047937379308
6002478506584000012771004897869971018015025528004217410521400101000068311930240631497596707850478549714400371835500104002020000700201000078888351140021109101000030010100000101001505301001813712100161250455194500252026422790784196055345631550310000500107842378521813377941179203
6002478820587000013671005357904571018108625525204208210549400101000068235430084671497504307868379064704550371252500104002020000700201000078366351140021109101000030010100000101001705391001814933100161250447494504252026422783874196854515406524210000500107858579104809497871778234
60024787445880000127710048579519710081349255269042026104954001010000679159301441314976088078706784167146403710655001040020200007002010000785183511400211091010000300101000001010014054710016167211001612504512104510252026422785774206456535829546410000500107976679162810557956079029
60024785805870000143101004897904571018061925526804197410488400101000068130130177291497540407935978437705180370584500104002020000700201000078308351140021109101000030010100000101001705031001810924100161250450794513252026432781894210860926054607110000500107906279307810058002078742
6002478780595000013671004507883361008183125526204209010559400101000068269330230251497573307878678474709040370883500104002020000700201000078661351140021109101000030010100000101001405871001616924100161250451294489252028322784854196053385242525510000500107856478934816127941878910
60024790615940000132710052978889101008103725527704204210524400101000068053329953921497584807915278755711730371710500104002020000700201000079008351140021109101000030010100000101001705501001617719100161250453694484252028322788604212059365757610910000500107964478811816787934179082
6002580075601000014171005097893591018085225526254201410505400101000067812130089021497551507872678457704810370978500104002020000700201000078414351140021109101000030010100000101001505671001514624100171250451794542252028322784904220857196370569110000500107823979175818877966779114
6002478600589000017171004807923971018169525525854217410495400101000068047030483420497577507887479708715550371537500104002020000700201000078767351140021109101000030010100000101001705801001612721100151250447094503252028322784314205255675518560310000500107948979021812467934279388

Test 4: throughput

Count: 8

Code:

  ldp x0, x1, [x6, #8]!
  ldp x0, x1, [x7, #8]!
  ldp x0, x1, [x8, #8]!
  ldp x0, x1, [x9, #8]!
  ldp x0, x1, [x10, #8]!
  ldp x0, x1, [x11, #8]!
  ldp x0, x1, [x12, #8]!
  ldp x0, x1, [x13, #8]!
  mov x7, x6
  mov x8, x6
  mov x9, x6
  mov x10, x6
  mov x11, x6
  mov x12, x6
  mov x13, x6

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code divided by count): 0.4071

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)l2 tlb miss data (0b)0e1e2022293a3e3f404346494f51schedule uop (52)schedule int uop (53)schedule ldst uop (55)dispatch int uop (56)dispatch ldst uop (58)int uops in schedulers (59)simd uops in schedulers (5a)6067696a6b6d6emap stall dispatch (70)int prf full (71)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map ldst uop (7d)map int uop inputs (7f)map ldst uop inputs (80)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)92inst branch cond (94)inst int load (95)inst int alu (97)inst ldst (9b)9d9fl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss st (a2)l1d cache miss ld (a3)ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9abacafldst x64 uop (b1)ldst xpg uop (b2)b5b6bbbel1d cache miss ld nonspec (bf)l1d tlb miss nonspec (c1)c2c3cfd5map dispatch bubble (d6)ddfetch restart (de)e0e7? int output thing (e9)eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
240209327082432001747680516804281403230179057717101729140377616012780131800008010080000400577666384023492934003248932397149412293251716010080200160000802008000032384381180201100992100800001008000001008102224447505585286828148678058088605810000326631085413325055310551102162232239150800264974272800001601003254832707325353252932641
240204327502433300703779216884741363237180657317341720145177516012480117800008010080000400577686718029492951603251332426175311523232216010080200160000802008000032487381180201100999100800001008000001008096155443547385510788119073250798603110000326841325514324852470051102162232363166800294223783800001601003246332481326973256332465
240204325092413000667478517204281443239380751616971753139480316011780119800008010080000400602677371027492949103251132199178410613234116010080200160000802008000032488381180201100992510080000100800000100810494744748998541579499003250218622710000326191155311325307480151102162232690143800324734861800001601003259032630324913268032332
240204327122434000686178216884281323263876656719991793128679916012080123800008010080000400568694124030492959703271332632146413253246616010080653160000802008000032398381180201100997100800001008000001008109068425546585737867259024456958652510000326431215315325215660351102162232474169800154373740800001601003267132470325153258432503
24020432515242300070928111688427132322537675141734180813077651601248011980000801008000040056868382903249295850324443243916979903255916010080200160000802008000032688381180201100991810080000100800000100810164944349528591686399294662208649810000326391325438325156494451102162232620163800314723837800001601003254632686326513274632537
24020432728246404073358471712453132326037895531770168814158141601218013180000801008000040056866207702049295640327173272216361049323021601008020016000080200800003243538118020110099410080000100800000100810266843546288528781399023256728598410000326651235574325024644751102162232301163800234455178800001601003243232424325323273332441
2402043265724430008016822173635910432418803533180516911352791160126801258000080100800004006026709100294929530032441325721544110732649160100802001600008020080000323673811802011009923100800001008000001008101148431540185467824119114053298697910000326831195814325246460351102162232494172800264694842800001601003268432650324923259032477
240204324812443000700678716164441363252474649815761872149180616012780123800008010080000400561656910024492890603253932721154112003250916010080200160000802008000032718381180201100996100800001008000001008102548469455585216827109118054168576110000326051175590324962161051102162232440153800254974910800001601003279432476324243243732628
240204323942444040752477717204881003266274449717931533117079816012380126800008010080000400570673574029492923103219732699148510226123901601008020016000080200800003228338118020110099151008000010080000010081029664714780855918031092080541786128100003263511951233250346320751102162232507147800294824392800001601003253232567324903244032536
240204322982433300748079917044121043241778954517161443140978716012880123800008010080000400584688134029492926703258232483164210563228816010080200160000802008000032588381180201100991510080000100800000100810126847450328585583888808459548627010000326651225286324506640051102162232360136800314814919800001601003241632771325793238532852

1000 unrolls and 10 iterations

Result (median cycles for code divided by count): 0.4058

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)l2 tlb miss data (0b)0f1e2022293a3e3f404346494f51schedule uop (52)schedule int uop (53)schedule ldst uop (55)dispatch int uop (56)dispatch ldst uop (58)int uops in schedulers (59)simd uops in schedulers (5a)5f6067696a6d6emap stall dispatch (70)int prf full (71)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map ldst uop (7d)map int uop inputs (7f)map ldst uop inputs (80)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)92inst branch cond (94)inst int load (95)inst int alu (97)inst ldst (9b)9d9fl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss st (a2)l1d cache miss ld (a3)ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9abacafldst x64 uop (b1)ldst xpg uop (b2)b5b6bbbel1d cache miss ld nonspec (bf)l1d tlb miss nonspec (c1)c2c3cfd5map dispatch bubble (d6)dadbddfetch restart (de)e0e7? int output thing (e9)eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
2400293275724300006634815173644610432261792520168818601337816160038800368000080010800004001336586250031492965032791325171344117832416160010800201600008002080000325093811800211091010800001080000110809521747555098542377711896746362865951000032728124550232433416145020916003632377150800294234572800001600103255632301325083260332766
2400243235724310006395825172844012032650769583184519261336820160037800318000080010800004001646760200025492949532562324321409100232708160010800201600008002080000325443811800211091510800001080000110810113146249428617985910908785976865161000032552112521632494232155111416004432405147800214804286800001600103238332588323343233732360
240024325152442000694378816964511243222876252618641553159082616004280030800008001080000400129656550012849292923248232433121310863239616001080020160000800208000032402381180021109310800001080000110809763246645928604779413941905111855541000032650120523032478833075020416007632298156800284794191800001600103270632518322053234432484
240024326002432210687179417124252403239376357319161807151077816003880034800008001080000400120659527012149293973243332672132910033236716001080020160000800208000032609381180021109810800001080000110809563241452448472978410864525525865911000032696126633332500633095020416004432613145800304864763800001600103231032260325803257432660
2400243255124120006884793172045715232673831548180717611466811160039800368000080010800004001316578981117492950532336325081314121732367160010800201600008002080000323893811800211092610800001080000110810003443142648542079415900746031865891000032615118497532494432655020416008432435183800325144782800001600103250832406323633222432573
24002432414243200072157721720456100325447885541581155313387841600348003680000800108000040010867617900184929382325793247614241124323271600108002016000080020800003236338118002110911080000108000011080971354204838858517989924404974864991000032605127539932521032035020416007732492168800234695217800001600103242032371327533282632317
240024328772432200727481216804181043250079249916591811132880616003680040800008001080000400127677864011749294283255832707145911793265116001080020160000800208000032426381180021109610800001080000110809442041549638474776311934245259866681000032578125558332474033135020616004432190153800265014981800001600103250932578325223240332559
2400243225924320217604767172844814032554771462160021501274823160037800338000080010800004001176796770026492927632434324471577104232512160010800201600008002080000323683811800211091010800001080000110809672541147238582181311918505736858961000032682126557932485032045020416004332769144800224364502800001600103249532488323333252732451
24002432532243220079438251728405112325647885641976161814848191600328002980000800108000040012468538801274929563326323246714071054326841600108002016000080020800003258138118002110991080000108000011080970134135612857528451288166512686113100003266412759153244980065020416004332421159800305484347800001600103281132429329543244732725
2400243248024520106877810174442710032417820510181419391262849160035800378000080010800004001816685260026492950432339324721213103232351160010800201600008002080000323463811800211091410800001080000110809703445653758545482813899805530862571000032692122586732477631375020615004632302156800344704792800001600103244932343324863226032543