���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC /******/ (() => { // 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__, { store: () => (/* reexport */ store) }); // NAMESPACE OBJECT: ./node_modules/@wordpress/notices/build-module/store/actions.js var actions_namespaceObject = {}; __webpack_require__.r(actions_namespaceObject); __webpack_require__.d(actions_namespaceObject, { createErrorNotice: () => (createErrorNotice), createInfoNotice: () => (createInfoNotice), createNotice: () => (createNotice), createSuccessNotice: () => (createSuccessNotice), createWarningNotice: () => (createWarningNotice), removeAllNotices: () => (removeAllNotices), removeNotice: () => (removeNotice), removeNotices: () => (removeNotices) }); // NAMESPACE OBJECT: ./node_modules/@wordpress/notices/build-module/store/selectors.js var selectors_namespaceObject = {}; __webpack_require__.r(selectors_namespaceObject); __webpack_require__.d(selectors_namespaceObject, { getNotices: () => (getNotices) }); ;// CONCATENATED MODULE: external ["wp","data"] const external_wp_data_namespaceObject = window["wp"]["data"]; ;// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/utils/on-sub-key.js /** * Higher-order reducer creator which creates a combined reducer object, keyed * by a property on the action object. * * @param {string} actionProperty Action property by which to key object. * * @return {Function} Higher-order reducer. */ const onSubKey = actionProperty => reducer => (state = {}, action) => { // Retrieve subkey from action. Do not track if undefined; useful for cases // where reducer is scoped by action shape. const key = action[actionProperty]; if (key === undefined) { return state; } // Avoid updating state if unchanged. Note that this also accounts for a // reducer which returns undefined on a key which is not yet tracked. const nextKeyState = reducer(state[key], action); if (nextKeyState === state[key]) { return state; } return { ...state, [key]: nextKeyState }; }; /* harmony default export */ const on_sub_key = (onSubKey); ;// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/reducer.js /** * Internal dependencies */ /** * Reducer returning the next notices state. The notices state is an object * where each key is a context, its value an array of notice objects. * * @param {Object} state Current state. * @param {Object} action Dispatched action. * * @return {Object} Updated state. */ const notices = on_sub_key('context')((state = [], action) => { switch (action.type) { case 'CREATE_NOTICE': // Avoid duplicates on ID. return [...state.filter(({ id }) => id !== action.notice.id), action.notice]; case 'REMOVE_NOTICE': return state.filter(({ id }) => id !== action.id); case 'REMOVE_NOTICES': return state.filter(({ id }) => !action.ids.includes(id)); case 'REMOVE_ALL_NOTICES': return state.filter(({ type }) => type !== action.noticeType); } return state; }); /* harmony default export */ const reducer = (notices); ;// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/constants.js /** * Default context to use for notice grouping when not otherwise specified. Its * specific value doesn't hold much meaning, but it must be reasonably unique * and, more importantly, referenced consistently in the store implementation. * * @type {string} */ const DEFAULT_CONTEXT = 'global'; /** * Default notice status. * * @type {string} */ const DEFAULT_STATUS = 'info'; ;// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/actions.js /** * Internal dependencies */ /** * @typedef {Object} WPNoticeAction Object describing a user action option associated with a notice. * * @property {string} label Message to use as action label. * @property {?string} url Optional URL of resource if action incurs * browser navigation. * @property {?Function} onClick Optional function to invoke when action is * triggered by user. */ let uniqueId = 0; /** * Returns an action object used in signalling that a notice is to be created. * * @param {string|undefined} status Notice status ("info" if undefined is passed). * @param {string} content Notice message. * @param {Object} [options] Notice options. * @param {string} [options.context='global'] Context under which to * group notice. * @param {string} [options.id] Identifier for notice. * Automatically assigned * if not specified. * @param {boolean} [options.isDismissible=true] Whether the notice can * be dismissed by user. * @param {string} [options.type='default'] Type of notice, one of * `default`, or `snackbar`. * @param {boolean} [options.speak=true] Whether the notice * content should be * announced to screen * readers. * @param {Array} [options.actions] User actions to be * presented with notice. * @param {string} [options.icon] An icon displayed with the notice. * Only used when type is set to `snackbar`. * @param {boolean} [options.explicitDismiss] Whether the notice includes * an explicit dismiss button and * can't be dismissed by clicking * the body of the notice. Only applies * when type is set to `snackbar`. * @param {Function} [options.onDismiss] Called when the notice is dismissed. * * @example * ```js * import { __ } from '@wordpress/i18n'; * import { useDispatch } from '@wordpress/data'; * import { store as noticesStore } from '@wordpress/notices'; * import { Button } from '@wordpress/components'; * * const ExampleComponent = () => { * const { createNotice } = useDispatch( noticesStore ); * return ( * * ); * }; * ``` * * @return {Object} Action object. */ function createNotice(status = DEFAULT_STATUS, content, options = {}) { const { speak = true, isDismissible = true, context = DEFAULT_CONTEXT, id = `${context}${++uniqueId}`, actions = [], type = 'default', __unstableHTML, icon = null, explicitDismiss = false, onDismiss } = options; // The supported value shape of content is currently limited to plain text // strings. To avoid setting expectation that e.g. a React Element could be // supported, cast to a string. content = String(content); return { type: 'CREATE_NOTICE', context, notice: { id, status, content, spokenMessage: speak ? content : null, __unstableHTML, isDismissible, actions, type, icon, explicitDismiss, onDismiss } }; } /** * Returns an action object used in signalling that a success notice is to be * created. Refer to `createNotice` for options documentation. * * @see createNotice * * @param {string} content Notice message. * @param {Object} [options] Optional notice options. * * @example * ```js * import { __ } from '@wordpress/i18n'; * import { useDispatch } from '@wordpress/data'; * import { store as noticesStore } from '@wordpress/notices'; * import { Button } from '@wordpress/components'; * * const ExampleComponent = () => { * const { createSuccessNotice } = useDispatch( noticesStore ); * return ( * * ); * }; * ``` * * @return {Object} Action object. */ function createSuccessNotice(content, options) { return createNotice('success', content, options); } /** * Returns an action object used in signalling that an info notice is to be * created. Refer to `createNotice` for options documentation. * * @see createNotice * * @param {string} content Notice message. * @param {Object} [options] Optional notice options. * * @example * ```js * import { __ } from '@wordpress/i18n'; * import { useDispatch } from '@wordpress/data'; * import { store as noticesStore } from '@wordpress/notices'; * import { Button } from '@wordpress/components'; * * const ExampleComponent = () => { * const { createInfoNotice } = useDispatch( noticesStore ); * return ( * * ); * }; *``` * * @return {Object} Action object. */ function createInfoNotice(content, options) { return createNotice('info', content, options); } /** * Returns an action object used in signalling that an error notice is to be * created. Refer to `createNotice` for options documentation. * * @see createNotice * * @param {string} content Notice message. * @param {Object} [options] Optional notice options. * * @example * ```js * import { __ } from '@wordpress/i18n'; * import { useDispatch } from '@wordpress/data'; * import { store as noticesStore } from '@wordpress/notices'; * import { Button } from '@wordpress/components'; * * const ExampleComponent = () => { * const { createErrorNotice } = useDispatch( noticesStore ); * return ( * * ); * }; * ``` * * @return {Object} Action object. */ function createErrorNotice(content, options) { return createNotice('error', content, options); } /** * Returns an action object used in signalling that a warning notice is to be * created. Refer to `createNotice` for options documentation. * * @see createNotice * * @param {string} content Notice message. * @param {Object} [options] Optional notice options. * * @example * ```js * import { __ } from '@wordpress/i18n'; * import { useDispatch } from '@wordpress/data'; * import { store as noticesStore } from '@wordpress/notices'; * import { Button } from '@wordpress/components'; * * const ExampleComponent = () => { * const { createWarningNotice, createInfoNotice } = useDispatch( noticesStore ); * return ( * * ); * }; * ``` * * @return {Object} Action object. */ function createWarningNotice(content, options) { return createNotice('warning', content, options); } /** * Returns an action object used in signalling that a notice is to be removed. * * @param {string} id Notice unique identifier. * @param {string} [context='global'] Optional context (grouping) in which the notice is * intended to appear. Defaults to default context. * * @example * ```js * import { __ } from '@wordpress/i18n'; * import { useDispatch } from '@wordpress/data'; * import { store as noticesStore } from '@wordpress/notices'; * import { Button } from '@wordpress/components'; * * const ExampleComponent = () => { * const notices = useSelect( ( select ) => select( noticesStore ).getNotices() ); * const { createWarningNotice, removeNotice } = useDispatch( noticesStore ); * * return ( * <> * * { notices.length > 0 && ( * * ) } * * ); *}; * ``` * * @return {Object} Action object. */ function removeNotice(id, context = DEFAULT_CONTEXT) { return { type: 'REMOVE_NOTICE', id, context }; } /** * Removes all notices from a given context. Defaults to the default context. * * @param {string} noticeType The context to remove all notices from. * @param {string} context The context to remove all notices from. * * @example * ```js * import { __ } from '@wordpress/i18n'; * import { useDispatch, useSelect } from '@wordpress/data'; * import { store as noticesStore } from '@wordpress/notices'; * import { Button } from '@wordpress/components'; * * export const ExampleComponent = () => { * const notices = useSelect( ( select ) => * select( noticesStore ).getNotices() * ); * const { removeAllNotices } = useDispatch( noticesStore ); * return ( * <> * * * * * ); * }; * ``` * * @return {Object} Action object. */ function removeAllNotices(noticeType = 'default', context = DEFAULT_CONTEXT) { return { type: 'REMOVE_ALL_NOTICES', noticeType, context }; } /** * Returns an action object used in signalling that several notices are to be removed. * * @param {string[]} ids List of unique notice identifiers. * @param {string} [context='global'] Optional context (grouping) in which the notices are * intended to appear. Defaults to default context. * @example * ```js * import { __ } from '@wordpress/i18n'; * import { useDispatch, useSelect } from '@wordpress/data'; * import { store as noticesStore } from '@wordpress/notices'; * import { Button } from '@wordpress/components'; * * const ExampleComponent = () => { * const notices = useSelect( ( select ) => * select( noticesStore ).getNotices() * ); * const { removeNotices } = useDispatch( noticesStore ); * return ( * <> * * * * ); * }; * ``` * @return {Object} Action object. */ function removeNotices(ids, context = DEFAULT_CONTEXT) { return { type: 'REMOVE_NOTICES', ids, context }; } ;// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/selectors.js /** * Internal dependencies */ /** @typedef {import('./actions').WPNoticeAction} WPNoticeAction */ /** * The default empty set of notices to return when there are no notices * assigned for a given notices context. This can occur if the getNotices * selector is called without a notice ever having been created for the * context. A shared value is used to ensure referential equality between * sequential selector calls, since otherwise `[] !== []`. * * @type {Array} */ const DEFAULT_NOTICES = []; /** * @typedef {Object} WPNotice Notice object. * * @property {string} id Unique identifier of notice. * @property {string} status Status of notice, one of `success`, * `info`, `error`, or `warning`. Defaults * to `info`. * @property {string} content Notice message. * @property {string} spokenMessage Audibly announced message text used by * assistive technologies. * @property {string} __unstableHTML Notice message as raw HTML. Intended to * serve primarily for compatibility of * server-rendered notices, and SHOULD NOT * be used for notices. It is subject to * removal without notice. * @property {boolean} isDismissible Whether the notice can be dismissed by * user. Defaults to `true`. * @property {string} type Type of notice, one of `default`, * or `snackbar`. Defaults to `default`. * @property {boolean} speak Whether the notice content should be * announced to screen readers. Defaults to * `true`. * @property {WPNoticeAction[]} actions User actions to present with notice. */ /** * Returns all notices as an array, optionally for a given context. Defaults to * the global context. * * @param {Object} state Notices state. * @param {?string} context Optional grouping context. * * @example * *```js * import { useSelect } from '@wordpress/data'; * import { store as noticesStore } from '@wordpress/notices'; * * const ExampleComponent = () => { * const notices = useSelect( ( select ) => select( noticesStore ).getNotices() ); * return ( * * ) * }; *``` * * @return {WPNotice[]} Array of notices. */ function getNotices(state, context = DEFAULT_CONTEXT) { return state[context] || DEFAULT_NOTICES; } ;// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/index.js /** * WordPress dependencies */ /** * Internal dependencies */ /** * Store definition for the notices namespace. * * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore */ const store = (0,external_wp_data_namespaceObject.createReduxStore)('core/notices', { reducer: reducer, actions: actions_namespaceObject, selectors: selectors_namespaceObject }); (0,external_wp_data_namespaceObject.register)(store); ;// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/index.js (window.wp = window.wp || {}).notices = __webpack_exports__; /******/ })() ;