react-planner-viewer
Version:
react-planner-viewer is a React Component for view plans builded with react-planner in 2D mode
252 lines (226 loc) • 31.4 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
// ACTIONS project
var NEW_PROJECT = exports.NEW_PROJECT = 'NEW_PROJECT';
var LOAD_PROJECT = exports.LOAD_PROJECT = 'LOAD_PROJECT';
var SAVE_PROJECT = exports.SAVE_PROJECT = 'SAVE_PROJECT';
var OPEN_CATALOG = exports.OPEN_CATALOG = 'OPEN_CATALOG';
var SELECT_TOOL_EDIT = exports.SELECT_TOOL_EDIT = 'SELECT_TOOL_EDIT';
var UNSELECT_ALL = exports.UNSELECT_ALL = 'UNSELECT_ALL';
var SET_PROPERTIES = exports.SET_PROPERTIES = 'SET_PROPERTIES';
var SET_ITEMS_ATTRIBUTES = exports.SET_ITEMS_ATTRIBUTES = 'SET_ITEMS_ATTRIBUTES';
var SET_LINES_ATTRIBUTES = exports.SET_LINES_ATTRIBUTES = 'SET_LINES_ATTRIBUTES';
var SET_HOLES_ATTRIBUTES = exports.SET_HOLES_ATTRIBUTES = 'SET_HOLES_ATTRIBUTES';
var REMOVE = exports.REMOVE = 'REMOVE';
var UNDO = exports.UNDO = 'UNDO';
var ROLLBACK = exports.ROLLBACK = 'ROLLBACK';
var SET_PROJECT_PROPERTIES = exports.SET_PROJECT_PROPERTIES = 'SET_PROJECT_PROPERTIES';
var OPEN_PROJECT_CONFIGURATOR = exports.OPEN_PROJECT_CONFIGURATOR = 'OPEN_PROJECT_CONFIGURATOR';
var INIT_CATALOG = exports.INIT_CATALOG = 'INIT_CATALOG';
var UPDATE_MOUSE_COORDS = exports.UPDATE_MOUSE_COORDS = 'UPDATE_MOUSE_COORDS';
var UPDATE_ZOOM_SCALE = exports.UPDATE_ZOOM_SCALE = 'UPDATE_ZOOM_SCALE';
var TOGGLE_SNAP = exports.TOGGLE_SNAP = 'TOGGLE_SNAP';
var CHANGE_CATALOG_PAGE = exports.CHANGE_CATALOG_PAGE = 'CHANGE_CATALOG_PAGE';
var GO_BACK_TO_CATALOG_PAGE = exports.GO_BACK_TO_CATALOG_PAGE = 'GO_BACK_TO_CATALOG_PAGE';
var THROW_ERROR = exports.THROW_ERROR = 'THROW_ERROR';
var THROW_WARNING = exports.THROW_WARNING = 'THROW_WARNING';
var COPY_PROPERTIES = exports.COPY_PROPERTIES = 'COPY_PROPERTIES';
var PASTE_PROPERTIES = exports.PASTE_PROPERTIES = 'PASTE_PROPERTIES';
var PUSH_LAST_SELECTED_CATALOG_ELEMENT_TO_HISTORY = exports.PUSH_LAST_SELECTED_CATALOG_ELEMENT_TO_HISTORY = 'PUSH_LAST_SELECTED_CATALOG_ELEMENT_TO_HISTORY';
// ACTIONS viewer2D
var SELECT_TOOL_ZOOM_IN = exports.SELECT_TOOL_ZOOM_IN = 'SELECT_TOOL_ZOOM_IN';
var SELECT_TOOL_ZOOM_OUT = exports.SELECT_TOOL_ZOOM_OUT = 'SELECT_TOOL_ZOOM_OUT';
var SELECT_TOOL_PAN = exports.SELECT_TOOL_PAN = 'SELECT_TOOL_PAN';
var UPDATE_2D_CAMERA = exports.UPDATE_2D_CAMERA = 'UPDATE_2D_CAMERA';
//ACTIONS viewer3D
var SELECT_TOOL_3D_VIEW = exports.SELECT_TOOL_3D_VIEW = 'SELECT_TOOL_3D_VIEW';
var SELECT_TOOL_3D_FIRST_PERSON = exports.SELECT_TOOL_3D_FIRST_PERSON = 'SELECT_TOOL_3D_FIRST_PERSON';
//ACTIONS items
var SELECT_TOOL_DRAWING_ITEM = exports.SELECT_TOOL_DRAWING_ITEM = 'SELECT_TOOL_DRAWING_ITEM';
var UPDATE_DRAWING_ITEM = exports.UPDATE_DRAWING_ITEM = 'UPDATE_DRAWING_ITEM';
var END_DRAWING_ITEM = exports.END_DRAWING_ITEM = 'END_DRAWING_ITEM';
var BEGIN_DRAGGING_ITEM = exports.BEGIN_DRAGGING_ITEM = 'BEGIN_DRAGGING_ITEM';
var UPDATE_DRAGGING_ITEM = exports.UPDATE_DRAGGING_ITEM = 'UPDATE_DRAGGING_ITEM';
var END_DRAGGING_ITEM = exports.END_DRAGGING_ITEM = 'END_DRAGGING_ITEM';
var BEGIN_ROTATING_ITEM = exports.BEGIN_ROTATING_ITEM = 'BEGIN_ROTATING_ITEM';
var UPDATE_ROTATING_ITEM = exports.UPDATE_ROTATING_ITEM = 'UPDATE_ROTATING_ITEM';
var END_ROTATING_ITEM = exports.END_ROTATING_ITEM = 'END_ROTATING_ITEM';
//ACTION drawings
var SELECT_HOLE = exports.SELECT_HOLE = 'SELECT_HOLE';
var SELECT_AREA = exports.SELECT_AREA = 'SELECT_AREA';
var SELECT_ITEM = exports.SELECT_ITEM = 'SELECT_ITEM';
var SELECT_LINE = exports.SELECT_LINE = 'SELECT_LINE';
var SELECT_TOOL_DRAWING_LINE = exports.SELECT_TOOL_DRAWING_LINE = 'SELECT_TOOL_DRAWING_LINE';
var BEGIN_DRAWING_LINE = exports.BEGIN_DRAWING_LINE = 'BEGIN_DRAWING_LINE';
var UPDATE_DRAWING_LINE = exports.UPDATE_DRAWING_LINE = 'UPDATE_DRAWING_LINE';
var END_DRAWING_LINE = exports.END_DRAWING_LINE = 'END_DRAWING_LINE';
var SELECT_TOOL_DRAWING_HOLE = exports.SELECT_TOOL_DRAWING_HOLE = 'SELECT_TOOL_DRAWING_HOLE';
var UPDATE_DRAWING_HOLE = exports.UPDATE_DRAWING_HOLE = 'UPDATE_DRAWING_HOLE';
var END_DRAWING_HOLE = exports.END_DRAWING_HOLE = 'END_DRAWING_HOLE';
var BEGIN_DRAGGING_LINE = exports.BEGIN_DRAGGING_LINE = 'BEGIN_DRAGGING_LINE';
var UPDATE_DRAGGING_LINE = exports.UPDATE_DRAGGING_LINE = 'UPDATE_DRAGGING_LINE';
var END_DRAGGING_LINE = exports.END_DRAGGING_LINE = 'END_DRAGGING_LINE';
var SELECT_TOOL_UPLOAD_IMAGE = exports.SELECT_TOOL_UPLOAD_IMAGE = 'SELECT_TOOL_UPLOAD_IMAGE';
var BEGIN_UPLOADING_IMAGE = exports.BEGIN_UPLOADING_IMAGE = 'BEGIN_UPLOADING_IMAGE';
var END_UPLOADING_IMAGE = exports.END_UPLOADING_IMAGE = 'END_UPLOADING_IMAGE';
var BEGIN_FITTING_IMAGE = exports.BEGIN_FITTING_IMAGE = 'BEGIN_FITTING_IMAGE';
var END_FITTING_IMAGE = exports.END_FITTING_IMAGE = 'END_FITTING_IMAGE';
var BEGIN_DRAGGING_HOLE = exports.BEGIN_DRAGGING_HOLE = 'BEGIN_DRAGGING_HOLE';
var UPDATE_DRAGGING_HOLE = exports.UPDATE_DRAGGING_HOLE = 'UPDATE_DRAGGING_HOLE';
var END_DRAGGING_HOLE = exports.END_DRAGGING_HOLE = 'END_DRAGGING_HOLE';
var SHOW_HEAT_MAP_AREAS = exports.SHOW_HEAT_MAP_AREAS = 'SHOW_HEAT_MAP_AREAS';
//ACTIONS vertices
var BEGIN_DRAGGING_VERTEX = exports.BEGIN_DRAGGING_VERTEX = 'BEGIN_DRAGGING_VERTEX';
var UPDATE_DRAGGING_VERTEX = exports.UPDATE_DRAGGING_VERTEX = 'UPDATE_DRAGGING_VERTEX';
var END_DRAGGING_VERTEX = exports.END_DRAGGING_VERTEX = 'END_DRAGGING_VERTEX';
//ACTIONS scene
var SET_LAYER_PROPERTIES = exports.SET_LAYER_PROPERTIES = 'SET_LAYER_PROPERTIES';
var ADD_LAYER = exports.ADD_LAYER = 'ADD_LAYER';
var SELECT_LAYER = exports.SELECT_LAYER = 'SELECT_LAYER';
var REMOVE_LAYER = exports.REMOVE_LAYER = 'REMOVE_LAYER';
//GROUPING ACTIONS
var PROJECT_ACTIONS = exports.PROJECT_ACTIONS = {
NEW_PROJECT: NEW_PROJECT,
LOAD_PROJECT: LOAD_PROJECT,
SAVE_PROJECT: SAVE_PROJECT,
OPEN_CATALOG: OPEN_CATALOG,
SELECT_TOOL_EDIT: SELECT_TOOL_EDIT,
UNSELECT_ALL: UNSELECT_ALL,
SET_PROPERTIES: SET_PROPERTIES,
SET_ITEMS_ATTRIBUTES: SET_ITEMS_ATTRIBUTES,
SET_LINES_ATTRIBUTES: SET_LINES_ATTRIBUTES,
SET_HOLES_ATTRIBUTES: SET_HOLES_ATTRIBUTES,
REMOVE: REMOVE,
UNDO: UNDO,
ROLLBACK: ROLLBACK,
SET_PROJECT_PROPERTIES: SET_PROJECT_PROPERTIES,
OPEN_PROJECT_CONFIGURATOR: OPEN_PROJECT_CONFIGURATOR,
INIT_CATALOG: INIT_CATALOG,
UPDATE_MOUSE_COORDS: UPDATE_MOUSE_COORDS,
UPDATE_ZOOM_SCALE: UPDATE_ZOOM_SCALE,
TOGGLE_SNAP: TOGGLE_SNAP,
CHANGE_CATALOG_PAGE: CHANGE_CATALOG_PAGE,
GO_BACK_TO_CATALOG_PAGE: GO_BACK_TO_CATALOG_PAGE,
THROW_ERROR: THROW_ERROR,
THROW_WARNING: THROW_WARNING,
COPY_PROPERTIES: COPY_PROPERTIES,
PASTE_PROPERTIES: PASTE_PROPERTIES,
PUSH_LAST_SELECTED_CATALOG_ELEMENT_TO_HISTORY: PUSH_LAST_SELECTED_CATALOG_ELEMENT_TO_HISTORY
};
var VIEWER2D_ACTIONS = exports.VIEWER2D_ACTIONS = {
SELECT_TOOL_ZOOM_IN: SELECT_TOOL_ZOOM_IN,
SELECT_TOOL_ZOOM_OUT: SELECT_TOOL_ZOOM_OUT,
SELECT_TOOL_PAN: SELECT_TOOL_PAN,
UPDATE_2D_CAMERA: UPDATE_2D_CAMERA
};
var VIEWER3D_ACTIONS = exports.VIEWER3D_ACTIONS = {
SELECT_TOOL_3D_VIEW: SELECT_TOOL_3D_VIEW,
SELECT_TOOL_3D_FIRST_PERSON: SELECT_TOOL_3D_FIRST_PERSON
};
var ITEMS_ACTIONS = exports.ITEMS_ACTIONS = {
SELECT_ITEM: SELECT_ITEM,
SELECT_TOOL_DRAWING_ITEM: SELECT_TOOL_DRAWING_ITEM,
UPDATE_DRAWING_ITEM: UPDATE_DRAWING_ITEM,
END_DRAWING_ITEM: END_DRAWING_ITEM,
BEGIN_DRAGGING_ITEM: BEGIN_DRAGGING_ITEM,
UPDATE_DRAGGING_ITEM: UPDATE_DRAGGING_ITEM,
END_DRAGGING_ITEM: END_DRAGGING_ITEM,
BEGIN_ROTATING_ITEM: BEGIN_ROTATING_ITEM,
UPDATE_ROTATING_ITEM: UPDATE_ROTATING_ITEM,
END_ROTATING_ITEM: END_ROTATING_ITEM
};
var HOLE_ACTIONS = exports.HOLE_ACTIONS = {
SELECT_HOLE: SELECT_HOLE,
SELECT_TOOL_DRAWING_HOLE: SELECT_TOOL_DRAWING_HOLE,
UPDATE_DRAWING_HOLE: UPDATE_DRAWING_HOLE,
END_DRAWING_HOLE: END_DRAWING_HOLE,
BEGIN_DRAGGING_HOLE: BEGIN_DRAGGING_HOLE,
UPDATE_DRAGGING_HOLE: UPDATE_DRAGGING_HOLE,
END_DRAGGING_HOLE: END_DRAGGING_HOLE
};
var LINE_ACTIONS = exports.LINE_ACTIONS = {
SELECT_LINE: SELECT_LINE,
SELECT_TOOL_DRAWING_LINE: SELECT_TOOL_DRAWING_LINE,
BEGIN_DRAWING_LINE: BEGIN_DRAWING_LINE,
UPDATE_DRAWING_LINE: UPDATE_DRAWING_LINE,
END_DRAWING_LINE: END_DRAWING_LINE,
BEGIN_DRAGGING_LINE: BEGIN_DRAGGING_LINE,
UPDATE_DRAGGING_LINE: UPDATE_DRAGGING_LINE,
END_DRAGGING_LINE: END_DRAGGING_LINE
};
var AREA_ACTIONS = exports.AREA_ACTIONS = {
SELECT_AREA: SELECT_AREA,
SHOW_HEAT_MAP_AREAS: SHOW_HEAT_MAP_AREAS
};
var SCENE_ACTIONS = exports.SCENE_ACTIONS = {
ADD_LAYER: ADD_LAYER,
SET_LAYER_PROPERTIES: SET_LAYER_PROPERTIES,
SELECT_LAYER: SELECT_LAYER,
REMOVE_LAYER: REMOVE_LAYER
};
var VERTEX_ACTIONS = exports.VERTEX_ACTIONS = {
BEGIN_DRAGGING_VERTEX: BEGIN_DRAGGING_VERTEX,
UPDATE_DRAGGING_VERTEX: UPDATE_DRAGGING_VERTEX,
END_DRAGGING_VERTEX: END_DRAGGING_VERTEX
};
var ALL_ACTIONS = exports.ALL_ACTIONS = _extends({}, AREA_ACTIONS, PROJECT_ACTIONS, VIEWER2D_ACTIONS);
//MODES
var MODE_IDLE = exports.MODE_IDLE = 'MODE_IDLE';
var MODE_2D_ZOOM_IN = exports.MODE_2D_ZOOM_IN = 'MODE_2D_ZOOM_IN';
var MODE_2D_ZOOM_OUT = exports.MODE_2D_ZOOM_OUT = 'MODE_2D_ZOOM_OUT';
var MODE_2D_PAN = exports.MODE_2D_PAN = 'MODE_2D_PAN';
var MODE_3D_VIEW = exports.MODE_3D_VIEW = 'MODE_3D_VIEW';
var MODE_3D_FIRST_PERSON = exports.MODE_3D_FIRST_PERSON = 'MODE_3D_FIRST_PERSON';
var MODE_WAITING_DRAWING_LINE = exports.MODE_WAITING_DRAWING_LINE = 'MODE_WAITING_DRAWING_LINE';
var MODE_DRAGGING_LINE = exports.MODE_DRAGGING_LINE = 'MODE_DRAGGING_LINE';
var MODE_DRAGGING_VERTEX = exports.MODE_DRAGGING_VERTEX = 'MODE_DRAGGING_VERTEX';
var MODE_DRAGGING_ITEM = exports.MODE_DRAGGING_ITEM = 'MODE_DRAGGING_ITEM';
var MODE_DRAGGING_HOLE = exports.MODE_DRAGGING_HOLE = 'MODE_DRAGGING_HOLE';
var MODE_DRAWING_LINE = exports.MODE_DRAWING_LINE = 'MODE_DRAWING_LINE';
var MODE_DRAWING_HOLE = exports.MODE_DRAWING_HOLE = 'MODE_DRAWING_HOLE';
var MODE_DRAWING_ITEM = exports.MODE_DRAWING_ITEM = 'MODE_DRAWING_ITEM';
var MODE_ROTATING_ITEM = exports.MODE_ROTATING_ITEM = 'MODE_ROTATING_ITEM';
var MODE_UPLOADING_IMAGE = exports.MODE_UPLOADING_IMAGE = 'MODE_UPLOADING_IMAGE';
var MODE_FITTING_IMAGE = exports.MODE_FITTING_IMAGE = 'MODE_FITTING_IMAGE';
var MODE_VIEWING_CATALOG = exports.MODE_VIEWING_CATALOG = 'MODE_VIEWING_CATALOG';
var MODE_CONFIGURING_PROJECT = exports.MODE_CONFIGURING_PROJECT = 'MODE_CONFIGURING_PROJECT';
//Thinking about it...
//https://developer.mozilla.org/it/docs/Web/JavaScript/Reference/Global_Objects/Proxy
/*
let MODE_DEF = [
'IDLE',
'2D_ZOOM_IN',
'2D_ZOOM_OUT',
'2D_PAN',
'3D_VIEW',
'3D_FIRST_PERSON',
'WAITING_DRAWING_LINE',
'DRAGGING_LINE',
'DRAGGING_VERTEX',
'DRAGGING_ITEM',
'DRAGGING_HOLE',
'DRAWING_LINE',
'DRAWING_HOLE',
'DRAWING_ITEM',
'ROTATING_ITEM',
'UPLOADING_IMAGE',
'FITTING_IMAGE',
'VIEWING_CATALOG',
'CONFIGURING_PROJECT',
];
export const MODE = new Proxy( MODE_DEF, { get: (target, name) => { return target.indexOf(name) !== -1 ? name : null } } );
*/
var MODE_SNAPPING = exports.MODE_SNAPPING = [MODE_IDLE, MODE_2D_ZOOM_IN, MODE_2D_ZOOM_OUT, MODE_2D_PAN, MODE_WAITING_DRAWING_LINE, MODE_DRAWING_LINE, MODE_DRAWING_HOLE, MODE_DRAWING_ITEM, MODE_DRAGGING_LINE, MODE_DRAGGING_VERTEX, MODE_DRAGGING_ITEM, MODE_DRAGGING_HOLE, MODE_FITTING_IMAGE, MODE_UPLOADING_IMAGE, MODE_ROTATING_ITEM];
//UNITS
var UNIT_MILLIMETER = exports.UNIT_MILLIMETER = 'mm';
var UNIT_CENTIMETER = exports.UNIT_CENTIMETER = 'cm';
var UNIT_METER = exports.UNIT_METER = 'm';
var UNIT_INCH = exports.UNIT_INCH = 'in';
var UNIT_FOOT = exports.UNIT_FOOT = 'ft';
var UNIT_MILE = exports.UNIT_MILE = 'mi';
var UNITS_LENGTH = exports.UNITS_LENGTH = [UNIT_MILLIMETER, UNIT_CENTIMETER, UNIT_METER, UNIT_INCH, UNIT_FOOT, UNIT_MILE];
var EPSILON = exports.EPSILON = 1e-6;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwibmFtZXMiOlsiTkVXX1BST0pFQ1QiLCJMT0FEX1BST0pFQ1QiLCJTQVZFX1BST0pFQ1QiLCJPUEVOX0NBVEFMT0ciLCJTRUxFQ1RfVE9PTF9FRElUIiwiVU5TRUxFQ1RfQUxMIiwiU0VUX1BST1BFUlRJRVMiLCJTRVRfSVRFTVNfQVRUUklCVVRFUyIsIlNFVF9MSU5FU19BVFRSSUJVVEVTIiwiU0VUX0hPTEVTX0FUVFJJQlVURVMiLCJSRU1PVkUiLCJVTkRPIiwiUk9MTEJBQ0siLCJTRVRfUFJPSkVDVF9QUk9QRVJUSUVTIiwiT1BFTl9QUk9KRUNUX0NPTkZJR1VSQVRPUiIsIklOSVRfQ0FUQUxPRyIsIlVQREFURV9NT1VTRV9DT09SRFMiLCJVUERBVEVfWk9PTV9TQ0FMRSIsIlRPR0dMRV9TTkFQIiwiQ0hBTkdFX0NBVEFMT0dfUEFHRSIsIkdPX0JBQ0tfVE9fQ0FUQUxPR19QQUdFIiwiVEhST1dfRVJST1IiLCJUSFJPV19XQVJOSU5HIiwiQ09QWV9QUk9QRVJUSUVTIiwiUEFTVEVfUFJPUEVSVElFUyIsIlBVU0hfTEFTVF9TRUxFQ1RFRF9DQVRBTE9HX0VMRU1FTlRfVE9fSElTVE9SWSIsIlNFTEVDVF9UT09MX1pPT01fSU4iLCJTRUxFQ1RfVE9PTF9aT09NX09VVCIsIlNFTEVDVF9UT09MX1BBTiIsIlVQREFURV8yRF9DQU1FUkEiLCJTRUxFQ1RfVE9PTF8zRF9WSUVXIiwiU0VMRUNUX1RPT0xfM0RfRklSU1RfUEVSU09OIiwiU0VMRUNUX1RPT0xfRFJBV0lOR19JVEVNIiwiVVBEQVRFX0RSQVdJTkdfSVRFTSIsIkVORF9EUkFXSU5HX0lURU0iLCJCRUdJTl9EUkFHR0lOR19JVEVNIiwiVVBEQVRFX0RSQUdHSU5HX0lURU0iLCJFTkRfRFJBR0dJTkdfSVRFTSIsIkJFR0lOX1JPVEFUSU5HX0lURU0iLCJVUERBVEVfUk9UQVRJTkdfSVRFTSIsIkVORF9ST1RBVElOR19JVEVNIiwiU0VMRUNUX0hPTEUiLCJTRUxFQ1RfQVJFQSIsIlNFTEVDVF9JVEVNIiwiU0VMRUNUX0xJTkUiLCJTRUxFQ1RfVE9PTF9EUkFXSU5HX0xJTkUiLCJCRUdJTl9EUkFXSU5HX0xJTkUiLCJVUERBVEVfRFJBV0lOR19MSU5FIiwiRU5EX0RSQVdJTkdfTElORSIsIlNFTEVDVF9UT09MX0RSQVdJTkdfSE9MRSIsIlVQREFURV9EUkFXSU5HX0hPTEUiLCJFTkRfRFJBV0lOR19IT0xFIiwiQkVHSU5fRFJBR0dJTkdfTElORSIsIlVQREFURV9EUkFHR0lOR19MSU5FIiwiRU5EX0RSQUdHSU5HX0xJTkUiLCJTRUxFQ1RfVE9PTF9VUExPQURfSU1BR0UiLCJCRUdJTl9VUExPQURJTkdfSU1BR0UiLCJFTkRfVVBMT0FESU5HX0lNQUdFIiwiQkVHSU5fRklUVElOR19JTUFHRSIsIkVORF9GSVRUSU5HX0lNQUdFIiwiQkVHSU5fRFJBR0dJTkdfSE9MRSIsIlVQREFURV9EUkFHR0lOR19IT0xFIiwiRU5EX0RSQUdHSU5HX0hPTEUiLCJTSE9XX0hFQVRfTUFQX0FSRUFTIiwiQkVHSU5fRFJBR0dJTkdfVkVSVEVYIiwiVVBEQVRFX0RSQUdHSU5HX1ZFUlRFWCIsIkVORF9EUkFHR0lOR19WRVJURVgiLCJTRVRfTEFZRVJfUFJPUEVSVElFUyIsIkFERF9MQVlFUiIsIlNFTEVDVF9MQVlFUiIsIlJFTU9WRV9MQVlFUiIsIlBST0pFQ1RfQUNUSU9OUyIsIlZJRVdFUjJEX0FDVElPTlMiLCJWSUVXRVIzRF9BQ1RJT05TIiwiSVRFTVNfQUNUSU9OUyIsIkhPTEVfQUNUSU9OUyIsIkxJTkVfQUNUSU9OUyIsIkFSRUFfQUNUSU9OUyIsIlNDRU5FX0FDVElPTlMiLCJWRVJURVhfQUNUSU9OUyIsIkFMTF9BQ1RJT05TIiwiTU9ERV9JRExFIiwiTU9ERV8yRF9aT09NX0lOIiwiTU9ERV8yRF9aT09NX09VVCIsIk1PREVfMkRfUEFOIiwiTU9ERV8zRF9WSUVXIiwiTU9ERV8zRF9GSVJTVF9QRVJTT04iLCJNT0RFX1dBSVRJTkdfRFJBV0lOR19MSU5FIiwiTU9ERV9EUkFHR0lOR19MSU5FIiwiTU9ERV9EUkFHR0lOR19WRVJURVgiLCJNT0RFX0RSQUdHSU5HX0lURU0iLCJNT0RFX0RSQUdHSU5HX0hPTEUiLCJNT0RFX0RSQVdJTkdfTElORSIsIk1PREVfRFJBV0lOR19IT0xFIiwiTU9ERV9EUkFXSU5HX0lURU0iLCJNT0RFX1JPVEFUSU5HX0lURU0iLCJNT0RFX1VQTE9BRElOR19JTUFHRSIsIk1PREVfRklUVElOR19JTUFHRSIsIk1PREVfVklFV0lOR19DQVRBTE9HIiwiTU9ERV9DT05GSUdVUklOR19QUk9KRUNUIiwiTU9ERV9TTkFQUElORyIsIlVOSVRfTUlMTElNRVRFUiIsIlVOSVRfQ0VOVElNRVRFUiIsIlVOSVRfTUVURVIiLCJVTklUX0lOQ0giLCJVTklUX0ZPT1QiLCJVTklUX01JTEUiLCJVTklUU19MRU5HVEgiLCJFUFNJTE9OIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ08sSUFBTUEsb0NBQWMsYUFBcEI7QUFDQSxJQUFNQyxzQ0FBZSxjQUFyQjtBQUNBLElBQU1DLHNDQUFlLGNBQXJCO0FBQ0EsSUFBTUMsc0NBQWUsY0FBckI7QUFDQSxJQUFNQyw4Q0FBbUIsa0JBQXpCO0FBQ0EsSUFBTUMsc0NBQWUsY0FBckI7QUFDQSxJQUFNQywwQ0FBaUIsZ0JBQXZCO0FBQ0EsSUFBTUMsc0RBQXVCLHNCQUE3QjtBQUNBLElBQU1DLHNEQUF1QixzQkFBN0I7QUFDQSxJQUFNQyxzREFBdUIsc0JBQTdCO0FBQ0EsSUFBTUMsMEJBQVMsUUFBZjtBQUNBLElBQU1DLHNCQUFPLE1BQWI7QUFDQSxJQUFNQyw4QkFBVyxVQUFqQjtBQUNBLElBQU1DLDBEQUF5Qix3QkFBL0I7QUFDQSxJQUFNQyxnRUFBNEIsMkJBQWxDO0FBQ0EsSUFBTUMsc0NBQWUsY0FBckI7QUFDQSxJQUFNQyxvREFBc0IscUJBQTVCO0FBQ0EsSUFBTUMsZ0RBQW9CLG1CQUExQjtBQUNBLElBQU1DLG9DQUFjLGFBQXBCO0FBQ0EsSUFBTUMsb0RBQXNCLHFCQUE1QjtBQUNBLElBQU1DLDREQUEwQix5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QTNCO0FBQ0EsSUFBTUMsc0RBQXVCLHNCQUE3QjtBQUNBLElBQU1DLGtEQUFxQixvQkFBM0I7QUFDQSxJQUFNQyxrREFBcUIsb0JBQTNCO0FBQ0EsSUFBTUMsZ0RBQW9CLG1CQUExQjtBQUNBLElBQU1DLGdEQUFvQixtQkFBMUI7QUFDQSxJQUFNQyxnREFBb0IsbUJBQTFCO0FBQ0EsSUFBTUMsa0RBQXFCLG9CQUEzQjtBQUNBLElBQU1DLHNEQUF1QixzQkFBN0I7QUFDQSxJQUFNQyxrREFBcUIsb0JBQTNCO0FBQ0EsSUFBTUMsc0RBQXVCLHNCQUE3QjtBQUNBLElBQU1DLDhEQUEyQiwwQkFBakM7O0FBRVA7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTBCTyxJQUFNQyx3Q0FBZ0IsQ0FDM0JuQixTQUQyQixFQUNoQkMsZUFEZ0IsRUFDQ0MsZ0JBREQsRUFDbUJDLFdBRG5CLEVBRTNCRyx5QkFGMkIsRUFFQUssaUJBRkEsRUFFbUJDLGlCQUZuQixFQUczQkMsaUJBSDJCLEVBR1JOLGtCQUhRLEVBR1lDLG9CQUhaLEVBSTNCQyxrQkFKMkIsRUFJUEMsa0JBSk8sRUFJYU0sa0JBSmIsRUFLM0JELG9CQUwyQixFQUtMRCxrQkFMSyxDQUF0Qjs7QUFRUDtBQUNPLElBQU1NLDRDQUFrQixJQUF4QjtBQUNBLElBQU1DLDRDQUFrQixJQUF4QjtBQUNBLElBQU1DLGtDQUFhLEdBQW5CO0FBQ0EsSUFBTUMsZ0NBQVksSUFBbEI7QUFDQSxJQUFNQyxnQ0FBWSxJQUFsQjtBQUNBLElBQU1DLGdDQUFZLElBQWxCOztBQUVBLElBQU1DLHNDQUFlLENBQzFCTixlQUQwQixFQUUxQkMsZUFGMEIsRUFHMUJDLFVBSDBCLEVBSTFCQyxTQUowQixFQUsxQkMsU0FMMEIsRUFNMUJDLFNBTjBCLENBQXJCOztBQVNBLElBQU1FLDRCQUFVLElBQWhCIiwiZmlsZSI6ImNvbnN0YW50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFDVElPTlMgcHJvamVjdFxuZXhwb3J0IGNvbnN0IE5FV19QUk9KRUNUID0gJ05FV19QUk9KRUNUJztcbmV4cG9ydCBjb25zdCBMT0FEX1BST0pFQ1QgPSAnTE9BRF9QUk9KRUNUJztcbmV4cG9ydCBjb25zdCBTQVZFX1BST0pFQ1QgPSAnU0FWRV9QUk9KRUNUJztcbmV4cG9ydCBjb25zdCBPUEVOX0NBVEFMT0cgPSAnT1BFTl9DQVRBTE9HJztcbmV4cG9ydCBjb25zdCBTRUxFQ1RfVE9PTF9FRElUID0gJ1NFTEVDVF9UT09MX0VESVQnO1xuZXhwb3J0IGNvbnN0IFVOU0VMRUNUX0FMTCA9ICdVTlNFTEVDVF9BTEwnO1xuZXhwb3J0IGNvbnN0IFNFVF9QUk9QRVJUSUVTID0gJ1NFVF9QUk9QRVJUSUVTJztcbmV4cG9ydCBjb25zdCBTRVRfSVRFTVNfQVRUUklCVVRFUyA9ICdTRVRfSVRFTVNfQVRUUklCVVRFUyc7XG5leHBvcnQgY29uc3QgU0VUX0xJTkVTX0FUVFJJQlVURVMgPSAnU0VUX0xJTkVTX0FUVFJJQlVURVMnO1xuZXhwb3J0IGNvbnN0IFNFVF9IT0xFU19BVFRSSUJVVEVTID0gJ1NFVF9IT0xFU19BVFRSSUJVVEVTJztcbmV4cG9ydCBjb25zdCBSRU1PVkUgPSAnUkVNT1ZFJztcbmV4cG9ydCBjb25zdCBVTkRPID0gJ1VORE8nO1xuZXhwb3J0IGNvbnN0IFJPTExCQUNLID0gJ1JPTExCQUNLJztcbmV4cG9ydCBjb25zdCBTRVRfUFJPSkVDVF9QUk9QRVJUSUVTID0gJ1NFVF9QUk9KRUNUX1BST1BFUlRJRVMnO1xuZXhwb3J0IGNvbnN0IE9QRU5fUFJPSkVDVF9DT05GSUdVUkFUT1IgPSAnT1BFTl9QUk9KRUNUX0NPTkZJR1VSQVRPUic7XG5leHBvcnQgY29uc3QgSU5JVF9DQVRBTE9HID0gJ0lOSVRfQ0FUQUxPRyc7XG5leHBvcnQgY29uc3QgVVBEQVRFX01PVVNFX0NPT1JEUyA9ICdVUERBVEVfTU9VU0VfQ09PUkRTJztcbmV4cG9ydCBjb25zdCBVUERBVEVfWk9PTV9TQ0FMRSA9ICdVUERBVEVfWk9PTV9TQ0FMRSc7XG5leHBvcnQgY29uc3QgVE9HR0xFX1NOQVAgPSAnVE9HR0xFX1NOQVAnO1xuZXhwb3J0IGNvbnN0IENIQU5HRV9DQVRBTE9HX1BBR0UgPSAnQ0hBTkdFX0NBVEFMT0dfUEFHRSc7XG5leHBvcnQgY29uc3QgR09fQkFDS19UT19DQVRBTE9HX1BBR0UgPSAnR09fQkFDS19UT19DQVRBTE9HX1BBR0UnO1xuZXhwb3J0IGNvbnN0IFRIUk9XX0VSUk9SID0gJ1RIUk9XX0VSUk9SJztcbmV4cG9ydCBjb25zdCBUSFJPV19XQVJOSU5HID0gJ1RIUk9XX1dBUk5JTkcnO1xuZXhwb3J0IGNvbnN0IENPUFlfUFJPUEVSVElFUyA9ICdDT1BZX1BST1BFUlRJRVMnO1xuZXhwb3J0IGNvbnN0IFBBU1RFX1BST1BFUlRJRVMgPSAnUEFTVEVfUFJPUEVSVElFUyc7XG5leHBvcnQgY29uc3QgUFVTSF9MQVNUX1NFTEVDVEVEX0NBVEFMT0dfRUxFTUVOVF9UT19ISVNUT1JZID0gJ1BVU0hfTEFTVF9TRUxFQ1RFRF9DQVRBTE9HX0VMRU1FTlRfVE9fSElTVE9SWSc7XG5cbi8vIEFDVElPTlMgdmlld2VyMkRcbmV4cG9ydCBjb25zdCBTRUxFQ1RfVE9PTF9aT09NX0lOID0gJ1NFTEVDVF9UT09MX1pPT01fSU4nO1xuZXhwb3J0IGNvbnN0IFNFTEVDVF9UT09MX1pPT01fT1VUID0gJ1NFTEVDVF9UT09MX1pPT01fT1VUJztcbmV4cG9ydCBjb25zdCBTRUxFQ1RfVE9PTF9QQU4gPSAnU0VMRUNUX1RPT0xfUEFOJztcbmV4cG9ydCBjb25zdCBVUERBVEVfMkRfQ0FNRVJBID0gJ1VQREFURV8yRF9DQU1FUkEnO1xuXG4vL0FDVElPTlMgdmlld2VyM0RcbmV4cG9ydCBjb25zdCBTRUxFQ1RfVE9PTF8zRF9WSUVXID0gJ1NFTEVDVF9UT09MXzNEX1ZJRVcnO1xuZXhwb3J0IGNvbnN0IFNFTEVDVF9UT09MXzNEX0ZJUlNUX1BFUlNPTiA9ICdTRUxFQ1RfVE9PTF8zRF9GSVJTVF9QRVJTT04nO1xuXG4vL0FDVElPTlMgaXRlbXNcbmV4cG9ydCBjb25zdCBTRUxFQ1RfVE9PTF9EUkFXSU5HX0lURU0gPSAnU0VMRUNUX1RPT0xfRFJBV0lOR19JVEVNJztcbmV4cG9ydCBjb25zdCBVUERBVEVfRFJBV0lOR19JVEVNID0gJ1VQREFURV9EUkFXSU5HX0lURU0nO1xuZXhwb3J0IGNvbnN0IEVORF9EUkFXSU5HX0lURU0gPSAnRU5EX0RSQVdJTkdfSVRFTSc7XG5leHBvcnQgY29uc3QgQkVHSU5fRFJBR0dJTkdfSVRFTSA9ICdCRUdJTl9EUkFHR0lOR19JVEVNJztcbmV4cG9ydCBjb25zdCBVUERBVEVfRFJBR0dJTkdfSVRFTSA9ICdVUERBVEVfRFJBR0dJTkdfSVRFTSc7XG5leHBvcnQgY29uc3QgRU5EX0RSQUdHSU5HX0lURU0gPSAnRU5EX0RSQUdHSU5HX0lURU0nO1xuZXhwb3J0IGNvbnN0IEJFR0lOX1JPVEFUSU5HX0lURU0gPSAnQkVHSU5fUk9UQVRJTkdfSVRFTSc7XG5leHBvcnQgY29uc3QgVVBEQVRFX1JPVEFUSU5HX0lURU0gPSAnVVBEQVRFX1JPVEFUSU5HX0lURU0nO1xuZXhwb3J0IGNvbnN0IEVORF9ST1RBVElOR19JVEVNID0gJ0VORF9ST1RBVElOR19JVEVNJztcblxuLy9BQ1RJT04gZHJhd2luZ3NcbmV4cG9ydCBjb25zdCBTRUxFQ1RfSE9MRSA9ICdTRUxFQ1RfSE9MRSc7XG5leHBvcnQgY29uc3QgU0VMRUNUX0FSRUEgPSAnU0VMRUNUX0FSRUEnO1xuZXhwb3J0IGNvbnN0IFNFTEVDVF9JVEVNID0gJ1NFTEVDVF9JVEVNJztcbmV4cG9ydCBjb25zdCBTRUxFQ1RfTElORSA9ICdTRUxFQ1RfTElORSc7XG5leHBvcnQgY29uc3QgU0VMRUNUX1RPT0xfRFJBV0lOR19MSU5FID0gJ1NFTEVDVF9UT09MX0RSQVdJTkdfTElORSc7XG5leHBvcnQgY29uc3QgQkVHSU5fRFJBV0lOR19MSU5FID0gJ0JFR0lOX0RSQVdJTkdfTElORSc7XG5leHBvcnQgY29uc3QgVVBEQVRFX0RSQVdJTkdfTElORSA9ICdVUERBVEVfRFJBV0lOR19MSU5FJztcbmV4cG9ydCBjb25zdCBFTkRfRFJBV0lOR19MSU5FID0gJ0VORF9EUkFXSU5HX0xJTkUnO1xuZXhwb3J0IGNvbnN0IFNFTEVDVF9UT09MX0RSQVdJTkdfSE9MRSA9ICdTRUxFQ1RfVE9PTF9EUkFXSU5HX0hPTEUnO1xuZXhwb3J0IGNvbnN0IFVQREFURV9EUkFXSU5HX0hPTEUgPSAnVVBEQVRFX0RSQVdJTkdfSE9MRSc7XG5leHBvcnQgY29uc3QgRU5EX0RSQVdJTkdfSE9MRSA9ICdFTkRfRFJBV0lOR19IT0xFJztcbmV4cG9ydCBjb25zdCBCRUdJTl9EUkFHR0lOR19MSU5FID0gJ0JFR0lOX0RSQUdHSU5HX0xJTkUnO1xuZXhwb3J0IGNvbnN0IFVQREFURV9EUkFHR0lOR19MSU5FID0gJ1VQREFURV9EUkFHR0lOR19MSU5FJztcbmV4cG9ydCBjb25zdCBFTkRfRFJBR0dJTkdfTElORSA9ICdFTkRfRFJBR0dJTkdfTElORSc7XG5leHBvcnQgY29uc3QgU0VMRUNUX1RPT0xfVVBMT0FEX0lNQUdFID0gJ1NFTEVDVF9UT09MX1VQTE9BRF9JTUFHRSc7XG5leHBvcnQgY29uc3QgQkVHSU5fVVBMT0FESU5HX0lNQUdFID0gJ0JFR0lOX1VQTE9BRElOR19JTUFHRSc7XG5leHBvcnQgY29uc3QgRU5EX1VQTE9BRElOR19JTUFHRSA9ICdFTkRfVVBMT0FESU5HX0lNQUdFJztcbmV4cG9ydCBjb25zdCBCRUdJTl9GSVRUSU5HX0lNQUdFID0gJ0JFR0lOX0ZJVFRJTkdfSU1BR0UnO1xuZXhwb3J0IGNvbnN0IEVORF9GSVRUSU5HX0lNQUdFID0gJ0VORF9GSVRUSU5HX0lNQUdFJztcbmV4cG9ydCBjb25zdCBCRUdJTl9EUkFHR0lOR19IT0xFID0gJ0JFR0lOX0RSQUdHSU5HX0hPTEUnO1xuZXhwb3J0IGNvbnN0IFVQREFURV9EUkFHR0lOR19IT0xFID0gJ1VQREFURV9EUkFHR0lOR19IT0xFJztcbmV4cG9ydCBjb25zdCBFTkRfRFJBR0dJTkdfSE9MRSA9ICdFTkRfRFJBR0dJTkdfSE9MRSc7XG5leHBvcnQgY29uc3QgU0hPV19IRUFUX01BUF9BUkVBUyA9ICdTSE9XX0hFQVRfTUFQX0FSRUFTJztcblxuLy9BQ1RJT05TIHZlcnRpY2VzXG5leHBvcnQgY29uc3QgQkVHSU5fRFJBR0dJTkdfVkVSVEVYID0gJ0JFR0lOX0RSQUdHSU5HX1ZFUlRFWCc7XG5leHBvcnQgY29uc3QgVVBEQVRFX0RSQUdHSU5HX1ZFUlRFWCA9ICdVUERBVEVfRFJBR0dJTkdfVkVSVEVYJztcbmV4cG9ydCBjb25zdCBFTkRfRFJBR0dJTkdfVkVSVEVYID0gJ0VORF9EUkFHR0lOR19WRVJURVgnO1xuXG4vL0FDVElPTlMgc2NlbmVcbmV4cG9ydCBjb25zdCBTRVRfTEFZRVJfUFJPUEVSVElFUyA9ICdTRVRfTEFZRVJfUFJPUEVSVElFUyc7XG5leHBvcnQgY29uc3QgQUREX0xBWUVSID0gJ0FERF9MQVlFUic7XG5leHBvcnQgY29uc3QgU0VMRUNUX0xBWUVSID0gJ1NFTEVDVF9MQVlFUic7XG5leHBvcnQgY29uc3QgUkVNT1ZFX0xBWUVSID0gJ1JFTU9WRV9MQVlFUic7XG5cbi8vR1JPVVBJTkcgQUNUSU9OU1xuZXhwb3J0IGNvbnN0IFBST0pFQ1RfQUNUSU9OUyA9IHtcbiAgTkVXX1BST0pFQ1QsXG4gIExPQURfUFJPSkVDVCxcbiAgU0FWRV9QUk9KRUNULFxuICBPUEVOX0NBVEFMT0csXG4gIFNFTEVDVF9UT09MX0VESVQsXG4gIFVOU0VMRUNUX0FMTCxcbiAgU0VUX1BST1BFUlRJRVMsXG4gIFNFVF9JVEVNU19BVFRSSUJVVEVTLFxuICBTRVRfTElORVNfQVRUUklCVVRFUyxcbiAgU0VUX0hPTEVTX0FUVFJJQlVURVMsXG4gIFJFTU9WRSxcbiAgVU5ETyxcbiAgUk9MTEJBQ0ssXG4gIFNFVF9QUk9KRUNUX1BST1BFUlRJRVMsXG4gIE9QRU5fUFJPSkVDVF9DT05GSUdVUkFUT1IsXG4gIElOSVRfQ0FUQUxPRyxcbiAgVVBEQVRFX01PVVNFX0NPT1JEUyxcbiAgVVBEQVRFX1pPT01fU0NBTEUsXG4gIFRPR0dMRV9TTkFQLFxuICBDSEFOR0VfQ0FUQUxPR19QQUdFLFxuICBHT19CQUNLX1RPX0NBVEFMT0dfUEFHRSxcbiAgVEhST1dfRVJST1IsXG4gIFRIUk9XX1dBUk5JTkcsXG4gIENPUFlfUFJPUEVSVElFUyxcbiAgUEFTVEVfUFJPUEVSVElFUyxcbiAgUFVTSF9MQVNUX1NFTEVDVEVEX0NBVEFMT0dfRUxFTUVOVF9UT19ISVNUT1JZXG59O1xuXG5leHBvcnQgY29uc3QgVklFV0VSMkRfQUNUSU9OUyA9IHtcbiAgU0VMRUNUX1RPT0xfWk9PTV9JTixcbiAgU0VMRUNUX1RPT0xfWk9PTV9PVVQsXG4gIFNFTEVDVF9UT09MX1BBTixcbiAgVVBEQVRFXzJEX0NBTUVSQVxufTtcblxuZXhwb3J0IGNvbnN0IFZJRVdFUjNEX0FDVElPTlMgPSB7XG4gIFNFTEVDVF9UT09MXzNEX1ZJRVcsXG4gIFNFTEVDVF9UT09MXzNEX0ZJUlNUX1BFUlNPTlxufTtcblxuZXhwb3J0IGNvbnN0IElURU1TX0FDVElPTlMgPSB7XG4gIFNFTEVDVF9JVEVNLFxuICBTRUxFQ1RfVE9PTF9EUkFXSU5HX0lURU0sXG4gIFVQREFURV9EUkFXSU5HX0lURU0sXG4gIEVORF9EUkFXSU5HX0lURU0sXG4gIEJFR0lOX0RSQUdHSU5HX0lURU0sXG4gIFVQREFURV9EUkFHR0lOR19JVEVNLFxuICBFTkRfRFJBR0dJTkdfSVRFTSxcbiAgQkVHSU5fUk9UQVRJTkdfSVRFTSxcbiAgVVBEQVRFX1JPVEFUSU5HX0lURU0sXG4gIEVORF9ST1RBVElOR19JVEVNXG59O1xuXG5leHBvcnQgY29uc3QgSE9MRV9BQ1RJT05TID0ge1xuICBTRUxFQ1RfSE9MRSxcbiAgU0VMRUNUX1RPT0xfRFJBV0lOR19IT0xFLFxuICBVUERBVEVfRFJBV0lOR19IT0xFLFxuICBFTkRfRFJBV0lOR19IT0xFLFxuICBCRUdJTl9EUkFHR0lOR19IT0xFLFxuICBVUERBVEVfRFJBR0dJTkdfSE9MRSxcbiAgRU5EX0RSQUdHSU5HX0hPTEVcbn07XG5cbmV4cG9ydCBjb25zdCBMSU5FX0FDVElPTlMgPSB7XG4gIFNFTEVDVF9MSU5FLFxuICBTRUxFQ1RfVE9PTF9EUkFXSU5HX0xJTkUsXG4gIEJFR0lOX0RSQVdJTkdfTElORSxcbiAgVVBEQVRFX0RSQVdJTkdfTElORSxcbiAgRU5EX0RSQVdJTkdfTElORSxcbiAgQkVHSU5fRFJBR0dJTkdfTElORSxcbiAgVVBEQVRFX0RSQUdHSU5HX0xJTkUsXG4gIEVORF9EUkFHR0lOR19MSU5FXG59O1xuXG5leHBvcnQgY29uc3QgQVJFQV9BQ1RJT05TID0ge1xuICBTRUxFQ1RfQVJFQSxcbiAgU0hPV19IRUFUX01BUF9BUkVBUyxcbn07XG5cbmV4cG9ydCBjb25zdCBTQ0VORV9BQ1RJT05TID0ge1xuICBBRERfTEFZRVIsXG4gIFNFVF9MQVlFUl9QUk9QRVJUSUVTLFxuICBTRUxFQ1RfTEFZRVIsXG4gIFJFTU9WRV9MQVlFUlxufTtcblxuZXhwb3J0IGNvbnN0IFZFUlRFWF9BQ1RJT05TID0ge1xuICBCRUdJTl9EUkFHR0lOR19WRVJURVgsXG4gIFVQREFURV9EUkFHR0lOR19WRVJURVgsXG4gIEVORF9EUkFHR0lOR19WRVJURVhcbn07XG5cbmV4cG9ydCBjb25zdCBBTExfQUNUSU9OUyA9IHtcbiAgLi4uQVJFQV9BQ1RJT05TLFxuICAuLi5QUk9KRUNUX0FDVElPTlMsXG4gIC4uLlZJRVdFUjJEX0FDVElPTlMsXG59XG5cbi8vTU9ERVNcbmV4cG9ydCBjb25zdCBNT0RFX0lETEUgPSAnTU9ERV9JRExFJztcbmV4cG9ydCBjb25zdCBNT0RFXzJEX1pPT01fSU4gPSAnTU9ERV8yRF9aT09NX0lOJztcbmV4cG9ydCBjb25zdCBNT0RFXzJEX1pPT01fT1VUID0gJ01PREVfMkRfWk9PTV9PVVQnO1xuZXhwb3J0IGNvbnN0IE1PREVfMkRfUEFOID0gJ01PREVfMkRfUEFOJztcbmV4cG9ydCBjb25zdCBNT0RFXzNEX1ZJRVcgPSAnTU9ERV8zRF9WSUVXJztcbmV4cG9ydCBjb25zdCBNT0RFXzNEX0ZJUlNUX1BFUlNPTiA9ICdNT0RFXzNEX0ZJUlNUX1BFUlNPTic7XG5leHBvcnQgY29uc3QgTU9ERV9XQUlUSU5HX0RSQVdJTkdfTElORSA9ICdNT0RFX1dBSVRJTkdfRFJBV0lOR19MSU5FJztcbmV4cG9ydCBjb25zdCBNT0RFX0RSQUdHSU5HX0xJTkUgPSAnTU9ERV9EUkFHR0lOR19MSU5FJztcbmV4cG9ydCBjb25zdCBNT0RFX0RSQUdHSU5HX1ZFUlRFWCA9ICdNT0RFX0RSQUdHSU5HX1ZFUlRFWCc7XG5leHBvcnQgY29uc3QgTU9ERV9EUkFHR0lOR19JVEVNID0gJ01PREVfRFJBR0dJTkdfSVRFTSc7XG5leHBvcnQgY29uc3QgTU9ERV9EUkFHR0lOR19IT0xFID0gJ01PREVfRFJBR0dJTkdfSE9MRSc7XG5leHBvcnQgY29uc3QgTU9ERV9EUkFXSU5HX0xJTkUgPSAnTU9ERV9EUkFXSU5HX0xJTkUnO1xuZXhwb3J0IGNvbnN0IE1PREVfRFJBV0lOR19IT0xFID0gJ01PREVfRFJBV0lOR19IT0xFJztcbmV4cG9ydCBjb25zdCBNT0RFX0RSQVdJTkdfSVRFTSA9ICdNT0RFX0RSQVdJTkdfSVRFTSc7XG5leHBvcnQgY29uc3QgTU9ERV9ST1RBVElOR19JVEVNID0gJ01PREVfUk9UQVRJTkdfSVRFTSc7XG5leHBvcnQgY29uc3QgTU9ERV9VUExPQURJTkdfSU1BR0UgPSAnTU9ERV9VUExPQURJTkdfSU1BR0UnO1xuZXhwb3J0IGNvbnN0IE1PREVfRklUVElOR19JTUFHRSA9ICdNT0RFX0ZJVFRJTkdfSU1BR0UnO1xuZXhwb3J0IGNvbnN0IE1PREVfVklFV0lOR19DQVRBTE9HID0gJ01PREVfVklFV0lOR19DQVRBTE9HJztcbmV4cG9ydCBjb25zdCBNT0RFX0NPTkZJR1VSSU5HX1BST0pFQ1QgPSAnTU9ERV9DT05GSUdVUklOR19QUk9KRUNUJztcblxuLy9UaGlua2luZyBhYm91dCBpdC4uLlxuLy9odHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9pdC9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9Qcm94eVxuLypcbmxldCBNT0RFX0RFRiA9IFtcbiAgJ0lETEUnLFxuICAnMkRfWk9PTV9JTicsXG4gICcyRF9aT09NX09VVCcsXG4gICcyRF9QQU4nLFxuICAnM0RfVklFVycsXG4gICczRF9GSVJTVF9QRVJTT04nLFxuICAnV0FJVElOR19EUkFXSU5HX0xJTkUnLFxuICAnRFJBR0dJTkdfTElORScsXG4gICdEUkFHR0lOR19WRVJURVgnLFxuICAnRFJBR0dJTkdfSVRFTScsXG4gICdEUkFHR0lOR19IT0xFJyxcbiAgJ0RSQVdJTkdfTElORScsXG4gICdEUkFXSU5HX0hPTEUnLFxuICAnRFJBV0lOR19JVEVNJyxcbiAgJ1JPVEFUSU5HX0lURU0nLFxuICAnVVBMT0FESU5HX0lNQUdFJyxcbiAgJ0ZJVFRJTkdfSU1BR0UnLFxuICAnVklFV0lOR19DQVRBTE9HJyxcbiAgJ0NPTkZJR1VSSU5HX1BST0pFQ1QnLFxuXTtcblxuZXhwb3J0IGNvbnN0IE1PREUgPSBuZXcgUHJveHkoIE1PREVfREVGLCB7IGdldDogKHRhcmdldCwgbmFtZSkgPT4geyByZXR1cm4gdGFyZ2V0LmluZGV4T2YobmFtZSkgIT09IC0xID8gbmFtZSA6IG51bGwgfSB9ICk7XG4qL1xuXG5leHBvcnQgY29uc3QgTU9ERV9TTkFQUElORyA9IFtcbiAgTU9ERV9JRExFLCBNT0RFXzJEX1pPT01fSU4sIE1PREVfMkRfWk9PTV9PVVQsIE1PREVfMkRfUEFOLFxuICBNT0RFX1dBSVRJTkdfRFJBV0lOR19MSU5FLCBNT0RFX0RSQVdJTkdfTElORSwgTU9ERV9EUkFXSU5HX0hPTEUsXG4gIE1PREVfRFJBV0lOR19JVEVNLCBNT0RFX0RSQUdHSU5HX0xJTkUsIE1PREVfRFJBR0dJTkdfVkVSVEVYLFxuICBNT0RFX0RSQUdHSU5HX0lURU0sIE1PREVfRFJBR0dJTkdfSE9MRSwgTU9ERV9GSVRUSU5HX0lNQUdFLFxuICBNT0RFX1VQTE9BRElOR19JTUFHRSwgTU9ERV9ST1RBVElOR19JVEVNXG5dO1xuXG4vL1VOSVRTXG5leHBvcnQgY29uc3QgVU5JVF9NSUxMSU1FVEVSID0gJ21tJztcbmV4cG9ydCBjb25zdCBVTklUX0NFTlRJTUVURVIgPSAnY20nO1xuZXhwb3J0IGNvbnN0IFVOSVRfTUVURVIgPSAnbSc7XG5leHBvcnQgY29uc3QgVU5JVF9JTkNIID0gJ2luJztcbmV4cG9ydCBjb25zdCBVTklUX0ZPT1QgPSAnZnQnO1xuZXhwb3J0IGNvbnN0IFVOSVRfTUlMRSA9ICdtaSc7XG5cbmV4cG9ydCBjb25zdCBVTklUU19MRU5HVEggPSBbXG4gIFVOSVRfTUlMTElNRVRFUixcbiAgVU5JVF9DRU5USU1FVEVSLFxuICBVTklUX01FVEVSLFxuICBVTklUX0lOQ0gsXG4gIFVOSVRfRk9PVCxcbiAgVU5JVF9NSUxFXG5dO1xuXG5leHBvcnQgY29uc3QgRVBTSUxPTiA9IDFlLTY7XG4iXX0=