From 6ba8cb4d35060b803410ef1660f67c37d6101e26 Mon Sep 17 00:00:00 2001 From: jneilliii Date: Sun, 15 Mar 2020 03:47:20 -0400 Subject: [PATCH] 0.1.12 #### Added - Rotation options to mesh visualization, community forum request. - Custom debug logging for future troubleshooting - Custom commands that will give additional buttons on tab - Cancel button to stop processing when visualization gets stuck - Larger precision number processing - Themify support, will now color the background and axis based on tab colors - Marlin Mesh Bed Leveling support - Marlin OpenScad Output support - Option to show webcam while processing #### Updated - Several UI improvements - Timeout logic to also stop processing on server side - Plotly library to version 1.52.2 --- octoprint_bedlevelvisualizer/__init__.py | 122 +- .../static/css/bedlevelvisualizer.css | 59 + .../static/css/font-awesome-v4-shims.min.css | 1 + .../static/css/font-awesome.min.css | 1 + .../static/css/fontawesome-iconpicker.css | 311 + .../static/js/bedlevelvisualizer.js | 189 +- .../static/js/fontawesome-iconpicker.js | 5305 +++++++++++++++++ .../static/js/jquery-ui.min.js | 8 + .../static/js/knockout-sortable.js | 486 ++ .../static/js/ko.iconpicker.js | 28 + .../static/js/plotly-latest.min.js | 6 +- .../static/webfonts/fa-brands-400.eot | Bin 0 -> 134396 bytes .../static/webfonts/fa-brands-400.svg | 1260 ++++ .../static/webfonts/fa-brands-400.ttf | Bin 0 -> 134160 bytes .../static/webfonts/fa-brands-400.woff | Bin 0 -> 87048 bytes .../static/webfonts/fa-brands-400.woff2 | Bin 0 -> 74288 bytes .../static/webfonts/fa-regular-400.eot | Bin 0 -> 40308 bytes .../static/webfonts/fa-regular-400.svg | 471 ++ .../static/webfonts/fa-regular-400.ttf | Bin 0 -> 40080 bytes .../static/webfonts/fa-regular-400.woff | Bin 0 -> 18164 bytes .../static/webfonts/fa-regular-400.woff2 | Bin 0 -> 14872 bytes .../static/webfonts/fa-solid-900.eot | Bin 0 -> 209012 bytes .../static/webfonts/fa-solid-900.svg | 2763 +++++++++ .../static/webfonts/fa-solid-900.ttf | Bin 0 -> 208792 bytes .../static/webfonts/fa-solid-900.woff | Bin 0 -> 102224 bytes .../static/webfonts/fa-solid-900.woff2 | Bin 0 -> 79100 bytes .../bedlevelvisualizer_settings.jinja2 | 100 +- .../templates/bedlevelvisualizer_tab.jinja2 | 52 +- setup.py | 2 +- ...report_cartesian_Mesh_Bed_Level_data.gcode | 12 + ...report_cartesian_Mesh_Bed_Level_scad.gcode | 13 + virtual_level_report_klipper.gcode | 20 + virtual_level_report_repetier.gcode | 730 +++ virtual_level_report_repetier_G33_L0.gcode | 115 + ...epetier_distortion_correction_matrix.gcode | 12 + 35 files changed, 12006 insertions(+), 60 deletions(-) create mode 100644 octoprint_bedlevelvisualizer/static/css/bedlevelvisualizer.css create mode 100644 octoprint_bedlevelvisualizer/static/css/font-awesome-v4-shims.min.css create mode 100644 octoprint_bedlevelvisualizer/static/css/font-awesome.min.css create mode 100644 octoprint_bedlevelvisualizer/static/css/fontawesome-iconpicker.css create mode 100644 octoprint_bedlevelvisualizer/static/js/fontawesome-iconpicker.js create mode 100644 octoprint_bedlevelvisualizer/static/js/jquery-ui.min.js create mode 100644 octoprint_bedlevelvisualizer/static/js/knockout-sortable.js create mode 100644 octoprint_bedlevelvisualizer/static/js/ko.iconpicker.js create mode 100644 octoprint_bedlevelvisualizer/static/webfonts/fa-brands-400.eot create mode 100644 octoprint_bedlevelvisualizer/static/webfonts/fa-brands-400.svg create mode 100644 octoprint_bedlevelvisualizer/static/webfonts/fa-brands-400.ttf create mode 100644 octoprint_bedlevelvisualizer/static/webfonts/fa-brands-400.woff create mode 100644 octoprint_bedlevelvisualizer/static/webfonts/fa-brands-400.woff2 create mode 100644 octoprint_bedlevelvisualizer/static/webfonts/fa-regular-400.eot create mode 100644 octoprint_bedlevelvisualizer/static/webfonts/fa-regular-400.svg create mode 100644 octoprint_bedlevelvisualizer/static/webfonts/fa-regular-400.ttf create mode 100644 octoprint_bedlevelvisualizer/static/webfonts/fa-regular-400.woff create mode 100644 octoprint_bedlevelvisualizer/static/webfonts/fa-regular-400.woff2 create mode 100644 octoprint_bedlevelvisualizer/static/webfonts/fa-solid-900.eot create mode 100644 octoprint_bedlevelvisualizer/static/webfonts/fa-solid-900.svg create mode 100644 octoprint_bedlevelvisualizer/static/webfonts/fa-solid-900.ttf create mode 100644 octoprint_bedlevelvisualizer/static/webfonts/fa-solid-900.woff create mode 100644 octoprint_bedlevelvisualizer/static/webfonts/fa-solid-900.woff2 create mode 100644 virtual_level_report_cartesian_Mesh_Bed_Level_data.gcode create mode 100644 virtual_level_report_cartesian_Mesh_Bed_Level_scad.gcode create mode 100644 virtual_level_report_klipper.gcode create mode 100644 virtual_level_report_repetier.gcode create mode 100644 virtual_level_report_repetier_G33_L0.gcode create mode 100644 virtual_level_report_repetier_distortion_correction_matrix.gcode diff --git a/octoprint_bedlevelvisualizer/__init__.py b/octoprint_bedlevelvisualizer/__init__.py index 223a9f6..f2f98f8 100644 --- a/octoprint_bedlevelvisualizer/__init__.py +++ b/octoprint_bedlevelvisualizer/__init__.py @@ -4,15 +4,19 @@ import octoprint.plugin import re import numpy as np +import logging +import flask class bedlevelvisualizer(octoprint.plugin.StartupPlugin, octoprint.plugin.TemplatePlugin, octoprint.plugin.AssetPlugin, - octoprint.plugin.SettingsPlugin, - octoprint.plugin.WizardPlugin): + octoprint.plugin.SettingsPlugin, + octoprint.plugin.WizardPlugin, + octoprint.plugin.SimpleApiPlugin): def __init__(self): self.processing = False + self.mesh_collection_canceled = False self.old_marlin = False self.old_marlin_offset = 0 self.repetier_firmware = False @@ -20,6 +24,8 @@ def __init__(self): self.box = [] self.flip_x = False self.flip_y = False + self._logger = logging.getLogger("octoprint.plugins.bedlevelvisualizer") + self._bedlevelvisualizer_logger = logging.getLogger("octoprint.plugins.bedlevelvisualizer.debug") ##~~ SettingsPlugin def get_settings_defaults(self): @@ -36,16 +42,61 @@ def get_settings_defaults(self): use_center_origin=False, use_relative_offsets=False, timeout=60, - ignore_correction_matrix=False) + rotation=0, + ignore_correction_matrix=False, + debug_logging = False, + commands=[], + show_labels=True, + show_webcam=False) + + def get_settings_version(self): + return 1 + + def on_settings_migrate(self, target, current=None): + if current is None or current < 1: + # Loop through commands adding new fields + commands_new = [] + self._logger.info(self._settings.get(['commands'])) + for command in self._settings.get(['commands']): + command["confirmation"] = False + command["input"] = [] + command["message"] = "" + commands_new.append(command) + self._settings.set(["commands"],commands_new) + + def on_settings_save(self, data): + old_debug_logging = self._settings.get_boolean(["debug_logging"]) + + octoprint.plugin.SettingsPlugin.on_settings_save(self, data) + + new_debug_logging = self._settings.get_boolean(["debug_logging"]) + if old_debug_logging != new_debug_logging: + if new_debug_logging: + self._bedlevelvisualizer_logger.setLevel(logging.DEBUG) + else: + self._bedlevelvisualizer_logger.setLevel(logging.INFO) ##~~ StartupPlugin + + def on_startup(self, host, port): + # setup customized logger + from octoprint.logging.handlers import CleaningTimedRotatingFileHandler + bedlevelvisualizer_logging_handler = CleaningTimedRotatingFileHandler(self._settings.get_plugin_logfile_path(postfix="debug"), when="D", backupCount=3) + bedlevelvisualizer_logging_handler.setFormatter(logging.Formatter("[%(asctime)s] %(levelname)s: %(message)s")) + bedlevelvisualizer_logging_handler.setLevel(logging.DEBUG) + + self._bedlevelvisualizer_logger.addHandler(bedlevelvisualizer_logging_handler) + self._bedlevelvisualizer_logger.setLevel(logging.DEBUG if self._settings.get_boolean(["debug_logging"]) else logging.INFO) + self._bedlevelvisualizer_logger.propagate = False + def on_after_startup(self): self._logger.info("OctoPrint-BedLevelVisualizer loaded!") ##~~ AssetPlugin def get_assets(self): return dict( - js=["js/bedlevelvisualizer.js","js/plotly-latest.min.js"], + js=["js/jquery-ui.min.js","js/knockout-sortable.js","js/fontawesome-iconpicker.js","js/ko.iconpicker.js","js/plotly-latest.min.js","js/bedlevelvisualizer.js"], + css=["css/font-awesome.min.css","css/font-awesome-v4-shims.min.css","css/fontawesome-iconpicker.css","css/bedlevelvisualizer.css"] ) ##~~ WizardPlugin @@ -69,20 +120,30 @@ def flagMeshCollection(self, comm_instance, phase, cmd, cmd_type, gcode, *args, if cmd.startswith("@BEDLEVELVISUALIZER"): self.mesh = [] self.box = [] - self.processing = True + if not self.mesh_collection_canceled and not self.processing: + self.processing = True + if self.mesh_collection_canceled: + self.mesh_collection_canceled = False + return + self._bedlevelvisualizer_logger.debug("mesh collection started") return def processGCODE(self, comm, line, *args, **kwargs): - if self._settings.get_boolean(["ignore_correction_matrix"]) and re.match(r"^Bed Level Correction Matrix:.*$", line.strip()): + if self.processing == True: + self._bedlevelvisualizer_logger.debug(line.strip()) + if self._settings.get_boolean(["ignore_correction_matrix"]) and re.match(r"^(Mesh )?Bed Level (Correction Matrix|data):.*$", line.strip()): line = "ok" - if self.processing and "ok" not in line and re.match(r"^((G33.+)|(Bed.+)|(\d+\s)|(\|\s*)|(\[?\s?\+?\-?\d?\.\d+\]?\s*\,?)|(\s?\.\s*)|(NAN\,?))+$", line.strip()): + if self.processing and "ok" not in line and re.match(r"^((G33.+)|(Bed.+)|(\d+\s)|(\|\s*)|(\s*\[\s+)|(\[?\s?\+?\-?\d?\.\d+\]?\s*\,?)|(\s?\.\s*)|(NAN\,?))+(\s+\],?)?$", line.strip()): new_line = re.findall(r"(\+?\-?\d*\.\d*)",line) + self._bedlevelvisualizer_logger.debug(new_line) if re.match(r"^Bed x:.+$", line.strip()): self.old_marlin = True + self._bedlevelvisualizer_logger.debug("using old marlin flag") if re.match(r"^G33 X.+$", line.strip()): self.repetier_firmware = True + self._bedlevelvisualizer_logger.debug("using repetier flag") if self._settings.get(["stripFirst"]): new_line.pop(0) @@ -93,6 +154,7 @@ def processGCODE(self, comm, line, *args, **kwargs): return line if self.processing and "ok" not in line and re.match(r"^Subdivided with CATMULL ROM Leveling Grid:.*$", line.strip()): + self._bedlevelvisualizer_logger.debug("resetting mesh to blank because of CATMULL subdivision") self.mesh = [] return line @@ -110,8 +172,11 @@ def processGCODE(self, comm, line, *args, **kwargs): if self.processing and self.old_marlin and re.match(r"^Eqn coefficients:.+$", line.strip()): self.old_marlin_offset = re.sub("^(Eqn coefficients:.+)(\d+.\d+)$",r"\2", line.strip()) + self._bedlevelvisualizer_logger.debug("using old marlin offset") - if self.processing and "Home XYZ first" in line: + if self.processing and "Home XYZ first" in line or "Invalid mesh" in line: + reason = "data is invalid" if "Invalid" in line else "homing required" + self._bedlevelvisualizer_logger.debug("stopping mesh collection because %s" % reason) self._plugin_manager.send_plugin_message(self._identifier, dict(error=line.strip())) self.processing = False return line @@ -143,38 +208,67 @@ def processGCODE(self, comm, line, *args, **kwargs): max_y = max([y for x, y in self.box]) bed = dict(type=bed_type,x_min=min_x,x_max=max_x,y_min=min_y,y_max=max_y,z_min=min_z,z_max=max_z) + self._bedlevelvisualizer_logger.debug(bed) if self.old_marlin or self.repetier_firmware: a = np.swapaxes(self.mesh,1,0) x = np.unique(a[0]).astype(np.float) y = np.unique(a[1]).astype(np.float) z = a[2].reshape((len(x),len(y))) - self._logger.debug(a) - self._logger.debug(x) - self._logger.debug(y) - self._logger.debug(z) + self._bedlevelvisualizer_logger.debug(a) + self._bedlevelvisualizer_logger.debug(x) + self._bedlevelvisualizer_logger.debug(y) + self._bedlevelvisualizer_logger.debug(z) offset = 0 if self.old_marlin: offset = self.old_marlin_offset - self._logger.debug(offset) + self._bedlevelvisualizer_logger.debug(offset) self.mesh = np.subtract(z, [offset], dtype=np.float, casting='unsafe').tolist() - self._logger.debug(self.mesh) + self._bedlevelvisualizer_logger.debug(self.mesh) self.processing = False + self._bedlevelvisualizer_logger.debug("stopping mesh collection") if bool(self.flip_y) != bool(self._settings.get(["flipY"])): + self._bedlevelvisualizer_logger.debug("flipping y axis") self.mesh.reverse() if self._settings.get(["use_relative_offsets"]): + self._bedlevelvisualizer_logger.debug("using relative offsets") self.mesh = np.array(self.mesh) if self._settings.get(["use_center_origin"]): + self._bedlevelvisualizer_logger.debug("using center origin") self.mesh = np.subtract(self.mesh, self.mesh[len(self.mesh[0])/2,len(self.mesh)/2], dtype=np.float, casting='unsafe').tolist() else: self.mesh = np.subtract(self.mesh, self.mesh[0,0], dtype=np.float, casting='unsafe').tolist() + if int(self._settings.get(["rotation"])) > 0: + self._bedlevelvisualizer_logger.debug("rotating mesh by %s" % self._settings.get(["rotation"])) + self.mesh = np.array(self.mesh) + self.mesh = np.rot90(self.mesh, int(self._settings.get(["rotation"]))/90).tolist() + + self._bedlevelvisualizer_logger.debug(self.mesh) + self._plugin_manager.send_plugin_message(self._identifier, dict(mesh=self.mesh,bed=bed)) return line + ##~~ SimpleApiPlugin mixin + def get_api_commands(self): + return dict(stopProcessing=[]) + + def on_api_get(self, request): + if request.args.get("stopProcessing"): + self._bedlevelvisualizer_logger.debug("Canceling mesh collection per user request") + self._bedlevelvisualizer_logger.debug("Mesh data collected prior to cancel:") + self._bedlevelvisualizer_logger.debug(self.mesh) + self.processing = False + self.mesh_collection_canceled = True + self.mesh = [] + self._bedlevelvisualizer_logger.debug("Mesh data after clearing:") + self._bedlevelvisualizer_logger.debug(self.mesh) + response = dict(stopped=True) + return flask.jsonify(response) + ##~~ Softwareupdate hook def get_update_information(self): return dict( diff --git a/octoprint_bedlevelvisualizer/static/css/bedlevelvisualizer.css b/octoprint_bedlevelvisualizer/static/css/bedlevelvisualizer.css new file mode 100644 index 0000000..ef82d8f --- /dev/null +++ b/octoprint_bedlevelvisualizer/static/css/bedlevelvisualizer.css @@ -0,0 +1,59 @@ +div#bedlevelvisualizergraph div.modebar { + left: 50%; + transform: translateX(-50%); +} + +#bedlevelvisualizer_webcam_container{ + width:100%; + overflow: hidden; + position:relative; + outline:0; + background-color:#000; + margin-bottom: 10px; +} +#bedlevelvisualizer_webcam_container .webcam_rotated{ + position:relative; + width:100%; + padding-bottom:100%; + pointer-events:none; +} +#bedlevelvisualizer_webcam_container .webcam_rotated .webcam_fixed_ratio{ + position:absolute; + transform:rotate(-90deg); + top:0; + bottom:0; + pointer-events:none; +} +#bedlevelvisualizer_webcam_container .webcam_rotated .webcam_fixed_ratio .webcam_fixed_ratio_inner{ + width:100%; + height:100%; + pointer-events:none; +} +#bedlevelvisualizer_webcam_container .webcam_unrotated .webcam_fixed_ratio{ + width:100%; + pointer-events:none; + padding-bottom:100%; + position:relative; +} +#bedlevelvisualizer_webcam_container .webcam_unrotated .webcam_fixed_ratio.ratio43{ + padding-bottom:75%; +} +#bedlevelvisualizer_webcam_container .webcam_unrotated .webcam_fixed_ratio.ratio169{ + padding-bottom:56.25%; +} +#bedlevelvisualizer_webcam_container .webcam_unrotated .webcam_fixed_ratio.ratio1610{ + padding-bottom:62.5%; +} +#bedlevelvisualizer_webcam_container .webcam_unrotated .webcam_fixed_ratio .webcam_fixed_ratio_inner{ + position:absolute; + top:0; + bottom:0; + left:0; + right:0; + pointer-events:none; +} +#bedlevelvisualizer_webcam_container img{ + width:100%; + height:100%; + object-fit:contain; +} \ No newline at end of file diff --git a/octoprint_bedlevelvisualizer/static/css/font-awesome-v4-shims.min.css b/octoprint_bedlevelvisualizer/static/css/font-awesome-v4-shims.min.css new file mode 100644 index 0000000..06c24e9 --- /dev/null +++ b/octoprint_bedlevelvisualizer/static/css/font-awesome-v4-shims.min.css @@ -0,0 +1 @@ +.fa.fa-glass:before{content:"\f000"}.fa.fa-meetup{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-star-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-close:before,.fa.fa-remove:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-file-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before,.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-pencil:before{content:"\f303"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-share-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart:before{content:"\f080"}.fa.fa-bar-chart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart-o:before{content:"\f080"}.fa.fa-facebook-square,.fa.fa-twitter-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-lemon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-facebook,.fa.fa-twitter{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-scissors:before{content:"\f0c4"}.fa.fa-files-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-navicon:before,.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-google-plus,.fa.fa-google-plus-square,.fa.fa-pinterest,.fa.fa-pinterest-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-dashboard:before,.fa.fa-tachometer:before{content:"\f3fd"}.fa.fa-comment-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard,.fa.fa-paste{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paste:before{content:"\f328"}.fa.fa-lightbulb-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f381"}.fa.fa-cloud-upload:before{content:"\f382"}.fa.fa-bell-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile-phone:before,.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-folder-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-o:before{content:"\f089"}.fa.fa-star-half-empty{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-empty:before{content:"\f089"}.fa.fa-star-half-full{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-full:before{content:"\f089"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before{content:"\f127"}.fa.fa-shield:before{content:"\f3ed"}.fa.fa-calendar-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-css3,.fa.fa-html5,.fa.fa-maxcdn{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ticket:before{content:"\f3ff"}.fa.fa-minus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before,.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-dollar:before,.fa.fa-usd:before{content:"\f155"}.fa.fa-inr:before,.fa.fa-rupee:before{content:"\f156"}.fa.fa-cny:before,.fa.fa-jpy:before,.fa.fa-rmb:before,.fa.fa-yen:before{content:"\f157"}.fa.fa-rouble:before,.fa.fa-rub:before,.fa.fa-ruble:before{content:"\f158"}.fa.fa-krw:before,.fa.fa-won:before{content:"\f159"}.fa.fa-bitcoin,.fa.fa-btc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f15e"}.fa.fa-sort-amount-asc:before{content:"\f160"}.fa.fa-sort-amount-desc:before{content:"\f161"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f163"}.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube,.fa.fa-youtube-play,.fa.fa-youtube-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-adn,.fa.fa-bitbucket,.fa.fa-bitbucket-square,.fa.fa-dropbox,.fa.fa-flickr,.fa.fa-instagram,.fa.fa-stack-overflow{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-android,.fa.fa-apple,.fa.fa-dribbble,.fa.fa-foursquare,.fa.fa-gittip,.fa.fa-gratipay,.fa.fa-linux,.fa.fa-skype,.fa.fa-trello,.fa.fa-windows{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-pagelines,.fa.fa-renren,.fa.fa-stack-exchange,.fa.fa-vk,.fa.fa-weibo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-try:before,.fa.fa-turkish-lira:before{content:"\f195"}.fa.fa-plus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-openid,.fa.fa-slack,.fa.fa-wordpress{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bank:before,.fa.fa-institution:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-delicious,.fa.fa-digg,.fa.fa-drupal,.fa.fa-google,.fa.fa-joomla,.fa.fa-pied-piper-alt,.fa.fa-pied-piper-pp,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-stumbleupon,.fa.fa-stumbleupon-circle,.fa.fa-yahoo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-spoon:before{content:"\f2e5"}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-cab:before{content:"\f1ba"}.fa.fa-envelope-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-deviantart,.fa.fa-soundcloud{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-file-pdf-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-codepen,.fa.fa-jsfiddle,.fa.fa-vine{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-life-bouy,.fa.fa-life-ring{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-bouy:before{content:"\f1cd"}.fa.fa-life-buoy{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-buoy:before{content:"\f1cd"}.fa.fa-life-saver{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-saver:before{content:"\f1cd"}.fa.fa-support{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-ra,.fa.fa-rebel{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire,.fa.fa-ge{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git,.fa.fa-git-square,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-qq,.fa.fa-tencent-weibo,.fa.fa-wechat,.fa.fa-weixin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-sliders:before{content:"\f1de"}.fa.fa-futbol-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare,.fa.fa-twitch,.fa.fa-yelp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-cc-amex,.fa.fa-cc-discover,.fa.fa-cc-mastercard,.fa.fa-cc-paypal,.fa.fa-cc-stripe,.fa.fa-cc-visa,.fa.fa-google-wallet,.fa.fa-paypal{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-angellist,.fa.fa-ioxhost,.fa.fa-lastfm,.fa.fa-lastfm-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before,.fa.fa-shekel:before,.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-meanpath{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-meanpath:before{content:"\f2b4"}.fa.fa-buysellads,.fa.fa-connectdevelop,.fa.fa-dashcube,.fa.fa-forumbee,.fa.fa-leanpub,.fa.fa-sellsy,.fa.fa-shirtsinbulk,.fa.fa-simplybuilt,.fa.fa-skyatlas{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before{content:"\f224"}.fa.fa-facebook-official{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-medium,.fa.fa-viacoin,.fa.fa-y-combinator,.fa.fa-yc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-expeditedssl,.fa.fa-opencart,.fa.fa-optin-monster{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-battery-4:before,.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group,.fa.fa-object-ungroup,.fa.fa-sticky-note-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-diners-club,.fa.fa-cc-jcb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-clone,.fa.fa-hourglass-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-chrome,.fa.fa-creative-commons,.fa.fa-firefox,.fa.fa-get-pocket,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-internet-explorer,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square,.fa.fa-opera,.fa.fa-safari,.fa.fa-tripadvisor,.fa.fa-wikipedia-w{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-500px,.fa.fa-amazon,.fa.fa-contao{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-calendar-plus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie,.fa.fa-edge,.fa.fa-fonticons,.fa.fa-reddit-alien{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie,.fa.fa-fort-awesome,.fa.fa-mixcloud,.fa.fa-modx,.fa.fa-product-hunt,.fa.fa-scribd,.fa.fa-usb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-pause-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth,.fa.fa-bluetooth-b,.fa.fa-envira,.fa.fa-gitlab,.fa.fa-wheelchair-alt,.fa.fa-wpbeginner,.fa.fa-wpforms{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before,.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide,.fa.fa-glide-g{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-first-order,.fa.fa-google-plus-official,.fa.fa-pied-piper,.fa.fa-snapchat,.fa.fa-snapchat-ghost,.fa.fa-snapchat-square,.fa.fa-themeisle,.fa.fa-viadeo,.fa.fa-viadeo-square,.fa.fa-yoast{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-fa,.fa.fa-font-awesome{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-free-code-camp,.fa.fa-quora,.fa.fa-telegram{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-thermometer-4:before,.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before,.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize,.fa.fa-window-restore{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp,.fa.fa-eercast,.fa.fa-etsy,.fa.fa-grav,.fa.fa-imdb,.fa.fa-ravelry{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-spotify,.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 5 Brands";font-weight:400} \ No newline at end of file diff --git a/octoprint_bedlevelvisualizer/static/css/font-awesome.min.css b/octoprint_bedlevelvisualizer/static/css/font-awesome.min.css new file mode 100644 index 0000000..de56473 --- /dev/null +++ b/octoprint_bedlevelvisualizer/static/css/font-awesome.min.css @@ -0,0 +1 @@ +.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-icicles:before{content:"\f7ad"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} \ No newline at end of file diff --git a/octoprint_bedlevelvisualizer/static/css/fontawesome-iconpicker.css b/octoprint_bedlevelvisualizer/static/css/fontawesome-iconpicker.css new file mode 100644 index 0000000..cb68599 --- /dev/null +++ b/octoprint_bedlevelvisualizer/static/css/fontawesome-iconpicker.css @@ -0,0 +1,311 @@ +/*! + * Font Awesome Icon Picker + * https://farbelous.github.io/fontawesome-iconpicker/ + * + * @author Javi Aguilar, itsjavi.com + * @license MIT License + * @see https://github.com/farbelous/fontawesome-iconpicker/blob/master/LICENSE + */ +.iconpicker-popover.popover { + position: absolute; + top: 0; + left: 0; + display: none; + max-width: none; + padding: 1px; + text-align: left; + width: 234px; + background: #f7f7f7; + z-index: 9; +} +.iconpicker-popover.popover.top, +.iconpicker-popover.popover.topLeftCorner, +.iconpicker-popover.popover.topLeft, +.iconpicker-popover.popover.topRight, +.iconpicker-popover.popover.topRightCorner { + margin-top: -10px; +} +.iconpicker-popover.popover.right, +.iconpicker-popover.popover.rightTop, +.iconpicker-popover.popover.rightBottom { + margin-left: 10px; +} +.iconpicker-popover.popover.bottom, +.iconpicker-popover.popover.bottomRightCorner, +.iconpicker-popover.popover.bottomRight, +.iconpicker-popover.popover.bottomLeft, +.iconpicker-popover.popover.bottomLeftCorner { + margin-top: 10px; +} +.iconpicker-popover.popover.left, +.iconpicker-popover.popover.leftBottom, +.iconpicker-popover.popover.leftTop { + margin-left: -10px; +} +.iconpicker-popover.popover.inline { + margin: 0 0 12px 0; + position: relative; + display: inline-block; + opacity: 1; + top: auto; + left: auto; + bottom: auto; + right: auto; + max-width: 100%; + box-shadow: none; + z-index: auto; + vertical-align: top; +} +.iconpicker-popover.popover.inline > .arrow { + display: none; +} +.dropdown-menu .iconpicker-popover.inline { + margin: 0; + border: none; +} +.dropdown-menu.iconpicker-container { + padding: 0; +} +.iconpicker-popover.popover .popover-title { + padding: 12px; + font-size: 13px; + line-height: 15px; + border-bottom: 1px solid #ebebeb; + background-color: #f7f7f7; +} +.iconpicker-popover.popover .popover-title input[type=search].iconpicker-search { + margin: 0 0 2px 0; +} +.iconpicker-popover.popover .popover-title-text ~ input[type=search].iconpicker-search { + margin-top: 12px; +} +.iconpicker-popover.popover .popover-content { + padding: 0px; + text-align: center; +} +.iconpicker-popover .popover-footer { + float: none; + clear: both; + padding: 12px; + text-align: right; + margin: 0; + border-top: 1px solid #ebebeb; + background-color: #f7f7f7; +} +.iconpicker-popover .popover-footer:before, +.iconpicker-popover .popover-footer:after { + content: " "; + display: table; +} +.iconpicker-popover .popover-footer:after { + clear: both; +} +.iconpicker-popover .popover-footer .iconpicker-btn { + margin-left: 10px; +} +.iconpicker-popover .popover-footer input[type=search].iconpicker-search { + /*width:auto; + float:left;*/ + margin-bottom: 12px; +} +.iconpicker-popover.popover > .arrow, +.iconpicker-popover.popover > .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.iconpicker-popover.popover > .arrow { + border-width: 11px; +} +.iconpicker-popover.popover > .arrow:after { + border-width: 10px; + content: ""; +} +.iconpicker-popover.popover.top > .arrow, +.iconpicker-popover.popover.topLeft > .arrow, +.iconpicker-popover.popover.topRight > .arrow { + left: 50%; + margin-left: -11px; + border-bottom-width: 0; + border-top-color: #999999; + border-top-color: rgba(0, 0, 0, 0.25); + bottom: -11px; +} +.iconpicker-popover.popover.top > .arrow:after, +.iconpicker-popover.popover.topLeft > .arrow:after, +.iconpicker-popover.popover.topRight > .arrow:after { + content: " "; + bottom: 1px; + margin-left: -10px; + border-bottom-width: 0; + border-top-color: #fff; +} +.iconpicker-popover.popover.topLeft > .arrow { + left: 8px; + margin-left: 0; +} +.iconpicker-popover.popover.topRight > .arrow { + left: auto; + right: 8px; + margin-left: 0; +} +.iconpicker-popover.popover.right > .arrow, +.iconpicker-popover.popover.rightTop > .arrow, +.iconpicker-popover.popover.rightBottom > .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-left-width: 0; + border-right-color: #999999; + border-right-color: rgba(0, 0, 0, 0.25); +} +.iconpicker-popover.popover.right > .arrow:after, +.iconpicker-popover.popover.rightTop > .arrow:after, +.iconpicker-popover.popover.rightBottom > .arrow:after { + content: " "; + left: 1px; + bottom: -10px; + border-left-width: 0; + border-right-color: #fff; +} +.iconpicker-popover.popover.rightTop > .arrow { + top: auto; + bottom: 8px; + margin-top: 0; +} +.iconpicker-popover.popover.rightBottom > .arrow { + top: 8px; + margin-top: 0; +} +.iconpicker-popover.popover.bottom > .arrow, +.iconpicker-popover.popover.bottomRight > .arrow, +.iconpicker-popover.popover.bottomLeft > .arrow { + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999999; + border-bottom-color: rgba(0, 0, 0, 0.25); + top: -11px; +} +.iconpicker-popover.popover.bottom > .arrow:after, +.iconpicker-popover.popover.bottomRight > .arrow:after, +.iconpicker-popover.popover.bottomLeft > .arrow:after { + content: " "; + top: 1px; + margin-left: -10px; + border-top-width: 0; + border-bottom-color: #fff; +} +.iconpicker-popover.popover.bottomLeft > .arrow { + left: 8px; + margin-left: 0; +} +.iconpicker-popover.popover.bottomRight > .arrow { + left: auto; + right: 8px; + margin-left: 0; +} +.iconpicker-popover.popover.left > .arrow, +.iconpicker-popover.popover.leftBottom > .arrow, +.iconpicker-popover.popover.leftTop > .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999999; + border-left-color: rgba(0, 0, 0, 0.25); +} +.iconpicker-popover.popover.left > .arrow:after, +.iconpicker-popover.popover.leftBottom > .arrow:after, +.iconpicker-popover.popover.leftTop > .arrow:after { + content: " "; + right: 1px; + border-right-width: 0; + border-left-color: #fff; + bottom: -10px; +} +.iconpicker-popover.popover.leftBottom > .arrow { + top: 8px; + margin-top: 0; +} +.iconpicker-popover.popover.leftTop > .arrow { + top: auto; + bottom: 8px; + margin-top: 0; +} +.iconpicker { + position: relative; + text-align: left; + text-shadow: none; + line-height: 0; + display: block; + margin: 0; + overflow: hidden; +} +.iconpicker * { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + position: relative; +} +.iconpicker:before, +.iconpicker:after { + content: " "; + display: table; +} +.iconpicker:after { + clear: both; +} +.iconpicker .iconpicker-items { + position: relative; + clear: both; + float: none; + padding: 12px 0 0 12px; + background: #fff; + margin: 0; + overflow: hidden; + overflow-y: auto; + min-height: 49px; + max-height: 246px; +} +.iconpicker .iconpicker-items:before, +.iconpicker .iconpicker-items:after { + content: " "; + display: table; +} +.iconpicker .iconpicker-items:after { + clear: both; +} +.iconpicker .iconpicker-item { + float: left; + width: 14px; + height: 14px; + padding: 12px; + margin: 0 12px 12px 0; + text-align: center; + cursor: pointer; + border-radius: 3px; + font-size: 14px; + box-shadow: 0 0 0 1px #ddd; + color: inherit; + /*&:nth-child(4n+4) { + margin-right: 0; + } + &:nth-last-child(-n+4) { + margin-bottom: 0; + }*/ +} +.iconpicker .iconpicker-item:hover:not(.iconpicker-selected) { + background-color: #eee; +} +.iconpicker .iconpicker-item.iconpicker-selected { + box-shadow: none; + color: #fff; + background: #000; +} +.iconpicker-component { + cursor: pointer; +} diff --git a/octoprint_bedlevelvisualizer/static/js/bedlevelvisualizer.js b/octoprint_bedlevelvisualizer/static/js/bedlevelvisualizer.js index 0ff2725..22f2e7a 100644 --- a/octoprint_bedlevelvisualizer/static/js/bedlevelvisualizer.js +++ b/octoprint_bedlevelvisualizer/static/js/bedlevelvisualizer.js @@ -12,6 +12,7 @@ $(function () { self.mesh_data_y = ko.observableArray([]); self.mesh_data_z_height = ko.observable(); self.save_mesh = ko.observable(); + self.selected_command = ko.observable(); self.mesh_status = ko.computed(function(){ if(self.processing()){ return 'Collecting mesh data.'; @@ -22,7 +23,7 @@ $(function () { return 'Update mesh.' } }); - + self.onBeforeBinding = function() { self.mesh_data(self.settingsViewModel.settings.plugins.bedlevelvisualizer.stored_mesh()); self.mesh_data_x(self.settingsViewModel.settings.plugins.bedlevelvisualizer.stored_mesh_x()); @@ -30,11 +31,11 @@ $(function () { self.mesh_data_z_height(self.settingsViewModel.settings.plugins.bedlevelvisualizer.stored_mesh_z_height()); self.save_mesh(self.settingsViewModel.settings.plugins.bedlevelvisualizer.save_mesh()); } - + self.onAfterBinding = function() { $('div#settings_plugin_bedlevelvisualizer i[data-toggle="tooltip"],div#tab_plugin_bedlevelvisualizer i[data-toggle="tooltip"],div#wizard_plugin_bedlevelvisualizer i[data-toggle="tooltip"],div#settings_plugin_bedlevelvisualizer pre[data-toggle="tooltip"]').tooltip(); } - + self.onEventSettingsUpdated = function (payload) { self.mesh_data(self.settingsViewModel.settings.plugins.bedlevelvisualizer.stored_mesh()); self.save_mesh(self.settingsViewModel.settings.plugins.bedlevelvisualizer.save_mesh()); @@ -48,33 +49,35 @@ $(function () { if (mesh_data.mesh.length > 0) { var x_data = []; var y_data = []; - - for(var i = 0;i <= (mesh_data.mesh[0].length - 1);i++){ - if((mesh_data.bed.type == "circular") || self.settingsViewModel.settings.plugins.bedlevelvisualizer.use_center_origin()){ + + for(var i = 0;i <= (mesh_data.mesh[0].length - 1);i++) { + if ((mesh_data.bed.type == "circular") || self.settingsViewModel.settings.plugins.bedlevelvisualizer.use_center_origin()) { x_data.push(Math.round(mesh_data.bed.x_min - (mesh_data.bed.x_max/2)+i/(mesh_data.mesh[0].length - 1)*(mesh_data.bed.x_max - mesh_data.bed.x_min))); } else { x_data.push(Math.round(mesh_data.bed.x_min+i/(mesh_data.mesh[0].length - 1)*(mesh_data.bed.x_max - mesh_data.bed.x_min))); } }; - - for(var i = 0;i <= (mesh_data.mesh.length - 1);i++){ - if((mesh_data.bed.type == "circular") || self.settingsViewModel.settings.plugins.bedlevelvisualizer.use_center_origin()){ + + for(var i = 0;i <= (mesh_data.mesh.length - 1);i++) { + if ((mesh_data.bed.type == "circular") || self.settingsViewModel.settings.plugins.bedlevelvisualizer.use_center_origin()) { y_data.push(Math.round(mesh_data.bed.y_min - (mesh_data.bed.y_max/2)+i/(mesh_data.mesh.length - 1)*(mesh_data.bed.y_max - mesh_data.bed.y_min))); } else { y_data.push(Math.round(mesh_data.bed.y_min+i/(mesh_data.mesh.length - 1)*(mesh_data.bed.y_max - mesh_data.bed.y_min))); } }; - + self.drawMesh(mesh_data.mesh,true,x_data,y_data,mesh_data.bed.z_max); } return; } if (mesh_data.error) { + clearTimeout(self.timeout); + self.processing(false); new PNotify({ - title: 'Bed Visualizer Error', - text: '

Looks like your settings are not correct or there was an error.

Please see the Readme for configuration tips.

'+mesh_data.error+'

', - hide: true - }); + title: 'Bed Visualizer Error', + text: '

Looks like your settings are not correct or there was an error.

Please see the Readme for configuration tips.

'+mesh_data.error+'

', + hide: true + }); return; } return; @@ -84,8 +87,8 @@ $(function () { // console.log(mesh_data_z+'\n'+store_data+'\n'+mesh_data_x+'\n'+mesh_data_y+'\n'+mesh_data_z_height); clearTimeout(self.timeout); self.processing(false); - if(self.save_mesh()){ - if(store_data){ + if (self.save_mesh()) { + if (store_data) { self.settingsViewModel.settings.plugins.bedlevelvisualizer.stored_mesh(mesh_data_z); self.settingsViewModel.settings.plugins.bedlevelvisualizer.stored_mesh_x(mesh_data_x); self.settingsViewModel.settings.plugins.bedlevelvisualizer.stored_mesh_y(mesh_data_y); @@ -94,19 +97,28 @@ $(function () { self.settingsViewModel.saveData(); }; } - + try { var data = [{ z: mesh_data_z, x: mesh_data_x, y: mesh_data_y, - type: 'surface' + type: 'surface', + colorbar: { + tickfont: { + color: $('#tabs_content').css('color') + } + } } ]; + var background_color = $('#tabs_content').css('background-color'); + var foreground_color = $('#tabs_content').css('color'); var layout = { //title: 'Bed Leveling Mesh', autosize: true, + plot_bgcolor: background_color, + paper_bgcolor: background_color, margin: { l: 0, r: 0, @@ -121,13 +133,21 @@ $(function () { z: .25 } }, + xaxis: { + color: foreground_color + }, + yaxis: { + color: foreground_color + }, zaxis: { + color: foreground_color, range: [-2,2] } } }; - + var config_options = { + displaylogo: false, modeBarButtonsToRemove: ['resetCameraLastSave3d'], modeBarButtonsToAdd: [{ name: 'Move Nozzle', @@ -136,8 +156,8 @@ $(function () { click: function(gd, ev) { var button = ev.currentTarget; var button_enabled = button._previousVal || false; - if(!button_enabled){ - gd.on('plotly_click', function(data){ + if (!button_enabled) { + gd.on('plotly_click', function(data) { var gcode_command = 'G1 X' + data.points[0].x + ' Y' + data.points[0].y OctoPrint.control.sendGcode([gcode_command]); }); @@ -149,7 +169,7 @@ $(function () { } }] } - + Plotly.react('bedlevelvisualizergraph', data, layout, config_options); } catch(err) { new PNotify({ @@ -169,10 +189,10 @@ $(function () { } } else if (self.settingsViewModel.settings.plugins.bedlevelvisualizer.stored_mesh().length > 0) { self.drawMesh(self.mesh_data(),false,self.settingsViewModel.settings.plugins.bedlevelvisualizer.stored_mesh_x(),self.settingsViewModel.settings.plugins.bedlevelvisualizer.stored_mesh_y(),self.settingsViewModel.settings.plugins.bedlevelvisualizer.stored_mesh_z_height()); - } + } return; } - + if (previous === "#tab_plugin_bedlevelvisualizer") { //Plotly.purge('bedlevelvisualizergraph'); } @@ -180,20 +200,129 @@ $(function () { self.updateMesh = function () { self.processing(true); - self.timeout = setTimeout(function(){self.processing(false);new PNotify({title: 'Bed Visualizer Error',text: '
Timeout occured before prcessing completed. Processing may still be running or there may be a configuration error. Consider increasing the timeout value in settings.
',type: 'info',hide: true});}, (parseInt(self.settingsViewModel.settings.plugins.bedlevelvisualizer.timeout())*1000)); + self.timeout = setTimeout(function(){self.cancelMeshUpdate();new PNotify({title: 'Bed Visualizer Error',text: '
Timeout occured before prcessing completed. Processing may still be running or there may be a configuration error. Consider increasing the timeout value in settings.
',type: 'info',hide: true});}, (parseInt(self.settingsViewModel.settings.plugins.bedlevelvisualizer.timeout())*1000)); var gcode_cmds = self.settingsViewModel.settings.plugins.bedlevelvisualizer.command().split("\n"); - if (gcode_cmds.indexOf("@BEDLEVELVISUALIZER") == -1){ + if (gcode_cmds.indexOf("@BEDLEVELVISUALIZER") == -1) { gcode_cmds = ["@BEDLEVELVISUALIZER"].concat(gcode_cmds); } + // clean extraneous code + gcode_cmds = gcode_cmds.filter(function(array_val) { + var x = Boolean(array_val); + return x == true; + }); + + console.log(gcode_cmds); + + OctoPrint.control.sendGcode(gcode_cmds); + }; + + self.cancelMeshUpdate = function() { + $.ajax({ + url: API_BASEURL + "plugin/bedlevelvisualizer", + type: "GET", + dataType: "json", + data: {stopProcessing:true}, + contentType: "application/json; charset=UTF-8" + }).done(function(data){ + if(data.stopped){ + clearTimeout(self.timeout); + self.processing(false); + } + }); + } + + // Custom command list + + self.showEditor = function(data) { + self.selected_command(data); + $('#BedLevelVisulizerCommandEditor').modal('show'); + }; + + self.copyCommand = function(data) { + self.settingsViewModel.settings.plugins.bedlevelvisualizer.commands.push({ + icon: ko.observable(data.icon()), + label: ko.observable(data.label()), + tooltip: ko.observable(data.tooltip()), + command: ko.observable(data.command()), + confirmation: ko.observable(data.confirmation()), + message: ko.observable(data.message()), + enabled_while_printing: ko.observable(data.enabled_while_printing()), + enabled_while_graphing: ko.observable(data.enabled_while_graphing()), + input: ko.observableArray(data.input())}); + }; + + self.moveCommandUp = function(data) { + let currentIndex = self.settingsViewModel.settings.plugins.bedlevelvisualizer.commands.indexOf(data); + if (currentIndex > 0) { + let queueArray = self.settingsViewModel.settings.plugins.bedlevelvisualizer.commands(); + self.settingsViewModel.settings.plugins.bedlevelvisualizer.commands.splice(currentIndex-1, 2, queueArray[currentIndex], queueArray[currentIndex - 1]); + } + } + + self.moveCommandDown = function(data) { + let currentIndex = self.settingsViewModel.settings.plugins.bedlevelvisualizer.commands.indexOf(data); + if (currentIndex < self.settingsViewModel.settings.plugins.bedlevelvisualizer.commands().length - 1) { + let queueArray = self.settingsViewModel.settings.plugins.bedlevelvisualizer.commands(); + self.settingsViewModel.settings.plugins.bedlevelvisualizer.commands.splice(currentIndex, 2, queueArray[currentIndex + 1], queueArray[currentIndex]); + } + } + + self.addCommand = function() { + self.settingsViewModel.settings.plugins.bedlevelvisualizer.commands.push({icon: ko.observable('fas fa-gear'), label: ko.observable(''), tooltip: ko.observable(''), command: ko.observable(''), confirmation: ko.observable(false), message: ko.observable(''), input: ko.observableArray([]), enabled_while_printing: ko.observable(false), enabled_while_graphing: ko.observable(false)}); + } + + self.removeCommand = function(data) { + self.settingsViewModel.settings.plugins.bedlevelvisualizer.commands.remove(data); + } + + self.addParameter = function(data) { + data.input.push({label: ko.observable(''), parameter: ko.observable(''), value: ko.observable('')}); + } + + self.insertParameter = function(data) { + var text = self.selected_command().command(); + text += '%(' + data.parameter() + ')s'; + self.selected_command().command(text); + console.log(data); + } + + self.removeParameter = function(data) { + var text = self.selected_command().command(); + var search = '%\\(' + data.parameter() + '\\)s'; + var re = new RegExp(search,"gm"); + var new_text = text.replace(re, ''); + self.selected_command().command(new_text); + self.selected_command().input.remove(data); + } + + self.runCustomCommand = function(data, event) { + var gcode_cmds = data.command().split("\n"); + var parameters = {}; + // clean extraneous code gcode_cmds = gcode_cmds.filter(function(array_val) { var x = Boolean(array_val); return x == true; }); - - console.log(gcode_cmds); - - OctoPrint.control.sendGcode(gcode_cmds); + if (data.input().length > 0) { + _.each(data.input(), function (input) { + if (!input.hasOwnProperty("parameter") || !input.hasOwnProperty("value")) { + return; + } + parameters[input.parameter()] = input.value(); + }); + } + if (data.confirmation()) { + showConfirmationDialog({ + message: data.message(), + onproceed: function (e) { + OctoPrint.control.sendGcodeWithParameters(gcode_cmds, parameters); + } + }); + } else { + OctoPrint.control.sendGcodeWithParameters(gcode_cmds, parameters); + } + event.currentTarget.blur(); }; } diff --git a/octoprint_bedlevelvisualizer/static/js/fontawesome-iconpicker.js b/octoprint_bedlevelvisualizer/static/js/fontawesome-iconpicker.js new file mode 100644 index 0000000..a6ce126 --- /dev/null +++ b/octoprint_bedlevelvisualizer/static/js/fontawesome-iconpicker.js @@ -0,0 +1,5305 @@ +/*! + * Font Awesome Icon Picker + * https://farbelous.github.io/fontawesome-iconpicker/ + * + * @author Javi Aguilar, itsjavi.com + * @license MIT License + * @see https://github.com/farbelous/fontawesome-iconpicker/blob/master/LICENSE + */ + + +(function(e) { + if (typeof define === "function" && define.amd) { + define([ "jquery" ], e); + } else { + e(jQuery); + } +})(function(j) { + j.ui = j.ui || {}; + var e = j.ui.version = "1.12.1"; + (function() { + var r, y = Math.max, x = Math.abs, s = /left|center|right/, i = /top|center|bottom/, f = /[\+\-]\d+(\.[\d]+)?%?/, l = /^\w+/, c = /%$/, a = j.fn.pos; + function q(e, a, t) { + return [ parseFloat(e[0]) * (c.test(e[0]) ? a / 100 : 1), parseFloat(e[1]) * (c.test(e[1]) ? t / 100 : 1) ]; + } + function C(e, a) { + return parseInt(j.css(e, a), 10) || 0; + } + function t(e) { + var a = e[0]; + if (a.nodeType === 9) { + return { + width: e.width(), + height: e.height(), + offset: { + top: 0, + left: 0 + } + }; + } + if (j.isWindow(a)) { + return { + width: e.width(), + height: e.height(), + offset: { + top: e.scrollTop(), + left: e.scrollLeft() + } + }; + } + if (a.preventDefault) { + return { + width: 0, + height: 0, + offset: { + top: a.pageY, + left: a.pageX + } + }; + } + return { + width: e.outerWidth(), + height: e.outerHeight(), + offset: e.offset() + }; + } + j.pos = { + scrollbarWidth: function() { + if (r !== undefined) { + return r; + } + var e, a, t = j("
" + "
"), s = t.children()[0]; + j("body").append(t); + e = s.offsetWidth; + t.css("overflow", "scroll"); + a = s.offsetWidth; + if (e === a) { + a = t[0].clientWidth; + } + t.remove(); + return r = e - a; + }, + getScrollInfo: function(e) { + var a = e.isWindow || e.isDocument ? "" : e.element.css("overflow-x"), t = e.isWindow || e.isDocument ? "" : e.element.css("overflow-y"), s = a === "scroll" || a === "auto" && e.width < e.element[0].scrollWidth, r = t === "scroll" || t === "auto" && e.height < e.element[0].scrollHeight; + return { + width: r ? j.pos.scrollbarWidth() : 0, + height: s ? j.pos.scrollbarWidth() : 0 + }; + }, + getWithinInfo: function(e) { + var a = j(e || window), t = j.isWindow(a[0]), s = !!a[0] && a[0].nodeType === 9, r = !t && !s; + return { + element: a, + isWindow: t, + isDocument: s, + offset: r ? j(e).offset() : { + left: 0, + top: 0 + }, + scrollLeft: a.scrollLeft(), + scrollTop: a.scrollTop(), + width: a.outerWidth(), + height: a.outerHeight() + }; + } + }; + j.fn.pos = function(h) { + if (!h || !h.of) { + return a.apply(this, arguments); + } + h = j.extend({}, h); + var m, p, d, u, T, e, g = j(h.of), b = j.pos.getWithinInfo(h.within), k = j.pos.getScrollInfo(b), w = (h.collision || "flip").split(" "), v = {}; + e = t(g); + if (g[0].preventDefault) { + h.at = "left top"; + } + p = e.width; + d = e.height; + u = e.offset; + T = j.extend({}, u); + j.each([ "my", "at" ], function() { + var e = (h[this] || "").split(" "), a, t; + if (e.length === 1) { + e = s.test(e[0]) ? e.concat([ "center" ]) : i.test(e[0]) ? [ "center" ].concat(e) : [ "center", "center" ]; + } + e[0] = s.test(e[0]) ? e[0] : "center"; + e[1] = i.test(e[1]) ? e[1] : "center"; + a = f.exec(e[0]); + t = f.exec(e[1]); + v[this] = [ a ? a[0] : 0, t ? t[0] : 0 ]; + h[this] = [ l.exec(e[0])[0], l.exec(e[1])[0] ]; + }); + if (w.length === 1) { + w[1] = w[0]; + } + if (h.at[0] === "right") { + T.left += p; + } else if (h.at[0] === "center") { + T.left += p / 2; + } + if (h.at[1] === "bottom") { + T.top += d; + } else if (h.at[1] === "center") { + T.top += d / 2; + } + m = q(v.at, p, d); + T.left += m[0]; + T.top += m[1]; + return this.each(function() { + var t, e, f = j(this), l = f.outerWidth(), c = f.outerHeight(), a = C(this, "marginLeft"), s = C(this, "marginTop"), r = l + a + C(this, "marginRight") + k.width, i = c + s + C(this, "marginBottom") + k.height, o = j.extend({}, T), n = q(v.my, f.outerWidth(), f.outerHeight()); + if (h.my[0] === "right") { + o.left -= l; + } else if (h.my[0] === "center") { + o.left -= l / 2; + } + if (h.my[1] === "bottom") { + o.top -= c; + } else if (h.my[1] === "center") { + o.top -= c / 2; + } + o.left += n[0]; + o.top += n[1]; + t = { + marginLeft: a, + marginTop: s + }; + j.each([ "left", "top" ], function(e, a) { + if (j.ui.pos[w[e]]) { + j.ui.pos[w[e]][a](o, { + targetWidth: p, + targetHeight: d, + elemWidth: l, + elemHeight: c, + collisionPosition: t, + collisionWidth: r, + collisionHeight: i, + offset: [ m[0] + n[0], m[1] + n[1] ], + my: h.my, + at: h.at, + within: b, + elem: f + }); + } + }); + if (h.using) { + e = function(e) { + var a = u.left - o.left, t = a + p - l, s = u.top - o.top, r = s + d - c, i = { + target: { + element: g, + left: u.left, + top: u.top, + width: p, + height: d + }, + element: { + element: f, + left: o.left, + top: o.top, + width: l, + height: c + }, + horizontal: t < 0 ? "left" : a > 0 ? "right" : "center", + vertical: r < 0 ? "top" : s > 0 ? "bottom" : "middle" + }; + if (p < l && x(a + t) < p) { + i.horizontal = "center"; + } + if (d < c && x(s + r) < d) { + i.vertical = "middle"; + } + if (y(x(a), x(t)) > y(x(s), x(r))) { + i.important = "horizontal"; + } else { + i.important = "vertical"; + } + h.using.call(this, e, i); + }; + } + f.offset(j.extend(o, { + using: e + })); + }); + }; + j.ui.pos = { + _trigger: function(e, a, t, s) { + if (a.elem) { + a.elem.trigger({ + type: t, + position: e, + positionData: a, + triggered: s + }); + } + }, + fit: { + left: function(e, a) { + j.ui.pos._trigger(e, a, "posCollide", "fitLeft"); + var t = a.within, s = t.isWindow ? t.scrollLeft : t.offset.left, r = t.width, i = e.left - a.collisionPosition.marginLeft, f = s - i, l = i + a.collisionWidth - r - s, c; + if (a.collisionWidth > r) { + if (f > 0 && l <= 0) { + c = e.left + f + a.collisionWidth - r - s; + e.left += f - c; + } else if (l > 0 && f <= 0) { + e.left = s; + } else { + if (f > l) { + e.left = s + r - a.collisionWidth; + } else { + e.left = s; + } + } + } else if (f > 0) { + e.left += f; + } else if (l > 0) { + e.left -= l; + } else { + e.left = y(e.left - i, e.left); + } + j.ui.pos._trigger(e, a, "posCollided", "fitLeft"); + }, + top: function(e, a) { + j.ui.pos._trigger(e, a, "posCollide", "fitTop"); + var t = a.within, s = t.isWindow ? t.scrollTop : t.offset.top, r = a.within.height, i = e.top - a.collisionPosition.marginTop, f = s - i, l = i + a.collisionHeight - r - s, c; + if (a.collisionHeight > r) { + if (f > 0 && l <= 0) { + c = e.top + f + a.collisionHeight - r - s; + e.top += f - c; + } else if (l > 0 && f <= 0) { + e.top = s; + } else { + if (f > l) { + e.top = s + r - a.collisionHeight; + } else { + e.top = s; + } + } + } else if (f > 0) { + e.top += f; + } else if (l > 0) { + e.top -= l; + } else { + e.top = y(e.top - i, e.top); + } + j.ui.pos._trigger(e, a, "posCollided", "fitTop"); + } + }, + flip: { + left: function(e, a) { + j.ui.pos._trigger(e, a, "posCollide", "flipLeft"); + var t = a.within, s = t.offset.left + t.scrollLeft, r = t.width, i = t.isWindow ? t.scrollLeft : t.offset.left, f = e.left - a.collisionPosition.marginLeft, l = f - i, c = f + a.collisionWidth - r - i, o = a.my[0] === "left" ? -a.elemWidth : a.my[0] === "right" ? a.elemWidth : 0, n = a.at[0] === "left" ? a.targetWidth : a.at[0] === "right" ? -a.targetWidth : 0, h = -2 * a.offset[0], m, p; + if (l < 0) { + m = e.left + o + n + h + a.collisionWidth - r - s; + if (m < 0 || m < x(l)) { + e.left += o + n + h; + } + } else if (c > 0) { + p = e.left - a.collisionPosition.marginLeft + o + n + h - i; + if (p > 0 || x(p) < c) { + e.left += o + n + h; + } + } + j.ui.pos._trigger(e, a, "posCollided", "flipLeft"); + }, + top: function(e, a) { + j.ui.pos._trigger(e, a, "posCollide", "flipTop"); + var t = a.within, s = t.offset.top + t.scrollTop, r = t.height, i = t.isWindow ? t.scrollTop : t.offset.top, f = e.top - a.collisionPosition.marginTop, l = f - i, c = f + a.collisionHeight - r - i, o = a.my[1] === "top", n = o ? -a.elemHeight : a.my[1] === "bottom" ? a.elemHeight : 0, h = a.at[1] === "top" ? a.targetHeight : a.at[1] === "bottom" ? -a.targetHeight : 0, m = -2 * a.offset[1], p, d; + if (l < 0) { + d = e.top + n + h + m + a.collisionHeight - r - s; + if (d < 0 || d < x(l)) { + e.top += n + h + m; + } + } else if (c > 0) { + p = e.top - a.collisionPosition.marginTop + n + h + m - i; + if (p > 0 || x(p) < c) { + e.top += n + h + m; + } + } + j.ui.pos._trigger(e, a, "posCollided", "flipTop"); + } + }, + flipfit: { + left: function() { + j.ui.pos.flip.left.apply(this, arguments); + j.ui.pos.fit.left.apply(this, arguments); + }, + top: function() { + j.ui.pos.flip.top.apply(this, arguments); + j.ui.pos.fit.top.apply(this, arguments); + } + } + }; + (function() { + var e, a, t, s, r, i = document.getElementsByTagName("body")[0], f = document.createElement("div"); + e = document.createElement(i ? "div" : "body"); + t = { + visibility: "hidden", + width: 0, + height: 0, + border: 0, + margin: 0, + background: "none" + }; + if (i) { + j.extend(t, { + position: "absolute", + left: "-1000px", + top: "-1000px" + }); + } + for (r in t) { + e.style[r] = t[r]; + } + e.appendChild(f); + a = i || document.documentElement; + a.insertBefore(e, a.firstChild); + f.style.cssText = "position: absolute; left: 10.7432222px;"; + s = j(f).offset().left; + j.support.offsetFractions = s > 10 && s < 11; + e.innerHTML = ""; + a.removeChild(e); + })(); + })(); + var a = j.ui.position; +}); + +(function(e) { + "use strict"; + if (typeof define === "function" && define.amd) { + define([ "jquery" ], e); + } else if (window.jQuery && !window.jQuery.fn.iconpicker) { + e(window.jQuery); + } +})(function(c) { + "use strict"; + var f = { + isEmpty: function(e) { + return e === false || e === "" || e === null || e === undefined; + }, + isEmptyObject: function(e) { + return this.isEmpty(e) === true || e.length === 0; + }, + isElement: function(e) { + return c(e).length > 0; + }, + isString: function(e) { + return typeof e === "string" || e instanceof String; + }, + isArray: function(e) { + return c.isArray(e); + }, + inArray: function(e, a) { + return c.inArray(e, a) !== -1; + }, + throwError: function(e) { + throw "Font Awesome Icon Picker Exception: " + e; + } + }; + var t = function(e, a) { + this._id = t._idCounter++; + this.element = c(e).addClass("iconpicker-element"); + this._trigger("iconpickerCreate", { + iconpickerValue: this.iconpickerValue + }); + this.options = c.extend({}, t.defaultOptions, this.element.data(), a); + this.options.templates = c.extend({}, t.defaultOptions.templates, this.options.templates); + this.options.originalPlacement = this.options.placement; + this.container = f.isElement(this.options.container) ? c(this.options.container) : false; + if (this.container === false) { + if (this.element.is(".dropdown-toggle")) { + this.container = c("~ .dropdown-menu:first", this.element); + } else { + this.container = this.element.is("input,textarea,button,.btn") ? this.element.parent() : this.element; + } + } + this.container.addClass("iconpicker-container"); + if (this.isDropdownMenu()) { + this.options.placement = "inline"; + } + this.input = this.element.is("input,textarea") ? this.element.addClass("iconpicker-input") : false; + if (this.input === false) { + this.input = this.container.find(this.options.input); + if (!this.input.is("input,textarea")) { + this.input = false; + } + } + this.component = this.isDropdownMenu() ? this.container.parent().find(this.options.component) : this.container.find(this.options.component); + if (this.component.length === 0) { + this.component = false; + } else { + this.component.find("i").addClass("iconpicker-component"); + } + this._createPopover(); + this._createIconpicker(); + if (this.getAcceptButton().length === 0) { + this.options.mustAccept = false; + } + if (this.isInputGroup()) { + this.container.parent().append(this.popover); + } else { + this.container.append(this.popover); + } + this._bindElementEvents(); + this._bindWindowEvents(); + this.update(this.options.selected); + if (this.isInline()) { + this.show(); + } + this._trigger("iconpickerCreated", { + iconpickerValue: this.iconpickerValue + }); + }; + t._idCounter = 0; + t.defaultOptions = { + title: false, + selected: false, + defaultValue: false, + placement: "bottom", + collision: "none", + animation: true, + hideOnSelect: false, + showFooter: false, + searchInFooter: false, + mustAccept: false, + selectedCustomClass: "bg-primary", + icons: [], + fullClassFormatter: function(e) { + return e; + }, + input: "input,.iconpicker-input", + inputSearch: false, + container: false, + component: ".input-group-addon,.iconpicker-component", + templates: { + popover: '
' + '
', + footer: '', + buttons: '' + ' ', + search: '', + iconpicker: '
', + iconpickerItem: '' + } + }; + t.batch = function(e, a) { + var t = Array.prototype.slice.call(arguments, 2); + return c(e).each(function() { + var e = c(this).data("iconpicker"); + if (!!e) { + e[a].apply(e, t); + } + }); + }; + t.prototype = { + constructor: t, + options: {}, + _id: 0, + _trigger: function(e, a) { + a = a || {}; + this.element.trigger(c.extend({ + type: e, + iconpickerInstance: this + }, a)); + }, + _createPopover: function() { + this.popover = c(this.options.templates.popover); + var e = this.popover.find(".popover-title"); + if (!!this.options.title) { + e.append(c('
' + this.options.title + "
")); + } + if (this.hasSeparatedSearchInput() && !this.options.searchInFooter) { + e.append(this.options.templates.search); + } else if (!this.options.title) { + e.remove(); + } + if (this.options.showFooter && !f.isEmpty(this.options.templates.footer)) { + var a = c(this.options.templates.footer); + if (this.hasSeparatedSearchInput() && this.options.searchInFooter) { + a.append(c(this.options.templates.search)); + } + if (!f.isEmpty(this.options.templates.buttons)) { + a.append(c(this.options.templates.buttons)); + } + this.popover.append(a); + } + if (this.options.animation === true) { + this.popover.addClass("fade"); + } + return this.popover; + }, + _createIconpicker: function() { + var t = this; + this.iconpicker = c(this.options.templates.iconpicker); + var e = function(e) { + var a = c(this); + if (a.is("i")) { + a = a.parent(); + } + t._trigger("iconpickerSelect", { + iconpickerItem: a, + iconpickerValue: t.iconpickerValue + }); + if (t.options.mustAccept === false) { + t.update(a.data("iconpickerValue")); + t._trigger("iconpickerSelected", { + iconpickerItem: this, + iconpickerValue: t.iconpickerValue + }); + } else { + t.update(a.data("iconpickerValue"), true); + } + if (t.options.hideOnSelect && t.options.mustAccept === false) { + t.hide(); + } + }; + var a = c(this.options.templates.iconpickerItem); + var s = []; + for (var r in this.options.icons) { + if (typeof this.options.icons[r].title === "string") { + var i = a.clone(); + i.find("i").addClass(this.options.fullClassFormatter(this.options.icons[r].title)); + i.data("iconpickerValue", this.options.icons[r].title).on("click.iconpicker", e); + i.attr("title", "." + this.options.icons[r].title); + if (this.options.icons[r].searchTerms.length > 0) { + var f = ""; + for (var l = 0; l < this.options.icons[r].searchTerms.length; l++) { + f = f + this.options.icons[r].searchTerms[l] + " "; + } + i.attr("data-search-terms", f); + } + s.push(i); + } + } + this.iconpicker.find(".iconpicker-items").append(s); + this.popover.find(".popover-content").append(this.iconpicker); + return this.iconpicker; + }, + _isEventInsideIconpicker: function(e) { + var a = c(e.target); + if ((!a.hasClass("iconpicker-element") || a.hasClass("iconpicker-element") && !a.is(this.element)) && a.parents(".iconpicker-popover").length === 0) { + return false; + } + return true; + }, + _bindElementEvents: function() { + var a = this; + this.getSearchInput().on("keyup.iconpicker", function() { + a.filter(c(this).val().toLowerCase()); + }); + this.getAcceptButton().on("click.iconpicker", function() { + var e = a.iconpicker.find(".iconpicker-selected").get(0); + a.update(a.iconpickerValue); + a._trigger("iconpickerSelected", { + iconpickerItem: e, + iconpickerValue: a.iconpickerValue + }); + if (!a.isInline()) { + a.hide(); + } + }); + this.getCancelButton().on("click.iconpicker", function() { + if (!a.isInline()) { + a.hide(); + } + }); + this.element.on("focus.iconpicker", function(e) { + a.show(); + e.stopPropagation(); + }); + if (this.hasComponent()) { + this.component.on("click.iconpicker", function() { + a.toggle(); + }); + } + if (this.hasInput()) { + this.input.on("keyup.iconpicker", function(e) { + if (!f.inArray(e.keyCode, [ 38, 40, 37, 39, 16, 17, 18, 9, 8, 91, 93, 20, 46, 186, 190, 46, 78, 188, 44, 86 ])) { + a.update(); + } else { + a._updateFormGroupStatus(a.getValid(this.value) !== false); + } + if (a.options.inputSearch === true) { + a.filter(c(this).val().toLowerCase()); + } + }); + } + }, + _bindWindowEvents: function() { + var e = c(window.document); + var a = this; + var t = ".iconpicker.inst" + this._id; + c(window).on("resize.iconpicker" + t + " orientationchange.iconpicker" + t, function(e) { + if (a.popover.hasClass("in")) { + a.updatePlacement(); + } + }); + if (!a.isInline()) { + e.on("mouseup" + t, function(e) { + if (!a._isEventInsideIconpicker(e) && !a.isInline()) { + a.hide(); + } + }); + } + }, + _unbindElementEvents: function() { + this.popover.off(".iconpicker"); + this.element.off(".iconpicker"); + if (this.hasInput()) { + this.input.off(".iconpicker"); + } + if (this.hasComponent()) { + this.component.off(".iconpicker"); + } + if (this.hasContainer()) { + this.container.off(".iconpicker"); + } + }, + _unbindWindowEvents: function() { + c(window).off(".iconpicker.inst" + this._id); + c(window.document).off(".iconpicker.inst" + this._id); + }, + updatePlacement: function(e, a) { + e = e || this.options.placement; + this.options.placement = e; + a = a || this.options.collision; + a = a === true ? "flip" : a; + var t = { + at: "right bottom", + my: "right top", + of: this.hasInput() && !this.isInputGroup() ? this.input : this.container, + collision: a === true ? "flip" : a, + within: window + }; + this.popover.removeClass("inline topLeftCorner topLeft top topRight topRightCorner " + "rightTop right rightBottom bottomRight bottomRightCorner " + "bottom bottomLeft bottomLeftCorner leftBottom left leftTop"); + if (typeof e === "object") { + return this.popover.pos(c.extend({}, t, e)); + } + switch (e) { + case "inline": + { + t = false; + } + break; + + case "topLeftCorner": + { + t.my = "right bottom"; + t.at = "left top"; + } + break; + + case "topLeft": + { + t.my = "left bottom"; + t.at = "left top"; + } + break; + + case "top": + { + t.my = "center bottom"; + t.at = "center top"; + } + break; + + case "topRight": + { + t.my = "right bottom"; + t.at = "right top"; + } + break; + + case "topRightCorner": + { + t.my = "left bottom"; + t.at = "right top"; + } + break; + + case "rightTop": + { + t.my = "left bottom"; + t.at = "right center"; + } + break; + + case "right": + { + t.my = "left center"; + t.at = "right center"; + } + break; + + case "rightBottom": + { + t.my = "left top"; + t.at = "right center"; + } + break; + + case "bottomRightCorner": + { + t.my = "left top"; + t.at = "right bottom"; + } + break; + + case "bottomRight": + { + t.my = "right top"; + t.at = "right bottom"; + } + break; + + case "bottom": + { + t.my = "center top"; + t.at = "center bottom"; + } + break; + + case "bottomLeft": + { + t.my = "left top"; + t.at = "left bottom"; + } + break; + + case "bottomLeftCorner": + { + t.my = "right top"; + t.at = "left bottom"; + } + break; + + case "leftBottom": + { + t.my = "right top"; + t.at = "left center"; + } + break; + + case "left": + { + t.my = "right center"; + t.at = "left center"; + } + break; + + case "leftTop": + { + t.my = "right bottom"; + t.at = "left center"; + } + break; + + default: + { + return false; + } + break; + } + this.popover.css({ + display: this.options.placement === "inline" ? "" : "block" + }); + if (t !== false) { + this.popover.pos(t).css("maxWidth", c(window).width() - this.container.offset().left - 5); + } else { + this.popover.css({ + top: "auto", + right: "auto", + bottom: "auto", + left: "auto", + maxWidth: "none" + }); + } + this.popover.addClass(this.options.placement); + return true; + }, + _updateComponents: function() { + this.iconpicker.find(".iconpicker-item.iconpicker-selected").removeClass("iconpicker-selected " + this.options.selectedCustomClass); + if (this.iconpickerValue) { + this.iconpicker.find("." + this.options.fullClassFormatter(this.iconpickerValue).replace(/ /g, ".")).parent().addClass("iconpicker-selected " + this.options.selectedCustomClass); + } + if (this.hasComponent()) { + var e = this.component.find("i"); + if (e.length > 0) { + e.attr("class", this.options.fullClassFormatter(this.iconpickerValue)); + } else { + this.component.html(this.getHtml()); + } + } + }, + _updateFormGroupStatus: function(e) { + if (this.hasInput()) { + if (e !== false) { + this.input.parents(".form-group:first").removeClass("has-error"); + } else { + this.input.parents(".form-group:first").addClass("has-error"); + } + return true; + } + return false; + }, + getValid: function(e) { + if (!f.isString(e)) { + e = ""; + } + var a = e === ""; + e = c.trim(e); + var t = false; + for (var s = 0; s < this.options.icons.length; s++) { + if (this.options.icons[s].title === e) { + t = true; + break; + } + } + if (t || a) { + return e; + } + return false; + }, + setValue: function(e) { + var a = this.getValid(e); + if (a !== false) { + this.iconpickerValue = a; + this._trigger("iconpickerSetValue", { + iconpickerValue: a + }); + return this.iconpickerValue; + } else { + this._trigger("iconpickerInvalid", { + iconpickerValue: e + }); + return false; + } + }, + getHtml: function() { + return ''; + }, + setSourceValue: function(e) { + e = this.setValue(e); + if (e !== false && e !== "") { + if (this.hasInput()) { + this.input.val(this.iconpickerValue); + } else { + this.element.data("iconpickerValue", this.iconpickerValue); + } + this._trigger("iconpickerSetSourceValue", { + iconpickerValue: e + }); + } + return e; + }, + getSourceValue: function(e) { + e = e || this.options.defaultValue; + var a = e; + if (this.hasInput()) { + a = this.input.val(); + } else { + a = this.element.data("iconpickerValue"); + } + if (a === undefined || a === "" || a === null || a === false) { + a = e; + } + return a; + }, + hasInput: function() { + return this.input !== false; + }, + isInputSearch: function() { + return this.hasInput() && this.options.inputSearch === true; + }, + isInputGroup: function() { + return this.container.is(".input-group"); + }, + isDropdownMenu: function() { + return this.container.is(".dropdown-menu"); + }, + hasSeparatedSearchInput: function() { + return this.options.templates.search !== false && !this.isInputSearch(); + }, + hasComponent: function() { + return this.component !== false; + }, + hasContainer: function() { + return this.container !== false; + }, + getAcceptButton: function() { + return this.popover.find(".iconpicker-btn-accept"); + }, + getCancelButton: function() { + return this.popover.find(".iconpicker-btn-cancel"); + }, + getSearchInput: function() { + return this.popover.find(".iconpicker-search"); + }, + filter: function(r) { + if (f.isEmpty(r)) { + this.iconpicker.find(".iconpicker-item").show(); + return c(false); + } else { + var i = []; + this.iconpicker.find(".iconpicker-item").each(function() { + var e = c(this); + var a = e.attr("title").toLowerCase(); + var t = e.attr("data-search-terms") ? e.attr("data-search-terms").toLowerCase() : ""; + a = a + " " + t; + var s = false; + try { + s = new RegExp("(^|\\W)" + r, "g"); + } catch (e) { + s = false; + } + if (s !== false && a.match(s)) { + i.push(e); + e.show(); + } else { + e.hide(); + } + }); + return i; + } + }, + show: function() { + if (this.popover.hasClass("in")) { + return false; + } + c.iconpicker.batch(c(".iconpicker-popover.in:not(.inline)").not(this.popover), "hide"); + this._trigger("iconpickerShow", { + iconpickerValue: this.iconpickerValue + }); + this.updatePlacement(); + this.popover.addClass("in"); + setTimeout(c.proxy(function() { + this.popover.css("display", this.isInline() ? "" : "block"); + this._trigger("iconpickerShown", { + iconpickerValue: this.iconpickerValue + }); + }, this), this.options.animation ? 300 : 1); + }, + hide: function() { + if (!this.popover.hasClass("in")) { + return false; + } + this._trigger("iconpickerHide", { + iconpickerValue: this.iconpickerValue + }); + this.popover.removeClass("in"); + setTimeout(c.proxy(function() { + this.popover.css("display", "none"); + this.getSearchInput().val(""); + this.filter(""); + this._trigger("iconpickerHidden", { + iconpickerValue: this.iconpickerValue + }); + }, this), this.options.animation ? 300 : 1); + }, + toggle: function() { + if (this.popover.is(":visible")) { + this.hide(); + } else { + this.show(true); + } + }, + update: function(e, a) { + e = e ? e : this.getSourceValue(this.iconpickerValue); + this._trigger("iconpickerUpdate", { + iconpickerValue: this.iconpickerValue + }); + if (a === true) { + e = this.setValue(e); + } else { + e = this.setSourceValue(e); + this._updateFormGroupStatus(e !== false); + } + if (e !== false) { + this._updateComponents(); + } + this._trigger("iconpickerUpdated", { + iconpickerValue: this.iconpickerValue + }); + return e; + }, + destroy: function() { + this._trigger("iconpickerDestroy", { + iconpickerValue: this.iconpickerValue + }); + this.element.removeData("iconpicker").removeData("iconpickerValue").removeClass("iconpicker-element"); + this._unbindElementEvents(); + this._unbindWindowEvents(); + c(this.popover).remove(); + this._trigger("iconpickerDestroyed", { + iconpickerValue: this.iconpickerValue + }); + }, + disable: function() { + if (this.hasInput()) { + this.input.prop("disabled", true); + return true; + } + return false; + }, + enable: function() { + if (this.hasInput()) { + this.input.prop("disabled", false); + return true; + } + return false; + }, + isDisabled: function() { + if (this.hasInput()) { + return this.input.prop("disabled") === true; + } + return false; + }, + isInline: function() { + return this.options.placement === "inline" || this.popover.hasClass("inline"); + } + }; + c.iconpicker = t; + c.fn.iconpicker = function(a) { + return this.each(function() { + var e = c(this); + if (!e.data("iconpicker")) { + e.data("iconpicker", new t(this, typeof a === "object" ? a : {})); + } + }); + }; + t.defaultOptions = c.extend(t.defaultOptions, { + icons: [ { + title: "fab fa-500px", + searchTerms: [] + }, { + title: "fab fa-accessible-icon", + searchTerms: [ "accessibility", "handicap", "person", "wheelchair", "wheelchair-alt" ] + }, { + title: "fab fa-accusoft", + searchTerms: [] + }, { + title: "fab fa-acquisitions-incorporated", + searchTerms: [ "Dungeons & Dragons", "d&d", "dnd", "fantasy", "game", "gaming", "tabletop" ] + }, { + title: "fas fa-ad", + searchTerms: [] + }, { + title: "fas fa-address-book", + searchTerms: [] + }, { + title: "far fa-address-book", + searchTerms: [] + }, { + title: "fas fa-address-card", + searchTerms: [] + }, { + title: "far fa-address-card", + searchTerms: [] + }, { + title: "fas fa-adjust", + searchTerms: [ "contrast" ] + }, { + title: "fab fa-adn", + searchTerms: [] + }, { + title: "fab fa-adversal", + searchTerms: [] + }, { + title: "fab fa-affiliatetheme", + searchTerms: [] + }, { + title: "fas fa-air-freshener", + searchTerms: [] + }, { + title: "fab fa-algolia", + searchTerms: [] + }, { + title: "fas fa-align-center", + searchTerms: [ "middle", "text" ] + }, { + title: "fas fa-align-justify", + searchTerms: [ "text" ] + }, { + title: "fas fa-align-left", + searchTerms: [ "text" ] + }, { + title: "fas fa-align-right", + searchTerms: [ "text" ] + }, { + title: "fab fa-alipay", + searchTerms: [] + }, { + title: "fas fa-allergies", + searchTerms: [ "freckles", "hand", "intolerances", "pox", "spots" ] + }, { + title: "fab fa-amazon", + searchTerms: [] + }, { + title: "fab fa-amazon-pay", + searchTerms: [] + }, { + title: "fas fa-ambulance", + searchTerms: [ "help", "machine", "support", "vehicle" ] + }, { + title: "fas fa-american-sign-language-interpreting", + searchTerms: [] + }, { + title: "fab fa-amilia", + searchTerms: [] + }, { + title: "fas fa-anchor", + searchTerms: [ "link" ] + }, { + title: "fab fa-android", + searchTerms: [ "robot" ] + }, { + title: "fab fa-angellist", + searchTerms: [] + }, { + title: "fas fa-angle-double-down", + searchTerms: [ "arrows" ] + }, { + title: "fas fa-angle-double-left", + searchTerms: [ "arrows", "back", "laquo", "previous", "quote" ] + }, { + title: "fas fa-angle-double-right", + searchTerms: [ "arrows", "forward", "next", "quote", "raquo" ] + }, { + title: "fas fa-angle-double-up", + searchTerms: [ "arrows" ] + }, { + title: "fas fa-angle-down", + searchTerms: [ "arrow" ] + }, { + title: "fas fa-angle-left", + searchTerms: [ "arrow", "back", "previous" ] + }, { + title: "fas fa-angle-right", + searchTerms: [ "arrow", "forward", "next" ] + }, { + title: "fas fa-angle-up", + searchTerms: [ "arrow" ] + }, { + title: "fas fa-angry", + searchTerms: [ "disapprove", "emoticon", "face", "mad", "upset" ] + }, { + title: "far fa-angry", + searchTerms: [ "disapprove", "emoticon", "face", "mad", "upset" ] + }, { + title: "fab fa-angrycreative", + searchTerms: [] + }, { + title: "fab fa-angular", + searchTerms: [] + }, { + title: "fas fa-ankh", + searchTerms: [ "amulet", "copper", "coptic christianity", "copts", "crux ansata", "egyptian", "venus" ] + }, { + title: "fab fa-app-store", + searchTerms: [] + }, { + title: "fab fa-app-store-ios", + searchTerms: [] + }, { + title: "fab fa-apper", + searchTerms: [] + }, { + title: "fab fa-apple", + searchTerms: [ "food", "fruit", "mac", "osx" ] + }, { + title: "fas fa-apple-alt", + searchTerms: [ "fall", "food", "fruit", "fuji", "macintosh", "seasonal" ] + }, { + title: "fab fa-apple-pay", + searchTerms: [] + }, { + title: "fas fa-archive", + searchTerms: [ "box", "package", "storage" ] + }, { + title: "fas fa-archway", + searchTerms: [ "arc", "monument", "road", "street" ] + }, { + title: "fas fa-arrow-alt-circle-down", + searchTerms: [ "arrow-circle-o-down", "download" ] + }, { + title: "far fa-arrow-alt-circle-down", + searchTerms: [ "arrow-circle-o-down", "download" ] + }, { + title: "fas fa-arrow-alt-circle-left", + searchTerms: [ "arrow-circle-o-left", "back", "previous" ] + }, { + title: "far fa-arrow-alt-circle-left", + searchTerms: [ "arrow-circle-o-left", "back", "previous" ] + }, { + title: "fas fa-arrow-alt-circle-right", + searchTerms: [ "arrow-circle-o-right", "forward", "next" ] + }, { + title: "far fa-arrow-alt-circle-right", + searchTerms: [ "arrow-circle-o-right", "forward", "next" ] + }, { + title: "fas fa-arrow-alt-circle-up", + searchTerms: [ "arrow-circle-o-up" ] + }, { + title: "far fa-arrow-alt-circle-up", + searchTerms: [ "arrow-circle-o-up" ] + }, { + title: "fas fa-arrow-circle-down", + searchTerms: [ "download" ] + }, { + title: "fas fa-arrow-circle-left", + searchTerms: [ "back", "previous" ] + }, { + title: "fas fa-arrow-circle-right", + searchTerms: [ "forward", "next" ] + }, { + title: "fas fa-arrow-circle-up", + searchTerms: [] + }, { + title: "fas fa-arrow-down", + searchTerms: [ "download" ] + }, { + title: "fas fa-arrow-left", + searchTerms: [ "back", "previous" ] + }, { + title: "fas fa-arrow-right", + searchTerms: [ "forward", "next" ] + }, { + title: "fas fa-arrow-up", + searchTerms: [] + }, { + title: "fas fa-arrows-alt", + searchTerms: [ "arrow", "arrows", "bigger", "enlarge", "expand", "fullscreen", "move", "position", "reorder", "resize" ] + }, { + title: "fas fa-arrows-alt-h", + searchTerms: [ "arrows-h", "resize" ] + }, { + title: "fas fa-arrows-alt-v", + searchTerms: [ "arrows-v", "resize" ] + }, { + title: "fas fa-assistive-listening-systems", + searchTerms: [] + }, { + title: "fas fa-asterisk", + searchTerms: [ "details" ] + }, { + title: "fab fa-asymmetrik", + searchTerms: [] + }, { + title: "fas fa-at", + searchTerms: [ "e-mail", "email" ] + }, { + title: "fas fa-atlas", + searchTerms: [ "book", "directions", "geography", "map", "wayfinding" ] + }, { + title: "fas fa-atom", + searchTerms: [ "atheism", "chemistry", "science" ] + }, { + title: "fab fa-audible", + searchTerms: [] + }, { + title: "fas fa-audio-description", + searchTerms: [] + }, { + title: "fab fa-autoprefixer", + searchTerms: [] + }, { + title: "fab fa-avianex", + searchTerms: [] + }, { + title: "fab fa-aviato", + searchTerms: [] + }, { + title: "fas fa-award", + searchTerms: [ "honor", "praise", "prize", "recognition", "ribbon" ] + }, { + title: "fab fa-aws", + searchTerms: [] + }, { + title: "fas fa-backspace", + searchTerms: [ "command", "delete", "keyboard", "undo" ] + }, { + title: "fas fa-backward", + searchTerms: [ "previous", "rewind" ] + }, { + title: "fas fa-balance-scale", + searchTerms: [ "balanced", "justice", "legal", "measure", "weight" ] + }, { + title: "fas fa-ban", + searchTerms: [ "abort", "ban", "block", "cancel", "delete", "hide", "prohibit", "remove", "stop", "trash" ] + }, { + title: "fas fa-band-aid", + searchTerms: [ "bandage", "boo boo", "ouch" ] + }, { + title: "fab fa-bandcamp", + searchTerms: [] + }, { + title: "fas fa-barcode", + searchTerms: [ "scan" ] + }, { + title: "fas fa-bars", + searchTerms: [ "checklist", "drag", "hamburger", "list", "menu", "nav", "navigation", "ol", "reorder", "settings", "todo", "ul" ] + }, { + title: "fas fa-baseball-ball", + searchTerms: [] + }, { + title: "fas fa-basketball-ball", + searchTerms: [] + }, { + title: "fas fa-bath", + searchTerms: [] + }, { + title: "fas fa-battery-empty", + searchTerms: [ "power", "status" ] + }, { + title: "fas fa-battery-full", + searchTerms: [ "power", "status" ] + }, { + title: "fas fa-battery-half", + searchTerms: [ "power", "status" ] + }, { + title: "fas fa-battery-quarter", + searchTerms: [ "power", "status" ] + }, { + title: "fas fa-battery-three-quarters", + searchTerms: [ "power", "status" ] + }, { + title: "fas fa-bed", + searchTerms: [ "lodging", "sleep", "travel" ] + }, { + title: "fas fa-beer", + searchTerms: [ "alcohol", "bar", "beverage", "drink", "liquor", "mug", "stein" ] + }, { + title: "fab fa-behance", + searchTerms: [] + }, { + title: "fab fa-behance-square", + searchTerms: [] + }, { + title: "fas fa-bell", + searchTerms: [ "alert", "notification", "reminder" ] + }, { + title: "far fa-bell", + searchTerms: [ "alert", "notification", "reminder" ] + }, { + title: "fas fa-bell-slash", + searchTerms: [] + }, { + title: "far fa-bell-slash", + searchTerms: [] + }, { + title: "fas fa-bezier-curve", + searchTerms: [ "curves", "illustrator", "lines", "path", "vector" ] + }, { + title: "fas fa-bible", + searchTerms: [ "book", "catholicism", "christianity" ] + }, { + title: "fas fa-bicycle", + searchTerms: [ "bike", "gears", "transportation", "vehicle" ] + }, { + title: "fab fa-bimobject", + searchTerms: [] + }, { + title: "fas fa-binoculars", + searchTerms: [] + }, { + title: "fas fa-birthday-cake", + searchTerms: [] + }, { + title: "fab fa-bitbucket", + searchTerms: [ "bitbucket-square", "git" ] + }, { + title: "fab fa-bitcoin", + searchTerms: [] + }, { + title: "fab fa-bity", + searchTerms: [] + }, { + title: "fab fa-black-tie", + searchTerms: [] + }, { + title: "fab fa-blackberry", + searchTerms: [] + }, { + title: "fas fa-blender", + searchTerms: [] + }, { + title: "fas fa-blender-phone", + searchTerms: [ "appliance", "fantasy", "silly" ] + }, { + title: "fas fa-blind", + searchTerms: [] + }, { + title: "fab fa-blogger", + searchTerms: [] + }, { + title: "fab fa-blogger-b", + searchTerms: [] + }, { + title: "fab fa-bluetooth", + searchTerms: [] + }, { + title: "fab fa-bluetooth-b", + searchTerms: [] + }, { + title: "fas fa-bold", + searchTerms: [] + }, { + title: "fas fa-bolt", + searchTerms: [ "electricity", "lightning", "weather", "zap" ] + }, { + title: "fas fa-bomb", + searchTerms: [] + }, { + title: "fas fa-bone", + searchTerms: [] + }, { + title: "fas fa-bong", + searchTerms: [ "aparatus", "cannabis", "marijuana", "pipe", "smoke", "smoking" ] + }, { + title: "fas fa-book", + searchTerms: [ "documentation", "read" ] + }, { + title: "fas fa-book-dead", + searchTerms: [ "Dungeons & Dragons", "crossbones", "d&d", "dark arts", "death", "dnd", "documentation", "evil", "fantasy", "halloween", "holiday", "read", "skull", "spell" ] + }, { + title: "fas fa-book-open", + searchTerms: [ "flyer", "notebook", "open book", "pamphlet", "reading" ] + }, { + title: "fas fa-book-reader", + searchTerms: [ "library" ] + }, { + title: "fas fa-bookmark", + searchTerms: [ "save" ] + }, { + title: "far fa-bookmark", + searchTerms: [ "save" ] + }, { + title: "fas fa-bowling-ball", + searchTerms: [] + }, { + title: "fas fa-box", + searchTerms: [ "package" ] + }, { + title: "fas fa-box-open", + searchTerms: [] + }, { + title: "fas fa-boxes", + searchTerms: [] + }, { + title: "fas fa-braille", + searchTerms: [] + }, { + title: "fas fa-brain", + searchTerms: [ "cerebellum", "gray matter", "intellect", "medulla oblongata", "mind", "noodle", "wit" ] + }, { + title: "fas fa-briefcase", + searchTerms: [ "bag", "business", "luggage", "office", "work" ] + }, { + title: "fas fa-briefcase-medical", + searchTerms: [ "health briefcase" ] + }, { + title: "fas fa-broadcast-tower", + searchTerms: [ "airwaves", "radio", "waves" ] + }, { + title: "fas fa-broom", + searchTerms: [ "clean", "firebolt", "fly", "halloween", "holiday", "nimbus 2000", "quidditch", "sweep", "witch" ] + }, { + title: "fas fa-brush", + searchTerms: [ "bristles", "color", "handle", "painting" ] + }, { + title: "fab fa-btc", + searchTerms: [] + }, { + title: "fas fa-bug", + searchTerms: [ "insect", "report" ] + }, { + title: "fas fa-building", + searchTerms: [ "apartment", "business", "company", "office", "work" ] + }, { + title: "far fa-building", + searchTerms: [ "apartment", "business", "company", "office", "work" ] + }, { + title: "fas fa-bullhorn", + searchTerms: [ "announcement", "broadcast", "louder", "megaphone", "share" ] + }, { + title: "fas fa-bullseye", + searchTerms: [ "target" ] + }, { + title: "fas fa-burn", + searchTerms: [ "energy" ] + }, { + title: "fab fa-buromobelexperte", + searchTerms: [] + }, { + title: "fas fa-bus", + searchTerms: [ "machine", "public transportation", "transportation", "vehicle" ] + }, { + title: "fas fa-bus-alt", + searchTerms: [ "machine", "public transportation", "transportation", "vehicle" ] + }, { + title: "fas fa-business-time", + searchTerms: [ "briefcase", "business socks", "clock", "flight of the conchords", "wednesday" ] + }, { + title: "fab fa-buysellads", + searchTerms: [] + }, { + title: "fas fa-calculator", + searchTerms: [] + }, { + title: "fas fa-calendar", + searchTerms: [ "calendar-o", "date", "event", "schedule", "time", "when" ] + }, { + title: "far fa-calendar", + searchTerms: [ "calendar-o", "date", "event", "schedule", "time", "when" ] + }, { + title: "fas fa-calendar-alt", + searchTerms: [ "calendar", "date", "event", "schedule", "time", "when" ] + }, { + title: "far fa-calendar-alt", + searchTerms: [ "calendar", "date", "event", "schedule", "time", "when" ] + }, { + title: "fas fa-calendar-check", + searchTerms: [ "accept", "agree", "appointment", "confirm", "correct", "done", "ok", "select", "success", "todo" ] + }, { + title: "far fa-calendar-check", + searchTerms: [ "accept", "agree", "appointment", "confirm", "correct", "done", "ok", "select", "success", "todo" ] + }, { + title: "fas fa-calendar-minus", + searchTerms: [ "delete", "negative", "remove" ] + }, { + title: "far fa-calendar-minus", + searchTerms: [ "delete", "negative", "remove" ] + }, { + title: "fas fa-calendar-plus", + searchTerms: [ "add", "create", "new", "positive" ] + }, { + title: "far fa-calendar-plus", + searchTerms: [ "add", "create", "new", "positive" ] + }, { + title: "fas fa-calendar-times", + searchTerms: [ "archive", "delete", "remove", "x" ] + }, { + title: "far fa-calendar-times", + searchTerms: [ "archive", "delete", "remove", "x" ] + }, { + title: "fas fa-camera", + searchTerms: [ "photo", "picture", "record" ] + }, { + title: "fas fa-camera-retro", + searchTerms: [ "photo", "picture", "record" ] + }, { + title: "fas fa-campground", + searchTerms: [ "camping", "fall", "outdoors", "seasonal", "tent" ] + }, { + title: "fas fa-cannabis", + searchTerms: [ "bud", "chronic", "drugs", "endica", "endo", "ganja", "marijuana", "mary jane", "pot", "reefer", "sativa", "spliff", "weed", "whacky-tabacky" ] + }, { + title: "fas fa-capsules", + searchTerms: [ "drugs", "medicine" ] + }, { + title: "fas fa-car", + searchTerms: [ "machine", "transportation", "vehicle" ] + }, { + title: "fas fa-car-alt", + searchTerms: [] + }, { + title: "fas fa-car-battery", + searchTerms: [] + }, { + title: "fas fa-car-crash", + searchTerms: [] + }, { + title: "fas fa-car-side", + searchTerms: [] + }, { + title: "fas fa-caret-down", + searchTerms: [ "arrow", "dropdown", "menu", "more", "triangle down" ] + }, { + title: "fas fa-caret-left", + searchTerms: [ "arrow", "back", "previous", "triangle left" ] + }, { + title: "fas fa-caret-right", + searchTerms: [ "arrow", "forward", "next", "triangle right" ] + }, { + title: "fas fa-caret-square-down", + searchTerms: [ "caret-square-o-down", "dropdown", "menu", "more" ] + }, { + title: "far fa-caret-square-down", + searchTerms: [ "caret-square-o-down", "dropdown", "menu", "more" ] + }, { + title: "fas fa-caret-square-left", + searchTerms: [ "back", "caret-square-o-left", "previous" ] + }, { + title: "far fa-caret-square-left", + searchTerms: [ "back", "caret-square-o-left", "previous" ] + }, { + title: "fas fa-caret-square-right", + searchTerms: [ "caret-square-o-right", "forward", "next" ] + }, { + title: "far fa-caret-square-right", + searchTerms: [ "caret-square-o-right", "forward", "next" ] + }, { + title: "fas fa-caret-square-up", + searchTerms: [ "caret-square-o-up" ] + }, { + title: "far fa-caret-square-up", + searchTerms: [ "caret-square-o-up" ] + }, { + title: "fas fa-caret-up", + searchTerms: [ "arrow", "triangle up" ] + }, { + title: "fas fa-cart-arrow-down", + searchTerms: [ "shopping" ] + }, { + title: "fas fa-cart-plus", + searchTerms: [ "add", "create", "new", "positive", "shopping" ] + }, { + title: "fas fa-cat", + searchTerms: [ "feline", "halloween", "holiday", "kitten", "kitty", "meow", "pet" ] + }, { + title: "fab fa-cc-amazon-pay", + searchTerms: [] + }, { + title: "fab fa-cc-amex", + searchTerms: [ "amex" ] + }, { + title: "fab fa-cc-apple-pay", + searchTerms: [] + }, { + title: "fab fa-cc-diners-club", + searchTerms: [] + }, { + title: "fab fa-cc-discover", + searchTerms: [] + }, { + title: "fab fa-cc-jcb", + searchTerms: [] + }, { + title: "fab fa-cc-mastercard", + searchTerms: [] + }, { + title: "fab fa-cc-paypal", + searchTerms: [] + }, { + title: "fab fa-cc-stripe", + searchTerms: [] + }, { + title: "fab fa-cc-visa", + searchTerms: [] + }, { + title: "fab fa-centercode", + searchTerms: [] + }, { + title: "fas fa-certificate", + searchTerms: [ "badge", "star" ] + }, { + title: "fas fa-chair", + searchTerms: [ "furniture", "seat" ] + }, { + title: "fas fa-chalkboard", + searchTerms: [ "blackboard", "learning", "school", "teaching", "whiteboard", "writing" ] + }, { + title: "fas fa-chalkboard-teacher", + searchTerms: [ "blackboard", "instructor", "learning", "professor", "school", "whiteboard", "writing" ] + }, { + title: "fas fa-charging-station", + searchTerms: [] + }, { + title: "fas fa-chart-area", + searchTerms: [ "analytics", "area-chart", "graph" ] + }, { + title: "fas fa-chart-bar", + searchTerms: [ "analytics", "bar-chart", "graph" ] + }, { + title: "far fa-chart-bar", + searchTerms: [ "analytics", "bar-chart", "graph" ] + }, { + title: "fas fa-chart-line", + searchTerms: [ "activity", "analytics", "dashboard", "graph", "line-chart" ] + }, { + title: "fas fa-chart-pie", + searchTerms: [ "analytics", "graph", "pie-chart" ] + }, { + title: "fas fa-check", + searchTerms: [ "accept", "agree", "checkmark", "confirm", "correct", "done", "notice", "notification", "notify", "ok", "select", "success", "tick", "todo", "yes" ] + }, { + title: "fas fa-check-circle", + searchTerms: [ "accept", "agree", "confirm", "correct", "done", "ok", "select", "success", "todo", "yes" ] + }, { + title: "far fa-check-circle", + searchTerms: [ "accept", "agree", "confirm", "correct", "done", "ok", "select", "success", "todo", "yes" ] + }, { + title: "fas fa-check-double", + searchTerms: [ "accept", "agree", "checkmark", "confirm", "correct", "done", "notice", "notification", "notify", "ok", "select", "success", "tick", "todo" ] + }, { + title: "fas fa-check-square", + searchTerms: [ "accept", "agree", "checkmark", "confirm", "correct", "done", "ok", "select", "success", "todo", "yes" ] + }, { + title: "far fa-check-square", + searchTerms: [ "accept", "agree", "checkmark", "confirm", "correct", "done", "ok", "select", "success", "todo", "yes" ] + }, { + title: "fas fa-chess", + searchTerms: [] + }, { + title: "fas fa-chess-bishop", + searchTerms: [] + }, { + title: "fas fa-chess-board", + searchTerms: [] + }, { + title: "fas fa-chess-king", + searchTerms: [] + }, { + title: "fas fa-chess-knight", + searchTerms: [] + }, { + title: "fas fa-chess-pawn", + searchTerms: [] + }, { + title: "fas fa-chess-queen", + searchTerms: [] + }, { + title: "fas fa-chess-rook", + searchTerms: [] + }, { + title: "fas fa-chevron-circle-down", + searchTerms: [ "arrow", "dropdown", "menu", "more" ] + }, { + title: "fas fa-chevron-circle-left", + searchTerms: [ "arrow", "back", "previous" ] + }, { + title: "fas fa-chevron-circle-right", + searchTerms: [ "arrow", "forward", "next" ] + }, { + title: "fas fa-chevron-circle-up", + searchTerms: [ "arrow" ] + }, { + title: "fas fa-chevron-down", + searchTerms: [] + }, { + title: "fas fa-chevron-left", + searchTerms: [ "back", "bracket", "previous" ] + }, { + title: "fas fa-chevron-right", + searchTerms: [ "bracket", "forward", "next" ] + }, { + title: "fas fa-chevron-up", + searchTerms: [] + }, { + title: "fas fa-child", + searchTerms: [] + }, { + title: "fab fa-chrome", + searchTerms: [ "browser" ] + }, { + title: "fas fa-church", + searchTerms: [ "building", "community", "religion" ] + }, { + title: "fas fa-circle", + searchTerms: [ "circle-thin", "dot", "notification" ] + }, { + title: "far fa-circle", + searchTerms: [ "circle-thin", "dot", "notification" ] + }, { + title: "fas fa-circle-notch", + searchTerms: [ "circle-o-notch" ] + }, { + title: "fas fa-city", + searchTerms: [ "buildings", "busy", "skyscrapers", "urban", "windows" ] + }, { + title: "fas fa-clipboard", + searchTerms: [ "paste" ] + }, { + title: "far fa-clipboard", + searchTerms: [ "paste" ] + }, { + title: "fas fa-clipboard-check", + searchTerms: [ "accept", "agree", "confirm", "done", "ok", "select", "success", "todo", "yes" ] + }, { + title: "fas fa-clipboard-list", + searchTerms: [ "checklist", "completed", "done", "finished", "intinerary", "ol", "schedule", "todo", "ul" ] + }, { + title: "fas fa-clock", + searchTerms: [ "date", "late", "schedule", "timer", "timestamp", "watch" ] + }, { + title: "far fa-clock", + searchTerms: [ "date", "late", "schedule", "timer", "timestamp", "watch" ] + }, { + title: "fas fa-clone", + searchTerms: [ "copy", "duplicate" ] + }, { + title: "far fa-clone", + searchTerms: [ "copy", "duplicate" ] + }, { + title: "fas fa-closed-captioning", + searchTerms: [ "cc" ] + }, { + title: "far fa-closed-captioning", + searchTerms: [ "cc" ] + }, { + title: "fas fa-cloud", + searchTerms: [ "save" ] + }, { + title: "fas fa-cloud-download-alt", + searchTerms: [ "import" ] + }, { + title: "fas fa-cloud-meatball", + searchTerms: [] + }, { + title: "fas fa-cloud-moon", + searchTerms: [ "crescent", "evening", "halloween", "holiday", "lunar", "night", "sky" ] + }, { + title: "fas fa-cloud-moon-rain", + searchTerms: [] + }, { + title: "fas fa-cloud-rain", + searchTerms: [ "precipitation" ] + }, { + title: "fas fa-cloud-showers-heavy", + searchTerms: [ "precipitation", "rain", "storm" ] + }, { + title: "fas fa-cloud-sun", + searchTerms: [ "day", "daytime", "fall", "outdoors", "seasonal" ] + }, { + title: "fas fa-cloud-sun-rain", + searchTerms: [] + }, { + title: "fas fa-cloud-upload-alt", + searchTerms: [ "cloud-upload" ] + }, { + title: "fab fa-cloudscale", + searchTerms: [] + }, { + title: "fab fa-cloudsmith", + searchTerms: [] + }, { + title: "fab fa-cloudversify", + searchTerms: [] + }, { + title: "fas fa-cocktail", + searchTerms: [ "alcohol", "beverage", "drink" ] + }, { + title: "fas fa-code", + searchTerms: [ "brackets", "html" ] + }, { + title: "fas fa-code-branch", + searchTerms: [ "branch", "code-fork", "fork", "git", "github", "rebase", "svn", "vcs", "version" ] + }, { + title: "fab fa-codepen", + searchTerms: [] + }, { + title: "fab fa-codiepie", + searchTerms: [] + }, { + title: "fas fa-coffee", + searchTerms: [ "beverage", "breakfast", "cafe", "drink", "fall", "morning", "mug", "seasonal", "tea" ] + }, { + title: "fas fa-cog", + searchTerms: [ "settings" ] + }, { + title: "fas fa-cogs", + searchTerms: [ "gears", "settings" ] + }, { + title: "fas fa-coins", + searchTerms: [] + }, { + title: "fas fa-columns", + searchTerms: [ "dashboard", "panes", "split" ] + }, { + title: "fas fa-comment", + searchTerms: [ "bubble", "chat", "conversation", "feedback", "message", "note", "notification", "sms", "speech", "texting" ] + }, { + title: "far fa-comment", + searchTerms: [ "bubble", "chat", "conversation", "feedback", "message", "note", "notification", "sms", "speech", "texting" ] + }, { + title: "fas fa-comment-alt", + searchTerms: [ "bubble", "chat", "commenting", "conversation", "feedback", "message", "note", "notification", "sms", "speech", "texting" ] + }, { + title: "far fa-comment-alt", + searchTerms: [ "bubble", "chat", "commenting", "conversation", "feedback", "message", "note", "notification", "sms", "speech", "texting" ] + }, { + title: "fas fa-comment-dollar", + searchTerms: [] + }, { + title: "fas fa-comment-dots", + searchTerms: [] + }, { + title: "far fa-comment-dots", + searchTerms: [] + }, { + title: "fas fa-comment-slash", + searchTerms: [] + }, { + title: "fas fa-comments", + searchTerms: [ "bubble", "chat", "conversation", "feedback", "message", "note", "notification", "sms", "speech", "texting" ] + }, { + title: "far fa-comments", + searchTerms: [ "bubble", "chat", "conversation", "feedback", "message", "note", "notification", "sms", "speech", "texting" ] + }, { + title: "fas fa-comments-dollar", + searchTerms: [] + }, { + title: "fas fa-compact-disc", + searchTerms: [ "bluray", "cd", "disc", "media" ] + }, { + title: "fas fa-compass", + searchTerms: [ "directory", "location", "menu", "safari" ] + }, { + title: "far fa-compass", + searchTerms: [ "directory", "location", "menu", "safari" ] + }, { + title: "fas fa-compress", + searchTerms: [ "collapse", "combine", "contract", "merge", "smaller" ] + }, { + title: "fas fa-concierge-bell", + searchTerms: [ "attention", "hotel", "service", "support" ] + }, { + title: "fab fa-connectdevelop", + searchTerms: [] + }, { + title: "fab fa-contao", + searchTerms: [] + }, { + title: "fas fa-cookie", + searchTerms: [ "baked good", "chips", "food", "snack", "sweet", "treat" ] + }, { + title: "fas fa-cookie-bite", + searchTerms: [ "baked good", "bitten", "chips", "eating", "food", "snack", "sweet", "treat" ] + }, { + title: "fas fa-copy", + searchTerms: [ "clone", "duplicate", "file", "files-o" ] + }, { + title: "far fa-copy", + searchTerms: [ "clone", "duplicate", "file", "files-o" ] + }, { + title: "fas fa-copyright", + searchTerms: [] + }, { + title: "far fa-copyright", + searchTerms: [] + }, { + title: "fas fa-couch", + searchTerms: [ "furniture", "sofa" ] + }, { + title: "fab fa-cpanel", + searchTerms: [] + }, { + title: "fab fa-creative-commons", + searchTerms: [] + }, { + title: "fab fa-creative-commons-by", + searchTerms: [] + }, { + title: "fab fa-creative-commons-nc", + searchTerms: [] + }, { + title: "fab fa-creative-commons-nc-eu", + searchTerms: [] + }, { + title: "fab fa-creative-commons-nc-jp", + searchTerms: [] + }, { + title: "fab fa-creative-commons-nd", + searchTerms: [] + }, { + title: "fab fa-creative-commons-pd", + searchTerms: [] + }, { + title: "fab fa-creative-commons-pd-alt", + searchTerms: [] + }, { + title: "fab fa-creative-commons-remix", + searchTerms: [] + }, { + title: "fab fa-creative-commons-sa", + searchTerms: [] + }, { + title: "fab fa-creative-commons-sampling", + searchTerms: [] + }, { + title: "fab fa-creative-commons-sampling-plus", + searchTerms: [] + }, { + title: "fab fa-creative-commons-share", + searchTerms: [] + }, { + title: "fab fa-creative-commons-zero", + searchTerms: [] + }, { + title: "fas fa-credit-card", + searchTerms: [ "buy", "checkout", "credit-card-alt", "debit", "money", "payment", "purchase" ] + }, { + title: "far fa-credit-card", + searchTerms: [ "buy", "checkout", "credit-card-alt", "debit", "money", "payment", "purchase" ] + }, { + title: "fab fa-critical-role", + searchTerms: [ "Dungeons & Dragons", "d&d", "dnd", "fantasy", "game", "gaming", "tabletop" ] + }, { + title: "fas fa-crop", + searchTerms: [ "design" ] + }, { + title: "fas fa-crop-alt", + searchTerms: [] + }, { + title: "fas fa-cross", + searchTerms: [ "catholicism", "christianity" ] + }, { + title: "fas fa-crosshairs", + searchTerms: [ "gpd", "picker", "position" ] + }, { + title: "fas fa-crow", + searchTerms: [ "bird", "bullfrog", "fauna", "halloween", "holiday", "toad" ] + }, { + title: "fas fa-crown", + searchTerms: [] + }, { + title: "fab fa-css3", + searchTerms: [ "code" ] + }, { + title: "fab fa-css3-alt", + searchTerms: [] + }, { + title: "fas fa-cube", + searchTerms: [ "package" ] + }, { + title: "fas fa-cubes", + searchTerms: [ "packages" ] + }, { + title: "fas fa-cut", + searchTerms: [ "scissors" ] + }, { + title: "fab fa-cuttlefish", + searchTerms: [] + }, { + title: "fab fa-d-and-d", + searchTerms: [] + }, { + title: "fab fa-d-and-d-beyond", + searchTerms: [ "Dungeons & Dragons", "d&d", "dnd", "fantasy", "gaming", "tabletop" ] + }, { + title: "fab fa-dashcube", + searchTerms: [] + }, { + title: "fas fa-database", + searchTerms: [] + }, { + title: "fas fa-deaf", + searchTerms: [] + }, { + title: "fab fa-delicious", + searchTerms: [] + }, { + title: "fas fa-democrat", + searchTerms: [ "american", "democratic party", "donkey", "election", "left", "left-wing", "liberal", "politics", "usa" ] + }, { + title: "fab fa-deploydog", + searchTerms: [] + }, { + title: "fab fa-deskpro", + searchTerms: [] + }, { + title: "fas fa-desktop", + searchTerms: [ "computer", "cpu", "demo", "desktop", "device", "machine", "monitor", "pc", "screen" ] + }, { + title: "fab fa-dev", + searchTerms: [] + }, { + title: "fab fa-deviantart", + searchTerms: [] + }, { + title: "fas fa-dharmachakra", + searchTerms: [ "buddhism", "buddhist", "wheel of dharma" ] + }, { + title: "fas fa-diagnoses", + searchTerms: [] + }, { + title: "fas fa-dice", + searchTerms: [ "chance", "gambling", "game", "roll" ] + }, { + title: "fas fa-dice-d20", + searchTerms: [ "Dungeons & Dragons", "chance", "d&d", "dnd", "fantasy", "gambling", "game", "roll" ] + }, { + title: "fas fa-dice-d6", + searchTerms: [ "Dungeons & Dragons", "chance", "d&d", "dnd", "fantasy", "gambling", "game", "roll" ] + }, { + title: "fas fa-dice-five", + searchTerms: [ "chance", "gambling", "game", "roll" ] + }, { + title: "fas fa-dice-four", + searchTerms: [ "chance", "gambling", "game", "roll" ] + }, { + title: "fas fa-dice-one", + searchTerms: [ "chance", "gambling", "game", "roll" ] + }, { + title: "fas fa-dice-six", + searchTerms: [ "chance", "gambling", "game", "roll" ] + }, { + title: "fas fa-dice-three", + searchTerms: [ "chance", "gambling", "game", "roll" ] + }, { + title: "fas fa-dice-two", + searchTerms: [ "chance", "gambling", "game", "roll" ] + }, { + title: "fab fa-digg", + searchTerms: [] + }, { + title: "fab fa-digital-ocean", + searchTerms: [] + }, { + title: "fas fa-digital-tachograph", + searchTerms: [] + }, { + title: "fas fa-directions", + searchTerms: [] + }, { + title: "fab fa-discord", + searchTerms: [] + }, { + title: "fab fa-discourse", + searchTerms: [] + }, { + title: "fas fa-divide", + searchTerms: [] + }, { + title: "fas fa-dizzy", + searchTerms: [ "dazed", "disapprove", "emoticon", "face" ] + }, { + title: "far fa-dizzy", + searchTerms: [ "dazed", "disapprove", "emoticon", "face" ] + }, { + title: "fas fa-dna", + searchTerms: [ "double helix", "helix" ] + }, { + title: "fab fa-dochub", + searchTerms: [] + }, { + title: "fab fa-docker", + searchTerms: [] + }, { + title: "fas fa-dog", + searchTerms: [ "canine", "fauna", "mammmal", "pet", "pooch", "puppy", "woof" ] + }, { + title: "fas fa-dollar-sign", + searchTerms: [ "$", "dollar-sign", "money", "price", "usd" ] + }, { + title: "fas fa-dolly", + searchTerms: [] + }, { + title: "fas fa-dolly-flatbed", + searchTerms: [] + }, { + title: "fas fa-donate", + searchTerms: [ "generosity", "give" ] + }, { + title: "fas fa-door-closed", + searchTerms: [] + }, { + title: "fas fa-door-open", + searchTerms: [] + }, { + title: "fas fa-dot-circle", + searchTerms: [ "bullseye", "notification", "target" ] + }, { + title: "far fa-dot-circle", + searchTerms: [ "bullseye", "notification", "target" ] + }, { + title: "fas fa-dove", + searchTerms: [ "bird", "fauna", "flying", "peace" ] + }, { + title: "fas fa-download", + searchTerms: [ "import" ] + }, { + title: "fab fa-draft2digital", + searchTerms: [] + }, { + title: "fas fa-drafting-compass", + searchTerms: [ "mechanical drawing", "plot", "plotting" ] + }, { + title: "fas fa-dragon", + searchTerms: [ "Dungeons & Dragons", "d&d", "dnd", "fantasy" ] + }, { + title: "fas fa-draw-polygon", + searchTerms: [] + }, { + title: "fab fa-dribbble", + searchTerms: [] + }, { + title: "fab fa-dribbble-square", + searchTerms: [] + }, { + title: "fab fa-dropbox", + searchTerms: [] + }, { + title: "fas fa-drum", + searchTerms: [ "instrument", "music", "percussion", "snare", "sound" ] + }, { + title: "fas fa-drum-steelpan", + searchTerms: [ "calypso", "instrument", "music", "percussion", "reggae", "snare", "sound", "steel", "tropical" ] + }, { + title: "fas fa-drumstick-bite", + searchTerms: [] + }, { + title: "fab fa-drupal", + searchTerms: [] + }, { + title: "fas fa-dumbbell", + searchTerms: [ "exercise", "gym", "strength", "weight", "weight-lifting" ] + }, { + title: "fas fa-dungeon", + searchTerms: [ "Dungeons & Dragons", "d&d", "dnd", "door", "entrance", "fantasy", "gate" ] + }, { + title: "fab fa-dyalog", + searchTerms: [] + }, { + title: "fab fa-earlybirds", + searchTerms: [] + }, { + title: "fab fa-ebay", + searchTerms: [] + }, { + title: "fab fa-edge", + searchTerms: [ "browser", "ie" ] + }, { + title: "fas fa-edit", + searchTerms: [ "edit", "pen", "pencil", "update", "write" ] + }, { + title: "far fa-edit", + searchTerms: [ "edit", "pen", "pencil", "update", "write" ] + }, { + title: "fas fa-eject", + searchTerms: [] + }, { + title: "fab fa-elementor", + searchTerms: [] + }, { + title: "fas fa-ellipsis-h", + searchTerms: [ "dots", "drag", "kebab", "list", "menu", "nav", "navigation", "ol", "reorder", "settings", "ul" ] + }, { + title: "fas fa-ellipsis-v", + searchTerms: [ "dots", "drag", "kebab", "list", "menu", "nav", "navigation", "ol", "reorder", "settings", "ul" ] + }, { + title: "fab fa-ello", + searchTerms: [] + }, { + title: "fab fa-ember", + searchTerms: [] + }, { + title: "fab fa-empire", + searchTerms: [] + }, { + title: "fas fa-envelope", + searchTerms: [ "e-mail", "email", "letter", "mail", "message", "notification", "support" ] + }, { + title: "far fa-envelope", + searchTerms: [ "e-mail", "email", "letter", "mail", "message", "notification", "support" ] + }, { + title: "fas fa-envelope-open", + searchTerms: [ "e-mail", "email", "letter", "mail", "message", "notification", "support" ] + }, { + title: "far fa-envelope-open", + searchTerms: [ "e-mail", "email", "letter", "mail", "message", "notification", "support" ] + }, { + title: "fas fa-envelope-open-text", + searchTerms: [] + }, { + title: "fas fa-envelope-square", + searchTerms: [ "e-mail", "email", "letter", "mail", "message", "notification", "support" ] + }, { + title: "fab fa-envira", + searchTerms: [ "leaf" ] + }, { + title: "fas fa-equals", + searchTerms: [] + }, { + title: "fas fa-eraser", + searchTerms: [ "delete", "remove" ] + }, { + title: "fab fa-erlang", + searchTerms: [] + }, { + title: "fab fa-ethereum", + searchTerms: [] + }, { + title: "fab fa-etsy", + searchTerms: [] + }, { + title: "fas fa-euro-sign", + searchTerms: [ "eur" ] + }, { + title: "fas fa-exchange-alt", + searchTerms: [ "arrow", "arrows", "exchange", "reciprocate", "return", "swap", "transfer" ] + }, { + title: "fas fa-exclamation", + searchTerms: [ "alert", "danger", "error", "important", "notice", "notification", "notify", "problem", "warning" ] + }, { + title: "fas fa-exclamation-circle", + searchTerms: [ "alert", "danger", "error", "important", "notice", "notification", "notify", "problem", "warning" ] + }, { + title: "fas fa-exclamation-triangle", + searchTerms: [ "alert", "danger", "error", "important", "notice", "notification", "notify", "problem", "warning" ] + }, { + title: "fas fa-expand", + searchTerms: [ "bigger", "enlarge", "resize" ] + }, { + title: "fas fa-expand-arrows-alt", + searchTerms: [ "arrows-alt", "bigger", "enlarge", "move", "resize" ] + }, { + title: "fab fa-expeditedssl", + searchTerms: [] + }, { + title: "fas fa-external-link-alt", + searchTerms: [ "external-link", "new", "open" ] + }, { + title: "fas fa-external-link-square-alt", + searchTerms: [ "external-link-square", "new", "open" ] + }, { + title: "fas fa-eye", + searchTerms: [ "optic", "see", "seen", "show", "sight", "views", "visible" ] + }, { + title: "far fa-eye", + searchTerms: [ "optic", "see", "seen", "show", "sight", "views", "visible" ] + }, { + title: "fas fa-eye-dropper", + searchTerms: [ "eyedropper" ] + }, { + title: "fas fa-eye-slash", + searchTerms: [ "blind", "hide", "show", "toggle", "unseen", "views", "visible", "visiblity" ] + }, { + title: "far fa-eye-slash", + searchTerms: [ "blind", "hide", "show", "toggle", "unseen", "views", "visible", "visiblity" ] + }, { + title: "fab fa-facebook", + searchTerms: [ "facebook-official", "social network" ] + }, { + title: "fab fa-facebook-f", + searchTerms: [ "facebook" ] + }, { + title: "fab fa-facebook-messenger", + searchTerms: [] + }, { + title: "fab fa-facebook-square", + searchTerms: [ "social network" ] + }, { + title: "fab fa-fantasy-flight-games", + searchTerms: [ "Dungeons & Dragons", "d&d", "dnd", "fantasy", "game", "gaming", "tabletop" ] + }, { + title: "fas fa-fast-backward", + searchTerms: [ "beginning", "first", "previous", "rewind", "start" ] + }, { + title: "fas fa-fast-forward", + searchTerms: [ "end", "last", "next" ] + }, { + title: "fas fa-fax", + searchTerms: [] + }, { + title: "fas fa-feather", + searchTerms: [ "bird", "light", "plucked", "quill" ] + }, { + title: "fas fa-feather-alt", + searchTerms: [ "bird", "light", "plucked", "quill" ] + }, { + title: "fas fa-female", + searchTerms: [ "human", "person", "profile", "user", "woman" ] + }, { + title: "fas fa-fighter-jet", + searchTerms: [ "airplane", "fast", "fly", "goose", "maverick", "plane", "quick", "top gun", "transportation", "travel" ] + }, { + title: "fas fa-file", + searchTerms: [ "document", "new", "page", "pdf", "resume" ] + }, { + title: "far fa-file", + searchTerms: [ "document", "new", "page", "pdf", "resume" ] + }, { + title: "fas fa-file-alt", + searchTerms: [ "document", "file-text", "invoice", "new", "page", "pdf" ] + }, { + title: "far fa-file-alt", + searchTerms: [ "document", "file-text", "invoice", "new", "page", "pdf" ] + }, { + title: "fas fa-file-archive", + searchTerms: [ ".zip", "bundle", "compress", "compression", "download", "zip" ] + }, { + title: "far fa-file-archive", + searchTerms: [ ".zip", "bundle", "compress", "compression", "download", "zip" ] + }, { + title: "fas fa-file-audio", + searchTerms: [] + }, { + title: "far fa-file-audio", + searchTerms: [] + }, { + title: "fas fa-file-code", + searchTerms: [] + }, { + title: "far fa-file-code", + searchTerms: [] + }, { + title: "fas fa-file-contract", + searchTerms: [ "agreement", "binding", "document", "legal", "signature" ] + }, { + title: "fas fa-file-csv", + searchTerms: [ "spreadsheets" ] + }, { + title: "fas fa-file-download", + searchTerms: [] + }, { + title: "fas fa-file-excel", + searchTerms: [] + }, { + title: "far fa-file-excel", + searchTerms: [] + }, { + title: "fas fa-file-export", + searchTerms: [] + }, { + title: "fas fa-file-image", + searchTerms: [] + }, { + title: "far fa-file-image", + searchTerms: [] + }, { + title: "fas fa-file-import", + searchTerms: [] + }, { + title: "fas fa-file-invoice", + searchTerms: [ "bill", "document", "receipt" ] + }, { + title: "fas fa-file-invoice-dollar", + searchTerms: [ "$", "bill", "document", "dollar-sign", "money", "receipt", "usd" ] + }, { + title: "fas fa-file-medical", + searchTerms: [] + }, { + title: "fas fa-file-medical-alt", + searchTerms: [] + }, { + title: "fas fa-file-pdf", + searchTerms: [] + }, { + title: "far fa-file-pdf", + searchTerms: [] + }, { + title: "fas fa-file-powerpoint", + searchTerms: [] + }, { + title: "far fa-file-powerpoint", + searchTerms: [] + }, { + title: "fas fa-file-prescription", + searchTerms: [ "drugs", "medical", "medicine", "rx" ] + }, { + title: "fas fa-file-signature", + searchTerms: [ "John Hancock", "contract", "document", "name" ] + }, { + title: "fas fa-file-upload", + searchTerms: [] + }, { + title: "fas fa-file-video", + searchTerms: [] + }, { + title: "far fa-file-video", + searchTerms: [] + }, { + title: "fas fa-file-word", + searchTerms: [] + }, { + title: "far fa-file-word", + searchTerms: [] + }, { + title: "fas fa-fill", + searchTerms: [ "bucket", "color", "paint", "paint bucket" ] + }, { + title: "fas fa-fill-drip", + searchTerms: [ "bucket", "color", "drop", "paint", "paint bucket", "spill" ] + }, { + title: "fas fa-film", + searchTerms: [ "movie" ] + }, { + title: "fas fa-filter", + searchTerms: [ "funnel", "options" ] + }, { + title: "fas fa-fingerprint", + searchTerms: [ "human", "id", "identification", "lock", "smudge", "touch", "unique", "unlock" ] + }, { + title: "fas fa-fire", + searchTerms: [ "caliente", "flame", "heat", "hot", "popular" ] + }, { + title: "fas fa-fire-extinguisher", + searchTerms: [] + }, { + title: "fab fa-firefox", + searchTerms: [ "browser" ] + }, { + title: "fas fa-first-aid", + searchTerms: [] + }, { + title: "fab fa-first-order", + searchTerms: [] + }, { + title: "fab fa-first-order-alt", + searchTerms: [] + }, { + title: "fab fa-firstdraft", + searchTerms: [] + }, { + title: "fas fa-fish", + searchTerms: [ "fauna", "gold", "swimming" ] + }, { + title: "fas fa-fist-raised", + searchTerms: [ "Dungeons & Dragons", "d&d", "dnd", "fantasy", "hand", "ki", "monk", "resist", "strength", "unarmed combat" ] + }, { + title: "fas fa-flag", + searchTerms: [ "country", "notice", "notification", "notify", "pole", "report", "symbol" ] + }, { + title: "far fa-flag", + searchTerms: [ "country", "notice", "notification", "notify", "pole", "report", "symbol" ] + }, { + title: "fas fa-flag-checkered", + searchTerms: [ "notice", "notification", "notify", "pole", "racing", "report", "symbol" ] + }, { + title: "fas fa-flag-usa", + searchTerms: [ "betsy ross", "country", "old glory", "stars", "stripes", "symbol" ] + }, { + title: "fas fa-flask", + searchTerms: [ "beaker", "experimental", "labs", "science" ] + }, { + title: "fab fa-flickr", + searchTerms: [] + }, { + title: "fab fa-flipboard", + searchTerms: [] + }, { + title: "fas fa-flushed", + searchTerms: [ "embarrassed", "emoticon", "face" ] + }, { + title: "far fa-flushed", + searchTerms: [ "embarrassed", "emoticon", "face" ] + }, { + title: "fab fa-fly", + searchTerms: [] + }, { + title: "fas fa-folder", + searchTerms: [] + }, { + title: "far fa-folder", + searchTerms: [] + }, { + title: "fas fa-folder-minus", + searchTerms: [ "archive", "delete", "negative", "remove" ] + }, { + title: "fas fa-folder-open", + searchTerms: [] + }, { + title: "far fa-folder-open", + searchTerms: [] + }, { + title: "fas fa-folder-plus", + searchTerms: [ "add", "create", "new", "positive" ] + }, { + title: "fas fa-font", + searchTerms: [ "text" ] + }, { + title: "fab fa-font-awesome", + searchTerms: [ "meanpath" ] + }, { + title: "fab fa-font-awesome-alt", + searchTerms: [] + }, { + title: "fab fa-font-awesome-flag", + searchTerms: [] + }, { + title: "far fa-font-awesome-logo-full", + searchTerms: [] + }, { + title: "fas fa-font-awesome-logo-full", + searchTerms: [] + }, { + title: "fab fa-font-awesome-logo-full", + searchTerms: [] + }, { + title: "fab fa-fonticons", + searchTerms: [] + }, { + title: "fab fa-fonticons-fi", + searchTerms: [] + }, { + title: "fas fa-football-ball", + searchTerms: [ "fall", "pigskin", "seasonal" ] + }, { + title: "fab fa-fort-awesome", + searchTerms: [ "castle" ] + }, { + title: "fab fa-fort-awesome-alt", + searchTerms: [ "castle" ] + }, { + title: "fab fa-forumbee", + searchTerms: [] + }, { + title: "fas fa-forward", + searchTerms: [ "forward", "next" ] + }, { + title: "fab fa-foursquare", + searchTerms: [] + }, { + title: "fab fa-free-code-camp", + searchTerms: [] + }, { + title: "fab fa-freebsd", + searchTerms: [] + }, { + title: "fas fa-frog", + searchTerms: [ "amphibian", "bullfrog", "fauna", "hop", "kermit", "kiss", "prince", "ribbit", "toad", "wart" ] + }, { + title: "fas fa-frown", + searchTerms: [ "disapprove", "emoticon", "face", "rating", "sad" ] + }, { + title: "far fa-frown", + searchTerms: [ "disapprove", "emoticon", "face", "rating", "sad" ] + }, { + title: "fas fa-frown-open", + searchTerms: [ "disapprove", "emoticon", "face", "rating", "sad" ] + }, { + title: "far fa-frown-open", + searchTerms: [ "disapprove", "emoticon", "face", "rating", "sad" ] + }, { + title: "fab fa-fulcrum", + searchTerms: [] + }, { + title: "fas fa-funnel-dollar", + searchTerms: [] + }, { + title: "fas fa-futbol", + searchTerms: [ "ball", "football", "soccer" ] + }, { + title: "far fa-futbol", + searchTerms: [ "ball", "football", "soccer" ] + }, { + title: "fab fa-galactic-republic", + searchTerms: [ "politics", "star wars" ] + }, { + title: "fab fa-galactic-senate", + searchTerms: [ "star wars" ] + }, { + title: "fas fa-gamepad", + searchTerms: [ "controller" ] + }, { + title: "fas fa-gas-pump", + searchTerms: [] + }, { + title: "fas fa-gavel", + searchTerms: [ "hammer", "judge", "lawyer", "opinion" ] + }, { + title: "fas fa-gem", + searchTerms: [ "diamond" ] + }, { + title: "far fa-gem", + searchTerms: [ "diamond" ] + }, { + title: "fas fa-genderless", + searchTerms: [] + }, { + title: "fab fa-get-pocket", + searchTerms: [] + }, { + title: "fab fa-gg", + searchTerms: [] + }, { + title: "fab fa-gg-circle", + searchTerms: [] + }, { + title: "fas fa-ghost", + searchTerms: [ "apparition", "blinky", "clyde", "floating", "halloween", "holiday", "inky", "pinky", "spirit" ] + }, { + title: "fas fa-gift", + searchTerms: [ "generosity", "giving", "party", "present", "wrapped" ] + }, { + title: "fab fa-git", + searchTerms: [] + }, { + title: "fab fa-git-square", + searchTerms: [] + }, { + title: "fab fa-github", + searchTerms: [ "octocat" ] + }, { + title: "fab fa-github-alt", + searchTerms: [ "octocat" ] + }, { + title: "fab fa-github-square", + searchTerms: [ "octocat" ] + }, { + title: "fab fa-gitkraken", + searchTerms: [] + }, { + title: "fab fa-gitlab", + searchTerms: [ "Axosoft" ] + }, { + title: "fab fa-gitter", + searchTerms: [] + }, { + title: "fas fa-glass-martini", + searchTerms: [ "alcohol", "bar", "beverage", "drink", "glass", "liquor", "martini" ] + }, { + title: "fas fa-glass-martini-alt", + searchTerms: [] + }, { + title: "fas fa-glasses", + searchTerms: [ "foureyes", "hipster", "nerd", "reading", "sight", "spectacles" ] + }, { + title: "fab fa-glide", + searchTerms: [] + }, { + title: "fab fa-glide-g", + searchTerms: [] + }, { + title: "fas fa-globe", + searchTerms: [ "all", "coordinates", "country", "earth", "global", "gps", "language", "localize", "location", "map", "online", "place", "planet", "translate", "travel", "world" ] + }, { + title: "fas fa-globe-africa", + searchTerms: [ "all", "country", "earth", "global", "gps", "language", "localize", "location", "map", "online", "place", "planet", "translate", "travel", "world" ] + }, { + title: "fas fa-globe-americas", + searchTerms: [ "all", "country", "earth", "global", "gps", "language", "localize", "location", "map", "online", "place", "planet", "translate", "travel", "world" ] + }, { + title: "fas fa-globe-asia", + searchTerms: [ "all", "country", "earth", "global", "gps", "language", "localize", "location", "map", "online", "place", "planet", "translate", "travel", "world" ] + }, { + title: "fab fa-gofore", + searchTerms: [] + }, { + title: "fas fa-golf-ball", + searchTerms: [] + }, { + title: "fab fa-goodreads", + searchTerms: [] + }, { + title: "fab fa-goodreads-g", + searchTerms: [] + }, { + title: "fab fa-google", + searchTerms: [] + }, { + title: "fab fa-google-drive", + searchTerms: [] + }, { + title: "fab fa-google-play", + searchTerms: [] + }, { + title: "fab fa-google-plus", + searchTerms: [ "google-plus-circle", "google-plus-official" ] + }, { + title: "fab fa-google-plus-g", + searchTerms: [ "google-plus", "social network" ] + }, { + title: "fab fa-google-plus-square", + searchTerms: [ "social network" ] + }, { + title: "fab fa-google-wallet", + searchTerms: [] + }, { + title: "fas fa-gopuram", + searchTerms: [ "building", "entrance", "hinduism", "temple", "tower" ] + }, { + title: "fas fa-graduation-cap", + searchTerms: [ "learning", "school", "student" ] + }, { + title: "fab fa-gratipay", + searchTerms: [ "favorite", "heart", "like", "love" ] + }, { + title: "fab fa-grav", + searchTerms: [] + }, { + title: "fas fa-greater-than", + searchTerms: [] + }, { + title: "fas fa-greater-than-equal", + searchTerms: [] + }, { + title: "fas fa-grimace", + searchTerms: [ "cringe", "emoticon", "face" ] + }, { + title: "far fa-grimace", + searchTerms: [ "cringe", "emoticon", "face" ] + }, { + title: "fas fa-grin", + searchTerms: [ "emoticon", "face", "laugh", "smile" ] + }, { + title: "far fa-grin", + searchTerms: [ "emoticon", "face", "laugh", "smile" ] + }, { + title: "fas fa-grin-alt", + searchTerms: [ "emoticon", "face", "laugh", "smile" ] + }, { + title: "far fa-grin-alt", + searchTerms: [ "emoticon", "face", "laugh", "smile" ] + }, { + title: "fas fa-grin-beam", + searchTerms: [ "emoticon", "face", "laugh", "smile" ] + }, { + title: "far fa-grin-beam", + searchTerms: [ "emoticon", "face", "laugh", "smile" ] + }, { + title: "fas fa-grin-beam-sweat", + searchTerms: [ "emoticon", "face", "smile" ] + }, { + title: "far fa-grin-beam-sweat", + searchTerms: [ "emoticon", "face", "smile" ] + }, { + title: "fas fa-grin-hearts", + searchTerms: [ "emoticon", "face", "love", "smile" ] + }, { + title: "far fa-grin-hearts", + searchTerms: [ "emoticon", "face", "love", "smile" ] + }, { + title: "fas fa-grin-squint", + searchTerms: [ "emoticon", "face", "laugh", "smile" ] + }, { + title: "far fa-grin-squint", + searchTerms: [ "emoticon", "face", "laugh", "smile" ] + }, { + title: "fas fa-grin-squint-tears", + searchTerms: [ "emoticon", "face", "happy", "smile" ] + }, { + title: "far fa-grin-squint-tears", + searchTerms: [ "emoticon", "face", "happy", "smile" ] + }, { + title: "fas fa-grin-stars", + searchTerms: [ "emoticon", "face", "star-struck" ] + }, { + title: "far fa-grin-stars", + searchTerms: [ "emoticon", "face", "star-struck" ] + }, { + title: "fas fa-grin-tears", + searchTerms: [ "LOL", "emoticon", "face" ] + }, { + title: "far fa-grin-tears", + searchTerms: [ "LOL", "emoticon", "face" ] + }, { + title: "fas fa-grin-tongue", + searchTerms: [ "LOL", "emoticon", "face" ] + }, { + title: "far fa-grin-tongue", + searchTerms: [ "LOL", "emoticon", "face" ] + }, { + title: "fas fa-grin-tongue-squint", + searchTerms: [ "LOL", "emoticon", "face" ] + }, { + title: "far fa-grin-tongue-squint", + searchTerms: [ "LOL", "emoticon", "face" ] + }, { + title: "fas fa-grin-tongue-wink", + searchTerms: [ "LOL", "emoticon", "face" ] + }, { + title: "far fa-grin-tongue-wink", + searchTerms: [ "LOL", "emoticon", "face" ] + }, { + title: "fas fa-grin-wink", + searchTerms: [ "emoticon", "face", "flirt", "laugh", "smile" ] + }, { + title: "far fa-grin-wink", + searchTerms: [ "emoticon", "face", "flirt", "laugh", "smile" ] + }, { + title: "fas fa-grip-horizontal", + searchTerms: [ "affordance", "drag", "drop", "grab", "handle" ] + }, { + title: "fas fa-grip-vertical", + searchTerms: [ "affordance", "drag", "drop", "grab", "handle" ] + }, { + title: "fab fa-gripfire", + searchTerms: [] + }, { + title: "fab fa-grunt", + searchTerms: [] + }, { + title: "fab fa-gulp", + searchTerms: [] + }, { + title: "fas fa-h-square", + searchTerms: [ "hospital", "hotel" ] + }, { + title: "fab fa-hacker-news", + searchTerms: [] + }, { + title: "fab fa-hacker-news-square", + searchTerms: [] + }, { + title: "fab fa-hackerrank", + searchTerms: [] + }, { + title: "fas fa-hammer", + searchTerms: [ "admin", "fix", "repair", "settings", "tool" ] + }, { + title: "fas fa-hamsa", + searchTerms: [ "amulet", "christianity", "islam", "jewish", "judaism", "muslim", "protection" ] + }, { + title: "fas fa-hand-holding", + searchTerms: [] + }, { + title: "fas fa-hand-holding-heart", + searchTerms: [] + }, { + title: "fas fa-hand-holding-usd", + searchTerms: [ "$", "dollar sign", "donation", "giving", "money", "price" ] + }, { + title: "fas fa-hand-lizard", + searchTerms: [] + }, { + title: "far fa-hand-lizard", + searchTerms: [] + }, { + title: "fas fa-hand-paper", + searchTerms: [ "stop" ] + }, { + title: "far fa-hand-paper", + searchTerms: [ "stop" ] + }, { + title: "fas fa-hand-peace", + searchTerms: [] + }, { + title: "far fa-hand-peace", + searchTerms: [] + }, { + title: "fas fa-hand-point-down", + searchTerms: [ "finger", "hand-o-down", "point" ] + }, { + title: "far fa-hand-point-down", + searchTerms: [ "finger", "hand-o-down", "point" ] + }, { + title: "fas fa-hand-point-left", + searchTerms: [ "back", "finger", "hand-o-left", "left", "point", "previous" ] + }, { + title: "far fa-hand-point-left", + searchTerms: [ "back", "finger", "hand-o-left", "left", "point", "previous" ] + }, { + title: "fas fa-hand-point-right", + searchTerms: [ "finger", "forward", "hand-o-right", "next", "point", "right" ] + }, { + title: "far fa-hand-point-right", + searchTerms: [ "finger", "forward", "hand-o-right", "next", "point", "right" ] + }, { + title: "fas fa-hand-point-up", + searchTerms: [ "finger", "hand-o-up", "point" ] + }, { + title: "far fa-hand-point-up", + searchTerms: [ "finger", "hand-o-up", "point" ] + }, { + title: "fas fa-hand-pointer", + searchTerms: [ "select" ] + }, { + title: "far fa-hand-pointer", + searchTerms: [ "select" ] + }, { + title: "fas fa-hand-rock", + searchTerms: [] + }, { + title: "far fa-hand-rock", + searchTerms: [] + }, { + title: "fas fa-hand-scissors", + searchTerms: [] + }, { + title: "far fa-hand-scissors", + searchTerms: [] + }, { + title: "fas fa-hand-spock", + searchTerms: [] + }, { + title: "far fa-hand-spock", + searchTerms: [] + }, { + title: "fas fa-hands", + searchTerms: [] + }, { + title: "fas fa-hands-helping", + searchTerms: [ "aid", "assistance", "partnership", "volunteering" ] + }, { + title: "fas fa-handshake", + searchTerms: [ "greeting", "partnership" ] + }, { + title: "far fa-handshake", + searchTerms: [ "greeting", "partnership" ] + }, { + title: "fas fa-hanukiah", + searchTerms: [ "candle", "hanukkah", "jewish", "judaism", "light" ] + }, { + title: "fas fa-hashtag", + searchTerms: [] + }, { + title: "fas fa-hat-wizard", + searchTerms: [ "Dungeons & Dragons", "buckle", "cloth", "clothing", "d&d", "dnd", "fantasy", "halloween", "holiday", "mage", "magic", "pointy", "witch" ] + }, { + title: "fas fa-haykal", + searchTerms: [ "bahai", "bahá'í", "star" ] + }, { + title: "fas fa-hdd", + searchTerms: [ "cpu", "hard drive", "harddrive", "machine", "save", "storage" ] + }, { + title: "far fa-hdd", + searchTerms: [ "cpu", "hard drive", "harddrive", "machine", "save", "storage" ] + }, { + title: "fas fa-heading", + searchTerms: [ "header" ] + }, { + title: "fas fa-headphones", + searchTerms: [ "audio", "listen", "music", "sound", "speaker" ] + }, { + title: "fas fa-headphones-alt", + searchTerms: [ "audio", "listen", "music", "sound", "speaker" ] + }, { + title: "fas fa-headset", + searchTerms: [ "audio", "gamer", "gaming", "listen", "live chat", "microphone", "shot caller", "sound", "support", "telemarketer" ] + }, { + title: "fas fa-heart", + searchTerms: [ "favorite", "like", "love" ] + }, { + title: "far fa-heart", + searchTerms: [ "favorite", "like", "love" ] + }, { + title: "fas fa-heartbeat", + searchTerms: [ "ekg", "lifeline", "vital signs" ] + }, { + title: "fas fa-helicopter", + searchTerms: [ "airwolf", "apache", "chopper", "flight", "fly" ] + }, { + title: "fas fa-highlighter", + searchTerms: [ "edit", "marker", "sharpie", "update", "write" ] + }, { + title: "fas fa-hiking", + searchTerms: [ "activity", "backpack", "fall", "fitness", "outdoors", "seasonal", "walking" ] + }, { + title: "fas fa-hippo", + searchTerms: [ "fauna", "hungry", "mammmal" ] + }, { + title: "fab fa-hips", + searchTerms: [] + }, { + title: "fab fa-hire-a-helper", + searchTerms: [] + }, { + title: "fas fa-history", + searchTerms: [] + }, { + title: "fas fa-hockey-puck", + searchTerms: [] + }, { + title: "fas fa-home", + searchTerms: [ "house", "main" ] + }, { + title: "fab fa-hooli", + searchTerms: [] + }, { + title: "fab fa-hornbill", + searchTerms: [] + }, { + title: "fas fa-horse", + searchTerms: [ "equus", "fauna", "mammmal", "neigh" ] + }, { + title: "fas fa-hospital", + searchTerms: [ "building", "emergency room", "medical center" ] + }, { + title: "far fa-hospital", + searchTerms: [ "building", "emergency room", "medical center" ] + }, { + title: "fas fa-hospital-alt", + searchTerms: [ "building", "emergency room", "medical center" ] + }, { + title: "fas fa-hospital-symbol", + searchTerms: [] + }, { + title: "fas fa-hot-tub", + searchTerms: [] + }, { + title: "fas fa-hotel", + searchTerms: [ "building", "lodging" ] + }, { + title: "fab fa-hotjar", + searchTerms: [] + }, { + title: "fas fa-hourglass", + searchTerms: [] + }, { + title: "far fa-hourglass", + searchTerms: [] + }, { + title: "fas fa-hourglass-end", + searchTerms: [] + }, { + title: "fas fa-hourglass-half", + searchTerms: [] + }, { + title: "fas fa-hourglass-start", + searchTerms: [] + }, { + title: "fas fa-house-damage", + searchTerms: [ "devastation", "home" ] + }, { + title: "fab fa-houzz", + searchTerms: [] + }, { + title: "fas fa-hryvnia", + searchTerms: [ "money" ] + }, { + title: "fab fa-html5", + searchTerms: [] + }, { + title: "fab fa-hubspot", + searchTerms: [] + }, { + title: "fas fa-i-cursor", + searchTerms: [] + }, { + title: "fas fa-id-badge", + searchTerms: [] + }, { + title: "far fa-id-badge", + searchTerms: [] + }, { + title: "fas fa-id-card", + searchTerms: [ "document", "identification", "issued" ] + }, { + title: "far fa-id-card", + searchTerms: [ "document", "identification", "issued" ] + }, { + title: "fas fa-id-card-alt", + searchTerms: [ "demographics" ] + }, { + title: "fas fa-image", + searchTerms: [ "album", "photo", "picture" ] + }, { + title: "far fa-image", + searchTerms: [ "album", "photo", "picture" ] + }, { + title: "fas fa-images", + searchTerms: [ "album", "photo", "picture" ] + }, { + title: "far fa-images", + searchTerms: [ "album", "photo", "picture" ] + }, { + title: "fab fa-imdb", + searchTerms: [] + }, { + title: "fas fa-inbox", + searchTerms: [] + }, { + title: "fas fa-indent", + searchTerms: [] + }, { + title: "fas fa-industry", + searchTerms: [ "factory", "manufacturing" ] + }, { + title: "fas fa-infinity", + searchTerms: [] + }, { + title: "fas fa-info", + searchTerms: [ "details", "help", "information", "more" ] + }, { + title: "fas fa-info-circle", + searchTerms: [ "details", "help", "information", "more" ] + }, { + title: "fab fa-instagram", + searchTerms: [] + }, { + title: "fab fa-internet-explorer", + searchTerms: [ "browser", "ie" ] + }, { + title: "fab fa-ioxhost", + searchTerms: [] + }, { + title: "fas fa-italic", + searchTerms: [ "italics" ] + }, { + title: "fab fa-itunes", + searchTerms: [] + }, { + title: "fab fa-itunes-note", + searchTerms: [] + }, { + title: "fab fa-java", + searchTerms: [] + }, { + title: "fas fa-jedi", + searchTerms: [ "star wars" ] + }, { + title: "fab fa-jedi-order", + searchTerms: [ "star wars" ] + }, { + title: "fab fa-jenkins", + searchTerms: [] + }, { + title: "fab fa-joget", + searchTerms: [] + }, { + title: "fas fa-joint", + searchTerms: [ "blunt", "cannabis", "doobie", "drugs", "marijuana", "roach", "smoke", "smoking", "spliff" ] + }, { + title: "fab fa-joomla", + searchTerms: [] + }, { + title: "fas fa-journal-whills", + searchTerms: [ "book", "jedi", "star wars", "the force" ] + }, { + title: "fab fa-js", + searchTerms: [] + }, { + title: "fab fa-js-square", + searchTerms: [] + }, { + title: "fab fa-jsfiddle", + searchTerms: [] + }, { + title: "fas fa-kaaba", + searchTerms: [ "building", "cube", "islam", "muslim" ] + }, { + title: "fab fa-kaggle", + searchTerms: [] + }, { + title: "fas fa-key", + searchTerms: [ "password", "unlock" ] + }, { + title: "fab fa-keybase", + searchTerms: [] + }, { + title: "fas fa-keyboard", + searchTerms: [ "input", "type" ] + }, { + title: "far fa-keyboard", + searchTerms: [ "input", "type" ] + }, { + title: "fab fa-keycdn", + searchTerms: [] + }, { + title: "fas fa-khanda", + searchTerms: [ "chakkar", "sikh", "sikhism", "sword" ] + }, { + title: "fab fa-kickstarter", + searchTerms: [] + }, { + title: "fab fa-kickstarter-k", + searchTerms: [] + }, { + title: "fas fa-kiss", + searchTerms: [ "beso", "emoticon", "face", "love", "smooch" ] + }, { + title: "far fa-kiss", + searchTerms: [ "beso", "emoticon", "face", "love", "smooch" ] + }, { + title: "fas fa-kiss-beam", + searchTerms: [ "beso", "emoticon", "face", "love", "smooch" ] + }, { + title: "far fa-kiss-beam", + searchTerms: [ "beso", "emoticon", "face", "love", "smooch" ] + }, { + title: "fas fa-kiss-wink-heart", + searchTerms: [ "beso", "emoticon", "face", "love", "smooch" ] + }, { + title: "far fa-kiss-wink-heart", + searchTerms: [ "beso", "emoticon", "face", "love", "smooch" ] + }, { + title: "fas fa-kiwi-bird", + searchTerms: [ "bird", "fauna" ] + }, { + title: "fab fa-korvue", + searchTerms: [] + }, { + title: "fas fa-landmark", + searchTerms: [ "building", "historic", "memoroable", "politics" ] + }, { + title: "fas fa-language", + searchTerms: [ "dialect", "idiom", "localize", "speech", "translate", "vernacular" ] + }, { + title: "fas fa-laptop", + searchTerms: [ "computer", "cpu", "dell", "demo", "device", "dude you're getting", "mac", "macbook", "machine", "pc" ] + }, { + title: "fas fa-laptop-code", + searchTerms: [] + }, { + title: "fab fa-laravel", + searchTerms: [] + }, { + title: "fab fa-lastfm", + searchTerms: [] + }, { + title: "fab fa-lastfm-square", + searchTerms: [] + }, { + title: "fas fa-laugh", + searchTerms: [ "LOL", "emoticon", "face", "laugh" ] + }, { + title: "far fa-laugh", + searchTerms: [ "LOL", "emoticon", "face", "laugh" ] + }, { + title: "fas fa-laugh-beam", + searchTerms: [ "LOL", "emoticon", "face" ] + }, { + title: "far fa-laugh-beam", + searchTerms: [ "LOL", "emoticon", "face" ] + }, { + title: "fas fa-laugh-squint", + searchTerms: [ "LOL", "emoticon", "face" ] + }, { + title: "far fa-laugh-squint", + searchTerms: [ "LOL", "emoticon", "face" ] + }, { + title: "fas fa-laugh-wink", + searchTerms: [ "LOL", "emoticon", "face" ] + }, { + title: "far fa-laugh-wink", + searchTerms: [ "LOL", "emoticon", "face" ] + }, { + title: "fas fa-layer-group", + searchTerms: [ "layers" ] + }, { + title: "fas fa-leaf", + searchTerms: [ "eco", "flora", "nature", "plant" ] + }, { + title: "fab fa-leanpub", + searchTerms: [] + }, { + title: "fas fa-lemon", + searchTerms: [ "food" ] + }, { + title: "far fa-lemon", + searchTerms: [ "food" ] + }, { + title: "fab fa-less", + searchTerms: [] + }, { + title: "fas fa-less-than", + searchTerms: [] + }, { + title: "fas fa-less-than-equal", + searchTerms: [] + }, { + title: "fas fa-level-down-alt", + searchTerms: [ "level-down" ] + }, { + title: "fas fa-level-up-alt", + searchTerms: [ "level-up" ] + }, { + title: "fas fa-life-ring", + searchTerms: [ "support" ] + }, { + title: "far fa-life-ring", + searchTerms: [ "support" ] + }, { + title: "fas fa-lightbulb", + searchTerms: [ "idea", "inspiration" ] + }, { + title: "far fa-lightbulb", + searchTerms: [ "idea", "inspiration" ] + }, { + title: "fab fa-line", + searchTerms: [] + }, { + title: "fas fa-link", + searchTerms: [ "chain" ] + }, { + title: "fab fa-linkedin", + searchTerms: [ "linkedin-square" ] + }, { + title: "fab fa-linkedin-in", + searchTerms: [ "linkedin" ] + }, { + title: "fab fa-linode", + searchTerms: [] + }, { + title: "fab fa-linux", + searchTerms: [ "tux" ] + }, { + title: "fas fa-lira-sign", + searchTerms: [ "try", "turkish" ] + }, { + title: "fas fa-list", + searchTerms: [ "checklist", "completed", "done", "finished", "ol", "todo", "ul" ] + }, { + title: "fas fa-list-alt", + searchTerms: [ "checklist", "completed", "done", "finished", "ol", "todo", "ul" ] + }, { + title: "far fa-list-alt", + searchTerms: [ "checklist", "completed", "done", "finished", "ol", "todo", "ul" ] + }, { + title: "fas fa-list-ol", + searchTerms: [ "checklist", "list", "numbers", "ol", "todo", "ul" ] + }, { + title: "fas fa-list-ul", + searchTerms: [ "checklist", "list", "ol", "todo", "ul" ] + }, { + title: "fas fa-location-arrow", + searchTerms: [ "address", "coordinates", "gps", "location", "map", "place", "where" ] + }, { + title: "fas fa-lock", + searchTerms: [ "admin", "protect", "security" ] + }, { + title: "fas fa-lock-open", + searchTerms: [ "admin", "lock", "open", "password", "protect" ] + }, { + title: "fas fa-long-arrow-alt-down", + searchTerms: [ "long-arrow-down" ] + }, { + title: "fas fa-long-arrow-alt-left", + searchTerms: [ "back", "long-arrow-left", "previous" ] + }, { + title: "fas fa-long-arrow-alt-right", + searchTerms: [ "long-arrow-right" ] + }, { + title: "fas fa-long-arrow-alt-up", + searchTerms: [ "long-arrow-up" ] + }, { + title: "fas fa-low-vision", + searchTerms: [] + }, { + title: "fas fa-luggage-cart", + searchTerms: [] + }, { + title: "fab fa-lyft", + searchTerms: [] + }, { + title: "fab fa-magento", + searchTerms: [] + }, { + title: "fas fa-magic", + searchTerms: [ "autocomplete", "automatic", "mage", "magic", "spell", "witch", "wizard" ] + }, { + title: "fas fa-magnet", + searchTerms: [] + }, { + title: "fas fa-mail-bulk", + searchTerms: [] + }, { + title: "fab fa-mailchimp", + searchTerms: [] + }, { + title: "fas fa-male", + searchTerms: [ "human", "man", "person", "profile", "user" ] + }, { + title: "fab fa-mandalorian", + searchTerms: [] + }, { + title: "fas fa-map", + searchTerms: [ "coordinates", "location", "paper", "place", "travel" ] + }, { + title: "far fa-map", + searchTerms: [ "coordinates", "location", "paper", "place", "travel" ] + }, { + title: "fas fa-map-marked", + searchTerms: [ "address", "coordinates", "destination", "gps", "localize", "location", "map", "paper", "pin", "place", "point of interest", "position", "route", "travel", "where" ] + }, { + title: "fas fa-map-marked-alt", + searchTerms: [ "address", "coordinates", "destination", "gps", "localize", "location", "map", "paper", "pin", "place", "point of interest", "position", "route", "travel", "where" ] + }, { + title: "fas fa-map-marker", + searchTerms: [ "address", "coordinates", "gps", "localize", "location", "map", "pin", "place", "position", "travel", "where" ] + }, { + title: "fas fa-map-marker-alt", + searchTerms: [ "address", "coordinates", "gps", "localize", "location", "map", "pin", "place", "position", "travel", "where" ] + }, { + title: "fas fa-map-pin", + searchTerms: [ "address", "coordinates", "gps", "localize", "location", "map", "marker", "place", "position", "travel", "where" ] + }, { + title: "fas fa-map-signs", + searchTerms: [] + }, { + title: "fab fa-markdown", + searchTerms: [] + }, { + title: "fas fa-marker", + searchTerms: [ "edit", "sharpie", "update", "write" ] + }, { + title: "fas fa-mars", + searchTerms: [ "male" ] + }, { + title: "fas fa-mars-double", + searchTerms: [] + }, { + title: "fas fa-mars-stroke", + searchTerms: [] + }, { + title: "fas fa-mars-stroke-h", + searchTerms: [] + }, { + title: "fas fa-mars-stroke-v", + searchTerms: [] + }, { + title: "fas fa-mask", + searchTerms: [ "costume", "disguise", "halloween", "holiday", "secret", "super hero" ] + }, { + title: "fab fa-mastodon", + searchTerms: [] + }, { + title: "fab fa-maxcdn", + searchTerms: [] + }, { + title: "fas fa-medal", + searchTerms: [] + }, { + title: "fab fa-medapps", + searchTerms: [] + }, { + title: "fab fa-medium", + searchTerms: [] + }, { + title: "fab fa-medium-m", + searchTerms: [] + }, { + title: "fas fa-medkit", + searchTerms: [ "first aid", "firstaid", "health", "help", "support" ] + }, { + title: "fab fa-medrt", + searchTerms: [] + }, { + title: "fab fa-meetup", + searchTerms: [] + }, { + title: "fab fa-megaport", + searchTerms: [] + }, { + title: "fas fa-meh", + searchTerms: [ "emoticon", "face", "neutral", "rating" ] + }, { + title: "far fa-meh", + searchTerms: [ "emoticon", "face", "neutral", "rating" ] + }, { + title: "fas fa-meh-blank", + searchTerms: [ "emoticon", "face", "neutral", "rating" ] + }, { + title: "far fa-meh-blank", + searchTerms: [ "emoticon", "face", "neutral", "rating" ] + }, { + title: "fas fa-meh-rolling-eyes", + searchTerms: [ "emoticon", "face", "neutral", "rating" ] + }, { + title: "far fa-meh-rolling-eyes", + searchTerms: [ "emoticon", "face", "neutral", "rating" ] + }, { + title: "fas fa-memory", + searchTerms: [ "DIMM", "RAM" ] + }, { + title: "fas fa-menorah", + searchTerms: [ "candle", "hanukkah", "jewish", "judaism", "light" ] + }, { + title: "fas fa-mercury", + searchTerms: [ "transgender" ] + }, { + title: "fas fa-meteor", + searchTerms: [] + }, { + title: "fas fa-microchip", + searchTerms: [ "cpu", "processor" ] + }, { + title: "fas fa-microphone", + searchTerms: [ "record", "sound", "voice" ] + }, { + title: "fas fa-microphone-alt", + searchTerms: [ "record", "sound", "voice" ] + }, { + title: "fas fa-microphone-alt-slash", + searchTerms: [ "disable", "mute", "record", "sound", "voice" ] + }, { + title: "fas fa-microphone-slash", + searchTerms: [ "disable", "mute", "record", "sound", "voice" ] + }, { + title: "fas fa-microscope", + searchTerms: [] + }, { + title: "fab fa-microsoft", + searchTerms: [] + }, { + title: "fas fa-minus", + searchTerms: [ "collapse", "delete", "hide", "minify", "negative", "remove", "trash" ] + }, { + title: "fas fa-minus-circle", + searchTerms: [ "delete", "hide", "negative", "remove", "trash" ] + }, { + title: "fas fa-minus-square", + searchTerms: [ "collapse", "delete", "hide", "minify", "negative", "remove", "trash" ] + }, { + title: "far fa-minus-square", + searchTerms: [ "collapse", "delete", "hide", "minify", "negative", "remove", "trash" ] + }, { + title: "fab fa-mix", + searchTerms: [] + }, { + title: "fab fa-mixcloud", + searchTerms: [] + }, { + title: "fab fa-mizuni", + searchTerms: [] + }, { + title: "fas fa-mobile", + searchTerms: [ "apple", "call", "cell phone", "cellphone", "device", "iphone", "number", "screen", "telephone", "text" ] + }, { + title: "fas fa-mobile-alt", + searchTerms: [ "apple", "call", "cell phone", "cellphone", "device", "iphone", "number", "screen", "telephone", "text" ] + }, { + title: "fab fa-modx", + searchTerms: [] + }, { + title: "fab fa-monero", + searchTerms: [] + }, { + title: "fas fa-money-bill", + searchTerms: [ "buy", "cash", "checkout", "money", "payment", "price", "purchase" ] + }, { + title: "fas fa-money-bill-alt", + searchTerms: [ "buy", "cash", "checkout", "money", "payment", "price", "purchase" ] + }, { + title: "far fa-money-bill-alt", + searchTerms: [ "buy", "cash", "checkout", "money", "payment", "price", "purchase" ] + }, { + title: "fas fa-money-bill-wave", + searchTerms: [] + }, { + title: "fas fa-money-bill-wave-alt", + searchTerms: [] + }, { + title: "fas fa-money-check", + searchTerms: [ "bank check", "cheque" ] + }, { + title: "fas fa-money-check-alt", + searchTerms: [ "bank check", "cheque" ] + }, { + title: "fas fa-monument", + searchTerms: [ "building", "historic", "memoroable" ] + }, { + title: "fas fa-moon", + searchTerms: [ "contrast", "crescent", "darker", "lunar", "night" ] + }, { + title: "far fa-moon", + searchTerms: [ "contrast", "crescent", "darker", "lunar", "night" ] + }, { + title: "fas fa-mortar-pestle", + searchTerms: [ "crush", "culinary", "grind", "medical", "mix", "spices" ] + }, { + title: "fas fa-mosque", + searchTerms: [ "building", "islam", "muslim" ] + }, { + title: "fas fa-motorcycle", + searchTerms: [ "bike", "machine", "transportation", "vehicle" ] + }, { + title: "fas fa-mountain", + searchTerms: [] + }, { + title: "fas fa-mouse-pointer", + searchTerms: [ "select" ] + }, { + title: "fas fa-music", + searchTerms: [ "note", "sound" ] + }, { + title: "fab fa-napster", + searchTerms: [] + }, { + title: "fab fa-neos", + searchTerms: [] + }, { + title: "fas fa-network-wired", + searchTerms: [] + }, { + title: "fas fa-neuter", + searchTerms: [] + }, { + title: "fas fa-newspaper", + searchTerms: [ "article", "press" ] + }, { + title: "far fa-newspaper", + searchTerms: [ "article", "press" ] + }, { + title: "fab fa-nimblr", + searchTerms: [] + }, { + title: "fab fa-nintendo-switch", + searchTerms: [] + }, { + title: "fab fa-node", + searchTerms: [] + }, { + title: "fab fa-node-js", + searchTerms: [] + }, { + title: "fas fa-not-equal", + searchTerms: [] + }, { + title: "fas fa-notes-medical", + searchTerms: [] + }, { + title: "fab fa-npm", + searchTerms: [] + }, { + title: "fab fa-ns8", + searchTerms: [] + }, { + title: "fab fa-nutritionix", + searchTerms: [] + }, { + title: "fas fa-object-group", + searchTerms: [ "design" ] + }, { + title: "far fa-object-group", + searchTerms: [ "design" ] + }, { + title: "fas fa-object-ungroup", + searchTerms: [ "design" ] + }, { + title: "far fa-object-ungroup", + searchTerms: [ "design" ] + }, { + title: "fab fa-odnoklassniki", + searchTerms: [] + }, { + title: "fab fa-odnoklassniki-square", + searchTerms: [] + }, { + title: "fas fa-oil-can", + searchTerms: [] + }, { + title: "fab fa-old-republic", + searchTerms: [ "politics", "star wars" ] + }, { + title: "fas fa-om", + searchTerms: [ "buddhism", "hinduism", "jainism", "mantra" ] + }, { + title: "fab fa-opencart", + searchTerms: [] + }, { + title: "fab fa-openid", + searchTerms: [] + }, { + title: "fab fa-opera", + searchTerms: [] + }, { + title: "fab fa-optin-monster", + searchTerms: [] + }, { + title: "fab fa-osi", + searchTerms: [] + }, { + title: "fas fa-otter", + searchTerms: [ "fauna", "mammmal" ] + }, { + title: "fas fa-outdent", + searchTerms: [] + }, { + title: "fab fa-page4", + searchTerms: [] + }, { + title: "fab fa-pagelines", + searchTerms: [ "eco", "flora", "leaf", "leaves", "nature", "plant", "tree" ] + }, { + title: "fas fa-paint-brush", + searchTerms: [] + }, { + title: "fas fa-paint-roller", + searchTerms: [ "brush", "painting", "tool" ] + }, { + title: "fas fa-palette", + searchTerms: [ "colors", "painting" ] + }, { + title: "fab fa-palfed", + searchTerms: [] + }, { + title: "fas fa-pallet", + searchTerms: [] + }, { + title: "fas fa-paper-plane", + searchTerms: [] + }, { + title: "far fa-paper-plane", + searchTerms: [] + }, { + title: "fas fa-paperclip", + searchTerms: [ "attachment" ] + }, { + title: "fas fa-parachute-box", + searchTerms: [ "aid", "assistance", "rescue", "supplies" ] + }, { + title: "fas fa-paragraph", + searchTerms: [] + }, { + title: "fas fa-parking", + searchTerms: [] + }, { + title: "fas fa-passport", + searchTerms: [ "document", "identification", "issued" ] + }, { + title: "fas fa-pastafarianism", + searchTerms: [ "agnosticism", "atheism", "flying spaghetti monster", "fsm" ] + }, { + title: "fas fa-paste", + searchTerms: [ "clipboard", "copy" ] + }, { + title: "fab fa-patreon", + searchTerms: [] + }, { + title: "fas fa-pause", + searchTerms: [ "wait" ] + }, { + title: "fas fa-pause-circle", + searchTerms: [] + }, { + title: "far fa-pause-circle", + searchTerms: [] + }, { + title: "fas fa-paw", + searchTerms: [ "animal", "pet" ] + }, { + title: "fab fa-paypal", + searchTerms: [] + }, { + title: "fas fa-peace", + searchTerms: [] + }, { + title: "fas fa-pen", + searchTerms: [ "design", "edit", "update", "write" ] + }, { + title: "fas fa-pen-alt", + searchTerms: [ "design", "edit", "update", "write" ] + }, { + title: "fas fa-pen-fancy", + searchTerms: [ "design", "edit", "fountain pen", "update", "write" ] + }, { + title: "fas fa-pen-nib", + searchTerms: [ "design", "edit", "fountain pen", "update", "write" ] + }, { + title: "fas fa-pen-square", + searchTerms: [ "edit", "pencil-square", "update", "write" ] + }, { + title: "fas fa-pencil-alt", + searchTerms: [ "design", "edit", "pencil", "update", "write" ] + }, { + title: "fas fa-pencil-ruler", + searchTerms: [] + }, { + title: "fab fa-penny-arcade", + searchTerms: [ "Dungeons & Dragons", "d&d", "dnd", "fantasy", "game", "gaming", "pax", "tabletop" ] + }, { + title: "fas fa-people-carry", + searchTerms: [ "movers" ] + }, { + title: "fas fa-percent", + searchTerms: [] + }, { + title: "fas fa-percentage", + searchTerms: [] + }, { + title: "fab fa-periscope", + searchTerms: [] + }, { + title: "fas fa-person-booth", + searchTerms: [ "changing", "changing room", "election", "human", "person", "vote", "voting" ] + }, { + title: "fab fa-phabricator", + searchTerms: [] + }, { + title: "fab fa-phoenix-framework", + searchTerms: [] + }, { + title: "fab fa-phoenix-squadron", + searchTerms: [] + }, { + title: "fas fa-phone", + searchTerms: [ "call", "earphone", "number", "support", "telephone", "voice" ] + }, { + title: "fas fa-phone-slash", + searchTerms: [] + }, { + title: "fas fa-phone-square", + searchTerms: [ "call", "number", "support", "telephone", "voice" ] + }, { + title: "fas fa-phone-volume", + searchTerms: [ "telephone", "volume-control-phone" ] + }, { + title: "fab fa-php", + searchTerms: [] + }, { + title: "fab fa-pied-piper", + searchTerms: [] + }, { + title: "fab fa-pied-piper-alt", + searchTerms: [] + }, { + title: "fab fa-pied-piper-hat", + searchTerms: [ "clothing" ] + }, { + title: "fab fa-pied-piper-pp", + searchTerms: [] + }, { + title: "fas fa-piggy-bank", + searchTerms: [ "save", "savings" ] + }, { + title: "fas fa-pills", + searchTerms: [ "drugs", "medicine" ] + }, { + title: "fab fa-pinterest", + searchTerms: [] + }, { + title: "fab fa-pinterest-p", + searchTerms: [] + }, { + title: "fab fa-pinterest-square", + searchTerms: [] + }, { + title: "fas fa-place-of-worship", + searchTerms: [] + }, { + title: "fas fa-plane", + searchTerms: [ "airplane", "destination", "fly", "location", "mode", "travel", "trip" ] + }, { + title: "fas fa-plane-arrival", + searchTerms: [ "airplane", "arriving", "destination", "fly", "land", "landing", "location", "mode", "travel", "trip" ] + }, { + title: "fas fa-plane-departure", + searchTerms: [ "airplane", "departing", "destination", "fly", "location", "mode", "take off", "taking off", "travel", "trip" ] + }, { + title: "fas fa-play", + searchTerms: [ "music", "playing", "sound", "start" ] + }, { + title: "fas fa-play-circle", + searchTerms: [ "playing", "start" ] + }, { + title: "far fa-play-circle", + searchTerms: [ "playing", "start" ] + }, { + title: "fab fa-playstation", + searchTerms: [] + }, { + title: "fas fa-plug", + searchTerms: [ "connect", "online", "power" ] + }, { + title: "fas fa-plus", + searchTerms: [ "add", "create", "expand", "new", "positive" ] + }, { + title: "fas fa-plus-circle", + searchTerms: [ "add", "create", "expand", "new", "positive" ] + }, { + title: "fas fa-plus-square", + searchTerms: [ "add", "create", "expand", "new", "positive" ] + }, { + title: "far fa-plus-square", + searchTerms: [ "add", "create", "expand", "new", "positive" ] + }, { + title: "fas fa-podcast", + searchTerms: [] + }, { + title: "fas fa-poll", + searchTerms: [ "results", "survey", "vote", "voting" ] + }, { + title: "fas fa-poll-h", + searchTerms: [ "results", "survey", "vote", "voting" ] + }, { + title: "fas fa-poo", + searchTerms: [] + }, { + title: "fas fa-poo-storm", + searchTerms: [ "mess", "poop", "shit" ] + }, { + title: "fas fa-poop", + searchTerms: [] + }, { + title: "fas fa-portrait", + searchTerms: [] + }, { + title: "fas fa-pound-sign", + searchTerms: [ "gbp" ] + }, { + title: "fas fa-power-off", + searchTerms: [ "on", "reboot", "restart" ] + }, { + title: "fas fa-pray", + searchTerms: [] + }, { + title: "fas fa-praying-hands", + searchTerms: [] + }, { + title: "fas fa-prescription", + searchTerms: [ "drugs", "medical", "medicine", "rx" ] + }, { + title: "fas fa-prescription-bottle", + searchTerms: [ "drugs", "medical", "medicine", "rx" ] + }, { + title: "fas fa-prescription-bottle-alt", + searchTerms: [ "drugs", "medical", "medicine", "rx" ] + }, { + title: "fas fa-print", + searchTerms: [] + }, { + title: "fas fa-procedures", + searchTerms: [] + }, { + title: "fab fa-product-hunt", + searchTerms: [] + }, { + title: "fas fa-project-diagram", + searchTerms: [] + }, { + title: "fab fa-pushed", + searchTerms: [] + }, { + title: "fas fa-puzzle-piece", + searchTerms: [ "add-on", "addon", "section" ] + }, { + title: "fab fa-python", + searchTerms: [] + }, { + title: "fab fa-qq", + searchTerms: [] + }, { + title: "fas fa-qrcode", + searchTerms: [ "scan" ] + }, { + title: "fas fa-question", + searchTerms: [ "help", "information", "support", "unknown" ] + }, { + title: "fas fa-question-circle", + searchTerms: [ "help", "information", "support", "unknown" ] + }, { + title: "far fa-question-circle", + searchTerms: [ "help", "information", "support", "unknown" ] + }, { + title: "fas fa-quidditch", + searchTerms: [] + }, { + title: "fab fa-quinscape", + searchTerms: [] + }, { + title: "fab fa-quora", + searchTerms: [] + }, { + title: "fas fa-quote-left", + searchTerms: [] + }, { + title: "fas fa-quote-right", + searchTerms: [] + }, { + title: "fas fa-quran", + searchTerms: [ "book", "islam", "muslim" ] + }, { + title: "fab fa-r-project", + searchTerms: [] + }, { + title: "fas fa-rainbow", + searchTerms: [] + }, { + title: "fas fa-random", + searchTerms: [ "shuffle", "sort" ] + }, { + title: "fab fa-ravelry", + searchTerms: [] + }, { + title: "fab fa-react", + searchTerms: [] + }, { + title: "fab fa-reacteurope", + searchTerms: [] + }, { + title: "fab fa-readme", + searchTerms: [] + }, { + title: "fab fa-rebel", + searchTerms: [] + }, { + title: "fas fa-receipt", + searchTerms: [ "check", "invoice", "table" ] + }, { + title: "fas fa-recycle", + searchTerms: [] + }, { + title: "fab fa-red-river", + searchTerms: [] + }, { + title: "fab fa-reddit", + searchTerms: [] + }, { + title: "fab fa-reddit-alien", + searchTerms: [] + }, { + title: "fab fa-reddit-square", + searchTerms: [] + }, { + title: "fas fa-redo", + searchTerms: [ "forward", "refresh", "reload", "repeat" ] + }, { + title: "fas fa-redo-alt", + searchTerms: [ "forward", "refresh", "reload", "repeat" ] + }, { + title: "fas fa-registered", + searchTerms: [] + }, { + title: "far fa-registered", + searchTerms: [] + }, { + title: "fab fa-renren", + searchTerms: [] + }, { + title: "fas fa-reply", + searchTerms: [] + }, { + title: "fas fa-reply-all", + searchTerms: [] + }, { + title: "fab fa-replyd", + searchTerms: [] + }, { + title: "fas fa-republican", + searchTerms: [ "american", "conservative", "election", "elephant", "politics", "republican party", "right", "right-wing", "usa" ] + }, { + title: "fab fa-researchgate", + searchTerms: [] + }, { + title: "fab fa-resolving", + searchTerms: [] + }, { + title: "fas fa-retweet", + searchTerms: [ "refresh", "reload", "share", "swap" ] + }, { + title: "fab fa-rev", + searchTerms: [] + }, { + title: "fas fa-ribbon", + searchTerms: [ "badge", "cause", "lapel", "pin" ] + }, { + title: "fas fa-ring", + searchTerms: [ "Dungeons & Dragons", "Gollum", "band", "binding", "d&d", "dnd", "fantasy", "jewelry", "precious" ] + }, { + title: "fas fa-road", + searchTerms: [ "street" ] + }, { + title: "fas fa-robot", + searchTerms: [] + }, { + title: "fas fa-rocket", + searchTerms: [ "app" ] + }, { + title: "fab fa-rocketchat", + searchTerms: [] + }, { + title: "fab fa-rockrms", + searchTerms: [] + }, { + title: "fas fa-route", + searchTerms: [] + }, { + title: "fas fa-rss", + searchTerms: [ "blog" ] + }, { + title: "fas fa-rss-square", + searchTerms: [ "blog", "feed" ] + }, { + title: "fas fa-ruble-sign", + searchTerms: [ "rub" ] + }, { + title: "fas fa-ruler", + searchTerms: [] + }, { + title: "fas fa-ruler-combined", + searchTerms: [] + }, { + title: "fas fa-ruler-horizontal", + searchTerms: [] + }, { + title: "fas fa-ruler-vertical", + searchTerms: [] + }, { + title: "fas fa-running", + searchTerms: [ "jog", "sprint" ] + }, { + title: "fas fa-rupee-sign", + searchTerms: [ "indian", "inr" ] + }, { + title: "fas fa-sad-cry", + searchTerms: [ "emoticon", "face", "tear", "tears" ] + }, { + title: "far fa-sad-cry", + searchTerms: [ "emoticon", "face", "tear", "tears" ] + }, { + title: "fas fa-sad-tear", + searchTerms: [ "emoticon", "face", "tear", "tears" ] + }, { + title: "far fa-sad-tear", + searchTerms: [ "emoticon", "face", "tear", "tears" ] + }, { + title: "fab fa-safari", + searchTerms: [ "browser" ] + }, { + title: "fab fa-sass", + searchTerms: [] + }, { + title: "fas fa-save", + searchTerms: [ "floppy", "floppy-o" ] + }, { + title: "far fa-save", + searchTerms: [ "floppy", "floppy-o" ] + }, { + title: "fab fa-schlix", + searchTerms: [] + }, { + title: "fas fa-school", + searchTerms: [] + }, { + title: "fas fa-screwdriver", + searchTerms: [ "admin", "fix", "repair", "settings", "tool" ] + }, { + title: "fab fa-scribd", + searchTerms: [] + }, { + title: "fas fa-scroll", + searchTerms: [ "Dungeons & Dragons", "announcement", "d&d", "dnd", "fantasy", "paper" ] + }, { + title: "fas fa-search", + searchTerms: [ "bigger", "enlarge", "magnify", "preview", "zoom" ] + }, { + title: "fas fa-search-dollar", + searchTerms: [] + }, { + title: "fas fa-search-location", + searchTerms: [] + }, { + title: "fas fa-search-minus", + searchTerms: [ "minify", "negative", "smaller", "zoom", "zoom out" ] + }, { + title: "fas fa-search-plus", + searchTerms: [ "bigger", "enlarge", "magnify", "positive", "zoom", "zoom in" ] + }, { + title: "fab fa-searchengin", + searchTerms: [] + }, { + title: "fas fa-seedling", + searchTerms: [] + }, { + title: "fab fa-sellcast", + searchTerms: [ "eercast" ] + }, { + title: "fab fa-sellsy", + searchTerms: [] + }, { + title: "fas fa-server", + searchTerms: [ "cpu" ] + }, { + title: "fab fa-servicestack", + searchTerms: [] + }, { + title: "fas fa-shapes", + searchTerms: [ "circle", "square", "triangle" ] + }, { + title: "fas fa-share", + searchTerms: [] + }, { + title: "fas fa-share-alt", + searchTerms: [] + }, { + title: "fas fa-share-alt-square", + searchTerms: [] + }, { + title: "fas fa-share-square", + searchTerms: [ "send", "social" ] + }, { + title: "far fa-share-square", + searchTerms: [ "send", "social" ] + }, { + title: "fas fa-shekel-sign", + searchTerms: [ "ils" ] + }, { + title: "fas fa-shield-alt", + searchTerms: [ "achievement", "award", "block", "defend", "security", "winner" ] + }, { + title: "fas fa-ship", + searchTerms: [ "boat", "sea" ] + }, { + title: "fas fa-shipping-fast", + searchTerms: [] + }, { + title: "fab fa-shirtsinbulk", + searchTerms: [] + }, { + title: "fas fa-shoe-prints", + searchTerms: [ "feet", "footprints", "steps" ] + }, { + title: "fas fa-shopping-bag", + searchTerms: [] + }, { + title: "fas fa-shopping-basket", + searchTerms: [] + }, { + title: "fas fa-shopping-cart", + searchTerms: [ "buy", "checkout", "payment", "purchase" ] + }, { + title: "fab fa-shopware", + searchTerms: [] + }, { + title: "fas fa-shower", + searchTerms: [] + }, { + title: "fas fa-shuttle-van", + searchTerms: [ "machine", "public-transportation", "transportation", "vehicle" ] + }, { + title: "fas fa-sign", + searchTerms: [] + }, { + title: "fas fa-sign-in-alt", + searchTerms: [ "arrow", "enter", "join", "log in", "login", "sign in", "sign up", "sign-in", "signin", "signup" ] + }, { + title: "fas fa-sign-language", + searchTerms: [] + }, { + title: "fas fa-sign-out-alt", + searchTerms: [ "arrow", "exit", "leave", "log out", "logout", "sign-out" ] + }, { + title: "fas fa-signal", + searchTerms: [ "bars", "graph", "online", "status" ] + }, { + title: "fas fa-signature", + searchTerms: [ "John Hancock", "cursive", "name", "writing" ] + }, { + title: "fab fa-simplybuilt", + searchTerms: [] + }, { + title: "fab fa-sistrix", + searchTerms: [] + }, { + title: "fas fa-sitemap", + searchTerms: [ "directory", "hierarchy", "ia", "information architecture", "organization" ] + }, { + title: "fab fa-sith", + searchTerms: [] + }, { + title: "fas fa-skull", + searchTerms: [ "bones", "skeleton", "yorick" ] + }, { + title: "fas fa-skull-crossbones", + searchTerms: [ "Dungeons & Dragons", "alert", "bones", "d&d", "danger", "dead", "deadly", "death", "dnd", "fantasy", "halloween", "holiday", "jolly-roger", "pirate", "poison", "skeleton", "warning" ] + }, { + title: "fab fa-skyatlas", + searchTerms: [] + }, { + title: "fab fa-skype", + searchTerms: [] + }, { + title: "fab fa-slack", + searchTerms: [ "anchor", "hash", "hashtag" ] + }, { + title: "fab fa-slack-hash", + searchTerms: [ "anchor", "hash", "hashtag" ] + }, { + title: "fas fa-slash", + searchTerms: [] + }, { + title: "fas fa-sliders-h", + searchTerms: [ "settings", "sliders" ] + }, { + title: "fab fa-slideshare", + searchTerms: [] + }, { + title: "fas fa-smile", + searchTerms: [ "approve", "emoticon", "face", "happy", "rating", "satisfied" ] + }, { + title: "far fa-smile", + searchTerms: [ "approve", "emoticon", "face", "happy", "rating", "satisfied" ] + }, { + title: "fas fa-smile-beam", + searchTerms: [ "emoticon", "face", "happy", "positive" ] + }, { + title: "far fa-smile-beam", + searchTerms: [ "emoticon", "face", "happy", "positive" ] + }, { + title: "fas fa-smile-wink", + searchTerms: [ "emoticon", "face", "happy" ] + }, { + title: "far fa-smile-wink", + searchTerms: [ "emoticon", "face", "happy" ] + }, { + title: "fas fa-smog", + searchTerms: [ "dragon" ] + }, { + title: "fas fa-smoking", + searchTerms: [ "cigarette", "nicotine", "smoking status" ] + }, { + title: "fas fa-smoking-ban", + searchTerms: [ "no smoking", "non-smoking" ] + }, { + title: "fab fa-snapchat", + searchTerms: [] + }, { + title: "fab fa-snapchat-ghost", + searchTerms: [] + }, { + title: "fab fa-snapchat-square", + searchTerms: [] + }, { + title: "fas fa-snowflake", + searchTerms: [ "precipitation", "seasonal", "winter" ] + }, { + title: "far fa-snowflake", + searchTerms: [ "precipitation", "seasonal", "winter" ] + }, { + title: "fas fa-socks", + searchTerms: [ "business socks", "business time", "flight of the conchords", "wednesday" ] + }, { + title: "fas fa-solar-panel", + searchTerms: [ "clean", "eco-friendly", "energy", "green", "sun" ] + }, { + title: "fas fa-sort", + searchTerms: [ "order" ] + }, { + title: "fas fa-sort-alpha-down", + searchTerms: [ "sort-alpha-asc" ] + }, { + title: "fas fa-sort-alpha-up", + searchTerms: [ "sort-alpha-desc" ] + }, { + title: "fas fa-sort-amount-down", + searchTerms: [ "sort-amount-asc" ] + }, { + title: "fas fa-sort-amount-up", + searchTerms: [ "sort-amount-desc" ] + }, { + title: "fas fa-sort-down", + searchTerms: [ "arrow", "descending", "sort-desc" ] + }, { + title: "fas fa-sort-numeric-down", + searchTerms: [ "numbers", "sort-numeric-asc" ] + }, { + title: "fas fa-sort-numeric-up", + searchTerms: [ "numbers", "sort-numeric-desc" ] + }, { + title: "fas fa-sort-up", + searchTerms: [ "arrow", "ascending", "sort-asc" ] + }, { + title: "fab fa-soundcloud", + searchTerms: [] + }, { + title: "fas fa-spa", + searchTerms: [ "flora", "mindfullness", "plant", "wellness" ] + }, { + title: "fas fa-space-shuttle", + searchTerms: [ "astronaut", "machine", "nasa", "rocket", "transportation" ] + }, { + title: "fab fa-speakap", + searchTerms: [] + }, { + title: "fas fa-spider", + searchTerms: [ "arachnid", "bug", "charlotte", "crawl", "eight", "halloween", "holiday" ] + }, { + title: "fas fa-spinner", + searchTerms: [ "loading", "progress" ] + }, { + title: "fas fa-splotch", + searchTerms: [] + }, { + title: "fab fa-spotify", + searchTerms: [] + }, { + title: "fas fa-spray-can", + searchTerms: [] + }, { + title: "fas fa-square", + searchTerms: [ "block", "box" ] + }, { + title: "far fa-square", + searchTerms: [ "block", "box" ] + }, { + title: "fas fa-square-full", + searchTerms: [] + }, { + title: "fas fa-square-root-alt", + searchTerms: [] + }, { + title: "fab fa-squarespace", + searchTerms: [] + }, { + title: "fab fa-stack-exchange", + searchTerms: [] + }, { + title: "fab fa-stack-overflow", + searchTerms: [] + }, { + title: "fas fa-stamp", + searchTerms: [] + }, { + title: "fas fa-star", + searchTerms: [ "achievement", "award", "favorite", "important", "night", "rating", "score" ] + }, { + title: "far fa-star", + searchTerms: [ "achievement", "award", "favorite", "important", "night", "rating", "score" ] + }, { + title: "fas fa-star-and-crescent", + searchTerms: [ "islam", "muslim" ] + }, { + title: "fas fa-star-half", + searchTerms: [ "achievement", "award", "rating", "score", "star-half-empty", "star-half-full" ] + }, { + title: "far fa-star-half", + searchTerms: [ "achievement", "award", "rating", "score", "star-half-empty", "star-half-full" ] + }, { + title: "fas fa-star-half-alt", + searchTerms: [ "achievement", "award", "rating", "score", "star-half-empty", "star-half-full" ] + }, { + title: "fas fa-star-of-david", + searchTerms: [ "jewish", "judaism" ] + }, { + title: "fas fa-star-of-life", + searchTerms: [] + }, { + title: "fab fa-staylinked", + searchTerms: [] + }, { + title: "fab fa-steam", + searchTerms: [] + }, { + title: "fab fa-steam-square", + searchTerms: [] + }, { + title: "fab fa-steam-symbol", + searchTerms: [] + }, { + title: "fas fa-step-backward", + searchTerms: [ "beginning", "first", "previous", "rewind", "start" ] + }, { + title: "fas fa-step-forward", + searchTerms: [ "end", "last", "next" ] + }, { + title: "fas fa-stethoscope", + searchTerms: [] + }, { + title: "fab fa-sticker-mule", + searchTerms: [] + }, { + title: "fas fa-sticky-note", + searchTerms: [] + }, { + title: "far fa-sticky-note", + searchTerms: [] + }, { + title: "fas fa-stop", + searchTerms: [ "block", "box", "square" ] + }, { + title: "fas fa-stop-circle", + searchTerms: [] + }, { + title: "far fa-stop-circle", + searchTerms: [] + }, { + title: "fas fa-stopwatch", + searchTerms: [ "time" ] + }, { + title: "fas fa-store", + searchTerms: [] + }, { + title: "fas fa-store-alt", + searchTerms: [] + }, { + title: "fab fa-strava", + searchTerms: [] + }, { + title: "fas fa-stream", + searchTerms: [] + }, { + title: "fas fa-street-view", + searchTerms: [ "map" ] + }, { + title: "fas fa-strikethrough", + searchTerms: [] + }, { + title: "fab fa-stripe", + searchTerms: [] + }, { + title: "fab fa-stripe-s", + searchTerms: [] + }, { + title: "fas fa-stroopwafel", + searchTerms: [ "dessert", "food", "sweets", "waffle" ] + }, { + title: "fab fa-studiovinari", + searchTerms: [] + }, { + title: "fab fa-stumbleupon", + searchTerms: [] + }, { + title: "fab fa-stumbleupon-circle", + searchTerms: [] + }, { + title: "fas fa-subscript", + searchTerms: [] + }, { + title: "fas fa-subway", + searchTerms: [ "machine", "railway", "train", "transportation", "vehicle" ] + }, { + title: "fas fa-suitcase", + searchTerms: [ "baggage", "luggage", "move", "suitcase", "travel", "trip" ] + }, { + title: "fas fa-suitcase-rolling", + searchTerms: [] + }, { + title: "fas fa-sun", + searchTerms: [ "brighten", "contrast", "day", "lighter", "sol", "solar", "star", "weather" ] + }, { + title: "far fa-sun", + searchTerms: [ "brighten", "contrast", "day", "lighter", "sol", "solar", "star", "weather" ] + }, { + title: "fab fa-superpowers", + searchTerms: [] + }, { + title: "fas fa-superscript", + searchTerms: [ "exponential" ] + }, { + title: "fab fa-supple", + searchTerms: [] + }, { + title: "fas fa-surprise", + searchTerms: [ "emoticon", "face", "shocked" ] + }, { + title: "far fa-surprise", + searchTerms: [ "emoticon", "face", "shocked" ] + }, { + title: "fas fa-swatchbook", + searchTerms: [] + }, { + title: "fas fa-swimmer", + searchTerms: [ "athlete", "head", "man", "person", "water" ] + }, { + title: "fas fa-swimming-pool", + searchTerms: [ "ladder", "recreation", "water" ] + }, { + title: "fas fa-synagogue", + searchTerms: [ "building", "jewish", "judaism", "star of david", "temple" ] + }, { + title: "fas fa-sync", + searchTerms: [ "exchange", "refresh", "reload", "rotate", "swap" ] + }, { + title: "fas fa-sync-alt", + searchTerms: [ "refresh", "reload", "rotate" ] + }, { + title: "fas fa-syringe", + searchTerms: [ "immunizations", "needle" ] + }, { + title: "fas fa-table", + searchTerms: [ "data", "excel", "spreadsheet" ] + }, { + title: "fas fa-table-tennis", + searchTerms: [] + }, { + title: "fas fa-tablet", + searchTerms: [ "apple", "device", "ipad", "kindle", "screen" ] + }, { + title: "fas fa-tablet-alt", + searchTerms: [ "apple", "device", "ipad", "kindle", "screen" ] + }, { + title: "fas fa-tablets", + searchTerms: [ "drugs", "medicine" ] + }, { + title: "fas fa-tachometer-alt", + searchTerms: [ "dashboard", "tachometer" ] + }, { + title: "fas fa-tag", + searchTerms: [ "label" ] + }, { + title: "fas fa-tags", + searchTerms: [ "labels" ] + }, { + title: "fas fa-tape", + searchTerms: [] + }, { + title: "fas fa-tasks", + searchTerms: [ "downloading", "downloads", "loading", "progress", "settings" ] + }, { + title: "fas fa-taxi", + searchTerms: [ "cab", "cabbie", "car", "car service", "lyft", "machine", "transportation", "uber", "vehicle" ] + }, { + title: "fab fa-teamspeak", + searchTerms: [] + }, { + title: "fas fa-teeth", + searchTerms: [] + }, { + title: "fas fa-teeth-open", + searchTerms: [] + }, { + title: "fab fa-telegram", + searchTerms: [] + }, { + title: "fab fa-telegram-plane", + searchTerms: [] + }, { + title: "fas fa-temperature-high", + searchTerms: [ "mercury", "thermometer", "warm" ] + }, { + title: "fas fa-temperature-low", + searchTerms: [ "cool", "mercury", "thermometer" ] + }, { + title: "fab fa-tencent-weibo", + searchTerms: [] + }, { + title: "fas fa-terminal", + searchTerms: [ "code", "command", "console", "prompt" ] + }, { + title: "fas fa-text-height", + searchTerms: [] + }, { + title: "fas fa-text-width", + searchTerms: [] + }, { + title: "fas fa-th", + searchTerms: [ "blocks", "boxes", "grid", "squares" ] + }, { + title: "fas fa-th-large", + searchTerms: [ "blocks", "boxes", "grid", "squares" ] + }, { + title: "fas fa-th-list", + searchTerms: [ "checklist", "completed", "done", "finished", "ol", "todo", "ul" ] + }, { + title: "fab fa-the-red-yeti", + searchTerms: [] + }, { + title: "fas fa-theater-masks", + searchTerms: [] + }, { + title: "fab fa-themeco", + searchTerms: [] + }, { + title: "fab fa-themeisle", + searchTerms: [] + }, { + title: "fas fa-thermometer", + searchTerms: [ "mercury", "status", "temperature" ] + }, { + title: "fas fa-thermometer-empty", + searchTerms: [ "mercury", "status", "temperature" ] + }, { + title: "fas fa-thermometer-full", + searchTerms: [ "fever", "mercury", "status", "temperature" ] + }, { + title: "fas fa-thermometer-half", + searchTerms: [ "mercury", "status", "temperature" ] + }, { + title: "fas fa-thermometer-quarter", + searchTerms: [ "mercury", "status", "temperature" ] + }, { + title: "fas fa-thermometer-three-quarters", + searchTerms: [ "mercury", "status", "temperature" ] + }, { + title: "fab fa-think-peaks", + searchTerms: [] + }, { + title: "fas fa-thumbs-down", + searchTerms: [ "disagree", "disapprove", "dislike", "hand", "thumbs-o-down" ] + }, { + title: "far fa-thumbs-down", + searchTerms: [ "disagree", "disapprove", "dislike", "hand", "thumbs-o-down" ] + }, { + title: "fas fa-thumbs-up", + searchTerms: [ "agree", "approve", "favorite", "hand", "like", "ok", "okay", "success", "thumbs-o-up", "yes", "you got it dude" ] + }, { + title: "far fa-thumbs-up", + searchTerms: [ "agree", "approve", "favorite", "hand", "like", "ok", "okay", "success", "thumbs-o-up", "yes", "you got it dude" ] + }, { + title: "fas fa-thumbtack", + searchTerms: [ "coordinates", "location", "marker", "pin", "thumb-tack" ] + }, { + title: "fas fa-ticket-alt", + searchTerms: [ "ticket" ] + }, { + title: "fas fa-times", + searchTerms: [ "close", "cross", "error", "exit", "incorrect", "notice", "notification", "notify", "problem", "wrong", "x" ] + }, { + title: "fas fa-times-circle", + searchTerms: [ "close", "cross", "exit", "incorrect", "notice", "notification", "notify", "problem", "wrong", "x" ] + }, { + title: "far fa-times-circle", + searchTerms: [ "close", "cross", "exit", "incorrect", "notice", "notification", "notify", "problem", "wrong", "x" ] + }, { + title: "fas fa-tint", + searchTerms: [ "drop", "droplet", "raindrop", "waterdrop" ] + }, { + title: "fas fa-tint-slash", + searchTerms: [] + }, { + title: "fas fa-tired", + searchTerms: [ "emoticon", "face", "grumpy" ] + }, { + title: "far fa-tired", + searchTerms: [ "emoticon", "face", "grumpy" ] + }, { + title: "fas fa-toggle-off", + searchTerms: [ "switch" ] + }, { + title: "fas fa-toggle-on", + searchTerms: [ "switch" ] + }, { + title: "fas fa-toilet-paper", + searchTerms: [ "bathroom", "halloween", "holiday", "lavatory", "prank", "restroom", "roll" ] + }, { + title: "fas fa-toolbox", + searchTerms: [ "admin", "container", "fix", "repair", "settings", "tools" ] + }, { + title: "fas fa-tooth", + searchTerms: [ "bicuspid", "dental", "molar", "mouth", "teeth" ] + }, { + title: "fas fa-torah", + searchTerms: [ "book", "jewish", "judaism" ] + }, { + title: "fas fa-torii-gate", + searchTerms: [ "building", "shintoism" ] + }, { + title: "fas fa-tractor", + searchTerms: [] + }, { + title: "fab fa-trade-federation", + searchTerms: [] + }, { + title: "fas fa-trademark", + searchTerms: [] + }, { + title: "fas fa-traffic-light", + searchTerms: [] + }, { + title: "fas fa-train", + searchTerms: [ "bullet", "locomotive", "railway" ] + }, { + title: "fas fa-transgender", + searchTerms: [ "intersex" ] + }, { + title: "fas fa-transgender-alt", + searchTerms: [] + }, { + title: "fas fa-trash", + searchTerms: [ "delete", "garbage", "hide", "remove" ] + }, { + title: "fas fa-trash-alt", + searchTerms: [ "delete", "garbage", "hide", "remove", "trash", "trash-o" ] + }, { + title: "far fa-trash-alt", + searchTerms: [ "delete", "garbage", "hide", "remove", "trash", "trash-o" ] + }, { + title: "fas fa-tree", + searchTerms: [ "bark", "fall", "flora", "forest", "nature", "plant", "seasonal" ] + }, { + title: "fab fa-trello", + searchTerms: [] + }, { + title: "fab fa-tripadvisor", + searchTerms: [] + }, { + title: "fas fa-trophy", + searchTerms: [ "achievement", "award", "cup", "game", "winner" ] + }, { + title: "fas fa-truck", + searchTerms: [ "delivery", "shipping" ] + }, { + title: "fas fa-truck-loading", + searchTerms: [] + }, { + title: "fas fa-truck-monster", + searchTerms: [] + }, { + title: "fas fa-truck-moving", + searchTerms: [] + }, { + title: "fas fa-truck-pickup", + searchTerms: [] + }, { + title: "fas fa-tshirt", + searchTerms: [ "cloth", "clothing" ] + }, { + title: "fas fa-tty", + searchTerms: [] + }, { + title: "fab fa-tumblr", + searchTerms: [] + }, { + title: "fab fa-tumblr-square", + searchTerms: [] + }, { + title: "fas fa-tv", + searchTerms: [ "computer", "display", "monitor", "television" ] + }, { + title: "fab fa-twitch", + searchTerms: [] + }, { + title: "fab fa-twitter", + searchTerms: [ "social network", "tweet" ] + }, { + title: "fab fa-twitter-square", + searchTerms: [ "social network", "tweet" ] + }, { + title: "fab fa-typo3", + searchTerms: [] + }, { + title: "fab fa-uber", + searchTerms: [] + }, { + title: "fab fa-uikit", + searchTerms: [] + }, { + title: "fas fa-umbrella", + searchTerms: [ "protection", "rain" ] + }, { + title: "fas fa-umbrella-beach", + searchTerms: [ "protection", "recreation", "sun" ] + }, { + title: "fas fa-underline", + searchTerms: [] + }, { + title: "fas fa-undo", + searchTerms: [ "back", "control z", "exchange", "oops", "return", "rotate", "swap" ] + }, { + title: "fas fa-undo-alt", + searchTerms: [ "back", "control z", "exchange", "oops", "return", "swap" ] + }, { + title: "fab fa-uniregistry", + searchTerms: [] + }, { + title: "fas fa-universal-access", + searchTerms: [] + }, { + title: "fas fa-university", + searchTerms: [ "bank", "institution" ] + }, { + title: "fas fa-unlink", + searchTerms: [ "chain", "chain-broken", "remove" ] + }, { + title: "fas fa-unlock", + searchTerms: [ "admin", "lock", "password", "protect" ] + }, { + title: "fas fa-unlock-alt", + searchTerms: [ "admin", "lock", "password", "protect" ] + }, { + title: "fab fa-untappd", + searchTerms: [] + }, { + title: "fas fa-upload", + searchTerms: [ "export", "publish" ] + }, { + title: "fab fa-usb", + searchTerms: [] + }, { + title: "fas fa-user", + searchTerms: [ "account", "avatar", "head", "human", "man", "person", "profile" ] + }, { + title: "far fa-user", + searchTerms: [ "account", "avatar", "head", "human", "man", "person", "profile" ] + }, { + title: "fas fa-user-alt", + searchTerms: [ "account", "avatar", "head", "human", "man", "person", "profile" ] + }, { + title: "fas fa-user-alt-slash", + searchTerms: [] + }, { + title: "fas fa-user-astronaut", + searchTerms: [ "avatar", "clothing", "cosmonaut", "space", "suit" ] + }, { + title: "fas fa-user-check", + searchTerms: [] + }, { + title: "fas fa-user-circle", + searchTerms: [ "account", "avatar", "head", "human", "man", "person", "profile" ] + }, { + title: "far fa-user-circle", + searchTerms: [ "account", "avatar", "head", "human", "man", "person", "profile" ] + }, { + title: "fas fa-user-clock", + searchTerms: [] + }, { + title: "fas fa-user-cog", + searchTerms: [] + }, { + title: "fas fa-user-edit", + searchTerms: [] + }, { + title: "fas fa-user-friends", + searchTerms: [] + }, { + title: "fas fa-user-graduate", + searchTerms: [ "cap", "clothing", "commencement", "gown", "graduation", "student" ] + }, { + title: "fas fa-user-injured", + searchTerms: [ "cast", "ouch", "sling" ] + }, { + title: "fas fa-user-lock", + searchTerms: [] + }, { + title: "fas fa-user-md", + searchTerms: [ "doctor", "job", "medical", "nurse", "occupation", "profile" ] + }, { + title: "fas fa-user-minus", + searchTerms: [ "delete", "negative", "remove" ] + }, { + title: "fas fa-user-ninja", + searchTerms: [ "assassin", "avatar", "dangerous", "deadly", "sneaky" ] + }, { + title: "fas fa-user-plus", + searchTerms: [ "positive", "sign up", "signup" ] + }, { + title: "fas fa-user-secret", + searchTerms: [ "clothing", "coat", "hat", "incognito", "privacy", "spy", "whisper" ] + }, { + title: "fas fa-user-shield", + searchTerms: [] + }, { + title: "fas fa-user-slash", + searchTerms: [ "ban", "remove" ] + }, { + title: "fas fa-user-tag", + searchTerms: [] + }, { + title: "fas fa-user-tie", + searchTerms: [ "avatar", "business", "clothing", "formal" ] + }, { + title: "fas fa-user-times", + searchTerms: [ "archive", "delete", "remove", "x" ] + }, { + title: "fas fa-users", + searchTerms: [ "people", "persons", "profiles" ] + }, { + title: "fas fa-users-cog", + searchTerms: [] + }, { + title: "fab fa-ussunnah", + searchTerms: [] + }, { + title: "fas fa-utensil-spoon", + searchTerms: [ "spoon" ] + }, { + title: "fas fa-utensils", + searchTerms: [ "cutlery", "dinner", "eat", "food", "knife", "restaurant", "spoon" ] + }, { + title: "fab fa-vaadin", + searchTerms: [] + }, { + title: "fas fa-vector-square", + searchTerms: [ "anchors", "lines", "object" ] + }, { + title: "fas fa-venus", + searchTerms: [ "female" ] + }, { + title: "fas fa-venus-double", + searchTerms: [] + }, { + title: "fas fa-venus-mars", + searchTerms: [] + }, { + title: "fab fa-viacoin", + searchTerms: [] + }, { + title: "fab fa-viadeo", + searchTerms: [] + }, { + title: "fab fa-viadeo-square", + searchTerms: [] + }, { + title: "fas fa-vial", + searchTerms: [ "test tube" ] + }, { + title: "fas fa-vials", + searchTerms: [ "lab results", "test tubes" ] + }, { + title: "fab fa-viber", + searchTerms: [] + }, { + title: "fas fa-video", + searchTerms: [ "camera", "film", "movie", "record", "video-camera" ] + }, { + title: "fas fa-video-slash", + searchTerms: [] + }, { + title: "fas fa-vihara", + searchTerms: [ "buddhism", "buddhist", "building", "monastery" ] + }, { + title: "fab fa-vimeo", + searchTerms: [] + }, { + title: "fab fa-vimeo-square", + searchTerms: [] + }, { + title: "fab fa-vimeo-v", + searchTerms: [ "vimeo" ] + }, { + title: "fab fa-vine", + searchTerms: [] + }, { + title: "fab fa-vk", + searchTerms: [] + }, { + title: "fab fa-vnv", + searchTerms: [] + }, { + title: "fas fa-volleyball-ball", + searchTerms: [] + }, { + title: "fas fa-volume-down", + searchTerms: [ "audio", "lower", "music", "quieter", "sound", "speaker" ] + }, { + title: "fas fa-volume-mute", + searchTerms: [] + }, { + title: "fas fa-volume-off", + searchTerms: [ "audio", "music", "mute", "sound" ] + }, { + title: "fas fa-volume-up", + searchTerms: [ "audio", "higher", "louder", "music", "sound", "speaker" ] + }, { + title: "fas fa-vote-yea", + searchTerms: [ "accept", "cast", "election", "politics", "positive", "yes" ] + }, { + title: "fas fa-vr-cardboard", + searchTerms: [ "google", "reality", "virtual" ] + }, { + title: "fab fa-vuejs", + searchTerms: [] + }, { + title: "fas fa-walking", + searchTerms: [] + }, { + title: "fas fa-wallet", + searchTerms: [] + }, { + title: "fas fa-warehouse", + searchTerms: [] + }, { + title: "fas fa-water", + searchTerms: [] + }, { + title: "fab fa-weebly", + searchTerms: [] + }, { + title: "fab fa-weibo", + searchTerms: [] + }, { + title: "fas fa-weight", + searchTerms: [ "measurement", "scale", "weight" ] + }, { + title: "fas fa-weight-hanging", + searchTerms: [ "anvil", "heavy", "measurement" ] + }, { + title: "fab fa-weixin", + searchTerms: [] + }, { + title: "fab fa-whatsapp", + searchTerms: [] + }, { + title: "fab fa-whatsapp-square", + searchTerms: [] + }, { + title: "fas fa-wheelchair", + searchTerms: [ "handicap", "person" ] + }, { + title: "fab fa-whmcs", + searchTerms: [] + }, { + title: "fas fa-wifi", + searchTerms: [] + }, { + title: "fab fa-wikipedia-w", + searchTerms: [] + }, { + title: "fas fa-wind", + searchTerms: [ "air", "blow", "breeze", "fall", "seasonal" ] + }, { + title: "fas fa-window-close", + searchTerms: [] + }, { + title: "far fa-window-close", + searchTerms: [] + }, { + title: "fas fa-window-maximize", + searchTerms: [] + }, { + title: "far fa-window-maximize", + searchTerms: [] + }, { + title: "fas fa-window-minimize", + searchTerms: [] + }, { + title: "far fa-window-minimize", + searchTerms: [] + }, { + title: "fas fa-window-restore", + searchTerms: [] + }, { + title: "far fa-window-restore", + searchTerms: [] + }, { + title: "fab fa-windows", + searchTerms: [ "microsoft" ] + }, { + title: "fas fa-wine-bottle", + searchTerms: [ "alcohol", "beverage", "drink", "glass", "grapes" ] + }, { + title: "fas fa-wine-glass", + searchTerms: [ "alcohol", "beverage", "drink", "grapes" ] + }, { + title: "fas fa-wine-glass-alt", + searchTerms: [ "alcohol", "beverage", "drink", "grapes" ] + }, { + title: "fab fa-wix", + searchTerms: [] + }, { + title: "fab fa-wizards-of-the-coast", + searchTerms: [ "Dungeons & Dragons", "d&d", "dnd", "fantasy", "game", "gaming", "tabletop" ] + }, { + title: "fab fa-wolf-pack-battalion", + searchTerms: [] + }, { + title: "fas fa-won-sign", + searchTerms: [ "krw" ] + }, { + title: "fab fa-wordpress", + searchTerms: [] + }, { + title: "fab fa-wordpress-simple", + searchTerms: [] + }, { + title: "fab fa-wpbeginner", + searchTerms: [] + }, { + title: "fab fa-wpexplorer", + searchTerms: [] + }, { + title: "fab fa-wpforms", + searchTerms: [] + }, { + title: "fab fa-wpressr", + searchTerms: [ "rendact" ] + }, { + title: "fas fa-wrench", + searchTerms: [ "fix", "settings", "spanner", "tool", "update" ] + }, { + title: "fas fa-x-ray", + searchTerms: [ "radiological images", "radiology" ] + }, { + title: "fab fa-xbox", + searchTerms: [] + }, { + title: "fab fa-xing", + searchTerms: [] + }, { + title: "fab fa-xing-square", + searchTerms: [] + }, { + title: "fab fa-y-combinator", + searchTerms: [] + }, { + title: "fab fa-yahoo", + searchTerms: [] + }, { + title: "fab fa-yandex", + searchTerms: [] + }, { + title: "fab fa-yandex-international", + searchTerms: [] + }, { + title: "fab fa-yelp", + searchTerms: [] + }, { + title: "fas fa-yen-sign", + searchTerms: [ "jpy", "money" ] + }, { + title: "fas fa-yin-yang", + searchTerms: [ "daoism", "opposites", "taoism" ] + }, { + title: "fab fa-yoast", + searchTerms: [] + }, { + title: "fab fa-youtube", + searchTerms: [ "film", "video", "youtube-play", "youtube-square" ] + }, { + title: "fab fa-youtube-square", + searchTerms: [] + }, { + title: "fab fa-zhihu", + searchTerms: [] + } ] + }); +}); \ No newline at end of file diff --git a/octoprint_bedlevelvisualizer/static/js/jquery-ui.min.js b/octoprint_bedlevelvisualizer/static/js/jquery-ui.min.js new file mode 100644 index 0000000..d3e8f68 --- /dev/null +++ b/octoprint_bedlevelvisualizer/static/js/jquery-ui.min.js @@ -0,0 +1,8 @@ +/*! jQuery UI - v1.12.1 - 2018-11-18 +* http://jqueryui.com +* Includes: widget.js, data.js, disable-selection.js, scroll-parent.js, widgets/draggable.js, widgets/droppable.js, widgets/resizable.js, widgets/selectable.js, widgets/sortable.js, widgets/mouse.js +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){t.ui=t.ui||{},t.ui.version="1.12.1";var e=0,i=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},l=e.split(".")[0];e=e.split(".")[1];var h=l+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][h.toLowerCase()]=function(e){return!!t.data(e,h)},t[l]=t[l]||{},n=t[l][e],o=t[l][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:l,widgetName:e,widgetFullName:h}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var s,n,o=i.call(arguments,1),a=0,r=o.length;r>a;a++)for(s in o[a])n=o[a][s],o[a].hasOwnProperty(s)&&void 0!==n&&(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,s){var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=i.call(arguments,1),l=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(l=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(l=i&&i.jquery?l.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):l=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new s(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=e++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[1]+o.eventNamespace,c=l[2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var s=!1;t(document).on("mouseup",function(){s=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!s){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,n=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return n&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),s=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,s=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.ui.safeBlur=function(e){e&&"body"!==e.nodeName.toLowerCase()&&t(e).trigger("blur")},t.widget("ui.draggable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(e){var i=this.options;return this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(e),this.handle?(this._blurActiveElement(e),this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t("
").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=t.ui.safeActiveElement(this.document[0]),s=t(e.target);s.closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===t(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",e,s)===!1)return this._mouseUp(new t.Event("mouseup",e)),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",e)!==!1&&i._clear()}):this._trigger("stop",e)!==!1&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger("focus"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new t.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper),n=s?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options,o=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,t(o).width()-this.helperProportions.width-this.margins.left,(t(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=t(n.containment),s=i[0],s&&(e=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0)},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,s,n,o,a=this.options,r=this._isRootNode(this.scrollParent[0]),l=t.pageX,h=t.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,t.pageX-this.offset.click.lefti[2]&&(l=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(h=i[3]+this.offset.click.top)),a.grid&&(n=a.grid[1]?this.originalPageY+Math.round((h-this.originalPageY)/a.grid[1])*a.grid[1]:this.originalPageY,h=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-a.grid[1]:n+a.grid[1]:n,o=a.grid[0]?this.originalPageX+Math.round((l-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,l=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-a.grid[0]:o+a.grid[0]:o),"y"===a.axis&&(l=this.originalPageX),"x"===a.axis&&(h=this.originalPageY)),{top:h-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:l-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,s){var n=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each(function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,n))})},stop:function(e,i,s){var n=t.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,t.each(s.sortables,function(){var t=this;t.isOver?(t.isOver=0,s.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,n))})},drag:function(e,i,s){t.each(s.sortables,function(){var n=!1,o=this;o.positionAbs=s.positionAbs,o.helperProportions=s.helperProportions,o.offset.click=s.offset.click,o._intersectsWith(o.containerCache)&&(n=!0,t.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&t.contains(o.element[0],this.element[0])&&(n=!1),n})),n?(o.isOver||(o.isOver=1,s._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return i.helper[0]},e.target=o.currentItem[0],o._mouseCapture(e,!0),o._mouseStart(e,!0,!0),o.offset.click.top=s.offset.click.top,o.offset.click.left=s.offset.click.left,o.offset.parent.left-=s.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=s.offset.parent.top-o.offset.parent.top,s._trigger("toSortable",e),s.dropped=o.element,t.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,o.fromOutside=s),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",e,o._uiHash(o)),o._mouseStop(e,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,!0),s._trigger("fromSortable",e),s.dropped=!1,t.each(s.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,s){var n=t("body"),o=s.options;n.css("cursor")&&(o._cursor=n.css("cursor")),n.css("cursor",o.cursor)},stop:function(e,i,s){var n=s.options;n._cursor&&t("body").css("cursor",n._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("opacity")&&(o._opacity=n.css("opacity")),n.css("opacity",o.opacity)},stop:function(e,i,s){var n=s.options;n._opacity&&t(i.helper).css("opacity",n._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,s){var n=s.options,o=!1,a=s.scrollParentNotHidden[0],r=s.document[0];a!==r&&"HTML"!==a.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+a.offsetHeight-e.pageY=0;d--)l=s.snapElements[d].left-s.margins.left,h=l+s.snapElements[d].width,c=s.snapElements[d].top-s.margins.top,u=c+s.snapElements[d].height,l-g>_||m>h+g||c-g>b||v>u+g||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(n=g>=Math.abs(c-b),o=g>=Math.abs(u-v),a=g>=Math.abs(l-_),r=g>=Math.abs(h-m),n&&(i.position.top=s._convertPositionTo("relative",{top:c-s.helperProportions.height,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left)),p=n||o||a||r,"outer"!==f.snapMode&&(n=g>=Math.abs(c-v),o=g>=Math.abs(u-b),a=g>=Math.abs(l-m),r=g>=Math.abs(h-_),n&&(i.position.top=s._convertPositionTo("relative",{top:c,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left)),!s.snapElements[d].snapping&&(n||o||a||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=n||o||a||r||p)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,s){var n,o=s.options,a=t.makeArray(t(o.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});a.length&&(n=parseInt(t(a[0]).css("zIndex"),10)||0,t(a).each(function(e){t(this).css("zIndex",n+e)}),this.css("zIndex",n+a.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("zIndex")&&(o._zIndex=n.css("zIndex")),n.css("zIndex",o.zIndex)},stop:function(e,i,s){var n=s.options;n._zIndex&&t(i.helper).css("zIndex",n._zIndex)}}),t.ui.draggable,t.widget("ui.droppable",{version:"1.12.1",widgetEventPrefix:"drop",options:{accept:"*",addClasses:!0,greedy:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var e,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=t.isFunction(s)?s:function(t){return t.is(s)},this.proportions=function(){return arguments.length?(e=arguments[0],void 0):e?e:e={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(i.scope),i.addClasses&&this._addClass("ui-droppable")},_addToManager:function(e){t.ui.ddmanager.droppables[e]=t.ui.ddmanager.droppables[e]||[],t.ui.ddmanager.droppables[e].push(this)},_splice:function(t){for(var e=0;t.length>e;e++)t[e]===this&&t.splice(e,1)},_destroy:function(){var e=t.ui.ddmanager.droppables[this.options.scope];this._splice(e)},_setOption:function(e,i){if("accept"===e)this.accept=t.isFunction(i)?i:function(t){return t.is(i)};else if("scope"===e){var s=t.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(e,i)},_activate:function(e){var i=t.ui.ddmanager.current;this._addActiveClass(),i&&this._trigger("activate",e,this.ui(i)) +},_deactivate:function(e){var i=t.ui.ddmanager.current;this._removeActiveClass(),i&&this._trigger("deactivate",e,this.ui(i))},_over:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._addHoverClass(),this._trigger("over",e,this.ui(i)))},_out:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._removeHoverClass(),this._trigger("out",e,this.ui(i)))},_drop:function(e,i){var s=i||t.ui.ddmanager.current,o=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var i=t(this).droppable("instance");return i.options.greedy&&!i.options.disabled&&i.options.scope===s.options.scope&&i.accept.call(i.element[0],s.currentItem||s.element)&&n(s,t.extend(i,{offset:i.element.offset()}),i.options.tolerance,e)?(o=!0,!1):void 0}),o?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this._removeActiveClass(),this._removeHoverClass(),this._trigger("drop",e,this.ui(s)),this.element):!1):!1},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}},_addHoverClass:function(){this._addClass("ui-droppable-hover")},_removeHoverClass:function(){this._removeClass("ui-droppable-hover")},_addActiveClass:function(){this._addClass("ui-droppable-active")},_removeActiveClass:function(){this._removeClass("ui-droppable-active")}});var n=t.ui.intersect=function(){function t(t,e,i){return t>=e&&e+i>t}return function(e,i,s,n){if(!i.offset)return!1;var o=(e.positionAbs||e.position.absolute).left+e.margins.left,a=(e.positionAbs||e.position.absolute).top+e.margins.top,r=o+e.helperProportions.width,l=a+e.helperProportions.height,h=i.offset.left,c=i.offset.top,u=h+i.proportions().width,d=c+i.proportions().height;switch(s){case"fit":return o>=h&&u>=r&&a>=c&&d>=l;case"intersect":return o+e.helperProportions.width/2>h&&u>r-e.helperProportions.width/2&&a+e.helperProportions.height/2>c&&d>l-e.helperProportions.height/2;case"pointer":return t(n.pageY,c,i.proportions().height)&&t(n.pageX,h,i.proportions().width);case"touch":return(a>=c&&d>=a||l>=c&&d>=l||c>a&&l>d)&&(o>=h&&u>=o||r>=h&&u>=r||h>o&&r>u);default:return!1}}}();t.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,i){var s,n,o=t.ui.ddmanager.droppables[e.options.scope]||[],a=i?i.type:null,r=(e.currentItem||e.element).find(":data(ui-droppable)").addBack();t:for(s=0;o.length>s;s++)if(!(o[s].options.disabled||e&&!o[s].accept.call(o[s].element[0],e.currentItem||e.element))){for(n=0;r.length>n;n++)if(r[n]===o[s].element[0]){o[s].proportions().height=0;continue t}o[s].visible="none"!==o[s].element.css("display"),o[s].visible&&("mousedown"===a&&o[s]._activate.call(o[s],i),o[s].offset=o[s].element.offset(),o[s].proportions({width:o[s].element[0].offsetWidth,height:o[s].element[0].offsetHeight}))}},drop:function(e,i){var s=!1;return t.each((t.ui.ddmanager.droppables[e.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&n(e,this,this.options.tolerance,i)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(e,i){e.element.parentsUntil("body").on("scroll.droppable",function(){e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)})},drag:function(e,i){e.options.refreshPositions&&t.ui.ddmanager.prepareOffsets(e,i),t.each(t.ui.ddmanager.droppables[e.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,o,a,r=n(e,this,this.options.tolerance,i),l=!r&&this.isover?"isout":r&&!this.isover?"isover":null;l&&(this.options.greedy&&(o=this.options.scope,a=this.element.parents(":data(ui-droppable)").filter(function(){return t(this).droppable("instance").options.scope===o}),a.length&&(s=t(a[0]).droppable("instance"),s.greedyChild="isover"===l)),s&&"isover"===l&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[l]=!0,this["isout"===l?"isover":"isout"]=!1,this["isover"===l?"_over":"_out"].call(this,i),s&&"isout"===l&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(e,i){e.element.parentsUntil("body").off("scroll.droppable"),e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)}},t.uiBackCompat!==!1&&t.widget("ui.droppable",t.ui.droppable,{options:{hoverClass:!1,activeClass:!1},_addActiveClass:function(){this._super(),this.options.activeClass&&this.element.addClass(this.options.activeClass)},_removeActiveClass:function(){this._super(),this.options.activeClass&&this.element.removeClass(this.options.activeClass)},_addHoverClass:function(){this._super(),this.options.hoverClass&&this.element.addClass(this.options.hoverClass)},_removeHoverClass:function(){this._super(),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass)}}),t.ui.droppable,t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,l=this._change[o];return this._updatePrevProperties(),l?(i=l.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,l,h=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,l=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,h.animate||this.element.css(t.extend(a,{top:l,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!h.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,l=this.originalPosition.top+this.originalSize.height,h=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&h&&(t.left=r-e.minWidth),s&&h&&(t.left=r-e.maxWidth),a&&c&&(t.top=l-e.minHeight),n&&c&&(t.top=l-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,l={width:i.size.width-r,height:i.size.height-a},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(l,c&&h?{top:c,left:h}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,l=t(this).resizable("instance"),h=l.options,c=l.element,u=h.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(l.containerElement=t(d),/document/.test(u)||u===document?(l.containerOffset={left:0,top:0},l.containerPosition={left:0,top:0},l.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=l._num(e.css("padding"+s))}),l.containerOffset=e.offset(),l.containerPosition=e.position(),l.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=l.containerOffset,n=l.containerSize.height,o=l.containerSize.width,a=l._hasScroll(d,"left")?d.scrollWidth:o,r=l._hasScroll(d)?d.scrollHeight:n,l.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,l=a.containerOffset,h=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=l),h.left<(a._helper?l.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-l.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?l.left:0),h.top<(a._helper?l.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-l.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?l.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-l.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-l.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),l=a.outerWidth()-e.sizeDiff.width,h=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:l,height:h}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:l,height:h})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,l="number"==typeof s.grid?[s.grid,s.grid]:s.grid,h=l[0]||1,c=l[1]||1,u=Math.round((n.width-o.width)/h)*h,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,g=s.maxWidth&&p>s.maxWidth,m=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=l,_&&(p+=h),v&&(f+=c),g&&(p-=h),m&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-h)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-h>0?(i.size.width=p,i.position.left=a.left-u):(p=h-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable,t.widget("ui.selectable",t.ui.mouse,{version:"1.12.1",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var e=this;this._addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){e.elementPos=t(e.element[0]).offset(),e.selectees=t(e.options.filter,e.element[0]),e._addClass(e.selectees,"ui-selectee"),e.selectees.each(function(){var i=t(this),s=i.offset(),n={left:s.left-e.elementPos.left,top:s.top-e.elementPos.top};t.data(this,"selectable-item",{element:this,$element:i,left:n.left,top:n.top,right:n.left+i.outerWidth(),bottom:n.top+i.outerHeight(),startselected:!1,selected:i.hasClass("ui-selected"),selecting:i.hasClass("ui-selecting"),unselecting:i.hasClass("ui-unselecting")})})},this.refresh(),this._mouseInit(),this.helper=t("
"),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(e){var i=this,s=this.options;this.opos=[e.pageX,e.pageY],this.elementPos=t(this.element[0]).offset(),this.options.disabled||(this.selectees=t(s.filter,this.element[0]),this._trigger("start",e),t(s.appendTo).append(this.helper),this.helper.css({left:e.pageX,top:e.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=t.data(this,"selectable-item");s.startselected=!0,e.metaKey||e.ctrlKey||(i._removeClass(s.$element,"ui-selected"),s.selected=!1,i._addClass(s.$element,"ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",e,{unselecting:s.element}))}),t(e.target).parents().addBack().each(function(){var s,n=t.data(this,"selectable-item");return n?(s=!e.metaKey&&!e.ctrlKey||!n.$element.hasClass("ui-selected"),i._removeClass(n.$element,s?"ui-unselecting":"ui-selected")._addClass(n.$element,s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",e,{selecting:n.element}):i._trigger("unselecting",e,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(e){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,o=this.opos[0],a=this.opos[1],r=e.pageX,l=e.pageY;return o>r&&(i=r,r=o,o=i),a>l&&(i=l,l=a,a=i),this.helper.css({left:o,top:a,width:r-o,height:l-a}),this.selectees.each(function(){var i=t.data(this,"selectable-item"),h=!1,c={};i&&i.element!==s.element[0]&&(c.left=i.left+s.elementPos.left,c.right=i.right+s.elementPos.left,c.top=i.top+s.elementPos.top,c.bottom=i.bottom+s.elementPos.top,"touch"===n.tolerance?h=!(c.left>r||o>c.right||c.top>l||a>c.bottom):"fit"===n.tolerance&&(h=c.left>o&&r>c.right&&c.top>a&&l>c.bottom),h?(i.selected&&(s._removeClass(i.$element,"ui-selected"),i.selected=!1),i.unselecting&&(s._removeClass(i.$element,"ui-unselecting"),i.unselecting=!1),i.selecting||(s._addClass(i.$element,"ui-selecting"),i.selecting=!0,s._trigger("selecting",e,{selecting:i.element}))):(i.selecting&&((e.metaKey||e.ctrlKey)&&i.startselected?(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,s._addClass(i.$element,"ui-selected"),i.selected=!0):(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,i.startselected&&(s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",e,{unselecting:i.element}))),i.selected&&(e.metaKey||e.ctrlKey||i.startselected||(s._removeClass(i.$element,"ui-selected"),i.selected=!1,s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",e,{unselecting:i.element})))))}),!1}},_mouseStop:function(e){var i=this;return this.dragged=!1,t(".ui-unselecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",e,{unselected:s.element})}),t(".ui-selecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-selecting")._addClass(s.$element,"ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",e,{selected:s.element})}),this._trigger("stop",e),this.helper.remove(),!1}}),t.widget("ui.sortable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return t>=e&&e+i>t},_isFloating:function(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))},_create:function(){this.containerCache={},this._addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(t,e){this._super(t,e),"handle"===t&&this._setHandleClassName()},_setHandleClassName:function(){var e=this;this._removeClass(this.element.find(".ui-sortable-handle"),"ui-sortable-handle"),t.each(this.items,function(){e._addClass(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item,"ui-sortable-handle")})},_destroy:function(){this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(e,i){var s=null,n=!1,o=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,o.widgetName+"-item")===o?(s=t(this),!1):void 0}),t.data(e.target,o.widgetName+"-item")===o&&(s=t(e.target)),s?!this.options.handle||i||(t(this.options.handle,s).find("*").addBack().each(function(){this===e.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(e,i,s){var n,o,a=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,a.cursorAt&&this._adjustOffsetFromHelper(a.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),a.containment&&this._setContainment(),a.cursor&&"auto"!==a.cursor&&(o=this.document.find("body"),this.storedCursor=o.css("cursor"),o.css("cursor",a.cursor),this.storedStylesheet=t("").appendTo(o)),a.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",a.opacity)),a.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",a.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var i,s,n,o,a=this.options,r=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY=0;i--)if(s=this.items[i],n=s.item[0],o=this._intersectsWithPointer(s),o&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===o?"next":"prev"]()[0]!==n&&!t.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!t.contains(this.element[0],n):!0)){if(this.direction=1===o?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break; +this._rearrange(e,s),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var s=this,n=this.placeholder.offset(),o=this.options.axis,a={};o&&"x"!==o||(a.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),o&&"y"!==o||(a.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(a,parseInt(this.options.revert,10)||500,function(){s._clear(e)})}else this._clear(e,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp(new t.Event("mouseup",{target:null})),"original"===this.options.helper?(this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},t(i).each(function(){var i=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);i&&s.push((e.key||i[1]+"[]")+"="+(e.key&&e.expression?i[1]:i[2]))}),!s.length&&e.key&&s.push(e.key+"="),s.join("&")},toArray:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},i.each(function(){s.push(t(e.item||this).attr(e.attribute||"id")||"")}),s},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,o=t.left,a=o+t.width,r=t.top,l=r+t.height,h=this.offset.click.top,c=this.offset.click.left,u="x"===this.options.axis||s+h>r&&l>s+h,d="y"===this.options.axis||e+c>o&&a>e+c,p=u&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?p:e+this.helperProportions.width/2>o&&a>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&l>n-this.helperProportions.height/2},_intersectsWithPointer:function(t){var e,i,s="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),n="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width),o=s&&n;return o?(e=this._getDragVerticalDirection(),i=this._getDragHorizontalDirection(),this.floating?"right"===i||"down"===e?2:1:e&&("down"===e?2:1)):!1},_intersectsWithSides:function(t){var e=this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&e||"up"===s&&!e)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){function i(){r.push(this)}var s,n,o,a,r=[],l=[],h=this._connectWith();if(h&&e)for(s=h.length-1;s>=0;s--)for(o=t(h[s],this.document[0]),n=o.length-1;n>=0;n--)a=t.data(o[n],this.widgetFullName),a&&a!==this&&!a.options.disabled&&l.push([t.isFunction(a.options.items)?a.options.items.call(a.element):t(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a]);for(l.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=l.length-1;s>=0;s--)l[s][0].each(i);return t(r)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,function(t){for(var i=0;e.length>i;i++)if(e[i]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var i,s,n,o,a,r,l,h,c=this.items,u=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(n=t(d[i],this.document[0]),s=n.length-1;s>=0;s--)o=t.data(n[s],this.widgetFullName),o&&o!==this&&!o.options.disabled&&(u.push([t.isFunction(o.options.items)?o.options.items.call(o.element[0],e,{item:this.currentItem}):t(o.options.items,o.element),o]),this.containers.push(o));for(i=u.length-1;i>=0;i--)for(a=u[i][1],r=u[i][0],s=0,h=r.length;h>s;s++)l=t(r[s]),l.data(this.widgetName+"-item",a),c.push({item:l,instance:a,width:0,height:0,left:0,top:0})},refreshPositions:function(e){this.floating=this.items.length?"x"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,o;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?t(this.options.toleranceElement,s.item):s.item,e||(s.width=n.outerWidth(),s.height=n.outerHeight()),o=n.offset(),s.left=o.left,s.top=o.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)o=this.containers[i].element.offset(),this.containers[i].containerCache.left=o.left,this.containers[i].containerCache.top=o.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(e){e=e||this;var i,s=e.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=e.currentItem[0].nodeName.toLowerCase(),n=t("<"+s+">",e.document[0]);return e._addClass(n,"ui-sortable-placeholder",i||e.currentItem[0].className)._removeClass(n,"ui-sortable-helper"),"tbody"===s?e._createTrPlaceholder(e.currentItem.find("tr").eq(0),t("",e.document[0]).appendTo(n)):"tr"===s?e._createTrPlaceholder(e.currentItem,n):"img"===s&&n.attr("src",e.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(t,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(s.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),s.placeholder.update(e,e.placeholder)},_createTrPlaceholder:function(e,i){var s=this;e.children().each(function(){t(" ",s.document[0]).attr("colspan",t(this).attr("colspan")||1).appendTo(i)})},_contactContainers:function(e){var i,s,n,o,a,r,l,h,c,u,d=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!t.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(d&&t.contains(this.containers[i].element[0],d.element[0]))continue;d=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",e,this._uiHash(this)),this.containers[i].containerCache.over=0);if(d)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,o=null,c=d.floating||this._isFloating(this.currentItem),a=c?"left":"top",r=c?"width":"height",u=c?"pageX":"pageY",s=this.items.length-1;s>=0;s--)t.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(l=this.items[s].item.offset()[a],h=!1,e[u]-l>this.items[s][r]/2&&(h=!0),n>Math.abs(e[u]-l)&&(n=Math.abs(e[u]-l),o=this.items[s],this.direction=h?"up":"down"));if(!o&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash()),this.currentContainer.containerCache.over=1),void 0;o?this._rearrange(e,o,null,!0):this._rearrange(e,null,this.containers[p].element,!0),this._trigger("change",e,this._uiHash()),this.containers[p]._trigger("change",e,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||t("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===n.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===n.containment?this.document.height()||document.body.parentNode.scrollHeight:this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(e=t(n.containment)[0],i=t(n.containment).offset(),s="hidden"!==t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){i||(i=this.position);var s="absolute"===e?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())*s}},_generatePosition:function(e){var i,s,n=this.options,o=e.pageX,a=e.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,l=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.leftthis.containment[2]&&(o=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(a=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((a-this.originalPageY)/n.grid[1])*n.grid[1],a=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((o-this.originalPageX)/n.grid[0])*n.grid[0],o=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():l?0:r.scrollTop()),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():l?0:r.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){function i(t,e,i){return function(s){i._trigger(t,s,e._uiHash(e))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&n.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||n.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(n.push(function(t){this._trigger("remove",t,this._uiHash())}),n.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)e||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(s=0;n.length>s;s++)n[s].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){t.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}})}); \ No newline at end of file diff --git a/octoprint_bedlevelvisualizer/static/js/knockout-sortable.js b/octoprint_bedlevelvisualizer/static/js/knockout-sortable.js new file mode 100644 index 0000000..79e9cd2 --- /dev/null +++ b/octoprint_bedlevelvisualizer/static/js/knockout-sortable.js @@ -0,0 +1,486 @@ +;(function(factory) { + if (typeof define === "function" && define.amd) { + // AMD anonymous module + define(["knockout", "jquery", "jquery-ui/ui/widgets/sortable", "jquery-ui/ui/widgets/draggable", "jquery-ui/ui/widgets/droppable"], factory); + } else if (typeof require === "function" && typeof exports === "object" && typeof module === "object") { + // CommonJS module + var ko = require("knockout"), + jQuery = require("jquery"); + require("jquery-ui/ui/widgets/sortable"); + require("jquery-ui/ui/widgets/draggable"); + require("jquery-ui/ui/widgets/droppable"); + factory(ko, jQuery); + } else { + // No module loader (plain + + + + + + \ No newline at end of file diff --git a/setup.py b/setup.py index 1638c37..db84106 100644 --- a/setup.py +++ b/setup.py @@ -14,7 +14,7 @@ plugin_name = "Bed Visualizer" # The plugin's version. Can be overwritten within OctoPrint's internal data via __plugin_version__ in the plugin module -plugin_version = "0.1.11" +plugin_version = "0.1.12" # The plugin's description. Can be overwritten within OctoPrint's internal data via __plugin_description__ in the plugin # module diff --git a/virtual_level_report_cartesian_Mesh_Bed_Level_data.gcode b/virtual_level_report_cartesian_Mesh_Bed_Level_data.gcode new file mode 100644 index 0000000..f58765a --- /dev/null +++ b/virtual_level_report_cartesian_Mesh_Bed_Level_data.gcode @@ -0,0 +1,12 @@ +@BEDLEVELVISUALIZER +!!DEBUG:send Mesh Bed Level data: +!!DEBUG:send 6 x 6 mesh. Z offset: 0.00000 +!!DEBUG:send Measured points: +!!DEBUG:send 0 1 2 3 4 5 +!!DEBUG:send 0 +0.200 +0.093 +0.039 -0.005 -0.048 -0.072 +!!DEBUG:send 1 +0.176 +0.063 -0.018 -0.039 -0.048 -0.040 +!!DEBUG:send 2 +0.178 +0.059 -0.024 -0.040 -0.054 -0.047 +!!DEBUG:send 3 +0.206 +0.078 -0.008 -0.036 -0.064 -0.082 +!!DEBUG:send 4 +0.243 +0.098 -0.008 -0.064 -0.127 -0.164 +!!DEBUG:send 5 +0.249 +0.124 +0.001 -0.072 -0.159 -0.247 +!!DEBUG:send ok \ No newline at end of file diff --git a/virtual_level_report_cartesian_Mesh_Bed_Level_scad.gcode b/virtual_level_report_cartesian_Mesh_Bed_Level_scad.gcode new file mode 100644 index 0000000..ec9571d --- /dev/null +++ b/virtual_level_report_cartesian_Mesh_Bed_Level_scad.gcode @@ -0,0 +1,13 @@ +@BEDLEVELVISUALIZER +!!DEBUG:send Mesh Bed Level data: +!!DEBUG:send 6 x 6 mesh. Z offset: 0.00000 +!!DEBUG:send Measured points: +!!DEBUG:send measured_z = [ +!!DEBUG:send [ +0.200, +0.093, +0.039, -0.005, -0.048, -0.072 ], +!!DEBUG:send [ +0.176, +0.063, -0.018, -0.039, -0.048, -0.040 ], +!!DEBUG:send [ +0.178, +0.059, -0.024, -0.040, -0.054, -0.047 ], +!!DEBUG:send [ +0.206, +0.078, -0.008, -0.036, -0.064, -0.082 ], +!!DEBUG:send [ +0.243, +0.098, -0.008, -0.064, -0.127, -0.164 ], +!!DEBUG:send [ +0.249, +0.124, +0.001, -0.072, -0.159, -0.247 ] +!!DEBUG:send ]; +!!DEBUG:send ok \ No newline at end of file diff --git a/virtual_level_report_klipper.gcode b/virtual_level_report_klipper.gcode new file mode 100644 index 0000000..7b88792 --- /dev/null +++ b/virtual_level_report_klipper.gcode @@ -0,0 +1,20 @@ +@BEDLEVELVISUALIZER +!!DEBUG:send // Mesh Leveling Probed Z positions: +!!DEBUG:send // -0.187500 -0.115000 -0.052500 +!!DEBUG:send // -0.022500 0.012500 0.015000 +!!DEBUG:send // 0.067500 0.125000 0.147500 +!!DEBUG:send Mesh X,Y: 7,7 +!!DEBUG:send Search Height: 5 +!!DEBUG:send Mesh Average: 0.00 +!!DEBUG:send Mesh Range: min=-0.1875 max=0.1475 +!!DEBUG:send Interpolation Algorithm: lagrange +!!DEBUG:send Measured points: +!!DEBUG:send 0.067500 0.090556 0.109722 0.125000 0.136389 0.143889 0.147500 +!!DEBUG:send 0.045833 0.064321 0.078765 0.089167 0.095525 0.097840 0.096111 +!!DEBUG:send 0.015833 0.031728 0.043673 0.051667 0.055710 0.055802 0.051944 +!!DEBUG:send -0.022500 -0.007222 0.004444 0.012500 0.016944 0.017778 0.015000 +!!DEBUG:send -0.069167 -0.052531 -0.038920 -0.028333 -0.020772 -0.016235 -0.014722 +!!DEBUG:send -0.124167 -0.104198 -0.086420 -0.070833 -0.057438 -0.046235 -0.037222 +!!DEBUG:send -0.187500 -0.162222 -0.138056 -0.115000 -0.093056 -0.072222 -0.052500 +!!DEBUG:send +!!DEBUG:send ok \ No newline at end of file diff --git a/virtual_level_report_repetier.gcode b/virtual_level_report_repetier.gcode new file mode 100644 index 0000000..f177605 --- /dev/null +++ b/virtual_level_report_repetier.gcode @@ -0,0 +1,730 @@ +@BEDLEVELVISUALIZER +!!DEBUG:send ok 57 +!!DEBUG:send ok 58 +!!DEBUG:send T:32.31 /0 B:79.96 /80 B@:255 @:0 T0:32.31 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.22 /0 B:79.92 /80 B@:255 @:0 T0:32.22 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send Z correction disabled +!!DEBUG:send T:32.22 /0 B:80.07 /80 B@:0 @:0 T0:32.22 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Reference Z for measurement:11.000 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.31 /0 B:80.03 /80 B@:0 @:0 T0:32.31 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.22 /0 B:80.00 /80 B@:0 @:0 T0:32.22 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.22 /0 B:80.03 /80 B@:0 @:0 T0:32.22 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.31 /0 B:79.92 /80 B@:255 @:0 T0:32.31 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.956 X:-12.00 Y:5.00 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.22 /0 B:79.96 /80 B@:255 @:0 T0:32.22 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.22 /0 B:80.07 /80 B@:0 @:0 T0:32.22 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.05 /0 B:80.07 /80 B@:0 @:0 T0:32.05 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.31 /0 B:79.96 /80 B@:255 @:0 T0:32.31 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send Z-probe:10.921 X:-12.00 Y:28.12 +!!DEBUG:send T:32.14 /0 B:79.92 /80 B@:255 @:0 T0:32.14 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.14 /0 B:80.00 /80 B@:0 @:0 T0:32.14 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.14 /0 B:79.96 /80 B@:255 @:0 T0:32.14 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.39 /0 B:80.07 /80 B@:0 @:0 T0:32.39 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.14 /0 B:79.96 /80 B@:255 @:0 T0:32.14 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.924 X:-12.00 Y:51.25 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.05 /0 B:80.00 /80 B@:0 @:0 T0:32.05 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.39 /0 B:79.96 /80 B@:255 @:0 T0:32.39 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.05 /0 B:79.96 /80 B@:255 @:0 T0:32.05 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.31 /0 B:79.96 /80 B@:255 @:0 T0:32.31 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send Z-probe:10.961 X:-12.00 Y:74.37 +!!DEBUG:send T:32.22 /0 B:79.96 /80 B@:255 @:0 T0:32.22 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.14 /0 B:80.03 /80 B@:0 @:0 T0:32.14 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.31 /0 B:80.03 /80 B@:0 @:0 T0:32.31 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.22 /0 B:79.96 /80 B@:255 @:0 T0:32.22 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send Z-probe:10.968 X:-12.00 Y:97.50 +!!DEBUG:send T:32.14 /0 B:79.92 /80 B@:255 @:0 T0:32.14 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.31 /0 B:80.00 /80 B@:0 @:0 T0:32.31 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.31 /0 B:80.00 /80 B@:0 @:0 T0:32.31 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.22 /0 B:80.03 /80 B@:0 @:0 T0:32.22 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.22 /0 B:80.07 /80 B@:0 @:0 T0:32.22 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.003 X:-12.00 Y:120.63 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.05 /0 B:80.00 /80 B@:0 @:0 T0:32.05 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.48 /0 B:79.96 /80 B@:255 @:0 T0:32.48 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.22 /0 B:80.03 /80 B@:0 @:0 T0:32.22 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.48 /0 B:80.14 /80 B@:0 @:0 T0:32.48 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send Z-probe:11.049 X:-12.00 Y:143.75 +!!DEBUG:send T:32.48 /0 B:80.07 /80 B@:0 @:0 T0:32.48 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.31 /0 B:79.96 /80 B@:255 @:0 T0:32.31 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.39 /0 B:80.00 /80 B@:0 @:0 T0:32.39 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.31 /0 B:80.00 /80 B@:0 @:0 T0:32.31 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.050 X:-12.00 Y:166.88 +!!DEBUG:send T:32.39 /0 B:80.10 /80 B@:0 @:0 T0:32.39 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.56 /0 B:80.03 /80 B@:0 @:0 T0:32.56 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.39 /0 B:79.96 /80 B@:255 @:0 T0:32.39 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.39 /0 B:79.96 /80 B@:255 @:0 T0:32.39 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.48 /0 B:80.00 /80 B@:0 @:0 T0:32.48 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.012 X:-12.00 Y:190.00 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.31 /0 B:80.00 /80 B@:0 @:0 T0:32.31 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.48 /0 B:79.96 /80 B@:255 @:0 T0:32.48 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.31 /0 B:80.00 /80 B@:0 @:0 T0:32.31 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.56 /0 B:79.92 /80 B@:255 @:0 T0:32.56 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.969 X:10.63 Y:190.00 +!!DEBUG:send T:32.48 /0 B:80.07 /80 B@:0 @:0 T0:32.48 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.22 /0 B:80.00 /80 B@:0 @:0 T0:32.22 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.56 /0 B:80.00 /80 B@:0 @:0 T0:32.56 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.39 /0 B:80.07 /80 B@:0 @:0 T0:32.39 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.48 /0 B:80.07 /80 B@:0 @:0 T0:32.48 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.060 X:10.62 Y:166.88 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.56 /0 B:79.96 /80 B@:255 @:0 T0:32.56 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.31 /0 B:79.92 /80 B@:255 @:0 T0:32.31 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.22 /0 B:80.00 /80 B@:0 @:0 T0:32.22 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.31 /0 B:80.03 /80 B@:0 @:0 T0:32.31 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send Z-probe:11.016 X:10.62 Y:143.75 +!!DEBUG:send T:32.48 /0 B:80.10 /80 B@:0 @:0 T0:32.48 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.39 /0 B:80.03 /80 B@:0 @:0 T0:32.39 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.39 /0 B:80.00 /80 B@:0 @:0 T0:32.39 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.56 /0 B:79.92 /80 B@:255 @:0 T0:32.56 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.982 X:10.62 Y:120.63 +!!DEBUG:send T:32.48 /0 B:80.00 /80 B@:0 @:0 T0:32.48 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.56 /0 B:79.88 /80 B@:255 @:0 T0:32.56 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.48 /0 B:80.07 /80 B@:0 @:0 T0:32.48 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.48 /0 B:80.07 /80 B@:0 @:0 T0:32.48 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.56 /0 B:80.10 /80 B@:0 @:0 T0:32.56 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.980 X:10.62 Y:97.50 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.48 /0 B:80.00 /80 B@:0 @:0 T0:32.48 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.48 /0 B:79.92 /80 B@:255 @:0 T0:32.48 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.65 /0 B:79.96 /80 B@:255 @:0 T0:32.65 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.74 /0 B:80.07 /80 B@:0 @:0 T0:32.74 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.970 X:10.63 Y:74.37 +!!DEBUG:send T:32.74 /0 B:79.96 /80 B@:255 @:0 T0:32.74 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.65 /0 B:79.96 /80 B@:255 @:0 T0:32.65 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.56 /0 B:79.96 /80 B@:255 @:0 T0:32.56 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.74 /0 B:80.03 /80 B@:0 @:0 T0:32.74 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.962 X:10.63 Y:51.25 +!!DEBUG:send T:32.74 /0 B:80.00 /80 B@:0 @:0 T0:32.74 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.74 /0 B:80.03 /80 B@:0 @:0 T0:32.74 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.82 /0 B:80.00 /80 B@:0 @:0 T0:32.82 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.65 /0 B:79.96 /80 B@:255 @:0 T0:32.65 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.65 /0 B:80.10 /80 B@:0 @:0 T0:32.65 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.963 X:10.63 Y:28.12 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.74 /0 B:80.00 /80 B@:0 @:0 T0:32.74 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.65 /0 B:79.92 /80 B@:255 @:0 T0:32.65 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.56 /0 B:79.92 /80 B@:255 @:0 T0:32.56 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.48 /0 B:80.03 /80 B@:0 @:0 T0:32.48 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.016 X:10.62 Y:5.00 +!!DEBUG:send T:32.65 /0 B:80.03 /80 B@:0 @:0 T0:32.65 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.74 /0 B:80.07 /80 B@:0 @:0 T0:32.74 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.39 /0 B:79.96 /80 B@:255 @:0 T0:32.39 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.39 /0 B:80.00 /80 B@:0 @:0 T0:32.39 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.032 X:33.25 Y:5.00 +!!DEBUG:send T:32.74 /0 B:80.03 /80 B@:0 @:0 T0:32.74 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.65 /0 B:79.96 /80 B@:255 @:0 T0:32.65 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.65 /0 B:80.00 /80 B@:0 @:0 T0:32.65 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.74 /0 B:80.03 /80 B@:0 @:0 T0:32.74 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.56 /0 B:80.00 /80 B@:0 @:0 T0:32.56 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send Z-probe:11.015 X:33.25 Y:28.12 +!!DEBUG:send T:32.56 /0 B:79.88 /80 B@:255 @:0 T0:32.56 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.48 /0 B:79.96 /80 B@:255 @:0 T0:32.48 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.56 /0 B:80.00 /80 B@:0 @:0 T0:32.56 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.48 /0 B:80.03 /80 B@:0 @:0 T0:32.48 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.988 X:33.25 Y:51.25 +!!DEBUG:send T:32.65 /0 B:80.07 /80 B@:0 @:0 T0:32.65 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.74 /0 B:79.92 /80 B@:255 @:0 T0:32.74 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.74 /0 B:79.96 /80 B@:255 @:0 T0:32.74 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.82 /0 B:79.96 /80 B@:255 @:0 T0:32.82 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.022 X:33.25 Y:74.37 +!!DEBUG:send T:32.74 /0 B:79.84 /80 B@:255 @:0 T0:32.74 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.48 /0 B:80.00 /80 B@:0 @:0 T0:32.48 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.48 /0 B:79.88 /80 B@:255 @:0 T0:32.48 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.65 /0 B:79.92 /80 B@:255 @:0 T0:32.65 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.82 /0 B:80.03 /80 B@:0 @:0 T0:32.82 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.988 X:33.25 Y:97.50 +!!DEBUG:send T:32.65 /0 B:80.03 /80 B@:0 @:0 T0:32.65 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.65 /0 B:80.00 /80 B@:0 @:0 T0:32.65 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.82 /0 B:79.96 /80 B@:255 @:0 T0:32.82 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.91 /0 B:80.00 /80 B@:0 @:0 T0:32.91 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.002 X:33.25 Y:120.63 +!!DEBUG:send T:32.74 /0 B:80.03 /80 B@:0 @:0 T0:32.74 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.74 /0 B:80.10 /80 B@:0 @:0 T0:32.74 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.74 /0 B:80.00 /80 B@:0 @:0 T0:32.74 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.82 /0 B:80.00 /80 B@:0 @:0 T0:32.82 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.99 /0 B:80.07 /80 B@:0 @:0 T0:32.99 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send Z-probe:11.047 X:33.25 Y:143.75 +!!DEBUG:send T:32.74 /0 B:80.07 /80 B@:0 @:0 T0:32.74 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.74 /0 B:79.96 /80 B@:255 @:0 T0:32.74 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.74 /0 B:80.07 /80 B@:0 @:0 T0:32.74 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.99 /0 B:80.03 /80 B@:0 @:0 T0:32.99 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.069 X:33.25 Y:166.88 +!!DEBUG:send T:32.74 /0 B:79.92 /80 B@:255 @:0 T0:32.74 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.82 /0 B:79.96 /80 B@:255 @:0 T0:32.82 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.82 /0 B:79.84 /80 B@:255 @:0 T0:32.82 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.91 /0 B:80.00 /80 B@:0 @:0 T0:32.91 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.108 X:33.25 Y:190.00 +!!DEBUG:send T:32.99 /0 B:80.10 /80 B@:0 @:0 T0:32.99 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.82 /0 B:80.03 /80 B@:0 @:0 T0:32.82 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.91 /0 B:79.96 /80 B@:255 @:0 T0:32.91 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.08 /0 B:80.00 /80 B@:0 @:0 T0:33.08 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.82 /0 B:79.96 /80 B@:255 @:0 T0:32.82 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.094 X:55.88 Y:190.00 +!!DEBUG:send T:32.74 /0 B:79.96 /80 B@:255 @:0 T0:32.74 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.99 /0 B:80.07 /80 B@:0 @:0 T0:32.99 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.99 /0 B:80.14 /80 B@:0 @:0 T0:32.99 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.91 /0 B:80.03 /80 B@:0 @:0 T0:32.91 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.071 X:55.88 Y:166.88 +!!DEBUG:send T:33.16 /0 B:80.07 /80 B@:0 @:0 T0:33.16 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.82 /0 B:80.03 /80 B@:0 @:0 T0:32.82 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.99 /0 B:80.00 /80 B@:0 @:0 T0:32.99 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.99 /0 B:80.10 /80 B@:0 @:0 T0:32.99 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.99 /0 B:80.07 /80 B@:0 @:0 T0:32.99 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.024 X:55.87 Y:143.75 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.99 /0 B:79.96 /80 B@:255 @:0 T0:32.99 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.99 /0 B:80.00 /80 B@:0 @:0 T0:32.99 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.91 /0 B:79.96 /80 B@:255 @:0 T0:32.91 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.16 /0 B:80.03 /80 B@:0 @:0 T0:33.16 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.036 X:55.87 Y:120.63 +!!DEBUG:send T:33.08 /0 B:80.00 /80 B@:0 @:0 T0:33.08 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.91 /0 B:79.96 /80 B@:255 @:0 T0:32.91 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.91 /0 B:80.00 /80 B@:0 @:0 T0:32.91 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.16 /0 B:80.03 /80 B@:0 @:0 T0:33.16 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.004 X:55.87 Y:97.50 +!!DEBUG:send T:33.08 /0 B:79.96 /80 B@:255 @:0 T0:33.08 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.16 /0 B:79.96 /80 B@:255 @:0 T0:33.16 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.99 /0 B:80.00 /80 B@:0 @:0 T0:32.99 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.99 /0 B:80.03 /80 B@:0 @:0 T0:32.99 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.25 /0 B:80.10 /80 B@:0 @:0 T0:33.25 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.038 X:55.88 Y:74.37 +!!DEBUG:send T:33.25 /0 B:80.00 /80 B@:0 @:0 T0:33.25 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.25 /0 B:80.03 /80 B@:0 @:0 T0:33.25 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.08 /0 B:79.92 /80 B@:255 @:0 T0:33.08 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.08 /0 B:79.92 /80 B@:255 @:0 T0:33.08 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.024 X:55.88 Y:51.25 +!!DEBUG:send T:32.91 /0 B:79.88 /80 B@:255 @:0 T0:32.91 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.74 /0 B:79.92 /80 B@:255 @:0 T0:32.74 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.99 /0 B:80.00 /80 B@:0 @:0 T0:32.99 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.99 /0 B:80.03 /80 B@:0 @:0 T0:32.99 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.022 X:55.88 Y:28.12 +!!DEBUG:send T:33.08 /0 B:79.92 /80 B@:255 @:0 T0:33.08 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.99 /0 B:80.00 /80 B@:0 @:0 T0:32.99 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.08 /0 B:79.96 /80 B@:255 @:0 T0:33.08 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.08 /0 B:80.03 /80 B@:0 @:0 T0:33.08 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.08 /0 B:80.14 /80 B@:0 @:0 T0:33.08 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.065 X:55.88 Y:5.00 +!!DEBUG:send T:33.25 /0 B:80.00 /80 B@:0 @:0 T0:33.25 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.08 /0 B:80.00 /80 B@:0 @:0 T0:33.08 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.99 /0 B:79.88 /80 B@:255 @:0 T0:32.99 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.91 /0 B:80.03 /80 B@:0 @:0 T0:32.91 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.072 X:78.50 Y:5.00 +!!DEBUG:send T:33.16 /0 B:80.03 /80 B@:0 @:0 T0:33.16 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.99 /0 B:80.03 /80 B@:0 @:0 T0:32.99 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.99 /0 B:80.00 /80 B@:0 @:0 T0:32.99 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.82 /0 B:79.92 /80 B@:255 @:0 T0:32.82 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.25 /0 B:79.96 /80 B@:255 @:0 T0:33.25 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send Z-probe:11.065 X:78.50 Y:28.12 +!!DEBUG:send T:32.91 /0 B:80.00 /80 B@:0 @:0 T0:32.91 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.99 /0 B:80.07 /80 B@:0 @:0 T0:32.99 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.16 /0 B:80.07 /80 B@:0 @:0 T0:33.16 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.91 /0 B:80.03 /80 B@:0 @:0 T0:32.91 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.018 X:78.50 Y:51.25 +!!DEBUG:send T:33.16 /0 B:79.88 /80 B@:255 @:0 T0:33.16 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.08 /0 B:80.00 /80 B@:0 @:0 T0:33.08 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:32.99 /0 B:80.14 /80 B@:0 @:0 T0:32.99 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.25 /0 B:80.14 /80 B@:0 @:0 T0:33.25 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.017 X:78.50 Y:74.37 +!!DEBUG:send T:33.25 /0 B:80.07 /80 B@:0 @:0 T0:33.25 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.33 /0 B:79.96 /80 B@:255 @:0 T0:33.33 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.16 /0 B:79.92 /80 B@:255 @:0 T0:33.16 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.25 /0 B:80.00 /80 B@:0 @:0 T0:33.25 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.33 /0 B:80.07 /80 B@:0 @:0 T0:33.33 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.007 X:78.50 Y:97.50 +!!DEBUG:send T:33.25 /0 B:80.03 /80 B@:0 @:0 T0:33.25 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:32.91 /0 B:80.14 /80 B@:0 @:0 T0:32.91 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.25 /0 B:79.92 /80 B@:255 @:0 T0:33.25 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.42 /0 B:80.07 /80 B@:0 @:0 T0:33.42 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.017 X:78.50 Y:120.63 +!!DEBUG:send T:33.16 /0 B:80.00 /80 B@:0 @:0 T0:33.16 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.25 /0 B:80.03 /80 B@:0 @:0 T0:33.25 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.33 /0 B:79.96 /80 B@:255 @:0 T0:33.33 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.42 /0 B:80.03 /80 B@:0 @:0 T0:33.42 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.045 X:78.50 Y:143.75 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.42 /0 B:79.96 /80 B@:255 @:0 T0:33.42 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.33 /0 B:79.92 /80 B@:255 @:0 T0:33.33 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.25 /0 B:80.00 /80 B@:0 @:0 T0:33.25 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.33 /0 B:80.03 /80 B@:0 @:0 T0:33.33 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.33 /0 B:79.96 /80 B@:255 @:0 T0:33.33 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.049 X:78.50 Y:166.88 +!!DEBUG:send T:33.42 /0 B:79.92 /80 B@:255 @:0 T0:33.42 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.25 /0 B:79.92 /80 B@:255 @:0 T0:33.25 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.25 /0 B:80.07 /80 B@:0 @:0 T0:33.25 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.59 /0 B:80.10 /80 B@:0 @:0 T0:33.59 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.077 X:78.50 Y:190.00 +!!DEBUG:send T:33.42 /0 B:80.14 /80 B@:0 @:0 T0:33.42 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.50 /0 B:80.00 /80 B@:0 @:0 T0:33.50 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.33 /0 B:79.96 /80 B@:255 @:0 T0:33.33 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.25 /0 B:79.88 /80 B@:255 @:0 T0:33.25 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.33 /0 B:80.07 /80 B@:0 @:0 T0:33.33 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.024 X:101.13 Y:190.00 +!!DEBUG:send T:33.33 /0 B:80.03 /80 B@:0 @:0 T0:33.33 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.33 /0 B:80.03 /80 B@:0 @:0 T0:33.33 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.42 /0 B:79.92 /80 B@:255 @:0 T0:33.42 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.50 /0 B:79.92 /80 B@:255 @:0 T0:33.50 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.995 X:101.13 Y:166.88 +!!DEBUG:send T:33.33 /0 B:79.96 /80 B@:255 @:0 T0:33.33 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.42 /0 B:80.03 /80 B@:0 @:0 T0:33.42 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.25 /0 B:80.03 /80 B@:0 @:0 T0:33.25 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.42 /0 B:80.10 /80 B@:0 @:0 T0:33.42 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.969 X:101.12 Y:143.75 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.42 /0 B:80.00 /80 B@:0 @:0 T0:33.42 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.50 /0 B:79.96 /80 B@:255 @:0 T0:33.50 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.42 /0 B:80.00 /80 B@:0 @:0 T0:33.42 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.33 /0 B:80.00 /80 B@:0 @:0 T0:33.33 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.42 /0 B:80.07 /80 B@:0 @:0 T0:33.42 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.999 X:101.12 Y:120.63 +!!DEBUG:send T:33.25 /0 B:80.00 /80 B@:0 @:0 T0:33.25 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.50 /0 B:79.92 /80 B@:255 @:0 T0:33.50 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.33 /0 B:79.96 /80 B@:255 @:0 T0:33.33 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.33 /0 B:80.00 /80 B@:0 @:0 T0:33.33 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.976 X:101.12 Y:97.50 +!!DEBUG:send T:33.50 /0 B:80.03 /80 B@:0 @:0 T0:33.50 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.42 /0 B:80.00 /80 B@:0 @:0 T0:33.42 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.50 /0 B:80.00 /80 B@:0 @:0 T0:33.50 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.33 /0 B:79.88 /80 B@:255 @:0 T0:33.33 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.992 X:101.13 Y:74.37 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.42 /0 B:79.92 /80 B@:255 @:0 T0:33.42 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.42 /0 B:80.10 /80 B@:0 @:0 T0:33.42 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.42 /0 B:80.10 /80 B@:0 @:0 T0:33.42 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.42 /0 B:80.00 /80 B@:0 @:0 T0:33.42 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.68 /0 B:80.03 /80 B@:0 @:0 T0:33.68 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.960 X:101.13 Y:51.25 +!!DEBUG:send T:33.59 /0 B:79.96 /80 B@:255 @:0 T0:33.59 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.59 /0 B:80.00 /80 B@:0 @:0 T0:33.59 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.50 /0 B:80.10 /80 B@:0 @:0 T0:33.50 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.59 /0 B:80.00 /80 B@:0 @:0 T0:33.59 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.020 X:101.13 Y:28.12 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.59 /0 B:79.96 /80 B@:255 @:0 T0:33.59 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.68 /0 B:80.00 /80 B@:0 @:0 T0:33.68 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.59 /0 B:80.00 /80 B@:0 @:0 T0:33.59 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.76 /0 B:79.96 /80 B@:255 @:0 T0:33.76 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send Z-probe:11.078 X:101.13 Y:5.00 +!!DEBUG:send T:33.59 /0 B:80.03 /80 B@:0 @:0 T0:33.59 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.85 /0 B:79.96 /80 B@:255 @:0 T0:33.85 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.59 /0 B:80.03 /80 B@:0 @:0 T0:33.59 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.68 /0 B:80.00 /80 B@:0 @:0 T0:33.68 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.76 /0 B:80.07 /80 B@:0 @:0 T0:33.76 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.041 X:123.75 Y:5.00 +!!DEBUG:send T:33.76 /0 B:80.00 /80 B@:0 @:0 T0:33.76 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.68 /0 B:79.96 /80 B@:255 @:0 T0:33.68 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.59 /0 B:80.00 /80 B@:0 @:0 T0:33.59 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.68 /0 B:80.07 /80 B@:0 @:0 T0:33.68 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.017 X:123.75 Y:28.12 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.68 /0 B:79.96 /80 B@:255 @:0 T0:33.68 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.68 /0 B:79.96 /80 B@:255 @:0 T0:33.68 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.76 /0 B:79.88 /80 B@:255 @:0 T0:33.76 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.76 /0 B:80.00 /80 B@:0 @:0 T0:33.76 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send Z-probe:10.984 X:123.75 Y:51.25 +!!DEBUG:send T:33.42 /0 B:80.00 /80 B@:0 @:0 T0:33.42 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.76 /0 B:79.92 /80 B@:255 @:0 T0:33.76 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.76 /0 B:79.96 /80 B@:255 @:0 T0:33.76 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.76 /0 B:80.03 /80 B@:0 @:0 T0:33.76 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.76 /0 B:79.92 /80 B@:255 @:0 T0:33.76 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.979 X:123.75 Y:74.37 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.76 /0 B:79.92 /80 B@:255 @:0 T0:33.76 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.68 /0 B:80.00 /80 B@:0 @:0 T0:33.68 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.76 /0 B:80.07 /80 B@:0 @:0 T0:33.76 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.85 /0 B:80.00 /80 B@:0 @:0 T0:33.85 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send Z-probe:10.986 X:123.75 Y:97.50 +!!DEBUG:send T:34.02 /0 B:79.96 /80 B@:255 @:0 T0:34.02 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.85 /0 B:79.92 /80 B@:255 @:0 T0:33.85 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.02 /0 B:80.03 /80 B@:0 @:0 T0:34.02 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.76 /0 B:80.10 /80 B@:0 @:0 T0:33.76 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send Z-probe:10.974 X:123.75 Y:120.63 +!!DEBUG:send T:33.59 /0 B:80.00 /80 B@:0 @:0 T0:33.59 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.85 /0 B:79.96 /80 B@:255 @:0 T0:33.85 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.85 /0 B:79.92 /80 B@:255 @:0 T0:33.85 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.68 /0 B:80.07 /80 B@:0 @:0 T0:33.68 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.76 /0 B:80.07 /80 B@:0 @:0 T0:33.76 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.984 X:123.75 Y:143.75 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.93 /0 B:80.00 /80 B@:0 @:0 T0:33.93 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:34.02 /0 B:79.96 /80 B@:255 @:0 T0:34.02 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.85 /0 B:79.96 /80 B@:255 @:0 T0:33.85 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.93 /0 B:79.96 /80 B@:255 @:0 T0:33.93 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send Z-probe:10.981 X:123.75 Y:166.88 +!!DEBUG:send T:33.93 /0 B:80.00 /80 B@:0 @:0 T0:33.93 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.85 /0 B:80.10 /80 B@:0 @:0 T0:33.85 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.93 /0 B:80.07 /80 B@:0 @:0 T0:33.93 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.02 /0 B:79.92 /80 B@:255 @:0 T0:34.02 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.982 X:123.75 Y:190.00 +!!DEBUG:send T:33.68 /0 B:80.00 /80 B@:0 @:0 T0:33.68 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.85 /0 B:79.96 /80 B@:255 @:0 T0:33.85 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.85 /0 B:80.00 /80 B@:0 @:0 T0:33.85 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.85 /0 B:80.03 /80 B@:0 @:0 T0:33.85 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:34.02 /0 B:80.03 /80 B@:0 @:0 T0:34.02 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.982 X:146.38 Y:190.00 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.02 /0 B:79.92 /80 B@:255 @:0 T0:34.02 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.93 /0 B:79.96 /80 B@:255 @:0 T0:33.93 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.85 /0 B:79.92 /80 B@:255 @:0 T0:33.85 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.85 /0 B:80.00 /80 B@:0 @:0 T0:33.85 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send Z-probe:10.969 X:146.38 Y:166.88 +!!DEBUG:send T:33.76 /0 B:79.96 /80 B@:255 @:0 T0:33.76 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.76 /0 B:79.96 /80 B@:255 @:0 T0:33.76 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.76 /0 B:79.92 /80 B@:255 @:0 T0:33.76 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.93 /0 B:80.07 /80 B@:0 @:0 T0:33.93 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.950 X:146.37 Y:143.75 +!!DEBUG:send T:33.93 /0 B:79.96 /80 B@:255 @:0 T0:33.93 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.85 /0 B:79.79 /80 B@:255 @:0 T0:33.85 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.68 /0 B:79.88 /80 B@:255 @:0 T0:33.68 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.02 /0 B:80.10 /80 B@:0 @:0 T0:34.02 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.76 /0 B:80.07 /80 B@:0 @:0 T0:33.76 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.979 X:146.37 Y:120.63 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.76 /0 B:80.07 /80 B@:0 @:0 T0:33.76 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.76 /0 B:79.84 /80 B@:255 @:0 T0:33.76 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.76 /0 B:80.07 /80 B@:0 @:0 T0:33.76 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.76 /0 B:80.10 /80 B@:0 @:0 T0:33.76 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.963 X:146.37 Y:97.50 +!!DEBUG:send T:33.85 /0 B:80.03 /80 B@:0 @:0 T0:33.85 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.93 /0 B:80.00 /80 B@:0 @:0 T0:33.93 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.93 /0 B:80.00 /80 B@:0 @:0 T0:33.93 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.93 /0 B:79.96 /80 B@:255 @:0 T0:33.93 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.979 X:146.38 Y:74.37 +!!DEBUG:send T:34.19 /0 B:80.03 /80 B@:0 @:0 T0:34.19 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.93 /0 B:80.00 /80 B@:0 @:0 T0:33.93 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.93 /0 B:79.96 /80 B@:255 @:0 T0:33.93 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.93 /0 B:79.96 /80 B@:255 @:0 T0:33.93 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.85 /0 B:80.03 /80 B@:0 @:0 T0:33.85 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send Z-probe:10.968 X:146.38 Y:51.25 +!!DEBUG:send T:34.02 /0 B:80.03 /80 B@:0 @:0 T0:34.02 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.10 /0 B:80.00 /80 B@:0 @:0 T0:34.10 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:34.02 /0 B:79.96 /80 B@:255 @:0 T0:34.02 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.02 /0 B:80.03 /80 B@:0 @:0 T0:34.02 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.017 X:146.38 Y:28.12 +!!DEBUG:send T:34.10 /0 B:80.00 /80 B@:0 @:0 T0:34.10 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.10 /0 B:79.88 /80 B@:255 @:0 T0:34.10 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:34.02 /0 B:80.00 /80 B@:0 @:0 T0:34.02 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.02 /0 B:80.03 /80 B@:0 @:0 T0:34.02 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.050 X:146.38 Y:5.00 +!!DEBUG:send T:34.02 /0 B:80.07 /80 B@:0 @:0 T0:34.02 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.19 /0 B:80.07 /80 B@:0 @:0 T0:34.19 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:34.19 /0 B:79.96 /80 B@:255 @:0 T0:34.19 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.10 /0 B:79.96 /80 B@:255 @:0 T0:34.10 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.10 /0 B:80.07 /80 B@:0 @:0 T0:34.10 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.054 X:169.00 Y:5.00 +!!DEBUG:send T:34.02 /0 B:80.07 /80 B@:0 @:0 T0:34.02 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:33.93 /0 B:80.00 /80 B@:0 @:0 T0:33.93 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:34.19 /0 B:79.92 /80 B@:255 @:0 T0:34.19 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.10 /0 B:80.00 /80 B@:0 @:0 T0:34.10 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:11.018 X:169.00 Y:28.12 +!!DEBUG:send T:34.02 /0 B:80.00 /80 B@:0 @:0 T0:34.02 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.19 /0 B:79.92 /80 B@:255 @:0 T0:34.19 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.93 /0 B:80.07 /80 B@:0 @:0 T0:33.93 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.02 /0 B:80.00 /80 B@:0 @:0 T0:34.02 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:34.02 /0 B:79.88 /80 B@:255 @:0 T0:34.02 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.993 X:169.00 Y:51.25 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.02 /0 B:79.92 /80 B@:255 @:0 T0:34.02 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.10 /0 B:79.92 /80 B@:255 @:0 T0:34.10 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:33.93 /0 B:80.10 /80 B@:0 @:0 T0:33.93 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.10 /0 B:80.07 /80 B@:0 @:0 T0:34.10 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.967 X:169.00 Y:74.37 +!!DEBUG:send T:34.10 /0 B:79.96 /80 B@:255 @:0 T0:34.10 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.19 /0 B:80.07 /80 B@:0 @:0 T0:34.19 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:34.19 /0 B:80.00 /80 B@:0 @:0 T0:34.19 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.27 /0 B:79.96 /80 B@:255 @:0 T0:34.27 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.942 X:169.00 Y:97.50 +!!DEBUG:send T:34.27 /0 B:79.96 /80 B@:255 @:0 T0:34.27 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.19 /0 B:79.96 /80 B@:255 @:0 T0:34.19 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:34.19 /0 B:79.96 /80 B@:255 @:0 T0:34.19 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.19 /0 B:80.00 /80 B@:0 @:0 T0:34.19 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.10 /0 B:80.03 /80 B@:0 @:0 T0:34.10 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.928 X:169.00 Y:120.63 +!!DEBUG:send T:34.10 /0 B:80.03 /80 B@:0 @:0 T0:34.10 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.10 /0 B:79.92 /80 B@:255 @:0 T0:34.10 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:34.10 /0 B:79.92 /80 B@:255 @:0 T0:34.10 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.19 /0 B:80.03 /80 B@:0 @:0 T0:34.19 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.939 X:169.00 Y:143.75 +!!DEBUG:send T:34.36 /0 B:79.92 /80 B@:255 @:0 T0:34.36 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.10 /0 B:80.03 /80 B@:0 @:0 T0:34.10 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:34.27 /0 B:80.00 /80 B@:0 @:0 T0:34.27 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.36 /0 B:80.00 /80 B@:0 @:0 T0:34.36 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.956 X:169.00 Y:166.88 +!!DEBUG:send T:34.36 /0 B:80.03 /80 B@:0 @:0 T0:34.36 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.02 /0 B:80.00 /80 B@:0 @:0 T0:34.02 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.10 /0 B:79.84 /80 B@:255 @:0 T0:34.10 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send T:34.53 /0 B:80.03 /80 B@:0 @:0 T0:34.53 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send busy:processing +!!DEBUG:send T:34.19 /0 B:79.96 /80 B@:255 @:0 T0:34.19 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send Z-probe:10.933 X:169.00 Y:190.00 +!!DEBUG:send Info:Distortion correction matrix: +!!DEBUG:send -52, 131, -462, -401, -330, -101, 76, 75, 287 +!!DEBUG:send -212, -257, -295, -305, -210, 22, 79, 133, 188 +!!DEBUG:send -209, -69, -202, -104, -192, 130, 68, 214, 261 +!!DEBUG:send -11, 76, -7, -153, -72, 6, 109, 89, 309 +!!DEBUG:send 137, 86, 51, -16, -30, 102, 59, 157, 248 +!!DEBUG:send 166, 129, -96, -163, -72, 32, 91, 90, 142 +!!DEBUG:send 324, 162, 52, -104, -76, 172, 70, 136, 30 +!!DEBUG:send 335, 156, -65, -96, -278, -86, -72, -73, -78 +!!DEBUG:send 187, -70, -137, -278, -306, -332, -176, -213, -232 +!!DEBUG:send G33 X-12.00 Y5.00 Z0.044 +!!DEBUG:send G33 X-12.00 Y28.12 Z0.079 +!!DEBUG:send G33 X-12.00 Y51.25 Z0.076 +!!DEBUG:send G33 X-12.00 Y74.37 Z0.039 +!!DEBUG:send G33 X-12.00 Y97.50 Z0.032 +!!DEBUG:send G33 X-12.00 Y120.62 Z-0.003 +!!DEBUG:send G33 X-12.00 Y143.75 Z-0.049 +!!DEBUG:send G33 X-12.00 Y166.88 Z-0.050 +!!DEBUG:send G33 X-12.00 Y190.00 Z-0.012 +!!DEBUG:send G33 X10.63 Y5.00 Z-0.016 +!!DEBUG:send G33 X10.63 Y28.12 Z0.037 +!!DEBUG:send G33 X10.63 Y51.25 Z0.038 +!!DEBUG:send G33 X10.63 Y74.37 Z0.030 +!!DEBUG:send G33 X10.63 Y97.50 Z0.020 +!!DEBUG:send G33 X10.63 Y120.62 Z0.018 +!!DEBUG:send G33 X10.63 Y143.75 Z-0.016 +!!DEBUG:send G33 X10.63 Y166.88 Z-0.060 +!!DEBUG:send G33 X10.63 Y190.00 Z0.031 +!!DEBUG:send G33 X33.25 Y5.00 Z-0.032 +!!DEBUG:send G33 X33.25 Y28.12 Z-0.015 +!!DEBUG:send G33 X33.25 Y51.25 Z0.012 +!!DEBUG:send G33 X33.25 Y74.37 Z-0.023 +!!DEBUG:send G33 X33.25 Y97.50 Z0.012 +!!DEBUG:send G33 X33.25 Y120.62 Z-0.002 +!!DEBUG:send G33 X33.25 Y143.75 Z-0.047 +!!DEBUG:send G33 X33.25 Y166.88 Z-0.069 +!!DEBUG:send G33 X33.25 Y190.00 Z-0.108 +!!DEBUG:send G33 X55.88 Y5.00 Z-0.065 +!!DEBUG:send G33 X55.88 Y28.12 Z-0.023 +!!DEBUG:send G33 X55.88 Y51.25 Z-0.024 +!!DEBUG:send G33 X55.88 Y74.37 Z-0.038 +!!DEBUG:send G33 X55.88 Y97.50 Z-0.004 +!!DEBUG:send G33 X55.88 Y120.62 Z-0.036 +!!DEBUG:send G33 X55.88 Y143.75 Z-0.024 +!!DEBUG:send G33 X55.88 Y166.88 Z-0.071 +!!DEBUG:send G33 X55.88 Y190.00 Z-0.094 +!!DEBUG:send G33 X78.50 Y5.00 Z-0.072 +!!DEBUG:send G33 X78.50 Y28.12 Z-0.065 +!!DEBUG:send G33 X78.50 Y51.25 Z-0.018 +!!DEBUG:send G33 X78.50 Y74.37 Z-0.017 +!!DEBUG:send G33 X78.50 Y97.50 Z-0.007 +!!DEBUG:send G33 X78.50 Y120.62 Z-0.017 +!!DEBUG:send G33 X78.50 Y143.75 Z-0.045 +!!DEBUG:send G33 X78.50 Y166.88 Z-0.049 +!!DEBUG:send G33 X78.50 Y190.00 Z-0.077 +!!DEBUG:send G33 X101.12 Y5.00 Z-0.078 +!!DEBUG:send G33 X101.12 Y28.12 Z-0.020 +!!DEBUG:send G33 X101.12 Y51.25 Z0.040 +!!DEBUG:send G33 X101.12 Y74.37 Z0.008 +!!DEBUG:send G33 X101.12 Y97.50 Z0.024 +!!DEBUG:send G33 X101.12 Y120.62 Z0.001 +!!DEBUG:send G33 X101.12 Y143.75 Z0.030 +!!DEBUG:send G33 X101.12 Y166.88 Z0.005 +!!DEBUG:send G33 X101.12 Y190.00 Z-0.024 +!!DEBUG:send G33 X123.75 Y5.00 Z-0.041 +!!DEBUG:send G33 X123.75 Y28.12 Z-0.017 +!!DEBUG:send G33 X123.75 Y51.25 Z0.016 +!!DEBUG:send G33 X123.75 Y74.37 Z0.021 +!!DEBUG:send G33 X123.75 Y97.50 Z0.014 +!!DEBUG:send G33 X123.75 Y120.62 Z0.026 +!!DEBUG:send G33 X123.75 Y143.75 Z0.016 +!!DEBUG:send G33 X123.75 Y166.88 Z0.019 +!!DEBUG:send G33 X123.75 Y190.00 Z0.018 +!!DEBUG:send G33 X146.38 Y5.00 Z-0.050 +!!DEBUG:send G33 X146.38 Y28.12 Z-0.017 +!!DEBUG:send G33 X146.38 Y51.25 Z0.032 +!!DEBUG:send G33 X146.38 Y74.37 Z0.021 +!!DEBUG:send G33 X146.38 Y97.50 Z0.037 +!!DEBUG:send G33 X146.38 Y120.62 Z0.021 +!!DEBUG:send G33 X146.38 Y143.75 Z0.050 +!!DEBUG:send G33 X146.38 Y166.88 Z0.031 +!!DEBUG:send G33 X146.38 Y190.00 Z0.018 +!!DEBUG:send G33 X169.00 Y5.00 Z-0.054 +!!DEBUG:send G33 X169.00 Y28.12 Z-0.018 +!!DEBUG:send G33 X169.00 Y51.25 Z0.007 +!!DEBUG:send G33 X169.00 Y74.37 Z0.033 +!!DEBUG:send G33 X169.00 Y97.50 Z0.058 +!!DEBUG:send G33 X169.00 Y120.62 Z0.072 +!!DEBUG:send G33 X169.00 Y143.75 Z0.061 +!!DEBUG:send G33 X169.00 Y166.88 Z0.044 +!!DEBUG:send G33 X169.00 Y190.00 Z0.067 +!!DEBUG:send Z correction enabled +!!DEBUG:send T:34.19 /0 B:79.96 /80 B@:255 @:0 T0:34.19 /0 @0:0 T1:-20.00 /0 @1:0 +!!DEBUG:send ok 59 \ No newline at end of file diff --git a/virtual_level_report_repetier_G33_L0.gcode b/virtual_level_report_repetier_G33_L0.gcode new file mode 100644 index 0000000..dd2224f --- /dev/null +++ b/virtual_level_report_repetier_G33_L0.gcode @@ -0,0 +1,115 @@ +G28 +M300 S392 P250 +G1 Y0 S1 +G1 Y100 S0 +G1 Z40 +M140 S80 +M190 S80 +G1 X0 Y0 +M300 S392 P250 +G32 S2 +G1 X150 Y150 +M300 S392 P250 +@BEDLEVELVISUALIZER +G33 +!!DEBUG:send FIRMWARE_NAME:Repetier_1.0.3 COMPILED:Jul 13 2019 FIRMWARE_URL:https://github.com/repetier/Repetier-Firmware/ PROTOCOL_VERSION:1.0 MACHINE_TYPE:Core_XY EXTRUDER_COUNT:2 REPETIER_PROTOCOL:3 +!!DEBUG:send Cap:PROGRESS:1 +!!DEBUG:send Cap:AUTOREPORT_TEMP:1 +!!DEBUG:send Cap:EEPROM:1 +!!DEBUG:send Cap:AUTOLEVEL:1 +!!DEBUG:send Cap:Z_PROBE:1 +!!DEBUG:send Cap:SOFTWARE_POWER:0 +!!DEBUG:send Cap:TOGGLE_LIGHTS:0 +!!DEBUG:send Cap:PAUSESTOP:1 +!!DEBUG:send Cap:PREHEAT:1 +!!DEBUG:send Printed filament:4167.94m Printing time:40 days 19 hours 1 min +!!DEBUG:send PrinterMode:FFF +!!DEBUG:send ok 7 +!!DEBUG:send G33 X-12.00 Y5.00 Z0.085 +!!DEBUG:send G33 X-12.00 Y28.12 Z0.122 +!!DEBUG:send G33 X-12.00 Y51.25 Z0.108 +!!DEBUG:send G33 X-12.00 Y74.37 Z0.107 +!!DEBUG:send G33 X-12.00 Y97.50 Z0.089 +!!DEBUG:send G33 X-12.00 Y120.62 Z0.074 +!!DEBUG:send G33 X-12.00 Y143.75 Z0.047 +!!DEBUG:send G33 X-12.00 Y166.88 Z0.030 +!!DEBUG:send G33 X-12.00 Y190.00 Z-0.036 +!!DEBUG:send G33 X10.63 Y5.00 Z0.050 +!!DEBUG:send G33 X10.63 Y28.12 Z0.098 +!!DEBUG:send G33 X10.63 Y51.25 Z0.071 +!!DEBUG:send G33 X10.63 Y74.37 Z0.087 +!!DEBUG:send G33 X10.63 Y97.50 Z0.067 +!!DEBUG:send G33 X10.63 Y120.62 Z0.061 +!!DEBUG:send G33 X10.63 Y143.75 Z0.040 +!!DEBUG:send G33 X10.63 Y166.88 Z0.000 +!!DEBUG:send G33 X10.63 Y190.00 Z-0.032 +!!DEBUG:send G33 X33.25 Y5.00 Z0.022 +!!DEBUG:send G33 X33.25 Y28.12 Z0.024 +!!DEBUG:send G33 X33.25 Y51.25 Z0.071 +!!DEBUG:send G33 X33.25 Y74.37 Z0.035 +!!DEBUG:send G33 X33.25 Y97.50 Z0.050 +!!DEBUG:send G33 X33.25 Y120.62 Z0.048 +!!DEBUG:send G33 X33.25 Y143.75 Z0.011 +!!DEBUG:send G33 X33.25 Y166.88 Z-0.019 +!!DEBUG:send G33 X33.25 Y190.00 Z-0.050 +!!DEBUG:send G33 X55.88 Y5.00 Z-0.038 +!!DEBUG:send G33 X55.88 Y28.12 Z-0.001 +!!DEBUG:send G33 X55.88 Y51.25 Z0.021 +!!DEBUG:send G33 X55.88 Y74.37 Z0.009 +!!DEBUG:send G33 X55.88 Y97.50 Z0.027 +!!DEBUG:send G33 X55.88 Y120.62 Z0.001 +!!DEBUG:send G33 X55.88 Y143.75 Z-0.000 +!!DEBUG:send G33 X55.88 Y166.88 Z-0.030 +!!DEBUG:send G33 X55.88 Y190.00 Z-0.053 +!!DEBUG:send G33 X78.50 Y5.00 Z-0.021 +!!DEBUG:send G33 X78.50 Y28.12 Z-0.023 +!!DEBUG:send G33 X78.50 Y51.25 Z0.011 +!!DEBUG:send G33 X78.50 Y74.37 Z0.018 +!!DEBUG:send G33 X78.50 Y97.50 Z0.017 +!!DEBUG:send G33 X78.50 Y120.62 Z0.009 +!!DEBUG:send G33 X78.50 Y143.75 Z-0.006 +!!DEBUG:send G33 X78.50 Y166.88 Z0.003 +!!DEBUG:send G33 X78.50 Y190.00 Z-0.041 +!!DEBUG:send G33 X101.12 Y5.00 Z-0.042 +!!DEBUG:send G33 X101.12 Y28.12 Z-0.029 +!!DEBUG:send G33 X101.12 Y51.25 Z0.041 +!!DEBUG:send G33 X101.12 Y74.37 Z0.024 +!!DEBUG:send G33 X101.12 Y97.50 Z0.019 +!!DEBUG:send G33 X101.12 Y120.62 Z0.031 +!!DEBUG:send G33 X101.12 Y143.75 Z0.043 +!!DEBUG:send G33 X101.12 Y166.88 Z0.019 +!!DEBUG:send G33 X101.12 Y190.00 Z-0.005 +!!DEBUG:send G33 X123.75 Y5.00 Z-0.046 +!!DEBUG:send G33 X123.75 Y28.12 Z-0.040 +!!DEBUG:send G33 X123.75 Y51.25 Z0.017 +!!DEBUG:send G33 X123.75 Y74.37 Z0.021 +!!DEBUG:send G33 X123.75 Y97.50 Z0.003 +!!DEBUG:send G33 X123.75 Y120.62 Z0.029 +!!DEBUG:send G33 X123.75 Y143.75 Z0.010 +!!DEBUG:send G33 X123.75 Y166.88 Z0.029 +!!DEBUG:send G33 X123.75 Y190.00 Z0.019 +!!DEBUG:send G33 X146.38 Y5.00 Z-0.071 +!!DEBUG:send G33 X146.38 Y28.12 Z-0.038 +!!DEBUG:send G33 X146.38 Y51.25 Z0.014 +!!DEBUG:send G33 X146.38 Y74.37 Z0.015 +!!DEBUG:send G33 X146.38 Y97.50 Z0.017 +!!DEBUG:send G33 X146.38 Y120.62 Z0.024 +!!DEBUG:send G33 X146.38 Y143.75 Z0.038 +!!DEBUG:send G33 X146.38 Y166.88 Z0.013 +!!DEBUG:send G33 X146.38 Y190.00 Z0.002 +!!DEBUG:send G33 X169.00 Y5.00 Z-0.079 +!!DEBUG:send G33 X169.00 Y28.12 Z-0.043 +!!DEBUG:send G33 X169.00 Y51.25 Z-0.017 +!!DEBUG:send G33 X169.00 Y74.37 Z0.015 +!!DEBUG:send G33 X169.00 Y97.50 Z0.023 +!!DEBUG:send G33 X169.00 Y120.62 Z0.051 +!!DEBUG:send G33 X169.00 Y143.75 Z0.036 +!!DEBUG:send G33 X169.00 Y166.88 Z0.043 +!!DEBUG:send G33 X169.00 Y190.00 Z0.032 +!!DEBUG:send ok 8 +M500 +M140 S0 +M300 S392 P250 +G1 X348 +G1 Y2 +G28 X Y \ No newline at end of file diff --git a/virtual_level_report_repetier_distortion_correction_matrix.gcode b/virtual_level_report_repetier_distortion_correction_matrix.gcode new file mode 100644 index 0000000..19c1f24 --- /dev/null +++ b/virtual_level_report_repetier_distortion_correction_matrix.gcode @@ -0,0 +1,12 @@ +@BEDLEVELVISUALIZER +!!DEBUG:send Info:Distortion correction matrix: +!!DEBUG:send 1218, -449, -571, -530, -445, -273, -167, -137, -147 +!!DEBUG:send -305, -340, -297, -272, -119, -105, 38, 1, -8 +!!DEBUG:send -190, -149, -301, -164, -155, 14, 93, 91, 101 +!!DEBUG:send 4, -26, -24, -109, 23, -6, 114, 198, 235 +!!DEBUG:send -8, -80, 25, -113, -72, 13, 179, 172, 328 +!!DEBUG:send 71, 108, 18, 74, 20, -16, 300, 206, 249 +!!DEBUG:send 386, 179, 131, 21, 34, 61, 156, 159, 127 +!!DEBUG:send 105, 256, -147, 17, -115, -103, 139, 66, 83 +!!DEBUG:send 41, -109, -103, -300, -250, -158, -95, -91, -33 +!!DEBUG:send ok \ No newline at end of file