0byt3m1n1
Path:
C:
/
Program Files (x86)
/
Adobe
/
Acrobat Reader DC
/
Reader
/
WebResources
/
Resource0
/
[
Home
]
File: acro_js.js
/************************************************************************* * ADOBE CONFIDENTIAL * ___________________ * * Copyright 2024 Adobe Incorporated * All Rights Reserved. * * NOTICE: All information contained herein is, and remains * the property of Adobe Incorporated and its suppliers, * if any. The intellectual and technical concepts contained * herein are proprietary to Adobe Incorporated and its * suppliers and are protected by all applicable intellectual property laws, * including trade secret and or copyright laws. * Dissemination of this information or reproduction of this material * is strictly forbidden unless prior written permission is obtained * from Adobe Incorporated. **************************************************************************/ const ODMConstants={PRIMITIVE_PROXY:1,MAP_PROXY:2,VECTOR_PROXY:3,FUNCTION_PROXY:4,ADD_EVENT:"addProperty",REMOVE_EVENT:"removeProperty",REPLACE_EVENT:"replaceProperty",CHANGE_EVENT:"change"},HAS_PROPERTY_METHOD="_hasProperty",GET_PROPS_METHOD="_getProps",ADDEVENTLISTENER_METHOD="_addEventListener",REMOVEEVENTLISTENER_METHOD="_removeEventListener",DONE_METHOD="_done",FAIL_METHOD="_fail",INVOKE_METHOD="_invoke",REMOVEALLLISTENERS_METHOD="_removeEventListeners",SET_VALUE_METHOD="_set",NULL_OBJ_STR="__NULLOBJ__",ACRO_JS_ID_STR="acrojs_id",SPECIAL_OBJ_STR="__SPECIALOBJ__",FUNCTION_OBJ_STR="__FUNCTION__",ACRO_JS_MSG_HEADER="isAcroMsg",ACRO_JS_MSG_HEADER_VAL="YES",METHOD_NAME_ARG_NAME="method_name",FUNC_ARGS_ARG_NAME="funArgs",RESPONSE_ID="response_id",APP_MODEL_VIEW_EVENT_RID="handleViewEvent",CALL_EVENT_HANDLER_RID="CallAppModelEventHandler",EVENT_TYPE_STR="eventType",CUSTOM_EVENT_TYPE="custom",EVENT_NAME_STR="eventName",EVENT_PARAMS_STR="eventParams",JS_EXCEPTION_EVENT="JSException",MARK_PAGE_AS_NON_BLANK="MarkPageNonBlank",CheckForBlankViewEveryMs=4500,CheckForBlankViewTimeOutMs=6e4;var enable_all_logs=0,g_isClassicView=-1===window.location.href.indexOf("rna-v2"),gIsNativeWebview=!0,gProxyRealValPropName="AcroDynamicTargetProxyTargetName",g_functionCallback={},g_SpecialObject={},g_acroJSObjMap=new Map,g_eventListenerMap=new Map,g_pendingEvents=new Map;_promises={};const CreateUniqueID=()=>Math.random().toString(16).slice(2),RNAMODEL_TYPE=Object.freeze({NOT_A_MODEL:0,CLASSIC_MODEL:1,MODERN_MODEL:2});function IsObjectOfRNAModel(e){return e&&e.hasOwnProperty("_contextId")&&e.hasOwnProperty("_proxy")&&e.hasOwnProperty("shouldCache")?RNAMODEL_TYPE.CLASSIC_MODEL:e&&e.hasOwnProperty("contextId")&&e.hasOwnProperty("proxy")&&e.hasOwnProperty("shouldCache")?RNAMODEL_TYPE.MODERN_MODEL:RNAMODEL_TYPE.NOT_A_MODEL}function IsObjectOfPrimitives(e){for(const o in e)if(e.hasOwnProperty(o)){var t=e[o];if(t)if("object"==typeof t){if(!IsObjectOfPrimitives(t))return!1}else if(!["string","number","boolean","undefined","symbol"].includes(typeof t))return!1}return!0}function CustomStringify(e){return JSON.stringify(e,function(e,t){var o,n;return null===t?NULL_OBJ_STR:t instanceof Map?(o=t,n=Object.create(null),o.forEach(function(e,t){n[t]=e}),n):t})}class AcroJSReservedProps{constructor(){}static props=new Set;static GetReservedProps(){return 0===AcroJSReservedProps.props.size&&(AcroJSReservedProps.props=new Set(["varructor","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toFixed","toLocaleString","toPrecision","toString","toLocaleString","concat","every","filter","forEach","indexOf","join","lastIndexOf","length","__proto__","slice","splice","map","pop","push","reduce","reduceRight","reverse","shift","some","sort","unshift","anchor","big","blink","bold","charAt","charCodeAt","fixed","fontcolor","fontsize","italics","localeCompare","match","replace","search","small","split","strike","sub","substr","substring","sup","toLocaleLowerCase","toLocaleUpperCase","toLowerCase","toUpperCase","trim","trimLeft","trimRight","bind","call","caller","apply","arguments","then","toJSON"])),AcroJSReservedProps.props}static isReserved(e){return AcroJSReservedProps.GetReservedProps().has(e)}}function IsBuiltInMethod(e){return e===HAS_PROPERTY_METHOD||e===GET_PROPS_METHOD?"kUtilityMethod":e===ADDEVENTLISTENER_METHOD||e===REMOVEEVENTLISTENER_METHOD||e===REMOVEALLLISTENERS_METHOD?"kEventHandlerMethod":e===DONE_METHOD||e===FAIL_METHOD?"kDoneMethod":e===INVOKE_METHOD?"kInvokeMethod":e===SET_VALUE_METHOD?"kSetValueMethod":"kNotAMethod"}class InvokeFuncReturn{constructor(e){this.retpromise=e}_done(t,o,n){this.retpromise.then(function(e){e._done(t,o,n)})}_fail(t,o,n){this.retpromise.then(function(e){e._fail(t,o,n)})}}function IsValidAppModelObject(e){return!!(e&&e.hasOwnProperty("_context")&&e.hasOwnProperty("_id")&&e.hasOwnProperty("_type"))}function IsPrimitiveAppModelType(e){return!IsValidAppModelObject(e)||e._type===ODMConstants.PRIMITIVE_PROXY}function AddToacrosJSObjMapForObj(e){g_acroJSObjMap.set(e.acrojs_id,e)}function RemoveFromacrosJSObjMapForObj(e){g_acroJSObjMap.delete(e.acrojs_id)}function AddToEventListernerMapForObj(e,t){AddToacrosJSObjMapForObj(e),g_eventListenerMap.has(e.acrojs_id)||g_eventListenerMap.set(e.acrojs_id,new Map),g_eventListenerMap.get(e.acrojs_id).has(t[0])||g_eventListenerMap.get(e.acrojs_id).set(t[0],new Array),g_eventListenerMap.get(e.acrojs_id).get(t[0]).push(t)}function RemoveFromEventListernerMapForObj(e,t){if(g_eventListenerMap.has(e.acrojs_id)&&g_eventListenerMap.get(e.acrojs_id).has(t[0])){for(var o=g_eventListenerMap.get(e.acrojs_id).get(t[0]),n=0;n<o.length;n++)if(o[n][0]===t[0]&&o[n][1]==t[1]){o.splice(n,1);break}0===o.length&&g_eventListenerMap.get(e.acrojs_id).delete(t[0]),0===g_eventListenerMap.get(e.acrojs_id).size&&(g_eventListenerMap.delete(e.acrojs_id),RemoveFromacrosJSObjMapForObj(e))}}function DispatchPendingEvents(e){if(g_pendingEvents.has(e.acrojs_id)){enable_all_logs&&console.log("Dispatching pending events for object id "+e.acrojs_id,g_pendingEvents.get(e.acrojs_id));for(var t=g_pendingEvents.get(e.acrojs_id),o=0;o<t.length;o++){var n=t[o];enable_all_logs&&console.log("Dispatching pending event "+n),AcroJS.HandleEventForObj(e.acrojs_id,n)}g_pendingEvents.delete(e.acrojs_id)}}function RemoveAllFromEventListernerMapForObj(e){g_eventListenerMap.has(e.acrojs_id)&&(g_eventListenerMap.delete(e.acrojs_id),RemoveFromacrosJSObjMapForObj(e))}function GetCallbackArrayForObjId(e,t){return g_eventListenerMap.has(e)&&g_eventListenerMap.get(e).has(t)?g_eventListenerMap.get(e).get(t):null}function isPrimitive(e){if(e){if("function"==typeof e||e.hasOwnProperty(ACRO_JS_ID_STR))return!1;if("object"==typeof e)for(var t in e)if(e.hasOwnProperty(t))if(!isPrimitive(e[t]))return!1}return!0}function RequiresConversionToProxy(e){return!isPrimitive(e)}var odm,logAPI,AcroDynamicTargetProxyTargetName=gProxyRealValPropName;class AcroDynamicTargetProxy{constructor(e,t){let o=new Proxy(e,{dynamicTarget:t?null:e,targetPromise:t,get:function(r,s,e){if(s===AcroDynamicTargetProxyTargetName)return this.dynamicTarget;r=this.dynamicTarget;var a,t,o=IsBuiltInMethod(s);if(null===r)return"kNotAMethod"===o?(a=this.targetPromise,t=new Promise((t,o)=>{a.then(function(e){e.hasOwnProperty(ACRO_JS_ID_STR)?AcroJS.get(e.acrojs_id,s).then(function(e){t(e)}):o("failed")})}),new AcroDynamicTargetProxy(this,t)):(a=this.targetPromise,function(...n){var e=new Promise((t,o)=>{a.then(function(e){e.hasOwnProperty(ACRO_JS_ID_STR)?s===ADDEVENTLISTENER_METHOD?(AddToEventListernerMapForObj(e,n),DispatchPendingEvents(r),t(!0)):s===REMOVEEVENTLISTENER_METHOD?(RemoveFromEventListernerMapForObj(e,n),t(!0)):s===REMOVEALLLISTENERS_METHOD?(RemoveAllFromEventListernerMapForObj(e),t(!0)):AcroJS.funcall(e.acrojs_id,s,n).then(function(e){t(e)}):o("failed")})});return s===INVOKE_METHOD?new InvokeFuncReturn(e):e});let n=Reflect.get(r,s,e);return void 0!==(n=null===n?void 0:n)||!AcroJSReservedProps.isReserved(s)&&r.hasOwnProperty(ACRO_JS_ID_STR)?"_size"===s?r._type===ODMConstants.MAP_PROXY?r.childProps.length:r._type===ODMConstants.VECTOR_PROXY?r.length:void 0:"_getProps"===s?function(){return r.childProps}:"_hasProperty"===s?function(t){return r.childProps.find(function(e){return e===t})}:"kNotAMethod"!==o?function(...e){return s===ADDEVENTLISTENER_METHOD?(AddToEventListernerMapForObj(r,e),DispatchPendingEvents(r),!0):s===REMOVEEVENTLISTENER_METHOD?(RemoveFromEventListernerMapForObj(r,e),!0):s!==REMOVEALLLISTENERS_METHOD?(e=AcroJS.funcall(r.acrojs_id,s,e),s===INVOKE_METHOD?new InvokeFuncReturn(e):e):void RemoveAllFromEventListernerMapForObj(r)}:void 0!==n||IsPrimitiveAppModelType(r)?void 0!==n&&RequiresConversionToProxy(n)&&(e=Object.getOwnPropertyDescriptor(r,s))&&e.configurable&&e.writable?new AcroDynamicTargetProxy(n,null):n:(t=AcroJS.get(r.acrojs_id,s),new AcroDynamicTargetProxy(this,t)):n},set:function(e,t,o,n){return t===AcroDynamicTargetProxyTargetName?(this.dynamicTarget=o,!0):(e=this.dynamicTarget,Reflect.set(e,t,o,n))}});return t&&t.then(function(e){o.AcroDynamicTargetProxyTargetName=e}),o}}function nativepostmessage(e){enable_all_logs&&console.log(e),nativepostmessageImpl(e)}function nativepostmessageImpl(e){window.chrome&&window.chrome.webview&&window.chrome.webview.postMessage?window.chrome.webview.postMessage(e):window.webkit&&window.webkit.messageHandlers&&window.webkit.messageHandlers.execute&&window.webkit.messageHandlers.execute.postMessage&&window.webkit.messageHandlers.execute.postMessage(e)}function sendJSErrorToNative(e){nativepostmessageImpl(CustomStringify({[EVENT_TYPE_STR]:CUSTOM_EVENT_TYPE,[EVENT_PARAMS_STR]:e,[EVENT_NAME_STR]:JS_EXCEPTION_EVENT}))}window.console.error=function(e){var t=(new Error(e).stack||"").split("\n")[2].match(/(http[s]?:\/\/.*?):(\d+):(\d+)/);t&&sendJSErrorToNative(e+`:${t[1]}:`+t[2])},window.addEventListener("error",function(e){sendJSErrorToNative(e.message+`:${e.filename}:`+e.lineno)},!0),window.addEventListener("unhandledrejection",function(e){sendJSErrorToNative("unhandledrejection- "+e.reason+`:${e.reason.fileName}:`+e.reason.lineNumber)}),window.addEventListener("securitypolicyviolation",function(e){sendJSErrorToNative("Refused to connect to "+e.blockedURI+" because it violates following CSP directive "+e.violatedDirective+`:${e.sourceFile}:`+e.lineNumber)});class AcroJS{static specialObjLen=SPECIAL_OBJ_STR.length;static ConvertArgumentBeforeNativeCall(e){if(null===e)return NULL_OBJ_STR;if("function"==typeof e)return n=CreateUniqueID(),g_functionCallback[n]=e,FUNCTION_OBJ_STR+n;if(e instanceof Object){var t,o,n=IsObjectOfRNAModel(e);if(n===RNAMODEL_TYPE.NOT_A_MODEL)return IsObjectOfPrimitives(e)||(t=CreateUniqueID(),g_SpecialObject[t]=e,e=SPECIAL_OBJ_STR+t),e;if(n===RNAMODEL_TYPE.CLASSIC_MODEL)return t=CreateUniqueID(),o={_contextId:e._contextId,_proxy:{acrojs_id:e._proxy.acrojs_id},shouldCache:e.shouldCache,__jsID__:SPECIAL_OBJ_STR+t},g_SpecialObject[t]=e,o;if(n===RNAMODEL_TYPE.MODERN_MODEL)return t=CreateUniqueID(),o={contextId:e.contextId,proxy:{acrojs_id:e.proxy.acrojs_id},shouldCache:e.shouldCache,__jsID__:SPECIAL_OBJ_STR+t},g_SpecialObject[t]=e,o}else if(IsObjectOfPrimitives(e));return e}static get(e,t){var o=CreateUniqueID(),n=new Promise((e,t)=>{_promises[o]={resolve:e,reject:t}}),r={};return r[ACRO_JS_MSG_HEADER]=ACRO_JS_MSG_HEADER_VAL,r[METHOD_NAME_ARG_NAME]="get",r[FUNC_ARGS_ARG_NAME]=arguments,r[RESPONSE_ID]=o,nativepostmessage(CustomStringify(r)),n}static funcall(e,t,o){var n=CreateUniqueID(),r=new Promise((e,t)=>{_promises[n]={resolve:e,reject:t}}),s={};s[ACRO_JS_MSG_HEADER]=ACRO_JS_MSG_HEADER_VAL,s[METHOD_NAME_ARG_NAME]="invoke",s[FUNC_ARGS_ARG_NAME]={0:e,1:t},s[RESPONSE_ID]=n,s[FUNC_ARGS_ARG_NAME][2]={};for(var a=0;a<o.length;a++){var i=AcroJS.ConvertArgumentBeforeNativeCall(o[a]);s[FUNC_ARGS_ARG_NAME][2][a]=i}return nativepostmessage(CustomStringify(s)),r}static createContext(e,t,o,n,r,s){var a=CreateUniqueID(),i={};i[ACRO_JS_MSG_HEADER]=ACRO_JS_MSG_HEADER_VAL,i[METHOD_NAME_ARG_NAME]="createContext",i[FUNC_ARGS_ARG_NAME]={},i[RESPONSE_ID]=a;for(var _=0;_<arguments.length&&null!=arguments[_];_++){var l=AcroJS.ConvertArgumentBeforeNativeCall(arguments[_]);i[FUNC_ARGS_ARG_NAME][_]=l}nativepostmessage(CustomStringify(i))}static ConvertResponseArgToProxy(e){for(var t,o=[],n=0;e.hasOwnProperty(n);)o.push(e[n++]),"string"==typeof o[o.length-1]&&o[o.length-1].startsWith(SPECIAL_OBJ_STR)&&(t=o[o.length-1].substring(this.specialObjLen),o[o.length-1]=g_SpecialObject[t],delete g_SpecialObject[t]),o[o.length-1]&&RequiresConversionToProxy(o[o.length-1])&&(o[o.length-1]=new AcroDynamicTargetProxy(o[o.length-1],null));return o}static UpdateProxyObject(e,t,o){var n=g_acroJSObjMap.get(o);switch(enable_all_logs&&console.log("Update proxy object for ",e,t,n),e){case ODMConstants.ADD_EVENT:n._type===ODMConstants.MAP_PROXY?(n.childProps.push(t.key),n._size=n.childProps.length,n[t.key]=t.property):n._type===ODMConstants.VECTOR_PROXY&&((r=parseInt(t.key))===n._size&&n._size++,n[t.key]=t.property);break;case ODMConstants.REMOVE_EVENT:n._type===ODMConstants.MAP_PROXY&&-1!=n.childProps.indexOf(t.key)?(n.childProps.splice(n.childProps.indexOf(t.key),1),n._size=n.childProps.length,delete n[t.key]):n._type===ODMConstants.VECTOR_PROXY&&t.key in n&&(n._size--,delete n[t.key]);break;case ODMConstants.REPLACE_EVENT:(n._type===ODMConstants.MAP_PROXY||n._type===ODMConstants.VECTOR_PROXY)&&(n[t.key]=t.newVal);break;case ODMConstants.CHANGE_EVENT:if(n._type===ODMConstants.PRIMITIVE_PROXY)n._value=t.newVal;else if(n._type===ODMConstants.MAP_PROXY){for(var r in n.childProps)delete n[n.childProps[r]];for(var r in delete n.childProps,n.childProps=t.newVal.childProps,n.childProps)n[n.childProps[r]]=t.newVal[n.childProps[r]];n._size=n.childProps.length}else if(n._type===ODMConstants.VECTOR_PROXY){for(r=0;r<n._size;r++)delete n[r];n._size=t.newVal.length;for(r=0;r<n._size;r++)n[r]=t.newVal[r]}}}static CallVector(e,t){for(var o in e){var o=e[o],n=o[2],r=o[1];t[2]=n,r.apply(o[3],t),delete t[2]}}static notifyXMLRequestFailure(e){var t={[EVENT_TYPE_STR]:CUSTOM_EVENT_TYPE,[EVENT_PARAMS_STR]:[],[EVENT_NAME_STR]:"RequestFailed"};t[EVENT_PARAMS_STR][0]=e,nativepostmessage(CustomStringify(t))}static performXHRRequest(e){const a=e[0],t=e[1];var o=e[2],n=e[3],r=e[4],s=(e[5],e[6]);const i=e[7];enable_all_logs&&console.log("Starting network call for url ",t);var _=new XMLHttpRequest;_.open(o,t,!0),_.responseType=1===i?"blob":"text",_.timeout=s;for(const l in n)n.hasOwnProperty(l)&&_.setRequestHeader(l,n[l]);_.onprogress=function(e){var t={[EVENT_TYPE_STR]:CUSTOM_EVENT_TYPE,[EVENT_PARAMS_STR]:[],[EVENT_NAME_STR]:"DownloadProgress"};t[EVENT_PARAMS_STR][0]=a,t[EVENT_PARAMS_STR][1]=e.loaded,t[EVENT_PARAMS_STR][2]=e.total,nativepostmessage(CustomStringify(t))},_.upload.onprogress=function(e){var t={[EVENT_TYPE_STR]:CUSTOM_EVENT_TYPE,[EVENT_PARAMS_STR]:[],[EVENT_NAME_STR]:"UploadProgress"};t[EVENT_PARAMS_STR][0]=a,t[EVENT_PARAMS_STR][1]=e.loaded,t[EVENT_PARAMS_STR][2]=e.total,nativepostmessage(CustomStringify(t))},_.ontimeout=function(){AcroJS.notifyXMLRequestFailure(a)},_.onload=function(){if(i){var s=new FileReader;s.onload=function(){var e=s.result.split(",")[1],t={[EVENT_TYPE_STR]:CUSTOM_EVENT_TYPE,[EVENT_PARAMS_STR]:[],[EVENT_NAME_STR]:"RequestCompleted"},o=(t.eventParams[0]=a,t.eventParams[1]=_.status,t.eventParams[2]=_.statusText,t.eventParams[3]="ERR_NONE","");try{var n=_.getResponseHeader("Content-Type"),o=n?n.split(";")[0].trim():""}catch(e){console.error("Error in getting mimetype")}t.eventParams[4]=o;n=_.getAllResponseHeaders().trim().split(/[\r\n]+/);const r={};n.forEach(e=>{var e=e.split(": "),t=e.shift(),e=e.join(": ");r[t]=e}),t.eventParams[5]=r,t.eventParams[6]=e,nativepostmessage(CustomStringify(t))},s.readAsDataURL(_.response)}else{var e={[EVENT_TYPE_STR]:CUSTOM_EVENT_TYPE,[EVENT_PARAMS_STR]:[],[EVENT_NAME_STR]:"RequestCompleted"},t=(e.eventParams[0]=a,e.eventParams[1]=_.status,e.eventParams[2]=_.statusText,e.eventParams[3]="ERR_NONE","");try{var o=_.getResponseHeader("Content-Type"),t=o?o.split(";")[0].trim():""}catch(e){console.error("Error in getting mimetype")}e.eventParams[4]=t;o=_.getAllResponseHeaders().trim().split(/[\r\n]+/);const n={};o.forEach(e=>{var e=e.split(": "),t=e.shift(),e=e.join(": ");n[t]=e}),e.eventParams[5]=n,e.eventParams[6]=_.response,nativepostmessage(CustomStringify(e))}},_.onerror=function(){console.error("Got error for following call, url = ",t,"status = ",_.status),AcroJS.notifyXMLRequestFailure(a)},0<r.length?(e=r[0],_.send(e)):_.send()}static HandleEventForObj(e,t){var o=t[0],n=t[1],n=(enable_all_logs&&console.log("taking call event handler route - ",o,n),this.UpdateProxyObject(o,n,e),this.ConvertResponseArgToProxy(t)),t=GetCallbackArrayForObjId(e,o),o=(this.CallVector(t,n),GetCallbackArrayForObjId(e,"all"));this.CallVector(o,n)}static processResponse(e,t,o){var n=_promises[e];if(n)RequiresConversionToProxy(t=t.hasOwnProperty("0")?t[0]:t)&&(t=new AcroDynamicTargetProxy(t,null)),n.resolve(t),delete _promises[e];else if(g_functionCallback[e]){var n=this.ConvertResponseArgToProxy(t),r=o.substring(this.specialObjLen),s=g_SpecialObject[r];enable_all_logs&&console.log("taking funcion callback route - ",r,e,s,g_functionCallback[e]),delete g_SpecialObject[r],g_functionCallback[e].apply(s,n),delete g_functionCallback[e]}else if(e===APP_MODEL_VIEW_EVENT_RID)try{var a=t[0],i=t[1];"setDocumentTitle"===a?document.title=i[0]:"addMaskOauthDialog"==a?g_isClassicView?($("#modal-mask").addClass("shown"),$("#modal-mask").addClass("alert"),$("#modal-mask").removeClass("transparent")):document.getElementById("modal-mask").style.display="block":"removeMaskOauthDialog"==a&&(g_isClassicView?($("#modal-mask").removeClass("shown"),$("#modal-mask").removeClass("alert"),$("#modal-mask").addClass("transparent")):document.getElementById("modal-mask").style.display="none")}catch(e){console.log("Error in handleViewEvent",e)}else e===CALL_EVENT_HANDLER_RID?g_acroJSObjMap.get(o)?this.HandleEventForObj(o,t):(enable_all_logs&&console.log("Object not found in acrojs map, storing the event for later dispatch",o),g_pendingEvents.has(o)||g_pendingEvents.set(o,[]),g_pendingEvents.get(o).push(t)):"handleNetworkRequest"===e&&this.performXHRRequest(t)}}function log(){}function getSessionInfo(){}function startLogSession(){}function endLogSession(){}function ProcessNativeMessage(e){enable_all_logs&&console.log(e);e=JSON.parse(e);enable_all_logs&&console.log(e),AcroJS.processResponse(e[0],e[1],e[2])}function isWindows(){return-1!==navigator.userAgent.indexOf("Windows")}odm=odm||{createContext:function(e,t,o,n,r,s){return AcroJS.createContext(e,t,o,n,r,s)},destroyContext:function(){}},window.odm=odm,logAPI||((logAPI={}).log=log,logAPI.getSessionInfo=getSessionInfo,logAPI.startLogSession=startLogSession,logAPI.endLogSession=endLogSession),window.logAPI=logAPI,window.chrome&&window.chrome.webview&&window.chrome.webview.postMessage&&window.chrome.webview.addEventListener("message",function(e){ProcessNativeMessage(e.data)}),isWindows()&&document.addEventListener("keydown",function(e){var t;"ArrowRight"!==e.key&&"Escape"!==e.key||((t={})[METHOD_NAME_ARG_NAME]="handleKeyEvent",t[FUNC_ARGS_ARG_NAME]={key:e.key},setTimeout(function(){nativepostmessage(CustomStringify(t))},0))});