1let blicTcData = false; 2let blicIABVendorList = false; 3let blicNonIABVendorList = false; 4 5const callback = (tcData, success) => { 6 if(success && (tcData.eventStatus === 'tcloaded' || tcData.eventStatus === 'useractioncomplete')) { 7 blicTcData = tcData; 8 console.log('TCF STATUS', tcData.eventStatus); 9 //console.log(tcData); 10 11 //console.log('CONSENTS 1: ', tcData.purpose.consents[1], tcData.purpose.consents[1] === !1 && tcData.purpose.legitimateInterests[1] === !1); 12 13 __tcfapi('getVendorList', 2, (gvl, success1) => { 14 if(success1) { 15 blicIABVendorList = gvl; 16 enableScriptTagsIAB(); 17 /* console.log(gvl.vendors[755]); 18 console.log(tcData); 19 //let check = gvl.vendors[755].purposes.concat(gvl.vendors[755].flexiblePurposes, gvl.vendors[755].legIntPurposes); 20 let check = gvl.vendors[755].purposes.concat(gvl.vendors[755].legIntPurposes); 21 console.log('check::: ', check); 22 let valid = true; 23 for(let i = 0; i < check.length; i++) { 24 if( (tcData.purpose.consents[check[i]] === undefined || tcData.purpose.consents[check[i]] === false) && (tcData.purpose.legitimateInterests[check[i]] === undefined || tcData.purpose.legitimateInterests[check[i]] === false) ) { 25 valid = false; 26 } 27 console.log('CHECK PURPOSE ', check[i], valid, 'CONSENTS and LEGINT: ', tcData.purpose.consents[check[i]], tcData.purpose.legitimateInterests[check[i]]) 28 } 29 if(tcData.vendor.consents[755] === !1 && tcData.vendor.legitimateInterests[755] === !1) { 30 valid = false; 31 } 32 33 if(valid) { 34 console.log('vendor 755 - Google Advertising - accepted'); 35 } else { 36 console.log('vendor 755 - Google Advertising - not accepted'); 37 } 38 */ 39 /*let p1 = tcData.purpose.consents[1] === !0 || tcData.purpose.legitimateInterests[1] === !0, 40 p2 = tcData.purpose.consents[2] === !0 || tcData.purpose.legitimateInterests[2] === !0, 41 p3 = tcData.purpose.consents[3] === !0 || tcData.purpose.legitimateInterests[3] === !0, 42 p4 = tcData.purpose.consents[4] === !0 || tcData.purpose.legitimateInterests[4] === !0, 43 p7 = tcData.purpose.consents[7] === !0 || tcData.purpose.legitimateInterests[7] === !0, 44 p9 = tcData.purpose.consents[9] === !0 || tcData.purpose.legitimateInterests[9] === !0, 45 p10 = tcData.purpose.consents[10] === !0 || tcData.purpose.legitimateInterests[10] === !0, 46 v755 = tcData.vendor.consents[755] || tcData.vendor.legitimateInterests[755]; 47 if(p1 && p2 && p3 && p4 && p7 && p9 && p10 && v755) { 48 console.log('vendor 755 - Google Advertising - accepted'); 49 } else { 50 console.log('vendor 755 - Google Advertising - not accepted'); 51 }*/ 52 } 53 }, 'LATEST'); 54 55 __tcfapi('getNonIABVendorConsents', 2, (gvl, success2) => { 56 if(success2) { 57 blicNonIABVendorList = gvl; 58 enableScriptTagsNonIAB(); 59 } 60 }); 61 62 63 } else { 64 // do something else 65 } 66} 67 68const intervalId = setInterval(() => { 69 if (typeof __tcfapi === 'function') { 70 __tcfapi('addEventListener', 2, callback); 71 clearInterval(intervalId); 72 } 73}, 300); 74 75 76function enableScriptTagsIAB() { 77 //SIA Setupad: 1241 78 //Google Advertising Products: 755 79 let e = document.querySelectorAll('script[type="blic/javascript"]:not([data-processed])'); 80 for (var t of e) { 81 if(t.dataset.vendor && testVendorIAB(t.dataset.vendor)) { 82 let s = document.createElement('script'); 83 s.type = 'text/javascript'; 84 try { 85 //s.setHTML(t.innerHTML); 86 s.textContent = t.innerHTML; 87 } catch (e) { 88 s.innerHTML = t.innerHTML; 89 } 90 for (var n of t.attributes) n.name !== 'type' && s.setAttribute(n.name, n.value); 91 t.parentNode.insertBefore(s, t), t.setAttribute("data-processed", !0); 92 } 93 } 94} 95 96function enableScriptTagsNonIAB() { 97 //Google Analytics: 1 98 let e = document.querySelectorAll('script[type="blic/javascript"]:not([data-processed])'); 99 for (var t of e) { 100 if(t.dataset.vendornoniab && testVendorNonIAB(t.dataset.vendornoniab)) { 101 let s = document.createElement('script'); 102 s.type = 'text/javascript'; 103 try { 104 //console.log('try', s, t) 105 s.textContent = t.innerHTML; 106 } catch (e) { 107 s.innerHTML = t.innerHTML; 108 //console.log('catch', e, s, t) 109 } 110 for (var n of t.attributes) n.name !== 'type' && s.setAttribute(n.name, n.value); 111 t.parentNode.insertBefore(s, t), t.setAttribute("data-processed", !0); 112 } 113 } 114 115} 116 117function testVendorIAB(id) {
118 let check = blicIABVendorList.vendors[id].purposes.concat(blicIABVendorList.vendors[id].legIntPurposes).concat(blicIABVendorList.vendors[id].flexiblePurposes); 119 //console.log('id::checkAll::purposes::legInt::flexPur', id, check, blicIABVendorList.vendors[id].purposes, blicIABVendorList.vendors[id].legIntPurposes, blicIABVendorList.vendors[id].flexiblePurposes); 120 let valid = true; 121 for(let i = 0; i < check.length; i++) { 122 if( (blicTcData.purpose.consents[check[i]] === undefined || blicTcData.purpose.consents[check[i]] === false) ) { 123 valid = false; 124 //console.log('CHECK PURPOSE ', check[i], false, 'CONSENTS and LEGINT: ', blicTcData.purpose.consents[check[i]], blicTcData.purpose.legitimateInterests[check[i]]); 125 } else { 126 //console.log('CHECK PURPOSE ', check[i], true, 'CONSENTS and LEGINT: ', blicTcData.purpose.consents[check[i]], blicTcData.purpose.legitimateInterests[check[i]]); 127 } 128 } 129 if(blicTcData.vendor.consents[id] === !1) { 130 valid = false; 131 } 132 return valid; 133} 134 135function testVendorNonIAB(id) { 136 let valid_vendor = false; 137 let valid_purposes = false; 138 if(blicNonIABVendorList && blicNonIABVendorList.nonIabVendorConsents !== undefined && blicNonIABVendorList.nonIabVendorConsents !== null && blicNonIABVendorList.nonIabVendorConsents[id] !== null) { 139 valid_vendor = true; 140 } 141 if(id == 1 && 142 blicTcData.purpose.consents[1] !== undefined && blicTcData.purpose.consents[1] && 143 blicTcData.purpose.consents[8] !== undefined && blicTcData.purpose.consents[8] && 144 blicTcData.purpose.consents[10] !== undefined && blicTcData.purpose.consents[10]) { 145 valid_purposes = true; 146 } 147 if(id == 2 && 148 blicTcData.purpose.consents[1] !== undefined && blicTcData.purpose.consents[1] && 149 blicTcData.purpose.consents[2] !== undefined && blicTcData.purpose.consents[2] && 150 blicTcData.purpose.consents[3] !== undefined && blicTcData.purpose.consents[3] && 151 blicTcData.purpose.consents[4] !== undefined && blicTcData.purpose.consents[4] && 152 blicTcData.purpose.consents[7] !== undefined && blicTcData.purpose.consents[7] && 153 blicTcData.purpose.consents[9] !== undefined && blicTcData.purpose.consents[9] && 154 blicTcData.purpose.consents[10] !== undefined && blicTcData.purpose.consents[10]) { 155 valid_purposes = true; 156 } 157 //console.log('nonIabVendor (id, valid vendor, valid purposes)', id, valid_vendor, valid_purposes); 158 return (valid_vendor && valid_purposes); 159}
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.