ParaView-5.0.1: Added the source-tree to ThirdParty-dev and patched as described in the README file

Resolves bug-report http://bugs.openfoam.org/view.php?id=2098
This commit is contained in:
Henry Weller
2016-05-30 21:20:56 +01:00
parent 1cce60aa78
commit eba760a6d6
24640 changed files with 6366069 additions and 0 deletions

View File

@ -0,0 +1,130 @@
vtk_module_impl()
vtk_module_export("")
find_package(PythonInterp ${VTK_PYTHON_VERSION} REQUIRED)
if(NOT vtkWeb_WWW_DEST)
set(vtkWeb_WWW_DEST "${VTK_WWW_DIR}")
endif()
set(lib_source_dir "${CMAKE_CURRENT_SOURCE_DIR}/Lib")
set(lib_binary_dir "${vtkWeb_WWW_DEST}/lib")
set(ext_source_dir "${CMAKE_CURRENT_SOURCE_DIR}/Ext")
set(ext_binary_dir "${vtkWeb_WWW_DEST}/ext")
set(widgets_source_dir "${CMAKE_CURRENT_SOURCE_DIR}/Widgets")
set(widgets_binary_dir "${vtkWeb_WWW_DEST}/lib/widgets")
set(lib_js_min_files
"${lib_source_dir}/vtkweb.js"
"${lib_source_dir}/vtkweb.launcher.js"
"${lib_source_dir}/vtkweb.connect.js"
"${lib_source_dir}/vtkweb.viewport.js"
"${lib_source_dir}/vtkweb.viewport.image.js"
"${lib_source_dir}/vtkweb.viewport.vgl.js"
"${lib_source_dir}/vtkweb.viewport.webgl.js"
"${lib_source_dir}/vtkweb.simple.js"
)
set(widgets_js_min_files
"${widgets_source_dir}/CatalystBrowser/vtkweb-widget-catalyst-analysis-cost-estimate.js"
"${widgets_source_dir}/CatalystBrowser/vtkweb-widget-catalyst-analysis-cost.js"
"${widgets_source_dir}/CatalystBrowser/vtkweb-widget-catalyst-analysis-bench.js"
"${widgets_source_dir}/CatalystBrowser/vtkweb-widget-catalyst-viewer.js"
"${widgets_source_dir}/CatalystBrowser/vtkweb-widget-catalyst-resampler-viewer.js"
"${widgets_source_dir}/CatalystBrowser/vtkweb-widget-catalyst-composite.js"
"${widgets_source_dir}/CatalystBrowser/vtkweb-widget-catalyst-pvweb.js"
"${widgets_source_dir}/CatalystBrowser/vtkweb-widget-catalyst-analysis-search.js"
"${widgets_source_dir}/CatalystBrowser/vtkweb-widget-catalyst-analysis.js"
"${widgets_source_dir}/ChartWidget/vtkweb-widget-chart.js"
"${widgets_source_dir}/FileBrowser/vtkweb-widget-filebrowser.js"
"${widgets_source_dir}/TreeWidget/vtkweb-widget-tree.js"
)
set(widgets_css_min_files
"${widgets_source_dir}/CatalystBrowser/vtkweb-widget-catalyst-analysis-cost-estimate.css"
"${widgets_source_dir}/CatalystBrowser/vtkweb-widget-catalyst-analysis-cost.css"
"${widgets_source_dir}/CatalystBrowser/vtkweb-widget-catalyst-analysis-bench.css"
"${widgets_source_dir}/CatalystBrowser/vtkweb-widget-catalyst-viewer.css"
"${widgets_source_dir}/CatalystBrowser/vtkweb-widget-catalyst-resampler-viewer.css"
"${widgets_source_dir}/CatalystBrowser/vtkweb-widget-catalyst-composite.css"
"${widgets_source_dir}/CatalystBrowser/vtkweb-widget-catalyst-pvweb.css"
"${widgets_source_dir}/CatalystBrowser/vtkweb-widget-catalyst-analysis-search.css"
"${widgets_source_dir}/CatalystBrowser/vtkweb-widget-catalyst-analysis.css"
"${widgets_source_dir}/ChartWidget/vtkweb-widget-chart.css"
"${widgets_source_dir}/FileBrowser/vtkweb-widget-filebrowser.css"
"${widgets_source_dir}/TreeWidget/vtkweb-widget-tree.css"
)
if(BUILD_TESTING)
set(lib_js_min_files
${lib_js_min_files}
"${lib_source_dir}/vtkweb.testing.js"
)
endif()
set(vtkweb_all_min_js "${lib_binary_dir}/core/vtkweb-all.min.js")
set(vtkweb_all_js "${lib_binary_dir}/core/vtkweb-all.js")
set(vtkweb_loader_js "${lib_binary_dir}/core/vtkweb-loader.js")
set(vtkweb_loader_min_js "${lib_binary_dir}/core/vtkweb-loader-min.js")
set(vtkweb_widgets_js "${widgets_binary_dir}/vtkweb-widgets.js")
set(vtkweb_widgets_min_js "${widgets_binary_dir}/vtkweb-widgets-min.js")
set(vtkweb_widgets_css "${widgets_binary_dir}/vtkweb-widgets.css")
set(vtkweb_widgets_min_css "${widgets_binary_dir}/vtkweb-widgets-min.css")
# ====================================================
# === Helper to combine and Pack JavaScripts files ===
# ====================================================
macro(js_pack file_list combine_file_name compress_file_name)
set(args)
list(APPEND args "-b" "${CMAKE_CURRENT_SOURCE_DIR}/banner.js.in")
list(APPEND args "-v" "v2.0")
list(APPEND args "-i")
set(min_all_args ${args})
foreach(_file ${file_list})
list(APPEND min_all_args "${_file}")
endforeach()
list(APPEND min_all_args "-o" ${compress_file_name})
list(APPEND min_all_args "-m" ${combine_file_name})
add_custom_command(OUTPUT ${compress_file_name} ${combine_file_name}
COMMAND ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/Minimizer/build.py" ${min_all_args}
DEPENDS ${file_list})
endmacro()
# ====================================================
# Create vtkweb-all
js_pack( "${lib_js_min_files}" "${vtkweb_all_js}" "${vtkweb_all_min_js}")
# Create vtkweb-loader
js_pack( "${lib_source_dir}/vtkweb-loader.js" "${vtkweb_loader_js}" "${vtkweb_loader_min_js}")
# Create widgets
js_pack( "${widgets_js_min_files}" "${vtkweb_widgets_js}" "${vtkweb_widgets_min_js}")
js_pack( "${widgets_css_min_files}" "${vtkweb_widgets_css}" "${vtkweb_widgets_min_css}")
# Copy Ext js files
include(vtkPythonPackages)
copy_files_recursive(${ext_source_dir}
DESTINATION ${ext_binary_dir}
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/ext-js-copy-complete"
LABEL "Copying JavaScript files"
)
copy_files_recursive("${CMAKE_CURRENT_SOURCE_DIR}/Widgets"
DESTINATION ${lib_binary_dir}/widgets
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/widget-copy-complete"
LABEL "Copying Widgets files"
)
add_custom_target(vtkWebJavaScript ALL DEPENDS
${vtkweb_all_min_js} ${vtkweb_loader_min_js} ${vtkweb_widgets_min_js} ${vtkweb_widgets_min_css}
"${CMAKE_CURRENT_BINARY_DIR}/ext-js-copy-complete"
"${CMAKE_CURRENT_BINARY_DIR}/widget-copy-complete"
)

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,442 @@
/*!
* Bootstrap v3.2.0 (http://getbootstrap.com)
* Copyright 2011-2014 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
.btn-default,
.btn-primary,
.btn-success,
.btn-info,
.btn-warning,
.btn-danger {
text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
}
.btn-default:active,
.btn-primary:active,
.btn-success:active,
.btn-info:active,
.btn-warning:active,
.btn-danger:active,
.btn-default.active,
.btn-primary.active,
.btn-success.active,
.btn-info.active,
.btn-warning.active,
.btn-danger.active {
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}
.btn:active,
.btn.active {
background-image: none;
}
.btn-default {
text-shadow: 0 1px 0 #fff;
background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));
background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #dbdbdb;
border-color: #ccc;
}
.btn-default:hover,
.btn-default:focus {
background-color: #e0e0e0;
background-position: 0 -15px;
}
.btn-default:active,
.btn-default.active {
background-color: #e0e0e0;
border-color: #dbdbdb;
}
.btn-default:disabled,
.btn-default[disabled] {
background-color: #e0e0e0;
background-image: none;
}
.btn-primary {
background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
background-image: -o-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#2d6ca2));
background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #2b669a;
}
.btn-primary:hover,
.btn-primary:focus {
background-color: #2d6ca2;
background-position: 0 -15px;
}
.btn-primary:active,
.btn-primary.active {
background-color: #2d6ca2;
border-color: #2b669a;
}
.btn-primary:disabled,
.btn-primary[disabled] {
background-color: #2d6ca2;
background-image: none;
}
.btn-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));
background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #3e8f3e;
}
.btn-success:hover,
.btn-success:focus {
background-color: #419641;
background-position: 0 -15px;
}
.btn-success:active,
.btn-success.active {
background-color: #419641;
border-color: #3e8f3e;
}
.btn-success:disabled,
.btn-success[disabled] {
background-color: #419641;
background-image: none;
}
.btn-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));
background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #28a4c9;
}
.btn-info:hover,
.btn-info:focus {
background-color: #2aabd2;
background-position: 0 -15px;
}
.btn-info:active,
.btn-info.active {
background-color: #2aabd2;
border-color: #28a4c9;
}
.btn-info:disabled,
.btn-info[disabled] {
background-color: #2aabd2;
background-image: none;
}
.btn-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #e38d13;
}
.btn-warning:hover,
.btn-warning:focus {
background-color: #eb9316;
background-position: 0 -15px;
}
.btn-warning:active,
.btn-warning.active {
background-color: #eb9316;
border-color: #e38d13;
}
.btn-warning:disabled,
.btn-warning[disabled] {
background-color: #eb9316;
background-image: none;
}
.btn-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));
background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #b92c28;
}
.btn-danger:hover,
.btn-danger:focus {
background-color: #c12e2a;
background-position: 0 -15px;
}
.btn-danger:active,
.btn-danger.active {
background-color: #c12e2a;
border-color: #b92c28;
}
.btn-danger:disabled,
.btn-danger[disabled] {
background-color: #c12e2a;
background-image: none;
}
.thumbnail,
.img-thumbnail {
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
background-color: #e8e8e8;
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
background-repeat: repeat-x;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
background-color: #357ebd;
background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
background-image: -o-linear-gradient(top, #428bca 0%, #357ebd 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#357ebd));
background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
background-repeat: repeat-x;
}
.navbar-default {
background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8));
background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
}
.navbar-default .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
background-image: -o-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f3f3f3));
background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);
background-repeat: repeat-x;
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
}
.navbar-brand,
.navbar-nav > li > a {
text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
}
.navbar-inverse {
background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));
background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
}
.navbar-inverse .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #222 0%, #282828 100%);
background-image: -o-linear-gradient(top, #222 0%, #282828 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#222), to(#282828));
background-image: linear-gradient(to bottom, #222 0%, #282828 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);
background-repeat: repeat-x;
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
}
.navbar-inverse .navbar-brand,
.navbar-inverse .navbar-nav > li > a {
text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
}
.navbar-static-top,
.navbar-fixed-top,
.navbar-fixed-bottom {
border-radius: 0;
}
.alert {
text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
}
.alert-success {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
background-repeat: repeat-x;
border-color: #b2dba1;
}
.alert-info {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));
background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
background-repeat: repeat-x;
border-color: #9acfea;
}
.alert-warning {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));
background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
background-repeat: repeat-x;
border-color: #f5e79e;
}
.alert-danger {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));
background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
background-repeat: repeat-x;
border-color: #dca7a7;
}
.progress {
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));
background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar {
background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
background-image: -o-linear-gradient(top, #428bca 0%, #3071a9 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#3071a9));
background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));
background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));
background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));
background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-striped {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
}
.list-group {
border-radius: 4px;
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
text-shadow: 0 -1px 0 #3071a9;
background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
background-image: -o-linear-gradient(top, #428bca 0%, #3278b3 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#3278b3));
background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
background-repeat: repeat-x;
border-color: #3278b3;
}
.panel {
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
}
.panel-default > .panel-heading {
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
background-repeat: repeat-x;
}
.panel-primary > .panel-heading {
background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
background-image: -o-linear-gradient(top, #428bca 0%, #357ebd 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#357ebd));
background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
background-repeat: repeat-x;
}
.panel-success > .panel-heading {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));
background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
background-repeat: repeat-x;
}
.panel-info > .panel-heading {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));
background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
background-repeat: repeat-x;
}
.panel-warning > .panel-heading {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));
background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
background-repeat: repeat-x;
}
.panel-danger > .panel-heading {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));
background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
background-repeat: repeat-x;
}
.well {
background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));
background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
background-repeat: repeat-x;
border-color: #dcdcdc;
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
}
/*# sourceMappingURL=bootstrap-theme.css.map */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,229 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata></metadata>
<defs>
<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
<font-face units-per-em="1200" ascent="960" descent="-240" />
<missing-glyph horiz-adv-x="500" />
<glyph />
<glyph />
<glyph unicode="&#xd;" />
<glyph unicode=" " />
<glyph unicode="*" d="M100 500v200h259l-183 183l141 141l183 -183v259h200v-259l183 183l141 -141l-183 -183h259v-200h-259l183 -183l-141 -141l-183 183v-259h-200v259l-183 -183l-141 141l183 183h-259z" />
<glyph unicode="+" d="M0 400v300h400v400h300v-400h400v-300h-400v-400h-300v400h-400z" />
<glyph unicode="&#xa0;" />
<glyph unicode="&#x2000;" horiz-adv-x="652" />
<glyph unicode="&#x2001;" horiz-adv-x="1304" />
<glyph unicode="&#x2002;" horiz-adv-x="652" />
<glyph unicode="&#x2003;" horiz-adv-x="1304" />
<glyph unicode="&#x2004;" horiz-adv-x="434" />
<glyph unicode="&#x2005;" horiz-adv-x="326" />
<glyph unicode="&#x2006;" horiz-adv-x="217" />
<glyph unicode="&#x2007;" horiz-adv-x="217" />
<glyph unicode="&#x2008;" horiz-adv-x="163" />
<glyph unicode="&#x2009;" horiz-adv-x="260" />
<glyph unicode="&#x200a;" horiz-adv-x="72" />
<glyph unicode="&#x202f;" horiz-adv-x="260" />
<glyph unicode="&#x205f;" horiz-adv-x="326" />
<glyph unicode="&#x20ac;" d="M100 500l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406l-100 -100 h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217z" />
<glyph unicode="&#x2212;" d="M200 400h900v300h-900v-300z" />
<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
<glyph unicode="&#x2601;" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" />
<glyph unicode="&#x2709;" d="M0 100l400 400l200 -200l200 200l400 -400h-1200zM0 300v600l300 -300zM0 1100l600 -603l600 603h-1200zM900 600l300 300v-600z" />
<glyph unicode="&#x270f;" d="M-13 -13l333 112l-223 223zM187 403l214 -214l614 614l-214 214zM887 1103l214 -214l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13z" />
<glyph unicode="&#xe001;" d="M0 1200h1200l-500 -550v-550h300v-100h-800v100h300v550z" />
<glyph unicode="&#xe002;" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q18 -55 86 -75.5t147 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />
<glyph unicode="&#xe003;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" />
<glyph unicode="&#xe005;" d="M100 784q0 64 28 123t73 100.5t104.5 64t119 20.5t120 -38.5t104.5 -104.5q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5 t-94 124.5t-33.5 117.5z" />
<glyph unicode="&#xe006;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1z" />
<glyph unicode="&#xe007;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1zM237 700l196 -142l-73 -226l192 140l195 -141l-74 229l193 140h-235l-77 211l-78 -211h-239z" />
<glyph unicode="&#xe008;" d="M0 0v143l400 257v100q-37 0 -68.5 74.5t-31.5 125.5v200q0 124 88 212t212 88t212 -88t88 -212v-200q0 -51 -31.5 -125.5t-68.5 -74.5v-100l400 -257v-143h-1200z" />
<glyph unicode="&#xe009;" d="M0 0v1100h1200v-1100h-1200zM100 100h100v100h-100v-100zM100 300h100v100h-100v-100zM100 500h100v100h-100v-100zM100 700h100v100h-100v-100zM100 900h100v100h-100v-100zM300 100h600v400h-600v-400zM300 600h600v400h-600v-400zM1000 100h100v100h-100v-100z M1000 300h100v100h-100v-100zM1000 500h100v100h-100v-100zM1000 700h100v100h-100v-100zM1000 900h100v100h-100v-100z" />
<glyph unicode="&#xe010;" d="M0 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM0 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5zM600 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM600 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5z" />
<glyph unicode="&#xe011;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 450v200q0 21 14.5 35.5t35.5 14.5h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5z" />
<glyph unicode="&#xe012;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v200q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5 t-14.5 -35.5v-200zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5z" />
<glyph unicode="&#xe013;" d="M29 454l419 -420l818 820l-212 212l-607 -607l-206 207z" />
<glyph unicode="&#xe014;" d="M106 318l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282l-212 -212l-282 282l-282 -282z" />
<glyph unicode="&#xe015;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233zM300 600v200h100v100h200v-100h100v-200h-100v-100h-200v100h-100z" />
<glyph unicode="&#xe016;" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />
<glyph unicode="&#xe017;" d="M23 600q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5 zM500 750q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400z" />
<glyph unicode="&#xe018;" d="M100 1h200v300h-200v-300zM400 1v500h200v-500h-200zM700 1v800h200v-800h-200zM1000 1v1200h200v-1200h-200z" />
<glyph unicode="&#xe019;" d="M26 601q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39l5 -2l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38 l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73zM385 601 q0 88 63 151t152 63t152 -63t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152z" />
<glyph unicode="&#xe020;" d="M100 1025v50q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-50q0 -11 -7 -18t-18 -7h-1050q-11 0 -18 7t-7 18zM200 100v800h900v-800q0 -41 -29.5 -71t-70.5 -30h-700q-41 0 -70.5 30 t-29.5 71zM300 100h100v700h-100v-700zM500 100h100v700h-100v-700zM500 1100h300v100h-300v-100zM700 100h100v700h-100v-700zM900 100h100v700h-100v-700z" />
<glyph unicode="&#xe021;" d="M1 601l656 644l644 -644h-200v-600h-300v400h-300v-400h-300v600h-200z" />
<glyph unicode="&#xe022;" d="M100 25v1150q0 11 7 18t18 7h475v-500h400v-675q0 -11 -7 -18t-18 -7h-850q-11 0 -18 7t-7 18zM700 800v300l300 -300h-300z" />
<glyph unicode="&#xe023;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 500v400h100 v-300h200v-100h-300z" />
<glyph unicode="&#xe024;" d="M-100 0l431 1200h209l-21 -300h162l-20 300h208l431 -1200h-538l-41 400h-242l-40 -400h-539zM488 500h224l-27 300h-170z" />
<glyph unicode="&#xe025;" d="M0 0v400h490l-290 300h200v500h300v-500h200l-290 -300h490v-400h-1100zM813 200h175v100h-175v-100z" />
<glyph unicode="&#xe026;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM188 600q0 -170 121 -291t291 -121t291 121t121 291t-121 291t-291 121 t-291 -121t-121 -291zM350 600h150v300h200v-300h150l-250 -300z" />
<glyph unicode="&#xe027;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM350 600l250 300 l250 -300h-150v-300h-200v300h-150z" />
<glyph unicode="&#xe028;" d="M0 25v475l200 700h800l199 -700l1 -475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />
<glyph unicode="&#xe029;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 397v401 l297 -200z" />
<glyph unicode="&#xe030;" d="M23 600q0 -118 45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123t123 184t45.5 224.5h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123 t-123 -184t-45.5 -224.5z" />
<glyph unicode="&#xe031;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150zM100 0v400h400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122z" />
<glyph unicode="&#xe032;" d="M100 0h1100v1200h-1100v-1200zM200 100v900h900v-900h-900zM300 200v100h100v-100h-100zM300 400v100h100v-100h-100zM300 600v100h100v-100h-100zM300 800v100h100v-100h-100zM500 200h500v100h-500v-100zM500 400v100h500v-100h-500zM500 600v100h500v-100h-500z M500 800v100h500v-100h-500z" />
<glyph unicode="&#xe033;" d="M0 100v600q0 41 29.5 70.5t70.5 29.5h100v200q0 82 59 141t141 59h300q82 0 141 -59t59 -141v-200h100q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-900q-41 0 -70.5 29.5t-29.5 70.5zM400 800h300v150q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-150z" />
<glyph unicode="&#xe034;" d="M100 0v1100h100v-1100h-100zM300 400q60 60 127.5 84t127.5 17.5t122 -23t119 -30t110 -11t103 42t91 120.5v500q-40 -81 -101.5 -115.5t-127.5 -29.5t-138 25t-139.5 40t-125.5 25t-103 -29.5t-65 -115.5v-500z" />
<glyph unicode="&#xe035;" d="M0 275q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 127 70.5 231.5t184.5 161.5t245 57t245 -57t184.5 -161.5t70.5 -231.5v-300q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 116 -49.5 227t-131 192.5t-192.5 131t-227 49.5t-227 -49.5t-192.5 -131t-131 -192.5 t-49.5 -227v-300zM200 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14zM800 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14z" />
<glyph unicode="&#xe036;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM688 459l141 141l-141 141l71 71l141 -141l141 141l71 -71l-141 -141l141 -141l-71 -71l-141 141l-141 -141z" />
<glyph unicode="&#xe037;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM700 857l69 53q111 -135 111 -310q0 -169 -106 -302l-67 54q86 110 86 248q0 146 -93 257z" />
<glyph unicode="&#xe038;" d="M0 401v400h300l300 200v-800l-300 200h-300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257zM889 951l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8l81 -66l6 8q142 178 142 405q0 230 -144 408l-6 8z" />
<glyph unicode="&#xe039;" d="M0 0h500v500h-200v100h-100v-100h-200v-500zM0 600h100v100h400v100h100v100h-100v300h-500v-600zM100 100v300h300v-300h-300zM100 800v300h300v-300h-300zM200 200v100h100v-100h-100zM200 900h100v100h-100v-100zM500 500v100h300v-300h200v-100h-100v-100h-200v100 h-100v100h100v200h-200zM600 0v100h100v-100h-100zM600 1000h100v-300h200v-300h300v200h-200v100h200v500h-600v-200zM800 800v300h300v-300h-300zM900 0v100h300v-100h-300zM900 900v100h100v-100h-100zM1100 200v100h100v-100h-100z" />
<glyph unicode="&#xe040;" d="M0 200h100v1000h-100v-1000zM100 0v100h300v-100h-300zM200 200v1000h100v-1000h-100zM500 0v91h100v-91h-100zM500 200v1000h200v-1000h-200zM700 0v91h100v-91h-100zM800 200v1000h100v-1000h-100zM900 0v91h200v-91h-200zM1000 200v1000h200v-1000h-200z" />
<glyph unicode="&#xe041;" d="M0 700l1 475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />
<glyph unicode="&#xe042;" d="M1 700l1 475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />
<glyph unicode="&#xe043;" d="M100 0v1025l175 175h925v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900z" />
<glyph unicode="&#xe044;" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" />
<glyph unicode="&#xe045;" d="M0 100v700h200l100 -200h600l100 200h200v-700h-200v200h-800v-200h-200zM253 829l40 -124h592l62 124l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18zM281 24l38 152q2 10 11.5 17t19.5 7h500q10 0 19.5 -7t11.5 -17l38 -152q2 -10 -3.5 -17t-15.5 -7h-600 q-10 0 -15.5 7t-3.5 17z" />
<glyph unicode="&#xe046;" d="M0 200q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600z M356 500q0 100 72 172t172 72t172 -72t72 -172t-72 -172t-172 -72t-172 72t-72 172zM494 500q0 -44 31 -75t75 -31t75 31t31 75t-31 75t-75 31t-75 -31t-31 -75zM900 700v100h100v-100h-100z" />
<glyph unicode="&#xe047;" d="M53 0h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66zM416 521l178 457l46 -140l116 -317h-340 z" />
<glyph unicode="&#xe048;" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v71l471 -1q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />
<glyph unicode="&#xe049;" d="M200 0v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500z" />
<glyph unicode="&#xe050;" d="M-75 200h75v800h-75l125 167l125 -167h-75v-800h75l-125 -167zM300 900v300h150h700h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49z " />
<glyph unicode="&#xe051;" d="M33 51l167 125v-75h800v75l167 -125l-167 -125v75h-800v-75zM100 901v300h150h700h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50z" />
<glyph unicode="&#xe052;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 350q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM0 650q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1000q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 950q0 -20 14.5 -35t35.5 -15h600q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-600q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
<glyph unicode="&#xe053;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 650q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM200 350q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM200 950q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
<glyph unicode="&#xe054;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1000q-21 0 -35.5 15 t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-600 q-21 0 -35.5 15t-14.5 35z" />
<glyph unicode="&#xe055;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" />
<glyph unicode="&#xe056;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM300 50v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800 q-21 0 -35.5 15t-14.5 35zM300 650v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 950v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35z" />
<glyph unicode="&#xe057;" d="M-101 500v100h201v75l166 -125l-166 -125v75h-201zM300 0h100v1100h-100v-1100zM500 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35 v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 650q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100 q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100z" />
<glyph unicode="&#xe058;" d="M1 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 650 q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM801 0v1100h100v-1100 h-100zM934 550l167 -125v75h200v100h-200v75z" />
<glyph unicode="&#xe059;" d="M0 275v650q0 31 22 53t53 22h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53zM900 600l300 300v-600z" />
<glyph unicode="&#xe060;" d="M0 44v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31zM100 263l247 182l298 -131l-74 156l293 318l236 -288v500h-1000v-737zM208 750q0 56 39 95t95 39t95 -39t39 -95t-39 -95t-95 -39t-95 39t-39 95z " />
<glyph unicode="&#xe062;" d="M148 745q0 124 60.5 231.5t165 172t226.5 64.5q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262zM342 772q0 -107 75.5 -182.5t181.5 -75.5 q107 0 182.5 75.5t75.5 182.5t-75.5 182t-182.5 75t-182 -75.5t-75 -181.5z" />
<glyph unicode="&#xe063;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM173 600q0 -177 125.5 -302t301.5 -125v854q-176 0 -301.5 -125 t-125.5 -302z" />
<glyph unicode="&#xe064;" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 139t-64 210zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />
<glyph unicode="&#xe065;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125l200 200v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM436 341l161 50l412 412l-114 113l-405 -405zM995 1015l113 -113l113 113l-21 85l-92 28z" />
<glyph unicode="&#xe066;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5 zM423 524q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5z" />
<glyph unicode="&#xe067;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q61 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l567 567l-137 137l-430 -431l-146 147z" />
<glyph unicode="&#xe068;" d="M0 603l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296l-300 -300v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198z" />
<glyph unicode="&#xe069;" d="M200 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
<glyph unicode="&#xe070;" d="M0 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
<glyph unicode="&#xe071;" d="M136 550l564 550v-487l500 487v-1100l-500 488v-488z" />
<glyph unicode="&#xe072;" d="M200 0l900 550l-900 550v-1100z" />
<glyph unicode="&#xe073;" d="M200 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800zM600 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
<glyph unicode="&#xe074;" d="M200 150q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v800q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
<glyph unicode="&#xe075;" d="M0 0v1100l500 -487v487l564 -550l-564 -550v488z" />
<glyph unicode="&#xe076;" d="M0 0v1100l500 -487v487l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v488z" />
<glyph unicode="&#xe077;" d="M300 0v1100l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438z" />
<glyph unicode="&#xe078;" d="M100 250v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5zM100 500h1100l-550 564z" />
<glyph unicode="&#xe079;" d="M185 599l592 -592l240 240l-353 353l353 353l-240 240z" />
<glyph unicode="&#xe080;" d="M272 194l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1l-592 -591z" />
<glyph unicode="&#xe081;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />
<glyph unicode="&#xe082;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h600v200h-600v-200z" />
<glyph unicode="&#xe083;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141 z" />
<glyph unicode="&#xe084;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM270 551l276 -277l411 411l-175 174l-236 -236l-102 102z" />
<glyph unicode="&#xe085;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM364 700h143q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5 q19 0 30 -10t11 -26q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-50 0 -90.5 -12t-75 -38.5t-53.5 -74.5t-19 -114zM500 300h200v100h-200 v-100z" />
<glyph unicode="&#xe086;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" />
<glyph unicode="&#xe087;" d="M0 500v200h195q31 125 98.5 199.5t206.5 100.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200v-206 q149 48 201 206h-201v200h200q-25 74 -75.5 127t-124.5 77v-204h-200v203q-75 -23 -130 -77t-79 -126h209v-200h-210z" />
<glyph unicode="&#xe088;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM356 465l135 135 l-135 135l109 109l135 -135l135 135l109 -109l-135 -135l135 -135l-109 -109l-135 135l-135 -135z" />
<glyph unicode="&#xe089;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM322 537l141 141 l87 -87l204 205l142 -142l-346 -345z" />
<glyph unicode="&#xe090;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -115 62 -215l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5zM391 245q97 -59 209 -59q171 0 292.5 121.5t121.5 292.5 q0 112 -59 209z" />
<glyph unicode="&#xe091;" d="M0 547l600 453v-300h600v-300h-600v-301z" />
<glyph unicode="&#xe092;" d="M0 400v300h600v300l600 -453l-600 -448v301h-600z" />
<glyph unicode="&#xe093;" d="M204 600l450 600l444 -600h-298v-600h-300v600h-296z" />
<glyph unicode="&#xe094;" d="M104 600h296v600h300v-600h298l-449 -600z" />
<glyph unicode="&#xe095;" d="M0 200q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453l-600 -448v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5z" />
<glyph unicode="&#xe096;" d="M0 0v400l129 -129l294 294l142 -142l-294 -294l129 -129h-400zM635 777l142 -142l294 294l129 -129v400h-400l129 -129z" />
<glyph unicode="&#xe097;" d="M34 176l295 295l-129 129h400v-400l-129 130l-295 -295zM600 600v400l129 -129l295 295l142 -141l-295 -295l129 -130h-400z" />
<glyph unicode="&#xe101;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5h-207q-21 0 -33 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />
<glyph unicode="&#xe102;" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111q1 1 1 6.5t-1.5 15t-3.5 17.5l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6 h-111v-100zM100 0h400v400h-400v-400zM200 900q-3 0 14 48t36 96l18 47l213 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />
<glyph unicode="&#xe103;" d="M0 -22v143l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55z M238.5 300.5q19.5 -6.5 86.5 76.5q55 66 367 234q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5z" />
<glyph unicode="&#xe104;" d="M111 408q0 -33 5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5 t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5q2 -12 8 -41.5t8 -43t6 -39.5 t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85z" />
<glyph unicode="&#xe105;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30l26 -40l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5 t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30zM120 600q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5t123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54 q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l105 105q-37 24 -75 72t-57 84l-20 36z" />
<glyph unicode="&#xe106;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43zM120 600q210 -282 393 -336l37 141q-107 18 -178.5 101.5t-71.5 193.5 q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68l-14 26zM780 161l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52l26 -40l-26 -40 q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5t-124 -100t-146.5 -79z" />
<glyph unicode="&#xe107;" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 34 -48 36.5t-48 -29.5l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />
<glyph unicode="&#xe108;" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -20 -13 -28.5t-32 0.5l-94 78h-222l-94 -78q-19 -9 -32 -0.5t-13 28.5 v64q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />
<glyph unicode="&#xe109;" d="M0 50q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100v-750zM0 900h1100v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 100v100h100v-100h-100zM100 300v100h100v-100h-100z M100 500v100h100v-100h-100zM300 100v100h100v-100h-100zM300 300v100h100v-100h-100zM300 500v100h100v-100h-100zM500 100v100h100v-100h-100zM500 300v100h100v-100h-100zM500 500v100h100v-100h-100zM700 100v100h100v-100h-100zM700 300v100h100v-100h-100zM700 500 v100h100v-100h-100zM900 100v100h100v-100h-100zM900 300v100h100v-100h-100zM900 500v100h100v-100h-100z" />
<glyph unicode="&#xe110;" d="M0 200v200h259l600 600h241v198l300 -295l-300 -300v197h-159l-600 -600h-341zM0 800h259l122 -122l141 142l-181 180h-341v-200zM678 381l141 142l122 -123h159v198l300 -295l-300 -300v197h-241z" />
<glyph unicode="&#xe111;" d="M0 400v600q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5z" />
<glyph unicode="&#xe112;" d="M100 600v200h300v-250q0 -113 6 -145q17 -92 102 -117q39 -11 92 -11q37 0 66.5 5.5t50 15.5t36 24t24 31.5t14 37.5t7 42t2.5 45t0 47v25v250h300v-200q0 -42 -3 -83t-15 -104t-31.5 -116t-58 -109.5t-89 -96.5t-129 -65.5t-174.5 -25.5t-174.5 25.5t-129 65.5t-89 96.5 t-58 109.5t-31.5 116t-15 104t-3 83zM100 900v300h300v-300h-300zM800 900v300h300v-300h-300z" />
<glyph unicode="&#xe113;" d="M-30 411l227 -227l352 353l353 -353l226 227l-578 579z" />
<glyph unicode="&#xe114;" d="M70 797l580 -579l578 579l-226 227l-353 -353l-352 353z" />
<glyph unicode="&#xe115;" d="M-198 700l299 283l300 -283h-203v-400h385l215 -200h-800v600h-196zM402 1000l215 -200h381v-400h-198l299 -283l299 283h-200v600h-796z" />
<glyph unicode="&#xe116;" d="M18 939q-5 24 10 42q14 19 39 19h896l38 162q5 17 18.5 27.5t30.5 10.5h94q20 0 35 -14.5t15 -35.5t-15 -35.5t-35 -14.5h-54l-201 -961q-2 -4 -6 -10.5t-19 -17.5t-33 -11h-31v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-300v-50q0 -20 -14.5 -35t-35.5 -15 t-35.5 15t-14.5 35v50h-50q-21 0 -35.5 15t-14.5 35q0 21 14.5 35.5t35.5 14.5h535l48 200h-633q-32 0 -54.5 21t-27.5 43z" />
<glyph unicode="&#xe117;" d="M0 0v800h1200v-800h-1200zM0 900v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-100h-1200z" />
<glyph unicode="&#xe118;" d="M1 0l300 700h1200l-300 -700h-1200zM1 400v600h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-200h-1000z" />
<glyph unicode="&#xe119;" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" />
<glyph unicode="&#xe120;" d="M0 600l300 298v-198h600v198l300 -298l-300 -297v197h-600v-197z" />
<glyph unicode="&#xe121;" d="M0 100v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM800 100h100v100h-100v-100z M1000 100h100v100h-100v-100z" />
<glyph unicode="&#xe122;" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM100 500v250v8v8v7t0.5 7t1.5 5.5t2 5t3 4t4.5 3.5t6 1.5t7.5 0.5h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35 q-55 337 -55 351zM1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />
<glyph unicode="&#xe123;" d="M74 350q0 21 13.5 35.5t33.5 14.5h18l117 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5q-18 -36 -18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-8 -3 -23 -8.5 t-65 -20t-103 -25t-132.5 -19.5t-158.5 -9q-125 0 -245.5 20.5t-178.5 40.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />
<glyph unicode="&#xe124;" d="M21 445l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180l-155 180l-45 -233l-224 78l78 -225l-233 -44l179 -156z" />
<glyph unicode="&#xe125;" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q124 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 213l100 212h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" />
<glyph unicode="&#xe126;" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q124 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" />
<glyph unicode="&#xe127;" d="M8 200v600h200v-600h-200zM308 275v525q0 17 14 35.5t28 28.5l14 9l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341 q-7 0 -90 81t-83 94zM408 289l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83l-339 -236v-503z" />
<glyph unicode="&#xe128;" d="M-101 651q0 72 54 110t139 38l302 -1l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 17 -10.5t26.5 -26t16.5 -36.5v-526q0 -13 -86 -93.5t-94 -80.5h-341q-16 0 -29.5 20t-19.5 41l-130 339h-107q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l107 89v502l-343 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM1000 201v600h200v-600h-200z" />
<glyph unicode="&#xe129;" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6.5v7.5v6.5v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" />
<glyph unicode="&#xe130;" d="M2 585q-16 -31 6 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85q0 -51 -0.5 -153.5t-0.5 -148.5q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM77 565l236 339h503 l89 -100v-294l-340 -130q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />
<glyph unicode="&#xe131;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM298 701l2 -201h300l-2 -194l402 294l-402 298v-197h-300z" />
<glyph unicode="&#xe132;" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l402 -294l-2 194h300l2 201h-300v197z" />
<glyph unicode="&#xe133;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" />
<glyph unicode="&#xe134;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" />
<glyph unicode="&#xe135;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -33 5.5 -92.5t7.5 -87.5q0 -9 17 -44t16 -60 q12 0 23 -5.5t23 -15t20 -13.5q24 -12 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55t-20 -57q42 -71 87 -80q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q104 -3 221 112q30 29 47 47t34.5 49t20.5 62q-14 9 -37 9.5t-36 7.5q-14 7 -49 15t-52 19q-9 0 -39.5 -0.5 t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5t5.5 57.5 q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 39 2 44q31 -13 58 -14.5t39 3.5l11 4q7 36 -16.5 53.5t-64.5 28.5t-56 23q-19 -3 -37 0 q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -45.5 0.5t-45.5 -2.5q-21 -7 -52 -26.5t-34 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -90.5t-29.5 -79.5zM518 916q3 12 16 30t16 25q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -24 17 -66.5t17 -43.5 q-9 2 -31 5t-36 5t-32 8t-30 14zM692 1003h1h-1z" />
<glyph unicode="&#xe136;" d="M0 164.5q0 21.5 15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138l145 -232l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5z" />
<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M0 196v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 596v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5zM0 996v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM600 596h500v100h-500v-100zM800 196h300v100h-300v-100zM900 996h200v100h-200v-100z" />
<glyph unicode="&#xe138;" d="M100 1100v100h1000v-100h-1000zM150 1000h900l-350 -500v-300l-200 -200v500z" />
<glyph unicode="&#xe139;" d="M0 200v200h1200v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500z M500 1000h200v100h-200v-100z" />
<glyph unicode="&#xe140;" d="M0 0v400l129 -129l200 200l142 -142l-200 -200l129 -129h-400zM0 800l129 129l200 -200l142 142l-200 200l129 129h-400v-400zM729 329l142 142l200 -200l129 129v-400h-400l129 129zM729 871l200 200l-129 129h400v-400l-129 129l-200 -200z" />
<glyph unicode="&#xe141;" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM514 609q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-14 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" />
<glyph unicode="&#xe142;" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -78.5 -16.5t-67.5 -51.5l-389 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23 q38 0 53 -36q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60 l517 511q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" />
<glyph unicode="&#xe143;" d="M80 784q0 131 98.5 229.5t230.5 98.5q143 0 241 -129q103 129 246 129q129 0 226 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100q-71 70 -104.5 105.5t-77 89.5t-61 99 t-17.5 91zM250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-105 48.5q-74 0 -132 -83l-118 -171l-114 174q-51 80 -123 80q-60 0 -109.5 -49.5t-49.5 -118.5z" />
<glyph unicode="&#xe144;" d="M57 353q0 -95 66 -159l141 -142q68 -66 159 -66q93 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-8 9 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141q7 -7 19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -17q47 -49 77 -100l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />
<glyph unicode="&#xe145;" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM300 300h600v700h-600v-700zM496 150q0 -43 30.5 -73.5t73.5 -30.5t73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5 t-73.5 -30.5t-30.5 -73.5z" />
<glyph unicode="&#xe146;" d="M0 0l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207z" />
<glyph unicode="&#xe148;" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335q-6 1 -15.5 4t-11.5 3q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5 v-307l64 -14q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5 zM700 237q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />
<glyph unicode="&#xe149;" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -28 16.5 -69.5t28 -62.5t41.5 -72h241v-100h-197q8 -50 -2.5 -115 t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q33 1 103 -16t103 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221z" />
<glyph unicode="&#xe150;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM602 900l298 300l298 -300h-198v-900h-200v900h-198z" />
<glyph unicode="&#xe151;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v200h100v-100h200v-100h-300zM700 400v100h300v-200h-99v-100h-100v100h99v100h-200zM700 700v500h300v-500h-100v100h-100v-100h-100zM801 900h100v200h-100v-200z" />
<glyph unicode="&#xe152;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v500h300v-500h-100v100h-100v-100h-100zM700 700v200h100v-100h200v-100h-300zM700 1100v100h300v-200h-99v-100h-100v100h99v100h-200zM801 200h100v200h-100v-200z" />
<glyph unicode="&#xe153;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 100v400h300v-500h-100v100h-200zM800 1100v100h200v-500h-100v400h-100zM901 200h100v200h-100v-200z" />
<glyph unicode="&#xe154;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 400v100h200v-500h-100v400h-100zM800 800v400h300v-500h-100v100h-200zM901 900h100v200h-100v-200z" />
<glyph unicode="&#xe155;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h500v-200h-500zM700 400v200h400v-200h-400zM700 700v200h300v-200h-300zM700 1000v200h200v-200h-200z" />
<glyph unicode="&#xe156;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h200v-200h-200zM700 400v200h300v-200h-300zM700 700v200h400v-200h-400zM700 1000v200h500v-200h-500z" />
<glyph unicode="&#xe157;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q162 0 281 -118.5t119 -281.5v-300q0 -165 -118.5 -282.5t-281.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500z" />
<glyph unicode="&#xe158;" d="M0 400v300q0 163 119 281.5t281 118.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-163 0 -281.5 117.5t-118.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM400 300l333 250l-333 250v-500z" />
<glyph unicode="&#xe159;" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 700l250 -333l250 333h-500z" />
<glyph unicode="&#xe160;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 400h500l-250 333z" />
<glyph unicode="&#xe161;" d="M0 400v300h300v200l400 -350l-400 -350v200h-300zM500 0v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400z" />
<glyph unicode="&#xe162;" d="M217 519q8 -19 31 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8h9q14 0 26 15q11 13 274.5 321.5t264.5 308.5q14 19 5 36q-8 17 -31 17l-301 -1q1 4 78 219.5t79 227.5q2 15 -5 27l-9 9h-9q-15 0 -25 -16q-4 -6 -98 -111.5t-228.5 -257t-209.5 -237.5q-16 -19 -6 -41 z" />
<glyph unicode="&#xe163;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300zM600 400v300h300v200l400 -350l-400 -350v200h-300z " />
<glyph unicode="&#xe164;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98l-78 73l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5 v-300zM496 709l353 342l-149 149h500v-500l-149 149l-342 -353z" />
<glyph unicode="&#xe165;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM406 600 q0 80 57 137t137 57t137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137z" />
<glyph unicode="&#xe166;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 800l445 -500l450 500h-295v400h-300v-400h-300zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe167;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 700h300v-300h300v300h295l-445 500zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe168;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 705l305 -305l596 596l-154 155l-442 -442l-150 151zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe169;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 400l697 1l3 699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe170;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l249 -237l-1 697zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe171;" d="M23 415l1177 784v-1079l-475 272l-310 -393v416h-392zM494 210l672 938l-672 -712v-226z" />
<glyph unicode="&#xe172;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200z" />
<glyph unicode="&#xe173;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120l-126 -127h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM581 306l123 123l120 -120l353 352l123 -123l-475 -476zM600 1000h100v200h-100v-200z" />
<glyph unicode="&#xe174;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-269l-103 -103l-170 170l-298 -298h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200zM700 133l170 170l-170 170l127 127l170 -170l170 170l127 -128l-170 -169l170 -170 l-127 -127l-170 170l-170 -170z" />
<glyph unicode="&#xe175;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-300h-400v-200h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300l300 -300l300 300h-200v300h-200v-300h-200zM600 1000v200h100v-200h-100z" />
<glyph unicode="&#xe176;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200l-298 -298h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300h200v-300h200v300h200l-300 300zM600 1000v200h100v-200h-100z" />
<glyph unicode="&#xe177;" d="M0 250q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200v-550zM0 900h1200v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 300v200h400v-200h-400z" />
<glyph unicode="&#xe178;" d="M0 400l300 298v-198h400v-200h-400v-198zM100 800v200h100v-200h-100zM300 800v200h100v-200h-100zM500 800v200h400v198l300 -298l-300 -298v198h-400zM800 300v200h100v-200h-100zM1000 300h100v200h-100v-200z" />
<glyph unicode="&#xe179;" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -116q-25 -17 -43.5 -51.5t-18.5 -65.5v-359z" />
<glyph unicode="&#xe180;" d="M100 0h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5 t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56z" />
<glyph unicode="&#xe181;" d="M0 300q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM100 100h400l200 200h105l295 98v-298h-425l-100 -100h-375zM100 300v200h300v-200h-300zM100 600v200h300v-200h-300z M100 1000h400l200 -200v-98l295 98h105v200h-425l-100 100h-375zM700 402v163l400 133v-163z" />
<glyph unicode="&#xe182;" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q17 18 13.5 41t-22.5 37l-192 136q-19 14 -45 12t-42 -19l-118 -118q-142 101 -268 227t-227 268l118 118q17 17 20 41.5t-11 44.5 l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" />
<glyph unicode="&#xe183;" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-20 0 -35 14.5t-15 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" />
<glyph unicode="&#xe184;" d="M100 0v100h1100v-100h-1100zM175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250z" />
<glyph unicode="&#xe185;" d="M100 0h300v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400zM500 0v1000q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300zM900 0v700q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300z" />
<glyph unicode="&#xe186;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
<glyph unicode="&#xe187;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h100v200h100v-200h100v500h-100v-200h-100v200h-100v-500zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
<glyph unicode="&#xe188;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v100h-200v300h200v100h-300v-500zM600 300h300v100h-200v300h200v100h-300v-500z" />
<glyph unicode="&#xe189;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 550l300 -150v300zM600 400l300 150l-300 150v-300z" />
<glyph unicode="&#xe190;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300v500h700v-500h-700zM300 400h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130v-300zM575 549 q0 -65 27 -107t68 -42h130v300h-130q-38 0 -66.5 -43t-28.5 -108z" />
<glyph unicode="&#xe191;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
<glyph unicode="&#xe192;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v400h-200v100h-100v-500zM301 400v200h100v-200h-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
<glyph unicode="&#xe193;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 700v100h300v-300h-99v-100h-100v100h99v200h-200zM201 300v100h100v-100h-100zM601 300v100h100v-100h-100z M700 700v100h200v-500h-100v400h-100z" />
<glyph unicode="&#xe194;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 500v200 l100 100h300v-100h-300v-200h300v-100h-300z" />
<glyph unicode="&#xe195;" d="M0 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 400v400h300 l100 -100v-100h-100v100h-200v-100h200v-100h-200v-100h-100zM700 400v100h100v-100h-100z" />
<glyph unicode="&#xe197;" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300h200 l-300 -300z" />
<glyph unicode="&#xe198;" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104.5t60.5 178.5q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" />
<glyph unicode="&#xe199;" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />
<glyph unicode="&#xe200;" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -11.5t1 -11.5q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 62 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,271 @@
/*
Counter block mode compatible with Dr Brian Gladman fileenc.c
derived from CryptoJS.mode.CTR
Jan Hruby jhruby.web@gmail.com
(c) 2012 by C?dric Mesnil. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
MIT License (c) copyright 2013-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors MIT License (c) copyright 2010-2014 original author or authors */
!function(la){if("object"==typeof exports)module.exports=la();else if("function"==typeof define&&define.amd)define(la);else{var h;"undefined"!=typeof window?h=window:"undefined"!=typeof global?h=global:"undefined"!=typeof self&&(h=self);h.autobahn=la()}}(function(){return function h(p,k,b){function a(d,e){if(!k[d]){if(!p[d]){var q="function"==typeof require&&require;if(!e&&q)return q(d,!0);if(c)return c(d,!0);throw Error("Cannot find module '"+d+"'");}q=k[d]={exports:{}};p[d][0].call(q.exports,function(c){var n=
p[d][1][c];return a(n?n:c)},q,q.exports,h,p,k,b)}return k[d].exports}for(var c="function"==typeof require&&require,e=0;e<b.length;e++)a(b[e]);return a}({1:[function(h,p,k){function b(){}h=p.exports={};h.nextTick=function(){if("undefined"!==typeof window&&window.setImmediate)return function(a){return window.setImmediate(a)};if("undefined"!==typeof window&&window.postMessage&&window.addEventListener){var a=[];window.addEventListener("message",function(c){var b=c.source;b!==window&&null!==b||"process-tick"!==
c.data||(c.stopPropagation(),0<a.length&&a.shift()())},!0);return function(c){a.push(c);window.postMessage("process-tick","*")}}return function(a){setTimeout(a,0)}}();h.title="browser";h.browser=!0;h.env={};h.argv=[];h.on=b;h.once=b;h.off=b;h.emit=b;h.binding=function(a){throw Error("process.binding is not supported");};h.cwd=function(){return"/"};h.chdir=function(a){throw Error("process.chdir is not supported");}},{}],2:[function(h,p,k){var b=h("crypto-js");k.sign=function(a,c){return b.HmacSHA256(c,
a).toString(b.enc.Base64)};k.derive_key=function(a,c,e,d){return b.PBKDF2(a,c,{keySize:(d||32)/4,iterations:e||1E3,hasher:b.algo.SHA256}).toString(b.enc.Base64)}},{"crypto-js":28}],3:[function(h,p,k){h("when");h("when/function");k.auth=function(b,a,c){var e=b.defer();navigator.id.watch({loggedInUser:a,onlogin:function(a){e.resolve(a)},onlogout:function(){b.leave("wamp.close.logout")}});return e.promise.then?e.promise:e}},{when:77,"when/function":54}],4:[function(h,p,k){var b="undefined"!==typeof self?
self:"undefined"!==typeof window?window:{};h("./polyfill.js");p=h("../package.json");var a=h("when");"AUTOBAHN_DEBUG"in b&&AUTOBAHN_DEBUG&&(h("when/monitor/console"),"console"in b&&console.log("AutobahnJS debug enabled"));var b=h("./util.js"),c=h("./log.js"),e=h("./session.js"),d=h("./connection.js"),m=h("./configure.js"),q=h("./auth/persona.js");h=h("./auth/cra.js");k.version=p.version;k.transports=m.transports;k.Connection=d.Connection;k.Session=e.Session;k.Invocation=e.Invocation;k.Event=e.Event;
k.Result=e.Result;k.Error=e.Error;k.Subscription=e.Subscription;k.Registration=e.Registration;k.Publication=e.Publication;k.auth_persona=q.auth;k.auth_cra=h;k.when=a;k.util=b;k.log=c},{"../package.json":79,"./auth/cra.js":2,"./auth/persona.js":3,"./configure.js":5,"./connection.js":6,"./log.js":7,"./polyfill.js":8,"./session.js":16,"./util.js":19,when:77,"when/monitor/console":75}],5:[function(h,p,k){function b(){this._repository={}}b.prototype.register=function(a,b){this._repository[a]=b};b.prototype.isRegistered=
function(a){return this._repository[a]?!0:!1};b.prototype.get=function(a){if(void 0!==this._repository[a])return this._repository[a];throw"no such transport: "+a;};b.prototype.list=function(){var a=[],b;for(b in this._repository)a.push(b);return a};p=new b;var a=h("./transport/websocket.js");p.register("websocket",a.Factory);h=h("./transport/longpoll.js");p.register("longpoll",h.Factory);k.transports=p},{"./transport/longpoll.js":17,"./transport/websocket.js":18}],6:[function(h,p,k){(function(b){var a=
h("when"),c=h("./session.js"),e=h("./util.js"),d=h("./log.js"),m=h("./autobahn.js"),q=function(c){(this._options=c)&&c.use_es6_promises?"Promise"in b?this._defer=function(){var a={};a.promise=new Promise(function(c,g){a.resolve=c;a.reject=g});return a}:(d.debug("Warning: ES6 promises requested, but not found! Falling back to whenjs."),this._defer=a.defer):this._defer=c&&c.use_deferred?c.use_deferred:a.defer;this._options.transports||(this._options.transports=[{type:"websocket",url:this._options.url}]);
this._transport_factories=[];this._init_transport_factories();this._session_close_message=this._session_close_reason=this._session=null;this._retry_if_unreachable=void 0!==this._options.retry_if_unreachable?this._options.retry_if_unreachable:!0;this._max_retries=this._options.max_retries||15;this._initial_retry_delay=this._options.initial_retry_delay||1.5;this._max_retry_delay=this._options.max_retry_delay||300;this._retry_delay_growth=this._options.retry_delay_growth||1.5;this._retry_delay_jitter=
this._options.retry_delay_jitter||0.1;this._connect_successes=0;this._retry=!1;this._retry_count=0;this._retry_delay=this._initial_retry_delay;this._is_retrying=!1;this._retry_timer=null};q.prototype._create_transport=function(){for(var a=0;a<this._transport_factories.length;++a){var c=this._transport_factories[a];d.debug("trying to create WAMP transport of type: "+c.type);try{var l=c.create();if(l)return d.debug("using WAMP transport type: "+c.type),l}catch(b){d.debug("could not create WAMP transport '"+
c.type+"': "+b)}}return null};q.prototype._init_transport_factories=function(){var a,c,l;e.assert(this._options.transports,"No transport.factory specified");for(var b=0;b<this._options.transports.length;++b){a=this._options.transports[b];a.url||(a.url=this._options.url);a.protocols||(a.protocols=this._options.protocols);e.assert(a.type,"No transport.type specified");e.assert("string"===typeof a.type,"transport.type must be a string");try{if(l=m.transports.get(a.type))c=new l(a),this._transport_factories.push(c)}catch(d){console.error(d)}}};
q.prototype._autoreconnect_reset_timer=function(){this._retry_timer&&clearTimeout(this._retry_timer);this._retry_timer=null};q.prototype._autoreconnect_reset=function(){this._autoreconnect_reset_timer();this._retry_count=0;this._retry_delay=this._initial_retry_delay;this._is_retrying=!1};q.prototype._autoreconnect_advance=function(){this._retry_delay_jitter&&(this._retry_delay=e.rand_normal(this._retry_delay,this._retry_delay*this._retry_delay_jitter));this._retry_delay>this._max_retry_delay&&(this._retry_delay=
this._max_retry_delay);this._retry_count+=1;var a;a=this._retry&&this._retry_count<=this._max_retries?{count:this._retry_count,delay:this._retry_delay,will_retry:!0}:{count:null,delay:null,will_retry:!1};this._retry_delay_growth&&(this._retry_delay*=this._retry_delay_growth);return a};q.prototype.open=function(){function a(){b._transport=b._create_transport();if(b._transport)b._session=new c.Session(b._transport,b._defer,b._options.onchallenge),b._session_close_reason=null,b._session_close_message=
null,b._transport.onopen=function(){b._autoreconnect_reset();b._connect_successes+=1;b._session.join(b._options.realm,b._options.authmethods,b._options.authid)},b._session.onjoin=function(a){if(b.onopen)try{b.onopen(b._session,a)}catch(c){d.debug("Exception raised from app code while firing Connection.onopen()",c)}},b._session.onleave=function(a,c){b._session_close_reason=a;b._session_close_message=c.message||"";b._retry=!1;b._transport.close(1E3)},b._transport.onclose=function(c){b._autoreconnect_reset_timer();
var e=b._transport=null;0===b._connect_successes?(e="unreachable",b._retry_if_unreachable||(b._retry=!1)):e=c.wasClean?"closed":"lost";c=b._autoreconnect_advance();if(b.onclose){var m={reason:b._session_close_reason,message:b._session_close_message,retry_delay:c.delay,retry_count:c.count,will_retry:c.will_retry};try{var q=b.onclose(e,m)}catch(v){d.debug("Exception raised from app code while firing Connection.onclose()",v)}}b._session&&(b._session._id=null,b._session=null,b._session_close_reason=null,
b._session_close_message=null);b._retry&&!q&&(c.will_retry?(b._is_retrying=!0,d.debug("retrying in "+c.delay+" s"),b._retry_timer=setTimeout(a,1E3*c.delay)):d.debug("giving up trying to reconnect"))};else if(b._retry=!1,b.onclose)b.onclose("unsupported",{reason:null,message:null,retry_delay:null,retry_count:null,will_retry:!1})}var b=this;if(b._transport)throw"connection already open (or opening)";b._autoreconnect_reset();b._retry=!0;a()};q.prototype.close=function(a,c){if(!this._transport&&!this._is_retrying)throw"connection already closed";
this._retry=!1;this._session&&this._session.isOpen?this._session.leave(a,c):this._transport&&this._transport.close(1E3)};Object.defineProperty(q.prototype,"defer",{get:function(){return this._defer}});Object.defineProperty(q.prototype,"session",{get:function(){return this._session}});Object.defineProperty(q.prototype,"isOpen",{get:function(){return this._session&&this._session.isOpen?!0:!1}});Object.defineProperty(q.prototype,"isConnected",{get:function(){return this._transport?!0:!1}});Object.defineProperty(q.prototype,
"transport",{get:function(){return this._transport?this._transport:{info:{type:"none",url:null,protocol:null}}}});Object.defineProperty(q.prototype,"isRetrying",{get:function(){return this._is_retrying}});k.Connection=q}).call(this,"undefined"!==typeof self?self:"undefined"!==typeof window?window:{})},{"./autobahn.js":4,"./log.js":7,"./session.js":16,"./util.js":19,when:77}],7:[function(h,p,k){(function(b){var a=function(){};"AUTOBAHN_DEBUG"in b&&AUTOBAHN_DEBUG&&"console"in b&&(a=function(){console.log.apply(console,
arguments)});k.debug=a}).call(this,"undefined"!==typeof self?self:"undefined"!==typeof window?window:{})},{}],8:[function(h,p,k){h("./polyfill/object");h("./polyfill/array");h("./polyfill/string");h("./polyfill/function");h("./polyfill/console");h("./polyfill/typedarray");h("./polyfill/json")},{"./polyfill/array":9,"./polyfill/console":10,"./polyfill/function":11,"./polyfill/json":12,"./polyfill/object":13,"./polyfill/string":14,"./polyfill/typedarray":15}],9:[function(h,p,k){"function"!==typeof Array.prototype.reduce&&
(Array.prototype.reduce=function(b){var a,c,e,d;if(null===this||"undefined"===typeof this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!==typeof b)throw new TypeError(b+" is not a function");c=Object(this);a=c.length>>>0;d=0;if(2<=arguments.length)e=arguments[1];else{for(;d<a&&!d in c;)d++;if(d>=a)throw new TypeError("Reduce of empty array with no initial value");e=c[d++]}for(;d<a;d++)d in c&&(e=b(e,c[d],d,c));return e});"indexOf"in Array.prototype||(Array.prototype.indexOf=
function(b,a){void 0===a&&(a=0);0>a&&(a+=this.length);0>a&&(a=0);for(var c=this.length;a<c;a++)if(a in this&&this[a]===b)return a;return-1});"lastIndexOf"in Array.prototype||(Array.prototype.lastIndexOf=function(b,a){void 0===a&&(a=this.length-1);0>a&&(a+=this.length);a>this.length-1&&(a=this.length-1);for(a++;0<a--;)if(a in this&&this[a]===b)return a;return-1});"forEach"in Array.prototype||(Array.prototype.forEach=function(b,a){for(var c=0,e=this.length;c<e;c++)c in this&&b.call(a,this[c],c,this)});
"map"in Array.prototype||(Array.prototype.map=function(b,a){for(var c=Array(this.length),e=0,d=this.length;e<d;e++)e in this&&(c[e]=b.call(a,this[e],e,this));return c});"filter"in Array.prototype||(Array.prototype.filter=function(b,a){for(var c=[],e,d=0,m=this.length;d<m;d++)d in this&&b.call(a,e=this[d],d,this)&&c.push(e);return c});"every"in Array.prototype||(Array.prototype.every=function(b,a){for(var c=0,e=this.length;c<e;c++)if(c in this&&!b.call(a,this[c],c,this))return!1;return!0});"some"in
Array.prototype||(Array.prototype.some=function(b,a){for(var c=0,e=this.length;c<e;c++)if(c in this&&b.call(a,this[c],c,this))return!0;return!1});"function"!==typeof Array.prototype.reduceRight&&(Array.prototype.reduceRight=function(b){if(null===this||"undefined"===typeof this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!==typeof b)throw new TypeError(b+" is not a function");var a=Object(this),c=(a.length>>>0)-1,e;if(2<=arguments.length)e=arguments[1];else{for(;0<=
c&&!c in a;)c--;if(0>c)throw new TypeError("Reduce of empty array with no initial value");e=a[c--]}for(;0<=c;c--)c in a&&(e=b(e,a[c],c,a));return e})},{}],10:[function(h,p,k){(function(b){(function(a){a||(a=window.console={log:function(a,b,d,m,q){},info:function(a,b,d,m,q){},warn:function(a,b,d,m,q){},error:function(a,b,d,m,q){},assert:function(a,b){}});"object"===typeof a.log&&(a.log=Function.prototype.call.bind(a.log,a),a.info=Function.prototype.call.bind(a.info,a),a.warn=Function.prototype.call.bind(a.warn,
a),a.error=Function.prototype.call.bind(a.error,a),a.debug=Function.prototype.call.bind(a.info,a));"group"in a||(a.group=function(b){a.info("\n--- "+b+" ---\n")});"groupEnd"in a||(a.groupEnd=function(){a.log("\n")});"assert"in a||(a.assert=function(a,b){if(!a)try{throw Error("assertion failed: "+b);}catch(d){setTimeout(function(){throw d;},0)}});"time"in a||function(){var b={};a.time=function(a){b[a]=(new Date).getTime()};a.timeEnd=function(e){var d=(new Date).getTime();a.info(e+": "+(e in b?d-b[e]:
0)+"ms")}}()})(b.console)}).call(this,"undefined"!==typeof self?self:"undefined"!==typeof window?window:{})},{}],11:[function(h,p,k){Function.prototype.bind||(Function.prototype.bind=function(b){var a=this,c=Array.prototype.slice.call(arguments,1);return function(){return a.apply(b,Array.prototype.concat.apply(c,arguments))}})},{}],12:[function(h,p,k){"object"!==typeof JSON&&(JSON={});(function(){function b(a){return 10>a?"0"+a:a}function a(a){d.lastIndex=0;return d.test(a)?'"'+a.replace(d,function(a){var b=
g[a];return"string"===typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function c(b,g){var d,e,v,y,H=m,f,x=g[b];x&&"object"===typeof x&&"function"===typeof x.toJSON&&(x=x.toJSON(b));"function"===typeof n&&(x=n.call(g,b,x));switch(typeof x){case "string":return a(x);case "number":return isFinite(x)?String(x):"null";case "boolean":case "null":return String(x);case "object":if(!x)return"null";m+=q;f=[];if("[object Array]"===Object.prototype.toString.apply(x)){y=x.length;
for(d=0;d<y;d+=1)f[d]=c(d,x)||"null";v=0===f.length?"[]":m?"[\n"+m+f.join(",\n"+m)+"\n"+H+"]":"["+f.join(",")+"]";m=H;return v}if(n&&"object"===typeof n)for(y=n.length,d=0;d<y;d+=1)"string"===typeof n[d]&&(e=n[d],(v=c(e,x))&&f.push(a(e)+(m?": ":":")+v));else for(e in x)Object.prototype.hasOwnProperty.call(x,e)&&(v=c(e,x))&&f.push(a(e)+(m?": ":":")+v);v=0===f.length?"{}":m?"{\n"+m+f.join(",\n"+m)+"\n"+H+"}":"{"+f.join(",")+"}";m=H;return v}}"function"!==typeof Date.prototype.toJSON&&(Date.prototype.toJSON=
function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+b(this.getUTCMonth()+1)+"-"+b(this.getUTCDate())+"T"+b(this.getUTCHours())+":"+b(this.getUTCMinutes())+":"+b(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()});var e,d,m,q,g,n;"function"!==typeof JSON.stringify&&(d=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,g={"\b":"\\b",
"\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},JSON.stringify=function(a,b,g){var d;q=m="";if("number"===typeof g)for(d=0;d<g;d+=1)q+=" ";else"string"===typeof g&&(q=g);if((n=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});"function"!==typeof JSON.parse&&(e=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,JSON.parse=function(a,b){function c(a,
g){var d,f,l=a[g];if(l&&"object"===typeof l)for(d in l)Object.prototype.hasOwnProperty.call(l,d)&&(f=c(l,d),void 0!==f?l[d]=f:delete l[d]);return b.call(a,g,l)}var g;a=String(a);e.lastIndex=0;e.test(a)&&(a=a.replace(e,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return g=eval("("+
a+")"),"function"===typeof b?c({"":g},""):g;throw new SyntaxError("JSON.parse");})})();k.JSON=JSON},{}],13:[function(h,p,k){Object.create||(Object.create=function(){function b(){}return function(a){if(1!=arguments.length)throw Error("Object.create implementation only accepts one parameter.");b.prototype=a;return new b}}());Object.keys||(Object.keys=function(){var b=Object.prototype.hasOwnProperty,a=!{toString:null}.propertyIsEnumerable("toString"),c="toString toLocaleString valueOf hasOwnProperty isPrototypeOf propertyIsEnumerable constructor".split(" "),
e=c.length;return function(d){if("object"!==typeof d&&("function"!==typeof d||null===d))throw new TypeError("Object.keys called on non-object");var m=[],q;for(q in d)b.call(d,q)&&m.push(q);if(a)for(q=0;q<e;q++)b.call(d,c[q])&&m.push(c[q]);return m}}())},{}],14:[function(h,p,k){"trim"in String.prototype||(String.prototype.trim=function(){return this.replace(/^\s+/,"").replace(/\s+$/,"")})},{}],15:[function(h,p,k){(function(b){"undefined"===typeof b.Uint8Array&&function(a,b){function e(a){switch(typeof a){case "undefined":return"undefined";
case "boolean":return"boolean";case "number":return"number";case "string":return"string";default:return null===a?"null":"object"}}function d(a){return Object.prototype.toString.call(a).replace(/^\[object *|\]$/g,"")}function m(a){return"function"===typeof a}function q(a){if(null===a||a===s)throw TypeError();return Object(a)}function g(a){function b(f){Object.defineProperty(a,f,{get:function(){return a._getter(f)},set:function(b){a._setter(f,b)},enumerable:!0,configurable:!1})}if(a.length>t)throw RangeError("Array too large for polyfill");
var f;for(f=0;f<a.length;f+=1)b(f)}function n(a,b){var f=32-b;return a<<f>>f}function l(a,b){var f=32-b;return a<<f>>>f}function z(a){return[a&255]}function h(a){return n(a[0],8)}function w(a){return[a&255]}function v(a){return l(a[0],8)}function y(a){a=aa(Number(a));return[0>a?0:255<a?255:a&255]}function H(a){return[a>>8&255,a&255]}function f(a){return n(a[0]<<8|a[1],16)}function x(a){return[a>>8&255,a&255]}function J(a){return l(a[0]<<8|a[1],16)}function A(a){return[a>>24&255,a>>16&255,a>>8&255,
a&255]}function k(a){return n(a[0]<<24|a[1]<<16|a[2]<<8|a[3],32)}function p(a){return[a>>24&255,a>>16&255,a>>8&255,a&255]}function B(a){return l(a[0]<<24|a[1]<<16|a[2]<<8|a[3],32)}function E(a,b,f){function c(a){var b=V(a);a-=b;return 0.5>a?b:0.5<a?b+1:b%2?b+1:b}var g=(1<<b-1)-1,d,l,e;a!==a?(l=(1<<b)-1,e=O(2,f-1),d=0):Infinity===a||-Infinity===a?(l=(1<<b)-1,e=0,d=0>a?1:0):0===a?(e=l=0,d=-Infinity===1/a?1:0):(d=0>a,a=u(a),a>=O(2,1-g)?(l=R(V(S(a)/r),1023),e=c(a/O(2,l)*O(2,f)),2<=e/O(2,f)&&(l+=1,e=1),
l>g?(l=(1<<b)-1,e=0):(l+=g,e-=O(2,f))):(l=0,e=c(a/O(2,1-g-f))));for(a=[];f;f-=1)a.push(e%2?1:0),e=V(e/2);for(f=b;f;f-=1)a.push(l%2?1:0),l=V(l/2);a.push(d?1:0);a.reverse();b=a.join("");for(d=[];b.length;)d.push(parseInt(b.substring(0,8),2)),b=b.substring(8);return d}function I(a,b,f){var c=[],g,d,l;for(g=a.length;g;g-=1)for(l=a[g-1],d=8;d;d-=1)c.push(l%2?1:0),l>>=1;c.reverse();d=c.join("");a=(1<<b-1)-1;c=parseInt(d.substring(0,1),2)?-1:1;g=parseInt(d.substring(1,1+b),2);d=parseInt(d.substring(1+b),
2);return g===(1<<b)-1?0!==d?NaN:Infinity*c:0<g?c*O(2,g-a)*(1+d/O(2,f)):0!==d?c*O(2,-(a-1))*(d/O(2,f)):0>c?-0:0}function Q(a){return I(a,11,52)}function N(a){return E(a,11,52)}function F(a){return I(a,8,23)}function G(a){return E(a,8,23)}var s=void 0,t=1E5,r=Math.LN2,u=Math.abs,V=Math.floor,S=Math.log,M=Math.max,R=Math.min,O=Math.pow,aa=Math.round;(function(){var a=Object.defineProperty,b;try{b=Object.defineProperty({},"x",{})}catch(f){b=!1}a&&b||(Object.defineProperty=function(b,f,c){if(a)try{return a(b,
f,c)}catch(g){}if(b!==Object(b))throw TypeError("Object.defineProperty called on non-object");Object.prototype.__defineGetter__&&"get"in c&&Object.prototype.__defineGetter__.call(b,f,c.get);Object.prototype.__defineSetter__&&"set"in c&&Object.prototype.__defineSetter__.call(b,f,c.set);"value"in c&&(b[f]=c.value);return b})})();(function(){function l(a){a>>=0;if(0>a)throw RangeError("ArrayBuffer size is not a small enough positive integer.");Object.defineProperty(this,"byteLength",{value:a});Object.defineProperty(this,
"_bytes",{value:Array(a)});for(var b=0;b<a;b+=1)this._bytes[b]=0}function n(){if(!arguments.length||"object"!==typeof arguments[0])return function(a){a>>=0;if(0>a)throw RangeError("length is not a small enough positive integer.");Object.defineProperty(this,"length",{value:a});Object.defineProperty(this,"byteLength",{value:a*this.BYTES_PER_ELEMENT});Object.defineProperty(this,"buffer",{value:new l(this.byteLength)});Object.defineProperty(this,"byteOffset",{value:0})}.apply(this,arguments);if(1<=arguments.length&&
"object"===e(arguments[0])&&arguments[0]instanceof n)return function(a){if(this.constructor!==a.constructor)throw TypeError();var b=a.length*this.BYTES_PER_ELEMENT;Object.defineProperty(this,"buffer",{value:new l(b)});Object.defineProperty(this,"byteLength",{value:b});Object.defineProperty(this,"byteOffset",{value:0});Object.defineProperty(this,"length",{value:a.length});for(b=0;b<this.length;b+=1)this._setter(b,a._getter(b))}.apply(this,arguments);if(1<=arguments.length&&"object"===e(arguments[0])&&
!(arguments[0]instanceof n||arguments[0]instanceof l||"ArrayBuffer"===d(arguments[0])))return function(a){var b=a.length*this.BYTES_PER_ELEMENT;Object.defineProperty(this,"buffer",{value:new l(b)});Object.defineProperty(this,"byteLength",{value:b});Object.defineProperty(this,"byteOffset",{value:0});Object.defineProperty(this,"length",{value:a.length});for(b=0;b<this.length;b+=1)this._setter(b,Number(a[b]))}.apply(this,arguments);if(1<=arguments.length&&"object"===e(arguments[0])&&(arguments[0]instanceof
l||"ArrayBuffer"===d(arguments[0])))return function(a,b,f){b>>>=0;if(b>a.byteLength)throw RangeError("byteOffset out of range");if(b%this.BYTES_PER_ELEMENT)throw RangeError("buffer length minus the byteOffset is not a multiple of the element size.");if(f===s){var c=a.byteLength-b;if(c%this.BYTES_PER_ELEMENT)throw RangeError("length of buffer minus byteOffset not a multiple of the element size");f=c/this.BYTES_PER_ELEMENT}else f>>>=0,c=f*this.BYTES_PER_ELEMENT;if(b+c>a.byteLength)throw RangeError("byteOffset and length reference an area beyond the end of the buffer");
Object.defineProperty(this,"buffer",{value:a});Object.defineProperty(this,"byteLength",{value:c});Object.defineProperty(this,"byteOffset",{value:b});Object.defineProperty(this,"length",{value:f})}.apply(this,arguments);throw TypeError();}function r(a,b,f){var c=function(){Object.defineProperty(this,"constructor",{value:c});n.apply(this,arguments);g(this)};"__proto__"in c?c.__proto__=n:(c.from=n.from,c.of=n.of);c.BYTES_PER_ELEMENT=a;var d=function(){};d.prototype=t;c.prototype=new d;Object.defineProperty(c.prototype,
"BYTES_PER_ELEMENT",{value:a});Object.defineProperty(c.prototype,"_pack",{value:b});Object.defineProperty(c.prototype,"_unpack",{value:f});return c}a.ArrayBuffer=a.ArrayBuffer||l;Object.defineProperty(n,"from",{value:function(a){return new this(a)}});Object.defineProperty(n,"of",{value:function(){return new this(arguments)}});var t={};n.prototype=t;Object.defineProperty(n.prototype,"_getter",{value:function(a){if(1>arguments.length)throw SyntaxError("Not enough arguments");a>>>=0;if(a>=this.length)return s;
var b=[],f,c;f=0;for(c=this.byteOffset+a*this.BYTES_PER_ELEMENT;f<this.BYTES_PER_ELEMENT;f+=1,c+=1)b.push(this.buffer._bytes[c]);return this._unpack(b)}});Object.defineProperty(n.prototype,"get",{value:n.prototype._getter});Object.defineProperty(n.prototype,"_setter",{value:function(a,b){if(2>arguments.length)throw SyntaxError("Not enough arguments");a>>>=0;if(!(a>=this.length)){var f=this._pack(b),c,d;c=0;for(d=this.byteOffset+a*this.BYTES_PER_ELEMENT;c<this.BYTES_PER_ELEMENT;c+=1,d+=1)this.buffer._bytes[d]=
f[c]}}});Object.defineProperty(n.prototype,"constructor",{value:n});Object.defineProperty(n.prototype,"copyWithin",{value:function(a,b,f){var c=q(this),d=c.length>>>0,d=M(d,0);a>>=0;a=0>a?M(d+a,0):R(a,d);b>>=0;b=0>b?M(d+b,0):R(b,d);f=f===s?d:f>>0;f=0>f?M(d+f,0):R(f,d);d=R(f-b,d-a);from<a&&a<b+d?(f=-1,b=b+d-1,a=a+d-1):f=1;for(;0<count;)c._setter(a,c._getter(b)),b+=f,a+=f,d-=1;return c}});Object.defineProperty(n.prototype,"every",{value:function(a,b){if(this===s||null===this)throw TypeError();var f=
Object(this),c=f.length>>>0;if(!m(a))throw TypeError();for(var d=0;d<c;d++)if(!a.call(b,f._getter(d),d,f))return!1;return!0}});Object.defineProperty(n.prototype,"fill",{value:function(a,b,f){var c=q(this),d=c.length>>>0,d=M(d,0);b>>=0;b=0>b?M(d+b,0):R(b,d);f=f===s?d:f>>0;for(d=0>f?M(d+f,0):R(f,d);b<d;)c._setter(b,a),b+=1;return c}});Object.defineProperty(n.prototype,"filter",{value:function(a,b){if(this===s||null===this)throw TypeError();var f=Object(this),c=f.length>>>0;if(!m(a))throw TypeError();
for(var d=[],g=0;g<c;g++){var l=f._getter(g);a.call(b,l,g,f)&&d.push(l)}return new this.constructor(d)}});Object.defineProperty(n.prototype,"find",{value:function(a){var b=q(this),f=b.length>>>0;if(!m(a))throw TypeError();for(var c=1<arguments.length?arguments[1]:s,d=0;d<f;){var g=b._getter(d),l=a.call(c,g,d,b);if(Boolean(l))return g;++d}return s}});Object.defineProperty(n.prototype,"findIndex",{value:function(a){var b=q(this),f=b.length>>>0;if(!m(a))throw TypeError();for(var c=1<arguments.length?
arguments[1]:s,d=0;d<f;){var g=b._getter(d),g=a.call(c,g,d,b);if(Boolean(g))return d;++d}return-1}});Object.defineProperty(n.prototype,"forEach",{value:function(a,b){if(this===s||null===this)throw TypeError();var f=Object(this),c=f.length>>>0;if(!m(a))throw TypeError();for(var d=0;d<c;d++)a.call(b,f._getter(d),d,f)}});Object.defineProperty(n.prototype,"indexOf",{value:function(a){if(this===s||null===this)throw TypeError();var b=Object(this),f=b.length>>>0;if(0===f)return-1;var c=0,d;0<arguments.length&&
(d=Number(arguments[1]),d!==c?c=0:0!==d&&d!==1/0&&d!==-(1/0)&&(c=(0<d||-1)*V(u(d))));if(c>=f)return-1;for(c=0<=c?c:M(f-u(c),0);c<f;c++)if(b._getter(c)===a)return c;return-1}});Object.defineProperty(n.prototype,"join",{value:function(a){if(this===s||null===this)throw TypeError();for(var b=Object(this),f=b.length>>>0,c=Array(f),d=0;d<f;++d)c[d]=b._getter(d);return c.join(a===s?",":a)}});Object.defineProperty(n.prototype,"lastIndexOf",{value:function(a){if(this===s||null===this)throw TypeError();var b=
Object(this),f=b.length>>>0;if(0===f)return-1;var c=f;1<arguments.length&&(c=Number(arguments[1]),c!==c?c=0:0!==c&&c!==1/0&&c!==-(1/0)&&(c=(0<c||-1)*V(u(c))));for(f=0<=c?R(c,f-1):f-u(c);0<=f;f--)if(b._getter(f)===a)return f;return-1}});Object.defineProperty(n.prototype,"map",{value:function(a,b){if(this===s||null===this)throw TypeError();var f=Object(this),c=f.length>>>0;if(!m(a))throw TypeError();var d=[];d.length=c;for(var g=0;g<c;g++)d[g]=a.call(b,f._getter(g),g,f);return new this.constructor(d)}});
Object.defineProperty(n.prototype,"reduce",{value:function(a){if(this===s||null===this)throw TypeError();var b=Object(this),f=b.length>>>0;if(!m(a))throw TypeError();if(0===f&&1===arguments.length)throw TypeError();var c=0,d;for(d=2<=arguments.length?arguments[1]:b._getter(c++);c<f;)d=a.call(s,d,b._getter(c),c,b),c++;return d}});Object.defineProperty(n.prototype,"reduceRight",{value:function(a){if(this===s||null===this)throw TypeError();var b=Object(this),f=b.length>>>0;if(!m(a))throw TypeError();
if(0===f&&1===arguments.length)throw TypeError();var f=f-1,c;for(c=2<=arguments.length?arguments[1]:b._getter(f--);0<=f;)c=a.call(s,c,b._getter(f),f,b),f--;return c}});Object.defineProperty(n.prototype,"reverse",{value:function(){if(this===s||null===this)throw TypeError();for(var a=Object(this),b=a.length>>>0,f=V(b/2),c=0,b=b-1;c<f;++c,--b){var d=a._getter(c);a._setter(c,a._getter(b));a._setter(b,d)}return a}});Object.defineProperty(n.prototype,"set",{value:function(a,b){if(1>arguments.length)throw SyntaxError("Not enough arguments");
var f,c,d,g,l,n;if("object"===typeof arguments[0]&&arguments[0].constructor===this.constructor){f=arguments[0];c=arguments[1]>>>0;if(c+f.length>this.length)throw RangeError("Offset plus length of array is out of range");n=this.byteOffset+c*this.BYTES_PER_ELEMENT;c=f.length*this.BYTES_PER_ELEMENT;if(f.buffer===this.buffer){d=[];g=0;for(l=f.byteOffset;g<c;g+=1,l+=1)d[g]=f.buffer._bytes[l];for(g=0;g<c;g+=1,n+=1)this.buffer._bytes[n]=d[g]}else for(g=0,l=f.byteOffset;g<c;g+=1,l+=1,n+=1)this.buffer._bytes[n]=
f.buffer._bytes[l]}else if("object"===typeof arguments[0]&&"undefined"!==typeof arguments[0].length){f=arguments[0];d=f.length>>>0;c=arguments[1]>>>0;if(c+d>this.length)throw RangeError("Offset plus length of array is out of range");for(g=0;g<d;g+=1)l=f[g],this._setter(c+g,Number(l))}else throw TypeError("Unexpected argument type(s)");}});Object.defineProperty(n.prototype,"slice",{value:function(a,b){for(var f=q(this),c=f.length>>>0,d=a>>0,d=0>d?M(c+d,0):R(d,c),g=b===s?c:b>>0,c=0>g?M(c+g,0):R(g,c),
g=new f.constructor(c-d),l=0;d<c;){var n=f._getter(d);g._setter(l,n);++d;++l}return g}});Object.defineProperty(n.prototype,"some",{value:function(a,b){if(this===s||null===this)throw TypeError();var f=Object(this),c=f.length>>>0;if(!m(a))throw TypeError();for(var d=0;d<c;d++)if(a.call(b,f._getter(d),d,f))return!0;return!1}});Object.defineProperty(n.prototype,"sort",{value:function(a){if(this===s||null===this)throw TypeError();for(var b=Object(this),f=b.length>>>0,c=Array(f),d=0;d<f;++d)c[d]=b._getter(d);
a?c.sort(a):c.sort();for(d=0;d<f;++d)b._setter(d,c[d]);return b}});Object.defineProperty(n.prototype,"subarray",{value:function(a,b){a>>=0;b>>=0;1>arguments.length&&(a=0);2>arguments.length&&(b=this.length);0>a&&(a=this.length+a);0>b&&(b=this.length+b);var f=this.length;a=0>a?0:a>f?f:a;f=this.length;f=(0>b?0:b>f?f:b)-a;0>f&&(f=0);return new this.constructor(this.buffer,this.byteOffset+a*this.BYTES_PER_ELEMENT,f)}});var E=r(1,z,h),S=r(1,w,v),I=r(1,y,v),O=r(2,H,f),aa=r(2,x,J),ha=r(4,A,k),da=r(4,p,B),
U=r(4,G,F),$=r(8,N,Q);a.Int8Array=b.Int8Array=a.Int8Array||E;a.Uint8Array=b.Uint8Array=a.Uint8Array||S;a.Uint8ClampedArray=b.Uint8ClampedArray=a.Uint8ClampedArray||I;a.Int16Array=b.Int16Array=a.Int16Array||O;a.Uint16Array=b.Uint16Array=a.Uint16Array||aa;a.Int32Array=b.Int32Array=a.Int32Array||ha;a.Uint32Array=b.Uint32Array=a.Uint32Array||da;a.Float32Array=b.Float32Array=a.Float32Array||U;a.Float64Array=b.Float64Array=a.Float64Array||$})();(function(){function b(a,f){return m(a.get)?a.get(f):a[f]}
function f(a,b,c){if(!(a instanceof ArrayBuffer||"ArrayBuffer"===d(a)))throw TypeError();b>>>=0;if(b>a.byteLength)throw RangeError("byteOffset out of range");c=c===s?a.byteLength-b:c>>>0;if(b+c>a.byteLength)throw RangeError("byteOffset and length reference an area beyond the end of the buffer");Object.defineProperty(this,"buffer",{value:a});Object.defineProperty(this,"byteLength",{value:c});Object.defineProperty(this,"byteOffset",{value:b})}function c(f){return function(c,d){c>>>=0;if(c+f.BYTES_PER_ELEMENT>
this.byteLength)throw RangeError("Array index out of range");c+=this.byteOffset;for(var g=new a.Uint8Array(this.buffer,c,f.BYTES_PER_ELEMENT),n=[],e=0;e<f.BYTES_PER_ELEMENT;e+=1)n.push(b(g,e));Boolean(d)===Boolean(l)&&n.reverse();return b(new f((new a.Uint8Array(n)).buffer),0)}}function g(f){return function(c,d,g){c>>>=0;if(c+f.BYTES_PER_ELEMENT>this.byteLength)throw RangeError("Array index out of range");d=new f([d]);d=new a.Uint8Array(d.buffer);var n=[],e;for(e=0;e<f.BYTES_PER_ELEMENT;e+=1)n.push(b(d,
e));Boolean(g)===Boolean(l)&&n.reverse();(new Uint8Array(this.buffer,c,f.BYTES_PER_ELEMENT)).set(n)}}var l=function(){var f=new a.Uint16Array([4660]),f=new a.Uint8Array(f.buffer);return 18===b(f,0)}();Object.defineProperty(f.prototype,"getUint8",{value:c(a.Uint8Array)});Object.defineProperty(f.prototype,"getInt8",{value:c(a.Int8Array)});Object.defineProperty(f.prototype,"getUint16",{value:c(a.Uint16Array)});Object.defineProperty(f.prototype,"getInt16",{value:c(a.Int16Array)});Object.defineProperty(f.prototype,
"getUint32",{value:c(a.Uint32Array)});Object.defineProperty(f.prototype,"getInt32",{value:c(a.Int32Array)});Object.defineProperty(f.prototype,"getFloat32",{value:c(a.Float32Array)});Object.defineProperty(f.prototype,"getFloat64",{value:c(a.Float64Array)});Object.defineProperty(f.prototype,"setUint8",{value:g(a.Uint8Array)});Object.defineProperty(f.prototype,"setInt8",{value:g(a.Int8Array)});Object.defineProperty(f.prototype,"setUint16",{value:g(a.Uint16Array)});Object.defineProperty(f.prototype,"setInt16",
{value:g(a.Int16Array)});Object.defineProperty(f.prototype,"setUint32",{value:g(a.Uint32Array)});Object.defineProperty(f.prototype,"setInt32",{value:g(a.Int32Array)});Object.defineProperty(f.prototype,"setFloat32",{value:g(a.Float32Array)});Object.defineProperty(f.prototype,"setFloat64",{value:g(a.Float64Array)});a.DataView=a.DataView||f})()}(k,window);"window"in b&&!("Uint8ClampedArray"in window)&&(window.Uint8ClampedArray=b.Uint8Array)}).call(this,"undefined"!==typeof self?self:"undefined"!==typeof window?
window:{})},{}],16:[function(h,p,k){(function(b){function a(){return Math.floor(9007199254740992*Math.random())}h("when");var c=h("when/function"),e=h("./log.js"),d=h("./util.js");Date.now=Date.now||function(){return+new Date};WAMP_FEATURES={caller:{features:{caller_identification:!0,progressive_call_results:!0}},callee:{features:{progressive_call_results:!0}},publisher:{features:{subscriber_blackwhite_listing:!0,publisher_exclusion:!0,publisher_identification:!0}},subscriber:{features:{publisher_identification:!0}}};
var m=function(a,b){this.caller=a;this.progress=b},q=function(a,b){this.publication=a;this.publisher=b},g=function(a,b){this.args=a||[];this.kwargs=b||{}},n=function(a,b,c){this.error=a;this.args=b||[];this.kwargs=c||{}},l=function(a,b,c,f,d){this.topic=a;this.handler=b;this.options=c||{};this.session=f;this.id=d;this.active=!0};l.prototype.unsubscribe=function(){return this.session.unsubscribe(this)};var z=function(a,b,c,f,d){this.procedure=a;this.endpoint=b;this.options=c||{};this.session=f;this.id=
d;this.active=!0};z.prototype.unregister=function(){return this.session.unregister(this)};var P=function(a){this.id=a},w=function(a,d,H){var f=this;f._socket=a;f._defer=d;f._onchallenge=H;f._id=null;f._realm=null;f._features=null;f._goodbye_sent=!1;f._transport_is_closing=!1;f._publish_reqs={};f._subscribe_reqs={};f._unsubscribe_reqs={};f._call_reqs={};f._register_reqs={};f._unregister_reqs={};f._subscriptions={};f._registrations={};f._invocations={};f._prefixes={};f._send_wamp=function(a){f._socket.send(a)};
f._protocol_violation=function(a){e.debug("failing transport due to protocol violation: "+a);f._socket.close(1002,"protocol violation: "+a)};f._MESSAGE_MAP={};f._MESSAGE_MAP[8]={};f._process_SUBSCRIBED=function(a){var b=a[1];a=a[2];if(b in f._subscribe_reqs){var c=f._subscribe_reqs[b],d=c[0],g=c[1],n=c[2],c=c[3];a in f._subscriptions||(f._subscriptions[a]=[]);g=new l(g,n,c,f,a);f._subscriptions[a].push(g);d.resolve(g);delete f._subscribe_reqs[b]}else f._protocol_violation("SUBSCRIBED received for non-pending request ID "+
b)};f._MESSAGE_MAP[33]=f._process_SUBSCRIBED;f._process_SUBSCRIBE_ERROR=function(a){var b=a[2];b in f._subscribe_reqs?(a=new n(a[4],a[5],a[6]),f._subscribe_reqs[b][0].reject(a),delete f._subscribe_reqs[b]):f._protocol_violation("SUBSCRIBE-ERROR received for non-pending request ID "+b)};f._MESSAGE_MAP[8][32]=f._process_SUBSCRIBE_ERROR;f._process_UNSUBSCRIBED=function(a){a=a[1];if(a in f._unsubscribe_reqs){var b=f._unsubscribe_reqs[a],c=b[0],b=b[1];if(b in f._subscriptions){for(var d=f._subscriptions[b],
g=0;g<d.length;++g)d[g].active=!1;delete f._subscriptions[b]}c.resolve(!0);delete f._unsubscribe_reqs[a]}else f._protocol_violation("UNSUBSCRIBED received for non-pending request ID "+a)};f._MESSAGE_MAP[35]=f._process_UNSUBSCRIBED;f._process_UNSUBSCRIBE_ERROR=function(a){var b=a[2];b in f._unsubscribe_reqs?(a=new n(a[4],a[5],a[6]),f._unsubscribe_reqs[b][0].reject(a),delete f._unsubscribe_reqs[b]):f._protocol_violation("UNSUBSCRIBE-ERROR received for non-pending request ID "+b)};f._MESSAGE_MAP[8][34]=
f._process_UNSUBSCRIBE_ERROR;f._process_PUBLISHED=function(a){var b=a[1],c=a[2];b in f._publish_reqs?(a=f._publish_reqs[b][0],c=new P(c),a.resolve(c),delete f._publish_reqs[b]):f._protocol_violation("PUBLISHED received for non-pending request ID "+b)};f._MESSAGE_MAP[17]=f._process_PUBLISHED;f._process_PUBLISH_ERROR=function(a){var b=a[2];b in f._publish_reqs?(a=new n(a[4],a[5],a[6]),f._publish_reqs[b][0].reject(a),delete f._publish_reqs[b]):f._protocol_violation("PUBLISH-ERROR received for non-pending request ID "+
b)};f._MESSAGE_MAP[8][16]=f._process_PUBLISH_ERROR;f._process_EVENT=function(a){var b=a[1];if(b in f._subscriptions){var c=a[4]||[],d=a[5]||{};a=new q(a[2],a[3].publisher);for(var b=f._subscriptions[b],g=0;g<b.length;++g)try{b[g].handler(c,d,a)}catch(l){e.debug("Exception raised in event handler",l)}}else f._protocol_violation("EVENT received for non-subscribed subscription ID "+b)};f._MESSAGE_MAP[36]=f._process_EVENT;f._process_REGISTERED=function(a){var b=a[1];a=a[2];if(b in f._register_reqs){var c=
f._register_reqs[b],d=c[0],c=new z(c[1],c[2],c[3],f,a);f._registrations[a]=c;d.resolve(c);delete f._register_reqs[b]}else f._protocol_violation("REGISTERED received for non-pending request ID "+b)};f._MESSAGE_MAP[65]=f._process_REGISTERED;f._process_REGISTER_ERROR=function(a){var b=a[2];b in f._register_reqs?(a=new n(a[4],a[5],a[6]),f._register_reqs[b][0].reject(a),delete f._register_reqs[b]):f._protocol_violation("REGISTER-ERROR received for non-pending request ID "+b)};f._MESSAGE_MAP[8][64]=f._process_REGISTER_ERROR;
f._process_UNREGISTERED=function(a){a=a[1];if(a in f._unregister_reqs){var b=f._unregister_reqs[a],c=b[0],b=b[1];b.id in f._registrations&&delete f._registrations[b.id];b.active=!1;c.resolve();delete f._unregister_reqs[a]}else f._protocol_violation("UNREGISTERED received for non-pending request ID "+a)};f._MESSAGE_MAP[67]=f._process_UNREGISTERED;f._process_UNREGISTER_ERROR=function(a){var b=a[2];b in f._unregister_reqs?(a=new n(a[4],a[5],a[6]),f._unregister_reqs[b][0].reject(a),delete f._unregister_reqs[b]):
f._protocol_violation("UNREGISTER-ERROR received for non-pending request ID "+b)};f._MESSAGE_MAP[8][66]=f._process_UNREGISTER_ERROR;f._process_RESULT=function(a){var b=a[1];if(b in f._call_reqs){var c=a[2],d=a[3]||[],l=a[4]||{};a=null;1<d.length||0<Object.keys(l).length?a=new g(d,l):0<d.length&&(a=d[0]);l=f._call_reqs[b];d=l[0];l=l[1];c.progress?l&&l.receive_progress&&d.notify(a):(d.resolve(a),delete f._call_reqs[b])}else f._protocol_violation("CALL-RESULT received for non-pending request ID "+b)};
f._MESSAGE_MAP[50]=f._process_RESULT;f._process_CALL_ERROR=function(a){var b=a[2];b in f._call_reqs?(a=new n(a[4],a[5],a[6]),f._call_reqs[b][0].reject(a),delete f._call_reqs[b]):f._protocol_violation("CALL-ERROR received for non-pending request ID "+b)};f._MESSAGE_MAP[8][48]=f._process_CALL_ERROR;f._process_INVOCATION=function(a){var b=a[1],d=a[2],l=a[3];if(d in f._registrations){var d=f._registrations[d].endpoint,e=a[4]||[];a=a[5]||{};var v=null;l.receive_progress&&(v=function(a,c){var d=[70,b,{progress:!0}];
a=a||[];c=c||{};var g=Object.keys(c).length;if(a.length||g)d.push(a),g&&d.push(c);f._send_wamp(d)});l=new m(l.caller,v);c.call(d,e,a,l).then(function(a){var c=[70,b,{}];if(a instanceof g){var d=Object.keys(a.kwargs).length;if(a.args.length||d)c.push(a.args),d&&c.push(a.kwargs)}else c.push([a]);f._send_wamp(c)},function(a){var c=[8,68,b,{}];if(a instanceof n){c.push(a.error);var d=Object.keys(a.kwargs).length;if(a.args.length||d)c.push(a.args),d&&c.push(a.kwargs)}else c.push("wamp.error.runtime_error"),
c.push([a]);f._send_wamp(c)})}else f._protocol_violation("INVOCATION received for non-registered registration ID "+b)};f._MESSAGE_MAP[68]=f._process_INVOCATION;f._socket.onmessage=function(a){var b=a[0];if(f._id)if(6===b){if(f._goodbye_sent||f._send_wamp([6,{},"wamp.error.goodbye_and_out"]),f._id=null,f._realm=null,f._features=null,b=a[1],a=a[2],f.onleave)f.onleave(a,b)}else if(8===b){var d=a[1];if(d in f._MESSAGE_MAP[8])f._MESSAGE_MAP[b][d](a);else f._protocol_violation("unexpected ERROR message with request_type "+
d)}else if(b in f._MESSAGE_MAP)f._MESSAGE_MAP[b](a);else f._protocol_violation("unexpected message type "+b);else if(2===b){f._id=a[1];b=a[2];f._features={};if(b.roles.broker&&(f._features.subscriber={},f._features.publisher={},b.roles.broker.features)){for(d in WAMP_FEATURES.publisher.features)f._features.publisher[d]=WAMP_FEATURES.publisher.features[d]&&b.roles.broker.features[d];for(d in WAMP_FEATURES.subscriber.features)f._features.subscriber[d]=WAMP_FEATURES.subscriber.features[d]&&b.roles.broker.features[d]}if(b.roles.dealer&&
(f._features.caller={},f._features.callee={},b.roles.dealer.features)){for(d in WAMP_FEATURES.caller.features)f._features.caller[d]=WAMP_FEATURES.caller.features[d]&&b.roles.dealer.features[d];for(d in WAMP_FEATURES.callee.features)f._features.callee[d]=WAMP_FEATURES.callee.features[d]&&b.roles.dealer.features[d]}if(f.onjoin)f.onjoin(a[2])}else if(3===b){if(b=a[1],a=a[2],f.onleave)f.onleave(a,b)}else 4===b?f._onchallenge?c.call(f._onchallenge,f,a[1],a[2]).then(function(a){f._send_wamp([5,a,{}])},
function(a){e.debug("onchallenge() raised:",a);f._send_wamp([3,{message:"sorry, I cannot authenticate (onchallenge handler raised an exception)"},"wamp.error.cannot_authenticate"]);f._socket.close(1E3)}):(e.debug("received WAMP challenge, but no onchallenge() handler set"),a=[3,{message:"sorry, I cannot authenticate (no onchallenge handler set)"},"wamp.error.cannot_authenticate"],f._send_wamp(a),f._socket.close(1E3)):f._protocol_violation("unexpected message type "+b)};f._created="performance"in b&&
"now"in performance?performance.now():Date.now()};Object.defineProperty(w.prototype,"defer",{get:function(){return this._defer}});Object.defineProperty(w.prototype,"id",{get:function(){return this._id}});Object.defineProperty(w.prototype,"realm",{get:function(){return this._realm}});Object.defineProperty(w.prototype,"isOpen",{get:function(){return null!==this.id}});Object.defineProperty(w.prototype,"features",{get:function(){return this._features}});Object.defineProperty(w.prototype,"subscriptions",
{get:function(){for(var a=Object.keys(this._subscriptions),b=[],c=0;c<a.length;++c)b.push(this._subscriptions[a[c]]);return b}});Object.defineProperty(w.prototype,"registrations",{get:function(){for(var a=Object.keys(this._registrations),b=[],c=0;c<a.length;++c)b.push(this._registrations[a[c]]);return b}});w.prototype.log=function(){if("console"in b){var a=null;this._id&&this._created?(a=null,a="performance"in b&&"now"in performance?performance.now()-this._created:Date.now()-this._created,a="WAMP session "+
this._id+" on '"+this._realm+"' at "+Math.round(1E3*a)/1E3+" ms"):a="WAMP session";if("group"in console){console.group(a);for(a=0;a<arguments.length;a+=1)console.log(arguments[a]);console.groupEnd()}else{for(var c=[a+": "],a=0;a<arguments.length;a+=1)c.push(arguments[a]);console.log.apply(console,c)}}};w.prototype.join=function(a,b,c){d.assert("string"===typeof a,"Session.join: <realm> must be a string");d.assert(!b||Array.isArray(b),"Session.join: <authmethods> must be an array []");d.assert(!c||
"string"===typeof c,"Session.join: <authid> must be a string");if(this.isOpen)throw"session already open";this._goodbye_sent=!1;this._realm=a;var f={};f.roles=WAMP_FEATURES;b&&(f.authmethods=b);c&&(f.authid=c);this._send_wamp([1,a,f])};w.prototype.leave=function(a,b){d.assert(!a||"string"===typeof a,"Session.leave: <reason> must be a string");d.assert(!b||"string"===typeof b,"Session.leave: <message> must be a string");if(!this.isOpen)throw"session not open";a||(a="wamp.close.normal");var c={};b&&
(c.message=b);this._send_wamp([6,c,a]);this._goodbye_sent=!0};w.prototype.call=function(b,c,g,f){d.assert("string"===typeof b,"Session.call: <procedure> must be a string");d.assert(!c||Array.isArray(c),"Session.call: <args> must be an array []");d.assert(!g||g instanceof Object,"Session.call: <kwargs> must be an object {}");d.assert(!f||f instanceof Object,"Session.call: <options> must be an object {}");if(!this.isOpen)throw"session not open";var l=a(),n=this._defer();this._call_reqs[l]=[n,f];b=[48,
l,f||{},this.resolve(b)];c&&(b.push(c),g&&b.push(g));this._send_wamp(b);return n.promise.then?n.promise:n};w.prototype.publish=function(b,c,g,f){d.assert("string"===typeof b,"Session.publish: <topic> must be a string");d.assert(!c||Array.isArray(c),"Session.publish: <args> must be an array []");d.assert(!g||g instanceof Object,"Session.publish: <kwargs> must be an object {}");d.assert(!f||f instanceof Object,"Session.publish: <options> must be an object {}");if(!this.isOpen)throw"session not open";
var l=f&&f.acknowledge,n=null,e=a();l&&(n=this._defer(),this._publish_reqs[e]=[n,f]);b=[16,e,f||{},this.resolve(b)];c&&(b.push(c),g&&b.push(g));this._send_wamp(b);if(n)return n.promise.then?n.promise:n};w.prototype.subscribe=function(b,c,g){d.assert("string"===typeof b,"Session.subscribe: <topic> must be a string");d.assert("function"===typeof c,"Session.subscribe: <handler> must be a function");d.assert(!g||g instanceof Object,"Session.subscribe: <options> must be an object {}");if(!this.isOpen)throw"session not open";
var f=a(),l=this._defer();this._subscribe_reqs[f]=[l,b,c,g];c=[32,f];g?c.push(g):c.push({});c.push(this.resolve(b));this._send_wamp(c);return l.promise.then?l.promise:l};w.prototype.register=function(b,c,g){d.assert("string"===typeof b,"Session.register: <procedure> must be a string");d.assert("function"===typeof c,"Session.register: <endpoint> must be a function");d.assert(!g||g instanceof Object,"Session.register: <options> must be an object {}");if(!this.isOpen)throw"session not open";var f=a(),
l=this._defer();this._register_reqs[f]=[l,b,c,g];c=[64,f];g?c.push(g):c.push({});c.push(this.resolve(b));this._send_wamp(c);return l.promise.then?l.promise:l};w.prototype.unsubscribe=function(b){d.assert(b instanceof l,"Session.unsubscribe: <subscription> must be an instance of class autobahn.Subscription");if(!this.isOpen)throw"session not open";if(!(b.active&&b.id in this._subscriptions))throw"subscription not active";var c=this._subscriptions[b.id],g=c.indexOf(b);if(-1===g)throw"subscription not active";
c.splice(g,1);b.active=!1;g=this._defer();c.length?g.resolve(!1):(c=a(),this._unsubscribe_reqs[c]=[g,b.id],this._send_wamp([34,c,b.id]));return g.promise.then?g.promise:g};w.prototype.unregister=function(b){d.assert(b instanceof z,"Session.unregister: <registration> must be an instance of class autobahn.Registration");if(!this.isOpen)throw"session not open";if(!(b.active&&b.id in this._registrations))throw"registration not active";var c=a(),g=this._defer();this._unregister_reqs[c]=[g,b];this._send_wamp([66,
c,b.id]);return g.promise.then?g.promise:g};w.prototype.prefix=function(a,b){d.assert("string"===typeof a,"Session.prefix: <prefix> must be a string");d.assert(!b||"string"===typeof b,"Session.prefix: <uri> must be a string or falsy");b?this._prefixes[a]=b:a in this._prefixes&&delete this._prefixes[a]};w.prototype.resolve=function(a){d.assert("string"===typeof a,"Session.resolve: <curie> must be a string");var b=a.indexOf(":");if(0<=b){var c=a.substring(0,b);if(c in this._prefixes)return this._prefixes[c]+
"."+a.substring(b+1);throw"cannot resolve CURIE prefix '"+c+"'";}return a};k.Session=w;k.Invocation=m;k.Event=q;k.Result=g;k.Error=n;k.Subscription=l;k.Registration=z;k.Publication=P}).call(this,"undefined"!==typeof self?self:"undefined"!==typeof window?window:{})},{"./log.js":7,"./util.js":19,when:77,"when/function":54}],17:[function(h,p,k){function b(b){a.assert(void 0!==b.url,"options.url missing");a.assert("string"===typeof b.url,"options.url must be a string");this._options=b}var a=h("../util.js"),
c=h("../log.js");h("when");b.prototype.type="longpoll";b.prototype.create=function(){var b=this;c.debug("longpoll.Factory.create");var d={protocol:void 0,send:void 0,close:void 0,onmessage:function(){},onopen:function(){},onclose:function(){},info:{type:"longpoll",url:null,protocol:"wamp.2.json"},_run:function(){var m=null,q=!1,g=b._options.request_timeout||2E3;a.http_post(b._options.url+"/open",JSON.stringify({protocols:["wamp.2.json"]}),g).then(function(n){function l(){c.debug("longpoll.Transport: polling for message ...");
a.http_post(z+"/receive",null,g).then(function(a){a&&(a=JSON.parse(a),c.debug("longpoll.Transport: message received",a),d.onmessage(a));q||l()},function(a){c.debug("longpoll.Transport: could not receive message",a.code,a.text);q=!0;d.onclose({code:1001,reason:"transport receive failure (HTTP/POST status "+a.code+" - '"+a.text+"')",wasClean:!1})})}m=JSON.parse(n);var z=b._options.url+"/"+m.transport;d.info.url=z;c.debug("longpoll.Transport: open",m);d.close=function(b,l){if(q)throw"transport is already closing";
q=!0;a.http_post(z+"/close",null,g).then(function(){c.debug("longpoll.Transport: transport closed");d.onclose({code:1E3,reason:"transport closed",wasClean:!0})},function(a){c.debug("longpoll.Transport: could not close transport",a.code,a.text)})};d.send=function(b){if(q)throw"transport is closing or closed already";c.debug("longpoll.Transport: sending message ...",b);b=JSON.stringify(b);a.http_post(z+"/send",b,g).then(function(){c.debug("longpoll.Transport: message sent")},function(a){c.debug("longpoll.Transport: could not send message",
a.code,a.text);q=!0;d.onclose({code:1001,reason:"transport send failure (HTTP/POST status "+a.code+" - '"+a.text+"')",wasClean:!1})})};l();d.onopen()},function(a){c.debug("longpoll.Transport: could not open transport",a.code,a.text);q=!0;d.onclose({code:1001,reason:"transport open failure (HTTP/POST status "+a.code+" - '"+a.text+"')",wasClean:!1})})}};d._run();return d};k.Factory=b},{"../log.js":7,"../util.js":19,when:77}],18:[function(h,p,k){(function(b){function a(a){c.assert(void 0!==a.url,"options.url missing");
c.assert("string"===typeof a.url,"options.url must be a string");a.protocols?c.assert(Array.isArray(a.protocols),"options.protocols must be an array"):a.protocols=["wamp.2.json"];this._options=a}var c=h("../util.js"),e=h("../log.js");a.prototype.type="websocket";a.prototype.create=function(){var a=this,c={protocol:void 0,send:void 0,close:void 0,onmessage:function(){},onopen:function(){},onclose:function(){},info:{type:"websocket",url:null,protocol:"wamp.2.json"}};"window"in b?function(){var b;if("WebSocket"in
window)b=a._options.protocols?new window.WebSocket(a._options.url,a._options.protocols):new window.WebSocket(a._options.url);else if("MozWebSocket"in window)b=a._options.protocols?new window.MozWebSocket(a._options.url,a._options.protocols):new window.MozWebSocket(a._options.url);else throw"browser does not support WebSocket";b.onmessage=function(a){e.debug("WebSocket transport receive",a.data);a=JSON.parse(a.data);c.onmessage(a)};b.onopen=function(){c.info.url=a._options.url;c.onopen()};b.onclose=
function(a){c.onclose({code:a.code,reason:a.message,wasClean:a.wasClean})};c.send=function(a){a=JSON.stringify(a);e.debug("WebSocket transport send",a);b.send(a)};c.close=function(a,c){b.close(a,c)}}():function(){var b=h("ws"),g,n;a._options.protocols?(n=a._options.protocols,Array.isArray(n)&&(n=n.join(",")),g=new b(a._options.url,{protocol:n})):g=new b(a._options.url);c.send=function(a){a=JSON.stringify(a);g.send(a,{binary:!1})};c.close=function(a,b){g.close()};g.on("open",function(){c.onopen()});
g.on("message",function(a,b){if(!b.binary){var d=JSON.parse(a);c.onmessage(d)}});g.on("close",function(a,b){c.onclose({code:a,reason:b,wasClean:1E3===a})});g.on("error",function(a){c.onclose({code:1006,reason:"",wasClean:!1})})}();return c};k.Factory=a}).call(this,"undefined"!==typeof self?self:"undefined"!==typeof window?window:{})},{"../log.js":7,"../util.js":19,ws:78}],19:[function(h,p,k){(function(b){var a=h("./log.js"),c=h("when"),e=function(a,c){if(!a){if(e.useDebugger||"AUTOBAHN_DEBUG"in b&&
AUTOBAHN_DEBUG)debugger;throw Error(c||"Assertion failed!");}};k.rand_normal=function(a,b){var c,g;do c=2*Math.random()-1,g=2*Math.random()-1,g=c*c+g*g;while(1<=g||0==g);g=Math.sqrt(-2*Math.log(g)/g);return(a||0)+c*g*(b||1)};k.assert=e;k.http_post=function(b,e,q){a.debug("new http_post request",b,e,q);var g=c.defer(),n=new XMLHttpRequest;n.onreadystatechange=function(){if(4===n.readyState){var a=1223===n.status?204:n.status;200===a&&g.resolve(n.responseText);if(204===a)g.resolve();else{var b=null;
try{b=n.statusText}catch(c){}g.reject({code:a,text:b})}}};n.open("POST",b,!0);n.setRequestHeader("Content-type","application/json; charset=utf-8");0<q&&(n.timeout=q,n.ontimeout=function(){g.reject({code:501,text:"request timeout"})});e?n.send(e):n.send();return g.promise.then?g.promise:g}}).call(this,"undefined"!==typeof self?self:"undefined"!==typeof window?window:{})},{"./log.js":7,when:77}],20:[function(h,p,k){(function(b,a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./enc-base64"),h("./md5"),
h("./evpkdf"),h("./cipher-core")):a(b.CryptoJS)})(this,function(b){(function(){var a=b.lib.BlockCipher,c=b.algo,e=[],d=[],m=[],q=[],g=[],n=[],l=[],z=[],h=[],w=[];(function(){for(var a=[],b=0;256>b;b++)a[b]=128>b?b<<1:b<<1^283;for(var c=0,v=0,b=0;256>b;b++){var k=v^v<<1^v<<2^v<<3^v<<4,k=k>>>8^k&255^99;e[c]=k;d[k]=c;var A=a[c],p=a[A],C=a[p],B=257*a[k]^16843008*k;m[c]=B<<24|B>>>8;q[c]=B<<16|B>>>16;g[c]=B<<8|B>>>24;n[c]=B;B=16843009*C^65537*p^257*A^16843008*c;l[k]=B<<24|B>>>8;z[k]=B<<16|B>>>16;h[k]=B<<
8|B>>>24;w[k]=B;c?(c=A^a[a[a[C^A]]],v^=a[a[v]]):c=v=1}})();var v=[0,1,2,4,8,16,32,64,128,27,54],c=c.AES=a.extend({_doReset:function(){for(var a=this._key,b=a.words,c=a.sigBytes/4,a=4*((this._nRounds=c+6)+1),d=this._keySchedule=[],g=0;g<a;g++)if(g<c)d[g]=b[g];else{var n=d[g-1];g%c?6<c&&4==g%c&&(n=e[n>>>24]<<24|e[n>>>16&255]<<16|e[n>>>8&255]<<8|e[n&255]):(n=n<<8|n>>>24,n=e[n>>>24]<<24|e[n>>>16&255]<<16|e[n>>>8&255]<<8|e[n&255],n^=v[g/c|0]<<24);d[g]=d[g-c]^n}b=this._invKeySchedule=[];for(c=0;c<a;c++)g=
a-c,n=c%4?d[g]:d[g-4],b[c]=4>c||4>=g?n:l[e[n>>>24]]^z[e[n>>>16&255]]^h[e[n>>>8&255]]^w[e[n&255]]},encryptBlock:function(a,b){this._doCryptBlock(a,b,this._keySchedule,m,q,g,n,e)},decryptBlock:function(a,b){var c=a[b+1];a[b+1]=a[b+3];a[b+3]=c;this._doCryptBlock(a,b,this._invKeySchedule,l,z,h,w,d);c=a[b+1];a[b+1]=a[b+3];a[b+3]=c},_doCryptBlock:function(a,b,c,d,g,l,n,e){for(var m=this._nRounds,z=a[b]^c[0],q=a[b+1]^c[1],v=a[b+2]^c[2],h=a[b+3]^c[3],w=4,P=1;P<m;P++)var k=d[z>>>24]^g[q>>>16&255]^l[v>>>8&
255]^n[h&255]^c[w++],p=d[q>>>24]^g[v>>>16&255]^l[h>>>8&255]^n[z&255]^c[w++],r=d[v>>>24]^g[h>>>16&255]^l[z>>>8&255]^n[q&255]^c[w++],h=d[h>>>24]^g[z>>>16&255]^l[q>>>8&255]^n[v&255]^c[w++],z=k,q=p,v=r;k=(e[z>>>24]<<24|e[q>>>16&255]<<16|e[v>>>8&255]<<8|e[h&255])^c[w++];p=(e[q>>>24]<<24|e[v>>>16&255]<<16|e[h>>>8&255]<<8|e[z&255])^c[w++];r=(e[v>>>24]<<24|e[h>>>16&255]<<16|e[z>>>8&255]<<8|e[q&255])^c[w++];h=(e[h>>>24]<<24|e[z>>>16&255]<<16|e[q>>>8&255]<<8|e[v&255])^c[w++];a[b]=k;a[b+1]=p;a[b+2]=r;a[b+3]=
h},keySize:8});b.AES=a._createHelper(c)})();return b.AES})},{"./cipher-core":21,"./core":22,"./enc-base64":23,"./evpkdf":25,"./md5":30}],21:[function(h,p,k){(function(b,a){"object"===typeof k?p.exports=k=a(h("./core")):a(b.CryptoJS)})(this,function(b){b.lib.Cipher||function(a){var c=b.lib,e=c.Base,d=c.WordArray,m=c.BufferedBlockAlgorithm,q=b.enc.Base64,g=b.algo.EvpKDF,n=c.Cipher=m.extend({cfg:e.extend(),createEncryptor:function(a,b){return this.create(this._ENC_XFORM_MODE,a,b)},createDecryptor:function(a,
b){return this.create(this._DEC_XFORM_MODE,a,b)},init:function(a,b,c){this.cfg=this.cfg.extend(c);this._xformMode=a;this._key=b;this.reset()},reset:function(){m.reset.call(this);this._doReset()},process:function(a){this._append(a);return this._process()},finalize:function(a){a&&this._append(a);return this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){return function(a){return{encrypt:function(b,c,d){return("string"==typeof c?y:v).encrypt(a,b,c,d)},
decrypt:function(b,c,d){return("string"==typeof c?y:v).decrypt(a,b,c,d)}}}}()});c.StreamCipher=n.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var l=b.mode={},z=c.BlockCipherMode=e.extend({createEncryptor:function(a,b){return this.Encryptor.create(a,b)},createDecryptor:function(a,b){return this.Decryptor.create(a,b)},init:function(a,b){this._cipher=a;this._iv=b}}),l=l.CBC=function(){function b(c,d,f){var g=this._iv;g?this._iv=a:g=this._prevBlock;for(var l=0;l<f;l++)c[d+l]^=
g[l]}var c=z.extend();c.Encryptor=c.extend({processBlock:function(a,c){var d=this._cipher,f=d.blockSize;b.call(this,a,c,f);d.encryptBlock(a,c);this._prevBlock=a.slice(c,c+f)}});c.Decryptor=c.extend({processBlock:function(a,c){var d=this._cipher,f=d.blockSize,g=a.slice(c,c+f);d.decryptBlock(a,c);b.call(this,a,c,f);this._prevBlock=g}});return c}(),h=(b.pad={}).Pkcs7={pad:function(a,b){for(var c=4*b,c=c-a.sigBytes%c,g=c<<24|c<<16|c<<8|c,l=[],n=0;n<c;n+=4)l.push(g);c=d.create(l,c);a.concat(c)},unpad:function(a){a.sigBytes-=
a.words[a.sigBytes-1>>>2]&255}};c.BlockCipher=n.extend({cfg:n.cfg.extend({mode:l,padding:h}),reset:function(){n.reset.call(this);var a=this.cfg,b=a.iv,a=a.mode;if(this._xformMode==this._ENC_XFORM_MODE)var c=a.createEncryptor;else c=a.createDecryptor,this._minBufferSize=1;this._mode=c.call(a,this,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var a=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var b=this._process(!0)}else b=
this._process(!0),a.unpad(b);return b},blockSize:4});var w=c.CipherParams=e.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),l=(b.format={}).OpenSSL={stringify:function(a){var b=a.ciphertext;a=a.salt;return(a?d.create([1398893684,1701076831]).concat(a).concat(b):b).toString(q)},parse:function(a){a=q.parse(a);var b=a.words;if(1398893684==b[0]&&1701076831==b[1]){var c=d.create(b.slice(2,4));b.splice(0,4);a.sigBytes-=16}return w.create({ciphertext:a,
salt:c})}},v=c.SerializableCipher=e.extend({cfg:e.extend({format:l}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);var g=a.createEncryptor(c,d);b=g.finalize(b);g=g.cfg;return w.create({ciphertext:b,key:c,iv:g.iv,algorithm:a,mode:g.mode,padding:g.padding,blockSize:a.blockSize,formatter:d.format})},decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);return a.createDecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){return"string"==typeof a?b.parse(a,this):a}}),e=(b.kdf=
{}).OpenSSL={execute:function(a,b,c,l){l||(l=d.random(8));a=g.create({keySize:b+c}).compute(a,l);c=d.create(a.words.slice(b),4*c);a.sigBytes=4*b;return w.create({key:a,iv:c,salt:l})}},y=c.PasswordBasedCipher=v.extend({cfg:v.cfg.extend({kdf:e}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);c=d.kdf.execute(c,a.keySize,a.ivSize);d.iv=c.iv;a=v.encrypt.call(this,a,b,c.key,d);a.mixIn(c);return a},decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);c=d.kdf.execute(c,a.keySize,a.ivSize,
b.salt);d.iv=c.iv;return v.decrypt.call(this,a,b,c.key,d)}})}()})},{"./core":22}],22:[function(h,p,k){(function(b,a){"object"===typeof k?p.exports=k=a():b.CryptoJS=a()})(this,function(){var b=b||function(a,b){var e={},d=e.lib={},m=d.Base=function(){function a(){}return{extend:function(b){a.prototype=this;var c=new a;b&&c.mixIn(b);c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,
arguments);return a},init:function(){},mixIn:function(a){for(var b in a)a.hasOwnProperty(b)&&(this[b]=a[b]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),q=d.WordArray=m.extend({init:function(a,d){a=this.words=a||[];this.sigBytes=d!=b?d:4*a.length},toString:function(a){return(a||n).stringify(this)},concat:function(a){var b=this.words,c=a.words,d=this.sigBytes;a=a.sigBytes;this.clamp();if(d%4)for(var g=0;g<a;g++)b[d+g>>>2]|=
(c[g>>>2]>>>24-g%4*8&255)<<24-(d+g)%4*8;else if(65535<c.length)for(g=0;g<a;g+=4)b[d+g>>>2]=c[g>>>2];else b.push.apply(b,c);this.sigBytes+=a;return this},clamp:function(){var b=this.words,c=this.sigBytes;b[c>>>2]&=4294967295<<32-c%4*8;b.length=a.ceil(c/4)},clone:function(){var a=m.clone.call(this);a.words=this.words.slice(0);return a},random:function(b){for(var c=[],d=0;d<b;d+=4)c.push(4294967296*a.random()|0);return new q.init(c,b)}}),g=e.enc={},n=g.Hex={stringify:function(a){var b=a.words;a=a.sigBytes;
for(var c=[],d=0;d<a;d++){var g=b[d>>>2]>>>24-d%4*8&255;c.push((g>>>4).toString(16));c.push((g&15).toString(16))}return c.join("")},parse:function(a){for(var b=a.length,c=[],d=0;d<b;d+=2)c[d>>>3]|=parseInt(a.substr(d,2),16)<<24-d%8*4;return new q.init(c,b/2)}},l=g.Latin1={stringify:function(a){var b=a.words;a=a.sigBytes;for(var c=[],d=0;d<a;d++)c.push(String.fromCharCode(b[d>>>2]>>>24-d%4*8&255));return c.join("")},parse:function(a){for(var b=a.length,c=[],d=0;d<b;d++)c[d>>>2]|=(a.charCodeAt(d)&255)<<
24-d%4*8;return new q.init(c,b)}},z=g.Utf8={stringify:function(a){try{return decodeURIComponent(escape(l.stringify(a)))}catch(b){throw Error("Malformed UTF-8 data");}},parse:function(a){return l.parse(unescape(encodeURIComponent(a)))}},h=d.BufferedBlockAlgorithm=m.extend({reset:function(){this._data=new q.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=z.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(b){var c=this._data,d=c.words,g=c.sigBytes,l=
this.blockSize,n=g/(4*l),n=b?a.ceil(n):a.max((n|0)-this._minBufferSize,0);b=n*l;g=a.min(4*b,g);if(b){for(var e=0;e<b;e+=l)this._doProcessBlock(d,e);e=d.splice(0,b);c.sigBytes-=g}return new q.init(e,g)},clone:function(){var a=m.clone.call(this);a._data=this._data.clone();return a},_minBufferSize:0});d.Hasher=h.extend({cfg:m.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){h.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},
finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,c){return(new a.init(c)).finalize(b)}},_createHmacHelper:function(a){return function(b,c){return(new w.HMAC.init(a,c)).finalize(b)}}});var w=e.algo={};return e}(Math);return b})},{}],23:[function(h,p,k){(function(b,a){"object"===typeof k?p.exports=k=a(h("./core")):a(b.CryptoJS)})(this,function(b){(function(){var a=b.lib.WordArray;b.enc.Base64={stringify:function(a){var b=a.words,
d=a.sigBytes,m=this._map;a.clamp();a=[];for(var q=0;q<d;q+=3)for(var g=(b[q>>>2]>>>24-q%4*8&255)<<16|(b[q+1>>>2]>>>24-(q+1)%4*8&255)<<8|b[q+2>>>2]>>>24-(q+2)%4*8&255,n=0;4>n&&q+0.75*n<d;n++)a.push(m.charAt(g>>>6*(3-n)&63));if(b=m.charAt(64))for(;a.length%4;)a.push(b);return a.join("")},parse:function(b){var e=b.length,d=this._map,m=d.charAt(64);m&&(m=b.indexOf(m),-1!=m&&(e=m));for(var m=[],q=0,g=0;g<e;g++)if(g%4){var n=d.indexOf(b.charAt(g-1))<<g%4*2,l=d.indexOf(b.charAt(g))>>>6-g%4*2;m[q>>>2]|=(n|
l)<<24-q%4*8;q++}return a.create(m,q)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}})();return b.enc.Base64})},{"./core":22}],24:[function(h,p,k){(function(b,a){"object"===typeof k?p.exports=k=a(h("./core")):a(b.CryptoJS)})(this,function(b){(function(){function a(a){return a<<8&4278255360|a>>>8&16711935}var c=b.lib.WordArray,e=b.enc;e.Utf16=e.Utf16BE={stringify:function(a){var b=a.words;a=a.sigBytes;for(var c=[],g=0;g<a;g+=2)c.push(String.fromCharCode(b[g>>>2]>>>16-g%
4*8&65535));return c.join("")},parse:function(a){for(var b=a.length,e=[],g=0;g<b;g++)e[g>>>1]|=a.charCodeAt(g)<<16-g%2*16;return c.create(e,2*b)}};e.Utf16LE={stringify:function(b){var c=b.words;b=b.sigBytes;for(var e=[],g=0;g<b;g+=2){var n=a(c[g>>>2]>>>16-g%4*8&65535);e.push(String.fromCharCode(n))}return e.join("")},parse:function(b){for(var e=b.length,q=[],g=0;g<e;g++)q[g>>>1]|=a(b.charCodeAt(g)<<16-g%2*16);return c.create(q,2*e)}}})();return b.enc.Utf16})},{"./core":22}],25:[function(h,p,k){(function(b,
a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./sha1"),h("./hmac")):a(b.CryptoJS)})(this,function(b){(function(){var a=b.lib,c=a.Base,e=a.WordArray,a=b.algo,d=a.EvpKDF=c.extend({cfg:c.extend({keySize:4,hasher:a.MD5,iterations:1}),init:function(a){this.cfg=this.cfg.extend(a)},compute:function(a,b){for(var c=this.cfg,d=c.hasher.create(),l=e.create(),z=l.words,h=c.keySize,c=c.iterations;z.length<h;){w&&d.update(w);var w=d.update(a).finalize(b);d.reset();for(var v=1;v<c;v++)w=d.finalize(w),d.reset();
l.concat(w)}l.sigBytes=4*h;return l}});b.EvpKDF=function(a,b,c){return d.create(c).compute(a,b)}})();return b.EvpKDF})},{"./core":22,"./hmac":27,"./sha1":46}],26:[function(h,p,k){(function(b,a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./cipher-core")):a(b.CryptoJS)})(this,function(b){(function(a){var c=b.lib.CipherParams,e=b.enc.Hex;b.format.Hex={stringify:function(a){return a.ciphertext.toString(e)},parse:function(a){a=e.parse(a);return c.create({ciphertext:a})}}})();return b.format.Hex})},
{"./cipher-core":21,"./core":22}],27:[function(h,p,k){(function(b,a){"object"===typeof k?p.exports=k=a(h("./core")):a(b.CryptoJS)})(this,function(b){(function(){var a=b.enc.Utf8;b.algo.HMAC=b.lib.Base.extend({init:function(b,e){b=this._hasher=new b.init;"string"==typeof e&&(e=a.parse(e));var d=b.blockSize,m=4*d;e.sigBytes>m&&(e=b.finalize(e));e.clamp();for(var q=this._oKey=e.clone(),g=this._iKey=e.clone(),n=q.words,l=g.words,z=0;z<d;z++)n[z]^=1549556828,l[z]^=909522486;q.sigBytes=g.sigBytes=m;this.reset()},
reset:function(){var a=this._hasher;a.reset();a.update(this._iKey)},update:function(a){this._hasher.update(a);return this},finalize:function(a){var b=this._hasher;a=b.finalize(a);b.reset();return b.finalize(this._oKey.clone().concat(a))}})})()})},{"./core":22}],28:[function(h,p,k){(function(b,a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./x64-core"),h("./lib-typedarrays"),h("./enc-utf16"),h("./enc-base64"),h("./md5"),h("./sha1"),h("./sha256"),h("./sha224"),h("./sha512"),h("./sha384"),h("./sha3"),
h("./ripemd160"),h("./hmac"),h("./pbkdf2"),h("./evpkdf"),h("./cipher-core"),h("./mode-cfb"),h("./mode-ctr"),h("./mode-ctr-gladman"),h("./mode-ofb"),h("./mode-ecb"),h("./pad-ansix923"),h("./pad-iso10126"),h("./pad-iso97971"),h("./pad-zeropadding"),h("./pad-nopadding"),h("./format-hex"),h("./aes"),h("./tripledes"),h("./rc4"),h("./rabbit"),h("./rabbit-legacy")):a(b.CryptoJS)})(this,function(b){return b})},{"./aes":20,"./cipher-core":21,"./core":22,"./enc-base64":23,"./enc-utf16":24,"./evpkdf":25,"./format-hex":26,
"./hmac":27,"./lib-typedarrays":29,"./md5":30,"./mode-cfb":31,"./mode-ctr":33,"./mode-ctr-gladman":32,"./mode-ecb":34,"./mode-ofb":35,"./pad-ansix923":36,"./pad-iso10126":37,"./pad-iso97971":38,"./pad-nopadding":39,"./pad-zeropadding":40,"./pbkdf2":41,"./rabbit":43,"./rabbit-legacy":42,"./rc4":44,"./ripemd160":45,"./sha1":46,"./sha224":47,"./sha256":48,"./sha3":49,"./sha384":50,"./sha512":51,"./tripledes":52,"./x64-core":53}],29:[function(h,p,k){(function(b,a){"object"===typeof k?p.exports=k=a(h("./core")):
a(b.CryptoJS)})(this,function(b){(function(){if("function"==typeof ArrayBuffer){var a=b.lib.WordArray,c=a.init;(a.init=function(a){a instanceof ArrayBuffer&&(a=new Uint8Array(a));if(a instanceof Int8Array||a instanceof Uint8ClampedArray||a instanceof Int16Array||a instanceof Uint16Array||a instanceof Int32Array||a instanceof Uint32Array||a instanceof Float32Array||a instanceof Float64Array)a=new Uint8Array(a.buffer,a.byteOffset,a.byteLength);if(a instanceof Uint8Array){for(var b=a.byteLength,m=[],
q=0;q<b;q++)m[q>>>2]|=a[q]<<24-q%4*8;c.call(this,m,b)}else c.apply(this,arguments)}).prototype=a}})();return b.lib.WordArray})},{"./core":22}],30:[function(h,p,k){(function(b,a){"object"===typeof k?p.exports=k=a(h("./core")):a(b.CryptoJS)})(this,function(b){(function(a){function c(a,b,c,d,g,l,f){a=a+(b&c|~b&d)+g+f;return(a<<l|a>>>32-l)+b}function e(a,b,c,d,g,l,f){a=a+(b&d|c&~d)+g+f;return(a<<l|a>>>32-l)+b}function d(a,b,c,d,g,l,f){a=a+(b^c^d)+g+f;return(a<<l|a>>>32-l)+b}function m(a,b,c,d,g,l,f){a=
a+(c^(b|~d))+g+f;return(a<<l|a>>>32-l)+b}var q=b.lib,g=q.WordArray,n=q.Hasher,q=b.algo,l=[];(function(){for(var b=0;64>b;b++)l[b]=4294967296*a.abs(a.sin(b+1))|0})();q=q.MD5=n.extend({_doReset:function(){this._hash=new g.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(a,b){for(var g=0;16>g;g++){var n=b+g,q=a[n];a[n]=(q<<8|q>>>24)&16711935|(q<<24|q>>>8)&4278255360}var g=this._hash.words,n=a[b+0],q=a[b+1],h=a[b+2],f=a[b+3],k=a[b+4],p=a[b+5],A=a[b+6],L=a[b+7],C=a[b+8],B=a[b+
9],E=a[b+10],I=a[b+11],Q=a[b+12],N=a[b+13],F=a[b+14],G=a[b+15],s=g[0],t=g[1],r=g[2],u=g[3],s=c(s,t,r,u,n,7,l[0]),u=c(u,s,t,r,q,12,l[1]),r=c(r,u,s,t,h,17,l[2]),t=c(t,r,u,s,f,22,l[3]),s=c(s,t,r,u,k,7,l[4]),u=c(u,s,t,r,p,12,l[5]),r=c(r,u,s,t,A,17,l[6]),t=c(t,r,u,s,L,22,l[7]),s=c(s,t,r,u,C,7,l[8]),u=c(u,s,t,r,B,12,l[9]),r=c(r,u,s,t,E,17,l[10]),t=c(t,r,u,s,I,22,l[11]),s=c(s,t,r,u,Q,7,l[12]),u=c(u,s,t,r,N,12,l[13]),r=c(r,u,s,t,F,17,l[14]),t=c(t,r,u,s,G,22,l[15]),s=e(s,t,r,u,q,5,l[16]),u=e(u,s,t,r,A,9,l[17]),
r=e(r,u,s,t,I,14,l[18]),t=e(t,r,u,s,n,20,l[19]),s=e(s,t,r,u,p,5,l[20]),u=e(u,s,t,r,E,9,l[21]),r=e(r,u,s,t,G,14,l[22]),t=e(t,r,u,s,k,20,l[23]),s=e(s,t,r,u,B,5,l[24]),u=e(u,s,t,r,F,9,l[25]),r=e(r,u,s,t,f,14,l[26]),t=e(t,r,u,s,C,20,l[27]),s=e(s,t,r,u,N,5,l[28]),u=e(u,s,t,r,h,9,l[29]),r=e(r,u,s,t,L,14,l[30]),t=e(t,r,u,s,Q,20,l[31]),s=d(s,t,r,u,p,4,l[32]),u=d(u,s,t,r,C,11,l[33]),r=d(r,u,s,t,I,16,l[34]),t=d(t,r,u,s,F,23,l[35]),s=d(s,t,r,u,q,4,l[36]),u=d(u,s,t,r,k,11,l[37]),r=d(r,u,s,t,L,16,l[38]),t=d(t,
r,u,s,E,23,l[39]),s=d(s,t,r,u,N,4,l[40]),u=d(u,s,t,r,n,11,l[41]),r=d(r,u,s,t,f,16,l[42]),t=d(t,r,u,s,A,23,l[43]),s=d(s,t,r,u,B,4,l[44]),u=d(u,s,t,r,Q,11,l[45]),r=d(r,u,s,t,G,16,l[46]),t=d(t,r,u,s,h,23,l[47]),s=m(s,t,r,u,n,6,l[48]),u=m(u,s,t,r,L,10,l[49]),r=m(r,u,s,t,F,15,l[50]),t=m(t,r,u,s,p,21,l[51]),s=m(s,t,r,u,Q,6,l[52]),u=m(u,s,t,r,f,10,l[53]),r=m(r,u,s,t,E,15,l[54]),t=m(t,r,u,s,q,21,l[55]),s=m(s,t,r,u,C,6,l[56]),u=m(u,s,t,r,G,10,l[57]),r=m(r,u,s,t,A,15,l[58]),t=m(t,r,u,s,N,21,l[59]),s=m(s,t,
r,u,k,6,l[60]),u=m(u,s,t,r,I,10,l[61]),r=m(r,u,s,t,h,15,l[62]),t=m(t,r,u,s,B,21,l[63]);g[0]=g[0]+s|0;g[1]=g[1]+t|0;g[2]=g[2]+r|0;g[3]=g[3]+u|0},_doFinalize:function(){var b=this._data,c=b.words,d=8*this._nDataBytes,g=8*b.sigBytes;c[g>>>5]|=128<<24-g%32;var l=a.floor(d/4294967296);c[(g+64>>>9<<4)+15]=(l<<8|l>>>24)&16711935|(l<<24|l>>>8)&4278255360;c[(g+64>>>9<<4)+14]=(d<<8|d>>>24)&16711935|(d<<24|d>>>8)&4278255360;b.sigBytes=4*(c.length+1);this._process();b=this._hash;c=b.words;for(d=0;4>d;d++)g=c[d],
c[d]=(g<<8|g>>>24)&16711935|(g<<24|g>>>8)&4278255360;return b},clone:function(){var a=n.clone.call(this);a._hash=this._hash.clone();return a}});b.MD5=n._createHelper(q);b.HmacMD5=n._createHmacHelper(q)})(Math);return b.MD5})},{"./core":22}],31:[function(h,p,k){(function(b,a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./cipher-core")):a(b.CryptoJS)})(this,function(b){b.mode.CFB=function(){function a(a,b,c,q){var g=this._iv;g?(g=g.slice(0),this._iv=void 0):g=this._prevBlock;q.encryptBlock(g,
0);for(q=0;q<c;q++)a[b+q]^=g[q]}var c=b.lib.BlockCipherMode.extend();c.Encryptor=c.extend({processBlock:function(b,c){var m=this._cipher,q=m.blockSize;a.call(this,b,c,q,m);this._prevBlock=b.slice(c,c+q)}});c.Decryptor=c.extend({processBlock:function(b,c){var m=this._cipher,q=m.blockSize,g=b.slice(c,c+q);a.call(this,b,c,q,m);this._prevBlock=g}});return c}();return b.mode.CFB})},{"./cipher-core":21,"./core":22}],32:[function(h,p,k){(function(b,a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./cipher-core")):
a(b.CryptoJS)})(this,function(b){b.mode.CTRGladman=function(){function a(a){if(255===(a>>24&255)){var b=a>>16&255,c=a>>8&255,g=a&255;255===b?(b=0,255===c?(c=0,255===g?g=0:++g):++c):++b;a=0+(b<<16)+(c<<8);a+=g}else a+=16777216;return a}var c=b.lib.BlockCipherMode.extend(),e=c.Encryptor=c.extend({processBlock:function(b,c){var e=this._cipher,g=e.blockSize,n=this._iv,l=this._counter;n&&(l=this._counter=n.slice(0),this._iv=void 0);n=l;0===(n[0]=a(n[0]))&&(n[1]=a(n[1]));l=l.slice(0);e.encryptBlock(l,0);
for(e=0;e<g;e++)b[c+e]^=l[e]}});c.Decryptor=e;return c}();return b.mode.CTRGladman})},{"./cipher-core":21,"./core":22}],33:[function(h,p,k){(function(b,a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./cipher-core")):a(b.CryptoJS)})(this,function(b){b.mode.CTR=function(){var a=b.lib.BlockCipherMode.extend(),c=a.Encryptor=a.extend({processBlock:function(a,b){var c=this._cipher,h=c.blockSize,g=this._iv,n=this._counter;g&&(n=this._counter=g.slice(0),this._iv=void 0);g=n.slice(0);c.encryptBlock(g,
0);n[h-1]=n[h-1]+1|0;for(c=0;c<h;c++)a[b+c]^=g[c]}});a.Decryptor=c;return a}();return b.mode.CTR})},{"./cipher-core":21,"./core":22}],34:[function(h,p,k){(function(b,a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./cipher-core")):a(b.CryptoJS)})(this,function(b){b.mode.ECB=function(){var a=b.lib.BlockCipherMode.extend();a.Encryptor=a.extend({processBlock:function(a,b){this._cipher.encryptBlock(a,b)}});a.Decryptor=a.extend({processBlock:function(a,b){this._cipher.decryptBlock(a,b)}});return a}();
return b.mode.ECB})},{"./cipher-core":21,"./core":22}],35:[function(h,p,k){(function(b,a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./cipher-core")):a(b.CryptoJS)})(this,function(b){b.mode.OFB=function(){var a=b.lib.BlockCipherMode.extend(),c=a.Encryptor=a.extend({processBlock:function(a,b){var c=this._cipher,h=c.blockSize,g=this._iv,n=this._keystream;g&&(n=this._keystream=g.slice(0),this._iv=void 0);c.encryptBlock(n,0);for(c=0;c<h;c++)a[b+c]^=n[c]}});a.Decryptor=c;return a}();return b.mode.OFB})},
{"./cipher-core":21,"./core":22}],36:[function(h,p,k){(function(b,a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./cipher-core")):a(b.CryptoJS)})(this,function(b){b.pad.AnsiX923={pad:function(a,b){var e=a.sigBytes,d=4*b,d=d-e%d,e=e+d-1;a.clamp();a.words[e>>>2]|=d<<24-e%4*8;a.sigBytes+=d},unpad:function(a){a.sigBytes-=a.words[a.sigBytes-1>>>2]&255}};return b.pad.Ansix923})},{"./cipher-core":21,"./core":22}],37:[function(h,p,k){(function(b,a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./cipher-core")):
a(b.CryptoJS)})(this,function(b){b.pad.Iso10126={pad:function(a,c){var e=4*c,e=e-a.sigBytes%e;a.concat(b.lib.WordArray.random(e-1)).concat(b.lib.WordArray.create([e<<24],1))},unpad:function(a){a.sigBytes-=a.words[a.sigBytes-1>>>2]&255}};return b.pad.Iso10126})},{"./cipher-core":21,"./core":22}],38:[function(h,p,k){(function(b,a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./cipher-core")):a(b.CryptoJS)})(this,function(b){b.pad.Iso97971={pad:function(a,c){a.concat(b.lib.WordArray.create([2147483648],
1));b.pad.ZeroPadding.pad(a,c)},unpad:function(a){b.pad.ZeroPadding.unpad(a);a.sigBytes--}};return b.pad.Iso97971})},{"./cipher-core":21,"./core":22}],39:[function(h,p,k){(function(b,a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./cipher-core")):a(b.CryptoJS)})(this,function(b){b.pad.NoPadding={pad:function(){},unpad:function(){}};return b.pad.NoPadding})},{"./cipher-core":21,"./core":22}],40:[function(h,p,k){(function(b,a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./cipher-core")):
a(b.CryptoJS)})(this,function(b){b.pad.ZeroPadding={pad:function(a,b){var e=4*b;a.clamp();a.sigBytes+=e-(a.sigBytes%e||e)},unpad:function(a){for(var b=a.words,e=a.sigBytes-1;!(b[e>>>2]>>>24-e%4*8&255);)e--;a.sigBytes=e+1}};return b.pad.ZeroPadding})},{"./cipher-core":21,"./core":22}],41:[function(h,p,k){(function(b,a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./sha1"),h("./hmac")):a(b.CryptoJS)})(this,function(b){(function(){var a=b.lib,c=a.Base,e=a.WordArray,a=b.algo,d=a.HMAC,m=a.PBKDF2=
c.extend({cfg:c.extend({keySize:4,hasher:a.SHA1,iterations:1}),init:function(a){this.cfg=this.cfg.extend(a)},compute:function(a,b){for(var c=this.cfg,l=d.create(c.hasher,a),m=e.create(),h=e.create([1]),w=m.words,k=h.words,y=c.keySize,c=c.iterations;w.length<y;){var p=l.update(b).finalize(h);l.reset();for(var f=p.words,x=f.length,J=p,A=1;A<c;A++){J=l.finalize(J);l.reset();for(var L=J.words,C=0;C<x;C++)f[C]^=L[C]}m.concat(p);k[0]++}m.sigBytes=4*y;return m}});b.PBKDF2=function(a,b,c){return m.create(c).compute(a,
b)}})();return b.PBKDF2})},{"./core":22,"./hmac":27,"./sha1":46}],42:[function(h,p,k){(function(b,a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./enc-base64"),h("./md5"),h("./evpkdf"),h("./cipher-core")):a(b.CryptoJS)})(this,function(b){(function(){function a(){for(var a=this._X,b=this._C,c=0;8>c;c++)d[c]=b[c];b[0]=b[0]+1295307597+this._b|0;b[1]=b[1]+3545052371+(b[0]>>>0<d[0]>>>0?1:0)|0;b[2]=b[2]+886263092+(b[1]>>>0<d[1]>>>0?1:0)|0;b[3]=b[3]+1295307597+(b[2]>>>0<d[2]>>>0?1:0)|0;b[4]=b[4]+
3545052371+(b[3]>>>0<d[3]>>>0?1:0)|0;b[5]=b[5]+886263092+(b[4]>>>0<d[4]>>>0?1:0)|0;b[6]=b[6]+1295307597+(b[5]>>>0<d[5]>>>0?1:0)|0;b[7]=b[7]+3545052371+(b[6]>>>0<d[6]>>>0?1:0)|0;this._b=b[7]>>>0<d[7]>>>0?1:0;for(c=0;8>c;c++){var e=a[c]+b[c],h=e&65535,q=e>>>16;m[c]=((h*h>>>17)+h*q>>>15)+q*q^((e&4294901760)*e|0)+((e&65535)*e|0)}a[0]=m[0]+(m[7]<<16|m[7]>>>16)+(m[6]<<16|m[6]>>>16)|0;a[1]=m[1]+(m[0]<<8|m[0]>>>24)+m[7]|0;a[2]=m[2]+(m[1]<<16|m[1]>>>16)+(m[0]<<16|m[0]>>>16)|0;a[3]=m[3]+(m[2]<<8|m[2]>>>24)+
m[1]|0;a[4]=m[4]+(m[3]<<16|m[3]>>>16)+(m[2]<<16|m[2]>>>16)|0;a[5]=m[5]+(m[4]<<8|m[4]>>>24)+m[3]|0;a[6]=m[6]+(m[5]<<16|m[5]>>>16)+(m[4]<<16|m[4]>>>16)|0;a[7]=m[7]+(m[6]<<8|m[6]>>>24)+m[5]|0}var c=b.lib.StreamCipher,e=[],d=[],m=[],h=b.algo.RabbitLegacy=c.extend({_doReset:function(){for(var b=this._key.words,c=this.cfg.iv,d=this._X=[b[0],b[3]<<16|b[2]>>>16,b[1],b[0]<<16|b[3]>>>16,b[2],b[1]<<16|b[0]>>>16,b[3],b[2]<<16|b[1]>>>16],b=this._C=[b[2]<<16|b[2]>>>16,b[0]&4294901760|b[1]&65535,b[3]<<16|b[3]>>>
16,b[1]&4294901760|b[2]&65535,b[0]<<16|b[0]>>>16,b[2]&4294901760|b[3]&65535,b[1]<<16|b[1]>>>16,b[3]&4294901760|b[0]&65535],e=this._b=0;4>e;e++)a.call(this);for(e=0;8>e;e++)b[e]^=d[e+4&7];if(c){var d=c.words,c=d[0],d=d[1],c=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360,d=(d<<8|d>>>24)&16711935|(d<<24|d>>>8)&4278255360,e=c>>>16|d&4294901760,m=d<<16|c&65535;b[0]^=c;b[1]^=e;b[2]^=d;b[3]^=m;b[4]^=c;b[5]^=e;b[6]^=d;b[7]^=m;for(e=0;4>e;e++)a.call(this)}},_doProcessBlock:function(b,c){var d=this._X;a.call(this);
e[0]=d[0]^d[5]>>>16^d[3]<<16;e[1]=d[2]^d[7]>>>16^d[5]<<16;e[2]=d[4]^d[1]>>>16^d[7]<<16;e[3]=d[6]^d[3]>>>16^d[1]<<16;for(d=0;4>d;d++)e[d]=(e[d]<<8|e[d]>>>24)&16711935|(e[d]<<24|e[d]>>>8)&4278255360,b[c+d]^=e[d]},blockSize:4,ivSize:2});b.RabbitLegacy=c._createHelper(h)})();return b.RabbitLegacy})},{"./cipher-core":21,"./core":22,"./enc-base64":23,"./evpkdf":25,"./md5":30}],43:[function(h,p,k){(function(b,a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./enc-base64"),h("./md5"),h("./evpkdf"),h("./cipher-core")):
a(b.CryptoJS)})(this,function(b){(function(){function a(){for(var a=this._X,b=this._C,c=0;8>c;c++)d[c]=b[c];b[0]=b[0]+1295307597+this._b|0;b[1]=b[1]+3545052371+(b[0]>>>0<d[0]>>>0?1:0)|0;b[2]=b[2]+886263092+(b[1]>>>0<d[1]>>>0?1:0)|0;b[3]=b[3]+1295307597+(b[2]>>>0<d[2]>>>0?1:0)|0;b[4]=b[4]+3545052371+(b[3]>>>0<d[3]>>>0?1:0)|0;b[5]=b[5]+886263092+(b[4]>>>0<d[4]>>>0?1:0)|0;b[6]=b[6]+1295307597+(b[5]>>>0<d[5]>>>0?1:0)|0;b[7]=b[7]+3545052371+(b[6]>>>0<d[6]>>>0?1:0)|0;this._b=b[7]>>>0<d[7]>>>0?1:0;for(c=
0;8>c;c++){var e=a[c]+b[c],h=e&65535,q=e>>>16;m[c]=((h*h>>>17)+h*q>>>15)+q*q^((e&4294901760)*e|0)+((e&65535)*e|0)}a[0]=m[0]+(m[7]<<16|m[7]>>>16)+(m[6]<<16|m[6]>>>16)|0;a[1]=m[1]+(m[0]<<8|m[0]>>>24)+m[7]|0;a[2]=m[2]+(m[1]<<16|m[1]>>>16)+(m[0]<<16|m[0]>>>16)|0;a[3]=m[3]+(m[2]<<8|m[2]>>>24)+m[1]|0;a[4]=m[4]+(m[3]<<16|m[3]>>>16)+(m[2]<<16|m[2]>>>16)|0;a[5]=m[5]+(m[4]<<8|m[4]>>>24)+m[3]|0;a[6]=m[6]+(m[5]<<16|m[5]>>>16)+(m[4]<<16|m[4]>>>16)|0;a[7]=m[7]+(m[6]<<8|m[6]>>>24)+m[5]|0}var c=b.lib.StreamCipher,
e=[],d=[],m=[],h=b.algo.Rabbit=c.extend({_doReset:function(){for(var b=this._key.words,c=this.cfg.iv,d=0;4>d;d++)b[d]=(b[d]<<8|b[d]>>>24)&16711935|(b[d]<<24|b[d]>>>8)&4278255360;for(var e=this._X=[b[0],b[3]<<16|b[2]>>>16,b[1],b[0]<<16|b[3]>>>16,b[2],b[1]<<16|b[0]>>>16,b[3],b[2]<<16|b[1]>>>16],b=this._C=[b[2]<<16|b[2]>>>16,b[0]&4294901760|b[1]&65535,b[3]<<16|b[3]>>>16,b[1]&4294901760|b[2]&65535,b[0]<<16|b[0]>>>16,b[2]&4294901760|b[3]&65535,b[1]<<16|b[1]>>>16,b[3]&4294901760|b[0]&65535],d=this._b=0;4>
d;d++)a.call(this);for(d=0;8>d;d++)b[d]^=e[d+4&7];if(c){var d=c.words,c=d[0],d=d[1],c=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360,d=(d<<8|d>>>24)&16711935|(d<<24|d>>>8)&4278255360,e=c>>>16|d&4294901760,m=d<<16|c&65535;b[0]^=c;b[1]^=e;b[2]^=d;b[3]^=m;b[4]^=c;b[5]^=e;b[6]^=d;b[7]^=m;for(d=0;4>d;d++)a.call(this)}},_doProcessBlock:function(b,c){var d=this._X;a.call(this);e[0]=d[0]^d[5]>>>16^d[3]<<16;e[1]=d[2]^d[7]>>>16^d[5]<<16;e[2]=d[4]^d[1]>>>16^d[7]<<16;e[3]=d[6]^d[3]>>>16^d[1]<<16;for(d=0;4>d;d++)e[d]=
(e[d]<<8|e[d]>>>24)&16711935|(e[d]<<24|e[d]>>>8)&4278255360,b[c+d]^=e[d]},blockSize:4,ivSize:2});b.Rabbit=c._createHelper(h)})();return b.Rabbit})},{"./cipher-core":21,"./core":22,"./enc-base64":23,"./evpkdf":25,"./md5":30}],44:[function(h,p,k){(function(b,a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./enc-base64"),h("./md5"),h("./evpkdf"),h("./cipher-core")):a(b.CryptoJS)})(this,function(b){(function(){function a(){for(var a=this._S,b=this._i,c=this._j,d=0,e=0;4>e;e++){var b=(b+1)%256,c=
(c+a[b])%256,h=a[b];a[b]=a[c];a[c]=h;d|=a[(a[b]+a[c])%256]<<24-8*e}this._i=b;this._j=c;return d}var c=b.lib.StreamCipher,e=b.algo,d=e.RC4=c.extend({_doReset:function(){for(var a=this._key,b=a.words,a=a.sigBytes,c=this._S=[],d=0;256>d;d++)c[d]=d;for(var e=d=0;256>d;d++){var h=d%a,e=(e+c[d]+(b[h>>>2]>>>24-h%4*8&255))%256,h=c[d];c[d]=c[e];c[e]=h}this._i=this._j=0},_doProcessBlock:function(b,c){b[c]^=a.call(this)},keySize:8,ivSize:0});b.RC4=c._createHelper(d);e=e.RC4Drop=d.extend({cfg:d.cfg.extend({drop:192}),
_doReset:function(){d._doReset.call(this);for(var b=this.cfg.drop;0<b;b--)a.call(this)}});b.RC4Drop=c._createHelper(e)})();return b.RC4})},{"./cipher-core":21,"./core":22,"./enc-base64":23,"./evpkdf":25,"./md5":30}],45:[function(h,p,k){(function(b,a){"object"===typeof k?p.exports=k=a(h("./core")):a(b.CryptoJS)})(this,function(b){(function(a){function c(a,b){return a<<b|a>>>32-b}a=b.lib;var e=a.WordArray,d=a.Hasher;a=b.algo;var h=e.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,
0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),q=e.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),g=e.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,
6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),n=e.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),l=e.create([0,1518500249,1859775393,2400959708,2840853838]),z=e.create([1352829926,1548603684,1836072691,2053994217,0]);a=a.RIPEMD160=d.extend({_doReset:function(){this._hash=e.create([1732584193,4023233417,2562383102,271733878,3285377520])},
_doProcessBlock:function(a,b){for(var d=0;16>d;d++){var e=b+d,k=a[e];a[e]=(k<<8|k>>>24)&16711935|(k<<24|k>>>8)&4278255360}var e=this._hash.words,k=l.words,f=z.words,p=h.words,J=q.words,A=g.words,L=n.words,C,B,E,I,Q,N,F,G,s,t;N=C=e[0];F=B=e[1];G=E=e[2];s=I=e[3];t=Q=e[4];for(var r,d=0;80>d;d+=1)r=C+a[b+p[d]]|0,r=16>d?r+((B^E^I)+k[0]):32>d?r+((B&E|~B&I)+k[1]):48>d?r+(((B|~E)^I)+k[2]):64>d?r+((B&I|E&~I)+k[3]):r+((B^(E|~I))+k[4]),r|=0,r=c(r,A[d]),r=r+Q|0,C=Q,Q=I,I=c(E,10),E=B,B=r,r=N+a[b+J[d]]|0,r=16>
d?r+((F^(G|~s))+f[0]):32>d?r+((F&s|G&~s)+f[1]):48>d?r+(((F|~G)^s)+f[2]):64>d?r+((F&G|~F&s)+f[3]):r+((F^G^s)+f[4]),r|=0,r=c(r,L[d]),r=r+t|0,N=t,t=s,s=c(G,10),G=F,F=r;r=e[1]+E+s|0;e[1]=e[2]+I+t|0;e[2]=e[3]+Q+N|0;e[3]=e[4]+C+F|0;e[4]=e[0]+B+G|0;e[0]=r},_doFinalize:function(){var a=this._data,b=a.words,c=8*this._nDataBytes,d=8*a.sigBytes;b[d>>>5]|=128<<24-d%32;b[(d+64>>>9<<4)+14]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360;a.sigBytes=4*(b.length+1);this._process();a=this._hash;b=a.words;for(c=0;5>
c;c++)d=b[c],b[c]=(d<<8|d>>>24)&16711935|(d<<24|d>>>8)&4278255360;return a},clone:function(){var a=d.clone.call(this);a._hash=this._hash.clone();return a}});b.RIPEMD160=d._createHelper(a);b.HmacRIPEMD160=d._createHmacHelper(a)})(Math);return b.RIPEMD160})},{"./core":22}],46:[function(h,p,k){(function(b,a){"object"===typeof k?p.exports=k=a(h("./core")):a(b.CryptoJS)})(this,function(b){(function(){var a=b.lib,c=a.WordArray,e=a.Hasher,d=[],a=b.algo.SHA1=e.extend({_doReset:function(){this._hash=new c.init([1732584193,
4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(a,b){for(var c=this._hash.words,e=c[0],l=c[1],h=c[2],k=c[3],w=c[4],p=0;80>p;p++){if(16>p)d[p]=a[b+p]|0;else{var y=d[p-3]^d[p-8]^d[p-14]^d[p-16];d[p]=y<<1|y>>>31}y=(e<<5|e>>>27)+w+d[p];y=20>p?y+((l&h|~l&k)+1518500249):40>p?y+((l^h^k)+1859775393):60>p?y+((l&h|l&k|h&k)-1894007588):y+((l^h^k)-899497514);w=k;k=h;h=l<<30|l>>>2;l=e;e=y}c[0]=c[0]+e|0;c[1]=c[1]+l|0;c[2]=c[2]+h|0;c[3]=c[3]+k|0;c[4]=c[4]+w|0},_doFinalize:function(){var a=
this._data,b=a.words,c=8*this._nDataBytes,d=8*a.sigBytes;b[d>>>5]|=128<<24-d%32;b[(d+64>>>9<<4)+14]=Math.floor(c/4294967296);b[(d+64>>>9<<4)+15]=c;a.sigBytes=4*b.length;this._process();return this._hash},clone:function(){var a=e.clone.call(this);a._hash=this._hash.clone();return a}});b.SHA1=e._createHelper(a);b.HmacSHA1=e._createHmacHelper(a)})();return b.SHA1})},{"./core":22}],47:[function(h,p,k){(function(b,a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./sha256")):a(b.CryptoJS)})(this,function(b){(function(){var a=
b.lib.WordArray,c=b.algo,e=c.SHA256,c=c.SHA224=e.extend({_doReset:function(){this._hash=new a.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var a=e._doFinalize.call(this);a.sigBytes-=4;return a}});b.SHA224=e._createHelper(c);b.HmacSHA224=e._createHmacHelper(c)})();return b.SHA224})},{"./core":22,"./sha256":48}],48:[function(h,p,k){(function(b,a){"object"===typeof k?p.exports=k=a(h("./core")):a(b.CryptoJS)})(this,function(b){(function(a){var c=
b.lib,e=c.WordArray,d=c.Hasher,c=b.algo,h=[],q=[];(function(){function b(c){for(var d=a.sqrt(c),g=2;g<=d;g++)if(!(c%g))return!1;return!0}function c(a){return 4294967296*(a-(a|0))|0}for(var d=2,g=0;64>g;)b(d)&&(8>g&&(h[g]=c(a.pow(d,0.5))),q[g]=c(a.pow(d,1/3)),g++),d++})();var g=[],c=c.SHA256=d.extend({_doReset:function(){this._hash=new e.init(h.slice(0))},_doProcessBlock:function(a,b){for(var c=this._hash.words,d=c[0],e=c[1],h=c[2],m=c[3],k=c[4],f=c[5],p=c[6],J=c[7],A=0;64>A;A++){if(16>A)g[A]=a[b+
A]|0;else{var L=g[A-15],C=g[A-2];g[A]=((L<<25|L>>>7)^(L<<14|L>>>18)^L>>>3)+g[A-7]+((C<<15|C>>>17)^(C<<13|C>>>19)^C>>>10)+g[A-16]}L=J+((k<<26|k>>>6)^(k<<21|k>>>11)^(k<<7|k>>>25))+(k&f^~k&p)+q[A]+g[A];C=((d<<30|d>>>2)^(d<<19|d>>>13)^(d<<10|d>>>22))+(d&e^d&h^e&h);J=p;p=f;f=k;k=m+L|0;m=h;h=e;e=d;d=L+C|0}c[0]=c[0]+d|0;c[1]=c[1]+e|0;c[2]=c[2]+h|0;c[3]=c[3]+m|0;c[4]=c[4]+k|0;c[5]=c[5]+f|0;c[6]=c[6]+p|0;c[7]=c[7]+J|0},_doFinalize:function(){var b=this._data,c=b.words,d=8*this._nDataBytes,g=8*b.sigBytes;c[g>>>
5]|=128<<24-g%32;c[(g+64>>>9<<4)+14]=a.floor(d/4294967296);c[(g+64>>>9<<4)+15]=d;b.sigBytes=4*c.length;this._process();return this._hash},clone:function(){var a=d.clone.call(this);a._hash=this._hash.clone();return a}});b.SHA256=d._createHelper(c);b.HmacSHA256=d._createHmacHelper(c)})(Math);return b.SHA256})},{"./core":22}],49:[function(h,p,k){(function(b,a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./x64-core")):a(b.CryptoJS)})(this,function(b){(function(a){var c=b.lib,e=c.WordArray,d=c.Hasher,
h=b.x64.Word,c=b.algo,q=[],g=[],n=[];(function(){for(var a=1,b=0,c=0;24>c;c++){q[a+5*b]=(c+1)*(c+2)/2%64;var d=(2*a+3*b)%5,a=b%5,b=d}for(a=0;5>a;a++)for(b=0;5>b;b++)g[a+5*b]=b+(2*a+3*b)%5*5;a=1;for(b=0;24>b;b++){for(var e=d=c=0;7>e;e++){if(a&1){var l=(1<<e)-1;32>l?d^=1<<l:c^=1<<l-32}a=a&128?a<<1^113:a<<1}n[b]=h.create(c,d)}})();var l=[];(function(){for(var a=0;25>a;a++)l[a]=h.create()})();c=c.SHA3=d.extend({cfg:d.cfg.extend({outputLength:512}),_doReset:function(){for(var a=this._state=[],b=0;25>b;b++)a[b]=
new h.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(a,b){for(var c=this._state,d=this.blockSize/2,e=0;e<d;e++){var h=a[b+2*e],f=a[b+2*e+1],h=(h<<8|h>>>24)&16711935|(h<<24|h>>>8)&4278255360,f=(f<<8|f>>>24)&16711935|(f<<24|f>>>8)&4278255360,m=c[e];m.high^=f;m.low^=h}for(d=0;24>d;d++){for(e=0;5>e;e++){for(var k=h=0,p=0;5>p;p++)m=c[e+5*p],h^=m.high,k^=m.low;m=l[e];m.high=h;m.low=k}for(e=0;5>e;e++)for(m=l[(e+4)%5],h=l[(e+1)%5],f=h.high,p=h.low,h=m.high^(f<<1|p>>>31),k=
m.low^(p<<1|f>>>31),p=0;5>p;p++)m=c[e+5*p],m.high^=h,m.low^=k;for(f=1;25>f;f++)m=c[f],e=m.high,m=m.low,p=q[f],32>p?(h=e<<p|m>>>32-p,k=m<<p|e>>>32-p):(h=m<<p-32|e>>>64-p,k=e<<p-32|m>>>64-p),m=l[g[f]],m.high=h,m.low=k;m=l[0];e=c[0];m.high=e.high;m.low=e.low;for(e=0;5>e;e++)for(p=0;5>p;p++)f=e+5*p,m=c[f],h=l[f],f=l[(e+1)%5+5*p],k=l[(e+2)%5+5*p],m.high=h.high^~f.high&k.high,m.low=h.low^~f.low&k.low;m=c[0];e=n[d];m.high^=e.high;m.low^=e.low}},_doFinalize:function(){var b=this._data,c=b.words,d=8*b.sigBytes,
g=32*this.blockSize;c[d>>>5]|=1<<24-d%32;c[(a.ceil((d+1)/g)*g>>>5)-1]|=128;b.sigBytes=4*c.length;this._process();for(var b=this._state,c=this.cfg.outputLength/8,d=c/8,g=[],l=0;l<d;l++){var h=b[l],f=h.high,h=h.low,f=(f<<8|f>>>24)&16711935|(f<<24|f>>>8)&4278255360,h=(h<<8|h>>>24)&16711935|(h<<24|h>>>8)&4278255360;g.push(h);g.push(f)}return new e.init(g,c)},clone:function(){for(var a=d.clone.call(this),b=a._state=this._state.slice(0),c=0;25>c;c++)b[c]=b[c].clone();return a}});b.SHA3=d._createHelper(c);
b.HmacSHA3=d._createHmacHelper(c)})(Math);return b.SHA3})},{"./core":22,"./x64-core":53}],50:[function(h,p,k){(function(b,a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./x64-core"),h("./sha512")):a(b.CryptoJS)})(this,function(b){(function(){var a=b.x64,c=a.Word,e=a.WordArray,a=b.algo,d=a.SHA512,a=a.SHA384=d.extend({_doReset:function(){this._hash=new e.init([new c.init(3418070365,3238371032),new c.init(1654270250,914150663),new c.init(2438529370,812702999),new c.init(355462360,4144912697),
new c.init(1731405415,4290775857),new c.init(2394180231,1750603025),new c.init(3675008525,1694076839),new c.init(1203062813,3204075428)])},_doFinalize:function(){var a=d._doFinalize.call(this);a.sigBytes-=16;return a}});b.SHA384=d._createHelper(a);b.HmacSHA384=d._createHmacHelper(a)})();return b.SHA384})},{"./core":22,"./sha512":51,"./x64-core":53}],51:[function(h,p,k){(function(b,a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./x64-core")):a(b.CryptoJS)})(this,function(b){(function(){function a(){return d.create.apply(d,
arguments)}var c=b.lib.Hasher,e=b.x64,d=e.Word,h=e.WordArray,e=b.algo,q=[a(1116352408,3609767458),a(1899447441,602891725),a(3049323471,3964484399),a(3921009573,2173295548),a(961987163,4081628472),a(1508970993,3053834265),a(2453635748,2937671579),a(2870763221,3664609560),a(3624381080,2734883394),a(310598401,1164996542),a(607225278,1323610764),a(1426881987,3590304994),a(1925078388,4068182383),a(2162078206,991336113),a(2614888103,633803317),a(3248222580,3479774868),a(3835390401,2666613458),a(4022224774,
944711139),a(264347078,2341262773),a(604807628,2007800933),a(770255983,1495990901),a(1249150122,1856431235),a(1555081692,3175218132),a(1996064986,2198950837),a(2554220882,3999719339),a(2821834349,766784016),a(2952996808,2566594879),a(3210313671,3203337956),a(3336571891,1034457026),a(3584528711,2466948901),a(113926993,3758326383),a(338241895,168717936),a(666307205,1188179964),a(773529912,1546045734),a(1294757372,1522805485),a(1396182291,2643833823),a(1695183700,2343527390),a(1986661051,1014477480),
a(2177026350,1206759142),a(2456956037,344077627),a(2730485921,1290863460),a(2820302411,3158454273),a(3259730800,3505952657),a(3345764771,106217008),a(3516065817,3606008344),a(3600352804,1432725776),a(4094571909,1467031594),a(275423344,851169720),a(430227734,3100823752),a(506948616,1363258195),a(659060556,3750685593),a(883997877,3785050280),a(958139571,3318307427),a(1322822218,3812723403),a(1537002063,2003034995),a(1747873779,3602036899),a(1955562222,1575990012),a(2024104815,1125592928),a(2227730452,
2716904306),a(2361852424,442776044),a(2428436474,593698344),a(2756734187,3733110249),a(3204031479,2999351573),a(3329325298,3815920427),a(3391569614,3928383900),a(3515267271,566280711),a(3940187606,3454069534),a(4118630271,4000239992),a(116418474,1914138554),a(174292421,2731055270),a(289380356,3203993006),a(460393269,320620315),a(685471733,587496836),a(852142971,1086792851),a(1017036298,365543100),a(1126000580,2618297676),a(1288033470,3409855158),a(1501505948,4234509866),a(1607167915,987167468),a(1816402316,
1246189591)],g=[];(function(){for(var b=0;80>b;b++)g[b]=a()})();e=e.SHA512=c.extend({_doReset:function(){this._hash=new h.init([new d.init(1779033703,4089235720),new d.init(3144134277,2227873595),new d.init(1013904242,4271175723),new d.init(2773480762,1595750129),new d.init(1359893119,2917565137),new d.init(2600822924,725511199),new d.init(528734635,4215389547),new d.init(1541459225,327033209)])},_doProcessBlock:function(a,b){for(var c=this._hash.words,d=c[0],e=c[1],h=c[2],m=c[3],k=c[4],f=c[5],p=
c[6],c=c[7],J=d.high,A=d.low,L=e.high,C=e.low,B=h.high,E=h.low,I=m.high,Q=m.low,N=k.high,F=k.low,G=f.high,s=f.low,t=p.high,r=p.low,u=c.high,V=c.low,S=J,M=A,R=L,O=C,aa=B,ea=E,ma=I,fa=Q,X=N,T=F,ja=G,ia=s,ka=t,ga=r,ha=u,da=V,U=0;80>U;U++){var $=g[U];if(16>U)var W=$.high=a[b+2*U]|0,D=$.low=a[b+2*U+1]|0;else{var W=g[U-15],D=W.high,Y=W.low,W=(D>>>1|Y<<31)^(D>>>8|Y<<24)^D>>>7,Y=(Y>>>1|D<<31)^(Y>>>8|D<<24)^(Y>>>7|D<<25),ca=g[U-2],D=ca.high,K=ca.low,ca=(D>>>19|K<<13)^(D<<3|K>>>29)^D>>>6,K=(K>>>19|D<<13)^(K<<
3|D>>>29)^(K>>>6|D<<26),D=g[U-7],na=D.high,ba=g[U-16],Z=ba.high,ba=ba.low,D=Y+D.low,W=W+na+(D>>>0<Y>>>0?1:0),D=D+K,W=W+ca+(D>>>0<K>>>0?1:0),D=D+ba,W=W+Z+(D>>>0<ba>>>0?1:0);$.high=W;$.low=D}var na=X&ja^~X&ka,ba=T&ia^~T&ga,$=S&R^S&aa^R&aa,pa=M&O^M&ea^O&ea,Y=(S>>>28|M<<4)^(S<<30|M>>>2)^(S<<25|M>>>7),ca=(M>>>28|S<<4)^(M<<30|S>>>2)^(M<<25|S>>>7),K=q[U],qa=K.high,oa=K.low,K=da+((T>>>14|X<<18)^(T>>>18|X<<14)^(T<<23|X>>>9)),Z=ha+((X>>>14|T<<18)^(X>>>18|T<<14)^(X<<23|T>>>9))+(K>>>0<da>>>0?1:0),K=K+ba,Z=Z+
na+(K>>>0<ba>>>0?1:0),K=K+oa,Z=Z+qa+(K>>>0<oa>>>0?1:0),K=K+D,Z=Z+W+(K>>>0<D>>>0?1:0),D=ca+pa,$=Y+$+(D>>>0<ca>>>0?1:0),ha=ka,da=ga,ka=ja,ga=ia,ja=X,ia=T,T=fa+K|0,X=ma+Z+(T>>>0<fa>>>0?1:0)|0,ma=aa,fa=ea,aa=R,ea=O,R=S,O=M,M=K+D|0,S=Z+$+(M>>>0<K>>>0?1:0)|0}A=d.low=A+M;d.high=J+S+(A>>>0<M>>>0?1:0);C=e.low=C+O;e.high=L+R+(C>>>0<O>>>0?1:0);E=h.low=E+ea;h.high=B+aa+(E>>>0<ea>>>0?1:0);Q=m.low=Q+fa;m.high=I+ma+(Q>>>0<fa>>>0?1:0);F=k.low=F+T;k.high=N+X+(F>>>0<T>>>0?1:0);s=f.low=s+ia;f.high=G+ja+(s>>>0<ia>>>
0?1:0);r=p.low=r+ga;p.high=t+ka+(r>>>0<ga>>>0?1:0);V=c.low=V+da;c.high=u+ha+(V>>>0<da>>>0?1:0)},_doFinalize:function(){var a=this._data,b=a.words,c=8*this._nDataBytes,d=8*a.sigBytes;b[d>>>5]|=128<<24-d%32;b[(d+128>>>10<<5)+30]=Math.floor(c/4294967296);b[(d+128>>>10<<5)+31]=c;a.sigBytes=4*b.length;this._process();return this._hash.toX32()},clone:function(){var a=c.clone.call(this);a._hash=this._hash.clone();return a},blockSize:32});b.SHA512=c._createHelper(e);b.HmacSHA512=c._createHmacHelper(e)})();
return b.SHA512})},{"./core":22,"./x64-core":53}],52:[function(h,p,k){(function(b,a,c){"object"===typeof k?p.exports=k=a(h("./core"),h("./enc-base64"),h("./md5"),h("./evpkdf"),h("./cipher-core")):a(b.CryptoJS)})(this,function(b){(function(){function a(a,b){var c=(this._lBlock>>>a^this._rBlock)&b;this._rBlock^=c;this._lBlock^=c<<a}function c(a,b){var c=(this._rBlock>>>a^this._lBlock)&b;this._lBlock^=c;this._rBlock^=c<<a}var e=b.lib,d=e.WordArray,e=e.BlockCipher,h=b.algo,k=[57,49,41,33,25,17,9,1,58,
50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],g=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],n=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],l=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,
2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,
2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,
117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,
335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},
{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,
18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,
131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,
1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,
12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,
90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,
2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,
4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,
200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,
10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,
30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],p=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],P=h.DES=e.extend({_doReset:function(){for(var a=this._key.words,b=[],c=0;56>c;c++){var d=k[c]-1;b[c]=a[d>>>5]>>>
31-d%32&1}a=this._subKeys=[];for(d=0;16>d;d++){for(var f=a[d]=[],e=n[d],c=0;24>c;c++)f[c/6|0]|=b[(g[c]-1+e)%28]<<31-c%6,f[4+(c/6|0)]|=b[28+(g[c+24]-1+e)%28]<<31-c%6;f[0]=f[0]<<1|f[0]>>>31;for(c=1;7>c;c++)f[c]>>>=4*(c-1)+3;f[7]=f[7]<<5|f[7]>>>27}b=this._invSubKeys=[];for(c=0;16>c;c++)b[c]=a[15-c]},encryptBlock:function(a,b){this._doCryptBlock(a,b,this._subKeys)},decryptBlock:function(a,b){this._doCryptBlock(a,b,this._invSubKeys)},_doCryptBlock:function(b,d,e){this._lBlock=b[d];this._rBlock=b[d+1];
a.call(this,4,252645135);a.call(this,16,65535);c.call(this,2,858993459);c.call(this,8,16711935);a.call(this,1,1431655765);for(var g=0;16>g;g++){for(var f=e[g],h=this._lBlock,m=this._rBlock,n=0,k=0;8>k;k++)n|=l[k][((m^f[k])&p[k])>>>0];this._lBlock=m;this._rBlock=h^n}e=this._lBlock;this._lBlock=this._rBlock;this._rBlock=e;a.call(this,1,1431655765);c.call(this,8,16711935);c.call(this,2,858993459);a.call(this,16,65535);a.call(this,4,252645135);b[d]=this._lBlock;b[d+1]=this._rBlock},keySize:2,ivSize:2,
blockSize:2});b.DES=e._createHelper(P);h=h.TripleDES=e.extend({_doReset:function(){var a=this._key.words;this._des1=P.createEncryptor(d.create(a.slice(0,2)));this._des2=P.createEncryptor(d.create(a.slice(2,4)));this._des3=P.createEncryptor(d.create(a.slice(4,6)))},encryptBlock:function(a,b){this._des1.encryptBlock(a,b);this._des2.decryptBlock(a,b);this._des3.encryptBlock(a,b)},decryptBlock:function(a,b){this._des3.decryptBlock(a,b);this._des2.encryptBlock(a,b);this._des1.decryptBlock(a,b)},keySize:6,
ivSize:2,blockSize:2});b.TripleDES=e._createHelper(h)})();return b.TripleDES})},{"./cipher-core":21,"./core":22,"./enc-base64":23,"./evpkdf":25,"./md5":30}],53:[function(h,p,k){(function(b,a){"object"===typeof k?p.exports=k=a(h("./core")):a(b.CryptoJS)})(this,function(b){(function(a){var c=b.lib,e=c.Base,d=c.WordArray,c=b.x64={};c.Word=e.extend({init:function(a,b){this.high=a;this.low=b}});c.WordArray=e.extend({init:function(b,c){b=this.words=b||[];this.sigBytes=c!=a?c:8*b.length},toX32:function(){for(var a=
this.words,b=a.length,c=[],e=0;e<b;e++){var h=a[e];c.push(h.high);c.push(h.low)}return d.create(c,this.sigBytes)},clone:function(){for(var a=e.clone.call(this),b=a.words=this.words.slice(0),c=b.length,d=0;d<c;d++)b[d]=b[d].clone();return a}})})();return b})},{"./core":22}],54:[function(h,p,k){(function(b){b(function(a){function b(a){var c=1<arguments.length?g.call(arguments,1):[];return function(){return e(a,this,c.concat(g.call(arguments)))}}function e(a,b,c){return 0===c.length?h.call(b,a):h.apply(b,
[a].concat(c))}var d=a("./when"),h=d["try"],k=a("./lib/liftAll"),g=Array.prototype.slice;return{lift:b,liftAll:function(a,d,e){return k(b,d,e,a)},call:h,apply:function(a,b){return e(a,this,b||[])},compose:function(a){var b=g.call(arguments,1);return function(){var c=this,e=g.call(arguments),e=h.apply(c,[a].concat(e));return d.reduce(b,function(a,b){return b.call(c,a)},e)}}}})})(function(b){p.exports=b(h)})},{"./lib/liftAll":68,"./when":77}],55:[function(h,p,k){(function(b){b(function(a){var b=a("./makePromise"),
e=a("./scheduler");a=a("./async");return b({scheduler:new e(a)})})})(function(b){p.exports=b(h)})},{"./async":58,"./makePromise":69,"./scheduler":70}],56:[function(h,p,k){(function(b){b(function(){function a(a){this.head=this.tail=this.length=0;this.buffer=Array(1<<a)}a.prototype.push=function(a){this.length===this.buffer.length&&this._ensureCapacity(2*this.length);this.buffer[this.tail]=a;this.tail=this.tail+1&this.buffer.length-1;++this.length;return this.length};a.prototype.shift=function(){var a=
this.buffer[this.head];this.buffer[this.head]=void 0;this.head=this.head+1&this.buffer.length-1;--this.length;return a};a.prototype._ensureCapacity=function(a){var b=this.head,d=this.buffer,h=Array(a),k=0,g;if(0===b)for(g=this.length;k<g;++k)h[k]=d[k];else{a=d.length;for(g=this.tail;b<a;++k,++b)h[k]=d[b];for(b=0;b<g;++k,++b)h[k]=d[b]}this.buffer=h;this.head=0;this.tail=this.length};return a})})(function(b){p.exports=b()})},{}],57:[function(h,p,k){(function(b){b(function(){function a(b){Error.call(this);
this.message=b;this.name=a.name;"function"===typeof Error.captureStackTrace&&Error.captureStackTrace(this,a)}a.prototype=Object.create(Error.prototype);return a.prototype.constructor=a})})(function(b){p.exports=b()})},{}],58:[function(h,p,k){(function(b){(function(a){a(function(a){var e;return"undefined"!==typeof b&&null!==b&&"function"===typeof b.nextTick?function(a){b.nextTick(a)}:(e="function"===typeof MutationObserver&&MutationObserver||"function"===typeof WebKitMutationObserver&&WebKitMutationObserver)?
function(a,b){var c,e=a.createElement("div");(new b(function(){var a=c;c=void 0;a()})).observe(e,{attributes:!0});return function(a){c=a;e.setAttribute("class","x")}}(document,e):function(a){try{return a("vertx").runOnLoop||a("vertx").runOnContext}catch(b){}var c=setTimeout;return function(a){c(a,0)}}(a)})})(function(a){p.exports=a(h)})}).call(this,h("c:\\Users\\oberstet\\AppData\\Roaming\\npm\\node_modules\\browserify\\node_modules\\insert-module-globals\\node_modules\\process\\browser.js"))},{"c:\\Users\\oberstet\\AppData\\Roaming\\npm\\node_modules\\browserify\\node_modules\\insert-module-globals\\node_modules\\process\\browser.js":1}],
59:[function(h,p,k){(function(b){b(function(){return function(a){var b=Array.prototype.map,e=Array.prototype.reduce,d=Array.prototype.reduceRight,h=Array.prototype.forEach,k=a.resolve,g=a.all;a.any=function(b){return new a(function(a,c){function d(a){g.push(a);0===--e&&c(g)}var e=0,g=[];h.call(b,function(b){++e;k(b).then(a,d)});0===e&&a()})};a.some=function(b,c){return new a(function(a,d,e){function g(b){0<H&&(--H,x.push(b),0===H&&a(x))}function p(a){0<f&&(--f,J.push(a),0===f&&d(J))}var H=0,f,x=[],
J=[];h.call(b,function(a){++H;k(a).then(g,p,e)});c=Math.max(c,0);f=H-c+1;H=Math.min(c,H);0===H&&a(x)})};a.settle=function(a){return g(b.call(a,function(a){function b(){return a.inspect()}a=k(a);return a.then(b,b)}))};a.map=function(a,d,e){return g(b.call(a,function(a){return k(a).then(d,e)}))};a.reduce=function(a,b){function c(a,d,e){return k(a).then(function(a){return k(d).then(function(c){return b(a,c,e)})})}return 2<arguments.length?e.call(a,c,arguments[2]):e.call(a,c)};a.reduceRight=function(a,
b){function c(a,d,e){return k(a).then(function(a){return k(d).then(function(c){return b(a,c,e)})})}return 2<arguments.length?d.call(a,c,arguments[2]):d.call(a,c)};a.prototype.spread=function(a){return this.then(g).then(function(b){return a.apply(void 0,b)})};return a}})})(function(b){p.exports=b()})},{}],60:[function(h,p,k){(function(b){b(function(){function a(){throw new TypeError("catch predicate must be a function");}function b(a,c){return function(){a.call(this);return c}}function e(){}return function(d){function h(a,
b){return function(c){return(b===Error||null!=b&&b.prototype instanceof Error?c instanceof b:b(c))?a.call(this,c):k(c)}}var k=d.reject,g=d.prototype["catch"];d.prototype.done=function(a,b){var c=this._handler;c.when({resolve:this._maybeFatal,notify:e,context:this,receiver:c.receiver,fulfilled:a,rejected:b,progress:void 0})};d.prototype["catch"]=d.prototype.otherwise=function(b){return 1===arguments.length?g.call(this,b):"function"!==typeof b?this.ensure(a):g.call(this,h(arguments[1],b))};d.prototype["finally"]=
d.prototype.ensure=function(a){if("function"!==typeof a)return this;a=b(a,this);return this.then(a,a)};d.prototype["else"]=d.prototype.orElse=function(a){return this.then(void 0,function(){return a})};d.prototype.yield=function(a){return this.then(function(){return a})};d.prototype.tap=function(a){return this.then(a).yield(this)};return d}})})(function(b){p.exports=b()})},{}],61:[function(h,p,k){(function(b){b(function(){return function(a){a.prototype.fold=function(a,b){var d=this._beget();this._handler.fold(d._handler,
a,b);return d};return a}})})(function(b){p.exports=b()})},{}],62:[function(h,p,k){(function(b){b(function(){return function(a){a.prototype.inspect=function(){return this._handler.inspect()};return a}})})(function(b){p.exports=b()})},{}],63:[function(h,p,k){(function(b){b(function(){return function(a){function b(a,h,k,g){function n(g,n){return e(k(g)).then(function(){return b(a,h,k,n)})}return e(g).then(function(b){return e(h(b)).then(function(c){return c?b:e(a(b)).spread(n)})})}var e=a.resolve;a.iterate=
function(a,e,h,g){return b(function(b){return[b,a(b)]},e,h,g)};a.unfold=b;return a}})})(function(b){p.exports=b()})},{}],64:[function(h,p,k){(function(b){b(function(){return function(a){a.prototype.progress=function(a){return this.then(void 0,void 0,a)};return a}})})(function(b){p.exports=b()})},{}],65:[function(h,p,k){(function(b){b(function(a){var b=a("../timer"),e=a("../TimeoutError");return function(a){a.prototype.delay=function(a){var d=this._beget(),e=d._handler;this._handler.map(function(d){b.set(function(){e.resolve(d)},
a)},e);return d};a.prototype.timeout=function(a,d){var g=1<arguments.length,h=this._beget(),l=h._handler,k=b.set(function(){l.reject(g?d:new e("timed out after "+a+"ms"))},a);this._handler.chain(l,function(a){b.clear(k);this.resolve(a)},function(a){b.clear(k);this.reject(a)},l.notify);return h};return a}})})(function(b){p.exports=b(h)})},{"../TimeoutError":57,"../timer":71}],66:[function(h,p,k){(function(b){b(function(a){function b(a){var c=String(a);if("[object Object]"===c&&"undefined"!==typeof JSON){var d=
c;try{c=JSON.stringify(a)}catch(e){c=d}}return c}function e(a){throw a;}function d(){}var h=a("../timer");return function(a){function g(a){if(!a.handled){y.push(a);var d=P,e="Potentially unhandled rejection ["+a.id+"] ";a=a.value;var g="object"===typeof a&&a.stack?a.stack:b(a);d(e+(a instanceof Error?g:g+" (WARNING: non-Error used)"))}}function k(a){var d=y.indexOf(a);0<=d&&(y.splice(d,1),w("Handled previous rejection ["+a.id+"] "+b(a.value)))}function l(a,b){v.push(a,b);H||(H=!0,H=h.set(p,0))}function p(){for(H=
!1;0<v.length;)v.shift()(v.shift())}var P=d,w=d;"undefined"!==typeof console&&(P="undefined"!==typeof console.error?function(a){console.error(a)}:function(a){console.log(a)},w="undefined"!==typeof console.info?function(a){console.info(a)}:function(a){console.log(a)});a.onPotentiallyUnhandledRejection=function(a){l(g,a)};a.onPotentiallyUnhandledRejectionHandled=function(a){l(k,a)};a.onFatalRejection=function(a){l(e,a.value)};var v=[],y=[],H=!1;return a}})})(function(b){p.exports=b(h)})},{"../timer":71}],
67:[function(h,p,k){(function(b){b(function(){return function(a){a.prototype["with"]=a.prototype.withThis=a.prototype._bindContext;return a}})})(function(b){p.exports=b()})},{}],68:[function(h,p,k){(function(b){b(function(){function a(a,b,c){a[c]=b;return a}function b(a){return"function"===typeof a?a.bind():Object.create(a)}return function(e,d,h,k){"undefined"===typeof d&&(d=a);return Object.keys(k).reduce(function(a,b){var c=k[b];return"function"===typeof c?d(a,e(c),b):a},"undefined"===typeof h?
b(k):h)}})})(function(b){p.exports=b()})},{}],69:[function(h,p,k){(function(b){b(function(){return function(a){function b(a,c){this._handler=a===g?c:e(a)}function e(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new n;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return new b(g,new p(new y(a)))}function h(a){return a instanceof b?a._handler.join():E(a)?k(a):new v(a)}function k(a){try{var b=a.then;return"function"===typeof b?new w(b,a):new v(a)}catch(c){return new y(c)}}
function g(){}function n(a,d){b.createContext(this,d);this.consumers=void 0;this.receiver=a;this.handler=void 0;this.resolved=!1}function l(a){this.handler=a}function p(a){this.handler=a}function P(a,b){this.handler=a;this.receiver=b}function w(a,b){n.call(this);G.enqueue(new C(a,b,this))}function v(a){b.createContext(this);this.value=a}function y(a){b.createContext(this);this.id=++t;this.value=a;this.reported=this.handled=!1;this._report()}function H(a,d){a.handled||(a.reported=!0,b.onPotentiallyUnhandledRejection(a,
d))}function f(a){if(a.reported)b.onPotentiallyUnhandledRejectionHandled(a)}function x(){y.call(this,new TypeError("Promise cycle"))}function J(){return{state:"pending"}}function A(a,b){this.continuation=a;this.handler=b}function L(a,b){this.handler=a;this.value=b}function C(a,b,c){this._then=a;this.thenable=b;this.resolver=c}function B(a,b,c,d,e){try{a.call(b,c,d,e)}catch(f){d(f)}}function E(a){return("object"===typeof a||"function"===typeof a)&&null!==a}function I(a,b,c){try{return a.call(c,b)}catch(e){return d(e)}}
function Q(a,b,c,e){try{return a.call(e,b,c)}catch(f){return d(f)}}function N(a,b){b.prototype=s(a.prototype);b.prototype.constructor=b}function F(){}var G=a.scheduler,s=Object.create||function(a){function b(){}b.prototype=a;return new b};b.resolve=function(a){return a instanceof b?a:new b(g,new p(h(a)))};b.reject=d;b.never=function(){return r};b._defer=function(){return new b(g,new n)};b.prototype.then=function(a,d){var e=this._handler;if("function"!==typeof a&&0<e.join().state())return new b(g,
e);var f=this._beget(),h=f._handler;e.when({resolve:h.resolve,notify:h.notify,context:h,receiver:e.receiver,fulfilled:a,rejected:d,progress:2<arguments.length?arguments[2]:void 0});return f};b.prototype["catch"]=function(a){return this.then(void 0,a)};b.prototype._bindContext=function(a){return new b(g,new P(this._handler,a))};b.prototype._beget=function(){var a=this._handler,a=new n(a.receiver,a.join().context);return new this.constructor(g,a)};b.prototype._maybeFatal=function(a){if(E(a)){a=h(a);
var b=this._handler.context;a.catchError(function(){this._fatal(b)},a)}};b.all=function(a){function d(a,b,c,e){c.map(function(a){b[e]=a;0===--f&&this.become(new v(b))},a)}var e=new n,f=a.length>>>0,h=Array(f),l,m,p;for(l=0;l<a.length;++l)if(m=a[l],void 0!==m||l in a)if(E(m))if(m=m instanceof b?m._handler.join():k(m),p=m.state(),0===p)d(e,h,m,l);else if(0<p)h[l]=m.value,--f;else{e.become(m);break}else h[l]=m,--f;else--f;0===f&&e.become(new v(h));return new b(g,e)};b.race=function(a){if(Object(a)===
a&&0===a.length)return r;var d=new n,e,f;for(e=0;e<a.length;++e)f=a[e],void 0!==f&&e in a&&h(f).chain(d,d.resolve,d.reject);return new b(g,d)};g.prototype.when=g.prototype.resolve=g.prototype.reject=g.prototype.notify=g.prototype._fatal=g.prototype._unreport=g.prototype._report=F;g.prototype.inspect=J;g.prototype._state=0;g.prototype.state=function(){return this._state};g.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a};g.prototype.chain=function(a,b,c,d){this.when({resolve:F,
notify:F,context:void 0,receiver:a,fulfilled:b,rejected:c,progress:d})};g.prototype.map=function(a,b){this.chain(b,a,b.reject,b.notify)};g.prototype.catchError=function(a,b){this.chain(b,b.resolve,a,b.notify)};g.prototype.fold=function(a,b,c){this.join().map(function(a){h(c).map(function(c){this.resolve(Q(b,c,a,this.receiver))},this)},a)};N(g,n);n.prototype._state=0;n.prototype.inspect=function(){return this.resolved?this.join().inspect():J()};n.prototype.resolve=function(a){this.resolved||this.become(h(a))};
n.prototype.reject=function(a){this.resolved||this.become(new y(a))};n.prototype.join=function(){if(this.resolved){for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=new x;return a}return this};n.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;c<a.length;++c)b.when(a[c])};n.prototype.become=function(a){this.resolved=!0;this.handler=a;void 0!==this.consumers&&G.enqueue(this);void 0!==this.context&&a._report(this.context)};n.prototype.when=
function(a){this.resolved?G.enqueue(new A(a,this.handler)):void 0===this.consumers?this.consumers=[a]:this.consumers.push(a)};n.prototype.notify=function(a){this.resolved||G.enqueue(new L(this,a))};n.prototype._report=function(a){this.resolved&&this.handler.join()._report(a)};n.prototype._unreport=function(){this.resolved&&this.handler.join()._unreport()};n.prototype._fatal=function(a){a="undefined"===typeof a?this.context:a;this.resolved&&this.handler.join()._fatal(a)};N(g,l);l.prototype.inspect=
function(){return this.join().inspect()};l.prototype._report=function(a){this.join()._report(a)};l.prototype._unreport=function(){this.join()._unreport()};N(l,p);p.prototype.when=function(a){G.enqueue(new A(a,this.join()))};N(l,P);P.prototype.when=function(a){void 0!==this.receiver&&(a.receiver=this.receiver);this.join().when(a)};N(n,w);N(g,v);v.prototype._state=1;v.prototype.inspect=function(){return{state:"fulfilled",value:this.value}};v.prototype.when=function(a){var d;"function"===typeof a.fulfilled?
(b.enterContext(this),d=I(a.fulfilled,this.value,a.receiver),b.exitContext()):d=this.value;a.resolve.call(a.context,d)};var t=0;N(g,y);y.prototype._state=-1;y.prototype.inspect=function(){return{state:"rejected",reason:this.value}};y.prototype.when=function(a){var d;"function"===typeof a.rejected?(this._unreport(),b.enterContext(this),d=I(a.rejected,this.value,a.receiver),b.exitContext()):d=new b(g,this);a.resolve.call(a.context,d)};y.prototype._report=function(a){G.afterQueue(H,this,a)};y.prototype._unreport=
function(){this.handled=!0;G.afterQueue(f,this)};y.prototype._fatal=function(a){b.onFatalRejection(this,a)};b.createContext=b.enterContext=b.exitContext=b.onPotentiallyUnhandledRejection=b.onPotentiallyUnhandledRejectionHandled=b.onFatalRejection=F;a=new g;var r=new b(g,a);N(y,x);A.prototype.run=function(){this.handler.join().when(this.continuation)};L.prototype.run=function(){var a=this.handler.consumers;if(void 0!==a)for(var b=0;b<a.length;++b)this._notify(a[b])};L.prototype._notify=function(a){var b;
if("function"===typeof a.progress)try{b=a.progress.call(a.receiver,this.value)}catch(c){b=c}else b=this.value;a.notify.call(a.context,b)};C.prototype.run=function(){var a=this.resolver;B(this._then,this.thenable,function(b){a.resolve(b)},function(b){a.reject(b)},function(b){a.notify(b)})};return b}})})(function(b){p.exports=b()})},{}],70:[function(h,p,k){(function(b){b(function(a){function b(a){this._enqueue=a;this._handlerQueue=new e(15);this._afterQueue=new e(5);this._running=!1;var c=this;this.drain=
function(){c._drain()}}var e=a("./Queue");b.prototype.enqueue=function(a){this._handlerQueue.push(a);this._running||(this._running=!0,this._enqueue(this.drain))};b.prototype.afterQueue=function(a,b,c){this._afterQueue.push(a);this._afterQueue.push(b);this._afterQueue.push(c);this._running||(this._running=!0,this._enqueue(this.drain))};b.prototype._drain=function(){for(var a=this._handlerQueue;0<a.length;)a.shift().run();this._running=!1;for(a=this._afterQueue;0<a.length;)a.shift()(a.shift(),a.shift())};
return b})})(function(b){p.exports=b(h)})},{"./Queue":56}],71:[function(h,p,k){(function(b){b(function(a){var b,e,d;try{b=a("vertx"),e=function(a,d){return b.setTimer(d,a)},d=b.cancelTimer}catch(h){e=function(a,b){return setTimeout(a,b)},d=function(a){return clearTimeout(a)}}return{set:e,clear:d}})})(function(b){p.exports=b(h)})},{}],72:[function(h,p,k){(function(b){b(function(a){var b=a("./monitor/PromiseMonitor");a=a("./monitor/ConsoleReporter");var e=new b(new a);return function(a){return e.monitor(a)}})})(function(b){p.exports=
b(h)})},{"./monitor/ConsoleReporter":73,"./monitor/PromiseMonitor":74}],73:[function(h,p,k){(function(b){b(function(a){function b(){this._previouslyReported=!1}function e(){}var d=a("./error");b.prototype=function(){var a,b,c,d;"undefined"===typeof console?a=b=e:"function"===typeof console.error&&"function"===typeof console.dir?(b=function(a){console.error(a)},a=function(a){console.log(a)},"function"===typeof console.groupCollapsed&&(c=function(a){console.groupCollapsed(a)},d=function(){console.groupEnd()})):
"function"===typeof console.log&&"undefined"!==typeof JSON&&(a=b=function(a){if("string"!==typeof a)try{a=JSON.stringify(a)}catch(b){}console.log(a)});return{msg:a,warn:b,groupStart:c||b,groupEnd:d||e}}();b.prototype.log=function(a){if(0===a.length)this._previouslyReported&&(this._previouslyReported=!1,this.msg("[promises] All previously unhandled rejections have now been handled"));else{this._previouslyReported=!0;this.groupStart("[promises] Unhandled rejections: "+a.length);try{this._log(a)}finally{this.groupEnd()}}};
b.prototype._log=function(a){for(var b=0;b<a.length;++b)this.warn(d.format(a[b]))};return b})})(function(b){p.exports=b(h)})},{"./error":76}],74:[function(h,p,k){(function(b){b(function(a){function b(a){this.logDelay=0;this.stackFilter=k;this.stackJumpSeparator=h;this.filterDuplicateFrames=!0;this._reporter=a;"function"===typeof a.configurePromiseMonitor&&a.configurePromiseMonitor(this);this._traces=[];this._traceTask=0;var c=this;this._doLogTraces=function(){c._logTraces()}}function e(a,b){return b.filter(function(b){return!a.test(b)})}
function d(a){return!a.handler.handled}var h="from execution context:",k=/[\s\(\/\\](node|module|timers)\.js:|when([\/\\]{1,2}(lib|monitor|es6-shim)[\/\\]{1,2}|\.js)|(new\sPromise)\b|(\b(PromiseMonitor|ConsoleReporter|Scheduler|RunHandlerTask|ProgressTask|Promise|.*Handler)\.[\w_]\w\w+\b)|\b(tryCatch\w+|getHandler\w*)\b/i,g=a("../lib/timer").set,n=a("./error"),l=[];b.prototype.monitor=function(a){var b=this;a.createContext=function(a,c){a.context=b.createContext(a,c)};a.enterContext=function(a){l.push(a.context)};
a.exitContext=function(){l.pop()};a.onPotentiallyUnhandledRejection=function(a,c){return b.addTrace(a,c)};a.onPotentiallyUnhandledRejectionHandled=function(a){return b.removeTrace(a)};a.onFatalRejection=function(a,c){return b.fatal(a,c)};return this};b.prototype.createContext=function(a,b){var c={parent:b||l[l.length-1],stack:void 0};n.captureStack(c,a.constructor);return c};b.prototype.addTrace=function(a,b){var c,d;for(d=this._traces.length-1;0<=d&&(c=this._traces[d],c.handler!==a);--d);0<=d?c.extraContext=
b:this._traces.push({handler:a,extraContext:b});this.logTraces()};b.prototype.removeTrace=function(){this.logTraces()};b.prototype.fatal=function(a,b){var c=Error();c.stack=this._createLongTrace(a.value,a.context,b).join("\n");g(function(){throw c;},0)};b.prototype.logTraces=function(){this._traceTask||(this._traceTask=g(this._doLogTraces,this.logDelay))};b.prototype._logTraces=function(){this._traceTask=void 0;this._traces=this._traces.filter(d);this._reporter.log(this.formatTraces(this._traces))};
b.prototype.formatTraces=function(a){return a.map(function(a){return this._createLongTrace(a.handler.value,a.handler.context,a.extraContext)},this)};b.prototype._createLongTrace=function(a,b,c){a=n.parse(a)||[String(a)+" (WARNING: non-Error used)"];a=e(this.stackFilter,a,0);this._appendContext(a,b);this._appendContext(a,c);return this.filterDuplicateFrames?this._removeDuplicates(a):a};b.prototype._removeDuplicates=function(a){var b={},c=this.stackJumpSeparator,d=0;return a.reduceRight(function(a,
e,f){0===f?a.unshift(e):e===c?0<d&&(a.unshift(e),d=0):b[e]||(b[e]=!0,a.unshift(e),++d);return a},[])};b.prototype._appendContext=function(a,b){a.push.apply(a,this._createTrace(b))};b.prototype._createTrace=function(a){for(var b=[],c;a;){if(c=n.parse(a)){c=e(this.stackFilter,c);var d=b;1<c.length&&(c[0]=this.stackJumpSeparator,d.push.apply(d,c))}a=a.parent}return b};return b})})(function(b){p.exports=b(h)})},{"../lib/timer":71,"./error":76}],75:[function(h,p,k){(function(b){b(function(a){var b=a("../monitor");
a=a("../when").Promise;return b(a)})})(function(b){p.exports=b(h)})},{"../monitor":72,"../when":77}],76:[function(h,p,k){(function(b){b(function(){function a(a){try{throw Error();}catch(b){a.stack=b.stack}}function b(a){a.stack=Error().stack}function e(a){return h(a)}function d(a){var b=Error();b.stack=h(a);return b}function h(a){for(var b=!1,c="",d=0;d<a.length;++d)b?c+="\n"+a[d]:(c+=a[d],b=!0);return c}var k,g,n;Error.captureStackTrace?(k=function(a){return a&&a.stack&&a.stack.split("\n")},n=e,
g=Error.captureStackTrace):(k=function(a){var b=a&&a.stack&&a.stack.split("\n");b&&a.message&&b.unshift(a.message);return b},"string"!==typeof Error().stack?(n=e,g=a):(n=d,g=b));return{parse:k,format:n,captureStack:g}})})(function(b){p.exports=b()})},{}],77:[function(h,p,k){(function(b){b(function(a){function b(a,c,d){var e=x.resolve(a);return 2>arguments.length?e:3<arguments.length?e.then(c,d,arguments[3]):e.then(c,d)}function e(a){return function(){return h(a,this,J.call(arguments))}}function d(a){return h(a,
this,J.call(arguments,1))}function h(a,b,c){return x.all(c).then(function(c){return a.apply(b,c)})}function k(){function a(b){d._handler.resolve(b)}function b(a){d._handler.reject(a)}function c(a){d._handler.notify(a)}var d=x._defer();this.promise=d;this.resolve=a;this.reject=b;this.notify=c;this.resolver={resolve:a,reject:b,notify:c}}var g=a("./lib/decorators/timed"),n=a("./lib/decorators/array"),l=a("./lib/decorators/flow"),p=a("./lib/decorators/fold"),P=a("./lib/decorators/inspect"),w=a("./lib/decorators/iterate"),
v=a("./lib/decorators/progress"),y=a("./lib/decorators/with"),H=a("./lib/decorators/unhandledRejection"),f=a("./lib/TimeoutError"),x=[n,l,p,w,v,P,y,g,H].reduce(function(a,b){return b(a)},a("./lib/Promise")),J=Array.prototype.slice;b.promise=function(a){return new x(a)};b.resolve=x.resolve;b.reject=x.reject;b.lift=e;b["try"]=d;b.attempt=d;b.iterate=x.iterate;b.unfold=x.unfold;b.join=function(){return x.all(arguments)};b.all=function(a){return b(a,x.all)};b.settle=function(a){return b(a,x.settle)};
b.any=e(x.any);b.some=e(x.some);b.map=function(a,d){return b(a,function(a){return x.map(a,d)})};b.reduce=function(a,d){var e=J.call(arguments,1);return b(a,function(a){e.unshift(a);return x.reduce.apply(x,e)})};b.reduceRight=function(a,d){var e=J.call(arguments,1);return b(a,function(a){e.unshift(a);return x.reduceRight.apply(x,e)})};b.isPromiseLike=function(a){return a&&"function"===typeof a.then};b.Promise=x;b.defer=function(){return new k};b.TimeoutError=f;return b})})(function(b){p.exports=b(h)})},
{"./lib/Promise":55,"./lib/TimeoutError":57,"./lib/decorators/array":59,"./lib/decorators/flow":60,"./lib/decorators/fold":61,"./lib/decorators/inspect":62,"./lib/decorators/iterate":63,"./lib/decorators/progress":64,"./lib/decorators/timed":65,"./lib/decorators/unhandledRejection":66,"./lib/decorators/with":67}],78:[function(h,p,k){function b(b,e,d){return e?new a(b,e):new a(b)}h=function(){return this}();var a=h.WebSocket||h.MozWebSocket;p.exports=a?b:null;a&&(b.prototype=a.prototype)},{}],79:[function(h,
p,k){p.exports={name:"autobahn",version:"0.9.5",description:"An implementation of The Web Application Messaging Protocol (WAMP).",main:"index.js",scripts:{test:"nodeunit test/test.js"},dependencies:{when:">= 2.8.0",ws:">= 0.4.31","crypto-js":">= 3.1.2-2"},devDependencies:{browserify:">= 3.28.1",nodeunit:">= 0.8.6"},repository:{type:"git",url:"git://github.com/tavendo/AutobahnJS.git"},keywords:["WAMP","WebSocket","RPC","PubSub"],author:"Tavendo GmbH",license:"MIT"}},{}]},{},[4])(4)});

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,46 @@
Font license info
## Font Awesome
Copyright (C) 2012 by Dave Gandy
Author: Dave Gandy
License: SIL ()
Homepage: http://fortawesome.github.com/Font-Awesome/
## Entypo
Copyright (C) 2012 by Daniel Bruce
Author: Daniel Bruce
License: CC BY-SA (http://creativecommons.org/licenses/by-sa/2.0/)
Homepage: http://www.entypo.com
## Iconic
Copyright (C) 2012 by P.J. Onori
Author: P.J. Onori
License: SIL (http://scripts.sil.org/OFL)
Homepage: http://somerandomdude.com/work/iconic/
## Typicons
(c) Stephen Hutchings 2012
Author: Stephen Hutchings
License: CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0/)
Homepage: http://typicons.com/
## Fontelico
Copyright (C) 2012 by Fontello project
Author: Crowdsourced, for Fontello project
License: SIL (http://scripts.sil.org/OFL)
Homepage: http://fontello.com

View File

@ -0,0 +1,75 @@
This webfont is generated by http://fontello.com open source project.
================================================================================
Please, note, that you should obey original font licences, used to make this
webfont pack. Details available in LICENSE.txt file.
- Usually, it's enough to publish content of LICENSE.txt file somewhere on your
site in "About" section.
- If your project is open-source, usually, it will be ok to make LICENSE.txt
file publically available in your repository.
- Fonts, used in Fontello, don't require to make clickable links on your site.
But any kind of additional authors crediting is welcome.
================================================================================
Comments on archive content
---------------------------
- /font/* - fonts in different formats
- /css/* - different kinds of css, for all situations. Should be ok with
twitter bootstrap. Also, you can skip <i> style and assign icon classes
directly to text elements, if you don't mind about IE7.
- demo.html - demo file, to show your webfont content
- LICENSE.txt - license info about source fonts, used to build your one.
- config.json - keeps your settings. You can import it back to fontello anytime,
to continue your work
Why so many CSS files ?
-----------------------
Because we like to fit all your needs :)
- basic file, <your_font_name>.css - is usually enougth, in contains @font-face
and character codes definition
- *-ie7.css - if you need IE7 support, but still don't wish to put char codes
directly into html
- *-codes.css and *-ie7-codes.css - if you like to use your own @font-face
rules, but still wish to benefit of css generation. That can be very
convenient for automated assets build systems. When you need to update font -
no needs to manually edit files, just override old version with archive
content. See fontello source codes for example.
- *-embedded.css - basic css file, but with embedded WOFF font, to avoid
CORS issues in Firefox and IE9+, when fonts are hosted on the separate domain.
We strongly recommend to resolve this issue by `Access-Control-Allow-Origin`
server headers. But if you ok with dirty hack - this file is for you. Note,
that data url moved to separate @font-face to avoid problems with <IE9, when
string is too long.
- animate.css - use it to get ideas about spinner rotation animation.
Attention for server setup
--------------------------
You MUST setup server to reply with proper `mime-types` for font files. In other
case, some browsers will fail to show fonts.
Usually, `apache` already has necessary settings, but `nginx` and other
webservers should be tuned. Here is list of mime types for our file extentions:
- `application/vnd.ms-fontobject` - eot
- `application/x-font-woff` - woff
- `application/x-font-ttf` - ttf
- `image/svg+xml` - svg

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,85 @@
/*
Animation example, for spinners
*/
.animate-spin {
-moz-animation: spin 2s infinite linear;
-o-animation: spin 2s infinite linear;
-webkit-animation: spin 2s infinite linear;
animation: spin 2s infinite linear;
display: inline-block;
}
@-moz-keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@-webkit-keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@-o-keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@-ms-keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}

View File

@ -0,0 +1,385 @@
.vtk-icon-plus:before { content: '\e81c'; } /* '???' */
.vtk-icon-plus-1:before { content: '\e8f9'; } /* '???' */
.vtk-icon-minus:before { content: '\e820'; } /* '???' */
.vtk-icon-minus-1:before { content: '\e8f6'; } /* '???' */
.vtk-icon-info-1:before { content: '\e8f1'; } /* '???' */
.vtk-icon-left-big:before { content: '\e881'; } /* '???' */
.vtk-icon-up-big:before { content: '\e883'; } /* '???' */
.vtk-icon-right-big:before { content: '\e882'; } /* '???' */
.vtk-icon-down-big:before { content: '\e880'; } /* '???' */
.vtk-icon-switch:before { content: '\e93a'; } /* '???' */
.vtk-icon-plus-squared-1:before { content: '\e8f7'; } /* '???' */
.vtk-icon-minus-squared-1:before { content: '\e8f4'; } /* '???' */
.vtk-icon-home-1:before { content: '\e8ef'; } /* '???' */
.vtk-icon-home:before { content: '\e833'; } /* '???' */
.vtk-icon-keyboard-1:before { content: '\e903'; } /* '???' */
.vtk-icon-pause-1:before { content: '\e937'; } /* '???' */
.vtk-icon-pause:before { content: '\e891'; } /* '???' */
.vtk-icon-fast-forward:before { content: '\e933'; } /* '???' */
.vtk-icon-fast-fw:before { content: '\e88c'; } /* '???' */
.vtk-icon-fast-backward:before { content: '\e932'; } /* '???' */
.vtk-icon-fast-bw:before { content: '\e88b'; } /* '???' */
.vtk-icon-to-end-1:before { content: '\e936'; } /* '???' */
.vtk-icon-to-end:before { content: '\e890'; } /* '???' */
.vtk-icon-to-start:before { content: '\e88e'; } /* '???' */
.vtk-icon-to-start-1:before { content: '\e934'; } /* '???' */
.vtk-icon-hourglass:before { content: '\e90f'; } /* '???' */
.vtk-icon-stop-1:before { content: '\e938'; } /* '???' */
.vtk-icon-stop:before { content: '\e892'; } /* '???' */
.vtk-icon-up-dir-1:before { content: '\e92d'; } /* '???' */
.vtk-icon-up-dir:before { content: '\e87e'; } /* '???' */
.vtk-icon-play-1:before { content: '\e939'; } /* '???' */
.vtk-icon-play:before { content: '\e895'; } /* '???' */
.vtk-icon-right-dir:before { content: '\e87c'; } /* '???' */
.vtk-icon-right-dir-1:before { content: '\e92c'; } /* '???' */
.vtk-icon-down-dir:before { content: '\e87f'; } /* '???' */
.vtk-icon-down-dir-1:before { content: '\e92a'; } /* '???' */
.vtk-icon-left-dir-1:before { content: '\e92b'; } /* '???' */
.vtk-icon-left-dir:before { content: '\e87d'; } /* '???' */
.vtk-icon-cloud:before { content: '\e8a1'; } /* '???' */
.vtk-icon-star-1:before { content: '\e8e1'; } /* '???' */
.vtk-icon-star:before { content: '\e809'; } /* '???' */
.vtk-icon-star-empty-1:before { content: '\e8e2'; } /* '???' */
.vtk-icon-star-empty:before { content: '\e80a'; } /* '???' */
.vtk-icon-check:before { content: '\e8bf'; } /* '???' */
.vtk-icon-th-list:before { content: '\e816'; } /* '???' */
.vtk-icon-menu-1:before { content: '\e8ea'; } /* '???' */
.vtk-icon-heart-empty:before { content: '\e807'; } /* '???' */
.vtk-icon-heart-empty-1:before { content: '\e8e4'; } /* '???' */
.vtk-icon-heart-1:before { content: '\e8e3'; } /* '???' */
.vtk-icon-heart:before { content: '\e808'; } /* '???' */
.vtk-icon-layout:before { content: '\e8eb'; } /* '???' */
.vtk-icon-th:before { content: '\e815'; } /* '???' */
.vtk-icon-flag:before { content: '\e8fe'; } /* '???' */
.vtk-icon-tools:before { content: '\e90b'; } /* '???' */
.vtk-icon-cog:before { content: '\e85d'; } /* '???' */
.vtk-icon-attention:before { content: '\e849'; } /* '???' */
.vtk-icon-attention-1:before { content: '\e906'; } /* '???' */
.vtk-icon-record:before { content: '\e935'; } /* '???' */
.vtk-icon-cog-alt:before { content: '\e85e'; } /* '???' */
.vtk-icon-scissors:before { content: '\e8aa'; } /* '???' */
.vtk-icon-edit:before { content: '\e853'; } /* '???' */
.vtk-icon-pencil-1:before { content: '\e900'; } /* '???' */
.vtk-icon-pencil:before { content: '\e840'; } /* '???' */
.vtk-icon-check-1:before { content: '\e8e8'; } /* '???' */
.vtk-icon-ok:before { content: '\e817'; } /* '???' */
.vtk-icon-ok-circled:before { content: '\e818'; } /* '???' */
.vtk-icon-cancel-1:before { content: '\e8e9'; } /* '???' */
.vtk-icon-cancel:before { content: '\e81b'; } /* '???' */
.vtk-icon-cancel-circled:before { content: '\e8fb'; } /* '???' */
.vtk-icon-asterisk:before { content: '\e8c3'; } /* '???' */
.vtk-icon-cancel-squared:before { content: '\e8fa'; } /* '???' */
.vtk-icon-help-1:before { content: '\e8f3'; } /* '???' */
.vtk-icon-attention-circled:before { content: '\e848'; } /* '???' */
.vtk-icon-plus-circled-1:before { content: '\e8f8'; } /* '???' */
.vtk-icon-plus-circled:before { content: '\e81d'; } /* '???' */
.vtk-icon-minus-circled-1:before { content: '\e8f5'; } /* '???' */
.vtk-icon-minus-circled:before { content: '\e821'; } /* '???' */
.vtk-icon-right:before { content: '\e928'; } /* '???' */
.vtk-icon-forward:before { content: '\e83d'; } /* '???' */
.vtk-icon-ccw:before { content: '\e889'; } /* '???' */
.vtk-icon-ccw-1:before { content: '\e93f'; } /* '???' */
.vtk-icon-cw-1:before { content: '\e93e'; } /* '???' */
.vtk-icon-cw:before { content: '\e888'; } /* '???' */
.vtk-icon-left:before { content: '\e927'; } /* '???' */
.vtk-icon-up:before { content: '\e929'; } /* '???' */
.vtk-icon-down:before { content: '\e926'; } /* '???' */
.vtk-icon-resize-vertical-1:before { content: '\e97d'; } /* '???' */
.vtk-icon-resize-vertical:before { content: '\e870'; } /* '???' */
.vtk-icon-resize-horizontal-1:before { content: '\e97f'; } /* '???' */
.vtk-icon-resize-horizontal:before { content: '\e86e'; } /* '???' */
.vtk-icon-list-add:before { content: '\e942'; } /* '???' */
.vtk-icon-list-1:before { content: '\e941'; } /* '???' */
.vtk-icon-down-1:before { content: '\e966'; } /* '???' */
.vtk-icon-left-1:before { content: '\e967'; } /* '???' */
.vtk-icon-loop-alt-outline:before { content: '\e96b'; } /* '???' */
.vtk-icon-loop-alt:before { content: '\e96c'; } /* '???' */
.vtk-icon-loop-outline:before { content: '\e96a'; } /* '???' */
.vtk-icon-right-1:before { content: '\e969'; } /* '???' */
.vtk-icon-up-1:before { content: '\e968'; } /* '???' */
.vtk-icon-left-open-outline:before { content: '\e962'; } /* '???' */
.vtk-icon-left-open-2:before { content: '\e963'; } /* '???' */
.vtk-icon-right-open-outline:before { content: '\e964'; } /* '???' */
.vtk-icon-right-open-2:before { content: '\e965'; } /* '???' */
.vtk-icon-users-outline:before { content: '\e95b'; } /* '???' */
.vtk-icon-users-2:before { content: '\e95a'; } /* '???' */
.vtk-icon-heart-2:before { content: '\e961'; } /* '???' */
.vtk-icon-heart-filled:before { content: '\e960'; } /* '???' */
.vtk-icon-fast-fw-outline:before { content: '\e973'; } /* '???' */
.vtk-icon-fast-fw-1:before { content: '\e974'; } /* '???' */
.vtk-icon-pause-outline:before { content: '\e971'; } /* '???' */
.vtk-icon-pause-2:before { content: '\e972'; } /* '???' */
.vtk-icon-play-outline:before { content: '\e96e'; } /* '???' */
.vtk-icon-play-2:before { content: '\e96d'; } /* '???' */
.vtk-icon-record-outline:before { content: '\e977'; } /* '???' */
.vtk-icon-record-1:before { content: '\e978'; } /* '???' */
.vtk-icon-rewind-outline:before { content: '\e975'; } /* '???' */
.vtk-icon-rewind:before { content: '\e976'; } /* '???' */
.vtk-icon-stop-outline:before { content: '\e96f'; } /* '???' */
.vtk-icon-stop-2:before { content: '\e970'; } /* '???' */
.vtk-icon-star-2:before { content: '\e95f'; } /* '???' */
.vtk-icon-star-filled:before { content: '\e95e'; } /* '???' */
.vtk-icon-user-add-outline:before { content: '\e959'; } /* '???' */
.vtk-icon-user-add-1:before { content: '\e958'; } /* '???' */
.vtk-icon-user-delete:before { content: '\e957'; } /* '???' */
.vtk-icon-user-outline:before { content: '\e95c'; } /* '???' */
.vtk-icon-user-2:before { content: '\e95d'; } /* '???' */
.vtk-icon-left-bold:before { content: '\e92f'; } /* '???' */
.vtk-icon-right-bold:before { content: '\e930'; } /* '???' */
.vtk-icon-up-bold:before { content: '\e931'; } /* '???' */
.vtk-icon-down-bold:before { content: '\e92e'; } /* '???' */
.vtk-icon-user-add:before { content: '\e8df'; } /* '???' */
.vtk-icon-star-half:before { content: '\e80c'; } /* '???' */
.vtk-icon-ok-circled2:before { content: '\e819'; } /* '???' */
.vtk-icon-help-circled-1:before { content: '\e8f2'; } /* '???' */
.vtk-icon-help-circled:before { content: '\e836'; } /* '???' */
.vtk-icon-info-circled:before { content: '\e835'; } /* '???' */
.vtk-icon-info-circled-1:before { content: '\e8f0'; } /* '???' */
.vtk-icon-th-large:before { content: '\e814'; } /* '???' */
.vtk-icon-eye:before { content: '\e82b'; } /* '???' */
.vtk-icon-eye-1:before { content: '\e8ec'; } /* '???' */
.vtk-icon-eye-off:before { content: '\e82a'; } /* '???' */
.vtk-icon-tag:before { content: '\e829'; } /* '???' */
.vtk-icon-tags:before { content: '\e828'; } /* '???' */
.vtk-icon-camera-alt:before { content: '\e813'; } /* '???' */
.vtk-icon-upload-cloud-1:before { content: '\e8ff'; } /* '???' */
.vtk-icon-export-1:before { content: '\e901'; } /* '???' */
.vtk-icon-export:before { content: '\e83e'; } /* '???' */
.vtk-icon-print:before { content: '\e852'; } /* '???' */
.vtk-icon-retweet:before { content: '\e851'; } /* '???' */
.vtk-icon-retweet-1:before { content: '\e902'; } /* '???' */
.vtk-icon-comment:before { content: '\e84e'; } /* '???' */
.vtk-icon-location:before { content: '\e847'; } /* '???' */
.vtk-icon-trash:before { content: '\e844'; } /* '???' */
.vtk-icon-docs-1:before { content: '\e905'; } /* '???' */
.vtk-icon-archive:before { content: '\e909'; } /* '???' */
.vtk-icon-login:before { content: '\e862'; } /* '???' */
.vtk-icon-login-1:before { content: '\e90c'; } /* '???' */
.vtk-icon-logout:before { content: '\e867'; } /* '???' */
.vtk-icon-logout-1:before { content: '\e90d'; } /* '???' */
.vtk-icon-resize-full-1:before { content: '\e91c'; } /* '???' */
.vtk-icon-resize-full-2:before { content: '\e979'; } /* '???' */
.vtk-icon-resize-full:before { content: '\e86b'; } /* '???' */
.vtk-icon-resize-full-alt-1:before { content: '\e97a'; } /* '???' */
.vtk-icon-resize-small-2:before { content: '\e97b'; } /* '???' */
.vtk-icon-resize-small-1:before { content: '\e91b'; } /* '???' */
.vtk-icon-resize-small:before { content: '\e86d'; } /* '???' */
.vtk-icon-resize-small-alt:before { content: '\e97c'; } /* '???' */
.vtk-icon-move-1:before { content: '\e97e'; } /* '???' */
.vtk-icon-publish:before { content: '\e91a'; } /* '???' */
.vtk-icon-arrow-combo:before { content: '\e919'; } /* '???' */
.vtk-icon-zoom-in:before { content: '\e866'; } /* '???' */
.vtk-icon-chart-pie:before { content: '\e949'; } /* '???' */
.vtk-icon-zoom-out:before { content: '\e865'; } /* '???' */
.vtk-icon-database:before { content: '\e94e'; } /* '???' */
.vtk-icon-drive:before { content: '\e94f'; } /* '???' */
.vtk-icon-down-circled-1:before { content: '\e918'; } /* '???' */
.vtk-icon-down-circled2:before { content: '\e864'; } /* '???' */
.vtk-icon-left-circled-1:before { content: '\e917'; } /* '???' */
.vtk-icon-right-circled-1:before { content: '\e916'; } /* '???' */
.vtk-icon-up-circled-1:before { content: '\e915'; } /* '???' */
.vtk-icon-up-circled2:before { content: '\e863'; } /* '???' */
.vtk-icon-down-open-1:before { content: '\e913'; } /* '???' */
.vtk-icon-down-open:before { content: '\e87b'; } /* '???' */
.vtk-icon-left-open-1:before { content: '\e912'; } /* '???' */
.vtk-icon-left-open:before { content: '\e87a'; } /* '???' */
.vtk-icon-right-open:before { content: '\e879'; } /* '???' */
.vtk-icon-right-open-1:before { content: '\e914'; } /* '???' */
.vtk-icon-up-open-1:before { content: '\e911'; } /* '???' */
.vtk-icon-up-open:before { content: '\e878'; } /* '???' */
.vtk-icon-down-open-mini:before { content: '\e910'; } /* '???' */
.vtk-icon-arrows-cw:before { content: '\e88a'; } /* '???' */
.vtk-icon-left-open-mini:before { content: '\e91f'; } /* '???' */
.vtk-icon-play-circled2:before { content: '\e893'; } /* '???' */
.vtk-icon-to-end-alt:before { content: '\e88f'; } /* '???' */
.vtk-icon-right-open-mini:before { content: '\e920'; } /* '???' */
.vtk-icon-to-start-alt:before { content: '\e88d'; } /* '???' */
.vtk-icon-up-open-mini:before { content: '\e921'; } /* '???' */
.vtk-icon-down-open-big:before { content: '\e922'; } /* '???' */
.vtk-icon-left-open-big:before { content: '\e923'; } /* '???' */
.vtk-icon-right-open-big:before { content: '\e925'; } /* '???' */
.vtk-icon-up-open-big:before { content: '\e924'; } /* '???' */
.vtk-icon-back-in-time:before { content: '\e943'; } /* '???' */
.vtk-icon-font:before { content: '\e8a2'; } /* '???' */
.vtk-icon-bold:before { content: '\e8a3'; } /* '???' */
.vtk-icon-italic:before { content: '\e8a4'; } /* '???' */
.vtk-icon-text-height:before { content: '\e8a5'; } /* '???' */
.vtk-icon-text-width:before { content: '\e8a6'; } /* '???' */
.vtk-icon-align-left:before { content: '\e8ba'; } /* '???' */
.vtk-icon-align-center:before { content: '\e8b9'; } /* '???' */
.vtk-icon-align-right:before { content: '\e8b8'; } /* '???' */
.vtk-icon-align-justify:before { content: '\e8b7'; } /* '???' */
.vtk-icon-list:before { content: '\e8b6'; } /* '???' */
.vtk-icon-indent-left:before { content: '\e8b5'; } /* '???' */
.vtk-icon-indent-right:before { content: '\e8b4'; } /* '???' */
.vtk-icon-dot:before { content: '\e94c'; } /* '???' */
.vtk-icon-dot-2:before { content: '\e94b'; } /* '???' */
.vtk-icon-dot-3:before { content: '\e94a'; } /* '???' */
.vtk-icon-off:before { content: '\e8bb'; } /* '???' */
.vtk-icon-list-alt:before { content: '\e8bc'; } /* '???' */
.vtk-icon-flow-cascade:before { content: '\e951'; } /* '???' */
.vtk-icon-flow-branch:before { content: '\e952'; } /* '???' */
.vtk-icon-flow-tree:before { content: '\e953'; } /* '???' */
.vtk-icon-flow-line:before { content: '\e954'; } /* '???' */
.vtk-icon-ajust:before { content: '\e8bd'; } /* '???' */
.vtk-icon-flow-parallel:before { content: '\e955'; } /* '???' */
.vtk-icon-tint:before { content: '\e8be'; } /* '???' */
.vtk-icon-gauge-1:before { content: '\e956'; } /* '???' */
.vtk-icon-spin1:before { content: '\e801'; } /* '???' */
.vtk-icon-spin2:before { content: '\e802'; } /* '???' */
.vtk-icon-spin3:before { content: '\e803'; } /* '???' */
.vtk-icon-spin4:before { content: '\e800'; } /* '???' */
.vtk-icon-spin5:before { content: '\e804'; } /* '???' */
.vtk-icon-spin6:before { content: '\e805'; } /* '???' */
.vtk-icon-move:before { content: '\e86f'; } /* '???' */
.vtk-icon-link-ext:before { content: '\e832'; } /* '???' */
.vtk-icon-check-empty:before { content: '\e8c0'; } /* '???' */
.vtk-icon-bookmark-empty:before { content: '\e826'; } /* '???' */
.vtk-icon-hdd:before { content: '\e8ce'; } /* '???' */
.vtk-icon-certificate:before { content: '\e8cb'; } /* '???' */
.vtk-icon-left-circled:before { content: '\e884'; } /* '???' */
.vtk-icon-right-circled:before { content: '\e885'; } /* '???' */
.vtk-icon-up-circled:before { content: '\e886'; } /* '???' */
.vtk-icon-down-circled:before { content: '\e887'; } /* '???' */
.vtk-icon-tasks:before { content: '\e8ca'; } /* '???' */
.vtk-icon-filter:before { content: '\e8c8'; } /* '???' */
.vtk-icon-resize-full-alt:before { content: '\e86c'; } /* '???' */
.vtk-icon-beaker:before { content: '\e8c9'; } /* '???' */
.vtk-icon-docs:before { content: '\e842'; } /* '???' */
.vtk-icon-menu:before { content: '\e85c'; } /* '???' */
.vtk-icon-list-bullet:before { content: '\e8b3'; } /* '???' */
.vtk-icon-list-numbered:before { content: '\e8b2'; } /* '???' */
.vtk-icon-strike:before { content: '\e8b1'; } /* '???' */
.vtk-icon-underline:before { content: '\e8b0'; } /* '???' */
.vtk-icon-table:before { content: '\e8ad'; } /* '???' */
.vtk-icon-magic:before { content: '\e8c7'; } /* '???' */
.vtk-icon-columns:before { content: '\e8ac'; } /* '???' */
.vtk-icon-sort:before { content: '\e8d1'; } /* '???' */
.vtk-icon-sort-down:before { content: '\e8d2'; } /* '???' */
.vtk-icon-sort-up:before { content: '\e8d3'; } /* '???' */
.vtk-icon-gauge:before { content: '\e8da'; } /* '???' */
.vtk-icon-comment-empty:before { content: '\e84d'; } /* '???' */
.vtk-icon-sitemap:before { content: '\e8db'; } /* '???' */
.vtk-icon-paste:before { content: '\e8a9'; } /* '???' */
.vtk-icon-lightbulb:before { content: '\e869'; } /* '???' */
.vtk-icon-exchange:before { content: '\e899'; } /* '???' */
.vtk-icon-download-cloud:before { content: '\e839'; } /* '???' */
.vtk-icon-upload-cloud:before { content: '\e83a'; } /* '???' */
.vtk-icon-suitcase:before { content: '\e8a7'; } /* '???' */
.vtk-icon-bell-alt:before { content: '\e84b'; } /* '???' */
.vtk-icon-doc-text:before { content: '\e854'; } /* '???' */
.vtk-icon-plus-squared:before { content: '\e81e'; } /* '???' */
.vtk-icon-angle-left:before { content: '\e877'; } /* '???' */
.vtk-icon-angle-up:before { content: '\e876'; } /* '???' */
.vtk-icon-angle-down:before { content: '\e875'; } /* '???' */
.vtk-icon-desktop:before { content: '\e89b'; } /* '???' */
.vtk-icon-laptop:before { content: '\e89c'; } /* '???' */
.vtk-icon-tablet:before { content: '\e89d'; } /* '???' */
.vtk-icon-mobile:before { content: '\e89e'; } /* '???' */
.vtk-icon-circle-empty:before { content: '\e8c2'; } /* '???' */
.vtk-icon-spinner:before { content: '\e8dc'; } /* '???' */
.vtk-icon-circle:before { content: '\e8c1'; } /* '???' */
.vtk-icon-reply:before { content: '\e83b'; } /* '???' */
.vtk-icon-folder-empty:before { content: '\e859'; } /* '???' */
.vtk-icon-folder-open-empty:before { content: '\e85a'; } /* '???' */
.vtk-icon-plus-squared-small:before { content: '\e81f'; } /* '???' */
.vtk-icon-minus-squared-small:before { content: '\e824'; } /* '???' */
.vtk-icon-gamepad:before { content: '\e850'; } /* '???' */
.vtk-icon-keyboard:before { content: '\e84f'; } /* '???' */
.vtk-icon-terminal:before { content: '\e8de'; } /* '???' */
.vtk-icon-code:before { content: '\e841'; } /* '???' */
.vtk-icon-reply-all:before { content: '\e83c'; } /* '???' */
.vtk-icon-star-half-alt:before { content: '\e80b'; } /* '???' */
.vtk-icon-direction:before { content: '\e846'; } /* '???' */
.vtk-icon-crop:before { content: '\e8ab'; } /* '???' */
.vtk-icon-fork:before { content: '\e8cd'; } /* '???' */
.vtk-icon-help:before { content: '\e825'; } /* '???' */
.vtk-icon-info:before { content: '\e834'; } /* '???' */
.vtk-icon-attention-alt:before { content: '\e84a'; } /* '???' */
.vtk-icon-superscript:before { content: '\e8af'; } /* '???' */
.vtk-icon-subscript:before { content: '\e8ae'; } /* '???' */
.vtk-icon-eraser:before { content: '\e8dd'; } /* '???' */
.vtk-icon-calendar-empty:before { content: '\e861'; } /* '???' */
.vtk-icon-angle-circled-left:before { content: '\e874'; } /* '???' */
.vtk-icon-angle-circled-right:before { content: '\e873'; } /* '???' */
.vtk-icon-angle-circled-up:before { content: '\e872'; } /* '???' */
.vtk-icon-angle-circled-down:before { content: '\e871'; } /* '???' */
.vtk-icon-lock-open-alt:before { content: '\e82d'; } /* '???' */
.vtk-icon-play-circled:before { content: '\e894'; } /* '???' */
.vtk-icon-minus-squared:before { content: '\e822'; } /* '???' */
.vtk-icon-minus-squared-alt:before { content: '\e823'; } /* '???' */
.vtk-icon-ok-squared:before { content: '\e81a'; } /* '???' */
.vtk-icon-link-ext-alt:before { content: '\e831'; } /* '???' */
.vtk-icon-export-alt:before { content: '\e83f'; } /* '???' */
.vtk-icon-compass:before { content: '\e845'; } /* '???' */
.vtk-icon-collapse:before { content: '\e898'; } /* '???' */
.vtk-icon-collapse-top:before { content: '\e897'; } /* '???' */
.vtk-icon-expand:before { content: '\e896'; } /* '???' */
.vtk-icon-euro:before { content: '\e8c6'; } /* '???' */
.vtk-icon-dollar:before { content: '\e8c5'; } /* '???' */
.vtk-icon-doc-inv:before { content: '\e855'; } /* '???' */
.vtk-icon-doc-text-inv:before { content: '\e856'; } /* '???' */
.vtk-icon-sort-name-up:before { content: '\e8d6'; } /* '???' */
.vtk-icon-sort-name-down:before { content: '\e8d7'; } /* '???' */
.vtk-icon-sort-alt-up:before { content: '\e8d4'; } /* '???' */
.vtk-icon-sort-alt-down:before { content: '\e8d5'; } /* '???' */
.vtk-icon-sort-number-up:before { content: '\e8d8'; } /* '???' */
.vtk-icon-sort-number-down:before { content: '\e8d9'; } /* '???' */
.vtk-icon-sun:before { content: '\e8a0'; } /* '???' */
.vtk-icon-box:before { content: '\e85b'; } /* '???' */
.vtk-icon-bug:before { content: '\e8cc'; } /* '???' */
.vtk-icon-picture-1:before { content: '\e8e7'; } /* '???' */
.vtk-icon-picture:before { content: '\e811'; } /* '???' */
.vtk-icon-globe:before { content: '\e89f'; } /* '???' */
.vtk-icon-videocam:before { content: '\e810'; } /* '???' */
.vtk-icon-video:before { content: '\e80f'; } /* '???' */
.vtk-icon-target:before { content: '\e940'; } /* '???' */
.vtk-icon-user-1:before { content: '\e8e5'; } /* '???' */
.vtk-icon-user:before { content: '\e80d'; } /* '???' */
.vtk-icon-users-1:before { content: '\e8e6'; } /* '???' */
.vtk-icon-users:before { content: '\e80e'; } /* '???' */
.vtk-icon-lamp:before { content: '\e91e'; } /* '???' */
.vtk-icon-credit-card:before { content: '\e8d0'; } /* '???' */
.vtk-icon-monitor:before { content: '\e944'; } /* '???' */
.vtk-icon-briefcase:before { content: '\e8a8'; } /* '???' */
.vtk-icon-floppy-1:before { content: '\e94d'; } /* '???' */
.vtk-icon-floppy:before { content: '\e8cf'; } /* '???' */
.vtk-icon-folder-1:before { content: '\e908'; } /* '???' */
.vtk-icon-folder:before { content: '\e857'; } /* '???' */
.vtk-icon-folder-open:before { content: '\e858'; } /* '???' */
.vtk-icon-doc:before { content: '\e843'; } /* '???' */
.vtk-icon-calendar:before { content: '\e860'; } /* '???' */
.vtk-icon-chart-line:before { content: '\e947'; } /* '???' */
.vtk-icon-chart-bar:before { content: '\e8c4'; } /* '???' */
.vtk-icon-chart-bar-1:before { content: '\e948'; } /* '???' */
.vtk-icon-pin:before { content: '\e82c'; } /* '???' */
.vtk-icon-attach:before { content: '\e830'; } /* '???' */
.vtk-icon-bookmarks:before { content: '\e8fd'; } /* '???' */
.vtk-icon-book-open:before { content: '\e904'; } /* '???' */
.vtk-icon-upload:before { content: '\e838'; } /* '???' */
.vtk-icon-download:before { content: '\e837'; } /* '???' */
.vtk-icon-box-1:before { content: '\e90a'; } /* '???' */
.vtk-icon-mobile-1:before { content: '\e945'; } /* '???' */
.vtk-icon-camera-1:before { content: '\e8e0'; } /* '???' */
.vtk-icon-camera:before { content: '\e812'; } /* '???' */
.vtk-icon-shuffle-1:before { content: '\e93c'; } /* '???' */
.vtk-icon-shuffle:before { content: '\e89a'; } /* '???' */
.vtk-icon-loop:before { content: '\e93b'; } /* '???' */
.vtk-icon-arrows-ccw:before { content: '\e93d'; } /* '???' */
.vtk-icon-search:before { content: '\e806'; } /* '???' */
.vtk-icon-key:before { content: '\e950'; } /* '???' */
.vtk-icon-lock:before { content: '\e82f'; } /* '???' */
.vtk-icon-lock-1:before { content: '\e8ee'; } /* '???' */
.vtk-icon-lock-open:before { content: '\e82e'; } /* '???' */
.vtk-icon-lock-open-1:before { content: '\e8ed'; } /* '???' */
.vtk-icon-bell:before { content: '\e84c'; } /* '???' */
.vtk-icon-bell-1:before { content: '\e907'; } /* '???' */
.vtk-icon-bookmark:before { content: '\e827'; } /* '???' */
.vtk-icon-bookmark-1:before { content: '\e8fc'; } /* '???' */
.vtk-icon-wrench:before { content: '\e85f'; } /* '???' */
.vtk-icon-chart-area:before { content: '\e946'; } /* '???' */
.vtk-icon-clock-1:before { content: '\e90e'; } /* '???' */
.vtk-icon-clock:before { content: '\e868'; } /* '???' */
.vtk-icon-block:before { content: '\e86a'; } /* '???' */
.vtk-icon-block-1:before { content: '\e91d'; } /* '???' */

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,385 @@
.vtk-icon-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81c;&nbsp;'); }
.vtk-icon-plus-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f9;&nbsp;'); }
.vtk-icon-minus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe820;&nbsp;'); }
.vtk-icon-minus-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f6;&nbsp;'); }
.vtk-icon-info-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f1;&nbsp;'); }
.vtk-icon-left-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe881;&nbsp;'); }
.vtk-icon-up-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe883;&nbsp;'); }
.vtk-icon-right-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe882;&nbsp;'); }
.vtk-icon-down-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe880;&nbsp;'); }
.vtk-icon-switch { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe93a;&nbsp;'); }
.vtk-icon-plus-squared-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f7;&nbsp;'); }
.vtk-icon-minus-squared-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f4;&nbsp;'); }
.vtk-icon-home-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ef;&nbsp;'); }
.vtk-icon-home { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe833;&nbsp;'); }
.vtk-icon-keyboard-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe903;&nbsp;'); }
.vtk-icon-pause-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe937;&nbsp;'); }
.vtk-icon-pause { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe891;&nbsp;'); }
.vtk-icon-fast-forward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe933;&nbsp;'); }
.vtk-icon-fast-fw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88c;&nbsp;'); }
.vtk-icon-fast-backward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe932;&nbsp;'); }
.vtk-icon-fast-bw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88b;&nbsp;'); }
.vtk-icon-to-end-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe936;&nbsp;'); }
.vtk-icon-to-end { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe890;&nbsp;'); }
.vtk-icon-to-start { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88e;&nbsp;'); }
.vtk-icon-to-start-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe934;&nbsp;'); }
.vtk-icon-hourglass { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe90f;&nbsp;'); }
.vtk-icon-stop-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe938;&nbsp;'); }
.vtk-icon-stop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe892;&nbsp;'); }
.vtk-icon-up-dir-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe92d;&nbsp;'); }
.vtk-icon-up-dir { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87e;&nbsp;'); }
.vtk-icon-play-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe939;&nbsp;'); }
.vtk-icon-play { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe895;&nbsp;'); }
.vtk-icon-right-dir { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87c;&nbsp;'); }
.vtk-icon-right-dir-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe92c;&nbsp;'); }
.vtk-icon-down-dir { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87f;&nbsp;'); }
.vtk-icon-down-dir-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe92a;&nbsp;'); }
.vtk-icon-left-dir-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe92b;&nbsp;'); }
.vtk-icon-left-dir { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87d;&nbsp;'); }
.vtk-icon-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a1;&nbsp;'); }
.vtk-icon-star-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e1;&nbsp;'); }
.vtk-icon-star { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe809;&nbsp;'); }
.vtk-icon-star-empty-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e2;&nbsp;'); }
.vtk-icon-star-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80a;&nbsp;'); }
.vtk-icon-check { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8bf;&nbsp;'); }
.vtk-icon-th-list { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe816;&nbsp;'); }
.vtk-icon-menu-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ea;&nbsp;'); }
.vtk-icon-heart-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe807;&nbsp;'); }
.vtk-icon-heart-empty-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e4;&nbsp;'); }
.vtk-icon-heart-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e3;&nbsp;'); }
.vtk-icon-heart { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe808;&nbsp;'); }
.vtk-icon-layout { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8eb;&nbsp;'); }
.vtk-icon-th { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe815;&nbsp;'); }
.vtk-icon-flag { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8fe;&nbsp;'); }
.vtk-icon-tools { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe90b;&nbsp;'); }
.vtk-icon-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85d;&nbsp;'); }
.vtk-icon-attention { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe849;&nbsp;'); }
.vtk-icon-attention-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe906;&nbsp;'); }
.vtk-icon-record { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe935;&nbsp;'); }
.vtk-icon-cog-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85e;&nbsp;'); }
.vtk-icon-scissors { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8aa;&nbsp;'); }
.vtk-icon-edit { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe853;&nbsp;'); }
.vtk-icon-pencil-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe900;&nbsp;'); }
.vtk-icon-pencil { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe840;&nbsp;'); }
.vtk-icon-check-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e8;&nbsp;'); }
.vtk-icon-ok { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe817;&nbsp;'); }
.vtk-icon-ok-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe818;&nbsp;'); }
.vtk-icon-cancel-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e9;&nbsp;'); }
.vtk-icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81b;&nbsp;'); }
.vtk-icon-cancel-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8fb;&nbsp;'); }
.vtk-icon-asterisk { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c3;&nbsp;'); }
.vtk-icon-cancel-squared { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8fa;&nbsp;'); }
.vtk-icon-help-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f3;&nbsp;'); }
.vtk-icon-attention-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe848;&nbsp;'); }
.vtk-icon-plus-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f8;&nbsp;'); }
.vtk-icon-plus-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81d;&nbsp;'); }
.vtk-icon-minus-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f5;&nbsp;'); }
.vtk-icon-minus-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe821;&nbsp;'); }
.vtk-icon-right { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe928;&nbsp;'); }
.vtk-icon-forward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83d;&nbsp;'); }
.vtk-icon-ccw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe889;&nbsp;'); }
.vtk-icon-ccw-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe93f;&nbsp;'); }
.vtk-icon-cw-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe93e;&nbsp;'); }
.vtk-icon-cw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe888;&nbsp;'); }
.vtk-icon-left { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe927;&nbsp;'); }
.vtk-icon-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe929;&nbsp;'); }
.vtk-icon-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe926;&nbsp;'); }
.vtk-icon-resize-vertical-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe97d;&nbsp;'); }
.vtk-icon-resize-vertical { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe870;&nbsp;'); }
.vtk-icon-resize-horizontal-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe97f;&nbsp;'); }
.vtk-icon-resize-horizontal { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86e;&nbsp;'); }
.vtk-icon-list-add { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe942;&nbsp;'); }
.vtk-icon-list-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe941;&nbsp;'); }
.vtk-icon-down-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe966;&nbsp;'); }
.vtk-icon-left-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe967;&nbsp;'); }
.vtk-icon-loop-alt-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe96b;&nbsp;'); }
.vtk-icon-loop-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe96c;&nbsp;'); }
.vtk-icon-loop-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe96a;&nbsp;'); }
.vtk-icon-right-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe969;&nbsp;'); }
.vtk-icon-up-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe968;&nbsp;'); }
.vtk-icon-left-open-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe962;&nbsp;'); }
.vtk-icon-left-open-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe963;&nbsp;'); }
.vtk-icon-right-open-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe964;&nbsp;'); }
.vtk-icon-right-open-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe965;&nbsp;'); }
.vtk-icon-users-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe95b;&nbsp;'); }
.vtk-icon-users-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe95a;&nbsp;'); }
.vtk-icon-heart-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe961;&nbsp;'); }
.vtk-icon-heart-filled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe960;&nbsp;'); }
.vtk-icon-fast-fw-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe973;&nbsp;'); }
.vtk-icon-fast-fw-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe974;&nbsp;'); }
.vtk-icon-pause-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe971;&nbsp;'); }
.vtk-icon-pause-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe972;&nbsp;'); }
.vtk-icon-play-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe96e;&nbsp;'); }
.vtk-icon-play-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe96d;&nbsp;'); }
.vtk-icon-record-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe977;&nbsp;'); }
.vtk-icon-record-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe978;&nbsp;'); }
.vtk-icon-rewind-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe975;&nbsp;'); }
.vtk-icon-rewind { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe976;&nbsp;'); }
.vtk-icon-stop-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe96f;&nbsp;'); }
.vtk-icon-stop-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe970;&nbsp;'); }
.vtk-icon-star-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe95f;&nbsp;'); }
.vtk-icon-star-filled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe95e;&nbsp;'); }
.vtk-icon-user-add-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe959;&nbsp;'); }
.vtk-icon-user-add-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe958;&nbsp;'); }
.vtk-icon-user-delete { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe957;&nbsp;'); }
.vtk-icon-user-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe95c;&nbsp;'); }
.vtk-icon-user-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe95d;&nbsp;'); }
.vtk-icon-left-bold { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe92f;&nbsp;'); }
.vtk-icon-right-bold { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe930;&nbsp;'); }
.vtk-icon-up-bold { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe931;&nbsp;'); }
.vtk-icon-down-bold { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe92e;&nbsp;'); }
.vtk-icon-user-add { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8df;&nbsp;'); }
.vtk-icon-star-half { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80c;&nbsp;'); }
.vtk-icon-ok-circled2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe819;&nbsp;'); }
.vtk-icon-help-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f2;&nbsp;'); }
.vtk-icon-help-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe836;&nbsp;'); }
.vtk-icon-info-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe835;&nbsp;'); }
.vtk-icon-info-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f0;&nbsp;'); }
.vtk-icon-th-large { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe814;&nbsp;'); }
.vtk-icon-eye { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82b;&nbsp;'); }
.vtk-icon-eye-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ec;&nbsp;'); }
.vtk-icon-eye-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82a;&nbsp;'); }
.vtk-icon-tag { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe829;&nbsp;'); }
.vtk-icon-tags { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe828;&nbsp;'); }
.vtk-icon-camera-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe813;&nbsp;'); }
.vtk-icon-upload-cloud-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ff;&nbsp;'); }
.vtk-icon-export-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe901;&nbsp;'); }
.vtk-icon-export { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83e;&nbsp;'); }
.vtk-icon-print { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe852;&nbsp;'); }
.vtk-icon-retweet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe851;&nbsp;'); }
.vtk-icon-retweet-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe902;&nbsp;'); }
.vtk-icon-comment { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84e;&nbsp;'); }
.vtk-icon-location { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe847;&nbsp;'); }
.vtk-icon-trash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe844;&nbsp;'); }
.vtk-icon-docs-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe905;&nbsp;'); }
.vtk-icon-archive { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe909;&nbsp;'); }
.vtk-icon-login { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe862;&nbsp;'); }
.vtk-icon-login-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe90c;&nbsp;'); }
.vtk-icon-logout { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe867;&nbsp;'); }
.vtk-icon-logout-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe90d;&nbsp;'); }
.vtk-icon-resize-full-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe91c;&nbsp;'); }
.vtk-icon-resize-full-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe979;&nbsp;'); }
.vtk-icon-resize-full { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86b;&nbsp;'); }
.vtk-icon-resize-full-alt-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe97a;&nbsp;'); }
.vtk-icon-resize-small-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe97b;&nbsp;'); }
.vtk-icon-resize-small-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe91b;&nbsp;'); }
.vtk-icon-resize-small { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86d;&nbsp;'); }
.vtk-icon-resize-small-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe97c;&nbsp;'); }
.vtk-icon-move-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe97e;&nbsp;'); }
.vtk-icon-publish { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe91a;&nbsp;'); }
.vtk-icon-arrow-combo { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe919;&nbsp;'); }
.vtk-icon-zoom-in { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe866;&nbsp;'); }
.vtk-icon-chart-pie { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe949;&nbsp;'); }
.vtk-icon-zoom-out { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe865;&nbsp;'); }
.vtk-icon-database { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe94e;&nbsp;'); }
.vtk-icon-drive { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe94f;&nbsp;'); }
.vtk-icon-down-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe918;&nbsp;'); }
.vtk-icon-down-circled2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe864;&nbsp;'); }
.vtk-icon-left-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe917;&nbsp;'); }
.vtk-icon-right-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe916;&nbsp;'); }
.vtk-icon-up-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe915;&nbsp;'); }
.vtk-icon-up-circled2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe863;&nbsp;'); }
.vtk-icon-down-open-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe913;&nbsp;'); }
.vtk-icon-down-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87b;&nbsp;'); }
.vtk-icon-left-open-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe912;&nbsp;'); }
.vtk-icon-left-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87a;&nbsp;'); }
.vtk-icon-right-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe879;&nbsp;'); }
.vtk-icon-right-open-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe914;&nbsp;'); }
.vtk-icon-up-open-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe911;&nbsp;'); }
.vtk-icon-up-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe878;&nbsp;'); }
.vtk-icon-down-open-mini { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe910;&nbsp;'); }
.vtk-icon-arrows-cw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88a;&nbsp;'); }
.vtk-icon-left-open-mini { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe91f;&nbsp;'); }
.vtk-icon-play-circled2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe893;&nbsp;'); }
.vtk-icon-to-end-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88f;&nbsp;'); }
.vtk-icon-right-open-mini { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe920;&nbsp;'); }
.vtk-icon-to-start-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88d;&nbsp;'); }
.vtk-icon-up-open-mini { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe921;&nbsp;'); }
.vtk-icon-down-open-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe922;&nbsp;'); }
.vtk-icon-left-open-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe923;&nbsp;'); }
.vtk-icon-right-open-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe925;&nbsp;'); }
.vtk-icon-up-open-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe924;&nbsp;'); }
.vtk-icon-back-in-time { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe943;&nbsp;'); }
.vtk-icon-font { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a2;&nbsp;'); }
.vtk-icon-bold { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a3;&nbsp;'); }
.vtk-icon-italic { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a4;&nbsp;'); }
.vtk-icon-text-height { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a5;&nbsp;'); }
.vtk-icon-text-width { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a6;&nbsp;'); }
.vtk-icon-align-left { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ba;&nbsp;'); }
.vtk-icon-align-center { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b9;&nbsp;'); }
.vtk-icon-align-right { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b8;&nbsp;'); }
.vtk-icon-align-justify { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b7;&nbsp;'); }
.vtk-icon-list { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b6;&nbsp;'); }
.vtk-icon-indent-left { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b5;&nbsp;'); }
.vtk-icon-indent-right { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b4;&nbsp;'); }
.vtk-icon-dot { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe94c;&nbsp;'); }
.vtk-icon-dot-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe94b;&nbsp;'); }
.vtk-icon-dot-3 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe94a;&nbsp;'); }
.vtk-icon-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8bb;&nbsp;'); }
.vtk-icon-list-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8bc;&nbsp;'); }
.vtk-icon-flow-cascade { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe951;&nbsp;'); }
.vtk-icon-flow-branch { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe952;&nbsp;'); }
.vtk-icon-flow-tree { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe953;&nbsp;'); }
.vtk-icon-flow-line { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe954;&nbsp;'); }
.vtk-icon-ajust { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8bd;&nbsp;'); }
.vtk-icon-flow-parallel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe955;&nbsp;'); }
.vtk-icon-tint { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8be;&nbsp;'); }
.vtk-icon-gauge-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe956;&nbsp;'); }
.vtk-icon-spin1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe801;&nbsp;'); }
.vtk-icon-spin2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe802;&nbsp;'); }
.vtk-icon-spin3 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe803;&nbsp;'); }
.vtk-icon-spin4 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe800;&nbsp;'); }
.vtk-icon-spin5 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe804;&nbsp;'); }
.vtk-icon-spin6 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe805;&nbsp;'); }
.vtk-icon-move { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86f;&nbsp;'); }
.vtk-icon-link-ext { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe832;&nbsp;'); }
.vtk-icon-check-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c0;&nbsp;'); }
.vtk-icon-bookmark-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe826;&nbsp;'); }
.vtk-icon-hdd { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ce;&nbsp;'); }
.vtk-icon-certificate { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8cb;&nbsp;'); }
.vtk-icon-left-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe884;&nbsp;'); }
.vtk-icon-right-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe885;&nbsp;'); }
.vtk-icon-up-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe886;&nbsp;'); }
.vtk-icon-down-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe887;&nbsp;'); }
.vtk-icon-tasks { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ca;&nbsp;'); }
.vtk-icon-filter { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c8;&nbsp;'); }
.vtk-icon-resize-full-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86c;&nbsp;'); }
.vtk-icon-beaker { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c9;&nbsp;'); }
.vtk-icon-docs { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe842;&nbsp;'); }
.vtk-icon-menu { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85c;&nbsp;'); }
.vtk-icon-list-bullet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b3;&nbsp;'); }
.vtk-icon-list-numbered { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b2;&nbsp;'); }
.vtk-icon-strike { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b1;&nbsp;'); }
.vtk-icon-underline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b0;&nbsp;'); }
.vtk-icon-table { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ad;&nbsp;'); }
.vtk-icon-magic { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c7;&nbsp;'); }
.vtk-icon-columns { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ac;&nbsp;'); }
.vtk-icon-sort { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d1;&nbsp;'); }
.vtk-icon-sort-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d2;&nbsp;'); }
.vtk-icon-sort-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d3;&nbsp;'); }
.vtk-icon-gauge { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8da;&nbsp;'); }
.vtk-icon-comment-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84d;&nbsp;'); }
.vtk-icon-sitemap { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8db;&nbsp;'); }
.vtk-icon-paste { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a9;&nbsp;'); }
.vtk-icon-lightbulb { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe869;&nbsp;'); }
.vtk-icon-exchange { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe899;&nbsp;'); }
.vtk-icon-download-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe839;&nbsp;'); }
.vtk-icon-upload-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83a;&nbsp;'); }
.vtk-icon-suitcase { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a7;&nbsp;'); }
.vtk-icon-bell-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84b;&nbsp;'); }
.vtk-icon-doc-text { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe854;&nbsp;'); }
.vtk-icon-plus-squared { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81e;&nbsp;'); }
.vtk-icon-angle-left { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe877;&nbsp;'); }
.vtk-icon-angle-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe876;&nbsp;'); }
.vtk-icon-angle-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe875;&nbsp;'); }
.vtk-icon-desktop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89b;&nbsp;'); }
.vtk-icon-laptop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89c;&nbsp;'); }
.vtk-icon-tablet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89d;&nbsp;'); }
.vtk-icon-mobile { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89e;&nbsp;'); }
.vtk-icon-circle-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c2;&nbsp;'); }
.vtk-icon-spinner { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8dc;&nbsp;'); }
.vtk-icon-circle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c1;&nbsp;'); }
.vtk-icon-reply { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83b;&nbsp;'); }
.vtk-icon-folder-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe859;&nbsp;'); }
.vtk-icon-folder-open-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85a;&nbsp;'); }
.vtk-icon-plus-squared-small { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81f;&nbsp;'); }
.vtk-icon-minus-squared-small { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe824;&nbsp;'); }
.vtk-icon-gamepad { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe850;&nbsp;'); }
.vtk-icon-keyboard { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84f;&nbsp;'); }
.vtk-icon-terminal { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8de;&nbsp;'); }
.vtk-icon-code { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe841;&nbsp;'); }
.vtk-icon-reply-all { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83c;&nbsp;'); }
.vtk-icon-star-half-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80b;&nbsp;'); }
.vtk-icon-direction { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe846;&nbsp;'); }
.vtk-icon-crop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ab;&nbsp;'); }
.vtk-icon-fork { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8cd;&nbsp;'); }
.vtk-icon-help { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe825;&nbsp;'); }
.vtk-icon-info { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe834;&nbsp;'); }
.vtk-icon-attention-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84a;&nbsp;'); }
.vtk-icon-superscript { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8af;&nbsp;'); }
.vtk-icon-subscript { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ae;&nbsp;'); }
.vtk-icon-eraser { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8dd;&nbsp;'); }
.vtk-icon-calendar-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe861;&nbsp;'); }
.vtk-icon-angle-circled-left { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe874;&nbsp;'); }
.vtk-icon-angle-circled-right { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe873;&nbsp;'); }
.vtk-icon-angle-circled-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe872;&nbsp;'); }
.vtk-icon-angle-circled-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe871;&nbsp;'); }
.vtk-icon-lock-open-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82d;&nbsp;'); }
.vtk-icon-play-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe894;&nbsp;'); }
.vtk-icon-minus-squared { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe822;&nbsp;'); }
.vtk-icon-minus-squared-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe823;&nbsp;'); }
.vtk-icon-ok-squared { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81a;&nbsp;'); }
.vtk-icon-link-ext-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe831;&nbsp;'); }
.vtk-icon-export-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83f;&nbsp;'); }
.vtk-icon-compass { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe845;&nbsp;'); }
.vtk-icon-collapse { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe898;&nbsp;'); }
.vtk-icon-collapse-top { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe897;&nbsp;'); }
.vtk-icon-expand { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe896;&nbsp;'); }
.vtk-icon-euro { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c6;&nbsp;'); }
.vtk-icon-dollar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c5;&nbsp;'); }
.vtk-icon-doc-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe855;&nbsp;'); }
.vtk-icon-doc-text-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe856;&nbsp;'); }
.vtk-icon-sort-name-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d6;&nbsp;'); }
.vtk-icon-sort-name-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d7;&nbsp;'); }
.vtk-icon-sort-alt-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d4;&nbsp;'); }
.vtk-icon-sort-alt-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d5;&nbsp;'); }
.vtk-icon-sort-number-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d8;&nbsp;'); }
.vtk-icon-sort-number-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d9;&nbsp;'); }
.vtk-icon-sun { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a0;&nbsp;'); }
.vtk-icon-box { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85b;&nbsp;'); }
.vtk-icon-bug { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8cc;&nbsp;'); }
.vtk-icon-picture-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e7;&nbsp;'); }
.vtk-icon-picture { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe811;&nbsp;'); }
.vtk-icon-globe { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89f;&nbsp;'); }
.vtk-icon-videocam { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe810;&nbsp;'); }
.vtk-icon-video { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80f;&nbsp;'); }
.vtk-icon-target { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe940;&nbsp;'); }
.vtk-icon-user-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e5;&nbsp;'); }
.vtk-icon-user { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80d;&nbsp;'); }
.vtk-icon-users-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e6;&nbsp;'); }
.vtk-icon-users { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80e;&nbsp;'); }
.vtk-icon-lamp { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe91e;&nbsp;'); }
.vtk-icon-credit-card { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d0;&nbsp;'); }
.vtk-icon-monitor { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe944;&nbsp;'); }
.vtk-icon-briefcase { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a8;&nbsp;'); }
.vtk-icon-floppy-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe94d;&nbsp;'); }
.vtk-icon-floppy { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8cf;&nbsp;'); }
.vtk-icon-folder-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe908;&nbsp;'); }
.vtk-icon-folder { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe857;&nbsp;'); }
.vtk-icon-folder-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe858;&nbsp;'); }
.vtk-icon-doc { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe843;&nbsp;'); }
.vtk-icon-calendar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe860;&nbsp;'); }
.vtk-icon-chart-line { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe947;&nbsp;'); }
.vtk-icon-chart-bar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c4;&nbsp;'); }
.vtk-icon-chart-bar-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe948;&nbsp;'); }
.vtk-icon-pin { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82c;&nbsp;'); }
.vtk-icon-attach { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe830;&nbsp;'); }
.vtk-icon-bookmarks { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8fd;&nbsp;'); }
.vtk-icon-book-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe904;&nbsp;'); }
.vtk-icon-upload { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe838;&nbsp;'); }
.vtk-icon-download { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe837;&nbsp;'); }
.vtk-icon-box-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe90a;&nbsp;'); }
.vtk-icon-mobile-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe945;&nbsp;'); }
.vtk-icon-camera-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e0;&nbsp;'); }
.vtk-icon-camera { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe812;&nbsp;'); }
.vtk-icon-shuffle-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe93c;&nbsp;'); }
.vtk-icon-shuffle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89a;&nbsp;'); }
.vtk-icon-loop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe93b;&nbsp;'); }
.vtk-icon-arrows-ccw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe93d;&nbsp;'); }
.vtk-icon-search { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe806;&nbsp;'); }
.vtk-icon-key { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe950;&nbsp;'); }
.vtk-icon-lock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82f;&nbsp;'); }
.vtk-icon-lock-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ee;&nbsp;'); }
.vtk-icon-lock-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82e;&nbsp;'); }
.vtk-icon-lock-open-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ed;&nbsp;'); }
.vtk-icon-bell { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84c;&nbsp;'); }
.vtk-icon-bell-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe907;&nbsp;'); }
.vtk-icon-bookmark { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe827;&nbsp;'); }
.vtk-icon-bookmark-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8fc;&nbsp;'); }
.vtk-icon-wrench { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85f;&nbsp;'); }
.vtk-icon-chart-area { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe946;&nbsp;'); }
.vtk-icon-clock-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe90e;&nbsp;'); }
.vtk-icon-clock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe868;&nbsp;'); }
.vtk-icon-block { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86a;&nbsp;'); }
.vtk-icon-block-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe91d;&nbsp;'); }

View File

@ -0,0 +1,396 @@
[class^="vtk-icon-"], [class*=" vtk-icon-"] {
font-family: 'fontello';
font-style: normal;
font-weight: normal;
/* fix buttons height */
line-height: 1em;
/* you can be more comfortable with increased icons size */
/* font-size: 120%; */
}
.vtk-icon-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81c;&nbsp;'); }
.vtk-icon-plus-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f9;&nbsp;'); }
.vtk-icon-minus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe820;&nbsp;'); }
.vtk-icon-minus-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f6;&nbsp;'); }
.vtk-icon-info-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f1;&nbsp;'); }
.vtk-icon-left-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe881;&nbsp;'); }
.vtk-icon-up-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe883;&nbsp;'); }
.vtk-icon-right-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe882;&nbsp;'); }
.vtk-icon-down-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe880;&nbsp;'); }
.vtk-icon-switch { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe93a;&nbsp;'); }
.vtk-icon-plus-squared-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f7;&nbsp;'); }
.vtk-icon-minus-squared-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f4;&nbsp;'); }
.vtk-icon-home-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ef;&nbsp;'); }
.vtk-icon-home { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe833;&nbsp;'); }
.vtk-icon-keyboard-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe903;&nbsp;'); }
.vtk-icon-pause-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe937;&nbsp;'); }
.vtk-icon-pause { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe891;&nbsp;'); }
.vtk-icon-fast-forward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe933;&nbsp;'); }
.vtk-icon-fast-fw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88c;&nbsp;'); }
.vtk-icon-fast-backward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe932;&nbsp;'); }
.vtk-icon-fast-bw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88b;&nbsp;'); }
.vtk-icon-to-end-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe936;&nbsp;'); }
.vtk-icon-to-end { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe890;&nbsp;'); }
.vtk-icon-to-start { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88e;&nbsp;'); }
.vtk-icon-to-start-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe934;&nbsp;'); }
.vtk-icon-hourglass { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe90f;&nbsp;'); }
.vtk-icon-stop-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe938;&nbsp;'); }
.vtk-icon-stop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe892;&nbsp;'); }
.vtk-icon-up-dir-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe92d;&nbsp;'); }
.vtk-icon-up-dir { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87e;&nbsp;'); }
.vtk-icon-play-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe939;&nbsp;'); }
.vtk-icon-play { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe895;&nbsp;'); }
.vtk-icon-right-dir { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87c;&nbsp;'); }
.vtk-icon-right-dir-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe92c;&nbsp;'); }
.vtk-icon-down-dir { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87f;&nbsp;'); }
.vtk-icon-down-dir-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe92a;&nbsp;'); }
.vtk-icon-left-dir-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe92b;&nbsp;'); }
.vtk-icon-left-dir { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87d;&nbsp;'); }
.vtk-icon-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a1;&nbsp;'); }
.vtk-icon-star-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e1;&nbsp;'); }
.vtk-icon-star { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe809;&nbsp;'); }
.vtk-icon-star-empty-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e2;&nbsp;'); }
.vtk-icon-star-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80a;&nbsp;'); }
.vtk-icon-check { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8bf;&nbsp;'); }
.vtk-icon-th-list { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe816;&nbsp;'); }
.vtk-icon-menu-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ea;&nbsp;'); }
.vtk-icon-heart-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe807;&nbsp;'); }
.vtk-icon-heart-empty-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e4;&nbsp;'); }
.vtk-icon-heart-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e3;&nbsp;'); }
.vtk-icon-heart { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe808;&nbsp;'); }
.vtk-icon-layout { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8eb;&nbsp;'); }
.vtk-icon-th { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe815;&nbsp;'); }
.vtk-icon-flag { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8fe;&nbsp;'); }
.vtk-icon-tools { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe90b;&nbsp;'); }
.vtk-icon-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85d;&nbsp;'); }
.vtk-icon-attention { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe849;&nbsp;'); }
.vtk-icon-attention-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe906;&nbsp;'); }
.vtk-icon-record { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe935;&nbsp;'); }
.vtk-icon-cog-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85e;&nbsp;'); }
.vtk-icon-scissors { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8aa;&nbsp;'); }
.vtk-icon-edit { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe853;&nbsp;'); }
.vtk-icon-pencil-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe900;&nbsp;'); }
.vtk-icon-pencil { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe840;&nbsp;'); }
.vtk-icon-check-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e8;&nbsp;'); }
.vtk-icon-ok { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe817;&nbsp;'); }
.vtk-icon-ok-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe818;&nbsp;'); }
.vtk-icon-cancel-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e9;&nbsp;'); }
.vtk-icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81b;&nbsp;'); }
.vtk-icon-cancel-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8fb;&nbsp;'); }
.vtk-icon-asterisk { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c3;&nbsp;'); }
.vtk-icon-cancel-squared { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8fa;&nbsp;'); }
.vtk-icon-help-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f3;&nbsp;'); }
.vtk-icon-attention-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe848;&nbsp;'); }
.vtk-icon-plus-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f8;&nbsp;'); }
.vtk-icon-plus-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81d;&nbsp;'); }
.vtk-icon-minus-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f5;&nbsp;'); }
.vtk-icon-minus-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe821;&nbsp;'); }
.vtk-icon-right { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe928;&nbsp;'); }
.vtk-icon-forward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83d;&nbsp;'); }
.vtk-icon-ccw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe889;&nbsp;'); }
.vtk-icon-ccw-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe93f;&nbsp;'); }
.vtk-icon-cw-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe93e;&nbsp;'); }
.vtk-icon-cw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe888;&nbsp;'); }
.vtk-icon-left { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe927;&nbsp;'); }
.vtk-icon-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe929;&nbsp;'); }
.vtk-icon-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe926;&nbsp;'); }
.vtk-icon-resize-vertical-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe97d;&nbsp;'); }
.vtk-icon-resize-vertical { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe870;&nbsp;'); }
.vtk-icon-resize-horizontal-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe97f;&nbsp;'); }
.vtk-icon-resize-horizontal { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86e;&nbsp;'); }
.vtk-icon-list-add { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe942;&nbsp;'); }
.vtk-icon-list-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe941;&nbsp;'); }
.vtk-icon-down-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe966;&nbsp;'); }
.vtk-icon-left-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe967;&nbsp;'); }
.vtk-icon-loop-alt-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe96b;&nbsp;'); }
.vtk-icon-loop-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe96c;&nbsp;'); }
.vtk-icon-loop-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe96a;&nbsp;'); }
.vtk-icon-right-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe969;&nbsp;'); }
.vtk-icon-up-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe968;&nbsp;'); }
.vtk-icon-left-open-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe962;&nbsp;'); }
.vtk-icon-left-open-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe963;&nbsp;'); }
.vtk-icon-right-open-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe964;&nbsp;'); }
.vtk-icon-right-open-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe965;&nbsp;'); }
.vtk-icon-users-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe95b;&nbsp;'); }
.vtk-icon-users-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe95a;&nbsp;'); }
.vtk-icon-heart-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe961;&nbsp;'); }
.vtk-icon-heart-filled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe960;&nbsp;'); }
.vtk-icon-fast-fw-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe973;&nbsp;'); }
.vtk-icon-fast-fw-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe974;&nbsp;'); }
.vtk-icon-pause-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe971;&nbsp;'); }
.vtk-icon-pause-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe972;&nbsp;'); }
.vtk-icon-play-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe96e;&nbsp;'); }
.vtk-icon-play-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe96d;&nbsp;'); }
.vtk-icon-record-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe977;&nbsp;'); }
.vtk-icon-record-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe978;&nbsp;'); }
.vtk-icon-rewind-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe975;&nbsp;'); }
.vtk-icon-rewind { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe976;&nbsp;'); }
.vtk-icon-stop-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe96f;&nbsp;'); }
.vtk-icon-stop-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe970;&nbsp;'); }
.vtk-icon-star-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe95f;&nbsp;'); }
.vtk-icon-star-filled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe95e;&nbsp;'); }
.vtk-icon-user-add-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe959;&nbsp;'); }
.vtk-icon-user-add-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe958;&nbsp;'); }
.vtk-icon-user-delete { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe957;&nbsp;'); }
.vtk-icon-user-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe95c;&nbsp;'); }
.vtk-icon-user-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe95d;&nbsp;'); }
.vtk-icon-left-bold { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe92f;&nbsp;'); }
.vtk-icon-right-bold { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe930;&nbsp;'); }
.vtk-icon-up-bold { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe931;&nbsp;'); }
.vtk-icon-down-bold { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe92e;&nbsp;'); }
.vtk-icon-user-add { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8df;&nbsp;'); }
.vtk-icon-star-half { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80c;&nbsp;'); }
.vtk-icon-ok-circled2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe819;&nbsp;'); }
.vtk-icon-help-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f2;&nbsp;'); }
.vtk-icon-help-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe836;&nbsp;'); }
.vtk-icon-info-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe835;&nbsp;'); }
.vtk-icon-info-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f0;&nbsp;'); }
.vtk-icon-th-large { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe814;&nbsp;'); }
.vtk-icon-eye { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82b;&nbsp;'); }
.vtk-icon-eye-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ec;&nbsp;'); }
.vtk-icon-eye-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82a;&nbsp;'); }
.vtk-icon-tag { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe829;&nbsp;'); }
.vtk-icon-tags { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe828;&nbsp;'); }
.vtk-icon-camera-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe813;&nbsp;'); }
.vtk-icon-upload-cloud-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ff;&nbsp;'); }
.vtk-icon-export-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe901;&nbsp;'); }
.vtk-icon-export { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83e;&nbsp;'); }
.vtk-icon-print { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe852;&nbsp;'); }
.vtk-icon-retweet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe851;&nbsp;'); }
.vtk-icon-retweet-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe902;&nbsp;'); }
.vtk-icon-comment { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84e;&nbsp;'); }
.vtk-icon-location { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe847;&nbsp;'); }
.vtk-icon-trash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe844;&nbsp;'); }
.vtk-icon-docs-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe905;&nbsp;'); }
.vtk-icon-archive { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe909;&nbsp;'); }
.vtk-icon-login { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe862;&nbsp;'); }
.vtk-icon-login-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe90c;&nbsp;'); }
.vtk-icon-logout { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe867;&nbsp;'); }
.vtk-icon-logout-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe90d;&nbsp;'); }
.vtk-icon-resize-full-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe91c;&nbsp;'); }
.vtk-icon-resize-full-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe979;&nbsp;'); }
.vtk-icon-resize-full { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86b;&nbsp;'); }
.vtk-icon-resize-full-alt-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe97a;&nbsp;'); }
.vtk-icon-resize-small-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe97b;&nbsp;'); }
.vtk-icon-resize-small-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe91b;&nbsp;'); }
.vtk-icon-resize-small { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86d;&nbsp;'); }
.vtk-icon-resize-small-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe97c;&nbsp;'); }
.vtk-icon-move-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe97e;&nbsp;'); }
.vtk-icon-publish { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe91a;&nbsp;'); }
.vtk-icon-arrow-combo { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe919;&nbsp;'); }
.vtk-icon-zoom-in { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe866;&nbsp;'); }
.vtk-icon-chart-pie { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe949;&nbsp;'); }
.vtk-icon-zoom-out { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe865;&nbsp;'); }
.vtk-icon-database { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe94e;&nbsp;'); }
.vtk-icon-drive { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe94f;&nbsp;'); }
.vtk-icon-down-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe918;&nbsp;'); }
.vtk-icon-down-circled2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe864;&nbsp;'); }
.vtk-icon-left-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe917;&nbsp;'); }
.vtk-icon-right-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe916;&nbsp;'); }
.vtk-icon-up-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe915;&nbsp;'); }
.vtk-icon-up-circled2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe863;&nbsp;'); }
.vtk-icon-down-open-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe913;&nbsp;'); }
.vtk-icon-down-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87b;&nbsp;'); }
.vtk-icon-left-open-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe912;&nbsp;'); }
.vtk-icon-left-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87a;&nbsp;'); }
.vtk-icon-right-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe879;&nbsp;'); }
.vtk-icon-right-open-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe914;&nbsp;'); }
.vtk-icon-up-open-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe911;&nbsp;'); }
.vtk-icon-up-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe878;&nbsp;'); }
.vtk-icon-down-open-mini { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe910;&nbsp;'); }
.vtk-icon-arrows-cw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88a;&nbsp;'); }
.vtk-icon-left-open-mini { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe91f;&nbsp;'); }
.vtk-icon-play-circled2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe893;&nbsp;'); }
.vtk-icon-to-end-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88f;&nbsp;'); }
.vtk-icon-right-open-mini { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe920;&nbsp;'); }
.vtk-icon-to-start-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88d;&nbsp;'); }
.vtk-icon-up-open-mini { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe921;&nbsp;'); }
.vtk-icon-down-open-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe922;&nbsp;'); }
.vtk-icon-left-open-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe923;&nbsp;'); }
.vtk-icon-right-open-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe925;&nbsp;'); }
.vtk-icon-up-open-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe924;&nbsp;'); }
.vtk-icon-back-in-time { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe943;&nbsp;'); }
.vtk-icon-font { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a2;&nbsp;'); }
.vtk-icon-bold { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a3;&nbsp;'); }
.vtk-icon-italic { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a4;&nbsp;'); }
.vtk-icon-text-height { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a5;&nbsp;'); }
.vtk-icon-text-width { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a6;&nbsp;'); }
.vtk-icon-align-left { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ba;&nbsp;'); }
.vtk-icon-align-center { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b9;&nbsp;'); }
.vtk-icon-align-right { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b8;&nbsp;'); }
.vtk-icon-align-justify { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b7;&nbsp;'); }
.vtk-icon-list { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b6;&nbsp;'); }
.vtk-icon-indent-left { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b5;&nbsp;'); }
.vtk-icon-indent-right { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b4;&nbsp;'); }
.vtk-icon-dot { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe94c;&nbsp;'); }
.vtk-icon-dot-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe94b;&nbsp;'); }
.vtk-icon-dot-3 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe94a;&nbsp;'); }
.vtk-icon-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8bb;&nbsp;'); }
.vtk-icon-list-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8bc;&nbsp;'); }
.vtk-icon-flow-cascade { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe951;&nbsp;'); }
.vtk-icon-flow-branch { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe952;&nbsp;'); }
.vtk-icon-flow-tree { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe953;&nbsp;'); }
.vtk-icon-flow-line { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe954;&nbsp;'); }
.vtk-icon-ajust { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8bd;&nbsp;'); }
.vtk-icon-flow-parallel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe955;&nbsp;'); }
.vtk-icon-tint { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8be;&nbsp;'); }
.vtk-icon-gauge-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe956;&nbsp;'); }
.vtk-icon-spin1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe801;&nbsp;'); }
.vtk-icon-spin2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe802;&nbsp;'); }
.vtk-icon-spin3 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe803;&nbsp;'); }
.vtk-icon-spin4 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe800;&nbsp;'); }
.vtk-icon-spin5 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe804;&nbsp;'); }
.vtk-icon-spin6 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe805;&nbsp;'); }
.vtk-icon-move { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86f;&nbsp;'); }
.vtk-icon-link-ext { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe832;&nbsp;'); }
.vtk-icon-check-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c0;&nbsp;'); }
.vtk-icon-bookmark-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe826;&nbsp;'); }
.vtk-icon-hdd { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ce;&nbsp;'); }
.vtk-icon-certificate { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8cb;&nbsp;'); }
.vtk-icon-left-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe884;&nbsp;'); }
.vtk-icon-right-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe885;&nbsp;'); }
.vtk-icon-up-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe886;&nbsp;'); }
.vtk-icon-down-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe887;&nbsp;'); }
.vtk-icon-tasks { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ca;&nbsp;'); }
.vtk-icon-filter { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c8;&nbsp;'); }
.vtk-icon-resize-full-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86c;&nbsp;'); }
.vtk-icon-beaker { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c9;&nbsp;'); }
.vtk-icon-docs { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe842;&nbsp;'); }
.vtk-icon-menu { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85c;&nbsp;'); }
.vtk-icon-list-bullet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b3;&nbsp;'); }
.vtk-icon-list-numbered { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b2;&nbsp;'); }
.vtk-icon-strike { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b1;&nbsp;'); }
.vtk-icon-underline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b0;&nbsp;'); }
.vtk-icon-table { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ad;&nbsp;'); }
.vtk-icon-magic { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c7;&nbsp;'); }
.vtk-icon-columns { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ac;&nbsp;'); }
.vtk-icon-sort { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d1;&nbsp;'); }
.vtk-icon-sort-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d2;&nbsp;'); }
.vtk-icon-sort-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d3;&nbsp;'); }
.vtk-icon-gauge { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8da;&nbsp;'); }
.vtk-icon-comment-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84d;&nbsp;'); }
.vtk-icon-sitemap { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8db;&nbsp;'); }
.vtk-icon-paste { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a9;&nbsp;'); }
.vtk-icon-lightbulb { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe869;&nbsp;'); }
.vtk-icon-exchange { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe899;&nbsp;'); }
.vtk-icon-download-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe839;&nbsp;'); }
.vtk-icon-upload-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83a;&nbsp;'); }
.vtk-icon-suitcase { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a7;&nbsp;'); }
.vtk-icon-bell-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84b;&nbsp;'); }
.vtk-icon-doc-text { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe854;&nbsp;'); }
.vtk-icon-plus-squared { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81e;&nbsp;'); }
.vtk-icon-angle-left { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe877;&nbsp;'); }
.vtk-icon-angle-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe876;&nbsp;'); }
.vtk-icon-angle-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe875;&nbsp;'); }
.vtk-icon-desktop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89b;&nbsp;'); }
.vtk-icon-laptop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89c;&nbsp;'); }
.vtk-icon-tablet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89d;&nbsp;'); }
.vtk-icon-mobile { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89e;&nbsp;'); }
.vtk-icon-circle-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c2;&nbsp;'); }
.vtk-icon-spinner { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8dc;&nbsp;'); }
.vtk-icon-circle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c1;&nbsp;'); }
.vtk-icon-reply { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83b;&nbsp;'); }
.vtk-icon-folder-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe859;&nbsp;'); }
.vtk-icon-folder-open-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85a;&nbsp;'); }
.vtk-icon-plus-squared-small { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81f;&nbsp;'); }
.vtk-icon-minus-squared-small { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe824;&nbsp;'); }
.vtk-icon-gamepad { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe850;&nbsp;'); }
.vtk-icon-keyboard { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84f;&nbsp;'); }
.vtk-icon-terminal { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8de;&nbsp;'); }
.vtk-icon-code { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe841;&nbsp;'); }
.vtk-icon-reply-all { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83c;&nbsp;'); }
.vtk-icon-star-half-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80b;&nbsp;'); }
.vtk-icon-direction { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe846;&nbsp;'); }
.vtk-icon-crop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ab;&nbsp;'); }
.vtk-icon-fork { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8cd;&nbsp;'); }
.vtk-icon-help { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe825;&nbsp;'); }
.vtk-icon-info { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe834;&nbsp;'); }
.vtk-icon-attention-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84a;&nbsp;'); }
.vtk-icon-superscript { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8af;&nbsp;'); }
.vtk-icon-subscript { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ae;&nbsp;'); }
.vtk-icon-eraser { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8dd;&nbsp;'); }
.vtk-icon-calendar-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe861;&nbsp;'); }
.vtk-icon-angle-circled-left { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe874;&nbsp;'); }
.vtk-icon-angle-circled-right { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe873;&nbsp;'); }
.vtk-icon-angle-circled-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe872;&nbsp;'); }
.vtk-icon-angle-circled-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe871;&nbsp;'); }
.vtk-icon-lock-open-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82d;&nbsp;'); }
.vtk-icon-play-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe894;&nbsp;'); }
.vtk-icon-minus-squared { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe822;&nbsp;'); }
.vtk-icon-minus-squared-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe823;&nbsp;'); }
.vtk-icon-ok-squared { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81a;&nbsp;'); }
.vtk-icon-link-ext-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe831;&nbsp;'); }
.vtk-icon-export-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83f;&nbsp;'); }
.vtk-icon-compass { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe845;&nbsp;'); }
.vtk-icon-collapse { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe898;&nbsp;'); }
.vtk-icon-collapse-top { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe897;&nbsp;'); }
.vtk-icon-expand { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe896;&nbsp;'); }
.vtk-icon-euro { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c6;&nbsp;'); }
.vtk-icon-dollar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c5;&nbsp;'); }
.vtk-icon-doc-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe855;&nbsp;'); }
.vtk-icon-doc-text-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe856;&nbsp;'); }
.vtk-icon-sort-name-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d6;&nbsp;'); }
.vtk-icon-sort-name-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d7;&nbsp;'); }
.vtk-icon-sort-alt-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d4;&nbsp;'); }
.vtk-icon-sort-alt-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d5;&nbsp;'); }
.vtk-icon-sort-number-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d8;&nbsp;'); }
.vtk-icon-sort-number-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d9;&nbsp;'); }
.vtk-icon-sun { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a0;&nbsp;'); }
.vtk-icon-box { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85b;&nbsp;'); }
.vtk-icon-bug { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8cc;&nbsp;'); }
.vtk-icon-picture-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e7;&nbsp;'); }
.vtk-icon-picture { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe811;&nbsp;'); }
.vtk-icon-globe { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89f;&nbsp;'); }
.vtk-icon-videocam { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe810;&nbsp;'); }
.vtk-icon-video { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80f;&nbsp;'); }
.vtk-icon-target { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe940;&nbsp;'); }
.vtk-icon-user-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e5;&nbsp;'); }
.vtk-icon-user { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80d;&nbsp;'); }
.vtk-icon-users-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e6;&nbsp;'); }
.vtk-icon-users { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80e;&nbsp;'); }
.vtk-icon-lamp { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe91e;&nbsp;'); }
.vtk-icon-credit-card { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d0;&nbsp;'); }
.vtk-icon-monitor { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe944;&nbsp;'); }
.vtk-icon-briefcase { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a8;&nbsp;'); }
.vtk-icon-floppy-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe94d;&nbsp;'); }
.vtk-icon-floppy { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8cf;&nbsp;'); }
.vtk-icon-folder-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe908;&nbsp;'); }
.vtk-icon-folder { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe857;&nbsp;'); }
.vtk-icon-folder-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe858;&nbsp;'); }
.vtk-icon-doc { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe843;&nbsp;'); }
.vtk-icon-calendar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe860;&nbsp;'); }
.vtk-icon-chart-line { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe947;&nbsp;'); }
.vtk-icon-chart-bar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c4;&nbsp;'); }
.vtk-icon-chart-bar-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe948;&nbsp;'); }
.vtk-icon-pin { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82c;&nbsp;'); }
.vtk-icon-attach { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe830;&nbsp;'); }
.vtk-icon-bookmarks { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8fd;&nbsp;'); }
.vtk-icon-book-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe904;&nbsp;'); }
.vtk-icon-upload { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe838;&nbsp;'); }
.vtk-icon-download { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe837;&nbsp;'); }
.vtk-icon-box-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe90a;&nbsp;'); }
.vtk-icon-mobile-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe945;&nbsp;'); }
.vtk-icon-camera-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e0;&nbsp;'); }
.vtk-icon-camera { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe812;&nbsp;'); }
.vtk-icon-shuffle-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe93c;&nbsp;'); }
.vtk-icon-shuffle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89a;&nbsp;'); }
.vtk-icon-loop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe93b;&nbsp;'); }
.vtk-icon-arrows-ccw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe93d;&nbsp;'); }
.vtk-icon-search { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe806;&nbsp;'); }
.vtk-icon-key { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe950;&nbsp;'); }
.vtk-icon-lock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82f;&nbsp;'); }
.vtk-icon-lock-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ee;&nbsp;'); }
.vtk-icon-lock-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82e;&nbsp;'); }
.vtk-icon-lock-open-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ed;&nbsp;'); }
.vtk-icon-bell { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84c;&nbsp;'); }
.vtk-icon-bell-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe907;&nbsp;'); }
.vtk-icon-bookmark { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe827;&nbsp;'); }
.vtk-icon-bookmark-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8fc;&nbsp;'); }
.vtk-icon-wrench { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85f;&nbsp;'); }
.vtk-icon-chart-area { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe946;&nbsp;'); }
.vtk-icon-clock-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe90e;&nbsp;'); }
.vtk-icon-clock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe868;&nbsp;'); }
.vtk-icon-block { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86a;&nbsp;'); }
.vtk-icon-block-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe91d;&nbsp;'); }

View File

@ -0,0 +1,436 @@
@font-face {
font-family: 'fontello';
src: url('../font/fontello.eot?52431154');
src: url('../font/fontello.eot?52431154#iefix') format('embedded-opentype'),
url('../font/fontello.woff?52431154') format('woff'),
url('../font/fontello.ttf?52431154') format('truetype'),
url('../font/fontello.svg?52431154#fontello') format('svg');
font-weight: normal;
font-style: normal;
}
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
/*
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: 'fontello';
src: url('../font/fontello.svg?52431154#fontello') format('svg');
}
}
*/
[class^="vtk-icon-"]:before, [class*=" vtk-icon-"]:before {
font-family: "fontello";
font-style: normal;
font-weight: normal;
speak: none;
display: inline-block;
text-decoration: inherit;
width: 1em;
margin-right: .2em;
text-align: center;
/* opacity: .8; */
/* For safety - reset parent styles, that can break glyph codes*/
font-variant: normal;
text-transform: none;
/* fix buttons height, for twitter bootstrap */
line-height: 1em;
/* Animation center compensation - margins should be symmetric */
/* remove if not needed */
margin-left: .2em;
/* you can be more comfortable with increased icons size */
/* font-size: 120%; */
/* Uncomment for 3D effect */
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
}
.vtk-icon-plus:before { content: '\e81c'; } /* '???' */
.vtk-icon-plus-1:before { content: '\e8f9'; } /* '???' */
.vtk-icon-minus:before { content: '\e820'; } /* '???' */
.vtk-icon-minus-1:before { content: '\e8f6'; } /* '???' */
.vtk-icon-info-1:before { content: '\e8f1'; } /* '???' */
.vtk-icon-left-big:before { content: '\e881'; } /* '???' */
.vtk-icon-up-big:before { content: '\e883'; } /* '???' */
.vtk-icon-right-big:before { content: '\e882'; } /* '???' */
.vtk-icon-down-big:before { content: '\e880'; } /* '???' */
.vtk-icon-switch:before { content: '\e93a'; } /* '???' */
.vtk-icon-plus-squared-1:before { content: '\e8f7'; } /* '???' */
.vtk-icon-minus-squared-1:before { content: '\e8f4'; } /* '???' */
.vtk-icon-home-1:before { content: '\e8ef'; } /* '???' */
.vtk-icon-home:before { content: '\e833'; } /* '???' */
.vtk-icon-keyboard-1:before { content: '\e903'; } /* '???' */
.vtk-icon-pause-1:before { content: '\e937'; } /* '???' */
.vtk-icon-pause:before { content: '\e891'; } /* '???' */
.vtk-icon-fast-forward:before { content: '\e933'; } /* '???' */
.vtk-icon-fast-fw:before { content: '\e88c'; } /* '???' */
.vtk-icon-fast-backward:before { content: '\e932'; } /* '???' */
.vtk-icon-fast-bw:before { content: '\e88b'; } /* '???' */
.vtk-icon-to-end-1:before { content: '\e936'; } /* '???' */
.vtk-icon-to-end:before { content: '\e890'; } /* '???' */
.vtk-icon-to-start:before { content: '\e88e'; } /* '???' */
.vtk-icon-to-start-1:before { content: '\e934'; } /* '???' */
.vtk-icon-hourglass:before { content: '\e90f'; } /* '???' */
.vtk-icon-stop-1:before { content: '\e938'; } /* '???' */
.vtk-icon-stop:before { content: '\e892'; } /* '???' */
.vtk-icon-up-dir-1:before { content: '\e92d'; } /* '???' */
.vtk-icon-up-dir:before { content: '\e87e'; } /* '???' */
.vtk-icon-play-1:before { content: '\e939'; } /* '???' */
.vtk-icon-play:before { content: '\e895'; } /* '???' */
.vtk-icon-right-dir:before { content: '\e87c'; } /* '???' */
.vtk-icon-right-dir-1:before { content: '\e92c'; } /* '???' */
.vtk-icon-down-dir:before { content: '\e87f'; } /* '???' */
.vtk-icon-down-dir-1:before { content: '\e92a'; } /* '???' */
.vtk-icon-left-dir-1:before { content: '\e92b'; } /* '???' */
.vtk-icon-left-dir:before { content: '\e87d'; } /* '???' */
.vtk-icon-cloud:before { content: '\e8a1'; } /* '???' */
.vtk-icon-star-1:before { content: '\e8e1'; } /* '???' */
.vtk-icon-star:before { content: '\e809'; } /* '???' */
.vtk-icon-star-empty-1:before { content: '\e8e2'; } /* '???' */
.vtk-icon-star-empty:before { content: '\e80a'; } /* '???' */
.vtk-icon-check:before { content: '\e8bf'; } /* '???' */
.vtk-icon-th-list:before { content: '\e816'; } /* '???' */
.vtk-icon-menu-1:before { content: '\e8ea'; } /* '???' */
.vtk-icon-heart-empty:before { content: '\e807'; } /* '???' */
.vtk-icon-heart-empty-1:before { content: '\e8e4'; } /* '???' */
.vtk-icon-heart-1:before { content: '\e8e3'; } /* '???' */
.vtk-icon-heart:before { content: '\e808'; } /* '???' */
.vtk-icon-layout:before { content: '\e8eb'; } /* '???' */
.vtk-icon-th:before { content: '\e815'; } /* '???' */
.vtk-icon-flag:before { content: '\e8fe'; } /* '???' */
.vtk-icon-tools:before { content: '\e90b'; } /* '???' */
.vtk-icon-cog:before { content: '\e85d'; } /* '???' */
.vtk-icon-attention:before { content: '\e849'; } /* '???' */
.vtk-icon-attention-1:before { content: '\e906'; } /* '???' */
.vtk-icon-record:before { content: '\e935'; } /* '???' */
.vtk-icon-cog-alt:before { content: '\e85e'; } /* '???' */
.vtk-icon-scissors:before { content: '\e8aa'; } /* '???' */
.vtk-icon-edit:before { content: '\e853'; } /* '???' */
.vtk-icon-pencil-1:before { content: '\e900'; } /* '???' */
.vtk-icon-pencil:before { content: '\e840'; } /* '???' */
.vtk-icon-check-1:before { content: '\e8e8'; } /* '???' */
.vtk-icon-ok:before { content: '\e817'; } /* '???' */
.vtk-icon-ok-circled:before { content: '\e818'; } /* '???' */
.vtk-icon-cancel-1:before { content: '\e8e9'; } /* '???' */
.vtk-icon-cancel:before { content: '\e81b'; } /* '???' */
.vtk-icon-cancel-circled:before { content: '\e8fb'; } /* '???' */
.vtk-icon-asterisk:before { content: '\e8c3'; } /* '???' */
.vtk-icon-cancel-squared:before { content: '\e8fa'; } /* '???' */
.vtk-icon-help-1:before { content: '\e8f3'; } /* '???' */
.vtk-icon-attention-circled:before { content: '\e848'; } /* '???' */
.vtk-icon-plus-circled-1:before { content: '\e8f8'; } /* '???' */
.vtk-icon-plus-circled:before { content: '\e81d'; } /* '???' */
.vtk-icon-minus-circled-1:before { content: '\e8f5'; } /* '???' */
.vtk-icon-minus-circled:before { content: '\e821'; } /* '???' */
.vtk-icon-right:before { content: '\e928'; } /* '???' */
.vtk-icon-forward:before { content: '\e83d'; } /* '???' */
.vtk-icon-ccw:before { content: '\e889'; } /* '???' */
.vtk-icon-ccw-1:before { content: '\e93f'; } /* '???' */
.vtk-icon-cw-1:before { content: '\e93e'; } /* '???' */
.vtk-icon-cw:before { content: '\e888'; } /* '???' */
.vtk-icon-left:before { content: '\e927'; } /* '???' */
.vtk-icon-up:before { content: '\e929'; } /* '???' */
.vtk-icon-down:before { content: '\e926'; } /* '???' */
.vtk-icon-resize-vertical-1:before { content: '\e97d'; } /* '???' */
.vtk-icon-resize-vertical:before { content: '\e870'; } /* '???' */
.vtk-icon-resize-horizontal-1:before { content: '\e97f'; } /* '???' */
.vtk-icon-resize-horizontal:before { content: '\e86e'; } /* '???' */
.vtk-icon-list-add:before { content: '\e942'; } /* '???' */
.vtk-icon-list-1:before { content: '\e941'; } /* '???' */
.vtk-icon-down-1:before { content: '\e966'; } /* '???' */
.vtk-icon-left-1:before { content: '\e967'; } /* '???' */
.vtk-icon-loop-alt-outline:before { content: '\e96b'; } /* '???' */
.vtk-icon-loop-alt:before { content: '\e96c'; } /* '???' */
.vtk-icon-loop-outline:before { content: '\e96a'; } /* '???' */
.vtk-icon-right-1:before { content: '\e969'; } /* '???' */
.vtk-icon-up-1:before { content: '\e968'; } /* '???' */
.vtk-icon-left-open-outline:before { content: '\e962'; } /* '???' */
.vtk-icon-left-open-2:before { content: '\e963'; } /* '???' */
.vtk-icon-right-open-outline:before { content: '\e964'; } /* '???' */
.vtk-icon-right-open-2:before { content: '\e965'; } /* '???' */
.vtk-icon-users-outline:before { content: '\e95b'; } /* '???' */
.vtk-icon-users-2:before { content: '\e95a'; } /* '???' */
.vtk-icon-heart-2:before { content: '\e961'; } /* '???' */
.vtk-icon-heart-filled:before { content: '\e960'; } /* '???' */
.vtk-icon-fast-fw-outline:before { content: '\e973'; } /* '???' */
.vtk-icon-fast-fw-1:before { content: '\e974'; } /* '???' */
.vtk-icon-pause-outline:before { content: '\e971'; } /* '???' */
.vtk-icon-pause-2:before { content: '\e972'; } /* '???' */
.vtk-icon-play-outline:before { content: '\e96e'; } /* '???' */
.vtk-icon-play-2:before { content: '\e96d'; } /* '???' */
.vtk-icon-record-outline:before { content: '\e977'; } /* '???' */
.vtk-icon-record-1:before { content: '\e978'; } /* '???' */
.vtk-icon-rewind-outline:before { content: '\e975'; } /* '???' */
.vtk-icon-rewind:before { content: '\e976'; } /* '???' */
.vtk-icon-stop-outline:before { content: '\e96f'; } /* '???' */
.vtk-icon-stop-2:before { content: '\e970'; } /* '???' */
.vtk-icon-star-2:before { content: '\e95f'; } /* '???' */
.vtk-icon-star-filled:before { content: '\e95e'; } /* '???' */
.vtk-icon-user-add-outline:before { content: '\e959'; } /* '???' */
.vtk-icon-user-add-1:before { content: '\e958'; } /* '???' */
.vtk-icon-user-delete:before { content: '\e957'; } /* '???' */
.vtk-icon-user-outline:before { content: '\e95c'; } /* '???' */
.vtk-icon-user-2:before { content: '\e95d'; } /* '???' */
.vtk-icon-left-bold:before { content: '\e92f'; } /* '???' */
.vtk-icon-right-bold:before { content: '\e930'; } /* '???' */
.vtk-icon-up-bold:before { content: '\e931'; } /* '???' */
.vtk-icon-down-bold:before { content: '\e92e'; } /* '???' */
.vtk-icon-user-add:before { content: '\e8df'; } /* '???' */
.vtk-icon-star-half:before { content: '\e80c'; } /* '???' */
.vtk-icon-ok-circled2:before { content: '\e819'; } /* '???' */
.vtk-icon-help-circled-1:before { content: '\e8f2'; } /* '???' */
.vtk-icon-help-circled:before { content: '\e836'; } /* '???' */
.vtk-icon-info-circled:before { content: '\e835'; } /* '???' */
.vtk-icon-info-circled-1:before { content: '\e8f0'; } /* '???' */
.vtk-icon-th-large:before { content: '\e814'; } /* '???' */
.vtk-icon-eye:before { content: '\e82b'; } /* '???' */
.vtk-icon-eye-1:before { content: '\e8ec'; } /* '???' */
.vtk-icon-eye-off:before { content: '\e82a'; } /* '???' */
.vtk-icon-tag:before { content: '\e829'; } /* '???' */
.vtk-icon-tags:before { content: '\e828'; } /* '???' */
.vtk-icon-camera-alt:before { content: '\e813'; } /* '???' */
.vtk-icon-upload-cloud-1:before { content: '\e8ff'; } /* '???' */
.vtk-icon-export-1:before { content: '\e901'; } /* '???' */
.vtk-icon-export:before { content: '\e83e'; } /* '???' */
.vtk-icon-print:before { content: '\e852'; } /* '???' */
.vtk-icon-retweet:before { content: '\e851'; } /* '???' */
.vtk-icon-retweet-1:before { content: '\e902'; } /* '???' */
.vtk-icon-comment:before { content: '\e84e'; } /* '???' */
.vtk-icon-location:before { content: '\e847'; } /* '???' */
.vtk-icon-trash:before { content: '\e844'; } /* '???' */
.vtk-icon-docs-1:before { content: '\e905'; } /* '???' */
.vtk-icon-archive:before { content: '\e909'; } /* '???' */
.vtk-icon-login:before { content: '\e862'; } /* '???' */
.vtk-icon-login-1:before { content: '\e90c'; } /* '???' */
.vtk-icon-logout:before { content: '\e867'; } /* '???' */
.vtk-icon-logout-1:before { content: '\e90d'; } /* '???' */
.vtk-icon-resize-full-1:before { content: '\e91c'; } /* '???' */
.vtk-icon-resize-full-2:before { content: '\e979'; } /* '???' */
.vtk-icon-resize-full:before { content: '\e86b'; } /* '???' */
.vtk-icon-resize-full-alt-1:before { content: '\e97a'; } /* '???' */
.vtk-icon-resize-small-2:before { content: '\e97b'; } /* '???' */
.vtk-icon-resize-small-1:before { content: '\e91b'; } /* '???' */
.vtk-icon-resize-small:before { content: '\e86d'; } /* '???' */
.vtk-icon-resize-small-alt:before { content: '\e97c'; } /* '???' */
.vtk-icon-move-1:before { content: '\e97e'; } /* '???' */
.vtk-icon-publish:before { content: '\e91a'; } /* '???' */
.vtk-icon-arrow-combo:before { content: '\e919'; } /* '???' */
.vtk-icon-zoom-in:before { content: '\e866'; } /* '???' */
.vtk-icon-chart-pie:before { content: '\e949'; } /* '???' */
.vtk-icon-zoom-out:before { content: '\e865'; } /* '???' */
.vtk-icon-database:before { content: '\e94e'; } /* '???' */
.vtk-icon-drive:before { content: '\e94f'; } /* '???' */
.vtk-icon-down-circled-1:before { content: '\e918'; } /* '???' */
.vtk-icon-down-circled2:before { content: '\e864'; } /* '???' */
.vtk-icon-left-circled-1:before { content: '\e917'; } /* '???' */
.vtk-icon-right-circled-1:before { content: '\e916'; } /* '???' */
.vtk-icon-up-circled-1:before { content: '\e915'; } /* '???' */
.vtk-icon-up-circled2:before { content: '\e863'; } /* '???' */
.vtk-icon-down-open-1:before { content: '\e913'; } /* '???' */
.vtk-icon-down-open:before { content: '\e87b'; } /* '???' */
.vtk-icon-left-open-1:before { content: '\e912'; } /* '???' */
.vtk-icon-left-open:before { content: '\e87a'; } /* '???' */
.vtk-icon-right-open:before { content: '\e879'; } /* '???' */
.vtk-icon-right-open-1:before { content: '\e914'; } /* '???' */
.vtk-icon-up-open-1:before { content: '\e911'; } /* '???' */
.vtk-icon-up-open:before { content: '\e878'; } /* '???' */
.vtk-icon-down-open-mini:before { content: '\e910'; } /* '???' */
.vtk-icon-arrows-cw:before { content: '\e88a'; } /* '???' */
.vtk-icon-left-open-mini:before { content: '\e91f'; } /* '???' */
.vtk-icon-play-circled2:before { content: '\e893'; } /* '???' */
.vtk-icon-to-end-alt:before { content: '\e88f'; } /* '???' */
.vtk-icon-right-open-mini:before { content: '\e920'; } /* '???' */
.vtk-icon-to-start-alt:before { content: '\e88d'; } /* '???' */
.vtk-icon-up-open-mini:before { content: '\e921'; } /* '???' */
.vtk-icon-down-open-big:before { content: '\e922'; } /* '???' */
.vtk-icon-left-open-big:before { content: '\e923'; } /* '???' */
.vtk-icon-right-open-big:before { content: '\e925'; } /* '???' */
.vtk-icon-up-open-big:before { content: '\e924'; } /* '???' */
.vtk-icon-back-in-time:before { content: '\e943'; } /* '???' */
.vtk-icon-font:before { content: '\e8a2'; } /* '???' */
.vtk-icon-bold:before { content: '\e8a3'; } /* '???' */
.vtk-icon-italic:before { content: '\e8a4'; } /* '???' */
.vtk-icon-text-height:before { content: '\e8a5'; } /* '???' */
.vtk-icon-text-width:before { content: '\e8a6'; } /* '???' */
.vtk-icon-align-left:before { content: '\e8ba'; } /* '???' */
.vtk-icon-align-center:before { content: '\e8b9'; } /* '???' */
.vtk-icon-align-right:before { content: '\e8b8'; } /* '???' */
.vtk-icon-align-justify:before { content: '\e8b7'; } /* '???' */
.vtk-icon-list:before { content: '\e8b6'; } /* '???' */
.vtk-icon-indent-left:before { content: '\e8b5'; } /* '???' */
.vtk-icon-indent-right:before { content: '\e8b4'; } /* '???' */
.vtk-icon-dot:before { content: '\e94c'; } /* '???' */
.vtk-icon-dot-2:before { content: '\e94b'; } /* '???' */
.vtk-icon-dot-3:before { content: '\e94a'; } /* '???' */
.vtk-icon-off:before { content: '\e8bb'; } /* '???' */
.vtk-icon-list-alt:before { content: '\e8bc'; } /* '???' */
.vtk-icon-flow-cascade:before { content: '\e951'; } /* '???' */
.vtk-icon-flow-branch:before { content: '\e952'; } /* '???' */
.vtk-icon-flow-tree:before { content: '\e953'; } /* '???' */
.vtk-icon-flow-line:before { content: '\e954'; } /* '???' */
.vtk-icon-ajust:before { content: '\e8bd'; } /* '???' */
.vtk-icon-flow-parallel:before { content: '\e955'; } /* '???' */
.vtk-icon-tint:before { content: '\e8be'; } /* '???' */
.vtk-icon-gauge-1:before { content: '\e956'; } /* '???' */
.vtk-icon-spin1:before { content: '\e801'; } /* '???' */
.vtk-icon-spin2:before { content: '\e802'; } /* '???' */
.vtk-icon-spin3:before { content: '\e803'; } /* '???' */
.vtk-icon-spin4:before { content: '\e800'; } /* '???' */
.vtk-icon-spin5:before { content: '\e804'; } /* '???' */
.vtk-icon-spin6:before { content: '\e805'; } /* '???' */
.vtk-icon-move:before { content: '\e86f'; } /* '???' */
.vtk-icon-link-ext:before { content: '\e832'; } /* '???' */
.vtk-icon-check-empty:before { content: '\e8c0'; } /* '???' */
.vtk-icon-bookmark-empty:before { content: '\e826'; } /* '???' */
.vtk-icon-hdd:before { content: '\e8ce'; } /* '???' */
.vtk-icon-certificate:before { content: '\e8cb'; } /* '???' */
.vtk-icon-left-circled:before { content: '\e884'; } /* '???' */
.vtk-icon-right-circled:before { content: '\e885'; } /* '???' */
.vtk-icon-up-circled:before { content: '\e886'; } /* '???' */
.vtk-icon-down-circled:before { content: '\e887'; } /* '???' */
.vtk-icon-tasks:before { content: '\e8ca'; } /* '???' */
.vtk-icon-filter:before { content: '\e8c8'; } /* '???' */
.vtk-icon-resize-full-alt:before { content: '\e86c'; } /* '???' */
.vtk-icon-beaker:before { content: '\e8c9'; } /* '???' */
.vtk-icon-docs:before { content: '\e842'; } /* '???' */
.vtk-icon-menu:before { content: '\e85c'; } /* '???' */
.vtk-icon-list-bullet:before { content: '\e8b3'; } /* '???' */
.vtk-icon-list-numbered:before { content: '\e8b2'; } /* '???' */
.vtk-icon-strike:before { content: '\e8b1'; } /* '???' */
.vtk-icon-underline:before { content: '\e8b0'; } /* '???' */
.vtk-icon-table:before { content: '\e8ad'; } /* '???' */
.vtk-icon-magic:before { content: '\e8c7'; } /* '???' */
.vtk-icon-columns:before { content: '\e8ac'; } /* '???' */
.vtk-icon-sort:before { content: '\e8d1'; } /* '???' */
.vtk-icon-sort-down:before { content: '\e8d2'; } /* '???' */
.vtk-icon-sort-up:before { content: '\e8d3'; } /* '???' */
.vtk-icon-gauge:before { content: '\e8da'; } /* '???' */
.vtk-icon-comment-empty:before { content: '\e84d'; } /* '???' */
.vtk-icon-sitemap:before { content: '\e8db'; } /* '???' */
.vtk-icon-paste:before { content: '\e8a9'; } /* '???' */
.vtk-icon-lightbulb:before { content: '\e869'; } /* '???' */
.vtk-icon-exchange:before { content: '\e899'; } /* '???' */
.vtk-icon-download-cloud:before { content: '\e839'; } /* '???' */
.vtk-icon-upload-cloud:before { content: '\e83a'; } /* '???' */
.vtk-icon-suitcase:before { content: '\e8a7'; } /* '???' */
.vtk-icon-bell-alt:before { content: '\e84b'; } /* '???' */
.vtk-icon-doc-text:before { content: '\e854'; } /* '???' */
.vtk-icon-plus-squared:before { content: '\e81e'; } /* '???' */
.vtk-icon-angle-left:before { content: '\e877'; } /* '???' */
.vtk-icon-angle-up:before { content: '\e876'; } /* '???' */
.vtk-icon-angle-down:before { content: '\e875'; } /* '???' */
.vtk-icon-desktop:before { content: '\e89b'; } /* '???' */
.vtk-icon-laptop:before { content: '\e89c'; } /* '???' */
.vtk-icon-tablet:before { content: '\e89d'; } /* '???' */
.vtk-icon-mobile:before { content: '\e89e'; } /* '???' */
.vtk-icon-circle-empty:before { content: '\e8c2'; } /* '???' */
.vtk-icon-spinner:before { content: '\e8dc'; } /* '???' */
.vtk-icon-circle:before { content: '\e8c1'; } /* '???' */
.vtk-icon-reply:before { content: '\e83b'; } /* '???' */
.vtk-icon-folder-empty:before { content: '\e859'; } /* '???' */
.vtk-icon-folder-open-empty:before { content: '\e85a'; } /* '???' */
.vtk-icon-plus-squared-small:before { content: '\e81f'; } /* '???' */
.vtk-icon-minus-squared-small:before { content: '\e824'; } /* '???' */
.vtk-icon-gamepad:before { content: '\e850'; } /* '???' */
.vtk-icon-keyboard:before { content: '\e84f'; } /* '???' */
.vtk-icon-terminal:before { content: '\e8de'; } /* '???' */
.vtk-icon-code:before { content: '\e841'; } /* '???' */
.vtk-icon-reply-all:before { content: '\e83c'; } /* '???' */
.vtk-icon-star-half-alt:before { content: '\e80b'; } /* '???' */
.vtk-icon-direction:before { content: '\e846'; } /* '???' */
.vtk-icon-crop:before { content: '\e8ab'; } /* '???' */
.vtk-icon-fork:before { content: '\e8cd'; } /* '???' */
.vtk-icon-help:before { content: '\e825'; } /* '???' */
.vtk-icon-info:before { content: '\e834'; } /* '???' */
.vtk-icon-attention-alt:before { content: '\e84a'; } /* '???' */
.vtk-icon-superscript:before { content: '\e8af'; } /* '???' */
.vtk-icon-subscript:before { content: '\e8ae'; } /* '???' */
.vtk-icon-eraser:before { content: '\e8dd'; } /* '???' */
.vtk-icon-calendar-empty:before { content: '\e861'; } /* '???' */
.vtk-icon-angle-circled-left:before { content: '\e874'; } /* '???' */
.vtk-icon-angle-circled-right:before { content: '\e873'; } /* '???' */
.vtk-icon-angle-circled-up:before { content: '\e872'; } /* '???' */
.vtk-icon-angle-circled-down:before { content: '\e871'; } /* '???' */
.vtk-icon-lock-open-alt:before { content: '\e82d'; } /* '???' */
.vtk-icon-play-circled:before { content: '\e894'; } /* '???' */
.vtk-icon-minus-squared:before { content: '\e822'; } /* '???' */
.vtk-icon-minus-squared-alt:before { content: '\e823'; } /* '???' */
.vtk-icon-ok-squared:before { content: '\e81a'; } /* '???' */
.vtk-icon-link-ext-alt:before { content: '\e831'; } /* '???' */
.vtk-icon-export-alt:before { content: '\e83f'; } /* '???' */
.vtk-icon-compass:before { content: '\e845'; } /* '???' */
.vtk-icon-collapse:before { content: '\e898'; } /* '???' */
.vtk-icon-collapse-top:before { content: '\e897'; } /* '???' */
.vtk-icon-expand:before { content: '\e896'; } /* '???' */
.vtk-icon-euro:before { content: '\e8c6'; } /* '???' */
.vtk-icon-dollar:before { content: '\e8c5'; } /* '???' */
.vtk-icon-doc-inv:before { content: '\e855'; } /* '???' */
.vtk-icon-doc-text-inv:before { content: '\e856'; } /* '???' */
.vtk-icon-sort-name-up:before { content: '\e8d6'; } /* '???' */
.vtk-icon-sort-name-down:before { content: '\e8d7'; } /* '???' */
.vtk-icon-sort-alt-up:before { content: '\e8d4'; } /* '???' */
.vtk-icon-sort-alt-down:before { content: '\e8d5'; } /* '???' */
.vtk-icon-sort-number-up:before { content: '\e8d8'; } /* '???' */
.vtk-icon-sort-number-down:before { content: '\e8d9'; } /* '???' */
.vtk-icon-sun:before { content: '\e8a0'; } /* '???' */
.vtk-icon-box:before { content: '\e85b'; } /* '???' */
.vtk-icon-bug:before { content: '\e8cc'; } /* '???' */
.vtk-icon-picture-1:before { content: '\e8e7'; } /* '???' */
.vtk-icon-picture:before { content: '\e811'; } /* '???' */
.vtk-icon-globe:before { content: '\e89f'; } /* '???' */
.vtk-icon-videocam:before { content: '\e810'; } /* '???' */
.vtk-icon-video:before { content: '\e80f'; } /* '???' */
.vtk-icon-target:before { content: '\e940'; } /* '???' */
.vtk-icon-user-1:before { content: '\e8e5'; } /* '???' */
.vtk-icon-user:before { content: '\e80d'; } /* '???' */
.vtk-icon-users-1:before { content: '\e8e6'; } /* '???' */
.vtk-icon-users:before { content: '\e80e'; } /* '???' */
.vtk-icon-lamp:before { content: '\e91e'; } /* '???' */
.vtk-icon-credit-card:before { content: '\e8d0'; } /* '???' */
.vtk-icon-monitor:before { content: '\e944'; } /* '???' */
.vtk-icon-briefcase:before { content: '\e8a8'; } /* '???' */
.vtk-icon-floppy-1:before { content: '\e94d'; } /* '???' */
.vtk-icon-floppy:before { content: '\e8cf'; } /* '???' */
.vtk-icon-folder-1:before { content: '\e908'; } /* '???' */
.vtk-icon-folder:before { content: '\e857'; } /* '???' */
.vtk-icon-folder-open:before { content: '\e858'; } /* '???' */
.vtk-icon-doc:before { content: '\e843'; } /* '???' */
.vtk-icon-calendar:before { content: '\e860'; } /* '???' */
.vtk-icon-chart-line:before { content: '\e947'; } /* '???' */
.vtk-icon-chart-bar:before { content: '\e8c4'; } /* '???' */
.vtk-icon-chart-bar-1:before { content: '\e948'; } /* '???' */
.vtk-icon-pin:before { content: '\e82c'; } /* '???' */
.vtk-icon-attach:before { content: '\e830'; } /* '???' */
.vtk-icon-bookmarks:before { content: '\e8fd'; } /* '???' */
.vtk-icon-book-open:before { content: '\e904'; } /* '???' */
.vtk-icon-upload:before { content: '\e838'; } /* '???' */
.vtk-icon-download:before { content: '\e837'; } /* '???' */
.vtk-icon-box-1:before { content: '\e90a'; } /* '???' */
.vtk-icon-mobile-1:before { content: '\e945'; } /* '???' */
.vtk-icon-camera-1:before { content: '\e8e0'; } /* '???' */
.vtk-icon-camera:before { content: '\e812'; } /* '???' */
.vtk-icon-shuffle-1:before { content: '\e93c'; } /* '???' */
.vtk-icon-shuffle:before { content: '\e89a'; } /* '???' */
.vtk-icon-loop:before { content: '\e93b'; } /* '???' */
.vtk-icon-arrows-ccw:before { content: '\e93d'; } /* '???' */
.vtk-icon-search:before { content: '\e806'; } /* '???' */
.vtk-icon-key:before { content: '\e950'; } /* '???' */
.vtk-icon-lock:before { content: '\e82f'; } /* '???' */
.vtk-icon-lock-1:before { content: '\e8ee'; } /* '???' */
.vtk-icon-lock-open:before { content: '\e82e'; } /* '???' */
.vtk-icon-lock-open-1:before { content: '\e8ed'; } /* '???' */
.vtk-icon-bell:before { content: '\e84c'; } /* '???' */
.vtk-icon-bell-1:before { content: '\e907'; } /* '???' */
.vtk-icon-bookmark:before { content: '\e827'; } /* '???' */
.vtk-icon-bookmark-1:before { content: '\e8fc'; } /* '???' */
.vtk-icon-wrench:before { content: '\e85f'; } /* '???' */
.vtk-icon-chart-area:before { content: '\e946'; } /* '???' */
.vtk-icon-clock-1:before { content: '\e90e'; } /* '???' */
.vtk-icon-clock:before { content: '\e868'; } /* '???' */
.vtk-icon-block:before { content: '\e86a'; } /* '???' */
.vtk-icon-block-1:before { content: '\e91d'; } /* '???' */

View File

@ -0,0 +1,838 @@
<!DOCTYPE html>
<html>
<head><!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<meta charset="UTF-8"><style type="text/css">/*
* Bootstrap v2.2.1
*
* Copyright 2012 Twitter, Inc
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
* Designed and built with all the love in the world @twitter by @mdo and @fat.
*/
.clearfix {
*zoom: 1;
}
.clearfix:before,
.clearfix:after {
display: table;
content: "";
line-height: 0;
}
.clearfix:after {
clear: both;
}
html {
font-size: 100%;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
a:focus {
outline: thin dotted #333;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
a:hover,
a:active {
outline: 0;
}
button,
input,
select,
textarea {
margin: 0;
font-size: 100%;
vertical-align: middle;
}
button,
input {
*overflow: visible;
line-height: normal;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
padding: 0;
border: 0;
}
body {
margin: 0;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
line-height: 20px;
color: #333;
background-color: #fff;
}
a {
color: #08c;
text-decoration: none;
}
a:hover {
color: #005580;
text-decoration: underline;
}
.row {
margin-left: -20px;
*zoom: 1;
}
.row:before,
.row:after {
display: table;
content: "";
line-height: 0;
}
.row:after {
clear: both;
}
[class*="span"] {
float: left;
min-height: 1px;
margin-left: 20px;
}
.container,
.navbar-static-top .container,
.navbar-fixed-top .container,
.navbar-fixed-bottom .container {
width: 940px;
}
.span12 {
width: 940px;
}
.span11 {
width: 860px;
}
.span10 {
width: 780px;
}
.span9 {
width: 700px;
}
.span8 {
width: 620px;
}
.span7 {
width: 540px;
}
.span6 {
width: 460px;
}
.span5 {
width: 380px;
}
.span4 {
width: 300px;
}
.span3 {
width: 220px;
}
.span2 {
width: 140px;
}
.span1 {
width: 60px;
}
[class*="span"].pull-right,
.row-fluid [class*="span"].pull-right {
float: right;
}
.container {
margin-right: auto;
margin-left: auto;
*zoom: 1;
}
.container:before,
.container:after {
display: table;
content: "";
line-height: 0;
}
.container:after {
clear: both;
}
p {
margin: 0 0 10px;
}
.lead {
margin-bottom: 20px;
font-size: 21px;
font-weight: 200;
line-height: 30px;
}
small {
font-size: 85%;
}
h1 {
margin: 10px 0;
font-family: inherit;
font-weight: bold;
line-height: 20px;
color: inherit;
text-rendering: optimizelegibility;
}
h1 small {
font-weight: normal;
line-height: 1;
color: #999;
}
h1 {
line-height: 40px;
}
h1 {
font-size: 38.5px;
}
h1 small {
font-size: 24.5px;
}
body {
margin-top: 90px;
}
.header {
position: fixed;
top: 0;
left: 50%;
margin-left: -480px;
background-color: #fff;
border-bottom: 1px solid #ddd;
padding-top: 10px;
z-index: 10;
}
.footer {
color: #ddd;
font-size: 12px;
text-align: center;
margin-top: 20px;
}
.footer a {
color: #ccc;
text-decoration: underline;
}
.the-icons {
font-size: 14px;
line-height: 24px;
}
.switch {
position: absolute;
right: 0;
bottom: 10px;
color: #666;
}
.switch input {
margin-right: 0.3em;
}
.codesOn .i-name {
display: none;
}
.codesOn .i-code {
display: inline;
}
.i-code {
display: none;
}
</style>
<link rel="stylesheet" href="css/fontello.css">
<link rel="stylesheet" href="css/animation.css"><!--[if IE 7]>
<link rel="stylesheet" href="css/fontello-ie7.css"><![endif]-->
<script>
function toggleCodes(on) {
var obj = document.getElementById('icons');
if (on) {
obj.className += ' codesOn';
} else {
obj.className = obj.className.replace(' codesOn', '');
}
}
</script>
</head>
<body>
<div class="container header">
<h1>
fontello
<small>font demo</small>
</h1>
<label class="switch">
<input type="checkbox" onclick="toggleCodes(this.checked)">show codes
</label>
</div>
<div id="icons" class="container">
<div class="row">
<div title="Code: 0xe81c" class="the-icons span3"><i class="vtk-icon-plus"></i> <span class="i-name">vtk-icon-plus</span><span class="i-code">0xe81c</span></div>
<div title="Code: 0xe8f9" class="the-icons span3"><i class="vtk-icon-plus-1"></i> <span class="i-name">vtk-icon-plus-1</span><span class="i-code">0xe8f9</span></div>
<div title="Code: 0xe820" class="the-icons span3"><i class="vtk-icon-minus"></i> <span class="i-name">vtk-icon-minus</span><span class="i-code">0xe820</span></div>
<div title="Code: 0xe8f6" class="the-icons span3"><i class="vtk-icon-minus-1"></i> <span class="i-name">vtk-icon-minus-1</span><span class="i-code">0xe8f6</span></div>
</div>
<div class="row">
<div title="Code: 0xe8f1" class="the-icons span3"><i class="vtk-icon-info-1"></i> <span class="i-name">vtk-icon-info-1</span><span class="i-code">0xe8f1</span></div>
<div title="Code: 0xe881" class="the-icons span3"><i class="vtk-icon-left-big"></i> <span class="i-name">vtk-icon-left-big</span><span class="i-code">0xe881</span></div>
<div title="Code: 0xe883" class="the-icons span3"><i class="vtk-icon-up-big"></i> <span class="i-name">vtk-icon-up-big</span><span class="i-code">0xe883</span></div>
<div title="Code: 0xe882" class="the-icons span3"><i class="vtk-icon-right-big"></i> <span class="i-name">vtk-icon-right-big</span><span class="i-code">0xe882</span></div>
</div>
<div class="row">
<div title="Code: 0xe880" class="the-icons span3"><i class="vtk-icon-down-big"></i> <span class="i-name">vtk-icon-down-big</span><span class="i-code">0xe880</span></div>
<div title="Code: 0xe93a" class="the-icons span3"><i class="vtk-icon-switch"></i> <span class="i-name">vtk-icon-switch</span><span class="i-code">0xe93a</span></div>
<div title="Code: 0xe8f7" class="the-icons span3"><i class="vtk-icon-plus-squared-1"></i> <span class="i-name">vtk-icon-plus-squared-1</span><span class="i-code">0xe8f7</span></div>
<div title="Code: 0xe8f4" class="the-icons span3"><i class="vtk-icon-minus-squared-1"></i> <span class="i-name">vtk-icon-minus-squared-1</span><span class="i-code">0xe8f4</span></div>
</div>
<div class="row">
<div title="Code: 0xe8ef" class="the-icons span3"><i class="vtk-icon-home-1"></i> <span class="i-name">vtk-icon-home-1</span><span class="i-code">0xe8ef</span></div>
<div title="Code: 0xe833" class="the-icons span3"><i class="vtk-icon-home"></i> <span class="i-name">vtk-icon-home</span><span class="i-code">0xe833</span></div>
<div title="Code: 0xe903" class="the-icons span3"><i class="vtk-icon-keyboard-1"></i> <span class="i-name">vtk-icon-keyboard-1</span><span class="i-code">0xe903</span></div>
<div title="Code: 0xe937" class="the-icons span3"><i class="vtk-icon-pause-1"></i> <span class="i-name">vtk-icon-pause-1</span><span class="i-code">0xe937</span></div>
</div>
<div class="row">
<div title="Code: 0xe891" class="the-icons span3"><i class="vtk-icon-pause"></i> <span class="i-name">vtk-icon-pause</span><span class="i-code">0xe891</span></div>
<div title="Code: 0xe933" class="the-icons span3"><i class="vtk-icon-fast-forward"></i> <span class="i-name">vtk-icon-fast-forward</span><span class="i-code">0xe933</span></div>
<div title="Code: 0xe88c" class="the-icons span3"><i class="vtk-icon-fast-fw"></i> <span class="i-name">vtk-icon-fast-fw</span><span class="i-code">0xe88c</span></div>
<div title="Code: 0xe932" class="the-icons span3"><i class="vtk-icon-fast-backward"></i> <span class="i-name">vtk-icon-fast-backward</span><span class="i-code">0xe932</span></div>
</div>
<div class="row">
<div title="Code: 0xe88b" class="the-icons span3"><i class="vtk-icon-fast-bw"></i> <span class="i-name">vtk-icon-fast-bw</span><span class="i-code">0xe88b</span></div>
<div title="Code: 0xe936" class="the-icons span3"><i class="vtk-icon-to-end-1"></i> <span class="i-name">vtk-icon-to-end-1</span><span class="i-code">0xe936</span></div>
<div title="Code: 0xe890" class="the-icons span3"><i class="vtk-icon-to-end"></i> <span class="i-name">vtk-icon-to-end</span><span class="i-code">0xe890</span></div>
<div title="Code: 0xe88e" class="the-icons span3"><i class="vtk-icon-to-start"></i> <span class="i-name">vtk-icon-to-start</span><span class="i-code">0xe88e</span></div>
</div>
<div class="row">
<div title="Code: 0xe934" class="the-icons span3"><i class="vtk-icon-to-start-1"></i> <span class="i-name">vtk-icon-to-start-1</span><span class="i-code">0xe934</span></div>
<div title="Code: 0xe90f" class="the-icons span3"><i class="vtk-icon-hourglass"></i> <span class="i-name">vtk-icon-hourglass</span><span class="i-code">0xe90f</span></div>
<div title="Code: 0xe938" class="the-icons span3"><i class="vtk-icon-stop-1"></i> <span class="i-name">vtk-icon-stop-1</span><span class="i-code">0xe938</span></div>
<div title="Code: 0xe892" class="the-icons span3"><i class="vtk-icon-stop"></i> <span class="i-name">vtk-icon-stop</span><span class="i-code">0xe892</span></div>
</div>
<div class="row">
<div title="Code: 0xe92d" class="the-icons span3"><i class="vtk-icon-up-dir-1"></i> <span class="i-name">vtk-icon-up-dir-1</span><span class="i-code">0xe92d</span></div>
<div title="Code: 0xe87e" class="the-icons span3"><i class="vtk-icon-up-dir"></i> <span class="i-name">vtk-icon-up-dir</span><span class="i-code">0xe87e</span></div>
<div title="Code: 0xe939" class="the-icons span3"><i class="vtk-icon-play-1"></i> <span class="i-name">vtk-icon-play-1</span><span class="i-code">0xe939</span></div>
<div title="Code: 0xe895" class="the-icons span3"><i class="vtk-icon-play"></i> <span class="i-name">vtk-icon-play</span><span class="i-code">0xe895</span></div>
</div>
<div class="row">
<div title="Code: 0xe87c" class="the-icons span3"><i class="vtk-icon-right-dir"></i> <span class="i-name">vtk-icon-right-dir</span><span class="i-code">0xe87c</span></div>
<div title="Code: 0xe92c" class="the-icons span3"><i class="vtk-icon-right-dir-1"></i> <span class="i-name">vtk-icon-right-dir-1</span><span class="i-code">0xe92c</span></div>
<div title="Code: 0xe87f" class="the-icons span3"><i class="vtk-icon-down-dir"></i> <span class="i-name">vtk-icon-down-dir</span><span class="i-code">0xe87f</span></div>
<div title="Code: 0xe92a" class="the-icons span3"><i class="vtk-icon-down-dir-1"></i> <span class="i-name">vtk-icon-down-dir-1</span><span class="i-code">0xe92a</span></div>
</div>
<div class="row">
<div title="Code: 0xe92b" class="the-icons span3"><i class="vtk-icon-left-dir-1"></i> <span class="i-name">vtk-icon-left-dir-1</span><span class="i-code">0xe92b</span></div>
<div title="Code: 0xe87d" class="the-icons span3"><i class="vtk-icon-left-dir"></i> <span class="i-name">vtk-icon-left-dir</span><span class="i-code">0xe87d</span></div>
<div title="Code: 0xe8a1" class="the-icons span3"><i class="vtk-icon-cloud"></i> <span class="i-name">vtk-icon-cloud</span><span class="i-code">0xe8a1</span></div>
<div title="Code: 0xe8e1" class="the-icons span3"><i class="vtk-icon-star-1"></i> <span class="i-name">vtk-icon-star-1</span><span class="i-code">0xe8e1</span></div>
</div>
<div class="row">
<div title="Code: 0xe809" class="the-icons span3"><i class="vtk-icon-star"></i> <span class="i-name">vtk-icon-star</span><span class="i-code">0xe809</span></div>
<div title="Code: 0xe8e2" class="the-icons span3"><i class="vtk-icon-star-empty-1"></i> <span class="i-name">vtk-icon-star-empty-1</span><span class="i-code">0xe8e2</span></div>
<div title="Code: 0xe80a" class="the-icons span3"><i class="vtk-icon-star-empty"></i> <span class="i-name">vtk-icon-star-empty</span><span class="i-code">0xe80a</span></div>
<div title="Code: 0xe8bf" class="the-icons span3"><i class="vtk-icon-check"></i> <span class="i-name">vtk-icon-check</span><span class="i-code">0xe8bf</span></div>
</div>
<div class="row">
<div title="Code: 0xe816" class="the-icons span3"><i class="vtk-icon-th-list"></i> <span class="i-name">vtk-icon-th-list</span><span class="i-code">0xe816</span></div>
<div title="Code: 0xe8ea" class="the-icons span3"><i class="vtk-icon-menu-1"></i> <span class="i-name">vtk-icon-menu-1</span><span class="i-code">0xe8ea</span></div>
<div title="Code: 0xe807" class="the-icons span3"><i class="vtk-icon-heart-empty"></i> <span class="i-name">vtk-icon-heart-empty</span><span class="i-code">0xe807</span></div>
<div title="Code: 0xe8e4" class="the-icons span3"><i class="vtk-icon-heart-empty-1"></i> <span class="i-name">vtk-icon-heart-empty-1</span><span class="i-code">0xe8e4</span></div>
</div>
<div class="row">
<div title="Code: 0xe8e3" class="the-icons span3"><i class="vtk-icon-heart-1"></i> <span class="i-name">vtk-icon-heart-1</span><span class="i-code">0xe8e3</span></div>
<div title="Code: 0xe808" class="the-icons span3"><i class="vtk-icon-heart"></i> <span class="i-name">vtk-icon-heart</span><span class="i-code">0xe808</span></div>
<div title="Code: 0xe8eb" class="the-icons span3"><i class="vtk-icon-layout"></i> <span class="i-name">vtk-icon-layout</span><span class="i-code">0xe8eb</span></div>
<div title="Code: 0xe815" class="the-icons span3"><i class="vtk-icon-th"></i> <span class="i-name">vtk-icon-th</span><span class="i-code">0xe815</span></div>
</div>
<div class="row">
<div title="Code: 0xe8fe" class="the-icons span3"><i class="vtk-icon-flag"></i> <span class="i-name">vtk-icon-flag</span><span class="i-code">0xe8fe</span></div>
<div title="Code: 0xe90b" class="the-icons span3"><i class="vtk-icon-tools"></i> <span class="i-name">vtk-icon-tools</span><span class="i-code">0xe90b</span></div>
<div title="Code: 0xe85d" class="the-icons span3"><i class="vtk-icon-cog"></i> <span class="i-name">vtk-icon-cog</span><span class="i-code">0xe85d</span></div>
<div title="Code: 0xe849" class="the-icons span3"><i class="vtk-icon-attention"></i> <span class="i-name">vtk-icon-attention</span><span class="i-code">0xe849</span></div>
</div>
<div class="row">
<div title="Code: 0xe906" class="the-icons span3"><i class="vtk-icon-attention-1"></i> <span class="i-name">vtk-icon-attention-1</span><span class="i-code">0xe906</span></div>
<div title="Code: 0xe935" class="the-icons span3"><i class="vtk-icon-record"></i> <span class="i-name">vtk-icon-record</span><span class="i-code">0xe935</span></div>
<div title="Code: 0xe85e" class="the-icons span3"><i class="vtk-icon-cog-alt"></i> <span class="i-name">vtk-icon-cog-alt</span><span class="i-code">0xe85e</span></div>
<div title="Code: 0xe8aa" class="the-icons span3"><i class="vtk-icon-scissors"></i> <span class="i-name">vtk-icon-scissors</span><span class="i-code">0xe8aa</span></div>
</div>
<div class="row">
<div title="Code: 0xe853" class="the-icons span3"><i class="vtk-icon-edit"></i> <span class="i-name">vtk-icon-edit</span><span class="i-code">0xe853</span></div>
<div title="Code: 0xe900" class="the-icons span3"><i class="vtk-icon-pencil-1"></i> <span class="i-name">vtk-icon-pencil-1</span><span class="i-code">0xe900</span></div>
<div title="Code: 0xe840" class="the-icons span3"><i class="vtk-icon-pencil"></i> <span class="i-name">vtk-icon-pencil</span><span class="i-code">0xe840</span></div>
<div title="Code: 0xe8e8" class="the-icons span3"><i class="vtk-icon-check-1"></i> <span class="i-name">vtk-icon-check-1</span><span class="i-code">0xe8e8</span></div>
</div>
<div class="row">
<div title="Code: 0xe817" class="the-icons span3"><i class="vtk-icon-ok"></i> <span class="i-name">vtk-icon-ok</span><span class="i-code">0xe817</span></div>
<div title="Code: 0xe818" class="the-icons span3"><i class="vtk-icon-ok-circled"></i> <span class="i-name">vtk-icon-ok-circled</span><span class="i-code">0xe818</span></div>
<div title="Code: 0xe8e9" class="the-icons span3"><i class="vtk-icon-cancel-1"></i> <span class="i-name">vtk-icon-cancel-1</span><span class="i-code">0xe8e9</span></div>
<div title="Code: 0xe81b" class="the-icons span3"><i class="vtk-icon-cancel"></i> <span class="i-name">vtk-icon-cancel</span><span class="i-code">0xe81b</span></div>
</div>
<div class="row">
<div title="Code: 0xe8fb" class="the-icons span3"><i class="vtk-icon-cancel-circled"></i> <span class="i-name">vtk-icon-cancel-circled</span><span class="i-code">0xe8fb</span></div>
<div title="Code: 0xe8c3" class="the-icons span3"><i class="vtk-icon-asterisk"></i> <span class="i-name">vtk-icon-asterisk</span><span class="i-code">0xe8c3</span></div>
<div title="Code: 0xe8fa" class="the-icons span3"><i class="vtk-icon-cancel-squared"></i> <span class="i-name">vtk-icon-cancel-squared</span><span class="i-code">0xe8fa</span></div>
<div title="Code: 0xe8f3" class="the-icons span3"><i class="vtk-icon-help-1"></i> <span class="i-name">vtk-icon-help-1</span><span class="i-code">0xe8f3</span></div>
</div>
<div class="row">
<div title="Code: 0xe848" class="the-icons span3"><i class="vtk-icon-attention-circled"></i> <span class="i-name">vtk-icon-attention-circled</span><span class="i-code">0xe848</span></div>
<div title="Code: 0xe8f8" class="the-icons span3"><i class="vtk-icon-plus-circled-1"></i> <span class="i-name">vtk-icon-plus-circled-1</span><span class="i-code">0xe8f8</span></div>
<div title="Code: 0xe81d" class="the-icons span3"><i class="vtk-icon-plus-circled"></i> <span class="i-name">vtk-icon-plus-circled</span><span class="i-code">0xe81d</span></div>
<div title="Code: 0xe8f5" class="the-icons span3"><i class="vtk-icon-minus-circled-1"></i> <span class="i-name">vtk-icon-minus-circled-1</span><span class="i-code">0xe8f5</span></div>
</div>
<div class="row">
<div title="Code: 0xe821" class="the-icons span3"><i class="vtk-icon-minus-circled"></i> <span class="i-name">vtk-icon-minus-circled</span><span class="i-code">0xe821</span></div>
<div title="Code: 0xe928" class="the-icons span3"><i class="vtk-icon-right"></i> <span class="i-name">vtk-icon-right</span><span class="i-code">0xe928</span></div>
<div title="Code: 0xe83d" class="the-icons span3"><i class="vtk-icon-forward"></i> <span class="i-name">vtk-icon-forward</span><span class="i-code">0xe83d</span></div>
<div title="Code: 0xe889" class="the-icons span3"><i class="vtk-icon-ccw"></i> <span class="i-name">vtk-icon-ccw</span><span class="i-code">0xe889</span></div>
</div>
<div class="row">
<div title="Code: 0xe93f" class="the-icons span3"><i class="vtk-icon-ccw-1"></i> <span class="i-name">vtk-icon-ccw-1</span><span class="i-code">0xe93f</span></div>
<div title="Code: 0xe93e" class="the-icons span3"><i class="vtk-icon-cw-1"></i> <span class="i-name">vtk-icon-cw-1</span><span class="i-code">0xe93e</span></div>
<div title="Code: 0xe888" class="the-icons span3"><i class="vtk-icon-cw"></i> <span class="i-name">vtk-icon-cw</span><span class="i-code">0xe888</span></div>
<div title="Code: 0xe927" class="the-icons span3"><i class="vtk-icon-left"></i> <span class="i-name">vtk-icon-left</span><span class="i-code">0xe927</span></div>
</div>
<div class="row">
<div title="Code: 0xe929" class="the-icons span3"><i class="vtk-icon-up"></i> <span class="i-name">vtk-icon-up</span><span class="i-code">0xe929</span></div>
<div title="Code: 0xe926" class="the-icons span3"><i class="vtk-icon-down"></i> <span class="i-name">vtk-icon-down</span><span class="i-code">0xe926</span></div>
<div title="Code: 0xe97d" class="the-icons span3"><i class="vtk-icon-resize-vertical-1"></i> <span class="i-name">vtk-icon-resize-vertical-1</span><span class="i-code">0xe97d</span></div>
<div title="Code: 0xe870" class="the-icons span3"><i class="vtk-icon-resize-vertical"></i> <span class="i-name">vtk-icon-resize-vertical</span><span class="i-code">0xe870</span></div>
</div>
<div class="row">
<div title="Code: 0xe97f" class="the-icons span3"><i class="vtk-icon-resize-horizontal-1"></i> <span class="i-name">vtk-icon-resize-horizontal-1</span><span class="i-code">0xe97f</span></div>
<div title="Code: 0xe86e" class="the-icons span3"><i class="vtk-icon-resize-horizontal"></i> <span class="i-name">vtk-icon-resize-horizontal</span><span class="i-code">0xe86e</span></div>
<div title="Code: 0xe942" class="the-icons span3"><i class="vtk-icon-list-add"></i> <span class="i-name">vtk-icon-list-add</span><span class="i-code">0xe942</span></div>
<div title="Code: 0xe941" class="the-icons span3"><i class="vtk-icon-list-1"></i> <span class="i-name">vtk-icon-list-1</span><span class="i-code">0xe941</span></div>
</div>
<div class="row">
<div title="Code: 0xe966" class="the-icons span3"><i class="vtk-icon-down-1"></i> <span class="i-name">vtk-icon-down-1</span><span class="i-code">0xe966</span></div>
<div title="Code: 0xe967" class="the-icons span3"><i class="vtk-icon-left-1"></i> <span class="i-name">vtk-icon-left-1</span><span class="i-code">0xe967</span></div>
<div title="Code: 0xe96b" class="the-icons span3"><i class="vtk-icon-loop-alt-outline"></i> <span class="i-name">vtk-icon-loop-alt-outline</span><span class="i-code">0xe96b</span></div>
<div title="Code: 0xe96c" class="the-icons span3"><i class="vtk-icon-loop-alt"></i> <span class="i-name">vtk-icon-loop-alt</span><span class="i-code">0xe96c</span></div>
</div>
<div class="row">
<div title="Code: 0xe96a" class="the-icons span3"><i class="vtk-icon-loop-outline"></i> <span class="i-name">vtk-icon-loop-outline</span><span class="i-code">0xe96a</span></div>
<div title="Code: 0xe969" class="the-icons span3"><i class="vtk-icon-right-1"></i> <span class="i-name">vtk-icon-right-1</span><span class="i-code">0xe969</span></div>
<div title="Code: 0xe968" class="the-icons span3"><i class="vtk-icon-up-1"></i> <span class="i-name">vtk-icon-up-1</span><span class="i-code">0xe968</span></div>
<div title="Code: 0xe962" class="the-icons span3"><i class="vtk-icon-left-open-outline"></i> <span class="i-name">vtk-icon-left-open-outline</span><span class="i-code">0xe962</span></div>
</div>
<div class="row">
<div title="Code: 0xe963" class="the-icons span3"><i class="vtk-icon-left-open-2"></i> <span class="i-name">vtk-icon-left-open-2</span><span class="i-code">0xe963</span></div>
<div title="Code: 0xe964" class="the-icons span3"><i class="vtk-icon-right-open-outline"></i> <span class="i-name">vtk-icon-right-open-outline</span><span class="i-code">0xe964</span></div>
<div title="Code: 0xe965" class="the-icons span3"><i class="vtk-icon-right-open-2"></i> <span class="i-name">vtk-icon-right-open-2</span><span class="i-code">0xe965</span></div>
<div title="Code: 0xe95b" class="the-icons span3"><i class="vtk-icon-users-outline"></i> <span class="i-name">vtk-icon-users-outline</span><span class="i-code">0xe95b</span></div>
</div>
<div class="row">
<div title="Code: 0xe95a" class="the-icons span3"><i class="vtk-icon-users-2"></i> <span class="i-name">vtk-icon-users-2</span><span class="i-code">0xe95a</span></div>
<div title="Code: 0xe961" class="the-icons span3"><i class="vtk-icon-heart-2"></i> <span class="i-name">vtk-icon-heart-2</span><span class="i-code">0xe961</span></div>
<div title="Code: 0xe960" class="the-icons span3"><i class="vtk-icon-heart-filled"></i> <span class="i-name">vtk-icon-heart-filled</span><span class="i-code">0xe960</span></div>
<div title="Code: 0xe973" class="the-icons span3"><i class="vtk-icon-fast-fw-outline"></i> <span class="i-name">vtk-icon-fast-fw-outline</span><span class="i-code">0xe973</span></div>
</div>
<div class="row">
<div title="Code: 0xe974" class="the-icons span3"><i class="vtk-icon-fast-fw-1"></i> <span class="i-name">vtk-icon-fast-fw-1</span><span class="i-code">0xe974</span></div>
<div title="Code: 0xe971" class="the-icons span3"><i class="vtk-icon-pause-outline"></i> <span class="i-name">vtk-icon-pause-outline</span><span class="i-code">0xe971</span></div>
<div title="Code: 0xe972" class="the-icons span3"><i class="vtk-icon-pause-2"></i> <span class="i-name">vtk-icon-pause-2</span><span class="i-code">0xe972</span></div>
<div title="Code: 0xe96e" class="the-icons span3"><i class="vtk-icon-play-outline"></i> <span class="i-name">vtk-icon-play-outline</span><span class="i-code">0xe96e</span></div>
</div>
<div class="row">
<div title="Code: 0xe96d" class="the-icons span3"><i class="vtk-icon-play-2"></i> <span class="i-name">vtk-icon-play-2</span><span class="i-code">0xe96d</span></div>
<div title="Code: 0xe977" class="the-icons span3"><i class="vtk-icon-record-outline"></i> <span class="i-name">vtk-icon-record-outline</span><span class="i-code">0xe977</span></div>
<div title="Code: 0xe978" class="the-icons span3"><i class="vtk-icon-record-1"></i> <span class="i-name">vtk-icon-record-1</span><span class="i-code">0xe978</span></div>
<div title="Code: 0xe975" class="the-icons span3"><i class="vtk-icon-rewind-outline"></i> <span class="i-name">vtk-icon-rewind-outline</span><span class="i-code">0xe975</span></div>
</div>
<div class="row">
<div title="Code: 0xe976" class="the-icons span3"><i class="vtk-icon-rewind"></i> <span class="i-name">vtk-icon-rewind</span><span class="i-code">0xe976</span></div>
<div title="Code: 0xe96f" class="the-icons span3"><i class="vtk-icon-stop-outline"></i> <span class="i-name">vtk-icon-stop-outline</span><span class="i-code">0xe96f</span></div>
<div title="Code: 0xe970" class="the-icons span3"><i class="vtk-icon-stop-2"></i> <span class="i-name">vtk-icon-stop-2</span><span class="i-code">0xe970</span></div>
<div title="Code: 0xe95f" class="the-icons span3"><i class="vtk-icon-star-2"></i> <span class="i-name">vtk-icon-star-2</span><span class="i-code">0xe95f</span></div>
</div>
<div class="row">
<div title="Code: 0xe95e" class="the-icons span3"><i class="vtk-icon-star-filled"></i> <span class="i-name">vtk-icon-star-filled</span><span class="i-code">0xe95e</span></div>
<div title="Code: 0xe959" class="the-icons span3"><i class="vtk-icon-user-add-outline"></i> <span class="i-name">vtk-icon-user-add-outline</span><span class="i-code">0xe959</span></div>
<div title="Code: 0xe958" class="the-icons span3"><i class="vtk-icon-user-add-1"></i> <span class="i-name">vtk-icon-user-add-1</span><span class="i-code">0xe958</span></div>
<div title="Code: 0xe957" class="the-icons span3"><i class="vtk-icon-user-delete"></i> <span class="i-name">vtk-icon-user-delete</span><span class="i-code">0xe957</span></div>
</div>
<div class="row">
<div title="Code: 0xe95c" class="the-icons span3"><i class="vtk-icon-user-outline"></i> <span class="i-name">vtk-icon-user-outline</span><span class="i-code">0xe95c</span></div>
<div title="Code: 0xe95d" class="the-icons span3"><i class="vtk-icon-user-2"></i> <span class="i-name">vtk-icon-user-2</span><span class="i-code">0xe95d</span></div>
<div title="Code: 0xe92f" class="the-icons span3"><i class="vtk-icon-left-bold"></i> <span class="i-name">vtk-icon-left-bold</span><span class="i-code">0xe92f</span></div>
<div title="Code: 0xe930" class="the-icons span3"><i class="vtk-icon-right-bold"></i> <span class="i-name">vtk-icon-right-bold</span><span class="i-code">0xe930</span></div>
</div>
<div class="row">
<div title="Code: 0xe931" class="the-icons span3"><i class="vtk-icon-up-bold"></i> <span class="i-name">vtk-icon-up-bold</span><span class="i-code">0xe931</span></div>
<div title="Code: 0xe92e" class="the-icons span3"><i class="vtk-icon-down-bold"></i> <span class="i-name">vtk-icon-down-bold</span><span class="i-code">0xe92e</span></div>
<div title="Code: 0xe8df" class="the-icons span3"><i class="vtk-icon-user-add"></i> <span class="i-name">vtk-icon-user-add</span><span class="i-code">0xe8df</span></div>
<div title="Code: 0xe80c" class="the-icons span3"><i class="vtk-icon-star-half"></i> <span class="i-name">vtk-icon-star-half</span><span class="i-code">0xe80c</span></div>
</div>
<div class="row">
<div title="Code: 0xe819" class="the-icons span3"><i class="vtk-icon-ok-circled2"></i> <span class="i-name">vtk-icon-ok-circled2</span><span class="i-code">0xe819</span></div>
<div title="Code: 0xe8f2" class="the-icons span3"><i class="vtk-icon-help-circled-1"></i> <span class="i-name">vtk-icon-help-circled-1</span><span class="i-code">0xe8f2</span></div>
<div title="Code: 0xe836" class="the-icons span3"><i class="vtk-icon-help-circled"></i> <span class="i-name">vtk-icon-help-circled</span><span class="i-code">0xe836</span></div>
<div title="Code: 0xe835" class="the-icons span3"><i class="vtk-icon-info-circled"></i> <span class="i-name">vtk-icon-info-circled</span><span class="i-code">0xe835</span></div>
</div>
<div class="row">
<div title="Code: 0xe8f0" class="the-icons span3"><i class="vtk-icon-info-circled-1"></i> <span class="i-name">vtk-icon-info-circled-1</span><span class="i-code">0xe8f0</span></div>
<div title="Code: 0xe814" class="the-icons span3"><i class="vtk-icon-th-large"></i> <span class="i-name">vtk-icon-th-large</span><span class="i-code">0xe814</span></div>
<div title="Code: 0xe82b" class="the-icons span3"><i class="vtk-icon-eye"></i> <span class="i-name">vtk-icon-eye</span><span class="i-code">0xe82b</span></div>
<div title="Code: 0xe8ec" class="the-icons span3"><i class="vtk-icon-eye-1"></i> <span class="i-name">vtk-icon-eye-1</span><span class="i-code">0xe8ec</span></div>
</div>
<div class="row">
<div title="Code: 0xe82a" class="the-icons span3"><i class="vtk-icon-eye-off"></i> <span class="i-name">vtk-icon-eye-off</span><span class="i-code">0xe82a</span></div>
<div title="Code: 0xe829" class="the-icons span3"><i class="vtk-icon-tag"></i> <span class="i-name">vtk-icon-tag</span><span class="i-code">0xe829</span></div>
<div title="Code: 0xe828" class="the-icons span3"><i class="vtk-icon-tags"></i> <span class="i-name">vtk-icon-tags</span><span class="i-code">0xe828</span></div>
<div title="Code: 0xe813" class="the-icons span3"><i class="vtk-icon-camera-alt"></i> <span class="i-name">vtk-icon-camera-alt</span><span class="i-code">0xe813</span></div>
</div>
<div class="row">
<div title="Code: 0xe8ff" class="the-icons span3"><i class="vtk-icon-upload-cloud-1"></i> <span class="i-name">vtk-icon-upload-cloud-1</span><span class="i-code">0xe8ff</span></div>
<div title="Code: 0xe901" class="the-icons span3"><i class="vtk-icon-export-1"></i> <span class="i-name">vtk-icon-export-1</span><span class="i-code">0xe901</span></div>
<div title="Code: 0xe83e" class="the-icons span3"><i class="vtk-icon-export"></i> <span class="i-name">vtk-icon-export</span><span class="i-code">0xe83e</span></div>
<div title="Code: 0xe852" class="the-icons span3"><i class="vtk-icon-print"></i> <span class="i-name">vtk-icon-print</span><span class="i-code">0xe852</span></div>
</div>
<div class="row">
<div title="Code: 0xe851" class="the-icons span3"><i class="vtk-icon-retweet"></i> <span class="i-name">vtk-icon-retweet</span><span class="i-code">0xe851</span></div>
<div title="Code: 0xe902" class="the-icons span3"><i class="vtk-icon-retweet-1"></i> <span class="i-name">vtk-icon-retweet-1</span><span class="i-code">0xe902</span></div>
<div title="Code: 0xe84e" class="the-icons span3"><i class="vtk-icon-comment"></i> <span class="i-name">vtk-icon-comment</span><span class="i-code">0xe84e</span></div>
<div title="Code: 0xe847" class="the-icons span3"><i class="vtk-icon-location"></i> <span class="i-name">vtk-icon-location</span><span class="i-code">0xe847</span></div>
</div>
<div class="row">
<div title="Code: 0xe844" class="the-icons span3"><i class="vtk-icon-trash"></i> <span class="i-name">vtk-icon-trash</span><span class="i-code">0xe844</span></div>
<div title="Code: 0xe905" class="the-icons span3"><i class="vtk-icon-docs-1"></i> <span class="i-name">vtk-icon-docs-1</span><span class="i-code">0xe905</span></div>
<div title="Code: 0xe909" class="the-icons span3"><i class="vtk-icon-archive"></i> <span class="i-name">vtk-icon-archive</span><span class="i-code">0xe909</span></div>
<div title="Code: 0xe862" class="the-icons span3"><i class="vtk-icon-login"></i> <span class="i-name">vtk-icon-login</span><span class="i-code">0xe862</span></div>
</div>
<div class="row">
<div title="Code: 0xe90c" class="the-icons span3"><i class="vtk-icon-login-1"></i> <span class="i-name">vtk-icon-login-1</span><span class="i-code">0xe90c</span></div>
<div title="Code: 0xe867" class="the-icons span3"><i class="vtk-icon-logout"></i> <span class="i-name">vtk-icon-logout</span><span class="i-code">0xe867</span></div>
<div title="Code: 0xe90d" class="the-icons span3"><i class="vtk-icon-logout-1"></i> <span class="i-name">vtk-icon-logout-1</span><span class="i-code">0xe90d</span></div>
<div title="Code: 0xe91c" class="the-icons span3"><i class="vtk-icon-resize-full-1"></i> <span class="i-name">vtk-icon-resize-full-1</span><span class="i-code">0xe91c</span></div>
</div>
<div class="row">
<div title="Code: 0xe979" class="the-icons span3"><i class="vtk-icon-resize-full-2"></i> <span class="i-name">vtk-icon-resize-full-2</span><span class="i-code">0xe979</span></div>
<div title="Code: 0xe86b" class="the-icons span3"><i class="vtk-icon-resize-full"></i> <span class="i-name">vtk-icon-resize-full</span><span class="i-code">0xe86b</span></div>
<div title="Code: 0xe97a" class="the-icons span3"><i class="vtk-icon-resize-full-alt-1"></i> <span class="i-name">vtk-icon-resize-full-alt-1</span><span class="i-code">0xe97a</span></div>
<div title="Code: 0xe97b" class="the-icons span3"><i class="vtk-icon-resize-small-2"></i> <span class="i-name">vtk-icon-resize-small-2</span><span class="i-code">0xe97b</span></div>
</div>
<div class="row">
<div title="Code: 0xe91b" class="the-icons span3"><i class="vtk-icon-resize-small-1"></i> <span class="i-name">vtk-icon-resize-small-1</span><span class="i-code">0xe91b</span></div>
<div title="Code: 0xe86d" class="the-icons span3"><i class="vtk-icon-resize-small"></i> <span class="i-name">vtk-icon-resize-small</span><span class="i-code">0xe86d</span></div>
<div title="Code: 0xe97c" class="the-icons span3"><i class="vtk-icon-resize-small-alt"></i> <span class="i-name">vtk-icon-resize-small-alt</span><span class="i-code">0xe97c</span></div>
<div title="Code: 0xe97e" class="the-icons span3"><i class="vtk-icon-move-1"></i> <span class="i-name">vtk-icon-move-1</span><span class="i-code">0xe97e</span></div>
</div>
<div class="row">
<div title="Code: 0xe91a" class="the-icons span3"><i class="vtk-icon-publish"></i> <span class="i-name">vtk-icon-publish</span><span class="i-code">0xe91a</span></div>
<div title="Code: 0xe919" class="the-icons span3"><i class="vtk-icon-arrow-combo"></i> <span class="i-name">vtk-icon-arrow-combo</span><span class="i-code">0xe919</span></div>
<div title="Code: 0xe866" class="the-icons span3"><i class="vtk-icon-zoom-in"></i> <span class="i-name">vtk-icon-zoom-in</span><span class="i-code">0xe866</span></div>
<div title="Code: 0xe949" class="the-icons span3"><i class="vtk-icon-chart-pie"></i> <span class="i-name">vtk-icon-chart-pie</span><span class="i-code">0xe949</span></div>
</div>
<div class="row">
<div title="Code: 0xe865" class="the-icons span3"><i class="vtk-icon-zoom-out"></i> <span class="i-name">vtk-icon-zoom-out</span><span class="i-code">0xe865</span></div>
<div title="Code: 0xe94e" class="the-icons span3"><i class="vtk-icon-database"></i> <span class="i-name">vtk-icon-database</span><span class="i-code">0xe94e</span></div>
<div title="Code: 0xe94f" class="the-icons span3"><i class="vtk-icon-drive"></i> <span class="i-name">vtk-icon-drive</span><span class="i-code">0xe94f</span></div>
<div title="Code: 0xe918" class="the-icons span3"><i class="vtk-icon-down-circled-1"></i> <span class="i-name">vtk-icon-down-circled-1</span><span class="i-code">0xe918</span></div>
</div>
<div class="row">
<div title="Code: 0xe864" class="the-icons span3"><i class="vtk-icon-down-circled2"></i> <span class="i-name">vtk-icon-down-circled2</span><span class="i-code">0xe864</span></div>
<div title="Code: 0xe917" class="the-icons span3"><i class="vtk-icon-left-circled-1"></i> <span class="i-name">vtk-icon-left-circled-1</span><span class="i-code">0xe917</span></div>
<div title="Code: 0xe916" class="the-icons span3"><i class="vtk-icon-right-circled-1"></i> <span class="i-name">vtk-icon-right-circled-1</span><span class="i-code">0xe916</span></div>
<div title="Code: 0xe915" class="the-icons span3"><i class="vtk-icon-up-circled-1"></i> <span class="i-name">vtk-icon-up-circled-1</span><span class="i-code">0xe915</span></div>
</div>
<div class="row">
<div title="Code: 0xe863" class="the-icons span3"><i class="vtk-icon-up-circled2"></i> <span class="i-name">vtk-icon-up-circled2</span><span class="i-code">0xe863</span></div>
<div title="Code: 0xe913" class="the-icons span3"><i class="vtk-icon-down-open-1"></i> <span class="i-name">vtk-icon-down-open-1</span><span class="i-code">0xe913</span></div>
<div title="Code: 0xe87b" class="the-icons span3"><i class="vtk-icon-down-open"></i> <span class="i-name">vtk-icon-down-open</span><span class="i-code">0xe87b</span></div>
<div title="Code: 0xe912" class="the-icons span3"><i class="vtk-icon-left-open-1"></i> <span class="i-name">vtk-icon-left-open-1</span><span class="i-code">0xe912</span></div>
</div>
<div class="row">
<div title="Code: 0xe87a" class="the-icons span3"><i class="vtk-icon-left-open"></i> <span class="i-name">vtk-icon-left-open</span><span class="i-code">0xe87a</span></div>
<div title="Code: 0xe879" class="the-icons span3"><i class="vtk-icon-right-open"></i> <span class="i-name">vtk-icon-right-open</span><span class="i-code">0xe879</span></div>
<div title="Code: 0xe914" class="the-icons span3"><i class="vtk-icon-right-open-1"></i> <span class="i-name">vtk-icon-right-open-1</span><span class="i-code">0xe914</span></div>
<div title="Code: 0xe911" class="the-icons span3"><i class="vtk-icon-up-open-1"></i> <span class="i-name">vtk-icon-up-open-1</span><span class="i-code">0xe911</span></div>
</div>
<div class="row">
<div title="Code: 0xe878" class="the-icons span3"><i class="vtk-icon-up-open"></i> <span class="i-name">vtk-icon-up-open</span><span class="i-code">0xe878</span></div>
<div title="Code: 0xe910" class="the-icons span3"><i class="vtk-icon-down-open-mini"></i> <span class="i-name">vtk-icon-down-open-mini</span><span class="i-code">0xe910</span></div>
<div title="Code: 0xe88a" class="the-icons span3"><i class="vtk-icon-arrows-cw"></i> <span class="i-name">vtk-icon-arrows-cw</span><span class="i-code">0xe88a</span></div>
<div title="Code: 0xe91f" class="the-icons span3"><i class="vtk-icon-left-open-mini"></i> <span class="i-name">vtk-icon-left-open-mini</span><span class="i-code">0xe91f</span></div>
</div>
<div class="row">
<div title="Code: 0xe893" class="the-icons span3"><i class="vtk-icon-play-circled2"></i> <span class="i-name">vtk-icon-play-circled2</span><span class="i-code">0xe893</span></div>
<div title="Code: 0xe88f" class="the-icons span3"><i class="vtk-icon-to-end-alt"></i> <span class="i-name">vtk-icon-to-end-alt</span><span class="i-code">0xe88f</span></div>
<div title="Code: 0xe920" class="the-icons span3"><i class="vtk-icon-right-open-mini"></i> <span class="i-name">vtk-icon-right-open-mini</span><span class="i-code">0xe920</span></div>
<div title="Code: 0xe88d" class="the-icons span3"><i class="vtk-icon-to-start-alt"></i> <span class="i-name">vtk-icon-to-start-alt</span><span class="i-code">0xe88d</span></div>
</div>
<div class="row">
<div title="Code: 0xe921" class="the-icons span3"><i class="vtk-icon-up-open-mini"></i> <span class="i-name">vtk-icon-up-open-mini</span><span class="i-code">0xe921</span></div>
<div title="Code: 0xe922" class="the-icons span3"><i class="vtk-icon-down-open-big"></i> <span class="i-name">vtk-icon-down-open-big</span><span class="i-code">0xe922</span></div>
<div title="Code: 0xe923" class="the-icons span3"><i class="vtk-icon-left-open-big"></i> <span class="i-name">vtk-icon-left-open-big</span><span class="i-code">0xe923</span></div>
<div title="Code: 0xe925" class="the-icons span3"><i class="vtk-icon-right-open-big"></i> <span class="i-name">vtk-icon-right-open-big</span><span class="i-code">0xe925</span></div>
</div>
<div class="row">
<div title="Code: 0xe924" class="the-icons span3"><i class="vtk-icon-up-open-big"></i> <span class="i-name">vtk-icon-up-open-big</span><span class="i-code">0xe924</span></div>
<div title="Code: 0xe943" class="the-icons span3"><i class="vtk-icon-back-in-time"></i> <span class="i-name">vtk-icon-back-in-time</span><span class="i-code">0xe943</span></div>
<div title="Code: 0xe8a2" class="the-icons span3"><i class="vtk-icon-font"></i> <span class="i-name">vtk-icon-font</span><span class="i-code">0xe8a2</span></div>
<div title="Code: 0xe8a3" class="the-icons span3"><i class="vtk-icon-bold"></i> <span class="i-name">vtk-icon-bold</span><span class="i-code">0xe8a3</span></div>
</div>
<div class="row">
<div title="Code: 0xe8a4" class="the-icons span3"><i class="vtk-icon-italic"></i> <span class="i-name">vtk-icon-italic</span><span class="i-code">0xe8a4</span></div>
<div title="Code: 0xe8a5" class="the-icons span3"><i class="vtk-icon-text-height"></i> <span class="i-name">vtk-icon-text-height</span><span class="i-code">0xe8a5</span></div>
<div title="Code: 0xe8a6" class="the-icons span3"><i class="vtk-icon-text-width"></i> <span class="i-name">vtk-icon-text-width</span><span class="i-code">0xe8a6</span></div>
<div title="Code: 0xe8ba" class="the-icons span3"><i class="vtk-icon-align-left"></i> <span class="i-name">vtk-icon-align-left</span><span class="i-code">0xe8ba</span></div>
</div>
<div class="row">
<div title="Code: 0xe8b9" class="the-icons span3"><i class="vtk-icon-align-center"></i> <span class="i-name">vtk-icon-align-center</span><span class="i-code">0xe8b9</span></div>
<div title="Code: 0xe8b8" class="the-icons span3"><i class="vtk-icon-align-right"></i> <span class="i-name">vtk-icon-align-right</span><span class="i-code">0xe8b8</span></div>
<div title="Code: 0xe8b7" class="the-icons span3"><i class="vtk-icon-align-justify"></i> <span class="i-name">vtk-icon-align-justify</span><span class="i-code">0xe8b7</span></div>
<div title="Code: 0xe8b6" class="the-icons span3"><i class="vtk-icon-list"></i> <span class="i-name">vtk-icon-list</span><span class="i-code">0xe8b6</span></div>
</div>
<div class="row">
<div title="Code: 0xe8b5" class="the-icons span3"><i class="vtk-icon-indent-left"></i> <span class="i-name">vtk-icon-indent-left</span><span class="i-code">0xe8b5</span></div>
<div title="Code: 0xe8b4" class="the-icons span3"><i class="vtk-icon-indent-right"></i> <span class="i-name">vtk-icon-indent-right</span><span class="i-code">0xe8b4</span></div>
<div title="Code: 0xe94c" class="the-icons span3"><i class="vtk-icon-dot"></i> <span class="i-name">vtk-icon-dot</span><span class="i-code">0xe94c</span></div>
<div title="Code: 0xe94b" class="the-icons span3"><i class="vtk-icon-dot-2"></i> <span class="i-name">vtk-icon-dot-2</span><span class="i-code">0xe94b</span></div>
</div>
<div class="row">
<div title="Code: 0xe94a" class="the-icons span3"><i class="vtk-icon-dot-3"></i> <span class="i-name">vtk-icon-dot-3</span><span class="i-code">0xe94a</span></div>
<div title="Code: 0xe8bb" class="the-icons span3"><i class="vtk-icon-off"></i> <span class="i-name">vtk-icon-off</span><span class="i-code">0xe8bb</span></div>
<div title="Code: 0xe8bc" class="the-icons span3"><i class="vtk-icon-list-alt"></i> <span class="i-name">vtk-icon-list-alt</span><span class="i-code">0xe8bc</span></div>
<div title="Code: 0xe951" class="the-icons span3"><i class="vtk-icon-flow-cascade"></i> <span class="i-name">vtk-icon-flow-cascade</span><span class="i-code">0xe951</span></div>
</div>
<div class="row">
<div title="Code: 0xe952" class="the-icons span3"><i class="vtk-icon-flow-branch"></i> <span class="i-name">vtk-icon-flow-branch</span><span class="i-code">0xe952</span></div>
<div title="Code: 0xe953" class="the-icons span3"><i class="vtk-icon-flow-tree"></i> <span class="i-name">vtk-icon-flow-tree</span><span class="i-code">0xe953</span></div>
<div title="Code: 0xe954" class="the-icons span3"><i class="vtk-icon-flow-line"></i> <span class="i-name">vtk-icon-flow-line</span><span class="i-code">0xe954</span></div>
<div title="Code: 0xe8bd" class="the-icons span3"><i class="vtk-icon-ajust"></i> <span class="i-name">vtk-icon-ajust</span><span class="i-code">0xe8bd</span></div>
</div>
<div class="row">
<div title="Code: 0xe955" class="the-icons span3"><i class="vtk-icon-flow-parallel"></i> <span class="i-name">vtk-icon-flow-parallel</span><span class="i-code">0xe955</span></div>
<div title="Code: 0xe8be" class="the-icons span3"><i class="vtk-icon-tint"></i> <span class="i-name">vtk-icon-tint</span><span class="i-code">0xe8be</span></div>
<div title="Code: 0xe956" class="the-icons span3"><i class="vtk-icon-gauge-1"></i> <span class="i-name">vtk-icon-gauge-1</span><span class="i-code">0xe956</span></div>
<div title="Code: 0xe801" class="the-icons span3"><i class="vtk-icon-spin1 animate-spin"></i> <span class="i-name">vtk-icon-spin1</span><span class="i-code">0xe801</span></div>
</div>
<div class="row">
<div title="Code: 0xe802" class="the-icons span3"><i class="vtk-icon-spin2 animate-spin"></i> <span class="i-name">vtk-icon-spin2</span><span class="i-code">0xe802</span></div>
<div title="Code: 0xe803" class="the-icons span3"><i class="vtk-icon-spin3 animate-spin"></i> <span class="i-name">vtk-icon-spin3</span><span class="i-code">0xe803</span></div>
<div title="Code: 0xe800" class="the-icons span3"><i class="vtk-icon-spin4 animate-spin"></i> <span class="i-name">vtk-icon-spin4</span><span class="i-code">0xe800</span></div>
<div title="Code: 0xe804" class="the-icons span3"><i class="vtk-icon-spin5 animate-spin"></i> <span class="i-name">vtk-icon-spin5</span><span class="i-code">0xe804</span></div>
</div>
<div class="row">
<div title="Code: 0xe805" class="the-icons span3"><i class="vtk-icon-spin6 animate-spin"></i> <span class="i-name">vtk-icon-spin6</span><span class="i-code">0xe805</span></div>
<div title="Code: 0xe86f" class="the-icons span3"><i class="vtk-icon-move"></i> <span class="i-name">vtk-icon-move</span><span class="i-code">0xe86f</span></div>
<div title="Code: 0xe832" class="the-icons span3"><i class="vtk-icon-link-ext"></i> <span class="i-name">vtk-icon-link-ext</span><span class="i-code">0xe832</span></div>
<div title="Code: 0xe8c0" class="the-icons span3"><i class="vtk-icon-check-empty"></i> <span class="i-name">vtk-icon-check-empty</span><span class="i-code">0xe8c0</span></div>
</div>
<div class="row">
<div title="Code: 0xe826" class="the-icons span3"><i class="vtk-icon-bookmark-empty"></i> <span class="i-name">vtk-icon-bookmark-empty</span><span class="i-code">0xe826</span></div>
<div title="Code: 0xe8ce" class="the-icons span3"><i class="vtk-icon-hdd"></i> <span class="i-name">vtk-icon-hdd</span><span class="i-code">0xe8ce</span></div>
<div title="Code: 0xe8cb" class="the-icons span3"><i class="vtk-icon-certificate"></i> <span class="i-name">vtk-icon-certificate</span><span class="i-code">0xe8cb</span></div>
<div title="Code: 0xe884" class="the-icons span3"><i class="vtk-icon-left-circled"></i> <span class="i-name">vtk-icon-left-circled</span><span class="i-code">0xe884</span></div>
</div>
<div class="row">
<div title="Code: 0xe885" class="the-icons span3"><i class="vtk-icon-right-circled"></i> <span class="i-name">vtk-icon-right-circled</span><span class="i-code">0xe885</span></div>
<div title="Code: 0xe886" class="the-icons span3"><i class="vtk-icon-up-circled"></i> <span class="i-name">vtk-icon-up-circled</span><span class="i-code">0xe886</span></div>
<div title="Code: 0xe887" class="the-icons span3"><i class="vtk-icon-down-circled"></i> <span class="i-name">vtk-icon-down-circled</span><span class="i-code">0xe887</span></div>
<div title="Code: 0xe8ca" class="the-icons span3"><i class="vtk-icon-tasks"></i> <span class="i-name">vtk-icon-tasks</span><span class="i-code">0xe8ca</span></div>
</div>
<div class="row">
<div title="Code: 0xe8c8" class="the-icons span3"><i class="vtk-icon-filter"></i> <span class="i-name">vtk-icon-filter</span><span class="i-code">0xe8c8</span></div>
<div title="Code: 0xe86c" class="the-icons span3"><i class="vtk-icon-resize-full-alt"></i> <span class="i-name">vtk-icon-resize-full-alt</span><span class="i-code">0xe86c</span></div>
<div title="Code: 0xe8c9" class="the-icons span3"><i class="vtk-icon-beaker"></i> <span class="i-name">vtk-icon-beaker</span><span class="i-code">0xe8c9</span></div>
<div title="Code: 0xe842" class="the-icons span3"><i class="vtk-icon-docs"></i> <span class="i-name">vtk-icon-docs</span><span class="i-code">0xe842</span></div>
</div>
<div class="row">
<div title="Code: 0xe85c" class="the-icons span3"><i class="vtk-icon-menu"></i> <span class="i-name">vtk-icon-menu</span><span class="i-code">0xe85c</span></div>
<div title="Code: 0xe8b3" class="the-icons span3"><i class="vtk-icon-list-bullet"></i> <span class="i-name">vtk-icon-list-bullet</span><span class="i-code">0xe8b3</span></div>
<div title="Code: 0xe8b2" class="the-icons span3"><i class="vtk-icon-list-numbered"></i> <span class="i-name">vtk-icon-list-numbered</span><span class="i-code">0xe8b2</span></div>
<div title="Code: 0xe8b1" class="the-icons span3"><i class="vtk-icon-strike"></i> <span class="i-name">vtk-icon-strike</span><span class="i-code">0xe8b1</span></div>
</div>
<div class="row">
<div title="Code: 0xe8b0" class="the-icons span3"><i class="vtk-icon-underline"></i> <span class="i-name">vtk-icon-underline</span><span class="i-code">0xe8b0</span></div>
<div title="Code: 0xe8ad" class="the-icons span3"><i class="vtk-icon-table"></i> <span class="i-name">vtk-icon-table</span><span class="i-code">0xe8ad</span></div>
<div title="Code: 0xe8c7" class="the-icons span3"><i class="vtk-icon-magic"></i> <span class="i-name">vtk-icon-magic</span><span class="i-code">0xe8c7</span></div>
<div title="Code: 0xe8ac" class="the-icons span3"><i class="vtk-icon-columns"></i> <span class="i-name">vtk-icon-columns</span><span class="i-code">0xe8ac</span></div>
</div>
<div class="row">
<div title="Code: 0xe8d1" class="the-icons span3"><i class="vtk-icon-sort"></i> <span class="i-name">vtk-icon-sort</span><span class="i-code">0xe8d1</span></div>
<div title="Code: 0xe8d2" class="the-icons span3"><i class="vtk-icon-sort-down"></i> <span class="i-name">vtk-icon-sort-down</span><span class="i-code">0xe8d2</span></div>
<div title="Code: 0xe8d3" class="the-icons span3"><i class="vtk-icon-sort-up"></i> <span class="i-name">vtk-icon-sort-up</span><span class="i-code">0xe8d3</span></div>
<div title="Code: 0xe8da" class="the-icons span3"><i class="vtk-icon-gauge"></i> <span class="i-name">vtk-icon-gauge</span><span class="i-code">0xe8da</span></div>
</div>
<div class="row">
<div title="Code: 0xe84d" class="the-icons span3"><i class="vtk-icon-comment-empty"></i> <span class="i-name">vtk-icon-comment-empty</span><span class="i-code">0xe84d</span></div>
<div title="Code: 0xe8db" class="the-icons span3"><i class="vtk-icon-sitemap"></i> <span class="i-name">vtk-icon-sitemap</span><span class="i-code">0xe8db</span></div>
<div title="Code: 0xe8a9" class="the-icons span3"><i class="vtk-icon-paste"></i> <span class="i-name">vtk-icon-paste</span><span class="i-code">0xe8a9</span></div>
<div title="Code: 0xe869" class="the-icons span3"><i class="vtk-icon-lightbulb"></i> <span class="i-name">vtk-icon-lightbulb</span><span class="i-code">0xe869</span></div>
</div>
<div class="row">
<div title="Code: 0xe899" class="the-icons span3"><i class="vtk-icon-exchange"></i> <span class="i-name">vtk-icon-exchange</span><span class="i-code">0xe899</span></div>
<div title="Code: 0xe839" class="the-icons span3"><i class="vtk-icon-download-cloud"></i> <span class="i-name">vtk-icon-download-cloud</span><span class="i-code">0xe839</span></div>
<div title="Code: 0xe83a" class="the-icons span3"><i class="vtk-icon-upload-cloud"></i> <span class="i-name">vtk-icon-upload-cloud</span><span class="i-code">0xe83a</span></div>
<div title="Code: 0xe8a7" class="the-icons span3"><i class="vtk-icon-suitcase"></i> <span class="i-name">vtk-icon-suitcase</span><span class="i-code">0xe8a7</span></div>
</div>
<div class="row">
<div title="Code: 0xe84b" class="the-icons span3"><i class="vtk-icon-bell-alt"></i> <span class="i-name">vtk-icon-bell-alt</span><span class="i-code">0xe84b</span></div>
<div title="Code: 0xe854" class="the-icons span3"><i class="vtk-icon-doc-text"></i> <span class="i-name">vtk-icon-doc-text</span><span class="i-code">0xe854</span></div>
<div title="Code: 0xe81e" class="the-icons span3"><i class="vtk-icon-plus-squared"></i> <span class="i-name">vtk-icon-plus-squared</span><span class="i-code">0xe81e</span></div>
<div title="Code: 0xe877" class="the-icons span3"><i class="vtk-icon-angle-left"></i> <span class="i-name">vtk-icon-angle-left</span><span class="i-code">0xe877</span></div>
</div>
<div class="row">
<div title="Code: 0xe876" class="the-icons span3"><i class="vtk-icon-angle-up"></i> <span class="i-name">vtk-icon-angle-up</span><span class="i-code">0xe876</span></div>
<div title="Code: 0xe875" class="the-icons span3"><i class="vtk-icon-angle-down"></i> <span class="i-name">vtk-icon-angle-down</span><span class="i-code">0xe875</span></div>
<div title="Code: 0xe89b" class="the-icons span3"><i class="vtk-icon-desktop"></i> <span class="i-name">vtk-icon-desktop</span><span class="i-code">0xe89b</span></div>
<div title="Code: 0xe89c" class="the-icons span3"><i class="vtk-icon-laptop"></i> <span class="i-name">vtk-icon-laptop</span><span class="i-code">0xe89c</span></div>
</div>
<div class="row">
<div title="Code: 0xe89d" class="the-icons span3"><i class="vtk-icon-tablet"></i> <span class="i-name">vtk-icon-tablet</span><span class="i-code">0xe89d</span></div>
<div title="Code: 0xe89e" class="the-icons span3"><i class="vtk-icon-mobile"></i> <span class="i-name">vtk-icon-mobile</span><span class="i-code">0xe89e</span></div>
<div title="Code: 0xe8c2" class="the-icons span3"><i class="vtk-icon-circle-empty"></i> <span class="i-name">vtk-icon-circle-empty</span><span class="i-code">0xe8c2</span></div>
<div title="Code: 0xe8dc" class="the-icons span3"><i class="vtk-icon-spinner"></i> <span class="i-name">vtk-icon-spinner</span><span class="i-code">0xe8dc</span></div>
</div>
<div class="row">
<div title="Code: 0xe8c1" class="the-icons span3"><i class="vtk-icon-circle"></i> <span class="i-name">vtk-icon-circle</span><span class="i-code">0xe8c1</span></div>
<div title="Code: 0xe83b" class="the-icons span3"><i class="vtk-icon-reply"></i> <span class="i-name">vtk-icon-reply</span><span class="i-code">0xe83b</span></div>
<div title="Code: 0xe859" class="the-icons span3"><i class="vtk-icon-folder-empty"></i> <span class="i-name">vtk-icon-folder-empty</span><span class="i-code">0xe859</span></div>
<div title="Code: 0xe85a" class="the-icons span3"><i class="vtk-icon-folder-open-empty"></i> <span class="i-name">vtk-icon-folder-open-empty</span><span class="i-code">0xe85a</span></div>
</div>
<div class="row">
<div title="Code: 0xe81f" class="the-icons span3"><i class="vtk-icon-plus-squared-small"></i> <span class="i-name">vtk-icon-plus-squared-small</span><span class="i-code">0xe81f</span></div>
<div title="Code: 0xe824" class="the-icons span3"><i class="vtk-icon-minus-squared-small"></i> <span class="i-name">vtk-icon-minus-squared-small</span><span class="i-code">0xe824</span></div>
<div title="Code: 0xe850" class="the-icons span3"><i class="vtk-icon-gamepad"></i> <span class="i-name">vtk-icon-gamepad</span><span class="i-code">0xe850</span></div>
<div title="Code: 0xe84f" class="the-icons span3"><i class="vtk-icon-keyboard"></i> <span class="i-name">vtk-icon-keyboard</span><span class="i-code">0xe84f</span></div>
</div>
<div class="row">
<div title="Code: 0xe8de" class="the-icons span3"><i class="vtk-icon-terminal"></i> <span class="i-name">vtk-icon-terminal</span><span class="i-code">0xe8de</span></div>
<div title="Code: 0xe841" class="the-icons span3"><i class="vtk-icon-code"></i> <span class="i-name">vtk-icon-code</span><span class="i-code">0xe841</span></div>
<div title="Code: 0xe83c" class="the-icons span3"><i class="vtk-icon-reply-all"></i> <span class="i-name">vtk-icon-reply-all</span><span class="i-code">0xe83c</span></div>
<div title="Code: 0xe80b" class="the-icons span3"><i class="vtk-icon-star-half-alt"></i> <span class="i-name">vtk-icon-star-half-alt</span><span class="i-code">0xe80b</span></div>
</div>
<div class="row">
<div title="Code: 0xe846" class="the-icons span3"><i class="vtk-icon-direction"></i> <span class="i-name">vtk-icon-direction</span><span class="i-code">0xe846</span></div>
<div title="Code: 0xe8ab" class="the-icons span3"><i class="vtk-icon-crop"></i> <span class="i-name">vtk-icon-crop</span><span class="i-code">0xe8ab</span></div>
<div title="Code: 0xe8cd" class="the-icons span3"><i class="vtk-icon-fork"></i> <span class="i-name">vtk-icon-fork</span><span class="i-code">0xe8cd</span></div>
<div title="Code: 0xe825" class="the-icons span3"><i class="vtk-icon-help"></i> <span class="i-name">vtk-icon-help</span><span class="i-code">0xe825</span></div>
</div>
<div class="row">
<div title="Code: 0xe834" class="the-icons span3"><i class="vtk-icon-info"></i> <span class="i-name">vtk-icon-info</span><span class="i-code">0xe834</span></div>
<div title="Code: 0xe84a" class="the-icons span3"><i class="vtk-icon-attention-alt"></i> <span class="i-name">vtk-icon-attention-alt</span><span class="i-code">0xe84a</span></div>
<div title="Code: 0xe8af" class="the-icons span3"><i class="vtk-icon-superscript"></i> <span class="i-name">vtk-icon-superscript</span><span class="i-code">0xe8af</span></div>
<div title="Code: 0xe8ae" class="the-icons span3"><i class="vtk-icon-subscript"></i> <span class="i-name">vtk-icon-subscript</span><span class="i-code">0xe8ae</span></div>
</div>
<div class="row">
<div title="Code: 0xe8dd" class="the-icons span3"><i class="vtk-icon-eraser"></i> <span class="i-name">vtk-icon-eraser</span><span class="i-code">0xe8dd</span></div>
<div title="Code: 0xe861" class="the-icons span3"><i class="vtk-icon-calendar-empty"></i> <span class="i-name">vtk-icon-calendar-empty</span><span class="i-code">0xe861</span></div>
<div title="Code: 0xe874" class="the-icons span3"><i class="vtk-icon-angle-circled-left"></i> <span class="i-name">vtk-icon-angle-circled-left</span><span class="i-code">0xe874</span></div>
<div title="Code: 0xe873" class="the-icons span3"><i class="vtk-icon-angle-circled-right"></i> <span class="i-name">vtk-icon-angle-circled-right</span><span class="i-code">0xe873</span></div>
</div>
<div class="row">
<div title="Code: 0xe872" class="the-icons span3"><i class="vtk-icon-angle-circled-up"></i> <span class="i-name">vtk-icon-angle-circled-up</span><span class="i-code">0xe872</span></div>
<div title="Code: 0xe871" class="the-icons span3"><i class="vtk-icon-angle-circled-down"></i> <span class="i-name">vtk-icon-angle-circled-down</span><span class="i-code">0xe871</span></div>
<div title="Code: 0xe82d" class="the-icons span3"><i class="vtk-icon-lock-open-alt"></i> <span class="i-name">vtk-icon-lock-open-alt</span><span class="i-code">0xe82d</span></div>
<div title="Code: 0xe894" class="the-icons span3"><i class="vtk-icon-play-circled"></i> <span class="i-name">vtk-icon-play-circled</span><span class="i-code">0xe894</span></div>
</div>
<div class="row">
<div title="Code: 0xe822" class="the-icons span3"><i class="vtk-icon-minus-squared"></i> <span class="i-name">vtk-icon-minus-squared</span><span class="i-code">0xe822</span></div>
<div title="Code: 0xe823" class="the-icons span3"><i class="vtk-icon-minus-squared-alt"></i> <span class="i-name">vtk-icon-minus-squared-alt</span><span class="i-code">0xe823</span></div>
<div title="Code: 0xe81a" class="the-icons span3"><i class="vtk-icon-ok-squared"></i> <span class="i-name">vtk-icon-ok-squared</span><span class="i-code">0xe81a</span></div>
<div title="Code: 0xe831" class="the-icons span3"><i class="vtk-icon-link-ext-alt"></i> <span class="i-name">vtk-icon-link-ext-alt</span><span class="i-code">0xe831</span></div>
</div>
<div class="row">
<div title="Code: 0xe83f" class="the-icons span3"><i class="vtk-icon-export-alt"></i> <span class="i-name">vtk-icon-export-alt</span><span class="i-code">0xe83f</span></div>
<div title="Code: 0xe845" class="the-icons span3"><i class="vtk-icon-compass"></i> <span class="i-name">vtk-icon-compass</span><span class="i-code">0xe845</span></div>
<div title="Code: 0xe898" class="the-icons span3"><i class="vtk-icon-collapse"></i> <span class="i-name">vtk-icon-collapse</span><span class="i-code">0xe898</span></div>
<div title="Code: 0xe897" class="the-icons span3"><i class="vtk-icon-collapse-top"></i> <span class="i-name">vtk-icon-collapse-top</span><span class="i-code">0xe897</span></div>
</div>
<div class="row">
<div title="Code: 0xe896" class="the-icons span3"><i class="vtk-icon-expand"></i> <span class="i-name">vtk-icon-expand</span><span class="i-code">0xe896</span></div>
<div title="Code: 0xe8c6" class="the-icons span3"><i class="vtk-icon-euro"></i> <span class="i-name">vtk-icon-euro</span><span class="i-code">0xe8c6</span></div>
<div title="Code: 0xe8c5" class="the-icons span3"><i class="vtk-icon-dollar"></i> <span class="i-name">vtk-icon-dollar</span><span class="i-code">0xe8c5</span></div>
<div title="Code: 0xe855" class="the-icons span3"><i class="vtk-icon-doc-inv"></i> <span class="i-name">vtk-icon-doc-inv</span><span class="i-code">0xe855</span></div>
</div>
<div class="row">
<div title="Code: 0xe856" class="the-icons span3"><i class="vtk-icon-doc-text-inv"></i> <span class="i-name">vtk-icon-doc-text-inv</span><span class="i-code">0xe856</span></div>
<div title="Code: 0xe8d6" class="the-icons span3"><i class="vtk-icon-sort-name-up"></i> <span class="i-name">vtk-icon-sort-name-up</span><span class="i-code">0xe8d6</span></div>
<div title="Code: 0xe8d7" class="the-icons span3"><i class="vtk-icon-sort-name-down"></i> <span class="i-name">vtk-icon-sort-name-down</span><span class="i-code">0xe8d7</span></div>
<div title="Code: 0xe8d4" class="the-icons span3"><i class="vtk-icon-sort-alt-up"></i> <span class="i-name">vtk-icon-sort-alt-up</span><span class="i-code">0xe8d4</span></div>
</div>
<div class="row">
<div title="Code: 0xe8d5" class="the-icons span3"><i class="vtk-icon-sort-alt-down"></i> <span class="i-name">vtk-icon-sort-alt-down</span><span class="i-code">0xe8d5</span></div>
<div title="Code: 0xe8d8" class="the-icons span3"><i class="vtk-icon-sort-number-up"></i> <span class="i-name">vtk-icon-sort-number-up</span><span class="i-code">0xe8d8</span></div>
<div title="Code: 0xe8d9" class="the-icons span3"><i class="vtk-icon-sort-number-down"></i> <span class="i-name">vtk-icon-sort-number-down</span><span class="i-code">0xe8d9</span></div>
<div title="Code: 0xe8a0" class="the-icons span3"><i class="vtk-icon-sun"></i> <span class="i-name">vtk-icon-sun</span><span class="i-code">0xe8a0</span></div>
</div>
<div class="row">
<div title="Code: 0xe85b" class="the-icons span3"><i class="vtk-icon-box"></i> <span class="i-name">vtk-icon-box</span><span class="i-code">0xe85b</span></div>
<div title="Code: 0xe8cc" class="the-icons span3"><i class="vtk-icon-bug"></i> <span class="i-name">vtk-icon-bug</span><span class="i-code">0xe8cc</span></div>
<div title="Code: 0xe8e7" class="the-icons span3"><i class="vtk-icon-picture-1"></i> <span class="i-name">vtk-icon-picture-1</span><span class="i-code">0xe8e7</span></div>
<div title="Code: 0xe811" class="the-icons span3"><i class="vtk-icon-picture"></i> <span class="i-name">vtk-icon-picture</span><span class="i-code">0xe811</span></div>
</div>
<div class="row">
<div title="Code: 0xe89f" class="the-icons span3"><i class="vtk-icon-globe"></i> <span class="i-name">vtk-icon-globe</span><span class="i-code">0xe89f</span></div>
<div title="Code: 0xe810" class="the-icons span3"><i class="vtk-icon-videocam"></i> <span class="i-name">vtk-icon-videocam</span><span class="i-code">0xe810</span></div>
<div title="Code: 0xe80f" class="the-icons span3"><i class="vtk-icon-video"></i> <span class="i-name">vtk-icon-video</span><span class="i-code">0xe80f</span></div>
<div title="Code: 0xe940" class="the-icons span3"><i class="vtk-icon-target"></i> <span class="i-name">vtk-icon-target</span><span class="i-code">0xe940</span></div>
</div>
<div class="row">
<div title="Code: 0xe8e5" class="the-icons span3"><i class="vtk-icon-user-1"></i> <span class="i-name">vtk-icon-user-1</span><span class="i-code">0xe8e5</span></div>
<div title="Code: 0xe80d" class="the-icons span3"><i class="vtk-icon-user"></i> <span class="i-name">vtk-icon-user</span><span class="i-code">0xe80d</span></div>
<div title="Code: 0xe8e6" class="the-icons span3"><i class="vtk-icon-users-1"></i> <span class="i-name">vtk-icon-users-1</span><span class="i-code">0xe8e6</span></div>
<div title="Code: 0xe80e" class="the-icons span3"><i class="vtk-icon-users"></i> <span class="i-name">vtk-icon-users</span><span class="i-code">0xe80e</span></div>
</div>
<div class="row">
<div title="Code: 0xe91e" class="the-icons span3"><i class="vtk-icon-lamp"></i> <span class="i-name">vtk-icon-lamp</span><span class="i-code">0xe91e</span></div>
<div title="Code: 0xe8d0" class="the-icons span3"><i class="vtk-icon-credit-card"></i> <span class="i-name">vtk-icon-credit-card</span><span class="i-code">0xe8d0</span></div>
<div title="Code: 0xe944" class="the-icons span3"><i class="vtk-icon-monitor"></i> <span class="i-name">vtk-icon-monitor</span><span class="i-code">0xe944</span></div>
<div title="Code: 0xe8a8" class="the-icons span3"><i class="vtk-icon-briefcase"></i> <span class="i-name">vtk-icon-briefcase</span><span class="i-code">0xe8a8</span></div>
</div>
<div class="row">
<div title="Code: 0xe94d" class="the-icons span3"><i class="vtk-icon-floppy-1"></i> <span class="i-name">vtk-icon-floppy-1</span><span class="i-code">0xe94d</span></div>
<div title="Code: 0xe8cf" class="the-icons span3"><i class="vtk-icon-floppy"></i> <span class="i-name">vtk-icon-floppy</span><span class="i-code">0xe8cf</span></div>
<div title="Code: 0xe908" class="the-icons span3"><i class="vtk-icon-folder-1"></i> <span class="i-name">vtk-icon-folder-1</span><span class="i-code">0xe908</span></div>
<div title="Code: 0xe857" class="the-icons span3"><i class="vtk-icon-folder"></i> <span class="i-name">vtk-icon-folder</span><span class="i-code">0xe857</span></div>
</div>
<div class="row">
<div title="Code: 0xe858" class="the-icons span3"><i class="vtk-icon-folder-open"></i> <span class="i-name">vtk-icon-folder-open</span><span class="i-code">0xe858</span></div>
<div title="Code: 0xe843" class="the-icons span3"><i class="vtk-icon-doc"></i> <span class="i-name">vtk-icon-doc</span><span class="i-code">0xe843</span></div>
<div title="Code: 0xe860" class="the-icons span3"><i class="vtk-icon-calendar"></i> <span class="i-name">vtk-icon-calendar</span><span class="i-code">0xe860</span></div>
<div title="Code: 0xe947" class="the-icons span3"><i class="vtk-icon-chart-line"></i> <span class="i-name">vtk-icon-chart-line</span><span class="i-code">0xe947</span></div>
</div>
<div class="row">
<div title="Code: 0xe8c4" class="the-icons span3"><i class="vtk-icon-chart-bar"></i> <span class="i-name">vtk-icon-chart-bar</span><span class="i-code">0xe8c4</span></div>
<div title="Code: 0xe948" class="the-icons span3"><i class="vtk-icon-chart-bar-1"></i> <span class="i-name">vtk-icon-chart-bar-1</span><span class="i-code">0xe948</span></div>
<div title="Code: 0xe82c" class="the-icons span3"><i class="vtk-icon-pin"></i> <span class="i-name">vtk-icon-pin</span><span class="i-code">0xe82c</span></div>
<div title="Code: 0xe830" class="the-icons span3"><i class="vtk-icon-attach"></i> <span class="i-name">vtk-icon-attach</span><span class="i-code">0xe830</span></div>
</div>
<div class="row">
<div title="Code: 0xe8fd" class="the-icons span3"><i class="vtk-icon-bookmarks"></i> <span class="i-name">vtk-icon-bookmarks</span><span class="i-code">0xe8fd</span></div>
<div title="Code: 0xe904" class="the-icons span3"><i class="vtk-icon-book-open"></i> <span class="i-name">vtk-icon-book-open</span><span class="i-code">0xe904</span></div>
<div title="Code: 0xe838" class="the-icons span3"><i class="vtk-icon-upload"></i> <span class="i-name">vtk-icon-upload</span><span class="i-code">0xe838</span></div>
<div title="Code: 0xe837" class="the-icons span3"><i class="vtk-icon-download"></i> <span class="i-name">vtk-icon-download</span><span class="i-code">0xe837</span></div>
</div>
<div class="row">
<div title="Code: 0xe90a" class="the-icons span3"><i class="vtk-icon-box-1"></i> <span class="i-name">vtk-icon-box-1</span><span class="i-code">0xe90a</span></div>
<div title="Code: 0xe945" class="the-icons span3"><i class="vtk-icon-mobile-1"></i> <span class="i-name">vtk-icon-mobile-1</span><span class="i-code">0xe945</span></div>
<div title="Code: 0xe8e0" class="the-icons span3"><i class="vtk-icon-camera-1"></i> <span class="i-name">vtk-icon-camera-1</span><span class="i-code">0xe8e0</span></div>
<div title="Code: 0xe812" class="the-icons span3"><i class="vtk-icon-camera"></i> <span class="i-name">vtk-icon-camera</span><span class="i-code">0xe812</span></div>
</div>
<div class="row">
<div title="Code: 0xe93c" class="the-icons span3"><i class="vtk-icon-shuffle-1"></i> <span class="i-name">vtk-icon-shuffle-1</span><span class="i-code">0xe93c</span></div>
<div title="Code: 0xe89a" class="the-icons span3"><i class="vtk-icon-shuffle"></i> <span class="i-name">vtk-icon-shuffle</span><span class="i-code">0xe89a</span></div>
<div title="Code: 0xe93b" class="the-icons span3"><i class="vtk-icon-loop"></i> <span class="i-name">vtk-icon-loop</span><span class="i-code">0xe93b</span></div>
<div title="Code: 0xe93d" class="the-icons span3"><i class="vtk-icon-arrows-ccw"></i> <span class="i-name">vtk-icon-arrows-ccw</span><span class="i-code">0xe93d</span></div>
</div>
<div class="row">
<div title="Code: 0xe806" class="the-icons span3"><i class="vtk-icon-search"></i> <span class="i-name">vtk-icon-search</span><span class="i-code">0xe806</span></div>
<div title="Code: 0xe950" class="the-icons span3"><i class="vtk-icon-key"></i> <span class="i-name">vtk-icon-key</span><span class="i-code">0xe950</span></div>
<div title="Code: 0xe82f" class="the-icons span3"><i class="vtk-icon-lock"></i> <span class="i-name">vtk-icon-lock</span><span class="i-code">0xe82f</span></div>
<div title="Code: 0xe8ee" class="the-icons span3"><i class="vtk-icon-lock-1"></i> <span class="i-name">vtk-icon-lock-1</span><span class="i-code">0xe8ee</span></div>
</div>
<div class="row">
<div title="Code: 0xe82e" class="the-icons span3"><i class="vtk-icon-lock-open"></i> <span class="i-name">vtk-icon-lock-open</span><span class="i-code">0xe82e</span></div>
<div title="Code: 0xe8ed" class="the-icons span3"><i class="vtk-icon-lock-open-1"></i> <span class="i-name">vtk-icon-lock-open-1</span><span class="i-code">0xe8ed</span></div>
<div title="Code: 0xe84c" class="the-icons span3"><i class="vtk-icon-bell"></i> <span class="i-name">vtk-icon-bell</span><span class="i-code">0xe84c</span></div>
<div title="Code: 0xe907" class="the-icons span3"><i class="vtk-icon-bell-1"></i> <span class="i-name">vtk-icon-bell-1</span><span class="i-code">0xe907</span></div>
</div>
<div class="row">
<div title="Code: 0xe827" class="the-icons span3"><i class="vtk-icon-bookmark"></i> <span class="i-name">vtk-icon-bookmark</span><span class="i-code">0xe827</span></div>
<div title="Code: 0xe8fc" class="the-icons span3"><i class="vtk-icon-bookmark-1"></i> <span class="i-name">vtk-icon-bookmark-1</span><span class="i-code">0xe8fc</span></div>
<div title="Code: 0xe85f" class="the-icons span3"><i class="vtk-icon-wrench"></i> <span class="i-name">vtk-icon-wrench</span><span class="i-code">0xe85f</span></div>
<div title="Code: 0xe946" class="the-icons span3"><i class="vtk-icon-chart-area"></i> <span class="i-name">vtk-icon-chart-area</span><span class="i-code">0xe946</span></div>
</div>
<div class="row">
<div title="Code: 0xe90e" class="the-icons span3"><i class="vtk-icon-clock-1"></i> <span class="i-name">vtk-icon-clock-1</span><span class="i-code">0xe90e</span></div>
<div title="Code: 0xe868" class="the-icons span3"><i class="vtk-icon-clock"></i> <span class="i-name">vtk-icon-clock</span><span class="i-code">0xe868</span></div>
<div title="Code: 0xe86a" class="the-icons span3"><i class="vtk-icon-block"></i> <span class="i-name">vtk-icon-block</span><span class="i-code">0xe86a</span></div>
<div title="Code: 0xe91d" class="the-icons span3"><i class="vtk-icon-block-1"></i> <span class="i-name">vtk-icon-block-1</span><span class="i-code">0xe91d</span></div>
</div>
</div>
<div class="container footer">Generated by <a href="http://fontello.com">fontello.com</a></div>
</body>
</html>

View File

@ -0,0 +1,395 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Copyright (C) 2012 by original authors @ fontello.com</metadata>
<defs>
<font id="fontello" horiz-adv-x="1000" >
<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
<missing-glyph horiz-adv-x="1000" />
<glyph glyph-name="plus" unicode="&#xe81c;" d="M786 439l0-107q0-22-16-38t-38-16l-232 0 0-232q0-22-16-38t-38-16l-107 0q-22 0-38 16t-16 38l0 232-232 0q-22 0-38 16t-16 38l0 107q0 22 16 38t38 16l232 0 0 232q0 22 16 38t38 16l107 0q22 0 38-16t16-38l0-232 232 0q22 0 38-16t16-38z" horiz-adv-x="785.714" />
<glyph glyph-name="plus-1" unicode="&#xe8f9;" d="M550 400q30 0 30-50t-30-50l-210 0 0-210q0-30-50-30t-50 30l0 210-210 0q-30 0-30 50t30 50l210 0 0 210q0 30 50 30t50-30l0-210 210 0z" horiz-adv-x="580" />
<glyph glyph-name="minus" unicode="&#xe820;" d="M786 439l0-107q0-22-16-38t-38-16l-679 0q-22 0-38 16t-16 38l0 107q0 22 16 38t38 16l679 0q22 0 38-16t16-38z" horiz-adv-x="785.714" />
<glyph glyph-name="minus-1" unicode="&#xe8f6;" d="M550 400q30 0 30-50t-30-50l-520 0q-30 0-30 50t30 50l520 0z" horiz-adv-x="580" />
<glyph glyph-name="info-1" unicode="&#xe8f1;" d="M352 850q48 0 74-27t26-69q0-50-39-88t-95-38q-48 0-74 26t-24 72q0 46 35 85t97 39z m-206-1000q-100 0-54 178l60 254q14 56 0 56-12 0-54-18t-72-38l-26 44q90 78 189 126t151 48q78 0 36-162l-70-266q-16-64 6-64 44 0 118 60l30-40q-84-86-175-132t-139-46z" horiz-adv-x="460" />
<glyph glyph-name="left-big" unicode="&#xe881;" d="M857 350l0-71q0-30-18-50t-47-21l-393 0 163-164q21-20 21-50t-21-50l-42-42q-21-21-50-21t-51 21l-363 364q-21 21-21 50t21 51l363 363q21 21 51 21 29 0 50-21l42-41q21-21 21-51t-21-51l-163-163 393 0q29 0 47-21t18-50z" horiz-adv-x="857.143" />
<glyph glyph-name="up-big" unicode="&#xe883;" d="M899 308q0-28-21-50l-42-42q-21-21-51-21t-50 21l-164 163 0-393q0-29-21-47t-50-18l-71 0q-30 0-50 18t-21 47l0 393-164-163q-20-21-50-21t-50 21l-42 42q-21 21-21 50 0 30 21 51l363 363q20 21 50 21t51-21l363-363q21-22 21-51z" horiz-adv-x="928.571" />
<glyph glyph-name="right-big" unicode="&#xe882;" d="M821 314q0-30-21-51l-363-363q-22-21-51-21-28 0-50 21l-42 42q-21 21-21 51t21 51l163 163-393 0q-29 0-47 21t-18 50l0 71q0 30 18 50t47 21l393 0-163 164q-21 20-21 50t21 50l42 42q21 21 50 21 30 0 51-21l363-363q21-20 21-50z" horiz-adv-x="857.143" />
<glyph glyph-name="down-big" unicode="&#xe880;" d="M899 386q0-30-21-50l-363-364q-22-21-51-21-30 0-50 21l-363 364q-21 20-21 50t21 51l41 42q22 21 51 21 30 0 50-21l164-164 0 393q0 29 21 50t50 21l71 0q29 0 50-21t21-50l0-393 164 164q21 21 50 21t51-21l42-42q21-22 21-51z" horiz-adv-x="928.571" />
<glyph glyph-name="switch" unicode="&#xe93a;" d="M700 592l0-140-500 0 0-90-200 160 200 170 0-100 500 0z m300-420l-200-160 0 90-500 0 0 140 500 0 0 100z" horiz-adv-x="1000" />
<glyph glyph-name="plus-squared-1" unicode="&#xe8f7;" d="M700 750q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l600 0z m-50-450l0 100-200 0 0 200-100 0 0-200-200 0 0-100 200 0 0-200 100 0 0 200 200 0z" horiz-adv-x="800" />
<glyph glyph-name="minus-squared-1" unicode="&#xe8f4;" d="M700 750q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l600 0z m-50-450l0 100-500 0 0-100 500 0z" horiz-adv-x="800" />
<glyph glyph-name="home-1" unicode="&#xe8ef;" d="M888 336q16-16 11-27t-27-11l-84 0 0-310q0-14-1-21t-8-13-23-6l-204 0 0 310-204 0 0-310-194 0q-28 0-35 10t-7 30l0 310-84 0q-22 0-27 11t11 27l400 402q16 16 38 16t38-16z" horiz-adv-x="900" />
<glyph glyph-name="home" unicode="&#xe833;" d="M786 296l0-268q0-15-11-25t-25-11l-214 0 0 214-143 0 0-214-214 0q-15 0-25 11t-11 25l0 268q0 1 0 2t0 2l321 264 321-264q1-1 1-3z m124 39l-35-41q-4-5-12-6l-2 0q-7 0-12 4l-386 322-386-322q-7-4-13-4-7 1-12 6l-35 41q-4 6-4 13t6 12l401 334q18 15 42 15t42-15l136-114 0 109q0 8 5 13t13 5l107 0q8 0 13-5t5-13l0-228 122-102q6-4 6-12t-4-13z" horiz-adv-x="928.571" />
<glyph glyph-name="keyboard-1" unicode="&#xe903;" d="M930 650q28 0 49-21t21-49l0-460q0-30-21-50t-49-20l-860 0q-28 0-49 20t-21 50l0 460q0 28 21 49t49 21l860 0z m-380-100l0-100 100 0 0 100-100 0z m150-150l-100 0 0-100 100 0 0 100z m-300 150l0-100 100 0 0 100-100 0z m150-150l-100 0 0-100 100 0 0 100z m-300 150l0-100 100 0 0 100-100 0z m150-150l-100 0 0-100 100 0 0 100z m-300 150l0-100 100 0 0 100-100 0z m150-150l-100 0 0-100 100 0 0 100z m-50-250l0 100-100 0 0-100 100 0z m550 0l0 100-500 0 0-100 500 0z m150 0l0 100-100 0 0-100 100 0z m-150 150l100 0 0 100-100 0 0-100z m150 150l0 100-200 0 0-100 200 0z" horiz-adv-x="1000" />
<glyph glyph-name="pause-1" unicode="&#xe937;" d="M440 700q90 0 90-64l0-570q0-66-90-66t-90 66l0 570q0 64 90 64z m-350 0q90 0 90-64l0-570q0-66-90-66t-90 66l0 570q0 64 90 64z" horiz-adv-x="530" />
<glyph glyph-name="pause" unicode="&#xe891;" d="M857 743l0-786q0-15-11-25t-25-11l-286 0q-15 0-25 11t-11 25l0 786q0 15 11 25t25 11l286 0q15 0 25-11t11-25z m-500 0l0-786q0-15-11-25t-25-11l-286 0q-15 0-25 11t-11 25l0 786q0 15 11 25t25 11l286 0q15 0 25-11t11-25z" horiz-adv-x="857.143" />
<glyph glyph-name="fast-forward" unicode="&#xe933;" d="M866 374q14-10 14-24t-14-22l-372-248q-22-14-37-6t-15 36l0 482q0 28 15 36t37-6z m-454 0q14-10 14-24t-14-22l-360-248q-20-14-36-6t-16 36l0 482q0 28 16 36t36-6z" horiz-adv-x="880" />
<glyph glyph-name="fast-fw" unicode="&#xe88c;" d="M25-71q-11-11-18-7t-7 18l0 821q0 15 7 18t18-7l396-396q4-4 7-11l0 396q0 15 7 18t18-7l396-396q11-11 11-25t-11-25l-396-396q-11-11-18-7t-7 18l0 396q-3-6-7-11z" horiz-adv-x="928.571" />
<glyph glyph-name="fast-backward" unicode="&#xe932;" d="M0 350q0 14 14 24l374 248q20 14 36 6t16-36l0-482q0-28-16-36t-36 6l-374 248q-14 8-14 22z m454 0q0 14 14 24l360 248q20 14 36 6t16-36l0-482q0-28-16-36t-36 6l-360 248q-14 8-14 22z" horiz-adv-x="880" />
<glyph glyph-name="fast-bw" unicode="&#xe88b;" d="M903 771q11 11 18 7t7-18l0-821q0-15-7-18t-18 7l-396 396q-4 5-7 11l0-396q0-15-7-18t-18 7l-396 396q-11 11-11 25t11 25l396 396q11 11 18 7t7-18l0-396q3 6 7 11z" horiz-adv-x="928.571" />
<glyph glyph-name="to-end-1" unicode="&#xe936;" d="M412 374q14-10 14-24 0-12-14-22l-362-228q-22-14-36-5t-14 35l0 442q0 26 14 35t36-5z m114 268q74 0 74-58l0-466q0-58-74-58-76 0-76 58l0 466q0 58 76 58z" horiz-adv-x="600" />
<glyph glyph-name="to-end" unicode="&#xe890;" d="M25-71q-11-11-18-7t-7 18l0 821q0 15 7 18t18-7l396-396q4-4 7-11l0 378q0 15 11 25t25 11l71 0q15 0 25-11t11-25l0-786q0-15-11-25t-25-11l-71 0q-15 0-25 11t-11 25l0 378q-3-6-7-11z" horiz-adv-x="571.429" />
<glyph glyph-name="to-start" unicode="&#xe88e;" d="M546 771q11 11 18 7t7-18l0-821q0-15-7-18t-18 7l-396 396q-5 5-7 11l0-378q0-15-11-25t-25-11l-71 0q-15 0-25 11t-11 25l0 786q0 15 11 25t25 11l71 0q15 0 25-11t11-25l0-378q2 6 7 11z" horiz-adv-x="571.429" />
<glyph glyph-name="to-start-1" unicode="&#xe934;" d="M174 350q0 14 14 24l364 228q20 14 34 5t14-35l0-442q0-26-14-35t-34 5l-364 228q-14 10-14 22z m-174 234q0 58 76 58 74 0 74-58l0-466q0-58-74-58-76 0-76 58l0 466z" horiz-adv-x="600" />
<glyph glyph-name="hourglass" unicode="&#xe90f;" d="M560 622q0-44-48-96t-97-99-49-77 49-76 97-97 48-97l0-118q0-34-86-73t-194-39-194 39-86 73l0 118q0 46 48 97t97 97 49 76-49 77-97 99-48 96l0 118q0 32 87 71t193 39 193-39 87-71l0-118z m-482 112l-18-14q-4-8 4-14 92-52 216-52 132 0 220 50 14 10-16 30-96 54-202 54-120 0-204-54z m228-384q0 18 4 33t18 33 20 25 31 31 29 28q92 92 92 122l2 50q-100-54-222-54t-222 54l4-50q0-32 90-122 6-6 22-21t23-22l19-19t17-21 11-20 9-23 3-24q0-10-1-19t-6-18-8-16-11-17l-12-15t-15-16-16-15-18-16-17-16q-90-90-90-122l0-66q8 4 66 23t92 43 34 58q0 30 26 30t26-30q0-34 33-58t94-43 67-23l0 66q0 30-92 122-4 4-21 20t-22 21-18 19-18 22-12 20-9 23-2 23z" horiz-adv-x="560" />
<glyph glyph-name="stop-1" unicode="&#xe938;" d="M526 650q74 0 74-64l0-470q0-66-74-66l-450 0q-76 0-76 66l0 470q0 36 18 50t58 14l450 0z" horiz-adv-x="600" />
<glyph glyph-name="stop" unicode="&#xe892;" d="M857 743l0-786q0-15-11-25t-25-11l-786 0q-15 0-25 11t-11 25l0 786q0 15 11 25t25 11l786 0q15 0 25-11t11-25z" horiz-adv-x="857.143" />
<glyph glyph-name="up-dir-1" unicode="&#xe92d;" d="M0 150l230 400 230-400-460 0z" horiz-adv-x="460" />
<glyph glyph-name="up-dir" unicode="&#xe87e;" d="M571 171q0-15-11-25t-25-11l-500 0q-15 0-25 11t-11 25 11 25l250 250q11 11 25 11t25-11l250-250q11-11 11-25z" horiz-adv-x="571.429" />
<glyph glyph-name="play-1" unicode="&#xe939;" d="M486 376q14-10 14-26 0-14-14-24l-428-266q-24-16-41-6t-17 40l0 514q0 30 17 40t41-6z" horiz-adv-x="500" />
<glyph glyph-name="play" unicode="&#xe895;" d="M772 333l-741-412q-13-7-22-2t-9 20l0 821q0 15 9 20t22-2l741-412q13-7 13-17t-13-17z" horiz-adv-x="785.714" />
<glyph glyph-name="right-dir" unicode="&#xe87c;" d="M321 350q0-15-11-25l-250-250q-11-11-25-11t-25 11-11 25l0 500q0 15 11 25t25 11 25-11l250-250q11-11 11-25z" horiz-adv-x="357.143" />
<glyph glyph-name="right-dir-1" unicode="&#xe92c;" d="M0 580l400-230-400-230 0 460z" horiz-adv-x="400" />
<glyph glyph-name="down-dir" unicode="&#xe87f;" d="M571 457q0-15-11-25l-250-250q-11-11-25-11t-25 11l-250 250q-11 11-11 25t11 25 25 11l500 0q15 0 25-11t11-25z" horiz-adv-x="571.429" />
<glyph glyph-name="down-dir-1" unicode="&#xe92a;" d="M460 550l-230-400-230 400 460 0z" horiz-adv-x="460" />
<glyph glyph-name="left-dir-1" unicode="&#xe92b;" d="M400 580l0-460-400 230z" horiz-adv-x="400" />
<glyph glyph-name="left-dir" unicode="&#xe87d;" d="M357 600l0-500q0-15-11-25t-25-11-25 11l-250 250q-11 11-11 25t11 25l250 250q11 11 25 11t25-11 11-25z" horiz-adv-x="357.143" />
<glyph glyph-name="cloud" unicode="&#xe8a1;" d="M1071 207q0-89-63-151t-151-63l-607 0q-103 0-177 73t-73 177q0 74 40 135t104 91q-1 16-1 24 0 118 84 202t202 84q88 0 160-49t105-128q39 35 93 35 59 0 101-42t42-101q0-42-23-77 72-17 119-75t47-134z" horiz-adv-x="1071.429" />
<glyph glyph-name="star-1" unicode="&#xe8e1;" d="M440 790l120-336 320 0-262-196 94-348-272 208-272-208 94 348-262 196 320 0z" horiz-adv-x="880" />
<glyph glyph-name="star" unicode="&#xe809;" d="M929 489q0-12-15-27l-203-198 48-279q1-4 1-11 0-12-6-20t-17-8q-11 0-22 7l-251 132-251-132q-12-7-22-7-12 0-18 8t-6 20q0 3 1 11l48 279-203 198q-14 15-14 27 0 21 31 26l280 41 126 254q11 23 27 23t27-23l126-254 280-41q31-5 31-26z" horiz-adv-x="928.571" />
<glyph glyph-name="star-empty-1" unicode="&#xe8e2;" d="M880 454l-262-196 94-348-272 208-272-208 94 348-262 196 320 0 120 336 120-336 320 0z m-440-238l150-124-62 178 144 114-176-4-56 202-54-202-176 4 142-114-62-178z" horiz-adv-x="880" />
<glyph glyph-name="star-empty" unicode="&#xe80a;" d="M634 290l171 166-235 35-105 213-105-213-235-35 171-166-41-235 211 111 210-111z m294 199q0-12-15-27l-203-198 48-279q1-4 1-11 0-28-23-28-11 0-22 7l-251 132-251-132q-12-7-22-7-12 0-18 8t-6 20q0 3 1 11l48 279-203 198q-14 15-14 27 0 21 31 26l280 41 126 254q11 23 27 23t27-23l126-254 280-41q31-5 31-26z" horiz-adv-x="928.571" />
<glyph glyph-name="check" unicode="&#xe8bf;" d="M786 331l0-177q0-66-47-114t-114-47l-464 0q-66 0-114 47t-47 114l0 464q0 66 47 114t114 47l464 0q35 0 65-14 8-4 10-13t-5-16l-27-27q-6-6-13-6-2 0-5 1-13 3-25 3l-464 0q-37 0-63-26t-26-63l0-464q0-37 26-63t63-26l464 0q37 0 63 26t26 63l0 142q0 7 5 12l36 36q6 6 13 6 3 0 7-2 11-4 11-16z m129 273l-454-454q-13-13-32-13t-32 13l-240 240q-13 13-13 32t13 32l61 61q13 13 32 13t32-13l147-147 361 361q13 13 32 13t32-13l61-61q13-13 13-32t-13-32z" horiz-adv-x="928.571" />
<glyph glyph-name="th-list" unicode="&#xe816;" d="M286 154l0-107q0-22-16-38t-38-16l-179 0q-22 0-38 16t-16 38l0 107q0 22 16 38t38 16l179 0q22 0 38-16t16-38z m0 286l0-107q0-22-16-38t-38-16l-179 0q-22 0-38 16t-16 38l0 107q0 22 16 38t38 16l179 0q22 0 38-16t16-38z m714-286l0-107q0-22-16-38t-38-16l-536 0q-22 0-38 16t-16 38l0 107q0 22 16 38t38 16l536 0q22 0 38-16t16-38z m-714 571l0-107q0-22-16-38t-38-16l-179 0q-22 0-38 16t-16 38l0 107q0 22 16 38t38 16l179 0q22 0 38-16t16-38z m714-286l0-107q0-22-16-38t-38-16l-536 0q-22 0-38 16t-16 38l0 107q0 22 16 38t38 16l536 0q22 0 38-16t16-38z m0 286l0-107q0-22-16-38t-38-16l-536 0q-22 0-38 16t-16 38l0 107q0 22 16 38t38 16l536 0q22 0 38-16t16-38z" horiz-adv-x="1000" />
<glyph glyph-name="menu-1" unicode="&#xe8ea;" d="M650 400q22 0 36-15t14-35-15-35-35-15l-600 0q-20 0-35 15t-15 35 14 35 36 15l600 0z m-600 100q-20 0-35 15t-15 35 14 35 36 15l600 0q22 0 36-15t14-35-15-35-35-15l-600 0z m600-300q22 0 36-15t14-35-15-35-35-15l-600 0q-20 0-35 15t-15 35 14 35 36 15l600 0z" horiz-adv-x="700" />
<glyph glyph-name="heart-empty" unicode="&#xe807;" d="M929 517q0 45-12 80t-31 55-45 33-52 17-55 4-62-14-62-36-48-40-33-34q-10-12-27-12t-27 12q-13 16-33 34t-48 40-62 36-62 14-55-4-52-17-45-33-31-55-12-80q0-94 104-198l324-312 324 312q105 105 105 199z m71 0q0-123-128-251l-348-335q-10-10-25-10t-25 10l-348 336q-6 4-15 15t-31 37-38 54-30 68-13 77q0 123 71 192t196 69q35 0 71-12t67-32 53-38 42-38q20 20 42 38t53 38 67 32 71 12q125 0 196-69t71-192z" horiz-adv-x="1000" />
<glyph glyph-name="heart-empty-1" unicode="&#xe8e4;" d="M790 642q70-64 70-156t-70-156l-360-330-360 330q-70 64-70 156t70 156q64 58 152 58t150-58l58-52 56 52q64 58 152 58t152-58z m-54-260q42 40 42 104 0 66-38 100-38 38-102 38-52 0-104-48l-104-92-106 92q-48 48-102 48-64 0-104-38-38-36-38-100 0-66 44-104l306-286z" horiz-adv-x="860" />
<glyph glyph-name="heart-1" unicode="&#xe8e3;" d="M790 644q70-64 70-156t-70-158l-360-330-360 330q-70 66-70 158t70 156q62 58 151 58t153-58l56-52 58 52q62 58 150 58t152-58z" horiz-adv-x="860" />
<glyph glyph-name="heart" unicode="&#xe808;" d="M500-79q-15 0-25 10l-348 336q-6 4-15 15t-31 37-38 54-30 68-13 77q0 123 71 192t196 69q35 0 71-12t67-32 53-38 42-38q20 20 42 38t53 38 67 32 71 12q125 0 196-69t71-192q0-123-128-251l-348-335q-10-10-25-10z" horiz-adv-x="1000" />
<glyph glyph-name="layout" unicode="&#xe8eb;" d="M170 650q80 0 80-80l0-90q0-80-80-80l-90 0q-80 0-80 80l0 90q0 80 80 80l90 0z m350 0q80 0 80-80l0-90q0-80-80-80l-90 0q-80 0-80 80l0 90q0 80 80 80l90 0z m-350-350q80 0 80-80l0-90q0-80-80-80l-90 0q-80 0-80 80l0 90q0 80 80 80l90 0z m350 0q80 0 80-80l0-90q0-80-80-80l-90 0q-80 0-80 80l0 90q0 80 80 80l90 0z" horiz-adv-x="600" />
<glyph glyph-name="th" unicode="&#xe815;" d="M286 154l0-107q0-22-16-38t-38-16l-179 0q-22 0-38 16t-16 38l0 107q0 22 16 38t38 16l179 0q22 0 38-16t16-38z m0 286l0-107q0-22-16-38t-38-16l-179 0q-22 0-38 16t-16 38l0 107q0 22 16 38t38 16l179 0q22 0 38-16t16-38z m357-286l0-107q0-22-16-38t-38-16l-179 0q-22 0-38 16t-16 38l0 107q0 22 16 38t38 16l179 0q22 0 38-16t16-38z m-357 571l0-107q0-22-16-38t-38-16l-179 0q-22 0-38 16t-16 38l0 107q0 22 16 38t38 16l179 0q22 0 38-16t16-38z m357-286l0-107q0-22-16-38t-38-16l-179 0q-22 0-38 16t-16 38l0 107q0 22 16 38t38 16l179 0q22 0 38-16t16-38z m357-286l0-107q0-22-16-38t-38-16l-179 0q-22 0-38 16t-16 38l0 107q0 22 16 38t38 16l179 0q22 0 38-16t16-38z m-357 571l0-107q0-22-16-38t-38-16l-179 0q-22 0-38 16t-16 38l0 107q0 22 16 38t38 16l179 0q22 0 38-16t16-38z m357-286l0-107q0-22-16-38t-38-16l-179 0q-22 0-38 16t-16 38l0 107q0 22 16 38t38 16l179 0q22 0 38-16t16-38z m0 286l0-107q0-22-16-38t-38-16l-179 0q-22 0-38 16t-16 38l0 107q0 22 16 38t38 16l179 0q22 0 38-16t16-38z" horiz-adv-x="1000" />
<glyph glyph-name="flag" unicode="&#xe8fe;" d="M874 616q14 6 22-1t0-19q-96-138-164-213t-110-90-73-2-60 37-63 40-93-4-139-86l90-352-100 0-184 720 92 34q90 66 152 86t98 3 64-51 62-71 79-62 129-20 198 51z" horiz-adv-x="900" />
<glyph glyph-name="tools" unicode="&#xe90b;" d="M155 506q-8-8-11-22t-3-25-2-11q-2-2-17-15t-19-17q-16-14-28 4l-70 76q-10 12 2 24 2 2 18 14t20 16q6 6 27 6t37 14q14 14 18 38t10 30q2 0 9 7t26 22 41 31q134 90 186 96 122 0 148-2 12 0-8-8-120-52-152-76-80-56-36-114 34-46 38-48 8-8-2-14-2-2-38-35t-38-35q-14-8-18-4-42 48-71 60t-67-12z m286-26l410-476q18-22-2-38l-48-42q-22-14-38 4l-414 472q-8 8 0 20l72 62q12 8 20-2z m554 202q16-104-16-166-50-88-154-62-56 12-100-32l-82-78-68 78 68 70q24 24 31 53t6 65 5 58q12 56 140 112 12 6 18-3t2-15q-12-12-46-80-14-10-12-35t40-53q58-40 96 22 6 12 26 41t22 33q4 10 13 9t11-17z m-858-684l254 248 76-86-246-242q-20-20-38-4l-46 46q-22 18 0 38z" horiz-adv-x="1000" />
<glyph glyph-name="cog" unicode="&#xe85d;" d="M571 350q0 59-42 101t-101 42-101-42-42-101 42-101 101-42 101 42 42 101z m286 61l0-124q0-7-4-13t-11-7l-103-16q-11-30-22-51 20-28 60-77 6-7 6-14t-5-13q-15-21-55-60t-52-40q-7 0-15 5l-77 60q-25-13-51-21-9-76-16-104-4-16-20-16l-124 0q-8 0-14 5t-6 12l-16 103q-27 9-50 21l-79-60q-6-5-14-5t-14 6q-70 64-92 94-4 6-4 13t4 13q8 12 28 37t30 39q-15 28-23 55l-102 15q-7 1-12 7t-4 13l0 124q0 7 4 13t11 7l104 16q8 26 22 51-22 32-60 77-6 7-6 13t5 13q15 20 55 60t53 40q7 0 15-6l77-60q25 13 51 21 9 76 16 104 4 16 20 16l124 0q8 0 14-5t6-12l16-103q27-9 50-21l79 60q5 5 13 5 7 0 14-6 72-66 92-95 4-4 4-12 0-7-4-13-8-12-28-37t-30-39q15-28 23-55l102-16q7-1 12-7t4-13z" horiz-adv-x="857.143" />
<glyph glyph-name="attention" unicode="&#xe849;" d="M571 83l0 106q0 8-5 13t-13 5l-107 0q-7 0-13-5t-5-13l0-106q0-8 5-13t13-5l107 0q7 0 13 5t5 13z m-1 209l10 256q0 7-6 11-7 6-13 6l-123 0q-6 0-13-6-6-4-6-12l9-255q0-6 6-9t13-4l103 0q8 0 13 4t6 9z m-8 521l429-786q20-35-1-70-9-16-26-26t-35-9l-857 0q-19 0-35 9t-26 26q-21 35-1 70l429 786q9 17 26 27t36 10 36-10 26-27z" horiz-adv-x="1000" />
<glyph glyph-name="attention-1" unicode="&#xe906;" d="M957-24q10-16 0-34-10-16-30-16l-892 0q-18 0-28 16-12 18-2 34l446 782q8 18 30 18t30-18z m-420 50l0 100-110 0 0-100 110 0z m0 174l0 300-110 0 0-300 110 0z" horiz-adv-x="962" />
<glyph glyph-name="record" unicode="&#xe935;" d="M350 700q146 0 248-102t102-248q0-144-102-247t-248-103-248 103-102 247q0 146 102 248t248 102z" horiz-adv-x="700" />
<glyph glyph-name="cog-alt" unicode="&#xe85e;" d="M500 350q0 59-42 101t-101 42-101-42-42-101 42-101 101-42 101 42 42 101z m429-286q0 29-21 50t-50 21-50-21-21-50q0-30 21-50t50-21 50 21 21 50z m0 571q0 29-21 50t-50 21-50-21-21-50q0-30 21-50t50-21 50 21 21 50z m-214-235l0-103q0-6-4-11t-9-6l-86-13q-6-20-18-42 19-27 50-64 4-6 4-11 0-7-4-11-13-17-46-50t-44-33q-6 0-12 4l-64 50q-21-11-43-17-6-60-13-86-4-13-17-13l-104 0q-6 0-11 4t-6 10l-13 85q-19 6-42 17l-66-50q-4-4-11-4-6 0-12 4-80 74-80 89 0 5 4 11 6 8 23 30t26 34q-13 25-20 46l-85 13q-6 1-9 5t-4 11l0 103q0 6 4 11t9 6l86 13q6 20 18 42-19 27-50 64-4 6-4 11 0 7 4 11 12 17 46 50t44 33q6 0 12-4l64-50q19 10 43 18 6 60 13 86 4 13 17 13l104 0q6 0 11-4t6-10l13-85q19-6 42-17l66 50q4 4 11 4 6 0 12-4 80-74 80-89 0-5-4-11-7-9-23-30t-25-33q13-27 19-46l85-13q6-1 9-6t4-11z m357-297l0-78q0-9-83-17-7-15-17-29 28-63 28-77 0-2-2-4-68-40-69-40-4 0-26 26t-29 38q-11-1-17-1t-17 1q-8-12-29-38t-26-26q-1 0-69 40-2 2-2 4 0 14 28 77-10 14-17 29-83 8-83 17l0 78q0 9 83 17 7 16 17 29-28 63-28 77 0 2 2 4 2 1 20 11t33 19 17 9q4 0 26-26t29-38q11 1 17 1t17-1q28 40 51 62l3 1q2 0 69-39 2-2 2-4 0-14-28-77 9-13 17-29 83-8 83-17z m0 571l0-78q0-9-83-17-7-15-17-29 28-63 28-77 0-2-2-4-68-40-69-40-4 0-26 26t-29 38q-11-1-17-1t-17 1q-8-12-29-38t-26-26q-1 0-69 40-2 2-2 4 0 14 28 77-10 14-17 29-83 8-83 17l0 78q0 9 83 17 7 16 17 29-28 63-28 77 0 2 2 4 2 1 20 11t33 19 17 9q4 0 26-26t29-38q11 1 17 1t17-1q28 40 51 62l3 1q2 0 69-39 2-2 2-4 0-14-28-77 9-13 17-29 83-8 83-17z" horiz-adv-x="1071.429" />
<glyph glyph-name="scissors" unicode="&#xe8aa;" d="M536 350q15 0 25-11t11-25-11-25-25-11-25 11-11 25 11 25 25 11z m167-36l283-222q16-11 14-31-3-20-20-28l-71-36q-7-4-16-4t-17 4l-385 216-61-37q-4-2-7-3 8-27 6-54-4-43-31-82t-74-69q-74-47-155-47-76 0-124 44-50 47-44 116 4 42 31 82t73 69q74 47 155 47 46 0 84-17 5 7 12 12l68 41-68 41q-7 5-12 12-38-17-84-17-81 0-155 47-46 30-73 69t-31 82q-3 33 9 63t35 52q47 44 124 44 81 0 155-47 46-29 74-69t31-83q2-27-6-54 2-1 7-3l61-37 385 216q8 4 17 4t16-4l71-36q17-9 20-28 2-20-14-31z m-380 145q26 23 12 60t-59 65q-51 33-107 33-41 0-63-20-26-23-12-60t59-65q51-33 107-33 41 0 63 20z m-47-416q45 28 59 65t-12 60q-22 20-63 20-56 0-107-33-45-28-59-65t12-60q22-20 63-20 56 0 107 33z m99 342l54-32 0 6q0 20 18 31l8 4-44 26-15-15q-2-2-6-6t-7-7q-1-1-2-2t-2-1z m125-125l54-18 411 321-71 36-429-240 0-63-89-54 5-4q1-1 4-3 2-2 6-7t6-7l15-15z m393-232l71 36-290 228-99-77q-1-2-7-4z" horiz-adv-x="1000" />
<glyph glyph-name="edit" unicode="&#xe853;" d="M496 189l65 65-85 85-65-65 0-31 54 0 0-54 31 0z m246 402q-9 9-18-1l-195-195q-9-9-1-18t18 1l195 195q9 9 1 18z m45-331l0-106q0-66-47-114t-114-47l-464 0q-66 0-114 47t-47 114l0 464q0 66 47 114t114 47l464 0q35 0 65-14 8-4 10-13t-5-16l-27-27q-8-8-18-4-13 3-25 3l-464 0q-37 0-63-26t-26-63l0-464q0-37 26-63t63-26l464 0q37 0 63 26t26 63l0 70q0 7 5 12l36 36q8 8 20 4t11-16z m-54 412l161-161-375-375-161 0 0 161z m248-74l-51-51-161 161 51 51q16 16 38 16t38-16l85-85q16-16 16-38t-16-38z" horiz-adv-x="1000" />
<glyph glyph-name="pencil-1" unicode="&#xe900;" d="M718 680q32-32 47-64t15-48l0-16-252-252-290-288-238-52 50 240 290 288 252 252q54 12 126-60z m-494-640l24 24q-2 44-52 94-22 22-45 35t-35 13l-14 2-22-24-18-80q28-16 46-34 24-24 36-48z" horiz-adv-x="780" />
<glyph glyph-name="pencil" unicode="&#xe840;" d="M203-7l51 51-131 131-51-51 0-60 71 0 0-71 60 0z m292 518q0 12-12 12-6 0-9-4l-302-302q-4-4-4-9 0-12 12-12 6 0 9 4l302 302q4 4 4 9z m-30 107l232-232-464-464-232 0 0 232z m381-54q0-30-21-50l-93-93-232 232 93 92q20 21 50 21t51-21l131-131q21-22 21-51z" horiz-adv-x="857.143" />
<glyph glyph-name="check-1" unicode="&#xe8e8;" d="M249 0q-34 0-56 28l-180 236q-16 24-12 52t26 46 51 14 47-28l118-154 296 474q16 24 43 30t53-8q24-16 30-43t-8-53l-350-560q-20-32-56-32z" horiz-adv-x="667" />
<glyph glyph-name="ok" unicode="&#xe817;" d="M932 534q0-22-16-38l-404-404-76-76q-16-16-38-16t-38 16l-76 76-202 202q-16 16-16 38t16 38l76 76q16 16 38 16t38-16l164-165 366 367q16 16 38 16t38-16l76-76q16-16 16-38z" horiz-adv-x="1000" />
<glyph glyph-name="ok-circled" unicode="&#xe818;" d="M716 440q0 16-10 26l-51 50q-11 11-25 11t-25-11l-228-227-126 126q-11 11-25 11t-25-11l-51-50q-10-10-10-26 0-15 10-25l202-202q11-11 25-11 15 0 26 11l303 303q10 10 10 25z m141-90q0-117-57-215t-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57 215-57 156-156 57-215z" horiz-adv-x="857.143" />
<glyph glyph-name="cancel-1" unicode="&#xe8e9;" d="M452 194q18-18 18-43t-18-43q-18-16-43-16t-43 16l-132 152-132-152q-18-16-43-16t-43 16q-16 18-16 43t16 43l138 156-138 158q-16 18-16 43t16 43q18 16 43 16t43-16l132-152 132 152q18 16 43 16t43-16q18-18 18-43t-18-43l-138-158z" horiz-adv-x="470" />
<glyph glyph-name="cancel" unicode="&#xe81b;" d="M724 112q0-22-16-38l-76-76q-16-16-38-16t-38 16l-164 164-164-164q-16-16-38-16t-38 16l-76 76q-16 16-16 38t16 38l164 164-164 164q-16 16-16 38t16 38l76 76q16 16 38 16t38-16l164-164 164 164q16 16 38 16t38-16l76-76q16-16 16-38t-16-38l-164-164 164-164q16-16 16-38z" horiz-adv-x="785.714" />
<glyph glyph-name="cancel-circled" unicode="&#xe8fb;" d="M420 770q174 0 297-123t123-297-123-297-297-123-297 123-123 297 123 297 297 123z m86-420l154 154-86 86-154-152-152 152-88-86 154-154-154-152 88-86 152 152 154-152 86 86z" horiz-adv-x="840" />
<glyph glyph-name="asterisk" unicode="&#xe8c3;" d="M827 264q26-15 33-43t-7-54l-36-61q-15-26-43-33t-54 7l-148 85 0-171q0-29-21-50t-50-21l-71 0q-29 0-50 21t-21 50l0 171-148-85q-26-15-54-7t-43 33l-36 61q-15 26-7 54t33 43l148 86-148 86q-26 15-33 43t7 54l36 61q15 26 43 33t54-7l148-85 0 171q0 29 21 50t50 21l71 0q29 0 50-21t21-50l0-171 148 85q26 15 54 7t43-33l36-61q15-26 7-54t-33-43l-148-86z" horiz-adv-x="928.571" />
<glyph glyph-name="cancel-squared" unicode="&#xe8fa;" d="M700 750q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l600 0z m-146-638l86 86-154 152 154 154-86 86-154-152-152 152-88-86 154-154-154-152 88-86 152 152z" horiz-adv-x="800" />
<glyph glyph-name="help-1" unicode="&#xe8f3;" d="M494 740q86-62 86-184 0-64-42-124-12-20-88-80l-46-30q-40-34-48-60-6-16-8-44 0-14-16-14l-128 0q-16 0-16 12 4 98 28 124 16 22 48 48t56 42l24 14q22 16 34 34 28 44 28 70 0 40-26 78-28 36-92 36-68 0-94-44-28-42-28-92l-166 0q6 162 114 232 70 42 166 42 130 0 214-60z m-216-636q44 0 73-30t27-74q-2-46-32-73t-74-25q-44 0-73 29t-27 75 32 73 74 25z" horiz-adv-x="580" />
<glyph glyph-name="attention-circled" unicode="&#xe848;" d="M429 779q117 0 215-57t156-156 57-215-57-215-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57z m71-696l0 106q0 8-5 13t-12 5l-107 0q-7 0-13-6t-6-13l0-106q0-7 6-13t13-6l107 0q7 0 12 5t5 13z m-1 192l10 347q0 7-6 10-6 4-13 4l-123 0q-8 0-13-4-6-3-6-10l9-347q0-6 6-10t13-4l103 0q8 0 13 4t6 10z" horiz-adv-x="857.143" />
<glyph glyph-name="plus-circled-1" unicode="&#xe8f8;" d="M420 770q174 0 297-123t123-297-123-297-297-123-297 123-123 297 123 297 297 123z m52-470l200 0 0 102-200 0 0 202-102 0 0-202-202 0 0-102 202 0 0-202 102 0 0 202z" horiz-adv-x="840" />
<glyph glyph-name="plus-circled" unicode="&#xe81d;" d="M679 314l0 71q0 15-11 25t-25 11l-143 0 0 143q0 15-11 25t-25 11l-71 0q-15 0-25-11t-11-25l0-143-143 0q-15 0-25-11t-11-25l0-71q0-15 11-25t25-11l143 0 0-143q0-15 11-25t25-11l71 0q15 0 25 11t11 25l0 143 143 0q15 0 25 11t11 25z m179 36q0-117-57-215t-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57 215-57 156-156 57-215z" horiz-adv-x="857.143" />
<glyph glyph-name="minus-circled-1" unicode="&#xe8f5;" d="M420 770q174 0 297-123t123-297-123-297-297-123-297 123-123 297 123 297 297 123z m252-368l-504 0 0-102 504 0 0 102z" horiz-adv-x="840" />
<glyph glyph-name="minus-circled" unicode="&#xe821;" d="M679 314l0 71q0 15-11 25t-25 11l-429 0q-15 0-25-11t-11-25l0-71q0-15 11-25t25-11l429 0q15 0 25 11t11 25z m179 36q0-117-57-215t-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57 215-57 156-156 57-215z" horiz-adv-x="857.143" />
<glyph glyph-name="right" unicode="&#xe928;" d="M350 680l380-330-380-330 0 192-350 0 0 278 350 0 0 190z" horiz-adv-x="730" />
<glyph glyph-name="forward" unicode="&#xe83d;" d="M1000 493q0-15-11-25l-286-286q-11-11-25-11t-25 11-11 25l0 143-125 0q-55 0-98-3t-86-12-74-24-59-39-45-56-27-77-10-101q0-31 3-69 0-3 1-13t1-15q0-8-5-14t-13-6q-9 0-16 9-4 5-7 12t-8 17-6 13q-71 159-71 252 0 111 30 186 90 225 488 225l125 0 0 143q0 15 11 25t25 11 25-11l286-286q11-11 11-25z" horiz-adv-x="1000" />
<glyph glyph-name="ccw" unicode="&#xe889;" d="M857 350q0-87-34-166t-92-137-137-92-166-34q-96 0-182 40t-147 114q-4 6-4 13t5 11l76 77q6 5 14 5 9-1 13-7 41-53 100-82t126-29q58 0 111 23t91 61 61 91 23 111-23 111-61 91-91 61-111 23q-55 0-105-20t-89-57l76-77q17-17 8-39t-33-22l-250 0q-15 0-25 11t-11 25l0 250q0 23 22 33 22 9 39-8l73-72q60 56 136 87t159 31q87 0 166-34t137-92 92-137 34-166z" horiz-adv-x="857.143" />
<glyph glyph-name="ccw-1" unicode="&#xe93f;" d="M532 736q170 0 289-120t119-290-119-290-289-120q-142 0-252 88l70 74q84-60 182-60 126 0 216 90t90 218-90 218-216 90q-124 0-214-87t-92-211l142 0-184-204-184 204 124 0q2 166 122 283t286 117z" horiz-adv-x="940" />
<glyph glyph-name="cw-1" unicode="&#xe93e;" d="M408 760q168 0 287-116t123-282l122 0-184-206-184 206 144 0q-4 124-94 210t-214 86q-126 0-216-90t-90-218q0-126 90-216t216-90q104 0 182 60l70-76q-110-88-252-88-168 0-288 120t-120 290 120 290 288 120z" horiz-adv-x="940" />
<glyph glyph-name="cw" unicode="&#xe888;" d="M857 707l0-250q0-15-11-25t-25-11l-250 0q-23 0-33 22-9 22 8 39l77 77q-83 76-195 76-58 0-111-23t-91-61-61-91-23-111 23-111 61-91 91-61 111-23q66 0 126 29t100 82q4 6 13 7 8 0 14-5l76-77q5-4 5-11t-4-13q-61-74-147-114t-182-40q-87 0-166 34t-137 92-92 137-34 166 34 166 92 137 137 92 166 34q82 0 159-31t136-87l73 72q16 17 39 8 22-9 22-33z" horiz-adv-x="857.143" />
<glyph glyph-name="left" unicode="&#xe927;" d="M378 20l-378 330 378 330 0-190 352 0 0-278-352 0 0-192z" horiz-adv-x="730" />
<glyph glyph-name="up" unicode="&#xe929;" d="M660 336l-192 0 0-350-276 0 0 350-192 0 330 380z" horiz-adv-x="660" />
<glyph glyph-name="down" unicode="&#xe926;" d="M660 366l-330-380-330 380 192 0 0 350 276 0 0-350 192 0z" horiz-adv-x="660" />
<glyph glyph-name="resize-vertical-1" unicode="&#xe97d;" d="M241 239l0-167 112 0-167-168-168 168 112 0 0 167 111 0z m-111 223l0 168-112 0 168 167 167-167-112 0 0-168-111 0z" horiz-adv-x="370" />
<glyph glyph-name="resize-vertical" unicode="&#xe870;" d="M393 671q0-15-11-25t-25-11l-71 0 0-571 71 0q15 0 25-11t11-25-11-25l-143-143q-11-11-25-11t-25 11l-143 143q-11 11-11 25t11 25 25 11l71 0 0 571-71 0q-15 0-25 11t-11 25 11 25l143 143q11 11 25 11t25-11l143-143q11-11 11-25z" horiz-adv-x="428.571" />
<glyph glyph-name="resize-horizontal-1" unicode="&#xe97f;" d="M353 294l-167 0 0-111-168 167 168 168 0-112 167 0 0-112z m223 112l168 0 0 112 167-168-167-167 0 111-168 0 0 112z" horiz-adv-x="928" />
<glyph glyph-name="resize-horizontal" unicode="&#xe86e;" d="M1000 350q0-15-11-25l-143-143q-11-11-25-11t-25 11-11 25l0 71-571 0 0-71q0-15-11-25t-25-11-25 11l-143 143q-11 11-11 25t11 25l143 143q11 11 25 11t25-11 11-25l0-71 571 0 0 71q0 15 11 25t25 11 25-11l143-143q11-11 11-25z" horiz-adv-x="1000" />
<glyph glyph-name="list-add" unicode="&#xe942;" d="M350 400q22 0 36-15t14-35-15-35-35-15l-300 0q-20 0-35 15t-15 35 14 35 36 15l300 0z m0-200q22 0 36-15t14-35-15-35-35-15l-300 0q-20 0-35 15t-15 35 14 35 36 15l300 0z m620 200q30 0 30-50t-30-50l-170 0 0-170q0-30-50-30t-50 30l0 170-164 0q-30 0-30 50t30 50l164 0 0 170q0 30 50 30t50-30l0-170 170 0z m-620 200q22 0 36-15t14-35-15-35-35-15l-300 0q-20 0-35 15t-15 35 14 35 36 15l300 0z" horiz-adv-x="1000" />
<glyph glyph-name="list-1" unicode="&#xe941;" d="M100 200q20 0 35-15t15-35-15-35-35-15l-50 0q-20 0-35 15t-15 35 14 35 36 15l50 0z m0 200q20 0 35-15t15-35-15-35-35-15l-50 0q-20 0-35 15t-15 35 14 35 36 15l50 0z m0 200q20 0 35-15t15-35-15-35-35-15l-50 0q-20 0-35 15t-15 35 14 35 36 15l50 0z m200-100q-20 0-35 15t-15 35 15 35 35 15l350 0q22 0 36-15t14-35-15-35-35-15l-350 0z m350-100q22 0 36-15t14-35-15-35-35-15l-350 0q-20 0-35 15t-15 35 15 35 35 15l350 0z m0-200q22 0 36-15t14-35-15-35-35-15l-350 0q-20 0-35 15t-15 35 15 35 35 15l350 0z" horiz-adv-x="700" />
<glyph glyph-name="down-1" unicode="&#xe966;" d="M700 391q31-31 31-74t-31-74l-334-334-335 334q-31 31-31 74t31 74 74 31 74-31l83-83 0 378q0 43 31 73t74 31q43 0 73-31t31-73l0-378 83 83q31 31 74 31t74-31z" horiz-adv-x="731" />
<glyph glyph-name="left-1" unicode="&#xe967;" d="M776 454q43 0 73-31t31-74q0-43-30-73t-74-31l-378 0 83-83q31-30 31-73t-31-74q-30-30-74-30t-74 30l-334 334 334 335q31 31 74 31t74-31q31-30 31-73t-31-74l-83-83 378 0z" horiz-adv-x="880" />
<glyph glyph-name="loop-alt-outline" unicode="&#xe96b;" d="M781 793q64 0 110-46t46-110l0-9q113-29 186-128t74-228q0-151-106-258t-258-107l-469 0q-151 0-258 107t-107 258 107 258 258 106l51 0q61 0 104-39l151 150q45 45 110 45z m53-781q108 0 184 77t76 184-69 184-165 76l-109 0 66 68q15 15 15 37t-15 37-36 15-36-15l-194-194 194-193q15-15 36-15t36 15 15 37-15 37l-66 68 109 0q54 0 92-46t38-111-46-111-111-46l-469 0q-65 0-111 46t-46 111 46 111 111 46l51 0q21 0 37 15t16 36-16 37-37 16l-51 0q-108 0-184-76t-77-184 77-184 184-77l469 0z m51 313q0-43-31-73t-73-31q-44 0-74 30l-194 194q-11-30-38-49t-60-19l-51 0q-44 0-74-31t-31-73q0-44 31-74t74-31l469 0q43 0 73 31t31 74q0 38-19 67t-46 36q13-21 13-51z" horiz-adv-x="1198" />
<glyph glyph-name="loop-alt" unicode="&#xe96c;" d="M703 533q96 0 166-77t69-184-76-184-184-76l-418 0q-108 0-184 76t-76 184 76 184 184 77q21 0 37-16t16-37-16-37-37-16q-65 0-111-46t-46-111 46-111 111-46l418 0q65 0 111 46t46 111-39 111-93 46l-108 0 66-68q15-15 15-36t-15-36q-16-16-36-16t-36 16l-194 193 194 193q15 15 36 15t36-15 15-36-15-36l-66-68 108 0z" horiz-adv-x="938" />
<glyph glyph-name="loop-outline" unicode="&#xe96a;" d="M781 871q64 0 110-46t46-110l0-9q113-29 186-128t74-228q0-151-106-258t-258-107l-53 0q-60 0-104 40l-150-150q-46-46-111-46-64 0-110 46t-46 110q0 1 1 5t1 5q-113 29-187 128t-74 227q0 151 107 258t258 106l51 0q60 0 104-40l151 151q45 45 110 45z m53-781q108 0 184 77t76 184-69 184-165 76l-109 0 66 68q15 15 15 37t-15 37-36 15-36-15l-194-194 194-193q15-15 36-15t36 15 15 37-15 37l-66 68 109 0q54 0 92-46t38-111-46-111-111-46l-53 0q-21 0-37-16t-16-37 16-37 37-16l53 0z m-521 209q0 43 31 73t73 31q44 0 74-30l194-194q11 30 38 49t60 19l53 0q43 0 73 31t31 74q0 38-19 67t-46 36q13-21 13-51 0-43-31-73t-73-31q-44 0-74 30l-194 194q-11-30-38-49t-60-19l-51 0q-44 0-74-31t-31-73q0-38 19-67t46-36q-13 21-13 50z m156 260q0 21-16 37t-37 16l-51 0q-108 0-184-76t-77-184 69-184 166-77l109 0-68-68q-15-15-15-36t15-36q16-16 36-16 21 0 38 16l193 193-193 193q-16 16-38 16-20 0-36-16-15-15-15-36t15-36l68-68-109 0q-54 0-92 46t-38 111 46 111 111 46l51 0q21 0 37 15t16 36z" horiz-adv-x="1198" />
<glyph glyph-name="right-1" unicode="&#xe969;" d="M399 684q31 31 74 31t74-31l334-335-334-334q-30-30-74-30t-74 30q-31 31-31 74t31 73l83 83-378 0q-44 0-74 31t-30 73q0 44 31 74t73 31l378 0-83 83q-31 31-31 74t31 73z" horiz-adv-x="880" />
<glyph glyph-name="up-1" unicode="&#xe968;" d="M366 790l334-334q31-31 31-74t-31-74-74-31-74 31l-83 83 0-378q0-44-31-74t-73-30q-44 0-74 31t-31 73l0 378-83-83q-31-31-74-31t-74 31-31 74 31 74z" horiz-adv-x="731" />
<glyph glyph-name="left-open-outline" unicode="&#xe962;" d="M638 91q0-64-46-110t-110-46q-65 0-110 45l-371 371 371 371q44 44 111 44t111-44q45-45 45-111 0-65-45-110l-150-150 150-150q45-45 45-110z m-490 260l298-298q15-15 37-15t37 15 15 38q0 21-15 36l-224 224 224 224q15 15 15 36 0 23-15 38t-37 15-37-15z" horiz-adv-x="638" />
<glyph glyph-name="left-open-2" unicode="&#xe963;" d="M481 684q31-31 31-74t-31-74l-186-186 186-186q31-31 31-74t-31-74-74-31-74 31l-334 334 334 334q30 31 74 31t74-31z" horiz-adv-x="513" />
<glyph glyph-name="right-open-outline" unicode="&#xe964;" d="M156-66q-64 0-110 46t-46 110 46 110l150 150-150 150q-46 46-46 110 0 65 46 111 44 44 110 44t110-44l371-371-371-371q-45-45-110-45z m0 729q-21 0-37-16t-16-37q0-20 16-36l223-224-223-224q-16-16-16-36 0-21 16-38 15-15 36-15t36 15l298 298-298 298q-15 15-36 15z" horiz-adv-x="638" />
<glyph glyph-name="right-open-2" unicode="&#xe965;" d="M31 684q30 31 74 31t74-31l335-334-335-334q-31-31-74-31t-74 31-31 74 31 74l188 186-188 186q-31 31-31 74t31 74z" horiz-adv-x="514" />
<glyph glyph-name="users-outline" unicode="&#xe95b;" d="M599 273q-108 0-184 76t-76 184 76 184 184 76 184-76 77-184-77-184-184-76z m0 416q-65 0-111-46t-46-111 46-111 111-46 111 46 46 111-46 111-111 46z m416-469q-55 0-93 38t-38 92 38 92 93 38 93-38 38-92-38-92-93-38z m0 209q-31 0-54-23t-23-56q0-31 23-54t55-23 56 23 23 54-23 55-56 24z m0-240q80 0 131-34t51-79q0-23-53-40t-130-18q-43 0-83 6 0-3 1-7t1-7q0-41-96-73t-239-31q-150 0-242 31t-92 73q0 3 1 8t1 8q-50-8-84-8-81 0-132 18t-51 40q0 45 50 79t133 34q99 0 151-50 99 81 265 81t265-81q53 50 151 50z m-833-118q60 0 103 11 5 8 13 18-38 38-115 38-98 0-126-49 44-18 126-18z m416-60q131 0 216 30-25 30-82 53t-134 23q-81 0-138-23t-80-53q84-30 218-30z m416 60q84 0 126 19-13 19-46 33t-81 14q-76 0-115-36 5-6 13-19 40-11 103-11z m-833 149q-55 0-93 38t-38 92 38 92 92 38 92-38 38-92-38-92-93-38z m0 209q-33 0-56-24t-23-55 23-54 56-23 55 23 23 54q0 33-23 56t-54 23z" horiz-adv-x="1198" />
<glyph glyph-name="users-2" unicode="&#xe95a;" d="M860 533q0-108-77-184t-184-76-184 76-76 184 76 184 184 76 184-76 77-184z m286-183q0-54-38-92t-93-38-93 38-38 92 38 92 93 38 93-38 38-92z m-131-161q80 0 131-34t51-79q0-23-53-40t-130-18q-43 0-83 6 0-3 1-7t1-7q0-41-96-73t-239-31q-150 0-242 31t-92 73q0 3 1 8t1 8q-50-8-84-8-81 0-132 18t-51 40q0 45 50 79t133 34q99 0 151-50 99 81 265 81t265-81q53 50 151 50z m-703 161q0-54-38-92t-93-38-93 38-38 92 38 92 93 38q54 0 92-38t38-92z" horiz-adv-x="1198" />
<glyph glyph-name="heart-2" unicode="&#xe961;" d="M508-66q-16 0-29 9-26 18-84 58t-154 113-134 109q-106 106-106 264 0 116 82 198t198 82q143 0 228-118 39 55 99 86t129 31q116 0 198-82t81-198q0-158-106-264-38-38-133-109t-155-113-84-58q-13-9-30-9z m-228 729q-73 0-124-51t-52-125q0-114 76-190 79-79 328-248 249 169 328 248 76 76 76 190 0 74-51 125t-124 51q-74 0-125-51t-51-125q0-21-16-36t-37-15-36 15-15 36q0 74-52 125t-124 51z" horiz-adv-x="1015" />
<glyph glyph-name="heart-filled" unicode="&#xe960;" d="M456 487q0 95-67 161t-162 66-161-66-66-161q0-138 91-229 36-36 128-104t164-118l74-50q281 190 364 273 91 91 91 229 0 95-66 161t-161 66-161-66-66-161z" horiz-adv-x="911" />
<glyph glyph-name="fast-fw-outline" unicode="&#xe973;" d="M573 559l0-419 216 210z m-10 119q36 0 65-26l310-301q-186-181-310-301-28-28-65-28-39 0-66 28t-28 66l0 469q0 39 28 66t66 28z m-459-119l0-419 216 210z m-10 119q36 0 65-26l310-301q-186-181-310-301-28-28-65-28-39 0-66 28t-28 66l0 469q0 39 28 66t66 28z" horiz-adv-x="938" />
<glyph glyph-name="fast-fw-1" unicode="&#xe974;" d="M628 652l310-301q-186-181-310-301-28-28-65-28-39 0-66 28t-28 66l0 469q0 39 28 66t66 28q36 0 65-26z m-469 0l310-301q-186-181-310-301-28-28-65-28-39 0-66 28t-28 66l0 469q0 39 28 66t66 28q36 0 65-26z" horiz-adv-x="938" />
<glyph glyph-name="pause-outline" unicode="&#xe971;" d="M156-41q-65 0-111 46t-46 111l0 469q0 65 46 111t111 46 111-46 46-111l0-469q0-65-46-111t-111-46z m0 676q-21 0-37-15t-16-36l0-469q0-21 16-37t37-16 37 16 16 37l0 469q0 21-16 36t-37 15z m365-676q-65 0-111 46t-46 111l0 469q0 65 46 111t111 46 111-46 46-111l0-469q0-65-46-111t-111-46z m0 676q-21 0-37-15t-16-36l0-469q0-21 16-37t37-16 36 16 15 37l0 469q0 21-15 36t-36 15z" horiz-adv-x="678" />
<glyph glyph-name="pause-2" unicode="&#xe972;" d="M104 663q44 0 74-31t31-73l0-418q0-43-31-73t-74-31-74 30-30 74l0 418q0 44 30 74t74 30z m365 0q44 0 74-30t30-74l0-418q0-44-30-74t-74-30-74 30-30 74l0 418q0 44 30 74t74 30z" horiz-adv-x="573" />
<glyph glyph-name="play-outline" unicode="&#xe96e;" d="M104 610l0-520q1 0 1 1t1 1l265 259-263 256-3 3t-3 1z m0 105q44 0 74-30l344-335q-208-201-345-335-30-30-73-30t-73 31-31 74l0 520q0 44 31 74t73 31z" horiz-adv-x="521" />
<glyph glyph-name="play-2" unicode="&#xe96d;" d="M178 15q-30-30-74-30-43 0-73 31t-31 74l0 520q0 44 31 74t73 31q44 0 74-30l344-335q-206-201-344-335z" horiz-adv-x="521" />
<glyph glyph-name="record-outline" unicode="&#xe977;" d="M313 559q-86 0-148-61t-61-148 61-148 148-61 148 61 61 148-61 148-148 61z m0 104q130 0 221-91t91-221-91-221-221-91-221 91-91 221 91 221 221 91z" horiz-adv-x="625" />
<glyph glyph-name="record-1" unicode="&#xe978;" d="M313 663q130 0 221-91t91-221-91-221-221-91-221 91-91 221 91 221 221 91z" horiz-adv-x="625" />
<glyph glyph-name="rewind-outline" unicode="&#xe975;" d="M365 559l-216-209 216-210 0 419z m10 119q39 0 66-28t28-66l0-469q0-39-28-66t-66-28q-35 0-65 28l-310 301q186 181 310 301 26 26 65 26z m459-119l-216-209 216-210 0 419z m10 119q39 0 66-28t28-66l0-469q0-39-28-66t-66-28q-35 0-65 28l-310 301q186 181 310 301 26 26 65 26z" horiz-adv-x="938" />
<glyph glyph-name="rewind" unicode="&#xe976;" d="M375 678q39 0 66-28t28-66l0-469q0-39-28-66t-66-28q-35 0-65 28l-310 301q186 181 310 301 26 26 65 26z m469 0q39 0 66-28t28-66l0-469q0-39-28-66t-66-28q-35 0-65 28l-310 301q186 181 310 301 26 26 65 26z" horiz-adv-x="938" />
<glyph glyph-name="stop-outline" unicode="&#xe96f;" d="M521 559l-418 0 0-418 418 0 0 418z m0 104q44 0 74-30t30-74l0-418q0-44-30-74t-74-30l-418 0q-44 0-74 30t-30 74l0 418q0 44 30 74t74 30l418 0z" horiz-adv-x="625" />
<glyph glyph-name="stop-2" unicode="&#xe970;" d="M521 663q44 0 74-30t30-74l0-418q0-44-30-74t-74-30l-418 0q-44 0-74 30t-30 74l0 418q0 44 30 74t74 30l418 0z" horiz-adv-x="625" />
<glyph glyph-name="star-2" unicode="&#xe95f;" d="M741-118q-19 0-39 11l-214 121-215-121q-44-24-84 4-41 29-31 79l50 243q-10 9-39 35t-45 40l-99 90q-38 35-21 83t66 54l244 26 103 225q21 46 71 46 48 0 71-46l101-225 245-28q48-4 64-52t-21-83l-183-166 50-241q6-35-16-64t-60-29z m-425 343q-1-4-8-36t-17-84-19-93l190 108q26 14 51 0l190-108-44 214q-6 29 16 49l161 148-218 24q-30 4-41 30l-90 199-90-199q-13-26-43-30l-216-24 161-148q21-19 15-50z" horiz-adv-x="976" />
<glyph glyph-name="star-filled" unicode="&#xe95e;" d="M297 498q69 153 114 253 6 15 24 15t24-15l114-253q164-18 274-30 15-3 21-18t-6-28l-204-186q33-161 55-270 3-15-10-26t-28-2l-240 136q-144-81-240-136-15-9-28 2t-11 26l56 270q-123 111-204 186-13 11-6 27t21 18z" horiz-adv-x="869" />
<glyph glyph-name="user-add-outline" unicode="&#xe959;" d="M938 273l-313 0q-21 0-37 15t-16 36 16 37 37 16l313 0q21 0 37-16t16-37-16-36-37-15z m-156-156q-21 0-37 15t-16 36l0 313q0 21 16 37t37 16 37-16 16-37l0-313q0-21-16-36t-37-15z m-469 573q-65 0-111-46t-46-111 46-111 111-46 111 46 46 111-46 111-111 46z m0 104q108 0 184-76t76-184-76-184-184-76-184 76-76 184 76 184 184 76z m0-676q-74 0-126-23t-73-54q75-29 199-29t198 29q-21 30-73 53t-124 23z m0 104q136 0 224-63t88-146q0-41-89-73t-223-31q-140 0-226 31t-86 73q0 83 86 146t226 63z" horiz-adv-x="990" />
<glyph glyph-name="user-add-1" unicode="&#xe958;" d="M573 533q0-108-76-184t-184-76-184 76-76 184 76 184 184 76 184-76 76-184z m-260-625q-140 0-226 31t-86 73q0 83 86 146t226 63q136 0 224-63t88-146q0-41-89-73t-223-31z m625 469q21 0 37-16t16-37-16-36-37-15l-104 0 0-105q0-21-16-36t-37-15-37 15-16 36l0 105-104 0q-21 0-37 15t-16 36 16 37 37 16l104 0 0 104q0 21 16 37t37 16 37-16 16-37l0-104 104 0z" horiz-adv-x="990" />
<glyph glyph-name="user-delete" unicode="&#xe957;" d="M938 273l-313 0q-21 0-37 15t-16 36 16 37 37 16l313 0q21 0 37-16t16-37-16-36-37-15z m-625 520q108 0 184-76t76-184-76-184-184-76-184 76-76 184 76 184 184 76z m0-573q136 0 224-63t88-146q0-41-89-73t-223-31q-140 0-226 31t-86 73q0 83 86 146t226 63z" horiz-adv-x="990" />
<glyph glyph-name="user-outline" unicode="&#xe95c;" d="M313 689q-65 0-111-46t-46-111 46-111 111-46 111 46 46 111-46 111-111 46z m0 104q108 0 184-76t76-184-76-184-184-76-184 76-76 184 76 184 184 76z m0-676q-74 0-126-23t-73-54q75-29 199-29t198 29q-21 30-73 53t-124 23z m0 104q136 0 224-63t88-146q0-41-89-73t-223-31q-140 0-226 31t-86 73q0 83 86 146t226 63z" horiz-adv-x="625" />
<glyph glyph-name="user-2" unicode="&#xe95d;" d="M313 793q108 0 184-76t76-184-76-184-184-76-184 76-76 184 76 184 184 76z m-313-781q0 83 86 146t226 63q136 0 224-63t88-146q0-41-89-73t-223-31q-140 0-226 31t-86 73z" horiz-adv-x="625" />
<glyph glyph-name="left-bold" unicode="&#xe92f;" d="M378 730l0-190 352 0 0-378-352 0 0-192-378 380z" horiz-adv-x="730" />
<glyph glyph-name="right-bold" unicode="&#xe930;" d="M350 730l380-380-380-380 0 192-350 0 0 378 350 0 0 190z" horiz-adv-x="730" />
<glyph glyph-name="up-bold" unicode="&#xe931;" d="M760 336l-192 0 0-350-376 0 0 350-192 0 380 380z" horiz-adv-x="760" />
<glyph glyph-name="down-bold" unicode="&#xe92e;" d="M760 366l-380-380-380 380 192 0 0 350 376 0 0-350 192 0z" horiz-adv-x="760" />
<glyph glyph-name="user-add" unicode="&#xe8df;" d="M620 128q180-64 180-122l0-106-800 0 0 202q36 14 82 26 94 34 129 69t35 95q0 22-23 48t-31 74q-2 12-23 25t-25 61q0 16 5 26t9 12l4 4q-8 50-12 88-6 54 40 112t160 58 160-58 42-112l-14-88q18-8 18-42-2-28-9-43t-14-17-14-8-9-18q-10-46-33-73t-23-49q0-60 36-95t130-69z m230 272l150 0 0-100-150 0 0-150-100 0 0 150-150 0 0 100 150 0 0 150 100 0 0-150z" horiz-adv-x="1000" />
<glyph glyph-name="star-half" unicode="&#xe80c;" d="M464 832l0-747-251-132q-12-7-22-7-12 0-18 8t-6 20q0 3 1 11l48 279-203 198q-14 15-14 27 0 21 31 26l280 41 126 254q11 23 27 23z" horiz-adv-x="500" />
<glyph glyph-name="ok-circled2" unicode="&#xe819;" d="M653 396l-235-235q-11-11-25-11t-25 11l-164 164q-11 11-11 25t11 25l57 57q11 11 25 11t25-11l82-82 153 153q11 11 25 11t25-11l57-57q11-11 11-25t-11-25z m79-46q0 83-41 152t-110 110-152 41-152-41-110-110-41-152 41-152 110-110 152-41 152 41 110 110 41 152z m125 0q0-117-57-215t-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57 215-57 156-156 57-215z" horiz-adv-x="857.143" />
<glyph glyph-name="help-circled-1" unicode="&#xe8f2;" d="M454 810q190 2 326-130t140-322q2-190-131-327t-323-141q-190-2-327 131t-139 323q-4 190 130 327t324 139z m-2-740q30 0 49 19t19 47q2 30-17 49t-49 19l-2 0q-28 0-47-18t-21-46q0-30 19-49t47-21l2 0z m166 328q26 34 26 78 0 78-54 116-52 38-134 38-64 0-104-26-68-42-72-146l0-4 110 0 0 4q0 26 16 54 16 24 54 24 40 0 52-20 16-20 16-44 0-18-16-40-8-12-20-20l-6-4q-6-4-16-11t-20-15-21-17-17-17q-14-20-18-78l0-8 108 0 0 4q0 12 4 28 6 20 28 36l28 18q46 34 56 50z" horiz-adv-x="920" />
<glyph glyph-name="help-circled" unicode="&#xe836;" d="M500 82l0 107q0 8-5 13t-13 5l-107 0q-8 0-13-5t-5-13l0-107q0-8 5-13t13-5l107 0q8 0 13 5t5 13z m143 375q0 49-31 91t-77 65-95 23q-136 0-207-119-8-13 4-23l74-56q4-3 11-3 9 0 14 7 30 38 48 51 19 13 48 13 27 0 48-15t21-33q0-21-11-34t-38-25q-35-16-64-48t-29-70l0-20q0-8 5-13t13-5l107 0q8 0 13 5t5 13q0 11 12 28t30 28q18 10 27 16t26 20 25 27 16 34 7 45z m214-107q0-117-57-215t-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57 215-57 156-156 57-215z" horiz-adv-x="857.143" />
<glyph glyph-name="info-circled" unicode="&#xe835;" d="M571 82l0 89q0 8-5 13t-13 5l-54 0 0 286q0 8-5 13t-13 5l-179 0q-8 0-13-5t-5-13l0-89q0-8 5-13t13-5l54 0 0-179-54 0q-8 0-13-5t-5-13l0-89q0-8 5-13t13-5l250 0q8 0 13 5t5 13z m-71 500l0 89q0 8-5 13t-13 5l-107 0q-8 0-13-5t-5-13l0-89q0-8 5-13t13-5l107 0q8 0 13 5t5 13z m357-232q0-117-57-215t-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57 215-57 156-156 57-215z" horiz-adv-x="857.143" />
<glyph glyph-name="info-circled-1" unicode="&#xe8f0;" d="M454 810q190 2 326-130t140-322q2-190-131-327t-323-141q-190-2-327 131t-139 323q-4 190 130 327t324 139z m52-152q-42 0-65-24t-23-50q-2-28 15-44t49-16q38 0 61 22t23 54q0 58-60 58z m-120-594q30 0 84 26t106 78l-18 24q-48-36-72-36-14 0-4 38l42 160q26 96-22 96-30 0-89-29t-115-75l16-26q52 34 74 34 12 0 0-34l-36-152q-26-104 34-104z" horiz-adv-x="920" />
<glyph glyph-name="th-large" unicode="&#xe814;" d="M429 279l0-214q0-29-21-50t-50-21l-286 0q-29 0-50 21t-21 50l0 214q0 29 21 50t50 21l286 0q29 0 50-21t21-50z m0 429l0-214q0-29-21-50t-50-21l-286 0q-29 0-50 21t-21 50l0 214q0 29 21 50t50 21l286 0q29 0 50-21t21-50z m500-429l0-214q0-29-21-50t-50-21l-286 0q-29 0-50 21t-21 50l0 214q0 29 21 50t50 21l286 0q29 0 50-21t21-50z m0 429l0-214q0-29-21-50t-50-21l-286 0q-29 0-50 21t-21 50l0 214q0 29 21 50t50 21l286 0q29 0 50-21t21-50z" horiz-adv-x="928.571" />
<glyph glyph-name="eye" unicode="&#xe82b;" d="M929 314q-85 132-213 197 34-58 34-126 0-103-73-177t-177-73-177 73-73 177q0 68 34 126-128-65-213-197 74-114 186-182t242-68 242 68 186 182z m-402 214q0 11-8 19t-19 8q-70 0-120-50t-50-120q0-11 8-19t19-8 19 8 8 19q0 48 34 82t82 34q11 0 19 8t8 19z m473-214q0-19-11-39-78-128-210-206t-279-77-279 78-210 205q-11 20-11 39t11 39q78 128 210 205t279 78 279-78 210-205q11-20 11-39z" horiz-adv-x="1000" />
<glyph glyph-name="eye-1" unicode="&#xe8ec;" d="M500 630q92 0 177-25t141-62 99-77 63-71 20-45-20-44-63-71-99-78-141-62-177-25-177 25-141 62-99 78-63 71-20 44 20 45 63 71 99 77 141 62 177 25z m0-494q92 0 157 63t65 151q0 90-65 153t-157 63-157-63-65-153q0-88 65-151t157-63z m0 214q8-8 37-2t50 11 25-9q0-44-33-75t-79-31-78 31-32 75q0 46 32 77t78 31q14 0 10-23t-12-47 2-38z" horiz-adv-x="1000" />
<glyph glyph-name="eye-off" unicode="&#xe82a;" d="M310 105l44 79q-49 35-76 89t-27 113q0 68 34 126-128-65-213-197 93-144 238-209z m217 424q0 11-8 19t-19 8q-70 0-120-50t-50-120q0-11 8-19t19-8 19 8 8 19q0 48 34 82t82 34q11 0 19 8t8 19z m203 107q0-4-1-5-59-105-176-316t-176-316l-27-50q-6-9-16-9-7 0-75 39-9 6-9 16 0 7 25 49-80 36-147 97t-116 137q-11 17-11 39t11 39q85 131 212 207t277 76q50 0 100-9l30 54q6 9 16 9 3 0 10-3t17-9 18-10 18-10 11-6q9-6 9-15z m21-249q0-78-44-141t-117-92l156 280q4-25 4-47z m250-71q0-20-11-39-22-36-61-81-84-96-194-149t-234-53l41 74q118 10 219 76t168 171q-64 100-157 164l35 62q53-36 102-85t81-103q11-19 11-39z" horiz-adv-x="1000" />
<glyph glyph-name="tag" unicode="&#xe829;" d="M250 600q0 30-21 50t-50 21-50-21-21-50 21-50 50-21 50 21 21 50z m595-321q0-30-21-50l-274-275q-22-21-51-21-30 0-50 21l-399 400q-21 21-36 56t-15 65l0 232q0 29 21 50t50 21l232 0q30 0 65-15t57-36l399-398q21-22 21-51z" horiz-adv-x="857.143" />
<glyph glyph-name="tags" unicode="&#xe828;" d="M250 600q0 30-21 50t-50 21-50-21-21-50 21-50 50-21 50 21 21 50z m595-321q0-30-21-50l-274-275q-22-21-51-21-30 0-50 21l-399 400q-21 21-36 56t-15 65l0 232q0 29 21 50t50 21l232 0q30 0 65-15t57-36l399-398q21-22 21-51z m214 0q0-30-21-50l-274-275q-22-21-51-21-20 0-33 8t-30 25l262 262q21 21 21 50t-21 51l-399 398q-21 21-57 36t-65 15l125 0q30 0 65-15t57-36l399-398q21-22 21-51z" horiz-adv-x="1071.429" />
<glyph glyph-name="camera-alt" unicode="&#xe813;" d="M518 386q0 8-5 13t-13 5q-37 0-63-26t-26-63q0-8 5-13t13-5 13 5 5 13q0 22 16 38t38 16q8 0 13 5t5 13z m125-73q0-59-42-101t-101-42-101 42-42 101 42 101 101 42 101-42 42-101z m-571-320l857 0 0 71-857 0 0-71z m643 320q0 89-63 151t-151 63-151-63-63-151 63-151 151-63 151 63 63 151z m-571 358l214 0 0 71-214 0 0-71z m-71-107l857 0 0 143-462 0-36-71-359 0 0-71z m929 143l0-714q0-30-21-50t-50-21l-857 0q-30 0-50 21t-21 50l0 714q0 30 21 50t50 21l857 0q30 0 50-21t21-50z" horiz-adv-x="1000" />
<glyph glyph-name="upload-cloud-1" unicode="&#xe8ff;" d="M760 494q100 0 170-68t70-166-70-166-170-68l-190 0 0 190 106 0-176 230-174-230 104 0 0-190-248 0q-74 0-128 52t-54 124q0 74 53 126t129 52q14 0 20-2-2 12-2 38 0 108 78 184t188 76q90 0 160-52t94-134q28 4 40 4z" horiz-adv-x="1000" />
<glyph glyph-name="export-1" unicode="&#xe901;" d="M750 60l0 56 100 82 0-188q0-20-15-35t-35-15l-750 0q-20 0-35 15t-15 35l0 550q0 22 14 36t36 14l288 0q-32-24-59-49t-39-39l-10-12-130 0 0-450 650 0z m-82 348q-166 0-242-41t-160-181q0 8 1 22t9 56 22 79 44 83 70 79 107 56 149 23l0 156 332-250-332-260 0 178z" horiz-adv-x="1000" />
<glyph glyph-name="export" unicode="&#xe83e;" d="M786 298l0-145q0-66-47-114t-114-47l-464 0q-66 0-114 47t-47 114l0 464q0 66 47 114t114 47l142 0q7 0 13-5t5-13q0-15-15-18-43-15-74-33-6-2-9-2l-62 0q-37 0-63-26t-26-63l0-464q0-37 26-63t63-26l464 0q37 0 63 26t26 63l0 119q0 11 10 16 16 7 30 21 9 9 20 4 12-5 12-16z m132 277l-214-214q-10-11-25-11-7 0-14 3-22 9-22 33l0 107-89 0q-180 0-244-73-66-76-41-264 2-13-11-19-4-1-7-1-9 0-15 7-6 8-12 17t-22 38-28 56-21 64-10 68q0 27 2 51t8 50 16 49 26 45 38 41 53 34 69 27 89 17 110 6l89 0 0 107q0 23 22 33 7 3 14 3 15 0 25-11l214-214q11-11 11-25t-11-25z" horiz-adv-x="928.571" />
<glyph glyph-name="print" unicode="&#xe852;" d="M214-7l500 0 0 143-500 0 0-143z m0 357l500 0 0 214-89 0q-22 0-38 16t-16 38l0 89-357 0 0-357z m643-36q0 15-11 25t-25 11-25-11-11-25 11-25 25-11 25 11 11 25z m71 0l0-232q0-7-5-13t-13-5l-125 0 0-89q0-22-16-38t-38-16l-536 0q-22 0-38 16t-16 38l0 89-125 0q-7 0-13 5t-5 13l0 232q0 44 32 76t76 32l36 0 0 304q0 22 16 38t38 16l375 0q22 0 49-11t42-27l85-85q16-16 27-42t11-49l0-143 36 0q44 0 76-32t32-76z" horiz-adv-x="928.571" />
<glyph glyph-name="retweet" unicode="&#xe851;" d="M714 11q0-7-5-13t-13-5l-536 0q-4 0-8 1t-5 4-3 4-2 6-1 6l0 335-107 0q-15 0-25 11t-11 25q0 13 8 23l179 214q11 12 27 12t27-12l179-214q8-9 8-23 0-15-11-25t-25-11l-107 0 0-214 321 0q9 0 14-6l89-107q4-6 4-12z m357 232q0-13-8-23l-179-214q-11-13-27-13t-27 13l-179 214q-8 9-8 23 0 15 11 25t25 11l107 0 0 214-321 0q-9 0-14 7l-89 107q-4 5-4 11 0 7 5 13t13 5l536 0q4 0 8-1t5-4 3-4 2-6 1-6l0-335 107 0q15 0 25-11t11-25z" horiz-adv-x="1071.429" />
<glyph glyph-name="retweet-1" unicode="&#xe902;" d="M250 190l272 0 128-140-448 0q-42 0-71 30t-29 70l0 302-102 0 176 198 174-198-100 0 0-262z m650 60l100 0-174-200-176 200 102 0 0 260-274 0-128 140 450 0q40 0 70-29t30-71l0-300z" horiz-adv-x="1000" />
<glyph glyph-name="comment" unicode="&#xe84e;" d="M1000 350q0-97-67-179t-182-130-251-48q-39 0-81 4-110-98-257-135-27-8-64-12-9-1-17 5t-10 16l0 1q-2 2 0 7t1 6 3 5l3 5t4 5 4 5q4 4 17 19t19 21 17 22 18 28 15 33 15 42q-88 50-138 123t-50 157q0 73 40 139t107 114 160 76 194 28q136 0 251-48t182-130 67-179z" horiz-adv-x="1000" />
<glyph glyph-name="location" unicode="&#xe847;" d="M429 493q0 59-42 101t-101 42-101-42-42-101 42-101 101-42 101 42 42 101z m143 0q0-61-18-100l-203-432q-9-18-27-29t-38-11-38 11-26 29l-204 432q-18 39-18 100 0 118 84 202t202 84 202-84 84-202z" horiz-adv-x="571.429" />
<glyph glyph-name="trash" unicode="&#xe844;" d="M286 439l0-321q0-8-5-13t-13-5l-36 0q-8 0-13 5t-5 13l0 321q0 8 5 13t13 5l36 0q8 0 13-5t5-13z m143 0l0-321q0-8-5-13t-13-5l-36 0q-8 0-13 5t-5 13l0 321q0 8 5 13t13 5l36 0q8 0 13-5t5-13z m143 0l0-321q0-8-5-13t-13-5l-36 0q-8 0-13 5t-5 13l0 321q0 8 5 13t13 5l36 0q8 0 13-5t5-13z m71-404l0 529-500 0 0-529q0-12 4-23t8-15 6-5l464 0q2 0 6 5t8 15 4 23z m-375 600l250 0-27 65q-4 5-9 6l-177 0q-6-1-9-6z m518-18l0-36q0-8-5-13t-13-5l-54 0 0-529q0-46-26-80t-63-34l-464 0q-37 0-63 33t-26 79l0 531-54 0q-8 0-13 5t-5 13l0 36q0 8 5 13t13 5l172 0 39 93q8 21 30 35t44 15l179 0q22 0 44-15t30-35l39-93 172 0q8 0 13-5t5-13z" horiz-adv-x="785.714" />
<glyph glyph-name="docs-1" unicode="&#xe905;" d="M970 480q38-10 30-46l-150-556q-4-16-18-23t-30-3l-406 110q-16 4-24 18t-4 28l24 92-180-48q-40-10-50 26l-160 602q-10 36 28 48l454 122q16 4 30-3t18-23l66-244z m-888 190l144-542 392 106-144 540z m702-742l132 492-298 82 76-282q10-34-28-46l-196-52-26-102z" horiz-adv-x="1001" />
<glyph glyph-name="archive" unicode="&#xe909;" d="M840 600l0-50-696 0 0 50q0 22 13 35t25 15l608 0q6 0 14-1t22-14 14-35z m-148 150q6 0 14-1t22-14 14-35l-498 0q0 22 13 35t25 15l410 0z m248-200q34-32 38-46 6-18 0-54l-76-450q-4-22-20-35t-28-15l-710 0q-52 0-60 50-6 26-39 223t-39 227q-10 22-3 44t10 26 21 20l10 10 30 30 0-80 836 0 0 80z m-248-270l0 100-70 0 0-80-260 0 0 80-68 0 0-100q0-50 48-50l300 0q22 0 35 12t13 24z" horiz-adv-x="981" />
<glyph glyph-name="login" unicode="&#xe862;" d="M661 350q0-15-11-25l-304-304q-11-11-25-11t-25 11-11 25l0 161-250 0q-15 0-25 11t-11 25l0 214q0 15 11 25t25 11l250 0 0 161q0 15 11 25t25 11 25-11l304-304q11-11 11-25z m196 196l0-393q0-66-47-114t-114-47l-179 0q-7 0-13 5t-5 13q0 2-1 11t0 15 2 13 6 11 11 4l179 0q37 0 63 26t26 63l0 393q0 37-26 63t-63 26l-174 0t-6 1-6 2-4 3-4 5-1 8q0 2-1 11t0 15 2 13 6 11 11 4l179 0q66 0 114-47t47-114z" horiz-adv-x="857.143" />
<glyph glyph-name="login-1" unicode="&#xe90c;" d="M800 800q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-450 0q-40 0-69 30t-29 70l0 100 98 0 0-100 450 0 0 700-450 0 0-150-98 0 0 150q0 42 29 71t69 29l450 0z m-350-670l0 120-450 0 0 150 450 0 0 120 200-194z" horiz-adv-x="900" />
<glyph glyph-name="logout" unicode="&#xe867;" d="M357 46q0-2 1-11t0-15-2-13-6-11-11-4l-179 0q-66 0-114 47t-47 114l0 393q0 66 47 114t114 47l179 0q7 0 13-5t5-13q0-2 1-11t0-15-2-13-6-11-11-4l-179 0q-37 0-63-26t-26-63l0-393q0-37 26-63t63-26l174 0t6-1 6-2 4-3 4-5 1-8z m518 304q0-15-11-25l-304-304q-11-11-25-11t-25 11-11 25l0 161-250 0q-15 0-25 11t-11 25l0 214q0 15 11 25t25 11l250 0 0 161q0 15 11 25t25 11 25-11l304-304q11-11 11-25z" horiz-adv-x="928.571" />
<glyph glyph-name="logout-1" unicode="&#xe90d;" d="M502 0l0 100 98 0 0-100q0-40-29-70t-71-30l-400 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l400 0q42 0 71-29t29-71l0-150-98 0 0 150-402 0 0-700 402 0z m398 326l-198-196 0 120-450 0 0 150 450 0 0 120z" horiz-adv-x="900" />
<glyph glyph-name="resize-full-1" unicode="&#xe91c;" d="M476 746l316 0 0-316-100 124-146-152-100 100 152 146z m-230-444l100-100-152-146 122-100-316 0 0 316 100-122z" horiz-adv-x="792" />
<glyph glyph-name="resize-full-2" unicode="&#xe979;" d="M784 111l127 128 0-335-335 0 128 129-128 127 79 79z m-431 686l-129-127 128-127-80-80-126 128-128-129 0 335 335 0z m0-637l-129-127 129-129-335 0 0 335 128-128 128 128z m558 637l0-335-127 129-128-128-79 80 127 127-128 127 335 0z" horiz-adv-x="928" />
<glyph glyph-name="resize-full" unicode="&#xe86b;" d="M421 261q0-7-6-13l-185-185 80-80q11-11 11-25t-11-25-25-11l-250 0q-15 0-25 11t-11 25l0 250q0 15 11 25t25 11 25-11l80-80 185 185q6 6 13 6t13-6l64-64q6-6 6-13z m436 482l0-250q0-15-11-25t-25-11-25 11l-80 80-185-185q-6-6-13-6t-13 6l-64 64q-6 6-6 13t6 13l185 185-80 80q-11 11-11 25t11 25 25 11l250 0q15 0 25-11t11-25z" horiz-adv-x="857.143" />
<glyph glyph-name="resize-full-alt-1" unicode="&#xe97a;" d="M839 55l72 72 0-223-223 0 72 72-184 184 79 79z m-749 591l-72-72 0 223 223 0-72-72 184-184-79-79z m670 79l-72 72 223 0 0-223-72 72-184-184-79 79z m-407-565l-184-184 72-72-223 0 0 223 72-72 184 184z" horiz-adv-x="928" />
<glyph glyph-name="resize-small-2" unicode="&#xe97b;" d="M704 33l-128-129 0 335 335 0-127-128 127-128-79-79z m-686 429l128 129-127 126 79 79 126-126 129 127 0-335-335 0z m0-479l128 128-128 128 335 0 0-335-129 129-127-129z m558 479l0 335 128-127 128 126 78-79-126-126 127-129-335 0z" horiz-adv-x="928" />
<glyph glyph-name="resize-small-1" unicode="&#xe91b;" d="M156 146l-106 100 296 0 0-296-100 106-146-156-100 100z m744 554l-154-144 104-100-294 0 0 294 100-104 144 154z" horiz-adv-x="900" />
<glyph glyph-name="resize-small" unicode="&#xe86d;" d="M429 314l0-250q0-15-11-25t-25-11-25 11l-80 80-185-185q-6-6-13-6t-13 6l-64 64q-6 6-6 13t6 13l185 185-80 80q-11 11-11 25t11 25 25 11l250 0q15 0 25-11t11-25z m421 375q0-7-6-13l-185-185 80-80q11-11 11-25t-11-25-25-11l-250 0q-15 0-25 11t-11 25l0 250q0 15 11 25t25 11 25-11l80-80 185 185q6 6 13 6t13-6l64-64q6-6 6-13z" horiz-adv-x="857.143" />
<glyph glyph-name="resize-small-alt" unicode="&#xe97c;" d="M648 88l-72-72 0 223 223 0-72-72 184-184-79-79z m-448 447l-182 183 79 79 183-182 73 70-1-222-222-1z m-182-552l184 184-72 72 223 0 0-223-72 72-184-184z m782 479l-224 0 0 225 73-72 183 182 79-79-183-183z" horiz-adv-x="928" />
<glyph glyph-name="move-1" unicode="&#xe97e;" d="M521 239l0-167 111 0-168-168-166 168 111 0 0 167 112 0z m-112 223l0 168-111 0 166 167 168-167-111 0 0-168-112 0z m-56-167l-167 0 0-111-168 167 168 168 0-112 167 0 0-112z m223 112l168 0 0 112 167-168-167-167 0 111-168 0 0 112z" horiz-adv-x="928" />
<glyph glyph-name="publish" unicode="&#xe91a;" d="M900 800q42 0 71-30t29-70l0-600q0-42-29-71t-71-29l-198 0 0 98 200 0 0 462-802 0 0-462 200 0 0-98-200 0q-40 0-70 29t-30 71l0 600q0 40 30 70t70 30l800 0z m-770-168q38 0 38 38 0 16-11 26t-27 10-27-11-11-25q0-16 11-27t27-11z m100 0q38 0 38 38 0 16-11 26t-27 10-27-11-11-25q0-16 11-27t27-11z m672 6l0 62-602 0 0-62 602 0z m-404-198l242-240-150 0 0-300-184 0 0 300-150 0z" horiz-adv-x="1000" />
<glyph glyph-name="arrow-combo" unicode="&#xe919;" d="M230 850l230-364-460 0z m0-1000l-230 366 460 0z" horiz-adv-x="460" />
<glyph glyph-name="zoom-in" unicode="&#xe866;" d="M571 404l0-36q0-7-5-13t-13-5l-125 0 0-125q0-7-5-13t-13-5l-36 0q-7 0-13 5t-5 13l0 125-125 0q-7 0-13 5t-5 13l0 36q0 7 5 13t13 5l125 0 0 125q0 7 5 13t13 5l36 0q7 0 13-5t5-13l0-125 125 0q7 0 13-5t5-13z m71-18q0 103-73 177t-177 73-177-73-73-177 73-177 177-73 177 73 73 177z m286-464q0-30-21-50t-50-21q-30 0-50 21l-191 191q-100-69-223-69-80 0-153 31t-126 84-84 126-31 153 31 153 84 126 126 84 153 31 153-31 126-84 84-126 31-153q0-123-69-223l191-191q21-21 21-50z" horiz-adv-x="928.571" />
<glyph glyph-name="chart-pie" unicode="&#xe949;" d="M368 770l0-368-368 0q18 146 121 249t247 119z m106 0q156-20 261-139t105-279q0-174-123-298t-299-124q-160 0-278 105t-140 263l424 0q20 0 35 14t15 36l0 422z" horiz-adv-x="840" />
<glyph glyph-name="zoom-out" unicode="&#xe865;" d="M571 404l0-36q0-7-5-13t-13-5l-321 0q-7 0-13 5t-5 13l0 36q0 7 5 13t13 5l321 0q7 0 13-5t5-13z m71-18q0 103-73 177t-177 73-177-73-73-177 73-177 177-73 177 73 73 177z m286-464q0-30-21-50t-50-21q-30 0-50 21l-191 191q-100-69-223-69-80 0-153 31t-126 84-84 126-31 153 31 153 84 126 126 84 153 31 153-31 126-84 84-126 31-153q0-123-69-223l191-191q21-21 21-50z" horiz-adv-x="928.571" />
<glyph glyph-name="database" unicode="&#xe94e;" d="M686 208q14 20 14-2l0-100q0-74-104-135t-246-61q-140 0-245 61t-105 135l0 100q0 8 4 10t10-8q32-52 125-86t211-34 211 34 125 86z m2 254q8 16 12 0l0-116q0-68-102-114t-248-46q-144 0-247 46t-103 114l0 116q0 20 14 0 30-46 124-75t212-29 212 29 126 75z m-338 328q144 0 247-39t103-93l0-64q0-58-103-99t-247-41-247 41-103 99l0 64q0 54 103 93t247 39z" horiz-adv-x="700" />
<glyph glyph-name="drive" unicode="&#xe94f;" d="M884 304q26-44 14-96l-34-184q-2-20-19-35t-39-15l-712 0q-20 0-38 15t-20 35l-34 184q-8 52 14 96l158 374q22 46 72 46l408 0q50 0 74-46z m-68-132q2 22-10 38t-34 16l-644 0q-22 0-34-16t-10-38l14-74q2-22 19-37t39-15l590 0q22 0 39 15t19 37z" horiz-adv-x="902" />
<glyph glyph-name="down-circled-1" unicode="&#xe918;" d="M460 810q190 0 325-135t135-325-135-325-325-135-325 135-135 325 135 325 325 135z m0-820q148 0 254 106t106 254q0 150-106 255t-254 105-254-105-106-255q0-148 106-254t254-106z m90 554l0-206 112 0-202-190-202 190 112 0 0 206 180 0z" horiz-adv-x="920" />
<glyph glyph-name="down-circled2" unicode="&#xe864;" d="M625 332q0-7-6-13l-178-178q-6-5-13-5t-13 5l-179 179q-8 9-4 20t17 11l107 0 0 196q0 8 5 13t13 5l107 0q8 0 13-5t5-13l0-196 107 0q8 0 13-5t5-13z m-196 321q-83 0-152-41t-110-110-41-152 41-152 110-110 152-41 152 41 110 110 41 152-41 152-110 110-152 41z m429-304q0-117-57-215t-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57 215-57 156-156 57-215z" horiz-adv-x="857.143" />
<glyph glyph-name="left-circled-1" unicode="&#xe917;" d="M920 350q0-190-135-325t-325-135-325 135-135 325q0 192 135 326t325 134 325-134 135-326z m-820 0q0-148 106-254t254-106 254 106 106 254q0 150-106 255t-254 105-254-105-106-255z m552-90l-204 0 0-112-190 202 190 204 0-114 204 0 0-180z" horiz-adv-x="920" />
<glyph glyph-name="right-circled-1" unicode="&#xe916;" d="M0 350q0 190 135 325t325 135 325-135 135-325-135-325-325-135-325 135-135 325z m820 0q0 150-105 255t-255 105q-148 0-254-105t-106-255q0-148 106-254t254-106q150 0 255 106t105 254z m-552 90l204 0 0 114 190-204-190-202 0 112-204 0 0 180z" horiz-adv-x="920" />
<glyph glyph-name="up-circled-1" unicode="&#xe915;" d="M460-110q-190 0-325 135t-135 325q0 192 135 326t325 134 325-134 135-326q0-190-135-325t-325-135z m0 820q-148 0-254-105t-106-255q0-148 106-254t254-106q150 0 255 106t105 254q0 150-105 255t-255 105z m-90-552l0 204-112 0 202 192 202-192-112 0 0-204-180 0z" horiz-adv-x="920" />
<glyph glyph-name="up-circled2" unicode="&#xe863;" d="M624 361q-4-11-17-11l-107 0 0-196q0-8-5-13t-13-5l-107 0q-8 0-13 5t-5 13l0 196-107 0q-8 0-13 5t-5 13q0 7 6 13l178 178q6 5 13 5t13-5l179-179q8-9 4-20z m-195 292q-83 0-152-41t-110-110-41-152 41-152 110-110 152-41 152 41 110 110 41 152-41 152-110 110-152 41z m429-304q0-117-57-215t-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57 215-57 156-156 57-215z" horiz-adv-x="857.143" />
<glyph glyph-name="down-open-1" unicode="&#xe913;" d="M564 422l-234-224q-18-18-40-18t-40 18l-234 224q-16 16-16 41t16 41q38 38 78 0l196-188 196 188q40 38 78 0 16-16 16-41t-16-41z" horiz-adv-x="580" />
<glyph glyph-name="down-open" unicode="&#xe87b;" d="M899 457q0-30-21-50l-363-363q-21-21-51-21t-50 21l-363 363q-21 20-21 50t21 51l41 42q22 21 51 21 30 0 50-21l271-271 271 271q21 21 50 21t51-21l42-42q21-22 21-51z" horiz-adv-x="928.571" />
<glyph glyph-name="left-open-1" unicode="&#xe912;" d="M242 626q14 16 39 16t41-16q38-36 0-80l-186-196 186-194q38-44 0-80-16-16-40-16t-40 16l-226 236q-16 16-16 38 0 24 16 40 206 214 226 236z" horiz-adv-x="341" />
<glyph glyph-name="left-open" unicode="&#xe87a;" d="M414-28l-364 363q-21 21-21 50t21 50l364 363q21 21 50 21t50-21l42-42q21-21 21-50t-21-50l-271-271 271-271q21-21 21-51t-21-50l-42-42q-21-21-50-21t-50 21z" horiz-adv-x="642.857" />
<glyph glyph-name="right-open" unicode="&#xe879;" d="M613 386q0-29-21-51l-364-363q-21-21-50-21t-50 21l-42 42q-21 22-21 51 0 30 21 50l271 271-271 271q-21 22-21 51 0 30 21 50l42 42q20 21 50 21t50-21l364-363q21-21 21-50z" horiz-adv-x="642.857" />
<glyph glyph-name="right-open-1" unicode="&#xe914;" d="M98 626l226-236q16-16 16-40 0-22-16-38l-226-236q-16-16-40-16t-40 16q-36 36 0 80l186 194-186 196q-36 44 0 80 16 16 41 16t39-16z" horiz-adv-x="340" />
<glyph glyph-name="up-open-1" unicode="&#xe911;" d="M564 280q16-16 16-41t-16-41q-38-38-78 0l-196 188-196-188q-40-38-78 0-16 16-16 41t16 41l234 224q16 16 40 16t40-16z" horiz-adv-x="580" />
<glyph glyph-name="up-open" unicode="&#xe878;" d="M899 171q0-30-21-50l-42-42q-21-21-51-21t-50 21l-271 271-271-271q-20-21-50-21t-50 21l-42 42q-21 20-21 50t21 51l363 363q21 21 50 21t51-21l363-363q21-21 21-51z" horiz-adv-x="928.571" />
<glyph glyph-name="down-open-mini" unicode="&#xe910;" d="M405 470q22 26 48 0 26-22 0-48l-196-192q-22-22-48 0l-196 192q-26 26 0 48 24 24 50 0l170-156z" horiz-adv-x="466" />
<glyph glyph-name="arrows-cw" unicode="&#xe88a;" d="M843 261q0-3-1-4-36-150-150-242t-267-93q-81 0-158 31t-136 88l-72-72q-11-11-25-11t-25 11-11 25l0 250q0 15 11 25t25 11l250 0q15 0 25-11t11-25-11-25l-76-76q40-37 90-57t104-20q75 0 140 36t104 100q6 9 30 65 4 13 17 13l107 0q7 0 13-5t5-13z m14 446l0-250q0-15-11-25t-25-11l-250 0q-15 0-25 11t-11 25 11 25l77 77q-83 76-195 76-75 0-140-36t-104-100q-6-9-30-65-4-13-17-13l-111 0q-7 0-13 5t-5 13l0 4q36 150 151 242t268 93q81 0 158-31t137-87l73 72q11 11 25 11t25-11 11-25z" horiz-adv-x="857.143" />
<glyph glyph-name="left-open-mini" unicode="&#xe91f;" d="M252 180q26-26 0-48-26-26-48 0l-192 194q-24 24 0 50l192 194q22 26 48 0 26-22 0-48l-156-172z" horiz-adv-x="265" />
<glyph glyph-name="play-circled2" unicode="&#xe893;" d="M661 350q0-21-18-31l-304-179q-8-5-18-5-9 0-18 4-18 11-18 31l0 357q0 21 18 31t36-1l304-179q18-10 18-31z m71 0q0 83-41 152t-110 110-152 41-152-41-110-110-41-152 41-152 110-110 152-41 152 41 110 110 41 152z m125 0q0-117-57-215t-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57 215-57 156-156 57-215z" horiz-adv-x="857.143" />
<glyph glyph-name="to-end-alt" unicode="&#xe88f;" d="M25-71q-11-11-18-7t-7 18l0 821q0 15 7 18t18-7l396-396q4-4 7-11l0 396q0 15 7 18t18-7l396-396q4-4 7-11l0 378q0 15 11 25t25 11l71 0q15 0 25-11t11-25l0-786q0-15-11-25t-25-11l-71 0q-15 0-25 11t-11 25l0 378q-3-6-7-11l-396-396q-11-11-18-7t-7 18l0 396q-3-6-7-11z" horiz-adv-x="1000" />
<glyph glyph-name="right-open-mini" unicode="&#xe920;" d="M13 180l158 170-158 172q-26 26 0 48 26 26 48 0l192-194q24-26 0-50l-192-194q-22-26-48 0-26 22 0 48z" horiz-adv-x="265" />
<glyph glyph-name="to-start-alt" unicode="&#xe88d;" d="M975 771q11 11 18 7t7-18l0-821q0-15-7-18t-18 7l-396 396q-5 5-7 11l0-396q0-15-7-18t-18 7l-396 396q-5 5-7 11l0-378q0-15-11-25t-25-11l-71 0q-15 0-25 11t-11 25l0 786q0 15 11 25t25 11l71 0q15 0 25-11t11-25l0-378q2 6 7 11l396 396q11 11 18 7t7-18l0-396q2 6 7 11z" horiz-adv-x="1000" />
<glyph glyph-name="up-open-mini" unicode="&#xe921;" d="M62 230q-26-22-50 0-24 24 0 50l196 190q26 26 48 0l196-190q24-26 0-50-24-22-50 0l-170 158z" horiz-adv-x="464" />
<glyph glyph-name="down-open-big" unicode="&#xe922;" d="M63 570l370-356 372 356q22 26 48 0 26-22 0-48l-396-392q-22-22-48 0l-396 392q-26 26 0 48 24 24 50 0z" horiz-adv-x="866" />
<glyph glyph-name="left-open-big" unicode="&#xe923;" d="M452-20q26-26 0-48-26-26-48 0l-392 394q-24 24 0 50l392 394q22 26 48 0 26-22 0-48l-358-372z" horiz-adv-x="465" />
<glyph glyph-name="right-open-big" unicode="&#xe925;" d="M13-20l358 370-358 372q-26 26 0 48 26 26 48 0l392-394q24-26 0-50l-392-394q-22-26-48 0-26 22 0 48z" horiz-adv-x="465" />
<glyph glyph-name="up-open-big" unicode="&#xe924;" d="M804 130l-372 358-370-358q-26-22-50 0-24 24 0 50l396 390q26 26 48 0l396-390q24-26 0-50-26-22-48 0z" horiz-adv-x="864" />
<glyph glyph-name="back-in-time" unicode="&#xe943;" d="M532 760q170 0 289-120t119-290-119-290-289-120q-138 0-252 88l70 76q82-60 182-60 126 0 216 90t90 216q0 128-90 218t-216 90q-124 0-213-86t-93-210l142 0-184-206-184 206 124 0q4 166 123 282t285 116z m-36-190l70 0 0-204 130-130-50-50-150 150 0 234z" horiz-adv-x="940" />
<glyph glyph-name="font" unicode="&#xe8a2;" d="M405 538l-95-251q41-1 86-1t66-1 29 0l16 1q-18 53-51 134-30 74-51 118z m-393-617l-12 0 1 44q12 4 45 10 50 9 61 17 11 9 27 38l132 344 156 404 71 0 6-12 114-268q57-135 69-166 22-57 54-131 15-32 36-92 13-37 36-83 12-27 20-32 12-11 39-13 26-3 57-15 3-22 3-32 0-8-1-15-45 0-107 4-52 4-105 4-44 0-75-1l-112-6-32-1q0 25 2 44l73 16q31 7 38 13 7 7 7 15t-3 18l-26 64-51 127-251 1q-16-36-58-153-13-36-13-47 0-17 9-24 15-12 57-18 2 0 8-1t17-3 23-3q1-16 1-32 0-9-1-15-37 0-195 11l-27-4q-45-8-93-8z" horiz-adv-x="928.571" />
<glyph glyph-name="bold" unicode="&#xe8a3;" d="M310 1q42-18 78-18 73 0 121 23t68 63q21 39 21 101 0 64-23 100-32 52-79 70-45 18-138 18-41 0-56-6l0-80-1-97 2-151q0-8 7-25z m-8 416q24-4 61-4 98 0 147 36t50 125q0 62-47 104t-142 42q-29 0-73-7 0-25 1-43 4-68 3-156l-1-55q0-24 1-43z m-302-496l1 52q25 5 38 7 43 7 69 17 9 15 12 28 5 37 5 108l-1 277q-3 143-5 225-1 49-6 61-1 2-7 7-10 7-39 8-17 1-64 7l-2 46 145 3 212 7 25 1q3 0 8 0t8 0q1 0 12 0t23 0l41 0q49 0 107-15 24-7 54-22 32-16 57-42t36-58 12-68q0-39-18-71t-53-59q-15-11-84-43 99-23 149-81 51-59 51-132 0-42-16-90-12-35-40-65-37-40-78-60t-113-33q-46-8-110-6l-110 2q-47 1-166-6-18-2-152-6z" horiz-adv-x="785.714" />
<glyph glyph-name="italic" unicode="&#xe8a4;" d="M0-77l9 47q2 1 43 11 42 11 65 22 16 21 23 56l15 78 31 150 7 36q4 25 9 47t9 37 7 26 5 17 2 6l16 88 9 35 12 75 4 28 0 21q-23 12-80 16-16 1-21 2l11 57 177-8q22-1 41-1 37 0 119 5 18 1 38 3t20 1q-1-11-3-21-4-16-7-28-31-11-61-17-36-9-56-17-7-17-13-49-5-25-7-46-25-111-37-171l-34-174-21-88-24-131-7-25q-1-4 1-15 36-8 66-12 20-3 37-6-1-16-4-32-4-17-5-23-10 0-13-1-13-1-23-1-5 0-16 2t-81 9l-110 1q-23 1-97-6-41-4-55-5z" horiz-adv-x="571.429" />
<glyph glyph-name="text-height" unicode="&#xe8a5;" d="M45 778l30-15q11-3 118-3l73 0 11 2 64 1 120-1 163 0 19-1q8-1 16 4t12 9l4 4 23 1q8 0 16-1l0-58t1-73l1-56-1-32q0-18-2-28-22-8-38-10-14 24-30 71-4 13-9 35t-6 37-3 16q-7 8-15 11-4 1-24 1t-58-1-62-1q-19 0-37-3-6-54-4-76l1-85 0-185 2-200-1-82q-1-26 6-47 27-14 50-18 1 0 10-3t25-7 24-7q17-4 28-10 3-25 3-28 0-6-2-16-8-1-19-1-61 0-104 6-40 4-133 4-49 0-130-8-27-2-39-2-1 12-1 15l-1 15 0 5q12 18 44 27 78 21 89 28 5 12 7 31 4 107 3 242l-3 239q-1 35 0 66t0 57-1 32-3 8q-3 3-8 3-21 3-83 3-24 0-56-8t-41-14q-7-5-12-18t-12-42-13-47q-3-11-11-18t-11-7q-25 15-31 25l0 214z m928-714q18 0 23-10t-6-25l-70-90q-11-15-27-15t-27 15l-70 90q-11 15-6 25t23 10l45 0 0 571-45 0q-18 0-23 10t6 25l70 90q11 15 27 15t27-15l70-90q11-15 6-25t-23-10l-45 0 0-571 45 0z" horiz-adv-x="1000" />
<glyph glyph-name="text-width" unicode="&#xe8a6;" d="M45 778l30-15q11-3 118-3l73 0 11 2 64 1 249-1 177 0 19-1q8-1 16 4t12 9l4 4 23 1q8 0 16-1l0-58t1-73l1-56-1-32q0-18-2-28-22-8-38-10-14 24-30 71-4 13-9 35t-6 37-3 16q-7 8-15 11-4 1-33 1t-77-1-71-1q-52 0-71-3-6-54-4-76l1-85 0 29 2-200-1-82q-1-26 6-47 27-14 50-18 1 0 10-3t25-7 24-7q17-4 28-10 3-25 3-28 0-6-2-16-8-1-19-1-61 0-104 6-40 4-133 4-46 0-130-7-25-3-39-3-1 12-1 15l-1 15 0 5q12 18 44 27 78 21 89 28 5 12 7 31 3 76 3 242l-3 25q0 148-1 155-1 6-3 8-3 3-8 3-21 3-83 3-28 0-94-8t-74-13q-7-5-12-18t-12-42-13-47q-3-11-11-18t-11-7q-25 15-31 25l0 214z m795-722q15-11 15-27t-15-27l-90-70q-15-11-25-6t-10 23l0 45-571 0 0-45q0-18-10-23t-25 6l-90 70q-15 11-15 27t15 27l90 70q15 11 25 6t10-23l0-45 571 0 0 45q0 18 10 23t25-6z" horiz-adv-x="857.143" />
<glyph glyph-name="align-left" unicode="&#xe8ba;" d="M1000 100l0-71q0-15-11-25t-25-11l-929 0q-15 0-25 11t-11 25l0 71q0 15 11 25t25 11l929 0q15 0 25-11t11-25z m-214 214l0-71q0-15-11-25t-25-11l-714 0q-15 0-25 11t-11 25l0 71q0 15 11 25t25 11l714 0q15 0 25-11t11-25z m143 214l0-71q0-15-11-25t-25-11l-857 0q-15 0-25 11t-11 25l0 71q0 15 11 25t25 11l857 0q15 0 25-11t11-25z m-214 214l0-71q0-15-11-25t-25-11l-643 0q-15 0-25 11t-11 25l0 71q0 15 11 25t25 11l643 0q15 0 25-11t11-25z" horiz-adv-x="1000" />
<glyph glyph-name="align-center" unicode="&#xe8b9;" d="M1000 100l0-71q0-15-11-25t-25-11l-929 0q-15 0-25 11t-11 25l0 71q0 15 11 25t25 11l929 0q15 0 25-11t11-25z m-214 214l0-71q0-15-11-25t-25-11l-500 0q-15 0-25 11t-11 25l0 71q0 15 11 25t25 11l500 0q15 0 25-11t11-25z m143 214l0-71q0-15-11-25t-25-11l-786 0q-15 0-25 11t-11 25l0 71q0 15 11 25t25 11l786 0q15 0 25-11t11-25z m-214 214l0-71q0-15-11-25t-25-11l-357 0q-15 0-25 11t-11 25l0 71q0 15 11 25t25 11l357 0q15 0 25-11t11-25z" horiz-adv-x="1000" />
<glyph glyph-name="align-right" unicode="&#xe8b8;" d="M1000 100l0-71q0-15-11-25t-25-11l-929 0q-15 0-25 11t-11 25l0 71q0 15 11 25t25 11l929 0q15 0 25-11t11-25z m0 214l0-71q0-15-11-25t-25-11l-714 0q-15 0-25 11t-11 25l0 71q0 15 11 25t25 11l714 0q15 0 25-11t11-25z m0 214l0-71q0-15-11-25t-25-11l-857 0q-15 0-25 11t-11 25l0 71q0 15 11 25t25 11l857 0q15 0 25-11t11-25z m0 214l0-71q0-15-11-25t-25-11l-643 0q-15 0-25 11t-11 25l0 71q0 15 11 25t25 11l643 0q15 0 25-11t11-25z" horiz-adv-x="1000" />
<glyph glyph-name="align-justify" unicode="&#xe8b7;" d="M1000 100l0-71q0-15-11-25t-25-11l-929 0q-15 0-25 11t-11 25l0 71q0 15 11 25t25 11l929 0q15 0 25-11t11-25z m0 214l0-71q0-15-11-25t-25-11l-929 0q-15 0-25 11t-11 25l0 71q0 15 11 25t25 11l929 0q15 0 25-11t11-25z m0 214l0-71q0-15-11-25t-25-11l-929 0q-15 0-25 11t-11 25l0 71q0 15 11 25t25 11l929 0q15 0 25-11t11-25z m0 214l0-71q0-15-11-25t-25-11l-929 0q-15 0-25 11t-11 25l0 71q0 15 11 25t25 11l929 0q15 0 25-11t11-25z" horiz-adv-x="1000" />
<glyph glyph-name="list" unicode="&#xe8b6;" d="M143 118l0-107q0-7-5-13t-13-5l-107 0q-7 0-13 5t-5 13l0 107q0 7 5 13t13 5l107 0q7 0 13-5t5-13z m0 214l0-107q0-7-5-13t-13-5l-107 0q-7 0-13 5t-5 13l0 107q0 7 5 13t13 5l107 0q7 0 13-5t5-13z m0 214l0-107q0-7-5-13t-13-5l-107 0q-7 0-13 5t-5 13l0 107q0 7 5 13t13 5l107 0q7 0 13-5t5-13z m857-429l0-107q0-7-5-13t-13-5l-750 0q-7 0-13 5t-5 13l0 107q0 7 5 13t13 5l750 0q7 0 13-5t5-13z m-857 643l0-107q0-7-5-13t-13-5l-107 0q-7 0-13 5t-5 13l0 107q0 7 5 13t13 5l107 0q7 0 13-5t5-13z m857-429l0-107q0-7-5-13t-13-5l-750 0q-7 0-13 5t-5 13l0 107q0 7 5 13t13 5l750 0q7 0 13-5t5-13z m0 214l0-107q0-7-5-13t-13-5l-750 0q-7 0-13 5t-5 13l0 107q0 7 5 13t13 5l750 0q7 0 13-5t5-13z m0 214l0-107q0-7-5-13t-13-5l-750 0q-7 0-13 5t-5 13l0 107q0 7 5 13t13 5l750 0q7 0 13-5t5-13z" horiz-adv-x="1000" />
<glyph glyph-name="indent-left" unicode="&#xe8b5;" d="M214 546l0-321q0-7-5-13t-13-5q-8 0-13 5l-161 161q-5 5-5 13t5 13l161 161q5 5 13 5 7 0 13-5t5-13z m786-429l0-107q0-7-5-13t-13-5l-964 0q-7 0-13 5t-5 13l0 107q0 7 5 13t13 5l964 0q7 0 13-5t5-13z m0 214l0-107q0-7-5-13t-13-5l-607 0q-7 0-13 5t-5 13l0 107q0 7 5 13t13 5l607 0q7 0 13-5t5-13z m0 214l0-107q0-7-5-13t-13-5l-607 0q-7 0-13 5t-5 13l0 107q0 7 5 13t13 5l607 0q7 0 13-5t5-13z m0 214l0-107q0-7-5-13t-13-5l-964 0q-7 0-13 5t-5 13l0 107q0 7 5 13t13 5l964 0q7 0 13-5t5-13z" horiz-adv-x="1000" />
<glyph glyph-name="indent-right" unicode="&#xe8b4;" d="M196 386q0-8-5-13l-161-161q-5-5-13-5-7 0-13 5t-5 13l0 321q0 7 5 13t13 5q8 0 13-5l161-161q5-5 5-13z m804-268l0-107q0-7-5-13t-13-5l-964 0q-7 0-13 5t-5 13l0 107q0 7 5 13t13 5l964 0q7 0 13-5t5-13z m0 214l0-107q0-7-5-13t-13-5l-607 0q-7 0-13 5t-5 13l0 107q0 7 5 13t13 5l607 0q7 0 13-5t5-13z m0 214l0-107q0-7-5-13t-13-5l-607 0q-7 0-13 5t-5 13l0 107q0 7 5 13t13 5l607 0q7 0 13-5t5-13z m0 214l0-107q0-7-5-13t-13-5l-964 0q-7 0-13 5t-5 13l0 107q0 7 5 13t13 5l964 0q7 0 13-5t5-13z" horiz-adv-x="1000" />
<glyph glyph-name="dot" unicode="&#xe94c;" d="M110 460q46 0 78-32t32-78q0-44-32-77t-78-33-78 33-32 77q0 46 32 78t78 32z" horiz-adv-x="220" />
<glyph glyph-name="dot-2" unicode="&#xe94b;" d="M110 460q46 0 78-32t32-78q0-44-32-77t-78-33-78 32-32 78 32 78 78 32z m350 0q46 0 78-32t32-78q0-44-33-77t-77-33q-46 0-78 32t-32 78 32 78 78 32z" horiz-adv-x="570" />
<glyph glyph-name="dot-3" unicode="&#xe94a;" d="M110 460q46 0 78-32t32-78q0-44-32-77t-78-33-78 33-32 77q0 46 32 78t78 32z m350 0q46 0 78-32t32-78q0-44-33-77t-77-33-77 33-33 77q0 46 32 78t78 32z m350 0q46 0 78-32t32-78q0-44-32-77t-78-33-78 33-32 77q0 46 32 78t78 32z" horiz-adv-x="920" />
<glyph glyph-name="off" unicode="&#xe8bb;" d="M857 350q0-87-34-166t-92-137-137-92-166-34-166 34-137 92-92 137-34 166q0 102 45 191t126 151q24 18 53 14t47-28q18-23 14-53t-28-47q-55-41-85-101t-30-127q0-58 23-111t61-91 91-61 111-23 111 23 91 61 61 91 23 111q0 68-30 127t-85 101q-23 18-28 47t14 53q17 24 47 28t53-14q81-61 126-151t45-191z m-357 429l0-357q0-29-21-50t-50-21-50 21-21 50l0 357q0 29 21 50t50 21 50-21 21-50z" horiz-adv-x="857.143" />
<glyph glyph-name="list-alt" unicode="&#xe8bc;" d="M214 189l0-36q0-7-5-13t-13-5l-36 0q-7 0-13 5t-5 13l0 36q0 7 5 13t13 5l36 0q7 0 13-5t5-13z m0 143l0-36q0-7-5-13t-13-5l-36 0q-7 0-13 5t-5 13l0 36q0 7 5 13t13 5l36 0q7 0 13-5t5-13z m0 143l0-36q0-7-5-13t-13-5l-36 0q-7 0-13 5t-5 13l0 36q0 7 5 13t13 5l36 0q7 0 13-5t5-13z m643-286l0-36q0-7-5-13t-13-5l-536 0q-7 0-13 5t-5 13l0 36q0 7 5 13t13 5l536 0q7 0 13-5t5-13z m0 143l0-36q0-7-5-13t-13-5l-536 0q-7 0-13 5t-5 13l0 36q0 7 5 13t13 5l536 0q7 0 13-5t5-13z m0 143l0-36q0-7-5-13t-13-5l-536 0q-7 0-13 5t-5 13l0 36q0 7 5 13t13 5l536 0q7 0 13-5t5-13z m71-393l0 464q0 7-5 13t-13 5l-821 0q-7 0-13-5t-5-13l0-464q0-7 5-13t13-5l821 0q7 0 13 5t5 13z m71 607l0-607q0-37-26-63t-63-26l-821 0q-37 0-63 26t-26 63l0 607q0 37 26 63t63 26l821 0q37 0 63-26t26-63z" horiz-adv-x="1000" />
<glyph glyph-name="flow-cascade" unicode="&#xe951;" d="M520 120q50 0 85-35t35-85-35-85-85-35q-80 0-110 74l-164 0q-88 0-131 54t-43 118l0 464q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-114q0-78 78-78l164 0q30 72 110 72 50 0 85-35t35-85-35-85-85-35q-80 0-110 74l-164 0q-42 0-78 16l0-194q0-78 78-78l164 0q30 72 110 72z m0 300q-28 0-49-20t-21-50q0-28 21-48t49-20 49 20 21 48q0 30-21 50t-49 20z m-470 280q0-28 21-48t49-20 49 20 21 48q0 30-21 50t-49 20-49-20-21-50z m470-768q28 0 49 20t21 48q0 30-21 50t-49 20-49-20-21-50q0-28 21-48t49-20z" horiz-adv-x="640" />
<glyph glyph-name="flow-branch" unicode="&#xe952;" d="M640 650q0-80-74-110-6-58-28-101t-61-69-68-38-75-26q-42-14-63-22t-47-24-38-40-16-60q70-30 70-110 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-204q40 30 138 60 58 18 84 29t51 41 29 76q-70 32-70 108 0 50 35 85t85 35 85-35 35-85z m-588 0q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m68-668q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z m400 600q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z" horiz-adv-x="640" />
<glyph glyph-name="flow-tree" unicode="&#xe953;" d="M868 112q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 114q0 78-76 78l-100 0q-44 0-78 12l0-204q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 204q-30-12-76-12l-100 0q-34 0-53-19t-22-33-3-26l0-114q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 114q0 64 43 118t131 54l100 0q76 0 76 52l0 140q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-140q0-52 78-52l100 0q86 0 129-54t43-118l0-114z m-678-112q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20 49 20 21 48z m212 700q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m138-700q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20 49 20 21 48z m280-68q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z" horiz-adv-x="940" />
<glyph glyph-name="flow-line" unicode="&#xe954;" d="M168 162q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-378z m-116 488q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m68-668q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z" horiz-adv-x="240" />
<glyph glyph-name="ajust" unicode="&#xe8bd;" d="M429 46l0 607q-83 0-152-41t-110-110-41-152 41-152 110-110 152-41z m429 304q0-117-57-215t-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57 215-57 156-156 57-215z" horiz-adv-x="857.143" />
<glyph glyph-name="flow-parallel" unicode="&#xe955;" d="M240 650q0-76-72-110l0-378q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85z m-50-600q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20 49 20 21 48z m-70 532q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z m448-420q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-378z m-116 488q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m68-668q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z" horiz-adv-x="640" />
<glyph glyph-name="tint" unicode="&#xe8be;" d="M286 207q0 20-11 39-1 1-9 13t-14 21-14 25-12 28q-2 9-12 9t-12-9q-4-13-12-28t-14-25-14-21-9-13q-11-18-11-39 0-30 21-50t50-21 50 21 21 50z m286 71q0-118-84-202t-202-84-202 84-84 202q0 81 45 153 3 5 35 50t56 84 56 99 46 112q5 17 19 26t28 9 29-9 19-26q16-52 46-112t56-99 56-84 35-50q45-71 45-153z" horiz-adv-x="571.429" />
<glyph glyph-name="gauge-1" unicode="&#xe956;" d="M406 178q34 56 214 284t194 220q12-6-96-278t-138-326q-50-86-136-36t-38 136z m94 380q-168 0-284-127t-116-311q0-30 2-46 2-22-12-37t-34-17-36 12-18 34q0 8-1 26t-1 28q0 226 145 382t355 156q72 0 134-18l-70-86q-40 4-64 4z m362-62q138-154 138-376 0-38-2-56-2-20-16-33t-34-13l-4 0q-22 4-35 20t-11 36q2 14 2 46 0 150-80 268 6 14 20 51t22 57z" horiz-adv-x="1000" />
<glyph glyph-name="spin1" unicode="&#xe801;" d="M496 850c-176 0-331-90-421-226-18-27-33-55-45-85-12-29-22-60-28-92 0 0 0-1 0-1 0-1 0-2 0-2 0-6 5-12 12-12l101 0c5 0 10 3 11 9 29 113 109 206 213 254 20 9 42 17 64 22 30 8 62 12 94 12 25 0 50-3 75-7 5-1 9-2 14-3s10-2 14-4c5-1 10 1 13 5l50 87c1 1 1 2 1 3 2 6-1 13-7 15-21 7-43 13-65 17-4 1-9 2-13 2-27 4-54 7-82 7z m327-114c-4 0-8-2-10-6l-50-87c-3-5-2-11 2-15 30-29 55-63 74-100 4-7 7-15 10-22 20-46 31-97 31-151 0-77-23-149-62-209-8-12-16-23-25-34s-18-21-28-30c-4-4-5-9-2-14l50-87c0-1 1-2 2-2 4-5 12-5 16-1 58 52 104 117 134 190 6 14 11 29 15 44 14 46 21 94 21 144 0 108-34 209-92 291-11 16-23 31-37 46-13 15-27 28-41 41-1 1-1 1-2 1-2 1-4 1-6 2z m-811-468c-1 0-2 0-2 0-6-1-10-7-9-14 34-166 149-302 302-366 30-12 61-22 93-28s66-10 100-10c40 0 79 5 117 14 7 2 14 4 22 6 7 2 14 4 21 7 1 0 2 1 3 1 6 3 7 10 4 16l-50 87c-3 4-8 7-13 5-14-4-28-7-42-9-3 0-5-1-8-1-17-2-35-4-52-4-128 0-242 63-312 160 0 0 0 0 0 1-14 19-25 39-35 60s-18 43-24 66c-1 6-6 10-12 10l-101 0z" horiz-adv-x="1000" />
<glyph glyph-name="spin2" unicode="&#xe802;" d="M46 144s0 0 0 1c-8 18-15 36-21 55s-11 38-15 57c-19 99-9 204 35 298 3 6 10 8 15 5 1 0 1-1 2-1l80-59c5-3 6-10 4-15-5-12-9-25-12-37-4-13-6-26-8-39-11-68-3-137 22-201 2-5 0-11-4-13l-80-56c-5-4-12-2-16 3 0 1-1 1-1 2z m120 575s0 0 1 0c15 13 30 26 46 37 16 12 33 22 50 32 89 49 193 71 297 60 6-1 11-6 10-13 0-1 0-2-1-2l-32-93c-2-6-7-9-13-8-13 1-26 1-40 0s-27-2-40-4c-68-11-133-40-186-83-4-3-10-3-14 0l-78 58c-5 4-6 11-2 16 0 1 1 1 2 2z m589 65s0 0 1 0c17-10 34-20 50-32s31-24 46-38c75-69 128-160 149-262 1-6-3-12-9-13-1 0-2 0-2 0l-99 1c-6 0-11 4-12 10-3 13-7 25-12 37-5 13-10 25-16 37-31 61-79 113-137 150-5 3-6 8-5 13l31 92c2 6 9 9 15 7 1 0 1-1 2-1z m244-535s0 0 0-1c-4-19-9-38-15-57s-14-37-22-55c-43-92-114-170-205-221-6-3-13-1-16 5 0 1-1 1-1 2l-30 94c-2 6 1 11 6 14 11 7 22 15 32 23 11 8 21 17 30 27 49 48 84 109 101 176 1 5 6 9 11 9l98-1c6 0 11-5 11-12 0-1 0-2 0-2z m-438-395s0 0-1 0c-20-2-40-3-59-3-20 0-40 1-60 4-101 12-198 55-276 125-5 4-5 11 0 16 1 1 1 1 2 2l81 57c5 3 11 3 15-1 10-8 21-16 32-23s23-14 35-20c61-31 131-45 200-41 5 0 10-3 12-8l29-92c2-6-2-12-8-14-1 0-1 0-2 0z" horiz-adv-x="1000" />
<glyph glyph-name="spin3" unicode="&#xe803;" d="M494 850c-266 0-482-210-494-473-1-18 13-19 13-19l84 0c16 0 19 9 20 18 9 199 175 358 377 358 108 0 205-45 274-118l-59-57c-10-12-10-27 5-32l247-50c21-5 46 11 38 44l-58 228c-1 9-16 22-29 12l-64-60c-90 92-215 148-353 148z m410-509c-16 0-19-9-20-18-9-199-175-358-377-358-108 0-205 45-274 118l59 57c10 12 10 27-5 32l-247 50c-21 5-46-11-38-44l58-228c1-9 16-22 29-12l64 60c90-92 215-148 353-148 266 0 482 210 494 473 1 18-13 19-13 19l-84 0z" horiz-adv-x="1000" />
<glyph glyph-name="spin4" unicode="&#xe800;" d="M498 850c-114 0-227-39-320-116 173 140 427 130 588-31 134-134 163-333 89-495-10-29-6-50 12-68 21-21 61-23 84 0 3 3 12 14 15 24 71 180 33 393-112 539-98 98-227 147-356 147z m-408-274c-15 0-29-6-40-16-3-3-12-14-15-24-71-180-33-393 112-539 185-185 479-195 676-31-173-140-427-130-588 31-134 134-163 333-89 495 10 29 6 50-12 68-11 11-27 17-44 16z" horiz-adv-x="1001" />
<glyph glyph-name="spin5" unicode="&#xe804;" d="M462 850c-6 0-12-5-12-12l0-182c0-6 5-12 12-12l69 0s1 0 1 0c6 0 12 5 12 12l0 182c0 6-5 12-12 12l-69 0s-1 0-1 0z m250-47c-4 0-8-2-10-6l-91-158c-3-6-1-13 4-16l60-35s0 0 1 0c6-3 13-1 16 4l91 158c3 6 1 13-4 16l-61 35c-2 1-4 1-5 2z m-428-3c-2 0-4-1-5-2l-61-35c-5-3-7-10-4-16l91-157s0 0 0-1c3-6 10-7 16-4l61 35c5 3 7 10 4 16l-91 157s0 0 0 1c-2 4-6 6-10 6z m620-162c-2 0-4-1-5-2l-157-91s0 0-1 0c-6-3-7-10-4-16l35-61c3-5 10-7 16-4l157 91s0 0 1 0c6 3 7 10 4 16l-35 61c-2 4-6 6-10 6z m-810-5c-4 0-8-2-10-6l-35-61c-3-6-1-13 4-16l158-91c6-3 13-1 16 4l35 60s0 0 0 1c3 6 1 13-4 16l-158 91c-2 1-4 1-5 2z m713-234c-6 0-12-5-12-12l0-69s0-1 0-1c0-6 5-12 12-12l182 0c6 0 12 5 12 12l0 69s0 1 0 1c0 6-5 12-12 12l-182 0z m-795-5c-6 0-12-5-12-12l0-69s0-1 0-1c0-6 5-12 12-12l182 0c6 0 12 5 12 12l0 69s0 1 0 1c0 6-5 12-12 12l-182 0z m773-153c-4 0-8-2-10-6l-35-60s0 0 0-1c-3-6-1-13 4-16l158-91c6-3 13-1 16 4l35 61c3 6 1 13-4 16l-158 91c-2 1-4 1-5 2z m-566-5c-2 0-4-1-5-2l-157-91s0 0-1 0c-6-3-7-10-4-16l35-61c3-5 10-7 16-4l157 91s0 0 1 0c6 3 7 10 4 16l-35 61c-2 4-6 6-10 6z m467-121c-2 0-4-1-5-2l-61-35c-5-3-7-10-4-16l91-157s0 0 0-1c3-6 10-7 16-4l61 35c5 3 7 10 4 16l-91 157s0 0 0 1c-2 4-6 6-10 6z m-366-3c-4 0-8-2-10-6l-91-158c-3-6-1-13 4-16l61-35c6-3 13-1 16 4l91 158c3 6 1 13-4 16l-60 35s0 0-1 0c-2 1-4 2-5 2z m148-57c-6 0-12-5-12-12l0-182c0-6 5-12 12-12l69 0s1 0 1 0c6 0 12 5 12 12l0 182c0 6-5 12-12 12l-69 0s-1 0-1 0z" horiz-adv-x="1000" />
<glyph glyph-name="spin6" unicode="&#xe805;" d="M855 9c-188-189-520-171-704 13-191 191-200 494-28 696 11 13 21 25 35 34 37 23 85 18 117-13 30-30 36-76 17-112-5-9-9-15-16-22-140-151-145-379-8-516 153-153 407-121 541 34 107 123 143 297 78 451-84 198-305 291-510 222 236 83 492-23 588-251 70-167 37-355-72-494-11-15-24-29-37-42z" horiz-adv-x="1000" />
<glyph glyph-name="move" unicode="&#xe86f;" d="M1000 350q0-15-11-25l-143-143q-11-11-25-11t-25 11-11 25l0 71-214 0 0-214 71 0q15 0 25-11t11-25-11-25l-143-143q-11-11-25-11t-25 11l-143 143q-11 11-11 25t11 25 25 11l71 0 0 214-214 0 0-71q0-15-11-25t-25-11-25 11l-143 143q-11 11-11 25t11 25l143 143q11 11 25 11t25-11 11-25l0-71 214 0 0 214-71 0q-15 0-25 11t-11 25 11 25l143 143q11 11 25 11t25-11l143-143q11-11 11-25t-11-25-25-11l-71 0 0-214 214 0 0 71q0 15 11 25t25 11 25-11l143-143q11-11 11-25z" horiz-adv-x="1000" />
<glyph glyph-name="link-ext" unicode="&#xe832;" d="M786 332l0-179q0-66-47-114t-114-47l-464 0q-66 0-114 47t-47 114l0 464q0 66 47 114t114 47l393 0q8 0 13-5t5-13l0-36q0-8-5-13t-13-5l-393 0q-37 0-63-26t-26-63l0-464q0-37 26-63t63-26l464 0q37 0 63 26t26 63l0 179q0 8 5 13t13 5l36 0q8 0 13-5t5-13z m214 482l0-286q0-15-11-25t-25-11-25 11l-98 98-364-364q-6-6-13-6t-13 6l-64 64q-6 6-6 13t6 13l364 364-98 98q-11 11-11 25t11 25 25 11l286 0q15 0 25-11t11-25z" horiz-adv-x="1000" />
<glyph glyph-name="check-empty" unicode="&#xe8c0;" d="M625 707l-464 0q-37 0-63-26t-26-63l0-464q0-37 26-63t63-26l464 0q37 0 63 26t26 63l0 464q0 37-26 63t-63 26z m161-89l0-464q0-66-47-114t-114-47l-464 0q-66 0-114 47t-47 114l0 464q0 66 47 114t114 47l464 0q66 0 114-47t47-114z" horiz-adv-x="785.714" />
<glyph glyph-name="bookmark-empty" unicode="&#xe826;" d="M643 707l-571 0 0-693 236 227 50 47 50-47 236-227 0 693z m7 71q13 0 25-5 18-7 29-23t11-35l0-719q0-19-11-35t-29-23q-11-4-25-4-27 0-46 18l-246 237-246-237q-20-18-46-18-13 0-25 5-18 7-29 23t-11 35l0 719q0 19 11 35t29 23q12 5 25 5l585 0z" horiz-adv-x="714.286" />
<glyph glyph-name="hdd" unicode="&#xe8ce;" d="M580 171q0-18-13-32t-32-13-32 13-13 32 13 32 32 13 32-13 13-32z m143 0q0-18-13-32t-32-13-32 13-13 32 13 32 32 13 32-13 13-32z m62-89l0 179q0 7-5 13t-13 5l-679 0q-7 0-13-5t-5-13l0-179q0-7 5-13t13-5l679 0q7 0 13 5t5 13z m-686 268l658 0-88 269q-2 7-9 12t-15 5l-436 0q-8 0-15-5t-9-12z m758-89l0-179q0-37-26-63t-63-26l-679 0q-37 0-63 26t-26 63l0 179q0 14 9 42l110 338q9 30 35 48t56 18l436 0q31 0 56-18t35-48l110-338q9-28 9-42z" horiz-adv-x="857.143" />
<glyph glyph-name="certificate" unicode="&#xe8cb;" d="M768 350l77-75q17-16 11-39-7-23-29-28l-105-27 30-104q7-23-11-39-16-17-39-11l-104 30-27-105q-6-22-28-29-7-1-11-1-17 0-28 12l-75 77-75-77q-16-17-39-11t-28 29l-27 105-104-30q-23-7-39 11-17 16-11 39l30 104-105 27q-22 6-29 28-6 23 11 39l77 75-77 75q-17 16-11 39 7 23 29 28l105 27-30 104q-7 23 11 39 16 17 39 11l104-30 27 105q6 23 28 28 23 7 39-11l75-78 75 78q16 17 39 11t28-28l27-105 104 30q23 7 39-11 17-16 11-39l-30-104 105-27q22-6 29-28 6-23-11-39z" horiz-adv-x="857.143" />
<glyph glyph-name="left-circled" unicode="&#xe884;" d="M714 314l0 71q0 15-11 25t-25 11l-280 0 105 105q11 11 11 25t-11 25l-51 51q-10 10-25 10t-25-10l-202-202-51-51q-10-10-10-25t10-25l51-51 202-202q10-10 25-10t25 10l51 51q10 10 10 25t-10 25l-105 105 280 0q15 0 25 11t11 25z m143 36q0-117-57-215t-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57 215-57 156-156 57-215z" horiz-adv-x="857.143" />
<glyph glyph-name="right-circled" unicode="&#xe885;" d="M717 350q0 15-10 25l-51 51-202 202q-10 10-25 10t-25-10l-51-51q-10-10-10-25t10-25l105-105-280 0q-15 0-25-11t-11-25l0-71q0-15 11-25t25-11l280 0-105-105q-11-11-11-25t11-25l51-51q10-10 25-10t25 10l202 202 51 51q10 10 10 25z m140 0q0-117-57-215t-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57 215-57 156-156 57-215z" horiz-adv-x="857.143" />
<glyph glyph-name="up-circled" unicode="&#xe886;" d="M716 351q0 15-10 25l-202 202-51 51q-10 10-25 10t-25-10l-51-51-202-202q-10-10-10-25t10-25l51-51q10-10 25-10t25 10l105 105 0-280q0-15 11-25t25-11l71 0q15 0 25 11t11 25l0 280 105-105q11-11 25-11t25 11l51 51q10 10 10 25z m141-1q0-117-57-215t-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57 215-57 156-156 57-215z" horiz-adv-x="857.143" />
<glyph glyph-name="down-circled" unicode="&#xe887;" d="M716 349q0 15-10 25l-51 51q-10 10-25 10t-25-10l-105-105 0 280q0 15-11 25t-25 11l-71 0q-15 0-25-11t-11-25l0-280-105 105q-11 11-25 11t-25-11l-51-51q-10-10-10-25t10-25l202-202 51-51q10-10 25-10t25 10l51 51 202 202q10 10 10 25z m141 1q0-117-57-215t-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57 215-57 156-156 57-215z" horiz-adv-x="857.143" />
<glyph glyph-name="tasks" unicode="&#xe8ca;" d="M571 64l357 0 0 71-357 0 0-71z m-214 286l571 0 0 71-571 0 0-71z m357 286l214 0 0 71-214 0 0-71z m286-464l0-143q0-15-11-25t-25-11l-929 0q-15 0-25 11t-11 25l0 143q0 15 11 25t25 11l929 0q15 0 25-11t11-25z m0 286l0-143q0-15-11-25t-25-11l-929 0q-15 0-25 11t-11 25l0 143q0 15 11 25t25 11l929 0q15 0 25-11t11-25z m0 286l0-143q0-15-11-25t-25-11l-929 0q-15 0-25 11t-11 25l0 143q0 15 11 25t25 11l929 0q15 0 25-11t11-25z" horiz-adv-x="1000" />
<glyph glyph-name="filter" unicode="&#xe8c8;" d="M783 685q9-23-8-39l-275-275 0-414q0-23-22-33-7-3-14-3-15 0-25 11l-143 143q-11 11-11 25l0 271-275 275q-17 16-8 39 9 22 33 22l714 0q23 0 33-22z" horiz-adv-x="785.714" />
<glyph glyph-name="resize-full-alt" unicode="&#xe86c;" d="M716 548l-198-198 198-198 80 80q16 17 39 8 22-9 22-33l0-250q0-15-11-25t-25-11l-250 0q-23 0-33 22-9 22 8 39l80 80-198 198-198-198 80-80q17-17 8-39t-33-22l-250 0q-15 0-25 11t-11 25l0 250q0 23 22 33 22 9 39-8l80-80 198 198-198 198-80-80q-11-11-25-11-7 0-13 3-22 9-22 33l0 250q0 15 11 25t25 11l250 0q23 0 33-22 9-22-8-39l-80-80 198-198 198 198-80 80q-17 17-8 39t33 22l250 0q15 0 25-11t11-25l0-250q0-23-22-33-7-3-14-3-15 0-25 11z" horiz-adv-x="857.143" />
<glyph glyph-name="beaker" unicode="&#xe8c9;" d="M852 42q31-50 12-85t-78-35l-643 0q-59 0-78 35t12 85l281 442 0 223-36 0q-15 0-25 11t-11 25 11 25 25 11l286 0q15 0 25-11t11-25-11-25-25-11l-36 0 0-223z m-435 405l-152-239 397 0-152 239-11 17 0 243-71 0 0-243z" horiz-adv-x="928.571" />
<glyph glyph-name="docs" unicode="&#xe842;" d="M946 636q22 0 38-16t16-38l0-679q0-22-16-38t-38-16l-536 0q-22 0-38 16t-16 38l0 161-304 0q-22 0-38 16t-16 38l0 375q0 22 11 49t27 42l228 228q16 16 42 27t49 11l232 0q22 0 38-16t16-38l0-183q38 22 71 22l232 0z m-304-119l-167-167 167 0 0 167z m-357 214l-167-167 167 0 0 167z m109-361l176 176 0 232-214 0 0-232q0-22-16-38t-38-16l-232 0 0-357 286 0 0 143q0 22 11 49t27 42z m533-449l0 643-214 0 0-232q0-22-16-38t-38-16l-232 0 0-357 500 0z" horiz-adv-x="1000" />
<glyph glyph-name="menu" unicode="&#xe85c;" d="M857 100l0-71q0-15-11-25t-25-11l-786 0q-15 0-25 11t-11 25l0 71q0 15 11 25t25 11l786 0q15 0 25-11t11-25z m0 286l0-71q0-15-11-25t-25-11l-786 0q-15 0-25 11t-11 25l0 71q0 15 11 25t25 11l786 0q15 0 25-11t11-25z m0 286l0-71q0-15-11-25t-25-11l-786 0q-15 0-25 11t-11 25l0 71q0 15 11 25t25 11l786 0q15 0 25-11t11-25z" horiz-adv-x="857.143" />
<glyph glyph-name="list-bullet" unicode="&#xe8b3;" d="M214 64q0-45-31-76t-76-31-76 31-31 76 31 76 76 31 76-31 31-76z m0 286q0-45-31-76t-76-31-76 31-31 76 31 76 76 31 76-31 31-76z m786-232l0-107q0-7-5-13t-13-5l-679 0q-7 0-13 5t-5 13l0 107q0 7 5 13t13 5l679 0q7 0 13-5t5-13z m-786 518q0-45-31-76t-76-31-76 31-31 76 31 76 76 31 76-31 31-76z m786-232l0-107q0-7-5-13t-13-5l-679 0q-7 0-13 5t-5 13l0 107q0 7 5 13t13 5l679 0q7 0 13-5t5-13z m0 286l0-107q0-7-5-13t-13-5l-679 0q-7 0-13 5t-5 13l0 107q0 7 5 13t13 5l679 0q7 0 13-5t5-13z" horiz-adv-x="1000" />
<glyph glyph-name="list-numbered" unicode="&#xe8b2;" d="M213-54q0-45-30-70t-76-26q-59 0-96 37l32 49q27-25 59-25 16 0 28 8t12 24q0 36-59 31l-15 31q4 6 18 24t24 30 21 21l0 1q-9 0-27-1t-27-1l0-30-59 0 0 85 186 0 0-49-53-64q28-7 45-27t17-49z m1 350l0-89-202 0q-3 20-3 30 0 28 13 52t32 38 37 27 32 24 13 25q0 14-8 21t-22 8q-26 0-45-32l-47 33q13 28 40 44t59 16q41 0 69-23t28-63q0-28-19-51t-42-36-42-28-20-29l71 0 0 33 59 0z m786-178l0-107q0-7-5-13t-13-5l-679 0q-7 0-13 5t-5 13l0 107q0 8 5 13t13 5l679 0q7 0 13-5t5-13z m-786 502l0-55-187 0 0 55 60 0q0 23 0 68t0 68l0 7-1 0q-4-9-28-30l-40 42 76 71 59 0 0-225 60 0z m786-216l0-107q0-7-5-13t-13-5l-679 0q-7 0-13 5t-5 13l0 107q0 8 5 13t13 5l679 0q7 0 13-5t5-13z m0 286l0-107q0-7-5-13t-13-5l-679 0q-7 0-13 5t-5 13l0 107q0 7 5 13t13 5l679 0q7 0 13-5t5-13z" horiz-adv-x="1000" />
<glyph glyph-name="strike" unicode="&#xe8b1;" d="M982 350q8 0 13-5t5-13l0-36q0-8-5-13t-13-5l-964 0q-8 0-13 5t-5 13l0 36q0 8 5 13t13 5l964 0z m-713 36q-16 20-28 45-27 54-27 105 0 101 75 172 74 71 219 71 28 0 93-11 37-7 99-27 6-21 12-66 8-69 8-102 0-10-3-25l-7-2-47 3-8 1q-28 83-57 114-49 51-117 51-64 0-102-33-37-32-37-81 0-41 37-78t156-72q39-11 97-37 32-16 53-29l-415 0z m283-143l229 0q4-22 4-51 0-62-23-118-13-31-40-58-21-20-61-45-45-27-85-37-45-12-113-12-64 0-109 13l-78 22q-32 9-40 16-4 4-4 12l0 7q0 60-1 87-1 17 0 38l1 21 0 25 57 1q8-19 17-40t13-31 7-15q20-32 45-52 24-20 59-32 33-12 74-12 36 0 78 15 43 15 68 48 26 34 26 72 0 47-45 88-19 16-76 40z" horiz-adv-x="1000" />
<glyph glyph-name="underline" unicode="&#xe8b0;" d="M27 726q-21 1-25 2l-2 49q7 1 22 1 33 0 62-2 74-4 93-4 48 0 94 2 65 2 81 3 31 0 48 1l-1-8 1-36 0-5q-33-5-69-5-33 0-44-14-7-8-7-74 0-7 0-18t0-14l1-128 8-156q3-69 28-113 20-33 54-51 49-26 99-26 58 0 107 16 31 10 55 28 27 20 36 36 20 31 30 64 12 41 12 128 0 44-2 71t-6 68-8 89l-2 33q-3 37-13 49-19 20-43 19l-56-1-8 2 1 48 47 0 114-6q42-2 109 6l10-1q3-21 3-28 0-4-2-17-25-7-47-7-41-6-44-9-8-8-8-23 0-4 1-15t1-17q4-11 12-221 3-109-8-170-8-42-23-68-21-36-62-69-42-32-102-50-61-18-142-18-93 0-158 26-66 26-100 68t-46 109q-9 45-9 132l0 186q0 105-9 119-14 20-82 22z m830-786l0 36q0 8-5 13t-13 5l-821 0q-8 0-13-5t-5-13l0-36q0-8 5-13t13-5l821 0q8 0 13 5t5 13z" horiz-adv-x="857.143" />
<glyph glyph-name="table" unicode="&#xe8ad;" d="M286 82l0 107q0 8-5 13t-13 5l-179 0q-8 0-13-5t-5-13l0-107q0-8 5-13t13-5l179 0q8 0 13 5t5 13z m0 214l0 107q0 8-5 13t-13 5l-179 0q-8 0-13-5t-5-13l0-107q0-8 5-13t13-5l179 0q8 0 13 5t5 13z m286-214l0 107q0 8-5 13t-13 5l-179 0q-8 0-13-5t-5-13l0-107q0-8 5-13t13-5l179 0q8 0 13 5t5 13z m-286 429l0 107q0 8-5 13t-13 5l-179 0q-8 0-13-5t-5-13l0-107q0-8 5-13t13-5l179 0q8 0 13 5t5 13z m286-214l0 107q0 8-5 13t-13 5l-179 0q-8 0-13-5t-5-13l0-107q0-8 5-13t13-5l179 0q8 0 13 5t5 13z m286-214l0 107q0 8-5 13t-13 5l-179 0q-8 0-13-5t-5-13l0-107q0-8 5-13t13-5l179 0q8 0 13 5t5 13z m-286 429l0 107q0 8-5 13t-13 5l-179 0q-8 0-13-5t-5-13l0-107q0-8 5-13t13-5l179 0q8 0 13 5t5 13z m286-214l0 107q0 8-5 13t-13 5l-179 0q-8 0-13-5t-5-13l0-107q0-8 5-13t13-5l179 0q8 0 13 5t5 13z m0 214l0 107q0 8-5 13t-13 5l-179 0q-8 0-13-5t-5-13l0-107q0-8 5-13t13-5l179 0q8 0 13 5t5 13z m71 179l0-607q0-37-26-63t-63-26l-750 0q-37 0-63 26t-26 63l0 607q0 37 26 63t63 26l750 0q37 0 63-26t26-63z" horiz-adv-x="928.571" />
<glyph glyph-name="magic" unicode="&#xe8c7;" d="M664 526l163 163-60 60-163-163z m249 163q0-15-10-25l-718-718q-10-10-25-10t-25 10l-110 110q-10 10-10 25t10 25l718 718q10 10 25 10t25-10l110-110q10-10 10-25z m-754 106l55-17-55-17-17-55-17 55-55 17 55 17 17 55z m195-90l109-33-109-33-33-109-33 109-109 33 109 33 33 109z m519-267l55-17-55-17-17-55-17 55-55 17 55 17 17 55z m-357 357l55-17-55-17-17-55-17 55-55 17 55 17 17 55z" horiz-adv-x="928.571" />
<glyph glyph-name="columns" unicode="&#xe8ac;" d="M89-7l339 0 0 643-357 0 0-625q0-7 5-13t13-5z m768 18l0 625-357 0 0-643 339 0q7 0 13 5t5 13z m71 679l0-679q0-37-26-63t-63-26l-750 0q-37 0-63 26t-26 63l0 679q0 37 26 63t63 26l750 0q37 0 63-26t26-63z" horiz-adv-x="928.571" />
<glyph glyph-name="sort" unicode="&#xe8d1;" d="M571 243q0-15-11-25l-250-250q-11-11-25-11t-25 11l-250 250q-11 11-11 25t11 25 25 11l500 0q15 0 25-11t11-25z m0 214q0-15-11-25t-25-11l-500 0q-15 0-25 11t-11 25 11 25l250 250q11 11 25 11t25-11l250-250q11-11 11-25z" horiz-adv-x="571.429" />
<glyph glyph-name="sort-down" unicode="&#xe8d2;" d="M571 243q0-15-11-25l-250-250q-11-11-25-11t-25 11l-250 250q-11 11-11 25t11 25 25 11l500 0q15 0 25-11t11-25z" horiz-adv-x="571.429" />
<glyph glyph-name="sort-up" unicode="&#xe8d3;" d="M571 457q0-15-11-25t-25-11l-500 0q-15 0-25 11t-11 25 11 25l250 250q11 11 25 11t25-11l250-250q11-11 11-25z" horiz-adv-x="571.429" />
<glyph glyph-name="gauge" unicode="&#xe8da;" d="M214 207q0 30-21 50t-50 21-50-21-21-50 21-50 50-21 50 21 21 50z m107 250q0 30-21 50t-50 21-50-21-21-50 21-50 50-21 50 21 21 50z m239-268l56 213q3 15-4 27t-21 16-27-4-17-22l-56-213q-33-3-60-24t-35-55q-11-43 11-81t65-50 81 11 50 65q9 33-3 65t-40 51z m368 18q0 30-21 50t-50 21-50-21-21-50 21-50 50-21 50 21 21 50z m-357 357q0 30-21 50t-50 21-50-21-21-50 21-50 50-21 50 21 21 50z m250-107q0 30-21 50t-50 21-50-21-21-50 21-50 50-21 50 21 21 50z m179-250q0-146-79-270-11-16-30-16l-782 0q-20 0-30 16-79 123-79 270 0 102 40 194t107 160 160 107 194 40 194-40 160-107 107-160 40-194z" horiz-adv-x="1000" />
<glyph glyph-name="comment-empty" unicode="&#xe84d;" d="M500 636q-114 0-213-39t-157-105-58-142q0-62 40-119t112-98l49-28-15-54q-13-51-39-96 85 35 153 95l24 21 32-3q39-4 73-4 114 0 213 39t157 105 58 142-58 142-157 105-213 39z m500-286q0-97-67-179t-182-130-251-48q-39 0-81 4-110-98-257-135-27-8-64-12l-3 0q-8 0-15 6t-9 15l0 1q-2 2 0 7t1 6 3 5l3 5t4 5 4 5q4 4 17 19t19 21 17 22 18 28 15 33 15 42q-88 50-138 123t-50 157q0 97 67 179t182 130 251 48 251-48 182-130 67-179z" horiz-adv-x="1000" />
<glyph glyph-name="sitemap" unicode="&#xe8db;" d="M1000 154l0-179q0-22-16-38t-38-16l-179 0q-22 0-38 16t-16 38l0 179q0 22 16 38t38 16l54 0 0 107-286 0 0-107 54 0q22 0 38-16t16-38l0-179q0-22-16-38t-38-16l-179 0q-22 0-38 16t-16 38l0 179q0 22 16 38t38 16l54 0 0 107-286 0 0-107 54 0q22 0 38-16t16-38l0-179q0-22-16-38t-38-16l-179 0q-22 0-38 16t-16 38l0 179q0 22 16 38t38 16l54 0 0 107q0 29 21 50t50 21l286 0 0 107-54 0q-22 0-38 16t-16 38l0 179q0 22 16 38t38 16l179 0q22 0 38-16t16-38l0-179q0-22-16-38t-38-16l-54 0 0-107 286 0q29 0 50-21t21-50l0-107 54 0q22 0 38-16t16-38z" horiz-adv-x="1000" />
<glyph glyph-name="paste" unicode="&#xe8a9;" d="M429-79l500 0 0 357-232 0q-22 0-38 16t-16 38l0 232-214 0 0-643z m143 804l0 36q0 7-5 13t-13 5l-393 0q-7 0-13-5t-5-13l0-36q0-7 5-13t13-5l393 0q7 0 13 5t5 13z m143-375l167 0-167 167 0-167z m286-71l0-375q0-22-16-38t-38-16l-536 0q-22 0-38 16t-16 38l0 89-304 0q-22 0-38 16t-16 38l0 750q0 22 16 38t38 16l607 0q22 0 38-16t16-38l0-183q12-7 20-16l228-228q16-16 27-42t11-49z" horiz-adv-x="1000" />
<glyph glyph-name="lightbulb" unicode="&#xe869;" d="M411 529q0-7-5-13t-13-5-13 5-5 13q0 26-30 40t-59 14q-7 0-13 5t-5 13 5 13 13 5q28 0 56-9t49-30 21-50z m89 0q0 40-19 75t-50 57-69 35-76 13-76-13-69-35-50-57-19-75q0-56 38-100 6-6 17-18t17-18q71-85 79-166l127 0q7 81 79 166 6 6 17 18t17 18q38 44 38 100z m71 0q0-86-57-150-25-27-42-49t-33-53-19-60q26-16 26-46 0-21-14-36 14-15 14-36 0-29-25-45 7-13 7-26 0-26-18-40t-43-14q-11-25-33-39t-49-15-49 15-33 39q-26 0-43 14t-18 40q0 13 7 26-25 16-25 45 0 21 14 36-14 15-14 36 0 30 26 46-2 28-19 60t-33 53-42 49q-57 63-57 150 0 55 25 103t65 79 92 50 104 18 104-18 92-50 65-79 25-103z" horiz-adv-x="571.429" />
<glyph glyph-name="exchange" unicode="&#xe899;" d="M1000 189l0-107q0-7-5-13t-13-5l-768 0 0-107q0-7-5-13t-13-5q-7 0-13 6l-178 179q-5 5-5 12 0 8 5 13l179 179q5 5 13 5 7 0 13-5t5-13l0-107 768 0q7 0 13-5t5-13z m0 304q0-8-5-13l-179-179q-5-5-13-5-7 0-13 5t-5 13l0 107-768 0q-7 0-13 5t-5 13l0 107q0 7 5 13t13 5l768 0 0 107q0 8 5 13t13 5q7 0 13-6l178-178q5-5 5-13z" horiz-adv-x="1000" />
<glyph glyph-name="download-cloud" unicode="&#xe839;" d="M714 332q0 8-5 13t-13 5l-125 0 0 196q0 7-5 13t-13 5l-107 0q-7 0-13-5t-5-13l0-196-125 0q-7 0-13-5t-5-13q0-8 5-13l196-196q5-5 13-5t13 5l196 196q6 7 6 13z m357-125q0-89-63-151t-151-63l-607 0q-103 0-177 73t-73 177q0 73 39 134t105 92q-1 17-1 24 0 118 84 202t202 84q87 0 159-49t105-129q40 35 93 35 59 0 101-42t42-101q0-42-23-77 73-17 119-76t47-133z" horiz-adv-x="1071.429" />
<glyph glyph-name="upload-cloud" unicode="&#xe83a;" d="M714 368q0 8-5 13l-196 196q-5 5-13 5t-13-5l-196-196q-6-7-6-13 0-8 5-13t13-5l125 0 0-196q0-7 5-13t13-5l107 0q7 0 13 5t5 13l0 196 125 0q7 0 13 5t5 13z m357-161q0-89-63-151t-151-63l-607 0q-103 0-177 73t-73 177q0 73 39 134t105 92q-1 17-1 24 0 118 84 202t202 84q87 0 159-49t105-129q40 35 93 35 59 0 101-42t42-101q0-42-23-77 73-17 119-76t47-133z" horiz-adv-x="1071.429" />
<glyph glyph-name="suitcase" unicode="&#xe8a7;" d="M357 636l286 0 0 71-286 0 0-71z m-196 0l0-714-36 0q-51 0-88 37t-37 88l0 464q0 51 37 88t88 37l36 0z m625 0l0-714-571 0 0 714 71 0 0 89q0 22 16 38t38 16l321 0q22 0 38-16t16-38l0-89 71 0z m214-125l0-464q0-51-37-88t-88-37l-36 0 0 714 36 0q51 0 88-37t37-88z" horiz-adv-x="1000" />
<glyph glyph-name="bell-alt" unicode="&#xe84b;" d="M473-96q0 9-9 9-33 0-57 24t-24 57q0 9-9 9t-9-9q0-41 29-69t69-29q9 0 9 9z m455 161q0-29-21-50t-50-21l-250 0q0-59-42-101t-101-42-101 42-42 101l-250 0q-29 0-50 21t-21 50q106 90 160 222t54 278q0 92 54 146t147 65q-4 10-4 21 0 22 16 38t38 16 38-16 16-38q0-11-4-21 94-11 147-65t54-146q0-146 54-278t160-222z" horiz-adv-x="928.571" />
<glyph glyph-name="doc-text" unicode="&#xe854;" d="M571 189l0-36q0-8-5-13t-13-5l-393 0q-8 0-13 5t-5 13l0 36q0 8 5 13t13 5l393 0q8 0 13-5t5-13z m0 143l0-36q0-8-5-13t-13-5l-393 0q-8 0-13 5t-5 13l0 36q0 8 5 13t13 5l393 0q8 0 13-5t5-13z m-500-339l571 0 0 429-232 0q-22 0-38 16t-16 38l0 232-286 0 0-714z m357 500l210 0q-6 16-12 23l-175 175q-7 7-23 12l0-210z m286-18l0-500q0-22-16-38t-38-16l-607 0q-22 0-38 16t-16 38l0 750q0 22 16 38t38 16l357 0q22 0 49-11t42-27l174-174q16-16 27-42t11-49z" horiz-adv-x="714.286" />
<glyph glyph-name="plus-squared" unicode="&#xe81e;" d="M714 314l0 71q0 15-11 25t-25 11l-179 0 0 179q0 15-11 25t-25 11l-71 0q-15 0-25-11t-11-25l0-179-179 0q-15 0-25-11t-11-25l0-71q0-15 11-25t25-11l179 0 0-179q0-15 11-25t25-11l71 0q15 0 25 11t11 25l0 179 179 0q15 0 25 11t11 25z m143 304l0-536q0-66-47-114t-114-47l-536 0q-66 0-114 47t-47 114l0 536q0 66 47 114t114 47l536 0q66 0 114-47t47-114z" horiz-adv-x="857.143" />
<glyph glyph-name="angle-left" unicode="&#xe877;" d="M350 546q0-7-6-13l-219-219 219-219q6-6 6-13t-6-13l-28-28q-6-6-13-6t-13 6l-260 260q-6 6-6 13t6 13l260 260q6 6 13 6t13-6l28-28q6-6 6-13z" horiz-adv-x="357.143" />
<glyph glyph-name="angle-up" unicode="&#xe876;" d="M600 189q0-7-6-13l-28-28q-6-6-13-6t-13 6l-219 219-219-219q-6-6-13-6t-13 6l-28 28q-6 6-6 13t6 13l260 260q6 6 13 6t13-6l260-260q6-6 6-13z" horiz-adv-x="642.857" />
<glyph glyph-name="angle-down" unicode="&#xe875;" d="M600 439q0-7-6-13l-260-260q-6-6-13-6t-13 6l-260 260q-6 6-6 13t6 13l28 28q6 6 13 6t13-6l219-219 219 219q6 6 13 6t13-6l28-28q6-6 6-13z" horiz-adv-x="642.857" />
<glyph glyph-name="desktop" unicode="&#xe89b;" d="M1000 296l0 464q0 7-5 13t-13 5l-893 0q-7 0-13-5t-5-13l0-464q0-7 5-13t13-5l893 0q7 0 13 5t5 13z m71 464l0-607q0-37-26-63t-63-26l-304 0q0-21 9-43t18-40 9-24q0-15-11-25t-25-11l-286 0q-15 0-25 11t-11 25q0 8 9 25t18 39 9 44l-304 0q-37 0-63 26t-26 63l0 607q0 37 26 63t63 26l893 0q37 0 63-26t26-63z" horiz-adv-x="1071.429" />
<glyph glyph-name="laptop" unicode="&#xe89c;" d="M232 136q-37 0-63 26t-26 63l0 393q0 37 26 63t63 26l607 0q37 0 63-26t26-63l0-393q0-37-26-63t-63-26l-607 0z m-18 482l0-393q0-7 5-13t13-5l607 0q7 0 13 5t5 13l0 393q0 7-5 13t-13 5l-607 0q-7 0-13-5t-5-13z m768-518l89 0 0-54q0-22-26-38t-63-16l-893 0q-37 0-63 16t-26 38l0 54 982 0z m-402-54q9 0 9 9t-9 9l-89 0q-9 0-9-9t9-9l89 0z" horiz-adv-x="1071.429" />
<glyph glyph-name="tablet" unicode="&#xe89d;" d="M357 64q0 15-11 25t-25 11-25-11-11-25 11-25 25-11 25 11 11 25z m214 89l0 536q0 7-5 13t-13 5l-464 0q-7 0-13-5t-5-13l0-536q0-7 5-13t13-5l464 0q7 0 13 5t5 13z m71 536l0-607q0-37-26-63t-63-26l-464 0q-37 0-63 26t-26 63l0 607q0 37 26 63t63 26l464 0q37 0 63-26t26-63z" horiz-adv-x="642.857" />
<glyph glyph-name="mobile" unicode="&#xe89e;" d="M259 64q0 18-13 32t-32 13-32-13-13-32 13-32 32-13 32 13 13 32z m116 89l0 393q0 7-5 13t-13 5l-286 0q-7 0-13-5t-5-13l0-393q0-7 5-13t13-5l286 0q7 0 13 5t5 13z m-107 473q0 9-9 9l-89 0q-9 0-9-9t9-9l89 0q9 0 9 9z m161 9l0-571q0-29-21-50t-50-21l-286 0q-29 0-50 21t-21 50l0 571q0 29 21 50t50 21l286 0q29 0 50-21t21-50z" horiz-adv-x="428.571" />
<glyph glyph-name="circle-empty" unicode="&#xe8c2;" d="M429 654q-83 0-152-41t-110-110-41-152 41-152 110-110 152-41 152 41 110 110 41 152-41 152-110 110-152 41z m429-304q0-117-57-215t-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57 215-57 156-156 57-215z" horiz-adv-x="857.143" />
<glyph glyph-name="spinner" unicode="&#xe8dc;" d="M277 100q0-33-24-57t-57-23q-33 0-57 23t-23 57 23 57 57 23q33 0 57-23t24-57z m241-107q0-30-21-50t-50-21-50 21-21 50 21 50 50 21 50-21 21-50z m-339 357q0-37-26-63t-63-26-63 26-26 63 26 63 63 26 63-26 26-63z m580-250q0-26-18-44t-44-18-44 18-18 44 18 44 44 18 44-18 18-44z m-464 500q0-41-29-69t-69-29-69 29-29 69 29 69 69 29 69-29 29-69z m259 107q0-45-31-76t-76-31-76 31-31 76 31 76 76 31 76-31 31-76z m304-357q0-22-16-38t-38-16-38 16-16 38 16 38 38 16 38-16 16-38z m-116 250q0-18-13-32t-32-13-32 13-13 32 13 32 32 13 32-13 13-32z" horiz-adv-x="875" />
<glyph glyph-name="circle" unicode="&#xe8c1;" d="M857 350q0-117-57-215t-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57 215-57 156-156 57-215z" horiz-adv-x="857.143" />
<glyph glyph-name="reply" unicode="&#xe83b;" d="M1000 225q0-93-71-252-2-4-6-13t-8-17-7-12q-7-9-16-9-8 0-13 6t-5 14q0 5 1 15t1 13q3 38 3 69 0 56-10 101t-27 77-45 56-59 39-74 24-86 12-98 3l-125 0 0-143q0-15-11-25t-25-11-25 11l-286 286q-11 11-11 25t11 25l286 286q11 11 25 11t25-11 11-25l0-143 125 0q398 0 488-225 30-75 30-186z" horiz-adv-x="1000" />
<glyph glyph-name="folder-empty" unicode="&#xe859;" d="M857 118l0 393q0 22-16 38t-38 16l-393 0q-22 0-38 16t-16 38l0 36q0 22-16 38t-38 16l-179 0q-22 0-38-16t-16-38l0-536q0-22 16-38t38-16l679 0q22 0 38 16t16 38z m71 393l0-393q0-51-37-88t-88-37l-679 0q-51 0-88 37t-37 88l0 536q0 51 37 88t88 37l179 0q51 0 88-37t37-88l0-18 375 0q51 0 88-37t37-88z" horiz-adv-x="928.571" />
<glyph glyph-name="folder-open-empty" unicode="&#xe85a;" d="M994 330q0 20-30 20l-607 0q-22 0-48-12t-40-29l-164-203q-10-13-10-22 0-20 30-20l607 0q22 0 48 12t40 30l164 203q10 12 10 22z m-637 91l429 0 0 89q0 22-16 38t-38 16l-321 0q-22 0-38 16t-16 38l0 36q0 22-16 38t-38 16l-179 0q-22 0-38-16t-16-38l0-476 143 176q25 30 65 49t78 19z m708-91q0-35-26-67l-165-203q-24-30-65-49t-78-19l-607 0q-51 0-88 37t-37 88l0 536q0 51 37 88t88 37l179 0q51 0 88-37t37-88l0-18 304 0q51 0 88-37t37-88l0-89 107 0q30 0 55-14t37-39q8-18 8-38z" horiz-adv-x="1071.429" />
<glyph glyph-name="plus-squared-small" unicode="&#xe81f;" d="M500 332l0-36q0-8-5-13t-13-5l-125 0 0-125q0-8-5-13t-13-5l-36 0q-8 0-13 5t-5 13l0 125-125 0q-8 0-13 5t-5 13l0 36q0 8 5 13t13 5l125 0 0 125q0 8 5 13t13 5l36 0q8 0 13-5t5-13l0-125 125 0q8 0 13-5t5-13z m71-214l0 393q0 22-16 38t-38 16l-393 0q-22 0-38-16t-16-38l0-393q0-22 16-38t38-16l393 0q22 0 38 16t16 38z m71 393l0-393q0-51-37-88t-88-37l-393 0q-52 0-88 37t-37 88l0 393q0 52 37 88t88 37l393 0q52 0 88-37t37-88z" horiz-adv-x="642.857" />
<glyph glyph-name="minus-squared-small" unicode="&#xe824;" d="M518 636q52 0 88-37t37-88l0-393q0-51-37-88t-88-37l-393 0q-52 0-88 37t-37 88l0 393q0 52 37 88t88 37l393 0z m54-518l0 393q0 22-16 38t-38 16l-393 0q-22 0-38-16t-16-38l0-393q0-22 16-38t38-16l393 0q22 0 38 16t16 38z m-89 232q8 0 13-5t5-13l0-36q0-8-5-13t-13-5l-321 0q-8 0-13 5t-5 13l0 36q0 8 5 13t13 5l321 0z" horiz-adv-x="642.857" />
<glyph glyph-name="gamepad" unicode="&#xe850;" d="M464 243l0 71q0 8-5 13t-13 5l-107 0 0 107q0 8-5 13t-13 5l-71 0q-8 0-13-5t-5-13l0-107-107 0q-8 0-13-5t-5-13l0-71q0-8 5-13t13-5l107 0 0-107q0-8 5-13t13-5l71 0q8 0 13 5t5 13l0 107 107 0q8 0 13 5t5 13z m321-36q0 30-21 50t-50 21-50-21-21-50 21-50 50-21 50 21 21 50z m143 143q0 30-21 50t-50 21-50-21-21-50 21-50 50-21 50 21 21 50z m143-71q0-118-84-202t-202-84q-107 0-189 71l-123 0q-81-71-189-71-118 0-202 84t-84 202 84 202 202 84l500 0q118 0 202-84t84-202z" horiz-adv-x="1071.429" />
<glyph glyph-name="keyboard" unicode="&#xe84f;" d="M214 198l0-54q0-9-9-9l-54 0q-9 0-9 9l0 54q0 9 9 9l54 0q9 0 9-9z m71 143l0-54q0-9-9-9l-125 0q-9 0-9 9l0 54q0 9 9 9l125 0q9 0 9-9z m-71 143l0-54q0-9-9-9l-54 0q-9 0-9 9l0 54q0 9 9 9l54 0q9 0 9-9z m571-286l0-54q0-9-9-9l-482 0q-9 0-9 9l0 54q0 9 9 9l482 0q9 0 9-9z m-357 143l0-54q0-9-9-9l-54 0q-9 0-9 9l0 54q0 9 9 9l54 0q9 0 9-9z m-71 143l0-54q0-9-9-9l-54 0q-9 0-9 9l0 54q0 9 9 9l54 0q9 0 9-9z m214-143l0-54q0-9-9-9l-54 0q-9 0-9 9l0 54q0 9 9 9l54 0q9 0 9-9z m-71 143l0-54q0-9-9-9l-54 0q-9 0-9 9l0 54q0 9 9 9l54 0q9 0 9-9z m214-143l0-54q0-9-9-9l-54 0q-9 0-9 9l0 54q0 9 9 9l54 0q9 0 9-9z m214-143l0-54q0-9-9-9l-54 0q-9 0-9 9l0 54q0 9 9 9l54 0q9 0 9-9z m-286 286l0-54q0-9-9-9l-54 0q-9 0-9 9l0 54q0 9 9 9l54 0q9 0 9-9z m143 0l0-54q0-9-9-9l-54 0q-9 0-9 9l0 54q0 9 9 9l54 0q9 0 9-9z m143 0l0-196q0-9-9-9l-125 0q-9 0-9 9l0 54q0 9 9 9l62 0 0 134q0 9 9 9l54 0q9 0 9-9z m71-420l0 500-929 0 0-500 929 0z m71 500l0-500q0-30-21-50t-50-21l-929 0q-30 0-50 21t-21 50l0 500q0 30 21 50t50 21l929 0q30 0 50-21t21-50z" horiz-adv-x="1071.429" />
<glyph glyph-name="terminal" unicode="&#xe8de;" d="M326 301l-260-260q-6-6-13-6t-13 6l-28 28q-6 6-6 13t6 13l219 219-219 219q-6 6-6 13t6 13l28 28q6 6 13 6t13-6l260-260q6-6 6-13t-6-13z m602-255l0-36q0-8-5-13t-13-5l-536 0q-8 0-13 5t-5 13l0 36q0 8 5 13t13 5l536 0q8 0 13-5t5-13z" horiz-adv-x="928.571" />
<glyph glyph-name="code" unicode="&#xe841;" d="M344 69l-28-28q-6-6-13-6t-13 6l-260 260q-6 6-6 13t6 13l260 260q6 6 13 6t13-6l28-28q6-6 6-13t-6-13l-219-219 219-219q6-6 6-13t-6-13z m330 595l-208-720q-2-7-9-11t-13-1l-35 9q-7 2-11 9t-1 14l208 720q2 7 9 11t13 1l35-9q7-2 11-9t1-14z m367-363l-260-260q-6-6-13-6t-13 6l-28 28q-6 6-6 13t6 13l219 219-219 219q-6 6-6 13t6 13l28 28q6 6 13 6t13-6l260-260q6-6 6-13t-6-13z" horiz-adv-x="1071.429" />
<glyph glyph-name="reply-all" unicode="&#xe83c;" d="M357 246l0-39q0-23-22-33-7-3-14-3-15 0-25 11l-286 286q-11 11-11 25t11 25l286 286q16 17 39 8 22-9 22-33l0-39-222-222q-11-11-11-25t11-25z m643-21q0-32-9-74t-21-77-27-70-23-50l-11-22q-4-9-16-9-3 0-5 1-14 4-13 19 24 223-59 315-36 40-95 62t-149 29l0-140q0-23-22-33-7-3-14-3-15 0-25 11l-286 286q-11 11-11 25t11 25l286 286q16 17 39 8 22-9 22-33l0-146q229-16 334-123 94-97 94-284z" horiz-adv-x="1000" />
<glyph glyph-name="star-half-alt" unicode="&#xe80b;" d="M662 316l143 140-199 29-37 6-17 33-89 180 0-537 33-17 177-94-33 198-7 37z m252 146l-203-198 48-279q3-18-3-29t-19-10q-9 0-22 7l-251 132-251-132q-13-7-22-7-13 0-19 10t-3 29l48 279-203 198q-18 18-13 33t30 19l280 41 126 254q11 23 27 23t27-23l126-254 280-41q25-4 30-19t-13-33z" horiz-adv-x="928.571" />
<glyph glyph-name="direction" unicode="&#xe846;" d="M782 655l-357-714q-9-20-32-20-3 0-8 1-12 3-20 13t-8 22l0 321-321 0q-12 0-22 8t-13 20 2 23 16 17l714 357q7 4 16 4 15 0 25-11 8-8 10-19t-4-22z" horiz-adv-x="785.714" />
<glyph glyph-name="crop" unicode="&#xe8ab;" d="M311 136l332 0 0 332z m-25 25l332 332-332 0 0-332z m643-43l0-107q0-8-5-13t-13-5l-125 0 0-125q0-8-5-13t-13-5l-107 0q-8 0-13 5t-5 13l0 125-482 0q-8 0-13 5t-5 13l0 482-125 0q-8 0-13 5t-5 13l0 107q0 8 5 13t13 5l125 0 0 125q0 8 5 13t13 5l107 0q8 0 13-5t5-13l0-125 475 0 137 138q6 5 13 5t13-5q5-6 5-13t-5-13l-138-137 0-475 125 0q8 0 13-5t5-13z" horiz-adv-x="928.571" />
<glyph glyph-name="fork" unicode="&#xe8cd;" d="M161 29q0 22-16 38t-38 16-38-16-16-38 16-38 38-16 38 16 16 38z m0 643q0 22-16 38t-38 16-38-16-16-38 16-38 38-16 38 16 16 38z m357-71q0 22-16 38t-38 16-38-16-16-38 16-38 38-16 38 16 16 38z m54 0q0-29-15-54t-39-39q-1-160-126-231-38-21-113-45-71-22-95-40t-23-56l0-15q25-14 39-39t15-54q0-45-31-76t-76-31-76 31-31 76q0 29 15 54t39 39l0 458q-25 14-39 39t-15 54q0 45 31 76t76 31 76-31 31-76q0-29-15-54t-39-39l0-277q30 15 86 32 31 9 49 16t39 17 33 22 23 28 16 39 5 51q-25 14-39 39t-15 54q0 45 31 76t76 31 76-31 31-76z" horiz-adv-x="571.429" />
<glyph glyph-name="help" unicode="&#xe825;" d="M393 149l0-134q0-9-7-16t-16-7l-134 0q-9 0-16 7t-7 16l0 134q0 9 7 16t16 7l134 0q9 0 16-7t7-16z m176 335q0-30-9-56t-20-43-31-33-32-24-34-20q-23-13-38-36t-15-37q0-9-7-18t-16-9l-134 0q-8 0-14 10t-6 21l0 25q0 46 36 87t80 61q33 15 47 31t14 42q0 23-26 41t-60 18q-36 0-60-16-20-14-60-64-7-9-17-9-7 0-14 4l-92 70q-7 6-9 14t3 16q89 148 259 148 45 0 90-17t81-46 59-71 23-88z" horiz-adv-x="571.429" />
<glyph glyph-name="info" unicode="&#xe834;" d="M357 100l0-71q0-15-11-25t-25-11l-286 0q-15 0-25 11t-11 25l0 71q0 15 11 25t25 11l36 0 0 214-36 0q-15 0-25 11t-11 25l0 71q0 15 11 25t25 11l214 0q15 0 25-11t11-25l0-321 36 0q15 0 25-11t11-25z m-71 643l0-107q0-15-11-25t-25-11l-143 0q-15 0-25 11t-11 25l0 107q0 15 11 25t25 11l143 0q15 0 25-11t11-25z" horiz-adv-x="357.143" />
<glyph glyph-name="attention-alt" unicode="&#xe84a;" d="M286 154l0-125q0-15-11-25t-25-11l-143 0q-15 0-25 11t-11 25l0 125q0 15 11 25t25 11l143 0q15 0 25-11t11-25z m17 589l-16-429q-1-15-11-25t-25-11l-143 0q-15 0-25 11t-11 25l-16 429q-1 15 10 25t25 11l179 0q15 0 25-11t10-25z" horiz-adv-x="357.143" />
<glyph glyph-name="superscript" unicode="&#xe8af;" d="M501 86l0-93-138 0-89 141-13 23q-4 5-6 12l-2 0-5-12q-6-11-14-25l-86-140-144 0 0 93 71 0 110 162-103 152-76 0 0 94 154 0 78-127q1-2 13-23 4-5 6-12l2 0q2 5 6 12l14 23 78 127 143 0 0-94-70 0-103-149 114-165 61 0z m355 379l0-115-287 0-2 15q-2 16-2 26 0 36 15 65t36 48 47 36 47 30 36 30 15 36q0 21-16 35t-39 14q-28 0-54-22-8-6-20-21l-59 51q15 21 35 37 46 36 105 36 61 0 99-33t38-88q0-31-14-57t-35-43-45-33-46-28-37-29-17-35l129 0 0 45 70 0z" horiz-adv-x="857.143" />
<glyph glyph-name="subscript" unicode="&#xe8ae;" d="M501 86l0-93-138 0-89 141-13 23q-4 5-6 12l-2 0-5-12q-6-11-14-25l-86-140-144 0 0 93 71 0 110 162-103 152-76 0 0 94 154 0 78-127q1-2 13-23 4-5 6-12l2 0q2 5 6 12l14 23 78 127 143 0 0-94-70 0-103-149 114-165 61 0z m357-121l0-115-287 0-2 15q-2 25-2 26 0 36 15 65t36 48 47 36 47 30 36 30 15 36q0 21-16 35t-39 14q-28 0-54-22-8-6-20-21l-59 51q15 21 35 37 45 36 105 36 61 0 99-33t38-88q0-37-19-66t-47-48-56-35-49-35-23-41l129 0 0 45 70 0z" horiz-adv-x="857.143" />
<glyph glyph-name="eraser" unicode="&#xe8dd;" d="M500 64l187 214-429 0-187-214 429 0z m565 601q8-19 5-40t-17-37l-500-571q-21-25-54-25l-429 0q-21 0-39 11t-27 30q-8 19-5 40t17 37l500 571q21 25 54 25l429 0q21 0 39-11t27-30z" horiz-adv-x="1071.429" />
<glyph glyph-name="calendar-empty" unicode="&#xe861;" d="M71-79l786 0 0 571-786 0 0-571z m214 679l0 161q0 8-5 13t-13 5l-36 0q-8 0-13-5t-5-13l0-161q0-8 5-13t13-5l36 0q8 0 13 5t5 13z m429 0l0 161q0 8-5 13t-13 5l-36 0q-8 0-13-5t-5-13l0-161q0-8 5-13t13-5l36 0q8 0 13 5t5 13z m214 36l0-714q0-29-21-50t-50-21l-786 0q-29 0-50 21t-21 50l0 714q0 29 21 50t50 21l71 0 0 54q0 37 26 63t63 26l36 0q37 0 63-26t26-63l0-54 214 0 0 54q0 37 26 63t63 26l36 0q37 0 63-26t26-63l0-54 71 0q29 0 50-21t21-50z" horiz-adv-x="928.571" />
<glyph glyph-name="angle-circled-left" unicode="&#xe874;" d="M507 72l57 57q11 11 11 25t-11 25l-171 171 171 171q11 11 11 25t-11 25l-57 57q-11 11-25 11t-25-11l-253-253q-11-11-11-25t11-25l253-253q11-11 25-11t25 11z m350 278q0-117-57-215t-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57 215-57 156-156 57-215z" horiz-adv-x="857.143" />
<glyph glyph-name="angle-circled-right" unicode="&#xe873;" d="M400 72l253 253q11 11 11 25t-11 25l-253 253q-11 11-25 11t-25-11l-57-57q-11-11-11-25t11-25l171-171-171-171q-11-11-11-25t11-25l57-57q11-11 25-11t25 11z m457 278q0-117-57-215t-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57 215-57 156-156 57-215z" horiz-adv-x="857.143" />
<glyph glyph-name="angle-circled-up" unicode="&#xe872;" d="M650 214l57 57q11 11 11 25t-11 25l-253 253q-11 11-25 11t-25-11l-253-253q-11-11-11-25t11-25l57-57q11-11 25-11t25 11l171 171 171-171q11-11 25-11t25 11z m207 136q0-117-57-215t-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57 215-57 156-156 57-215z" horiz-adv-x="857.143" />
<glyph glyph-name="angle-circled-down" unicode="&#xe871;" d="M454 125l253 253q11 11 11 25t-11 25l-57 57q-11 11-25 11t-25-11l-171-171-171 171q-11 11-25 11t-25-11l-57-57q-11-11-11-25t11-25l253-253q11-11 25-11t25 11z m403 225q0-117-57-215t-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57 215-57 156-156 57-215z" horiz-adv-x="857.143" />
<glyph glyph-name="lock-open-alt" unicode="&#xe82d;" d="M589 421q22 0 38-16t16-38l0-321q0-22-16-38t-38-16l-536 0q-22 0-38 16t-16 38l0 321q0 22 16 38t38 16l18 0 0 179q0 103 73 177t177 73 177-73 73-177q0-15-11-25t-25-11l-36 0q-15 0-25 11t-11 25q0 59-42 101t-101 42-101-42-42-101l0-179 411 0z" horiz-adv-x="642.857" />
<glyph glyph-name="play-circled" unicode="&#xe894;" d="M429 779q117 0 215-57t156-156 57-215-57-215-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57z m214-459q18 10 18 31t-18 31l-304 179q-17 11-36 1-18-11-18-31l0-357q0-21 18-31 9-4 18-4t18 5z" horiz-adv-x="857.143" />
<glyph glyph-name="minus-squared" unicode="&#xe822;" d="M714 314l0 71q0 15-11 25t-25 11l-500 0q-15 0-25-11t-11-25l0-71q0-15 11-25t25-11l500 0q15 0 25 11t11 25z m143 304l0-536q0-66-47-114t-114-47l-536 0q-66 0-114 47t-47 114l0 536q0 66 47 114t114 47l536 0q66 0 114-47t47-114z" horiz-adv-x="857.143" />
<glyph glyph-name="minus-squared-alt" unicode="&#xe823;" d="M643 404l0-36q0-8-5-13t-13-5l-464 0q-8 0-13 5t-5 13l0 36q0 8 5 13t13 5l464 0q8 0 13-5t5-13z m71-250l0 464q0 37-26 63t-63 26l-464 0q-37 0-63-26t-26-63l0-464q0-37 26-63t63-26l464 0q37 0 63 26t26 63z m71 464l0-464q0-66-47-114t-114-47l-464 0q-66 0-114 47t-47 114l0 464q0 66 47 114t114 47l464 0q66 0 114-47t47-114z" horiz-adv-x="785.714" />
<glyph glyph-name="ok-squared" unicode="&#xe81a;" d="M382 125l343 343q11 11 11 25t-11 25l-57 57q-11 11-25 11t-25-11l-261-261-118 118q-11 11-25 11t-25-11l-57-57q-11-11-11-25t11-25l200-200q11-11 25-11t25 11z m475 493l0-536q0-66-47-114t-114-47l-536 0q-66 0-114 47t-47 114l0 536q0 66 47 114t114 47l536 0q66 0 114-47t47-114z" horiz-adv-x="857.143" />
<glyph glyph-name="link-ext-alt" unicode="&#xe831;" d="M714 332l0 268q0 15-11 25t-25 11l-268 0q-23 0-33-22-9-23 8-39l80-80-298-298q-11-11-11-25t11-25l57-57q11-11 25-11t25 11l298 298 80-80q10-11 25-11 7 0 14 3 22 9 22 33z m143 286l0-536q0-66-47-114t-114-47l-536 0q-66 0-114 47t-47 114l0 536q0 66 47 114t114 47l536 0q66 0 114-47t47-114z" horiz-adv-x="857.143" />
<glyph glyph-name="export-alt" unicode="&#xe83f;" d="M561 236l196 196q11 11 11 25t-11 25l-196 196q-17 17-39 8t-22-33l0-89q-66 0-121-11t-91-28-64-44-43-53-25-61-12-62-3-62q0-101 93-225 6-7 14-7 4 0 7 2 12 5 11 18-25 198 35 264 26 29 73 42t125 13l0-89q0-23 22-33 7-3 13-3 15 0 25 11z m296 382l0-536q0-66-47-114t-114-47l-536 0q-66 0-114 47t-47 114l0 536q0 66 47 114t114 47l536 0q66 0 114-47t47-114z" horiz-adv-x="857.143" />
<glyph glyph-name="compass" unicode="&#xe845;" d="M357 243l143 71-143 71 0-143z m214 330l0-302-286-143 0 302z m161-223q0 83-41 152t-110 110-152 41-152-41-110-110-41-152 41-152 110-110 152-41 152 41 110 110 41 152z m125 0q0-117-57-215t-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57 215-57 156-156 57-215z" horiz-adv-x="857.143" />
<glyph glyph-name="collapse" unicode="&#xe898;" d="M639 473q10-20-3-37l-179-250q-11-15-29-15t-29 15l-179 250q-13 17-3 37 9 20 32 20l357 0q22 0 32-20z m75-391l0 536q0 7-5 13t-13 5l-536 0q-7 0-13-5t-5-13l0-536q0-7 5-13t13-5l536 0q7 0 13 5t5 13z m143 536l0-536q0-66-47-114t-114-47l-536 0q-66 0-114 47t-47 114l0 536q0 66 47 114t114 47l536 0q66 0 114-47t47-114z" horiz-adv-x="857.143" />
<glyph glyph-name="collapse-top" unicode="&#xe897;" d="M639 227q-9-20-32-20l-357 0q-22 0-32 20t3 37l179 250q11 15 29 15t29-15l179-250q13-17 3-37z m75-145l0 536q0 7-5 13t-13 5l-536 0q-7 0-13-5t-5-13l0-536q0-7 5-13t13-5l536 0q7 0 13 5t5 13z m143 536l0-536q0-66-47-114t-114-47l-536 0q-66 0-114 47t-47 114l0 536q0 66 47 114t114 47l536 0q66 0 114-47t47-114z" horiz-adv-x="857.143" />
<glyph glyph-name="expand" unicode="&#xe896;" d="M607 350q0-18-15-29l-250-179q-17-13-37-3-20 9-20 32l0 357q0 22 20 32t37-3l250-179q15-11 15-29z m107-268l0 536q0 8-5 13t-13 5l-536 0q-8 0-13-5t-5-13l0-536q0-8 5-13t13-5l536 0q8 0 13 5t5 13z m143 536l0-536q0-66-47-114t-114-47l-536 0q-66 0-114 47t-47 114l0 536q0 66 47 114t114 47l536 0q66 0 114-47t47-114z" horiz-adv-x="857.143" />
<glyph glyph-name="euro" unicode="&#xe8c6;" d="M545 121l20-89q2-7-2-13t-9-8l-3-1q-2-1-6-2t-9-3-12-3-14-3-17-3-19-3-20-2-21-1q-131 0-228 73t-133 196l-53 0q-7 0-13 5t-5 13l0 63q0 7 5 13t13 5l37 0q-1 32 1 59l-37 0q-8 0-13 5t-5 13l0 64q0 8 5 13t13 5l55 0q37 117 136 189t223 71q57 0 108-13 6-2 11-8 3-6 2-13l-24-89q-2-7-8-11t-13-1l-2 1q-2 1-6 1l-10 2t-13 2-15 2-16 1-16 1q-70 0-126-36t-84-98l261 0q9 0 14-7 6-7 4-15l-13-64q-3-15-18-15l-272 0q-2-21 0-59l256 0q8 0 14-7 5-7 3-15l-13-62q-1-6-6-10t-11-4l-216 0q27-65 83-104t128-38q10 0 20 1t19 2 16 3 14 3 10 3l7 2 3 1q7 3 15-1 7-4 8-12z" horiz-adv-x="571.429" />
<glyph glyph-name="dollar" unicode="&#xe8c5;" d="M546 189q0-85-56-147t-144-76l0-98q0-8-5-13t-13-5l-75 0q-7 0-13 5t-5 13l0 98q-37 5-71 17t-57 25-41 27-26 21-10 10q-9 12-1 23l57 75q4 6 13 7 8 1 13-5l1-1q63-55 136-70 21-4 41-4 45 0 80 24t34 68q0 16-8 30t-19 23-33 21-37 18-45 18q-22 9-34 14t-34 15-35 17-32 20-30 24-24 27-20 32-12 37-5 44q0 77 55 135t142 75l0 100q0 7 5 13t13 5l75 0q8 0 13-5t5-13l0-98q32-3 62-13t49-19 35-21 22-16 8-8q9-10 3-21l-45-81q-4-8-13-9-8-2-15 4-2 2-8 7t-22 15-33 18-42 15-48 6q-53 0-86-24t-33-62q0-15 5-27t16-23 22-18 31-17 34-15 39-15q30-11 45-18t42-20 42-24 35-28 30-35 18-43 7-52z" horiz-adv-x="571.429" />
<glyph glyph-name="doc-inv" unicode="&#xe855;" d="M714 421l0-446q0-22-16-38t-38-16l-607 0q-22 0-38 16t-16 38l0 750q0 22 16 38t38 16l304 0 0-304q0-22 16-38t38-16l304 0z m-2 71l-284 0 0 284q46-8 74-36l174-174q28-28 36-74z" horiz-adv-x="714.286" />
<glyph glyph-name="doc-text-inv" unicode="&#xe856;" d="M571 82l0 36q0 8-5 13t-13 5l-393 0q-8 0-13-5t-5-13l0-36q0-8 5-13t13-5l393 0q8 0 13 5t5 13z m0 143l0 36q0 8-5 13t-13 5l-393 0q-8 0-13-5t-5-13l0-36q0-8 5-13t13-5l393 0q8 0 13 5t5 13z m143 196l0-446q0-22-16-38t-38-16l-607 0q-22 0-38 16t-16 38l0 750q0 22 16 38t38 16l304 0 0-304q0-22 16-38t38-16l304 0z m-2 71l-284 0 0 284q46-8 74-36l174-174q28-28 36-74z" horiz-adv-x="714.286" />
<glyph glyph-name="sort-name-up" unicode="&#xe8d6;" d="M665 622l99 0-40 122-7 26q-1 9-1 11l-2 0-2-11q0-1-2-10t-4-16z m-254-576q0-7-6-13l-178-178q-6-5-13-5t-13 5l-179 179q-8 9-4 20t17 11l107 0 0 768q0 8 5 13t13 5l107 0q8 0 13-5t5-13l0-768 107 0q8 0 13-5t5-13z m466-66l0-130-326 0 0 50 206 295q7 10 12 15l6 5 0 2q-1 0-4 0t-4 0q-7-2-17-2l-129 0 0-64-67 0 0 128 316 0 0-50-206-296q-3-4-12-15l-6-6 0-1 8 1q5 1 17 1l138 0 0 66 68 0z m50 501l0-59-161 0 0 59 42 0-26 80-136 0-26-80 42 0 0-59-160 0 0 59 39 0 128 369 90 0 128-369 39 0z" horiz-adv-x="928.571" />
<glyph glyph-name="sort-name-down" unicode="&#xe8d7;" d="M665 51l99 0-40 122-7 26q-1 9-1 11l-2 0-2-11q0-1-2-10t-4-16z m-254-4q0-7-6-13l-178-178q-6-5-13-5t-13 5l-179 179q-8 9-4 20t17 11l107 0 0 768q0 8 5 13t13 5l107 0q8 0 13-5t5-13l0-768 107 0q8 0 13-5t5-13z m516-137l0-59-161 0 0 59 42 0-26 80-136 0-26-80 42 0 0-59-160 0 0 59 39 0 128 369 90 0 128-369 39 0z m-50 642l0-130-326 0 0 50 206 295q7 10 12 15l6 5 0 2q-1 0-4 0t-4 0q-7-2-17-2l-129 0 0-64-67 0 0 128 316 0 0-50-206-296q-3-4-12-15l-6-6 0-2 8 2q5 1 17 1l138 0 0 66 68 0z" horiz-adv-x="928.571" />
<glyph glyph-name="sort-alt-up" unicode="&#xe8d4;" d="M411 46q0-7-6-13l-178-178q-6-5-13-5t-13 5l-179 179q-8 9-4 20t17 11l107 0 0 768q0 8 5 13t13 5l107 0q8 0 13-5t5-13l0-768 107 0q8 0 13-5t5-13z m589-71l0-107q0-8-5-13t-13-5l-464 0q-8 0-13 5t-5 13l0 107q0 8 5 13t13 5l464 0q8 0 13-5t5-13z m-107 286l0-107q0-8-5-13t-13-5l-357 0q-8 0-13 5t-5 13l0 107q0 8 5 13t13 5l357 0q8 0 13-5t5-13z m-107 286l0-107q0-8-5-13t-13-5l-250 0q-8 0-13 5t-5 13l0 107q0 8 5 13t13 5l250 0q8 0 13-5t5-13z m-107 286l0-107q0-8-5-13t-13-5l-143 0q-8 0-13 5t-5 13l0 107q0 8 5 13t13 5l143 0q8 0 13-5t5-13z" horiz-adv-x="1000" />
<glyph glyph-name="sort-alt-down" unicode="&#xe8d5;" d="M679-25l0-107q0-8-5-13t-13-5l-143 0q-8 0-13 5t-5 13l0 107q0 8 5 13t13 5l143 0q8 0 13-5t5-13z m-268 71q0-7-6-13l-178-178q-6-5-13-5t-13 5l-179 179q-8 9-4 20t17 11l107 0 0 768q0 8 5 13t13 5l107 0q8 0 13-5t5-13l0-768 107 0q8 0 13-5t5-13z m375 214l0-107q0-8-5-13t-13-5l-250 0q-8 0-13 5t-5 13l0 107q0 8 5 13t13 5l250 0q8 0 13-5t5-13z m107 286l0-107q0-8-5-13t-13-5l-357 0q-8 0-13 5t-5 13l0 107q0 8 5 13t13 5l357 0q8 0 13-5t5-13z m107 286l0-107q0-8-5-13t-13-5l-464 0q-8 0-13 5t-5 13l0 107q0 8 5 13t13 5l464 0q8 0 13-5t5-13z" horiz-adv-x="1000" />
<glyph glyph-name="sort-number-up" unicode="&#xe8d8;" d="M751 117q0 35-25 65t-57 30q-29 0-46-21t-17-52 20-53 58-21q28 0 47 15t20 38z m-340-71q0-7-6-13l-178-178q-6-5-13-5t-13 5l-179 179q-8 9-4 20t17 11l107 0 0 768q0 8 5 13t13 5l107 0q8 0 13-5t5-13l0-768 107 0q8 0 13-5t5-13z m419 39q0-35-7-68t-23-64-38-53-55-37-71-14q-35 0-60 9-13 4-23 8l22 63q8-4 17-6 21-7 42-7 47 0 75 33t37 81l-1 0q-12-13-34-21t-47-8q-59 0-97 40t-37 96q0 59 40 99t101 41q69 0 114-53t46-141z m-17 400l0-64-262 0 0 64 93 0 0 241q0 4 0 11t0 9l0 9-1 0-4-7q-4-7-15-17l-35-32-46 48 107 103 69 0 0-365 92 0z" horiz-adv-x="857.143" />
<glyph glyph-name="sort-number-down" unicode="&#xe8d9;" d="M751 689q0 35-25 65t-57 30q-29 0-46-21t-17-52 20-53 58-21q28 0 47 15t20 38z m-340-642q0-7-6-13l-178-178q-6-5-13-5t-13 5l-179 179q-8 9-4 20t17 11l107 0 0 768q0 8 5 13t13 5l107 0q8 0 13-5t5-13l0-768 107 0q8 0 13-5t5-13z m402-133l0-64-262 0 0 64 93 0 0 241q0 4 0 11t0 9l0 9-1 0-4-7q-4-7-15-17l-35-32-46 48 107 103 69 0 0-365 92 0z m17 743q0-35-7-68t-23-64-38-53-55-37-71-14q-35 0-60 9-13 4-23 8l22 63q8-4 17-6 21-7 42-7 47 0 75 33t37 81l-1 0q-12-13-34-21t-47-8q-59 0-97 40t-37 96q0 59 40 99t101 41q69 0 114-53t46-141z" horiz-adv-x="857.143" />
<glyph glyph-name="sun" unicode="&#xe8a0;" d="M821 350q0 65-25 125t-69 103-103 69-125 25-125-25-103-69-69-103-25-125 25-125 69-103 103-69 125-25 125 25 103 69 69 103 25 125z m154-155q-2-8-11-11l-163-54 0-171q0-9-7-15-8-6-16-2l-163 52-100-138q-6-7-15-7t-15 7l-100 138-163-52q-8-3-16 2-7 6-7 15l0 171-163 54q-9 3-11 11-3 9 2 16l100 138-100 138q-5 7-2 16 2 8 11 11l163 54 0 171q0 9 7 15 8 6 16 2l163-52 100 138q5 7 15 7t15-7l100-138 163 52q8 3 16-2 7-6 7-15l0-171 163-54q9-3 11-11 3-9-2-16l-100-138 100-138q5-7 2-16z" horiz-adv-x="1000" />
<glyph glyph-name="box" unicode="&#xe85b;" d="M607 386q0 15-11 25t-25 11l-143 0q-15 0-25-11t-11-25 11-25 25-11l143 0q15 0 25 11t11 25z m321 107l0-536q0-15-11-25t-25-11l-786 0q-15 0-25 11t-11 25l0 536q0 15 11 25t25 11l786 0q15 0 25-11t11-25z m36 250l0-143q0-15-11-25t-25-11l-857 0q-15 0-25 11t-11 25l0 143q0 15 11 25t25 11l857 0q15 0 25-11t11-25z" horiz-adv-x="1000" />
<glyph glyph-name="bug" unicode="&#xe8cc;" d="M911 314q0-15-11-25t-25-11l-125 0q0-95-37-162l116-117q11-11 11-25t-11-25q-10-11-25-11t-25 11l-110 110q-3-3-8-7t-23-16-36-20-46-16-54-7l0 500-71 0 0-500q-28 0-57 8t-49 18-37 22-24 18l-8 8-102-116q-11-12-27-12-13 0-24 9-11 10-11 25t9 26l113 127q-32 64-32 153l-125 0q-15 0-25 11t-11 25 11 25 25 11l125 0 0 164-97 97q-11 11-11 25t11 25 25 11 25-11l97-97 471 0 97 97q11 11 25 11t25-11 11-25-11-25l-97-97 0-164 125 0q15 0 25-11t11-25z m-268 321l-357 0q0 74 52 126t126 52 126-52 52-126z" horiz-adv-x="928.571" />
<glyph glyph-name="picture-1" unicode="&#xe8e7;" d="M856 518l-100 0-124 150-214-150-180 0q-52 0-90-39t-38-91l0-160-108 296q-10 38 22 52l680 248q36 10 50-24z m106-90q16 0 27-12t11-28l0-472q0-16-11-28t-27-12l-724 0q-16 0-27 12t-11 28l0 472q0 16 11 28t27 12l724 0z m-56-452l0 162-72 160-166-60-130-132-138 170-92-214 0-86 598 0z" horiz-adv-x="1000" />
<glyph glyph-name="picture" unicode="&#xe811;" d="M357 529q0-45-31-76t-76-31-76 31-31 76 31 76 76 31 76-31 31-76z m571-214l0-250-786 0 0 107 179 179 89-89 286 286z m54 393l-893 0q-7 0-13-5t-5-13l0-679q0-7 5-13t13-5l893 0q7 0 13 5t5 13l0 679q0 7-5 13t-13 5z m89-18l0-679q0-37-26-63t-63-26l-893 0q-37 0-63 26t-26 63l0 679q0 37 26 63t63 26l893 0q37 0 63-26t26-63z" horiz-adv-x="1071.429" />
<glyph glyph-name="globe" unicode="&#xe89f;" d="M429 779q117 0 215-57t156-156 57-215-57-215-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57z m153-291q-1-1-5-5t-8-5q1 0 3 3t3 6 2 4q3 4 12 8 8 3 29 7 19 4 28-6-1 1 5 7t8 7q2 1 8 3t8 4l1 12q-7-1-10 4t-4 12q0-1-3-4 0 4-3 4t-6-1-5-1q-6 2-8 4t-4 9-2 8q-1 3-5 6t-5 6q-1 1-1 3t-2 4-2 3-3 1-4-3-4-6-3-3q-2 1-3 1t-3-1-3-2-3-2q-2-1-5-2t-5-1q8 3-1 6-6 2-9 2 5 2 4 7t-5 8l3 0q-1 2-5 5t-10 5-7 3q-4 3-19 5t-18 0q-3-3-3-6t2-8 2-7q1-3-3-7t-4-7q0-4 8-9t6-12q-2-4-9-9t-9-7q-3-4-1-10t6-9q1-1 1-2t-2-3-3-2-4-2l-2-1q-6-3-11 3t-8 15q-4 14-9 17-13 4-16-1-3 7-23 15-14 5-32 2 3 1 0 8-4 8-11 7 2 3 2 10t1 8q2 7 7 13 1 1 4 5t5 8 0 3q20-2 28 6 3 3 6 9t6 9q5 3 8 3t8-3 8-3q8-1 9 6t-4 11q7-1 2 9-3 4-4 5-7 2-15-3-4-2 1-4-1 1-5-6t-9-10-9 3q-1 1-3 8t-5 8q-4 0-9-8 2 4-6 8t-13 4q11 7-4 15-4 2-11 3t-11-2q-3-4-3-6t3-4 6-3 6-2 5-2q8-6 4-8-1-1-5-2t-6-3-3-2q-2-2 0-8t-1-8q-3 3-5 10t-4 9q4-5-14-3l-6 1q-2 0-9-1t-11-1-8 4q-2 4 0 11 1 2 2 1-2 2-6 5t-6 5q-26-8-52-23 3-1 7 1 3 1 7 4t6 3q19 8 23 4l3 3q8-9 11-14-4 2-17 1-11-3-12-7 4-7 3-10-2 2-6 6t-8 6-8 3q-9 0-12-1-81-45-131-124 4-4 7-4 2-1 3-5t1-6 6 2q5-4 2-11 1 1 25-15 11-9 12-12 2-6-6-10-1 1-5 5t-5 2q-2-3 0-10t6-7q-4 0-5-9t-1-20-1-13l1-1q-2-7 3-19t12-11q-7-2 11-24 3-4 4-5 2-1 7-4t8-6 6-6q2-3 6-13t8-13q-1-3 5-11t6-13q-1 0-1-1t-1-1q2-4 9-8t9-7q1-2 1-6t2-6 4-1q1 11-13 35-8 14-9 16-2 3-3 9t-3 8q1 0 3-1t5-2 4-2 1-2q-2-4 1-10t7-10 9-11 7-7q3-3 8-11t0-8q5 0 11-6t9-11q3-4 4-15t3-13q1-4 5-8t7-5l9-4t7-4q3-1 10-6t12-6q6-2 9-2t8 1 8 2q8 1 16-8t12-12q20-11 31-6-1-1 0-4t4-9 5-8 3-5q3-3 10-8t10-8q3 2 4 5-2-4 4-11t10-6q8 2 8 18-17-8-27 10 0 1-1 3t-2 5-1 5 0 4 3 2q5 0 6 2t-1 7-2 7q-1 4-6 11t-7 8q-3-5-9-4t-9 5q0-1-1-3t-1-4q-7 0-8 1 1 2 1 10t2 13q1 2 3 7t4 8 2 7-3 5-10 1q-11-1-15-11-1-2-2-6t-3-6-5-4q-4-2-13-1t-13 3q-7 4-13 16t-5 21q0 6 1 15t2 14-3 14q2 1 5 5t6 6q1 1 3 1t3 0 2 1 2 3q-1 1-2 2-2 2-2 2 4-2 16 1t15-1q8-6 12 1 0 1-1 5t0 8q3-15 16-5 2-2 9-3t10-3q2-1 4-3t3-3 3 0 5 4q6-8 7-13 6-22 11-25 4-2 6-1t3 5 0 8-1 7l-1 4 0 10-1 4q-8 2-10 7t1 10 8 10q1 1 4 2t9 4 7 4q12 11 8 20 4 0 6 5-1 0-3 2t-4 3-3 1q5 3 1 9 3 2 4 6t4 6q5-7 12-1 4 4 1 9 3 4 11 6t10 5q4-1 4 1t1 7 2 7q2 3 8 5t7 3l9 6q2 2 0 2 10-1 17 6 6 6-3 11 2 3-2 5t-8 3q2 1 6 0t6 1q8 6-4 9-9 3-24-7z m-91-489q115 20 196 105-2 2-7 3t-7 2q-10 4-13 4 1 4-1 7t-4 5-7 4-6 4q-1 1-4 3t-4 3-4 3-5 1-6-1l-2-1q-2-1-3-1t-3-2-2-2 0-1q-12 9-20 12-3 1-6 3t-6 4-6 1-6-4q-3-3-3-8t-1-7q-4 3 0 10t1 10q-2 3-6 3t-7-3-6-5-5-4-5-3-5-4q-2-2-3-7t-3-6q-1 2-6 4t-5 3q1-6 2-20t3-21q4-17-7-27-15-14-16-22-2-12 7-15 0-4-4-11t-4-12q0-3 1-9z" horiz-adv-x="857.143" />
<glyph glyph-name="videocam" unicode="&#xe810;" d="M1000 654l0-607q0-23-22-33-7-3-14-3-15 0-25 11l-225 225 0-93q0-66-47-114t-114-47l-393 0q-66 0-114 47t-47 114l0 393q0 66 47 114t114 47l393 0q66 0 114-47t47-114l0-92 225 224q10 11 25 11 7 0 14-3 22-9 22-33z" horiz-adv-x="1000" />
<glyph glyph-name="video" unicode="&#xe80f;" d="M214-43l0 71q0 15-11 25t-25 11l-71 0q-15 0-25-11t-11-25l0-71q0-15 11-25t25-11l71 0q15 0 25 11t11 25z m0 214l0 71q0 15-11 25t-25 11l-71 0q-15 0-25-11t-11-25l0-71q0-15 11-25t25-11l71 0q15 0 25 11t11 25z m0 214l0 71q0 15-11 25t-25 11l-71 0q-15 0-25-11t-11-25l0-71q0-15 11-25t25-11l71 0q15 0 25 11t11 25z m571-429l0 286q0 15-11 25t-25 11l-429 0q-15 0-25-11t-11-25l0-286q0-15 11-25t25-11l429 0q15 0 25 11t11 25z m-571 643l0 71q0 15-11 25t-25 11l-71 0q-15 0-25-11t-11-25l0-71q0-15 11-25t25-11l71 0q15 0 25 11t11 25z m786-643l0 71q0 15-11 25t-25 11l-71 0q-15 0-25-11t-11-25l0-71q0-15 11-25t25-11l71 0q15 0 25 11t11 25z m-214 429l0 286q0 15-11 25t-25 11l-429 0q-15 0-25-11t-11-25l0-286q0-15 11-25t25-11l429 0q15 0 25 11t11 25z m214-214l0 71q0 15-11 25t-25 11l-71 0q-15 0-25-11t-11-25l0-71q0-15 11-25t25-11l71 0q15 0 25 11t11 25z m0 214l0 71q0 15-11 25t-25 11l-71 0q-15 0-25-11t-11-25l0-71q0-15 11-25t25-11l71 0q15 0 25 11t11 25z m0 214l0 71q0 15-11 25t-25 11l-71 0q-15 0-25-11t-11-25l0-71q0-15 11-25t25-11l71 0q15 0 25 11t11 25z m71 89l0-750q0-37-26-63t-63-26l-893 0q-37 0-63 26t-26 63l0 750q0 37 26 63t63 26l893 0q37 0 63-26t26-63z" horiz-adv-x="1071.429" />
<glyph glyph-name="target" unicode="&#xe940;" d="M430 780q178 0 304-126t126-304-126-304-304-126-304 126-126 304 126 304 304 126z m36-778q124 14 212 102t100 212l-192 0 0 70 192 0q-12 124-100 212t-212 102l0-194-70 0 0 194q-124-14-213-102t-101-212l194 0 0-70-194 0q12-124 101-212t213-102l0 194 70 0 0-194z" horiz-adv-x="860" />
<glyph glyph-name="user-1" unicode="&#xe8e5;" d="M736 128q204-72 204-122l0-106-940 0 0 106q0 50 204 122 94 34 128 69t34 95q0 22-22 49t-32 73q-2 12-9 18t-14 8-14 17-9 43q0 16 5 26t9 12l4 4q-8 50-12 88-4 54 41 112t157 58 158-58 40-112l-12-88q18-8 18-42-2-28-9-43t-14-17-14-8-9-18q-8-48-31-74t-23-48q0-60 35-95t127-69z" horiz-adv-x="940" />
<glyph glyph-name="user" unicode="&#xe80d;" d="M786 66q0-67-41-106t-108-39l-488 0q-68 0-108 39t-41 106q0 30 2 58t8 61 15 61 24 54 35 45 48 30 62 11q5 0 23-12t42-27 60-27 74-12 74 12 60 27 42 27 23 12q34 0 62-11t48-30 35-45 24-54 15-61 8-61 2-58z m-179 498q0-89-63-151t-151-63-151 63-63 151 63 151 151 63 151-63 63-151z" horiz-adv-x="785.714" />
<glyph glyph-name="users-1" unicode="&#xe8e6;" d="M1000-90l-224 0 0 150q0 54-30 81t-154 89q40 30 40 84 0 16-13 33t-19 51q-2 8-14 16t-14 42q0 24 12 30-6 34-8 60-4 38 23 78t95 40 96-40 24-78l-8-60q12-6 12-30-2-34-14-42t-14-16q-6-34-19-51t-13-33q0-42 21-66t77-48q112-46 130-80 6-8 9-61t5-101l0-48z m-488 262q182-78 182-124l0-138-694 0 0 184q0 44 84 78 76 32 104 64t28 88q0 20-19 44t-25 68q-2 10-18 22t-20 56q0 14 3 23t7 13l4 2q-6 46-10 82-4 50 33 103t127 53 127-53 33-103l-10-82q14-8 14-38-4-44-20-56t-18-22q-6-44-25-68t-19-44q0-56 28-88t104-64z" horiz-adv-x="1000" />
<glyph glyph-name="users" unicode="&#xe80e;" d="M331 350q-90-3-148-71l-75 0q-46 0-77 23t-31 66q0 197 69 197 3 0 24-12t54-24 66-12q37 0 74 13-3-21-3-37 0-78 45-143z m598-355q0-67-41-106t-108-39l-488 0q-68 0-108 39t-41 106q0 30 2 58t8 61 15 61 24 54 35 45 48 30 62 11q6 0 24-12t41-27 60-27 75-12 75 12 60 27 41 27 24 12q34 0 62-11t48-30 35-45 24-54 15-61 8-61 2-58z m-571 713q0-59-42-101t-101-42-101 42-42 101 42 101 101 42 101-42 42-101z m393-214q0-89-63-151t-151-63-151 63-63 151 63 151 151 63 151-63 63-151z m321-126q0-44-31-66t-77-23l-75 0q-57 69-148 71 45 65 45 143 0 16-3 37 37-13 74-13 33 0 66 12t54 24 24 12q69 0 69-197z m-71 340q0-59-42-101t-101-42-101 42-42 101 42 101 101 42 101-42 42-101z" horiz-adv-x="1071.429" />
<glyph glyph-name="lamp" unicode="&#xe91e;" d="M209-110l0 104 282 0 0-104q-70-42-142-40-70-2-140 40z m276 164l-270 0q0 72-36 140t-78 113-74 112-26 139q8 120 94 206t254 86q170 0 255-86t95-206q4-60-16-113t-52-96-65-85-57-96-24-114z m-378 496q-4-4 0-20t2-20 5-19 6-18 8-18 11-19 13-19 14-19 15-21 16-23q88-122 112-212l82 0q24 94 112 212 4 6 25 35t25 36 17 29 16 33 6 28 1 35q-16 196-244 196-226 0-242-196z" horiz-adv-x="700" />
<glyph glyph-name="credit-card" unicode="&#xe8d0;" d="M982 779q37 0 63-26t26-63l0-679q0-37-26-63t-63-26l-893 0q-37 0-63 26t-26 63l0 679q0 37 26 63t63 26l893 0z m-893-71q-7 0-13-5t-5-13l0-125 929 0 0 125q0 7-5 13t-13 5l-893 0z m893-714q7 0 13 5t5 13l0 339-929 0 0-339q0-7 5-13t13-5l893 0z m-839 71l0 71 143 0 0-71-143 0z m214 0l0 71 214 0 0-71-214 0z" horiz-adv-x="1071.429" />
<glyph glyph-name="monitor" unicode="&#xe944;" d="M900 790q42 0 71-30t29-70l0-550q0-42-29-77t-69-43l-218-44 86-38q50-28-20-28l-500 0q-98 0 32 52l36 14-220 44q-40 8-69 43t-29 77l0 550q0 40 30 70t70 30l800 0z m0-646l0 556-800 0 0-556 800 0z" horiz-adv-x="1000" />
<glyph glyph-name="briefcase" unicode="&#xe8a8;" d="M357 707l286 0 0 71-286 0 0-71z m643-357l0-268q0-37-26-63t-63-26l-821 0q-37 0-63 26t-26 63l0 268 375 0 0-89q0-15 11-25t25-11l179 0q15 0 25 11t11 25l0 89 375 0z m-429 0l0-71-143 0 0 71 143 0z m429 268l0-214-1000 0 0 214q0 37 26 63t63 26l196 0 0 89q0 22 16 38t38 16l321 0q22 0 38-16t16-38l0-89 196 0q37 0 63-26t26-63z" horiz-adv-x="1000" />
<glyph glyph-name="floppy-1" unicode="&#xe94d;" d="M658 750l142-156 0-544q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l558 0z m-58-300l0 250-400 0 0-250q0-20 15-35t35-15l300 0q20 0 35 15t15 35z m-50 200l0-200-100 0 0 200 100 0z" horiz-adv-x="800" />
<glyph glyph-name="floppy" unicode="&#xe8cf;" d="M214-7l429 0 0 214-429 0 0-214z m500 0l71 0 0 500q0 8-6 21t-11 19l-157 157q-6 6-19 11t-22 6l0-232q0-22-16-38t-38-16l-321 0q-22 0-38 16t-16 38l0 232-71 0 0-714 71 0 0 232q0 22 16 38t38 16l464 0q22 0 38-16t16-38l0-232z m-214 518l0 179q0 7-5 13t-13 5l-107 0q-7 0-13-5t-5-13l0-179q0-7 5-13t13-5l107 0q7 0 13 5t5 13z m357-18l0-518q0-22-16-38t-38-16l-750 0q-22 0-38 16t-16 38l0 750q0 22 16 38t38 16l518 0q22 0 49-11t42-27l156-156q16-16 27-42t11-49z" horiz-adv-x="857.143" />
<glyph glyph-name="folder-1" unicode="&#xe908;" d="M954 500q32 0 40-12t6-36l-42-452q-2-24-12-37t-42-13l-806 0q-52 0-56 50l-42 452q-2 24 6 36t40 12l908 0z m-34 110l10-40-846 0 14 132q4 20 20 34t36 14l164 0q52 0 86-34l30-30q32-36 86-36l340 0q20 0 38-12t22-28z" horiz-adv-x="1001" />
<glyph glyph-name="folder" unicode="&#xe857;" d="M929 511l0-393q0-51-37-88t-88-37l-679 0q-51 0-88 37t-37 88l0 536q0 51 37 88t88 37l179 0q51 0 88-37t37-88l0-18 375 0q51 0 88-37t37-88z" horiz-adv-x="928.571" />
<glyph glyph-name="folder-open" unicode="&#xe858;" d="M1048 319q0-17-17-37l-187-221q-24-28-67-48t-80-20l-607 0q-19 0-34 7t-15 24q0 17 17 37l187 221q24 28 67 48t80 20l607 0q19 0 34-7t15-24z m-191 192l0-89-464 0q-52 0-110-27t-92-67l-188-221-3-3q0 2 0 7t0 7l0 536q0 51 37 88t88 37l179 0q51 0 88-37t37-88l0-18 304 0q51 0 88-37t37-88z" horiz-adv-x="1071.429" />
<glyph glyph-name="doc" unicode="&#xe843;" d="M71-7l571 0 0 429-232 0q-22 0-38 16t-16 38l0 232-286 0 0-714z m357 500l210 0q-6 16-12 23l-175 175q-7 7-23 12l0-210z m286-18l0-500q0-22-16-38t-38-16l-607 0q-22 0-38 16t-16 38l0 750q0 22 16 38t38 16l357 0q22 0 49-11t42-27l174-174q16-16 27-42t11-49z" horiz-adv-x="714.286" />
<glyph glyph-name="calendar" unicode="&#xe860;" d="M71-79l161 0 0 161-161 0 0-161z m196 0l179 0 0 161-179 0 0-161z m-196 196l161 0 0 179-161 0 0-179z m196 0l179 0 0 179-179 0 0-179z m-196 214l161 0 0 161-161 0 0-161z m411-411l179 0 0 161-179 0 0-161z m-214 411l179 0 0 161-179 0 0-161z m429-411l161 0 0 161-161 0 0-161z m-214 196l179 0 0 179-179 0 0-179z m-196 482l0 161q0 7-5 13t-13 5l-36 0q-7 0-13-5t-5-13l0-161q0-7 5-13t13-5l36 0q7 0 13 5t5 13z m411-482l161 0 0 179-161 0 0-179z m-214 214l179 0 0 161-179 0 0-161z m214 0l161 0 0 161-161 0 0-161z m18 268l0 161q0 7-5 13t-13 5l-36 0q-7 0-13-5t-5-13l0-161q0-7 5-13t13-5l36 0q7 0 13 5t5 13z m214 36l0-714q0-29-21-50t-50-21l-786 0q-29 0-50 21t-21 50l0 714q0 29 21 50t50 21l71 0 0 54q0 37 26 63t63 26l36 0q37 0 63-26t26-63l0-54 214 0 0 54q0 37 26 63t63 26l36 0q37 0 63-26t26-63l0-54 71 0q29 0 50-21t21-50z" horiz-adv-x="928.571" />
<glyph glyph-name="chart-line" unicode="&#xe947;" d="M34 284q-42 10-32 56 10 42 54 32l98-24-52-80z m890-12q14 12 33 11t31-15q32-32-2-64l-252-226q-12-12-30-12-14 0-28 10l-286 220-54 14 50 80 36-8q12-4 16-8l264-204z m-490 220l-350-550q-12-22-38-22-12 0-24 8-16 10-20 29t6 33l374 588q8 16 28 20 18 6 36-6l246-156 226 326q10 16 28 19t34-9q38-24 12-62l-252-362q-24-36-62-12z" horiz-adv-x="1003" />
<glyph glyph-name="chart-bar" unicode="&#xe8c4;" d="M286 279l0-214-143 0 0 214 143 0z m214 286l0-500-143 0 0 500 143 0z m214-143l0-357-143 0 0 357 143 0z m214 214l0-571-143 0 0 571 143 0z m71-625l0 679q0 7-5 13t-13 5l-893 0q-7 0-13-5t-5-13l0-679q0-7 5-13t13-5l893 0q7 0 13 5t5 13z m71 679l0-679q0-37-26-63t-63-26l-893 0q-37 0-63 26t-26 63l0 679q0 37 26 63t63 26l893 0q37 0 63-26t26-63z" horiz-adv-x="1071.429" />
<glyph glyph-name="chart-bar-1" unicode="&#xe948;" d="M750 800q22 0 36-15t14-35l0-850-200 0 0 850q0 50 40 50l110 0z m-300-300q22 0 36-15t14-35l0-550-200 0 0 550q0 50 40 50l110 0z m-300-300q22 0 36-15t14-35l0-250-200 0 0 250q0 50 40 50l110 0z" horiz-adv-x="800" />
<glyph glyph-name="pin" unicode="&#xe82c;" d="M268 368l0 250q0 8-5 13t-13 5-13-5-5-13l0-250q0-8 5-13t13-5 13 5 5 13z m375-196q0-15-11-25t-25-11l-239 0-28-270q-1-7-6-11t-11-5l-1 0q-15 0-18 15l-42 271-225 0q-15 0-25 11t-11 25q0 69 44 124t99 55l0 286q-29 0-50 21t-21 50 21 50 50 21l357 0q29 0 50-21t21-50-21-50-50-21l0-286q55 0 99-55t44-124z" horiz-adv-x="642.857" />
<glyph glyph-name="attach" unicode="&#xe830;" d="M783 77q0-65-44-109t-109-44q-75 0-131 56l-434 433q-63 64-63 151 0 89 61 151t150 62q88 0 152-63l338-338q6-6 6-12 0-9-17-26t-26-17q-7 0-13 6l-338 339q-44 43-101 43-59 0-100-42t-41-101q0-59 42-101l433-434q35-35 81-35 36 0 59 23t23 59q0 46-35 81l-324 324q-15 13-33 13-16 0-27-11t-11-27q0-18 14-33l229-229q6-6 6-12 0-9-17-26t-26-17q-7 0-12 6l-229 229q-35 34-35 83 0 46 32 78t78 32q49 0 83-35l324-324q56-55 56-131z" horiz-adv-x="785.714" />
<glyph glyph-name="bookmarks" unicode="&#xe8fd;" d="M500 850q20 0 35-15t15-35l0-850-150 180 0 620q0 20-15 35t-35 15l-100 0q0 50 40 50l210 0z m-250-150q20 0 35-15t15-35l0-800-150 180-150-180 0 800q0 50 40 50l210 0z" horiz-adv-x="550" />
<glyph glyph-name="book-open" unicode="&#xe904;" d="M340 238l0-68-200 80 0 68z m0 208l0-68-200 80 0 68z m538 346q22-12 22-42l0-640q0-34-32-46l-398-160q-8-2-10-2t-5-1-5-1-5 1-5 1l-10 2-398 160q-32 12-32 46l0 640q0 30 22 42 22 16 46 6l382-154 382 154q24 10 46-6z m-478-788l0 560-320 128 0-560z m420 128l0 560-320-128 0-560z m-60 186l0-68-200-80 0 68z m0 208l0-68-200-80 0 68z" horiz-adv-x="900" />
<glyph glyph-name="upload" unicode="&#xe838;" d="M714 29q0 15-11 25t-25 11-25-11-11-25 11-25 25-11 25 11 11 25z m143 0q0 15-11 25t-25 11-25-11-11-25 11-25 25-11 25 11 11 25z m71 125l0-179q0-22-16-38t-38-16l-821 0q-22 0-38 16t-16 38l0 179q0 22 16 38t38 16l238 0q12-31 39-51t62-20l143 0q34 0 62 20t39 51l238 0q22 0 38-16t16-38z m-181 362q-9-22-33-22l-143 0 0-250q0-15-11-25t-25-11l-143 0q-15 0-25 11t-11 25l0 250-143 0q-23 0-33 22-9 22 8 39l250 250q10 11 25 11t25-11l250-250q17-17 8-39z" horiz-adv-x="928.571" />
<glyph glyph-name="download" unicode="&#xe837;" d="M714 100q0 15-11 25t-25 11-25-11-11-25 11-25 25-11 25 11 11 25z m143 0q0 15-11 25t-25 11-25-11-11-25 11-25 25-11 25 11 11 25z m71 125l0-179q0-22-16-38t-38-16l-821 0q-22 0-38 16t-16 38l0 179q0 22 16 38t38 16l259 0 75-76q32-31 76-31t76 31l76 76 259 0q22 0 38-16t16-38z m-181 318q9-23-8-39l-250-250q-10-11-25-11t-25 11l-250 250q-17 16-8 39 9 22 33 22l143 0 0 250q0 15 11 25t25 11l143 0q15 0 25-11t11-25l0-250 143 0q23 0 33-22z" horiz-adv-x="928.571" />
<glyph glyph-name="box-1" unicode="&#xe90a;" d="M870 750q12 0 21-9t9-21l0-120-900 0 0 120q0 12 9 21t21 9l840 0z m-820-730l0 530 800 0 0-530q0-30-21-50t-49-20l-660 0q-28 0-49 20t-21 50z m250 430l0-100 300 0 0 100-300 0z" horiz-adv-x="900" />
<glyph glyph-name="mobile-1" unicode="&#xe945;" d="M480 840q42 0 71-29t29-71l0-780q0-40-29-70t-71-30l-380 0q-40 0-70 30t-30 70l0 780q0 42 30 71t70 29l380 0z m-190-940q30 0 50 15t20 35q0 22-20 36t-50 14q-28 0-49-15t-21-35 21-35 49-15z m210 150l0 660-420 0 0-660 420 0z" horiz-adv-x="580" />
<glyph glyph-name="camera-1" unicode="&#xe8e0;" d="M500 450q64 0 107-44t43-106-44-106-106-44-106 44-44 106 44 106 106 44z m400 150q42 0 71-29t29-71l0-450q0-40-29-70t-71-30l-800 0q-40 0-70 30t-30 70l0 450q0 42 30 71t70 29l120 0q28 0 40 30l30 92q10 28 40 28l340 0q30 0 40-28l30-92q12-30 40-30l120 0z m-400-550q104 0 177 73t73 177-73 177-177 73-177-73-73-177 73-177 177-73z m366 380q14 0 24 11t10 25-10 24-24 10q-36 0-36-34 0-16 11-26t25-10z" horiz-adv-x="1000" />
<glyph glyph-name="camera" unicode="&#xe812;" d="M536 475q66 0 114-47t47-114-47-114-114-47-114 47-47 114 47 114 114 47z m393 232q59 0 101-42t42-101l0-500q0-59-42-101t-101-42l-786 0q-59 0-101 42t-42 101l0 500q0 59 42 101t101 42l125 0 28 76q11 27 39 47t58 20l286 0q30 0 58-20t39-47l28-76 125 0z m-393-643q103 0 177 73t73 177-73 177-177 73-177-73-73-177 73-177 177-73z" horiz-adv-x="1071.429" />
<glyph glyph-name="shuffle-1" unicode="&#xe93c;" d="M754 516q-54 0-105-32t-80-66-83-104q-48-62-75-94t-78-77-107-66-122-21l-104 0 0 140 104 0q54 0 106 32t81 66 83 104q62 82 101 126t116 88 163 44l36 0 0 120 210-180-210-180 0 100-36 0z m-484-88q-74 78-166 78l-104 0 0 140 104 0q140 0 254-108-14-16-37-45t-27-33q-8-12-24-32z m520-242l0 100 210-180-210-180 0 120-36 0q-140 0-260 116 46 58 72 92 0 2 6 9t8 11q84-88 174-88l36 0z" horiz-adv-x="1000" />
<glyph glyph-name="shuffle" unicode="&#xe89a;" d="M372 582q-33-51-76-152-12 25-21 40t-23 35-28 32-35 20-45 8l-125 0q-8 0-13 5t-5 13l0 107q0 8 5 13t13 5l125 0q140 0 229-126z m628-446q0-8-5-13l-179-179q-5-5-13-5-7 0-13 5t-5 13l0 107q-18 0-47 0t-45-1-41 1-40 3-36 6-35 10-32 16-33 22-31 30-31 39q33 52 76 152 12-25 21-40t23-35 28-32 35-20 45-8l143 0 0 107q0 8 5 13t13 5q7 0 13-6l178-178q5-5 5-13z m0 500q0-8-5-13l-179-179q-5-5-13-5-7 0-13 5t-5 13l0 107-143 0q-27 0-49-8t-39-25-28-34-25-43q-18-35-44-95-16-37-28-62t-30-59-36-56-41-46-50-38-59-23-71-9l-125 0q-8 0-13 5t-5 13l0 107q0 8 5 13t13 5l125 0q27 0 49 8t39 25 28 34 25 43q18 35 44 95 16 37 28 62t30 59 36 56 41 46 50 38 59 23 71 9l143 0 0 107q0 8 5 13t13 5q7 0 13-6l178-178q5-5 5-13z" horiz-adv-x="1000" />
<glyph glyph-name="loop" unicode="&#xe93b;" d="M800 540q42 0 71-29t29-71l0-290q0-40-29-70t-71-30l-700 0q-40 0-70 30t-30 70l0 290q0 42 30 71t70 29l250 0 0 110 200-180-200-180 0 110-210 0 0-210 620 0 0 210-150 0 0 140 190 0z" horiz-adv-x="900" />
<glyph glyph-name="arrows-ccw" unicode="&#xe93d;" d="M186 140l116 116 0-292-276 16 88 86q-116 122-114 290t120 288q100 100 240 116l4-102q-100-16-172-88-88-88-90-213t84-217z m332 598l276-16-88-86q116-122 114-290t-120-288q-96-98-240-118l-2 104q98 16 170 88 88 88 90 213t-84 217l-114-116z" horiz-adv-x="820" />
<glyph glyph-name="search" unicode="&#xe806;" d="M643 386q0 103-73 177t-177 73-177-73-73-177 73-177 177-73 177 73 73 177z m286-464q0-29-21-50t-50-21q-30 0-50 21l-191 191q-100-69-223-69-80 0-153 31t-126 84-84 126-31 153 31 153 84 126 126 84 153 31 153-31 126-84 84-126 31-153q0-123-69-223l191-191q21-21 21-50z" horiz-adv-x="928.571" />
<glyph glyph-name="key" unicode="&#xe950;" d="M774 612q20-116-28-215t-150-117q-66-12-130-2l-118-194-70-12-104-166q-14-28-46-32l-76-14q-12-4-22 4t-12 22l-16 98q-8 30 12 56l258 386q-24 50-38 120-18 106 53 187t185 101q106 20 195-45t107-177z m-126-76q30 44 21 97t-51 83q-42 32-92 22t-80-54q-8-12-12-23t-1-20 5-16 13-17 18-15 22-16 23-17q6-4 22-16t23-16 19-12 19-8 17 1 18 8 16 19z" horiz-adv-x="780" />
<glyph glyph-name="lock" unicode="&#xe82f;" d="M179 421l286 0 0 107q0 59-42 101t-101 42-101-42-42-101l0-107z m464-54l0-321q0-22-16-38t-38-16l-536 0q-22 0-38 16t-16 38l0 321q0 22 16 38t38 16l18 0 0 107q0 103 74 176t176 74 176-74 74-176l0-107 18 0q22 0 38-16t16-38z" horiz-adv-x="642.857" />
<glyph glyph-name="lock-1" unicode="&#xe8ee;" d="M640 476q20 0 40-19t20-41l0-390q0-48-48-66l-60-18q-42-16-96-16l-290 0q-56 0-98 16l-60 18q-48 18-48 66l0 390q0 22 15 41t35 19l100 0 0 70q0 110 51 170t149 60 149-60 51-170l0-70 90 0z m-390 90l0-90 200 0 0 90q0 52-27 81t-73 29-73-29-27-81z" horiz-adv-x="700" />
<glyph glyph-name="lock-open" unicode="&#xe82e;" d="M929 529l0-143q0-15-11-25t-25-11l-36 0q-15 0-25 11t-11 25l0 143q0 59-42 101t-101 42-101-42-42-101l0-107 54 0q22 0 38-16t16-38l0-321q0-22-16-38t-38-16l-536 0q-22 0-38 16t-16 38l0 321q0 22 16 38t38 16l375 0 0 107q0 103 73 177t177 73 177-73 73-177z" horiz-adv-x="928.571" />
<glyph glyph-name="lock-open-1" unicode="&#xe8ed;" d="M640 450q20 0 40-20t20-40l0-390q0-20-14-39t-34-25l-60-20q-52-16-96-16l-290 0q-46 0-98 16l-60 20q-20 6-34 25t-14 39l0 390q0 22 15 41t35 19l400 0 0 140q0 110-100 110t-100-110l0-40-100 0 0 20q0 110 51 170t149 60q200 0 200-230l0-120 90 0z" horiz-adv-x="700" />
<glyph glyph-name="bell" unicode="&#xe84c;" d="M473-96q0 9-9 9-33 0-57 24t-24 57q0 9-9 9t-9-9q0-41 29-69t69-29q9 0 9 9z m-371 161l724 0q-92 101-138 230t-46 270q0 143-179 143t-179-143q0-142-46-270t-138-230z m826 0q0-29-21-50t-50-21l-250 0q0-59-42-101t-101-42-101 42-42 101l-250 0q-29 0-50 21t-21 50q106 90 160 222t54 278q0 92 54 146t147 65q-4 10-4 21 0 22 16 38t38 16 38-16 16-38q0-11-4-21 94-11 147-65t54-146q0-146 54-278t160-222z" horiz-adv-x="928.571" />
<glyph glyph-name="bell-1" unicode="&#xe907;" d="M632 426q16-34 40-52t45-22 44-23 35-55q22-62-74-161t-252-157q-164-58-297-45t-155 75q-20 54 12 111t18 111q-56 192-47 300t113 192q26 22 29 51t29 39q24 8 46-12t56-18q132 2 198-66t160-268z m-186-404q88 32 159 85t100 91 25 50q-8 22-49 33t-124 1-187-48q-102-38-173-87t-94-84-17-53q4-12 50-22t134-4 176 38z m-62 174q8 2 21 7t17 7l2-2q14-40-17-83t-89-63q-96-36-152 14 78 68 218 120z" horiz-adv-x="800" />
<glyph glyph-name="bookmark" unicode="&#xe827;" d="M650 779q13 0 25-5 18-7 29-23t11-35l0-719q0-19-11-35t-29-23q-11-4-25-4-27 0-46 18l-246 237-246-237q-20-18-46-18-13 0-25 5-18 7-29 23t-11 35l0 719q0 19 11 35t29 23q12 5 25 5l585 0z" horiz-adv-x="714.286" />
<glyph glyph-name="bookmark-1" unicode="&#xe8fc;" d="M310 800q22 0 36-15t14-35l0-850-180 180-180-180 0 850q0 50 40 50l270 0z" horiz-adv-x="360" />
<glyph glyph-name="wrench" unicode="&#xe85f;" d="M214 29q0 15-11 25t-25 11-25-11-11-25 11-25 25-11 25 11 11 25z m359 234l-381-381q-21-21-50-21t-51 21l-59 60q-21 20-21 50t21 51l380 380q22-55 64-97t97-64z m354 243q0-22-13-59-26-75-92-121t-144-47q-103 0-177 73t-73 177 73 177 177 73q32 0 68-9t60-26q9-6 9-16t-9-16l-163-94 0-125 108-60q3 2 44 27t76 45 39 20q8 0 13-6t5-14z" horiz-adv-x="928.571" />
<glyph glyph-name="chart-area" unicode="&#xe946;" d="M964 732q16 22 16-4l0-768-964 0q-12 0-15 7t5 17l230 288q20 22 40 2l74-66q10-8 21-7t17 11l158 238q16 26 38 4l112-104q20-20 38 4z" horiz-adv-x="980" />
<glyph glyph-name="clock-1" unicode="&#xe90e;" d="M460 810q190 0 325-135t135-325-135-325-325-135-325 135-135 325 135 325 325 135z m0-820q150 0 255 106t105 254q0 150-105 255t-255 105q-148 0-254-105t-106-255q0-148 106-254t254-106z m36 620l0-244 150-150-50-50-170 170 0 274 70 0z" horiz-adv-x="920" />
<glyph glyph-name="clock" unicode="&#xe868;" d="M500 546l0-250q0-8-5-13t-13-5l-179 0q-8 0-13 5t-5 13l0 36q0 8 5 13t13 5l125 0 0 196q0 8 5 13t13 5l36 0q8 0 13-5t5-13z m232-196q0 83-41 152t-110 110-152 41-152-41-110-110-41-152 41-152 110-110 152-41 152 41 110 110 41 152z m125 0q0-117-57-215t-156-156-215-57-215 57-156 156-57 215 57 215 156 156 215 57 215-57 156-156 57-215z" horiz-adv-x="857.143" />
<glyph glyph-name="block" unicode="&#xe86a;" d="M732 352q0 90-49 165l-421-420q76-50 166-50 62 0 118 24t97 65 65 97 24 119z m-557-167l421 421q-75 51-167 51-83 0-152-41t-110-111-41-153q0-90 50-167z m682 167q0-88-34-167t-91-137-137-92-167-34-167 34-137 92-91 137-34 167 34 167 91 137 137 92 167 34 167-34 137-92 91-137 34-167z" horiz-adv-x="857.143" />
<glyph glyph-name="block-1" unicode="&#xe91d;" d="M480 830q200 0 340-140t140-340q0-198-140-339t-340-141q-198 0-339 141t-141 339q0 200 141 340t339 140z m258-220z m-622-260q0-132 82-230l514 514q-100 82-232 82-152 0-258-107t-106-259z m106-258z m258-106q152 0 259 107t107 257q0 130-82 232l-514-514q98-82 230-82z" horiz-adv-x="960" />
</font>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 B

View File

@ -0,0 +1,12 @@
<html>
<head>
<title>jscolor demo</title>
</head>
<body>
<script type="text/javascript" src="jscolor.js"></script>
Click here: <input class="color" value="66ff00">
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -0,0 +1,949 @@
/**
* jscolor, JavaScript Color Picker
*
* @version 1.4.0
* @license GNU Lesser General Public License, http://www.gnu.org/copyleft/lesser.html
* @author Jan Odvarko, http://odvarko.cz
* @created 2008-06-15
* @updated 2012-07-06
* @link http://jscolor.com
*/
var jscolor = {
dir : '', // location of jscolor directory (leave empty to autodetect)
bindClass : 'color', // class name
binding : true, // automatic binding via <input class="...">
preloading : true, // use image preloading?
install : function() {
jscolor.addEvent(window, 'load', jscolor.init);
},
init : function() {
if(jscolor.binding) {
jscolor.bind();
}
if(jscolor.preloading) {
jscolor.preload();
}
},
getDir : function() {
if(!jscolor.dir) {
var detected = jscolor.detectDir();
jscolor.dir = detected!==false ? detected : 'jscolor/';
}
return jscolor.dir;
},
detectDir : function() {
var base = location.href;
var e = document.getElementsByTagName('base');
for(var i=0; i<e.length; i+=1) {
if(e[i].href) { base = e[i].href; }
}
var e = document.getElementsByTagName('script');
for(var i=0; i<e.length; i+=1) {
if(e[i].src && /(^|\/)jscolor\.js([?#].*)?$/i.test(e[i].src)) {
var src = new jscolor.URI(e[i].src);
var srcAbs = src.toAbsolute(base);
srcAbs.path = srcAbs.path.replace(/[^\/]+$/, ''); // remove filename
srcAbs.query = null;
srcAbs.fragment = null;
return srcAbs.toString();
}
}
return false;
},
bind : function() {
var matchClass = new RegExp('(^|\\s)('+jscolor.bindClass+')\\s*(\\{[^}]*\\})?', 'i');
var e = document.getElementsByTagName('input');
for(var i=0; i<e.length; i+=1) {
var m;
if(!e[i].color && e[i].className && (m = e[i].className.match(matchClass))) {
var prop = {};
if(m[3]) {
try {
prop = (new Function ('return (' + m[3] + ')'))();
} catch(eInvalidProp) {}
}
e[i].color = new jscolor.color(e[i], prop);
}
}
},
preload : function() {
for(var fn in jscolor.imgRequire) {
if(jscolor.imgRequire.hasOwnProperty(fn)) {
jscolor.loadImage(fn);
}
}
},
images : {
pad : [ 181, 101 ],
sld : [ 16, 101 ],
cross : [ 15, 15 ],
arrow : [ 7, 11 ]
},
imgRequire : {},
imgLoaded : {},
requireImage : function(filename) {
jscolor.imgRequire[filename] = true;
},
loadImage : function(filename) {
if(!jscolor.imgLoaded[filename]) {
jscolor.imgLoaded[filename] = new Image();
jscolor.imgLoaded[filename].src = jscolor.getDir()+filename;
}
},
fetchElement : function(mixed) {
return typeof mixed === 'string' ? document.getElementById(mixed) : mixed;
},
addEvent : function(el, evnt, func) {
if(el.addEventListener) {
el.addEventListener(evnt, func, false);
} else if(el.attachEvent) {
el.attachEvent('on'+evnt, func);
}
},
fireEvent : function(el, evnt) {
if(!el) {
return;
}
if(document.createEvent) {
var ev = document.createEvent('HTMLEvents');
ev.initEvent(evnt, true, true);
el.dispatchEvent(ev);
} else if(document.createEventObject) {
var ev = document.createEventObject();
el.fireEvent('on'+evnt, ev);
} else if(el['on'+evnt]) { // alternatively use the traditional event model (IE5)
el['on'+evnt]();
}
},
getElementPos : function(e) {
var e1=e, e2=e;
var x=0, y=0;
if(e1.offsetParent) {
do {
x += e1.offsetLeft;
y += e1.offsetTop;
} while(e1 = e1.offsetParent);
}
while((e2 = e2.parentNode) && e2.nodeName.toUpperCase() !== 'BODY') {
x -= e2.scrollLeft;
y -= e2.scrollTop;
}
return [x, y];
},
getElementSize : function(e) {
return [e.offsetWidth, e.offsetHeight];
},
getRelMousePos : function(e) {
var x = 0, y = 0;
if (!e) { e = window.event; }
if (typeof e.offsetX === 'number') {
x = e.offsetX;
y = e.offsetY;
} else if (typeof e.layerX === 'number') {
x = e.layerX;
y = e.layerY;
}
return { x: x, y: y };
},
getViewPos : function() {
if(typeof window.pageYOffset === 'number') {
return [window.pageXOffset, window.pageYOffset];
} else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) {
return [document.body.scrollLeft, document.body.scrollTop];
} else if(document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
return [document.documentElement.scrollLeft, document.documentElement.scrollTop];
} else {
return [0, 0];
}
},
getViewSize : function() {
if(typeof window.innerWidth === 'number') {
return [window.innerWidth, window.innerHeight];
} else if(document.body && (document.body.clientWidth || document.body.clientHeight)) {
return [document.body.clientWidth, document.body.clientHeight];
} else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
return [document.documentElement.clientWidth, document.documentElement.clientHeight];
} else {
return [0, 0];
}
},
URI : function(uri) { // See RFC3986
this.scheme = null;
this.authority = null;
this.path = '';
this.query = null;
this.fragment = null;
this.parse = function(uri) {
var m = uri.match(/^(([A-Za-z][0-9A-Za-z+.-]*)(:))?((\/\/)([^\/?#]*))?([^?#]*)((\?)([^#]*))?((#)(.*))?/);
this.scheme = m[3] ? m[2] : null;
this.authority = m[5] ? m[6] : null;
this.path = m[7];
this.query = m[9] ? m[10] : null;
this.fragment = m[12] ? m[13] : null;
return this;
};
this.toString = function() {
var result = '';
if(this.scheme !== null) { result = result + this.scheme + ':'; }
if(this.authority !== null) { result = result + '//' + this.authority; }
if(this.path !== null) { result = result + this.path; }
if(this.query !== null) { result = result + '?' + this.query; }
if(this.fragment !== null) { result = result + '#' + this.fragment; }
return result;
};
this.toAbsolute = function(base) {
var base = new jscolor.URI(base);
var r = this;
var t = new jscolor.URI;
if(base.scheme === null) { return false; }
if(r.scheme !== null && r.scheme.toLowerCase() === base.scheme.toLowerCase()) {
r.scheme = null;
}
if(r.scheme !== null) {
t.scheme = r.scheme;
t.authority = r.authority;
t.path = removeDotSegments(r.path);
t.query = r.query;
} else {
if(r.authority !== null) {
t.authority = r.authority;
t.path = removeDotSegments(r.path);
t.query = r.query;
} else {
if(r.path === '') {
t.path = base.path;
if(r.query !== null) {
t.query = r.query;
} else {
t.query = base.query;
}
} else {
if(r.path.substr(0,1) === '/') {
t.path = removeDotSegments(r.path);
} else {
if(base.authority !== null && base.path === '') {
t.path = '/'+r.path;
} else {
t.path = base.path.replace(/[^\/]+$/,'')+r.path;
}
t.path = removeDotSegments(t.path);
}
t.query = r.query;
}
t.authority = base.authority;
}
t.scheme = base.scheme;
}
t.fragment = r.fragment;
return t;
};
function removeDotSegments(path) {
var out = '';
while(path) {
if(path.substr(0,3)==='../' || path.substr(0,2)==='./') {
path = path.replace(/^\.+/,'').substr(1);
} else if(path.substr(0,3)==='/./' || path==='/.') {
path = '/'+path.substr(3);
} else if(path.substr(0,4)==='/../' || path==='/..') {
path = '/'+path.substr(4);
out = out.replace(/\/?[^\/]*$/, '');
} else if(path==='.' || path==='..') {
path = '';
} else {
var rm = path.match(/^\/?[^\/]*/)[0];
path = path.substr(rm.length);
out = out + rm;
}
}
return out;
}
if(uri) {
this.parse(uri);
}
},
/*
* Usage example:
* var myColor = new jscolor.color(myInputElement)
*/
color : function(target, prop) {
this.required = true; // refuse empty values?
this.adjust = true; // adjust value to uniform notation?
this.hash = false; // prefix color with # symbol?
this.caps = true; // uppercase?
this.slider = true; // show the value/saturation slider?
this.valueElement = target; // value holder
this.styleElement = target; // where to reflect current color
this.onImmediateChange = null; // onchange callback (can be either string or function)
this.hsv = [0, 0, 1]; // read-only 0-6, 0-1, 0-1
this.rgb = [1, 1, 1]; // read-only 0-1, 0-1, 0-1
this.minH = 0; // read-only 0-6
this.maxH = 6; // read-only 0-6
this.minS = 0; // read-only 0-1
this.maxS = 1; // read-only 0-1
this.minV = 0; // read-only 0-1
this.maxV = 1; // read-only 0-1
this.pickerOnfocus = true; // display picker on focus?
this.pickerMode = 'HSV'; // HSV | HVS
this.pickerPosition = 'bottom'; // left | right | top | bottom
this.pickerSmartPosition = true; // automatically adjust picker position when necessary
this.pickerButtonHeight = 20; // px
this.pickerClosable = false;
this.pickerCloseText = 'Close';
this.pickerButtonColor = 'ButtonText'; // px
this.pickerFace = 10; // px
this.pickerFaceColor = 'ThreeDFace'; // CSS color
this.pickerBorder = 1; // px
this.pickerBorderColor = 'ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight'; // CSS color
this.pickerInset = 1; // px
this.pickerInsetColor = 'ThreeDShadow ThreeDHighlight ThreeDHighlight ThreeDShadow'; // CSS color
this.pickerZIndex = 10000;
for(var p in prop) {
if(prop.hasOwnProperty(p)) {
this[p] = prop[p];
}
}
this.hidePicker = function() {
if(isPickerOwner()) {
removePicker();
}
};
this.showPicker = function() {
if(!isPickerOwner()) {
var tp = jscolor.getElementPos(target); // target pos
var ts = jscolor.getElementSize(target); // target size
var vp = jscolor.getViewPos(); // view pos
var vs = jscolor.getViewSize(); // view size
var ps = getPickerDims(this); // picker size
var a, b, c;
switch(this.pickerPosition.toLowerCase()) {
case 'left': a=1; b=0; c=-1; break;
case 'right':a=1; b=0; c=1; break;
case 'top': a=0; b=1; c=-1; break;
default: a=0; b=1; c=1; break;
}
var l = (ts[b]+ps[b])/2;
// picker pos
if (!this.pickerSmartPosition) {
var pp = [
tp[a],
tp[b]+ts[b]-l+l*c
];
} else {
var pp = [
-vp[a]+tp[a]+ps[a] > vs[a] ?
(-vp[a]+tp[a]+ts[a]/2 > vs[a]/2 && tp[a]+ts[a]-ps[a] >= 0 ? tp[a]+ts[a]-ps[a] : tp[a]) :
tp[a],
-vp[b]+tp[b]+ts[b]+ps[b]-l+l*c > vs[b] ?
(-vp[b]+tp[b]+ts[b]/2 > vs[b]/2 && tp[b]+ts[b]-l-l*c >= 0 ? tp[b]+ts[b]-l-l*c : tp[b]+ts[b]-l+l*c) :
(tp[b]+ts[b]-l+l*c >= 0 ? tp[b]+ts[b]-l+l*c : tp[b]+ts[b]-l-l*c)
];
}
drawPicker(pp[a], pp[b]);
}
};
this.importColor = function() {
if(!valueElement) {
this.exportColor();
} else {
if(!this.adjust) {
if(!this.fromString(valueElement.value, leaveValue)) {
styleElement.style.backgroundImage = styleElement.jscStyle.backgroundImage;
styleElement.style.backgroundColor = styleElement.jscStyle.backgroundColor;
styleElement.style.color = styleElement.jscStyle.color;
this.exportColor(leaveValue | leaveStyle);
}
} else if(!this.required && /^\s*$/.test(valueElement.value)) {
valueElement.value = '';
styleElement.style.backgroundImage = styleElement.jscStyle.backgroundImage;
styleElement.style.backgroundColor = styleElement.jscStyle.backgroundColor;
styleElement.style.color = styleElement.jscStyle.color;
this.exportColor(leaveValue | leaveStyle);
} else if(this.fromString(valueElement.value)) {
// OK
} else {
this.exportColor();
}
}
};
this.exportColor = function(flags) {
if(!(flags & leaveValue) && valueElement) {
var value = this.toString();
if(this.caps) { value = value.toUpperCase(); }
if(this.hash) { value = '#'+value; }
valueElement.value = value;
}
if(!(flags & leaveStyle) && styleElement) {
styleElement.style.backgroundImage = "none";
styleElement.style.backgroundColor =
'#'+this.toString();
styleElement.style.color =
0.213 * this.rgb[0] +
0.715 * this.rgb[1] +
0.072 * this.rgb[2]
< 0.5 ? '#FFF' : '#000';
}
if(!(flags & leavePad) && isPickerOwner()) {
redrawPad();
}
if(!(flags & leaveSld) && isPickerOwner()) {
redrawSld();
}
};
this.fromHSV = function(h, s, v, flags) { // null = don't change
if(h !== null) { h = Math.max(0.0, this.minH, Math.min(6.0, this.maxH, h)); }
if(s !== null) { s = Math.max(0.0, this.minS, Math.min(1.0, this.maxS, s)); }
if(v !== null) { v = Math.max(0.0, this.minV, Math.min(1.0, this.maxV, v)); }
this.rgb = HSV_RGB(
h===null ? this.hsv[0] : (this.hsv[0]=h),
s===null ? this.hsv[1] : (this.hsv[1]=s),
v===null ? this.hsv[2] : (this.hsv[2]=v)
);
this.exportColor(flags);
};
this.fromRGB = function(r, g, b, flags) { // null = don't change
if(r !== null) { r = Math.max(0.0, Math.min(1.0, r)); }
if(g !== null) { g = Math.max(0.0, Math.min(1.0, g)); }
if(b !== null) { b = Math.max(0.0, Math.min(1.0, b)); }
var hsv = RGB_HSV(
r===null ? this.rgb[0] : r,
g===null ? this.rgb[1] : g,
b===null ? this.rgb[2] : b
);
if(hsv[0] !== null) {
this.hsv[0] = Math.max(0.0, this.minH, Math.min(6.0, this.maxH, hsv[0]));
}
if(hsv[2] !== 0) {
this.hsv[1] = hsv[1]===null ? null : Math.max(0.0, this.minS, Math.min(1.0, this.maxS, hsv[1]));
}
this.hsv[2] = hsv[2]===null ? null : Math.max(0.0, this.minV, Math.min(1.0, this.maxV, hsv[2]));
// update RGB according to final HSV, as some values might be trimmed
var rgb = HSV_RGB(this.hsv[0], this.hsv[1], this.hsv[2]);
this.rgb[0] = rgb[0];
this.rgb[1] = rgb[1];
this.rgb[2] = rgb[2];
this.exportColor(flags);
};
this.fromString = function(hex, flags) {
var m = hex.match(/^\W*([0-9A-F]{3}([0-9A-F]{3})?)\W*$/i);
if(!m) {
return false;
} else {
if(m[1].length === 6) { // 6-char notation
this.fromRGB(
parseInt(m[1].substr(0,2),16) / 255,
parseInt(m[1].substr(2,2),16) / 255,
parseInt(m[1].substr(4,2),16) / 255,
flags
);
} else { // 3-char notation
this.fromRGB(
parseInt(m[1].charAt(0)+m[1].charAt(0),16) / 255,
parseInt(m[1].charAt(1)+m[1].charAt(1),16) / 255,
parseInt(m[1].charAt(2)+m[1].charAt(2),16) / 255,
flags
);
}
return true;
}
};
this.toString = function() {
return (
(0x100 | Math.round(255*this.rgb[0])).toString(16).substr(1) +
(0x100 | Math.round(255*this.rgb[1])).toString(16).substr(1) +
(0x100 | Math.round(255*this.rgb[2])).toString(16).substr(1)
);
};
function RGB_HSV(r, g, b) {
var n = Math.min(Math.min(r,g),b);
var v = Math.max(Math.max(r,g),b);
var m = v - n;
if(m === 0) { return [ null, 0, v ]; }
var h = r===n ? 3+(b-g)/m : (g===n ? 5+(r-b)/m : 1+(g-r)/m);
return [ h===6?0:h, m/v, v ];
}
function HSV_RGB(h, s, v) {
if(h === null) { return [ v, v, v ]; }
var i = Math.floor(h);
var f = i%2 ? h-i : 1-(h-i);
var m = v * (1 - s);
var n = v * (1 - s*f);
switch(i) {
case 6:
case 0: return [v,n,m];
case 1: return [n,v,m];
case 2: return [m,v,n];
case 3: return [m,n,v];
case 4: return [n,m,v];
case 5: return [v,m,n];
}
}
function removePicker() {
delete jscolor.picker.owner;
document.getElementsByTagName('body')[0].removeChild(jscolor.picker.boxB);
}
function drawPicker(x, y) {
if(!jscolor.picker) {
jscolor.picker = {
box : document.createElement('div'),
boxB : document.createElement('div'),
pad : document.createElement('div'),
padB : document.createElement('div'),
padM : document.createElement('div'),
sld : document.createElement('div'),
sldB : document.createElement('div'),
sldM : document.createElement('div'),
btn : document.createElement('div'),
btnS : document.createElement('span'),
btnT : document.createTextNode(THIS.pickerCloseText)
};
for(var i=0,segSize=4; i<jscolor.images.sld[1]; i+=segSize) {
var seg = document.createElement('div');
seg.style.height = segSize+'px';
seg.style.fontSize = '1px';
seg.style.lineHeight = '0';
jscolor.picker.sld.appendChild(seg);
}
jscolor.picker.sldB.appendChild(jscolor.picker.sld);
jscolor.picker.box.appendChild(jscolor.picker.sldB);
jscolor.picker.box.appendChild(jscolor.picker.sldM);
jscolor.picker.padB.appendChild(jscolor.picker.pad);
jscolor.picker.box.appendChild(jscolor.picker.padB);
jscolor.picker.box.appendChild(jscolor.picker.padM);
jscolor.picker.btnS.appendChild(jscolor.picker.btnT);
jscolor.picker.btn.appendChild(jscolor.picker.btnS);
jscolor.picker.box.appendChild(jscolor.picker.btn);
jscolor.picker.boxB.appendChild(jscolor.picker.box);
}
var p = jscolor.picker;
// controls interaction
p.box.onmouseup =
p.box.onmouseout = function() { target.focus(); };
p.box.onmousedown = function() { abortBlur=true; };
p.box.onmousemove = function(e) {
if (holdPad || holdSld) {
holdPad && setPad(e);
holdSld && setSld(e);
if (document.selection) {
document.selection.empty();
} else if (window.getSelection) {
window.getSelection().removeAllRanges();
}
dispatchImmediateChange();
}
};
p.padM.onmouseup =
p.padM.onmouseout = function() { if(holdPad) { holdPad=false; jscolor.fireEvent(valueElement,'change'); } };
p.padM.onmousedown = function(e) {
// if the slider is at the bottom, move it up
switch(modeID) {
case 0: if (THIS.hsv[2] === 0) { THIS.fromHSV(null, null, 1.0); }; break;
case 1: if (THIS.hsv[1] === 0) { THIS.fromHSV(null, 1.0, null); }; break;
}
holdPad=true;
setPad(e);
dispatchImmediateChange();
};
p.sldM.onmouseup =
p.sldM.onmouseout = function() { if(holdSld) { holdSld=false; jscolor.fireEvent(valueElement,'change'); } };
p.sldM.onmousedown = function(e) {
holdSld=true;
setSld(e);
dispatchImmediateChange();
};
// picker
var dims = getPickerDims(THIS);
p.box.style.width = dims[0] + 'px';
p.box.style.height = dims[1] + 'px';
// picker border
p.boxB.style.position = 'absolute';
p.boxB.style.clear = 'both';
p.boxB.style.left = x+'px';
p.boxB.style.top = y+'px';
p.boxB.style.zIndex = THIS.pickerZIndex;
p.boxB.style.border = THIS.pickerBorder+'px solid';
p.boxB.style.borderColor = THIS.pickerBorderColor;
p.boxB.style.background = THIS.pickerFaceColor;
// pad image
p.pad.style.width = jscolor.images.pad[0]+'px';
p.pad.style.height = jscolor.images.pad[1]+'px';
// pad border
p.padB.style.position = 'absolute';
p.padB.style.left = THIS.pickerFace+'px';
p.padB.style.top = THIS.pickerFace+'px';
p.padB.style.border = THIS.pickerInset+'px solid';
p.padB.style.borderColor = THIS.pickerInsetColor;
// pad mouse area
p.padM.style.position = 'absolute';
p.padM.style.left = '0';
p.padM.style.top = '0';
p.padM.style.width = THIS.pickerFace + 2*THIS.pickerInset + jscolor.images.pad[0] + jscolor.images.arrow[0] + 'px';
p.padM.style.height = p.box.style.height;
p.padM.style.cursor = 'crosshair';
// slider image
p.sld.style.overflow = 'hidden';
p.sld.style.width = jscolor.images.sld[0]+'px';
p.sld.style.height = jscolor.images.sld[1]+'px';
// slider border
p.sldB.style.display = THIS.slider ? 'block' : 'none';
p.sldB.style.position = 'absolute';
p.sldB.style.right = THIS.pickerFace+'px';
p.sldB.style.top = THIS.pickerFace+'px';
p.sldB.style.border = THIS.pickerInset+'px solid';
p.sldB.style.borderColor = THIS.pickerInsetColor;
// slider mouse area
p.sldM.style.display = THIS.slider ? 'block' : 'none';
p.sldM.style.position = 'absolute';
p.sldM.style.right = '0';
p.sldM.style.top = '0';
p.sldM.style.width = jscolor.images.sld[0] + jscolor.images.arrow[0] + THIS.pickerFace + 2*THIS.pickerInset + 'px';
p.sldM.style.height = p.box.style.height;
try {
p.sldM.style.cursor = 'pointer';
} catch(eOldIE) {
p.sldM.style.cursor = 'hand';
}
// "close" button
function setBtnBorder() {
var insetColors = THIS.pickerInsetColor.split(/\s+/);
var pickerOutsetColor = insetColors.length < 2 ? insetColors[0] : insetColors[1] + ' ' + insetColors[0] + ' ' + insetColors[0] + ' ' + insetColors[1];
p.btn.style.borderColor = pickerOutsetColor;
}
p.btn.style.display = THIS.pickerClosable ? 'block' : 'none';
p.btn.style.position = 'absolute';
p.btn.style.left = THIS.pickerFace + 'px';
p.btn.style.bottom = THIS.pickerFace + 'px';
p.btn.style.padding = '0 15px';
p.btn.style.height = '18px';
p.btn.style.border = THIS.pickerInset + 'px solid';
setBtnBorder();
p.btn.style.color = THIS.pickerButtonColor;
p.btn.style.font = '12px sans-serif';
p.btn.style.textAlign = 'center';
try {
p.btn.style.cursor = 'pointer';
} catch(eOldIE) {
p.btn.style.cursor = 'hand';
}
p.btn.onmousedown = function () {
THIS.hidePicker();
};
p.btnS.style.lineHeight = p.btn.style.height;
// load images in optimal order
switch(modeID) {
case 0: var padImg = 'hs.png'; break;
case 1: var padImg = 'hv.png'; break;
}
p.padM.style.backgroundImage = "url('"+jscolor.getDir()+"cross.gif')";
p.padM.style.backgroundRepeat = "no-repeat";
p.sldM.style.backgroundImage = "url('"+jscolor.getDir()+"arrow.gif')";
p.sldM.style.backgroundRepeat = "no-repeat";
p.pad.style.backgroundImage = "url('"+jscolor.getDir()+padImg+"')";
p.pad.style.backgroundRepeat = "no-repeat";
p.pad.style.backgroundPosition = "0 0";
// place pointers
redrawPad();
redrawSld();
jscolor.picker.owner = THIS;
document.getElementsByTagName('body')[0].appendChild(p.boxB);
}
function getPickerDims(o) {
var dims = [
2*o.pickerInset + 2*o.pickerFace + jscolor.images.pad[0] +
(o.slider ? 2*o.pickerInset + 2*jscolor.images.arrow[0] + jscolor.images.sld[0] : 0),
o.pickerClosable ?
4*o.pickerInset + 3*o.pickerFace + jscolor.images.pad[1] + o.pickerButtonHeight :
2*o.pickerInset + 2*o.pickerFace + jscolor.images.pad[1]
];
return dims;
}
function redrawPad() {
// redraw the pad pointer
switch(modeID) {
case 0: var yComponent = 1; break;
case 1: var yComponent = 2; break;
}
var x = Math.round((THIS.hsv[0]/6) * (jscolor.images.pad[0]-1));
var y = Math.round((1-THIS.hsv[yComponent]) * (jscolor.images.pad[1]-1));
jscolor.picker.padM.style.backgroundPosition =
(THIS.pickerFace+THIS.pickerInset+x - Math.floor(jscolor.images.cross[0]/2)) + 'px ' +
(THIS.pickerFace+THIS.pickerInset+y - Math.floor(jscolor.images.cross[1]/2)) + 'px';
// redraw the slider image
var seg = jscolor.picker.sld.childNodes;
switch(modeID) {
case 0:
var rgb = HSV_RGB(THIS.hsv[0], THIS.hsv[1], 1);
for(var i=0; i<seg.length; i+=1) {
seg[i].style.backgroundColor = 'rgb('+
(rgb[0]*(1-i/seg.length)*100)+'%,'+
(rgb[1]*(1-i/seg.length)*100)+'%,'+
(rgb[2]*(1-i/seg.length)*100)+'%)';
}
break;
case 1:
var rgb, s, c = [ THIS.hsv[2], 0, 0 ];
var i = Math.floor(THIS.hsv[0]);
var f = i%2 ? THIS.hsv[0]-i : 1-(THIS.hsv[0]-i);
switch(i) {
case 6:
case 0: rgb=[0,1,2]; break;
case 1: rgb=[1,0,2]; break;
case 2: rgb=[2,0,1]; break;
case 3: rgb=[2,1,0]; break;
case 4: rgb=[1,2,0]; break;
case 5: rgb=[0,2,1]; break;
}
for(var i=0; i<seg.length; i+=1) {
s = 1 - 1/(seg.length-1)*i;
c[1] = c[0] * (1 - s*f);
c[2] = c[0] * (1 - s);
seg[i].style.backgroundColor = 'rgb('+
(c[rgb[0]]*100)+'%,'+
(c[rgb[1]]*100)+'%,'+
(c[rgb[2]]*100)+'%)';
}
break;
}
}
function redrawSld() {
// redraw the slider pointer
switch(modeID) {
case 0: var yComponent = 2; break;
case 1: var yComponent = 1; break;
}
var y = Math.round((1-THIS.hsv[yComponent]) * (jscolor.images.sld[1]-1));
jscolor.picker.sldM.style.backgroundPosition =
'0 ' + (THIS.pickerFace+THIS.pickerInset+y - Math.floor(jscolor.images.arrow[1]/2)) + 'px';
}
function isPickerOwner() {
return jscolor.picker && jscolor.picker.owner === THIS;
}
function blurTarget() {
if(valueElement === target) {
THIS.importColor();
}
if(THIS.pickerOnfocus) {
THIS.hidePicker();
}
}
function blurValue() {
if(valueElement !== target) {
THIS.importColor();
}
}
function setPad(e) {
var mpos = jscolor.getRelMousePos(e);
var x = mpos.x - THIS.pickerFace - THIS.pickerInset;
var y = mpos.y - THIS.pickerFace - THIS.pickerInset;
switch(modeID) {
case 0: THIS.fromHSV(x*(6/(jscolor.images.pad[0]-1)), 1 - y/(jscolor.images.pad[1]-1), null, leaveSld); break;
case 1: THIS.fromHSV(x*(6/(jscolor.images.pad[0]-1)), null, 1 - y/(jscolor.images.pad[1]-1), leaveSld); break;
}
}
function setSld(e) {
var mpos = jscolor.getRelMousePos(e);
var y = mpos.y - THIS.pickerFace - THIS.pickerInset;
switch(modeID) {
case 0: THIS.fromHSV(null, null, 1 - y/(jscolor.images.sld[1]-1), leavePad); break;
case 1: THIS.fromHSV(null, 1 - y/(jscolor.images.sld[1]-1), null, leavePad); break;
}
}
function dispatchImmediateChange() {
if (THIS.onImmediateChange) {
var callback;
if (typeof THIS.onImmediateChange === 'string') {
callback = new Function (THIS.onImmediateChange);
} else {
callback = THIS.onImmediateChange;
}
callback.call(THIS);
}
}
var THIS = this;
var modeID = this.pickerMode.toLowerCase()==='hvs' ? 1 : 0;
var abortBlur = false;
var
valueElement = jscolor.fetchElement(this.valueElement),
styleElement = jscolor.fetchElement(this.styleElement);
var
holdPad = false,
holdSld = false;
var
leaveValue = 1<<0,
leaveStyle = 1<<1,
leavePad = 1<<2,
leaveSld = 1<<3;
// target
jscolor.addEvent(target, 'focus', function() {
if(THIS.pickerOnfocus) { THIS.showPicker(); }
});
jscolor.addEvent(target, 'blur', function() {
if(!abortBlur) {
window.setTimeout(function(){ abortBlur || blurTarget(); abortBlur=false; }, 0);
} else {
abortBlur = false;
}
});
// valueElement
if(valueElement) {
var updateField = function() {
THIS.fromString(valueElement.value, leaveValue);
dispatchImmediateChange();
};
jscolor.addEvent(valueElement, 'keyup', updateField);
jscolor.addEvent(valueElement, 'input', updateField);
jscolor.addEvent(valueElement, 'blur', blurValue);
valueElement.setAttribute('autocomplete', 'off');
}
// styleElement
if(styleElement) {
styleElement.jscStyle = {
backgroundImage : styleElement.style.backgroundImage,
backgroundColor : styleElement.style.backgroundColor,
color : styleElement.style.color
};
}
// require images
switch(modeID) {
case 0: jscolor.requireImage('hs.png'); break;
case 1: jscolor.requireImage('hv.png'); break;
}
jscolor.requireImage('cross.gif');
jscolor.requireImage('arrow.gif');
this.importColor();
}
};
jscolor.install();

View File

@ -0,0 +1,654 @@
/********************
* HTML CSS
*/
.chartWrap {
margin: 0;
padding: 0;
overflow: hidden;
}
/********************
* TOOLTIP CSS
*/
.nvtooltip {
position: absolute;
background-color: rgba(255,255,255,1);
padding: 10px;
border: 1px solid #ddd;
z-index: 10000;
font-family: Arial;
font-size: 13px;
transition: opacity 500ms linear;
-moz-transition: opacity 500ms linear;
-webkit-transition: opacity 500ms linear;
transition-delay: 500ms;
-moz-transition-delay: 500ms;
-webkit-transition-delay: 500ms;
-moz-box-shadow: 4px 4px 8px rgba(0,0,0,.5);
-webkit-box-shadow: 4px 4px 8px rgba(0,0,0,.5);
box-shadow: 4px 4px 8px rgba(0,0,0,.5);
-moz-border-radius: 10px;
border-radius: 10px;
pointer-events: none;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.nvtooltip h3 {
margin: 0;
padding: 0;
text-align: center;
}
.nvtooltip p {
margin: 0;
padding: 0;
text-align: center;
}
.nvtooltip span {
display: inline-block;
margin: 2px 0;
}
.nvtooltip-pending-removal {
position: absolute;
pointer-events: none;
}
/********************
* SVG CSS
*/
svg {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
/* Trying to get SVG to act like a greedy block in all browsers */
display: block;
width:100%;
height:100%;
}
svg text {
font: normal 12px Arial;
}
svg .title {
font: bold 14px Arial;
}
.nvd3 .nv-background {
fill: white;
fill-opacity: 0;
/*
pointer-events: none;
*/
}
.nvd3.nv-noData {
font-size: 18px;
font-weight: bold;
}
/**********
* Brush
*/
.nv-brush .extent {
fill-opacity: .125;
shape-rendering: crispEdges;
}
/**********
* Legend
*/
.nvd3 .nv-legend .nv-series {
cursor: pointer;
}
.nvd3 .nv-legend .disabled circle {
fill-opacity: 0;
}
/**********
* Axes
*/
.nvd3 .nv-axis path {
fill: none;
stroke: #000;
stroke-opacity: .75;
shape-rendering: crispEdges;
}
.nvd3 .nv-axis path.domain {
stroke-opacity: .75;
}
.nvd3 .nv-axis.nv-x path.domain {
stroke-opacity: 0;
}
.nvd3 .nv-axis line {
fill: none;
stroke: #000;
stroke-opacity: .25;
shape-rendering: crispEdges;
}
.nvd3 .nv-axis line.zero {
stroke-opacity: .75;
}
.nvd3 .nv-axis .nv-axisMaxMin text {
font-weight: bold;
}
.nvd3 .x .nv-axis .nv-axisMaxMin text,
.nvd3 .x2 .nv-axis .nv-axisMaxMin text,
.nvd3 .x3 .nv-axis .nv-axisMaxMin text {
text-anchor: middle
}
/**********
* Brush
*/
.nv-brush .resize path {
fill: #eee;
stroke: #666;
}
/**********
* Bars
*/
.nvd3 .nv-bars .negative rect {
zfill: brown;
}
.nvd3 .nv-bars rect {
zfill: steelblue;
fill-opacity: .75;
transition: fill-opacity 250ms linear;
-moz-transition: fill-opacity 250ms linear;
-webkit-transition: fill-opacity 250ms linear;
}
.nvd3 .nv-bars rect:hover {
fill-opacity: 1;
}
.nvd3 .nv-bars .hover rect {
fill: lightblue;
}
.nvd3 .nv-bars text {
fill: rgba(0,0,0,0);
}
.nvd3 .nv-bars .hover text {
fill: rgba(0,0,0,1);
}
/**********
* Bars
*/
.nvd3 .nv-multibar .nv-groups rect,
.nvd3 .nv-multibarHorizontal .nv-groups rect,
.nvd3 .nv-discretebar .nv-groups rect {
stroke-opacity: 0;
transition: fill-opacity 250ms linear;
-moz-transition: fill-opacity 250ms linear;
-webkit-transition: fill-opacity 250ms linear;
}
.nvd3 .nv-multibar .nv-groups rect:hover,
.nvd3 .nv-multibarHorizontal .nv-groups rect:hover,
.nvd3 .nv-discretebar .nv-groups rect:hover {
fill-opacity: 1;
}
.nvd3 .nv-discretebar .nv-groups text,
.nvd3 .nv-multibarHorizontal .nv-groups text {
font-weight: bold;
fill: rgba(0,0,0,1);
stroke: rgba(0,0,0,0);
}
/***********
* Pie Chart
*/
.nvd3.nv-pie path {
stroke-opacity: 0;
transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
-moz-transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
-webkit-transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
}
.nvd3.nv-pie .nv-slice text {
stroke: #000;
stroke-width: 0;
}
.nvd3.nv-pie path {
stroke: #fff;
stroke-width: 1px;
stroke-opacity: 1;
}
.nvd3.nv-pie .hover path {
fill-opacity: .7;
/*
stroke-width: 6px;
stroke-opacity: 1;
*/
}
.nvd3.nv-pie .nv-label rect {
fill-opacity: 0;
stroke-opacity: 0;
}
/**********
* Lines
*/
.nvd3 .nv-groups path.nv-line {
fill: none;
stroke-width: 2.5px;
/*
stroke-linecap: round;
shape-rendering: geometricPrecision;
transition: stroke-width 250ms linear;
-moz-transition: stroke-width 250ms linear;
-webkit-transition: stroke-width 250ms linear;
transition-delay: 250ms
-moz-transition-delay: 250ms;
-webkit-transition-delay: 250ms;
*/
}
.nvd3 .nv-groups path.nv-area {
stroke: none;
/*
stroke-linecap: round;
shape-rendering: geometricPrecision;
stroke-width: 2.5px;
transition: stroke-width 250ms linear;
-moz-transition: stroke-width 250ms linear;
-webkit-transition: stroke-width 250ms linear;
transition-delay: 250ms
-moz-transition-delay: 250ms;
-webkit-transition-delay: 250ms;
*/
}
.nvd3 .nv-line.hover path {
stroke-width: 6px;
}
/*
.nvd3.scatter .groups .point {
fill-opacity: 0.1;
stroke-opacity: 0.1;
}
*/
.nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point {
fill-opacity: 0;
stroke-opacity: 0;
}
.nvd3.nv-scatter.nv-single-point .nv-groups .nv-point {
fill-opacity: .5 !important;
stroke-opacity: .5 !important;
}
.nvd3 .nv-groups .nv-point {
transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
-moz-transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
-webkit-transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
}
.nvd3.nv-scatter .nv-groups .nv-point.hover,
.nvd3 .nv-groups .nv-point.hover {
stroke-width: 20px;
fill-opacity: .5 !important;
stroke-opacity: .5 !important;
}
.nvd3 .nv-point-paths path {
stroke: #aaa;
stroke-opacity: 0;
fill: #eee;
fill-opacity: 0;
}
.nvd3 .nv-indexLine {
cursor: ew-resize;
}
/**********
* Distribution
*/
.nvd3 .nv-distribution {
pointer-events: none;
}
/**********
* Scatter
*/
/* **Attempting to remove this for useVoronoi(false), need to see if it's required anywhere
.nvd3 .nv-groups .nv-point {
pointer-events: none;
}
*/
.nvd3 .nv-groups .nv-point.hover {
stroke-width: 20px;
stroke-opacity: .5;
}
.nvd3 .nv-scatter .nv-point.hover {
fill-opacity: 1;
}
/*
.nv-group.hover .nv-point {
fill-opacity: 1;
}
*/
/**********
* Stacked Area
*/
.nvd3.nv-stackedarea path.nv-area {
fill-opacity: .7;
/*
stroke-opacity: .65;
fill-opacity: 1;
*/
stroke-opacity: 0;
transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
-moz-transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
-webkit-transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
/*
transition-delay: 500ms;
-moz-transition-delay: 500ms;
-webkit-transition-delay: 500ms;
*/
}
.nvd3.nv-stackedarea path.nv-area.hover {
fill-opacity: .9;
/*
stroke-opacity: .85;
*/
}
/*
.d3stackedarea .groups path {
stroke-opacity: 0;
}
*/
.nvd3.nv-stackedarea .nv-groups .nv-point {
stroke-opacity: 0;
fill-opacity: 0;
}
.nvd3.nv-stackedarea .nv-groups .nv-point.hover {
stroke-width: 20px;
stroke-opacity: .75;
fill-opacity: 1;
}
/**********
* Line Plus Bar
*/
.nvd3.nv-linePlusBar .nv-bar rect {
fill-opacity: .75;
}
.nvd3.nv-linePlusBar .nv-bar rect:hover {
fill-opacity: 1;
}
/**********
* Bullet
*/
.nvd3.nv-bullet { font: 10px sans-serif; }
.nvd3.nv-bullet .nv-measure { fill-opacity: .8; }
.nvd3.nv-bullet .nv-measure:hover { fill-opacity: 1; }
.nvd3.nv-bullet .nv-marker { stroke: #000; stroke-width: 2px; }
.nvd3.nv-bullet .nv-markerTriangle { stroke: #000; fill: #fff; stroke-width: 1.5px; }
.nvd3.nv-bullet .nv-tick line { stroke: #666; stroke-width: .5px; }
.nvd3.nv-bullet .nv-range.nv-s0 { fill: #eee; }
.nvd3.nv-bullet .nv-range.nv-s1 { fill: #ddd; }
.nvd3.nv-bullet .nv-range.nv-s2 { fill: #ccc; }
.nvd3.nv-bullet .nv-title { font-size: 14px; font-weight: bold; }
.nvd3.nv-bullet .nv-subtitle { fill: #999; }
.nvd3.nv-bullet .nv-range {
fill: #999;
fill-opacity: .4;
}
.nvd3.nv-bullet .nv-range:hover {
fill-opacity: .7;
}
/**********
* Sparkline
*/
.nvd3.nv-sparkline path {
fill: none;
}
.nvd3.nv-sparklineplus g.nv-hoverValue {
pointer-events: none;
}
.nvd3.nv-sparklineplus .nv-hoverValue line {
stroke: #333;
stroke-width: 1.5px;
}
.nvd3.nv-sparklineplus,
.nvd3.nv-sparklineplus g {
pointer-events: all;
}
.nvd3 .nv-hoverArea {
fill-opacity: 0;
stroke-opacity: 0;
}
.nvd3.nv-sparklineplus .nv-xValue,
.nvd3.nv-sparklineplus .nv-yValue {
/*
stroke: #666;
*/
stroke-width: 0;
font-size: .9em;
font-weight: normal;
}
.nvd3.nv-sparklineplus .nv-yValue {
stroke: #f66;
}
.nvd3.nv-sparklineplus .nv-maxValue {
stroke: #2ca02c;
fill: #2ca02c;
}
.nvd3.nv-sparklineplus .nv-minValue {
stroke: #d62728;
fill: #d62728;
}
.nvd3.nv-sparklineplus .nv-currentValue {
/*
stroke: #444;
fill: #000;
*/
font-weight: bold;
font-size: 1.1em;
}
/**********
* historical stock
*/
.nvd3.nv-ohlcBar .nv-ticks .nv-tick {
stroke-width: 2px;
}
.nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover {
stroke-width: 4px;
}
.nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive {
stroke: #2ca02c;
}
.nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative {
stroke: #d62728;
}
.nvd3.nv-historicalStockChart .nv-axis .nv-axislabel {
font-weight: bold;
}
.nvd3.nv-historicalStockChart .nv-dragTarget {
fill-opacity: 0;
stroke: none;
cursor: move;
}
.nvd3 .nv-brush .extent {
/*
cursor: ew-resize !important;
*/
fill-opacity: 0 !important;
}
.nvd3 .nv-brushBackground rect {
stroke: #000;
stroke-width: .4;
fill: #fff;
fill-opacity: .7;
}
/**********
* Indented Tree
*/
/**
* TODO: the following 3 selectors are based on classes used in the example. I should either make them standard and leave them here, or move to a CSS file not included in the library
*/
.nvd3.nv-indentedtree .name {
margin-left: 5px;
}
.nvd3.nv-indentedtree .clickable {
color: #08C;
cursor: pointer;
}
.nvd3.nv-indentedtree span.clickable:hover {
color: #005580;
text-decoration: underline;
}
.nvd3.nv-indentedtree .nv-childrenCount {
display: inline-block;
margin-left: 5px;
}
.nvd3.nv-indentedtree .nv-treeicon {
cursor: pointer;
/*
cursor: n-resize;
*/
}
.nvd3.nv-indentedtree .nv-treeicon.nv-folded {
cursor: pointer;
/*
cursor: s-resize;
*/
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,30 @@
<h1>PURE Unobtrusive Rendering Engine</h1>
<p>&nbsp;</p>
<div style="background-color:#DDEEFF;border:1px solid #CCCCCC;padding:10px;">
<big>Please see the <a href="http://beebole.com/pure/documentation/">documentation</a> for more information</big><br />&nbsp;<br />
<big>If you have a question or an issue post it on: <a href="http://groups.google.com/group/Pure-Unobtrusive-Rendering-Engine">the discussion group</a></big>
</div>
<p>&nbsp;</p>
<p>Copyright &copy; 2013 Michael Cvilic - BeeBole</p>
<p>Permission is hereby granted, free of charge, to any person obtaining a copy<br/>
of this software and associated documentation files (the "Software"), to deal<br/>
in the Software without restriction, including without limitation the rights<br/>
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell<br/>
copies of the Software, and to permit persons to whom the Software is<br/>
furnished to do so, subject to the following conditions:</p>
<p>The above copyright notice and this permission notice shall be included in<br/>
all copies or substantial portions of the Software.</p>
<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR<br/>
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,<br/>
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE<br/>
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER<br/>
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,<br/>
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN<br/>
THE SOFTWARE.</p>

View File

@ -0,0 +1,20 @@
{
"name" : "pure",
"description" : "PURE Unobtrusive Rendering Engine, keep your HTML clean of any logic",
"url" : "http://beebole.com/pure/",
"keywords" : ["unobtrusive", "templating", "engine", "think different"],
"author" : "Mic Cvilic <mic@beebole.com>",
"contributors" : [],
"dependencies" : [],
"lib" : ".",
"main" : "pure.js",
"version" : "2.82.0",
"repository" : {
"type" : "git",
"url" : "http://github.com/pure/pure.git"
},
"licenses": [{
"type": "The MIT License",
"url": "http://www.opensource.org/licenses/mit-license.php"}
]
}

View File

@ -0,0 +1,860 @@
/*!
PURE Unobtrusive Rendering Engine for HTML
Licensed under the MIT licenses.
More information at: http://www.opensource.org
Copyright (c) 2013 Michael Cvilic - BeeBole.com
Thanks to Rog Peppe for the functional JS jump
revision: 2.82
*/
var $p = function(){
var args = arguments,
sel = args[0],
ctxt = false;
if(typeof sel === 'string'){
ctxt = args[1] || false;
}else if(sel && !sel[0] && !sel.length){
sel = [sel];
}
return $p.core(sel, ctxt);
},
pure = $p;
$p.core = function(sel, ctxt, plugins){
//get an instance of the plugins
var templates = [], i, ii,
// set the signature string that will be replaced at render time
Sig = '_s' + Math.floor( Math.random() * 1000000 ) + '_',
// another signature to prepend to attributes and avoid checks: style, height, on[events]...
attPfx = '_a' + Math.floor( Math.random() * 1000000 ) + '_',
// rx to parse selectors, e.g. "+tr.foo[class]"
selRx = /^(\+)?([^\@\+]+)?\@?([^\+]+)?(\+)?$/,
// set automatically attributes for some tags
autoAttr = {
IMG:'src',
INPUT:'value'
},
// check if the argument is an array - thanks salty-horse (Ori Avtalion)
isArray = Array.isArray ?
function(o) {
return Array.isArray(o);
} :
function(o) {
return Object.prototype.toString.call(o) === "[object Array]";
};
plugins = plugins || getPlugins();
//search for the template node(s)
switch(typeof sel){
case 'string':
templates = plugins.find(ctxt || document, sel);
if(templates.length === 0) {
error('The template "' + sel + '" was not found');
}
break;
case 'undefined':
error('The root of the template is undefined, check your selector');
break;
default:
templates = sel;
}
for( i = 0, ii = templates.length; i < ii; i++){
plugins[i] = templates[i];
}
plugins.length = ii;
/* * * * * * * * * * * * * * * * * * * * * * * * * *
core functions
* * * * * * * * * * * * * * * * * * * * * * * * * */
// error utility
function error(e){
if(typeof console !== 'undefined'){
console.log(e);
//debugger;
}
throw('pure error: ' + e);
}
//return a new instance of plugins
function getPlugins(){
var plugins = $p.plugins,
f = function(){};
f.prototype = plugins;
// do not overwrite functions if external definition
f.prototype.compile = plugins.compile || compile;
f.prototype.render = plugins.render || render;
f.prototype.autoRender = plugins.autoRender || autoRender;
f.prototype.find = plugins.find || find;
// give the compiler and the error handling to the plugin context
f.prototype._compiler = compiler;
f.prototype._error = error;
return new f();
}
// returns the outer HTML of a node
function outerHTML(node){
// if IE, Chrome take the internal method otherwise build one
return node.outerHTML || (
function(n){
var div = document.createElement('div'), h;
div.appendChild( n.cloneNode(true) );
h = div.innerHTML;
div = null;
return h;
}(node));
}
// returns the string generator function
function wrapquote(qfn, f){
return function(ctxt){
return qfn( String( f.call(ctxt.item || ctxt.context, ctxt) ) ) ;
};
}
// default find using querySelector when available on the browser
function find(n, sel){
if(typeof n === 'string'){
sel = n;
n = false;
}
return (n||document).querySelectorAll( sel );
}
// create a function that concatenates constant string
// sections (given in parts) and the results of called
// functions to fill in the gaps between parts (fns).
// fns[n] fills in the gap between parts[n-1] and parts[n];
// fns[0] is unused.
// this is the inner template evaluation loop.
function concatenator(parts, fns){
return function(ctxt){
var strs = [ parts[ 0 ] ],
n = parts.length,
fnVal, pVal, attLine, pos, i;
try{
for(i = 1; i < n; i++){
fnVal = fns[i].call( this, ctxt );
pVal = parts[i];
// if the value is empty and attribute, remove it
if(fnVal === ''){
attLine = strs[ strs.length - 1 ];
if( ( pos = attLine.search( /[^\s]+=\"?$/ ) ) > -1){
strs[ strs.length - 1 ] = attLine.substring( 0, pos );
pVal = pVal.substr( 1 );
}
}
strs[ strs.length ] = fnVal;
strs[ strs.length ] = pVal;
}
return strs.join('');
}catch(e){
if(console && console.log){
console.log(
e.stack ||
e.message + ' (' + e.type + ( e['arguments'] ? ', ' + e['arguments'].join('-') : '' ) + '). Use Firefox or Chromium/Chrome to get a full stack of the error. ' );
}
return '';
}
};
}
// parse and check the loop directive
function parseloopspec(p){
var m = p.match( /^(\w+)\s*<-\s*(\S+)?$/ );
if(m === null){
error('bad loop spec: "' + p + '"');
}
if(m[1] === 'item'){
error('"item<-..." is a reserved word for the current running iteration.\n\nPlease choose another name for your loop.');
}
if( !m[2] || m[2].toLowerCase() === 'context' ){ //undefined or space(IE)
m[2] = function(ctxt){return ctxt.context;};
}else if( (m[2] && m[2].indexOf('context') === 0 ) ){ //undefined or space(IE)
m[2] = dataselectfn( m[2].replace(/^context\.?/, '') );
}
return {name: m[1], sel: m[2]};
}
// parse a data selector and return a function that
// can traverse the data accordingly, given a context.
function dataselectfn (sel){
if( typeof(sel) === 'function' ){
//handle false values in function directive
return function ( ctxt ){
var r = sel.call( ctxt.item || ctxt.context || ctxt, ctxt );
return !r && r !== 0 ? '' : r;
};
}
//check for a valid js variable name with hyphen(for properties only), $, _ and :
var m = sel.match(/^[\da-zA-Z\$_\@][\w\$:\-]*(\.[\w\$:\-]*[^\.])*$/),
found = false, s = sel, parts = [], pfns = [], i = 0, retStr;
if(m === null){
// check if literal
if(/\'|\"/.test( s.charAt(0) )){
if(/\'|\"/.test( s.charAt(s.length-1) )){
retStr = s.substring(1, s.length-1);
return function(){ return retStr; };
}
}else{
// check if literal + #{var}
while((m = s.match(/#\{([^{}]+)\}/)) !== null){
found = true;
parts[i++] = s.slice(0, m.index);
pfns[i] = dataselectfn(m[1]);
s = s.slice(m.index + m[0].length, s.length);
}
}
if(!found){ //constant, return it
return function(){ return sel; };
}
parts[i] = s;
return concatenator(parts, pfns);
}
m = sel.split('.');
return function(ctxt){
var data = ctxt.context || ctxt,
v = ctxt[m[0]],
i = 0,
n,
dm;
if(v && typeof v.item !== 'undefined'){
i += 1;
if(m[i] === 'pos'){
//allow pos to be kept by string. Tx to Adam Freidin
return v.pos;
}
data = v.item;
}
n = m.length;
while( i < n ){
if(!data){break;}
dm = data[ m[i] ];
//if it is a function call it
data = typeof dm === 'function' ? dm.call( data ) : dm;
i++;
}
return (!data && data !== 0) ? '':data;
};
}
// wrap in an object the target node/attr and their properties
function gettarget(dom, sel, isloop){
var osel, prepend, selector, attr, append, target = [], m,
setstr, getstr, quotefn, isStyle, isClass, attName, setfn;
if( typeof sel === 'string' ){
osel = sel;
m = sel.match(selRx);
if( !m ){
error( 'bad selector syntax: ' + sel );
}
prepend = m[1];
selector = m[2];
attr = m[3];
append = m[4];
if(selector === '.' || ( !selector && attr ) ){
target[0] = dom;
}else{
target = plugins.find(dom, selector);
}
if(!target || target.length === 0){
return error('The node "' + sel + '" was not found in the template:\n' + outerHTML(dom).replace(/\t/g,' '));
}
}else{
// autoRender node
prepend = sel.prepend;
attr = sel.attr;
append = sel.append;
target = [dom];
}
if( prepend || append ){
if( prepend && append ){
error('append/prepend cannot take place at the same time');
}else if( isloop ){
error('no append/prepend/replace modifiers allowed for loop target');
}else if( append && isloop ){
error('cannot append with loop (sel: ' + osel + ')');
}
}
if(attr){
isStyle = (/^style$/i).test(attr);
isClass = (/^class$/i).test(attr);
attName = isClass ? 'className' : attr;
setstr = function(node, s) {
node.setAttribute(attPfx + attr, s);
if ( node[attName] && !isStyle) {
try{node[attName] = '';}catch(e){} //FF4 gives an error sometimes
}
if (node.nodeType === 1) {
node.removeAttribute(attr);
if(isClass){
node.removeAttribute(attName);
}
}
};
if (isStyle || isClass) {//IE no quotes special care
if(isStyle){
getstr = function(n){ return n.style.cssText; };
}else{
getstr = function(n){ return n.className; };
}
}else {
getstr = function(n){ return n.getAttribute(attr); };
}
quotefn = function(s){ return s.replace(/\"/g, '&quot;'); };
if(prepend){
setfn = function(node, s){ setstr( node, s + getstr( node )); };
}else if(append){
setfn = function(node, s){ setstr( node, getstr( node ) + s); };
}else{
setfn = function(node, s){ setstr( node, s ); };
}
}else{
if (isloop) {
setfn = function(node, s) {
var pn = node.parentNode;
if (pn) {
//replace node with s
pn.insertBefore(document.createTextNode(s), node.nextSibling);
pn.removeChild(node);
}else{
error('The template root, can\'t be looped.');
}
};
} else {
if (prepend) {
setfn = function(node, s) { node.insertBefore(document.createTextNode(s), node.firstChild); };
} else if (append) {
setfn = function(node, s) { node.appendChild(document.createTextNode(s));};
} else {
setfn = function(node, s) {
while (node.firstChild) { node.removeChild(node.firstChild); }
node.appendChild(document.createTextNode(s));
};
}
}
quotefn = function(s) { return s; };
}
return { attr: attr, nodes: target, set: setfn, sel: osel, quotefn: quotefn };
}
function setsig(target, n){
var sig = Sig + n + ':', i;
for(i = 0; i < target.nodes.length; i++){
// could check for overlapping targets here.
target.set( target.nodes[i], sig );
}
}
// read de loop data, and pass it to the inner rendering function
function loopfn(name, dselect, inner, sorter, filter){
return function(ctxt){
var a = dselect(ctxt),
old = ctxt[name],
temp = { items : a },
filtered = 0,
length,
strs = [],
buildArg = function(idx, temp, ftr, len){
//keep the current loop. Tx to Adam Freidin
var save_pos = ctxt.pos,
save_item = ctxt.item,
save_items = ctxt.items;
ctxt.pos = temp.pos = idx;
ctxt.item = temp.item = a[ idx ];
ctxt.items = a;
//if array, set a length property - filtered items
if(typeof len !== 'undefined'){ (ctxt.length = len); }
//if filter directive
if(typeof ftr === 'function' && ftr.call(ctxt.item, ctxt) === false){
filtered++;
return;
}
strs.push( inner.call(ctxt.item, ctxt ) );
//restore the current loop
ctxt.pos = save_pos;
ctxt.item = save_item;
ctxt.items = save_items;
},
prop, i, ii;
ctxt[name] = temp;
if( isArray(a) ){
length = a.length || 0;
// if sort directive
if(typeof sorter === 'function'){
a.sort(function(a, b){
return sorter.call(ctxt, a, b);
});
}
//loop on array
for(i = 0, ii = length; i < ii; i++){
buildArg(i, temp, filter, length - filtered);
}
}else{
if(a && typeof sorter !== 'undefined'){
error('sort is only available on arrays, not objects');
}
//loop on collections
for( prop in a ){
if( a.hasOwnProperty( prop ) ){
buildArg(prop, temp, filter);
}
}
}
if( typeof old !== 'undefined'){
ctxt[name] = old;
}else{
delete ctxt[name];
}
return strs.join('');
};
}
// generate the template for a loop node
function loopgen(dom, sel, loop, fns){
var already = false, ls, sorter, filter, prop, dsel, spec, itersel, target, nodes, node, inner;
for(prop in loop){
if(loop.hasOwnProperty(prop)){
if(prop === 'sort'){
sorter = loop.sort;
}else if(prop === 'filter'){
filter = loop.filter;
}else if(already){
error('cannot have more than one loop on a target');
}else{
ls = prop;
already = true;
}
}
}
if(!ls){
error('Error in the selector: ' + sel + '\nA directive action must be a string, a function or a loop(<-)');
}
dsel = loop[ls];
// if it's a simple data selector then we default to contents, not replacement.
if(typeof(dsel) === 'string' || typeof(dsel) === 'function'){
loop = {};
loop[ls] = {root: dsel};
return loopgen(dom, sel, loop, fns);
}
spec = parseloopspec(ls);
itersel = dataselectfn(spec.sel);
target = gettarget(dom, sel, true);
nodes = target.nodes;
for(i = 0; i < nodes.length; i++){
node = nodes[i];
inner = compiler(node, dsel);
fns[fns.length] = wrapquote(target.quotefn, loopfn(spec.name, itersel, inner, sorter, filter));
target.nodes = [node]; // N.B. side effect on target.
setsig(target, fns.length - 1);
}
return target;
}
function getAutoNodes(n, data){
var ns = n.getElementsByTagName('*'),
an = [],
openLoops = {a:[],l:{}},
cspec,
isNodeValue,
i, ii, j, jj, ni, cs, cj;
//for each node found in the template
for(i = -1, ii = ns.length; i < ii; i++){
ni = i > -1 ?ns[i]:n;
if(ni.nodeType === 1 && ni.className !== ''){
//when a className is found
cs = ni.className.split(' ');
// for each className
for(j = 0, jj=cs.length;j<jj;j++){
cj = cs[j];
// check if it is related to a context property
cspec = checkClass(cj, ni.tagName);
// if so, store the node, plus the type of data
if(cspec !== false){
isNodeValue = (/nodevalue/i).test(cspec.attr);
if(cspec.sel.indexOf('@') > -1 || isNodeValue){
ni.className = ni.className.replace('@'+cspec.attr, '');
if(isNodeValue){
cspec.attr = false;
}
}
an.push({n:ni, cspec:cspec});
}
}
}
}
function checkClass(c, tagName){
// read the class
var ca = c.match(selRx),
attr = ca[3] || autoAttr[tagName],
cspec = {prepend:!!ca[1], prop:ca[2], attr:attr, append:!!ca[4], sel:c},
i, ii, loopi, loopil, val;
// check in existing open loops
for(i = openLoops.a.length-1; i >= 0; i--){
loopi = openLoops.a[i];
loopil = loopi.l[0];
val = loopil && loopil[cspec.prop];
if(typeof val !== 'undefined'){
cspec.prop = loopi.p + '.' + cspec.prop;
if(openLoops.l[cspec.prop] === true){
val = val[0];
}
break;
}
}
// not found check first level of data
if(typeof val === 'undefined'){
val = dataselectfn(cspec.prop)(isArray(data) ? data[0] : data);
// nothing found return
if(val === ''){
return false;
}
}
// set the spec for autoNode
if(isArray(val)){
openLoops.a.push( {l:val, p:cspec.prop} );
openLoops.l[cspec.prop] = true;
cspec.t = 'loop';
}else{
cspec.t = 'str';
}
return cspec;
}
return an;
}
// returns a function that, given a context argument,
// will render the template defined by dom and directive.
function compiler(dom, directive, data, ans){
var fns = [], j, jj, cspec, n, target, nodes, itersel, node, inner, dsel, sels, sel, sl, i, h, parts, pfns = [], p;
// autoRendering nodes parsing -> auto-nodes
ans = ans || (data && getAutoNodes(dom, data));
if(data){
// for each auto-nodes
while(ans.length > 0){
cspec = ans[0].cspec;
n = ans[0].n;
ans.splice(0, 1);
if(cspec.t === 'str'){
// if the target is a value
target = gettarget(n, cspec, false);
setsig(target, fns.length);
fns[fns.length] = wrapquote(target.quotefn, dataselectfn(cspec.prop));
}else{
// if the target is a loop
itersel = dataselectfn(cspec.sel);
target = gettarget(n, cspec, true);
nodes = target.nodes;
for(j = 0, jj = nodes.length; j < jj; j++){
node = nodes[j];
inner = compiler(node, false, data, ans);
fns[fns.length] = wrapquote(target.quotefn, loopfn(cspec.sel, itersel, inner));
target.nodes = [node];
setsig(target, fns.length - 1);
}
}
}
}
// read directives
for(sel in directive){
if(directive.hasOwnProperty(sel)){
i = 0;
dsel = directive[sel];
sels = sel.split(/\s*,\s*/); //allow selector separation by quotes
sl = sels.length;
do{
if(typeof(dsel) === 'function' || typeof(dsel) === 'string'){
// set the value for the node/attr
sel = sels[i];
target = gettarget(dom, sel, false);
setsig(target, fns.length);
fns[fns.length] = wrapquote(target.quotefn, dataselectfn(dsel));
}else{
// loop on node
loopgen(dom, sel, dsel, fns);
}
}while(++i < sl);
}
}
// convert node to a string
h = outerHTML(dom);
// IE adds an unremovable "selected, value" attribute
// hard replace while waiting for a better solution
h = h.replace(/<([^>]+)\s(value\=""|selected)\s?([^>]*)>/ig, "<$1 $3>");
// remove attribute prefix
h = h.split(attPfx).join('');
// slice the html string at "Sig"
parts = h.split( Sig );
// for each slice add the return string of
for(i = 1; i < parts.length; i++){
p = parts[i];
// part is of the form "fn-number:..." as placed there by setsig.
pfns[i] = fns[ parseInt(p, 10) ];
parts[i] = p.substring( p.indexOf(':') + 1 );
}
return concatenator(parts, pfns);
}
// compile the template with directive
// if a context is passed, the autoRendering is triggered automatically
// return a function waiting the data as argument
function compile(directive, ctxt, template){
var rfn = compiler( ( template || this[0] ).cloneNode(true), directive, ctxt);
return function(context){
return rfn({context:context});
};
}
//compile with the directive as argument
// run the template function on the context argument
// return an HTML string
// should replace the template and return this
function render(ctxt, directive){
var fn = typeof directive === 'function' && directive, i, ii;
for(i = 0, ii = this.length; i < ii; i++){
this[i] = replaceWith( this[i], (fn || plugins.compile( directive, false, this[i] ))( ctxt, false ));
}
return this;
}
// compile the template with autoRender
// run the template function on the context argument
// return an HTML string
function autoRender(ctxt, directive){
var fn = plugins.compile( directive, ctxt, this[0] ), i, ii;
for(i = 0, ii = this.length; i < ii; i++){
this[i] = replaceWith( this[i], fn( ctxt, false));
}
return this;
}
function replaceWith(elm, html) {
var ne,
ep = elm.parentNode,
depth = 0,
tmp;
if(!ep){ //if no parents
ep = document.createElement('DIV');
ep.appendChild(elm);
}
switch (elm.tagName) {
case 'BODY': //thanks to milan.adamovsky@gmail.com
ep.removeChild(elm);
ep.innerHTML += html;
return ep.getElementsByTagName('BODY')[0];
case 'TBODY': case 'THEAD': case 'TFOOT':
html = '<TABLE>' + html + '</TABLE>';
depth = 1;
break;
case 'TR':
html = '<TABLE><TBODY>' + html + '</TBODY></TABLE>';
depth = 2;
break;
case 'TD': case 'TH':
html = '<TABLE><TBODY><TR>' + html + '</TR></TBODY></TABLE>';
depth = 3;
break;
case 'OPTGROUP': case 'OPTION':
html = '<SELECT>' + html + '</SELECT>';
depth = 1;
break;
}
tmp = document.createElement('SPAN');
tmp.style.display = 'none';
document.body.appendChild(tmp);
tmp.innerHTML = html;
ne = tmp.firstChild;
while (depth--) {
ne = ne.firstChild;
}
ep.insertBefore(ne, elm);
ep.removeChild(elm);
document.body.removeChild(tmp);
elm = ne;
ne = ep = null;
return elm;
}
return plugins;
};
$p.plugins = {};
$p.libs = {
dojo:function(){
return function(n, sel){
return dojo.query(sel, n);
};
},
domassistant:function(){
DOMAssistant.attach({
publicMethods : [ 'compile', 'render', 'autoRender'],
compile:function(directive, ctxt){
return $p([this]).compile(directive, ctxt);
},
render:function(ctxt, directive){
return $( $p([this]).render(ctxt, directive) )[0];
},
autoRender:function(ctxt, directive){
return $( $p([this]).autoRender(ctxt, directive) )[0];
}
});
return function(n, sel){
return $(n).cssSelect(sel);
};
},
ext:function(){//Thanks to Greg Steirer
return function(n, sel){
return Ext.query(sel, n);
};
},
jquery:function(){
jQuery.fn.extend({
directives:function(directive){
this._pure_d = directive; return this;
},
compile:function(directive, ctxt){
return $p(this).compile(this._pure_d || directive, ctxt);
},
render:function(ctxt, directive){
return jQuery( $p( this ).render( ctxt, this._pure_d || directive ) );
},
autoRender:function(ctxt, directive){
return jQuery( $p( this ).autoRender( ctxt, this._pure_d || directive ) );
}
});
return function(n, sel){
return jQuery(n).find(sel);
};
},
mootools:function(){
Element.implement({
compile:function(directive, ctxt){
return $p(this).compile(directive, ctxt);
},
render:function(ctxt, directive){
return $p([this]).render(ctxt, directive);
},
autoRender:function(ctxt, directive){
return $p([this]).autoRender(ctxt, directive);
}
});
return function(n, sel){
return $(n).getElements(sel);
};
},
prototype:function(){
Element.addMethods({
compile:function(element, directive, ctxt){
return $p([element]).compile(directive, ctxt);
},
render:function(element, ctxt, directive){
return $p([element]).render(ctxt, directive);
},
autoRender:function(element, ctxt, directive){
return $p([element]).autoRender(ctxt, directive);
}
});
return function(n, sel){
n = n === document ? n.body : n;
return typeof n === 'string' ? $$(n) : $(n).select(sel);
};
},
sizzle:function(){
return function(n, sel){
return Sizzle(sel, n);
};
},
sly:function(){
return function(n, sel){
return Sly(sel, n);
};
},
yui:function(){ //Thanks to https://github.com/soljin
if(typeof document.querySelector === 'undefined'){
YUI().use("node",function(Y){
$p.plugins.find = function(n, sel){
return Y.NodeList.getDOMNodes(Y.one(n).all(sel));
};
});
}
YUI.add("pure-yui",function(Y){
Y.Node.prototype.directives = function(directive){
this._pure_d = directive; return this;
};
Y.Node.prototype.compile = function(directive, ctxt){
return $p([this._node]).compile(this._pure_d || directive, ctxt);
};
Y.Node.prototype.render = function(ctxt, directive){
return Y.one($p([this._node]).render(ctxt, this._pure_d || directive));
};
Y.Node.prototype.autoRender = function(ctxt, directive){
return Y.one($p([this._node]).autoRender(ctxt, this._pure_d || directive));
};
},"0.1",{requires:["node"]});
return true;
}
};
// get lib specifics if available
(function(){
var libSel,
libkey =
(typeof dojo !== 'undefined' && 'dojo') ||
(typeof DOMAssistant !== 'undefined' && 'domassistant') ||
(typeof Ext !== 'undefined' && 'ext') ||
(typeof jQuery !== 'undefined' && 'jquery') ||
(typeof MooTools !== 'undefined' && 'mootools') ||
(typeof Prototype !== 'undefined' && 'prototype') ||
(typeof Sizzle !== 'undefined' && 'sizzle') ||
(typeof Sly !== 'undefined' && 'sly') ||
(typeof YUI !== 'undefined' && 'yui');
//add library methods
if(libkey){
libSel = $p.libs[libkey]();
}
//if no native selector available
if( typeof document.querySelector === 'undefined' ){
//take it from the JS lib
if( typeof libSel === 'function' ){
$p.plugins.find = libSel;
//if nothing throw an error
}else if( !libSel ){
throw('you need a JS library with a CSS selector engine');
}
}
//for node.js
if(typeof exports !== 'undefined'){
exports.$p = $p;
}
}());

View File

@ -0,0 +1,36 @@
/*!
PURE Unobtrusive Rendering Engine for HTML
Licensed under the MIT licenses.
More information at: http://www.opensource.org
Copyright (c) 2013 Michael Cvilic - BeeBole.com
Thanks to Rog Peppe for the functional JS jump
revision: 2.82
*/
var $p=function(){var d=arguments,e=d[0],o=false;if(typeof e==="string")o=d[1]||false;else if(e&&!e[0]&&!e.length)e=[e];return $p.core(e,o)},pure=$p;
$p.core=function(d,e,o){function u(a){typeof console!=="undefined"&&console.log(a);throw"pure error: "+a;}function O(){var a=$p.plugins,b=function(){};b.prototype=a;b.prototype.compile=a.compile||P;b.prototype.render=a.render||Q;b.prototype.autoRender=a.autoRender||R;b.prototype.find=a.find||S;b.prototype._compiler=B;b.prototype._error=u;return new b}function G(a){return a.outerHTML||function(b){var g=document.createElement("div");g.appendChild(b.cloneNode(true));return g.innerHTML}(a)}function C(a,
b){return function(g){return a(String(b.call(g.item||g.context,g)))}}function S(a,b){if(typeof a==="string"){b=a;a=false}return(a||document).querySelectorAll(b)}function H(a,b){return function(g){var c=[a[0]],i=a.length,h,k,l,f,n;try{for(n=1;n<i;n++){h=b[n].call(this,g);k=a[n];if(h===""){l=c[c.length-1];if((f=l.search(/[^\s]+=\"?$/))>-1){c[c.length-1]=l.substring(0,f);k=k.substr(1)}}c[c.length]=h;c[c.length]=k}return c.join("")}catch(m){if(console&&console.log)console.log(m.stack||m.message+" ("+
m.type+(m.arguments?", "+m.arguments.join("-"):"")+"). Use Firefox or Chromium/Chrome to get a full stack of the error. ");return""}}}function T(a){var b=a.match(/^(\w+)\s*<-\s*(\S+)?$/);b===null&&u('bad loop spec: "'+a+'"');b[1]==="item"&&u('"item<-..." is a reserved word for the current running iteration.\n\nPlease choose another name for your loop.');if(!b[2]||b[2].toLowerCase()==="context")b[2]=function(g){return g.context};else if(b[2]&&b[2].indexOf("context")===0)b[2]=x(b[2].replace(/^context\.?/,
""));return{name:b[1],sel:b[2]}}function x(a){if(typeof a==="function")return function(f){f=a.call(f.item||f.context||f,f);return!f&&f!==0?"":f};var b=a.match(/^[\da-zA-Z\$_\@][\w\$:\-]*(\.[\w\$:\-]*[^\.])*$/),g=false,c=a,i=[],h=[],k=0,l;if(b===null){if(/\'|\"/.test(c.charAt(0))){if(/\'|\"/.test(c.charAt(c.length-1))){l=c.substring(1,c.length-1);return function(){return l}}}else for(;(b=c.match(/#\{([^{}]+)\}/))!==null;){g=true;i[k++]=c.slice(0,b.index);h[k]=x(b[1]);c=c.slice(b.index+b[0].length,
c.length)}if(!g)return function(){return a};i[k]=c;return H(i,h)}b=a.split(".");return function(f){var n=f.context||f,m=f[b[0]];f=0;var s;if(m&&typeof m.item!=="undefined"){f+=1;if(b[f]==="pos")return m.pos;n=m.item}for(m=b.length;f<m;){if(!n)break;s=n[b[f]];n=typeof s==="function"?s.call(n):s;f++}return!n&&n!==0?"":n}}function D(a,b,g){var c,i,h,k,l,f=[],n,m,s,t,r;if(typeof b==="string"){c=b;(l=b.match(I))||u("bad selector syntax: "+b);i=l[1];h=l[2];k=l[3];l=l[4];if(h==="."||!h&&k)f[0]=a;else f=
o.find(a,h);if(!f||f.length===0)return u('The node "'+b+'" was not found in the template:\n'+G(a).replace(/\t/g," "))}else{i=b.prepend;k=b.attr;l=b.append;f=[a]}if(i||l)if(i&&l)u("append/prepend cannot take place at the same time");else if(g)u("no append/prepend/replace modifiers allowed for loop target");else l&&g&&u("cannot append with loop (sel: "+c+")");if(k){s=/^style$/i.test(k);r=(t=/^class$/i.test(k))?"className":k;n=function(j,q){j.setAttribute(J+k,q);if(j[r]&&!s)try{j[r]=""}catch(p){}if(j.nodeType===
1){j.removeAttribute(k);t&&j.removeAttribute(r)}};m=s||t?s?function(j){return j.style.cssText}:function(j){return j.className}:function(j){return j.getAttribute(k)};a=function(j){return j.replace(/\"/g,"&quot;")};i=i?function(j,q){n(j,q+m(j))}:l?function(j,q){n(j,m(j)+q)}:function(j,q){n(j,q)}}else{i=g?function(j,q){var p=j.parentNode;if(p){p.insertBefore(document.createTextNode(q),j.nextSibling);p.removeChild(j)}else u("The template root, can't be looped.")}:i?function(j,q){j.insertBefore(document.createTextNode(q),
j.firstChild)}:l?function(j,q){j.appendChild(document.createTextNode(q))}:function(j,q){for(;j.firstChild;)j.removeChild(j.firstChild);j.appendChild(document.createTextNode(q))};a=function(j){return j}}return{attr:k,nodes:f,set:i,sel:c,quotefn:a}}function E(a,b){var g=K+b+":",c;for(c=0;c<a.nodes.length;c++)a.set(a.nodes[c],g)}function L(a,b,g,c,i){return function(h){var k=b(h),l=h[a],f={items:k},n=0,m,s=[],t=function(j,q,p,y){var z=h.pos,v=h.item,U=h.items;h.pos=q.pos=j;h.item=q.item=k[j];h.items=
k;if(typeof y!=="undefined")h.length=y;if(typeof p==="function"&&p.call(h.item,h)===false)n++;else{s.push(g.call(h.item,h));h.pos=z;h.item=v;h.items=U}},r;h[a]=f;if(F(k)){m=k.length||0;typeof c==="function"&&k.sort(function(j,q){return c.call(h,j,q)});for(r=0;r<m;r++)t(r,f,i,m-n)}else{k&&typeof c!=="undefined"&&u("sort is only available on arrays, not objects");for(m in k)k.hasOwnProperty(m)&&t(m,f,i)}if(typeof l!=="undefined")h[a]=l;else delete h[a];return s.join("")}}function M(a,b,g,c){var i=false,
h,k,l,f,n;for(f in g)if(g.hasOwnProperty(f))if(f==="sort")k=g.sort;else if(f==="filter")l=g.filter;else if(i)u("cannot have more than one loop on a target");else{h=f;i=true}h||u("Error in the selector: "+b+"\nA directive action must be a string, a function or a loop(<-)");i=g[h];if(typeof i==="string"||typeof i==="function"){g={};g[h]={root:i};return M(a,b,g,c)}g=T(h);h=x(g.sel);a=D(a,b,true);b=a.nodes;for(w=0;w<b.length;w++){f=b[w];n=B(f,i);c[c.length]=C(a.quotefn,L(g.name,h,n,k,l));a.nodes=[f];
E(a,c.length-1)}return a}function V(a,b){function g(j,q){var p=j.match(I);p={prepend:!!p[1],prop:p[2],attr:p[3]||W[q],append:!!p[4],sel:j};var y,z,v;for(y=h.a.length-1;y>=0;y--){z=h.a[y];v=(v=z.l[0])&&v[p.prop];if(typeof v!=="undefined"){p.prop=z.p+"."+p.prop;if(h.l[p.prop]===true)v=v[0];break}}if(typeof v==="undefined"){v=x(p.prop)(F(b)?b[0]:b);if(v==="")return false}if(F(v)){h.a.push({l:v,p:p.prop});h.l[p.prop]=true;p.t="loop"}else p.t="str";return p}var c=a.getElementsByTagName("*"),i=[],h={a:[],
l:{}},k,l,f,n,m,s,t,r;f=-1;for(n=c.length;f<n;f++){t=f>-1?c[f]:a;if(t.nodeType===1&&t.className!==""){r=t.className.split(" ");m=0;for(s=r.length;m<s;m++){k=r[m];k=g(k,t.tagName);if(k!==false){l=/nodevalue/i.test(k.attr);if(k.sel.indexOf("@")>-1||l){t.className=t.className.replace("@"+k.attr,"");if(l)k.attr=false}i.push({n:t,cspec:k})}}}}return i}function B(a,b,g,c){var i=[],h,k,l,f,n,m,s,t,r,j=[];c=c||g&&V(a,g);if(g)for(;c.length>0;){l=c[0].cspec;f=c[0].n;c.splice(0,1);if(l.t==="str"){f=D(f,l,false);
E(f,i.length);i[i.length]=C(f.quotefn,x(l.prop))}else{m=x(l.sel);f=D(f,l,true);n=f.nodes;h=0;for(k=n.length;h<k;h++){s=n[h];t=B(s,false,g,c);i[i.length]=C(f.quotefn,L(l.sel,m,t));f.nodes=[s];E(f,i.length-1)}}}for(r in b)if(b.hasOwnProperty(r)){g=0;c=b[r];l=r.split(/\s*,\s*/);m=l.length;do if(typeof c==="function"||typeof c==="string"){r=l[g];f=D(a,r,false);E(f,i.length);i[i.length]=C(f.quotefn,x(c))}else M(a,r,c,i);while(++g<m)}a=G(a);a=a.replace(/<([^>]+)\s(value\=""|selected)\s?([^>]*)>/ig,"<$1 $3>");
a=a.split(J).join("");a=a.split(K);for(g=1;g<a.length;g++){b=a[g];j[g]=i[parseInt(b,10)];a[g]=b.substring(b.indexOf(":")+1)}return H(a,j)}function P(a,b,g){var c=B((g||this[0]).cloneNode(true),a,b);return function(i){return c({context:i})}}function Q(a,b){var g=typeof b==="function"&&b,c,i;c=0;for(i=this.length;c<i;c++)this[c]=N(this[c],(g||o.compile(b,false,this[c]))(a,false));return this}function R(a,b){var g=o.compile(b,a,this[0]),c,i;c=0;for(i=this.length;c<i;c++)this[c]=N(this[c],g(a,false));
return this}function N(a,b){var g,c=a.parentNode,i=0,h;if(!c){c=document.createElement("DIV");c.appendChild(a)}switch(a.tagName){case "BODY":c.removeChild(a);c.innerHTML+=b;return c.getElementsByTagName("BODY")[0];case "TBODY":case "THEAD":case "TFOOT":b="<TABLE>"+b+"</TABLE>";i=1;break;case "TR":b="<TABLE><TBODY>"+b+"</TBODY></TABLE>";i=2;break;case "TD":case "TH":b="<TABLE><TBODY><TR>"+b+"</TR></TBODY></TABLE>";i=3;break;case "OPTGROUP":case "OPTION":b="<SELECT>"+b+"</SELECT>";i=1;break}h=document.createElement("SPAN");
h.style.display="none";document.body.appendChild(h);h.innerHTML=b;for(g=h.firstChild;i--;)g=g.firstChild;c.insertBefore(g,a);c.removeChild(a);document.body.removeChild(h);return a=g}var A=[],w,K="_s"+Math.floor(Math.random()*1E6)+"_",J="_a"+Math.floor(Math.random()*1E6)+"_",I=/^(\+)?([^\@\+]+)?\@?([^\+]+)?(\+)?$/,W={IMG:"src",INPUT:"value"},F=Array.isArray?function(a){return Array.isArray(a)}:function(a){return Object.prototype.toString.call(a)==="[object Array]"};o=o||O();switch(typeof d){case "string":A=
o.find(e||document,d);A.length===0&&u('The template "'+d+'" was not found');break;case "undefined":u("The root of the template is undefined, check your selector");break;default:A=d}w=0;for(d=A.length;w<d;w++)o[w]=A[w];o.length=d;return o};$p.plugins={};
$p.libs={dojo:function(){return function(d,e){return dojo.query(e,d)}},domassistant:function(){DOMAssistant.attach({publicMethods:["compile","render","autoRender"],compile:function(d,e){return $p([this]).compile(d,e)},render:function(d,e){return $($p([this]).render(d,e))[0]},autoRender:function(d,e){return $($p([this]).autoRender(d,e))[0]}});return function(d,e){return $(d).cssSelect(e)}},ext:function(){return function(d,e){return Ext.query(e,d)}},jquery:function(){jQuery.fn.extend({directives:function(d){this._pure_d=
d;return this},compile:function(d,e){return $p(this).compile(this._pure_d||d,e)},render:function(d,e){return jQuery($p(this).render(d,this._pure_d||e))},autoRender:function(d,e){return jQuery($p(this).autoRender(d,this._pure_d||e))}});return function(d,e){return jQuery(d).find(e)}},mootools:function(){Element.implement({compile:function(d,e){return $p(this).compile(d,e)},render:function(d,e){return $p([this]).render(d,e)},autoRender:function(d,e){return $p([this]).autoRender(d,e)}});return function(d,
e){return $(d).getElements(e)}},prototype:function(){Element.addMethods({compile:function(d,e,o){return $p([d]).compile(e,o)},render:function(d,e,o){return $p([d]).render(e,o)},autoRender:function(d,e,o){return $p([d]).autoRender(e,o)}});return function(d,e){d=d===document?d.body:d;return typeof d==="string"?$$(d):$(d).select(e)}},sizzle:function(){return function(d,e){return Sizzle(e,d)}},sly:function(){return function(d,e){return Sly(e,d)}},yui:function(){typeof document.querySelector==="undefined"&&
YUI().use("node",function(d){$p.plugins.find=function(e,o){return d.NodeList.getDOMNodes(d.one(e).all(o))}});YUI.add("pure-yui",function(d){d.Node.prototype.directives=function(e){this._pure_d=e;return this};d.Node.prototype.compile=function(e,o){return $p([this._node]).compile(this._pure_d||e,o)};d.Node.prototype.render=function(e,o){return d.one($p([this._node]).render(e,this._pure_d||o))};d.Node.prototype.autoRender=function(e,o){return d.one($p([this._node]).autoRender(e,this._pure_d||o))}},"0.1",
{requires:["node"]});return true}};
(function(){var d,e=typeof dojo!=="undefined"&&"dojo"||typeof DOMAssistant!=="undefined"&&"domassistant"||typeof Ext!=="undefined"&&"ext"||typeof jQuery!=="undefined"&&"jquery"||typeof MooTools!=="undefined"&&"mootools"||typeof Prototype!=="undefined"&&"prototype"||typeof Sizzle!=="undefined"&&"sizzle"||typeof Sly!=="undefined"&&"sly"||typeof YUI!=="undefined"&&"yui";if(e)d=$p.libs[e]();if(typeof document.querySelector==="undefined")if(typeof d==="function")$p.plugins.find=d;else if(!d)throw"you need a JS library with a CSS selector engine";
if(typeof exports!=="undefined")exports.$p=$p})();

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,283 @@
/**
* vtkWebLoader JavaScript Library.
*
* vtkWebLoader use the vtkWeb namespace to manage JavaScript dependency and more specifically
* vtkWeb dependencies.
*
* @class vtkWebLoader
*
* @singleton
*/
(function (GLOBAL) {
var vtkWebLibs = {
"core" : [
"ext/core/jquery-1.8.3.min.js",
"ext/core/autobahn.min.js",
"ext/core/gl-matrix.js",
"ext/core/jquery.hammer.js",
"ext/core/vgl.min.js",
"lib/core/vtkweb-all.js"
],
"core-min": [
"ext/core/jquery-1.8.3.min.js",
"ext/core/autobahn.min.js",
"ext/core/gl-matrix-min.js",
"ext/core/jquery.hammer.min.js",
"ext/core/vgl.min.js",
"lib/core/vtkweb-all.min.js"
],
"bootstrap": [
"ext/bootstrap/js/bootstrap.min.js",
"ext/bootstrap/css/bootstrap-responsive.min.css",
"ext/bootstrap/css/bootstrap.min.css"
],
"fontello": [
"ext/fontello/css/animation.css",
"ext/fontello/css/fontello.css"
],
"color": [
"ext/jscolor/jscolor.js"
],
"filebrowser": [
"ext/pure/pure.min.js",
"lib/widgets/FileBrowser/vtkweb-widget-filebrowser.js",
"lib/widgets/FileBrowser/vtkweb-widget-filebrowser.tpl",
"lib/widgets/FileBrowser/vtkweb-widget-filebrowser.css"
],
"pv-pipeline": [
"ext/jquery-ui/jquery-ui-1.10.0.css",
"ext/jquery-ui/jquery-ui-1.10.0.min.js",
"lib/css/paraview.ui.pipeline.css",
"lib/js/paraview.ui.pipeline.js",
],
"pv-toolbar": [
"lib/css/paraview.ui.toolbar.css",
"lib/css/paraview.ui.toolbar.vcr.css",
"lib/css/paraview.ui.toolbar.viewport.css",
"lib/css/paraview.ui.toolbar.connect.css",
"lib/js/paraview.ui.toolbar.js",
"lib/js/paraview.ui.toolbar.vcr.js",
"lib/js/paraview.ui.toolbar.viewport.js",
"lib/js/paraview.ui.toolbar.connect.js"
],
"jquery-ui": [
"ext/jquery-ui/jquery-ui-1.10.0.css",
"ext/jquery-ui/jquery-ui-1.10.0.min.js"
],
"d3":[
"ext/d3/d3.v2.js"
],
"nvd3":[
"ext/nvd3/nv.d3.css",
"ext/nvd3/nv.d3.js"
],
"rickshaw": [
"ext/rickshaw/rickshaw.min.css",
"ext/rickshaw/rickshaw.min.js"
],
"widgets": [
"ext/pure/pure.min.js",
"ext/d3/d3.v2.js",
"ext/rickshaw/rickshaw.min.css",
"ext/rickshaw/rickshaw.min.js",
"ext/fontello/css/animation.css",
"ext/fontello/css/fontello.css",
"lib/widgets/FileBrowser/vtkweb-widget-filebrowser.tpl",
"lib/widgets/TreeWidget/vtkweb-widget-tree.tpl",
"lib/widgets/vtkweb-widgets-min.css",
"lib/widgets/vtkweb-widgets-min.js"
],
"pv-visualizer": [
"ext/fontello/css/animation.css",
"ext/fontello/css/fontello.css",
"ext/bootstrap3/css/bootstrap-theme.min.css",
"ext/bootstrap3/css/bootstrap.min.css",
"ext/bootstrap3/js/bootstrap.min.js",
"lib/js/paraview.ui.action.list.js",
"lib/js/paraview.ui.files.js",
"lib/js/paraview.ui.data.js",
"lib/js/paraview.ui.proxy.editor.js",
"lib/css/paraview.ui.proxy.editor.css",
"lib/js/paraview.ui.svg.pipeline.js",
"lib/js/paraview.ui.opacity.editor.js",
"lib/css/paraview.ui.opacity.editor.css",
"lib/js/paraview.ui.color.editor.js",
"lib/css/paraview.ui.color.editor.css"
],
"pv-visualizer-main-js": [
"apps/Visualizer/main.js"
],
"pv-visualizer-main-all": [
"apps/Visualizer/main.js",
"apps/Visualizer/main.css"
],
"pv-visualizer-tpl": "apps/Visualizer/visualizer-tpl.html"
},
modules = [],
script = document.getElementsByTagName("script")[document.getElementsByTagName("script").length - 1],
basePath = "",
extraScripts = [];
// ---------------------------------------------------------------------
function loadCss(url) {
var link = document.createElement("link");
link.type = "text/css";
link.rel = "stylesheet";
link.href = url;
head = document.getElementsByTagName("head")[0];
head.insertBefore(link, head.childNodes[0]);
}
// ---------------------------------------------------------------------
function loadJavaScript(url) {
document.write('<script src="' + url + '"></script>');
}
// ---------------------------------------------------------------------
function loadTemplate(url) {
var templates = document.getElementById("vtk-templates");
if(templates === null) {
templates = document.createElement("div");
templates.setAttribute("style", "display: none;");
templates.setAttribute("id", "vtk-templates");
document.getElementsByTagName("body")[0].appendChild(templates);
}
// Fetch template and append to vtk-templates
var request = makeHttpObject();
request.open("GET", url, true);
request.send(null);
request.onreadystatechange = function() {
if (request.readyState == 4) {
var content = templates.innerHTML;
content += request.responseText;
templates.innerHTML = content;
}
};
}
// ---------------------------------------------------------------------
function loadGlobalTemplate(url) {
var request = makeHttpObject();
request.open("GET", url, true);
request.send(null);
request.onreadystatechange = function() {
if (request.readyState == 4) {
var content = request.responseText,
body = document.getElementsByTagName("body")[0];
body.innerHTML += content;
}
};
}
// ---------------------------------------------------------------------
function makeHttpObject() {
try {
return new XMLHttpRequest();
}
catch (error) {}
try {
return new ActiveXObject("Msxml2.XMLHTTP");
}
catch (error) {}
try {
return new ActiveXObject("Microsoft.XMLHTTP");
}
catch (error) {}
throw new Error("Could not create HTTP request object.");
}
// ---------------------------------------------------------------------
function _endWith(string, end) {
return string.lastIndexOf(end) === (string.length - end.length);
}
// ---------------------------------------------------------------------
function loadFile(url) {
if(_endWith(url, ".js")) {
loadJavaScript(url);
} else if(_endWith(url, ".css")) {
loadCss(url);
} else if(_endWith(url, ".tpl")) {
loadTemplate(url);
}
}
// ---------------------------------------------------------------------
// Extract modules to load
// ---------------------------------------------------------------------
try {
modules = script.getAttribute("load").split(",");
for(var j in modules) {
modules[j] = modules[j].replace(/^\s+|\s+$/g, ''); // Trim
}
} catch(e) {
// We don't care we will use the default setup
}
// ---------------------------------------------------------------------
// Extract extra script to load
// ---------------------------------------------------------------------
try {
extraScripts = script.getAttribute("extra").split(",");
for(var j in extraScripts) {
extraScripts[j] = extraScripts[j].replace(/^\s+|\s+$/g, ''); // Trim
}
} catch(e) {
// We don't care we will use the default setup
}
// ---------------------------------------------------------------------
// If no modules have been defined, just pick the default
// ---------------------------------------------------------------------
if(modules.length == 0) {
modules = [ "core-min" ];
}
// ---------------------------------------------------------------------
// Extract basePath
// ---------------------------------------------------------------------
var lastSlashIndex = script.getAttribute("src").lastIndexOf('lib/core/vtkweb-loader');
if(lastSlashIndex != -1) {
basePath = script.getAttribute("src").substr(0, lastSlashIndex);
}
// ---------------------------------------------------------------------
// See if we have a main application template to load
// ---------------------------------------------------------------------
try {
var templateKey = script.getAttribute("app-template");
if (templateKey !== null && templateKey !== '') {
loadGlobalTemplate(basePath + vtkWebLibs[templateKey]);
}
} catch (e) {
// This is fine, you may have defined your application inline
}
// ---------------------------------------------------------------------
// Add missing libs
// ---------------------------------------------------------------------
for(var i in modules) {
for(var j in vtkWebLibs[modules[i]]) {
var path = basePath + vtkWebLibs[modules[i]][j];
loadFile(path);
}
}
// ---------------------------------------------------------------------
// Add extra libs
// ---------------------------------------------------------------------
for(var i in extraScripts) {
loadFile(extraScripts[i]);
}
// ---------------------------------------------------------------------
// Remove loader
// ---------------------------------------------------------------------
script.parentNode.removeChild(script);
}(window));

View File

@ -0,0 +1,289 @@
/**
* vtkWeb JavaScript Library.
*
* This module allow the Web client to connect to a remote vtkWeb session.
* The session must already exist and waiting for connections.
*
* This module registers itself as: 'vtkweb-connect'
*
* @class vtkWeb.connect
*
* {@img paraview/ParaViewWeb-simple.png
* alt Focus on the communication between the client and the vtkWeb process}
*/
(function (GLOBAL, $) {
// Connections field used to store a map of the active sessions
var connections = {}, module = {};
/*
* Create a transport object appropriate to the protocol specified
* in the given url.
*/
function getTransportObject(url) {
var idx = url.indexOf(':'),
protocol = url.substring(0, idx);
if (protocol === 'ws' || protocol === 'wss') {
return {
'type': 'websocket',
'url': url,
};
} else if (protocol === 'http' || protocol === 'https') {
return {
'type': 'longpoll',
'url': url,
request_timeout: 300000
};
} else {
throw "Unknown protocol (" + protocol + ") for url (" + url + "). Unable to create transport object.";
}
}
/**
* @class vtkWeb.Session
* vtkWeb Session object on which RPC method calls can be made.
*
* session.call("viewport.image.render", request).then( function (reply) {
* // Do something with the reply
* });
*/
/**
* @member vtkWeb.Session
* @method call
* Returns a future of the RPC call.
* @param {String} method
* Full path method name.
* @param {Object|String|Number} args
* Arguments of the RPC call.
*
* @return {vtkWeb.Future} of the RPC call
*/
/**
* @class vtkWeb.Future
* Object on which can be attached a callback.
*/
/**
* @member vtkWeb.Future
* @method then
* @param {Function} callback
* Function to be called once the RPC called is done. The argument of the
* function is the response of the RPC method.
*/
/**
* Connect to a running vtkWeb session
*
* @member vtkWeb.connect
*
* @param {vtkWeb.Connection} connection
* A connection object that should have been generated by the Launcher
* part if any.
*
* connection = {
* sessionURL: "http://localhost:8080/ws"
* }
*
* get extended to once the readyCallback get called:
*
* connection = {
* sessionURL: "http://localhost:8080/ws",
* session: {vtkWeb.Session}
* }
*
*
* @param {Function} readyCallback
* Callback function called when a connection that has been extended with
* a valid {@link vtkWeb.Session}.
*
* @param {Function} closeCallback
* Callback function called when the session end.
*
* vtkWeb.connect(
* connection,
* function(connection) {
* // Now that we have a valid session let's add a viewport to
* // see the 3D view of our vtkWeb pipeline.
* var viewport = vtkWeb.createViewport(connection.session);
* viewport.bind(".viewport-3d");
* },
* function(code,reason) {
* if (code == ab.CONNECTION_UNSUPPORTED) {
* alert("Connection not supported");
* } else {
* console.log(reason);
* }
* }
* );
*/
function connect(connectionInfo, readyCallback, closeCallback) {
var uri = connectionInfo.sessionURL,
onReady = readyCallback,
onClose = closeCallback,
uriList = [].concat(uri),
transports = [];
if(!connectionInfo.hasOwnProperty("secret")) {
connectionInfo.secret = "vtkweb-secret"; // Default value
}
for (var i = 0; i < uriList.length; i+=1) {
var url = uriList[i],
transport = null;
try {
transport = getTransportObject(url);
transports.push(transport);
} catch (transportCreateError) {
console.error(transportCreateError);
}
}
connectionInfo.connection = new autobahn.Connection({
transports: transports,
realm: "vtkweb",
authmethods: ["wampcra"],
authid: "vtkweb",
onchallenge: function(session, method, extra) {
if (method === "wampcra") {
var secretKey = autobahn.auth_cra.derive_key(connectionInfo.secret, "salt123");
return autobahn.auth_cra.sign(secretKey, extra.challenge);
} else {
throw "don't know how to authenticate using '" + method + "'";
}
}
});
connectionInfo.connection.onopen = function(session, details) {
try {
connectionInfo.session = session;
connections[connectionInfo.sessionURL] = connectionInfo;
if (onReady) {
onReady(connectionInfo);
}
} catch(e) {
console.log(e);
}
}
connectionInfo.connection.onclose = function() {
delete connections[connectionInfo.sessionURL];
if (onClose) {
onClose(arguments[0], arguments[1].reason);
}
return false;
}
connectionInfo.connection.open();
}
/**
* Create a session that uses only http to make calls to the
* server-side protocols.
*
* @member {object} vtkWeb.connect
* A json object that only needs a 'sessionURL' string in to know where
* to send method requests.
*
* @param connetionInfo
*
* @param {Function} readyCallback
* Callback function called when a connection that has been extended with
* a valid session that can be used to make server-side method calls.
*
*/
function httpConnect(connectionInfo, readyCallback) {
connectionInfo.session = {
'call': function(methodName, args) {
var dfd = $.Deferred();
$.ajax({
type: 'POST',
url: connectionInfo.sessionURL + methodName,
dataType: 'json',
data: JSON.stringify({ 'args': args }),
success: function(result) {
dfd.resolve(result);
},
error: function(error) {
dfd.reject(error);
}
});
return dfd.promise();
}
};
readyCallback(connectionInfo);
}
/**
* Return any existing session for a given connection or Wamp URL
*
* @member vtkWeb.connect
*
* @param {String} sessionURL
* The sessionURL String.
*
* @return {vtkWeb.Connection} that contains a {@link vtkWeb.Session}
*/
function getConnection(sessionURL) {
return connections[sessionURL];
}
/**
* Return all the available connections stored in an Object like follow:
*
* {
* "ws://localhost:8080/proxy?sessionId=2345": connection
* }
*
* {@link vtkWeb.Connection}
*
* @member vtkWeb.connect
*/
function getConnections() {
return connections;
}
// ----------------------------------------------------------------------
// Init vtkWeb module if needed
// ----------------------------------------------------------------------
if (GLOBAL.hasOwnProperty("vtkWeb")) {
module = GLOBAL.vtkWeb || {};
} else {
GLOBAL.vtkWeb = module;
}
// ----------------------------------------------------------------------
// Export methods to the vtkWeb module
// ----------------------------------------------------------------------
module.connect = function (connection, ready, close) {
connect(connection, ready, close);
};
module.getConnection = function (connection) {
return getConnection(connection);
};
module.getConnections = function () {
return getConnections();
};
module.httpConnect = function(connection, readyCallback) {
return httpConnect(connection, readyCallback);
};
// ----------------------------------------------------------------------
// Local module registration
// ----------------------------------------------------------------------
try {
// Tests for presence of autobahn, then registers this module
if (GLOBAL.autobahn !== undefined) {
module.registerModule('vtkweb-connect');
} else {
console.error('Module failed to register, autobahn is missing');
}
} catch(err) {
console.error('Caught exception while registering module: ' + err.message);
}
}(window, jQuery));

View File

@ -0,0 +1,210 @@
/**
* vtkWeb JavaScript Library.
*
* This main module just gathers all the modules into a single namespace.
*
* This module registers itself as: 'vtkweb-base'
*
* @class vtkWeb
*
* @mixins vtkWeb.launcher
* @mixins vtkWeb.connect
* @mixins vtkWeb.viewport
* @mixins vtkWeb.viewport.image
* @mixins vtkWeb.viewport.webgl
*
* @singleton
*/
(function (GLOBAL, $) {
// VERSION field that store the current version of the library.
// WampSessions field used to store a map of the active sessions
// Default Viewport options values
var VERSION = "2.0.0",
fallBackStorage = {},
isMobile = (function(a){
return (/android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i).test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i.test(a.substr(0,4));
})(navigator.userAgent||navigator.vendor||window.opera), module = {}, registeredModules = [];
// ----------------------------------------------------------------------
extractURLParameters = function() {
var data = location.search.substr(1).split("&"), parameters = {};
for(var i=0; i<data.length; i++) {
var item = data[i].split("=");
parameters[item[0]] = item[1];
}
return parameters;
}
// ----------------------------------------------------------------------
isSecured = function() {
return location.protocol === 'https';
}
// ----------------------------------------------------------------------
udpateConnectionFromURL = function(connection) {
var params = extractURLParameters();
for(var key in params) {
connection[key] = decodeURIComponent(params[key]);
}
}
supportsLocalStorage = function() {
try {
return 'localStorage' in window && window['localStorage'] !== null;
} catch(e) {
return false;
}
}
storeApplicationDataObject = function(key, jsonObj) {
var storage = fallBackStorage;
if (supportsLocalStorage()) {
storage = localStorage;
}
storage[key] = JSON.stringify(jsonObj);
}
retrieveApplicationDataObject = function(key) {
var storage = fallBackStorage;
if (supportsLocalStorage()) {
storage = localStorage;
}
var storedData = storage[key];
if (storedData) {
try {
return JSON.parse(storedData);
} catch(e) {
console.error('Failed to parse stored data object as JSON: '+ storedData);
console.error(e);
}
}
return {}; // if not supported, we could store in a map in vtkweb
}
// ----------------------------------------------------------------------
// Init vtkWeb module if needed
// ----------------------------------------------------------------------
if (GLOBAL.hasOwnProperty("vtkWeb")) {
module = GLOBAL.vtkWeb || {};
} else {
GLOBAL.vtkWeb = module;
}
// ----------------------------------------------------------------------
// Export internal methods to the vtkWeb module
// ----------------------------------------------------------------------
module.version = VERSION;
module.isMobile = isMobile;
module.extractURLParameters = extractURLParameters;
module.udpateConnectionFromURL = udpateConnectionFromURL;
module.supportsLocalStorage = supportsLocalStorage;
module.storeApplicationDataObject = storeApplicationDataObject;
module.retrieveApplicationDataObject = retrieveApplicationDataObject;
module.properties = {
'sessionManagerURL': location.protocol + "//" + location.hostname + ":" + location.port + "/paraview/",
'sessionURL': (isSecured() ? "wss" : "ws") + "://" + location.hostname + ":" + location.port + "/ws"
};
module.NoOp = function() {};
module.errorCallback = function(code, reason) {
alert(reason);
GLOBAL.close();
}
// ----------------------------------------------------------------------
// Module registration hooks.
// ----------------------------------------------------------------------
/**
* Javascript libraries can call this function to register themselves.
*
* @member vtkWeb
* @method registerModule
*
* @param {String} The module name to use when registering a module.
*
*/
module.registerModule = function(moduleName) {
if (module.modulePresent(moduleName) === false) {
registeredModules.push(moduleName);
}
};
/**
* Javascript libraries call this function to determine whether a
* particular module is loaded.
*
* @member vtkWeb
* @method modulePresent
*
* @param {String} The name of the module name to check.
*
* @return {Boolean} True if the module specified by the given name
* is registered, false otherwise.
*/
module.modulePresent = function(moduleName) {
for (var i = 0; i < registeredModules.length; ++i) {
if (moduleName === registeredModules[i]) {
return true;
}
}
return false;
};
/**
* Javascript libraries call this function to determine whether an
* entire list of modules is loaded.
*
* @member vtkWeb
* @method allModulesPresent
*
* @param {Array} An array of module names to check.
*
* @return {Boolean} True if all modules names supplied are registered,
* false otherwise.
*/
module.allModulesPresent = function(moduleNameList) {
if (! moduleNameList instanceof Array) {
throw "allModulesPresent() takes an array, passed " + typeof(moduleNameList);
}
for (var i = 0; i < moduleNameList.length; ++i) {
if (module.modulePresent(moduleNameList[i]) === false) {
return false;
}
}
return true;
}
/**
* Javascript libraries call this function to get a list of the
* currently registered modules.
*
* @member vtkWeb
* @method getRegisteredModules
*
* @return {Array} An array of the registered module names.
*/
module.getRegisteredModules = function() {
return registeredModules;
};
// ----------------------------------------------------------------------
// Local module registration
// ----------------------------------------------------------------------
try {
// Tests for presence of jQuery, then registers this module
if ($ !== undefined) {
module.registerModule('vtkweb-base');
} else {
console.error('Module failed to register, jQuery is missing: ' + err.message);
}
} catch(err) {
console.error('Caught exception while registering module: ' + err.message);
}
}(window, jQuery));

View File

@ -0,0 +1,250 @@
/**
* vtkWeb JavaScript Library.
*
* This module allow the Web client to start a remote vtkWeb session and
* retreive all the connection information needed to properly connect to that
* newly created session.
*
* @class vtkWeb.launcher
*
* {@img paraview/ParaViewWeb-multiuser.png alt Focus on the communication between the client and the front-end that manage the vtkWeb processes}
*/
(function (GLOBAL, $) {
// Internal field used to store all connection objects
var Connections = [], module = {}, console = GLOBAL.console;
function generateSecretKey() {
var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for( var i=0; i < 10; i++ )
text += possible.charAt(Math.floor(Math.random() * possible.length));
return text;
}
/**
* @class vtkWeb.Connection
* This class provides all the informations needed to connect to the session
* manager web service.
*/
/**
* @member vtkWeb.Connection
* @property {String} sessionManagerURL
* The service URL that will respond to the REST request to start or stop
* a visualization session.
*
* MANDATORY
*/
/**
* @member vtkWeb.Connection
* @property {String} name
* The name given for the visualization.
*
* RECOMMENDED/OPTIONAL
*/
/**
* @member vtkWeb.Connection
* @property {String} application
* The name of the application that should be started on the server side.
*
* MANDATORY
*/
/**
* @member vtkWeb.Connection
* @property {String|Number} __Any_Name__
* Any property that we want to provide to the session that will be created.
* Such property is not necessary used by the session manager but will be
* returned if a connection information is requested from a session.
*
* OPTIONAL
*/
/**
* @member vtkWeb.Connection
* @property {String} secret
* Password that should be used to protect remote session access.
*
* This property is used by the launcher to secure the process that it start
* but it is also used by the client to authenticate itself against
* the remote process.
*
* This can be provided by the client or by the server depending who
* generate it. In both case, the client will use it for its authentication.
* If missing, then the client will use the default secret key.
*
* OPTIONAL
*/
/**
* @member vtkWeb.Connection
* @property {Number} generate-secret
* Property used to specify where the generation of the secret key should be
* made.
* 0: We use the default secret key. (No dynamic one)
* 1: The JavaScript client generate the key and its the responsability of
* the server to provide the generated key to the vtkWeb process.
* 2: The launcher process generate that key when it start the vtkWeb
* process. That given secret key must be returned to the client within
* the connection object.
*
* OPTIONAL
*/
//=========================================================================
/**
* @member vtkWeb.Connection
* @property {String} sessionURL
* The websocket URL that should be used to connect to the running
* visualization session.
* This field is provided within the response.
*/
/**
* @member vtkWeb.Connection
* @property {String} id
* The session identifier.
* This field is provided within the response.
*/
/**
* @member vtkWeb.Connection
* @property {vtkWeb.Session} session
* The session object will be automatically added to the connection once the
* connection is properly established by calling:
*
* vtkWeb.connect(connection, success, error);
*
* This field is provided within the response.
*/
//=========================================================================
/**
* Start a new vtkWeb process on the server side.
* This method will make a JSON POST request to config.sessionManagerURL URL.
*
* @member vtkWeb.launcher
*
* @param {vtkWeb.ConnectionConfig} config
* Session creation parameters. (sessionManagerURL, name, application).
*
* @param {Function} successCallback
* The function will be called once the connection is successfully performed.
* The argument of the callback will be a {@link vtkWeb.Connection}.
*
* @param {Function} errorCallback
* The function will be called if anything bad happened and an explanation
* message will be provided as argument.
*/
function start(config, successFunction, errorFunction) {
if(!config.hasOwnProperty("secret") && config.hasOwnProperty("generate-secret") && config["generate-secret"] === 1) {
config.secret = generateSecretKey();
}
var okCallback = successFunction,
koCallback = errorFunction,
arg = {
url: config.sessionManagerURL,
type: "POST",
dataType: "json",
data: (JSON.stringify(config)),
success: function (reply) {
Connections.push(reply);
if (okCallback) {
okCallback(reply);
}
},
error: function (errMsg) {
if (koCallback) {
koCallback(errMsg);
}
}
};
return $.ajax(arg);
}
/**
* Query the Session Manager in order to retreive connection informations
* based on a session id.
*
* @member vtkWeb.launcher
*
* @param {String} sessionManagerURL
* Same as ConnectionConfig.sessionManagerURL value.
*
* @param {String} sessionId
* The unique identifier of a session.
*
* @return {vtkWeb.Connection} if the session is found.
*/
function fetchConnection(sessionManagerURL, sessionId) {
var config = {
url: sessionManagerURL + '/' + sessionId,
dataType: "json"
};
return $.ajax(config);
}
/**
* Stop a remote running visualization session.
*
* @member vtkWeb.launcher
*
* @param {vtkWeb.ConnectionConfig} connection
*/
function stop(connection) {
var config = {
url: connection.sessionManagerURL + "/" + connection.id,
type: "DELETE",
dataType: "json",
success: function (reply) {
console.log(reply);
},
error: function (errMsg) {
console.log("Error while trying to close service");
}
};
return $.ajax(config);
}
// ----------------------------------------------------------------------
// Init vtkWeb module if needed
// ----------------------------------------------------------------------
if (GLOBAL.hasOwnProperty("vtkWeb")) {
module = GLOBAL.vtkWeb || {};
} else {
GLOBAL.vtkWeb = module;
}
// ----------------------------------------------------------------------
// Export internal methods to the vtkWeb module
// ----------------------------------------------------------------------
module.start = function (config, successFunction, errorFunction) {
return start(config, successFunction, errorFunction);
};
module.stop = function (connection) {
return stop(connection);
};
module.fetchConnection = function (serviceUrl, sessionId) {
return fetchConnection(serviceUrl, sessionId);
};
/**
* Return all the session connections created in that JavaScript context.
* @member vtkWeb.launcher
* @return {vtkWeb.Connection[]}
*/
module.getConnections = function () {
return Connections;
};
// ----------------------------------------------------------------------
// Local module registration
// ----------------------------------------------------------------------
try {
// Tests for presence of jQuery, then registers this module
if ($ !== undefined) {
module.registerModule('vtkweb-launcher');
}
} catch(err) {
console.error('jQuery is missing: ' + err.message);
}
}(window, jQuery));

View File

@ -0,0 +1,109 @@
/**
* vtkWeb JavaScript Library.
*
* This module provide simpler connection paradigm for the Web client
* to connect to a remote vtkWeb session.
*
* This module registers itself as: 'vtkweb-simple'
*
* @class vtkWeb.simple
*/
(function (GLOBAL, $) {
// Connections field used to store a map of the active sessions
var module = {};
function autoConnect(connection, ready, close) {
if(connection.hasOwnProperty('sessionURL')) {
// Direct connect
vtkWeb.connect(connection, ready, close);
} else {
// Launch process
vtkWeb.start( connection, function(connection) {
if(connection.error) {
alert(connection.error);
close("error", connection.error);
} else {
// The process successfuly started
// => Just connect to the WebSocket
vtkWeb.connect(connection, ready, close);
}
}, function(msg) {
// No launcher found or error
try {
var launcherResponse = JSON.parse(msg.responseText);
close("launcher error", launcherResponse);
} catch (err) {
console.log("No launcher found. Attempting to connect using the direct WS url.");
connection.sessionURL = vtkWeb.properties.sessionURL;
vtkWeb.connect(connection, ready, close);
}
});
}
}
// ----------------------------------------------------------------------
// Init vtkWeb module if needed
// ----------------------------------------------------------------------
if (GLOBAL.hasOwnProperty("vtkWeb")) {
module = GLOBAL.vtkWeb || {};
} else {
GLOBAL.vtkWeb = module;
}
// ----------------------------------------------------------------------
// Export methods to the vtkWeb module
// ----------------------------------------------------------------------
/**
* Simple method that will automatically try to launch or connect
* to an existing session based on URL parameters and failures.
*
* @member vtkWeb.simple
* @method smartConnect
*
* @param {Object} base connection information
* @param {Function} callback when success which expect
* a full connection object as argument.
* @param {Function} callback when failure occurs with "code" and "reason"
* why the failure occured.
*/
module.smartConnect = function (connection, ready, close) {
if(close === undefined) {
close = module.errorCallback;
}
// Extend connection with URL parameters
module.udpateConnectionFromURL(connection);
// Check if we should connect to an existing session
if(connection.hasOwnProperty('session')) {
var url = connection['sessionManagerURL'] + connection['session'];
$.ajax({
url: url,
dataType: 'json'
}).done(function(realConnection){
autoConnect(realConnection, ready, close);
}).fail(function(arg){
alert("Unable to connect to the given session: " + connection['session']);
close("error", "Unable to connect to the given session: " + connection['session']);
});
} else {
autoConnect(connection, ready, close);
}
};
// ----------------------------------------------------------------------
// Local module registration
// ----------------------------------------------------------------------
try {
// Tests for presence of autobahn, then registers this module
if (module.allModulesPresent(['vtkweb-connect', 'vtkweb-launcher'])) {
module.registerModule('vtkweb-simple');
} else {
console.error('Module failed to register, vtkweb-connect and vtkweb-launcher are missing');
}
} catch(err) {
console.error('Caught exception while registering module: ' + err.message);
}
}(window, jQuery));

View File

@ -0,0 +1,347 @@
/**
* vtkWeb JavaScript Library.
*
* This testing module is made to test vtkWeb components
*
* This module registers itself as: 'vtkweb-testing'
*
* @class vtkWeb.testing
*
* @singleton
*/
(function (GLOBAL, $) {
var parentModule = {}, module = {}, testToRun = 0;
testSuite = {}, testOrder = [], outputLog = [], w = $(window),
testTotal = 0, testRunned = 0, success = 0, failure = 0,
testNameToRun = [],
testLineTemplate = '<tr id="NAME"><td><input type="checkbox" value="NAME" checked/></td><td width="100%">NAME</td><td align="center" class="status">STATUS</td></tr>',
tableHeader = '<thead><tr><th><input type="checkbox" value="select-all-test" title="Toggle all test selection" checked/></th><th width="100%">Test names</th><th>Status</th></tr>',
outputLogHTML = '<div class="row-fluid log" style="display: none;"><div class="span12"><textarea style="width: 98%;height: 150px;"></textarea></div></div></thead>',
controlHTML = '<table class="table table-striped"><thead><tr><th width="100%"></th><th><div class="run-tests vtk-icon-play"></div></th><th><div class="toggle-log vtk-icon-tools"></div></th><th class="summary" style="border-radius: 5px;">Results</th><th><span id="passedTestsSpan" class="badge badge-success">0</span></th><th><span id="failedTestsSpan" class="badge" style="background-color: red">0</span></th></tr></thead></table>',
statusSuccess = '<div class="vtk-icon-ok-circled" style="color: green;"></div>',
statusFailure = '<div class="vtk-icon-cancel-circled" style="color: red;"></div>',
statusNotRunned = '<div class="vtk-icon-help-circled"></div>';
// ----------------------------------------------------------------------
// Init vtkWeb.testing module if needed
// ----------------------------------------------------------------------
if (GLOBAL.hasOwnProperty("vtkWeb")) {
parentModule = GLOBAL.vtkWeb || {};
} else {
GLOBAL.vtkWeb = parentModule;
}
if (parentModule.hasOwnProperty("testing")) {
module = GLOBAL.vtkWeb.testing || {};
} else {
GLOBAL.vtkWeb.testing = module;
}
// ----------------------------------------------------------------------
// Internal methods
// ----------------------------------------------------------------------
function registerTest(name, func) {
testOrder.push(name);
testSuite[name] = {
'name': name,
'func': func,
'active': true,
'message': null,
'success': false,
'done': false
};
}
// ----------------------------------------------------------------------
function clearLog() {
outputLog = [];
}
// ----------------------------------------------------------------------
function logToString() {
return outputLog.join('\n');
}
// ----------------------------------------------------------------------
function clearResults() {
outputLog = [];
testTotal = 0;
testRunned = 0;
success = 0;
failure = 0;
for(var test in testSuite) {
test.success = false;
test.message = null;
test.done = false;
}
w.trigger('vtk-test-clear');
}
// ----------------------------------------------------------------------
function log(msg) {
outputLog.push(msg);
w.trigger('vtk-test-log-update');
}
// ----------------------------------------------------------------------
function resultCallback(result) {
var test = testSuite[result.name];
// Update test info
test.done = true;
test.message = result.message;
test.success = result.success;
// Less test remaining
++testRunned;
if(result.success) {
++success;
} else {
++failure;
}
// Update log
log((test.success?"+":"-") + result.name + ": " + test.message);
// Trigger event
result.count = testRunned;
result.total = testTotal;
result.coutSuccess = success;
result.countFailure = failure;
result.type = 'vtk-test-complete';
w.trigger(result);
if(testTotal === testRunned) {
w.trigger('vtk-test-done');
} else {
runAnotherTest();
}
}
// ----------------------------------------------------------------------
function testToString(testName) {
return testLineTemplate.replace(/ID/g, testName).replace(/NAME/g, testName).replace('STATUS', statusNotRunned);
}
// ----------------------------------------------------------------------
function runAnotherTest() {
var testName = testNameToRun.shift();
var testFunction = testSuite[testName].func;
testFunction(testName, resultCallback);
}
// ----------------------------------------------------------------------
// Export methods to the vtkWeb.testing module
// ----------------------------------------------------------------------
/**
* Register a set of methods as tests.
*
* @class vtkWeb.testing
* @method registerTests
* @param {Object} testSuiteToRegister
* Should contains a set of methods that will be
* executed.
*/
module.registerTests = function(testSuiteToRegister) {
for (var testName in testSuiteToRegister) {
registerTest(testName, testSuiteToRegister[testName]);
}
}
// ----------------------------------------------------------------------
/**
* Trigger the run of all the active test that have been
* previously registered.
*
* @class vtkWeb.testing
* @method runTests
*/
module.runTests = function() {
clearResults();
log("Start testings...");
// Extract active tests list
testNameToRun = [];
for(var idx in testOrder) {
if(testSuite[testOrder[idx]].active) {
testNameToRun.push(testOrder[idx]);
}
}
testTotal = testNameToRun.length;
// Start the tests running
runAnotherTest();
}
// ----------------------------------------------------------------------
/**
* Toggle test to be run.
*
* @class vtkWeb.testing
* @method enableTest
*/
module.enableTest = function(name, status) {
testSuite[name].active = status;
}
// ----------------------------------------------------------------------
/**
* Return test results summary.
*
* @class vtkWeb.testing
* @method getCurrentTestResults
*/
module.getCurrentTestResults = function() {
return {
'finished': (testTotal === testRunned),
'testCount': testTotal,
'successes': success,
'failures': failure
};
}
// ----------------------------------------------------------------------
/**
* Retrieve the test log, which contains all detailed error outputs from
* the tests.
*
* @class vtkWeb.testing
* @method getTestLog
*/
module.getTestLog = logToString;
// ----------------------------------------------------------------------
// Provide JQuery widgets
// ----------------------------------------------------------------------
/**
* Fill the selected container with test list and
* action buttons to toggle and run them.
*
* @class jquery
* @method vtkWebTestList
*/
$.fn.vtkWebTestList = function(options) {
return this.each(function() {
var me = $(this).empty(), buffer = [];
// Generate HTML
buffer.push(controlHTML);
buffer.push('<table class="table table-striped test-panel">');
buffer.push(tableHeader);
buffer.push('<tbody>');
for(var idx in testOrder) {
buffer.push(testToString(testOrder[idx]));
}
buffer.push('</tbody></table>');
buffer.push(outputLogHTML);
me[0].innerHTML = buffer.join('');
// Initialize listeners
$('input', me).change(function(){
var checkbox = $(this),
checked = checkbox.is(":checked"),
testName = checkbox.val();
if(testSuite.hasOwnProperty(testName)) {
testSuite[testName].active = checked;
} else {
$('input', me).prop('checked', checked);
for(var test in testSuite) {
testSuite[test].active = checked;
}
}
clearResults();
});
$('.toggle-log', me).click(function(){
var log = $('.log');
var results = $('.test-panel');
if(log.is(":visible")) {
log.hide();
results.show();
} else {
log.show();
results.hide();
}
});
$('.run-tests', me).click(function(){
module.runTests();
});
// Bind events to UI updates
w.bind('vtk-test-clear', function(){
updateTextArea();
updateResultSummary();
$(".status").html(statusNotRunned);
}).bind('vtk-test-complete', function(event){
updateTextArea();
updateResultSummary();
updateStatus(event.name);
});
});
};
// ----------------------------------------------------------------------
function updateTextArea() {
$('textarea')[0].innerHTML = logToString();
}
// ----------------------------------------------------------------------
function updateResultSummary() {
$('#passedTestsSpan').html(success);
$('#failedTestsSpan').html(failure);
if(testTotal !== 0 && testTotal === testRunned) {
if(success === testTotal) {
$('.summary').css('background', 'green');
} else {
$('.summary').css('background', 'red');
}
} else {
$('.summary').css('background', 'none');
}
}
// ----------------------------------------------------------------------
function updateStatus(testName) {
var test = testSuite[testName]
$("#" + testName + " .status").html(test.success ? statusSuccess : statusFailure).attr('title', test.message);
}
// ----------------------------------------------------------------------
// Local module registration
// ----------------------------------------------------------------------
try {
// Tests for presence of jQuery, then registers this module
if ($ !== undefined) {
parentModule.registerModule('vtkweb-testing');
} else {
console.error('Module failed to register, jQuery is missing.');
}
} catch(err) {
console.error('Caught exception while registering module: ' + err.message);
}
}(window, jQuery));

View File

@ -0,0 +1,346 @@
/**
* vtkWeb JavaScript Library.
*
* This module extend the vtkWeb viewport to add support for Image delivery
* mechanism for rendering.
*
* @class vtkWeb.viewports.image
*
* Viewport Factory description:
* - Key: image
* - Stats:
* - image-fps
* - image-round-trip
* - image-server-processing
*/
(function (GLOBAL, $) {
var module = {},
RENDERER_CSS = {
"position": "absolute",
"top": "0px",
"left": "0px",
"right": "0px",
"bottom": "0px",
"z-index" : "0"
},
DEFAULT_OPTIONS = {
interactiveQuality: 30,
stillQuality: 100
},
FACTORY_KEY = 'image',
FACTORY = {
'builder': createImageDeliveryRenderer,
'options': DEFAULT_OPTIONS,
'stats': {
'image-fps': {
label: 'Framerate',
type: 'time',
convert: function(value) {
if(value === 0) {
return 0;
}
return (1000 / value).toFixed(2);
}
},
'image-round-trip': {
label: 'Round&nbsp;trip&nbsp;(ms)',
type: 'value',
convert: NoOp
},
'image-server-processing': {
label: 'Processing&nbsp;Time&nbsp;(ms)',
type: 'value',
convert: NoOp
}
}
};
// ----------------------------------------------------------------------
function NoOp(a) {
return a;
}
// ----------------------------------------------------------------------
// Image Delivery renderer - factory method
// ----------------------------------------------------------------------
function createImageDeliveryRenderer(domElement) {
var container = $(domElement),
options = $.extend({}, DEFAULT_OPTIONS, container.data('config')),
bgImage = new Image(),
session = options.session,
canvas = GLOBAL.document.createElement('canvas'),
ctx2d = canvas.getContext('2d'),
renderer = $(canvas).addClass(FACTORY_KEY).css(RENDERER_CSS).append(bgImage),
force_render = false,
statistics = null,
lastMTime = 0,
render_onidle_timeout = null,
action_pending = false,
button_state = {
left : false,
right: false,
middle : false
},
quality = 100;
// ----
/// Internal method that returns true if the mouse interaction event should be
/// throttled.
function eatMouseEvent(event) {
var force_event = (button_state.left !== event.buttonLeft || button_state.right !== event.buttonRight || button_state.middle !== event.buttonMiddle);
if (!force_event && !event.buttonLeft && !event.buttonRight && !event.buttonMiddle && !event.scroll) {
return true;
}
if (!force_event && action_pending) {
return true;
}
button_state.left = event.buttonLeft;
button_state.right = event.buttonRight;
button_state.middle = event.buttonMiddle;
return false;
}
//-----
// Internal function that requests a render on idle. Calling this
// mutliple times will only result in the request being set once.
function renderOnIdle() {
if (render_onidle_timeout === null) {
render_onidle_timeout = GLOBAL.setTimeout(render, 250);
}
}
// Setup internal API
function render(fetch) {
if (force_render === false) {
if (render_onidle_timeout !== null) {
// clear any renderOnIdle requests that are pending since we
// are sending a render request.
GLOBAL.clearTimeout(render_onidle_timeout);
render_onidle_timeout = null;
}
force_render = true;
var renderCfg = {
size: [ container.innerWidth(), container.innerHeight() ],
view: Number(options.view),
mtime: fetch ? 0 : lastMTime,
quality: quality,
localTime : new Date().getTime()
};
container.trigger({
type: 'stats',
stat_id: 'image-fps',
stat_value: 0 // start
});
session.call("viewport.image.render", [renderCfg]).then(function (res) {
options.view = Number(res.global_id);
lastMTime = res.mtime;
if(res.hasOwnProperty("image") && res.image !== null) {
/**
* @member vtkWeb.Viewport
* @event start-loading
*/
$(container).parent().trigger("start-loading");
bgImage.width = res.size[0];
bgImage.height = res.size[1];
var previousSrc = bgImage.src;
bgImage.src = "data:image/" + res.format + "," + res.image;
container.trigger({
type: 'stats',
stat_id: 'image-fps',
stat_value: 1 // stop
});
container.trigger({
type: 'stats',
stat_id: 'image-round-trip',
stat_value: Number(new Date().getTime() - res.localTime) - res.workTime
});
container.trigger({
type: 'stats',
stat_id: 'image-server-processing',
stat_value: Number(res.workTime)
});
}
renderStatistics();
force_render = false;
container.trigger('done');
// the image we received is not the latest, we should
// request another render to try to get the latest image.
if (res.stale === true) {
renderOnIdle();
} else {
container.trigger({
type: 'renderer-ready'
});
}
});
}
}
// internal function to render stats.
function renderStatistics() {
if (statistics) {
ctx2d.font = "bold 12px sans-serif";
//ctx2d.fillStyle = "white";
ctx2d.fillStyle = "black";
ctx2d.fillRect(10, 10, 240, 100);
//ctx2d.fillStyle = "black";
ctx2d.fillStyle = "white";
ctx2d.fillText("Frame Rate: " + statistics.frameRate().toFixed(2), 15, 25);
ctx2d.fillText("Average Frame Rate: " + statistics.averageFrameRate().toFixed(2),
15, 40);
ctx2d.fillText("Round trip: " + statistics.roundTrip() + " ms - Max: " + statistics.maxRoundTrip() + " ms",
15, 55);
ctx2d.fillText("Server work time: " + statistics.serverWorkTime() + " ms - Max: " + statistics.maxServerWorkTime() + " ms",
15, 70);
ctx2d.fillText("Minimum Frame Rate: " + statistics.minFrameRate().toFixed(2),
15, 85);
ctx2d.fillText("Loading time: " + statistics.trueLoadTime(),
15, 100);
}
}
// Choose if rendering is happening in Canvas or image
bgImage.onload = function(){
paint();
};
// internal function used to draw update data on the canvas. When not
// using canvas, this has no effect.
function paint() {
/**
* @member vtkWeb.Viewport
* @event stop-loading
*/
$(container).parent().trigger("stop-loading");
ctx2d.canvas.width = $(container).width();
ctx2d.canvas.height = $(container).height();
ctx2d.drawImage(bgImage, 0, 0, bgImage.width, bgImage.height);
renderStatistics();
}
// Attach listener to container for mouse interaction and invalidateScene
container.bind('invalidateScene', function() {
if(renderer.hasClass('active')){
render(true);
}
}).bind('resetViewId', function(e){
options.view = -1;
}).bind('captureRenderedImage', function(e){
if(renderer.hasClass('active')){
$(container).parent().trigger({
type: 'captured-screenshot-ready',
imageData: bgImage.src
});
}
}).bind('render', function(e){
if(renderer.hasClass('active')){
var opts = e.options,
previousQuality = quality,
forceRender = false;
if(opts) {
quality = opts.hasOwnProperty('quality') ? opts.quality : quality;
options.view = opts.hasOwnProperty('view') ? opts.view : options.view;
forceRender = opts.hasOwnProperty('forceRender');
}
render(forceRender);
// Revert back to previous state
quality = previousQuality;
}
}).bind('mouse', function(evt){
if(renderer.hasClass('active')){
// stop default event handling by the browser.
evt.preventDefault();
// Update quality based on the type of the event
if(evt.action === 'up' || evt.action === 'dblclick' || evt.action === 'scroll') {
quality = options.stillQuality;
} else {
quality = options.interactiveQuality;
}
var vtkWeb_event = {
view: Number(options.view),
action: evt.action,
charCode: evt.charCode,
altKey: evt.altKey,
ctrlKey: evt.ctrlKey,
shiftKey: evt.shiftKey,
metaKey: evt.metaKey,
buttonLeft: (evt.current_button === 1 ? true : false),
buttonMiddle: (evt.current_button === 2 ? true : false),
buttonRight: (evt.current_button === 3 ? true : false)
},
elem_position = $(evt.delegateTarget).offset(),
pointer = {
x : (evt.pageX - elem_position.left),
y : (evt.pageY - elem_position.top)
};
if(evt.action === 'scroll') {
vtkWeb_event.scroll = evt.scroll;
} else {
vtkWeb_event.x = pointer.x / renderer.width();
vtkWeb_event.y = 1.0 - (pointer.y / renderer.height());
}
if (eatMouseEvent(vtkWeb_event)) {
return;
}
action_pending = true;
session.call("viewport.mouse.interaction", [vtkWeb_event]).then(function (res) {
if (res) {
action_pending = false;
render();
}
}, function(error) {
console.log("Call to viewport.mouse.interaction failed");
console.log(error);
});
}
}).append(renderer);
}
// ----------------------------------------------------------------------
// Init vtkWeb module if needed
// ----------------------------------------------------------------------
if (GLOBAL.hasOwnProperty("vtkWeb")) {
module = GLOBAL.vtkWeb || {};
} else {
GLOBAL.vtkWeb = module;
}
// ----------------------------------------------------------------------
// Extend the viewport factory
// ----------------------------------------------------------------------
if(!module.hasOwnProperty('ViewportFactory')) {
module['ViewportFactory'] = {};
}
module.ViewportFactory[FACTORY_KEY] = FACTORY;
// ----------------------------------------------------------------------
// Local module registration
// ----------------------------------------------------------------------
try {
// Tests for presence of jQuery, then registers this module
if ($ !== undefined) {
module.registerModule('vtkweb-viewport-image');
}
} catch(err) {
console.error('jQuery is missing: ' + err.message);
}
}(window, jQuery));

View File

@ -0,0 +1,892 @@
/**
* vtkWeb JavaScript Library.
*
* This module allow the Web client to create viewport to vtkWeb views.
* Those viewport are interactive windows that are used to render 2D/3D content
* and response to user mouse interactions.
*
* This module registers itself as: 'vtkweb-viewport'
*
* @class vtkWeb.Viewport
*/
(function (GLOBAL, $) {
// ----------------------------------------------------------------------
// Viewport constants
// ----------------------------------------------------------------------
var DEFAULT_RENDERERS_CONTAINER_HTML = "<div class='renderers'></div>",
DEFAULT_RENDERERS_CONTAINER_CSS = {
"position": "absolute",
"top": "0px",
"left": "0px",
"right": "0px",
"bottom": "0px",
"z-index" : "0",
"overflow": "hidden"
},
DEFAULT_MOUSE_LISTENER_HTML = "<div class='mouse-listener'></div>",
DEFAULT_MOUSE_LISTENER_CSS = {
"position": "absolute",
"top": "0px",
"left": "0px",
"right": "0px",
"bottom": "0px",
"z-index" : "3"
},
DEFAULT_STATISTIC_HTML = "<div class='statistics'></div>",
DEFAULT_STATISTIC_CSS = {
"position": "absolute",
"top": "0px",
"left": "0px",
"right": "0px",
"bottom": "0px",
"z-index" : "2",
"display" : "none"
},
DEFAULT_OVERLAY_HTML = "<canvas class='overlay'></canvas>",
DEFAULT_OVERLAY_CSS = {
"position": "absolute",
"top": "0px",
"left": "0px",
"right": "0px",
"bottom": "0px",
"z-index" : "1"
},
module = {},
DEFAULT_VIEWPORT_OPTIONS = {
session: null,
view: -1,
enableInteractions: true,
renderer: 'image'
};
// ----------------------------------------------------------------------
// Mouse interaction helper methods for viewport
// ----------------------------------------------------------------------
function preventDefault(event) {
event.preventDefault();
}
// ----------------------------------------------------------------------
function attachMouseListener(mouseListenerContainer, renderersContainer, overlayContainer, viewport) {
var current_button = null,
area = [0,0,0,0],
vp = viewport,
overlayCtx2D = overlayContainer[0].getContext('2d');
// Draw rectangle in overlay
function clearOverlay() {
if(overlayCtx2D !== null) {
overlayCtx2D.canvas.width = mouseListenerContainer.width();
overlayCtx2D.canvas.height = mouseListenerContainer.height();
overlayCtx2D.clearRect(0,0,overlayCtx2D.canvas.width,overlayCtx2D.canvas.height);
}
}
function redrawSelection() {
clearOverlay();
if(overlayCtx2D !== null) {
overlayCtx2D.strokeStyle="#FFFFFF";
var x1 = Math.min(area[0],area[2]);
var y1 = Math.min(area[1],area[3]);
var x2 = Math.max(area[0],area[2]);
var y2 = Math.max(area[1],area[3]);
var width = Math.abs(x2 - x1);
var height = Math.abs(y2 - y1);
overlayCtx2D.rect(x1, overlayContainer.height()-y2, width, height);
overlayCtx2D.stroke();
}
}
function extractCoordinates(event, start, reorder) {
var elem_position = $(event.delegateTarget).offset(),
height = $(event.delegateTarget).height(),
x = (event.pageX - elem_position.left),
y = (event.pageY - elem_position.top),
offset = start ? 0 : 2;
area[0 + offset] = x;
area[1 + offset] = height - y;
if(reorder) {
// Re-order area
var newArea = [
Math.min(area[0], area[2]),
Math.min(area[1], area[3]),
Math.max(area[0], area[2]),
Math.max(area[1], area[3])
];
area[0] = newArea[0];
area[1] = newArea[1];
area[2] = newArea[2];
area[3] = newArea[3];
}
}
// Internal method used to pre-process the interaction to standardise it
// for a vtkWeb usage.
function mouseInteraction(event) {
if(event.hasOwnProperty("type")) {
if(event.type === 'mouseup') {
current_button = null;
if (vp.getSelectionMode() === true) {
clearOverlay();
}
renderersContainer.trigger($.extend(event, {
type: 'mouse',
action: 'up',
current_button: current_button
}));
extractCoordinates(event, false, true);
renderersContainer.trigger({
type: 'endInteraction',
area: area
});
} else if(event.type === 'mousedown') {
current_button = event.which;
// Override button if modifier is used
// Middle: Alt - Right: Shift
if(event.shiftKey) {
current_button = 3;
event.shiftKey = false;
} else if(event.altKey) {
current_button = 2;
event.altKey = false;
}
extractCoordinates(event, true, false);
renderersContainer.trigger('startInteraction');
renderersContainer.trigger($.extend(event, {
type: 'mouse',
action: 'down',
current_button: current_button
}));
} else if(event.type === 'mousemove' && current_button != null) {
if (vp.getSelectionMode() === true) {
extractCoordinates(event, false, false);
redrawSelection();
}
renderersContainer.trigger($.extend(event, {
type: 'mouse',
action: 'move',
current_button: current_button
}));
}
}
}
// Bind listener to UI container
mouseListenerContainer.bind("contextmenu mouseover click", preventDefault);
mouseListenerContainer.bind('mousedown mouseup mousemove', mouseInteraction);
mouseListenerContainer.dblclick(function(event){
renderersContainer.trigger($.extend(event, {
type: 'mouse',
action: 'dblclick',
current_button: event.which
}));
});
mouseListenerContainer.bind("DOMMouseScroll mousewheel",function(event){
var scrollValue = (event.originalEvent.wheelDeltaY || -event.originalEvent.detail);
renderersContainer.trigger($.extend(event, {
type: 'mouse',
action: 'scroll',
current_button: current_button,
scroll: scrollValue
}));
});
}
// ----------------------------------------------------------------------
function attachTouchListener(mouseListenerContainer, renderersContainer, viewport) {
var current_button = null, posX, posY, defaultDragButton = 1,
isZooming = false, isDragging = false, mouseAction = 'up', target;
function mobileTouchInteraction(evt) {
evt.gesture.preventDefault();
switch(evt.type) {
case 'drag':
if(isZooming) {
return;
}
current_button = defaultDragButton;
if(mouseAction === 'up') {
mouseAction = "down";
target = evt.gesture.target;
isDragging = true;
} else {
mouseAction = "move";
}
posX = evt.gesture.touches[0].pageX;
posY = evt.gesture.touches[0].pageY;
break;
case 'hold':
if(defaultDragButton === 1) {
defaultDragButton = 2;
mouseListenerContainer.html("Pan mode").css('color','#FFFFFF');
} else {
defaultDragButton = 1;
mouseListenerContainer.html("Rotation mode").css('color','#FFFFFF');
}
break;
case 'release':
mouseListenerContainer.html('');
current_button = 0;
mouseAction = "up";
isZooming = false;
isDragging = false;
break;
case 'doubletap':
viewport.resetCamera();
return;
case 'pinch':
if(isDragging) {
return;
}
current_button = 3;
if(mouseAction === 'up') {
mouseAction = 'down';
posX = 0;
posY = mouseListenerContainer.height();
target = evt.gesture.target;
isZooming = true;
} else {
mouseAction = 'move';
posY = mouseListenerContainer.height() * (1+(evt.gesture.scale-1)/2);
}
break;
}
//mouseListenerContainer.html(mouseAction + ' (' + posX + ', ' + posY + ') b:' + current_button + ' z: ' + isZooming ).css('color','#FFFFFF');
// Trigger event
renderersContainer.trigger({
type: 'mouse',
action: mouseAction,
current_button: current_button,
charCode: '',
altKey: false,
ctrlKey: false,
shiftKey: false,
metaKey: false,
delegateTarget: target,
pageX: posX,
pageY: posY
});
}
// Bind listener to UI container
mouseListenerContainer.hammer({
prevent_default : true,
prevent_mouseevents : true,
transform : true,
transform_always_block : true,
transform_min_scale : 0.03,
transform_min_rotation : 2,
drag : true,
drag_max_touches : 1,
drag_min_distance : 10,
swipe : false,
hold : true // To switch from rotation to pan
}).on("doubletap pinch drag release hold", mobileTouchInteraction);
}
// ----------------------------------------------------------------------
// Viewport statistic manager
// ----------------------------------------------------------------------
function createStatisticManager() {
var statistics = {}, formatters = {};
// Fill stat formatters
for(var factoryKey in vtkWeb.ViewportFactory) {
var factory = vtkWeb.ViewportFactory[factoryKey];
if(factory.hasOwnProperty('stats')) {
for(var key in factory.stats) {
formatters[key] = factory.stats[key];
}
}
}
function handleEvent(event) {
var id = event.stat_id,
value = event.stat_value,
statObject = null;
if(!statistics.hasOwnProperty(id) && formatters.hasOwnProperty(id)) {
if(formatters[id].type === 'time') {
statObject = statistics[id] = createTimeValueRecord();
} else if (formatters[id].type === 'value') {
statObject = statistics[id] = createValueRecord();
}
} else {
statObject = statistics[id];
}
if(statObject != null) {
statObject.record(value);
}
}
// ------------------------------------------------------------------
function toHTML() {
var buffer = createBuffer(), hasContent = false, key, formater, stat,
min, max;
// Extract stat data
buffer.append("<table class='viewport-stat'>");
buffer.append("<tr class='stat-header'><td class='label'>Timed Quantity</td><td class='value'>Current</td><td class='min'>Min</td><td class='max'>Max</td><td class='avg'>Average</td></tr>");
for(key in statistics) {
if(formatters.hasOwnProperty(key) && statistics[key].valid) {
formater = formatters[key];
stat = statistics[key];
hasContent = true;
// The functiion may swap the order
min = formater.convert(stat.min);
max = formater.convert(stat.max);
buffer.append("<tr><td class='label'>");
buffer.append(formater.label);
buffer.append("</td><td class='value'>");
buffer.append(formater.convert(stat.value));
buffer.append("</td><td class='min'>");
buffer.append((min < max) ? min : max);
buffer.append("</td><td class='max'>");
buffer.append((min > max) ? min : max);
buffer.append("</td><td class='avg'>");
buffer.append(formater.convert(stat.getAverageValue()));
buffer.append("</td></tr>");
}
}
buffer.append("</table>");
return hasContent ? buffer.toString() : "";
}
// ------------------------------------------------------------------
return {
eventHandler: handleEvent,
toHTML: toHTML,
reset: function() {
statistics = {};
}
}
}
// ----------------------------------------------------------------------
function createBuffer() {
var idx = -1, buffer = [];
return {
clear: function(){
idx = -1;
buffer = [];
},
append: function(str) {
buffer[++idx] = str;
return this;
},
toString: function() {
return buffer.join('');
}
};
}
// ----------------------------------------------------------------------
function createTimeValueRecord() {
var lastTime, sum, count;
// Default values
lastTime = 0;
sum = 0;
count = 0;
return {
value: 0.0,
valid: false,
min: +1000000000.0,
max: -1000000000.0,
record: function(v) {
if(v === 0) {
this.start();
} else if (v === 1) {
this.stop();
}
},
start: function() {
lastTime = new Date().getTime();
},
stop: function() {
if(lastTime != 0) {
this.valid = true;
var time = new Date().getTime();
this.value = time - lastTime;
this.min = (this.min < this.value) ? this.min : this.value;
this.max = (this.max > this.value) ? this.max : this.value;
//
sum += this.value;
count++;
}
},
reset: function() {
count = 0;
sum = 0;
lastTime = 0;
this.value = 0;
this.min = +1000000000.0;
this.max = -1000000000.0;
this.valid = false;
},
getAverageValue: function() {
if(count == 0) {
return 0;
}
return Math.floor(sum / count);
}
}
}
// ----------------------------------------------------------------------
function createValueRecord() {
var sum = 0, count = 0;
return {
value: 0.0,
valid: false,
min: +1000000000.0,
max: -1000000000.0,
record: function(v) {
this.valid = true;
this.value = v;
this.min = (this.min < this.value) ? this.min : this.value;
this.max = (this.max > this.value) ? this.max : this.value;
//
sum += this.value;
count++;
},
reset: function() {
count = 0;
sum = 0;
this.value = 0;
this.min = +1000000000.0;
this.max = -1000000000.0;
this.valid = false;
},
getAverageValue: function() {
if(count === 0) {
return 0;
}
return Math.floor(sum / count);
}
}
}
// ----------------------------------------------------------------------
// Viewport container definition
// ----------------------------------------------------------------------
/**
* Create a new viewport for a vtkWeb View.
* The options are explained below.
*
* @member vtkWeb.Viewport
* @param {Object} options
* Configure the viewport to create the way we want.
*
* options = {
* session: sessionObject, // Object used to communicate with the remote server.
* view: -1, // -1 for active view or use the proper viewId
* enableInteractions: true, // True if mouse interaction should be forwarded to the server
* renderer: 'image' // Type of renderer to be used. Can only be 'image' 'webgl' or 'vgl'.
* // --- image renderer options
* interactiveQuality: 30, // StillRender quality when interacting
* stillQuality: 100, // StillRender quality when not interacting
* // --- webgl/vgl renderer options
* keepServerInSynch: false. // Push camera information to server if true
* }
*
* @return {vtkWeb.Viewport}
*/
function createViewport(options) {
// Make sure we have a valid autobahn session
if (options.session === null) {
throw "'session' must be provided within the option.";
}
function onReadyInternal() {
if(userReadyCallback.fn) {
// Providing just a short delay before triggering the "image-not-state"
// event provides a break in the action so that the browser can draw the
// image we just copied to the src attribute.
setTimeout(userReadyCallback.fn, 0);
if(userReadyCallback.once) {
userReadyCallback.fn = null;
}
}
}
// Create viewport
var config = $.extend({}, DEFAULT_VIEWPORT_OPTIONS, options),
session = options.session,
rendererContainer = $(DEFAULT_RENDERERS_CONTAINER_HTML).css(DEFAULT_RENDERERS_CONTAINER_CSS),
mouseListener = $(DEFAULT_MOUSE_LISTENER_HTML).css(DEFAULT_MOUSE_LISTENER_CSS),
statContainer = $(DEFAULT_STATISTIC_HTML).css(DEFAULT_STATISTIC_CSS),
overlayContainer = $(DEFAULT_OVERLAY_HTML).css(DEFAULT_OVERLAY_CSS),
onDoneQueue = [],
statisticManager = createStatisticManager(),
inSelectionMode = false,
userReadyCallback = { fn: null, once: false},
viewport = {
/**
* Update the active renderer to be something else.
* This allow the user to switch from Image Delivery to Geometry delivery
* or even any other available renderer type available.
*
* The available renderers are indexed inside the following object vtkWeb.ViewportFactory.
*
* @member vtkWeb.Viewport
* @param {String} rendererName
* Key used to ID the renderer type.
*/
setActiveRenderer: function(rendererName) {
$('.' + rendererName, rendererContainer).addClass('active').show().siblings().removeClass('active').hide();
rendererContainer.trigger('active');
statContainer[0].innerHTML = '';
statisticManager.reset();
},
/**
* Method that should be called each time something in the scene as changed
* and we want to update the viewport to reflect the latest state of the scene.
*
* @member vtkWeb.Viewport
* @param {Function} ondone Function to call after rendering is complete.
*/
invalidateScene: function(onDone) {
onDoneQueue.push(onDone);
rendererContainer.trigger('invalidateScene');
},
/**
* Method that should be called when nothing has changed in the scene
* but for some reason the viewport has been dirty.
* (i.e. Toggeling the statistic information within the viewport)
*
* @member vtkWeb.Viewport
* @param {Function} ondone Function to call after rendering is complete.
*/
render: function(onDone, args) {
onDoneQueue.push(onDone);
rendererContainer.trigger({type: 'render', options: args});
},
/**
* Reset the camera of the scene to make it fit in the screen as well
* as invalidating the scene automatically.
*
* @member vtkWeb.Viewport
* @param {Function} ondone Function to call after rendering is complete.
*/
resetCamera: function(onDone) {
onDoneQueue.push(onDone);
return session.call("viewport.camera.reset", [Number(config.view)]).then(function () {
rendererContainer.trigger('invalidateScene');
});
},
/**
* Update Orientation Axes Visibility for the given view
*
* @member vtkWeb.Viewport
* @param {Boolean} show
* Show: true / Hide: false
* @param {Function} ondone Function to call after rendering is complete.
*/
updateOrientationAxesVisibility: function (show, onDone) {
return session.call("viewport.axes.orientation.visibility.update", [Number(config.view), show]).then(function () {
onDoneQueue.push(onDone);
rendererContainer.trigger('invalidateScene');
});
},
/**
* Update the Center Axes Visibility for the given view
*
* @member vtkWeb.Viewport
* @param {Boolean} show
* Show: true / Hide: false
* @param {Function} ondone Function to call after rendering is complete.
*/
updateCenterAxesVisibility: function (show, onDone) {
return session.call("viewport.axes.center.visibility.update", [Number(config.view), show]).then(function () {
onDoneQueue.push(onDone);
rendererContainer.trigger('invalidateScene');
});
},
/**
* Reset view id.
* This allow to invalidate the viewport and use the new active view
*
* @member vtkWeb.Viewport
*/
resetViewId: function () {
rendererContainer.trigger('resetViewId');
},
/**
* Ask the concrete renderer to generate an image and trigger its own
* event when the image is ready.
*
* @member vtkWeb.Viewport
*/
captureScreenImage: function () {
rendererContainer.trigger('captureRenderedImage');
},
/**
*
*/
downloadTimestepData: function(shaList) {
rendererContainer.trigger('downloadAllTimesteps');
},
/*
*
*/
clearGeometryCache: function() {
rendererContainer.trigger('clearCache');
},
/*
* Provide a function that will be called when
*/
onReady: function(readyCallback, once) {
userReadyCallback.fn = readyCallback;
userReadyCallback.once = once;
},
/**
* Attach viewport to a DOM element
*
* @member vtkWeb.Viewport
* @param {String} selector
* The will be used internally to get the jQuery associated element
*
* <div class="renderer"></div>
* viewport.bind(".renderer");
*
* <div id="renderer"></div>
* viewport.bind("#renderer");
*
* <html>
* <body>
* <!-- renderer -->
* <div></div>
* </body>
* </html>
* viewport.bind("body > div");
*/
bind: function (selector) {
var container = $(selector);
if (container.attr("__vtkWeb_viewport__") !== "true") {
container.attr("__vtkWeb_viewport__", "true");
container.append(rendererContainer).append(mouseListener).append(statContainer).append(overlayContainer);
rendererContainer.trigger('invalidateScene');
}
},
/**
* Remove viewport from DOM element
*
* @member vtkWeb.Viewport
*/
unbind: function () {
var parentElement = rendererContainer.parent();
if (parentElement) {
parentElement.attr("__vtkWeb_viewport__", "false");
rendererContainer.remove();
mouseListener.remove();
statContainer.remove();
overlayContainer.remove();
}
},
/**
* Update statistic visibility
*
* @member vtkWeb.Viewport
* @param {Boolean} visible
*/
showStatistics: function(isVisible) {
if(isVisible) {
statContainer.show();
} else {
statContainer.hide();
}
},
/**
* Clear current statistic values
*
* @member vtkWeb.Viewport
*/
resetStatistics: function() {
statisticManager.reset();
statContainer.empty();
},
/**
* Event triggered before a mouse down.
*
* @member vtkWeb.Viewport
* @event startInteraction
*/
/**
* Event triggered after a mouse up.
*
* @member vtkWeb.Viewport
* @event endInteraction
* @param area
* Provide the area in pixel between the startInteraction and endInteraction.
* This can be used for selection or zoom to box... [minX, minY, maxX, maxY]
*/
/**
* Toggle selection mode.
*
* When selection mode is active, the next interaction will
* create a 2D rectangle that will be used to define an area to select.
* This won't perform any selection but will provide another interaction
* mode on the client side which will then trigger an event with
* the given area. It is the responsibility of the user to properly
* handle that event and eventually trigger the appropriate server
* code to perform a selection or a zoom-to-box type of action.
*
* @member vtkWeb.Viewport
* @return {Boolean} inSelectionMode state
*/
toggleSelectionMode: function() {
inSelectionMode = !inSelectionMode;
return inSelectionMode;
},
/**
* Return whether or not viewport is in selection mode.
*
* @return {Boolean} true if viewport is in selection mode, false otherwise.
*/
getSelectionMode: function() {
return inSelectionMode;
}
};
// Attach config object to renderer parent
rendererContainer.data('config', config);
// Attach onDone listener
rendererContainer.bind('done', function(){
while(onDoneQueue.length > 0) {
var callback = onDoneQueue.pop();
try {
if(callback) {
callback();
}
} catch(error) {
console.log("On Done callback error:");
console.log(error);
}
}
});
// Attach the on ready internal
rendererContainer.bind('renderer-ready', onReadyInternal);
// Create any renderer type that is available
for(var key in vtkWeb.ViewportFactory) {
try {
vtkWeb.ViewportFactory[key].builder(rendererContainer);
} catch(error) {
console.log("Error while trying to load renderer: " + key);
console.log(error);
}
}
// Set default renderer
viewport.setActiveRenderer(config.renderer);
// Attach mouse listener if requested
if (config.enableInteractions) {
attachMouseListener(mouseListener, rendererContainer, overlayContainer, viewport);
try {
attachTouchListener(mouseListener, rendererContainer, viewport);
} catch(error) {
console.log('Hammer is not properly initialized');
console.log(error);
}
}
// Attach stat listener
rendererContainer.bind('stats', function(event){
statisticManager.eventHandler(event);
statContainer[0].innerHTML = statisticManager.toHTML();
});
return viewport;
}
// ----------------------------------------------------------------------
// Init vtkWeb module if needed
// ----------------------------------------------------------------------
if (GLOBAL.hasOwnProperty("vtkWeb")) {
module = GLOBAL.vtkWeb || {};
} else {
GLOBAL.vtkWeb = module;
}
// ----------------------------------------------------------------------
// Export internal methods to the vtkWeb module
// ----------------------------------------------------------------------
module.createViewport = function (option) {
return createViewport(option);
};
// ----------------------------------------------------------------------
// Local module registration
// ----------------------------------------------------------------------
try {
// Tests for presence of jQuery, then registers this module
if ($ !== undefined) {
module.registerModule('vtkweb-viewport');
} else {
console.error('Module failed to register, jQuery is missing');
}
} catch(err) {
console.error('Caught exception while registering module: ' + err.message);
}
}(window, jQuery));

View File

@ -0,0 +1,625 @@
/**
* vtkWeb JavaScript Library.
*
* This module extend the vtkWeb viewport to add support for WebGL rendering.
*
* @class vtkWeb.viewports.vgl
*
* Viewport Factory description:
* - Key: vgl
* - Stats:
* - vgl-fps
* - vgl-nb-objects
* - vgl-fetch-scene
* - vgl-fetch-object
*/
(function (GLOBAL, $) {
var module = {},
RENDERER_CSS = {
"position": "absolute",
"top" : "0px",
"left" : "0px",
"right" : "0px",
"bottom" : "0px",
"z-index" : "0"
},
RENDERER_CSS_2D = {
"z-index" : "1"
},
RENDERER_CSS_3D = {
"z-index" : "0"
},
DEFAULT_OPTIONS = {
keepServerInSynch: false
},
FACTORY_KEY = 'vgl',
FACTORY = {
'builder': createVGLGeometryDeliveryRenderer,
'options': DEFAULT_OPTIONS,
'stats': {
'vgl-fps': {
label: 'Framerate',
type: 'time',
convert: function(value) {
if(value === 0) {
return 0;
}
return (1000 / value).toFixed(2);
}
},
'vgl-nb-objects': {
label: 'Number&nbsp;of&nbsp;3D&nbsp;objects',
type: 'value',
convert: NoOp
},
'vgl-fetch-scene': {
label: 'Fetch&nbsp;scene&nbsp;(ms)',
type: 'time',
convert: NoOp
},
'vgl-fetch-object': {
label: 'Fetch&nbsp;object&nbsp;(ms)',
type: 'time',
convert: NoOp
}
}
},
DEFAULT_SHADERS = {},
mvMatrixStack = [],
PROGRESS_BAR_TEMPLATE =
'<div class="download-progressbar-container">' +
' <span class="progressbar-title">Download Progress</span>' +
' <div class="progressbar-content-container">' +
' <span class="progress-message-span">MESSAGE</span>' +
' <div class="progress progress-meter-container">' +
' <div class="progress-bar progress-bar-striped active progress-meter" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 100%;">' +
' </div>' +
' </div>' +
' </div>' +
'</div>';
// ----------------------------------------------------------------------
function NoOp(a) {
return a;
}
function getKey(object) {
return object.id + '_' + object.md5 + '_' + object.part;
}
// ----------------------------------------------------------------------
// Geometry Delivery renderer - factory method
// ----------------------------------------------------------------------
function createVGLGeometryDeliveryRenderer(domElement) {
var m_container = $(domElement),
m_options = $.extend({}, DEFAULT_OPTIONS, m_container.data('config')),
m_session = m_options.session,
m_divContainer = GLOBAL.document.createElement('div'),
m_canvas2D = GLOBAL.document.createElement('canvas'),
m_canvas3D = GLOBAL.document.createElement('canvas'),
m_ctx2d = m_canvas2D.getContext('2d'),
gl = m_canvas3D.getContext("webgl") || m_canvas3D.getContext("experimental-webgl"),
m_rendererAttrs = $(m_divContainer).addClass(FACTORY_KEY).css(RENDERER_CSS).append($(m_canvas2D).css(RENDERER_CSS).css(RENDERER_CSS_2D)).append($(m_canvas3D).css(RENDERER_CSS).css(RENDERER_CSS_3D)),
m_sceneJSON = null,
m_sceneData = null,
m_vglVtkReader = vgl.vtkReader(),
m_viewer = null,
m_interactorStyle,
originalMouseDown = document.onmousedown,
originalMouseUp = document.onmouseup,
originalMouseMove = document.onmousemove,
originalContextMenu = document.oncontextmenu,
m_background = null;
screenImage = null,
m_vglActors = {},
m_objectIndex = {},
m_numberOfPartsDownloaded = 0,
m_numberOfPartsToDownload = 0;
// Helper functions -------------------------------------------------
function fetchMissingObjects(fetchMethod, sceneJSON) {
for(var idx in sceneJSON.Objects) {
var currentObject = sceneJSON.Objects[idx];
for(var part = 1; part <= currentObject.parts; part++) {
var key = getKey({
'id': currentObject.id,
'md5': currentObject.md5,
'part': part
});
if(!m_objectIndex.hasOwnProperty(key)) {
fetchMethod(currentObject, part);
} else {
handleCompleteSceneObject(m_objectIndex[key]);
}
}
}
}
// ------------------------------------------------------------------
function fetchScene() {
m_container.trigger({
type: 'stats',
stat_id: 'vgl-fetch-scene',
stat_value: 0
});
m_session.call("viewport.webgl.metadata", [Number(m_options.view)]).then(function(data) {
if (m_sceneData === data) {
updateScene();
return;
}
m_sceneData = data;
m_sceneJSON = JSON.parse(data);
m_vglVtkReader.setVtkScene(m_sceneJSON);
m_container.trigger({
type: 'stats',
stat_id: 'vgl-fetch-scene',
stat_value: 1
});
updateScene();
});
}
// ------------------------------------------------------------------
function handleDownloadProgressEvent(event) {
var status = event.status;
function updateProgressBar(element, percentProgress) {
var progressString = percentProgress + '%';
element.attr('aria-valuenow', percentProgress)
.css('width', progressString);
//.html(progressString);
}
if (status === 'create') {
var initialMessage = "Downloading metadata for all timesteps",
html = PROGRESS_BAR_TEMPLATE.replace(/MESSAGE/, initialMessage),
progressElt = $(html);
m_container.append(progressElt);
} else if (status === 'update') {
var progressType = event.progressType,
pbElt = $('.progress-meter');
if (progressType === 'retrieved-metadata') {
$('.progress-message-span').text('Metadata retrieved, downloading objects');
pbElt.removeClass('progress-bar-striped active');
updateProgressBar(pbElt, 0);
} else {
var numPartsThisSha = event.numParts;
m_numberOfPartsDownloaded += numPartsThisSha;
var numberRemaining = m_numberOfPartsToDownload - m_numberOfPartsDownloaded;
var percent = ((m_numberOfPartsDownloaded / m_numberOfPartsToDownload) * 100).toFixed(0);
if (numberRemaining <= 0) {
$('.download-progressbar-container').remove();
} else {
$('.progress-message-span').text('Downloading objects');
updateProgressBar(pbElt, percent);
}
}
}
}
// ------------------------------------------------------------------
function downloadAllTimesteps() {
m_container.trigger({
type: 'downloadProgress',
status: 'create'
});
m_session.call('viewport.webgl.metadata.alltimesteps', []).then(function(result){
if (result.hasOwnProperty('success') && result.success === true) {
var metaDataList = result.metaDataList;
m_container.trigger({
type: 'downloadProgress',
status: 'update',
progressType: 'retrieved-metadata'
});
// For progress events, I want to first know how many items to retrieve
m_numberOfPartsToDownload = 0;
for (var sha in metaDataList) {
if (metaDataList.hasOwnProperty(sha)) {
m_numberOfPartsToDownload += metaDataList[sha].numParts;
}
}
m_numberOfPartsDownloaded = 0;
setTimeout(function() {
// Now go through and download the heavy data for anythin we don't already have
for (var sha in metaDataList) {
if (metaDataList.hasOwnProperty(sha)) {
var numParts = metaDataList[sha].numParts,
objId = metaDataList[sha].id,
alreadyCached = true;
// Before I go and fetch all the parts for this object, make sure
// I don't already have them cached
for (var i = 0; i < numParts; i+=1) {
var key = getKey({
'id': objId,
'md5': sha,
'part': i + 1
});
if(!m_objectIndex.hasOwnProperty(key)) {
alreadyCached = false;
break;
}
}
if (alreadyCached === false) {
fetchCachedObject(sha);
} else {
m_container.trigger({
type: 'downloadProgress',
status: 'update',
numParts: numParts
});
}
}
}
}, 500);
}
}, function(metaDataError) {
console.log("Error retrieving metadata for all timesteps");
console.log(metaDataError);
});
}
// ------------------------------------------------------------------
function fetchCachedObject(sha) {
var viewId = Number(m_options.view);
m_session.call('viewport.webgl.cached.data', [sha]).then(function(result) {
if (result.success === false) {
console.log("Fetching cached data for " + sha + " failed, reason:");
consolelog(result.reason);
return;
}
var dataObject = result.data;
if (dataObject.hasOwnProperty('partsList')) {
for (var dIdx = 0; dIdx < dataObject.partsList.length; dIdx += 1) {
// Create a complete scene part object and cache it
var newObject = {
md5: dataObject.md5,
part: dIdx + 1,
vid: viewId,
id: dataObject.id,
data: dataObject.partsList[dIdx],
hasTransparency: dataObject.transparency,
layer: dataObject.layer
};
var key = getKey(newObject);
m_objectIndex[key] = newObject;
var actors = m_vglVtkReader.parseObject(newObject);
m_vglActors[key] = actors;
}
m_container.trigger({
type: 'downloadProgress',
status: 'update',
numParts: dataObject.partsList.length
});
}
}, function(err) {
console.log('viewport.webgl.cached.data rpc method failed');
console.log(err);
});
}
// ------------------------------------------------------------------
function handleCompleteSceneObject(sceneObject) {
var renderer = m_vglVtkReader.getRenderer(sceneObject.layer),
key = getKey(sceneObject),
actors = {};
// Parse the new object if its not parsed already
// if parsed already then check if exists in current renderer
if (key in m_vglActors) {
actors = m_vglActors[key];
// if exists in current renderer do nothing
for (i = 0; i < actors.length; i++) {
var actor = actors[i];
if (!renderer.hasActor(actor)) {
renderer.addActor(actor);
}
}
} else {
// Object was not parsed so parse it, create actors, and add them to the renderer.
actors = m_vglVtkReader.parseObject(sceneObject);
m_vglActors[key] = actors;
for (i = 0; i < actors.length; i++) {
renderer.addActor(actors[i]);
}
}
// Mark the actor as valid
actors.invalid = false;
}
// ------------------------------------------------------------------
function fetchObject(sceneObject, part) {
try {
var viewId = Number(m_options.view),
newObject, renderer, actor, actors, key, i;
m_container.trigger({
type: 'stats',
stat_id: 'vgl-fetch-object',
stat_value: 0
});
m_session.call("viewport.webgl.data", [viewId, sceneObject.id, part]).then(function(data) {
try {
m_container.trigger({
type: 'stats',
stat_id: 'vgl-fetch-object',
stat_value: 1
});
//add object to the reader
newObject = {
md5: sceneObject.md5,
part: part,
vid: viewId,
id: sceneObject.id,
data: data,
hasTransparency: sceneObject.transparency,
layer: sceneObject.layer
};
// First, actually cache the object, because that was not happening
var key = getKey(newObject);
m_objectIndex[key] = newObject;
// Now add the object to the reader, etc...
handleCompleteSceneObject(newObject);
// Redraw the scene
drawScene(false);
} catch(error) {
console.log(error);
}
});
} catch(error) {
console.log(error);
}
}
// ------------------------------------------------------------------
function render(saveScreenOnRender) {
m_canvas3D.width = m_rendererAttrs.width();
m_canvas3D.height = m_rendererAttrs.height();
m_viewer = m_vglVtkReader.updateCanvas(m_canvas3D);
drawScene(saveScreenOnRender);
}
// ------------------------------------------------------------------
function drawScene(saveScreenOnRender) {
var layer;
try {
if (m_sceneJSON === null || typeof m_sceneJSON === 'undefined') {
return;
}
var width = m_rendererAttrs.width(),
height = m_rendererAttrs.height(),
nbObjects;
// Update frame rate
m_container.trigger({
type: 'stats',
stat_id: 'vgl-fps',
stat_value: 0
});
m_viewer.render();
if (saveScreenOnRender === true) {
screenImage = m_canvas3D.toDataURL();
}
numObjects = m_vglVtkReader.numObjects();
// Update frame rate
m_container.trigger({
type: 'stats',
stat_id: 'vgl-fps',
stat_value: 1
});
m_container.trigger({
type: 'stats',
stat_id: 'vgl-nb-objects',
stat_value: numObjects
});
} catch(error) {
console.log(error);
}
m_container.trigger('done');
}
// ------------------------------------------------------------------
function pushCameraState() {
if(m_viewer !== null) {
var cam = m_viewer.renderWindow().activeRenderer().camera(),
fp_ = cam.focalPoint(),
up_ = cam.viewUpDirection(),
pos_ = cam.position(),
fp = [fp_[0], fp_[1], fp_[2]],
up = [up_[0], up_[1], up_[2]],
pos = [pos_[0], pos_[1], pos_[2]];
m_session.call("viewport.camera.update", [Number(m_options.view), fp, up, pos]);
}
}
// ------------------------------------------------------------------
function updateScene() {
var key;
try{
if(m_sceneJSON === null || typeof(m_sceneJSON) === "undefined") {
return;
}
m_vglVtkReader.initScene();
// Mark all actors as invalid
for (key in m_vglActors) {
m_vglActors[key].invalid = true;
}
// Fetch the object that we are missing
fetchMissingObjects(fetchObject, m_sceneJSON);
// Draw scene
drawScene(false);
} catch(error) {
console.log(error);
}
}
// ------------------------------------------------------------------
function clearCache() {
m_objectIndex = {};
m_vglActors = {};
m_container.trigger('invalidateScene');
}
// ------------------------------------------------------------------
// Add rendererAttrs into the DOM
m_container.append(m_rendererAttrs);
// ------------------------------------------------------------------
// Add viewport listener
m_container.bind('invalidateScene', function() {
if(m_rendererAttrs.hasClass('active')){
if (m_vglVtkReader === null) {
m_vglVtkReader = vgl.vtkReader();
} else {
m_vglVtkReader.deleteViewer();
}
m_canvas3D.width = m_rendererAttrs.width();
m_canvas3D.height = m_rendererAttrs.height();
m_viewer = m_vglVtkReader.createViewer(m_canvas3D);
m_viewer.renderWindow().activeRenderer().setResetScene(false);
m_viewer.renderWindow().activeRenderer().setResetClippingRange(false);
// Bind mouse event handlers
m_container.on('mouse', function(event) {
if (m_viewer) {
if (event.action === 'move') {
m_viewer.handleMouseMove(event.originalEvent);
}
else if (event.action === 'up') {
m_viewer.handleMouseUp(event.originalEvent);
}
else if (event.action === 'down') {
m_viewer.handleMouseDown(event.originalEvent);
}
}
});
fetchScene();
}
}).bind('render', function(){
if(m_rendererAttrs.hasClass('active')){
render(false);
}
}).bind('downloadAllTimesteps', function(event){
if(m_rendererAttrs.hasClass('active')){
downloadAllTimesteps();
}
}).bind('clearCache', function(event){
if(m_rendererAttrs.hasClass('active')){
clearCache();
}
}).bind('downloadProgress', function(event){
if(m_rendererAttrs.hasClass('active')){
handleDownloadProgressEvent(event);
}
}).bind('captureRenderedImage', function(e){
if (m_rendererAttrs.hasClass('active')) {
render(true);
$(m_container).parent().trigger({
type: 'captured-screenshot-ready',
imageData: screenImage
});
}
}).bind('resetViewId', function(e){
m_options.view = -1;
}).bind('mouse', function(event){
if(m_rendererAttrs.hasClass('active')){
event.preventDefault();
pushCameraState();
}
}).bind('active', function(){
if(m_rendererAttrs.hasClass('active')){
// Ready to render data
fetchScene();
}
});
}
// ----------------------------------------------------------------------
// Init vtkWeb module if needed
// ----------------------------------------------------------------------
if (GLOBAL.hasOwnProperty("vtkWeb")) {
module = GLOBAL.vtkWeb || {};
} else {
GLOBAL.vtkWeb = module;
}
// ----------------------------------------------------------------------
// Extend the viewport factory - ONLY IF WEBGL IS SUPPORTED
// ----------------------------------------------------------------------
try {
if (GLOBAL.WebGLRenderingContext && typeof(vec3) != "undefined" && typeof(mat4) != "undefined") {
var canvas = GLOBAL.document.createElement('canvas'),
gl = canvas.getContext("webgl") || canvas.getContext("experimental-webgl");
if(gl) {
// WebGL is supported
if(!module.hasOwnProperty('ViewportFactory')) {
module['ViewportFactory'] = {};
}
module.ViewportFactory[FACTORY_KEY] = FACTORY;
}
}
} catch(exception) {
// nothing to do
}
// ----------------------------------------------------------------------
// Local module registration
// ----------------------------------------------------------------------
try {
// Tests for presence of jQuery and glMatrix, then registers this module
if ($ !== undefined && module.ViewportFactory[FACTORY_KEY] !== undefined) {
module.registerModule('vtkweb-viewport-vgl');
}
} catch(err) {
console.error('jQuery or glMatrix is missing or browser does not support WebGL: ' + err.message);
}
}(window, jQuery));

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
*.pyc

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,87 @@
#==============================================================================
#
# Program: ParaView
# Module: build.py
#
# Copyright (c) Kitware, Inc.
# All rights reserved.
# See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even
# the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the above copyright notice for more information.
#
#==============================================================================
try:
import argparse
except ImportError:
# since Python 2.6 and earlier don't have argparse, we simply provide
# the source for the same as _argparse and we use it instead.
import _argparse as argparse
import shutil
import StringIO
import string
import os
from datetime import date
import rjsmin
import rcssmin
parser = argparse.ArgumentParser(description="Concatenation and minimize Javascript files")
parser.add_argument('-b', help="Javascript banner")
parser.add_argument('-v', help="Version string to add to the header")
parser.add_argument('-i', nargs='*', help="Files to concatenate and minimize")
parser.add_argument('-o', help="Output file")
parser.add_argument('-m', help="Minimized output file")
args = parser.parse_args()
output = StringIO.StringIO()
isJavaScript = (args.o[-3:] == '.js')
# read in files
for file in args.i:
with open(file, 'r') as fp:
output.write(fp.read())
# Generate banner
with open(args.b, 'r') as fp:
template = string.Template(fp.read())
d = date.today()
vars = dict(version=args.v,
date=d.strftime("%Y-%m-%d"),
year=d.strftime("%Y"))
banner = template.substitute(vars)
# write output to file
dest_dir = os.path.dirname(args.m)
if not os.path.exists(dest_dir):
try:
os.makedirs(dest_dir);
except OSError, e:
if e.errno != 17:
raise
with open(args.m,"w") as fp:
fp.write(banner)
fp.write(output.getvalue())
# write minimized output to file
dest_dir = os.path.dirname(args.o)
if not os.path.exists(dest_dir):
try:
os.makedirs(dest_dir);
except OSError, e:
if e.errno != 17:
raise
if isJavaScript:
with open(args.o,"w") as fp:
fp.write(banner)
fp.write(rjsmin.jsmin(output.getvalue()))
else:
with open(args.o,"w") as fp:
fp.write(banner)
fp.write(rcssmin.cssmin(output.getvalue()))

View File

@ -0,0 +1,360 @@
#!/usr/bin/env python
# -*- coding: ascii -*-
#
# Copyright 2011, 2012
# Andr\xe9 Malo or his licensors, as applicable
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
r"""
==============
CSS Minifier
==============
CSS Minifier.
The minifier is based on the semantics of the `YUI compressor`_\, which itself
is based on `the rule list by Isaac Schlueter`_\.
This module is a re-implementation aiming for speed instead of maximum
compression, so it can be used at runtime (rather than during a preprocessing
step). RCSSmin does syntactical compression only (removing spaces, comments
and possibly semicolons). It does not provide semantic compression (like
removing empty blocks, collapsing redundant properties etc). It does, however,
support various CSS hacks (by keeping them working as intended).
Here's a feature list:
- Strings are kept, except that escaped newlines are stripped
- Space/Comments before the very end or before various characters are
stripped: ``:{});=>+],!`` (The colon (``:``) is a special case, a single
space is kept if it's outside a ruleset.)
- Space/Comments at the very beginning or after various characters are
stripped: ``{}(=:>+[,!``
- Optional space after unicode escapes is kept, resp. replaced by a simple
space
- whitespaces inside ``url()`` definitions are stripped
- Comments starting with an exclamation mark (``!``) can be kept optionally.
- All other comments and/or whitespace characters are replaced by a single
space.
- Multiple consecutive semicolons are reduced to one
- The last semicolon within a ruleset is stripped
- CSS Hacks supported:
- IE7 hack (``>/**/``)
- Mac-IE5 hack (``/*\*/.../**/``)
- The boxmodelhack is supported naturally because it relies on valid CSS2
strings
- Between ``:first-line`` and the following comma or curly brace a space is
inserted. (apparently it's needed for IE6)
- Same for ``:first-letter``
rcssmin.c is a reimplementation of rcssmin.py in C and improves runtime up to
factor 50 or so (depending on the input).
Both python 2 (>= 2.4) and python 3 are supported.
.. _YUI compressor: https://github.com/yui/yuicompressor/
.. _the rule list by Isaac Schlueter: https://github.com/isaacs/cssmin/tree/
"""
__author__ = "Andr\xe9 Malo"
__author__ = getattr(__author__, 'decode', lambda x: __author__)('latin-1')
__docformat__ = "restructuredtext en"
__license__ = "Apache License, Version 2.0"
__version__ = '1.0.2'
__all__ = ['cssmin']
import re as _re
def _make_cssmin(python_only=False):
"""
Generate CSS minifier.
:Parameters:
`python_only` : ``bool``
Use only the python variant. If true, the c extension is not even
tried to be loaded.
:Return: Minifier
:Rtype: ``callable``
"""
# pylint: disable = W0612
# ("unused" variables)
# pylint: disable = R0911, R0912, R0914, R0915
# (too many anything)
if not python_only:
try:
import _rcssmin
except ImportError:
pass
else:
return _rcssmin.cssmin
nl = r'(?:[\n\f]|\r\n?)' # pylint: disable = C0103
spacechar = r'[\r\n\f\040\t]'
unicoded = r'[0-9a-fA-F]{1,6}(?:[\040\n\t\f]|\r\n?)?'
escaped = r'[^\n\r\f0-9a-fA-F]'
escape = r'(?:\\(?:%(unicoded)s|%(escaped)s))' % locals()
nmchar = r'[^\000-\054\056\057\072-\100\133-\136\140\173-\177]'
#nmstart = r'[^\000-\100\133-\136\140\173-\177]'
#ident = (r'(?:'
# r'-?(?:%(nmstart)s|%(escape)s)%(nmchar)s*(?:%(escape)s%(nmchar)s*)*'
#r')') % locals()
comment = r'(?:/\*[^*]*\*+(?:[^/*][^*]*\*+)*/)'
# only for specific purposes. The bang is grouped:
_bang_comment = r'(?:/\*(!?)[^*]*\*+(?:[^/*][^*]*\*+)*/)'
string1 = \
r'(?:\047[^\047\\\r\n\f]*(?:\\[^\r\n\f][^\047\\\r\n\f]*)*\047)'
string2 = r'(?:"[^"\\\r\n\f]*(?:\\[^\r\n\f][^"\\\r\n\f]*)*")'
strings = r'(?:%s|%s)' % (string1, string2)
nl_string1 = \
r'(?:\047[^\047\\\r\n\f]*(?:\\(?:[^\r]|\r\n?)[^\047\\\r\n\f]*)*\047)'
nl_string2 = r'(?:"[^"\\\r\n\f]*(?:\\(?:[^\r]|\r\n?)[^"\\\r\n\f]*)*")'
nl_strings = r'(?:%s|%s)' % (nl_string1, nl_string2)
uri_nl_string1 = r'(?:\047[^\047\\]*(?:\\(?:[^\r]|\r\n?)[^\047\\]*)*\047)'
uri_nl_string2 = r'(?:"[^"\\]*(?:\\(?:[^\r]|\r\n?)[^"\\]*)*")'
uri_nl_strings = r'(?:%s|%s)' % (uri_nl_string1, uri_nl_string2)
nl_escaped = r'(?:\\%(nl)s)' % locals()
space = r'(?:%(spacechar)s|%(comment)s)' % locals()
ie7hack = r'(?:>/\*\*/)'
uri = (r'(?:'
r'(?:[^\000-\040"\047()\\\177]*'
r'(?:%(escape)s[^\000-\040"\047()\\\177]*)*)'
r'(?:'
r'(?:%(spacechar)s+|%(nl_escaped)s+)'
r'(?:'
r'(?:[^\000-\040"\047()\\\177]|%(escape)s|%(nl_escaped)s)'
r'[^\000-\040"\047()\\\177]*'
r'(?:%(escape)s[^\000-\040"\047()\\\177]*)*'
r')+'
r')*'
r')') % locals()
nl_unesc_sub = _re.compile(nl_escaped).sub
uri_space_sub = _re.compile((
r'(%(escape)s+)|%(spacechar)s+|%(nl_escaped)s+'
) % locals()).sub
uri_space_subber = lambda m: m.groups()[0] or ''
space_sub_simple = _re.compile((
r'[\r\n\f\040\t;]+|(%(comment)s+)'
) % locals()).sub
space_sub_banged = _re.compile((
r'[\r\n\f\040\t;]+|(%(_bang_comment)s+)'
) % locals()).sub
post_esc_sub = _re.compile(r'[\r\n\f\t]+').sub
main_sub = _re.compile((
r'([^\\"\047u>@\r\n\f\040\t/;:{}]+)'
r'|(?<=[{}(=:>+[,!])(%(space)s+)'
r'|^(%(space)s+)'
r'|(%(space)s+)(?=(([:{});=>+\],!])|$)?)'
r'|;(%(space)s*(?:;%(space)s*)*)(?=(\})?)'
r'|(\{)'
r'|(\})'
r'|(%(strings)s)'
r'|(?<!%(nmchar)s)url\(%(spacechar)s*('
r'%(uri_nl_strings)s'
r'|%(uri)s'
r')%(spacechar)s*\)'
r'|(@[mM][eE][dD][iI][aA])(?!%(nmchar)s)'
r'|(%(ie7hack)s)(%(space)s*)'
r'|(:[fF][iI][rR][sS][tT]-[lL]'
r'(?:[iI][nN][eE]|[eE][tT][tT][eE][rR]))'
r'(%(space)s*)(?=[{,])'
r'|(%(nl_strings)s)'
r'|(%(escape)s[^\\"\047u>@\r\n\f\040\t/;:{}]*)'
) % locals()).sub
#print main_sub.__self__.pattern
def main_subber(keep_bang_comments):
""" Make main subber """
in_macie5, in_rule, at_media = [0], [0], [0]
if keep_bang_comments:
space_sub = space_sub_banged
def space_subber(match):
""" Space|Comment subber """
if match.lastindex:
group1, group2 = match.group(1, 2)
if group2:
if group1.endswith(r'\*/'):
in_macie5[0] = 1
else:
in_macie5[0] = 0
return group1
elif group1:
if group1.endswith(r'\*/'):
if in_macie5[0]:
return ''
in_macie5[0] = 1
return r'/*\*/'
elif in_macie5[0]:
in_macie5[0] = 0
return '/**/'
return ''
else:
space_sub = space_sub_simple
def space_subber(match):
""" Space|Comment subber """
if match.lastindex:
if match.group(1).endswith(r'\*/'):
if in_macie5[0]:
return ''
in_macie5[0] = 1
return r'/*\*/'
elif in_macie5[0]:
in_macie5[0] = 0
return '/**/'
return ''
def fn_space_post(group):
""" space with token after """
if group(5) is None or (
group(6) == ':' and not in_rule[0] and not at_media[0]):
return ' ' + space_sub(space_subber, group(4))
return space_sub(space_subber, group(4))
def fn_semicolon(group):
""" ; handler """
return ';' + space_sub(space_subber, group(7))
def fn_semicolon2(group):
""" ; handler """
if in_rule[0]:
return space_sub(space_subber, group(7))
return ';' + space_sub(space_subber, group(7))
def fn_open(group):
""" { handler """
# pylint: disable = W0613
if at_media[0]:
at_media[0] -= 1
else:
in_rule[0] = 1
return '{'
def fn_close(group):
""" } handler """
# pylint: disable = W0613
in_rule[0] = 0
return '}'
def fn_media(group):
""" @media handler """
at_media[0] += 1
return group(13)
def fn_ie7hack(group):
""" IE7 Hack handler """
if not in_rule[0] and not at_media[0]:
in_macie5[0] = 0
return group(14) + space_sub(space_subber, group(15))
return '>' + space_sub(space_subber, group(15))
table = (
None,
None,
None,
None,
fn_space_post, # space with token after
fn_space_post, # space with token after
fn_space_post, # space with token after
fn_semicolon, # semicolon
fn_semicolon2, # semicolon
fn_open, # {
fn_close, # }
lambda g: g(11), # string
lambda g: 'url(%s)' % uri_space_sub(uri_space_subber, g(12)),
# url(...)
fn_media, # @media
None,
fn_ie7hack, # ie7hack
None,
lambda g: g(16) + ' ' + space_sub(space_subber, g(17)),
# :first-line|letter followed
# by [{,] (apparently space
# needed for IE6)
lambda g: nl_unesc_sub('', g(18)), # nl_string
lambda g: post_esc_sub(' ', g(19)), # escape
)
def func(match):
""" Main subber """
idx, group = match.lastindex, match.group
if idx > 3:
return table[idx](group)
# shortcuts for frequent operations below:
elif idx == 1: # not interesting
return group(1)
#else: # space with token before or at the beginning
return space_sub(space_subber, group(idx))
return func
def cssmin(style, keep_bang_comments=False): # pylint: disable = W0621
"""
Minify CSS.
:Parameters:
`style` : ``str``
CSS to minify
`keep_bang_comments` : ``bool``
Keep comments starting with an exclamation mark? (``/*!...*/``)
:Return: Minified style
:Rtype: ``str``
"""
return main_sub(main_subber(keep_bang_comments), style)
return cssmin
cssmin = _make_cssmin()
if __name__ == '__main__':
def main():
""" Main """
import sys as _sys
keep_bang_comments = (
'-b' in _sys.argv[1:]
or '-bp' in _sys.argv[1:]
or '-pb' in _sys.argv[1:]
)
if '-p' in _sys.argv[1:] or '-bp' in _sys.argv[1:] \
or '-pb' in _sys.argv[1:]:
global cssmin # pylint: disable = W0603
cssmin = _make_cssmin(python_only=True)
_sys.stdout.write(cssmin(
_sys.stdin.read(), keep_bang_comments=keep_bang_comments
))
main()

View File

@ -0,0 +1,291 @@
#!/usr/bin/env python
# -*- coding: ascii -*-
#
# Copyright 2011, 2012
# Andr\xe9 Malo or his licensors, as applicable
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
r"""
=====================
Javascript Minifier
=====================
rJSmin is a javascript minifier written in python.
The minifier is based on the semantics of `jsmin.c by Douglas Crockford`_\.
The module is a re-implementation aiming for speed, so it can be used at
runtime (rather than during a preprocessing step). Usually it produces the
same results as the original ``jsmin.c``. It differs in the following ways:
- there is no error detection: unterminated string, regex and comment
literals are treated as regular javascript code and minified as such.
- Control characters inside string and regex literals are left untouched; they
are not converted to spaces (nor to \n)
- Newline characters are not allowed inside string and regex literals, except
for line continuations in string literals (ECMA-5).
- "return /regex/" is recognized correctly.
- "+ +" and "- -" sequences are not collapsed to '++' or '--'
- Newlines before ! operators are removed more sensibly
- rJSmin does not handle streams, but only complete strings. (However, the
module provides a "streamy" interface).
Since most parts of the logic are handled by the regex engine it's way
faster than the original python port of ``jsmin.c`` by Baruch Even. The speed
factor varies between about 6 and 55 depending on input and python version
(it gets faster the more compressed the input already is). Compared to the
speed-refactored python port by Dave St.Germain the performance gain is less
dramatic but still between 1.2 and 7. See the docs/BENCHMARKS file for
details.
rjsmin.c is a reimplementation of rjsmin.py in C and speeds it up even more.
Both python 2 and python 3 are supported.
.. _jsmin.c by Douglas Crockford:
http://www.crockford.com/javascript/jsmin.c
"""
__author__ = "Andr\xe9 Malo"
__author__ = getattr(__author__, 'decode', lambda x: __author__)('latin-1')
__docformat__ = "restructuredtext en"
__license__ = "Apache License, Version 2.0"
__version__ = '1.0.5'
__all__ = ['jsmin']
import re as _re
def _make_jsmin(python_only=False):
"""
Generate JS minifier based on `jsmin.c by Douglas Crockford`_
.. _jsmin.c by Douglas Crockford:
http://www.crockford.com/javascript/jsmin.c
:Parameters:
`python_only` : ``bool``
Use only the python variant. If true, the c extension is not even
tried to be loaded.
:Return: Minifier
:Rtype: ``callable``
"""
# pylint: disable = R0912, R0914, W0612
if not python_only:
try:
import _rjsmin
except ImportError:
pass
else:
return _rjsmin.jsmin
try:
xrange
except NameError:
xrange = range # pylint: disable = W0622
space_chars = r'[\000-\011\013\014\016-\040]'
line_comment = r'(?://[^\r\n]*)'
space_comment = r'(?:/\*[^*]*\*+(?:[^/*][^*]*\*+)*/)'
string1 = \
r'(?:\047[^\047\\\r\n]*(?:\\(?:[^\r\n]|\r?\n|\r)[^\047\\\r\n]*)*\047)'
string2 = r'(?:"[^"\\\r\n]*(?:\\(?:[^\r\n]|\r?\n|\r)[^"\\\r\n]*)*")'
strings = r'(?:%s|%s)' % (string1, string2)
charclass = r'(?:\[[^\\\]\r\n]*(?:\\[^\r\n][^\\\]\r\n]*)*\])'
nospecial = r'[^/\\\[\r\n]'
regex = r'(?:/(?![\r\n/*])%s*(?:(?:\\[^\r\n]|%s)%s*)*/)' % (
nospecial, charclass, nospecial
)
space = r'(?:%s|%s)' % (space_chars, space_comment)
newline = r'(?:%s?[\r\n])' % line_comment
def fix_charclass(result):
""" Fixup string of chars to fit into a regex char class """
pos = result.find('-')
if pos >= 0:
result = r'%s%s-' % (result[:pos], result[pos + 1:])
def sequentize(string):
"""
Notate consecutive characters as sequence
(1-4 instead of 1234)
"""
first, last, result = None, None, []
for char in map(ord, string):
if last is None:
first = last = char
elif last + 1 == char:
last = char
else:
result.append((first, last))
first = last = char
if last is not None:
result.append((first, last))
return ''.join(['%s%s%s' % (
chr(first),
last > first + 1 and '-' or '',
last != first and chr(last) or ''
) for first, last in result])
return _re.sub(r'([\000-\040\047])', # for better portability
lambda m: '\\%03o' % ord(m.group(1)), (sequentize(result)
.replace('\\', '\\\\')
.replace('[', '\\[')
.replace(']', '\\]')
)
)
def id_literal_(what):
""" Make id_literal like char class """
match = _re.compile(what).match
result = ''.join([
chr(c) for c in xrange(127) if not match(chr(c))
])
return '[^%s]' % fix_charclass(result)
def not_id_literal_(keep):
""" Make negated id_literal like char class """
match = _re.compile(id_literal_(keep)).match
result = ''.join([
chr(c) for c in xrange(127) if not match(chr(c))
])
return r'[%s]' % fix_charclass(result)
not_id_literal = not_id_literal_(r'[a-zA-Z0-9_$]')
preregex1 = r'[(,=:\[!&|?{};\r\n]'
preregex2 = r'%(not_id_literal)sreturn' % locals()
id_literal = id_literal_(r'[a-zA-Z0-9_$]')
id_literal_open = id_literal_(r'[a-zA-Z0-9_${\[(!+-]')
id_literal_close = id_literal_(r'[a-zA-Z0-9_$}\])"\047+-]')
space_sub = _re.compile((
r'([^\047"/\000-\040]+)'
r'|(%(strings)s[^\047"/\000-\040]*)'
r'|(?:(?<=%(preregex1)s)%(space)s*(%(regex)s[^\047"/\000-\040]*))'
r'|(?:(?<=%(preregex2)s)%(space)s*(%(regex)s[^\047"/\000-\040]*))'
r'|(?<=%(id_literal_close)s)'
r'%(space)s*(?:(%(newline)s)%(space)s*)+'
r'(?=%(id_literal_open)s)'
r'|(?<=%(id_literal)s)(%(space)s)+(?=%(id_literal)s)'
r'|(?<=\+)(%(space)s)+(?=\+)'
r'|(?<=-)(%(space)s)+(?=-)'
r'|%(space)s+'
r'|(?:%(newline)s%(space)s*)+'
) % locals()).sub
#print space_sub.__self__.pattern
def space_subber(match):
""" Substitution callback """
# pylint: disable = C0321, R0911
groups = match.groups()
if groups[0]: return groups[0]
elif groups[1]: return groups[1]
elif groups[2]: return groups[2]
elif groups[3]: return groups[3]
elif groups[4]: return '\n'
elif groups[5] or groups[6] or groups[7]: return ' '
else: return ''
def jsmin(script): # pylint: disable = W0621
r"""
Minify javascript based on `jsmin.c by Douglas Crockford`_\.
Instead of parsing the stream char by char, it uses a regular
expression approach which minifies the whole script with one big
substitution regex.
.. _jsmin.c by Douglas Crockford:
http://www.crockford.com/javascript/jsmin.c
:Parameters:
`script` : ``str``
Script to minify
:Return: Minified script
:Rtype: ``str``
"""
return space_sub(space_subber, '\n%s\n' % script).strip()
return jsmin
jsmin = _make_jsmin()
def jsmin_for_posers(script):
r"""
Minify javascript based on `jsmin.c by Douglas Crockford`_\.
Instead of parsing the stream char by char, it uses a regular
expression approach which minifies the whole script with one big
substitution regex.
.. _jsmin.c by Douglas Crockford:
http://www.crockford.com/javascript/jsmin.c
:Warning: This function is the digest of a _make_jsmin() call. It just
utilizes the resulting regex. It's just for fun here and may
vanish any time. Use the `jsmin` function instead.
:Parameters:
`script` : ``str``
Script to minify
:Return: Minified script
:Rtype: ``str``
"""
def subber(match):
""" Substitution callback """
groups = match.groups()
return (
groups[0] or
groups[1] or
groups[2] or
groups[3] or
(groups[4] and '\n') or
(groups[5] and ' ') or
(groups[6] and ' ') or
(groups[7] and ' ') or
''
)
return _re.sub(
r'([^\047"/\000-\040]+)|((?:(?:\047[^\047\\\r\n]*(?:\\(?:[^\r\n]|\r?'
r'\n|\r)[^\047\\\r\n]*)*\047)|(?:"[^"\\\r\n]*(?:\\(?:[^\r\n]|\r?\n|'
r'\r)[^"\\\r\n]*)*"))[^\047"/\000-\040]*)|(?:(?<=[(,=:\[!&|?{};\r\n]'
r')(?:[\000-\011\013\014\016-\040]|(?:/\*[^*]*\*+(?:[^/*][^*]*\*+)*/'
r'))*((?:/(?![\r\n/*])[^/\\\[\r\n]*(?:(?:\\[^\r\n]|(?:\[[^\\\]\r\n]*'
r'(?:\\[^\r\n][^\\\]\r\n]*)*\]))[^/\\\[\r\n]*)*/)[^\047"/\000-\040]*'
r'))|(?:(?<=[\000-#%-,./:-@\[-^`{-~-]return)(?:[\000-\011\013\014\01'
r'6-\040]|(?:/\*[^*]*\*+(?:[^/*][^*]*\*+)*/))*((?:/(?![\r\n/*])[^/'
r'\\\[\r\n]*(?:(?:\\[^\r\n]|(?:\[[^\\\]\r\n]*(?:\\[^\r\n][^\\\]\r\n]'
r'*)*\]))[^/\\\[\r\n]*)*/)[^\047"/\000-\040]*))|(?<=[^\000-!#%&(*,./'
r':-@\[\\^`{|~])(?:[\000-\011\013\014\016-\040]|(?:/\*[^*]*\*+(?:[^/'
r'*][^*]*\*+)*/))*(?:((?:(?://[^\r\n]*)?[\r\n]))(?:[\000-\011\013\01'
r'4\016-\040]|(?:/\*[^*]*\*+(?:[^/*][^*]*\*+)*/))*)+(?=[^\000-\040"#'
r'%-\047)*,./:-@\\-^`|-~])|(?<=[^\000-#%-,./:-@\[-^`{-~-])((?:[\000-'
r'\011\013\014\016-\040]|(?:/\*[^*]*\*+(?:[^/*][^*]*\*+)*/)))+(?=[^'
r'\000-#%-,./:-@\[-^`{-~-])|(?<=\+)((?:[\000-\011\013\014\016-\040]|'
r'(?:/\*[^*]*\*+(?:[^/*][^*]*\*+)*/)))+(?=\+)|(?<=-)((?:[\000-\011\0'
r'13\014\016-\040]|(?:/\*[^*]*\*+(?:[^/*][^*]*\*+)*/)))+(?=-)|(?:[\0'
r'00-\011\013\014\016-\040]|(?:/\*[^*]*\*+(?:[^/*][^*]*\*+)*/))+|(?:'
r'(?:(?://[^\r\n]*)?[\r\n])(?:[\000-\011\013\014\016-\040]|(?:/\*[^*'
r']*\*+(?:[^/*][^*]*\*+)*/))*)+', subber, '\n%s\n' % script
).strip()
if __name__ == '__main__':
import sys as _sys
_sys.stdout.write(jsmin(_sys.stdin.read()))

View File

@ -0,0 +1,116 @@
var layerVisibility = {},
orderMappping = {},
layerCount = {},
requestMap = {
'_': updateVisibility,
'w': processComposites,
'd': registerData,
's': updatePixelCount
},
compositeData = {},
needToUpdateOrderTable = true,
missingOrderKeys = true,
nbPixels = 100;
// ------------------------------------------------------------------
function updatePixelCount(nbPixelsSTR) {
nbPixels = Number(nbPixelsSTR);
}
// ------------------------------------------------------------------
function updateVisibility(query) {
var count = query.length;
for(var idx = 0; idx < count; idx += 2) {
layerVisibility[query[idx]] = (query[idx+1] != '_');
layerCount[query[idx]] = 0;
}
needToUpdateOrderTable = true;
}
// ------------------------------------------------------------------
function getLayer(order) {
var count = order.length;
for(var i = 0; i < count; ++i) {
if(layerVisibility[order[i]]) {
return order[i];
}
}
return '+';
}
// ------------------------------------------------------------------
function registerData(dataStr) {
var id_fields_data = dataStr.split('|');
compositeData[id_fields_data[0]] = { fields: JSON.parse(id_fields_data[1]), order: JSON.parse(id_fields_data[2]) };
missingOrderKeys = true;
}
// ------------------------------------------------------------------
function updateOrderKeys() {
if(missingOrderKeys) {
missingOrderKeys = false;
needToUpdateOrderTable = true;
for(var id in compositeData) {
var composite = compositeData[id].order;
for(var order in composite) {
orderMappping[order] = '+';
}
}
}
}
// ------------------------------------------------------------------
function computeOrderMap() {
if(needToUpdateOrderTable) {
needToUpdateOrderTable = false;
for(var order in orderMappping) {
orderMappping[order] = getLayer(order);
}
}
}
// ------------------------------------------------------------------
function resetLayerCount() {
for(var key in layerCount) {
layerCount[key] = 0;
}
return layerCount;
}
// ------------------------------------------------------------------
function processComposites() {
updateOrderKeys();
computeOrderMap();
for(var id in compositeData) {
var composite = compositeData[id].order,
layerCount = resetLayerCount();
for(var order in composite) {
layerCount[orderMappping[order]] += composite[order];
}
// Compute percentage
var ratio = 100 / nbPixels;
for(var layer in layerCount) {
layerCount[layer] *= ratio;
}
postMessage({id:id, count:layerCount, fields: compositeData[id].fields});
}
}
// ------------------------------------------------------------------
onmessage = function (event) {
requestMap[event.data[0]](event.data.substr(1));
}

View File

@ -0,0 +1,141 @@
/* -------------------------------------------- */
/* Sub menu */
/* -------------------------------------------- */
.vtkweb-catalyst-analysis .sub-menu {
position: relative;
top: 0;
background: #999;
color: white;
height: 30px;
}
.vtkweb-catalyst-analysis .sub-menu ul {
list-style: none;
z-index: 100;
}
.vtkweb-catalyst-analysis .sub-menu ul.menu > li {
position: relative;
display: inline;
padding: 0 5px;
}
.vtkweb-catalyst-analysis .sub-menu ul.menu {
position: absolute;
top: 0;
height: 30px;
padding: 5px;
}
.vtkweb-catalyst-analysis .sub-menu ul.menu.right {
right: 0;
}
.vtkweb-catalyst-analysis .sub-menu ul.menu.left {
left: 0;
}
.vtkweb-catalyst-analysis .sub-menu ul.menu ul {
display: none;
background: #ccc;
border-radius: 6px;
border-top: solid 6px #999;
padding-bottom: 6px;
}
.vtkweb-catalyst-analysis .sub-menu ul.menu ul li:hover {
background: #ddd;
}
.vtkweb-catalyst-analysis .sub-menu ul.menu ul > li {
padding: 10px 15px;
}
.vtkweb-catalyst-analysis .sub-menu li.sub:hover > ul {
display: block;
position: absolute;
white-space: nowrap;
color: black;
}
.vtkweb-catalyst-analysis .sub-menu li.sub.active > ul {
display: block;
position: absolute;
white-space: nowrap;
color: black;
}
.vtkweb-catalyst-analysis .sub-menu ul.menu > li.sub:hover > ul {
top: 100%;
left: 0;
}
.vtkweb-catalyst-analysis .sub-menu ul.menu ul li.sub:hover > ul {
top: 0;
left: 100%;
}
.vtkweb-catalyst-analysis .sub-menu li i.help {
position: absolute;
left: 100%;
top: 5px;
color: black;
padding: 10px;
background: #FFFFCC;
border-radius: 5px;
margin-left: 5px;
border: solid 1px #999;
}
.vtkweb-catalyst-analysis .sub-menu li:hover > i.help {
display: block;
}
/* -------------------------------------------- */
/* view content */
/* -------------------------------------------- */
.vtkweb-catalyst-analysis .bench-content .bench-viewers {
position: relative;
top: 5px;
}
.vtkweb-catalyst-analysis .bench-content .bench-viewers .viewer {
position: relative;
float: left;
border: solid 1px black;
border-radius: 5px;
margin-left: 10px;
margin-top: 10px;
overflow: hidden;
}
.vtkweb-catalyst-analysis .bench-content .bench-viewers .viewer .title-bar {
position: relative;
width: 100%;
background: black;
height: 20px;
color: white;
padding-left: 5px;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.vtkweb-catalyst-analysis .bench-content .bench-viewers .viewer .title-bar .right {
float: right;
margin-right: 5px;
cursor: pointer;
}
.vtkweb-catalyst-analysis .bench-content .bench-viewers .viewer .content {
position: absolute;
top: 20px;
bottom: 0px;
left: 0px;
right: 0px;
}

View File

@ -0,0 +1,125 @@
(function ($, GLOBAL) {
var TOOLBAR_TEMPLATE = '<div class=sub-menu><ul class="menu left"><li class="vtk-icon-list-add sub action" data-type="composite-image-stack"><ul></ul></li><li class="vtk-icon-chart-line sub action" data-type="catalyst-resample-viewer"><ul></ul></li><li class="vtk-icon-loop-alt sub action" data-type="catalyst-viewer"><ul></ul></li><li class="vtk-icon-laptop sub action" data-type="catalyst-pvweb"><ul></ul></li></ul><ul class="menu right"><li class="layout-size" data-layout-size="2"><span class="layout-value">50 %</span><span class="vtk-icon-zoom-in zoom-action" data-delta=-1/><span class="vtk-icon-zoom-out zoom-action" data-delta=1/></li><li class="vtk-icon-magic action"/><li class="vtk-icon-trash"/></ul></div><div class="bench-viewers"></div>',
ENTRY_TEMPLATE = '<li class="create-viewer" data-path="PATH" data-title="TITLE">TITLE<i class=help>DESCRIPTION</i></li>',
VIEWER_FACTORY = {
"catalyst-viewer": {
class: "vtk-icon-loop-alt",
factory: function(domToFill, path) {
domToFill.vtkCatalystViewer(path, false);
}
},
"catalyst-resample-viewer" : {
class: "vtk-icon-chart-line",
factory: function(domToFill, path) {
domToFill.vtkCatalystResamplerViewer(path);
}
},
"composite-image-stack" : {
class: "vtk-icon-list-add",
factory: function(domToFill, path) {
domToFill.vtkCatalystCompositeViewer(path);
}
},
"catalyst-pvweb" : {
class: "vtk-icon-laptop",
factory: function(domToFill, path) {
domToFill.vtkCatalystPVWeb(path);
}
}
};
// ------------------------------------------------------------------------
function initializeListeners(container) {
$('.create-viewer', container).addClass('action').click(function(){
var me = $(this),
path = me.attr('data-path'),
type = me.parent().parent().attr('data-type'),
title = me.attr('data-title'),
workspace = $('.bench-viewers', container),
layoutSize = Number($('.layout-size', container).attr('data-layout-size')),
size = $(window).width() / layoutSize - 15,
viewer = $('<div/>', { class: 'viewer', 'data-type': type, html: "<div class='title-bar'><span class='title'>"+title+"</span><span class='right action close vtk-icon-cancel'/></div><div class='content'></div>"});
$('li.sub', container).removeClass('active');
// Attach close action to viewer
$('.close', viewer).bind('click', function(){
viewer.remove();
});
// Add viewer
viewer.css('width', (size-2) + 'px').css('height', (20 + size - 2) + 'px').appendTo(workspace);
// Provide content
VIEWER_FACTORY[type].factory($('.content', viewer), path);
});
$('.vtk-icon-trash', container).addClass('action').click(function(){
$('.close', container).trigger('click');
});
$('.zoom-action', container).addClass('action').click(function(){
var me = $(this),
size = Number(me.parent().attr('data-layout-size')),
delta = Number(me.attr('data-delta'));
size += delta;
if(size < 1) {
size = 1;
} else if(size > 5) {
size = 5;
}
me.parent().attr('data-layout-size', size);
$('.layout-value', me.parent).html( Math.floor(100/size) + ' %');
});
$('.vtk-icon-magic').hide();
$('.sub-menu li.sub', container).click(function(){
var me = $(this), alreadyActive = me.hasClass('active');
$('li.sub', me.parent()).removeClass('active');
if(!alreadyActive) {
me.addClass('active');
}
});
}
/**
* jQuery catalyst view constructor.
*
* @member jQuery.vtkCatalystViewer
* @param project
* @param basePath
* Root directory for data to visualize
*/
$.fn.vtkCatalystAnalysisBench = function(project, dataBasePath) {
return this.each(function() {
var me = $(this).unbind().empty().html(TOOLBAR_TEMPLATE),
menu = $('.menu.left', me),
buffer = [],
analysis = project.analysis,
count = analysis.length,
containers = {
"composite-image-stack" : $('.menu.left > li[data-type="composite-image-stack"] > ul', me),
"catalyst-resample-viewer" : $('.menu.left > li[data-type="catalyst-resample-viewer"] > ul', me),
"catalyst-viewer" : $('.menu.left > li[data-type="catalyst-viewer"] > ul', me),
"catalyst-pvweb" : $('.menu.left > li[data-type="catalyst-pvweb"] > ul', me)
},
buffers = { "composite-image-stack" : [], "catalyst-resample-viewer" : [], "catalyst-viewer" : [], "catalyst-pvweb" : [] };
// Fill buffers
while(count--) {
var item = analysis[count];
buffers[item.type].push(ENTRY_TEMPLATE.replace(/PATH/g, dataBasePath + '/' + item.id).replace(/TITLE/g, item.title).replace(/DESCRIPTION/g, item.description));
}
// Update UI
for(var key in containers) {
containers[key].html(buffers[key].join(''));
}
// Handle listeners
initializeListeners(me);
});
}
}(jQuery, window));

View File

@ -0,0 +1,83 @@
.vtkweb-catalyst-analysis .estimate-content {
margin-top: 10px;
}
.vtkweb-catalyst-analysis .estimate-content select {
position: relative;
right: 0px;
width: 50%;
}
.vtkweb-catalyst-analysis .estimate-content li {
line-height: 2em;
}
.vtkweb-catalyst-analysis .estimate-content div.label {
position: relative;
width: 40%;
margin-right: 10px;
display: inline-block;
}
.vtkweb-catalyst-analysis .estimate-content div.label > .value {
position: absolute;
right: 5px;
}
.vtkweb-catalyst-analysis .estimate-content input[type='range'] {
position: relative;
left: -8px;
top: 3px;
width: 50%;
}
.vtkweb-catalyst-analysis .estimate-content input[type='text'] {
position: relative;
width: 50%;
}
.vtkweb-catalyst-analysis .estimate-content input[type='text'].half {
position: relative;
width: 22%;
}
.vtkweb-catalyst-analysis .estimate-content ul {
list-style: none;
}
.vtkweb-catalyst-analysis .estimate-content .input {
position: relative;
float: left;
clear: left;
width: 45%;
padding: 10px;
margin: 10px 0;
margin-left: 1.5%;
border-radius: 5px;
border: solid 1px black;
}
.vtkweb-catalyst-analysis .estimate-content .input.right {
float: right;
margin: 10px 0;
margin-right: 1.5%;
}
.vtkweb-catalyst-analysis .estimate-content .title {
position: absolute;
top: -0.8em;
left: 10px;
background: white;
font-weight: bold;
padding: 0 5px;
}
.vtkweb-catalyst-analysis .estimate-content .output {
clear: both;
position: relative;
width: 96%;
padding: 10px;
margin: 0px auto;
border-radius: 5px;
border: solid 1px black;
top: 20px;
}

View File

@ -0,0 +1,285 @@
(function ($, GLOBAL) {
var EXPLORATION_TEMPLATE = "<div class='input exploration-config'><div class='title'>Exploration settings</div><ul><li><div class='label'>Exploration type</div><select><option>Composite</option><option>Image base</option></select></li><li class='for-composite'><div class='label'>Number of geometries<span class='value'></span></div><input class='slider nb-geo' type='range' value='11' min='1' max='62'/></li><li class='for-composite'><div class='label'>Number of captures <span class='value'></span></div><input class='slider nb-all' type='range' value='21' min='1' max='128'/></li><li><div class='label'>Parameter range</div><input name='params' type='text' value='1,1'/></li></ul></div>",
CAMERA_TEMPLATE = "<div class='input right camera-handler'><div class='title'>Camera settings</div><ul><li><div class='label'>Camera manager</div><select><option value='360'>360+</option><option value='w'>Wobble</option><option value='f'>Fix</option></select></li><li class='360 w'><div class='label'>Sampling Phi angle <span class='value'></span></div><input class='slider' type='range' min='5' max='180' value='18' name='phi'/></li><li class='360'><div class='label'>Sampling Theta angle <span class='value'></span></div><input class='slider' type='range' min='5' value='30' max='85' name='theta'/></li><li><div class='label'>Total number of viewpoint</div><span class='nb-view-points'></span></li></ul></div>",
IMAGE_TEMPLATE = "<div class='input image-config'><div class='title'>Image settings</div><ul><li><div class='label'>Image type</div><select><option>JPG</option><option>PNG</option><option>TIFF</option></select></li><li><div class='label'>Image resolution</div><input type='text' value='500' name='width' class='half'/> x <input type='text' value='500' name='height' class='half'/></li></ul></div>",
RESULT_TEMPLATE = "<div class='output estimate-result'><div class='title'>Cost estimate</div><table><tr><td>Average render time for the scene</td><td> : <input type='text' name='avg-render-time' value='200'/> ms</td></tr><tr><td>Total number of images</td><td> : <span class='total-nb-images'></span></td></tr><tr><td>Estimate image size</td><td> : <span class='image-size'></span></td></tr><tr><td>Total data size</td><td> : <span class='total-disk-usage'></span></td></tr><tr><td>Estimated time cost</td><td> : <span class='time-cost'></span></td></tr></table></div>",
PAGE_CONTENT = [CAMERA_TEMPLATE, EXPLORATION_TEMPLATE, IMAGE_TEMPLATE, RESULT_TEMPLATE],
MagicNumbers = {
"PNG": {
'space': function(nbPixels) { return nbPixels * 0.6; },
'time' : function(nbPixels) { return nbPixels * 0.000000204032; }
},
"JPG": {
'space': function(nbPixels) { return nbPixels * 0.24; }, // Max noticed and PNG is usally 2.5 bigger
'time' : function(nbPixels) { return nbPixels * 0.000000131541818181818; }
},
"TIFF": {
'space': function(nbPixels) { return nbPixels * 3.028; },
'time' : function(nbPixels) {
var imageSize = nbPixels * 3.028,
bufferDisk = 16000000;
return (imageSize < bufferDisk) ? 0.0000000241866666666667 * nbPixels : 0.000000102088 * nbPixels;
}
},
"COMPOSITE": {
'space': function(nbPixels) { return nbPixels * 0.448; },
'time' : function(nbPixels) { return nbPixels * 0.000000642785454545454;}
},
"RGB_CAPTURE": {
'space': function(nbPixels) { return 0; },
'time' : function(nbPixels) { return nbPixels * 0.00000898981818181818;}
}
};
// ========================================================================
function getNbPixels(container) {
var width = Number($('input[name="width"]', container).val()),
height = Number($('input[name="height"]', container).val()),
nbObjects = ($('.exploration-config select', container).val() == "Composite") ? (1+Number($('.exploration-config .slider.nb-all', container).val())) : 1;
return (width*height*nbObjects);
}
// ========================================================================
function getNbZPixels(container) {
var width = Number($('input[name="width"]', container).val()),
height = Number($('input[name="height"]', container).val()),
format = $('.image-config select', container).val(),
nbObjects = ($('.exploration-config select', container).val() == "Composite") ? (1+Number($('.exploration-config .slider.nb-geo', container).val())) : 1;
return (width*height*nbObjects);
}
// ========================================================================
function getImageSize(container) {
var format = $('.image-config select', container).val();
return MagicNumbers[format]['space'](getNbPixels(container));
}
// ========================================================================
function getImageTime(container) {
var format = $('.image-config select', container).val();
return MagicNumbers[format]['time'](getNbPixels(container));
}
// ========================================================================
function getCompositeSize(container) {
return MagicNumbers["COMPOSITE"]['space'](getNbZPixels(container));
}
// ========================================================================
function getCompositeTime(container) {
return MagicNumbers["COMPOSITE"]['time'](getNbZPixels(container));
}
// ========================================================================
function formula(cost) {
var dollarsAmount = 0;
if(cost) {
if(cost["time"]) {
dollarsAmount += 0.001 * cost["time"];
}
if(cost["space"]) {
dollarsAmount += 0.000000002 * cost["space"];
}
if(cost["images"]) {
dollarsAmount += 0.001 * cost["images"];
}
}
return dollarsAmount;
}
// ========================================================================
function formatTime(t) {
var seconds = Number(t),
minutes = Math.floor(seconds / 60),
hours = Math.floor(minutes / 60),
buffer = [];
seconds %= 60;
seconds = Math.floor(seconds);
minutes %= 60;
minutes = Math.floor(minutes);
if(hours > 0) {
buffer.push(hours);
}
if(minutes > 0 || hours > 0) {
buffer.push(("00" + minutes).slice (-2));
}
if(seconds > 0 || minutes > 0 || hours > 0) {
buffer.push(("00" + seconds).slice (-2));
}
return buffer.join(':');
}
// ========================================================================
function formatSpace(t) {
var space = Number(t), unit = [ ' B', ' K', ' M', ' G', ' T'], currentUnit = 0;
while(space > 1000) {
space /= 1000;
currentUnit++;
}
return space.toFixed(2) + unit[currentUnit];
}
// ========================================================================
function formatDollars(v) {
x = v.toFixed(2).toString();
var pattern = /(-?\d+)(\d{3})/;
while (pattern.test(x)) {
x = x.replace(pattern, "$1,$2");
}
return x;
}
// ------------------------------------------------------------------------
function updateNumberOfImages(container) {
var nbImagesContainer = $('.total-nb-images', container),
parameters = $('.exploration-config input[name="params"]', container).val().split(','),
nbViews = Number($('.nb-view-points', container).attr('data-value')),
nbParams = 1;
for(var idx in parameters) {
nbParams *= Number(parameters[idx]);
}
nbImagesContainer.html(nbParams*nbViews).attr('data-value', nbParams*nbViews);
updateTotalEstimate(container);
}
// ------------------------------------------------------------------------
function updateImageSize(container) {
$('.output .image-size', container).html(formatSpace(getImageSize(container)));
updateTotalEstimate(container);
}
// ------------------------------------------------------------------------
function updateCameraEstimate(container) {
var phiContainer = $('.w.360 span.value', container),
phi = Number($('input[name="phi"]', container).val()),
theta = Number($('input[name="theta"]', container).val()),
resultContainer = $('.nb-view-points', container),
cameraType = $('.camera-handler select', container).val();
$('.360,.w', container).hide();
if (cameraType == 'f') {
resultContainer.html("1").attr('data-value', 1);
} else if (cameraType == '360') {
$('.360', container).show();
var a = Math.floor(360/phi), b = (1 + 2*Math.floor(89/theta));
resultContainer.html(a + " x " + b + " = " + (a*b)).attr('data-value', (a*b));
if(360%phi === 0) {
phiContainer.css('color', 'black');
} else {
phiContainer.css('color', 'red');
}
} else if (cameraType == 'w') {
$('.w', container).show();
resultContainer.html("9").attr('data-value', 9);
}
updateNumberOfImages(container);
}
// ------------------------------------------------------------------------
function updateTotalEstimate(container) {
var totalSizeContainer = $('.total-disk-usage', container),
totalTimeContainer = $('.time-cost', container),
nbImages = Number( $('.total-nb-images', container).attr('data-value')),
dataSizePerImage = getImageSize(container),
timePerImage = getImageTime(container),
nbRender = nbImages,
renderTime = Number($('.output input', container).val()) / 1000,
rgbCaptureTime = MagicNumbers["RGB_CAPTURE"]['time'](getNbPixels(container));
if ($('.exploration-config select', container).val() == "Composite") {
dataSizePerImage += getCompositeSize(container);
timePerImage += getCompositeTime(container);
nbRender *= 1 + Number($('.exploration-config .slider.nb-all', container).val());
}
// console.log('nb pix: ' + getNbPixels(container));
// console.log('image size: ' + getImageSize(container));
// console.log('composite size: ' + getCompositeSize(container));
// console.log('composite time: ' + getCompositeTime(container));
totalSizeContainer.html(formatSpace(dataSizePerImage*nbImages));
totalTimeContainer.html(formatTime(timePerImage*nbImages + (renderTime*nbRender) + rgbCaptureTime));
}
// ------------------------------------------------------------------------
function initializeListeners(container) {
$('.slider', container).bind('keyup change',function(){
var me = $(this);
$('.value', me.parent()).html(me.val());
updateCameraEstimate(container);
}).trigger('change');
$('.camera-handler select', container).change(function(){
updateCameraEstimate(container);
}).trigger('change');
$('.exploration-config input[name="params"]', container).change(function(){
updateNumberOfImages(container);
});
$('.exploration-config select', container).change(function(){
var me = $(this),
isComposite = (me.val() == "Composite");
if(isComposite) {
$('.for-composite', container).show();
} else {
$('.for-composite', container).hide();
}
updateImageSize(container);
});
$('.image-config select, .exploration-config .slider, .image-config input').bind('keyup change', function(){
updateImageSize(container);
}).trigger('change');
$('.output input').change(function(){
updateTotalEstimate(container);
});
}
// ------------------------------------------------------------------------
/**
* jQuery catalyst view constructor.
*
* @member jQuery.vtkCatalystViewer
* @param project
* @param basePath
* Root directory for data to visualize
*/
$.fn.vtkCatalystAnalysisCostEstimate = function() {
return this.each(function() {
var me = $(this).unbind().empty().addClass('cost-estimate').html(PAGE_CONTENT.join(''));
initializeListeners(me);
});
}
}(jQuery, window));

View File

@ -0,0 +1,44 @@
.vtkweb-catalyst-analysis .cost-content table.catalyst-bill {
width: 98%;
border-collapse:collapse;
margin: 15px auto;
}
.vtkweb-catalyst-analysis .cost-content .catalyst-bill td {
vertical-align: middle;
}
.vtkweb-catalyst-analysis .cost-content .catalyst-bill td.title {
text-align: left;
}
.vtkweb-catalyst-analysis .cost-content .catalyst-bill td.value {
width: 150px;
text-align: center;
}
.vtkweb-catalyst-analysis .cost-content .catalyst-bill tr.head {
background: #ddd;
}
.vtkweb-catalyst-analysis .cost-content .catalyst-bill tr.head td {
text-align: center;
}
.vtkweb-catalyst-analysis .cost-content .catalyst-bill tr.head td.empty {
}
.vtkweb-catalyst-analysis .cost-content .catalyst-bill tr td {
border: solid 1px #ccc;
padding: 5px;
}
.vtkweb-catalyst-analysis .cost-content .catalyst-bill tr.sum {
background: #ddd;
}
.vtkweb-catalyst-analysis .cost-content .catalyst-bill tr.sum td {
text-align: center;
font-weight: bold;
}

View File

@ -0,0 +1,130 @@
(function ($, GLOBAL) {
var TYPE_CONVERTER = {
"catalyst-viewer": "vtk-icon-loop-alt",
"catalyst-resample-viewer" : "vtk-icon-chart-line",
"composite-image-stack" : "vtk-icon-list-add",
"catalyst-pvweb" : "vtk-icon-laptop"
};
// ========================================================================
function formula(cost) {
var dollarsAmount = 0;
if(cost) {
if(cost["time"]) {
dollarsAmount += 0.001 * cost["time"];
}
if(cost["space"]) {
dollarsAmount += 0.000000002 * cost["space"];
}
if(cost["images"]) {
dollarsAmount += 0.001 * cost["images"];
}
}
return dollarsAmount;
}
// ========================================================================
function formatTime(t) {
var seconds = Number(t),
minutes = Math.floor(seconds / 60),
hours = Math.floor(minutes / 60),
buffer = [];
seconds %= 60;
seconds = Math.floor(seconds);
minutes %= 60;
minutes = Math.floor(minutes);
if(hours > 0) {
buffer.push(hours);
}
if(minutes > 0 || hours > 0) {
buffer.push(("00" + minutes).slice (-2));
}
if(seconds > 0 || minutes > 0 || hours > 0) {
buffer.push(("00" + seconds).slice (-2));
}
return buffer.join(':');
}
// ========================================================================
function formatSpace(t) {
var space = Number(t), unit = [ ' B', ' K', ' M', ' G', ' T'], currentUnit = 0;
while(space > 1000) {
space /= 1000;
currentUnit++;
}
return space.toFixed(2) + unit[currentUnit];
}
// ========================================================================
function formatDollars(v) {
x = v.toFixed(2).toString();
var pattern = /(-?\d+)(\d{3})/;
while (pattern.test(x)) {
x = x.replace(pattern, "$1,$2");
}
return x;
}
// ------------------------------------------------------------------------
function buildBillingPage(info, path, formula) {
var content = [ "<table class='catalyst-bill'><tr class='head'></td><td class='empty title'></td><td><span class='vtk-icon-resize-horizontal-1'/></td><td><span class='vtk-icon-clock'/></td><td><span class='vtk-icon-database'/></td><td><span class='vtk-icon-picture-1'/></td><td><span class='vtk-icon-dollar'/></td></tr>" ],
total = { "space": 0, "images": 0, "time": 0 , "dollars": 0},
analysisCount = info['analysis'].length;
// Add each analysis
while(analysisCount--) {
var item = info['analysis'][analysisCount],
cost = item['cost'],
dollars = formula(cost);
total['space'] += cost['space'];
total['images'] += cost['images'];
total['time'] += cost['time'];
total['dollars'] += dollars;
content.push(buildBillEntry(item, cost, dollars));
}
// Add total
content.push("<tr class='sum'><td>Total</td><td></td><td>"+ formatTime(total["time"]) +"</td><td>"+ formatSpace(total["space"]) +"</td><td>"+ total["images"] +"</td><td>"+ formatDollars(total["dollars"]) +"</td></tr></table>")
return "<div class='view cost'>" + content.join('') + "</div>";
}
// ------------------------------------------------------------------------
function buildBillEntry(item, cost, dollars) {
var classType = TYPE_CONVERTER[item["type"]],
title = item["title"],
time = cost["time"],
space = cost["space"],
images = cost["images"],
width = cost.hasOwnProperty('image-width') ? cost["image-width"] : "";
return "<tr><td class='title'><span class='" + classType + "'/>" + title + "</td><td class='image-width value'>"+width+"</td><td class='time value'>" + formatTime(time) + "</td><td class='space value'>" + formatSpace(space) + "</td><td class='images value'>" + images + "</td><td class='dollars value'>" + formatDollars(dollars) + "</td></tr>";
}
/**
* jQuery catalyst view constructor.
*
* @member jQuery.vtkCatalystViewer
* @param project
* @param basePath
* Root directory for data to visualize
*/
$.fn.vtkCatalystAnalysisCost = function(project, dataBasePath) {
return this.each(function() {
var me = $(this).unbind().empty().html(buildBillingPage(project, dataBasePath, formula));
});
}
}(jQuery, window));

View File

@ -0,0 +1,70 @@
.vtkweb-catalyst-analysis-search .search-toolbar {
position: relative;
width: 98%;
padding: 10px;
}
.vtkweb-catalyst-analysis-search .search-toolbar input[type='range'] {
float: right;
}
.vtkweb-catalyst-analysis-search .search-toolbar input[type='text'] {
width: 30%;
margin: 0 10px 0 10px;
}
.vtkweb-catalyst-analysis-search .search-toolbar input.sort-expression {
width: 7%;
}
.vtkweb-catalyst-analysis-search .search-toolbar i {
display: none;
position: absolute;
top: 50px;
left: 10px;
border: solid 1px black;
border-radius: 5px;
background: white;
padding: 10px;
z-index: 10;
}
.vtkweb-catalyst-analysis-search .search-toolbar:hover i {
display: block;
}
.vtkweb-catalyst-analysis-search .query-result {
margin: 10px;
border-radius: 5px;
border: solid 1px black;
position: relative;
float: left;
overflow: hidden;
}
.vtkweb-catalyst-analysis-search .query-stats {
position: absolute;
top: 0;
left: 0;
background: rgba(255, 255, 255, 0.7);
padding: 10px;
border-radius: 5px;
z-index: 2;
}
.vtkweb-catalyst-analysis-search .query-result .image-result {
position: relative;
width: 100%;
z-index: 1;
}
.vtkweb-catalyst-analysis-search .search-button {
padding: 2px;
border-radius: 4px;
border: solid 1px black;
background: white;
margin-left: 15px;
}
.vtkweb-catalyst-analysis-search .toggle-stats.stats {
background: #ccc;
}

Some files were not shown because too many files have changed in this diff Show More