1function TradeDate(t,e){function a(){setTimeout(function(){t=t+"?t="+n(new Date);var e=document.createElement("script");document.head.appendChild((e.src=t,e))},0)}function r(t){return date=t.match(/^(\d{4})(\d\d)(\d\d)$/),new Date(date[1],date[2]-1,date[3])}function n(t){return[t.getFullYear(),t.getMonth()+1,t.getDate()].join("-0").replace(/(-\d?)(\d\d)/g,"$2")}function c(t){return 6!==t.getDay()&&0!==t.getDay()&&-1===f.data.indexOf(n(t))}if(!t)return console.error("dataurl is required");var u=this,o="trade_dates";e=Math.max(parseInt(e,10),864e5)||6048e5,this.crcTable="";var d=function(){for(var t,e=[],a=0;a<256;a++){t=a;for(var r=0;r<8;r++)t=1&t?3988292384^t>>>1:t>>>1;e[a]=t}return e};this.crc32=function(t){for(var e=u.crcTable||(u.crcTable=d()),a=-1,r=0;r<t.length;r++)a=a>>>8^e[255&(a^t.charCodeAt(r))];return(-1^a)>>>0};var i=[],f=function(){try{var t=localStorage[o],r=JSON.parse(t);return u.crc32(JSON.stringify(r.data))===r.valid?((new Date).valueOf()-new Date(r.update_at).valueOf()>e&&a(),r):(a(),null)}catch(t){return a(),null}}();window.update_trade_date_callback=function(t){(t=t||{}).update_at=+new Date;try{localStorage[o]=JSON.stringify(t)}catch(t){}for(f=t;i.length;)u.trade_date_next.apply(this,i.shift())},this.trade_date_next=function(t,e,a){if(e=parseInt(e,10)||0,!f)return"function"!=typeof a?void console.warn("callback must a function"):void i.push([t,e,a]);"function"!=typeof a&&(a=function(t){return t});var u=1e3,o=r(t),d=e>0?1:-1;if(0===e)return a(c(o)?t:"");for(;--u&&(o=new Date(o.valueOf()+864e5*d),c(o)&&(e+=-1*d),0!==e););return a(0===u?"":n(o))}}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.