1.0INT4https://test11988.futurehost.plDecoding Percent Encoded Octets in URLs - INT4rich600338<blockquote class="wp-embedded-content" data-secret="HG5nL8X4Sf"><a href="https://test11988.futurehost.pl/decoding-percent-encoded-octets-in-urls">Decoding Percent Encoded Octets in URLs</a></blockquote><iframe sandbox="allow-scripts" security="restricted" src="https://test11988.futurehost.pl/decoding-percent-encoded-octets-in-urls/embed#?secret=HG5nL8X4Sf" width="600" height="338" title="“Decoding Percent Encoded Octets in URLs” — INT4" data-secret="HG5nL8X4Sf" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"></iframe><script> /*! This file is auto-generated */ !function(c,d){"use strict";var e=!1,o=!1;if(d.querySelector)if(c.addEventListener)e=!0;if(c.wp=c.wp||{},c.wp.receiveEmbedMessage);else if(c.wp.receiveEmbedMessage=function(e){var t=e.data;if(!t);else if(!(t.secret||t.message||t.value));else if(/[^a-zA-Z0-9]/.test(t.secret));else{for(var r,s,a,i=d.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),n=d.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),o=new RegExp("^https?:$","i"),l=0;l<n.length;l++)n[l].style.display="none";for(l=0;l<i.length;l++)if(r=i[l],e.source!==r.contentWindow);else{if(r.removeAttribute("style"),"height"===t.message){if(1e3<(s=parseInt(t.value,10)))s=1e3;else if(~~s<200)s=200;r.height=s}if("link"===t.message)if(s=d.createElement("a"),a=d.createElement("a"),s.href=r.getAttribute("src"),a.href=t.value,!o.test(a.protocol));else if(a.host===s.host)if(d.activeElement===r)c.top.location.href=t.value}}},e)c.addEventListener("message",c.wp.receiveEmbedMessage,!1),d.addEventListener("DOMContentLoaded",t,!1),c.addEventListener("load",t,!1);function t(){if(o);else{o=!0;for(var e,t,r,s=-1!==navigator.appVersion.indexOf("MSIE 10"),a=!!navigator.userAgent.match(/Trident.*rv:11\./),i=d.querySelectorAll("iframe.wp-embedded-content"),n=0;n<i.length;n++){if(!(r=(t=i[n]).getAttribute("data-secret")))r=Math.random().toString(36).substr(2,10),t.src+="#?secret="+r,t.setAttribute("data-secret",r);if(s||a)(e=t.cloneNode(!0)).removeAttribute("security"),t.parentNode.replaceChild(e,t);t.contentWindow.postMessage({message:"ready",secret:r},"*")}}}}(window,document); </script> https://test11988.futurehost.pl/wp-content/uploads/2020/06/CPI_Decoding_Percent_Octets_Yeoh.png1200627In the recently concluded CPI challenge, one part that was missed in most submissions was implementing decoding of percent-encoded octets that were submitted in the query string of the HTTP request. This was not stated as an explicit requirement in the challenge and therefore required the participants to have an implicit understanding of how HTTP URLs work. Those who knew this indeed scored higher in the challenge, gaining bonus points along the way - 2 out of 3 finalists implemented such decoding.