{"id":70486,"date":"2025-11-09T03:01:00","date_gmt":"2025-11-08T17:01:00","guid":{"rendered":"https:\/\/www.rjmprogramming.com.au\/ITblog\/?p=70486"},"modified":"2025-11-09T08:27:14","modified_gmt":"2025-11-08T22:27:14","slug":"synonymous-with-delimitation-implementation-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/synonymous-with-delimitation-implementation-tutorial\/","title":{"rendered":"Synonymous With Delimitation Implementation Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/video_commentary.html\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Synonymous With Delimitation Implementation Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/delimitation_synonymous_implementation.gif\" title=\"Synonymous With Delimitation Implementation Tutorial\"  style=\"float:left;\"  \/><\/a><p class=\"wp-caption-text\">Synonymous With Delimitation Implementation Tutorial<\/p><\/div>\n<p>We left off yesterday&#8217;s <a title='Synonymous With Delimitation Primer Tutorial' href='#swdpt'>Synonymous With Delimitation Primer Tutorial<\/a>&#8216;s <a target=\"_blank\" title='YouTube API for Iframe embedded videos' href='https:\/\/developers.google.com\/youtube\/iframe_api_reference' rel=\"noopener\">YouTube API<\/a> based <a target=\"_blank\" title='SubRip information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/SubRip' rel=\"noopener\">SubRip<\/a> (ie. subtitles) based web application discussion with &#8230;<\/p>\n<blockquote>\n<p>Still to go, to go further, is to code within the SubRips for understanding a potential new incoming argument &#8230;<\/p>\n<p>\n<code><br \/>\n?inlist=[encoded \"  ,  \" based data]<br \/>\n<\/code>\n<\/p><\/blockquote>\n<p> &#8230; and here we are &#8230; in amongst the SubRips &#8230; just cooling off &#8230; <strike>man<\/strike> &#8230; damn &#8230; whatevvvvveeeerrrrr!<\/p>\n<p>Okay, in real life, the data between our &#8221;  ,  &#8221; delimitations could be very complex, but within that &#8221;  ,  &#8221; delimited data we can have &#8221; &#8221; delimited &#8220;words&#8221; we can categorize into &#8230;<\/p>\n<ul>\n<li>purely numeric &#8230; so is either a start of video snippet time (4th textbox) or end of video snippet time (5th textbox)<\/li>\n<li>YouTube 11 character string (which is 2nd textbox content)<\/li>\n<li>URL starting with ht<font color=black>tp<\/font> &#8230; so is either a 6th textbox component or that 7th textbox link &#8230; and then &#8230;<\/li>\n<li>what&#8217;s left (of a &#8221;  ,  &#8221; record field) &#8230; where we might find, in order of priority, a component of the 3rd textbox or a component of the 6th textbox or the form 1st title textbox<\/li>\n<\/ul>\n<p> &#8230; as a way to proceed, and also cater for users going &#8220;that extra <strike>mile<\/strike>kilometer&#8221;.  So, that&#8217;s the idea here, and it&#8217;s up to you but, we tend not to care that data makes sense at this stage <font size=1>(allowing us to swivel from https:\/\/www.rjmprogramming.com.au\/ address bar URLs to ht<font color=black>tp<\/font>:\/\/localhost:8888\/ <a target=\"_blank\" title='MAMP' href='http:\/\/www.mamp.info' rel=\"noopener\">MAMP<\/a> ones <span><a target=\"_blank\" class=\"audioytplay\" title=\"https:\/\/www.youtube.com\/watch?v=cLsgc8S33dE\" href=\"https:\/\/www.youtube.com\/watch?v=cLsgc8S33dE&#038;t=21m25s#d=9\" rel=\"noopener\">willy nilly<\/a><\/span> to test things to the level of &#8220;just slotting them into the correct textbox places&#8221; <span><a target=\"_blank\" title='?' class=\"audioytplay\" href='https:\/\/www.youtube.com\/watch?v=PtR4cWb4HNg' rel=\"noopener\">that is<\/a><\/span>)<\/font>, but that it falls into the correct textboxes that worry us for today, so in most\/any tutorial animated GIF image you see today, don&#8217;t expect a SubRip result (that works) &#8230; <strike>man<\/strike> &#8230; damn &#8230; whatevvvvveeeerrrrr!<\/p>\n<p>Now, where to place this logic?  Well, as it so happens, the cloning we did with these &#8220;down among the SubRips &#8230; just cooling off &#8230; <strike>man<\/strike> &#8230; damn &#8230; whatevvvvveeeerrrrr&#8221; project &#8230;<\/p>\n<ul>\n<li>meant the HTML form IDs were all the same throughout the suite of peer YouTube API based SubRip web applications &#8230; phew! &#8230; and left us with &#8230;<\/li>\n<li>a suitable external Javascript we call with any of the suite of peer YouTube API based SubRip web applications<\/li>\n<\/ul>\n<p> &#8230; and so, that is where we place the new Javascript logic &#8230;<\/p>\n<p><code><br \/>\n  var xinlist=location.search.split('inlist=')[1] ? decodeURIComponent(location.search.split('inlist=')[1].split('&')[0]) : '';<br \/>\n  var xinarr=xinlist.split('  ,  ');<br \/>\n<br \/>\n  if (xinlist.trim() != '') {<br \/>\n     setTimeout(synonomous, 6000);<br \/>\n  }<br \/>\n  <br \/>\n function synonomous() {<br \/>\n   var oklast=['A','E','I','M','Q','U','Y','c','g','k','o','s','w','0','4','8'];<br \/>\n   var parttherof=0, partwords=[], recw='', wpart=0, sfnd=false, efnd=false, tfnd=false, yfnd=false, wfnd=false, hfnd=false, ofnd=false, mta=0, addonm=1, ntwoinarow=-1;<br \/>\n   var snapshotrecs=[], lastssr=-1, sparerec='', kspare=0, wwpart=0;<br \/>\n   if (xinlist.trim() != '') {<br \/>\n     for (parttherof=0; parttherof&lt;xinarr.length; parttherof++) {<br \/>\n       recw=xinarr[parttherof];<br \/>\n       sfnd=false;<br \/>\n       efnd=false;<br \/>\n       wfnd=false;<br \/>\n       hfnd=false;<br \/>\n       mta=0;<br \/>\n       addonm=1;<br \/>\n       snapshotrecs=[];<br \/>\n       lastssr=-1;<br \/>\n       ntwoinarow=-1;<br \/>\n       partwords=xinarr[parttherof].trim().split(' ');<br \/>\n<br \/> <br \/>\n       for (wpart=0; wpart&lt;eval(-1 + eval('' + partwords.length)); wpart++) {<br \/>\n         if (ntwoinarow < 0 &#038;&#038; partwords[wpart].trim() != '' &#038;&#038; partwords[wpart].replace('.','').replace(\/0\/g,'').replace(\/1\/g,'').replace(\/2\/g,'').replace(\/3\/g,'').replace(\/4\/g,'').replace(\/5\/g,'').replace(\/6\/g,'').replace(\/7\/g,'').replace(\/8\/g,'').replace(\/9\/g,'') == '') {\n          if (ntwoinarow < 0 &#038;&#038; partwords[eval(1 + wpart)].trim() != '' &#038;&#038; partwords[eval(1 + wpart)].replace('.','').replace(\/0\/g,'').replace(\/1\/g,'').replace(\/2\/g,'').replace(\/3\/g,'').replace(\/4\/g,'').replace(\/5\/g,'').replace(\/6\/g,'').replace(\/7\/g,'').replace(\/8\/g,'').replace(\/9\/g,'') == '') {\n           ntwoinarow=eval(-1 + eval('' + wpart));\n          }\n         }\n       }\n<br \/> <br \/>\n       for (wpart=0; wpart&lt;partwords.length; wpart++) {<br \/>\n         if (partwords[wpart] == '') {<br \/>\n           sfnd=sfnd;<br \/>\n         } else if (partwords[wpart].trim() != '' && partwords[wpart].replace('.','').replace(\/0\/g,'').replace(\/1\/g,'').replace(\/2\/g,'').replace(\/3\/g,'').replace(\/4\/g,'').replace(\/5\/g,'').replace(\/6\/g,'').replace(\/7\/g,'').replace(\/8\/g,'').replace(\/9\/g,'') == '') {<br \/>\n           if (!sfnd) {<br \/>\n             if (wpart > ntwoinarow) {<br \/>\n             if (document.getElementById('fauxpasstartsecs01').value == '') {<br \/>\n               if (lastssr &gt;= 0) { snapshotrecs[lastssr]=snapshotrecs[lastssr].split(partwords[wpart])[0];  }<br \/>\n               document.getElementById('fauxpasstartsecs01').value+=partwords[wpart];<br \/>\n               sfnd=true;<br \/>\n               recw=recw.replace(partwords[wpart], '');<br \/>\n               addonm=1;<br \/>\n             } else {<br \/>\n               if (lastssr &gt;= 0) { snapshotrecs[lastssr]=snapshotrecs[lastssr].split(partwords[wpart])[0];  }<br \/>\n               document.getElementById('fauxpasstartsecs01').value+=',' + partwords[wpart];<br \/>\n               sfnd=true;<br \/>\n               recw=recw.replace(partwords[wpart], '');<br \/>\n               addonm=1;<br \/>\n             }<br \/>\n             }<br \/>\n           } else if (!efnd) {<br \/>\n             if (document.getElementById('fauxpasendsecs01').value == '') {<br \/>\n               if (lastssr &gt;= 0) { snapshotrecs[lastssr]=snapshotrecs[lastssr].split(partwords[wpart])[0];  }<br \/>\n               document.getElementById('fauxpasendsecs01').value+=partwords[wpart];<br \/>\n               efnd=true;<br \/>\n               recw=recw.replace(partwords[wpart], '');<br \/>\n               addonm=1;<br \/>\n             } else {<br \/>\n               if (lastssr &gt;= 0) { snapshotrecs[lastssr]=snapshotrecs[lastssr].split(partwords[wpart])[0];  }<br \/>\n               document.getElementById('fauxpasendsecs01').value+=',' + partwords[wpart];<br \/>\n               efnd=true;<br \/>\n               recw=recw.replace(partwords[wpart], '');<br \/>\n               addonm=1;<br \/>\n             }<br \/>\n           } else {<br \/>\n             if (addonm == 1) { sparerec=recw; if (lastssr &gt;= 0) { for (kspare=0; kspare&lt;=lastssr; kspare++) { sparerec=sparerec.replace(snapshotrecs[kspare],'');  }  } snapshotrecs.push(sparerec); lastssr=eval(-1 + eval('' + snapshotrecs.length));  }<br \/>\n             mta+=addonm;<br \/>\n             addonm=0;<br \/>\n           }<br \/>\n         } else if (partwords[wpart].trim() != '' && partwords[wpart].toLowerCase().indexOf('http') == 0) {<br \/>\n           if (!hfnd && document.URL.indexOf('\/song_lyric_faux_pas.htm') == -1) {<br \/>\n               if (document.getElementById('fauxpasreally01').value == '') {<br \/>\n                 if (lastssr &gt;= 0) { snapshotrecs[lastssr]=snapshotrecs[lastssr].split(partwords[wpart])[0];  }<br \/>\n                 document.getElementById('fauxpasreally01').value+=partwords[wpart];<br \/>\n                 addonm=1;<br \/>\n               } else {<br \/>\n                 if (lastssr &gt;= 0) { snapshotrecs[lastssr]=snapshotrecs[lastssr].split(partwords[wpart])[0];  }<br \/>\n                 document.getElementById('fauxpasreally01').value+='  ,  ' + partwords[wpart];<br \/>\n                 addonm=1;<br \/>\n               }<br \/>\n               hfnd=true;<br \/>\n               recw=recw.replace(partwords[wpart], '');<br \/>\n           } else if (!ofnd) {<br \/>\n               if (lastssr &gt;= 0) { snapshotrecs[lastssr]=snapshotrecs[lastssr].split(partwords[wpart])[0];  }<br \/>\n               document.getElementById('refurl01').value+=partwords[wpart];<br \/>\n               ofnd=true;<br \/>\n               recw=recw.replace(partwords[wpart], '');<br \/>\n               addonm=1;<br \/>\n           } else {<br \/>\n               if (addonm == 1) {  sparerec=recw; if (lastssr &gt;= 0) { for (kspare=0; kspare&lt;=lastssr; kspare++) { sparerec=sparerec.replace(snapshotrecs[kspare],'');  }  }  snapshotrecs.push(sparerec); lastssr=eval(-1 + eval('' + snapshotrecs.length));  }<br \/>\n               mta+=addonm;<br \/>\n               addonm=0;<br \/>\n           }<br \/>\n         } else if (partwords[wpart].trim() != '' && eval('' + partwords[wpart].length) == eval('' + encodeURIComponent(partwords[wpart]).length) && eval('' + partwords[wpart].length) == 11 && oklast.indexOf(partwords[wpart].slice(-1)) != -1) {<br \/>\n           if (!yfnd) {<br \/>\n               if (lastssr &gt;= 0) { snapshotrecs[lastssr]=snapshotrecs[lastssr].split(partwords[wpart])[0];  }<br \/>\n               document.getElementById('youtubeid01').value+=partwords[wpart];<br \/>\n               yfnd=true;<br \/>\n               recw=recw.replace(partwords[wpart], '');<br \/>\n               addonm=1;<br \/>\n           } else {<br \/>\n               if (addonm == 1) {  sparerec=recw; if (lastssr &gt;= 0) { for (kspare=0; kspare&lt;=lastssr; kspare++) { sparerec=sparerec.replace(snapshotrecs[kspare],'');  }  }  snapshotrecs.push(sparerec); lastssr=eval(-1 + eval('' + snapshotrecs.length));  }<br \/>\n               mta+=addonm;<br \/>\n               addonm=0;<br \/>\n           }<br \/>\n         } else {<br \/>\n           if (addonm == 1) {  sparerec=recw; if (lastssr &gt;= 0) { for (kspare=0; kspare&lt;=lastssr; kspare++) { sparerec=sparerec.replace(snapshotrecs[kspare],'');  }  }  snapshotrecs.push(sparerec); lastssr=eval(-1 + eval('' + snapshotrecs.length));  }<br \/>\n           mta+=addonm;<br \/>\n           addonm=0;<br \/>\n         }<br \/>\n       }<br \/>\n       <br \/>\n       if (mta &gt; 0) {<br \/>\n         for (wwpart=0; wwpart&lt;snapshotrecs.length; wwpart++) {<br \/>\n           if (snapshotrecs[wwpart] != '') {<br \/>\n           if (!wfnd && document.URL.indexOf('\/song_lyric_faux_pas.htm') != -1) {<br \/>\n               if (document.getElementById('fauxpas01').value == '') {<br \/>\n                 document.getElementById('fauxpas01').value+=snapshotrecs[wwpart].trim();<br \/>\n                 snapshotrecs[wwpart]='';<br \/>\n                 wfnd=true;<br \/>\n               } else {<br \/>\n                 document.getElementById('fauxpas01').value+='  ,  ' + snapshotrecs[wwpart].trim();<br \/>\n                 snapshotrecs[wwpart]='';<br \/>\n                 wfnd=true;<br \/>\n               }<br \/>\n           } else if (!hfnd && document.URL.indexOf('\/song_lyric_faux_pas.htm') != -1) {<br \/>\n               if (document.getElementById('fauxpasreally01').value == '') {<br \/>\n                 document.getElementById('fauxpasreally01').value+=snapshotrecs[wwpart].trim();<br \/>\n                 snapshotrecs[wwpart]='';<br \/>\n                 hfnd=true;<br \/>\n               } else {<br \/>\n                 document.getElementById('fauxpasreally01').value+='  ,  ' + snapshotrecs[wwpart].trim();<br \/>\n                 snapshotrecs[wwpart]='';<br \/>\n                 hfnd=true;<br \/>\n               }<br \/>\n           } else if (!wfnd) {<br \/>\n               if (document.getElementById('fauxpas01').value == '') {<br \/>\n                 document.getElementById('fauxpas01').value+=snapshotrecs[wwpart].trim();<br \/>\n                 snapshotrecs[wwpart]='';<br \/>\n                 wfnd=true;<br \/>\n               } else {<br \/>\n                 document.getElementById('fauxpas01').value+='  ,  ' + snapshotrecs[wwpart].trim();<br \/>\n                 snapshotrecs[wwpart]='';<br \/>\n                 wfnd=true;<br \/>\n               }<br \/>\n           } else if (!hfnd && document.URL.indexOf('\/song_lyric_faux_pas.htm') == -1) {<br \/>\n               if (document.getElementById('fauxpasreally01').value == '') {<br \/>\n                 document.getElementById('fauxpasreally01').value+=snapshotrecs[wwpart].trim();<br \/>\n                 snapshotrecs[wwpart]='';<br \/>\n                 hfnd=true;<br \/>\n               } else {<br \/>\n                 document.getElementById('fauxpasreally01').value+='  ,  ' + snapshotrecs[wwpart].trim();<br \/>\n                 snapshotrecs[wwpart]='';<br \/>\n                 hfnd=true;<br \/>\n               }<br \/>\n           } else if (!tfnd) {<br \/>\n               document.getElementById('songname01').value+=snapshotrecs[wwpart].trim();<br \/>\n               snapshotrecs[wwpart]='';<br \/>\n               tfnd=true;<br \/>\n           }<br \/>\n           }<br \/>\n         }<br \/>\n       }<br \/>\n       <br \/>\n     }<br \/>\n<br \/>\n   }<br \/>\n   xinlist='';<br \/>\n }<br \/>\n<\/code><\/p>\n<p> &#8230; within <a target=\"_blank\" href=\"https:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=https:\/\/www.rjmprogramming.com.au\/HTMLCSS\/subrip_helper.js------GETME\" rel=\"noopener\">the changed<\/a> external Javascript <a target=\"_blank\" href=\"https:\/\/www.rjmprogramming.com.au\/HTMLCSS\/subrip_helper.js------GETME\" rel=\"noopener\">subrip_helper.js<\/a> helping out, so far, either\/or <a target=\"_blank\" href='\/\/www.rjmprogramming.com.au\/HTMLCSS\/song_lyric_faux_pas.html' title='Song Lyric Faux Pas' rel=\"noopener\">Song Lyric Faux Pas<\/a> or <a target=\"_blank\" href='\/\/www.rjmprogramming.com.au\/HTMLCSS\/video_commentary.html' title='Video Commentary' rel=\"noopener\">Video Commentary<\/a> YouTube API based &#8220;SubRip  &#8230; just cooling off &#8230; <strike>man<\/strike> &#8230; damn &#8230; whatevvvvveeeerrrrr&#8221; peers.<\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=\"_blank\" href='\/\/www.rjmprogramming.com.au\/ITblog\/synonymous-with-delimitation-implementation-tutorial\/' rel=\"noopener\">Synonymous With Delimitation Implementation Tutorial<\/a>.<\/p-->\n<hr>\n<p id='swdpt'>Previous relevant <a target=\"_blank\" title='Synonymous With Delimitation Primer Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/synonymous-with-delimitation-primer-tutorial\/' rel=\"noopener\">Synonymous With Delimitation Primer Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/swipe_media.html\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Synonymous With Delimitation Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/delimitation_synonymous.gif\" title=\"Synonymous With Delimitation Primer Tutorial\"  style=\"float:left;\"  \/><\/a><p class=\"wp-caption-text\">Synonymous With Delimitation Primer Tutorial<\/p><\/div>\n<p>We make inhouse rules regarding our Apache\/PHP HTML web applications around here, at RJM Programming, quite often with the focus on &#8230;<\/p>\n<blockquote><p>\ndelimitation\n<\/p><\/blockquote>\n<p> &#8230; rules and our favourite delimitation character is probably the comma ( ie. , ) when it comes to data.  Think &#8220;comma separated values&#8221; data, that can go on to be a spreadsheet &#8230; that sort of thinking.<\/p>\n<p>The work of the recent <a target=\"_blank\" href='https:\/\/www.rjmprogramming.com.au\/ITblog\/youtube-api-caller-radio-play-playlist-songname-search-list-repeats-tutorial\/' title='YouTube API Caller Radio Play Playlist Songname Search List Repeats Tutorial' rel=\"noopener\">YouTube API Caller Radio Play Playlist Songname Search List Repeats Tutorial<\/a> regarding web browser address bar comma related <i>typing<\/i> of that type of <i>data<\/i> has set us to thinking &#8230;<\/p>\n<blockquote><p>\nCan we extend this thinking?\n<\/p><\/blockquote>\n<blockquote><p>\nCan we make synonymous some web applications with a <i>delimitation rule<\/i> so that around RJM Programming URLs that end up on the address bar, these having no arguments of their own, if appended to, that are (non-argumentative) words typed to match with a delimitation pattern our RJM Programming 404.shtml can detect and redirect appropriately?\n<\/p><\/blockquote>\n<p>And something made us remember it is not just &#8220;,&#8221; (synonymous with <a target=\"_blank\" href=\"https:\/\/www.rjmprogramming.com.au\/HTMLCSS\/swipe_media.html\" rel=\"noopener\">Tabular Single Row Media Gallery<\/a> web application) that could be involved with the, so far just, &#8220;comma&#8221; based logics, it&#8217;s the &#8221;  ,  &#8221; (ie. 2 spaces comma two spaces) rules of our inhouse <a target=\"_blank\" title='Video Commentary' href='\/\/www.rjmprogramming.com.au\/HTMLCSS\/video_commentary.html' rel=\"noopener\">Video Commentary<\/a> (and\/or if prefixed by &#8221;  ,  &#8221; our inhouse <a target=\"_blank\" title='Song Lyric Faux Pas' href='\/\/www.rjmprogramming.com.au\/HTMLCSS\/song_lyric_faux_pas.html' rel=\"noopener\">Song Lyric Faux Pas<\/a>) SubRip subtitles <a target=\"_blank\" title='YouTube API for Iframe embedded videos' href='https:\/\/developers.google.com\/youtube\/iframe_api_reference' rel=\"noopener\">YouTube API<\/a> facing web application(s) <font size=1>(last talked about with <a target=\"_blank\" title='YouTube SubRip Subtitles Emoji Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/youtube-subrip-subtitles-emoji-tutorial\/' rel=\"noopener\">YouTube SubRip Subtitles Emoji Tutorial<\/a>)<\/font> that can <i>enter the mix<\/i> here too.<\/p>\n<p>And because there are two delimitation rules (both comma based ones) so far here, we start today, not only &#8230;<\/p>\n<ul>\n<li>setting up a <a target=\"_blank\" href=\"https:\/\/www.rjmprogramming.com.au\/HTMLCSS\/swipe_media.html\" rel=\"noopener\">Tabular Single Row Media Gallery<\/a> web application based bracket (ie. relevant strings have to start with { or [ or { and end with } or ] or } respectively) hosting system for it&#8217;s new playlist defining keyboard logic capabilities &#8230;<br \/>\n<code><br \/>\n function onkd(e) {<br \/>\n   var charx = e.which || e.keyCode;<br \/>\n   if (String.fromCharCode(eval('' + charx)) &gt;= '1' && String.fromCharCode(eval('' + charx)) &lt;= '8' && okdsofar == '') {<br \/>\n     endmatch='';<br \/>\n     document.getElementById('fplaythft').style.border='3px dotted green';<br \/>\n     document.getElementById('fplaythft').title+=' ... fired up ' + firedup[eval('' + String.fromCharCode(eval('' + charx)))].replace(\/^Yacht\\ \/g,'Yacht++ ');<br \/>\n     maybeinplayscenario=maybeso(true);<br \/>\n     genreideas(String.fromCharCode(eval('' + charx)));<br \/>\n     maybeinplayscenario=false;<br \/>\n   } else if (String.fromCharCode(eval('' + charx)) == ',' && okdsofar == '') {<br \/>\n     okdsofar+=String.fromCharCode(eval('' + charx));<br \/>\n     endmatch='';<br \/>\n   } else if (String.fromCharCode(eval('' + charx)) == '~' && okdsofar == '') {<br \/>\n     okdsofar+=',';<br \/>\n     endmatch='';<br \/>\n   } else if (String.fromCharCode(eval('' + charx)) == '`' && okdsofar == '') {<br \/>\n     okdsofar+=',';<br \/>\n     endmatch='';<br \/>\n   } else if (String.fromCharCode(eval('' + charx)) == '(' && okdsofar == '') {<br \/>\n     endmatch=')';<br \/>\n     okdsofar+=',';<br \/>\n   } else if (String.fromCharCode(eval('' + charx)) == '[' && okdsofar == '') {<br \/>\n     okdsofar+=',';<br \/>\n     endmatch=']';<br \/>\n   } else if (String.fromCharCode(eval('' + charx)) == '{' && okdsofar == '') {<br \/>\n     okdsofar+=',';<br \/>\n     endmatch='}';<br \/>\n   } else if (String.fromCharCode(eval('' + charx)) &lt; '1' || String.fromCharCode(eval('' + charx)) &gt; '8' || okdsofar != '') {<br \/>\n     okdsofar+=String.fromCharCode(eval('' + charx));<br \/>\n     if (okdsofar.substring(0,1) == ',') {<br \/>\n     if ((endmatch == '' && (okdsofar.slice(-1) == '~' || okdsofar.slice(-1) == '`')) || okdsofar.slice(-1) == endmatch) {<br \/>\n     adbarpl=okdsofar.replace(\/^\\,\/g,'').replace(\/\\~$\/g,'').replace(\/\\`$\/g,'').replace(\/\\}$\/g,'').replace(\/\\]$\/g,'').replace(\/\\)$\/g,'');<br \/>\n     andgo=(adbarpl.toLowerCase().indexOf('notgo') != -1 ? false : true);<br \/>\n     okdsofar='';<br \/>\n     endmatch='';<br \/>\n     \/\/alert('andgo=' + andgo);<br \/>\n     createplaylist(null);<br \/>\n     return true;<br \/>\n     }<br \/>\n     } else {<br \/>\n     endmatch='';<br \/>\n     if (okdsofar.trim() != '' && okdsofar.trim() != okdsofar && okdsofar.toLowerCase() != 'solo ') {<br \/>\n     maybeinplayscenario=maybeso(true);<br \/>\n     genreideas(okdsofar.replace(\/^Mr\\ \/g,'Washington ').replace(\/^MR\\ \/g,'Washington ').replace(\/^mr\\ \/g,'Washington ').replace(\/^The\\ \/g,'wrecking ').replace(\/^THE\\ \/g,'wrecking ').replace(\/^the\\ \/g,'wrecking ').trim());<br \/>\n     maybeinplayscenario=false;<br \/>\n     okdsofar='';<br \/>\n     }<br \/>\n     }<br \/>\n   }<br \/>\n   setTimeout(function(){ document.getElementById('thev').innerHTML='V'; }, 20000);<br \/>\n   return true;<br \/>\n }<br \/>\n<\/code><br \/>\n &#8230; of <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/swipe_media.html-----------------------------------------GETME\" rel=\"noopener\">the changed<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/swipe_media.html-----------------------------------------GETME\" rel=\"noopener\">swipe_media.html<\/a> <a target=\"_blank\" href=\"https:\/\/www.rjmprogramming.com.au\/HTMLCSS\/swipe_media.html\" rel=\"noopener\">Tabular Single Row Media Gallery<\/a> web application &#8230; but also &#8230;<\/li>\n<li>it will redirect if it finds &#8221;  ,  &#8221; <font color=blue>related entries<\/font> &#8230;<br \/>\n<code><br \/>\n  function overprompt(blb, defvl) {<br \/>\n   var tdsare=[], itdone=false, baeis='', itds=0, lastpassesmustard=true;<br \/>\n   var oklast=['A','E','I','M','Q','U','Y','c','g','k','o','s','w','0','4','8'];<br \/>\n   var ivb=0;<br \/>\n   if (adbarpl != '') {<br \/>\n   outplist=adbarpl;<br \/>\n   adbarpl='';<br \/>\n   } else {<br \/>\n   outplist=prompt(blb, defvl);<br \/>\n   }<br \/>\n   <font color=blue>if (outplist != null) {<br \/>\n   if (outplist.indexOf('  ,  ') == 0 && outplist.replace(\/^\\ \\ \\,\\ \\ \/g,'').indexOf('  ,  ') != -1) {<br \/>\n      window.open('\/\/www.rjmprogramming.com.au\/HTMLCSS\/song_lyric_faux_pas.html?inlist=' + encodeURIComponent(outplist.replace(\/^\\ \\ \\,\\ \\ \/g,''),'_blank','top=55,left=55,height=600,width=600');<br \/>\n      outplist='';<br \/>\n      return '';<br \/>\n   } else if (outplist.indexOf('  ,  ') != -1) {<br \/>\n      window.open('\/\/www.rjmprogramming.com.au\/HTMLCSS\/video_commentary.html?inlist=' + encodeURIComponent(outplist.replace(\/^\\ \\ \\,\\ \\ \/g,''),'_blank','top=55,left=55,height=600,width=600');<br \/>\n      outplist='';<br \/>\n      return '';<br \/>\n   }<br \/>\n   }<\/font><br \/>\n\/\/ rest of overprompt(blb, defvl) logic follows<br \/>\n}<br \/>\n<\/code><br \/>\n &#8230; and with all this &#8230;<\/li>\n<li>regarding the RJM Programming 404.shtml &#8230;\n<ol>\n<li>it redirects for this too &#8230; and &#8230;<\/li>\n<li>it now works it that an RJM Programming URL, not a WordPress one (where a 404.php paradigm handles it&#8217;s error 404<sup>s<\/sup>), and not one with ? arguments can be scrutinized for these &#8220;Synonymous With Delimitation&#8221; web application redirecting ideas &#8230;<br \/>\n<code><br \/>\n  if (document.URL.indexOf('rjmprogramming.com.au\/HTMLCSS\/swipe_media.htm') != -1) {  \/\/ comma related ideas<br \/>\n    if (decodeURIComponent(document.URL).indexOf('  ,  ') != -1) {<br \/>\n      \/\/ Feed it to SubRip subtitles<br \/>\n      if (decodeURIComponent(document.URL.split('rjmprogramming.com.au\/HTMLCSS\/swipe_media.htm')[1].replace(\/^l\/g,'')).indexOf('  ,  ') == 0) {<br \/>\n      location.href='\/\/www.rjmprogramming.com.au\/HTMLCSS\/song_lyric_faux_pas.html?inlist=' + encodeURIComponent(decodeURIComponent(document.URL.split('rjmprogramming.com.au\/HTMLCSS\/swipe_media.htm')[1].replace(\/^l\/g,'')).replace(\/^\\ \\ \\,\\ \\ \/g,'').replace(\/^\\%20\\%20\\%2C\\%20\\%20\/g,''));<br \/>\n      } else {<br \/>\n      location.href='\/\/www.rjmprogramming.com.au\/HTMLCSS\/video_commentary.html?inlist=' + encodeURIComponent(decodeURIComponent(document.URL.split('rjmprogramming.com.au\/HTMLCSS\/swipe_media.htm')[1].replace(\/^l\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'')));<br \/>\n      }<br \/>\n      exit;<br \/>\n    } else if (decodeURIComponent(document.URL).indexOf(',') != -1) {<br \/>\n      if (decodeURIComponent(document.URL.split('rjmprogramming.com.au\/HTMLCSS\/swipe_media.htm')[1].replace(\/^l\/g,'')).toLowerCase().indexOf('notgo') != -1) {<br \/>\n      location.href='\/\/www.rjmprogramming.com.au\/HTMLCSS\/swipe_media.html?thelist=' + encodeURIComponent(decodeURIComponent(document.URL.split('rjmprogramming.com.au\/HTMLCSS\/swipe_media.htm')[1].replace(\/^l\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'').replace('notgo','').replace('NOTGO','').replace('Notgo','')));<br \/>\n      } else {<br \/>\n      location.href='\/\/www.rjmprogramming.com.au\/HTMLCSS\/swipe_media.html?andgo=y&thelist=' + encodeURIComponent(decodeURIComponent(document.URL.split('rjmprogramming.com.au\/HTMLCSS\/swipe_media.htm')[1].replace(\/^l\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'')));<br \/>\n      exit;<br \/>\n      }<br \/>\n    } else if (decodeURIComponent(document.URL.split('rjmprogramming.com.au\/HTMLCSS\/swipe_media.htm')[1].replace(\/^l\/g,'')).toLowerCase().indexOf('ask') != -1) {<br \/>\n      location.href='\/\/www.rjmprogramming.com.au\/HTMLCSS\/swipe_media.html?ask=y';<br \/>\n      exit;<br \/>\n    }<br \/>\n  } else if (document.URL.replace('.au ','.au\/').replace('.au%20','.au\/').indexOf('rjmprogramming.com.au\/') != -1) {<br \/>\n    var anybitstoignore='youll_never_ever_find_this';<br \/>\n    if (document.URL.replace('.au ','.au\/').replace('.au%20','.au\/').substring(0,1).replace('+','%') == '%') {<br \/>\n      anybitstoignore='youll_never_ever_find_this';<br \/>\n    } else if (document.URL.replace('.au ','.au\/').replace('.au%20','.au\/').split('rjmprogramming.com.au\/')[1].split('%')[0].toLowerCase().replace('\/','~').replace('.htm','~').replace('.php','~').indexOf('~') != -1) {<br \/>\n      var maxfind=Math.max(eval('' + document.URL.replace('.au ','.au\/').replace('.au%20','.au\/').split('rjmprogramming.com.au\/')[1].split('%')[0].toLowerCase().indexOf('.htm')),eval('' + document.URL.replace('.au ','.au\/').replace('.au%20','.au\/').split('rjmprogramming.com.au\/')[1].split('%')[0].toLowerCase().indexOf('.php')), eval('' + document.URL.replace('.au ','.au\/').replace('.au%20','.au\/').split('rjmprogramming.com.au\/')[1].split('%')[0].toLowerCase().indexOf('\/')));<br \/>\n      if (maxfind != eval('' + document.URL.replace('.au ','.au\/').replace('.au%20','.au\/').split('rjmprogramming.com.au\/')[1].split('%')[0].toLowerCase().indexOf('\/'))) {<br \/>\n        if (maxfind == eval('' + document.URL.replace('.au ','.au\/').replace('.au%20','.au\/').split('rjmprogramming.com.au\/')[1].split('%')[0].toLowerCase().indexOf('.php'))) {<br \/>\n          maxfind+=4;<br \/>\n        } else if (maxfind == eval('' + document.URL.replace('.au ','.au\/').replace('.au%20','.au\/').split('rjmprogramming.com.au\/')[1].split('%')[0].toLowerCase().indexOf('.html'))) {<br \/>\n          maxfind+=5;<br \/>\n        } else {<br \/>\n          maxfind+=4;<br \/>\n        }<br \/>\n      } else {<br \/>\n        while (decodeURIComponent(document.URL.replace(anybitstoignore,'').split('rjmprogramming.com.au\/')[1].substring(maxfind)).indexOf('\/') != -1) {<br \/>\n          maxfind++;<br \/>\n        }<br \/>\n      }<br \/>\n      anybitstoignore=document.URL.replace('.au ','.au\/').replace('.au%20','.au\/').split('rjmprogramming.com.au\/')[1].substring(0,maxfind);<br \/>\n    }<br \/>\n    if (decodeURIComponent(document.URL.replace(anybitstoignore,'')).indexOf('  ,  ') != -1) {<br \/>\n      \/\/ Feed it to SubRip subtitles<br \/>\n      if (decodeURIComponent(document.URL.replace(anybitstoignore,'').replace('.au ','.au\/').replace('.au%20','.au\/').split('rjmprogramming.com.au\/')[1].replace(\/^index\\.php\/g,'').replace(\/^index\\.html\/g,'').replace(\/^index\\.htm\/g,'')).indexOf('  ,  ') == 0) {<br \/>\n      location.href='\/\/www.rjmprogramming.com.au\/HTMLCSS\/song_lyric_faux_pas.html?inlist=' + encodeURIComponent(decodeURIComponent(document.URL.replace(anybitstoignore,'').replace('.au ','.au\/').replace('.au%20','.au\/').split('rjmprogramming.com.au\/')[1].replace(\/^index\\.php\/g,'').replace(\/^index\\.html\/g,'').replace(\/^index\\.htm\/g,'')).replace(\/^\\ \\ \\,\\ \\ \/g,'').replace(\/^\\%20\\%20\\%2C\\%20\\%20\/g,''));<br \/>\n      } else {<br \/>\n      location.href='\/\/www.rjmprogramming.com.au\/HTMLCSS\/video_commentary.html?inlist=' + encodeURIComponent(decodeURIComponent(document.URL.replace(anybitstoignore,'').replace('.au ','.au\/').replace('.au%20','.au\/').split('rjmprogramming.com.au\/')[1].replace(\/^index\\.php\/g,'').replace(\/^index\\.html\/g,'').replace(\/^index\\.htm\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'')));<br \/>\n      }<br \/>\n      exit;<br \/>\n    } else if (decodeURIComponent(document.URL.replace(anybitstoignore,'').replace('.au ','.au\/').replace('.au%20','.au\/')).indexOf(',') != -1) {<br \/>\n      if (decodeURIComponent(document.URL.replace(anybitstoignore,'').replace('.au ','.au\/').replace('.au%20','.au\/').split('rjmprogramming.com.au\/')[1].replace(\/^index\\.php\/g,'').replace(\/^index\\.html\/g,'').replace(\/^index\\.htm\/g,'')).toLowerCase().indexOf('notgo') != -1) {<br \/>\n      location.href='\/\/www.rjmprogramming.com.au\/HTMLCSS\/swipe_media.html?thelist=' + encodeURIComponent(decodeURIComponent(document.URL.replace(anybitstoignore,'').replace('.au ','.au\/').replace('.au%20','.au\/').split('rjmprogramming.com.au\/')[1].replace(\/^index\\.php\/g,'').replace(\/^index\\.html\/g,'').replace(\/^index\\.htm\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'').replace('notgo','').replace('NOTGO','').replace('Notgo','')));<br \/>\n      } else {<br \/>\n      location.href='\/\/www.rjmprogramming.com.au\/HTMLCSS\/swipe_media.html?andgo=y&thelist=' + encodeURIComponent(decodeURIComponent(document.URL.replace(anybitstoignore,'').replace('.au ','.au\/').replace('.au%20','.au\/').split('rjmprogramming.com.au\/')[1].replace(\/^index\\.php\/g,'').replace(\/^index\\.html\/g,'').replace(\/^index\\.htm\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'').replace(\/^\\%20\/g,'')));<br \/>\n      exit;<br \/>\n      }<br \/>\n    } else if (decodeURIComponent(document.URL.replace(anybitstoignore,'').replace('.au ','.au\/').replace('.au%20','.au\/').split('rjmprogramming.com.au\/')[1].replace(\/^index\\.php\/g,'').replace(\/^index\\.html\/g,'').replace(\/^index\\.htm\/g,'')).toLowerCase().indexOf('ask') != -1) {<br \/>\n      location.href='\/\/www.rjmprogramming.com.au\/HTMLCSS\/swipe_media.html?ask=y';<br \/>\n      exit;<br \/>\n    }<br \/>\n  }<br \/>\n<\/code>\n<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<p>See what we mean, in the table below &#8230;<\/p>\n<table>\n<tr>\n<th>Redirects to YouTube API Radio Play suiting <font size=1>(web browser address bar containing)<\/font> <font color=blue>Born to Run*4,Jungleland*3<\/font><\/th>\n<\/tr>\n<tr>\n<td><a target=\"_blank\" href=\"https:\/\/www.rjmprogramming.com.au\/HTMLCSS\/swipe_media.htmlBorn to Run*4,Jungleland*3\" rel=\"noopener\">YouTube API Radio Play of Born to Run*4,Jungleland*3<\/a><\/td>\n<\/tr>\n<tr>\n<th>Redirects to YouTube API Video Commentary suiting <font size=1>(web browser address bar containing)<\/font> <font color=blue>Born to Run*4  ,  Jungleland*3<\/font> &#8230; just calling &#8230; so far &#8230;<\/th>\n<\/tr>\n<tr>\n<td><a target=\"_blank\" href=\"https:\/\/www.rjmprogramming.com.au\/HTMLCSS\/swipe_media.htmlBorn to Run*4%20%20,%20%20Jungleland*3\" rel=\"noopener\">Video Commentary of Born of Run*4  ,  Jungleland*3<\/a><\/td>\n<\/tr>\n<tr>\n<th>Redirects to YouTube API Song Lyric Faux Pas suiting <font size=1>(web browser address bar containing)<\/font> <font color=blue>  ,  Born to Run*4  ,  Jungleland*3<\/font> &#8230; just calling &#8230; so far &#8230;<\/th>\n<\/tr>\n<tr>\n<td><a target=\"_blank\" href=\"https:\/\/www.rjmprogramming.com.au\/HTMLCSS\/swipe_media.html%20%20,%20%20Born to Run*4%20%20,%20%20Jungleland*3\" rel=\"noopener\">Song Lyric Faux Pas of   ,  Born to Run*4  ,  Jungleland*3<\/a><\/td>\n<\/tr>\n<\/table>\n<p>Still to go, to go further, is to code within the SubRips for understanding a potential new incoming argument &#8230;<\/p>\n<p><code><br \/>\n?inlist=[encoded \"  ,  \" based data]<br \/>\n<\/code><\/p>\n<p> &#8230; based input, but that is for another day!<\/p>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d70464' onclick='var dv=document.getElementById(\"d70464\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/comma\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d70464' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d70486' onclick='var dv=document.getElementById(\"d70486\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/implementation\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d70486' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>We left off yesterday&#8217;s Synonymous With Delimitation Primer Tutorial&#8216;s YouTube API based SubRip (ie. subtitles) based web application discussion with &#8230; Still to go, to go further, is to code within the SubRips for understanding a potential new incoming argument &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/synonymous-with-delimitation-implementation-tutorial\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,12,14,29,37],"tags":[4159,52,1669,5275,1767,2535,5306,83,84,88,1885,103,113,5307,1703,177,181,1580,210,2503,2509,3533,2531,4191,5281,5279,2335,252,253,5278,257,2442,281,283,2127,290,296,1654,305,307,1606,2380,2276,2147,1768,2310,327,341,1816,354,359,367,2091,1549,380,385,1605,5301,386,4077,5287,400,3103,452,2678,1664,3081,513,520,3406,557,3961,564,576,587,590,599,1659,4063,614,617,3695,620,2072,652,5280,673,1560,1807,705,710,5315,2415,2205,3870,760,2732,2122,1616,802,830,2355,2010,3987,2337,1919,3267,2723,875,884,2273,2076,894,5304,932,2858,950,2362,4321,1898,967,997,1915,3274,5305,2407,5298,5299,2955,1063,1069,1893,3310,5303,1866,3169,1125,1126,1133,1168,1173,5302,2228,1200,2311,2001,1238,1581,1254,5276,1675,5277,1282,2167,3325,1292,1319,1671,1345,1891,3575,1721,1369,2485,1404,2099,1418,1425,1583,1452,1622,2455,3098,4799,1493,2017],"class_list":["post-70486","post","type-post","status-publish","format-standard","hentry","category-ajax","category-elearning","category-event-driven-programming","category-operating-system","category-tutorials","tag-404-shtml","tag-absolute-url","tag-address-bar","tag-after","tag-album","tag-alphabetic","tag-alphabetical","tag-animated-gif","tag-animation-2","tag-api","tag-argument","tag-array","tag-audio","tag-authority","tag-breadcrumbs","tag-cache","tag-call","tag-cell","tag-class","tag-clone","tag-cloning","tag-comma","tag-comma-separated-values","tag-compilation","tag-completion","tag-condition","tag-conditional","tag-connection","tag-console","tag-console-warn","tag-content","tag-contenteditable","tag-css","tag-csv","tag-cursor","tag-data","tag-data-type","tag-data-uri","tag-debug","tag-debugging","tag-decodeuricomponent","tag-delay","tag-delimitation","tag-delimiter","tag-deployment","tag-details","tag-did-you-know","tag-display","tag-document-title","tag-dom","tag-double-click","tag-dropdown","tag-duration","tag-element","tag-email","tag-emoji","tag-encodeuricomponent","tag-encrypt","tag-encryption","tag-error-404","tag-error-414","tag-event","tag-field","tag-form","tag-genre","tag-global","tag-global-variable","tag-google","tag-google-chrome","tag-hands-free","tag-hashtag","tag-hashtagging","tag-hierarchy","tag-html","tag-iframe","tag-image","tag-img","tag-implementation","tag-instance","tag-integration","tag-interactive","tag-interfacing","tag-internationalization","tag-itinerary","tag-javascript","tag-jump","tag-keyboard","tag-language","tag-link","tag-links","tag-list","tag-lleyton","tag-localstorage","tag-loop","tag-looping","tag-media","tag-mimetype","tag-moderation","tag-modularization","tag-module","tag-navigation","tag-not-found","tag-object-oriented-programming","tag-oncontextmenu","tag-onkeypress","tag-onmousedown","tag-ontouchdown","tag-ontouchmove","tag-oop","tag-opera","tag-option","tag-order","tag-overlay","tag-persistence","tag-php","tag-plan","tag-platform","tag-play","tag-play-button","tag-playlist","tag-popup","tag-programming","tag-progress","tag-recall","tag-recalling","tag-record","tag-remember","tag-remembering","tag-repeat","tag-reveal","tag-right-click","tag-schedule","tag-scheduling","tag-scope","tag-select","tag-sessionstorage","tag-setinterval","tag-settimeout","tag-share","tag-software-integration","tag-sort","tag-sppech-to-text","tag-standing-order","tag-stop-press","tag-summary","tag-tab","tag-table","tag-table-cell","tag-text","tag-text-cursor","tag-textbox","tag-textual-cursor","tag-timer","tag-title","tag-toggle","tag-top","tag-tutorial","tag-type","tag-url","tag-user","tag-user-input","tag-variable","tag-video","tag-visibility","tag-web-browser","tag-web-inspector","tag-webpage","tag-whitespace","tag-window","tag-word","tag-words","tag-wrap","tag-wrapper","tag-wrapping","tag-youtube","tag-youtube-api"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/70486"}],"collection":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/comments?post=70486"}],"version-history":[{"count":16,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/70486\/revisions"}],"predecessor-version":[{"id":70506,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/70486\/revisions\/70506"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=70486"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=70486"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=70486"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}