# The Programming Language Quiz, Mark II - Cops

A repost of this challenge. Meta discussion. Sandbox post. Body of the question similar to the original

Robber's challenge

This cops and robbers is now (08/03/2018) closed to further competing cop entries, as robbers may no longer be competing to crack answers, but feel free to post new answers.

The Cops challenge was won by Dennis with his brilliant 6 byte Sesos answer

The Robbers challenge was won by totallyhuman, with an astounding 30 cracks!

## The Cops' Challenge

To compete as a cop:

1. Choose a programming language. A valid programming language is one which meets all three of these criteria:

2. Write a full program that outputs the numbers from 1 to 100, inclusive, in ascending order. You can output as decimal integers, as bytecode values (! to represent 33, for instance), or as unary digits (1111 for 4, e.g)1. If using unary, you should use any consistent character for digits, and a different, consistent character as a delimiter. If using integers, you should output with a constant non-digit delimiter between each number. You may also output with leading and trailing characters (such as []) but please be sensible (don't output a thousand bytes of rubbish either side of the count for instance). You must specify your output format in your answer.

You must not assume a REPL environment or existing boilerplate code. Flags may be used, but you must reveal what flags are used in your answer. The program must be in the form of one or more source files (to rule out quirky languages like Folders) and must fit into your answer in full (so it must not be longer than 65,536 characters) - this shouldn't be an issue for any serious submission.

If your code contains bytes outside of printable ASCII + newline, please include a hex dump to make sure your code is actually testable.

The program must terminate within 5 minutes on a typical desktop PC.

That's it. However, as with everything, there is a catch. You should aim to obfuscate your program as much as possible, as the Robbers' task is to guess the language you used. You should also aim to make sure that your program only works in the intended language (although this is likely to be less of a problem than the Foo cracks in the original challenge). The output format must be the same as your intended solution in order to constitute a valid crack.

Once 7 days have passed without anyone discovering any language where your program is a valid crack, you may reveal the language and mark it as safe. Please note, your submission can still be cracked until you reveal the language.

You must not under any circumstances edit the source code of your submission once posted (as this may invalidate a robber's active attempts at cracking your answer). So make sure that you golf it as well as you can (or dare) before posting. If you realise that your answer does not work after posting it, simply delete your answer and post a fixed version if you want to.

The shortest safe submission in bytes wins!

### The Stack Snippet

You can use this stack snippet to browse the answers more easily:

answersSafe=[];answersCracked=[];answersUncracked=[];answerPage=1;robberTodo=[];userNames={};robberMap={};robberStats={};robberTimes={};function template($element,data){var$clone=$element.clone().removeClass('template');var html=$clone.html();for(var key in data){html=html.replace('{'+key+'}',data[key])}$clone.html(html);$element.after($clone)}function hideEmpty(){$('tbody').each(function(){if($(this).find('tr:not(.template):has(td)').length==0){$(this).find('tr:not(.empty):has(th)').addClass('inactive');$(this).find('tr.empty').removeClass('inactive')}})}function formatError(obj,reason){template($('.warn.template'),{id:obj.cop_id,cop:obj.cop_user,reason:reason})}function showAnswers(category,selector,sorter){sorter(category);$('#'+selector).find('tr:not(.template):has(td)').remove();$.each(category,function(i,answer){template($('#'+selector+' .template'),answer)});$('code:has(br)').addClass('clickable').click(function(){$(this).toggleClass('full')});updateCountdowns()}function getAnswers(){$.ajax({url:"https://api.stackexchange.com/2.2/questions/155018/answers?pagesize=100&order=desc&sort=creation&site=codegolf&filter=!*LUzJZNOIUpZsWsZBLe&page="+(answerPage++),method:"get",dataType:"jsonp"}).then(function(data){$.each(data.items,function(i,answer){var obj={cop_id:answer.answer_id,cop_user:answer.owner.display_name,cop_time:answer.creation_date,safe_on:answer.creation_date+604800};var$e=$('<div/>').html(answer.body);var$headers=$e.find(':header');if($headers.length==0){return formatError(obj,"no header")}var header=$headers.first().html();var$code=$e.find('pre code');if($code.length==0){return formatError(obj,"no code")}obj.code=$code.first().html().replace(/\n/g,'<br/>');if(obj.code.endsWith('<br/>')){obj.code=obj.code.slice(0,-5)}var bm=/(\d+)\s+bytes/.exec(header);if(bm==null){return formatError(obj,"no bytecount")}obj.size=parseInt(bm[1]);if(obj.size==NaN){return formatError(obj,"bytecount is NaN: "+bm[1])}obj.language=header.slice(0,bm.index).trim();while(obj.language.charAt(obj.language.length-1)!=','&&obj.language.length!=0){obj.language=obj.language.slice(0,-1)}if(obj.language.length==0){return formatError(obj,"no/bad separator before bytecount")}obj.language=obj.language.slice(0,-1).trim();obj.language_text=$('<div/>').html(obj.language).text();var end=header.slice(bm.index+bm[0].length).trim();if(end.length==0){if(obj.language!=="???"){return formatError(obj,"not marked as safe nor cracked, but language is "+obj.language+" (expected ???)")}return answersUncracked.push(obj)}if(!end.startsWith(',')){return formatError(obj,"no/bad separator after bytecount")}end=end.slice(1).trim();if(end==='safe'){return answersSafe.push(obj)}var $end=$('<div/>').html(end);var end_text=$end.text();if(!end_text.startsWith('cracked')){return formatError(obj,"expected 'cracked' or 'safe', got '"+end_text+"'")}var expectedURL='https://codegolf.stackexchange.com/a/';var$links=$end.find('a');if($links.length==0){return formatError(obj,"no cracked link")}var robberURL=$links.first().attr('href');if(!robberURL.startsWith(expectedURL)){return formatError(obj,"link does not start with "+expectedURL+": "+robberURL)}obj.robber_id=parseInt(robberURL.slice(expectedURL.length));if(obj.robber_id==NaN){return formatError(obj,"robber_id is NaN")}robberTodo.push(obj.robber_id);answersCracked.push(obj)});if(data.has_more){getAnswers()}else{getRobbers()}})}function sortBySize(category){category.sort(function(a,b){return b.size-a.size})}function sortByTime(category){category.sort(function(a,b){return b.cop_time-a.cop_time})}function sortByLiveTime(category){category.sort(function(a,b){return b.cracked_after-a.cracked_after})}function sortByCop(category){category.sort(function(a,b){return b.cop_user.localeCompare(a.cop_user)})}function sortByRobber(category){category.sort(function(a,b){return b.robber_user.localeCompare(a.robber_user)})}function sortByLanguage(category){category.sort(function(a,b){return b.language_text.localeCompare(a.language_text)})}function getRobbers(){if(robberTodo.length==0){$.each(answersCracked,function(i,answer){answer.robber_user=userNames[robberMap[answer.robber_id]];answer.cracked_after=robberTimes[answer.robber_id]-answer.cop_time;answer.cracked_after_str=formatTime(answer.cracked_after)});showAnswers(answersUncracked,'uncracked',sortByTime);showAnswers(answersCracked,'cracked',sortByLiveTime);showAnswers(answersSafe,'safe',sortBySize);hideEmpty();var graphData=[];$.each(robberStats,function(k,v){graphData.push({name:decodeEntities(userNames[k]),value:v})});graphData.sort(function(a,b){if(a.value==b.value){return a.name.localeCompare(b.name)}else{return b.value-a.value}});var graphLabels=[];var graphValues=[];$.each(graphData,function(i,obj){graphLabels.push(obj.name);graphValues.push(obj.value)});var graphColors=[];for(var i=0;i<graphData.length;i+=1){graphColors.push(['#b58900','#cb4b16','#dc322f','#d33682','#6c71c4','#268bd2','#2aa198','#859900'][i%8])}$('#robber-stats').attr('width',600);$('#robber-stats').attr('height',24*graphData.length+66);$('#answer-stats').attr('width',600);$('#answer-stats').attr('height',400);Chart.defaults.global.defaultFontColor='#839496';new Chart(('#robber-stats'),{type:'horizontalBar',data:{labels:graphLabels,datasets:[{data:graphValues,backgroundColor:graphColors}]},options:{responsive:false,legend:false,tooltips:false,layout:{padding:{right:40}},title:{display:true,text:'Number of answers cracked per robber',fontSize:18},scales:{yAxes:[{gridLines:{display:false}}],xAxes:[{gridLines:{display:false},ticks:{beginAtZero:true}}]},plugins:{datalabels:{anchor:'end',align:'end'}}}});new Chart(('#answer-stats'),{type:'pie',data:{labels:['Uncracked','Cracked','Safe'],datasets:[{data:[answersUncracked.length,answersCracked.length,answersSafe.length],backgroundColor:['#2aa198','#dc322f','#859900'],borderColor:'#002b36'}]},options:{responsive:false,tooltips:{backgroundColor:'#073642',displayColors:false},title:{display:true,text:'Number of answers in each category',fontSize:18},plugins:{datalabels:false}}});updateCountdowns();setInterval(updateCountdowns,1000);$('#loading').hide()}else{$.ajax({url:"https://api.stackexchange.com/2.2/answers/"+robberTodo.slice(0,100).join(';')+"?site=codegolf&filter=!*RB.h_b*K*dQTllFUdy",method:"get",dataType:"jsonp"}).then(function(data){$.each(data.items,function(i,robber){robberTodo=robberTodo.filter(function(e){return e!==robber.answer_id});robberMap[robber.answer_id]=robber.owner.user_id;robberTimes[robber.answer_id]=robber.creation_date;userNames[robber.owner.user_id]=robber.owner.display_name;if(robber.owner.user_id in robberStats){robberStats[robber.owner.user_id]+=1}else{robberStats[robber.owner.user_id]=1}});getRobbers()})}}var decodeEntities=(function(){var element=document.createElement('div');function decodeHTMLEntities(str){if(str&&typeof str==='string'){str=str.replace(/<script[^>]*>([\S\s]*?)<\/script>/gmi,'');str=str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi,'');element.innerHTML=str;str=element.textContent;element.textContent=''}return str}return decodeHTMLEntities})();function formatTime(seconds){var arr=[];if(seconds>86400){arr.push(Math.floor(seconds/86400)+" days");seconds%=86400}if(seconds>3600){arr.push(Math.floor(seconds/3600)+" hours");seconds%=3600}if(seconds>60){arr.push(Math.floor(seconds/60)+" minutes");seconds%=60}if(seconds!=0){arr.push(seconds+" seconds")}return arr.join(', ').split('').reverse().join('').replace(',','dna ').split('').reverse().join('')}function updateCountdowns(){$('tr:not(.template) .countdown').each(function(){var target=$(this).attr('data-target');var now=Math.floor(+new Date()/1000);if(target-now<86400){$(this).addClass('urgent')}else{$(this).removeClass('urgent')}if(target<now){$(this).removeClass('countdown').text('Safe! (according to your computer\'s time)')}else{$(this).text(formatTime(target-now))}})}$('thead, #stats-header').click(function(){(this).toggleClass('hidden')});getAnswers(); *{margin:0;padding:0;font:12pt sans-serif;}html,body{background:#002b36;color:#839496;width:100%;height:100%;}body>:not(.i):not(#loading){margin:5px;}#loading{background:rgb(64,64,64,0.8);position:fixed;top:0;left:0;width:100%;height:100%;display:table;z-index:100;}#loading-wrapper{display:table-cell;vertical-align:middle;text-align:center;font-size:20pt;color:#ddd;}#fullpage-msg,.warn{padding:5px 5px 5px 5px;margin:10px 0px;}@media (min-width:800px){#fullpage-msg{display:none;}}a{color:#268bd2;}code{font-family:monospace;font-size:16px;background:#073642;padding:1px 5px;white-space:pre;position:relative;}.clickable{cursor:pointer;}code:not(.full){max-height:38px;overflow:hidden;}code.clickable:not(.full):before{content:'';background:linear-gradient(transparent 20px,rgba(7,54,66,0.8) 32px,#002b36);position:absolute;top:0;left:0;width:100%;height:100%;}td,th{padding:5px;vertical-align:top;white-space:nowrap;text-align:left;}thead th,#stats-header{font-size:20pt;margin:10px 0;user-select:none;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;cursor:pointer;}th{font-weight:bold;}path{fill:#839496;}thead:not(.hidden) .right-arrow,#stats-header:not(.hidden) .right-arrow,thead.hidden .down-arrow,#stats-header.hidden .down-arrow{visibility:hidden;}.hidden+tbody,.hidden+#stats,.template,.inactive{display:none;}small,code{display:block;}small,small a{font-size:8pt;}#stats-header{font-weight:bold;padding:6px;}.urgent{color:#dc322f;} <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.1/Chart.min.js"></script><script>!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("chart.js")):"function"==typeof define&&define.amd?define(["chart.js"],e):e(t.Chart)}(this,function(t){"use strict";var e=(t=t&&t.hasOwnProperty("default")?t.default:t).helpers,n={toTextLines:function(t){var n,a=[];for(t=[].concat(t);t.length;)"string"==typeof(n=t.pop())?a.unshift.apply(a,n.split("\n")):Array.isArray(n)?t.push.apply(t,n):e.isNullOrUndef(t)||a.unshift(""+n);return a},toFontString:function(t){return!t||e.isNullOrUndef(t.size)||e.isNullOrUndef(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family},textSize:function(t,e,n){var a,r=[].concat(e),i=r.length,o=t.font,l=0;for(t.font=n.string,a=0;a<i;++a)l=Math.max(t.measureText(r[a]).width,l);return t.font=o,{height:i*n.lineHeight,width:l}},parseFont:function(a){var r=t.defaults.global,i=e.valueOrDefault(a.size,r.defaultFontSize),o={family:e.valueOrDefault(a.family,r.defaultFontFamily),lineHeight:e.options.toLineHeight(a.lineHeight,i),size:i,style:e.valueOrDefault(a.style,r.defaultFontStyle),weight:e.valueOrDefault(a.weight,null),string:""};return o.string=n.toFontString(o),o},bound:function(t,e,n){return Math.max(t,Math.min(e,n))}};function a(t,e){var n=e.x,a=e.y;if(null===n)return{x:0,y:-1};if(null===a)return{x:1,y:0};var r=t.x-n,i=t.y-a,o=Math.sqrt(r*r+i*i);return{x:o?r/o:0,y:o?i/o:-1}}function r(t,e,n,a,r){switch(r){case"center":n=a=0;break;case"bottom":n=0,a=1;break;case"right":n=1,a=0;break;case"left":n=-1,a=0;break;case"top":n=0,a=-1;break;case"start":n=-n,a=-a;break;case"end":break;default:r*=Math.PI/180,n=Math.cos(r),a=Math.sin(r)}return{x:t,y:e,vx:n,vy:a}}var i={arc:function(t,e,n){var a,i=(t.startAngle+t.endAngle)/2,o=Math.cos(i),l=Math.sin(i),s=t.innerRadius,d=t.outerRadius;return a="start"===e?s:"end"===e?d:(s+d)/2,r(t.x+o*a,t.y+l*a,o,l,n)},point:function(t,e,n,i){var o=a(t,i),l=t.radius,s=0;return"start"===e?s=-l:"end"===e&&(s=l),r(t.x+o.x*s,t.y+o.y*s,o.x,o.y,n)},rect:function(t,e,n,i){var o=t.horizontal,l=Math.abs(t.base-(o?t.x:t.y)),s=o?Math.min(t.x,t.base):t.x,d=o?t.y:Math.min(t.y,t.base),u=a(t,i);return"center"===e?o?s+=l/2:d+=l/2:"start"!==e||o?"end"===e&&o&&(s+=l):d+=l,r(s,d,u.x,u.y,n)},fallback:function(t,e,n,i){var o=a(t,i);return r(t.x,t.y,o.x,o.y,n)}},o=t.helpers;var l=function(t,e){this._el=t,this._index=e,this._model=null};o.extend(l.prototype,{_modelize:function(e,a,r,l){var s,d=this._index,u=o.options.resolve,f=n.parseFont(u([r.font,{}],l,d));return{align:u([r.align,"center"],l,d),anchor:u([r.anchor,"center"],l,d),backgroundColor:u([r.backgroundColor,null],l,d),borderColor:u([r.borderColor,null],l,d),borderRadius:u([r.borderRadius,0],l,d),borderWidth:u([r.borderWidth,0],l,d),color:u([r.color,t.defaults.global.defaultFontColor],l,d),font:f,lines:a,offset:u([r.offset,0],l,d),opacity:u([r.opacity,1],l,d),origin:function(t){var e=t._model.horizontal,n=t._scale||e&&t._xScale||t._yScale;if(!n)return null;if(void 0!==n.xCenter&&void 0!==n.yCenter)return{x:n.xCenter,y:n.yCenter};var a=n.getBasePixel();return e?{x:a,y:null}:{x:null,y:a}}(this._el),padding:o.options.toPadding(u([r.padding,0],l,d)),positioner:(s=this._el,s instanceof t.elements.Arc?i.arc:s instanceof t.elements.Point?i.point:s instanceof t.elements.Rectangle?i.rect:i.fallback),rotation:u([r.rotation,0],l,d)*(Math.PI/180),size:n.textSize(e,a,f),textAlign:u([r.textAlign,"start"],l,d)}},update:function(t,e,a){var r,i,l,s=null,d=this._index;o.options.resolve([e.display,!0],a,d)&&(r=a.dataset.data[d],i=o.valueOrDefault(o.callback(e.formatter,[r,a]),r),s=(l=o.isNullOrUndef(i)?[]:n.toTextLines(i)).length?this._modelize(t,l,e,a):null),this._model=s},draw:function(t){var e,a,r,i,l,s,d,u,f,h,c,y,g,x,b=this._model;b&&b.opacity&&(r=b.size,i=b.padding,l=r.height,s=r.width,u=-l/2,e={frame:{x:(d=-s/2)-i.left,y:u-i.top,w:s+i.width,h:l+i.height},text:{x:d,y:u,w:s,h:l}},a=function(t,e,n){var a=e.positioner(t._view,e.anchor,e.align,e.origin),r=a.vx,i=a.vy;if(!r&&!i)return{x:a.x,y:a.y};var o=e.borderWidth||0,l=n.w+2*o,s=n.h+2*o,d=e.rotation,u=Math.abs(l/2*Math.cos(d))+Math.abs(s/2*Math.sin(d)),f=Math.abs(l/2*Math.sin(d))+Math.abs(s/2*Math.cos(d)),h=1/Math.max(Math.abs(r),Math.abs(i));return u*=r*h,f*=i*h,u+=e.offset*r,f+=e.offset*i,{x:a.x+u,y:a.y+f}}(this._el,b,e.frame),t.save(),t.globalAlpha=n.bound(0,b.opacity,1),t.translate(Math.round(a.x),Math.round(a.y)),t.rotate(b.rotation),f=t,h=e.frame,y=(c=b).backgroundColor,g=c.borderColor,x=c.borderWidth,(y||g&&x)&&(f.beginPath(),o.canvas.roundedRect(f,Math.round(h.x)-x/2,Math.round(h.y)-x/2,Math.round(h.w)+x,Math.round(h.h)+x,c.borderRadius),f.closePath(),y&&(f.fillStyle=y,f.fill()),g&&x&&(f.strokeStyle=g,f.lineWidth=x,f.lineJoin="miter",f.stroke())),function(t,e,n,a){var r,i,o,l=a.textAlign,s=a.font.lineHeight,d=a.color,u=e.length;if(u&&d)for(r=n.x,i=n.y+s/2,"center"===l?r+=n.w/2:"end"!==l&&"right"!==l||(r+=n.w),t.font=a.font.string,t.fillStyle=d,t.textAlign=l,t.textBaseline="middle",o=0;o<u;++o)t.fillText(e[o],Math.round(r),Math.round(i),Math.round(n.w)),i+=s}(t,b.lines,e.text,b),t.restore())}});var s=t.helpers,d={align:"center",anchor:"center",backgroundColor:null,borderColor:null,borderRadius:0,borderWidth:0,color:void 0,display:!0,font:{family:void 0,lineHeight:1.2,size:void 0,style:void 0,weight:null},offset:4,opacity:1,padding:{top:4,right:4,bottom:4,left:4},rotation:0,textAlign:"start",formatter:function(t){if(s.isNullOrUndef(t))return null;var e,n,a,r=t;if(s.isObject(t))if(s.isNullOrUndef(t.label))if(s.isNullOrUndef(t.r))for(r="",a=0,n=(e=Object.keys(t)).length;a<n;++a)r+=(0!==a?", ":"")+e[a]+": "+t[e[a]];else r=t.r;else r=t.label;return""+r}},u=t.helpers,f="datalabels";t.defaults.global.plugins.datalabels=d,t.plugins.register({id:"datalabels",afterDatasetUpdate:function(t,e,n){var a,r,i,o,s,d=t.data.datasets[e.index],h=(a=n,!1===(r=d.datalabels)?null:(!0===r&&(r={}),u.merge({},[a,r]))),c=e.meta.data||[],y=c.length,g=t.ctx;for(g.save(),i=0;i<y;++i)(o=c[i])&&!o.hidden?(s=new l(o,i)).update(g,h,{chart:t,dataIndex:i,dataset:d,datasetIndex:e.index}):s=null,o[f]=s;g.restore()},afterDatasetDraw:function(t,e){var n,a,r=e.meta.data||[],i=r.length;for(n=0;n<i;++n)(a=r[n][f])&&a.draw(t.ctx)}})});</script><div id="loading"><span id="loading-wrapper">Loading...</span></div><div id="fullpage-msg"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 111.577 111.577"><path d="M78.962,99.536l-1.559,6.373c-4.677,1.846-8.413,3.251-11.195,4.217c-2.785,0.969-6.021,1.451-9.708,1.451c-5.662,0-10.066-1.387-13.207-4.142c-3.141-2.766-4.712-6.271-4.712-10.523c0-1.646,0.114-3.339,0.351-5.064c0.239-1.727,0.619-3.672,1.139-5.846l5.845-20.688c0.52-1.981,0.962-3.858,1.316-5.633c0.359-1.764,0.532-3.387,0.532-4.848c0-2.642-0.547-4.49-1.636-5.529c-1.089-1.036-3.167-1.562-6.252-1.562c-1.511,0-3.064,0.242-4.647,0.71c-1.59,0.47-2.949,0.924-4.09,1.346l1.563-6.378c3.829-1.559,7.489-2.894,10.99-4.002c3.501-1.111,6.809-1.667,9.938-1.667c5.623,0,9.962,1.359,13.009,4.077c3.047,2.72,4.57,6.246,4.57,10.591c0,0.899-0.1,2.483-0.315,4.747c-0.21,2.269-0.601,4.348-1.171,6.239l-5.82,20.605c-0.477,1.655-0.906,3.547-1.279,5.676c-0.385,2.115-0.569,3.731-0.569,4.815c0,2.736,0.61,4.604,1.833,5.597c1.232,0.993,3.354,1.487,6.368,1.487c1.415,0,3.025-0.251,4.814-0.744C76.854,100.348,78.155,99.915,78.962,99.536z M80.438,13.03c0,3.59-1.353,6.656-4.072,9.177c-2.712,2.53-5.98,3.796-9.803,3.796c-3.835,0-7.111-1.266-9.854-3.796c-2.738-2.522-4.11-5.587-4.11-9.177c0-3.583,1.372-6.654,4.11-9.207C59.447,1.274,62.729,0,66.563,0c3.822,0,7.091,1.277,9.803,3.823C79.087,6.376,80.438,9.448,80.438,13.03z"/></svg> Click the "Full page" link in the top right for vastly superior experience</div><div class="warn template">&#9888; <a href="https://codegolf.stackexchange.com/a/{id}">This answer</a> by {cop} is not formatted correctly ({reason}).</div><table><thead><tr><th colspan="5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 9 9"><path class="right-arrow" d="M 0 0 L 0 9 L 9 4.5 Z"/><path class="down-arrow" d="M 0 0 L 9 0 L 4.5 9 Z"/></svg> Uncracked answers</th></tr></thead><tbody id="uncracked"><tr><th colspan="3" onclick="showAnswers(answersUncracked, 'uncracked', sortByCop)" class="clickable">Posted by</th><th onclick="showAnswers(answersUncracked, 'uncracked', sortBySize)" class="clickable">Size</th><th onclick="showAnswers(answersUncracked, 'uncracked', sortByTime)" class="clickable">Safe in</th><th>Code</th></tr><tr class="empty inactive"><th colspan="5">There are no uncracked answers</th></tr><tr class="template"><td colspan="3"><a href="https://codegolf.stackexchange.com/a/{cop_id}">{cop_user}</a></td><td>{size} bytes</td><td><span class="countdown" data-target="{safe_on}"></span></td><td><code>{code}</code></td></tr></tbody><thead><tr><th colspan="5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 9 9"><path class="right-arrow" d="M 0 0 L 0 9 L 9 4.5 Z"/><path class="down-arrow" d="M 0 0 L 9 0 L 4.5 9 Z"/></svg> Cracked answers</th></tr></thead><tbody id="cracked"><tr><th onclick="showAnswers(answersCracked, 'cracked', sortByCop)" class="clickable">Posted by</th><th onclick="showAnswers(answersCracked, 'cracked', sortByRobber)" class="clickable">Cracked by</th><th onclick="showAnswers(answersCracked, 'cracked', sortByLanguage)" class="clickable">Language</th><th onclick="showAnswers(answersCracked, 'cracked', sortBySize)" class="clickable">Size</th><th onclick="showAnswers(answersCracked, 'cracked', sortByLiveTime)" class="clickable">Cracked after</th><th>Code</th></tr><tr class="empty inactive"><th colspan="5">There are no cracked answers</th></tr><tr class="template"><td><a href="https://codegolf.stackexchange.com/a/{cop_id}">{cop_user}</a></td><td><a href="https://codegolf.stackexchange.com/a/{robber_id}">{robber_user}</a></td><td>{language}</td><td>{size} bytes</td><td>{cracked_after_str}</td><td><code>{code}</code></td></tr></tbody><thead><tr><th colspan="5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 9 9"><path class="right-arrow" d="M 0 0 L 0 9 L 9 4.5 Z"/><path class="down-arrow" d="M 0 0 L 9 0 L 4.5 9 Z"/></svg> Safe answers</th></tr></thead><tbody id="safe"><tr><th colspan="2" onclick="showAnswers(answersSafe, 'safe', sortByCop)" class="clickable">Posted by</th><th onclick="showAnswers(answersSafe, 'safe', sortByLanguage)" class="clickable">Language</th><th colspan="2" onclick="showAnswers(answersSafe, 'safe', sortBySize)" class="clickable">Size</th><th>Code</th></tr><tr class="empty inactive"><th colspan="5">There are no safe answers</th></tr><tr class="template"><td colspan="2"><a href="https://codegolf.stackexchange.com/a/{cop_id}">{cop_user}</a></td><td>{language}</td><td colspan="2">{size} bytes</td><td><code>{code}</code></td></tr></tbody></table><div id="stats-header"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 9 9"><path class="right-arrow" d="M 0 0 L 0 9 L 9 4.5 Z"/><path class="down-arrow" d="M 0 0 L 9 0 L 4.5 9 Z"/></svg> Statistics</div><div id="stats"><div><canvas id="robber-stats"/></div><div><canvas id="answer-stats"/></div></div><small>Snippet made by <a href="https://codegolf.stackexchange.com/u/55934/" target="_blank">NieDzejkob</a>, licensed as <a href="https://creativecommons.org/licenses/by-sa/3.0/" target="_blank">CC 3.0 BY-SA</a>. "Info" icon made by <a href="https://www.flaticon.com/authors/chanut" target="_blank">Chanut</a> from <a href="https://www.flaticon.com/" target="_blank">Flaticon</a>, licensed as <a href="http://creativecommons.org/licenses/by/3.0/" target="_blank">CC 3.0 BY</a>. "Arrow" icons made by <a href="https://codegolf.stackexchange.com/u/12012/" target="_blank">Dennis</a> for <a href="https://tio.run/" target="_blank">Try It Online</a>, licensed as <a href="https://github.com/TryItOnline/tryitonline/blob/master/LICENSE" target="_blank">MIT</a>. Some code shamelessly copy-pasted from <a href="https://stackoverflow.com/a/9609450">this answer</a> on Stack Overflow by <a href="https://stackoverflow.com/u/24950">Robert K</a>, licensed as <a href="https://creativecommons.org/licenses/by-sa/3.0/">CC 3.0 BY-SA</a>. This snippet utilises <a href="http://jquery.com/">jQuery</a> (<a href="https://github.com/jquery/jquery/blob/master/LICENSE.txt">MIT</a>), <a href="http://www.chartjs.org/">chart.js</a> (<a href="https://github.com/chartjs/Chart.js/blob/master/LICENSE.md">MIT</a>) and <a href="https://github.com/chartjs/chartjs-plugin-datalabels/">chartjs-plugin-datalabels</a> (<a href="https://github.com/chartjs/chartjs-plugin-datalabels/blob/master/LICENSE.md">MIT</a>). Color scheme: <a href="http://ethanschoonover.com/solarized">Solarized by Ethan Schoonover</a> (<a href="https://github.com/altercation/solarized/blob/master/LICENSE">MIT</a>).</small>

### Formatting

(Feel free to skip this section if you're not planning to participate as a cop)

This is required for new cop answers to make it possible for the snippet above to parse them.

# ???, [N] bytes


where [N] is the size of your code in bytes and ??? should appear literally.

• If the answer is not cracked for 7 days and you want to make your answer safe by revealing the language, simply replace the ??? and add safe to the end, e.g.

# Ruby, [N] bytes, safe


Feel free to have the language name link to a relevant website like an esolangs page or a GitHub repository. The link will then be displayed in the leaderboard.

• If another user successfully cracked your submission, please also add the language, along with a notice like

# Ruby, [N] bytes, [cracked](crack-link) by [user]


where [user] is the name of the user who submitted the first valid crack, and crack-link is a link to the corresponding answer in the Robbers' thread. Please use the short link format you get from the "share" button. Feel free to make the user name a link to their profile page.

If the language used in the crack is different from the one you intended, your answer is still cracked, and you shall follow this format. However, you can mention in the answer that you intended it to be something else. It's your choice on whether you want to reveal the intended answer, or if you want to let Robbers have more fun.

Good luck Cops!

• How not to compete in this challenge. Feb 8 '18 at 17:55
• Note that if you're using a language with an interpreter on TIO, all someone has to do to crack your submission is try every language on TIO. Feb 8 '18 at 23:08
• @mbomb007 Take a look at this comment. Aside from requesting that Robbers don't brute-force, there is nothing more that we can do to prevent this behaviour unfortunately. However, I invite anyone to downvote Robbers using scripts to brute-force submissions as it contradicts the spirit of the challenge. Feb 8 '18 at 23:16
• @NieDzejkob I'd say that the compiler has to be on Wikipedia/Rosetta Code/Esolangs or be on TIO. Feb 13 '18 at 15:45
• @cairdcoinheringaahing Both answers that inspired me to ask that question are a gray area: This Beatnik answer only works in some interpreters, and none of them have their own page. However, a working interpreter is linked on the esolangs page. In the case of this, the language is installed on TIO, but it's not listed on the language list. These answers have already been cracked, but I think that the rules should be modified to be unambigous in the future. Feb 13 '18 at 16:24

# ><>, 31 bytes, cracked by jimmy23013

0>1+:aa*1+=?;:\
^       o"|"n/


Output looks like:

1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100|

• Feb 9 '18 at 14:46
• This was an obvious one... Feb 9 '18 at 14:48

# Quartic, 78 bytes, cracked by Esolanging Fruit

decl	a,z,e
set	a,1
set	z,1
loop	z
print	a
cmp	e,a,'d'
if	e
dec	z
end
inc	a
end


Now for something a bit longer. Output is character codes.

• Feb 9 '18 at 7:18

2.upto(100){|i| p i}; printf RUBY_VERSION,  > 0; p $_  Outputs [1 2 3 … 100]. • Cracked. Feb 9 '18 at 17:04 # Triangular, 40 bytes, cracked by totallyhuman 1%P *>\ A+.A @~~.@A)][(An!!?_ */-S+1%U<  • This is Triangular. Feb 9 '18 at 20:52 • @totallyhuman come onnnnnnnnn Feb 9 '18 at 21:13 # Add++, 83 bytes, cracked by totallyhuman DECLARE -> (A, B) => g [1, 2] , 100 () - () 100 V From 1 (#) RAN pop => GRAVREL & G  Outputs as a list with , separating the numbers. # FALSE, 26 bytes, cracked by Rlyeh 1a:[a;101-][a;.a;1+a:" "]#  • Is this some dialect of REBOL or something? Feb 9 '18 at 7:07 • Is it False? chr Feb 9 '18 at 7:09 • Link to Ryleh’s cracked post – Jo King Feb 9 '18 at 7:53 # Self-modifying Brainfuck, 37 bytes, cracked by Nitrodon v<[-=0lfn_v#:-d<] <[/_>]/@-0>_?!:^"d.  Outputs the ASCII code points 1 through 100. The executing code is: <[--d<]/_>]/@-0>_  Try it online! The first section <[--<] decrements every character from the end by 2, until it reaches the last character of the loop, turning it into a [. The code then looks like: <[--d<[-]<[->+.<]  The [-] resets the < and the second part uses the d as a loop counter to print out the first 100 ASCII code points. • Feb 9 '18 at 2:00 # 2sable, 353 bytes, cracked by MD XF $ 123
@(%
#ZZ
&^0
*i*j F=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101
$123 @(% #ZZ &^0 *i*j  Output is separated by new lines. Came across this by accident trying to crack someone else's answer. Hopefully it is disguised enough... Good luck! • Haha I thought that looked familiar at first Feb 8 '18 at 20:59 • @dylnan I coudln't crack yours (Yet!!), but I saw some cool looking output on a language I thought yours was and played with it a little more until it gave me the output I wanted! Feb 8 '18 at 21:02 • Which language? (jk) Feb 8 '18 at 21:07 • Are all the leading spaces intentional? Feb 9 '18 at 4:50 • Cracked. Feb 10 '18 at 20:40 # Crayon, 10 bytes, cracked by MD XF 100O)q"q"q  Outputs numbers separated by q and ends with q, i.e.: 1q2q3q4q5q6q7q8q9q10q11q12q13q14q15q16q17q18q19q20q21q22q23q24q25q26q27q28q29q30q31q32q33q34q35q36q37q38q39q40q41q42q43q44q45q46q47q48q49q50q51q52q53q54q55q56q57q58q59q60q61q62q63q64q65q66q67q68q69q70q71q72q73q74q75q76q77q78q79q80q81q82q83q84q85q86q87q88q89q90q91q92q93q94q95q96q97q98q99q100q  100 puts 100 on the stack, and O iterates over the numbers 0..(100-1). Then for each number, ) increments the number, q prints it, "q" puts the string literal q on the stack, and q prints that. • Cracked. Feb 11 '18 at 2:17 • @MDXF How did you come about Crayon (which was the intended language)? Feb 11 '18 at 4:17 • I've messed around with ETH's languages before (never solved challenges in this one though) Feb 11 '18 at 4:22 # Pyke, 9 bytes, cracked by Erik the Outgolfer ~th5@.oLh  The expected output is this: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]  • cracked Feb 11 '18 at 15:13 ## PowerShell, 24 bytes, cracked in like 30 seconds by totallyhuman ("v"|% le*) ..(""+,1e2)  Output is newline-separated. # Aceto, 17 bytes, cracked by MickyT O nXm pd2F d9 II  Output format: integers, newline-seperated. • cracked? Feb 11 '18 at 21:24 • @MickyT sadly yes :( Feb 11 '18 at 21:27 # SIL, 38 bytes, cracked by Conor O' Brien Output as integers separated by newline a=100 lbla i+1 printInt i b=a-i if b a  • Cracked Feb 11 '18 at 22:01 • I knew it wouldn't last. I thought I'd last more than a minute though @ConorO'Brien Feb 11 '18 at 22:02 • I think the way you formatted your answer broke the snippet Feb 11 '18 at 22:04 • @ConorO'Brien did I add some strange whitespace or something when formatting it? I meant to just paste from my TIO I had whipped it up in. Feb 11 '18 at 22:07 • I think it might be the header format? [cracked](link) by [user](link) is how most answers do it. I guess the snippet is a bit finicky Feb 11 '18 at 22:08 # Fission 2, 21 bytes, cracked by totallyhuman I[!$Z;R'd@
)MdS,.=+-


Output is ASCII 1-100.

Equivalent without unnecessary code:

R'd@I[!$Z; + M S  • This is Fission 2. That R... Feb 11 '18 at 23:56 • @totallyhuman haha too fast Feb 12 '18 at 0:08 # LOLCODE, 118 bytes, cracked by jimmy23013 Probably way too easy, but it's funny. :D HAI 1.3 IM IN YR loop UPPIN YR var TIL BOTH SAEM var AN 101 VISIBLE SMOOSH var AN "," MKAY! IM OUTTA YR loop KTHXBYE  • Yes, way too easy. Feb 12 '18 at 8:42 • Damnit, a minute too late – Jo King Feb 12 '18 at 8:44 • Lasted longer than my last submission :) Feb 12 '18 at 8:58 • Tip: You should try obfuscating your code, rather than golfing it – Jo King Feb 12 '18 at 9:13 # PHP, 2009 bytes, cracked by totallyhuman '. Puck, a day. Page,. Act I:. Scene I:. [Enter Puck and Page] Puck: You are the sum of a bold cute fair fine good rich warm joy and the sum of a bad fat bad fat bad hog and the sum of a fine warm day and joy. ';$_ = str_split('
Page:                                                                                              '                                                                                                                );                                                                                                                                                                    array_walk/*
Open thy heart! You are the sum of thyself and a day!
Puck:                                                                                                                                                                                                               */($_,function($_/*
Are you nicer than me?                                                                                                                                                                                                                                                                                                                                                                    */, $_i/* Page: */) {print 1+$_i;/*
If so, let us proceed to Act I.
[Exeunt]                                                                                                                                                                                                            */print' ';});


Outputs numbers as integers from 1 to 100, separated by spaces.

• I think this is intended to be PHP, but it is missing a starting <?php tag. Feb 13 '18 at 11:38
• The opening tag is not required for code golf, as it can also be run using php -r, in which case an opening tagbis not required. But yes, you are correct :) Feb 13 '18 at 11:42
• In that case, this is PHP. Feb 13 '18 at 11:44
• @chocochaos From the rules: Flags may be used, but you must reveal what flags are used in your answer. If you used -r, you needed to specify that.
– user45941
Feb 13 '18 at 13:35

## Julia, 53 bytes, cracked by Giuseppe

Not even my Ruby polyglot could disguise my language of choice.

i=[1,2][1]
while i<=100
print(i)
print("\n")
i+=1
end

• I've only ever seen you submit answers in Julia, and it looks like it works Feb 13 '18 at 17:34
• cracked here Feb 13 '18 at 17:35
• I figured that would be the case, faster than i I expected though.
– gggg
Feb 13 '18 at 17:35

# Coconut, 190 bytes, cracked by quartata

main :: RunIO
main = print (list (range (1, 101)))

list :: Fn ((Range, Int) -> (List, Int))
list = xs -> List.fromObj (xs)

range :: Fn ((Pair, Int) -> (Range, Int))
range = (x,y) -> {x..y}


Try it online!

Coconut extents Python by syntactical constructs for functional programming.

main = print (list (range (1, 101))) is the only line that is actually doing something, though a more idiomatic way would be (1,101) |*> range |> list |> print.

The lines with :: should be reminiscent of Haskell's type annotations, but Coconut is actually dynamically typed and :: is its chain operator which works lazily, which is probably the reason why those nonsensical declarations do not throw an error.

I also wanted to create the impression that functions can be used before their definition appears in the code, but actually Coconut is interpreted sequentially and list and range are build-in functions which work fine in the second line, but are redefined to nonsensical functions afterwards.

Calling list after the redefinition produces a NameError: name 'List' is not defined, because there is no function List.fromObj.

Calling the redefined range with two numbers, e.g. range(1,101) returns a singleton set which contains a function object, because the .. operator is used for function composition. This does not cause an error yet, but trying to evaluate this composed function of course throws a TypeError: 'int' object is not callable.

• Cracked. Feb 11 '18 at 21:28
• @quartata That was quick. What gave it away? Feb 11 '18 at 22:07
• print(list(range(1,101)), despite your attempts at spacing it to make it look more Lisp-like, is just too damn Pythonic. Feb 11 '18 at 22:07
• Couldn't you have just done {1..101} instead of using range? Feb 14 '18 at 3:31
• @EsolangingFruit {1..101} is not actually a range expression. The .. operator is used for function composition. The code only works because it is executed sequentially, that is in the main part the build-in range function is used, before it is redefined to nonsense on the last line. Feb 14 '18 at 9:53

${-}=${-}-band0;while("${-}".length-le2){${-}++;${-}}  Outputs numbers in decimal starting at 1, ending at 100 - one per line # C + ecpp, 196 bytes, cracked by Dennis #rule control_flow foreach #rule control_flow in #def foreach a in b..c: for (int a = b; a <= c; a++) int main(void) { int a = 1, b = 100; foreach i in a..b: printf("%d ", i); }  # Pushy, 24 bytes, cracked by MD XF Ł1ɊHǙ:Ȱ#Ĭhȅȡ;œœ  Have fun! • Which encoding is this in? Feb 9 '18 at 21:15 • Can you post a reversible xxd? Feb 9 '18 at 21:16 • I have no idea how to do that, can you explain? Feb 9 '18 at 21:31 • This is 24 bytes in UTF-8. Feb 10 '18 at 2:27 • Cracked. Feb 10 '18 at 3:29 # Pyt, 170 bytes, cracked by Dennis 3112211411100*11v _*ŕ2vthesĨngulařity [[]((<>))] 4 /...psh...cřackle...fĨžz....pop24 is.../ /coming to eaŕth the ŕobots aŕe going to get you... /ĉ52*² řun fas⊤  Try it online! • This is Pyt. Feb 17 '18 at 23:47 # Stuck, 55 bytes, safe HEX: 22 78 c3 9a c3 8b 48 c3 8c 48 c3 b4 c3 8b 2f 48 05 20 0e 0e 03 25 22 44 67 79 0a 22 65 4e 71 4c 63 72 53 31 42 51 41 43 35 67 45 57 22 42 44 42 63 5d 52 22 20 22 6a CODE: "xÚËHÌHôË/H %"Dgy "eNqLcrS1BQAC5gEW"BDBc]R" "j  I think this will be pretty easy for you guys. Cheers! :) • You did it. Reveal the language to be safe. Feb 24 '18 at 11:17 # TorqueScript, 90 bytes, safe function base(%a){if(%a<50){echo(%a*2+1@" "@%a*2+2);schedule(0,0,base,%a++);}}$editors1();


Outputs two numbers per line separated by a space.

Un-golfed:

function base(%a) {
if (%a < 50) {
echo(%a * 2 + 1 @ " " @ %a * 2 + 2);
schedule(0, 0, base, %a ++);
}
}
$editors1();  So what does this do? It defines a function named base, then it calls $editors1();. $editors1 happens to be conveniently set to the value "base" by the Full Template's default scripts so the call $editors1(); is resolved to base(); with %a = "" because undefined arguments are initialized to empty string.

base itself is a simple recursive function with 2 parts:

echo(%a * 2 + 1 @ " " @ %a * 2 + 2);


Prints the concatenation of (%a * 2 + 1), " ", and %a * 2 + 2.

schedule(0, 0, base, %a ++);


Schedules an event to run the base function in 0ms with an input value of %a ++, which happens to be %a + 1 due to TorqueScript's postfix ++ being applied before the value of %a is copied. So this will recursively (through events so it won't overflow the stack) call base with increasing values of %a.

if (%a < 50) {


Will stop the recursion once %a reaches 50.

I haven't seen anyone mention TorqueScript on here yet. It has a bunch of weird quirks that might make interesting code challenges.

 O O6 A O4 D B= X BC K B1=C B= S 6C O -1 U -1 A QI*=Z4   AB=AC+AE XAE3 XAZ1  AAG
K B2 J I9 XAE3  AXG AAJG J XI XAR7  AMG K B4 S D9 W R4 VKBE


Outputs numbers left-padded to three digits, two spaces preceding each number, and a line break after every 14 numbers.

The biggest clue here, I think, is that if you look at every character in a column divisible by five, all but three of them are spaces (and the other three do not affect the operation of the program). It doesn't hurt that the format described uses five bytes for each number, with the exception of line breaks; and the arbitrary positioning of the line breaks might have hinted at a record-oriented language. This was obfuscated only by (a) keeping all used bytes in the range 0-48 and avoiding 10, 20, and 21 (which are Θ, Φ, and Π, respectively, though they are usually mapped to other ASCII characters by implementations), so it could be read by a MIX-standard card reader, and (b) selecting bytes whose values were arbitrary to look interesting. The code decodes to:

| Loc | Chars   |  1 |  2 |  3 |  4 |  5 | Instruction      |
|-----|---------|----|----|----|----|----|------------------|
|   0 | " O O6" |  0 | 16 |  0 | 16 | 36 | IN   16(16)      |
|   1 | " A O4" |  0 |  1 |  0 | 16 | 34 | JBUS 1(16)       |
|   2 | " D B=" |  0 |  4 |  0 |  2 | 48 | ENTA 4           |
|   3 | " X BC" |  0 | 27 |  0 |  2 |  3 | MUL  27(0:2)     |
|   4 | " K B1" |  0 | 12 |  0 |  2 | 31 | STX  12(0:2)     |
|   5 | "=C B=" | 48 |  3 |  0 |  2 | 48 | ENTA 3075        |
|   6 | " S 6C" |  0 | 22 |  0 | 36 |  3 | MUL  22(4:4)     |
|   7 | " O -1" |  0 | 16 |  0 | 45 | 31 | STX  16(5:5)     |
|   8 | " U -1" |  0 | 24 |  0 | 45 | 31 | STX  24(5:5)     |
|   9 | " A QI" |  0 |  1 |  0 | 18 |  9 | LD1  1(2:2)      |
|  10 | "*=Z4 " | 46 | 48 | 29 | 34 |  0 | NOP  2992,29(34) |
|  11 | "  AB=" |  0 |  0 |  1 |  2 | 48 | ENTA 0,1         |
|  12 | "AC+AE" |  1 |  3 | 44 |  1 |  5 | CHAR 67,44       |
|  13 | " XAE3" |  0 | 27 |  1 |  5 | 33 | STZ  27,1(0:5)   |
|  14 | " XAZ1" |  0 | 27 |  1 | 29 | 31 | STX  27,1(3:5)   |
|  15 | "  AAG" |  0 |  0 |  1 |  1 |  7 | MOVE 0,1(1)      |
|  16 | " K B2" |  0 | 12 |  0 |  2 | 32 | STJ  12(0:2)     |
|  17 | " J I9" |  0 | 11 |  0 |  9 | 39 | JLE  11          |
|  18 | " XAE3" |  0 | 27 |  1 |  5 | 33 | STZ  27,1(0:5)   |
|  19 | "  AXG" |  0 |  0 |  1 | 27 |  7 | MOVE 0,1(27)     |
|  20 | " AAJG" |  0 |  1 |  1 | 11 |  7 | MOVE 1,1(11)     |
|  21 | " J XI" |  0 | 11 |  0 | 27 |  9 | LD1  11(3:3)     |
|  22 | " XAR7" |  0 | 27 |  1 | 19 | 37 | OUT  27,1(19)    |
|  23 | "  AMG" |  0 |  0 |  1 | 14 |  7 | MOVE 0,1(14)     |
|  24 | " K B4" |  0 | 12 |  0 |  3 | 34 | JBUS 12(2)       |
|  25 | " S D9" |  0 | 22 |  0 |  4 | 39 | JL   22          |
|  26 | " W R4" |  0 | 26 |  0 | 19 | 34 | JBUS 26(19)      |
|  27 | " VKBE" |  0 | 25 | 12 |  2 |  5 | HLT  25,12       |


The computer automatically reads in instructions 0-15, then starts at 0. Our instructions say:
Read in instructions 16-27 (IN 16(16))
Wait until they are read in (JBUS 1(16))
Set A to 4 (ENTA 4)
Set AX to A times 25 (MUL 27(0:2)) (multiply by the A-field of word 27)
Store X (which is now 100) to the A-field of location 12 (STX 12(0:2))
Set A to 3075 (ENTA 3075) (More accurately, set A to 48m+3, where m is the number of distinct values of a byte.)
Set AX to A times 19 (MUL 22(4:4)) (multiply by the F-field of word 22)
Store X mod 64 (or max_byte+1, rather) (which is now 57)
to the C-field of location 16 (STX 16(5:5)),
thus transforming the instruction there into CMP1 12(0:2)
Store 57 to the C-field of location 24 (STX 24(5:5)),
transforming that instruction as well into CMP1 12(0:2).

We are now finished with the self-modifying code and can actually do the real work. Remaining instructions look like this:

| Loc |    A |  I |  F |  C | Instruction      |
|-----|------|----|----|----|------------------|
|   9 |    1 |  0 | 18 |  9 | LD1  1(2:2)      |
|  10 | 2992 | 29 | 34 |  0 | NOP  2992,29(34) |
|  11 |    0 |  1 |  2 | 48 | ENTA 0,1         |
|  12 |  100 | 44 |  1 |  5 | CHAR 100,44      |
|  13 |   27 |  1 |  5 | 33 | STZ  27,1(0:5)   |
|  14 |   27 |  1 | 29 | 31 | STX  27,1(3:5)   |
|  15 |    0 |  1 |  1 |  7 | MOVE 0,1(1)      |
|  16 |   12 |  0 |  2 | 57 | CMP1 12(0:2)     |
|  17 |   11 |  0 |  9 | 39 | JLE  11          |
|  18 |   27 |  1 |  5 | 33 | STZ  27,1(0:5)   |
|  19 |    0 |  1 | 27 |  7 | MOVE 0,1(27)     |
|  20 |    1 |  1 | 11 |  7 | MOVE 1,1(11)     |
|  21 |   11 |  0 | 27 |  9 | LD1  11(3:3)     |
|  22 |   27 |  1 | 19 | 37 | OUT  27,1(19)    |
|  23 |    0 |  1 | 14 |  7 | MOVE 0,1(14)     |
|  24 |   12 |  0 |  2 | 57 | CMP1 12(0:2)     |
|  25 |   22 |  0 |  4 | 39 | JL   22          |
|  26 |   26 |  0 | 19 | 34 | JBUS 26(19)      |
|  27 |   25 | 12 |  2 |  5 | HLT  25,12       |


We now load register I1 with 1 (LD1 1(2:2)),
do a no-op (NOP 2992,29(34))
(this no-op exists because character 10 isn't printable normally, so we have to adjust things a bit), and repeatedly:
Copy register I1 into register A (ENTA 0,1)
Turn A into characters in AX (CHAR 100,44)
Clear out location 27+I1 (STZ 27,1(0:5))
Put the last three digits from X into that spot (STX 27,1(3:5))
Increment register I1 (MOVE 0,1(1))
Compare I1 against 100 (CMP1 12(0:2))
Jump back to the copying unless the answer is ‘greater’ (JLE 11)

I1 is now 101. Now we clear out location 128 (STZ 27,1(0:5)),
increase I1 by 27 (MOVE 0,1(27)),
copy location 128 to location 129, 129 to 130, and so on (in that order!)
up to 11 copies (MOVE 1,1(11))

Now we reset I1 to 1 (LD1 11(3:3)),
type out 14 words starting from location 27+I1 (OUT 27,1(19)),
increase I1 by 14 (MOVE 0,1(14)),
compare it to 100 (CMP1 12(0:2)),
jump back to the typing if it's smaller (JL 22),
wait until we are finished typing (JBUS 26(19)),
and stop (HLT 25,12).

CHAR and HLT ignore their arguments in A and I, which is why we can ignore the nonexistence of I12 and I29. (This might cause a segfault on some implementations and a premature stop on others, though.) NOP ignores all its arguments. (These statements are true for my implementation.)

• Is there a reason that this is third time that you have posted this? Feb 28 '18 at 23:56
• Logic errors. Several bugs I spotted while writing up an explanation. Mar 2 '18 at 0:39
• Ok, I didn't realise that it had even changed Mar 2 '18 at 0:50
• To clarify, I edited it a few times, then deleted and reposted, then repeat. If you look at the original post, there are a few changes from the most recent version of that. (For example, the second line starts " N C2" in that version, but " K B2" here.) Mar 3 '18 at 1:37

# K (oK), 10 bytes, Cracked by Dude and exedrag

{1+x}'!"d"


Have fun again!

Outputs space-separated.

It has to be oK - other implementations throw a typeerror because characters and integers aren't considered the same.

• Cracked Aug 14 at 9:47
• @Dudecoinheringaahing That was quick. Aug 14 at 9:48
• Dang it caird you ninjad me Aug 14 at 9:48
• who is exedrag? Sep 8 at 8:42

# Rutger, 82 bytes, Cracked by Dude coinheringaahing

z=While[{a=Unequal[$x];Print[$x];a[100];}];
z=z[{b=Add[$x];x=b[1];}]; x=1; Do[$z];


This language is cursed.

• This is Rutger, I'll post an answer in a bit Aug 14 at 10:07

# MineFriff, 36 bytes, Cracked by exedraj

0,        v
>I:a,:*=?#v;
^o,Cao:+,1<


It's obviously 2d - right?

Outputs integers separated by newlines.

## Explanation

The basic code that is run is:

0, 1,+:oaC,oI:a,:*=?#

0,                    { Push 0 }
{ Enter the loop }
1,+                { Add 1 to ToS }
:o              { Output ToS as a number without popping }
aC,o          { Output a newline as a character }
:         { Duplicate }
Ia,      { Push 10 as a number }
:*    { Square it }
=?# { If it's equal, don't skip the next instruction, which is a trampoline skipping the v to continue the loop, so the ; gets executed, halting the program.}


# Attache, 40 bytes, Cracked by UnrelatedString

numbers:=Range[1,100]
Map[Print,numbers]


You shall see...

I didn't realise this worked in Mathematica :P

# Factor, 53 bytes, safe

39410751325974217594763149909395167718097095908551781


Output as characters.

This huge number factorises to $$\37*73*89*113*113*167*191*191*191*191*191*239*331*367*367*491*499*617*619*643*673*701\$$. Modulo 11, these are $$\4*7*1*3*3*2*4*4*4*4*4*8*1*4*4*7*4*1*3*5*2*8\$$, which map to the following BF:

-[>++<-----]>--[->+.<]


Try it online!

Convert it online!

### Explanation (of the BF)

-[>++<-----]>--        # Put 100 into a cell (stolen from esolangs)
[-    ] # While decrementing that gives a nonzero value
>+.<  # Increment the cell next to it and print it.


This prints the characters with ordinals 0-100.

• only numbers?001001101101011000110000100011010101010101000011010110100 Aug 15 at 10:43
• What's the output format? Aug 15 at 12:58
• @Dudecoinheringaahing Edited. Aug 15 at 19:29