# “DDoouubbllee ssppeeaakk!!”

Super simple challenge today, or is it?

I feel like we've heard a fair bit about double speak recently, well let's define it in a codable way...

Double speak is when each and every character in a string of text is immediately repeated. For example:

"DDoouubbllee  ssppeeaakk!!"


# The Rules

• Write code which accepts one argument, a string.
• It will modify this string, duplicating every character.
• Then it will return the double speak version of the string.
• It's code golf, try to achieve this in the smallest number of bytes.
• Input strings will only contain characters in the printable ASCII range. Reference: http://www.asciitable.com/mobile/

Here is a Stack Snippet to generate both a regular leaderboard and an overview of winners by language.

var QUESTION_ID=188988;
var OVERRIDE_USER=53748;
var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;function answersUrl(d){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+d+"&pagesize=100&order=asc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(d,e){return"https://api.stackexchange.com/2.2/answers/"+e.join(";")+"/comments?page="+d+"&pagesize=100&order=asc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(d){answers.push.apply(answers,d.items),answers_hash=[],answer_ids=[],d.items.forEach(function(e){e.comments=[];var f=+e.share_link.match(/\d+/);answer_ids.push(f),answers_hash[f]=e}),d.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(d){d.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),d.has_more?getComments():more_answers?getAnswers():process()}})}getAnswers();var SCORE_REG=function(){var d=String.rawh\d,e=String.raw\-?\d+\.?\d*,f=String.raw[^\n<>]*,g=String.raw<s>${f}</s>|<strike>${f}</strike>|<del>${f}</del>,h=String.raw[^\n\d<>]*,j=String.raw<[^\n<>]+>;return new RegExp(String.raw<${d}>+String.raw\s*([^\n,]*[^\s,]),.*?+String.raw(${e})+String.raw(?=+String.raw${h}+String.raw(?:(?:${g}|${j})${h})*+String.raw</${d}>+String.raw))}(),OVERRIDE_REG=/^Override\s*header:\s*/i;function getAuthorName(d){return d.owner.display_name}function process(){var d=[];answers.forEach(function(n){var o=n.body;n.comments.forEach(function(q){OVERRIDE_REG.test(q.body)&&(o="<h1>"+q.body.replace(OVERRIDE_REG,"")+"</h1>")});var p=o.match(SCORE_REG);p&&d.push({user:getAuthorName(n),size:+p[2],language:p[1],link:n.share_link})}),d.sort(function(n,o){var p=n.size,q=o.size;return p-q});var e={},f=1,g=null,h=1;d.forEach(function(n){n.size!=g&&(h=f),g=n.size,++f;var o=jQuery("#answer-template").html();o=o.replace("{{PLACE}}",h+".").replace("{{NAME}}",n.user).replace("{{LANGUAGE}}",n.language).replace("{{SIZE}}",n.size).replace("{{LINK}}",n.link),o=jQuery(o),jQuery("#answers").append(o);var p=n.language;p=jQuery("<i>"+n.language+"</i>").text().toLowerCase(),e[p]=e[p]||{lang:n.language,user:n.user,size:n.size,link:n.link,uniq:p}});var j=[];for(var k in e)e.hasOwnProperty(k)&&j.push(e[k]);j.sort(function(n,o){return n.uniq>o.uniq?1:n.uniq<o.uniq?-1:0});for(var l=0;l<j.length;++l){var m=jQuery("#language-template").html(),k=j[l];m=m.replace("{{LANGUAGE}}",k.lang).replace("{{NAME}}",k.user).replace("{{SIZE}}",k.size).replace("{{LINK}}",k.link),m=jQuery(m),jQuery("#languages").append(m)}}
body{text-align:left!important}#answer-list{padding:10px;float:left}#language-list{padding:10px;float:left}table thead{font-weight:700}table td{padding:5px}
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="https://cdn.sstatic.net/Sites/codegolf/primary.css?v=f52df912b654"> <div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td><a href="{{LINK}}">{{SIZE}}</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td><a href="{{LINK}}">{{SIZE}}</a></td></tr></tbody> </table> 

# Language Name, [Other information] N bytes


where N is the size of your submission. Other information may include flags set and if you've improved your score (usually a struck out number like <s>M</s>). N should be the right-most number in this heading, and everything before the first , is the name of the language you've used. The language name and the word bytes may be links.

For example:

# [><>](http://esolangs.org/wiki/Fish), <s>162</s> 121 [bytes](https://esolangs.org/wiki/Fish#Instructions)

• It will modify this string. Are you intentionally requiring pass-by-reference and modify in-place? And then return a copy or reference to that modified string? If so, languages like asm or C would need to accept an explicit-length string (pointer + length) where the length is either the current string length (with the buffer being twice that size), or it's the total size and you need to duplicate the low half. Thus you need to start from the end and work backwards, or allocate scratch space and then copy back. But there are answers in C and 8086 asm that totally violate all that. – Peter Cordes Aug 3 '19 at 1:49
• @PeterCordes I do not care if it modifies the same object or builds a new one. – AJFaraday Aug 3 '19 at 5:08
• I'd suggest wording it as "modify (or produce a modified copy) of the string" to explicitly allow answers that do or don't modify in-place. Simplifying the wording to "return a string that's twice as long, with each character repeated" would be nice but then it's not clear if void foo(char *c, size_t len) is legal that takes one input/output buffer and a length, and doesn't have any return value, just a side-effect on the object it has a pointer to. – Peter Cordes Aug 3 '19 at 5:16
• Can the string be empty? – cschultz2048 Aug 6 '19 at 19:58
• @cschultz2048 it says the string will only contain printable ascii characters, so that implies that they’ll always be populated. I’d expect that any code for this challenge would leave an empty string empty... anyway, I don’t think it’s a test case that I’d use for this. – AJFaraday Aug 6 '19 at 22:36

# Malbolge, 20775 and 2334 bytes

Probably I didn't beat anyone with it, but it was incredibly fun to make.

bP&A@?>=<;:9876543210/.-,+*)('&%$T"!~}|;]yxwvutslUSRQ.yx+i)J9edFb4_^]\yxwRQ)(TSRQ]m!G0KJIyxFvDa%_@?"=<5:98765.-2+*/.-,+*)('&%$#"!~}|utyrqvutsrqjonmPkjihgfedc\DDYAA\>>Y;;V886L5322G//D,,G))>&&A##!7~5:{y7xvuu,10/.-,+*)('&%$#"yb}|{zyxwvutmVqSohmOOjihafeHcEaYAA\[ZYRW:U7SLKP3NMLK-I,GFED&%%@?>=6;|9y70/4u210/o-n+k)"!gg$#"!x}{zyxZvYtsrqSoRmlkjLhKfedcEaD_^]\>Z=XWVU7S6QPON0LKDI,GFEDCBA#?"=};438y6543s1r/o-&%*k('&%e#d!~}|^z]xwvuWsVqponPlOjihgIeHcbaB^A\[ZY;W:UTSR4PI2MLKJ,,AFE(&B;:?"~<}{zz165v3s+*/pn,mk)jh&ge#db~a_{^\xwvoXsrqpRnmfkjMKg_GG\aDB^A?[><X;9U86R53ONM0KJC,+FEDC&A@?!!6||3876w4-tr*/.-&+*)('&%$e"!~}|utyxwvutWlkponmlOjchgedGba_XW\?ZYRQVOT7RQPINML/JIHAFEDC&A@?>!<;{98yw5.-ss*/pn,+lj(!~ff{"ca}^z][wZXtWUqTRnQOkNLhgfIdcFaZ_^A\[Z<XW:U8SRQPOHML/JIHG*ED=%%:?>=~;:{876w43210/(-,+*)('h%$d"ca}|_z\rqYYnsVTpoRPledLLafIGcbEBXW??TY<:V97S64P31M0.J-+G*(DCB%@?"=<;|98765.3210p.-n+$)i'h%${"!~}|{zyxwvuXVlkpSQmlOjLbafIGcbEBXW??TY<:V97S64P31M0.J-+G*(D'%A@?"=<}:98y6543,1r/.o,+*)j'&%eez!~a|^tsx[YutWUqjinQOkjMhJ_dGEaDB^A?[><X;9U86R53O20LKJ-HG*ED'BA@?>7~;:{y7x5.3210q.-n+*)jh&%$#"c~}{z]rwvutWrkpohmPkjihafI^cba_^A\[>YXW:UTS5QP3NM0KJ-HGF?D'BA:?>=~;:z8765v32s0/.-nl$#(ig%fd"ca}|_]yrqvYWsVTpSQmPNjMKgJHdGEa_B]\?ZY<WVUTMR5PO20LK.IHA))>CB%#?87}}49zx6wu3tr0qo-nl*ki'hf$ec!~}{^yxwvotsrUponQlkMihKIe^]EEZ_B@\?=Y<:V97S64P31M0.J-+GFE(C&A@?8=<;:{876w43s10qo-&%kk"'hf$ec!b|_]y\ZvYWsVTpSQmlkNiLgf_dcbaC^]\?ZY;WV97SLK33HM0.J-+G*(D'%A$">!};|z8yw543t1r/(-,+*)(i&%fd"!~}|_t]xwvutslqTonmPNdchKIeHFbaD_AWV[><X;9U86R53ON1L.DCH+)EDC&;@#>=<;|98x6wu32s0p(',mk)(i&f|{"ca}^z][wZXtWUqTRnmPNjcbJJ_dcbEDYB@@?ZSX;VUTS6QPO11F..CHGF)(C<A$?>=<}:98xx/uu,10/po,+$kiih%$#z!b}|{z]xwvXXmUUjonmPOjihafIdcbaD_^]??T<<QVUT76QPONG0..-HGFED=B%@?>=~|438yw5vt21r/o'&+lj(ig%fd"ca}^z][wZXtWUqpoRQlkjihafIdcbaDBXW\?=YX;9UNMR53O20//DIH+)E>=B%#?"~<}{9zx6wu3tr0/pn,%$jj!&%$ed!~}|{zs\ZZYtsrqponglOjiLgfHdGEaDB^]@[=SRW:8T75Q42N1/K.,HG*E'=<A$"!!6;:{8x0/4us1rp.-,ml)('&%$#z!b}|{zy[qvutsUkTinmlejchKIIH]bE_^A\[=Y<:VU86RKJO20LK.,HA@E(&BA$">76;|z8yw5vt2sq/pn,mkjj!&%$edy~a|{z][qpuXVUUjonQOkdchKIHH]baD_AWV[><;;PUT7R4JIN1/K.,H+)E(&B%#?"~<}{zz1654ut1*qoon+*#(i&%$e"!~uzy\ZvonsVTSShmlOjLbafIGFF[_B@\UTY<:99NSR53OHGL/-I,*F)'C&$@#!=~|:{y765vu21*/pnnm*)(!h%$#d!~}__tyx[vXnmrUSoRPlkNiKaeHFbECBBW\[>Y;QPU86R53O20L/-I,*F)'&&;@?>!~;:92ywwv3210).o,+*k('g%fd"ca}^z][wZXtsVqSihmPNjiLgI_^cFD_B]?UTY<:VUT76QPONGL/--,GFEDC<%@?>!<;:98yw5.-2sq/.o,l$#(ig%fd"!b|uty\ZYYnsrUpRhglOMiLJfIGcFDCA]@>==RWVU87RQPONG0..-HGFEDC<A$?>!<;:zz1ww.321rq.-,+*)"'hffe"!~}|{zyrwZutsVqpoQQfkjMhJ_dGEaDBAAV[Z=;WPOT75Q4211FKJ-+G@?D'%A$">!};|z8yw5vt210qp-,+*)('&}$e"!~}|^tyxwvXnWlqpohmfkNLLKIdcbE_^]\?=YRQV97S64P31ML/J,BAF)'CB%@"87<}{9zx6wu3tr0qo-nlkk"'&%fezcaa{ty\wvuXsrTpSQmPNjiLJf_^cFD_B@\UTY<:V97S64P31M0.J-+GFE('B;@#!!~;:3z765v321qq(-,m*j"!&ge#db~}{]srwZXtWUTTinmPkMcbgJHdGEaDB^A?[><X;988MRQP32MLE.,,+FED=B%@?>!}549zxww.32sq/(',mk)(i&f|{"ca}^z][wZXtWUqTRnQOkNLhgfIHcbaZ_B@@?ZYXWP9TSR5PON00EJI,*F?>C&$##8=<}:z216wu32s0p(',mk)jh&ge#db~a_{^\x[YuXVUUjonmPOjihgIdcFaBAAV[Z=;WPOT75Q42N1/K.,HGF)(CBA@?8=~;:9z76v43tr0)(-nl*)j'g}|#db~a_^^sxwZXtmlqTRnQOkNLhKIeHFbEC_^]@?ZYXWVUN7554ONMLKJIBG*EDC&$:9!!6;:9zy6543210/(o,+*)(h~%$#"bxav{tyxwpuXVVUjoRmlkNihJfIGcFDCA]@>ZY<:VONS64PO2M/EDI,*F)'C&$@#!=~|:98yx/4u21r/.-mm$)(i&f|{"ca}^z][wZXtWUqTRnQOkjMhJ_dGEaDB^A?>>SXWV98SL5332MLEJ-HGF)DC%A@#>~65:{y76w4t,+0qo-,m*j"!&ge#"c~vuz][wZXtWUqTRnQOkNLhgfIHcb[C^]\[>YXW99N66KPON10KJIB+))(CBA@9>!<;:9z765uu,10q.n&%*ki'&g$dzy~a_{^\x[YuXVrUSoRPlOMiLJfIGFF[_^A@[ZYXQV9TSRQ4ON0L/-,,AFE(C%;:?"~<;|z8105vtss*/.o,l$#(ig%fd"ca}^z][wZXtWUTTinmlONihgfe^GEED_^]\[ZSX;VUT7RQP22GLK.I+A@E(&%%:?>!};438yw5vtss*/.om+$#(ig%$ec!xw|_]y\ZvYWsVTpSQmPNMMbgfeHGba_^]V[>YX;VUTSR53OHGL/-,,AFE(C%;:?"~<;|9y105vt2sq/pn,mk)jh&ge#db~a_{zy\[vutsrqpiRmlkjiKafedcE[DY^]\UZSX;VUT7RQ322GLK.I+A@E(&BA$">76;|z8yw5vt2sq/pn,mk)jh&geddy~}|_^s\ZZYtmrUponQlkMihKIe^]bEC_^A\>TSX;988MRQ4O1GFK.,HG*E'=<A$">!};|z8yw5vt2sqpp',+*kj'~%f#"!b}|^z][wvYWslkpSQPPejiLJf_^cFD_B]?UTY<:VU8S5KJO20L/-I,*F)'CB%#?87<;:{z76/vtts0/.',m*)(i&%$ddy~}{]srwZXtWUqpSnPfejMKgJHGG\aC^@VUZ=;W:8T75Q42N1/K.,++@EDC&%@?>7<}{{z7654-t10/p-,l*ki'&g$dzy~a_{^\x[YuXVrUSoRPlOMiLJII^cbaDC^]\[T=;;:UTSRQJO2MLK.IHGFE(&B;:?"~<}{98y6v.-2sq/pn,mk)jh&ge#db~a_{^\xwvYXsrqpohmPNNMhgfedc\E_^A\[=YX;9UNMR53O20L/-I,*F)'C&$@#!=~|:{yxx/432sr/.-,+*#jhhg$#"!~}|uz]xwvYtsUqpSnPfejMKgJHdcFaCYX]@>Z=;WV9T6LKP31M0.J-+GF)D&<;@?>!~;:98765.3trrq.-,+*)('~g$#"c~}|{z][wpotWUqTRnQOkNLhgJeG]\aDB^]@[=SRW:8T75Q42N1/..CHGF)(CBA@?>=<5|98765u-210/o'n%*)(!&}$eccbw|_zyx[vuWsVTSShmlOMibafIGFF[_B]?UTY<:V97S6433HML/-IBAF)'C&$@#!=~|:{y765vu,1r/.-nl$#(igff{"!b}_uty\ZYYnsrUSohglOMiLJfIGcFDCA]@>Z=;W:877LQPO21LE.,,+FE>C&A@?"=<|{{276wu3,+0qonn%*)j'g}|#db~a_{^\x[YuXVrUSoRPlOMihgJIdc\aD_^]@[Z<XW:U7MLQ42N1/K.,H+)E(&B%#?"~<}{9zxww.321rq.-,%ljji&%$#z!b}|{^yxwYYnsrUSohglOMiLJfeHcE[Z_B@\?=Y<:V97S64P31M0.J-+**?DCB%$?>=<5:{876w432rr).-n+k#"'hf$#d!awv{^\xwZXtmlqTRnQOkNLhKIeHFbEC_B@\?=YXW:9TSRQPI200/JIHGFE>C&A@#!76||3876wv3210/.',m*)j'&%eez!~a_{tsx[YXXmrqTRngfkNLhgJeG]\aDB^A?[><;;PUTS65PONMLKJC,**)DCBA@?>=6;|987x54t21r/o'&+lj(ig%fd"cauzy\wYonsVTpSQmPNjMKgfIGc\[_^A@[ZYXWVUTMR5PONML.DIHGF(>'<A@9>=6;|98y654tt+0/p-m%$)('hg|eccb}v{^yxwZutVrqToQgfkNLhgJeG]\aDBAAV[Z=X:POT7544INM0.JCBG*(D'%A$">!};|z8yw543ts0).o,+*)j'&%eezbbw|{z]\wvoXVVUponglOjihgJedcEEZ_^A?[TSX;9UT7R4JIN1/K.,H+)E(&B%#?"~<}{9zx6wutt+0/.on+*)"'h%$#"c~}|^^sxwZuWmlqTRnQOkjMhJ_dGEaDB^A?[><X;9U86R53ON1L.DCHGF)(CBA@9"~~}:9876/4u210/p-,l*kihh}$#db~wv{^\[[putWUqjinQOkjMhJ_dGEaDB^A?[><X;9U8655JONM0/JIHGF?D'BA@?"=<;{{2xx/432sr/.-,+*)(!h%$#"!aw|{zy[qZotsrkpinQOONchKfedcFaB^A?[Z=X:POT7544INM0K-CBG*(D'%A$">!};|z8yw5vtss*/.-nm$)j'&%$e"!a}^]]rwvYWslkpSQmPNjMKgJHdGEaDB^A?[ZY<;VO8665POHM0KJ-HGFED'%A:9>!}||387x5u-,1rp.-n+k#"'hf$ec!b|_]y\ZvYWsVTpSQmlkNMhgeHFFE_^]V[>YXW:UTS55JON1L.DCH+)E(&BA$?!76;|z8yw54u2r*).om+lj('h%e{z!b|{z]\wvutmrUponQOediLJII^cbEC_XW\?=Y<:V97S64P31M0.J-+G*(D'%$$9>=<}|98765.ussr/.-,+*#(i&%e"!~u]]rwvuXWrqponmfkNihKfeGcFDCA]@>==RWV9T6LKP31M0.J-+G*(D'%A">=<}|9876543,s0/p-,lkk"'&ge#zy~a_{^\x[YutWUqjinQONNchgfIHcba_^]\UZ=XWVUT6LQPON0F/DIHG@E>C&A@#>=<||387x5u-,1rp.om+lj(ig%fd"ca}^zy\wYonsVTpSQmPNMMbgfeHG\ECCB]V[>YXW:UT6R53O20//DIH+)E>=B%#?>!<|438yw5vt21rp.'&+lj(ig%fd"ca}^zyx[ZunsVqpoRmlNjiLJf_^cFDCA]@>Z=;WV9T6LKP31ML/J,BAF)'CB%@"87<}{zz1654ut10)pnnm*)(!&g#"cawv{^\xwZuWmlqTRnQONNchgJeG]\aDB^]@[=SRW:8T75Q42N1/K.,H+)((=BA@#"=<;49z765v321qq(-,mk)"!&ge#"c~vuz][wZXWWlqpSQmfejMKgfIGc\[CA]@>Z=;W:8T75Q42NML/.IHGF?(&&%@?>=<5:{876w432rr).-n+k#"'hfec!~a|^tsx[YuXVUUjonQlNdchKIeHFbEC_B@\?=Y<:99NSRQ43NMLKJCH+))(CBA@?>7~;:9z76v43t1q)(-nl*ki'hfec!b|_]y\ZvYWsVTSShmlkNMhgfedc\ECCB]\[ZYXWPU8SRQ4ONMLK.,HA@E(&BA?!76;|z8yw5vt2sq/pn,mk)jh&ge#db~}|_^yxwvutslqTRRQlkjihgfe^GbaC^]?[Z=;WPOT75Q42N1/K.,H+)E(&B%#?"~<}{zz1654ut10/.-,+*#j'&%#cy~}|{]s\qvunsrkpSQQPejMhgfIdcEaC^@VUZ=;WV9T6LKP31ML/J,BAF)'C&@#!=~|:{y7xv4usrr).-,ml#(iggf#zc~}|_zy[wZXtsVTpihmPNjMKgfIdF\[CA]\?Z<RQV97S64P31M0.--BGFE('B;""!<;49z765v32r0qonn%*)jh&}|#dbaav{z]xZpotWUqTRnQONNchgJHd]\aDB^A?[><X;9U86RQP32MLEJ-++*EDC<%@?>!<;{9zx6wu3tr0qonn%*)j'g}|#db~}{]srwZXtsVqSihmPNMMbgfIGc\[CCX]\[>=XWVO8665PONMFK.IHG*ED&B%#?>!<|438yw54u2r*).omll#('hf{z!b|{^y[qpuXVrUSoRPlOMLLafedGFa_^W\?ZYX;VU7SR5P2HGL/-I,*F)'C&@#!=~|:{y7xv4usrr).-,ml)('&%|eccb}|{zyxqvYtsrUSihmPNjMKgfIdF\[CA]@>Z=;WV9T6LKP31M0.J-+G*(''<A@?"!<;:98705v321rp(',mk)jh&%fd"yx}^z][wZXtsVTpihmPNjMKgJHdGEaDBAAV[ZY<;VUTSRQPI200/JIHGFEDC<A?>=~|438yw54u2r*).om+lj(igff{"!b|uty\ZvYWsVTpSQmPNjMKgfeHGba_^]\[TY<WVUTS5KPONM/E.CHGF?D=B%@?>!<;{9zx6wu32s0p(',mk)(i&f|{"cauzy\wYonsVTpSQPPejiLJf_^cFDCA]@>Z=;W:8TSR54I200/JCH+FED'BA#?"~<}{98y6v.-2sq/pn,mk)(ig%|{"ca}^z][wZXtsVqSihmPNMMbgfeHGb[C^]\?ZY;WV97SLKP31M0.J-+G*(D'%A">!};|z8ywvv-210qp-,%ljji&%{"c~}|_zy[wvYtVlkpSQmlOjLbafIGcbEBXW\?=Y<:99NSR5P2HGL/-I,*F)'C&##8=<;|{876/4u210q.-,ll#('hf{z!b|{^\xqpuXVrUSonQlNdchKIedGEaZY^A?[><X;9U86R53O20//DIHG*)DCBA:#!!~;:98705v321r/.-mm)(i&f|{"ca}^zy\wYonsVTpoRmOediLJII^cbEBXW\?=YX;V8NMR53O20L/-I,*F)'&&;@?>!~;:98705v321r/.n,mk)jh&ge#"ca}vuz][wZXtsVTpihmPNjMKgJHdGEaC^@VUZ=;::OTSR54ONMLKJC,**)DCBA@?>7<}:98y65u3tr0qonn%*)j'g}|#db~a_{z]xZpotWUqTRnQOkNLhgJHd]\a_BA\[ZYXWVOT7RQP3NM/KJ-H*@?D'%A">!};|z8yw5vt2sq/pn,mkjj!&%ed!~}|{zyxqZutsrqSinmlkMcLafed]b[CAA@UZ=XWV9TS544INM0.JCBG*(DC&@98=~|:{yxx/43tr0)(-nl*ki'hfec!b|{^y[qputsVUjoRmlkNihJII^cbEBXW\?=<<QVU8S5KJO20LK.I+A@E(&BA?!76;|z87x5u-,1rp.om+ljii~%#dc~w^^]xwpuXsrqTonmOOdihKIe^]bEC_B@\[><XQPU86R5322GLK.,HA@E(&B%#?"~<}{9zx6wutt+0/.on+*#(i&%e"!a}^z][wZXtWUqTRnQOkNLhKIedcFE_^W@>>=XWVUNS6QPO2ML.JI,G)?>&&;@?>!~;:9816w43tr*).omll#('h%e{z!b|{^y[qpuXVrUSoRPlOMiLJfIGcFDCA]\[>=XWVUTM6QP3NML..CHG*(D=<A"!!6;:{y70/4us1rp.om+lj('&gf#"!~}|uz]xwZutVrqToQgfkNLhKIeHFbEC_B@\?=YX;V8NMR53O20L/-IHG*)DCBA@?>7~||{87654321*/p-,+l)('gg|#"ca}vuz][wZXWWlqpSnPfejMKgJHGG\aC^@VUZ=;WV9T6LKP31MLK.-HGFEDCBA:?"=<;:9y16543s+r).',+*#(i&%e"!~}|_]yrqvYWsVTSShmlOMibafIGFF[_B@\UTY<:V97S64P31M0.J-+G*(''<A@?"!6}:9z76vuu,10qo-&%*ki'hfec!b__tyx[vXnmrqpSRmfkNihgJedFbaD_AWV[><XW:U7MLQ4211FKJ-H*@?D'%A">!};|z8yw5vt2sq/.-nm*)"iggf#"!x}{z][qpuXVUUjonQlNdchKIedGbDZY^A?[><X;9U86R53O20L/-I,*FED'&A@?8=~;:{876vv-21rp.'&+ljii~%ec!xw|_]yx[vXnmrUSoRPlOMLLafedGFa_^W@>>=XWVUTMR5PO2ML.JI,G)?>C&@#!=~|:{y7xv4us1rp.om+ljii~%#dc~}|{zsx[YYXsrqpongPkjiLgfeGG\aC^@VUZ=;W:8T75Q4211FKJ-H*@?D'%A"!!6;:9zy654321*qoon+*)('&%|#d!~}{zyxwZXtmlqTRnQONNchgJHd]\aDBAAV[Z=;WPOT75QP31MFEJ-+G*(D'%A">!};|z876wv3210/.-&+l)(i&%eddy~}^zsrwZXtWUqTRnQONNchgJeG]\a_BA\[ZYXWVUN7RQPON0FKJIH*@)>CBA:?8=~||{27x543t10/oo&+*k(h~}ec!~a|^tsx[YuXVUUjonQlNdchKIedGbDZY^A?[><X;9U86R53O20LKJ-,AF)DC&:9>!}||387x5u-,1rp.-n+k#"'hfec!b|_]y\ZvYWsVTpSQmlkNMhaJedGbaBBW\[><XQPU8655JON1/KDCH+)E(&B%#?"~<;:{z76/4u21r/.n,+l)i!~%fd"ca}^z][wZXtWUqpSnPfejMKgJHdGEa_BA\[ZS<::9TSRQJO2MLK.IH*F)'C&@#!=~|:{y7xv43t1q)(-nl*ki'hf#d!awv{^\x[YutsVUponmfkNihgJedFbaD_AWV[><;;PUT75QJIN1/..CHG*(D=<A">=~|:327xv4us1rp.om+lj(ig%#dc~}|{zs\wvYtsUTTinmPNjcbgJHdGEaDB^A?>>SXW:U7MLQPO21LKJIHG@E(CBA"87}}4987xw43210/.'nllk('&%#"!x}{z][qpuXVUUjonQlNdchKIedGbDZY^A?[><X;9U86R53O20L/-I,*FED'&A@?>=<;:38y65432r*/.-,lk"'&%|#z!b}|_zyxZZotsVTpihmPNMMbgfIGc\[CA]\?Z<RQV97S64P3100EJIH+*?(&&%@9>!<;|98x65v3s+*/pn,mk)jh&ge#db~a_{^\x[YuXVUUjonmPOjchKIIHcb[D_^]@[Z<XW:8TMLQ42N1/KJ-H*@?D'%A@#>~65:{y7xv4us1rp.om+ljii~%#dc~}v_]]\wvunsVqpSnmONNchgJHd]\aDB^]@[=SRW:8T75Q42N1/KJ-H*@?D'%A">=~|:327xvuu,10/po,+*#(iggf#"!~}v{^yx[YonVVkponQPkjihgeHFFE_^]\[T=XWV9TS5Q42N1/K.,H+)ED'%A:9>!};|z87x5u-,1rp.om+lj(ig%e"bxw|_]\\qvutWVqponmleNihKfeGcFDCCX]\?Z<RQV97S64PO20LEDI,*F)'C&@#!=~|:{yxx/432sr/.-,+*)"'h%#d!~|{^y[qpuXVrqToQgfkNLhgJeG]\aDB^A?[><X;9U86R53O20//DIHG*)DCBA@?>=6}:9876v.3210p(o&+*#('~%fddcx}{z]xwYutWrTjinQOkjMhJ_dGEaC^@VUZ=;W:8T75Q42N1/K.,H+)((=BA@#"7<}:9z765uu,10qo-&%*kihh}#db~wv{^\xwZuWmlqTRnQOkNLKKedcFEYB@@?ZYRW:UTS6QP2NM0K-CBG*(DC&A#98=~|{{276wu3,+0qo-nl*ki'hfec!b|_]yxwZYtslqTonQlkjLLafeHcE[Z_^]@?ZYXQ:887RQPOHM0KJI,GF(D'%A">!};|z8yw54u2r*).om+lj(ig%fdccx}|_z\rqvYWVVkponQPkjihafIdcFDZY^A?>>SXW:U7MLQ42NM0K-CBG*(D'%A">!};|z8yw5vt2sq/.-nm*)('&}f#"c~}|^^sxwZXtmlqTRQQfkjMKg_dGEaDB^A?[><XWV98SRQPONGL/--,GFEDCBA:#>=<}:9y7xv4us1rp.om+*k(h~}ec!b|_]y\ZvuXVrkjonmPOjihgfed]FaC^]\>>SXW:U7MLQPO21LKJIHGFE>C&A@?>=}5:987w/v-210).',m*)(ig}|#db~a_{z][wpotWUqTRQQfkjMKg_dGEaDB^A?[><X;9U86RQP32G0..-HAF)DC&A@"!!6;:{8x0/4us1rp.-n+k#"'hfec!b|_]y\ZvuXsUkjoRPlOMLLafedGFaZ_B]\?ZYX::OTS64PIHM0.--BGF)'C<;@#!=<}:z216wu3tr0qonn%*)(ih%{dbba|{zsx[vutWrqSonQOkdchKIHH]baD_AWV[><X;988MRQ4O1GFK.,H+)E(&B%#?"~<}{zz1654ut10/(-n+*k('&ff{"!b}_utyxwZYtsrqjSQQPkjihgeHcbaD_^@??TYX;V8NMR53ON1L.DCH+)E(&BA?!76;|z87x5u-,1rp.om+lj(ig%e"bxw|{z]\wvutslqTonmlOjihJJ_GG\a_BA\[ZYXWVUN7RQPON0FKJIH*@)>CBA:?8=~||{27x5432s0/onn%*)jh&}|#db~}{]srwZXtWUqTRnQOkNLhKIeHFbEC_B@??TYXW:9NS6QPON1LK-IH+F(>=B%#?"~<;|z8105vt2sq/pn,mk)jh&ge#db~}|_^yr[vutsVqpoQQfNNchgfIHcbaZCAA@[ZYXQV9TSRQ42HGL/-I,*))>CB%@"87<}{zz165v3s+*/pn,mk)jh&ge#db~a_{^\[[putsVUponmfkNihgfIdcEaDBAAV[Z=;WPOT75Q42N1/K.,H+)E(&B%#?>=~}:9876/vtts0/.-,+)j'&ge{z!b__tyx[vXnmrUSonQlNdchKIeHFbEC_B@\?=Y<:V97S64PON10KJIHGF?D'BA?>=}}498yw5.-2sqpp',+lj(!~%fd"!b}_uty\ZvYWsVTSShmlkNMhgfedcb[D_^A\[Z<<Q99NSRQ43NMLKJIHG@E(CBA@?!7<;:9y1x/43,10).o,+l)('gg|ddy~}|_^s\ZZYtmrUponQlkjihKIe^]bEC_^A?[TSX;9U86RQ42NGFK.,H+)E(&B%#?"~<}{9zxww.321rq.',mkkj'&}fddc~}|uz]xwvYWmlTTinmlONihgeHFFE_^]V?ZYX;VU7S64PO2M/EDI,*F)'&&;@?"=}549zx6wu3tr0qo-nl*kihh}#"cb}|{zs\wvYtsrTTinmPkMcbgfeHGba_^W\?ZYX;VU766KPO2M/EDI,*))>CB%#?87<}{9zxww.32sq/(',mk)jh&ge#db~a_{^\xwvYXsrqpongPNNMhgfedcb[C^]@>TSX;988MRQ4O1GFK.,HG*E'=<A">!};|z8yw5vt2sq/pn,mk)('hg#"!~}|uz]xwZutsUUjonQOkdchKIHH]baDB^WV[><XW:U7MLQ42N1/K.,++@EDC&%@?>=<;:92y65432r*/.-,lk"'&%|#z!b_ty\wvuXsrqSShmlOMibafIGcbEC_XW\?=YX;V8NMR53O20L/-I,*F)'C&@#!=~|:98yx/4ussr/(o,+l)('g%ed!xa__^yxqvYtsrUSihPPejihKJed]bE_^A\[=Y<:V97SR5P2HGL/-IH+F(>=B%#?>!};438yw5vt2sq/pn,mkjj!&%ed!~}v_zy\wvuWWlqpSnPfejihKJedcb[C^]\?=SRW:8T7544INM0.JCBG*(DC&@98=~|:{y76w4t,+0qo-nl*ki'hfeez!~}_zyxwvoXVVUponmlkdiLgfeHcbD_B@\UTY<:VU8S5KJO20L/-I,*F)'C&@#!=~|:{y765vu210/.-&+l)(i&%#"ca}vu]]rwvuXWrqponmleNLLKfedcba_X]@[ZY<WV877LQP3N0FEJ-+G*(D'%A@#>~65:{y7xv43tr0)(-nl*ki'hfec!b|{z]\wvutsrqpinQlkjihJedcbDZCX]\[TYRW:UT7RQP22GLK.I+A@EDC&%:#!!~;49z765v32r0/pn,%)jh&ge#"ca}vuz][wZXtsVqSihmPNjMKgJHdGEDDY^]\?>YRW:UT75KJO20//DIH+F(>=B%#?>!<|438yw5vt2sq/pn,mk)jh&ge#db~}|_^yxqZutWrqpRRglkNLhaeHFEEZ_^A?[TSX;9U86R53O20LKJ-,GFE>C&A@?"=<;{{276wu3,+0qo-,mk)"!&ge#"c~vuz][wZXtWUqTRnQOkNLhKIeHFbaCB]\[ZS<::9TSRQPIN1LKJ-+A@((=BA@#"=<;:981xvvu210/.-,%*k('&g#cbbw|{^y[qpuXVrUSoRPlOMiLJfeHcE[Z_B@\[>Y;QPU86RQ4O1GFK.,HGF)(CBA@?>=6;|98y654tt+0/p-m%)jh&ge#db~a_{^\x[YuXVrqToQgfkNLhKIeHFEEZ_^]@?ZYXWVUTSL5PONML.DIHGF(>'<;@?>=6;|zzy05v321rp(',mk)jh&%fd"yx}^]]rwvYWslkpSQmPNMMbgfIdF\[CA]@>Z=;W:8T75QPO21FK.IH+)?>C&##8=<}:z216wu32s0p(',mk)jh&ge#db~a_{^\x[YuXVrqpSRmfOjiLgfeGG\aCA]VUZ=;::OTS64PIHM0.J-+G*(D'%A@?"!<;49z765v321qq(-,mk)"!&ge#"ca}vuz][wvYtVlkpSQPPejiLgI_^cFDCA]@>Z=;W:8T75Q42NML/.IHG@)''&A@?>7<}:98y65u32s0p(',mk)jh&ge#"c~vuz][wvYWslkpSQmPNjMKgJHdGEDDY^]\?>YXWVOT7RQ4ONM//DIH+F(>=B%#?"~<}{9zx6wu3tr0qo-,m*j"!&ge#db~a_^^sxwvYXsrqpohQOONihgfed]bE_^A\[=Y<:V97S64P31ML/J,BAF)'C&@?"=}549zx6wu3tr0/p-m%)jh&geddy~}|_^yxwvutmrUSSRmlkjihgIdcbE_A]@>ZY<:VONS64P31M0.JI,G)?>C&@#!=~|:{y765vu210/.-,%ljji&%#"!~}v{^yxwZXnmrUSRRglkNLhaeHFbEC_^A\>TSX;988MRQ42NGFK.,H+)E(&B%#?"~<;:{z76543210).o,+*)(h~%#"bxav{zyrwpuXsrUponPPeMMbgfeHG\ECCB]V[>YXW:8NMR53O20//DIH+F(>=B%#?"~<}{98y6v.-2sq/.o,l#(ig%#dc~w|_zyx[vutsrUSohglOMLLafeHFb[Z_B@\?=YX;9UNMR5322GLK.,HA@E(&B%#?"~<}{9zx6wu321rq.-&m*)jh&%#"cb}|{ty\wvuXVlkSShmlkNMhgfe^GEED_^]\[TY<WV9TSRQP31MFEJ-+**?DC&A#98=~|:9z7w/.3tr0qo-nl*ki'hfec!b|_]yxwZYtsrqpinQOONihgfed]FaCAW\[ZY<;VUTSRQJ3110KJIHGFE>C&A@#!76||3876wv3210/.-&+l)('h%#ccx}|_]yrqvYWsVTpoRmOediLJII^cbEBXW\?=Y<:99NSR53OHGL/-I,*F)'C&@#!~~5:98yx543210/.'n+*)('g}#"!awuzyxqvotWrqTonPOOdihKIe^]bEC_B@\?=Y<:V97S64P31M0.J-+GFE('<A?>=~;:9yy054u2r*).om+ljii~%ec!xw|_]\\qvuXVrkjoRPOOdihKfH^]bEC_^A\>TSX;9U86R53O20//DIHG*)D=&$$#>=6;|98y65u32s0p(',mk)jh&ge#db~a_{^\x[YuXVrUSRRglkjMLgf_dGbaD_^]??TYX;9UNMR5322GLK.,HA@E(&BA$?!76;|z8yw5vtss*/.-nm*)(!hffe"!~}v{^yxwZutsUUjonQOkdchKIedGEaZY^A?[Z=X:POT75Q42N1/K.,H+)E(&B%#?"~<;:{z7654-2s0/pn,+*)(ih%$#"!xa__^yxwvutmrUponQOedLLafedGFa_^]\UZ=XWV9TS5Q42NM0.JCBG*(DC&A#98=~|{{276w4t,+0qo-nl*ki'hf$ec!b|_]yxwZYtsrqpongPkjMhgfHH]baD_AWV[ZY<;VUTSRQPOHM0KJIHG)?DCBA#9"7<;49816w432s0/.nn%*)j'g}|#db~a_{z][wpotWUTTinmPNjcbgJHdGEaDB^A?[><X;988MRQP32G0..-HAF)DC&$:9>!}||387x5u-,1rp.-n+k#"'hf$ec!b|_]y\ZvYWsVTpSQmlkNMhafIdcFa_AAV[Z=;WPOT7544INM0.JCBG*(DC&A#98=~|:{y7xvuu,10/po,+$kiih%$#z!b}|{^yxwYYnsrUSohglOMihKIe^]bEC_^A\>TSX;9U86R53O20L/-I,*F)'C&$@?>!~;:927x54us10/.-nm*)('~geed!~}|{ty\wvuXVlkSShmlkNMhgfed]bE_B]\>ZY<W9ONS64PO2M/EDI,*F)'C&$@#!=~|:{y7xv4us10/po,+*)('~geed!~}|{zyrwZutWUkponmPOjihgfed]bE_B@VU==RWVU87RQPONMLKD-HGFED&<A@?>~6}498705.3trrq(-n+*)j'&feez!~a|^tsx[YuXVUUjonQlNdchKIedGbDZY^A?[Z=X:POT75Q42N1/K.,HGF)(=B%@?"=<;{{276wu3,+0qonn%*)jh&}|#db~}{]srwZXtWUqTRnmPkMcbgfeHGb[DBBA\[TY<WVU86LKP31ML/-IBAF)'CB%#?87<}{zz165vt2+*/pn,mk)jh&ge#db~a_^^sxwvYXsrkpSnmPNdchKIHH]baD_AWV[><XW:U7MLQ42N1/K.,H+)E(&B%#?"~<}{987xw432+r/.o,+*jj!&%fd"yx}^]]rwvYWslkpSQmPNjMKgJHdcbED_^]\UZ=XWV9TSR44INM0.JCBG*(DC&$@98=~|:9z7w/.3tr0qo-nl*ki'hf$ec!b|_]yxwZYtsrqpiRPPOjihgfe^cFa_B@VU==RWVU87RQPONMLE.,,+FEDCBA@?8=~;:{87w5vt2sq/pn,mk)jh&%f#cyx}^z][wZXtWUqTRnQOkNLhKIeHFEEZ_^]@?ZYXWVUTSLQ4ONMLK-CHGFE'=&;@?>7<5:{8765v32r0/p-m%$)jh&ge#"c~vuz][wvuXWlUSSRmfkNihKI_^FF[_^A@[TY<WVU8SR4P31M0.J-+GF)D&<;@#!=<}:z216wu3tr0qo-nl*)(ih%${d!~a|{]\\qvuXVrkjoRPlOMiLJfIGcFDCA]@>Z=;W:8TSR54ONMFK.IHG*ED&BA$?!76;|z8ywvv-21rp.'&+lj(ig%$e"bxw|_]y\ZvYWsVTpSQmlkNMhgfe^GEED_^]\[TY<WV9TS5QP3N0FEJ-+G*(D'%A$">!};|z8yw5vt2sqpp',+*kj'&%$#z!b}|_zyxZZotsVTpihmPNMMbgfIGc\[CA]\?Z<RQV97S64P3100EJIH+*EDCBA@9"=<}:98xx/43t1q)(-,+lk('&%$#"y~a|{z][qpuXVUUjonQOkdchKIeHFbEC_B@\?=Y<:V97S64P3100EJIH+*EDCBA@?>7~;:987w/4321q)p',+$)(!&g$#"!b}|^z][wvYWslkpSQmPNjMKgJHdGEaDB^A?>>SXWV98SRQJ3110KJIHAF)DCBA$?>=<;|z8105vt2sqpp',+lj(!~%fdccx}|_z\rqvYWsVTpSQmPNjMKgJHdGEDDY^]\?>YXWVOT7RQPO2ML.JI,G)?>C&$@#!=<}{9216wu3tr0qo-nl*ki'hf$ec!~}_zyxwvoXsrqpSnmlNNcKKedcFE_^]\[ZS<::9TSRQPONMFK.IHGF)'=<A$">!}||387x5u-,1rpoo&+*k(h~}$ec!b|_]y\ZvYWsVTpSQPPejihKJedcba_^W\?ZYXWV8NSRQP2H1FKJIBG@E(CBA@#>=};|zyy054us1*).om+lj(ig%fd"ca}^z][wvuXWlUpoRmlkjiLJf_^FF[_^A@[TY<WVU8SRQPO20LEDI,*F)'CB%@"87<}{9zx6wu3tr0qo-nl*ki'hf$#"cb}|u^\\[vutmrUpoRmlkMihKJedc\aD_^]@>TS;;PUTS65PONMF/--,GFEDC<A$?>=~;:z8yw5vt21r/o'&+lj('h%e{z!b|{^\xqpuXVrUSoRPlOMiLJII^cbaDC^]\[ZSX;VU8SRQ33HML/J,BAFED'&A@?>=<5|zzy6543210).o,+*k('g%fd"!b}_uty\ZvuXsUkjoRPlOMiLJfeHcE[Z_B@\?=Y<:V97S6433HMLK.-HGFEDCB;@#>=~|438ywvv-21r/o'&+lj('h%e{z!b|_]y\ZvYWsVTpSQmPNjMKgfeHGba_^]\[T=XWVUT6LQPON0F/DIHG@E>C&A@#>=<||387xv4-,1rpoo&+*ki'~}$ec!b|_]y\ZvutWVkpSnmlOjiKJJ_dcFDYX]@>Z=;WV97SLKP31M0.J-+G*(D'%A$">!}||3876wv3,sqqp-,%*k('h%$#c!~a{zsx[vutWUkjRRglkjMLgfe^GEED_^]\UZ=XWV9TS544INM0K-CBG*(D'%A$">=~;{327xv4us10qo-&%*ki'hf$ec!b|_]yxwZYtsrqjoRmlOjihJJ_dcFaCYX]@>Z=;W:8T75Q42N1/K.,HG*E'=<A$">!};|zyy0543ts0/.-,%ljji&%$#"!x}{zy\wvXtWUqTRnmPkMcbgJHdcFaCYX]@>ZY<W9ONS64P31M0.JI,*F?>CBA$#>=<;:927x54us+*/pnmm$)(i&f|{"ca}|_z\rqvYWsVTpSQmPNjMKgJHdGEaDB^]\?>YXWVUTSL5PO2MLK--BGF)'C<;@#!~~5:9zx6/.3tr0qo-nl*ki'&%fe"!~}|{zyrwZutsrqSinmlkMcLaf_dcb[C^]@[Z<X;9U86RQ42NGFK.,++@ED'B$:9>!};|z8yw5vt21r/o'&+lj(igff{"!~au^yx[YonVVkponQPkjcLJJIdcb[C^]@[ZY;;PUT75QJINML/.IHG@E(&&%@?>=<5:{87xv.-ss*/.-nm*)('&}$e"!b}|{]]rwvYWslkpSQmPNjiLgI_^cFD_B]?UTY<:VU86RKJO20LK.I+A@EDC&%@?>=<;4{yyx543210/(-n+*)j'&f$ec!~a|^tsx[YuXVrqToQgfkNLhgJeG]\aDB^A?[><X;988MRQP32MLKJIHG@E(CB%#?>=<;|3z765432+0q.-,m*)i'hf$ecbbw|{^\xqpuXVrqTRngfkNLhgJeG]\aDB^A?[><X;988MRQ42NGFKJI,AF)DCBA$?>=}}4zz1654ut+rppo,%*k('&%f#"baav{z][wpotWUqpSnPfejMKgJHdGEaDB^A?[><X;9U86R5322GLKJ-,G@E(CBA@#>=};:{8x0/4us1rp.-nl*#"'hf$ec!b|_]y\ZvYWsVTponQPkjcLgfedGbaBBW??TYXW:9TSRQJ3110KJIHG@E(CBA@#!76;|z8ywvv-21r/o'&+ljii~%$e"bxw|_]y\ZvYWsVTpSQmPNjMKJJ_dcbED_^]\[TY<WVUT7RQ3O20//DIH+)E>=B%#?"~<}{9zx6wu3tr0qo-,+lk('&%$#zc~}^zyxwvYnWrqponmfkNihgJedcEEZ_^A\>TSX;9UT7R4JIN1/KJ-H*@?D'%A@#>~65:{y76w4t,+0qonn%*)j'g}|ddy~}|_ty\wvutWrqpRRgOOdihgJI^GEED_X]@[ZYX;VU766KPO20LEDI,*FE(C%;:?"~<}{9zx6wu3tr0qo-nl*ki'hfeez!~}_zsx[vutsVqpRnmPkMcbgJHdGEaCA]VUZ=;W:8T75Q42N1/K.,H+)EDC&%@?8!<;:9z765uu,rr).-,ml)('&}fddc~}|{zsx[vutsVTjinQOkNLKKedGbDZY^A?>>SXW:U7MLQ42N1/K.,H+)E(&B%#?"~}}4987xw43210).o,+*)j'&f$ecbbw|{^\xqpuXVrUSoRPlOMiLJfIGcFD_^A@[ZYXWVO8SR53ONMLK.C,GFEDCB;@#>=<}:9y7xv43t1q)(-nlkk"'&ge#zy~a_{^\xwZXtmlqTRnQOkNLhKIeHFbEC_^]@UZ=XWVU8SRQ33H00EJIH+*?(&&%@9>!<;:9z76vuu,10qo-&%*ki'&g$dzy~a_{^\x[YuXVrUSoRPlOMiLJfIGFF[_^A@[TY<WVUT7RQ3ON1L.DCH+)E(&BA$">76;|z8yw5vt2sq/pn,mk)jh&%$ed!~w{zyx[vutVVkSShmlkNMhgfe^GEED_^]\[TY<WVUT75KJO20L/-,,AFE(C%;:?"~}}498y6v.-2sq/pn,mk)jh&ge#db~a_^^sxwvYXsrqpohmPkjihKfeGcFDCCX]\?=YRQV97S64P31M0.J-+G*(D'%A@?"!<;:9870w43tr0/.-,m$k('&%$#z!b}|{^yxZYYnsrUSohglOMLLafeHcE[Z_B@\?=Y<:V97S64P31M0.J-+GF)D&<;@#!~~5:98y05v3210q.-,ll#ii~%$#dcxa__^yrwZutsrUpoQPPejiLJf_^cFD_B]?UTY<:V97S64P31M0.J-+G*(D'%A$"!!6;:9zy6/4u210/p-,l*)j'g}|#db~a_{z][wpotWUqTRnQOkNLhKIeHFbEC_^]@?ZYR;VU86RQPON1F/JIHGFE>C&$@#>7<;:9z16w4321r/.n,+l)i!~%fd"cauzy\wYonsVTpSQmPNjMKgJHdGEaDBAAV[ZY<;P977LQ4221FK.IHGFE(CBA##8~~5:98yx/4u210qo-,+*)j!h%$#"!~w|_zyx[YonsVTpSQmPNMMbgfIdF\[CA]@>Z=;W:8TS6Q3IHMLK.C,GFEDCB%^#K=[}GziUUfSt,ON)ooK%kH5XgCBdSRQ=v_^9'[%Y#FlUTR.-P>j<htIHH]o4l1A?>Zwv*:8TSq5]3!kk/DgHTwd'b%;^L\[Z|49i1Tv4u2rr)(nKl76jE~%BdSbQOuz\[8ZuWs3UC0Rm->jvKtHG#EEB1@/z==vutOT&Ro]O[MYKJVyf*c(b%%ML]=Z;X3i1xTRRt+*pp-,%[jYhD%CAARa}+_MLr&Y$5V3DToAmPej*;ae$]#[Z_B{@[-fwv)UT&qKPmllj/hhBx)(>C&_M^]7Z}Xz8yTf.@Qba/;^,lkk"!WC1BS@-_uMyK7I5XVV200{mfNj*uK&HHpb[D}B@zy=,+QV9Tr6p]"Nk0|{VBeSRcPa$_9Kn};{zEhgT4u,>*);'nJIkiEW210SRQ=<*;(K&I$tslk}BA@?eMv;(JI$F""mB^|i>>=vW)9'7%$#2NlYX-,HA@)''%%_?8[~;{zzVCT.d,s*N_n,mk6"FDCCTA?>P+{z(xq655s22}S/gfkjLL:fIH#EE!YAjVzgYX:)(s65p]m[MY/hCB+)RcPa$#""=<|43ixwS4Q2P*p'KJHZ(!WVBec!-P=*ML9J6$GF3q10A-O>=c;(J%HGF!~_^0?.-w+QcUsp4JmH1//{gyxeRQ  Try it online! If the challenge didn't require halting at some point (eg. eof), it becomes pretty trivial, scoring 2334 bytes: bP&A@?>=<;:9876543210/.-,+*)('&%$T"!~}|;]yxwvutslUSRQ.yx+i)J9edFb4_^]\yxwRQ)(TSRQ]m!G0KJIyxFvDa%_@?"=<5:98765.-2+*/.-,+*)('&%$#"!~}|utyrqvutsrqjonmPkjihgfedc\DDYAA\>>Y;;V886L5322G//D,,G))>&&A##!7~5:{y7xvuu,10/.-,+*)('&%$#"yb}|{zyxwvutmVqSohmOOjihafeHcEaYAA\[ZYRW:U7SLKP3NMLK-I,GFED&%%@?>=6;|9y70/4u210/o-n+k)"!gg$#"!x}{zyxZvYtsrqSoRmlkjLhKfedcEaD_^]\>Z=XWVU7S6QPON0LKDI,GFEDCBA#?"=};438y6543s1r/o-&%*k('&%e#d!~}|^z]xwvuWsVqponPlOjihgIeHcbaB^A\[ZY;W:UTSR4PI2MLKJ,,AFE(&B;:?"~<}{zz165v3s+*/pn,mk)jh&ge#db~a_{^\xwvoXsrqpRnmfkjMKg_GG\aDB^A?[><X;9U86R53ONM0KJC,+FEDC&A@?!!6||3876w4-tr*/.-&+*)('&%$e"!~}|utyxwvutWlkponmlOjchgedGba_XW\?ZYRQVOT7RQPINML/JIHAFEDC&A@?>!<;{98yw5.-ss*/pn,+lj(!~ff{"ca}^z][wZXtWUqTRnQOkNLhgfIdcFaZ_^A\[Z<XW:U8SRQPOHML/JIHG*ED=%%:?>=~;:{876w43210/(-,+*)('h%$d"ca}|_z\rqYYnsVTpoRPledLLafIGcbEBXW??TY<:V97S64P31M0.J-+G*(DCB%@?"=<;|98765.3210p.-n+$)i'h%${"!~}|{zyxwvuXVlkpSQmlOjLbafIGcbEBXW??TY<:V97S64P31M0.J-+G*(D'%A@?"=<}:98y6543,1r/.o,+*)j'&%eez!~a|^tsx[YutWUqjinQOkjMhJ_dGEaDB^A?[><X;9U86R53O20LKJ-HG*ED'BA@?>7~;:{y7x5.3210q.-n+*)jh&%$#"c~}{z]rwvutWrkpohmPkjihafI^cba_^A\[>YXW:UTS5QP3NM0KJ-HGF?D'BA:?>=~;:z8765v32s0/.-nl$#(ig%fd"ca}|_]yrqvYWsVTpSQmPNjMKgJHdGEa_B]\?ZY<WVUTMR5PO20LK.IHA))>CB%#?87}}49zx6wu3tr0qo-nl*ki'hf$ec!~}{^yxwvotsrUponQlkMihKIe^]EEZ_B@\?=Y<:V97S64P31M0.J-+GFE(C&A@?8=<;:{876w43s10qo-&%kk"'hf$ec!b|_]y\ZvYWsVTpSQmlkNiLgf_dcbaC^]\?ZY;WV97SLK33HM0.J-+G*(D'%A$">!};|z8yw543t1r/(-,+*)(i&%fd"!~}|_t]xwvutslqTonmPkjLhKIeHFbEC_^A?[TSX;9UT7R4JIN1/K.,H+)E(&B%#?"~<}{987x/4u21rp(',mk)jh&%fd"yx}^z][wZXtWUTTinmPkMcbgJHGG\aC^@VUZ=;::OTS6Q3IHMLK.-B+FE(CBA##8~~5:98yx5.3t10q.-,+*ki'~}eez!~}_zyxqvYtsVqpoQQfkjMhJ_dGEaDBAAV[Z=;WPOT7544INM0K-CBG*(D'%A$">!};|z8yw5vt210qp-,+*#j'&g$#"!~a_{ts[[putsVUponmlkdMhgJedcEEZ_^A\>TSXWV98SRQPONMFK.IHGFE'=BA@?!7~5:9816/4u21r/.-,+lj(!~ff{"!~auz]xwvYtsUqTRnQONNchgJHd]\aDBAAV[Z=;WPOT7544INM0.JCBG*(''<A@#!=65:{yxx/43tr0)(-nlkk"'&ge#zy~}|_ty\wvYWmlqTRnmPkMcbgJHdcFaCYX]@>==RWV97SLKP31M0.J-+G*(D'%A$">!}||3876wv-t10/p-,l*)(i~%fddcx}{zy\wvXtWUqTRnQOkjMhJ_dGEDDY^]@[=SRW:877LQP3N0FEJ-+**?DC&A#98=~|{{276w4t,+0qonn%*)j'g}|#db~a_^^sxwvYXmrUponQlkMiLJfIGFF[_B@\UTY<:99NSR53OHGL/-,,AFE(&B;:?"~}}498yw5.-2sq/.-n%l)('&%$e@b>,+^^:87Z5n"!10/QP-kMv(gf%Gc543}|0{[-YXu)t87L5]Ol~jjiz++evbaaM^!=Z|kWWD05S3?O*)o'JJH)F!~f1TAy>,<^]:xJ6YXmlD0SAQPk+vKaJ%%F5ECCX|zz=xRQ


Try it online!

## Explanation

I've been asked to explain how the program works. I'll pick on the second one as it's way easier to explain it than the first one, but the way both of these work is really similar.

Let's start things off with decrypting the code. As someone down in the comments did it before I started working on the explanation, so I really advise you to check it out.

It doesn't make reading the program any easier one would say, but before we jump straight into the code, let's review basics of Malbolge.

The virtual machine is based on trits (trinary digits). Each machine word is ten trits wide, making it range from 0 to 2222222222t (= 59048d). Each memory position holds a machine word; the addresses are one machine word wide too. Both data and code share the same memory space.

There are three registers, each of which holds one machine word, initially 0: the code register C which is a pointer to the instruction that is about to be executed, the data register D used for data manipulation and the accumulator A also used by several instructions to manipulate data.

If the instruction to execute is not in the range 33-126, execution stops (the reference interpreter hangs in this case due to a bug). Otherwise, in order to determine the actual instruction to execute, the value pointed to by the C register is added to the C register itself and the result divided by 94, taking the remainder.

Here is a table of all possible instructions.

(C+[C])%94 Description Pseudocode Op
4 Set code pointer to the value pointed to by the current data pointer. C = [D] i
5 Output the character in A, modulo 256, to standard output. PRINT(A%256) <
23 Input a character from standard input and store it in A. A = INPUT /
39 Tritwise rotate right. A = [D] = ROTATE_RIGHT([D]) *
40 Set data pointer to the value pointed to by the current data pointer. D = [D] j
62 Tritwise "crazy" opertaion (see table below). A = [D] = CRAZY_OP(A, [D]) p
68 No operation. NOP o
81 Stop execution of the current program. STOP v

An image of the table can be found here

Now as the code is more understandable and it's actually possible to tell what is happening there, we can jump to the general idea of what is happening there.

Without any jumps, programming Malbolge is pretty much trivial. When the jumps are used though, there is decrypting task needed to be done before executing this code again. Everytime an instruction is executed, it's getting straight after encrypted, so it doesn't behave this way it did before.

To illustrate the workaround, let's look at normalized Malbolge cat program:

jpoo*pjoooop*ojoopoo*ojoooooppjoivvv
o/i<iviv
i<vvvvvvvvvvvvv
oji


So as you can see, on the second line we have / and < instructions dealing with I/O stuff. Utilizing the fact that C register is the instruction pointer, we can modify it using i instruction effectively creating a branch. Before the branch happens though, we need to decrypt instructions that just a few cycles away read and wrote output to and from TTY, combined with a jump. As there is no real way to store constants effectively, we need to embed many non-related instructions and use their value to compute other constants needed (utilizing the fact that Malbolge doesn't separate program and data)

Note: Parts of this answer were taken from Esolang wiki Malbolge page licensed under CC0 - link.

Possibly, you might want to check my other answer featuring Seed

• Woah! How did you make this? How do you program in Malbolge? (these are serious questions, by the way) – MilkyWay90 Jul 31 '19 at 18:45
• The day that someone writes, in Malbolge, a program that simply copies its input to it's output, is the day my hair spontaneously turns green. It's the day that elephants are purple and camels fly, and a cow can fit through a needle's eye. This seems to surpass that. – Adám Jul 31 '19 at 20:16
• @Adám, by a factor of 2, at least. – Shaggy Jul 31 '19 at 20:56
• First time hearing of Malbolge, but reading those docs all I can think of is: dang, this is an impressive answer. Is it possible to explain your code, or is it beyond explaining? ;) – Kevin Cruijssen Jul 31 '19 at 20:58
• +1 for "it becomes pretty trivial" – Arnauld Aug 1 '19 at 9:57

# brainfuck, 6 bytes

,[..,]


Try it online!

For once, a really competitive answer in brainfuck. :-) It just reads from the standard input (,), then loops while the character read is not zero ([), writing the character read twice (..) and finally reading a new character (,) before going back to the start of the loop (]).

+[,..]


Try it online!

• It had to happen sometime. – AJFaraday Jul 31 '19 at 20:28
• given brainfuck's 8 instructions, could be argued as 2.25 bytes? – speedstyle Aug 1 '19 at 3:12
• i don't understand bf much, why exactly could it be argued so? – mTvare Feb 2 at 10:37
• @mTvare you only need 3 bits to codify 8 different instructions. Hence 3 bits times 6 instructions my code has equals 18 bits, 2.25 bytes. – Charlie Feb 2 at 10:46

# Seed, 6013394238843865 3848 bytes

6 2686150228553910251590139707025615036563204497823963635717768129239771871066022173506550480510882628259267028226290577985584582829987099606110915656117177113555095646841841520224800333754793732176561479800611856258812006670385981709167679328497862503284773114717364645850756926464567857029605682209030697372493435852024478962025612141035167904456425050991742516020282696732660004824569723936406080643638019715421991278634074220365586727498681650073989748857985341022350116695714407041551609933358182688736747622670056818175549484918971558384479903673900409406866275258032866680967195428439907751537922194839977711106739550525066186108781580088916582559490041917035011328862266125578018990106393872489460844458091217404944194309597162769266585917996079831048944050703695352212652362891425728346891039020051565145149143668695374506752075410956647268061596926723805877631732070244839345640289062870487268706837056753112890753688530410829624567367052492603150395779619674714389456447573342335882718419424356991739625084740814435581409670174841935167450868967735568432921607395284483532735870628809137816139721467391760314297120583388009684979379888771619327969950939260709632318979448755571394507744993723267176377451465261335636767345281382139780890626858048062851714445255458413414708836044457819560626602471881203745677166851290194466534044374122781840150694963232713079984019097616802988558052961445185981197848860688635007868494303883280609553158126926303057368716954797175868772233997584782178460308584468311133667562020523260687787209651365697360075036255149184531675013585317549831215044187699501112214237282761452176427542227751840469500783022037518267131004723958694850409020207947539046371030202918430731468837057173037358435898981729128093138565524861044307737736772778645659866179416374742499528142506977571896833797572787168504674372995624869224644028121889021513694674680344413147327217671463636201883832593707987630471763158950694907193475270346642656464131212900528377257996057522592531063490286796434946290829640562975054259249630102041301990094261151488784971084438450904697283402436878185751193256803412549504172175692725366543545573099651580644132336272302990268431569623087644930350666119986012078396755208814027614451748455718916151950218835893255721018309717807161101069849247670957963270760531996609510342178009605381013854568528344071028665101709824510991652144229895556116304356971449229862349660751509158124118556805449346752918775201366378708970673708268140336609704879631200464020207189960217784283188350457711700181561855735903701439931161728546207607766764248018356183768557244013532032616392458312600465372655052565572757979232509950076857757257164261786986456779565081319671440867797151240096925123970490604003172676471092543424462070540303172987644037832692737644573481399927217285232015082118420498058022229538934735831710860610342762500071914715742707928060606416262583307855509796730058097681208691054336064995992598081644175617375019325706441005506100489323794725547244923204524790583484243672718647866979116309868261348266944902049457094368284266044502218232850494065571536043568039093446786891928597439310947971461490128765873399872574753055564655381318395939745692438909430171644009177696549501234738931977436030245682360974103741227416811200635596942701451202333113537361407624672328798572271366897755165037017879673502748767425083758652376018772700583221474572236166246539494675416322678094399996691972837962509574037110004298629947088012862552029152119412750923308070223808629424081676003170951500587426197322368913565250353332410276730344732325753114510178069340400741671217608323179698501977213623893949006870978691284571486316780769512681865771113879654002525802085758553029765815927252866913455193686303619992165147682671351400793392238437682055370542229871989802092530537034276944154276536658348210


Try it online!

• I've reached my daily vote limit, but I'll upvote this in 2 hours – MilkyWay90 Aug 1 '19 at 21:20
• I can't begin to understand this – AJFaraday Aug 2 '19 at 10:39
• Any chance you can explain how you got this one? Will such a description include the word 'trivial' at any point? – ouflak Aug 2 '19 at 13:38
• How did you reverse the Mersenne Twister? – MilkyWay90 Aug 3 '19 at 5:28
• Soon I expect you'll post a thread on golfing tips for Seed. – ouflak Sep 8 '19 at 8:52

# Jelly, 1 byte

Full program.

ż


Try it online!

• Oh, I was too slow. Was just about to post Ḥ – Adám Jul 31 '19 at 10:13
• FWIW I'd note that this is a full program since as a monadic Link it accepts a list of characters but returns a list of lists of characters - so it accepts a Python string as an argument and prints the result (as does my 1 byter, although this one may be augmented to work as a Link (żF), while mine cannot I believe) – Jonathan Allan Jul 31 '19 at 15:59
• (Nick Kennedy points out mine can become a Link with uneval, eval :)) – Jonathan Allan Jul 31 '19 at 16:43
• @JonathanAllan Pfffft, uneval-eval :))) – Mr. Xcoder Jul 31 '19 at 16:48
• @Jakuje Jelly has its own codepage, so each of the 256 characters it contains is encoded as 1 byte. – Mr. Xcoder Aug 1 '19 at 7:46

# Shakespeare Programming Language, 139129109 106 bytes

-3 bytes thanks to Jo King

N.Ajax,.Page,.Act I:.Scene I:.[Exeunt][Enter Ajax and Page]Ajax:Open mind.Speak thy.Speak thy.Let usAct I.


Try it online!

Spews warnings and terminates with an error. Deal with it.

• @Jo King woah, this is a really clever use of [Exeunt]! – NieDzejkob Jul 31 '19 at 15:10

(>>=(<$"dd"))  Try it online! or legibly: \xs -> concatMap (\x -> map (const x) ['d','d']) xs  Explanation: Lists are a Monad in Haskell, and using the bind operator >>= is a concatMap, executing a function that takes an element and returns a list on each element of the list and then concatenating the resulting lists into one big list. Now we just have to build a function that, given a value, returns a list of that value twice, which is accomplished by (<$"dd"), which can be read as "Take the list ['d','d'] and replace every element with the argument of this function. The "dd" could be any expression that results in a list of exactly two elements, but this is the shortest I could come up with.

• using <$ was something I never would've thought of – univalence Aug 4 '19 at 19:09 • @MegaMan Credit goes to Laikoni, who gave me that hint in another codegolf challenge a year ago codegolf.stackexchange.com/questions/6281/… – Sacchan Aug 5 '19 at 7:52 # 05AB1E, 2 bytes ø˜ or øS (both 05AB1E versions) ζ˜ or ζS (new 05AB1E version only) €D or €Â (new 05AB1E version only) .ι (new 05AB1E version only) ºS (new 05AB1E version only) ·S or xS (legacy 05AB1E version only) +S (legacy 05AB1E version only)  Ok, I give up. I'm unable to find a 1-byter to solve this. Loads of 2-byters, though.. I/O as a list of characters. Explanation: ø # Zip/transpose the (implicit) input-list with itself # i.e. ["a","b","c"] → [["a","a"],["b","b"],["c","c"]] ˜ # Deep flatten it # OR S # Convert it to a flattened list of characters # (which will be output implicitly as result)  The only program which works the same in both versions of 05AB1E. :) ζ # Zip/transpose the (implicit) input-list with the (implicit) input-list # i.e. ["a","b","c"] → [["a","a"],["b","b"],["c","c"]] ˜ # Deep flatten it # OR S # Convert it to a flattened list of characters # (which will be output implicitly as result)  This version basically works the same as the one above for the new version. In the old version you would need an explicit pair ‚ first, and then you could zip/transpose that. Just ζ on a 1D list will be a no-op in the legacy version of 05AB1E. € # For each character in the (implicit) input-list, # keeping all values on the stack into the resulting list: D # Duplicate it # OR Â # Bifurcate it (short for duplicate & reverse copy) # (which will be output implicitly as result)  In the new version of 05AB1E, it keeps all values on the stack into the resulting list when doing a map. Whereas with the legacy version of 05AB1E it would only keep the top value. Which is why these only work in the new version. .ι # Interleave the (implicit) input-list with the (implicit) input-list # (which will be output implicitly as result)  This builtin wasn't there yet in the legacy version of 05AB1E. º # Mirror each value in the (implicit) input-list # i.e. ["a","b","c"] → ["aa","bb","cc"] S # Convert it to a flattened list of characters # (which will be output implicitly as result)  In the legacy version of 05AB1E, the horizontal mirror builtin would be ∞ instead of º. However, ∞S doesn't work in the legacy version, because it would implicitly convert the list to a newline-delimited string before mirroring it completely (Try it here), after which the S would also include these newlines. · # Double each character # OR x # Double each character (without popping) # i.e. ["a","b","c"] → ["aa","bb","cc"] S # Convert it to a flattened list of characters # (which will be output implicitly as result)  Double is short for 2*. In the new version of 05AB1E, build in Elixir, this only works on numeric values. The legacy version of 05AB1E was built in Python however, so 2* works similar and repeats the character. + # Append all characters in the (implicit) input-list at the same indices # with the characters of the (implicit) input-list # i.e. ["a","b","c"] → ["aa","bb","cc"] S # Convert it to a flattened list of characters # (which will be output implicitly as result)  Again, because the legacy version of 05AB1E was built in Python, "a"+"a" results in "aa", whereas the + cannot be used to append strings in the new version. (PS: There is an append for strings which works in both version, which is «, but when giving two list arguments it will concatenate them together instead of merging each string at the same indices like the program above (Try it here).) • There's also ζ˜ for modern 05AB1E. – Grimmy Jul 31 '19 at 11:57 • @Grimy Didn't realize that doesn't work in the legacy version. I thought it was the same as ø˜, so I didn't bother adding it as well. I have added it (as well as øS/ζS/xS). – Kevin Cruijssen Jul 31 '19 at 12:12 • Alternatively, øJ, ζJ, ºJ, ·J, xJ, or +J. – Makonede Mar 10 at 21:36 # Pyramid Scheme, 229 218 213 bytes  ^ /l\ /oop\ ^-----^ -^ ^- /[\ /]\ ^---^---^ -^ / \ -^ ^-/out\ / \ -^-----/set\ -^ ^-----^ -^ - /+\ / \ ^---^ /arg\ /1\ - ^-----^ --- -^ - -^ / \ /arg\ -----^ /1\ ---  Try it online! This can definitely be shorter. Input is taken via command line arguments. This equates to basically: str = input() n = 0 while str[n]: print(str[n]*2) n += 1  With a few caveats, like the printing actually being handled in both the loop condition and the loop body. Alternative 215 byter:  ^ /l\ /oop\ ^-----^ /[\ -^ ^---^ / \ -^ ^-^ /set\ ^- -^-^-----^ -^ / \- /+\ ^-/out\ ^---^ -^----- /1\ - -^ --- -^ / \ /arg\ ^-----^ -^ - -^ / \ /arg\ -----^ /1\ ---  Try it online! ## Jelly, 1 byte ż  Try it online! Pardon my inexperience, I'm just getting started with Jelly. What I believe is happening is that we've defined a dyadic chain, which treats a single argument as both the left and right arguments. In this case, the chain consists of "zip; interleave x and y", interleaving the input string with itself. Someone already posted a 1-byte Jelly solution, so I hope it's not bad manners to post mine. • Welcome to the site! It perfectly fine to post an answer that ties an existing one especially if your answer has an explanation and the other does not. – Wheat Wizard Jul 31 '19 at 20:59 ## Python, 34 25 bytes lambda i:sum(zip(i,i),())  Try it online! Another one that returns a string instead of a list of characters: for i in input():print(i,end=i)  for i in input(): asking for the input, and doing a for loop for every char in the string. print(i,end=i) print the character, and then close the line with the same character.  Try it online! • lambda i:sum(zip(i,i),()) should do for -9. – Mr. Xcoder Jul 31 '19 at 10:16 • @Mr.Xcoder this returns a list of characters, rather than a string. The original can be improved by 3 bytes, though: for i in input():print(i,end=i) – primo Jul 31 '19 at 11:18 • lambda i:''.join(c*2 for c in i) 32 bytes but returns a string and not a list – Gábor Fekete Aug 1 '19 at 14:40 • Still works with 31 bytes :) lambda i:''.join(c*2for c in i) – movatica Aug 7 '19 at 21:15 # x86-16 machine code, IBM PC DOS, 1610 8 bytes Assembled byte xxd dump 00000000: b401 cd21 cd29 ebf8 ...!....  Unassembled listing: B4 01 MOV AH, 01H ; DOS read char from STDIN (AH=01) CD 21 INT 21H ; read char into AL (echoes input) CD 29 INT 29H ; write char in AL to console again EB F8 JMP -8 ; continue looping until break  Standalone PC DOS executable. Input from STDIN, output to console. Interactive console input: Input by pipe: ### Original 16 byte answer: Assembled byte xxd dump 00000000: d1ee ad8a c849 acb4 0ecd 10cd 10e2 f7c3 .....I..........  Unassembled listing: D1 EE SHR SI, 1 ; point SI to DOS PSP (080H) AD LODSW ; load input length into AL 48 DEC AX ; remove leading space from length counter 8A C8 MOV CL, AL ; move length to loop counter C_LOOP: AC LODSB ; load next char into AL B4 0E MOV AH, 0EH ; PC BIOS tty output function CD 10 INT 10H ; write char to console CD 10 INT 10H ; write char to console again E2 F7 LOOP C_LOOP ; continue looping through chars C3 RET ; exit to DOS  Standalone PC DOS executable. Input via command line, output to console. • Use XCHG AX, CX instead of MOV CL, AL to save a byte. – NieDzejkob Jul 31 '19 at 15:14 • @NieDzejkob, thanks! The only issue there is that LODSW is going to put the leading space (20H) from 81H into AH which will of course mess up the LOOP if that's in CH... Bummer. – 640KB Jul 31 '19 at 16:02 # Jelly, 1 byte Ḥ  A full program printing the result. Try it online! ### How? Uses a bug feature... Jelly's "double" atom, Ḥ is implemented with Python's * and it vectorises, while Jelly's lists of characters (its only "strings") are implemented as lists of Python strings which are usually just one character long - that is until we realise that in Python 'blah'*2='blahblah'... Ḥ - Main link: list of characters (as parsed from an argument as a Python string) - e.g. ['A','b','b','a'] Ḥ - double (vectorises) ['AA','bb','bb','aa'] - implicit, smashing print AAbbbbaa  • If you wanted to make a monadic link (rather than full program), you could use ḤṾV – Nick Kennedy Jul 31 '19 at 16:22 • Ah, I had no idea that'd work - nice! – Jonathan Allan Jul 31 '19 at 16:41 • Looks to me like three-bytes character: $ echo -n "Ḥ" | hexdump -C<newline>00000000 e1 b8 a4 |...| – Jakuje Aug 1 '19 at 7:40
• @Jakuje The code is one byte, af, Ḥ is just a visual representation of that byte, see Jelly's code-page (also linked in the header of the post). – Jonathan Allan Aug 1 '19 at 8:47

# sed, 10 8 bytes

s/./&&/g


Try it online!

Thanks to @manatwork for -2 bytes.

• Those lengthy escaping… Better s/./&&/g. – manatwork Jul 31 '19 at 12:52
• This replaces each/any character with the whole matched search pattern (&), in this case one character, twice via &&. – stephanmg Nov 11 '19 at 11:05

# PowerShell, 2923 21 bytes

-6 bytes thanks to Andrei Odegov
-2 bytes thanks to mazzy

-join($args|%{$_+$_})  Try it online! Takes input via splatting, essentially making it an array of chars • – Andrei Odegov Jul 31 '19 at 16:10 • what do you think about splatting? Try it online! – mazzy Jul 31 '19 at 16:10 # JavaScript (Node.js), 22 bytes Takes input as an array of characters. s=>s.flatMap(c=>[c,c])  Try it online! # JavaScript (ES6), 26 bytes Takes input as a string. s=>s.replace(/./gs,c=>c+c)  Try it online! Alternate version suggested by @PabloLozano: s=>s.replace(/./gs,'$&$&')  Try it online! Doing it the recursive way is also just as long: f=([c,...s])=>c?c+c+f(s):s  Try it online! • s=>s.replace(/./gs,c=>c+c) so that . also matches newlines – Nahuel Fouilleul Jul 31 '19 at 10:43 • @NahuelFouilleul Good catch. Thanks! – Arnauld Jul 31 '19 at 10:47 • @KevinCruijssen The join('') should take care of that. On second thought, that may be augmenting the output in a non-standard way so that may not be valid. – Oliver Jul 31 '19 at 12:25 • @Oliver I don't think it's valid. My 05AB1E would have a few 1 byte solutions in that case. Default I/O for a string is either, well.. a string, or a list/array/stream of characters / single-char strings. ["aa","bb","cc"] is a list of strings however, neither a string nor list of characters of itself. Adding a join or flatten it to a list of characters is valid, but would have to be counted towards the byte-count. – Kevin Cruijssen Jul 31 '19 at 12:29 • @KevinCruijssen Yeah, I agree :-) – Oliver Jul 31 '19 at 12:30 # Haskell, 8 bytes (<*"x2")  Try it online! Any two-character string works in place of "x2". # Brachylog, 2 bytes jᵐ  Try it online! ### Explanation  ᵐ Map on each char j Juxtapose the char to itself  # Pyth, 2 bytes .i  Try it online! .interleaves two copies of the input together. The input is implicit, so a 'full' version of this program would be .iQQ, where Q is the program's input. # Rust, 8346 45 bytes |x:&str|for c in x.chars(){print!("{}{0}",c)}  Try it online! I don't like this, but it's not cheating. # APL (dzaima/APL), 2 bytesSBCS Anonymous tacit prefix function. 2⌿  Try it online! ⌿ is "replicate" :-) # Befunge-98 (PyFunge), 6 bytes #@~:,,  Try it online! # C (gcc), 40 bytes f(s,t)char*s,*t;{while(*t++=*t++=*s++);}  Try it online! Assumes t is a buffer which is large enough to store the output. Probably not standard-conforming, but it works on TIO. # Java 8, 27 bytes s->s.replaceAll(".","$0$0")  Try it online. Old 31 bytes answer before the rules got changed: s->s.replaceAll("(?s).","$0$0")  NOTE: The suggestion of @EmbodimentOfIgnorance (\n|. instead of (?s). has been reverted, since it fails if the input contains \r. Thanks for reporting to @OlivierGrégoire. Try it online. Explanation: s-> // Method with String as both parameter and return-type s.replaceAll("(?s).","$0$0") // Regex-replace all matches with the replacement // And return the changed String as result  Regex explanation: (?s). // Match: (?s) // Enable DOTALL mode so newlines and carriage returns // are treated as literal . // A single character$0$0 // Replacement:$0                              //  All character(s) found in the match
\$0                            //  And again all character(s) found in the match

• (?s). can be replaced with \n|. – Gymhgy Jul 31 '19 at 14:36
• The \n|. version doesn't work correctly with input "\r". The (?s). version works correctly with \r, though. – Olivier Grégoire Aug 1 '19 at 11:35
• The requirement now says ASCI in range 32-126, so you can golf to 30 with @EmbodimentofIgnorance's shortcut. – Olivier Grégoire Aug 2 '19 at 7:47
• @OlivierGrégoire well if the range is 32-126 you can golf to 27 with just . – Grimmy Aug 2 '19 at 9:26
• Oops, sometimes I forget that \n is printable but not part of the ASCII printable range. – Olivier Grégoire Aug 2 '19 at 9:47

Here (:)<*>pure takes an argument and returns a list containing this argument twice. Then >>= maps this function over every entry of a the input list (which is a string in our case) and flattens the result (a list of lists) back to a list.

(>>=(:)<*>pure)


Try it online!

• Had the same first answer, love the use of the S combinator – cole Jul 31 '19 at 19:04
• @cole I only saw your shorter answer when I was about to submit this one - but I posted it anyway as I thought it was so elegant:) – flawr Aug 1 '19 at 7:47

# J, 6 3 bytes

-3 bytes thanks to Richard Donovan

2#]


Try it online!

# K (oK), 8 4 bytes

-4 bytes thanks to ngn!

{2}#


Try it online!

• Galen isn’t it just 2# for two bytes, as in... – Richard Donovan Jul 31 '19 at 18:52
• 2# ‘qwerty’ ===> ‘qqwweerrttyy’ – Richard Donovan Jul 31 '19 at 18:54
• @Richard Donovan yes. It works! – Galen Ivanov Jul 31 '19 at 18:55
• similarly in k: {2}# – ngn Aug 14 '19 at 9:10
• @ngn Hmm, I didn't know, apparently! Thank you! – Galen Ivanov Aug 14 '19 at 9:18

# MarioLANG, 23 20 17 bytes

>,
"+
.[
.<
!-
#=


Try it online!

Unlike brainfuck, MarioLANG returns -1 on EOF, so we must increment the value read before comparing it to zero, and then decrement before printing it. This is probably the shortest answer possible in MarioLANG.

# Scala, 37 bytes

def^(s:String)=s.flatMap(x=>Seq(x,x))


Try it online!

• Wow, a nice one with clever use of Seq ; I was about to make one with replace but this one is like 10b shorter – V. Courtois Aug 6 '19 at 6:43
• According to other code golf solutions in Java, Kotlin and C#, it seems to be accepted to provide just a Lambda without binding it to a name. Thus, like Kotlin's it one can make use of Scala's _, for example, _.flatMap(x=>Seq(x,x)), using only 22 chars. TIO. Of course, this is just a counting trick, which does still follow your nice approach. – cubic lettuce Aug 7 '19 at 21:09
• @cubic lettuce, I think those answers do not fully comply with the rules. Some time ago I got this useful recommendation codegolf.stackexchange.com/questions/174521/…. I would not bother with such "counting tricks"... unless it makes a scala solution shorter than any other. :) – Dr Y Wit Aug 12 '19 at 13:37
• ... the comment you linked links further to codegolf.stackexchange.com/questions/3885/… , where the accepted answer suggests to use Scala's _ where possible, however, without answering the question whether this is acceptable for the outermost function definition :) – cubic lettuce Aug 13 '19 at 14:39

# Labyrinth, 12 bytes

",)@
" (
..:


Try it online!

I have just discovered this language so this answer may be notably improved...

• Nicely done, my first thought was the same (only "," instead of "",), I've managed an eleven now - could there be a ten or better? – Jonathan Allan Jul 31 '19 at 17:53

# Stax, 2 bytes

c\


Run and debug it at staxlang.xyz!

Copy. Zip. Implicit print.

# R, 50 33 bytes

-17 bytes thanks to Giuseppe

function(a)gsub('(.)','\\1\\1',a)


Try it online!

• gsub('(.)','\\1\\1',a)? – Giuseppe Jul 31 '19 at 15:40
• I don't only check CG.SE two seconds after you post, I check all the time, haha, I should probably cut back a little. – Giuseppe Jul 31 '19 at 15:41
• @Giuseppe No idea how that works, but it does. – Robert S. Jul 31 '19 at 15:42
• Oh, well gsub does regular expression replacement -- replaces a single character match (.) in capture group 1 with two copies of capture group 1 \\1\\1, for all possible matches, as opposed to sub` which only does one. – Giuseppe Jul 31 '19 at 15:43
• @Giuseppe Should this be submitted as your own answer since it is a completely different solution than what I came up with? – Robert S. Jul 31 '19 at 15:45