VAMPIRE

eBACS: ECRYPT Benchmarking of Cryptographic Systems


ECRYPT II
General information:IntroductioneBASHeBASCeBAEADeBATSSUPERCOPXBXComputersArch
How to submit new software:Tipshashstreamaeaddhkemencryptsign
List of primitives measured:lwcsha3hashstreamlwccaesaraeaddhkemencryptsign
Measurements:lwcsha3hashstreamlwccaesaraeaddhkemencryptsign
List of subroutines:verifydecodeencodesortcorehashblocksxofscalarmult

Measurements of key-encapsulation mechanisms on one machine: aarch64; Cortex-A53 (410fd034); 2018 Broadcom BCM2837B0; 4 x 1400MHz; pi3aplus, supercop-20240425

[Page version: 20240724 17:32:16]

eBATS (ECRYPT Benchmarking of Asymmetric Systems) is a project to measure the performance of public-key systems. This page presents benchmark results collected in eBATS for key-encapsulation mechanisms:

Each table row lists the first quartile of many speed measurements, the median of many speed measurements, the third quartile of many speed measurements, and the name of the primitive. Measurements with large variance are indicated in red with question marks. The symbol C: means that the current SUPERCOP database does not list IND-CCA2 security as a goal for this key-encapsulation mechanism. The symbol T: (starting with supercop-20200816) means that the SUPERCOP database at the time of benchmarking did not list constant time as a goal for this implementation. The symbol T!!! means that constant time was listed as a goal for this implementation, but that the implementation failed TIMECOP. (TIMECOP failures are not necessarily security issues; they can sometimes be resolved by, e.g., declaring that a rejection-sampling condition is safe to declassify.)

There is a separate page with more information about each key-encapsulation mechanism and each implementation. Designers and implementors interested in submitting new key-encapsulation mechanisms and new implementations of existing systems should read the call for submissions.


Implementation notes

Graphs: (pkcycles,pkbytes) (ccycles,cbytes) (kcycles,cbytes) (pkbytes,cbytes)

NISTPQC graphs: (pkcycles,pkbytes) (ccycles,cbytes) (kcycles,cbytes) (pkbytes,cbytes)

Cycles to generate a key pair
25%50%75%system
114225114512119461
T:
lightsaber2
154146155326159730
T:
C:r5nd1kem0d
196502199437206868
T:
C:r5nd0kem2iot
203069206818210713
T:
C:r5nd1kem5d
206097211212216885
T:
C:r5nd1kem4longkey
214441220463222408
T:
saber2
264438269278270362kyber512
283233288534292870
T:
newhope512cca
329189333915335621threebears624r2cca
328202333936334724C:threebears624r2cpa
331730337538338412C:threebears624r2cpax
340604346428347236threebears624r2ccax
343836350589351531
T:
firesaber2
394429397000401405
T:
C:r5nd3kem5d
409464410782411962kyber90s512
458982459660461419kyber768
563799565755569798
T:
C:hila5
580619582462587937
T:
newhope1024cca
626345627381631440threebears936r2cca
629778630661634373C:threebears936r2cpa
634545635636640601C:threebears936r2cpax
637500638643642166threebears936r2ccax
644293653940663280
T:
C:r5nd3kem0d
702189703497708431kyber1024
734181737484742717kyber90s768
773680779603792590
T:
C:r5nd5kem5d
801032805625811232
T:
kindi256342
821086829670837662
T:
ntrulpr653
850494856344864592
T:
kindi512222
857699861794872493
T:
kindi512241
859259866231882172
T:
C:r5nd5kem0d
101453510172631023953threebears1248r2cca
102602410286791039449C:threebears1248r2cpa
102632810288301033784threebears1248r2ccax
102787910306481035538C:threebears1248r2cpax
106132110777171097288
T:
ntrulpr761
117054811736231183859kyber90s1024
129518213216531366667
T:
ntrulpr857
151214515258971543279
T:
hqc1281
154338315617711621480
T:
ntrulpr953
173369717479961816912
T:
ntrulpr1013
176743617773831797680
T:
kindi512321
210024321094722129860
T:
kindi256522
254391525547292559713
T:
lima2p1024cca
255351925896702623821
T:
ntrulpr1277
334663533569043400886
T:
hqc1921
360349136461823672600
T:
hqc1922
397002840037874038068
T:
ntrukem443
514270351479075158528
T:
limasp1018cca
516277051669275170168
T:
lima2p2048cca
586873559015836019260
T:
hqc2561
624019962895786319511
T:
hqc2562
651405365573776702560
T:
hqc2563
751234675390427589311
T:
C:lake1
885547888630968876291
T:
limasp1306cca
905097290844799360134
T:
C:lake3
964274396565009685281
T:
C:lake2
101046511015743710287852
T:
ntrukem743
103539051036454610375896
T:
limasp1822cca
132436981326152513429920
T:
ntrulpr4591761
148194441482951614846960
T:
frodokem640shake
153450061538045815455906
T:
locker1
173586381738957417703986
T:
limasp2062cca
185069591859205618796108
T:
ntruhps2048509
185232411870194618848338ntruhps2048509
209993502103469222187322
T:
locker4
221333592216671222198940
T:
frodokem640
231820032319348023225114
T:
frodokem640aes
232792342329418823350024
T:
C:bikel1
254028792542538625502066
T:
sntrup653
254713512549241025510610
T:
sikep434
254917482551008425534128sntrup653
258829622591273025943670
T:
C:r5n11kem0d
285332802888424634010822
T:
ramstakers216091
312918473131749731353723
T:
C:ledakemcpa14
318953983194561132162512
T:
ntruhps2048677
321125583218465832884258
T:
frodokem976shake
319761793226949432439700ntruhps2048677
339163523404453734406928ntruhrss701
340595563407779534108571
T:
sntrup761
342129153424406134491181sntrup761
347535763476452534798070
T:
sikep503
395400573959065839701551
T:
C:ledakemcpa13
407739404084802444907718
T:
sikep434comp
417629664185061843415139
T:
locker7
442372284430003544566592
T:
sntrup857
443585764438358944425262sntrup857
469995824728039247577878ntruhps4096821
468542054730628047460910
T:
ntruhps4096821
510616355110194351149525
T:
frodokem976
525421175259379552694958
T:
frodokem976aes
546600825472541055119158sntrup953
545558175484376555005881
T:
sntrup953
556882965578120260619384
T:
sikep503comp
571645825723367657447219
T:
frodokem1344shake
593124245936689859412089
T:
sntrup4591761
598901685993420859971728
T:
sntrup1013
600587626010646660133715sntrup1013
678703436790739867937994
T:
C:ledakemcpa12
675763867030305672520622
T:
mersenne756839
703404667046481370544991
T:
C:r5n13kem0d
707744127081336370853514
T:
sikep610
702890447164451674393966
T:
lotus128
748592137490591374949509
T:
C:bikel3
956534959571398095771413
T:
sntrup1277
958833659597395896057871sntrup1277
981926329825211198345954
T:
frodokem1344aes
106488588106628782106767341
T:
C:ledakemcpa34
119367928119456310128907562
T:
sikep610comp
121444932121564180121754790
T:
ledakem1464
122201152122675910123279082
T:
C:ledakemcpa33
124954230125041705125099659
T:
sikep751
129571286129686259131185902
T:
C:r5n15kem0d
128781974132228328145621896
T:
ramstakers756839
133951152134497662138214728
T:
lotus192
139564260139683282140112912
T:
ledakem1364
158907884159066336167163864
T:
ledakem14sl
180594616184757446185967738
T:
ledakem13sl
194171666194509814210497984
T:
sikep751comp
199100145199160338199232597
T:
C:ledakemcpa32
153198310?207902705?248229483?
T:
ntskem1264
265564208265678463266036674
T:
C:ledakemcpa54
281497061281632086281900314
T:
C:ledakemcpa53
295601436296059770302934578
T:
lotus256
307956251308255084308854882
T:
ledakem1264
337346634353099996353812120
T:
ledakem3464
416241538416474670435564024
T:
ledakem34sl
423295298423726372425066976
T:
ledakem12sl
436377811437092404437873026
T:
C:ledakemcpa52
455884668456018072456170356
T:
ledakem3364
513125826513503120542171968mceliece348864pcf
525492820525723060526957968
T:
ledakem3264
530942030531156156561302684mceliece348864f
534812538535075314538937916
T:
ledakem33sl
551486082553693746556526594
T:
ledakem5464
396596434?577864154?826721848?
T:
rsa2048
539643432?625215377?886241143?mceliece348864
638842090646787208712359570
T:
oddmanhattan128
540525252?651714048?800450294?mceliece348864pc
512552884?671601708?853367860?
T:
ntskem1380
811611144811933330812330318
T:
ledakem5364
101573342710332838981066197826
T:
oddmanhattan192
112818904811289688341133797722
T:
ledakem32sl
112891069211296615861136598931
T:
ledakem54sl
124627809012485598901262939190
T:
ledakem53sl
129369944912970269361302859640
T:
ledakem5264
180145343618030321881966605632
T:
oddmanhattan256
1851890180?1880755486?3116271108?mceliece460896f
1847574354?1881284356?3102578757?mceliece460896pcf
2015285866?2438860772?3371853487?
T:
ntskem13136
263674552626396331532656492355
T:
ledakem52sl
2231180994?3017910594?4901772932?mceliece460896pc
2475732753?3716275636?5944690923?mceliece460896
5042328670?5317957345?7596452222?mceliece6688128f
4651671000?5483516954?6881898776?mceliece6960119pcf
4654291137?5521473157?6840797034?mceliece6960119f
5266563538?6136419370?7534672337?mceliece6688128pcf
6303444130?7367041077?9111442773?mceliece8192128f
6170745615?7380705643?9119305713?mceliece8192128pcf
7237983530?10786740615?17820646725?mceliece6960119pc
7231148022?10839015622?19200186761?mceliece6960119
6584067827?10895894151?16942616023?mceliece6688128
8946370629?11863795160?19452590981?mceliece6688128pc
7767315123?12792775968?20858778863?mceliece8192128pc
7767068711?14420809004?22940676216?mceliece8192128
160805929721638289848216834238317
T:
pqrsa15
Cycles for encapsulation
25%50%75%system
508155535757053
T:
rsa2048
159021159477166226
T:
lightsaber2
234866239069243545
T:
C:r5nd1kem0d
248824265096283748mceliece348864f
248832269894302538mceliece348864
273690280862286120
T:
saber2
290871295635301783
T:
C:r5nd0kem2iot
298608316246336460mceliece348864pc
303790319919343482mceliece348864pcf
315633320141323502
T:
C:r5nd1kem5d
323508326633334804
T:
C:r5nd1kem4longkey
211741?327193?710972?
T:
ntskem1264
373965379259380277kyber512
404119409761411657threebears624r2ccax
407105410655411562threebears624r2cca
414176419834421562C:threebears624r2cpa
415734421060422389C:threebears624r2cpax
424172425086425920
T:
firesaber2
446279450026452677
T:
newhope512cca
456491472344487741
T:
ntrukem443
520947522142524286kyber90s512
523406?585091?704948?mceliece460896f
594741597989609798
T:
C:r5nd3kem5d
599172599609600989
T:
C:ledakemcpa13
598441600397604620kyber768
516376?616491?1140786?mceliece460896
623175623579625462
T:
C:ledakemcpa14
564838?632026?1016374?mceliece460896pcf
641879651699660478
T:
C:ledakemcpa12
562164?660874?994968?mceliece460896pc
717779719352725084threebears936r2ccax
718957720465725729threebears936r2cca
717671724530750474
T:
ntruhps2048509
726490730223737057
T:
C:hila5
732388733210738965C:threebears936r2cpax
733100735850742079C:threebears936r2cpa
735001737392741635
T:
sntrup653
780777790444807038ntruhps2048509
805883812911826981ntruhrss701
827124828308833811sntrup653
871640875794882802kyber1024
878788883895892478kyber90s768
923880928229936385
T:
newhope1024cca
951263955823962778
T:
sntrup761
9652709868411007877
T:
ntrukem743
104441610467911058919
T:
kindi256342
105207910612011074760
T:
ntruhps2048677
108259410834341094957sntrup761
109482710997661108170
T:
C:lake1
112516011258071131594threebears1248r2ccax
112500511270261133496threebears1248r2cca
105611811287901275019mceliece6688128
111875411303711153143
T:
C:r5nd3kem0d
114448111461421156633C:threebears1248r2cpax
114820511502111157535C:threebears1248r2cpa
114325611542361163287ntruhps2048677
115720811653991196707
T:
C:r5nd5kem5d
118459111872031196829
T:
sntrup857
122090612263121236043
T:
kindi512222
123193812367311246272
T:
kindi512241
1151412?1239818?2171808?mceliece8192128pc
124730812558331283438
T:
lotus128
131887913219311329323sntrup857
134333913484171358304kyber90s1024
137932613927291408154
T:
C:lake2
140091314267641447028
T:
ntruhps4096821
1198361?1442791?1910735?mceliece6960119f
143641214435701455306
T:
sntrup953
145913314642111471660
T:
C:ledakemcpa33
146110814666931474131
T:
C:ledakemcpa34
1169709?1509636?2404994?mceliece6960119pcf
152257815309441554316ntruhps4096821
152296215310191586730
T:
C:r5nd5kem0d
154371315547481568817
T:
C:lake3
156185015706251580192sntrup953
1204469?1576042?1923748?mceliece6688128f
156457215835601605269
T:
C:ledakemcpa32
157016115855161603763
T:
ntrulpr653
1249892?1589228?3108693?mceliece6688128pc
1213890?1590646?2277840?mceliece6688128pcf
158709115918041600504
T:
sntrup1013
1172475?1598490?2147789?mceliece8192128f
1110839?1608105?2304157?mceliece6960119pc
1004761?1615341?2466545?mceliece6960119
1172912?1625036?1880230?mceliece8192128
162923616319891643233
T:
ledakem1464
1178044?1670946?2190937?mceliece8192128pcf
174626417505881760945sntrup1013
179143517943971806765
T:
C:bikel1
194538819509861958455
T:
ledakem14sl
193728519616921987986
T:
lotus192
202292920268992036696
T:
ledakem1364
205920420666962074575
T:
lima2p1024cca
202703420704362092032
T:
ntrulpr761
224781522566042265316
T:
locker1
229509723065342352541
T:
kindi512321
1905465?2354656?3360899?
T:
ntskem1380
239208723960842406030
T:
sntrup1277
250833425180442549528
T:
kindi256522
251144625219932527117
T:
ledakem13sl
247528125413262590464
T:
ntrulpr857
259540926058852610240sntrup1277
279976428217582849844
T:
lotus256
284772229224692980606
T:
ledakem1264
299093230014193142568
T:
locker4
295862730144393085152
T:
ntrulpr953
303531830599213074348
T:
hqc1281
333088933442783467688
T:
ntrulpr1013
335278133608413369053
T:
C:ledakemcpa54
333771533747863418108
T:
C:ledakemcpa52
340451334097373414673
T:
C:ledakemcpa53
2956240?3714842?4271841?
T:
ntskem13136
388304639542384021816
T:
ledakem12sl
398547839898083995873
T:
ledakem3464
413632241406794146715
T:
lima2p2048cca
443499744389964445073
T:
limasp1018cca
494344850166425043690
T:
ntrulpr1277
513968651438995153949
T:
ledakem3364
526384752674795271802
T:
ledakem34sl
533491053488495419056
T:
C:bikel3
561351156311975836246
T:
locker7
682958368541396878945
T:
hqc1921
715568171661277176636
T:
ledakem33sl
732451673648327655590
T:
hqc1922
744464176109377768896
T:
ledakem3264
808553780931188107340
T:
limasp1306cca
875806687645678771244
T:
ledakem5464
884749888631448883900
T:
limasp1822cca
111553071117591611206875
T:
ledakem5364
112103761145701811643782
T:
ledakem32sl
117935161181540911836231
T:
ledakem54sl
120742561213363912189198
T:
hqc2561
128688901294703013004929
T:
hqc2562
130950221310359113119376
T:
sntrup4591761
133818481345904813860212
T:
hqc2563
149254261498579515004273
T:
ledakem53sl
160998321612802416216200
T:
limasp2062cca
192189781923369919249418
T:
frodokem640shake
199388182012459320298247
T:
ledakem5264
209237762137812121789570
T:
ledakem52sl
243393802436006624411771
T:
frodokem640
252436842527392125317259
T:
frodokem640aes
261850162625216126538038
T:
ntrulpr4591761
271892482721554927246961
T:
C:r5n11kem0d
415141214156937941830786
T:
frodokem976shake
416718914169462041712482
T:
sikep434
538562965459838262578273
T:
ramstakers216091
555745035562797455752936
T:
frodokem976
567275565676514656970425
T:
frodokem976aes
571686915720302457233443
T:
sikep503
641996226449680664837198
T:
sikep434comp
669997836705508867102243
T:
C:r5n13kem0d
696174386982169470226412
T:
pqrsa15
747470767481379774894766
T:
frodokem1344shake
869279478719082087632526
T:
sikep503comp
9397869699292318107737046
T:
mersenne756839
105572636105664402106766442
T:
frodokem1344aes
130234896130303085130390664
T:
sikep610
143839500149482208159966946
T:
oddmanhattan128
153486528156140547158770750
T:
C:r5n15kem0d
176627626177304250178397036
T:
sikep610comp
202408608202511320202612791
T:
sikep751
241284840247678223269332982
T:
ramstakers756839
311425092312137538314278350
T:
sikep751comp
304836900?412092863?482840218?
T:
oddmanhattan192
797530054811189068826027542
T:
oddmanhattan256
Cycles for decapsulation
25%50%75%system
613276144361605C:threebears624r2cpax
790927916379451C:threebears936r2cpax
968919698997731C:threebears1248r2cpax
116756116990118119
T:
C:r5nd1kem0d
135747135923138735C:threebears624r2cpa
145693146287152538
T:
C:r5nd0kem2iot
165473166372172055
T:
C:r5nd1kem5d
165323168660172258
T:
C:r5nd1kem4longkey
183918184381191647
T:
lightsaber2
185583185918192204C:threebears936r2cpa
193097193242198146
T:
C:hila5
235936236310242270C:threebears1248r2cpa
291164296719301237
T:
C:r5nd3kem5d
307198314026317176
T:
saber2
468272468769469346
T:
firesaber2
490539491013492366kyber512
537386538429539754threebears624r2ccax
544749549591551239
T:
newhope512cca
559963561982565348
T:
C:r5nd5kem5d
631113632832646528
T:
C:r5nd3kem0d
635439636924642550kyber90s512
721163721806727305threebears624r2cca
744736747670754526kyber768
748590754524760526
T:
ntrukem443
844487850135866325
T:
C:r5nd5kem0d
889060890745896890
T:
C:r5n11kem0d
893210896188900495threebears936r2ccax
103192910335841045548kyber90s768
105755010594781069415kyber1024
108165910933031112300
T:
ntruhps2048509
108310910937081114902ntruhps2048509
115686511594161170804threebears936r2cca
115814211640641174157
T:
newhope1024cca
119962712113971225830mceliece348864f
119939412125071276308mceliece348864
124297812529241268883mceliece348864pc
132111213233341331337
T:
C:r5n13kem0d
133371713371831346559
T:
kindi256342
133740113399941351052threebears1248r2ccax
141208514238331562057mceliece348864pcf
141509214369601505001
T:
ntskem1264
153129315357331545931kyber90s1024
153208515492221572785
T:
lotus128
165774816750171687262
T:
kindi512222
167454416755491687244sntrup653
167494616835391694640
T:
sntrup653
168350816863071697137threebears1248r2cca
167611316905501729462
T:
kindi512241
169595617173581741150
T:
ntrukem743
172589717271231737762ntruhps2048677
173523517407721768256
T:
ntruhps2048677
189797019081681934338ntruhrss701
214165421468402156544
T:
sntrup761
214650321511482162874sntrup761
219914022181652235033
T:
ntrulpr653
241430424231432433331ntruhps4096821
242027624356222470736
T:
ntruhps4096821
243186324427002445697
T:
lima2p1024cca
253644625598342590926
T:
lotus192
274130727489052755048
T:
sntrup857
273856527508312752477sntrup857
285604729266143029818
T:
ntrulpr761
295925329734252993847
T:
kindi512321
299053130028453087616
T:
kindi256522
294044330313543098836
T:
ntskem1380
317985031863393868576mceliece460896
322796232364163585701mceliece460896pc
333146333588403403216sntrup953
333772633666983418908
T:
sntrup953
356226135717603574668mceliece6688128
350646835803383688282
T:
ntrulpr857
359568236070563631625mceliece8192128pc
365188436551003975964mceliece460896f
351236336660203919134mceliece6960119pc
352325136729243895086mceliece8192128f
344200536749443816630mceliece6960119
368579636882543691507sntrup1013
368657336896023692673
T:
sntrup1013
369530237010614144968mceliece460896pcf
352556137081483845712mceliece8192128
359657137582604005324mceliece8192128pcf
375713437799083798202
T:
lotus256
357025938395423966951mceliece6688128f
363805839000184076072mceliece6688128pcf
3639215?3926652?4712596?mceliece6688128pc
393338841648044333656mceliece6960119f
400383742529964468506mceliece6960119pcf
426014842708544455428
T:
C:r5n15kem0d
422241142868444390760
T:
ntrulpr953
441194144189224425915
T:
C:lake1
475046248695644965790
T:
ntrulpr1013
488722148894504895341
T:
lima2p2048cca
5041556?5056225?6515167?
T:
C:ledakemcpa13
509629951602305191376
T:
hqc1281
549548254983615511501
T:
C:ledakemcpa12
556807355727535582690
T:
limasp1018cca
562386556277065637512sntrup1277
563130256361015645697
T:
sntrup1277
594841460451026087444
T:
ntskem13136
634287463458096357139
T:
C:ledakemcpa14
711046572138457258140
T:
ntrulpr1277
758583576170367796742
T:
C:lake2
944277794920909514106
T:
locker1
100124751005987910121098
T:
C:lake3
103359081034626910362127
T:
limasp1306cca
104107351043113710555186
T:
hqc1921
109949361108934711733942
T:
locker4
111439471115786011397624
T:
hqc1922
111793571118904611206648
T:
limasp1822cca
120338621204534112068061
T:
rsa2048
141039491411791214436854
T:
C:ledakemcpa32
162624541630087516319490
T:
ledakem1264
168560921686703716911223
T:
ledakem1364
180327071811198618174291
T:
hqc2561
183061471832571618334225
T:
C:ledakemcpa33
183580441840035519015460
T:
locker7
189844511899688119021025
T:
ledakem12sl
191684291927885619441606
T:
hqc2562
192902051930984619377546
T:
frodokem640shake
195616981957888919616555
T:
ledakem1464
199175662002622020131365
T:
hqc2563
206024592084258221398558
T:
C:ledakemcpa34
208076462087913621067552
T:
limasp2062cca
220451912209063822121034
T:
ledakem13sl
232932502336772723505393
T:
ledakem14sl
246436682469799524768664
T:
frodokem640
253927632543211225484355
T:
frodokem640aes
344210463445656534525563
T:
C:bikel1
370426443754529937585995
T:
C:ledakemcpa52
393909273944167039458262
T:
sntrup4591761
391794133948838239722870
T:
ntrulpr4591761
415955844164223041808661
T:
frodokem976shake
436211194380393443976713
T:
C:ledakemcpa53
444907994451747844540415
T:
sikep434
459750824601995646099849
T:
ledakem3364
463403284637943846435236
T:
ledakem3264
473640404738788647420844
T:
sikep434comp
500426265048052950555426
T:
C:ledakemcpa54
512160145135555151545240
T:
ledakem3464
559089555597067656172861
T:
frodokem976
569384165698267257040236
T:
frodokem976aes
608814516090323660928108
T:
sikep503
625370116258543062631579
T:
ledakem32sl
647602156479273064829906
T:
sikep503comp
681238156867983869016248
T:
ledakem34sl
697576326979560869839409
T:
ledakem33sl
747688787484170175026288
T:
frodokem1344shake
984355199871944798801075
T:
ledakem5264
105928291106102114106256918
T:
frodokem1344aes
108177516109007826125776227
T:
ramstakers216091
109026569109466264111166468
T:
C:bikel3
111513535111563396111616436
T:
ledakem5364
131042371131119113131222116
T:
sikep610
131197227131280776131392597
T:
ledakem5464
131982216132502080132600950
T:
ledakem52sl
138541812138670348138737078
T:
sikep610comp
148458048148581846148758112
T:
ledakem53sl
139972704149392758162594797
T:
mersenne756839
161293684161875826162129798
T:
ledakem54sl
163775316169730622171698360
T:
oddmanhattan128
217644070217740306217817459
T:
sikep751
230666992230807652230922936
T:
sikep751comp
353259710?388507936?489743051?
T:
oddmanhattan192
458241204478592382536295550
T:
ramstakers756839
584784562585136266585615620
T:
pqrsa15
884868540892890750968855242
T:
oddmanhattan256