PageSourceSearch

https://www.ffmbank.com/assets/v2/scripts/captcha.js?bh=aa71cd

js ffmbank.com collected 2026-09-25 02:55:48 UTC 2,923 bytes, 1 lines download raw bytes

1var Captcha;function initAudioElement(a,e,t){e&&(e.src=t,e.load())}function declareEventHandlers(a){a.querySelector(".b-new-image-captcha").addEventListener("click",function(){getNewImageCaptcha(a)}),a.querySelector(".b-new-audio-captcha").addEventListener("click",function(){getNewAudioCaptcha(a)}),a.querySelector(".b-show-audio-captcha").addEventListener("click",function(){switchToAudioCaptcha(a)}),a.querySelector(".b-show-image-captcha").addEventListener("click",function(){switchToImageCaptcha(a)}),a.querySelector(".b-audio-captcha-play").addEventListener("click",function(){playAudioCaptcha(a)})}async function postData(a="",e={}){return(await fetch(a,{method:"POST",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer",body:JSON.stringify(e)})).json()}function getNewImageCaptcha(e){e.querySelector(".b-captcha-answer-input").value="",postData("/_/api/captcha").then(function(a){e.querySelector("img.b-captcha-image").setAttribute("dataId",a.id),e.querySelector("img.b-captcha-image").setAttribute("src","/_/api/captcha/image/"+a.fileId+".png"),e.querySelector(".b-captcha-id-input").value=a.captchaId,switchToImageCaptcha(e,"toggle")}).catch(a=>console.log(a))}function getNewAudioCaptcha(c){c.querySelector(".b-captcha-answer-input").value="",postData("/_/api/captcha/audio").then(function(a){var e,t="/_/api/captcha/audio/"+a.fileId+".wav";c.querySelector(".b-audio-captcha-download").setAttribute("href",t),c.querySelector(".b-captcha-id-input").value=a.captchaId,document.getElementById("audioCaptchaPlayer")?e=document.getElementById("audioCaptchaPlayer"):((e=document.createElement("audio")).setAttribute("id","audioCaptchaPlayer"),c.querySelector(".b-captcha-audio-holder").appendChild(e)),e.canPlayType&&"no"!==e.canPlayType("audio/wav")&&""!==e.canPlayType("audio/wav")?initAudioElement(c,e,t):console.log("User cannot playback audio"),switchToAudioCaptcha(c,"toggle")}).catch(a=>console.log(a))}function switchToAudioCaptcha(a,e="init"){return[].forEach.call(a.querySelectorAll(".b-captcha-audio"),function(a){a.style.display="block"}),[].forEach.call(a.querySelectorAll(".b-captcha-image"),function(a){a.style.display="none"}),"init"!==e||getNewAudioCaptcha(a)}function switchToImageCaptcha(a,e="init"){return[].forEach.call(a.querySelectorAll(".b-captcha-audio"),function(a){a.style.display="none"}),[].forEach.call(a.querySelectorAll(".b-captcha-image"),function(a){a.style.display="block"}),"init"!==e||getNewImageCaptcha(a)}function playAudioCaptcha(a){if(a.getElementsByTagName("audio")[0])return a.getElementsByTagName("audio")[0].play()}function setCaptcha(a,e="d-block"){declareEventHandlers(a),switchToImageCaptcha(a),a.classList.add(e),a.removeAttribute("style")}document.addEventListener("DOMContentLoaded",function(){document.querySelectorAll(".b-captcha").forEach(a=>{setCaptcha(a,"d-flex")})});

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.