This commit is contained in:
2024-05-20 15:37:46 +03:00
commit 00b7dbd0b7
10404 changed files with 3285853 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 558 B

View File

@ -0,0 +1,62 @@
import '../scss/app.scss';
/**
* Admin modules
*/
const WP_Smush = WP_Smush || {};
window.WP_Smush = WP_Smush;
/**
* IE polyfill for includes.
*
* @since 3.1.0
* @param {string} search
* @param {number} start
* @return {boolean} Returns true if searchString appears as a substring of the result of converting this
* object to a String, at one or more positions that are
* greater than or equal to position; otherwise, returns false.
*/
if ( ! String.prototype.includes ) {
String.prototype.includes = function( search, start ) {
if ( typeof start !== 'number' ) {
start = 0;
}
if ( start + search.length > this.length ) {
return false;
}
return this.indexOf( search, start ) !== -1;
};
}
require( './modules/helpers' );
require( './modules/admin' );
require( './modules/admin-common' );
require( './modules/bulk-smush' );
require( './modules/nextgen-bulk' );
require( './modules/background-process' );
require( './common/media-library-scanner' );
require( './modules/media-library-scanner-on-bulk-smush' );
require( './modules/media-library-scanner-on-dashboard' );
require( './modules/onboarding' );
require( './modules/directory-smush' );
require( './smush/cdn' );
require( './smush/webp' );
require( './smush/lazy-load' );
require( './modules/bulk-restore' );
require( './smush/settings' );
require( './smush/product-analytics' );
/**
* Notice scripts.
*
* Notices are used in the following functions:
*
* @used-by \Smush\Core\Modules\Smush::smush_updated()
* @used-by \Smush\Core\Integrations\S3::3_support_required_notice()
* @used-by \Smush\App\Abstract_Page::installation_notice()
*
* TODO: should this be moved out in a separate file like common.scss?
*/
require( './modules/notice' );

View File

@ -0,0 +1,222 @@
/* global WP_Smush */
export const UpsellManger = ( () => {
return {
maybeShowCDNActivationNotice() {
if ( ! wp_smush_msgs.smush_cdn_activation_notice ) {
return;
}
WP_Smush.helpers.renderActivationCDNNotice( wp_smush_msgs.smush_cdn_activation_notice );
},
maybeShowCDNUpsellForPreSiteOnStart() {
const upsellCdn = document.querySelector( '.wp-smush-upsell-cdn' );
if ( upsellCdn ) {
upsellCdn.querySelector( 'p' ).innerHTML = wp_smush_msgs.processing_cdn_for_free;
upsellCdn.classList.remove( 'sui-hidden' );
}
},
maybeShowCDNUpsellForPreSiteOnCompleted() {
const upsellCdn = document.querySelector( '.wp-smush-upsell-cdn' );
if ( upsellCdn ) {
upsellCdn.querySelector( 'p' ).innerHTML = wp_smush_msgs.processed_cdn_for_free;
upsellCdn.classList.remove( 'sui-hidden' );
}
}
};
} )();
export const GlobalStats = ( () => {
const $ = document.querySelector.bind( document );
const summarySmush = $( '.sui-summary-smush-metabox' );
if ( ! summarySmush ) {
return {};
}
// Cache initial stats.
let boStats = window.wp_smushit_data.bo_stats;
let globalStats = {
count_images: 0,
count_total: 0,
count_resize: 0,
count_skipped: 0,
count_smushed: 0,
savings_bytes: 0,
savings_resize: 0,
size_after: 0,
size_before: 0,
savings_percent: 0,
percent_grade: 'sui-grade-dismissed',
percent_metric: 0,
percent_optimized: 0,
remaining_count: 0,
human_bytes: '',
savings_conversion_human: '',
savings_conversion: 0,
};
const imageScore = $( '#smush-image-score' );
const logBulk = $( '.smush-final-log .smush-bulk-errors' );
const bulkSmushCountContent = $( '#wp-smush-bulk-content' );
let allErrors = {};
const generateGlobalStatsFromSmushData = ( smushScriptData ) => {
window.wp_smushit_data = Object.assign( window.wp_smushit_data, smushScriptData || {} );
globalStats = Object.keys( globalStats ).reduce( function( newStats, key ) {
if ( key in window.wp_smushit_data ) {
newStats[ key ] = window.wp_smushit_data[ key ];
}
return newStats;
}, {} );
}
generateGlobalStatsFromSmushData( window.wp_smushit_data );
return {
isChangedStats( newBoStats ) {
const primaryKeys = [ 'total_items', 'processed_items', 'failed_items', 'is_cancelled', 'is_completed' ];
return primaryKeys.some( ( key ) => {
return newBoStats[ key ] !== boStats[ key ];
} );
},
setBoStats( newBoStats ) {
boStats = Object.assign( boStats, newBoStats || {} );
return this;
},
getBoStats() {
return boStats;
},
setGlobalStats( newGlobalStats ) {
globalStats = Object.assign( globalStats, newGlobalStats || {} );
return this;
},
getGlobalStats() {
return globalStats;
},
/**
* Circle progress bar.
*/
renderScoreProgress() {
imageScore.className = imageScore.className.replace( /(^|\s)sui-grade-\S+/g, '' );
imageScore.classList.add( globalStats.percent_grade );
imageScore.dataset.score = globalStats.percent_optimized;
imageScore.querySelector( '.sui-circle-score-label' ).innerHTML = globalStats.percent_optimized;
imageScore
.querySelector( 'circle:last-child' )
.setAttribute( 'style', '--metric-array:' + ( 2.63893782902 * globalStats.percent_metric ) + ' ' + ( 263.893782902 - globalStats.percent_metric ) );
},
/**
* Summary detail - center meta box.
*/
renderSummaryDetail() {
this.renderTotalStats();
this.renderResizedStats();
this.renderConversionSavings();
},
renderTotalStats() {
// Total savings.
summarySmush.querySelector( '.sui-summary-large.wp-smush-stats-human' ).innerHTML = globalStats.human_bytes;
// Update the savings percent.
summarySmush.querySelector( '.wp-smush-savings .wp-smush-stats-percent' ).innerHTML = globalStats.savings_percent;
// To total smushed images files.
summarySmush.querySelector( '.wp-smush-count-total .wp-smush-total-optimised' ).innerHTML = globalStats.count_images;
},
renderResizedStats() {
const resizeCountElement = summarySmush.querySelector( '.wp-smush-count-resize-total' );
if ( ! resizeCountElement ) {
return;
}
if ( globalStats.count_resize > 0 ) {
resizeCountElement.classList.remove( 'sui-hidden' );
} else {
resizeCountElement.classList.add( 'sui-hidden' );
}
resizeCountElement.querySelector( '.wp-smush-total-optimised' ).innerHTML = globalStats.count_resize;
},
renderConversionSavings() {
// PNG2JPG Savings.
const conversionSavingsElement = summarySmush.querySelector( '.smush-conversion-savings .wp-smush-stats' );
if ( ! conversionSavingsElement ) {
return;
}
conversionSavingsElement.innerHTML = globalStats.savings_conversion_human;
if ( globalStats.savings_conversion > 0 ) {
conversionSavingsElement.parentElement.classList.remove( 'sui-hidden' );
} else {
conversionSavingsElement.parentElement.classList.add( 'sui-hidden' );
}
},
renderBoxSummary() {
// Circle core progress.
this.renderScoreProgress();
// Summary detail.
this.renderSummaryDetail();
},
setErrors( newErrors ) {
allErrors = newErrors || {};
},
getErrors() {
return allErrors;
},
renderErrors() {
if ( ! Object.keys( allErrors ).length || ! boStats.is_completed ) {
return;
}
const errors = [];
const errorKeys = Object.keys( allErrors );
// Cache error code to avoid double upsell notice.
let showAnimatedUpsell = false;
errorKeys.map( ( image_id, index ) => {
const upsellErrorCode = allErrors[ image_id ].error_code;
if ( index < 5 && 'animated' === upsellErrorCode ) {
showAnimatedUpsell = true;
}
errors.push( WP_Smush.helpers.prepareBulkSmushErrorRow(
allErrors[ image_id ].error_message,
allErrors[ image_id ].file_name,
allErrors[ image_id ].thumbnail,
image_id,
'media',
allErrors[ image_id ].error_code,
) );
}
);
logBulk.innerHTML = errors.join( '' );
logBulk.parentElement.classList.remove( 'sui-hidden' );
logBulk.parentElement.style.display = null;
// Show view all.
if ( errorKeys.length > 1 ) {
$( '.smush-bulk-errors-actions' ).classList.remove( 'sui-hidden' );
}
// Show animated upsell CDN if user disabled CDN and found an animated error in first 5 errors.
if ( showAnimatedUpsell ) {
UpsellManger.maybeShowCDNActivationNotice();
}
},
resetAndHideBulkErrors() {
if ( ! logBulk ) {
return;
}
this.resetErrors();
logBulk.parentElement.classList.add( 'sui-hidden' );
logBulk.innerHTML = '';
},
resetErrors() {
allErrors = {};
},
renderStats() {
// Render Smush box summary.
this.renderBoxSummary();
// Render Errors.
this.renderErrors();
},
maybeUpdateBulkSmushCountContent( newContent ) {
if ( newContent && bulkSmushCountContent ) {
bulkSmushCountContent.innerHTML = newContent;
}
},
updateGlobalStatsFromSmushScriptData( smushScriptData ) {
this.maybeUpdateBulkSmushCountContent( smushScriptData?.content );
generateGlobalStatsFromSmushData( smushScriptData );
return this;
},
};
} )();

View File

@ -0,0 +1,267 @@
/* global WP_Smush */
/**
* Abstract Media Library Scanner.
*
*/
import Fetcher from '../utils/fetcher';
import { scanProgressBar } from './progressbar';
import { GlobalStats } from './globalStats';
const { __ } = wp.i18n;
export default class MediaLibraryScanner {
constructor() {
this.autoSyncDuration = 1500;
this.progressTimeoutId = 0;
this.scanProgress = scanProgressBar( this.autoSyncDuration );
}
startScan( optimizeOnScanCompleted = false ) {
this.onStart();
return Fetcher.scanMediaLibrary.start( optimizeOnScanCompleted ).then( ( response ) => {
if ( ! response?.success ) {
this.onStartFailure( response );
return;
}
this.showProgressBar().autoSyncStatus();
} );
}
onStart() {
// Do nothing at the moment.
}
onStartFailure( response ) {
WP_Smush.helpers.showNotice( response, {
showdismiss: true,
autoclose: false,
} );
}
showProgressBar() {
this.onShowProgressBar();
this.scanProgress.reset().setOnCancelCallback( this.showStopScanningModal.bind( this ) ).open();
return this;
}
onShowProgressBar() {
// Do nothing at the moment.
}
showStopScanningModal() {
if ( ! window.SUI ) {
return;
}
this.onShowStopScanningModal();
window.SUI.openModal(
'smush-stop-scanning-dialog',
'wpbody-content',
undefined,
false
);
}
onShowStopScanningModal() {
this.registerCancelProcessEvent();
}
registerCancelProcessEvent() {
const stopScanButton = document.querySelector( '.smush-stop-scanning-dialog-button' );
if ( ! stopScanButton ) {
return;
}
stopScanButton.addEventListener( 'click', this.cancelProgress.bind( this ) );
}
closeStopScanningModal() {
if ( ! window.SUI ) {
return;
}
const stopScanningElement = document.querySelector( '#smush-stop-scanning-dialog' );
const isModalClosed = ( ! stopScanningElement ) || ! stopScanningElement.classList.contains( 'sui-content-fade-in' );
if ( isModalClosed ) {
return;
}
window.SUI.closeModal( 'smush-stop-scanning-dialog' );
}
closeProgressBar() {
this.onCloseProgressBar();
this.scanProgress.close();
}
onCloseProgressBar() {
// Do nothing at the moment.
}
updateProgress( stats ) {
const totalItems = this.getTotalItems( stats );
const processedItems = this.getProcessedItems( stats );
return this.scanProgress.update( processedItems, totalItems );
}
getProcessedItems( stats ) {
return stats?.processed_items || 0;
}
getTotalItems( stats ) {
return stats?.total_items || 0;
}
cancelProgress() {
this.scanProgress.setCancelButtonOnCancelling();
return Fetcher.scanMediaLibrary.cancel().then( ( response ) => {
if ( ! response?.success ) {
this.onCancelFailure( response );
return;
}
this.onCancelled( response.data );
} );
}
onCancelFailure( response ) {
WP_Smush.helpers.showNotice( response, {
showdismiss: true,
autoclose: false,
} );
this.scanProgress.resetCancelButtonOnFailure();
}
getErrorProgressMessage() {
return __( 'Unfortunately the scan hit an error due to limited resources on your site, we have adjusted the scan to use fewer resources the next time.', 'wp-smushit' );
}
onDead( stats ) {
this.clearProgressTimeout();
this.closeProgressBar();
this.closeStopScanningModal();
this.showRetryScanModal();
}
showRetryScanModal() {
const retryScanModalElement = document.getElementById( 'smush-retry-scan-notice' );
if ( ! window.SUI || ! retryScanModalElement ) {
return;
}
retryScanModalElement.querySelector('.smush-retry-scan-notice-button').onclick = (e) => {
window.SUI.closeModal( 'smush-retry-scan-notice' );
const recheckImagesBtn = document.querySelector( '.wp-smush-scan' );
if ( ! recheckImagesBtn ) {
return;
}
e.preventDefault();
recheckImagesBtn.click();
}
window.SUI.openModal(
'smush-retry-scan-notice',
'wpbody-content',
undefined,
false
);
}
onCompleted( stats ) {
this.onFinish( stats );
}
onCancelled( stats ) {
this.onFinish( stats );
}
onFinish( stats ) {
this.clearProgressTimeout();
const globalStats = stats?.global_stats;
this.updateGlobalStatsAndBulkContent( globalStats );
this.closeProgressBar();
this.closeStopScanningModal();
}
clearProgressTimeout() {
if ( this.progressTimeoutId ) {
clearTimeout( this.progressTimeoutId );
}
}
updateGlobalStatsAndBulkContent( globalStats ) {
if ( ! globalStats ) {
return;
}
GlobalStats.updateGlobalStatsFromSmushScriptData( globalStats );
GlobalStats.renderStats();
}
getStatus() {
return Fetcher.scanMediaLibrary.getScanStatus();
}
autoSyncStatus() {
const startTime = new Date().getTime();
this.getStatus().then( ( response ) => {
if ( ! response?.success ) {
return;
}
const stats = response.data;
if ( stats.is_dead ) {
this.onDead( response.data );
return;
}
this.beforeUpdateStatus( stats );
this.updateProgress( stats ).then( () => {
this.scanProgress.increaseDurationToHaveChangeOnProgress( new Date().getTime() - startTime );
const isCompleted = stats?.is_completed;
if ( isCompleted ) {
this.onCompleted( stats );
return;
}
const isCancelled = stats?.is_cancelled;
if ( isCancelled ) {
this.onCancelled( stats );
return;
}
this.progressTimeoutId = setTimeout( () => this.autoSyncStatus(), this.autoSyncDuration );
} );
} );
}
beforeUpdateStatus() {
// Do nothing at the moment.
}
setInnerText( element, newText ) {
if ( ! element ) {
return;
}
element.dataset.originalText = element.dataset.originalText || element.innerText.trim();
element.innerText = newText;
}
revertInnerText( element ) {
if ( ! element || ! element.dataset.originalText ) {
return;
}
element.innerText = element.dataset.originalText.trim();
}
hideAnElement( element ) {
if ( element ) {
element.classList.add( 'sui-hidden' );
}
}
showAnElement( element ) {
if ( element ) {
element.classList.remove( 'sui-hidden' );
}
}
}

View File

@ -0,0 +1,302 @@
/* global WP_Smush */
/**
* SmushProgressBar
* TODO: Update progressbar for free version.
*
* @param autoSyncDuration
*/
export const scanProgressBar = ( autoSyncDuration ) => {
const { __, _n } = wp.i18n;
const scanProgressBar = document.querySelector( '.wp-smush-scan-progress-bar-wrapper' );
const percentElement = scanProgressBar.querySelector( '.wp-smush-progress-percent' );
const progressElement = scanProgressBar.querySelector( '.wp-smush-progress-inner' );
const remainingTimeElement = scanProgressBar.querySelector( '.wp-smush-remaining-time' );
const cancelBtn = scanProgressBar.querySelector( '.wp-smush-cancel-scan-progress-btn' );
const holdOnNoticeElement = scanProgressBar.querySelector( '.wp-smush-scan-hold-on-notice' );
let onCancelCallback = () => {};
let intervalProgressAnimation = 0;
// It should be smaller than autoSyncDuration.
const progressTransitionDuration = autoSyncDuration - 300;//1200
scanProgressBar.style.setProperty( '--progress-transition-duration', progressTransitionDuration / 1000 + 's' );
let prevProcessedItems = window.wp_smushit_data?.media_library_scan?.processed_items || 0;
const cacheProcessTimePerItem = [];
let durationToHaveChangeOnProgress = autoSyncDuration;
let timeLimitToShowNotice = autoSyncDuration * 10;// 15s.
return {
update( processedItems, totalItems ) {
this.updateRemainingTime( processedItems, totalItems );
let width = ( totalItems && Math.floor( processedItems / totalItems * 100 ) ) || 0;
width = Math.min( width, 100 );
let currentWidth = progressElement.style.width;
currentWidth = ( currentWidth && currentWidth.replace( '%', '' ) ) || 0;
progressElement.style.width = width + '%';
return this.animateProgressBar( currentWidth, width );
},
animateProgressBar( currentWidth, width ) {
if ( intervalProgressAnimation ) {
clearInterval( intervalProgressAnimation );
}
return new Promise( ( resolve ) => {
const delayTime = progressTransitionDuration / ( width - currentWidth );
intervalProgressAnimation = setInterval( () => {
// Progress bar label.
percentElement.innerHTML = currentWidth + '%';
currentWidth++;
if ( currentWidth > width ) {
resolve();
clearInterval( intervalProgressAnimation );
}
}, delayTime );
} );
},
updateRemainingTime( processedItems, totalItems ) {
if ( ! remainingTimeElement ) {
return;
}
const processTimePerItem = this.calcProcessTimePerItem( processedItems ) || 500;
const remainingTime = processTimePerItem * ( totalItems - processedItems );
remainingTimeElement.innerText = this.formatTime( remainingTime );
},
calcProcessTimePerItem( processedItems ) {
if ( ! processedItems ) {
return;
}
prevProcessedItems = prevProcessedItems <= processedItems ? prevProcessedItems : 0;
if ( prevProcessedItems != processedItems ) {
const processTimePerItem = Math.floor( durationToHaveChangeOnProgress / ( processedItems - prevProcessedItems ) );
prevProcessedItems = processedItems;
cacheProcessTimePerItem.push( processTimePerItem );
this.resetDurationToHaveChangeOnProgress();
} else {
this.increaseDurationToHaveChangeOnProgress( autoSyncDuration );
}
if ( ! cacheProcessTimePerItem.length ) {
return;
}
return cacheProcessTimePerItem.reduce(
( accumulator, processTime ) => accumulator + processTime, 0
) / cacheProcessTimePerItem.length;
},
increaseDurationToHaveChangeOnProgress( increaseTime ) {
durationToHaveChangeOnProgress += increaseTime;
if ( durationToHaveChangeOnProgress > timeLimitToShowNotice ) {
this.showHoldOnNotice();
}
},
showHoldOnNotice() {
holdOnNoticeElement.classList.remove( 'sui-hidden' );
timeLimitToShowNotice = 100000000;
},
resetHoldOnNoticeVisibility() {
holdOnNoticeElement.classList.add( 'sui-hidden' );
},
resetDurationToHaveChangeOnProgress() {
durationToHaveChangeOnProgress = autoSyncDuration;
},
formatTime( totalMilliSeconds ) {
const totalSeconds = Math.floor( ( totalMilliSeconds + progressTransitionDuration ) / 1000 );
const seconds = totalSeconds % 60;
const minutes = Math.floor( totalSeconds / 60 );
let timeString = '';
if ( minutes ) {
timeString += minutes + ' ' + _n( 'minute', 'minutes', minutes, 'wp-smushit' );
}
timeString += ' ' + seconds + ' ' + _n( 'second', 'seconds', seconds, 'wp-smushit' );
return timeString.trim();
},
reset() {
progressElement.style.width = '0%';
percentElement.innerHTML = '0%';
this.resetCancelButton();
this.resetHoldOnNoticeVisibility();
return this;
},
open() {
cancelBtn.onclick = onCancelCallback;
scanProgressBar.classList.remove( 'sui-hidden' );
},
close() {
scanProgressBar.classList.add( 'sui-hidden' );
this.reset();
},
setOnCancelCallback( callBack ) {
if ( 'function' !== typeof callBack ) {
return;
}
onCancelCallback = callBack;
return this;
},
setCancelButtonLabel( textContent ) {
cancelBtn.textContent = textContent;
return this;
},
setCancelButtonOnCancelling() {
this.setCancelButtonLabel( wp_smush_msgs.cancelling );
this.setOnCancelCallback( () => false );
cancelBtn.setAttribute( 'disabled', true );
},
resetCancelButton() {
this.setOnCancelCallback( () => {} );
this.resetCancelButtonLabel();
cancelBtn.removeAttribute( 'disabled' );
},
resetCancelButtonLabel() {
this.setCancelButtonLabel( __( 'Cancel Scan', 'wp-smushit' ) );
},
resetCancelButtonOnFailure() {
this.resetCancelButtonLabel();
cancelBtn.removeAttribute( 'disabled' );
}
};
};
const SmushProgressBar = () => {
'use strict';
const progressBar = document.querySelector( '.wp-smush-bulk-progress-bar-wrapper' );
if ( ! progressBar ) {
return {
isEmptyObject: true,
};
}
const cancelBtn = progressBar.querySelector( '.wp-smush-cancel-btn' );
const bulkSmushDescription = document.querySelector( '.wp-smush-bulk-wrapper' );
const bulkRunningNotice = progressBar.querySelector( '#wp-smush-running-notice' );
const bulkSmushAllDone = document.querySelector( '.wp-smush-all-done' );
let isStateHidden = false;
let onCancelCallback = () => {};
return {
/**
* Update progress bar.
*
* @param {number} processedItems
* @param {number} totalItems
*/
update( processedItems, totalItems ) {
let width = totalItems && Math.floor( processedItems / totalItems * 100 ) || 0;
width = Math.min( width, 100 );
// Progress bar label.
progressBar.querySelector( '.wp-smush-images-percent' ).innerHTML = width + '%';
// Progress bar.
progressBar.querySelector( '.wp-smush-progress-inner' ).style.width = width + '%';
// Update processed/total.
const processStateStats = progressBar.querySelector( '.sui-progress-state-text' );
processStateStats.firstElementChild.innerHTML = processedItems;
processStateStats.lastElementChild.innerHTML = totalItems;
return this;
},
close() {
progressBar.classList.add( 'sui-hidden' );
this.setCancelButtonLabel( window.wp_smush_msgs.cancel )
.setOnCancelCallback( () => {} )
.update( 0, 0 );
this.resetOriginalNotice();
return this;
},
show() {
// Show progress bar.
cancelBtn.onclick = onCancelCallback;
progressBar.classList.remove( 'sui-hidden' );
this.hideBulkSmushDescription();
this.hideBulkSmushAllDone();
this.hideRecheckImagesNotice();
},
setCancelButtonLabel( textContent ) {
cancelBtn.textContent = textContent;
return this;
},
showBulkSmushDescription() {
bulkSmushDescription.classList.remove( 'sui-hidden' );
},
hideBulkSmushDescription() {
bulkSmushDescription.classList.add( 'sui-hidden' );
},
showBulkSmushAllDone() {
bulkSmushAllDone.classList.remove( 'sui-hidden' );
},
hideBulkSmushAllDone() {
bulkSmushAllDone.classList.add( 'sui-hidden' );
},
hideState() {
if ( isStateHidden ) {
return this;
}
isStateHidden = true;
progressBar.querySelector( '.sui-progress-state' ).classList.add( 'sui-hidden' );
return this;
},
showState() {
if ( ! isStateHidden ) {
return this;
}
isStateHidden = false;
progressBar.querySelector( '.sui-progress-state' ).classList.remove( 'sui-hidden' );
return this;
},
setNotice( inProcessNotice ) {
const progressMessage = bulkRunningNotice.querySelector( '.sui-notice-message p' );
this.cacheOriginalNotice( progressMessage );
progressMessage.innerHTML = inProcessNotice;
return this;
},
cacheOriginalNotice( progressMessage ) {
if ( bulkRunningNotice.dataset.progressMessage ) {
return;
}
bulkRunningNotice.dataset.progressMessage = progressMessage.innerHTML;
},
resetOriginalNotice() {
if ( ! bulkRunningNotice.dataset.progressMessage ) {
return;
}
const progressMessage = bulkRunningNotice.querySelector( '.sui-notice-message p' );
progressMessage.innerHTML = bulkRunningNotice.dataset.progressMessage;
},
hideBulkProcessingNotice() {
bulkRunningNotice.classList.add( 'sui-hidden' );
return this;
},
showBulkProcessingNotice() {
bulkRunningNotice.classList.remove( 'sui-hidden' );
return this;
},
setCountUnitText( unitText ) {
const progressUnit = progressBar.querySelector( '.sui-progress-state-unit' );
progressUnit.innerHTML = unitText;
},
setOnCancelCallback( callBack ) {
if ( 'function' !== typeof callBack ) {
return;
}
onCancelCallback = callBack;
return this;
},
disableExceedLimitMode() {
progressBar.classList.remove( 'wp-smush-exceed-limit' );
progressBar.querySelector( '#bulk-smush-resume-button' ).classList.add( 'sui-hidden' );
},
hideRecheckImagesNotice() {
const recheckImagesNoticeElement = document.querySelector( '.wp-smush-recheck-images-notice-box' );
if ( recheckImagesNoticeElement ) {
recheckImagesNoticeElement.classList.add( 'sui-hidden' );
}
}
};
};
export default new SmushProgressBar();

View File

@ -0,0 +1,11 @@
import lazySizes from 'lazysizes';
import 'lazysizes/plugins/native-loading/ls.native-loading';
lazySizes.cfg.nativeLoading = {
setLoadingAttribute: true,
disableListeners: {
scroll: true,
},
};
lazySizes.init();

View File

@ -0,0 +1,3 @@
import lazySizes from 'lazysizes';
lazySizes.init();

View File

@ -0,0 +1,362 @@
import '../../scss/resize-detection.scss';
/**
* Image resize detection (IRD).
*
* Show all wrongly scaled images with a highlighted border and resize box.
*
* Made in pure JS.
* DO NOT ADD JQUERY SUPPORT!!!
*
* @since 2.9
*/
( function() {
'use strict';
const SmushIRS = {
bar: document.getElementById( 'smush-image-bar' ),
toggle: document.getElementById( 'smush-image-bar-toggle' ),
images: {
bigger: [],
smaller: [],
},
strings: window.wp_smush_resize_vars,
/**
* Init scripts.
*/
init() {
/**
* Make sure these are set, before we proceed.
*/
if ( ! this.bar ) {
this.bar = document.getElementById( 'smush-image-bar' );
}
if ( ! this.toggle ) {
this.toggle = document.getElementById(
'smush-image-bar-toggle'
);
}
this.process();
// Register the event handler after everything is done.
this.toggle.addEventListener(
'click',
this.handleToggleClick.bind( this )
);
},
/**
* Do image processing.
*/
process() {
const icon = this.toggle.querySelector( 'i' );
icon.classList.add( 'sui-icon-loader' );
icon.classList.remove( 'sui-icon-info' );
this.detectImages();
if ( ! this.images.bigger.length && ! this.images.smaller.length ) {
this.toggle.classList.add( 'smush-toggle-success' );
document.getElementById(
'smush-image-bar-notice'
).style.display = 'block';
document.getElementById(
'smush-image-bar-notice-desc'
).style.display = 'none';
} else {
this.toggle.classList.remove( 'smush-toggle-success' );
document.getElementById(
'smush-image-bar-notice'
).style.display = 'none';
document.getElementById(
'smush-image-bar-notice-desc'
).style.display = 'block';
this.generateMarkup( 'bigger' );
this.generateMarkup( 'smaller' );
}
this.toggleDivs();
icon.classList.remove( 'sui-icon-loader' );
icon.classList.add( 'sui-icon-info' );
},
/**
* Various checks to see if the image should be processed.
*
* @param {Object} image
* @return {boolean} Should skip image or not.
*/
shouldSkipImage( image ) {
// Skip avatars.
if ( image.classList.contains( 'avatar' ) ) {
return true;
}
// Skip images from Smush CDN with auto-resize feature.
if (
'string' === typeof image.getAttribute( 'no-resize-detection' )
) {
return true;
}
// Skip 1x1px images.
if (
image.clientWidth === image.clientHeight &&
1 === image.clientWidth
) {
return true;
}
// Skip 1x1px placeholders.
if (
image.naturalWidth === image.naturalHeight &&
1 === image.naturalWidth
) {
return true;
}
// If width attribute is not set, do not continue.
return null === image.clientWidth || null === image.clientHeight;
},
/**
* Get tooltip text.
*
* @param {Object} props
* @return {string} Tooltip.
*/
getTooltipText( props ) {
let tooltipText = '';
if ( props.bigger_width || props.bigger_height ) {
/** @param {string} strings.large_image */
tooltipText = this.strings.large_image;
} else if ( props.smaller_width || props.smaller_height ) {
/** @param {string} strings.small_image */
tooltipText = this.strings.small_image;
}
return tooltipText
.replace( 'width', props.real_width )
.replace( 'height', props.real_height );
},
/**
* Generate markup.
*
* @param {string} type Accepts: 'bigger' or 'smaller'.
*/
generateMarkup( type ) {
this.images[ type ].forEach( ( image, index ) => {
const item = document.createElement( 'div' ),
tooltip = this.getTooltipText( image.props );
item.setAttribute(
'class',
'smush-resize-box smush-tooltip smush-tooltip-constrained'
);
item.setAttribute( 'data-tooltip', tooltip );
item.setAttribute( 'data-image', image.class );
item.addEventListener( 'click', ( e ) =>
this.highlightImage( e )
);
item.innerHTML = `
<div class="smush-image-info">
<span>${ index + 1 }</span>
<span class="smush-tag">${ image.props.computed_width } x ${ image.props.computed_height }px</span>
<i class="smush-front-icons smush-front-icon-arrows-in" aria-hidden="true">&nbsp;</i>
<span class="smush-tag smush-tag-success">${ image.props.real_width } × ${ image.props.real_height }px</span>
</div>
<div class="smush-image-description">${ tooltip }</div>
`;
document
.getElementById( 'smush-image-bar-items-' + type )
.appendChild( item );
} );
},
/**
* Show/hide sections based on images.
*/
toggleDivs() {
const types = [ 'bigger', 'smaller' ];
types.forEach( ( type ) => {
const div = document.getElementById(
'smush-image-bar-items-' + type
);
if ( 0 === this.images[ type ].length ) {
div.style.display = 'none';
} else {
div.style.display = 'block';
}
} );
},
/**
* Scroll the selected image into view and highlight it.
*
* @param {Object} e
*/
highlightImage( e ) {
this.removeSelection();
const el = document.getElementsByClassName(
e.currentTarget.dataset.image
);
if ( 'undefined' !== typeof el[ 0 ] ) {
// Display description box.
e.currentTarget.classList.toggle( 'show-description' );
// Scroll and flash image.
el[ 0 ].scrollIntoView( {
behavior: 'smooth',
block: 'center',
inline: 'nearest',
} );
el[ 0 ].style.opacity = '0.5';
setTimeout( () => {
el[ 0 ].style.opacity = '1';
}, 1000 );
}
},
/**
* Handle click on the toggle item.
*/
handleToggleClick() {
this.bar.classList.toggle( 'closed' );
this.toggle.classList.toggle( 'closed' );
this.removeSelection();
},
/**
* Remove selected items.
*/
removeSelection() {
const items = document.getElementsByClassName( 'show-description' );
if ( items.length > 0 ) {
Array.from( items ).forEach( ( div ) =>
div.classList.remove( 'show-description' )
);
}
},
/**
* Function to highlight all scaled images.
*
* Add yellow border and then show one small box to
* resize the images as per the required size, on fly.
*/
detectImages() {
const images = document.getElementsByTagName( 'img' );
for ( const image of images ) {
if ( this.shouldSkipImage( image ) ) {
continue;
}
// Get defined width and height.
const props = {
real_width: image.clientWidth,
real_height: image.clientHeight,
computed_width: image.naturalWidth,
computed_height: image.naturalHeight,
bigger_width: image.clientWidth * 1.5 < image.naturalWidth,
bigger_height:
image.clientHeight * 1.5 < image.naturalHeight,
smaller_width: image.clientWidth > image.naturalWidth,
smaller_height: image.clientHeight > image.naturalHeight,
};
// In case image is in correct size, do not continue.
if (
! props.bigger_width &&
! props.bigger_height &&
! props.smaller_width &&
! props.smaller_height
) {
continue;
}
const imgType =
props.bigger_width || props.bigger_height
? 'bigger'
: 'smaller',
imageClass =
'smush-image-' + ( this.images[ imgType ].length + 1 );
// Fill the images arrays.
this.images[ imgType ].push( {
src: image,
props,
class: imageClass,
} );
/**
* Add class to original image.
* Can't add two classes in single add(), because no support in IE11.
* image.classList.add('smush-detected-img', imageClass);
*/
image.classList.add( 'smush-detected-img' );
image.classList.add( imageClass );
}
}, // End detectImages()
/**
* Allows refreshing the list. A good way is to refresh on lazyload actions.
*
* @since 3.6.0
*/
refresh() {
// Clear out classes on DOM.
for ( let id in this.images.bigger ) {
if ( this.images.bigger.hasOwnProperty( id ) ) {
this.images.bigger[ id ].src.classList.remove(
'smush-detected-img'
);
this.images.bigger[ id ].src.classList.remove(
'smush-image-' + ++id
);
}
}
for ( let id in this.images.smaller ) {
if ( this.images.smaller.hasOwnProperty( id ) ) {
this.images.smaller[ id ].src.classList.remove(
'smush-detected-img'
);
this.images.smaller[ id ].src.classList.remove(
'smush-image-' + ++id
);
}
}
this.images = {
bigger: [],
smaller: [],
};
// This might be overkill - there will probably never be a situation when there are less images than on
// initial page load.
const elements = document.getElementsByClassName(
'smush-resize-box'
);
while ( elements.length > 0 ) {
elements[ 0 ].remove();
}
this.process();
},
}; // End WP_Smush_IRS
/**
* After page load, initialize toggle event.
*/
window.addEventListener( 'DOMContentLoaded', () => SmushIRS.init() );
window.addEventListener( 'lazyloaded', () => SmushIRS.refresh() );
}() );

View File

@ -0,0 +1,83 @@
import '../scss/common.scss';
/* global ajaxurl */
document.addEventListener('DOMContentLoaded', function () {
const dismissNoticeButton = document.querySelectorAll(
'.smush-dismissible-notice .smush-dismiss-notice-button'
);
dismissNoticeButton.forEach((button) => {
button.addEventListener('click', handleDismissNotice);
});
function handleDismissNotice(event) {
event.preventDefault();
const button = event.target;
const notice = button.closest('.smush-dismissible-notice');
const key = notice.getAttribute('data-key');
dismissNotice( key, notice );
}
function dismissNotice( key, notice ) {
const xhr = new XMLHttpRequest();
xhr.open(
'POST',
ajaxurl + '?action=smush_dismiss_notice&key=' + key + '&_ajax_nonce=' + smush_global.nonce,
true
);
xhr.onload = () => {
if (notice) {
notice.querySelector('button.notice-dismiss').dispatchEvent(new MouseEvent('click', {
view: window,
bubbles: true,
cancelable: true
}));
}
};
xhr.send();
}
// Show header notices.
const handleHeaderNotice = () => {
const headerNotice = document.querySelector('.wp-smush-dismissible-header-notice');
if ( ! headerNotice || ! headerNotice.id ) {
return;
}
const { dismissKey, message } = headerNotice.dataset;
if ( ! dismissKey || ! message ) {
return;
}
headerNotice.onclick = (e) => {
const classList = e.target.classList;
const isDismissButton = classList && ( classList.contains('sui-icon-check') || classList.contains('sui-button-icon') );
if ( ! isDismissButton ) {
return;
}
dismissNotice( dismissKey );
}
const noticeOptions = {
type: 'warning',
icon: 'info',
dismiss: {
show: true,
label: wp_smush_msgs.noticeDismiss,
tooltip: wp_smush_msgs.noticeDismissTooltip,
},
};
window.SUI.openNotice(
headerNotice.id,
message,
noticeOptions
);
}
handleHeaderNotice();
});

View File

@ -0,0 +1,75 @@
/* global wp_smush_mixpanel */
import mixpanel from "mixpanel-browser";
class MixPanel {
constructor() {
// Opt out event is not triggered via js so only initial mixpanel when it's enabled.
this.mixpanelInstance = this.allowToTrack() && mixpanel.init(wp_smush_mixpanel.token, {
opt_out_tracking_by_default: ! this.allowToTrack(),
loaded: (mixpanel) => {
mixpanel.identify(wp_smush_mixpanel.unique_id);
mixpanel.register(wp_smush_mixpanel.super_properties);
if (mixpanel.has_opted_in_tracking() !== this.allowToTrack()) {
// The status cached by MixPanel in the local storage is different from the settings. Clear the cache.
mixpanel.clear_opt_in_out_tracking();
}
}
}, 'smush');
}
allowToTrack() {
return !! wp_smush_mixpanel.opt_in;
}
track(event, properties = {}) {
if ( wp_smush_mixpanel.debug ) {
console.log( 'Event:', event, properties );
}
this.mixpanelInstance && this.mixpanelInstance.track(event, properties);
}
trackBulkSmushCompleted( globalStats ) {
const {
savings_bytes,
count_images,
percent_optimized,
savings_percent,
count_resize,
savings_resize
} = globalStats;
this.track('Bulk Smush Completed', {
'Total Savings': this.convertToMegabytes( savings_bytes ),
'Total Images': count_images,
'Media Optimization Percentage': parseFloat( percent_optimized ),
'Percentage of Savings': parseFloat( savings_percent ),
'Images Resized': count_resize,
'Resize Savings': this.convertToMegabytes( savings_resize )
});
}
trackBulkSmushCancel() {
this.track('Bulk Smush Cancelled');
}
convertToMegabytes( sizeInBytes ) {
const unitMB = Math.pow( 1024, 2 );
const sizeInMegabytes = sizeInBytes/unitMB;
return sizeInMegabytes && parseFloat(sizeInMegabytes.toFixed(2)) || 0;
}
}
const mixPanelInstance = () => {
let instance;
return {
getInstance: () => {
if ( ! instance ) {
instance = new MixPanel();
}
return instance;
}
}
}
export default mixPanelInstance();

View File

@ -0,0 +1,20 @@
jQuery(function ($) {
'use strict';
/**
* Handle the Smush Stats link click
*/
$('body').on('click', 'a.smush-stats-details', function (e) {
//If disabled
if ($(this).prop('disabled')) {
return false;
}
// prevent the default action
e.preventDefault();
//Replace the `+` with a `-`
const slide_symbol = $(this).find('.stats-toggle');
$(this).parents().eq(1).find('.smush-stats-wrapper').slideToggle();
slide_symbol.text(slide_symbol.text() == '+' ? '-' : '+');
});
});

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,395 @@
/* global WP_Smush */
/**
* Bulk Smush Background Optimization.
*
* @since 3.12.0
*/
import Fetcher from '../utils/fetcher';
import MixPanel from "../mixpanel";
import SmushProgress from '../common/progressbar';
import {GlobalStats, UpsellManger} from "../common/globalStats";
(function () {
'use strict';
if (!window.wp_smush_msgs) {
return;
}
const $ = document.querySelector.bind(document);
const NO_FREE_LIMITED = 50;
/**
* Handle Background Process.
* @returns
*/
const BackgroundProcess = () => {
return {
handle(action) {
return Fetcher.background[action]();
},
initState() {
return Fetcher.background.initState();
},
}
}
/**
* Background Optimization.
*/
const BackgroundSmush = (() => {
const startBtn = window.wp_smushit_data && window.wp_smushit_data.bo_stats && $('.wp-smush-bo-start');
if (!startBtn) {
return;
}
const mixPanel = MixPanel.getInstance();
const BO = new BackgroundProcess();
const bulkWrapper = $('.bulk-smush-wrapper');
const reScanImagesButton = $('.wp-smush-scan');
let intervalHandle = 0;
let cancellationInProgress = false;
return {
hookStatusChecks() {
if (intervalHandle) {
// Already done
return;
}
let count = 0;
let statusSyncInProgress = false;
let statSyncInProgress = false;
intervalHandle = setInterval(() => {
if (statusSyncInProgress) {
return;
}
statusSyncInProgress = true;
count++;
const statusSynced = this.syncBackgroundStatus();
if (count % 3 === 0) {
// Do a full update every nth time
statusSynced.then(() => {
if (!statSyncInProgress) {
this.syncStats().then(() => {
statSyncInProgress = false;
});
statSyncInProgress = true;
}
});
}
statusSynced.finally(() => {
statusSyncInProgress = false;
});
}, 3 * 1000);
},
resetBOStatsOnStart() {
GlobalStats.setBoStats( {
is_cancelled: false,
is_completed: false,
processed_items: 0,
failed_items: 0,
} );
},
start() {
// Reset boStats.
this.resetBOStatsOnStart();
// Disable UI.
this.onStart();
// Start BO.
BO.handle('start').then((res) => {
if (res.success) {
// Update stats.
const updatedStats = this.updateStats(res.data, false);
// Show progress bar.
this.showProgressBar();
this.hookStatusChecks();
if ( updatedStats ) {
// Render stats.
GlobalStats.renderStats();
}
} else {
WP_Smush.helpers.showNotice( res, {
'showdismiss': true,
'autoclose' : false,
} );
this.cancelBulk();
}
});
},
/**
* Initial state when load the Bulk Smush page while BO is running.
*/
initState() {
if (!GlobalStats.getBoStats().in_processing) {
return;
}
// Disable UI.
this.onStart();
// Start BO.
BO.initState().then((res) => {
if (res.success) {
// Update stats.
this.updateStats(res.data, false);
// Show progress bar.
this.showProgressBar();
this.hookStatusChecks();
// Maybe update errors.
if ( res.data.errors && ! Object.keys( GlobalStats.getErrors() ).length ) {
GlobalStats.setErrors( res.data.errors );
}
// Render stats.
GlobalStats.renderStats();
} else {
WP_Smush.helpers.showNotice( res );
}
});
},
/**
* Cancel.
*/
cancel() {
cancellationInProgress = true;
this.setCancelButtonStateToStarted();
BO.handle('cancel').then((res) => {
if (res.success) {
this.cancelBulk();
} else {
WP_Smush.helpers.showNotice( res );
}
});
},
hideProgressBar() {
// Hide progress bar.
SmushProgress.close().update(0, GlobalStats.getBoStats().total_items);
},
showProgressBar() {
// Reset progress bar.
SmushProgress.update(GlobalStats.getBoStats().processed_items, GlobalStats.getBoStats().total_items);
// Show progress bar.
SmushProgress.show();
},
/**
* Update stats.
* @param {Object} newStats Included increment stats and new BO stats.
* @param updateGlobal
*/
updateStats(newStats, updateGlobal) {
// Make sure we have processed_stats/errors property (not added by default when start).
newStats.global_stats = newStats.global_stats || {};
newStats.errors = newStats.errors || {};
const {
global_stats,
errors,
...newBoStats
} = newStats;
if ( ! GlobalStats.isChangedStats( newBoStats ) ) {
return false;
}
// Update BO stats.
GlobalStats.setBoStats(newBoStats);
if (updateGlobal) {
// Update global stats.
GlobalStats.setGlobalStats(global_stats);
}
// Update Errors.
GlobalStats.setErrors( errors );
return true;
},
cancelBulk() {
// Sync Stats.
this.syncStats(() => {
if (100 === GlobalStats.getGlobalStats().percent_optimized) {
// If the last item was getting processed when the user cancelled then the process might have completed
GlobalStats.setBoStats( {
is_completed: true
} );
this.onCompletedBulk();
} else {
// Update status of boStats.
GlobalStats.setBoStats( {
is_cancelled: true
} );
// Reset and hide progress bar.
this.onFinish();
// Bulk is cancelled, show bulk desc.
SmushProgress.showBulkSmushDescription();
}
mixPanel.trackBulkSmushCancel();
cancellationInProgress = false;
});
},
showCompletedMessage() {
// Render completed message.
// Show completed message.
const processedWrapper = bulkWrapper.querySelector('.wp-smush-all-done');
if ( GlobalStats.getBoStats().failed_items ) {
let completeMessage = wp_smush_msgs.all_failed;
if ( ! this.isFailedAllItems() ) {
completeMessage = wp_smush_msgs.error_in_bulk.replace( '{{smushed}}', GlobalStats.getBoStats().total_items - GlobalStats.getBoStats().failed_items )
.replace('{{total}}', GlobalStats.getBoStats().total_items )
.replace('{{errors}}', GlobalStats.getBoStats().failed_items );
}
processedWrapper.querySelector('p').innerHTML = completeMessage;
processedWrapper.classList.remove('sui-notice-success', 'sui-notice-warning');
const noticeType = this.getNoticeType();
const noticeIcon = 'warning' === noticeType ? 'info' : 'check-tick';
const iconElement = processedWrapper.querySelector('.sui-notice-icon');
processedWrapper.classList.add( 'sui-notice-' + noticeType );
iconElement.classList.remove('sui-icon-check-tick', 'sui-icon-info');
iconElement.classList.add( 'sui-icon-' + noticeIcon );
} else {
processedWrapper.querySelector('p').innerHTML = wp_smush_msgs.all_smushed;
}
processedWrapper.classList.remove('sui-hidden');
},
isFailedAllItems() {
return GlobalStats.getBoStats().failed_items === GlobalStats.getBoStats().total_items;
},
getNoticeType() {
return this.isFailedAllItems() ? 'warning' : 'success';
},
onCompletedBulk() {
// Reset and hide progress bar.
this.onFinish();
// Bulk is completed, hide bulk desc.
SmushProgress.hideBulkSmushDescription();
// Show completed message.
this.showCompletedMessage();
// Reset the progress when we finish so the next smushing starts from zero.
SmushProgress.update(0, GlobalStats.getBoStats().total_items);
},
completeBulk() {
// Sync Stats.
this.syncStats(() => this.onCompletedBulk());
},
syncStats(onComplete = () => false) {
return BO.handle('getStats').then((res) => {
if ( res.success ) {
const responseErrors = res.data.errors || {};
this.updateStats( { global_stats: res.data, errors: responseErrors }, true );
GlobalStats.renderStats();
if ( res.data.content ) {
$('#wp-smush-bulk-content').innerHTML = res.data.content;
}
onComplete();
} else {
WP_Smush.helpers.showNotice( res );
}
}).catch( (error) => console.log('error', error));
},
syncBackgroundStatus() {
return BO.handle('getStatus').then((res) => {
if ((res.data || {}).in_process_notice) {
SmushProgress.setNotice( res.data.in_process_notice );
}
if (res.success) {
// Update stats.
if ( this.updateStats(res.data, false) ) {
// Update progress bar.
SmushProgress.update(GlobalStats.getBoStats().processed_items, GlobalStats.getBoStats().total_items);
if (! GlobalStats.getBoStats().is_cancelled && ! GlobalStats.getBoStats().is_completed) {
// Render stats.
GlobalStats.renderStats();
}
}
if (GlobalStats.getBoStats().is_cancelled && !cancellationInProgress) {
// Cancelled on server side
this.cancelBulk();
} else if (GlobalStats.getBoStats().is_completed) {
this.completeBulk();
}
} else {
WP_Smush.helpers.showNotice( res );
}
});
},
onStart() {
// Disable btn.
startBtn.setAttribute('disabled', '');
// Disable re-check images.
reScanImagesButton && reScanImagesButton.setAttribute('disabled', '');
$('.wp-smush-restore').setAttribute('disabled', '');
// Show upsell cdn.
UpsellManger.maybeShowCDNUpsellForPreSiteOnStart();
this.setCancelButtonStateToInitial();
},
onFinish() {
// Clear interval.
if (intervalHandle) {
clearInterval(intervalHandle);
intervalHandle = 0;
}
// Disable btn.
startBtn.removeAttribute('disabled');
// Reset and hide Progress Bar.
this.hideProgressBar();
// Disable re-check images.
reScanImagesButton && reScanImagesButton.removeAttribute('disabled', '');
$('.wp-smush-restore').removeAttribute('disabled', '');
// Show upsell cdn.
UpsellManger.maybeShowCDNUpsellForPreSiteOnCompleted();
},
init() {
if (!startBtn) {
return;
}
// Start BO.
startBtn.onclick = () => {
const requiredScanMedia = startBtn.classList.contains('wp-smush-scan-and-bulk-smush');
if ( requiredScanMedia ) {
return;
}
this.start();
}
// If BO is running, initial new state.
this.initState();
},
setCancelButtonStateToInitial() {
SmushProgress.setCancelButtonLabel( wp_smush_msgs.cancel );
SmushProgress.setOnCancelCallback( this.cancel.bind(this) );
},
setCancelButtonStateToStarted() {
SmushProgress.setCancelButtonLabel( wp_smush_msgs.cancelling );
SmushProgress.setOnCancelCallback( () => false );
},
}
})();
// Run.
BackgroundSmush && BackgroundSmush.init();
/**
* For globalStats, we will need to update it on reload and after re-checking images,
* and on finish the BO.
* 1. On finish, we handled via BackgroundSmush.syncStats -> BackgroundSmush.updateStats
* 2. On reload or after re-checking images, we need to update globalStats from global variable:
* window.wp_smushit_data
*/
// Update global stats after re-checking images.
document.addEventListener('wpSmushAfterRecheckImages', function(){
GlobalStats.updateGlobalStatsFromSmushScriptData();
});
document.addEventListener('backgroundBulkSmushOnScanCompleted', function(){
if ( ! BackgroundSmush ) {
return;
}
GlobalStats.setBoStats({
in_processing: true,
});
BackgroundSmush.initState();
});
})();

View File

@ -0,0 +1,276 @@
/* global WP_Smush */
/* global ajaxurl */
/* global _ */
import MixPanel from "../mixpanel";
/**
* Bulk restore JavaScript code.
*
* @since 3.2.2
*/
(function () {
'use strict';
/**
* Bulk restore modal.
*
* @since 3.2.2
*/
WP_Smush.restore = {
modal: document.getElementById('smush-restore-images-dialog'),
contentContainer: document.getElementById('smush-bulk-restore-content'),
settings: {
slide: 'start', // start, progress or finish.
success: 0,
errors: [],
},
items: [], // total items, 1 item = 1 step.
success: [], // successful items restored.
errors: [], // failed items.
currentStep: 0,
totalSteps: 0,
/**
* Init module.
*/
init() {
if (!this.modal) {
return;
}
this.settings = {
slide: 'start',
success: 0,
errors: [],
};
this.mixPanel = MixPanel.getInstance();
this.resetModalWidth();
this.renderTemplate();
// Show the modal.
window.SUI.openModal(
'smush-restore-images-dialog',
'wpbody-content',
undefined,
false
);
},
/**
* Update the template, register new listeners.
*/
renderTemplate() {
const template = WP_Smush.onboarding.template('smush-bulk-restore');
const content = template(this.settings);
if (content) {
this.contentContainer.innerHTML = content;
}
this.bindSubmit();
},
/**
* Reset modal width.
*
* @since 3.6.0
*/
resetModalWidth() {
this.modal.style.maxWidth = '460px';
this.modal.querySelector('.sui-box').style.maxWidth = '460px';
},
/**
* Catch "Finish setup wizard" button click.
*/
bindSubmit() {
const confirmButton = this.modal.querySelector(
'button[id="smush-bulk-restore-button"]'
);
const self = this;
if (confirmButton) {
confirmButton.addEventListener('click', function (e) {
e.preventDefault();
self.resetModalWidth();
self.settings = { slide: 'progress' };
self.errors = [];
self.renderTemplate();
self.initScan();
self.mixPanel.track('Bulk Restore Triggered');
});
}
},
/**
* Cancel the bulk restore.
*/
cancel() {
if (
'start' === this.settings.slide ||
'finish' === this.settings.slide
) {
// Hide the modal.
window.SUI.closeModal();
} else {
this.updateProgressBar(true);
window.location.reload();
}
},
/**
* Update progress bar during directory smush.
*
* @param {boolean} cancel Cancel status.
*/
updateProgressBar(cancel = false) {
let progress = 0;
if (0 < this.currentStep) {
progress = Math.min(
Math.round((this.currentStep * 100) / this.totalSteps),
99
);
}
if (progress > 100) {
progress = 100;
}
// Update progress bar
this.modal.querySelector('.sui-progress-text span').innerHTML =
progress + '%';
this.modal.querySelector('.sui-progress-bar span').style.width =
progress + '%';
const statusDiv = this.modal.querySelector(
'.sui-progress-state-text'
);
if (progress >= 90) {
statusDiv.innerHTML = 'Finalizing...';
} else if (cancel) {
statusDiv.innerHTML = 'Cancelling...';
} else {
statusDiv.innerHTML =
this.currentStep +
'/' +
this.totalSteps +
' ' +
'images restored';
}
},
/**
* First step in bulk restore - get the bulk attachment count.
*/
initScan() {
const self = this;
const _nonce = document.getElementById('_wpnonce');
const xhr = new XMLHttpRequest();
xhr.open('POST', ajaxurl + '?action=get_image_count', true);
xhr.setRequestHeader(
'Content-type',
'application/x-www-form-urlencoded'
);
xhr.onload = () => {
if (200 === xhr.status) {
const res = JSON.parse(xhr.response);
if ('undefined' !== typeof res.data.items) {
self.items = res.data.items;
self.totalSteps = res.data.items.length;
self.step();
}
} else {
window.console.log(
'Request failed. Returned status of ' + xhr.status
);
}
};
xhr.send('_ajax_nonce=' + _nonce.value);
},
/**
* Execute a scan step recursively
*/
step() {
const self = this;
const _nonce = document.getElementById('_wpnonce');
if (0 < this.items.length) {
const item = this.items.pop();
const xhr = new XMLHttpRequest();
xhr.open('POST', ajaxurl + '?action=restore_step', true);
xhr.setRequestHeader(
'Content-type',
'application/x-www-form-urlencoded'
);
xhr.onload = () => {
this.currentStep++;
if (200 === xhr.status) {
const res = JSON.parse(xhr.response);
const data = ((res || {}).data || {});
if (data.success) {
self.success.push(item);
} else {
self.errors.push({
id: item,
src: data.src || "Error",
thumb: data.thumb,
link: data.link,
});
}
}
self.updateProgressBar();
self.step();
};
xhr.send('item=' + item + '&_ajax_nonce=' + _nonce.value);
} else {
// Finish.
this.settings = {
slide: 'finish',
success: this.success.length,
errors: this.errors,
total: this.totalSteps,
};
self.renderTemplate();
if (0 < this.errors.length) {
this.modal.style.maxWidth = '660px';
this.modal.querySelector('.sui-box').style.maxWidth =
'660px';
}
}
},
};
/**
* Template function (underscores based).
*
* @type {Function}
*/
WP_Smush.restore.template = _.memoize((id) => {
let compiled;
const options = {
evaluate: /<#([\s\S]+?)#>/g,
interpolate: /{{{([\s\S]+?)}}}/g,
escape: /{{([^}]+?)}}(?!})/g,
variable: 'data',
};
return (data) => {
_.templateSettings = options;
compiled =
compiled || _.template(document.getElementById(id).innerHTML);
return compiled(data);
};
});
})();

View File

@ -0,0 +1,149 @@
/* global WP_Smush */
/* global ajaxurl */
/**
* Bulk Smush functionality.
*
* @since 2.9.0 Moved from admin.js
*/
import Smush from '../smush/smush';
import Fetcher from '../utils/fetcher';
import SmushProcess from '../common/progressbar';
( function( $ ) {
'use strict';
WP_Smush.bulk = {
init() {
this.onClickBulkSmushNow();
this.onClickIgnoreImage();
this.onClickIgnoreAllImages();
this.onScanCompleted();
},
onClickBulkSmushNow() {
/**
* Handle the Bulk Smush/Bulk re-Smush button click.
*/
$( '.wp-smush-all' ).on( 'click', function( e ) {
const bulkSmushButton = $(this);
if ( bulkSmushButton.hasClass('wp-smush-scan-and-bulk-smush') ) {
return;
}
e.preventDefault();
WP_Smush.bulk.ajaxBulkSmushStart( bulkSmushButton );
} );
},
ajaxBulkSmushStart( bulkSmushButton ) {
bulkSmushButton = bulkSmushButton || $( '#wp-smush-bulk-content .wp-smush-all' );
// Check for IDs, if there is none (unsmushed or lossless), don't call Smush function.
/** @param {Array} wp_smushit_data.unsmushed */
if (
'undefined' === typeof window.wp_smushit_data ||
( 0 === window.wp_smushit_data.unsmushed.length &&
0 === window.wp_smushit_data.resmush.length )
) {
return false;
}
// Disable re-Smush and scan button.
// TODO: refine what is disabled.
$(
'.wp-resmush.wp-smush-action, .wp-smush-scan, .wp-smush-all:not(.sui-progress-close), a.wp-smush-lossy-enable, button.wp-smush-resize-enable, button#save-settings-button'
).prop( 'disabled', true );
if ( bulkSmushButton.hasClass('wp-smush-resume-bulk-smush') && this.bulkSmush ) {
this.resumeBulkSmush();
return;
}
this.bulkSmush = new Smush( bulkSmushButton, true );
SmushProcess.setOnCancelCallback( () => {
this.bulkSmush.cancelAjax()
}).update( 0, this.bulkSmush.ids.length ).show();
// Show upsell cdn.
this.maybeShowCDNUpsellForPreSiteOnStart();
// Run bulk Smush.
this.bulkSmush.run();
},
resumeBulkSmush() {
SmushProcess.disableExceedLimitMode();
SmushProcess.hideBulkSmushDescription();
this.bulkSmush.onStart();
this.bulkSmush.callAjax();
},
onClickIgnoreImage() {
/**
* Ignore file from bulk Smush.
*
* @since 2.9.0
*/
$( 'body' ).on( 'click', '.smush-ignore-image', function( e ) {
e.preventDefault();
const self = $( this );
self.prop( 'disabled', true );
self.attr( 'data-tooltip' );
self.removeClass( 'sui-tooltip' );
$.post( ajaxurl, {
action: 'ignore_bulk_image',
id: self.attr( 'data-id' ),
_ajax_nonce: wp_smush_msgs.nonce,
} ).done( ( response ) => {
if ( self.is( 'a' ) && response.success && 'undefined' !== typeof response.data.html ) {
if( self.closest('.smush-status-links') ) {
self.closest('.smush-status-links').parent().html( response.data.html );
} else if (e.target.closest( '.smush-bulk-error-row' ) ){
self.addClass('disabled');
e.target.closest( '.smush-bulk-error-row' ).style.opacity = 0.5;
}
}
} );
} );
},
onClickIgnoreAllImages() {
/**
* Ignore file from bulk Smush.
*
* @since 3.12.0
*/
const ignoreAll = document.querySelector('.wp_smush_ignore_all_failed_items');
if ( ignoreAll ) {
ignoreAll.onclick = (e) => {
e.preventDefault();
e.target.setAttribute('disabled','');
e.target.style.cursor = 'progress';
const type = e.target.dataset.type || null;
e.target.classList.remove('sui-tooltip');
Fetcher.smush.ignoreAll(type).then((res) => {
if ( res.success ) {
window.location.reload();
} else {
e.target.style.cursor = 'pointer';
e.target.removeAttribute('disabled');
WP_Smush.helpers.showNotice( res );
}
});
}
}
},
onScanCompleted() {
document.addEventListener('ajaxBulkSmushOnScanCompleted', (e) => {
this.ajaxBulkSmushStart();
});
},
maybeShowCDNUpsellForPreSiteOnStart: () => {
// Show upsell cdn.
const upsell_cdn = document.querySelector('.wp-smush-upsell-cdn');
if ( upsell_cdn ) {
upsell_cdn.classList.remove('sui-hidden');
}
}
};
WP_Smush.bulk.init();
} )( jQuery );

View File

@ -0,0 +1,279 @@
/* global WP_Smush */
/* global ajaxurl */
/**
* Directory Smush module JavaScript code.
*
* @since 2.8.1 Separated from admin.js into dedicated file.
*/
import { createTree } from 'jquery.fancytree';
import Scanner from '../smush/directory-scanner';
( function( $ ) {
'use strict';
WP_Smush.directory = {
selected: [],
tree: [],
wp_smush_msgs: [],
triggered: false,
init() {
const self = this,
progressDialog = $( '#wp-smush-progress-dialog' );
let totalSteps = 0,
currentScanStep = 0;
// Make sure directory smush vars are set.
if ( typeof window.wp_smushit_data.dir_smush !== 'undefined' ) {
totalSteps = window.wp_smushit_data.dir_smush.totalSteps;
currentScanStep =
window.wp_smushit_data.dir_smush.currentScanStep;
}
// Init image scanner.
this.scanner = new Scanner( totalSteps, currentScanStep );
/**
* Smush translation strings.
*
* @param {Array} wp_smush_msgs
*/
this.wp_smush_msgs = window.wp_smush_msgs || {};
/**
* Open the "Select Smush directory" modal.
*/
$( 'button.wp-smush-browse, a#smush-directory-open-modal' ).on(
'click',
function( e ) {
e.preventDefault();
if ( $( e.currentTarget ).hasClass( 'wp-smush-browse' ) ) {
// Hide all the notices.
$( 'div.wp-smush-scan-result div.wp-smush-notice' ).hide();
// Remove notice.
$( 'div.wp-smush-info' ).remove();
}
window.SUI.openModal(
'wp-smush-list-dialog',
e.currentTarget,
$(
'#wp-smush-list-dialog .sui-box-header [data-modal-close]'
)[0],
true
);
//Display File tree for Directory Smush
self.initFileTree();
}
);
/**
* Smush images: Smush in Choose Directory modal clicked
*/
$( '#wp-smush-select-dir' ).on( 'click', function( e ) {
e.preventDefault();
$( 'div.wp-smush-list-dialog div.sui-box-body' ).css( {
opacity: '0.8',
} );
$( 'div.wp-smush-list-dialog div.sui-box-body a' ).off(
'click'
);
const button = $( this );
// Display the spinner.
button.addClass('sui-button-onload');
const selectedFolders = self.tree.getSelectedNodes();
const paths = [];
selectedFolders.forEach( function( folder ) {
paths.push( folder.key );
} );
// Send a ajax request to get a list of all the image files
const param = {
action: 'image_list',
smush_path: paths,
image_list_nonce: $(
'input[name="image_list_nonce"]'
).val(),
};
$.post( ajaxurl, param, function( response ) {
if ( response.success ) {
// Close the modal.
window.SUI.closeModal();
self.scanner = new Scanner( response.data, 0 );
self.showProgressDialog( response.data );
self.scanner.scan();
} else {
// Remove the spinner.
button.removeClass('sui-button-onload');
window.SUI.openNotice(
'wp-smush-ajax-notice',
response.data.message,
{ type: 'warning' }
);
}
} );
} );
/**
* Cancel scan.
*/
progressDialog.on(
'click',
'#cancel-directory-smush, #dialog-close-div, .wp-smush-cancel-dir',
function( e ) {
e.preventDefault();
// Display the spinner
$( '.wp-smush-cancel-dir' ).addClass( 'sui-button-onload' );
self.scanner
.cancel()
.done(
() =>
( window.location.href =
self.wp_smush_msgs.directory_url )
);
}
);
/**
* Continue scan.
*/
progressDialog.on(
'click',
'.sui-icon-play, .wp-smush-resume-scan',
function( e ) {
e.preventDefault();
self.scanner.resume();
}
);
/**
* Check to see if we should open the directory module.
* Used to redirect from dashboard page.
*
* @since 3.8.6
*/
const queryString = window.location.search;
const urlParams = new URLSearchParams( queryString );
if ( urlParams.has( 'start' ) && ! this.triggered ) {
this.triggered = true;
$( 'button.wp-smush-browse' ).trigger( 'click' );
}
},
/**
* Init fileTree.
*/
initFileTree() {
const self = this,
smushButton = $( 'button#wp-smush-select-dir' ),
ajaxSettings = {
type: 'GET',
url: ajaxurl,
data: {
action: 'smush_get_directory_list',
list_nonce: $( 'input[name="list_nonce"]' ).val(),
},
cache: false,
};
// Object already defined.
if ( Object.entries( self.tree ).length > 0 ) {
return;
}
self.tree = createTree( '.wp-smush-list-dialog .content', {
autoCollapse: true, // Automatically collapse all siblings, when a node is expanded
clickFolderMode: 3, // 1:activate, 2:expand, 3:activate and expand, 4:activate (dblclick expands)
checkbox: true, // Show checkboxes
debugLevel: 0, // 0:quiet, 1:errors, 2:warnings, 3:infos, 4:debug
selectMode: 3, // 1:single, 2:multi, 3:multi-hier
tabindex: '0', // Whole tree behaves as one single control
keyboard: true, // Support keyboard navigation
quicksearch: true, // Navigate to next node by typing the first letters
source: ajaxSettings,
lazyLoad: ( event, data ) => {
data.result = new Promise( function( resolve, reject ) {
ajaxSettings.data.dir = data.node.key;
$.ajax( ajaxSettings )
.done( ( response ) => resolve( response ) )
.fail( reject );
} );
},
loadChildren: ( event, data ) =>
data.node.fixSelection3AfterClick(), // Apply parent's state to new child nodes:
select: () =>
smushButton.prop(
'disabled',
! +self.tree.getSelectedNodes().length
),
init: () => smushButton.prop( 'disabled', true ),
} );
},
/**
* Show progress dialog.
*
* @param {number} items Number of items in the scan.
*/
showProgressDialog( items ) {
// Update items status and show the progress dialog..
$( '.wp-smush-progress-dialog .sui-progress-state-text' ).html(
'0/' + items + ' ' + self.wp_smush_msgs.progress_smushed
);
window.SUI.openModal(
'wp-smush-progress-dialog',
'dialog-close-div',
undefined,
false
);
},
/**
* Update progress bar during directory smush.
*
* @param {number} progress Current progress in percent.
* @param {boolean} cancel Cancel status.
*/
updateProgressBar( progress, cancel = false ) {
if ( progress > 100 ) {
progress = 100;
}
// Update progress bar
$( '.sui-progress-block .sui-progress-text span' ).text(
progress + '%'
);
$( '.sui-progress-block .sui-progress-bar span' ).width(
progress + '%'
);
if ( progress >= 90 ) {
$( '.sui-progress-state .sui-progress-state-text' ).text(
'Finalizing...'
);
}
if ( cancel ) {
$( '.sui-progress-state .sui-progress-state-text' ).text(
'Cancelling...'
);
}
},
};
WP_Smush.directory.init();
}( jQuery ) );

View File

@ -0,0 +1,298 @@
/* global WP_Smush */
/* global ajaxurl */
/* global wp_smush_msgs */
/**
* Helpers functions.
*
* @since 2.9.0 Moved from admin.js
*/
( function() {
'use strict';
WP_Smush.helpers = {
init: () => {},
cacheUpsellErrorCodes: [],
/**
* Convert bytes to human-readable form.
*
* @param {number} a Bytes
* @param {number} b Number of digits
* @return {*} Formatted Bytes
*/
formatBytes: ( a, b ) => {
const thresh = 1024,
units = [ 'KB', 'MB', 'GB', 'TB', 'PB' ];
if ( Math.abs( a ) < thresh ) {
return a + ' B';
}
let u = -1;
do {
a /= thresh;
++u;
} while ( Math.abs( a ) >= thresh && u < units.length - 1 );
return a.toFixed( b ) + ' ' + units[ u ];
},
/**
* Get size from a string.
*
* @param {string} formattedSize Formatter string
* @return {*} Formatted Bytes
*/
getSizeFromString: ( formattedSize ) => {
return formattedSize.replace( /[a-zA-Z]/g, '' ).trim();
},
/**
* Get type from formatted string.
*
* @param {string} formattedSize Formatted string
* @return {*} Formatted Bytes
*/
getFormatFromString: ( formattedSize ) => {
return formattedSize.replace( /[0-9.]/g, '' ).trim();
},
/**
* Stackoverflow: http://stackoverflow.com/questions/1726630/formatting-a-number-with-exactly-two-decimals-in-javascript
*
* @param {number} num
* @param {number} decimals
* @return {number} Number
*/
precise_round: ( num, decimals ) => {
const sign = num >= 0 ? 1 : -1;
// Keep the percentage below 100.
num = num > 100 ? 100 : num;
return (
Math.round( num * Math.pow( 10, decimals ) + sign * 0.001 ) /
Math.pow( 10, decimals )
);
},
/**
* Displays a floating error message using the #wp-smush-ajax-notice container.
*
* @since 3.8.0
*
* @param {string} message
*/
showErrorNotice: ( message ) => {
if ( 'undefined' === typeof message ) {
return;
}
const noticeMessage = `<p>${ message }</p>`,
noticeOptions = {
type: 'error',
icon: 'info',
};
SUI.openNotice( 'wp-smush-ajax-notice', noticeMessage, noticeOptions );
const loadingButton = document.querySelector( '.sui-button-onload' );
if ( loadingButton ) {
loadingButton.classList.remove( 'sui-button-onload' );
}
},
/**
* Reset settings.
*
* @since 3.2.0
*/
resetSettings: () => {
const _nonce = document.getElementById( 'wp_smush_reset' );
const xhr = new XMLHttpRequest();
xhr.open( 'POST', ajaxurl + '?action=reset_settings', true );
xhr.setRequestHeader(
'Content-type',
'application/x-www-form-urlencoded'
);
xhr.onload = () => {
if ( 200 === xhr.status ) {
const res = JSON.parse( xhr.response );
if ( 'undefined' !== typeof res.success && res.success ) {
window.location.href = wp_smush_msgs.smush_url;
}
} else {
window.console.log(
'Request failed. Returned status of ' + xhr.status
);
}
};
xhr.send( '_ajax_nonce=' + _nonce.value );
},
/**
* Prepare error row. Will only allow to hide errors for WP media attachments (not nextgen).
*
* @since 1.9.0
* @since 3.12.0 Moved from Smush.
*
* @param {string} errorMsg Error message.
* @param {string} fileName File name.
* @param {string} thumbnail Thumbnail for image (if available).
* @param {number} id Image ID.
* @param {string} type Smush type: media or netxgen.
* @param {string} errorCode Error code.
*
* @return {string} Row with error.
*/
prepareBulkSmushErrorRow: (errorMsg, fileName, thumbnail, id, type, errorCode) => {
const thumbDiv =
thumbnail && 'undefined' !== typeof thumbnail ?
`<img class="attachment-thumbnail" src="${thumbnail}" />` :
'<i class="sui-icon-photo-picture" aria-hidden="true"></i>';
const editLink = window.wp_smush_msgs.edit_link.replace('{{id}}', id);
fileName =
'undefined' === fileName || 'undefined' === typeof fileName ?
'undefined' :
fileName;
let tableDiv =
`<div class="smush-bulk-error-row" data-error-code="${errorCode}">
<div class="smush-bulk-image-data">
<div class="smush-bulk-image-title">
${ thumbDiv }
<span class="smush-image-name">
<a href="${editLink}">${fileName}</a>
</span>
</div>
<div class="smush-image-error">
${errorMsg}
</div>
</div>`;
if ('media' === type) {
tableDiv +=
`<div class="smush-bulk-image-actions">
<a href="javascript:void(0)" class="sui-tooltip sui-tooltip-constrained sui-tooltip-left smush-ignore-image" data-tooltip="${window.wp_smush_msgs.error_ignore}" data-id="${id}">
${window.wp_smush_msgs.btn_ignore}
</a>
<a class="smush-link-detail" href="${editLink}">
${window.wp_smush_msgs.view_detail}
</a>
</div>`;
}
tableDiv += '</div>';
tableDiv += WP_Smush.helpers.upsellWithError( errorCode );
return tableDiv;
},
cacheUpsellErrorCode( errorCode ) {
this.cacheUpsellErrorCodes.push( errorCode );
},
/**
* Get upsell base on error code.
* @param {string} errorCode Error code.
* @returns {string}
*/
upsellWithError(errorCode) {
if (
!errorCode
|| !window.wp_smush_msgs['error_' + errorCode]
|| this.isUpsellRendered( errorCode )
) {
return '';
}
this.cacheRenderedUpsell( errorCode );
return '<div class="smush-bulk-error-row smush-error-upsell">' +
'<div class="smush-bulk-image-title">' +
'<span class="smush-image-error">' +
window.wp_smush_msgs['error_' + errorCode] +
'</span>' +
'</div></div>';
},
// Do not use arrow function to use `this`.
isUpsellRendered( errorCode ) {
return this.cacheUpsellErrorCodes.includes( errorCode );
},
// Do not use arrow function to use `this`.
cacheRenderedUpsell( errorCode ) {
this.cacheUpsellErrorCodes.push( errorCode );
},
/**
* Get error message from Ajax response or Error.
* @param {Object} resp
*/
getErrorMessage: ( resp ) => {
return resp.message || resp.data && resp.data.message ||
resp.responseJSON && resp.responseJSON.data && resp.responseJSON.data.message ||
window.wp_smush_msgs.generic_ajax_error ||
resp.status && 'Request failed. Returned status of ' + resp.status
},
/**
* Displays a floating message from response,
* using the #wp-smush-ajax-notice container.
*
* @param {Object|string} notice
* @param {Object} noticeOptions
*/
showNotice: function( notice, noticeOptions ) {
let message;
if ( 'object' === typeof notice ) {
message = this.getErrorMessage( notice );
} else {
message = notice;
}
if ( ! message ) {
return;
}
noticeOptions = noticeOptions || {};
noticeOptions = Object.assign({
showdismiss: false,
autoclose: true,
},noticeOptions);
noticeOptions = {
type: noticeOptions.type || 'error',
icon: noticeOptions.icon || ( 'success' === noticeOptions.type ? 'check-tick' : 'info' ),
dismiss: {
show: noticeOptions.showdismiss,
label: window.wp_smush_msgs.noticeDismiss,
tooltip: window.wp_smush_msgs.noticeDismissTooltip,
},
autoclose: {
show: noticeOptions.autoclose
}
};
const noticeMessage = `<p>${ message }</p>`;
SUI.openNotice( 'wp-smush-ajax-notice', noticeMessage, noticeOptions );
return Promise.resolve( '#wp-smush-ajax-notice' );
},
closeNotice() {
window.SUI.closeNotice( 'wp-smush-ajax-notice' );
},
renderActivationCDNNotice: function( noticeMessage ) {
const animatedNotice = document.getElementById('wp-smush-animated-upsell-notice');
if ( animatedNotice ) {
return;
}
const upsellHtml = `<div class="sui-notice sui-notice-info sui-margin-top" id="wp-smush-animated-upsell-notice">
<div class="sui-notice-content">
<div class="sui-notice-message">
<i class="sui-notice-icon sui-icon-info" aria-hidden="true"></i>
<p>${noticeMessage}</p>
</div>
</div>
</div>`;
document.querySelector( '#smush-box-bulk .wp-smush-bulk-wrapper' ).outerHTML += upsellHtml;
}
};
WP_Smush.helpers.init();
}() );

View File

@ -0,0 +1,385 @@
/* global WP_Smush */
/**
* Scan Media Library.
*
*/
import SmushProgress from '../common/progressbar';
import MediaLibraryScanner from '../common/media-library-scanner';
import { GlobalStats } from '../common/globalStats';
( function() {
'use strict';
if ( ! window.wp_smush_msgs ) {
return;
}
const $ = document.querySelector.bind( document );
const existScanProgressBar = $( '.wp-smush-scan-progress-bar-wrapper' );
if ( ! existScanProgressBar ) {
return;
}
const recheckImagesBtn = $( '.wp-smush-scan' );
if ( ! recheckImagesBtn ) {
return;
}
const bulkSmushButton = $( '.wp-smush-bo-start' ) || $( '.wp-smush-bulk-wrapper .wp-smush-all' );
const { __ } = wp.i18n;
class MediaLibraryScannerOnBulkSmush extends MediaLibraryScanner {
constructor() {
super();
this.runBulkSmushOnComplete = false;
this.restoreButton = $( '.wp-smush-restore' );
this.autoBulkSmushNotification = $( '.wp-smush-auto-bulk-smush-notification' );
}
startScanThenBulkSmushOnComplete() {
this.runBulkSmushOnComplete = true;
return this.startScan( true );
}
onStart() {
this.hideRecheckNotice();
this.disableRelatedButtons();
this.setRecheckImagesButtonOnLoad();
this.toggleBulkSmushBoxContent();
return this;
}
onStartFailure( response ) {
super.onStartFailure( response );
this.revertRelatedButtons();
}
onCloseProgressBar() {
this.maybeHideAutoBulkSmushNotification();
}
disableRelatedButtons() {
this.restoreButton.setAttribute( 'disabled', true );
if ( bulkSmushButton ) {
bulkSmushButton.setAttribute( 'disabled', true );
this.setInnerText( bulkSmushButton, __( 'Waiting for Re-check to finish', 'wp-smushit' ) );
}
}
revertRelatedButtons() {
if ( bulkSmushButton ) {
bulkSmushButton.removeAttribute( 'disabled' );
this.revertInnerText( bulkSmushButton );
}
this.restoreButton.removeAttribute( 'disabled' );
this.revertRecheckImagesButton();
return this;
}
setRecheckImagesButtonOnLoad() {
// recheckImagesBtn.classList.add( 'sui-button-onload' );
this.disableRecheckImagesButton();
this.setInnerText( recheckImagesBtn.querySelector( '.wp-smush-inner-text' ), __( 'Checking Images', 'wp-smushit' ) );
}
disableRecheckImagesButton() {
recheckImagesBtn.setAttribute( 'disabled', true );
}
revertRecheckImagesButton() {
// recheckImagesBtn.classList.remove( 'sui-button-onload' );
recheckImagesBtn.removeAttribute( 'disabled' );
this.revertInnerText( recheckImagesBtn.querySelector( '.wp-smush-inner-text' ) );
}
beforeUpdateStatus( stats ) {
this.runBulkSmushOnComplete = stats?.optimize_on_scan_completed;
this.maybeShowAutoBulkSmushNotification();
}
onDead( stats ) {
super.onDead( stats );
this.revertRelatedButtons();
this.setRequiredScanForBulkSmushButton();
}
onFinish( stats ) {
const globalStats = stats.global_stats;
super.onFinish( stats );
this.revertRelatedButtons();
this.toggleBulkSmushDescription( globalStats );
if ( globalStats.is_outdated ) {
this.setRequiredScanForBulkSmushButton();
} else {
this.removeScanEventFromBulkSmushButton();
}
this.revertRecheckWarning();
}
onCompleted( stats ) {
const requiredReloadPage = ! bulkSmushButton;
if ( requiredReloadPage ) {
window.location.reload();
return;
}
this.onFinish( stats );
const globalStats = stats.global_stats;
const allImagesSmushed = globalStats.remaining_count < 1;
if ( allImagesSmushed ) {
return;
}
if ( ! this.runBulkSmushOnComplete ) {
this.showRecheckNoticeSuccess();
return;
}
this.runBulkSmushOnComplete = false;
this.triggerBulkSmushEvent( stats );
}
showNotice( stats ) {
if ( ! stats.notice ) {
return;
}
let type = 'success';
if ( 'undefined' !== typeof stats.noticeType ) {
type = stats.noticeType;
}
window.SUI.openNotice(
'wp-smush-ajax-notice',
'<p>' + stats.notice + '</p>',
{ type, icon: 'check-tick' }
);
}
showRecheckNoticeSuccess() {
const recheckNotice = $( '.wp-smush-recheck-images-notice-box' );
if ( ! recheckNotice ) {
return;
}
this.showAnElement( recheckNotice );
this.hideAnElement( recheckNotice.querySelector( '.wp-smush-recheck-images-notice-warning' ) );
this.showAnElement( recheckNotice.querySelector( '.wp-smush-recheck-images-notice-success' ) );
}
showRecheckNoticeWarning() {
const recheckNotice = $( '.wp-smush-recheck-images-notice-box' );
if ( ! recheckNotice ) {
return;
}
this.showAnElement( recheckNotice );
this.hideAnElement( recheckNotice.querySelector( '.wp-smush-recheck-images-notice-success' ) );
this.showAnElement( recheckNotice.querySelector( '.wp-smush-recheck-images-notice-warning' ) );
}
hideRecheckNotice() {
this.hideAnElement( $( '.wp-smush-recheck-images-notice-box' ) );
}
showProgressErrorNoticeOnRecheckNotice() {
const recheckWarningElement = $( '.wp-smush-recheck-images-notice-box .wp-smush-recheck-images-notice-warning' );
if ( ! recheckWarningElement ) {
return;
}
recheckWarningElement.classList.add( 'sui-notice-error' );
recheckWarningElement.classList.remove( 'sui-notice-warning' );
this.setInnerText( recheckWarningElement.querySelector( 'span' ), this.getErrorProgressMessage() );
this.showRecheckNoticeWarning();
}
revertRecheckWarning() {
const recheckWarningElement = $( '.wp-smush-recheck-images-notice-box .wp-smush-recheck-images-notice-warning' );
if ( ! recheckWarningElement ) {
return;
}
recheckWarningElement.classList.add( 'sui-notice-warning' );
recheckWarningElement.classList.remove( 'sui-notice-error' );
this.revertInnerText( recheckWarningElement.querySelector( 'span' ) );
}
triggerBulkSmushEvent( stats ) {
this.disableRecheckImagesButton();
if ( stats.enabled_background_process ) {
this.triggerBackgroundBulkSmushEvent( stats.global_stats );
} else {
this.triggerAjaxBulkSmushEvent( stats.global_stats );
}
}
toggleBulkSmushDescription( globalStats ) {
if ( SmushProgress.isEmptyObject ) {
return;
}
if ( globalStats.remaining_count < 1 ) {
SmushProgress.hideBulkSmushDescription();
SmushProgress.showBulkSmushAllDone();
} else {
SmushProgress.showBulkSmushDescription();
SmushProgress.hideBulkSmushAllDone();
}
}
setRequiredScanForBulkSmushButton() {
bulkSmushButton && bulkSmushButton.classList.add( 'wp-smush-scan-and-bulk-smush' );
}
removeScanEventFromBulkSmushButton() {
bulkSmushButton && bulkSmushButton.classList.remove( 'wp-smush-scan-and-bulk-smush' );
}
triggerBackgroundBulkSmushEvent( globalStats ) {
document.dispatchEvent(
new CustomEvent( 'backgroundBulkSmushOnScanCompleted', {
detail: globalStats
} )
);
}
triggerAjaxBulkSmushEvent( globalStats ) {
document.dispatchEvent(
new CustomEvent( 'ajaxBulkSmushOnScanCompleted', {
detail: globalStats
} )
);
}
onCancelled( stats ) {
this.onFinish( stats );
this.runBulkSmushOnComplete = false;
this.setRequiredScanForBulkSmushButton();
}
maybeShowAutoBulkSmushNotification() {
if (
! this.runBulkSmushOnComplete
) {
return;
}
this.showAnElement( this.autoBulkSmushNotification );
}
maybeHideAutoBulkSmushNotification() {
if (
! this.runBulkSmushOnComplete
) {
return;
}
this.hideAnElement( this.autoBulkSmushNotification );
}
toggleBulkSmushBoxContent() {
GlobalStats.resetAndHideBulkErrors();
this.toggleBulkSmushDescription( GlobalStats.getGlobalStats() );
}
}
const mediaLibScanner = new MediaLibraryScannerOnBulkSmush();
/**
* Event Listeners.
*/
// Background Scan Media Library.
const registerScanMediaLibraryEvent = () => {
if ( ! recheckImagesBtn ) {
return;
}
const canScanInBackground = recheckImagesBtn.classList.contains( 'wp-smush-background-scan' );
if ( ! canScanInBackground ) {
return;
}
recheckImagesBtn.addEventListener( 'click', () => mediaLibScanner.startScan() );
//Check scan is running.
if ( window.wp_smushit_data.media_library_scan?.in_processing ) {
mediaLibScanner.onStart().showProgressBar().autoSyncStatus();
return;
}
if ( window.location.search.includes( 'smush-action=start-scan-media' ) ) {
recheckImagesBtn.click();
const removeScanActionFromURLAddress = () => {
const cleanedURL = window.location.href.replace( '&smush-action=start-scan-media', '' );
window.history.pushState( null, null, cleanedURL );
};
removeScanActionFromURLAddress();
}
};
registerScanMediaLibraryEvent();
/**
* Recheck Images Notice events.
*/
const registerEventsRelatedRecheckImagesNotice = () => {
const recheckImagesNotice = $( '.wp-smush-recheck-images-notice-box' );
if ( ! recheckImagesNotice || ! recheckImagesBtn ) {
return;
}
const triggerBackgroundScanImagesLink = recheckImagesNotice.querySelector( '.wp-smush-trigger-background-scan' );
if ( triggerBackgroundScanImagesLink ) {
triggerBackgroundScanImagesLink.onclick = ( e ) => {
e.preventDefault();
recheckImagesBtn.click();
};
if ( window.wp_smushit_data.media_library_scan?.is_dead ) {
mediaLibScanner.showProgressErrorNoticeOnRecheckNotice();
} else if( window.wp_smushit_data.is_outdated ) {
mediaLibScanner.showRecheckNoticeWarning();
}
}
const triggerBulkSmush = recheckImagesNotice.querySelector( '.wp-smush-trigger-bulk-smush' );
if ( triggerBulkSmush && bulkSmushButton ) {
triggerBulkSmush.onclick = ( e ) => {
e.preventDefault();
recheckImagesNotice.classList.add( 'sui-hidden' );
bulkSmushButton.click();
};
}
const dismissNotices = recheckImagesNotice.querySelectorAll( 'button.sui-button-icon' );
if ( dismissNotices ) {
dismissNotices.forEach( ( dismissNotice ) => {
dismissNotice.onclick = ( e ) => {
dismissNotice.closest( '.sui-recheck-images-notice' ).classList.add( 'sui-hidden' );
};
} );
}
document.addEventListener( 'onSavedSmushSettings', function( e ) {
if ( ! e?.detail?.is_outdated_stats ) {
return;
}
mediaLibScanner.setRequiredScanForBulkSmushButton();
recheckImagesNotice.classList.remove( 'sui-hidden' );
recheckImagesNotice.querySelector( '.wp-smush-recheck-images-notice-success' ).classList.add( 'sui-hidden' );
recheckImagesNotice.querySelector( '.wp-smush-recheck-images-notice-warning' ).classList.remove( 'sui-hidden' );
} );
};
registerEventsRelatedRecheckImagesNotice();
// Scan and Bulk Smush.
const registerScanAndBulkSmushEvent = () => {
if ( ! bulkSmushButton ) {
return;
}
const handleScanAndBulkSmush = ( e ) => {
const shouldRunScan = bulkSmushButton.classList.contains( 'wp-smush-scan-and-bulk-smush' );
if ( ! shouldRunScan ) {
return;
}
e.preventDefault();
mediaLibScanner.startScanThenBulkSmushOnComplete();
};
bulkSmushButton.addEventListener( 'click', handleScanAndBulkSmush );
};
registerScanAndBulkSmushEvent();
}() );

View File

@ -0,0 +1,63 @@
/* global WP_Smush */
/**
* Scan Media Library.
*
*/
import MediaLibraryScanner from '../common/media-library-scanner';
( function() {
'use strict';
if ( ! window.wp_smush_msgs ) {
return;
}
const $ = document.querySelector.bind( document );
const existScanProgressBar = $( '.wp-smush-scan-progress-bar-wrapper' );
if ( ! existScanProgressBar ) {
return;
}
const recheckImagesBtn = $( '.wp-smush-scan' );
if ( recheckImagesBtn ) {
return;
}
//Check scan is running.
const is_scan_running = window.wp_smushit_data.media_library_scan?.in_processing;
if ( ! is_scan_running ) {
return;
}
const { __ } = wp.i18n;
class mediaLibraryScannerOnDashboard extends MediaLibraryScanner {
constructor() {
super();
this.bulkSmushLink = $( '.wp-smush-bulk-smush-link' );
}
onShowProgressBar() {
this.disableBulkSmushLink();
}
onCloseProgressBar() {
this.revertBulkSmushLink();
}
disableBulkSmushLink() {
if ( ! this.bulkSmushLink ) {
return;
}
this.bulkSmushLink.setAttribute( 'disabled', true );
this.setInnerText( this.bulkSmushLink, __( 'Waiting for Re-check to finish', 'wp-smushit' ) );
}
revertBulkSmushLink() {
if ( ! this.bulkSmushLink ) {
return;
}
this.bulkSmushLink.removeAttribute( 'disabled' );
this.revertInnerText( this.bulkSmushLink );
}
}
( new mediaLibraryScannerOnDashboard() ).showProgressBar().autoSyncStatus();
}() );

View File

@ -0,0 +1,52 @@
import Smush from '../smush/smush';
import SmushProcess from '../common/progressbar';
(function($) {
$(function() {
/** Handle NextGen Gallery smush button click **/
$('body').on('click', '.wp-smush-nextgen-send', function (e) {
// prevent the default action
e.preventDefault();
new Smush($(this), false, 'nextgen');
});
/** Handle NextGen Gallery Bulk smush button click **/
$('body').on('click', '.wp-smush-nextgen-bulk', function (e) {
// prevent the default action
e.preventDefault();
// Remove existing Re-Smush notices.
// TODO: REMOVE re-smush-notice since no longer used.
$('.wp-smush-resmush-notice').remove();
//Check for ids, if there is none (Unsmushed or lossless), don't call smush function
if (
'undefined' === typeof wp_smushit_data ||
(wp_smushit_data.unsmushed.length === 0 &&
wp_smushit_data.resmush.length === 0)
) {
return false;
}
const bulkSmush = new Smush( $(this), true, 'nextgen' );
SmushProcess.setOnCancelCallback( () => {
bulkSmush.cancelAjax();
}).update( 0, bulkSmush.ids.length ).show();
jQuery('.wp-smush-all, .wp-smush-scan').prop('disabled', true);
$('.wp-smush-notice.wp-smush-remaining').hide();
// Run bulk Smush.
bulkSmush.run();
})
.on('click', '.wp-smush-trigger-nextgen-bulk', function(e){
e.preventDefault();
const bulkSmushButton = $('.wp-smush-nextgen-bulk');
if ( bulkSmushButton.length ) {
bulkSmushButton.trigger('click');
SUI.closeNotice( 'wp-smush-ajax-notice' );
}
});
});
}(window.jQuery));

View File

@ -0,0 +1,81 @@
/* global ajaxurl */
/* global wp_smush_msgs */
( function( $ ) {
'use strict';
const s3alert = $( '#wp-smush-s3support-alert' );
/**
* S3 support alert.
*
* @since 3.6.2 Moved from class-s3.php
*/
if ( s3alert.length ) {
const noticeOptions = {
type: 'warning',
icon: 'info',
dismiss: {
show: true,
label: wp_smush_msgs.noticeDismiss,
tooltip: wp_smush_msgs.noticeDismissTooltip,
},
};
window.SUI.openNotice(
'wp-smush-s3support-alert',
s3alert.data( 'message' ),
noticeOptions
);
}
// Dismiss S3 support alert.
s3alert.on( 'click', 'button', () => {
$.post( ajaxurl,
{
action: 'dismiss_s3support_alert',
_ajax_nonce: window.wp_smush_msgs.nonce,
}
);
} );
// Remove API message.
$( '#wp-smush-api-message button.sui-button-icon' ).on( 'click', function( e ) {
e.preventDefault();
const notice = $( '#wp-smush-api-message' );
notice.slideUp( 'slow', function() {
notice.remove();
} );
$.post( ajaxurl,
{
action: 'hide_api_message',
_ajax_nonce: window.wp_smush_msgs.nonce,
}
);
} );
// Hide the notice after a CTA button was clicked
function removeNotice( e ) {
const $notice = $( e.currentTarget ).closest( '.smush-notice' );
$notice.fadeTo( 100, 0, () =>
$notice.slideUp( 100, () => $notice.remove() )
);
}
// Only used for the Dashboard notification for now.
$( '.smush-notice .smush-notice-act' ).on( 'click', ( e ) => {
removeNotice( e );
} );
// Dismiss the update notice.
$( '.wp-smush-update-info' ).on( 'click', '.notice-dismiss', ( e ) => {
e.preventDefault();
removeNotice( e );
$.post( ajaxurl,
{
action: 'dismiss_update_info',
_ajax_nonce: window.wp_smush_msgs.nonce,
}
);
} );
}( jQuery ) );

View File

@ -0,0 +1,378 @@
/* global WP_Smush */
/* global ajaxurl */
/**
* Modals JavaScript code.
*/
( function() {
'use strict';
/**
* Onboarding modal.
*
* @since 3.1
*/
WP_Smush.onboarding = {
membership: 'free', // Assume free by default.
onboardingModal: document.getElementById( 'smush-onboarding-dialog' ),
first_slide: 'usage',
settings: {
first: true,
last: false,
slide: 'usage',
value: false,
},
selection: {
usage: false,
auto: true,
lossy: true,
strip_exif: true,
original: false,
lazy_load: true,
},
contentContainer: document.getElementById( 'smush-onboarding-content' ),
onboardingSlides: [
'usage',
'auto',
'lossy',
'strip_exif',
'original',
'lazy_load',
],
touchX: null,
touchY: null,
recheckImagesLink: '',
/**
* Init module.
*/
init() {
if ( ! this.onboardingModal ) {
return;
}
const dialog = document.getElementById( 'smush-onboarding' );
this.membership = dialog.dataset.type;
this.recheckImagesLink = dialog.dataset.ctaUrl;
if ( 'pro' !== this.membership ) {
this.onboardingSlides = [
'usage',
'auto',
'lossy',
'strip_exif',
'lazy_load',
];
}
if ( 'false' === dialog.dataset.tracking ) {
this.onboardingSlides.pop();
}
this.renderTemplate();
// Skip setup.
const skipButton = this.onboardingModal.querySelector(
'.smush-onboarding-skip-link'
);
if ( skipButton ) {
skipButton.addEventListener( 'click', this.skipSetup.bind( this ) );
}
// Show the modal.
window.SUI.openModal(
'smush-onboarding-dialog',
'wpcontent',
undefined,
false
);
},
/**
* Get swipe coordinates.
*
* @param {Object} e
*/
handleTouchStart( e ) {
const firstTouch = e.touches[ 0 ];
this.touchX = firstTouch.clientX;
this.touchY = firstTouch.clientY;
},
/**
* Process swipe left/right.
*
* @param {Object} e
*/
handleTouchMove( e ) {
if ( ! this.touchX || ! this.touchY ) {
return;
}
const xUp = e.touches[ 0 ].clientX,
yUp = e.touches[ 0 ].clientY,
xDiff = this.touchX - xUp,
yDiff = this.touchY - yUp;
if ( Math.abs( xDiff ) > Math.abs( yDiff ) ) {
if ( xDiff > 0 ) {
if ( false === WP_Smush.onboarding.settings.last ) {
WP_Smush.onboarding.next( null, 'next' );
}
} else if ( false === WP_Smush.onboarding.settings.first ) {
WP_Smush.onboarding.next( null, 'prev' );
}
}
this.touchX = null;
this.touchY = null;
},
/**
* Update the template, register new listeners.
*
* @param {string} directionClass Accepts: fadeInRight, fadeInLeft, none.
*/
renderTemplate( directionClass = 'none' ) {
// Grab the selected value.
const input = this.onboardingModal.querySelector(
'input[type="checkbox"]'
);
if ( input ) {
this.selection[ input.id ] = input.checked;
}
const template = WP_Smush.onboarding.template( 'smush-onboarding' );
const content = template( this.settings );
if ( content ) {
this.contentContainer.innerHTML = content;
if ( 'none' === directionClass ) {
this.contentContainer.classList.add( 'loaded' );
} else {
this.contentContainer.classList.remove( 'loaded' );
this.contentContainer.classList.add( directionClass );
setTimeout( () => {
this.contentContainer.classList.add( 'loaded' );
this.contentContainer.classList.remove(
directionClass
);
}, 600 );
}
}
this.onboardingModal.addEventListener(
'touchstart',
this.handleTouchStart,
false
);
this.onboardingModal.addEventListener(
'touchmove',
this.handleTouchMove,
false
);
this.bindSubmit();
},
/**
* Catch "Finish setup wizard" button click.
*/
bindSubmit() {
const submitButton = this.onboardingModal.querySelector(
'button[type="submit"]'
);
const self = this;
if ( submitButton ) {
submitButton.addEventListener( 'click', function( e ) {
e.preventDefault();
// Because we are not rendering the template, we need to update the last element value.
const input = self.onboardingModal.querySelector(
'input[type="checkbox"]'
);
if ( input ) {
self.selection[ input.id ] = input.checked;
}
const _nonce = document.getElementById(
'smush_quick_setup_nonce'
);
const xhr = new XMLHttpRequest();
xhr.open( 'POST', ajaxurl + '?action=smush_setup', true );
xhr.setRequestHeader(
'Content-type',
'application/x-www-form-urlencoded'
);
xhr.onload = () => {
if ( 200 === xhr.status ) {
self.onFinishingSetup();
} else {
window.console.log(
'Request failed. Returned status of ' +
xhr.status
);
}
};
xhr.send(
'smush_settings=' +
JSON.stringify( self.selection ) +
'&_ajax_nonce=' +
_nonce.value
);
} );
}
},
onFinishingSetup() {
this.onFinish();
this.startRecheckImages();
},
onFinish() {
window.SUI.closeModal();
},
startRecheckImages() {
if ( ! this.recheckImagesLink ) {
return;
}
window.location.href = this.recheckImagesLink;
},
/**
* Handle navigation.
*
* @param {Object} e
* @param {null|string} whereTo
*/
next( e, whereTo = null ) {
const index = this.onboardingSlides.indexOf( this.settings.slide );
let newIndex = 0;
if ( ! whereTo ) {
newIndex =
null !== e && e.classList.contains( 'next' )
? index + 1
: index - 1;
} else {
newIndex = 'next' === whereTo ? index + 1 : index - 1;
}
const directionClass =
null !== e && e.classList.contains( 'next' )
? 'fadeInRight'
: 'fadeInLeft';
this.settings = {
first: 0 === newIndex,
last: newIndex + 1 === this.onboardingSlides.length, // length !== index
slide: this.onboardingSlides[ newIndex ],
value: this.selection[ this.onboardingSlides[ newIndex ] ],
};
this.renderTemplate( directionClass );
},
/**
* Handle circle navigation.
*
* @param {string} target
*/
goTo( target ) {
const newIndex = this.onboardingSlides.indexOf( target );
this.settings = {
first: 0 === newIndex,
last: newIndex + 1 === this.onboardingSlides.length, // length !== index
slide: target,
value: this.selection[ target ],
};
this.renderTemplate();
},
/**
* Skip onboarding experience.
*/
skipSetup() {
const _nonce = document.getElementById( 'smush_quick_setup_nonce' );
const xhr = new XMLHttpRequest();
xhr.open(
'POST',
ajaxurl + '?action=skip_smush_setup&_ajax_nonce=' + _nonce.value
);
xhr.onload = () => {
if ( 200 === xhr.status ) {
this.onSkipSetup();
} else {
window.console.log(
'Request failed. Returned status of ' + xhr.status
);
}
};
xhr.send();
},
onSkipSetup() {
this.onFinish();
},
/**
* Hide new features modal.
* @since 3.7.0
* @since 3.12.2 Add a new parameter redirectUrl
*/
hideUpgradeModal: ( e, button ) => {
e.preventDefault();
button.classList.add( 'wp-smush-link-in-progress' );
const redirectUrl = button?.href;
const xhr = new XMLHttpRequest();
xhr.open( 'POST', ajaxurl + '?action=hide_new_features&_ajax_nonce=' + window.wp_smush_msgs.nonce );
xhr.onload = () => {
window.SUI.closeModal();
button.classList.remove( 'wp-smush-link-in-progress' );
if ( 200 === xhr.status ) {
if ( redirectUrl ) {
window.location.href = redirectUrl;
}
} else {
window.console.log(
'Request failed. Returned status of ' + xhr.status
);
}
};
xhr.send();
},
};
/**
* Template function (underscores based).
*
* @type {Function}
*/
WP_Smush.onboarding.template = _.memoize( ( id ) => {
let compiled;
const options = {
evaluate: /<#([\s\S]+?)#>/g,
interpolate: /{{{([\s\S]+?)}}}/g,
escape: /{{([^}]+?)}}(?!})/g,
variable: 'data',
};
return ( data ) => {
_.templateSettings = options;
compiled =
compiled ||
_.template( document.getElementById( id ).innerHTML );
data.first_slide = WP_Smush.onboarding.first_slide;
return compiled( data );
};
} );
window.addEventListener( 'load', () => WP_Smush.onboarding.init() );
}() );

View File

@ -0,0 +1,13 @@
/**
* Shared UI JS libraries. Use only what we need to keep the vendor file size smaller.
*
* @package
*/
require( '@wpmudev/shared-ui/dist/js/_src/code-snippet' );
require( '@wpmudev/shared-ui/dist/js/_src/modal-dialog' );
require( '@wpmudev/shared-ui/dist/js/_src/notifications' );
require( '@wpmudev/shared-ui/dist/js/_src/select2.full' );
require( '@wpmudev/shared-ui/dist/js/_src/select2' );
require( '@wpmudev/shared-ui/dist/js/_src/tabs' );
require( '@wpmudev/shared-ui/dist/js/_src/upload' ); // Used on lazy load page (since 3.2.2).
require( '@wpmudev/shared-ui/dist/js/_src/reviews' );

View File

@ -0,0 +1,147 @@
/**
* BLOCK: extend image block
*/
const { createHigherOrderComponent } = wp.compose,
{ Fragment } = wp.element,
{ InspectorControls } = wp.blockEditor,
{ PanelBody } = wp.components;
/**
* Transform bytes to human readable format.
*
* @param {number} bytes
* @return {string} Readable size string.
*/
function humanFileSize( bytes ) {
const thresh = 1024,
units = [ 'kB', 'MB', 'GB', 'TB' ];
if ( Math.abs( bytes ) < thresh ) {
return bytes + ' B';
}
let u = -1;
do {
bytes /= thresh;
++u;
} while ( Math.abs( bytes ) >= thresh && u < units.length - 1 );
return bytes.toFixed( 1 ) + ' ' + units[ u ];
}
/**
* Generate Smush stats table.
*
* @param {number} id
* @param {Object} stats
* @return {*} Smush stats.
*/
export function smushStats( id, stats ) {
if ( 'undefined' === typeof stats ) {
return window.smush_vars.strings.gb.select_image;
} else if ( 'string' === typeof stats ) {
return stats;
}
return (
<div
id="smush-stats"
className="sui-smush-media smush-stats-wrapper hidden"
style={ { display: 'block' } }
>
<table className="wp-smush-stats-holder">
<thead>
<tr>
<th className="smush-stats-header">
{ window.smush_vars.strings.gb.size }
</th>
<th className="smush-stats-header">
{ window.smush_vars.strings.gb.savings }
</th>
</tr>
</thead>
<tbody>
{ Object.keys( stats.sizes )
.filter( ( item ) => 0 < stats.sizes[ item ].percent )
.map( ( item, i ) => (
<tr key={ i }>
<td>{ item.toUpperCase() }</td>
<td>
{ humanFileSize(
stats.sizes[ item ].bytes
) }{ ' ' }
( { stats.sizes[ item ].percent }% )
</td>
</tr>
) ) }
</tbody>
</table>
</div>
);
}
/**
* Fetch image data. If image is Smushing, update in 3 seconds.
*
* TODO: this could be optimized not to query so much.
*
* @param {Object} props
*/
export function fetchProps( props ) {
const image = new wp.api.models.Media( { id: props.attributes.id } ),
smushData = props.attributes.smush;
image.fetch( { attribute: 'smush' } ).done( function( img ) {
if ( 'string' === typeof img.smush ) {
props.setAttributes( { smush: img.smush } );
//setTimeout( () => fetch( props ), 3000 );
} else if (
'undefined' !== typeof img.smush &&
( 'undefined' === typeof smushData ||
JSON.stringify( smushData ) !== JSON.stringify( img.smush ) )
) {
props.setAttributes( { smush: img.smush } );
}
} );
}
/**
* Modify the blocks edit component.
* Receives the original block BlockEdit component and returns a new wrapped component.
*/
const smushStatsControl = createHigherOrderComponent( ( BlockEdit ) => {
return ( props ) => {
// If not image block or not selected, return unmodified block.
if (
'core/image' !== props.name ||
! props.isSelected ||
'undefined' === typeof props.attributes.id
) {
return (
<Fragment>
<BlockEdit { ...props } />
</Fragment>
);
}
const smushData = props.attributes.smush;
fetchProps( props );
return (
<Fragment>
<BlockEdit { ...props } />
<InspectorControls>
<PanelBody title={ window.smush_vars.strings.gb.stats }>
{ smushStats( props.attributes.id, smushData ) }
</PanelBody>
</InspectorControls>
</Fragment>
);
};
}, 'withInspectorControl' );
wp.hooks.addFilter(
'editor.BlockEdit',
'wp-smush/smush-data-control',
smushStatsControl
);

View File

@ -0,0 +1,138 @@
/* global WP_Smush */
/* global ajaxurl */
/**
* CDN functionality.
*
* @since 3.0
*/
( function() {
'use strict';
WP_Smush.CDN = {
cdnEnableButton: document.getElementById( 'smush-enable-cdn' ),
cdnDisableButton: document.getElementById( 'smush-cancel-cdn' ),
cdnStatsBox: document.querySelector( '.smush-cdn-stats' ),
init() {
/**
* Handle "Get Started" button click on disabled CDN page.
*/
if ( this.cdnEnableButton ) {
this.cdnEnableButton.addEventListener( 'click', ( e ) => {
e.preventDefault();
e.currentTarget.classList.add( 'sui-button-onload' );
this.toggle_cdn( true );
} );
}
/**
* Handle "Deactivate' button click on CDN page.
*/
if ( this.cdnDisableButton ) {
this.cdnDisableButton.addEventListener( 'click', ( e ) => {
e.preventDefault();
e.currentTarget.classList.add( 'sui-button-onload' );
this.toggle_cdn( false );
} );
}
this.updateStatsBox();
},
/**
* Toggle CDN.
*
* @since 3.0
*
* @param {boolean} enable
*/
toggle_cdn( enable ) {
const nonceField = document.getElementsByName(
'wp_smush_options_nonce'
);
const xhr = new XMLHttpRequest();
xhr.open( 'POST', ajaxurl + '?action=smush_toggle_cdn', true );
xhr.setRequestHeader(
'Content-type',
'application/x-www-form-urlencoded'
);
xhr.onload = () => {
if ( 200 === xhr.status ) {
const res = JSON.parse( xhr.response );
if ( 'undefined' !== typeof res.success && res.success ) {
window.location.search = 'page=smush-cdn';
} else if ( 'undefined' !== typeof res.data.message ) {
WP_Smush.helpers.showErrorNotice( res.data.message );
}
} else {
WP_Smush.helpers.showErrorNotice( 'Request failed. Returned status of ' + xhr.status );
}
};
xhr.send(
'param=' + enable + '&_ajax_nonce=' + nonceField[ 0 ].value
);
},
/**
* Update the CDN stats box in summary meta box. Only fetch new data when on CDN page.
*
* @since 3.0
*/
updateStatsBox() {
if (
'undefined' === typeof this.cdnStatsBox ||
! this.cdnStatsBox
) {
return;
}
// Only fetch the new stats, when user is on CDN page.
if ( ! window.location.search.includes( 'page=smush-cdn' ) ) {
return;
}
this.toggleElements();
const xhr = new XMLHttpRequest();
xhr.open( 'POST', ajaxurl + '?action=get_cdn_stats', true );
xhr.onload = () => {
if ( 200 === xhr.status ) {
const res = JSON.parse( xhr.response );
if ( 'undefined' !== typeof res.success && res.success ) {
this.toggleElements();
} else if ( 'undefined' !== typeof res.data.message ) {
WP_Smush.helpers.showErrorNotice( res.data.message );
}
} else {
WP_Smush.helpers.showErrorNotice( 'Request failed. Returned status of ' + xhr.status );
}
};
xhr.send();
},
/**
* Show/hide elements during status update in the updateStatsBox()
*
* @since 3.1 Moved out from updateStatsBox()
*/
toggleElements() {
const spinner = this.cdnStatsBox.querySelector(
'.sui-icon-loader'
);
const elements = this.cdnStatsBox.querySelectorAll(
'.wp-smush-stats > :not(.sui-icon-loader)'
);
for ( let i = 0; i < elements.length; i++ ) {
elements[ i ].classList.toggle( 'sui-hidden' );
}
spinner.classList.toggle( 'sui-hidden' );
},
};
WP_Smush.CDN.init();
} )();

View File

@ -0,0 +1,208 @@
/* global WP_Smush */
/* global ajaxurl */
/**
* Directory scanner module that will Smush images in the Directory Smush modal.
*
* @since 2.8.1
*
* @param {string|number} totalSteps
* @param {string|number} currentStep
* @return {Object} Scan object.
* @class
*/
const DirectoryScanner = ( totalSteps, currentStep ) => {
totalSteps = parseInt( totalSteps );
currentStep = parseInt( currentStep );
let cancelling = false,
failedItems = 0,
skippedItems = 0;
const obj = {
scan() {
const remainingSteps = totalSteps - currentStep;
if ( currentStep !== 0 ) {
// Scan started on a previous page load.
step( remainingSteps ).fail( this.showScanError );
} else {
jQuery
.post( ajaxurl, {
action: 'directory_smush_start',
_ajax_nonce: window.wp_smush_msgs.nonce
}, () =>
step( remainingSteps ).fail( this.showScanError )
)
.fail( this.showScanError );
}
},
cancel() {
cancelling = true;
return jQuery.post( ajaxurl, {
action: 'directory_smush_cancel',
_ajax_nonce: window.wp_smush_msgs.nonce
} );
},
getProgress() {
if ( cancelling ) {
return 0;
}
// O M G ... Logic at it's finest!
const remainingSteps = totalSteps - currentStep;
return Math.min(
Math.round(
( parseInt( totalSteps - remainingSteps ) * 100 ) /
totalSteps
),
99
);
},
onFinishStep( progress ) {
jQuery( '.wp-smush-progress-dialog .sui-progress-state-text' ).html(
currentStep -
failedItems +
'/' +
totalSteps +
' ' +
window.wp_smush_msgs.progress_smushed
);
WP_Smush.directory.updateProgressBar( progress );
},
onFinish() {
WP_Smush.directory.updateProgressBar( 100 );
window.location.href =
window.wp_smush_msgs.directory_url + '&scan=done';
},
/**
* Displays an error when the scan request fails.
*
* @param {Object} res XHR object.
*/
showScanError( res ) {
const dialog = jQuery( '#wp-smush-progress-dialog' );
// Add the error class to show/hide elements in the dialog.
dialog
.removeClass( 'wp-smush-exceed-limit' )
.addClass( 'wp-smush-scan-error' );
// Add the error status and description to the error message.
dialog
.find( '#smush-scan-error' )
.text( `${ res.status } ${ res.statusText }` );
// Show/hide the 403 error specific instructions.
const forbiddenMessage = dialog.find( '.smush-403-error-message' );
if ( 403 !== res.status ) {
forbiddenMessage.addClass( 'sui-hidden' );
} else {
forbiddenMessage.removeClass( 'sui-hidden' );
}
},
limitReached() {
const dialog = jQuery( '#wp-smush-progress-dialog' );
dialog.addClass( 'wp-smush-exceed-limit' );
dialog
.find( '#cancel-directory-smush' )
.attr( 'data-tooltip', window.wp_smush_msgs.bulk_resume );
dialog
.find( '.sui-box-body .sui-icon-close' )
.removeClass( 'sui-icon-close' )
.addClass( 'sui-icon-play' );
dialog
.find( '#cancel-directory-smush' )
.attr( 'id', 'cancel-directory-smush-disabled' );
},
resume() {
const dialog = jQuery( '#wp-smush-progress-dialog' );
const resume = dialog.find( '#cancel-directory-smush-disabled' );
dialog.removeClass( 'wp-smush-exceed-limit' );
dialog
.find( '.sui-box-body .sui-icon-play' )
.removeClass( 'sui-icon-play' )
.addClass( 'sui-icon-close' );
resume.attr( 'data-tooltip', 'Cancel' );
resume.attr( 'id', 'cancel-directory-smush' );
obj.scan();
},
};
/**
* Execute a scan step recursively
*
* Private to avoid overriding
*
* @param {number} remainingSteps
*/
const step = function( remainingSteps ) {
if ( remainingSteps >= 0 ) {
currentStep = totalSteps - remainingSteps;
return jQuery.post(
ajaxurl,
{
action: 'directory_smush_check_step',
_ajax_nonce: window.wp_smush_msgs.nonce,
step: currentStep,
},
( response ) => {
// We're good - continue on.
if (
'undefined' !== typeof response.success &&
response.success
) {
if (
'undefined' !== typeof response.data &&
'undefined' !== typeof response.data.skipped &&
true === response.data.skipped
) {
skippedItems++;
}
currentStep++;
remainingSteps = remainingSteps - 1;
obj.onFinishStep( obj.getProgress() );
step( remainingSteps ).fail( obj.showScanError );
} else if (
'undefined' !== typeof response.data.error &&
'dir_smush_limit_exceeded' === response.data.error
) {
// Limit reached. Stop.
obj.limitReached();
} else {
// Error? never mind, continue, but count them.
failedItems++;
currentStep++;
remainingSteps = remainingSteps - 1;
obj.onFinishStep( obj.getProgress() );
step( remainingSteps ).fail( obj.showScanError );
}
}
);
}
return jQuery.post(
ajaxurl,
{
action: 'directory_smush_finish',
_ajax_nonce: window.wp_smush_msgs.nonce,
items: totalSteps - ( failedItems + skippedItems ),
failed: failedItems,
skipped: skippedItems,
},
( response ) => obj.onFinish( response )
);
};
return obj;
};
export default DirectoryScanner;

View File

@ -0,0 +1,287 @@
/* global WP_Smush */
/* global ajaxurl */
/**
* Lazy loading functionality.
*
* @since 3.0
*/
( function() {
'use strict';
WP_Smush.Lazyload = {
lazyloadEnableButton: document.getElementById(
'smush-enable-lazyload'
),
lazyloadDisableButton: document.getElementById(
'smush-cancel-lazyload'
),
init() {
const self = this;
/**
* Handle "Activate" button click on disabled Lazy load page.
*/
if ( this.lazyloadEnableButton ) {
this.lazyloadEnableButton.addEventListener( 'click', ( e ) => {
e.preventDefault();
e.currentTarget.classList.add( 'sui-button-onload' );
this.toggle_lazy_load( true );
} );
}
/**
* Handle "Deactivate' button click on Lazy load page.
*/
if ( this.lazyloadDisableButton ) {
this.lazyloadDisableButton.addEventListener( 'click', ( e ) => {
e.preventDefault();
e.currentTarget.classList.add( 'sui-button-onload' );
this.toggle_lazy_load( false );
} );
}
/**
* Handle "Remove icon" button click on Lazy load page.
*
* This removes the image from the upload placeholder.
*
* @since 3.2.2
*/
const removeSpinner = document.getElementById(
'smush-remove-spinner'
);
if ( removeSpinner ) {
removeSpinner.addEventListener( 'click', ( e ) => {
e.preventDefault();
this.removeLoaderIcon();
} );
}
const removePlaceholder = document.getElementById(
'smush-remove-placeholder'
);
if ( removePlaceholder ) {
removePlaceholder.addEventListener( 'click', ( e ) => {
e.preventDefault();
this.removeLoaderIcon( 'placeholder' );
} );
}
/**
* Handle "Remove" icon click.
*
* This removes the select icon from the list (not same as above functions).
*
* @since 3.2.2
*/
const items = document.querySelectorAll( '.smush-ll-remove' );
if ( items && 0 < items.length ) {
items.forEach( function( el ) {
el.addEventListener( 'click', ( e ) => {
e.preventDefault();
e.target.closest( 'li' ).style.display = 'none';
self.remove(
e.target.dataset.id,
e.target.dataset.type
);
} );
} );
}
this.handlePredefinedPlaceholders();
},
/**
* Handle background color changes for the two predefined placeholders.
*
* @since 3.7.1
*/
handlePredefinedPlaceholders() {
const pl1 = document.getElementById( 'placeholder-icon-1' );
if ( pl1 ) {
pl1.addEventListener( 'click', () => this.changeColor( '#F3F3F3' ) );
}
const pl2 = document.getElementById( 'placeholder-icon-2' );
if ( pl2 ) {
pl2.addEventListener( 'click', () => this.changeColor( '#333333' ) );
}
},
/**
* Set color.
*
* @since 3.7.1
* @param {string} color
*/
changeColor( color ) {
document.getElementById( 'smush-color-picker' ).value = color;
document.querySelector( '.sui-colorpicker-hex .sui-colorpicker-value > span > span' ).style.backgroundColor = color;
document.querySelector( '.sui-colorpicker-hex .sui-colorpicker-value > input' ).value = color;
},
/**
* Toggle lazy loading.
*
* @since 3.2.0
*
* @param {string} enable
*/
toggle_lazy_load( enable ) {
const nonceField = document.getElementsByName(
'wp_smush_options_nonce'
);
const xhr = new XMLHttpRequest();
xhr.open(
'POST',
ajaxurl + '?action=smush_toggle_lazy_load',
true
);
xhr.setRequestHeader(
'Content-type',
'application/x-www-form-urlencoded'
);
xhr.onload = () => {
if ( 200 === xhr.status ) {
const res = JSON.parse( xhr.response );
if ( 'undefined' !== typeof res.success && res.success ) {
window.location.search = 'page=smush-lazy-load';
} else if ( 'undefined' !== typeof res.data.message ) {
WP_Smush.helpers.showErrorNotice( res.data.message );
document.querySelector( '.sui-button-onload' ).classList.remove( 'sui-button-onload' );
}
} else {
WP_Smush.helpers.showErrorNotice( 'Request failed. Returned status of ' + xhr.status );
document.querySelector( '.sui-button-onload' ).classList.remove( 'sui-button-onload' );
}
};
xhr.send(
'param=' + enable + '&_ajax_nonce=' + nonceField[ 0 ].value
);
},
/**
* Add lazy load spinner icon.
*
* @since 3.2.2
* @param {string} type Accepts: spinner, placeholder.
*/
addLoaderIcon( type = 'spinner' ) {
let frame;
// If the media frame already exists, reopen it.
if ( frame ) {
frame.open();
return;
}
// Create a new media frame
frame = wp.media( {
title: 'Select or upload an icon',
button: {
text: 'Select icon',
},
multiple: false, // Set to true to allow multiple files to be selected
} );
// When an image is selected in the media frame...
frame.on( 'select', function() {
// Get media attachment details from the frame state
const attachment = frame
.state()
.get( 'selection' )
.first()
.toJSON();
// Send the attachment URL to our custom image input field.
const imageIcon = document.getElementById(
'smush-' + type + '-icon-preview'
);
imageIcon.style.backgroundImage =
'url("' + attachment.url + '")';
imageIcon.style.display = 'block';
// Send the attachment id to our hidden input
document
.getElementById( 'smush-' + type + '-icon-file' )
.setAttribute( 'value', attachment.id );
// Hide the add image link
document.getElementById(
'smush-upload-' + type
).style.display = 'none';
// Unhide the remove image link
const removeDiv = document.getElementById(
'smush-remove-' + type
);
removeDiv.querySelector( 'span' ).innerHTML =
attachment.filename;
removeDiv.style.display = 'block';
} );
// Finally, open the modal on click
frame.open();
},
/**
* Remove lazy load spinner icon.
*
* @since 3.2.2
* @param {string} type Accepts: spinner, placeholder.
*/
removeLoaderIcon: ( type = 'spinner' ) => {
// Clear out the preview image
const imageIcon = document.getElementById(
'smush-' + type + '-icon-preview'
);
imageIcon.style.backgroundImage = '';
imageIcon.style.display = 'none';
// Un-hide the add image link
document.getElementById( 'smush-upload-' + type ).style.display =
'block';
// Hide the delete image link
document.getElementById( 'smush-remove-' + type ).style.display =
'none';
// Delete the image id from the hidden input
document
.getElementById( 'smush-' + type + '-icon-file' )
.setAttribute( 'value', '' );
},
/**
* Remove item.
*
* @param {number} id Image ID.
* @param {string} type Accepts: spinner, placeholder.
*/
remove: ( id, type = 'spinner' ) => {
const nonceField = document.getElementsByName(
'wp_smush_options_nonce'
);
const xhr = new XMLHttpRequest();
xhr.open( 'POST', ajaxurl + '?action=smush_remove_icon', true );
xhr.setRequestHeader(
'Content-type',
'application/x-www-form-urlencoded'
);
xhr.send(
'id=' +
id +
'&type=' +
type +
'&_ajax_nonce=' +
nonceField[ 0 ].value
);
},
};
WP_Smush.Lazyload.init();
} )();

View File

@ -0,0 +1,180 @@
/* global smush_vars */
/* global _ */
/**
* Adds a Smush Now button and displays stats in Media Attachment Details Screen
*/
(function ($, _) {
'use strict';
// Local reference to the WordPress media namespace.
const smushMedia = wp.media,
sharedTemplate =
"<span class='setting smush-stats' data-setting='smush'>" +
"<span class='name'><%= label %></span>" +
"<span class='value'><%= value %></span>" +
'</span>',
template = _.template(sharedTemplate);
/**
* Create the template.
*
* @param {string} smushHTML
* @return {Object} Template object
*/
const prepareTemplate = function (smushHTML) {
/**
* @param {Array} smush_vars.strings Localization strings.
* @param {Object} smush_vars Object from wp_localize_script()
*/
return template({
label: smush_vars.strings.stats_label,
value: smushHTML,
});
};
if (
'undefined' !== typeof smushMedia.view &&
'undefined' !== typeof smushMedia.view.Attachment.Details.TwoColumn
) {
// Local instance of the Attachment Details TwoColumn used in the edit attachment modal view
const smushMediaTwoColumn =
smushMedia.view.Attachment.Details.TwoColumn;
/**
* Add Smush details to attachment.
*
* A similar view to media.view.Attachment.Details
* for use in the Edit Attachment modal.
*
* @see wp-includes/js/media-grid.js
*/
smushMedia.view.Attachment.Details.TwoColumn = smushMediaTwoColumn.extend(
{
initialize() {
smushMediaTwoColumn.prototype.initialize.apply(this, arguments);
this.listenTo(this.model, 'change:smush', this.render);
},
render() {
// Ensure that the main attachment fields are rendered.
smushMedia.view.Attachment.prototype.render.apply(
this,
arguments
);
const smushHTML = this.model.get('smush');
if (typeof smushHTML === 'undefined') {
return this;
}
this.model.fetch();
/**
* Detach the views, append our custom fields, make sure that our data is fully updated
* and re-render the updated view.
*/
this.views.detach();
this.$el
.find('.settings')
.append(prepareTemplate(smushHTML));
this.views.render();
return this;
},
}
);
}
// Local instance of the Attachment Details TwoColumn used in the edit attachment modal view
const smushAttachmentDetails = smushMedia.view.Attachment.Details;
/**
* Add Smush details to attachment.
*/
smushMedia.view.Attachment.Details = smushAttachmentDetails.extend({
initialize() {
smushAttachmentDetails.prototype.initialize.apply(this, arguments);
this.listenTo(this.model, 'change:smush', this.render);
},
render() {
// Ensure that the main attachment fields are rendered.
smushMedia.view.Attachment.prototype.render.apply(this, arguments);
const smushHTML = this.model.get('smush');
if (typeof smushHTML === 'undefined') {
return this;
}
this.model.fetch();
/**
* Detach the views, append our custom fields, make sure that our data is fully updated
* and re-render the updated view.
*/
this.views.detach();
this.$el.append(prepareTemplate(smushHTML));
return this;
},
});
/**
* Create a new MediaLibraryTaxonomyFilter we later will instantiate
*
* @since 3.0
*/
const MediaLibraryTaxonomyFilter = wp.media.view.AttachmentFilters.extend({
id: 'media-attachment-smush-filter',
createFilters() {
this.filters = {
all: {
text: smush_vars.strings.filter_all,
props: { stats: 'all' },
priority: 10,
},
unsmushed: {
text: smush_vars.strings.filter_not_processed,
props: { stats: 'unsmushed' },
priority: 20,
},
excluded: {
text: smush_vars.strings.filter_excl,
props: { stats: 'excluded' },
priority: 30,
},
failed: {
text: smush_vars.strings.filter_failed,
props: { stats: 'failed_processing' },
priority: 40,
},
};
},
});
/**
* Extend and override wp.media.view.AttachmentsBrowser to include our new filter.
*
* @since 3.0
*/
const AttachmentsBrowser = wp.media.view.AttachmentsBrowser;
wp.media.view.AttachmentsBrowser = wp.media.view.AttachmentsBrowser.extend({
createToolbar() {
// Make sure to load the original toolbar
AttachmentsBrowser.prototype.createToolbar.call(this);
this.toolbar.set(
'MediaLibraryTaxonomyFilter',
new MediaLibraryTaxonomyFilter({
controller: this.controller,
model: this.collection.props,
priority: -75,
}).render()
);
},
});
})(jQuery, _);

View File

@ -0,0 +1,45 @@
import MixPanel from "../mixpanel";
class ProductAnalytics {
init() {
this.trackUltraLinks();
}
trackUltraLinks() {
const ultraUpsellLinks = document.querySelectorAll( '.wp-smush-upsell-ultra-compression' );
if ( ! ultraUpsellLinks ) {
return;
}
const getLocation = ( ultraLink ) => {
const locations = {
'settings': 'bulksmush_settings',
'dashboard': 'dash_summary',
'bulk': 'bulksmush_summary',
'directory': 'directory_summary',
'lazy-load': 'lazy_summary',
'cdn': 'cdn_summary',
'webp': 'webp_summary',
};
const locationId = ultraLink.classList.contains( 'wp-smush-ultra-compression-link' ) ? 'settings' : this.getCurrentPageSlug();
return locations[locationId] || 'bulksmush_settings';
}
ultraUpsellLinks.forEach( ( ultraLink ) => {
const eventName = 'ultra_upsell_modal';
ultraLink.addEventListener( 'click', (e) => {
MixPanel.getInstance().track( eventName, {
'Location': getLocation( e.target ),
'Modal Action': 'direct_cta',
});
});
});
}
getCurrentPageSlug(){
const searchParams = new URLSearchParams(document.location.search);
const pageSlug = searchParams.get("page");
return 'smush' === pageSlug ? 'dashboard' : pageSlug.replace( 'smush-', '' );
}
}
( new ProductAnalytics() ).init();

View File

@ -0,0 +1,173 @@
/* global ajaxurl */
/* global wp_smush_msgs */
/* global WP_Smush */
/* global SUI */
( function( $ ) {
'use strict';
/**
* Bulk compress page.
*/
$( 'form#smush-bulk-form' ).on( 'submit', function( e ) {
e.preventDefault();
$( '#save-settings-button' ).addClass( 'sui-button-onload' );
saveSettings( $( this ).serialize(), 'bulk' );
// runReCheck();
} );
/**
* Lazy load page.
*/
$( 'form#smush-lazy-load-form' ).on( 'submit', function( e ) {
e.preventDefault();
$( '#save-settings-button' ).addClass( 'sui-button-onload-text' );
saveSettings( $( this ).serialize(), 'lazy-load' );
} );
/**
* CDN page.
*/
$( 'form#smush-cdn-form' ).on( 'submit', function( e ) {
e.preventDefault();
$( '#save-settings-button' ).addClass( 'sui-button-onload-text' );
saveSettings( $( this ).serialize(), 'cdn' );
} );
/**
* Integrations page.
*/
$( 'form#smush-integrations-form' ).on( 'submit', function( e ) {
e.preventDefault();
$( '#save-settings-button' ).addClass( 'sui-button-onload-text' );
saveSettings( $( this ).serialize(), 'integrations' );
} );
/**
* Settings page.
*/
$( 'form#smush-settings-form' ).on( 'submit', function( e ) {
e.preventDefault();
$( '#save-settings-button' ).addClass( 'sui-button-onload-text' );
saveSettings( $( this ).serialize(), 'settings' );
} );
/**
* Save settings.
*
* @param {string} settings JSON string of settings.
* @param {string} page Settings page.
*/
function saveSettings( settings, page ) {
const xhr = new XMLHttpRequest();
xhr.open( 'POST', ajaxurl + '?action=smush_save_settings', true );
xhr.setRequestHeader(
'Content-type',
'application/x-www-form-urlencoded'
);
xhr.onload = () => {
$( '#save-settings-button' ).removeClass(
'sui-button-onload-text sui-button-onload'
);
if ( 200 === xhr.status ) {
const res = JSON.parse( xhr.response );
if ( 'undefined' !== typeof res.success && res.success ) {
showSuccessNotice( wp_smush_msgs.settingsUpdated );
triggerSavedSmushSettingsEvent( res.data );
} else if ( res.data && res.data.message ) {
WP_Smush.helpers.showErrorNotice( res.data.message );
} else {
WP_Smush.helpers.showErrorNotice( 'Request failed.' );
}
} else {
WP_Smush.helpers.showErrorNotice( 'Request failed. Returned status of ' + xhr.status );
}
};
xhr.send( 'page=' + page + '&' + settings + '&_ajax_nonce=' + wp_smush_msgs.nonce );
}
function triggerSavedSmushSettingsEvent( status ) {
document.dispatchEvent(
new CustomEvent( 'onSavedSmushSettings', {
detail: status
} )
);
}
/**
* Show successful update notice.
*
* @param {string} msg Notice message.
*/
function showSuccessNotice( msg ) {
const noticeMessage = `<p>${ msg }</p>`,
noticeOptions = {
type: 'success',
icon: 'check',
};
SUI.openNotice( 'wp-smush-ajax-notice', noticeMessage, noticeOptions );
const loadingButton = document.querySelector( '.sui-button-onload' );
if ( loadingButton ) {
loadingButton.classList.remove( 'sui-button-onload' );
}
}
/**
* Re-check images from bulk smush and integrations pages.
*/
function runReCheck() {
$( '#save-settings-button' ).addClass( 'sui-button-onload' );
const param = {
action: 'scan_for_resmush',
wp_smush_options_nonce: $( '#wp_smush_options_nonce' ).val(),
type: 'media',
};
// Send ajax, Update Settings, And Check For resmush.
$.post( ajaxurl, $.param( param ) ).done( function() {
$( '#save-settings-button' ).removeClass( 'sui-button-onload' );
} );
}
/**
* Parse remove data change.
*/
$( 'input[name=keep_data]' ).on( 'change', function( e ) {
const otherClass =
'keep_data-true' === e.target.id
? 'keep_data-false'
: 'keep_data-true';
e.target.parentNode.classList.add( 'active' );
document
.getElementById( otherClass )
.parentNode.classList.remove( 'active' );
} );
/**
* Handle auto-detect checkbox toggle, to show/hide highlighting notice.
*/
$( 'input#detection' ).on( 'click', function() {
const noticeDiv = $( '.smush-highlighting-notice' );
const warningDiv = $( '.smush-highlighting-warning' );
// Setting enabled.
if ( $( this ).is( ':checked' ) ) {
// Highlighting is already active and setting not saved.
if ( noticeDiv.length > 0 ) {
noticeDiv.show();
} else {
warningDiv.show();
}
} else {
noticeDiv.hide();
warningDiv.hide();
}
} );
}( jQuery ) );

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,311 @@
/* global WP_Smush */
/* global ajaxurl */
/**
* WebP functionality.
*
* @since 3.8.0
*/
(function () {
'use strict';
WP_Smush.WebP = {
nonceField: document.getElementsByName('wp_smush_options_nonce'),
toggleModuleButton: document.getElementById('smush-toggle-webp-button'),
recheckStatusButton: document.getElementById('smush-webp-recheck'),
recheckStatusLink: document.getElementById('smush-webp-recheck-link'),
showWizardButton: document.getElementById('smush-webp-toggle-wizard'),
init() {
this.maybeShowDeleteAllSuccessNotice();
/**
* Handles the "Deactivate" and "Get Started" buttons on the WebP page.
*/
if (this.toggleModuleButton) {
this.toggleModuleButton.addEventListener('click', (e) =>
this.toggleWebp(e)
);
}
/**
* Handle "RE-CHECK STATUS' button click on WebP page.
*/
if (this.recheckStatusButton) {
this.recheckStatusButton.addEventListener('click', (e) => {
e.preventDefault();
this.recheckStatus();
});
}
/**
* Handle "RE-CHECK STATUS' link click on WebP page.
*/
if (this.recheckStatusLink) {
this.recheckStatusLink.addEventListener('click', (e) => {
e.preventDefault();
this.recheckStatus();
});
}
/**
* Handles the "Delete WebP images" button.
*/
if (document.getElementById('wp-smush-webp-delete-all')) {
document
.getElementById('wp-smush-webp-delete-all')
.addEventListener('click', (e) => this.deleteAll(e));
}
if (this.showWizardButton) {
this.showWizardButton.addEventListener(
'click',
this.toggleWizard
);
}
},
/**
* Toggle WebP module.
*
* @param {Event} e
*/
toggleWebp(e) {
e.preventDefault();
const button = e.currentTarget,
doEnable = 'enable' === button.dataset.action;
button.classList.add('sui-button-onload');
const xhr = new XMLHttpRequest();
xhr.open('POST', ajaxurl + '?action=smush_webp_toggle', true);
xhr.setRequestHeader(
'Content-type',
'application/x-www-form-urlencoded'
);
xhr.onload = () => {
const res = JSON.parse(xhr.response);
if (200 === xhr.status) {
if ('undefined' !== typeof res.success && res.success) {
const scanPromise = this.runScan();
scanPromise.onload = () => {
window.location.href =
window.wp_smush_msgs.localWebpURL;
};
} else if ('undefined' !== typeof res.data.message) {
this.showNotice(res.data.message);
button.classList.remove('sui-button-onload');
}
} else {
let message = window.wp_smush_msgs.generic_ajax_error;
if (res && 'undefined' !== typeof res.data.message) {
message = res.data.message;
}
this.showNotice(message);
button.classList.remove('sui-button-onload');
}
};
xhr.send(
'param=' + doEnable + '&_ajax_nonce=' + this.nonceField[0].value
);
},
/**
* re-check server configuration for WebP.
*/
recheckStatus() {
this.recheckStatusButton.classList.add('sui-button-onload');
const xhr = new XMLHttpRequest();
xhr.open('POST', ajaxurl + '?action=smush_webp_get_status', true);
xhr.setRequestHeader(
'Content-type',
'application/x-www-form-urlencoded'
);
xhr.onload = () => {
this.recheckStatusButton.classList.remove('sui-button-onload');
let message = false;
const res = JSON.parse(xhr.response);
if (200 === xhr.status) {
const isConfigured = res.success ? '1' : '0';
if (
isConfigured !==
this.recheckStatusButton.dataset.isConfigured
) {
// Reload the page when the configuration status changed.
location.reload();
}
} else {
message = window.wp_smush_msgs.generic_ajax_error;
}
if (res && res.data) {
message = res.data;
}
if (message) {
this.showNotice(message);
}
};
xhr.send('_ajax_nonce=' + window.wp_smush_msgs.webp_nonce);
},
deleteAll(e) {
const button = e.currentTarget;
button.classList.add('sui-button-onload');
let message = false;
const xhr = new XMLHttpRequest();
xhr.open('POST', ajaxurl + '?action=smush_webp_delete_all', true);
xhr.setRequestHeader(
'Content-type',
'application/x-www-form-urlencoded'
);
xhr.onload = () => {
const res = JSON.parse(xhr.response);
if (200 === xhr.status) {
if ('undefined' !== typeof res.success && res.success) {
const scanPromise = this.runScan();
scanPromise.onload = () => {
location.search =
location.search + '&notice=webp-deleted';
};
} else {
message = window.wp_smush_msgs.generic_ajax_error;
}
} else {
message = window.wp_smush_msgs.generic_ajax_error;
}
if (res && res.data && res.data.message) {
message = res.data.message;
}
if (message) {
button.classList.remove('sui-button-onload');
const noticeMessage = `<p style="text-align: left;">${message}</p>`;
const noticeOptions = {
type: 'error',
icon: 'info',
autoclose: {
show: false,
},
};
window.SUI.openNotice(
'wp-smush-webp-delete-all-error-notice',
noticeMessage,
noticeOptions
);
}
};
xhr.send('_ajax_nonce=' + this.nonceField[0].value);
},
toggleWizard(e) {
e.currentTarget.classList.add('sui-button-onload');
const xhr = new XMLHttpRequest();
xhr.open(
'GET',
ajaxurl +
'?action=smush_toggle_webp_wizard&_ajax_nonce=' +
window.wp_smush_msgs.webp_nonce,
true
);
xhr.onload = () => location.reload();
xhr.send();
},
/**
* Triggers the scanning of images for updating the images to re-smush.
*
* @since 3.8.0
*/
runScan() {
const xhr = new XMLHttpRequest(),
nonceField = document.getElementsByName(
'wp_smush_options_nonce'
);
xhr.open('POST', ajaxurl + '?action=scan_for_resmush', true);
xhr.setRequestHeader(
'Content-type',
'application/x-www-form-urlencoded'
);
xhr.send('_ajax_nonce=' + nonceField[0].value);
return xhr;
},
/**
* Show message (notice).
*
* @param {string} message
* @param {string} type
*/
showNotice(message, type) {
if ('undefined' === typeof message) {
return;
}
const noticeMessage = `<p>${message}</p>`;
const noticeOptions = {
type: type || 'error',
icon: 'info',
dismiss: {
show: true,
label: window.wp_smush_msgs.noticeDismiss,
tooltip: window.wp_smush_msgs.noticeDismissTooltip,
},
autoclose: {
show: false,
},
};
window.SUI.openNotice(
'wp-smush-ajax-notice',
noticeMessage,
noticeOptions
);
},
/**
* Show delete all webp success notice.
*/
maybeShowDeleteAllSuccessNotice() {
if (!document.getElementById('wp-smush-webp-delete-all-notice')) {
return;
}
const noticeMessage = `<p>${
document.getElementById('wp-smush-webp-delete-all-notice')
.dataset.message
}</p>`;
const noticeOptions = {
type: 'success',
icon: 'check-tick',
dismiss: {
show: true,
},
};
window.SUI.openNotice(
'wp-smush-webp-delete-all-notice',
noticeMessage,
noticeOptions
);
},
};
WP_Smush.WebP.init();
})();

View File

@ -0,0 +1,96 @@
/* global ajaxurl */
/**
* External dependencies
*/
import React from 'react';
import ReactDOM from 'react-dom';
/**
* WordPress dependencies
*/
import domReady from '@wordpress/dom-ready';
/**
* SUI dependencies
*/
import { TutorialsList, TutorialsSlider } from '@wpmudev/shared-tutorials';
import MixPanel from "./mixpanel"
function hideTutorials() {
const xhr = new XMLHttpRequest();
xhr.open( 'POST', ajaxurl + '?action=smush_hide_tutorials', true );
xhr.setRequestHeader( 'Content-type', 'application/x-www-form-urlencoded' );
xhr.onload = () => {
if ( 200 === xhr.status ) {
const noticeMessage = `<p>${ window.wp_smush_msgs.tutorialsRemoved }</p>`,
noticeOptions = {
type: 'success',
icon: 'check',
};
window.SUI.openNotice(
'wp-smush-ajax-notice',
noticeMessage,
noticeOptions
);
}
};
xhr.send( '_ajax_nonce=' + window.wp_smush_msgs.nonce );
}
/**
* Render the "Tutorials List" component.
*
* @since 2.8.5
*/
domReady( function() {
// Tutorials section on Dashboard page.
const tutorialsDiv = document.getElementById( 'smush-dash-tutorials' );
if ( tutorialsDiv ) {
ReactDOM.render(
<TutorialsSlider
category="11228"
title={ window.smush_tutorials.tutorials }
viewAll={ window.smush_tutorials.tutorials_link }
onCloseClick={ hideTutorials }
/>,
tutorialsDiv
);
}
// Tutorials page.
const tutorialsPageBox = document.getElementById( 'smush-box-tutorials' );
if ( tutorialsPageBox ) {
ReactDOM.render(
<TutorialsList
category="11228"
title={ window.smush_tutorials.tutorials }
translate={ window.smush_tutorials.tutorials_strings }
/>,
tutorialsPageBox
);
}
} );
jQuery(function ($) {
$(document).on('click', '#smush-box-tutorials li > [role="link"], #smush-dash-tutorials li > [role="link"]', function () {
const $tutorial = $(this);
const isDashPage = !!$tutorial.closest('#smush-dash-tutorials').length;
const decodeHtml = (html) => {
const txt = document.createElement("textarea");
txt.innerHTML = html;
return txt.value;
};
const title = decodeHtml($tutorial.attr('title'));
MixPanel.getInstance().track('Tutorial Opened', {
'Tutorial Name': title,
'Triggered From': isDashPage ? 'Dashboard' : 'Tutorials Tab'
});
});
});

View File

@ -0,0 +1,170 @@
/* global ajaxurl */
/**
* External dependencies
*/
import assign from 'lodash/assign';
/**
* Wrapper function for ajax calls to WordPress.
*
* @since 3.12.0
*/
function SmushFetcher() {
/**
* Request ajax with a promise.
* Use FormData Object as data if you need to upload file
*
* @param {string} action
* @param {Object|FormData} data
* @param {string} method
* @return {Promise<any>} Request results.
*/
function request(action, data = {}, method = 'POST') {
const args = {
url: ajaxurl,
method,
cache: false
};
if (data instanceof FormData) {
data.append('action', action);
data.append('_ajax_nonce', window.wp_smush_msgs.nonce);
args.contentType = false;
args.processData = false;
} else {
data._ajax_nonce = data._ajax_nonce || window.wp_smush_msgs.nonce;
data.action = action;
}
args.data = data;
return new Promise((resolve, reject) => {
jQuery.ajax(args).done(resolve).fail(reject);
}).then((response) => {
if (typeof response !== 'object') {
response = JSON.parse(response);
}
return response;
}).catch((error) => {
console.error('Error:', error);
});
}
const methods = {
/**
* Manage ajax for background.
*/
background: {
/**
* Start background process.
*/
start: () => {
return request('bulk_smush_start');
},
/**
* Cancel background process.
*/
cancel: () => {
return request('bulk_smush_cancel');
},
/**
* Initial State - Get stats on the first time.
*/
initState: () => {
return request('bulk_smush_get_status');
},
/**
* Get stats.
*/
getStatus: () => {
return request('bulk_smush_get_status');
},
getStats: () => {
return request('bulk_smush_get_global_stats');
}
},
smush: {
/**
* Sync stats.
*/
syncStats: ( data ) => {
data = data || {};
return request('get_stats', data);
},
/**
* Ignore All.
*/
ignoreAll: ( type ) => {
return request('wp_smush_ignore_all_failed_items', {
type: type,
});
},
},
/**
* Manage ajax for other requests
*/
common: {
/**
* Dismiss Notice.
*
* @param {string} dismissId Notification id.
*/
dismissNotice: (dismissId) => {
return request('smush_dismiss_notice', {
key: dismissId
});
},
/**
* Hide the new features modal.
*
* @param {string} modalID Notification id.
*/
hideModal: (modalID) => request('hide_modal', {
modal_id: modalID,
}),
/**
* Custom request.
*
* @param {Object} data
*/
request: (data) => data.action && request(data.action, data),
},
scanMediaLibrary: {
start: ( optimize_on_scan_completed = false ) => {
optimize_on_scan_completed = optimize_on_scan_completed ? 1 : 0;
const _ajax_nonce = window.wp_smushit_data.media_library_scan.nonce;
return request( 'wp_smush_start_background_scan', {
optimize_on_scan_completed,
_ajax_nonce,
} );
},
cancel: () => {
const _ajax_nonce = window.wp_smushit_data.media_library_scan.nonce;
return request( 'wp_smush_cancel_background_scan', {
_ajax_nonce,
} );
},
getScanStatus: () => {
const _ajax_nonce = window.wp_smushit_data.media_library_scan.nonce;
return request( 'wp_smush_get_background_scan_status', {
_ajax_nonce,
} );
},
},
};
assign(this, methods);
}
const SmushAjax = new SmushFetcher();
export default SmushAjax;

View File

@ -0,0 +1,91 @@
import React, {useEffect, useRef, useState} from "react";
import {post} from "../utils/request";
import MediaLibraryScannerModal from "./media-library-scanner-modal";
export default function AjaxMediaLibraryScannerModal(
{
nonce = '',
onScanCompleted = () => false,
onClose = () => false,
focusAfterClose = ''
}
) {
const [inProgress, setInProgress] = useState(false);
const [progress, setProgress] = useState(0);
const [cancelled, setCancelled] = useState(false);
const cancelledRef = useRef();
useEffect(() => {
cancelledRef.current = cancelled;
}, [cancelled]);
function start() {
setInProgress(true);
post('wp_smush_before_scan_library', nonce).then((response) => {
const sliceCount = response?.slice_count;
const slicesList = range(sliceCount, 1);
const parallelRequests = response?.parallel_requests;
handleBatch(slicesList, sliceCount, parallelRequests)
.then(() => {
setTimeout(() => {
onScanCompleted();
}, 1000);
});
});
}
function handleBatch(remainingSlicesList, sliceCount, parallelRequests) {
const batchPromises = [];
const completedSliceCount = Math.max(sliceCount - remainingSlicesList.length, 0);
const batch = remainingSlicesList.splice(0, parallelRequests);
updateProgress(completedSliceCount, sliceCount);
batch.forEach((sliceNumber) => {
batchPromises.push(
post('wp_smush_scan_library_slice', nonce, {slice: sliceNumber})
);
});
return new Promise((resolve) => {
Promise.all(batchPromises)
.then(() => {
if (!cancelledRef.current) {
if (remainingSlicesList.length) {
handleBatch(remainingSlicesList, sliceCount, parallelRequests)
.then(resolve);
} else {
updateProgress(sliceCount, sliceCount);
resolve();
}
}
});
});
}
function range(size, startAt = 0) {
return [...Array(size).keys()].map(i => i + startAt);
}
function cancelScan() {
setCancelled(true);
setInProgress(false);
setProgress(0);
}
function updateProgress(completedSlices, totalSlices) {
const progress = (completedSlices / totalSlices) * 100;
setProgress(progress);
}
return <MediaLibraryScannerModal
inProgress={inProgress}
progress={progress}
onCancel={cancelScan}
focusAfterClose={focusAfterClose}
onClose={onClose}
onStart={start}
/>;
};

View File

@ -0,0 +1,76 @@
import React, {useRef, useState} from "react";
import {post} from "../utils/request";
import MediaLibraryScannerModal from "./media-library-scanner-modal";
export default function BackgroundMediaLibraryScannerModal(
{
nonce = '',
onScanCompleted = () => false,
onClose = () => false,
focusAfterClose = ''
}
) {
const [inProgress, setInProgress] = useState(false);
const [progress, setProgress] = useState(0);
const [cancelled, setCancelled] = useState(false);
const progressTimeoutId = useRef(0);
function start() {
post('wp_smush_start_background_scan', nonce).then(() => {
setInProgress(true);
progressTimeoutId.current = setTimeout(updateProgress, 2000);
});
}
function clearProgressTimeout() {
if (progressTimeoutId.current) {
clearTimeout(progressTimeoutId.current);
}
}
function updateProgress() {
post('wp_smush_get_background_scan_status', nonce).then(response => {
const isCompleted = response?.is_completed;
if (isCompleted) {
clearProgressTimeout();
onScanCompleted();
return;
}
const isCancelled = response?.is_cancelled;
if (isCancelled) {
clearProgressTimeout();
changeStateToCancelled();
return;
}
const totalItems = response?.total_items;
const processedItems = response?.processed_items;
const progress = (processedItems / totalItems) * 100;
setProgress(progress);
progressTimeoutId.current = setTimeout(updateProgress, 1000);
});
}
function cancelScan() {
clearProgressTimeout();
post('wp_smush_cancel_background_scan', nonce)
.then(changeStateToCancelled);
}
function changeStateToCancelled() {
setCancelled(true);
setProgress(0);
setInProgress(false);
}
return <MediaLibraryScannerModal
inProgress={inProgress}
progress={progress}
onCancel={cancelScan}
focusAfterClose={focusAfterClose}
onClose={onClose}
onStart={start}
/>;
};

View File

@ -0,0 +1,49 @@
import React, {useEffect, useRef, useState} from "react";
import Modal from "../common/modal";
import {post} from "../utils/request";
import Button from "../common/button";
import ProgressBar from "../common/progress-bar";
const {__} = wp.i18n;
export default function MediaLibraryScannerModal(
{
inProgress = false,
progress = 0,
onClose = () => false,
onStart = () => false,
onCancel = () => false,
focusAfterClose = ''
}
) {
function content() {
if (inProgress) {
return <>
<ProgressBar progress={progress}/>
<Button id="wp-smush-cancel-media-library-scan"
icon="sui-icon-close"
text={__('Cancel', 'wp-smushit')}
ghost={true}
onClick={onCancel}
/>
</>;
} else {
return <>
<Button id="wp-smush-start-media-library-scan"
icon="sui-icon-play"
text={__('Start', 'wp-smushit')}
onClick={onStart}
/>
</>;
}
}
return <Modal id="wp-smush-media-library-scanner-modal"
title={__('Scan Media Library', 'wp-smushit')}
description={__('Scans the media library to detect items to Smush.', 'wp-smushit')}
onClose={onClose}
focusAfterClose={focusAfterClose}
disableCloseButton={inProgress}>
{content()}
</Modal>;
};

View File

@ -0,0 +1,52 @@
import React, {useState} from "react";
import domReady from '@wordpress/dom-ready';
import ReactDOM from "react-dom";
import Button from "../common/button";
import FloatingNoticePlaceholder from "../common/floating-notice-placeholder";
import {showSuccessNotice} from "../utils/notices";
import AjaxMediaLibraryScannerModal from "./ajax-media-library-scanner-modal";
import BackgroundMediaLibraryScannerModal from "./background-media-library-scanner-modal";
const {__} = wp.i18n;
function MediaLibraryScanner({}) {
const [modalOpen, setModalOpen] = useState(false);
return <>
<FloatingNoticePlaceholder id="wp-smush-media-library-scanner-notice"/>
{modalOpen &&
<BackgroundMediaLibraryScannerModal
focusAfterClose="wp-smush-open-media-library-scanner"
nonce={mediaLibraryScan.nonce}
onScanCompleted={() => {
showSuccessNotice(
'wp-smush-media-library-scanner-notice',
__('Scan completed successfully!', 'wp-smushit'),
true
);
setModalOpen(false);
window.location.reload();
}}
onClose={() => setModalOpen(false)}
/>
}
<Button id="wp-smush-open-media-library-scanner" text={__('Re-Check Images', 'wp-smushit')}
className="wp-smush-scan"
icon="sui-icon-update"
disabled={modalOpen}
onClick={() => setModalOpen(true)}
/>
</>;
}
domReady(function () {
const scannerContainer = document.getElementById('wp-smush-media-library-scanner');
if (scannerContainer) {
ReactDOM.render(
<MediaLibraryScanner/>,
scannerContainer
);
}
});

View File

@ -0,0 +1,70 @@
import React from "react";
import classnames from "classnames";
export default function Button(
{
id = "",
text = "",
color = "",
dashed = false,
icon = '',
loading = false,
ghost = false,
disabled = false,
href = "",
target = "",
className = "",
onClick = () => false,
}
) {
function handleClick(e) {
e.preventDefault();
onClick();
}
function textTag() {
const iconTag = icon ? <span className={icon} aria-hidden="true"/> : "";
return (
<span className={classnames({"sui-loading-text": loading})}>
{iconTag} {text}
</span>
);
}
function loadingIcon() {
return loading
? <span className="sui-icon-loader sui-loading" aria-hidden="true"/>
: "";
}
let HtmlTag, props;
if (href) {
HtmlTag = 'a';
props = {href: href, target: target};
} else {
HtmlTag = 'button';
props = {
disabled: disabled,
onClick: e => handleClick(e)
};
}
const hasText = text && text.trim();
return (
<HtmlTag
{...props}
className={classnames(className, "sui-button-" + color, {
"sui-button-onload": loading,
"sui-button-ghost": ghost,
"sui-button-icon": !hasText,
"sui-button-dashed": dashed,
"sui-button": hasText
})}
id={id}
>
{textTag()}
{loadingIcon()}
</HtmlTag>
);
}

View File

@ -0,0 +1,11 @@
import React from "react";
export default function FloatingNoticePlaceholder({id = ''}) {
return <div className="sui-floating-notices">
<div role="alert"
id={id}
className="sui-notice"
aria-live="assertive">
</div>
</div>;
}

View File

@ -0,0 +1,133 @@
import React, {useEffect} from 'react';
import classnames from 'classnames';
import SUI from 'SUI';
import $ from 'jquery';
const {__} = wp.i18n;
export default function Modal(
{
id = '',
title = '',
description = '',
small = false,
headerActions = false,
focusAfterOpen = '',
focusAfterClose = 'container',
dialogClasses = [],
disableCloseButton = false,
enterDisabled = false,
beforeTitle = false,
onEnter = () => false,
onClose = () => false,
footer,
children
}
) {
useEffect(() => {
SUI.openModal(
id,
focusAfterClose,
focusAfterOpen ? focusAfterOpen : getTitleId(),
false,
false
);
return () => SUI.closeModal();
}, []);
const handleKeyDown = (event) => {
const isTargetInput = $(event.target).is('.sui-modal.sui-active input');
if (isTargetInput && event.keyCode === 13) {
event.preventDefault();
event.stopPropagation();
if (!enterDisabled && onEnter) {
onEnter(event);
}
}
}
function getTitleId() {
return id + '-modal-title';
}
function getHeaderActions() {
const closeButton = getCloseButton();
if (small) {
return closeButton;
} else if (headerActions) {
return headerActions;
} else {
return <div className="sui-actions-right">{closeButton}</div>
}
}
function getCloseButton() {
return <button id={id + '-close-button'}
type="button"
onClick={() => onClose()}
disabled={disableCloseButton}
className={classnames("sui-button-icon", {
'sui-button-float--right': small
})}>
<span className="sui-icon-close sui-md" aria-hidden="true"/>
<span className="sui-screen-reader-text">
{__('Close this dialog window', 'wds')}
</span>
</button>
}
function getDialogClasses() {
return Object.assign({}, {
'sui-modal-sm': small,
'sui-modal-lg': !small
}, dialogClasses);
}
return <div className={classnames('sui-modal', getDialogClasses())}
onKeyDown={e => handleKeyDown(e)}>
<div role="dialog"
id={id}
className={classnames('sui-modal-content', id + '-modal')}
aria-modal="true"
aria-labelledby={id + '-modal-title'}
aria-describedby={id + '-modal-description'}>
<div className="sui-box" role="document">
<div className={classnames('sui-box-header', {
'sui-flatten sui-content-center sui-spacing-top--40': small
})}>
{beforeTitle}
<h3 id={getTitleId()}
className={classnames('sui-box-title', {
'sui-lg': small
})}>
{title}
</h3>
{getHeaderActions()}
</div>
<div className={classnames('sui-box-body', {
'sui-content-center': small
})}>
{description &&
<p className="sui-description"
id={id + '-modal-description'}>
{description}
</p>}
{children}
</div>
{footer && <div className="sui-box-footer">
{footer}
</div>}
</div>
</div>
</div>;
}

View File

@ -0,0 +1,36 @@
import React from "react";
export default function ProgressBar(
{
progress = 0,
stateMessage = ''
}
) {
progress = Math.ceil(progress);
const progressPercentage = progress + "%";
return (
<React.Fragment>
<div className="sui-progress-block">
<div className="sui-progress">
<span className="sui-progress-icon" aria-hidden="true">
<span className="sui-icon-loader sui-loading"/>
</span>
<div className="sui-progress-text">{progressPercentage}</div>
<div className="sui-progress-bar">
<span
style={{
transition: progress === 0 ? false : "transform 0.4s linear 0s",
transformOrigin: "left center",
transform: `translateX(${progress - 100}%)`,
}}
/>
</div>
</div>
</div>
<div className="sui-progress-state">{stateMessage}</div>
</React.Fragment>
);
}

View File

@ -0,0 +1,176 @@
/**
* External dependencies
*/
import React from 'react';
import ReactDOM from 'react-dom';
/**
* WordPress dependencies
*/
import domReady from '@wordpress/dom-ready';
const { __, sprintf } = wp.i18n;
/**
* SUI dependencies
*/
import { Presets } from '@wpmudev/shared-presets';
export const Configs = ({ isWidget }) => {
// TODO: Handle the html interpolation and translation better.
const proDescription = (
<>
{__(
'You can easily apply configs to multiple sites at once via ',
'wp-smushit'
)}
<a
href={window.smushReact.links.hubConfigs}
target="_blank"
rel="noreferrer"
>
{__('the Hub.')}
</a>
</>
);
const closeIcon = __('Close this dialog window', 'wp-smushit'),
cancelButton = __('Cancel', 'wp-smushit');
const lang = {
title: __('Preset Configs', 'wp-smushit'),
upload: __('Upload', 'wp-smushit'),
save: __('Save config', 'wp-smushit'),
loading: __('Updating the config list…', 'wp-smushit'),
emptyNotice: __(
'You dont have any available config. Save preset configurations of Smushs settings, then upload and apply them to your other sites in just a few clicks!',
'wp-smushit'
),
baseDescription: __(
'Use configs to save preset configurations of Smushs settings, then upload and apply them to your other sites in just a few clicks!',
'wp-smushit'
),
proDescription,
syncWithHubText: __(
'Created or updated configs via the Hub?',
'wp-smushit'
),
syncWithHubButton: __('Check again', 'wp-smushit'),
apply: __('Apply', 'wp-smushit'),
download: __('Download', 'wp-smushit'),
edit: __('Name and Description', 'wp-smushit'),
delete: __('Delete', 'wp-smushit'),
notificationDismiss: __('Dismiss notice', 'wp-smushit'),
freeButtonLabel: __('Try The Hub', 'wp-smushit'),
defaultRequestError: sprintf(
/* translators: %s request status */
__(
'Request failed. Status: %s. Please reload the page and try again.',
'wp-smushit'
),
'{status}'
),
uploadActionSuccessMessage: sprintf(
/* translators: %s request status */
__(
'%s config has been uploaded successfully you can now apply it to this site.',
'wp-smushit'
),
'{configName}'
),
uploadWrongPluginErrorMessage: sprintf(
/* translators: %s {pluginName} */
__(
'The uploaded file is not a %s Config. Please make sure the uploaded file is correct.',
'wp-smushit'
),
'{pluginName}'
),
applyAction: {
closeIcon,
cancelButton,
title: __('Apply Config', 'wp-smushit'),
description: sprintf(
/* translators: %s config name */
__(
'Are you sure you want to apply the %s config to this site? We recommend you have a backup available as your existing settings configuration will be overridden.',
'wp-smushit'
),
'{configName}'
),
actionButton: __('Apply', 'wp-smushit'),
successMessage: sprintf(
/* translators: %s. config name */
__('%s config has been applied successfully.', 'wp-smushit'),
'{configName}'
),
},
deleteAction: {
closeIcon,
cancelButton,
title: __('Delete Configuration File', 'wp-smushit'),
description: sprintf(
/* translators: %s config name */
__(
'Are you sure you want to delete %s? You will no longer be able to apply it to this or other connected sites.',
'wp-smushit'
),
'{configName}'
),
actionButton: __('Delete', 'wp-smushit'),
},
editAction: {
closeIcon,
cancelButton,
nameInput: __('Config name', 'wp-smushit'),
descriptionInput: __('Description', 'wp-smushit'),
emptyNameError: __('The config name is required', 'wp-smushit'),
actionButton: __('Save', 'wp-smushit'),
editTitle: __('Rename Config', 'wp-smushit'),
editDescription: __(
'Change your config name to something recognizable.',
'wp-smushit'
),
createTitle: __('Save Config', 'wp-smushit'),
createDescription: __(
'Save your current settings configuration. Youll be able to then download and apply it to your other sites.',
'wp-smushit'
),
successMessage: sprintf(
/* translators: %s. config name */
__('%s config created successfully.', 'wp-smushit'),
'{configName}'
),
},
settingsLabels: {
bulk_smush: __('Bulk Smush', 'wp-smushit'),
integrations: __('Integrations', 'wp-smushit'),
lazy_load: __('Lazy Load', 'wp-smushit'),
cdn: __('CDN', 'wp-smushit'),
webp_mod: __('Local WebP', 'wp-smushit'),
settings: __('Settings', 'wp-smushit'),
networkwide: __('Subsite Controls', 'wp-smushit'),
},
};
return (
<Presets
isWidget={isWidget}
isPro={window.smushReact.isPro}
isWhitelabel={window.smushReact.hideBranding}
sourceLang={lang}
sourceUrls={window.smushReact.links}
requestsData={window.smushReact.requestsData}
/>
);
};
domReady(function () {
const configsPageBox = document.getElementById('smush-box-configs');
if (configsPageBox) {
ReactDOM.render(<Configs isWidget={false} />, configsPageBox);
}
const configsWidgetBox = document.getElementById('smush-widget-configs');
if (configsWidgetBox) {
ReactDOM.render(<Configs isWidget={true} />, configsWidgetBox);
}
});

View File

@ -0,0 +1,110 @@
/* global ajaxurl */
/**
* External dependencies
*/
import React from 'react';
import ReactDOM from 'react-dom';
/**
* WordPress dependencies
*/
import domReady from '@wordpress/dom-ready';
/**
* Internal dependencies
*/
import StepsBar from '../views/webp/steps-bar';
import StepContent from '../views/webp/step-content';
import FreeContent from '../views/webp/free-content';
import StepFooter from '../views/webp/step-footer';
export const WebpPage = ({ smushData }) => {
const [currentStep, setCurrentStep] = React.useState(
parseInt(smushData.startStep)
);
React.useEffect(() => {
if (2 === currentStep) {
window.SUI.suiCodeSnippet();
}
}, [currentStep]);
const [serverType, setServerType] = React.useState(
smushData.detectedServer
);
const [rulesMethod, setRulesMethod] = React.useState('automatic');
const [rulesError, setRulesError] = React.useState(false);
const makeRequest = (action, verb = 'GET') => {
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.open(
verb,
`${ajaxurl}?action=${action}&_ajax_nonce=${smushData.nonce}`,
true
);
xhr.setRequestHeader(
'Content-type',
'application/x-www-form-urlencoded'
);
xhr.onload = () => {
if (xhr.status >= 200 && xhr.status < 300) {
resolve(JSON.parse(xhr.response));
} else {
reject(xhr);
}
};
xhr.onerror = () => reject(xhr);
xhr.send();
});
};
const stepContent = smushData.isPro ? (
<StepContent
currentStep={currentStep}
serverType={serverType}
rulesMethod={rulesMethod}
setRulesMethod={setRulesMethod}
rulesError={rulesError}
setServerType={setServerType}
smushData={smushData}
makeRequest={makeRequest}
/>
) : (
<FreeContent smushData={smushData} />
);
return (
<React.Fragment>
<div className="sui-box-body sui-no-padding">
<div className="sui-row-with-sidenav">
<StepsBar smushData={smushData} currentStep={currentStep} />
{stepContent}
</div>
</div>
{smushData.isPro && (
<StepFooter
currentStep={currentStep}
setCurrentStep={setCurrentStep}
serverType={serverType}
rulesMethod={rulesMethod}
setRulesError={setRulesError}
makeRequest={makeRequest}
/>
)}
</React.Fragment>
);
};
domReady(function () {
const webpPageBox = document.getElementById('smush-box-webp-wizard');
if (webpPageBox) {
ReactDOM.render(
<WebpPage smushData={window.smushReact} />,
webpPageBox
);
}
});

View File

@ -0,0 +1,35 @@
export function showSuccessNotice(id, message, dismissible = true) {
return showNotice(id, message, 'success', dismissible);
}
export function showErrorNotice(id, message, dismissible = true) {
return showNotice(id, message, 'error', dismissible);
}
export function showInfoNotice(id, message, dismissible = true) {
return showNotice(id, message, 'info', dismissible);
}
export function showWarningNotice(id, message, dismissible = true) {
return showNotice(id, message, 'warning', dismissible);
}
export function closeNotice(id) {
SUI.closeNotice(id);
}
export function showNotice(id, message, type = 'success', dismissible = true) {
const icons = {
error: 'warning-alert',
info: 'info',
warning: 'warning-alert',
success: 'check-tick'
};
SUI.closeNotice(id);
SUI.openNotice(id, '<p>' + message + '</p>', {
type: type,
icon: icons[type],
dismiss: {show: dismissible}
});
}

View File

@ -0,0 +1,23 @@
import $ from 'jquery';
import ajaxUrl from 'ajaxUrl';
export function post(action, nonce, data = {}) {
return new Promise(function (resolve, reject) {
const request = Object.assign({}, {
action: action,
_ajax_nonce: nonce
}, data);
$.post(ajaxUrl, request)
.done((response) => {
if (response.success) {
resolve(
response?.data
);
} else {
reject(response?.data?.message);
}
})
.fail(() => reject());
});
}

View File

@ -0,0 +1,86 @@
/**
* External dependencies
*/
import React from 'react';
/**
* WordPress dependencies
*/
const { __ } = wp.i18n;
export default ({ smushData }) => {
return (
<div className="sui-box-body">
<div className="sui-message">
<img
className="sui-image"
src={smushData.urls.freeImg}
srcset={smushData.urls.freeImg2x + ' 2x'}
alt={__('Smush WebP', 'wp-smushit')}
/>
<div className="sui-message-content">
<p>
{__(
'Fix the "Serve images in next-gen format" Google PageSpeed recommendation by setting up this feature. Serve WebP versions of your images to supported browsers, and gracefully fall back on JPEGs and PNGs for browsers that don\'t support WebP.',
'wp-smushit'
)}
</p>
<ol className="sui-upsell-list">
<li>
<span
className="sui-icon-check sui-sm"
aria-hidden="true"
/>
{__(
'Add or automatically apply the rules to enable Local WebP feature.',
'wp-smushit'
)}
</li>
<li>
<span
className="sui-icon-check sui-sm"
aria-hidden="true"
/>
{__(
'Fix “Serve images in next-gen format" Google PageSpeed recommendation.',
'wp-smushit'
)}
</li>
<li>
<span
className="sui-icon-check sui-sm"
aria-hidden="true"
/>
{__(
'Serve WebP version of images in the browsers that support it and fall back to JPEGs and PNGs for non supported browsers.',
'wp-smushit'
)}
</li>
</ol>
<p className="sui-margin-top">
<a
href={smushData.urls.upsell}
className="sui-button sui-button-purple"
style={{ marginRight: '30px' }}
target="_blank"
rel="noreferrer"
>
{__('UNLOCK WEBP WITH PRO', 'wp-smushit')}
</a>
<a
href={smushData.urls.webpDoc}
style={{ color: '#8D00B1' }}
target="_blank"
rel="noreferrer"
>
{__('Learn more', 'wp-smushit')}
</a>
</p>
</div>
</div>
</div>
);
};

View File

@ -0,0 +1,441 @@
/**
* External dependencies
*/
import React from 'react';
/**
* WordPress dependencies
*/
const { __, sprintf } = wp.i18n;
export default ({
currentStep,
serverType,
rulesMethod,
setRulesMethod,
setServerType,
rulesError,
smushData,
makeRequest,
}) => {
const stepsHeading = {
1: {
title: __('Choose Server Type', 'wp-smushit'),
description: __(
'Choose your server type. If you dont know this, please contact your hosting provider.',
'wp-smushit'
),
},
2: {
title: __('Add Rules', 'wp-smushit'),
description:
'apache' === serverType
? __(
'Smush can automatically apply WebP conversion rules for Apache servers by writing to your .htaccess file. Alternatively, switch to Manual to apply these rules yourself.',
'wp-smushit'
)
: __(
'The following configurations are for NGINX servers. If you do not have access to your NGINX config files you will need to contact your hosting provider to make these changes.',
'wp-smushit'
),
},
3: {
title: __('Finish Setup', 'wp-smushit'),
description: __(
'The rules have been applied successfully.',
'wp-smushit'
),
},
};
const getTopNotice = () => {
if (1 === currentStep && smushData.isS3Enabled) {
return (
<div className="sui-notice sui-notice-warning">
<div className="sui-notice-content">
<div className="sui-notice-message">
<span
className="sui-notice-icon sui-icon-info sui-md"
aria-hidden="true"
></span>
<p>
{__(
'We noticed the Amazon S3 Integration is enabled. Offloaded images will not be served in WebP format, but Smush will create local WebP copies of all images. If this is undesirable, you can quit the setup.',
'wp-smushit'
)}
</p>
</div>
</div>
</div>
);
}
if (2 === currentStep) {
return (
<div
role="alert"
className="sui-notice sui-notice-warning"
aria-live="assertive"
style={rulesError ? { display: 'block' } : {}}
>
{rulesError && (
<div className="sui-notice-content">
<div className="sui-notice-message">
<span
className="sui-notice-icon sui-icon-info sui-md"
aria-hidden="true"
></span>
<p
dangerouslySetInnerHTML={{
__html: rulesError,
}}
/>
</div>
</div>
)}
</div>
);
}
if (smushData.isWpmudevHost) {
const message = !smushData.isWhitelabel
? __(
'Since your site is hosted with WPMU DEV, we already have done the configurations steps for you. The only step for you would be to create WebP images below.',
'wp-smushit'
)
: __(
'WebP conversion is active and working well. Your hosting has automatically pre-configured the conversion for you. The only step for you would be to create WebP images below.',
'wp-smushit'
);
return (
<div className="sui-notice sui-notice-info">
<div className="sui-notice-content">
<div className="sui-notice-message">
<span
className="sui-notice-icon sui-icon-info sui-md"
aria-hidden="true"
></span>
<p>{message}</p>
</div>
</div>
</div>
);
}
};
const getStepContent = () => {
if (1 === currentStep) {
return (
<React.Fragment>
<div className="sui-box-selectors">
<ul>
<li>
<label
htmlFor="smush-wizard-server-type-apache"
className="sui-box-selector"
>
<input
id="smush-wizard-server-type-apache"
type="radio"
value="apache"
checked={'apache' === serverType}
onChange={(e) =>
setServerType(e.currentTarget.value)
}
/>
<span>{__('Apache', 'wp-smushit')}</span>
</label>
</li>
<li>
<label
htmlFor="smush-wizard-server-type-nginx"
className="sui-box-selector"
>
<input
id="smush-wizard-server-type-nginx"
type="radio"
value="nginx"
checked={'nginx' === serverType}
onChange={(e) =>
setServerType(e.currentTarget.value)
}
/>
<span>{__('NGINX', 'wp-smushit')}</span>
</label>
</li>
</ul>
</div>
<div className="sui-notice" style={{ textAlign: 'left' }}>
<div className="sui-notice-content">
<div className="sui-notice-message">
<span
className="sui-notice-icon sui-icon-info sui-md"
aria-hidden="true"
></span>
<p>
{sprintf(
/* translators: server type */
__(
"We've automatically detected your server type is %s. If this is incorrect, manually select your server type to generate the relevant rules and instructions.",
'wp-smushit'
),
'nginx' === smushData.detectedServer
? 'NGINX'
: 'Apache / LiteSpeed'
)}
</p>
</div>
</div>
</div>
</React.Fragment>
);
}
if (2 === currentStep) {
if ('nginx' === serverType) {
return (
<div className="smush-wizard-rules-wrapper">
<ol className="sui-description">
<li>
{__(
'Insert the following in the server context of your configuration file (usually found in /etc/nginx/sites-available). “The server context” refers to the part of the configuration that starts with “server {” and ends with the matching “}”.',
'wp-smushit'
)}
</li>
<li>
{__(
'Copy the generated code found below and paste it inside your http or server blocks.',
'wp-smushit'
)}
</li>
</ol>
<pre
className="sui-code-snippet"
style={{ marginLeft: '12px' }}
>
{smushData.nginxRules}
</pre>
<ol className="sui-description" start="3">
<li>{__('Reload NGINX.', 'wp-smushit')}</li>
</ol>
<p className="sui-description">
{__('Still having trouble?', 'wp_smushit')}{' '}
<a
href={smushData.urls.support}
target="_blank"
rel="noreferrer"
>
{__('Get Support.', 'wp_smushit')}
</a>
</p>
</div>
);
}
// TODO: The non-selected button isn't focusable this way. Why arrows don't workkkkkkk?
return (
<div className="sui-side-tabs sui-tabs">
<div role="tablist" className="sui-tabs-menu">
<button
type="button"
role="tab"
id="smush-tab-automatic"
className={
'sui-tab-item' +
('automatic' === rulesMethod ? ' active' : '')
}
aria-controls="smush-tab-content-automatic"
aria-selected={'automatic' === rulesMethod}
onClick={() => setRulesMethod('automatic')}
tabIndex={'automatic' === rulesMethod ? '0' : '-1'}
>
{__('Automatic', 'wp-smushit')}
</button>
<button
type="button"
role="tab"
id="smush-tab-manual"
className={
'sui-tab-item' +
('manual' === rulesMethod ? ' active' : '')
}
aria-controls="smush-tab-content-manual"
aria-selected={'manual' === rulesMethod}
onClick={() => setRulesMethod('manual')}
tabIndex={'manual' === rulesMethod ? '0' : '-1'}
>
{__('Manual', 'wp-smushit')}
</button>
</div>
<div className="sui-tabs-content">
<div
role="tabpanel"
tabIndex="0"
id="smush-tab-content-automatic"
className={
'sui-tab-content' +
('automatic' === rulesMethod ? ' active' : '')
}
aria-labelledby="smush-tab-automatic"
hidden={'automatic' !== rulesMethod}
>
<p
className="sui-description"
style={{ marginTop: '30px' }}
>
{__(
'Please note: Some servers have both Apache and NGINX software which may not begin serving WebP images after applying the .htaccess rules. If errors occur after applying the rules, we recommend adding NGINX rules manually.',
'wp-smushit'
)}
</p>
</div>
<div
role="tabpanel"
tabIndex="0"
id="smush-tab-content-manual"
className={
'sui-tab-content' +
('manual' === rulesMethod ? ' active' : '')
}
aria-labelledby="smush-tab-manual"
hidden={'manual' !== rulesMethod}
>
<p className="sui-description">
{__(
'If you are unable to get the automated method working, follow these steps:',
'wp-smushit'
)}
</p>
<div className="smush-wizard-rules-wrapper">
<ol className="sui-description">
<li>
{__(
'Copy the generated code below and paste it at the top of your .htaccess file (before any existing code) in the root directory.',
'wp-smushit'
)}
</li>
</ol>
<pre
className="sui-code-snippet"
style={{ marginLeft: '12px' }}
>
{smushData.apacheRules}
</pre>
<ol className="sui-description" start="2">
<li>
{__(
"Next, click Check Status button below to see if it's working.",
'wp-smushit'
)}
</li>
</ol>
<h5
className="sui-settings-label"
style={{
marginTop: '30px',
fontSize: '13px',
color: '#333333',
}}
>
{__('Troubleshooting', 'wp-smushit')}
</h5>
<p className="sui-description">
{__(
'If .htaccess does not work, and you have access to vhosts.conf or httpd.conf, try this:',
'wp-smushit'
)}
</p>
<ol className="sui-description">
<li>
{__(
'Look for your site in the file and find the line that starts with <Directory> - add the code above that line and into that section and save the file.',
'wp-smushit'
)}
</li>
<li>
{__('Reload Apache.', 'wp-smushit')}
</li>
<li>
{__(
"If you don't know where those files are, or you aren't able to reload Apache, you would need to consult with your hosting provider or a system administrator who has access to change the configuration of your server.",
'wp-smushit'
)}
</li>
</ol>
<p className="sui-description">
{__('Still having trouble?', 'wp_smushit')}{' '}
<a
href={smushData.urls.support}
target="_blank"
rel="noreferrer"
>
{__('Get Support.', 'wp_smushit')}
</a>
</p>
</div>
</div>
</div>
</div>
);
}
const hideWizard = (e) => {
e.preventDefault();
makeRequest('smush_toggle_webp_wizard').then(() => {
location.href = smushData.urls.bulkPage;
});
};
return (
<React.Fragment>
<p style={{ marginBottom: 0 }}><b>{__('Convert Images to WebP', 'wp-smushit')}</b></p>
<p className="sui-description" dangerouslySetInnerHTML={ { __html: smushData.thirdStepMsg } } />
{!smushData.isMultisite && (
<p>
<a href={smushData.urls.bulkPage} onClick={hideWizard}>
{__('Convert now', 'wp-smushit')}
</a>
</p>
)}
</React.Fragment>
);
};
const stepIndicatorText = sprintf(
/* translators: currentStep/totalSteps indicator */
__('Step %s', 'wp-smushit'),
currentStep + '/3'
);
return (
<div
className={`smush-wizard-steps-content-wrapper smush-wizard-step-${currentStep}`}
>
{getTopNotice()}
<div className="smush-wizard-steps-content">
<span className="smush-step-indicator">
{stepIndicatorText}
</span>
<h2>{stepsHeading[currentStep].title}</h2>
<p className="sui-description">
{stepsHeading[currentStep].description}
</p>
{getStepContent()}
</div>
</div>
);
};

View File

@ -0,0 +1,180 @@
/**
* External dependencies
*/
import React from 'react';
/**
* WordPress dependencies
*/
const { __ } = wp.i18n;
export default ({
currentStep,
setCurrentStep,
serverType,
rulesMethod,
setRulesError,
makeRequest,
}) => {
const genericRequestError = __(
'Something went wrong with the request.',
'wp-smushit'
);
const checkStatus = () => {
setRulesError(false);
makeRequest('smush_webp_get_status')
.then((res) => {
if (res.success) {
setCurrentStep(currentStep + 1);
} else {
setRulesError(res.data);
}
})
.catch(() => setRulesError(genericRequestError));
};
const applyRules = () => {
setRulesError(false);
makeRequest('smush_webp_apply_htaccess_rules')
.then((res) => {
if (res.success) {
return checkStatus();
}
setRulesError(res.data);
})
.catch(() => setRulesError(genericRequestError));
};
const hideWizard = (e) => {
e.currentTarget.classList.add(
'sui-button-onload',
'sui-button-onload-text'
);
makeRequest('smush_toggle_webp_wizard').then(() => location.reload());
};
// Markup stuff.
let buttonsLeft;
const quitButton = (
<button
type="button"
className="sui-button sui-button-ghost"
onClick={hideWizard}
>
<span className="sui-loading-text">
<span className="sui-icon-logout" aria-hidden="true"></span>
<span className="sui-hidden-xs">
{__('Quit setup', 'wp-smushit')}
</span>
<span className="sui-hidden-sm sui-hidden-md sui-hidden-lg">
{__('Quit', 'wp-smushit')}
</span>
</span>
<span
className="sui-icon-loader sui-loading"
aria-hidden="true"
></span>
</button>
);
if (1 !== currentStep) {
buttonsLeft = (
<button
type="button"
className="sui-button sui-button-compound sui-button-ghost"
onClick={() => setCurrentStep(currentStep - 1)}
>
<span className="sui-compound-desktop" aria-hidden="true">
<span className="sui-icon-arrow-left"></span>
{__('Previous', 'wp-smushit')}
</span>
<span className="sui-compound-mobile" aria-hidden="true">
<span className="sui-icon-arrow-left"></span>
</span>
<span className="sui-screen-reader-text">
{__('Previous', 'wp-smushit')}
</span>
</button>
);
}
const getButtonsRight = () => {
if (1 === currentStep) {
return (
<button
type="button"
className="sui-button sui-button-blue sui-button-icon-right"
onClick={() => setCurrentStep(currentStep + 1)}
>
{__('Next', 'wp-smushit')}
<span
className="sui-icon-arrow-right"
aria-hidden="true"
></span>
</button>
);
}
if (2 === currentStep) {
if ('apache' === serverType && 'automatic' === rulesMethod) {
return (
<button
type="button"
className="sui-button sui-button-blue"
onClick={applyRules}
>
{__('Apply rules', 'wp-smushit')}
</button>
);
}
return (
<button
type="button"
className="sui-button sui-button-blue"
onClick={checkStatus}
>
{__('Check status', 'wp-smushit')}
</button>
);
}
return (
<button
type="button"
className="sui-button sui-button-blue"
onClick={hideWizard}
>
<span className="sui-button-text-default">
{__('Finish', 'wp-smushit')}
</span>
<span className="sui-button-text-onload">
<span
className="sui-icon-loader sui-loading"
aria-hidden="true"
></span>
{__('Finishing setup…', 'wp-smushit')}
</span>
</button>
);
};
return (
<div className="sui-box-footer">
<div className="sui-actions-left">
{quitButton}
{buttonsLeft}
</div>
<div className="sui-actions-right">{getButtonsRight()}</div>
</div>
);
};

View File

@ -0,0 +1,114 @@
/**
* External dependencies
*/
import React from 'react';
/**
* WordPress dependencies
*/
const { __ } = wp.i18n;
export default ({ currentStep, smushData }) => {
const getStepClass = (step) => {
const stepClass = 'smush-wizard-bar-step';
if (!smushData.isPro) {
return stepClass + ' disabled';
}
if (step > currentStep) {
return stepClass;
}
return (
stepClass +
(step === currentStep ? ' current' : ' sui-tooltip done')
);
};
const getStepNumber = (step) => {
return currentStep > step ? (
<span className="sui-icon-check" aria-hidden="true"></span>
) : (
step
);
};
const steps = [
{ number: 1, title: __('Server Type', 'wp-smushit') },
{ number: 2, title: __('Add Rules', 'wp-smushit') },
{ number: 3, title: __('Finish Setup', 'wp-smushit') },
];
return (
<div className="sui-sidenav">
<span className="smush-wizard-bar-subtitle">
{__('Setup', 'wp-smushit')}
</span>
<div className="smush-sidenav-title">
<h4>{__('Local WebP', 'wp-smushit')}</h4>
{!smushData.isPro && (
<span className="sui-tag sui-tag-pro">
{__('Pro', 'wp-smushit')}
</span>
)}
</div>
<div className="smush-wizard-steps-container">
<svg
className="smush-svg-mobile"
focusable="false"
aria-hidden="true"
>
<line
x1="0"
x2="50%"
stroke={1 !== currentStep ? '#1ABC9C' : '#E6E6E6'}
/>
<line
x1="50%"
x2="100%"
stroke={3 === currentStep ? '#1ABC9C' : '#E6E6E6'}
/>
</svg>
<ul>
{steps.map((step) => (
<React.Fragment key={step.number}>
<li
className={getStepClass(step.number)}
data-tooltip={__(
'This stage is already completed.',
'wp-smushit'
)}
>
<div className="smush-wizard-bar-step-number">
{getStepNumber(step.number)}
</div>
{step.title}
</li>
{3 !== step.number && (
<svg
data={step.number}
data2={currentStep}
className="smush-svg-desktop"
focusable="false"
aria-hidden="true"
>
<line
y1="0"
y2="40px"
stroke={
step.number < currentStep
? '#1ABC9C'
: '#E6E6E6'
}
/>
</svg>
)}
</React.Fragment>
))}
</ul>
</div>
</div>
);
};

View File

@ -0,0 +1,50 @@
@include body-class(true) {
&.sui-color-accessible {
.smush-final-log .smush-bulk-error-row {
box-shadow: inset 2px 0 0 0 $accessible-dark;
.smush-bulk-image-data:before {
color: $accessible-dark;
}
}
// Bulk Smush Fancy Tree
ul.fancytree-container {
.fancytree-selected {
background-color: #F8F8F8;
span.fancytree-checkbox {
border: 1px solid $accessible-dark;
background-color: $accessible-dark;
}
}
span.fancytree-expander:before,
span.fancytree-icon:before,
span.fancytree-title {
color: $accessible-dark;
}
}
// CDN
.smush-filename-extension {
background-color: $accessible-dark;
}
// Check images button.
.sui-button {
&.smush-button-check-success:before {
color: $accessible-light;
}
}
// Smush submit note.
.smush-submit-note {
color: $accessible-dark;
}
// Hightlight lazyload spinner.
.sui-lazyload .sui-box-selector [name="animation[spinner-icon]"]:checked+span {
background-color: rgba(220,220,222, 0.7)!important;
}
}
}
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
.sui-wrap .sui-toggle-slider {
-ms-high-contrast-adjust: none;
}
}

View File

@ -0,0 +1,59 @@
// This needs to be here.
@import "modules/variables";
// Share UI styles
@import "~@wpmudev/shared-ui/scss/functions";
@import "~@wpmudev/shared-ui/scss/colors";
@import "~@wpmudev/shared-ui/scss/variables";
$google-fonts-url: 'https://fonts.bunny.net/css?family=Roboto:400,500,700';
@import "~@wpmudev/shared-ui/scss/mixins";
@import "~@wpmudev/shared-ui/scss/accessibility";
@import "~@wpmudev/shared-ui/scss/animations";
@import "~@wpmudev/shared-ui/scss/typography";
@import "~@wpmudev/shared-ui/scss/icons";
@import "~@wpmudev/shared-ui/scss/buttons";
@import "~@wpmudev/shared-ui/scss/toggles";
@import "~@wpmudev/shared-ui/scss/boxes";
@import "~@wpmudev/shared-ui/scss/box-settings";
@import "~@wpmudev/shared-ui/scss/layout";
@import "~@wpmudev/shared-ui/scss/notifications";
@import "~@wpmudev/shared-ui/scss/header";
@import "~@wpmudev/shared-ui/scss/summary";
@import "~@wpmudev/shared-ui/scss/list";
@import "~@wpmudev/shared-ui/scss/tooltips";
@import "~@wpmudev/shared-ui/scss/select2";
@import "~@wpmudev/shared-ui/scss/tags";
@import "~@wpmudev/shared-ui/scss/forms";
@import "~@wpmudev/shared-ui/scss/radio-checkbox";
@import "~@wpmudev/shared-ui/scss/tabs";
@import "~@wpmudev/shared-ui/scss/sidenav";
@import "~@wpmudev/shared-ui/scss/dropdowns";
@import "~@wpmudev/shared-ui/scss/scores";
@import "~@wpmudev/shared-ui/scss/footer";
@import "~@wpmudev/shared-ui/scss/progress-bars";
@import "~@wpmudev/shared-ui/scss/modals";
@import "~@wpmudev/shared-ui/scss/utility";
@import "~@wpmudev/shared-ui/scss/wp-admin-notices";
@import "~@wpmudev/shared-ui/scss/tables";
@import "~@wpmudev/shared-ui/scss/accordions";
// Used on lazy loading page (since 3.2.2).
@import "~@wpmudev/shared-ui/scss/box-selectors";
@import "~@wpmudev/shared-ui/scss/upload";
@import "~@wpmudev/shared-ui/scss/_colorpickers.scss";
// Upgrade page (since 3.2.3).
@import "~@wpmudev/shared-ui/scss/upgrade-page";
@import "~@wpmudev/shared-ui/scss/reviews";
// Used on WebP page (since 3.8.0).
@import "~@wpmudev/shared-ui/scss/_code-snippet.scss";
// Upsells (since 3.9.1).
@import "~@wpmudev/shared-ui/scss/upsells";
// App styles
@import "modules/admin";
@import "modules/directory-smush";
@import "modules/cdn";
@import "modules/webp";
// SUI Color Accessibility
@import "~@wpmudev/shared-ui/scss/color-accessibility";
@import "accessibility/color-accessibility";

View File

@ -0,0 +1,597 @@
/**
* Common styles that are used on all the WP pages in the backend
*/
@import "modules/media";
.sui-wrap .smush-upsell-link,
.sui-wrap a.smush-upsell-link {
color: $purple;
> span:before {
color: $purple;
}
&:hover:not(.sui-button),
&:focus:not(.sui-button),
&:active:not(.sui-button) {
color: #64007e;
> span:before {
color: #64007e;
}
}
}
/**
* Media details (grid layout)
* @since 3.4.0
*/
.attachment-info .smush-stats .value {
display: flex;
flex-wrap: wrap;
.smush-status {
margin: 0 0 10px;
flex-basis: 100%;
font-size: 12px;
line-height: 1.33333;
}
.smush-status-links {
width: 100%;
}
span.sui-tooltip {
float: none;
}
a {
margin-left: 5px;
}
a:first-of-type {
margin-left: 0;
margin-right: 5px;
}
}
.attachment-info .smush-status-links,
.column-smushit .smush-status-links {
color: #ddd;
}
.column-smushit .smush-status-links > a {
box-shadow: none;
outline: none;
}
.wp-smush-progress {
padding-left: 25px;
margin: 0;
background-size: 17px 17px;
visibility: visible;
vertical-align: initial !important; /* prevent from jumping on a line */
display: inline;
color: #32373c;
cursor: default;
}
// Fix grid view links.
.attachment-details .setting span.wp-smush-progress {
width: auto;
line-height: 0;
margin-right: 5px;
}
/** Settings Page **/
.smush-status.fail {
color: #dd3d36;
}
.smush-status.success {
color: #0074a2;
}
.smush-status.error {
color: red;
}
#wpbody-content .wp-smush-error {
color: red;
}
.wp-smush-action[disabled] {
opacity: 0.6;
}
#post-body-content .smush-status {
margin: 4px 0;
}
.attachment-info .wp-smush-error-message {
margin: 0 0 1em;
}
.smush-stats-wrapper .row {
padding: 8px 0;
}
.smush-stats-wrapper .row:first-child {
padding-top: 0;
}
.smush-stats-wrapper td, .smush-stats-wrapper th {
font-size: 11px;
}
.smush-skipped .dashicons-editor-help {
margin-top: -2px;
margin-left: 5px;
}
.smush-skipped {
a:focus { box-shadow: 0 0 black; }
.sui-tag.sui-tag-purple {
min-height: 18px;
padding: 2px 10px;
font-size: 10px;
line-height: 12px;
font-weight: 700;
background-color: #8d00b1;
color: #fff;
border: 2px solid transparent;
border-radius: 13px;
}
}
/** Help Tip **/
.ui-tooltip-content {
font-size: 12px;
}
/** All Smushed **/
.wp-smush-notice {
background-color: #D1F1EA;
border-radius: 5px;
color: #333333;
font-family: 'Roboto', sans-serif;
font-size: 15px;
line-height: 30px;
margin-bottom: 30px;
padding: 15px 30px;
letter-spacing: -0.015em;
}
div.smush-notice-cta a.smush-notice-act.button-primary {
padding: 3px 23px;
background-color: #00B0DB;
box-shadow: none;
border-radius: 4px;
border: none;
text-shadow: none;
font-weight: normal;
-webkit-font-smoothing: antialiased;
&:hover {
border: none;
}
}
a.wp-smush-resize-enable:hover,
a.wp-smush-lossy-enable:hover {
color: #0A9BD6;
}
.wp-smush-bulk-wrapper {
#wp-smush-bulk-image-count {
color: #333333;
font-size: 28px;
line-height: 40px;
letter-spacing: -0.5px;
font-weight: 600;
}
#wp-smush-bulk-image-count-description {
color: #333333;
font-size: 13px;
margin-top: 0;
margin-bottom: 10px;
}
.sui-tooltip,
.sui-tooltip > .sui-icon-info {
vertical-align: top;
}
}
/** Image Remaining **/
div.wp-smush-remaining,
div.wp-smush-dir-limit,
div.smush-s3-setup-message {
background-color: #FFF5D5;
border: none;
color: #333333;
line-height: 30px;
font-size: 15px;
letter-spacing: -0.015em;
}
div.smush-s3-setup-message {
background-color: #DFF6FA;
}
div.wp-smush-dir-limit {
background-color: #dff6fa;
}
.wp-smush-resmush-wrap .wp-smush-remaining {
padding: 10px 50px;
}
.wp-smush-count {
color: #888888;
font-size: 13px;
line-height: 1.5;
margin-top: 15px;
}
/** Stats Container **/
a.wp-smush-lossy-enable {
cursor: pointer;
}
/** Re Smush **/
.wp-smush-settings-changed {
background: #dff6fa;
border-radius: 5px;
font-size: 13px;
line-height: 1.7;
padding: 20px;
}
.compat-item .compat-field-wp_smush {
display: table-row;
}
.manage-column.column-smushit {
width: 260px;
}
.smushit [tooltip],
label.setting.smush-stats [tooltip],
.compat-field-wp_smush [tooltip] {
position: relative;
overflow: visible;
}
.smushit [tooltip]:before,
label.setting.smush-stats [tooltip]:before,
.compat-field-wp_smush [tooltip]:before {
content: '';
position: absolute;
border: 5px solid transparent;
border-top-color: #0B2F3F;
bottom: 100%;
left: 50%;
margin-left: -5px;
margin-bottom: -5px;
opacity: 0;
z-index: -1;
transition: margin .2s, opacity .2s, z-index .2s linear .2s;
pointer-events: none;
}
.smushit [tooltip]:after,
label.setting.smush-stats [tooltip]:after,
.compat-field-wp_smush [tooltip]:after {
background: #0B2F3F;
border-radius: 4px;
bottom: 100%;
color: #FFF;
content: attr(tooltip);
font-size: 13px;
font-weight: 400;
left: 50%;
line-height: 20px;
margin-left: -100px;
margin-bottom: 5px;
opacity: 0;
padding: 5px;
pointer-events: none;
position: absolute;
width: 180px;
text-align: center;
transition: margin .2s, opacity .2s, z-index .2s linear .2s;
white-space: pre-wrap;
z-index: -1;
}
.smushit .smush-skipped [tooltip]:before,
label.setting.smush-stats .smush-skipped [tooltip]:before,
.compat-field-wp_smush .smush-skipped [tooltip]:before {
border-top-color: transparent;
border-left-color: #0B2F3F;
bottom: 0;
left: 0;
}
.smushit .smush-skipped [tooltip]:after,
label.setting.smush-stats .smush-skipped [tooltip]:after,
.compat-field-wp_smush .smush-skipped [tooltip]:after {
margin-left: 0;
left: -195px;
top: -35px;
bottom: inherit;
margin-bottom: 5px;
}
label.setting.smush-stats .smush-skipped [tooltip]:after {
top: -98px;
}
div.media-sidebar label.setting.smush-stats .smush-skipped [tooltip]:after {
left: -188px;
padding-left: 10px;
width: 170px;
}
div.media-sidebar label.setting.smush-stats .smush-skipped [tooltip]:before {
margin-left: -3px;
}
.smushit [tooltip].tooltip-s:after,
label.setting.smush-stats [tooltip].tooltip-s:after,
.compat-field-wp_smush [tooltip].tooltip-s:after {
width: 150px;
margin-left: -75px;
}
.smushit [tooltip].tooltip-l:after,
label.setting.smush-stats [tooltip].tooltip-l:after,
.compat-field-wp_smush [tooltip].tooltip-l:after {
width: 280px;
margin-left: -140px;
}
.smushit [tooltip].tooltip-right:after, .compat-field-wp_smush [tooltip].tooltip-right:after {
margin-left: -180px;
}
.smushit [tooltip].tooltip-s.tooltip-right:after, .compat-field-wp_smush [tooltip].tooltip-s.tooltip-right:after {
margin-left: -130px;
}
.smushit [tooltip].tooltip-l.tooltip-right:after, .compat-field-wp_smush [tooltip].tooltip-l.tooltip-right:after {
margin-left: -260px;
}
.smushit [tooltip].tooltip-bottom:before, .compat-field-wp_smush [tooltip].tooltip-bottom:before {
border-color: transparent;
border-bottom-color: #0B2F3F;
top: 100%;
bottom: auto;
margin-top: -5px;
margin-bottom: 0;
}
.smushit [tooltip].tooltip-bottom:after, .compat-field-wp_smush [tooltip].tooltip-bottom:after {
bottom: auto;
top: 100%;
margin-top: 5px;
margin-bottom: 0;
}
.smushit [tooltip]:hover:before,
label.setting.smush-stats [tooltip]:hover:before,
.compat-field-wp_smush [tooltip]:hover:before {
z-index: 1;
margin-bottom: 0;
opacity: 1;
transition: margin .2s, opacity .2s;
}
.smushit [tooltip]:hover:after,
label.setting.smush-stats [tooltip]:hover:after,
.compat-field-wp_smush [tooltip]:hover:after {
opacity: 1;
z-index: 1;
margin-bottom: 10px;
transition: margin .2s, opacity .2s;
}
.smushit .disabled[tooltip]:before,
.smushit .disabled[tooltip]:after,
label.setting.smush-stats .disabled[tooltip]:before,
label.setting.smush-stats .disabled[tooltip]:after,
.compat-field-wp_smush .disabled[tooltip]:before,
.compat-field-wp_smush .disabled[tooltip]:after {
display: none;
}
/** Image List **/
div.wp-smush-scan-result {
background: white;
div.wp-smush-notice {
margin-top: 14px;
padding: 15px 30px;
}
div.content {
overflow: hidden;
width: 100%;
}
}
div.wp-smush-info.notice {
font-size: 15px;
letter-spacing: -0.015em;
margin: 0 0 30px;
padding: 15px;
}
/** Media Queries **/
@media screen and (max-width: 1024px) and (min-width: 800px) {
/** Stats Section **/
.smush-stats-wrapper h3 {
padding: 6px 0;
}
}
/** Media Queries for resolution below 782px **/
@media only screen and (max-width: 800px) {
.dev-box.bulk-smush-wrapper.wp-smush-container {
padding: 20px 10px;
}
}
/**
* CSS styles used Admin notice
*/
.smush-notice.notice {
padding: 0;
margin: 5px 0 10px;
border: 1px solid #E5E5E5;
background: #FFF;
overflow: hidden;
-webkit-border-radius: 6px;
border-radius: 6px;
-webkit-box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.05);
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.05);
position: relative;
z-index: 1;
min-height: 80px;
display: table; /* The magic ingredient! */
font: 13px "Roboto", sans-serif;
}
.smush-notice.notice.loading:before {
content: attr(data-message);
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
background-color: rgba(255, 255, 255, 0.7);
z-index: 5;
text-align: center;
line-height: 80px;
font-size: 22px;
font-weight: bold;
}
.smush-notice > div {
display: table-cell; /* The magic ingredient! */
vertical-align: middle;
cursor: default;
line-height: 1.5;
}
.smush-notice.notice.loading > div {
-webkit-filter: blur(2px);
-moz-filter: blur(2px);
-o-filter: blur(2px);
-ms-filter: blur(2px);
filter: blur(2px);
}
.smush-notice-logo {
padding-left: 30px;
}
.smush-notice-message {
color: #23282D;
font-size: 13px;
font-weight: normal;
line-height: 20px;
padding: 20px;
-webkit-font-smoothing: antialiased;
width: 100%;
}
.smush-notice-cta {
background: #F8F8F8;
padding: 0 30px;
position: relative;
white-space: nowrap;
}
.wp-core-ui .smush-notice-cta button,
.wp-core-ui .smush-notice-cta .button-primary:active {
vertical-align: middle;
}
.wp-core-ui .smush-notice-cta input[type="email"] {
vertical-align: middle;
line-height: 20px;
margin: 0;
min-width: 50px;
max-width: 320px;
text-align: center;
padding-left: 0;
padding-right: 0;
}
/**
* Upsell lists.
* @since 3.9.1
*/
#smush-box-cdn-upsell,
#smush-box-webp-wizard {
.sui-upsell-list {
max-width: 525px;
text-align: left;
margin: 0 auto;
}
}
@media only all and (max-width: 1000px) {
.smush-notice.notice {
display: block;
font-size: 13px;
}
.smush-notice > .smush-notice-logo {
float: left;
display: inline-block;
height: 80px;
margin: 10px;
border-radius: 4px;
}
.smush-notice > .smush-notice-message {
width: auto;
display: block;
min-height: 80px;
}
.smush-notice > .smush-notice-cta {
display: block;
border-top: 1px solid #E5E5E5;
border-left: 0;
text-align: center;
white-space: normal;
line-height: 30px;
padding: 10px 20px;
}
.wp-core-ui .smush-notice > .smush-notice-cta > input[type="email"],
.smush-notice > .smush-notice-cta > button {
font-size: 14px;
}
}
@media only all and (max-width: 500px) {
.wp-core-ui .smush-notice > .smush-notice-cta > input[type="email"],
.smush-notice > .smush-notice-cta > button {
display: block;
width: 100% !important;
max-width: none;
margin-bottom: 4px;
font-size: 16px;
height: 34px;
}
}
.smush-dismissible-notice {
position: relative;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,72 @@
@import "variables";
/**
* CDN styles
*
* @since 3.0
*/
@include body-class {
.sui-wrap {
.sui-box-settings-row .sui-box-settings-col-1 {
vertical-align: top;
}
&.wrap-smush-cdn {
.sui-block-content-center p {
max-width: 600px;
margin: 20px auto 30px;
}
.sui-box-header .sui-actions-right .sui-icon-info{
font-size: 16px;
position: relative;
top: 1.5px;
}
}
.sui-cdn {
form p:first-of-type {
margin-top: 0;
}
}
.wp-smush-stats {
display: flex;
align-items: center;
line-height: 0;
.sui-tooltip {
line-height: 10px;
margin-right: 10px;
}
}
/* Filename Extensions Icons */
.smush-filename-extension {
border-radius: 4px;
display: inline-block;
font-size: 9px;
font-weight: 600;
color: #fff;
text-transform: uppercase;
text-align: center;
line-height: 43px;
height: 30px;
margin: 0 5px 0 0;
width: 30px;
&.smush-extension-jpeg,
&.smush-extension-jpg { background-color: #F7E100; }
&.smush-extension-png { background-color: #FFB694; }
&.smush-extension-gif { background-color: #72D5D4; }
&.smush-extension-webp { background-color: #72ADD5; }
&.smush-extension-svg { background-color: #88D572; }
&.smush-extension-iframe {
background-color: #8772D5;
font-size: 7px;
}
}
}
}

View File

@ -0,0 +1,338 @@
/* ****************************************************************************
* MODULE: Directory Smush styles.
*/
@include body-class {
.wp-smush-progress-dialog,
.wp-smush-list-dialog {
text-align: left;
}
.sui-directory.sui-message {
text-align: left;
.sui-message-content {
text-align: center;
}
}
.sui-directory .smush-final-log {
margin-top: 30px;
.sui-description {
margin-top: 10px;
}
}
ul.fancytree-container {
color: #666;
font-family: "Roboto", sans-serif;
font-size: 13px;
font-weight: 500;
letter-spacing: -0.25px;
line-height: 40px;
padding: 0;
margin: 0;
outline: 0 solid transparent;
min-height: 0%;
position: relative;
ul {
padding: 0 0 0 16px;
margin: 0;
display: block;
}
/*------------------------------------------------------------------------------
* Expander icon
*
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-exp-
* 1st character: 'e': expanded, 'c': collapsed, 'n': no children
* 2nd character (optional): 'd': lazy (Delayed)
* 3rd character (optional): 'l': Last sibling
*----------------------------------------------------------------------------*/
span.fancytree-expander {
cursor: pointer;
font-size: 12px;
margin-left: 13px;
width: 15px;
&:before {
font-family: wpmudev-plugin-icons, sans-serif;
}
}
.fancytree-exp-c span.fancytree-expander,
.fancytree-exp-cd:not(.fancytree-unselectable) span.fancytree-expander,
.fancytree-exp-cf:not(.fancytree-unselectable) span.fancytree-expander {
margin-left: 13px;
}
// --- End nodes (use connectors instead of expanders)
.fancytree-expanded.fancytree-exp-n span.fancytree-expander,
.fancytree-expanded.fancytree-exp-nl span.fancytree-expander {
width: 13px;
display: inline-block;
&:before {
background-image: none;
cursor: default;
}
}
.fancytree-exp-n span.fancytree-expander,
.fancytree-exp-nl span.fancytree-expander {
width: 12px;
display: inline-block;
}
.fancytree-exp-nl span.fancytree-expander:before {
content: "\131";
cursor: default;
}
span.fancytree-ico-c span.fancytree-expander:before {
content: '';
cursor: default;
}
// --- Collapsed
.fancytree-exp-c span.fancytree-expander:before,
.fancytree-exp-cl span.fancytree-expander:before,
.fancytree-exp-cd span.fancytree-expander:before,
.fancytree-exp-cdl span.fancytree-expander:before,
.fancytree-exp-e span.fancytree-expander:before,
.fancytree-exp-ed span.fancytree-expander:before,
.fancytree-exp-el span.fancytree-expander:before,
.fancytree-exp-edl span.fancytree-expander:before {
color: #888888;
content: "\2DC";
}
// --- Expanded
.fancytree-exp-e span.fancytree-expander:before,
.fancytree-exp-ed span.fancytree-expander:before,
.fancytree-exp-el span.fancytree-expander:before,
.fancytree-exp-edl span.fancytree-expander:before {
content: "\131";
}
// --- Unselectable
.fancytree-unselectable span.fancytree-expander:before {
content: "9";
}
/* Fade out expanders, when container is not hovered or active */
.fancytree-fade-expander {
span.fancytree-expander:before {
transition: opacity 1.5s;
opacity: 0;
}
&:hover span.fancytree-expander:before,
&.fancytree-treefocus span.fancytree-expander:before,
.fancytree-treefocus span.fancytree-expander:before,
[class*='fancytree-statusnode-'] span.fancytree-expander:before {
transition: opacity 0.6s;
opacity: 1;
}
}
/*------------------------------------------------------------------------------
* Checkbox icon
*----------------------------------------------------------------------------*/
span.fancytree-checkbox {
margin-right: 5px;
margin-left: 12px;
border-radius: 3px;
border: 1px solid #ddd;
background-color: #e6e6e6;
display: inline-block;
width: 16px;
height: 16px;
top: 2px;
position: relative;
transition: .2s;
@include icon( before, check );
&:before {
opacity: 0;
color: #fff;
font-size: 10px;
line-height: 14px;
position: absolute;
width: 100%;
text-align: center;
transition: .2s;
}
}
.fancytree-selected span.fancytree-checkbox {
border: 1px solid #17a8e3;
background-color: #17a8e3;
&:before {
opacity: 1;
}
}
.fancytree-expanded span.fancytree-checkbox {
margin-left: 11px;
}
// Unselectable is dimmed, without hover effects
.fancytree-unselectable {
background-color: transparent !important;
// Fix for bug in library.
&.fancytree-selected {
margin-left: -9px;
span.fancytree-expander {
margin-left: 10px;
}
span.fancytree-checkbox {
border: 1px solid #ddd;
background-color: #e6e6e6;
&:before {
color: #e6e6e6 !important;
}
}
span.fancytree-title {
color: #666;
}
}
span.fancytree-expander,
span.fancytree-icon,
span.fancytree-checkbox,
span.fancytree-title {
opacity: 0.4;
filter: alpha(opacity=40);
&:before {
color: #666 !important;
}
}
}
/*------------------------------------------------------------------------------
* Node type icon
* Note: IE6 doesn't correctly evaluate multiples class names,
* so we create combined class names that can be used in the CSS.
*
* Prefix: fancytree-ico-
* 1st character: 'e': expanded, 'c': collapsed
* 2nd character (optional): 'f': folder
*----------------------------------------------------------------------------*/
span.fancytree-icon:before { // Default icon
margin-left: 10px;
font-family: wpmudev-plugin-icons, sans-serif;
font-size: 16px;
color: #AAA;
content: 'D';
position: relative;
top: 1px;
}
/* Documents */
.fancytree-ico-c span.fancytree-icon:before { // Collapsed folder (empty)
content: 'D';
}
.fancytree-has-children.fancytree-ico-c span.fancytree-icon:before { // Collapsed folder (not empty)
content: 'D';
}
.fancytree-ico-e span.fancytree-icon:before { // Expanded folder
content: '\BB';
}
/* Folders */
.fancytree-exp-n.fancytree-ico-ef span.fancytree-icon:before,
.fancytree-exp-nl.fancytree-ico-ef span.fancytree-icon:before,
.fancytree-ico-cf span.fancytree-icon:before { // Collapsed folder (empty)
content: '\2D8';
}
.fancytree-has-children.fancytree-ico-cf span.fancytree-icon:before { // Collapsed folder (not empty)
content: '\2D8';
}
.fancytree-ico-ef span.fancytree-icon:before { // Expanded folder
content: '\BB';
}
// 'Loading' status overrides all others
.fancytree-loading span.fancytree-expander:before,
.fancytree-statusnode-loading span.fancytree-icon:before {
content: 'N';
display: inline-block;
animation: spin 1.3s linear infinite;
}
/*------------------------------------------------------------------------------
* Node titles and highlighting
*----------------------------------------------------------------------------*/
span.fancytree-node {
display: inherit;
width: 100%;
margin-top: 5px;
min-height: 40px;
&:not(.fancytree-unselectable):hover {
background-color: #F8F8F8;
}
}
span.fancytree-title {
color: #666; // inherit doesn't work on IE
cursor: pointer;
display: inline-block; // Better alignment, when title contains <br>
vertical-align: top;
min-height: 20px;
padding: 0 3px 0 3px; // Otherwise italic font will be outside right bounds
margin: 0 0 0 5px;
border: 1px solid transparent; // avoid jumping, when a border is added on hover
border-radius: 4px;
font-weight: 500;
}
span.fancytree-node.fancytree-error span.fancytree-title {
//color: @fancy-font-error-color;
}
span.fancytree-expanded,
span.fancytree-selected {
border-radius: 4px;
background-color: #F8F8F8;
color: #17A8E3;
span.fancytree-title {
color: #666666;
}
}
span.fancytree-selected {
background-color: #E1F6FF;
span.fancytree-expander:before,
span.fancytree-icon:before,
span.fancytree-title {
color: #17A8E3;
}
}
span.fancytree-focused {
background-color: #e1e1e1 !important;
}
}
}

View File

@ -0,0 +1,216 @@
/* ****************************************************************************
* MEDIA AREA SCSS FILE
*/
@import "~@wpmudev/shared-ui/scss/functions";
@import "~@wpmudev/shared-ui/scss/colors";
@import "~@wpmudev/shared-ui/scss/variables";
// Override body class
$sui-version: 'smush-media';
$sui-wrap-class: false;
@import "~@wpmudev/shared-ui/scss/mixins";
@import "~@wpmudev/shared-ui/scss/tooltips";
/* ****************************************************************************
* MEDIA AREA STYLES
*/
// Set column width.
.manage-column.column-smushit {
width: 260px;
}
// Margin for buttons.
.sui-smush-media {
.button {
margin-right: 5px;
&:last-of-type {
margin-right: 0;
}
}
}
// Smush button loading icon.
#ngg-listimages,
.column-smushit {
.spinner {
float: none;
&.visible {
visibility: visible;
}
}
}
.smush-status-links{
.smush-upgrade-link {
color: #8D00B1;
font-size: 12px;
}
.smush-ignore-utm,.smush-revert-utm{
display: block;
margin: 6px 0 4px;
}
a {
text-decoration: none;
}
span {
float: none !important;;
}
.smush-cdn-notice {
color: #50575E;
a {
color:#2271B1;
&:focus {
box-shadow: none;
opacity: 0.7;
}
}
}
}
.smush-status {
&.smush-warning,&.smush-ignored,&.smush-success{
padding-left:17px;
position: relative;
&:before{
content:"";
background: url('../images/icon-warning.png' ) no-repeat 0 0;
position: absolute;
width:12px;
height:12px;
background-size: contain;
left: 0;
top:3px;
}
}
&.smush-ignored{
&:before{
background-image: url('../images/icon-ignored.png' ) !important;
}
}
&.smush-success{
&:before{
background-image: url('../images/icon-success.png' ) !important;
}
}
.sui-icon-warning-media-lib {
margin-right:4px;
position:relative;
top:1px;
}
}
.column-smushit .smush-status{
color:#50575E;
}
// Stats table.
.sui-smush-media {
table.wp-smush-stats-holder {
width: 100%;
border: 1px solid #E6E6E6;
border-radius: 4px;
margin-top: 6px;
border-collapse: collapse;
border-spacing: 0;
thead {
th.smush-stats-header {
padding: 8px 10px;
border-bottom: 1px solid #E6E6E6 !important;
color: #32373D;
font-size: 12px;
font-weight: bold;
letter-spacing: -0.23px;
line-height: 16px;
text-align: left;
}
}
tr {
border: 1px solid #E6E6E6;
}
td {
overflow-wrap: break-word;
vertical-align: middle;
padding: 8px 10px;
color: #555555;
font-size: 11px;
letter-spacing: -0.21px;
line-height: 16px;
border-bottom: 1px solid #E6E6E6;
&:first-of-type {
max-width: 110px;
font-weight: 500;
}
}
}
}
// Override !important set from WordPress.
#the-list {
.sui-smush-media {
thead {
th.smush-stats-header {
border-bottom: 1px solid #E6E6E6 !important;
}
}
}
}
// Responsive table for list mode.
@media screen and (max-width: 1024px) {
.wp-list-table .smushit {
table.wp-smush-stats-holder {
th {
display: table-cell;
box-sizing: border-box;
}
tr td {
word-wrap: break-word;
display: table-cell !important;
&:first-child {
border-right: none;
box-sizing: border-box;
}
&:last-child {
box-sizing: border-box;
float: none;
overflow: visible;
}
}
}
}
}
// NextGen Integration.
.iedit .wp-smush-action,
.iedit .smush-stats-details {
font-size: 11px;
}
/*NextGen Gallery stats*/
#ngg-listimages {
table.wp-smush-stats-holder {
table-layout: fixed;
border: 1px solid lightgray;
border-collapse: collapse;
width: 100%;
td,
th {
border: 1px solid #CECECE;
}
}
.column-7 {
width: 300px;
}
.spinner {
width: auto;
padding-left: 30px;
}
}
/** NextGen Gallery tr height, to show the progress bar properly for alternate rows **/
.alternate.iedit {
height: 120px;
}
/** Allows to click on button, otherwise row-actions from NextGen interferes **/
.wp-smush-nextgen-send {
position: relative;
z-index: 2;
}

View File

@ -0,0 +1,22 @@
/* ****************************************************************************
* MODULE: VARIABLES
*/
$font--path: "../fonts" !default;
$img--path: "../images" !default;
$sui-font-path: '~@wpmudev/shared-ui/dist/fonts/';
$summary-image: '#{$img--path}/smush-graphic-dashboard-summary.svg';
// Promo banners for free footer
$cross-sell-1: 'hummingbird';
$cross-sell-2: 'defender';
$cross-sell-3: 'smartcrawl';
$main-color: #17A8E3;
$text-color: #333;
$border-radius: 4px;
$upgrade-image: '../../app/assets/images/hero@2x.png';
$upgrade-image-mobile: '../../app/assets/images/hero.png';

View File

@ -0,0 +1,212 @@
/**
* Webp styles
*
* @since 3.8.0
*/
@include body-class(true) {
#smush-box-webp-webp {
.smush-webp-supported-browser {
height: 30px;
width: 30px;
padding: 5px;
margin-right: 10px;
border-radius: 4px;
background-color: #F2F2F2;
display: inline-block;
img {
height: 20px;
width: 20px;
}
}
}
#smush-box-webp-wizard {
.sui-row-with-sidenav {
margin-bottom: 0;
.sui-sidenav {
padding: 30px;
border-top-left-radius: $border-radius;
background-color: #F8F8F8;
.smush-wizard-bar-subtitle {
font-size: 11px;
line-height: 20px;
font-weight: 700;
color: #AAAAAA;
text-transform: uppercase;
}
.smush-sidenav-title {
display: flex;
align-items: center;
margin-bottom: 33px;
h4 {
margin: 0;
line-height: 20px;
}
}
.smush-wizard-steps-container {
ul {
margin: 0;
@include media(max-width, lg) {
display: flex;
flex-direction: row;
justify-content: space-between;
}
}
.smush-wizard-bar-step {
display: inline-block;
font-size: 13px;
color: #AAAAAA;
line-height: 22px;
font-weight: 500;
margin-bottom: 0;
.smush-wizard-bar-step-number {
display: inline-block;
margin-right: 10px;
text-align: center;
border-radius: 50%;
width: 22px;
height: 22px;
font-size: 11px;
background-color: #F2F2F2;
border: 1px solid #DDDDDD;
@include media(max-width, lg) {
display: block;
margin: 0 auto 5px auto;
}
}
&.disabled {
color: #DDDDDD;
}
&.current {
color: #333333;
.smush-wizard-bar-step-number {
background-color: #FFFFFF;
border-color: #333333;
}
}
&.done .smush-wizard-bar-step-number {
background-color: #1ABC9C;
border-color: #1ABC9C;
.sui-icon-check::before {
color: #FFFFFF;
}
}
@include media(min-width, lg) {
display: block;
}
@include media(max-width, lg) {
width: 70px;
text-align: center;
}
}
svg {
line {
stroke-width: 4px;
}
&.smush-svg-desktop {
height: 40px;
width: 22px;
margin-left: 10px;
display: none;
@include media(min-width, lg) {
display: block;
}
}
&.smush-svg-mobile {
width: 100%;
height: 4px;
display: block;
margin-bottom: -14px;
padding: 0 35px;
@include media(min-width, lg) {
display: none;
}
}
}
}
@include media(max-width, sm) {
padding: 20px;
}
}
.smush-wizard-steps-content-wrapper {
padding: 20px;
.smush-wizard-steps-content {
padding: 0 70px;
text-align: center;
&:first-child {
padding-top: 30px;
}
.smush-step-indicator {
font-size: 11px;
font-weight: 500;
color: #888888;
}
h2 {
margin: 0;
}
@include media(max-width, sm) {
padding: 0;
}
}
&.smush-wizard-step-1 {
.sui-box-selectors {
padding-left: 115px;
padding-right: 115px;
margin-bottom: 15px;
}
}
&.smush-wizard-step-2 {
.smush-wizard-rules-wrapper {
text-align: left;
}
.sui-tabs-menu {
justify-content: center;
}
}
@include media(min-width, sm) {
padding: 30px;
}
}
}
}
}

View File

@ -0,0 +1,360 @@
@import url('https://fonts.bunny.net/css?family=Roboto:400,500,700');
@import "modules/variables";
$font--path: '~@wpmudev/shared-ui/dist/fonts/';
@font-face {
font-family: "wpmudev-plugin-icons";
src: url('#{$font--path}/wpmudev-plugin-icons.eot?');
src: url('#{$font--path}/wpmudev-plugin-icons.eot?') format('embedded-opentype'),
url('#{$font--path}/wpmudev-plugin-icons.ttf') format('truetype'),
url('#{$font--path}/wpmudev-plugin-icons.woff') format('woff'),
url('#{$font--path}/wpmudev-plugin-icons.woff2') format('woff2'),
url('#{$font--path}/wpmudev-plugin-icons.svg') format('svg');
font-weight: 400;
font-style: normal
}
@media screen and ( max-width: 800px ) {
#smush-image-bar-toggle,
#smush-image-bar {
display: none;
}
}
@media screen and ( min-width: 800px ) {
.smush-detected-img {
border-radius: 5px;
transition: all 0.5s ease;
box-shadow: 0 0 0 5px #FECF2F;
}
#smush-image-bar-toggle {
position: fixed;
top: 60px;
right: 330px;
height: 50px;
width: 60px;
z-index: 9999999;
border-radius: 4px 0 0 4px;
background-color: #FFF;
box-shadow: inset 2px 0 0 0 #FECF2F, -13px 5px 20px 0 rgba(0, 0, 0, 0.1);
text-align: center;
cursor: pointer;
transition-property: all;
transition-duration: .5s;
transition-timing-function: cubic-bezier(0, 1, 0.5, 1);
&.closed {
right: 0;
}
&.smush-toggle-success {
box-shadow: inset 2px 0 0 0 #1abc9c, -13px 5px 20px 0 rgba(0, 0, 0, 0.1);
}
i.sui-icon-info,
i.sui-icon-loader {
font-family: "wpmudev-plugin-icons" !important;
font-style: normal;
font-size: 16px;
line-height: 50px;
color: #FECF2F;
}
i.sui-icon-info:before {
content: "I";
}
&.smush-toggle-success i.sui-icon-info {
color: #1abc9c;
&:before {
content: "_";
}
}
i.sui-icon-loader {
&:before {
display: block;
content: "N";
-webkit-animation: spin 1.3s linear infinite;
animation: spin 1.3s linear infinite;
}
}
@-webkit-keyframes spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
}
#smush-image-bar {
position: fixed;
top: 0;
right: 0;
width: 330px;
height: 100%;
background-color: #FFF;
box-shadow: 0 0 40px 0 rgba(0,0,0,0.1);
z-index: 999999;
padding: 0 0 20px;
overflow-y: auto;
overflow-x: hidden;
max-width: 330px;
transition-property: all;
transition-duration: .5s;
transition-timing-function: cubic-bezier(0, 1, 0.5, 1);
&.closed {
max-width: 0;
overflow-y: hidden;
}
h3, p, strong, span {
font-family: 'Roboto', sans-serif;
letter-spacing: -0.25px;
}
h3 {
color: #333333;
font-size: 15px;
font-weight: bold;
line-height: 30px;
background-color: #FAFAFA;
padding: 15px 20px;
margin: 0;
}
p {
color: #888888;
font-size: 13px;
line-height: 22px;
padding: 0 20px;
}
strong {
color: #AAAAAA;
font-size: 12px;
font-weight: bold;
line-height: 22px;
padding: 0 20px;
}
.smush-resize-box {
background-color: #F8F8F8;
&:first-of-type {
border-top: 1px solid #E6E6E6;
margin-top: 5px;
}
&:last-of-type {
margin-bottom: 20px;
}
span:first-of-type {
color: #888;
height: 34px;
width: 40px;
font-size: 13px;
font-weight: bold;
line-height: 32px;
text-align: center;
border: 1px solid #DDDDDD;
border-radius: 50%;
margin-right: 10px;
}
.smush-image-info {
background-color: #FFF;
display: flex;
align-items: center;
align-content: center;
justify-content: space-between;
padding: 17px 20px;
border-bottom: 1px solid #E6E6E6;
cursor: pointer;
}
.smush-front-icons {
margin: 0 10px;
line-height: 5px;
&:before {
font-family: "wpmudev-plugin-icons" !important;
speak: none;
font-size: 12px;
font-style: normal;
font-weight: 400;
font-variant: normal;
text-transform: none;
text-rendering: auto;
color: #AAA;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
&.smush-front-icon-arrows-in {
&:before {
content: '\2264';
}
}
}
.smush-tag {
background-color: #fecf2f;
color: #333;
border-radius: 13px;
height: 26px;
width: 116px;
font-size: 12px;
letter-spacing: -0.25px;
line-height: 16px;
font-weight: 500;
display: flex;
align-items: center;
justify-content: center;
&.smush-tag-success {
background-color: #1abc9c;
color: #fff;
}
}
&.smush-tooltip {
position: relative;
&:before,
&:after {
content: "";
opacity: 0;
backface-visibility: hidden;
pointer-events: none;
position: absolute;
z-index: 1;
transition: margin .2s, opacity .2s;
}
&:before {
border: 5px solid transparent;
bottom: 100%;
left: 50%;
border-top-color: #000000;
transform: translateX(-50%);
}
&:after {
content: attr(data-tooltip);
min-width: 40px;
padding: 8px 12px;
border-radius: 4px;
background: #000000;
box-sizing: border-box;
color: #FFFFFF;
font: 400 12px/18px "Roboto", Arial, sans-serif;
text-transform: none;
text-align: center;
white-space: nowrap;
bottom: 100%;
left: 50%;
margin: 0 0 10px;
transform: translateX(-50%);
}
&.smush-tooltip-constrained {
&:after {
min-width: 240px;
white-space: normal;
}
}
&:not(.show-description):hover {
&:before,
&:after {
opacity: 1;
}
}
}
&:not(.show-description):hover,
&.show-description {
.smush-image-info { background-color: #F8F8F8; }
span:first-of-type {
background-color: #E6E6E6;
color: transparent;
&:before {
font-family: "wpmudev-plugin-icons" !important;
font-weight: 400;
content: "";
color: #666;
margin-right: -7px;
}
}
}
.smush-image-description {
display: none;
border-radius: 4px;
background-color: #FFFFFF;
box-shadow: 0 2px 0 0 #DDDDDD;
margin: 0 20px 20px;
padding: 20px;
color: #888888;
font-family: 'Roboto', sans-serif;
font-size: 13px;
letter-spacing: -0.25px;
line-height: 22px;
}
&.show-description {
padding-bottom: 1px;
border-bottom: 1px solid #E6E6E6;
.smush-image-info { border-bottom: 0; }
.smush-image-description { display: block; }
span:first-of-type {
background-color: #FECF2F;
border-color: #FECF2F;
&:before { color: #333; }
}
}
}
#smush-image-bar-notice {
display: none;
margin: 20px;
border: 1px solid #E6E6E6;
border-left: 2px solid #1abc9c;
border-radius: 4px;
padding: 15px 20px 15px 25px;
p:before {
position: absolute;
left: 42px;
font-family: "wpmudev-plugin-icons" !important;
font-weight: 400;
content: "_";
color: #1abc9c;
margin-right: -7px;
}
}
}
}

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 one or more lines are too long

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 one or more lines are too long

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 76 KiB

View File

@ -0,0 +1,383 @@
<?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>Generated by IcoMoon</metadata>
<defs>
<font id="wpmudev-plugin-icons" horiz-adv-x="1024">
<font-face units-per-em="1024" ascent="960" descent="-64" />
<missing-glyph horiz-adv-x="1024" />
<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
<glyph unicode="&#x21;" glyph-name="warning-alert" d="M512 960c70.667 0 137-13.333 199-40 62.667-26.667 117.166-63.166 163.5-109.5s82.833-100.833 109.5-163.5c26.667-62 40-128.333 40-199s-13.333-137-40-199c-26.667-62.667-63.166-117.166-109.5-163.5s-100.833-82.833-163.5-109.5c-62-26.667-128.333-40-199-40s-137 13.333-199 40c-62.667 26.667-117.166 63.166-163.5 109.5s-82.833 100.833-109.5 163.5c-26.667 62-40 128.333-40 199s13.333 137 40 199c26.667 62.667 63.166 117.166 109.5 163.5s100.833 82.833 163.5 109.5c62 26.667 128.333 40 199 40zM512 704c-35.346 0-64-28.654-64-64v-192c0-35.346 28.654-64 64-64s64 28.654 64 64v192c0 35.346-28.654 64-64 64zM512 192c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64s28.654-64 64-64z" />
<glyph unicode="&#x22;" glyph-name="arrow-skip-end" d="M229.76 99.83c4.702-4.248 10.107-7.843 15.997-10.569l0.397-0.164c5.507-2.395 11.921-3.787 18.662-3.787 0.426 0 0.852 0.006 1.275 0.017l-0.062-0.002c0.047 0 0.102 0 0.156 0 7.141 0 13.921 1.549 20.021 4.331l-0.302-0.123c6.217 2.8 11.572 6.251 16.33 10.37l-0.083-0.070 311.025 311.897c4.641 4.638 8.371 10.184 10.905 16.35l0.12 0.333c2.477 5.93 3.917 12.819 3.917 20.044 0 0.094 0 0.187-0.001 0.279v-0.015c0 0.078 0.001 0.17 0.001 0.262 0 7.177-1.44 14.017-4.046 20.248l0.129-0.346c-2.617 6.511-6.353 12.065-11.021 16.678l-0.005 0.005-311.751 310.591c-4.539 4.573-9.931 8.291-15.918 10.898l-0.331 0.129c-5.488 2.22-11.852 3.508-18.518 3.508-0.579 0-1.155-0.009-1.729-0.028l0.084 0.003c-0.233 0.005-0.509 0.006-0.786 0.006-13.822 0-26.352-5.539-35.489-14.52l0.007 0.006-36.267-36.558c-4.407-4.602-7.985-10.041-10.465-16.049l-0.126-0.345c-2.647-5.948-4.187-12.889-4.187-20.189 0-13.973 5.645-26.63 14.778-35.81l-0.003 0.003 238.203-239.217-238.203-238.492c-4.607-4.517-8.33-9.915-10.902-15.924l-0.123-0.323c-2.215-5.506-3.497-11.891-3.497-18.575 0-0.458 0.006-0.912 0.017-1.366l-0.002 0.067c0-0.079-0.001-0.172-0.001-0.266 0-7.226 1.439-14.116 4.047-20.397l-0.13 0.353c2.373-6.284 5.984-11.622 10.569-15.938l0.021-0.019 36.558-37.283zM730.244 99.83h87.040c16.023 0 29.013 12.99 29.013 29.013v0 638.299c0 16.023-12.99 29.013-29.013 29.013v0h-87.040c-16.023 0-29.013-12.99-29.013-29.013v0-638.299c0-16.023 12.99-29.013 29.013-29.013v0z" />
<glyph unicode="&#x23;" glyph-name="align-justify" d="M915.2 896h-806.4c-24.743 0-44.8-20.057-44.8-44.8v-40.619c0-24.743 20.057-44.8 44.8-44.8h806.4c24.743 0 44.8 20.057 44.8 44.8v40.619c0 24.743-20.057 44.8-44.8 44.8zM915.2 639.744h-806.4c-24.743 0-44.8-20.057-44.8-44.8v-40.619c0-24.743 20.057-44.8 44.8-44.8h806.4c24.743 0 44.8 20.057 44.8 44.8v41.365c0 24.743-20.057 44.8-44.8 44.8zM915.2 384.235h-806.4c-24.743 0-44.8-20.057-44.8-44.8v-40.619c0-24.743 20.057-44.8 44.8-44.8h806.4c24.743 0 44.8 20.057 44.8 44.8v41.365c0 24.743-20.057 44.8-44.8 44.8zM915.2 128.725h-806.4c-24.743 0-44.8-20.057-44.8-44.8v-39.125c0-24.743 20.057-44.8 44.8-44.8h806.4c24.743 0 44.8 20.057 44.8 44.8v39.872c0 24.743-20.057 44.8-44.8 44.8z" />
<glyph unicode="&#x24;" glyph-name="monitor" d="M961.194 860.245h-898.389c-34.686 0-62.805-28.119-62.805-62.805v-548.011c0-34.686 28.119-62.805 62.805-62.805h338.261v-95.232h-104.789c-9.897 0-17.92-8.023-17.92-17.92v-19.456c-0.002-0.102-0.003-0.221-0.003-0.341 0-9.897 8.023-17.92 17.92-17.92 0.001 0 0.002 0 0.003 0h422.229c9.897 0 17.92 8.023 17.92 17.92v19.627c0 9.897-8.023 17.92-17.92 17.92h-95.573v95.232h338.261c0 0 0 0 0 0 34.686 0 62.805 28.119 62.805 62.805 0 0.060 0 0.12 0 0.18v548.001c0 34.686-28.119 62.805-62.805 62.805zM111.956 749.311h800.085v-451.755h-800.085z" />
<glyph unicode="&#x25;" glyph-name="align-left" d="M913.333 896h-802.667c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-0.045 0-0.097 0-0.149 0-24.165 19.59-43.755 43.755-43.755 0 0 0 0 0 0h802.667c24.165 0 43.755 19.59 43.755 43.755v40.469c0 24.165-19.59 43.755-43.755 43.755zM110.667 512.213h586.432c24.165 0 43.755 19.59 43.755 43.755v40.32c0 24.165-19.59 43.755-43.755 43.755h-586.432c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-24.165 19.59-43.755 43.755-43.755zM825.675 127.979h-715.008c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-0.045 0-0.097 0-0.149 0-24.165 19.59-43.755 43.755-43.755 0 0 0 0 0 0h715.008c24.165 0 43.755 19.59 43.755 43.755v0 40.32c0 24.165-19.59 43.755-43.755 43.755zM110.667 255.957h498.923c24.165 0 43.755 19.59 43.755 43.755v0 40.32c0 24.165-19.59 43.755-43.755 43.755h-498.923c0 0 0 0 0 0-24.113 0-43.67-19.505-43.755-43.597v-40.327c0-24.165 19.59-43.755 43.755-43.755z" />
<glyph unicode="&#x26;" glyph-name="align-right" d="M913.259 896h-802.667c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-0.045 0-0.097 0-0.149 0-24.165 19.59-43.755 43.755-43.755 0 0 0 0 0 0h802.667c24.165 0 43.755 19.59 43.755 43.755v40.469c0 24.165-19.59 43.755-43.755 43.755zM913.259 640.043h-586.432c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-24.165 19.59-43.755 43.755-43.755h586.432c24.165 0 43.755 19.59 43.755 43.755v40.32c0 24.165-19.59 43.755-43.755 43.755zM913.108 127.979h-714.859c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-0.045 0-0.097 0-0.149 0-24.165 19.59-43.755 43.755-43.755 0 0 0 0 0 0h714.859c24.165 0 43.755 19.59 43.755 43.755v0 40.32c0 24.165-19.59 43.755-43.755 43.755zM957.163 340.181c0 24.165-19.59 43.755-43.755 43.755h-498.923c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-24.165 19.59-43.755 43.755-43.755h498.773c24.165 0 43.755 19.59 43.755 43.755v0 40.32z" />
<glyph unicode="&#x27;" glyph-name="quote-2" d="M214.449 82.518c-117.589 0-219.477 101.888-214.357 237.568 8.021 222.037 243.029 386.56 426.667 493.568l54.955-46.933c-131.413-78.336-259.755-199.168-267.264-339.456-5.12-141.141 167.083-206.165 167.083-211.627-2.56-73.045-75.776-133.291-167.083-133.291zM757.681 82.347c-117.419 0-219.307 102.4-214.187 237.568 7.851 221.867 242.859 386.389 425.643 493.568l54.955-46.763c-130.731-78.336-258.56-199.168-266.411-339.456-5.12-141.141 167.083-206.165 167.083-211.627-2.56-73.045-75.776-133.291-167.083-133.291z" />
<glyph unicode="&#x28;" glyph-name="check" d="M968.539 715.568l-62.444 62.444c-7.94 8.099-18.995 13.119-31.221 13.119s-23.282-5.021-31.215-13.112l-460.37-462.087-202.941 202.941c-7.94 8.099-18.995 13.119-31.221 13.119s-23.282-5.021-31.215-13.112l-62.45-62.45c-8.099-7.94-13.119-18.995-13.119-31.221s5.021-23.282 13.112-31.215l266.016-263.518c15.821-15.822 37.676-25.608 61.819-25.608s45.998 9.786 61.819 25.608l523.431 523.275c8.099 7.94 13.119 18.995 13.119 31.221s-5.021 23.282-13.112 31.215z" />
<glyph unicode="&#x29;" glyph-name="close" d="M620.102 448.032l234.834 234.834c7.407 7.444 11.987 17.708 11.987 29.041s-4.579 21.597-11.988 29.042l-50.879 50.097c-7.444 7.407-17.708 11.987-29.041 11.987s-21.597-4.579-29.042-11.988l-234.832-234.832-234.834 234.834c-7.377 7.168-17.458 11.588-28.572 11.588s-21.195-4.42-28.581-11.598l-50.558-50.401c-7.315-7.428-11.832-17.628-11.832-28.885s4.517-21.457 11.836-28.89l234.828-234.828-234.834-234.834c-7.407-7.444-11.987-17.708-11.987-29.041s4.579-21.597 11.988-29.042l50.566-50.097c7.427-7.445 17.696-12.051 29.041-12.051s21.615 4.606 29.041 12.050l234.835 234.835 234.834-234.834c7.444-7.407 17.708-11.987 29.041-11.987s21.597 4.579 29.042 11.988l50.409 50.409c7.407 7.444 11.987 17.708 11.987 29.041s-4.579 21.597-11.988 29.042z" />
<glyph unicode="&#x2a;" glyph-name="align-y-center" d="M256 512v128c0 35.346 28.654 64 64 64h384c35.346 0 64-28.654 64-64v-128h192c35.346 0 64-28.654 64-64s-28.654-64-64-64h-192v-128c0-35.346-28.654-64-64-64h-384c-35.346 0-64 28.654-64 64v128h-192c-35.346 0-64 28.654-64 64s28.654 64 64 64h192z" />
<glyph unicode="&#x2b;" glyph-name="cross-close" d="M1024 448c0 282.77-229.23 512-512 512s-512-229.23-512-512c0-282.77 229.23-512 512-512s512 229.23 512 512zM680.107 235.349c-5.961-5.964-14.198-9.652-23.296-9.652s-17.335 3.689-23.296 9.652l-121.515 121.515-121.515-121.515c-5.961-5.964-14.198-9.652-23.296-9.652s-17.335 3.689-23.296 9.652l-49.835 49.835c-5.964 5.961-9.652 14.198-9.652 23.296s3.689 17.335 9.652 23.296l121.515 121.515-121.515 121.515c-5.964 5.961-9.652 14.198-9.652 23.296s3.689 17.335 9.652 23.296l49.835 49.835c5.961 5.964 14.198 9.652 23.296 9.652s17.335-3.689 23.296-9.652l121.515-120.832 121.515 121.515c5.961 5.964 14.198 9.652 23.296 9.652s17.335-3.689 23.296-9.652l49.835-49.835c5.964-5.961 9.652-14.198 9.652-23.296s-3.689-17.335-9.652-23.296l-121.515-121.515 121.515-121.515c5.964-5.961 9.652-14.198 9.652-23.296s-3.689-17.335-9.652-23.296z" />
<glyph unicode="&#x2c;" glyph-name="clock" d="M512 823.467c207.365 0 375.467-168.102 375.467-375.467s-168.102-375.467-375.467-375.467c-207.365 0-375.467 168.102-375.467 375.467 0.677 207.091 168.375 374.79 375.401 375.466zM512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM774.144 638.293l-53.248 53.248c-4.962 4.662-11.661 7.527-19.029 7.527s-14.067-2.864-19.044-7.54l-170.652-170.653-93.696 93.696c-4.946 4.7-11.65 7.591-19.029 7.591s-14.083-2.891-19.041-7.602l-53.065-53.066c-4.951-4.865-8.020-11.631-8.021-19.114 0-0.020 0-0.043 0-0.066 0-7.378 3.001-14.055 7.85-18.877l165.719-165.719c4.849-4.851 11.549-7.851 18.95-7.851 0.058 0 0.116 0 0.174 0.001h1.015c7.274 0.098 13.834 3.079 18.603 7.851l242.347 242.347c4.857 4.876 7.86 11.602 7.86 19.029s-3.003 14.153-7.861 19.030z" />
<glyph unicode="&#x2d;" glyph-name="instagram" d="M931.8 447.688c-0.522 0.007-1.044 0.014-1.563 0.020 0 43.786 1.017 87.6-0.287 131.348-1.304 43.68-0.492 87.542-8.619 130.867-15.025 80.104-67.485 132.495-147.681 147.449-43.892 8.189-88.323 7.806-132.57 8.547-76.752 1.287-153.542 1.362-230.298 0.495-46.572-0.522-93.31-1.731-139.622-6.212-94.406-9.144-155.559-64.7-168.54-154.863-6.048-42.022-7.724-84.879-8.499-127.409-1.41-77.315-1.386-154.675-0.539-232.001 0.505-46.001 1.809-92.157 6.127-137.923 8.926-94.522 64.177-156.45 155.778-169.585 40.912-5.868 82.644-8.076 124.017-8.243 110.292-0.444 220.6 0.768 330.889 2.188 22.040 0.283 44.377 2.7 65.987 7.062 75.008 15.148 124.105 59.129 141.708 134.571 5.516 23.631 8.564 48.213 9.424 72.479 2.369 67.038 2.983 134.134 4.291 201.209zM713.388-64.001h-402.773c-6.168 0.853-12.326 1.802-18.504 2.546-20.292 2.451-40.902 3.335-60.836 7.482-115.746 24.081-190.16 92.631-218.092 208.268-7.264 30.078-8.94 61.508-13.182 92.317v402.773c2.106 19.657 3.649 39.393 6.427 58.952 7.98 56.221 27.020 107.803 64.556 151.562 47.599 55.491 109.35 83.613 180.412 93.648 19.651 2.775 39.475 4.335 59.218 6.451h402.773c6.164-0.853 12.322-1.799 18.5-2.546 20.292-2.451 40.905-3.331 60.839-7.479 115.75-24.078 190.15-92.641 218.088-208.268 7.267-30.078 8.943-61.508 13.186-92.32v-402.773c-2.109-19.654-3.656-39.39-6.434-58.948-8.069-56.825-27.436-108.861-65.669-152.852-47.52-54.685-108.865-82.412-179.296-92.355-19.647-2.778-39.472-4.338-59.215-6.458zM511.43 278.487c-92.986 0.222-169.127 76.636-169.052 169.656 0.075 92.955 76.373 169.325 169.322 169.479 93.699 0.157 170.209-76.708 169.817-170.605-0.389-92.969-76.875-168.755-170.086-168.53zM775.95 446.692c0.949 145.681-115.575 263.745-261.789 265.243-146.295 1.502-265.178-115.828-266.11-262.629-0.925-145.712 115.572-263.745 261.789-265.243 146.275-1.502 265.151 115.821 266.11 262.629zM847.602 719.86c0.594 35.386-26.279 63.328-61.31 63.747-34.577 0.413-62.454-26.003-63.358-60.044-0.945-35.345 25.757-63.874 60.512-64.659 35.308-0.795 63.573 26.054 64.157 60.955z" />
<glyph unicode="&#x2e;" glyph-name="plug-disconnected" d="M609.963 390.827c-3.917 3.892-9.315 6.297-15.275 6.297s-11.358-2.405-15.276-6.298l0.001 0.001-130.048-130.56-125.099 125.099 130.048 130.048c3.892 3.917 6.297 9.315 6.297 15.275s-2.405 11.358-6.298 15.276l-30.548 30.548c-3.917 3.892-9.315 6.297-15.275 6.297s-11.358-2.405-15.276-6.298l-130.047-130.047-32.597 32.597c-3.101 3.17-7.422 5.135-12.203 5.135s-9.101-1.965-12.2-5.132l-83.63-83.63c-37.202-37.444-60.196-89.045-60.196-146.015 0-45.244 14.502-87.1 39.111-121.175l-0.419 0.609-82.091-82.091c-11.749-11.749-19.016-27.981-19.016-45.909 0-35.857 29.068-64.926 64.926-64.926 17.929 0 34.16 7.267 45.909 19.016l82.091 82.091c33.426-24.103 75.209-38.549 120.366-38.549 57.155 0 108.904 23.143 146.389 60.568l-0.003-0.003 83.456 83.627c3.17 3.101 5.135 7.422 5.135 12.203s-1.965 9.101-5.132 12.2l-32.6 32.6 130.048 130.048c3.892 3.917 6.297 9.315 6.297 15.275s-2.405 11.358-6.298 15.276l0.001-0.001zM1005.056 941.056c-11.741 11.767-27.975 19.046-45.909 19.046s-34.168-7.28-45.908-19.045l-84.481-84.481c-33.426 24.103-75.209 38.549-120.366 38.549-57.155 0-108.904-23.143-146.389-60.568l0.003 0.003-84.139-83.627c-3.17-3.101-5.135-7.422-5.135-12.203s1.965-9.101 5.132-12.2l312.664-312.664c3.101-3.17 7.422-5.135 12.203-5.135s9.101 1.965 12.2 5.132l83.63 83.63c37.423 37.482 60.565 89.231 60.565 146.386 0 45.157-14.446 86.94-38.97 120.98l0.42-0.613 84.48 84.48c11.767 11.741 19.046 27.975 19.046 45.909s-7.28 34.168-19.045 45.908l-0.001 0.001z" />
<glyph unicode="&#x2f;" glyph-name="pencil" d="M0-34.987c-0.395-1.591-0.622-3.418-0.622-5.298 0-6.68 2.864-12.692 7.432-16.873 4.214-4.6 10.225-7.464 16.906-7.464 1.88 0 3.707 0.227 5.455 0.655l312.163 95.029 674.133 674.133c4.857 4.876 7.86 11.602 7.86 19.029s-3.003 14.153-7.861 19.030l-208.212 208.895c-4.849 4.847-11.546 7.845-18.944 7.845s-14.095-2.998-18.944-7.845l-674.304-674.816zM88.235 24.917l60.757 199.168 139.093-139.093z" />
<glyph unicode="&#x30;" glyph-name="unlock" d="M221.825 512v85.31c0 164.261 132.864 301.343 295.141 298.651 150.243-2.915 272.552-120.417 284.016-270.063 0.038-0.516 0.059-1.038 0.059-1.563 0-10.935-8.797-19.808-19.673-19.86h-125.449c-10.016 0.159-18.236 7.747-19.534 18.306-8.903 61.174-61.339 108.148-124.694 108.148-4.209 0-8.368-0.206-12.559-0.63-63.697-7.605-113.093-62.063-113.093-128.111 0-0.509 0.003-1.018 0.009-1.447v-88.741h445.952c35.346 0 64-28.654 64-64v-384c0-35.346-28.654-64-64-64h-640c-35.346 0-64 28.654-64 64v384c0 35.346 28.654 64 64 64h29.825z" />
<glyph unicode="&#x31;" glyph-name="popup" d="M64 960h896c35.346 0 64-28.654 64-64v-896c0-35.346-28.654-64-64-64h-896c-35.346 0-64 28.654-64 64v896c0 35.346 28.654 64 64 64zM256 704c-35.346 0-64-28.654-64-64v-384c0-35.346 28.654-64 64-64h512c35.346 0 64 28.654 64 64v384c0 35.346-28.654 64-64 64h-512zM704 640c35.346 0 64-28.654 64-64s-28.654-64-64-64c-35.346 0-64 28.654-64 64s28.654 64 64 64z" />
<glyph unicode="&#x32;" glyph-name="slide-in" d="M1024 704h-576c-35.346 0-64-28.654-64-64v-384c0-35.346 28.654-64 64-64h576v-192c0-35.346-28.654-64-64-64h-896c-35.346 0-64 28.654-64 64v896c0 35.346 28.654 64 64 64h896c35.346 0 64-28.654 64-64v-192zM896 640c35.346 0 64-28.654 64-64s-28.654-64-64-64c-35.346 0-64 28.654-64 64s28.654 64 64 64z" />
<glyph unicode="&#x33;" glyph-name="embed" d="M128 128h768c35.346 0 64-28.654 64-64v0c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v0c0 35.346 28.654 64 64 64zM128 640h768c35.346 0 64-28.654 64-64v-256c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v256c0 35.346 28.654 64 64 64zM832 576c-35.346 0-64-28.654-64-64s28.654-64 64-64c35.346 0 64 28.654 64 64s-28.654 64-64 64zM128 896h768c35.346 0 64-28.654 64-64v0c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v0c0 35.346 28.654 64 64 64z" />
<glyph unicode="&#x34;" glyph-name="copy" d="M736 64c0-70.692-57.308-128-128-128h-384c-70.692 0-128 57.308-128 128v576c0 70.692 57.308 128 128 128v-576c0-70.692 57.308-128 128-128h384zM416 960h192v-256c0-35.346 28.654-64 64-64h256v-384c0-70.692-57.308-128-128-128h-416c-53.019 0-96 42.981-96 96v608c0 70.692 57.308 128 128 128zM672 960l256-256h-224c-17.673 0-32 14.327-32 32v224z" />
<glyph unicode="&#x35;" glyph-name="link" d="M937.837 873.837c-53.702 53.791-127.937 87.068-209.944 87.068-76.601 0-146.422-29.035-199.058-76.699l0.252 0.225-150.034-150.034c-25.673-25.71-46.631-56.139-61.458-89.87-31.665-15.309-58.252-32.532-81.502-53.399l0.273 0.241-150.205-149.693c-52.709-53.514-85.256-127.017-85.256-208.121 0-163.835 132.815-296.651 296.651-296.651 81.104 0 154.606 32.547 208.158 85.293l149.997 149.998c20.623 22.976 37.846 49.563 50.526 78.588 36.363 17.467 66.791 38.424 92.506 64.102l149.86 150.202c47.293 52.346 76.23 122.061 76.23 198.535 0 81.887-33.179 156.025-86.826 209.703zM404.516 128.793v0c-27.092-27.092-64.52-43.849-105.861-43.849-82.683 0-149.711 67.027-149.711 149.711 0 41.341 16.757 78.769 43.849 105.861v0l109.365 109.365c27.541-103.91 107.782-184.094 209.666-211.089zM485.855 421.684c-24.798 24.767-40.912 58.225-43.38 95.415 74.752-4.514 134.187-63.89 139.22-138.191-37.617 2.019-71.081 18.136-95.838 42.944zM840.435 564.883l-118.763-118.763c-27.478 103.889-107.663 184.074-209.496 211.088l107.479 110 9.228 9.228c26.164 22.926 60.662 36.91 98.428 36.91 82.673 0 149.693-67.019 149.693-149.693 0-37.766-13.985-72.264-37.059-98.6z" />
<glyph unicode="&#x36;" glyph-name="unlink" horiz-adv-x="1025" d="M129.536 783.36l109.397-110.080c5.875-5.875 13.99-9.508 22.955-9.508 17.929 0 32.463 14.534 32.463 32.463 0 8.964-3.634 17.080-9.508 22.955l-108.885 109.568c-5.652 4.91-13.084 7.903-21.215 7.903-17.909 0-32.427-14.518-32.427-32.427 0-8.131 2.993-15.563 7.936-21.254zM318.635 826.88l39.765-150.357c3.88-13.945 16.466-24.008 31.403-24.008 17.972 0 32.541 14.569 32.541 32.541 0 3.036-0.416 5.974-1.193 8.762l-39.711 149.275c-3.878 13.899-16.427 23.926-31.317 23.926-17.927 0-32.459-14.532-32.459-32.459 0-3.036 0.417-5.975 1.196-8.762zM127.829 567.467v0l149.845-40.107c2.559-0.725 5.497-1.142 8.533-1.142 17.927 0 32.459 14.532 32.459 32.459 0 14.891-10.027 27.439-23.697 31.263l-149.562 40.332c-2.559 0.725-5.497 1.142-8.533 1.142-17.927 0-32.459-14.532-32.459-32.459 0-14.891 10.027-27.439 23.697-31.263zM895.147 112.64l-110.080 110.080c-5.875 5.875-13.99 9.508-22.955 9.508-17.929 0-32.463-14.534-32.463-32.463 0-8.964 3.634-17.080 9.508-22.955l109.568-109.568c5.771-5.373 13.536-8.671 22.072-8.671 17.909 0 32.427 14.518 32.427 32.427 0 8.493-3.265 16.224-8.609 22.005zM706.048 69.12l-40.448 150.357c-3.88 13.945-16.466 24.008-31.403 24.008-17.972 0-32.541-14.569-32.541-32.541 0-3.036 0.416-5.974 1.193-8.762l40.052-149.616c3.878-13.899 16.427-23.926 31.317-23.926 17.927 0 32.459 14.532 32.459 32.459 0 3.036-0.417 5.975-1.196 8.762zM896.853 328.533v0l-149.845 40.107c-2.559 0.725-5.497 1.142-8.533 1.142-17.927 0-32.459-14.532-32.459-32.459 0-14.891 10.027-27.439 23.697-31.263l150.074-40.161c2.559-0.725 5.497-1.142 8.533-1.142 17.927 0 32.459 14.532 32.459 32.459 0 14.891-10.027 27.439-23.697 31.263zM492.032 428.203c-40.919 40.905-97.441 66.205-159.872 66.205-58.335 0-111.51-22.088-151.619-58.358l0.196 0.174-114.347-114.347c-38.111-40.385-61.537-94.988-61.537-155.062 0-124.89 101.243-226.133 226.133-226.133 60.074 0 114.677 23.425 155.173 61.64l114.236 114.243c36.095 39.914 58.183 93.089 58.183 151.424 0 62.431-25.3 118.953-66.206 159.873zM417.963 192l-109.397-109.397c-20.662-20.514-49.128-33.193-80.555-33.193-63.151 0-114.345 51.194-114.345 114.345 0 31.724 12.919 60.43 33.783 81.145l109.404 109.404c19.827 17.113 45.846 27.537 74.3 27.537 62.963 0 114.005-51.042 114.005-114.005 0-28.453-10.424-54.472-27.661-74.446zM958.464 893.781c-40.919 40.905-97.441 66.205-159.872 66.205-58.335 0-111.51-22.088-151.619-58.358l0.196 0.174-114.347-114.347c-37.354-40.216-60.276-94.288-60.276-153.712 0-124.89 101.243-226.133 226.133-226.133 59.467 0 113.573 22.954 153.941 60.486l114.207 114.218c36.095 39.914 58.183 93.089 58.183 151.424 0 62.431-25.3 118.953-66.206 159.873zM884.224 658.091l-109.397-109.397c-19.918-17.349-46.131-27.926-74.814-27.926-63.058 0-114.176 51.118-114.176 114.176 0 29.023 10.829 55.518 28.668 75.662l-0.104-0.12 109.397 109.397c19.827 17.113 45.846 27.537 74.3 27.537 62.963 0 114.005-51.042 114.005-114.005 0-28.453-10.424-54.472-27.661-74.446z" />
<glyph unicode="&#x37;" glyph-name="list-number" d="M384 832h576c35.346 0 64-28.654 64-64s-28.654-64-64-64h-576c-35.346 0-64 28.654-64 64s28.654 64 64 64zM384 512h576c35.346 0 64-28.654 64-64s-28.654-64-64-64h-576c-35.346 0-64 28.654-64 64s28.654 64 64 64zM384 192h576c35.346 0 64-28.654 64-64s-28.654-64-64-64h-576c-35.346 0-64 28.654-64 64s28.654 64 64 64zM85.76 687.36v108.16c-4.8-2.24-9.92-3.52-15.040-3.52-18.56 0-32.32 13.44-32.32 32 0 21.44 14.4 30.4 16.64 29.44 6.4-4.16 12.48-6.4 20.16-6.4 13.76 0 25.28 8.64 28.8 23.36h16.64c18.24 0 28.16-9.92 28.16-29.76v-153.28c0-19.52-9.92-29.76-28.16-29.76h-8c-17.6 0-26.88 10.24-26.88 29.76zM25.6 369.6v12.16c0 36.16 35.52 56.64 63.36 69.12 24 11.2 42.56 16.64 42.56 29.44 0 13.12-8.64 19.84-26.56 19.84-21.44 0-34.24-16-37.44-32.32 0-0.64-41.28-2.24-41.28 28.48s29.76 54.080 82.88 54.080c54.72 0 84.48-24.96 84.48-66.88 0-39.68-27.2-52.48-56.64-63.36-24.96-9.6-43.52-16.64-51.2-30.4h79.36c22.080 0 30.080-8.32 30.080-23.36v-2.56c0-16-7.68-24.96-30.080-24.96h-101.12c-29.76 0-38.4 4.16-38.4 30.72zM22.4 62.72c0 32 37.12 31.36 37.76 29.12 5.44-19.52 21.76-29.44 44.8-29.44 20.16 0 32.32 8.32 32.32 21.44s-7.68 18.88-24.32 18.88h-6.4c-20.8 0-29.44 6.72-29.44 20.8v3.2c0 14.080 9.6 21.12 28.8 21.12h11.2c11.2 0 18.24 6.080 18.24 15.68 0 11.52-11.84 18.88-31.36 18.88-27.2 0-37.44-15.040-40.96-27.52-0.32-2.56-36.8-3.52-36.8 28.8 0 26.56 30.4 46.72 79.040 46.72 57.92 0 89.28-20.16 89.28-57.92 0-20.48-13.44-34.88-37.76-41.92 26.56-8.64 40.96-26.56 40.96-51.84 0-40.96-33.28-64.32-92.16-64.32-51.52 0-83.2 22.080-83.2 48.32z" />
<glyph unicode="&#x38;" glyph-name="list-bullet" d="M384 832h576c35.346 0 64-28.654 64-64s-28.654-64-64-64h-576c-35.346 0-64 28.654-64 64s28.654 64 64 64zM384 512h576c35.346 0 64-28.654 64-64s-28.654-64-64-64h-576c-35.346 0-64 28.654-64 64s28.654 64 64 64zM384 192h576c35.346 0 64-28.654 64-64s-28.654-64-64-64h-576c-35.346 0-64 28.654-64 64s28.654 64 64 64zM64 864h64c35.346 0 64-28.654 64-64v-64c0-35.346-28.654-64-64-64h-64c-35.346 0-64 28.654-64 64v64c0 35.346 28.654 64 64 64zM64 544h64c35.346 0 64-28.654 64-64v-64c0-35.346-28.654-64-64-64h-64c-35.346 0-64 28.654-64 64v64c0 35.346 28.654 64 64 64zM64 224h64c35.346 0 64-28.654 64-64v-64c0-35.346-28.654-64-64-64h-64c-35.346 0-64 28.654-64 64v64c0 35.346 28.654 64 64 64z" />
<glyph unicode="&#x39;" glyph-name="lock" d="M222.575 512l0.016 102.193c7.191 156.872 134.178 281.807 289.779 281.807s282.589-124.933 289.803-282.466v-101.534h29.827c35.346 0 64-28.654 64-64v-384c0-35.346-28.654-64-64-64h-640c-35.346 0-64 28.654-64 64v384c0 35.346 28.654 64 64 64h30.575zM386.045 512h251.758v101.532c0 70.902-56.355 128.377-125.878 128.377s-125.88-57.478-125.88-128.377v-101.532z" />
<glyph unicode="&#x3a;" glyph-name="arrow-skip-start" d="M794.729 99.707c-4.704-4.25-10.109-7.845-16-10.573l-0.397-0.165c-5.848-2.66-12.683-4.209-19.879-4.209s-14.031 1.549-20.188 4.334l0.309-0.125c-6.234 2.89-11.594 6.486-16.301 10.782l0.050-0.044-312.112 312.112c-4.671 4.572-8.409 10.079-10.913 16.22l-0.116 0.322c-2.207 5.658-3.485 12.207-3.485 19.054 0 0.187 0.001 0.376 0.003 0.562v-0.028c0 0.078-0.001 0.17-0.001 0.262 0 7.179 1.44 14.021 4.047 20.254l-0.129-0.346c2.401 6.771 6.010 12.577 10.613 17.434l-0.020-0.022 312.837 310.661c4.498 4.64 9.904 8.372 15.934 10.909l0.317 0.119c5.872 2.541 12.708 4.020 19.891 4.020 14.167 0 26.989-5.751 36.262-15.046l0.001-0.001 35.549-36.566c9.237-9.35 14.944-22.209 14.944-36.398 0-7.126-1.439-13.917-4.043-20.097l0.128 0.341c-2.696-6.333-6.42-11.732-11.019-16.244l-0.007-0.007-237.24-239.271 237.24-238.546c4.607-4.519 8.332-9.917 10.904-15.928l0.123-0.324c2.479-5.769 3.919-12.482 3.919-19.533 0-0.121-0.001-0.244-0.002-0.364v0.018c0-0.079 0.001-0.172 0.001-0.266 0-7.227-1.439-14.118-4.047-20.403l0.131 0.353c-2.552-6.29-6.299-11.62-10.995-15.931l-0.031-0.028-35.549-37.291zM294.13 99.707h-87.060c-16.027 0-29.019 12.992-29.019 29.019v0 638.444c0 16.027 12.992 29.019 29.019 29.019v0h87.060c16.027 0 29.019-12.992 29.019-29.019v0-638.444c0-16.027-12.992-29.019-29.019-29.019v0z" />
<glyph unicode="&#x3b;" glyph-name="code" d="M137.076 447.767c22.144-13.682 39.454-28.996 51.93-45.943s21.209-38.558 26.199-64.833c4.99-26.275 7.485-59.935 7.485-100.981 0-30.784 0.702-53.483 2.105-68.098s4.211-25.731 8.421-33.349c4.211-7.618 9.279-12.593 15.205-14.926s16.062-4.586 30.409-6.763c11.852-1.555 21.676-7.307 29.474-17.258s11.696-23.010 11.696-39.18c0-37.625-22.924-56.437-68.772-56.437-28.382 0-53.723 5.908-76.023 17.724s-39.532 28.529-51.696 50.141c-12.164 21.611-18.402 46.409-18.713 74.395-0.936 47.265-1.871 85.2-2.807 113.807s-2.339 47.109-4.211 55.504c-4.678 20.834-11.618 36.536-20.819 47.109s-21.209 20.445-36.023 29.618c-14.815 9.173-25.341 17.413-31.579 24.72s-9.357 18.89-9.357 34.749c0 23.010 9.045 40.268 27.135 51.773 22.456 13.993 38.44 25.886 47.953 35.681s16.218 22.388 20.117 37.78c3.899 15.392 6.16 32.183 6.784 50.374s1.559 61.956 2.807 131.298c0.936 42.911 14.581 77.193 40.936 102.846s61.52 38.48 105.497 38.48c45.848 0 68.772-18.501 68.772-55.504 0-16.791-3.821-30.007-11.462-39.646s-17.544-15.237-29.708-16.791c-18.090-2.488-30.721-6.219-37.895-11.194s-11.852-14.615-14.035-28.918c-2.183-14.304-3.587-41.978-4.211-83.023-0.624-40.113-3.041-72.995-7.251-98.649s-12.476-47.497-24.795-65.533c-12.32-18.035-30.175-34.36-53.567-48.974zM886.924 447.767c-22.144-13.682-39.454-28.996-51.93-45.943s-21.209-38.558-26.199-64.833c-4.99-26.275-7.485-59.935-7.485-100.981 0-30.784-0.702-53.483-2.105-68.098s-4.211-25.731-8.421-33.349c-4.211-7.618-9.279-12.593-15.205-14.926s-16.062-4.586-30.409-6.763c-11.852-1.555-21.676-7.307-29.474-17.258s-11.696-23.010-11.696-39.18c0-37.625 22.924-56.437 68.772-56.437 28.382 0 53.723 5.908 76.023 17.724s39.532 28.529 51.696 50.141c12.164 21.611 18.402 46.409 18.713 74.395 0.936 47.265 1.871 85.2 2.807 113.807s2.339 47.109 4.211 55.504c4.678 20.834 11.618 36.536 20.819 47.109s21.209 20.445 36.023 29.618c14.815 9.173 25.341 17.413 31.579 24.72s9.357 18.89 9.357 34.749c0 23.010-9.045 40.268-27.135 51.773-22.456 13.993-38.44 25.886-47.953 35.681s-16.218 22.388-20.117 37.78c-3.899 15.392-6.16 32.183-6.784 50.374s-1.559 61.956-2.807 131.298c-0.936 42.911-14.581 77.193-40.936 102.846s-61.52 38.48-105.497 38.48c-45.848 0-68.772-18.501-68.772-55.504 0-16.791 3.821-30.007 11.462-39.646s17.544-15.237 29.708-16.791c18.090-2.488 30.721-6.219 37.895-11.194s11.852-14.615 14.035-28.918c2.183-14.304 3.587-41.978 4.211-83.023 0.624-40.113 3.041-72.995 7.251-98.649s12.476-47.497 24.795-65.533c12.32-18.035 30.175-34.36 53.567-48.974z" />
<glyph unicode="&#x3c;" glyph-name="style-type" d="M600.183 22.811c0-0.042 0-0.092 0-0.143 0-15.931-7.276-30.162-18.685-39.552-11.343-10.55-26.453-17.019-43.073-17.137-0.026 0-0.030 0-0.033 0-11.14 0-21.521 3.244-30.253 8.839-9.496 6.164-17 15.152-21.316 25.776l-44.678 99.359h-283.307l-44.373-98.645c-4.412-10.932-11.786-19.9-21.129-26.154-8.647-5.591-18.965-8.837-30.041-8.837-0.251 0-0.501 0.002-0.75 0.005-16.766 0.139-32.034 6.598-43.532 17.111-11.636 9.226-19.065 23.426-19.065 39.361 0 0.006 0 0.013 0 0.019 0.497 9.522 2.9 18.373 6.832 26.334l225.616 474.401c5.839 13.038 15.402 23.536 27.33 30.381 11.701 6.853 25.389 10.801 39.998 10.801s28.297-3.948 40.055-10.835c11.808-6.995 21.526-17.206 27.932-29.427l225.816-475.714c3.869-7.822 6.285-16.984 6.652-26.671zM203.041 199.11h194.731l-96.939 217.429zM980.428 346.736q43.52-43.861 43.52-134.144v-188.928c0.067-1.036 0.105-2.247 0.105-3.466 0-15.424-6.089-29.425-15.995-39.732-10.73-9.683-25.041-15.619-40.738-15.619-1.273 0-2.536 0.039-3.789 0.116-0.367-0.026-1-0.037-1.635-0.037-16.095 0-30.664 6.534-41.2 17.094-10.549 10.354-17.086 24.76-17.086 40.694 0 0.514 0.007 1.026 0.020 1.537l-0.002 5.727c-7.996-20.951-22.288-37.999-40.536-49.25-18.994-11.008-41.281-17.361-65.052-17.361-1.28 0-2.555 0.018-3.826 0.055-0.297-0.009-0.87-0.012-1.443-0.012-26.924 0-52.375 6.304-74.959 17.516-20.968 10.24-38.97 26.053-51.962 45.498-12.607 18.963-19.936 41.675-19.936 66.099 0 0.451 0.003 0.902 0.007 1.353-0.104 1.659-0.163 3.679-0.163 5.713 0 24.818 8.756 47.591 23.347 65.398 19.243 18.899 44.285 32.287 72.24 37.242 38.061 7.624 80.858 11.917 124.658 11.917 5.548 0 11.080-0.069 16.595-0.206l20.858 0.016v15.019c0.19 1.951 0.299 4.218 0.299 6.51 0 16.996-5.972 32.597-15.932 44.819-11.911 9.935-27.533 16.048-44.582 16.048-2.294 0-4.563-0.111-6.8-0.327-37.555-3.095-72.498-12.15-104.744-26.231-7.318-4.335-18.437-7.661-30.26-8.382-0.641-0.028-1.133-0.038-1.627-0.038-11.135 0-21.095 5.030-27.732 12.942-6.891 8.683-11.027 19.729-11.027 31.74 0 0.861 0.021 1.718 0.063 2.569-0.029 0.454-0.044 1.126-0.044 1.802 0 9.556 2.815 18.454 7.661 25.911 6.169 8.019 14.031 14.681 23.056 19.429 21.018 11.107 44.941 19.783 70.137 24.97 26.728 6.037 55.41 9.331 84.859 9.347q90.294 0 133.814-43.861zM880.929 75.035c14.043 15.93 22.615 36.976 22.615 60.024 0 1.398-0.032 2.789-0.094 4.172l0.007 13.969h-14.165c-4.533 0.256-9.837 0.403-15.176 0.403-28.403 0-55.84-4.137-81.741-11.842-13.531-4.937-24.486-19.494-24.486-36.61 0-0.748 0.021-1.491 0.062-2.228-0.023-0.401-0.033-0.993-0.033-1.586 0-13.9 5.691-26.471 14.87-35.51 9.691-9.115 22.769-14.712 37.154-14.712 0.62 0 1.238 0.010 1.853 0.031 0.789-0.038 1.821-0.059 2.857-0.059 22.309 0 42.392 9.534 56.396 24.749zM571.852 565.36l19.797 53.589c19.302 51.135 58.945 90.778 108.798 109.654l55.042 19.882-53.589 19.797c-51.135 19.302-90.778 58.945-109.654 108.798l-20.394 55.554-19.797-53.76c-19.302-51.135-58.945-90.778-108.798-109.654l-55.042-20.735 53.589-19.797c51.122-19.322 90.758-58.958 109.653-108.798zM889.633 473.2l13.483 36.352c13.184 34.97 40.294 62.080 74.388 74.973l37.569 13.773-36.693 13.653c-34.97 13.184-62.080 40.294-74.973 74.388l-13.773 37.569-13.483-36.693c-13.221-35-40.396-62.12-74.557-74.974l-37.571-13.772 36.693-13.483c35-13.221 62.12-40.396 74.974-74.557z" />
<glyph unicode="&#x3d;" glyph-name="plus" d="M592 528h224c44.183 0 80-35.817 80-80s-35.817-80-80-80h-224v-224c0-44.183-35.817-80-80-80s-80 35.817-80 80v224h-224c-44.183 0-80 35.817-80 80s35.817 80 80 80h224v224c0 44.183 35.817 80 80 80s80-35.817 80-80v-224z" />
<glyph unicode="&#x3e;" glyph-name="phone" d="M96 644.091c0.383 6.356 0.719 12.715 1.158 19.067 2.407 34.835 9.752 68.393 22.669 100.482 10.283 25.546 23.75 49 40.315 70.389 11.371 14.684 24.127 27.819 37.886 39.915 11.775 10.351 23.209 21.152 34.745 31.815 7.805 7.214 16.098 13.568 25.71 17.741 16.771 7.281 32.938 5.537 48.531-3.861 15.58-9.389 27.495-23.14 38.498-37.917 14.867-19.967 26.85-42.028 39.684-63.47 9.421-15.74 18.561-31.656 26.011-48.611 7.548-17.177 13.557-34.88 15.397-53.95 2.536-26.278-3.773-49.817-20.485-69.211-9.59-11.13-20.792-20.641-31.103-31.069-10.013-10.126-21.434-18.212-32.501-26.842-13.34-10.402-23.591-23.417-27.874-41.004-3.58-14.703-2.625-29.374 0.561-43.979 4.338-19.88 12.228-38.199 21.467-55.904 16.31-31.257 36.336-59.679 57.602-87.145 20.172-26.052 41.282-51.184 64.197-74.492 19.154-19.485 39.281-37.668 62.295-51.801 13.611-8.358 27.832-14.956 43.525-17.296 20.317-3.030 38.018 3.112 53.341 17.542 3.092 2.911 6.23 5.854 8.874 9.211 11.704 14.855 25.651 27.129 39.36 39.64 7.778 7.098 15.694 14.267 24.381 19.919 21.681 14.106 44.907 15.397 68.798 7.237 19.479-6.653 36.955-17.52 52.816-31.050 19.334-16.493 38.017-33.873 56.871-51.008 13.325-12.112 25.947-25.026 36.91-39.689 9.418-12.596 17.396-26.049 20.847-42.074 0.578-2.685 1.014-5.405 1.515-8.109v-9.888c-0.282-1.5-0.581-2.997-0.845-4.501-2.861-16.304-11.322-29.058-22.392-39.964-10.796-10.635-22.351-20.414-32.79-31.428-23.2-24.478-49.419-44.015-79.015-58.372-29.561-14.341-60.527-22.693-92.863-25.201-5.43-0.421-10.862-0.81-16.293-1.214h-12.641c-1.228 0.156-2.453 0.36-3.685 0.46-8.106 0.661-16.235 1.068-24.315 1.989-29.335 3.343-57.659 11.278-85.211 22.44-43.679 17.696-83.615 42.727-121.293 72.116-32.133 25.064-62.033 52.964-90.438 82.743-33.21 34.815-64.16 71.844-93.455 110.497-28.62 37.762-55.164 77.111-78.554 118.856-27.723 49.479-50.598 101.29-64.649 157.281-6.417 25.57-10.826 51.513-12.438 77.972-0.368 6.048-0.749 12.095-1.123 18.143v13.596z" />
<glyph unicode="&#x3f;" glyph-name="question" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM552.789 170.667c-11.513-10.623-26.956-17.137-43.921-17.137-1.059 0-2.113 0.025-3.16 0.076-0.751-0.050-1.805-0.076-2.864-0.076-16.965 0-32.408 6.514-43.966 17.177-11.108 11.186-18 26.656-18 43.736s6.893 32.549 18.048 43.779c12.419 10.757 28.738 17.313 46.589 17.313s34.17-6.556 46.681-17.392c11.062-11.151 17.955-26.621 17.955-43.7s-6.893-32.549-18.048-43.779zM676.352 527.531c-14.593-25.881-32.311-48.004-53.036-66.882l-32.638-31.081c-18.585-17.435-31.085-41.162-34.087-67.765l-1.582-24.907h-102.4c-0.104 2.643-0.163 5.746-0.163 8.863 0 28.82 5.063 56.457 14.347 82.072 11.385 24.359 28.247 46.249 49.016 63.625 18.67 15.401 34.551 32.639 47.867 51.794 8.039 12.997 12.482 27.729 12.496 43.498q0 68.271-62.464 68.271c-0.543 0.017-1.181 0.026-1.822 0.026-17.84 0-33.952-7.398-45.435-19.293-11.575-12.699-18.652-29.637-18.652-48.228 0-0.751 0.012-1.5 0.035-2.246l-116.056 0.109c-0.089 1.957-0.14 4.251-0.14 6.558 0 44.597 19.006 84.754 49.36 112.815 32.988 27.163 75.53 43.576 121.907 43.576 3.801 0 7.575-0.11 11.321-0.328q84.816 0.024 131.067-40.936c28.949-26.748 47.016-64.908 47.016-107.288 0-3.024-0.092-6.026-0.273-9.004 0.020 0.268 0.021 0.101 0.021-0.066 0-23.235-5.614-45.158-15.561-64.488z" />
<glyph unicode="&#x40;" glyph-name="plus-circle" d="M576 512v128c0 35.346-28.654 64-64 64s-64-28.654-64-64v-128h-128c-35.346 0-64-28.654-64-64s28.654-64 64-64h128v-128c0-35.346 28.654-64 64-64s64 28.654 64 64v128h128c35.346 0 64 28.654 64 64s-28.654 64-64 64h-128zM512-64c-282.77 0-512 229.23-512 512s229.23 512 512 512c282.77 0 512-229.23 512-512s-229.23-512-512-512z" />
<glyph unicode="&#x41;" glyph-name="paperclip" d="M248.822-63.976c-51.495 1.136-97.52 23.616-129.751 58.91-61.91 61.751-69.59 121.313-65.321 160.396 7.914 52.328 33.104 97.701 69.471 131.097l392.695 392.679c109.568 109.568 182.443 69.462 216.235 35.84 40.789-40.789 68.267-111.275-36.693-215.381l-361.301-361.472-70.315 70.998 361.131 360.448c55.636 55.636 42.839 68.267 36.693 74.752s-19.797 19.797-75.435-35.84l-392.534-392.534c-20.474-18.438-35.098-43.015-40.978-70.817-3.054-26.463 8.893-52.063 36.37-79.711 34.133-34.133 59.904-30.549 68.267-29.355 30.677 7.419 56.812 23.685 76.316 45.914l465.551 465.744c32.165 29.338 56.871 66.31 71.298 108.071 14.547 53.038-2.178 100.313-50.648 148.782-51.2 51.2-133.291 104.448-257.536-19.968l-428.715-429.739c-9.043-9.107-21.57-14.742-35.413-14.742-27.56 0-49.901 22.344-49.901 49.901 0 13.716 5.534 26.14 14.491 35.16l429.224 429.736c133.291 132.779 278.528 140.117 398.678 19.797 93.184-93.184 93.184-183.979 76.627-243.712-19.472-60.91-53.065-112.682-97.048-153.387l-465.811-465.621c-34.177-37.539-79.859-64.066-131.449-74-8.080-1.219-15.674-1.778-23.4-1.778-0.281 0-0.562 0.001-0.843 0.002z" />
<glyph unicode="&#x42;" glyph-name="bold" d="M684.799 460.033c72.576 14.976 132.48 80.64 132.48 176.127 0 102.528-74.88 195.84-221.184 195.84h-368.767c-19.512 0-35.328-15.816-35.328-35.328v-697.344c0-19.511 15.816-35.328 35.328-35.328h381.439c147.456 0 223.233 92.16 223.233 208.384 0 95.616-63.999 175.616-147.201 187.649zM355.455 688h204.801c55.296 0 89.599-33.408 89.599-80.64 0-49.536-34.56-80.64-89.599-80.64h-204.801v161.28zM567.294 207.871h-211.839v175.104h211.968c63.36 0 97.92-39.168 97.92-87.552 0-55.296-36.864-87.552-97.92-87.552h-0.129z" />
<glyph unicode="&#x43;" glyph-name="crop" d="M993.343 183.651h-90.771v591.382c0 0.856 0 1.713 0 2.569 0 33.106-26.837 59.943-59.943 59.943h-592.581v88.202c0 18.918-15.336 34.253-34.253 34.253h-57.032c-18.918 0-34.253-15.336-34.253-34.253v0-88.373h-90.257c-18.918 0-34.253-15.336-34.253-34.253v-57.374c0-18.918 15.336-34.253 34.253-34.253h90.771v-590.697c0-0.856 0-1.713 0-2.569 0-33.106 26.837-59.943 59.943-59.943h592.581v-88.716c0-18.918 15.336-34.253 34.253-34.253h57.374c18.918 0 34.253 15.336 34.253 34.253v89.058h89.915c18.918 0 34.253 15.336 34.253 34.253v56.86c0 18.918-15.336 34.253-34.253 34.253zM249.535 183.993v528.527h528.013v-528.87h-527.5z" />
<glyph unicode="&#x44;" glyph-name="photo-picture" d="M128 831.909h768c70.692 0 128-57.308 128-128v-512c0-70.692-57.308-128-128-128h-768c-70.692 0-128 57.308-128 128v512c0 70.692 57.308 128 128 128zM864 192c17.673 0 32 14.327 32 32v448c0 17.673-14.327 32-32 32h-704c-17.673 0-32-14.327-32-32v-277.114c0-10.479 5.131-20.294 13.735-26.275 14.511-10.087 34.453-6.501 44.54 8.011l5.468 7.866c3.088 5.029 9.354 8.471 16.582 8.471s13.494-3.441 16.631-8.559l42.74-61.863 174.711 252.92c5.545 10.301 17.931 17.472 32.319 17.472 14.004 0 26.108-6.793 31.951-16.825l262.042-379.694c0.826-1.341 1.457-2.78 1.886-4.41h93.395zM736 640c53.019 0 96-42.981 96-96s-42.981-96-96-96c-53.019 0-96 42.981-96 96s42.981 96 96 96z" />
<glyph unicode="&#x45;" glyph-name="user-reputation-points" d="M957.76 551.040c-22.249-102.144-213.248-181.888-445.76-181.888-247.446 0-448 90.346-448 201.898v-123.051c0-111.552 200.555-201.898 448-201.898s448 90.347 448 201.898c-0.017 4.737-0.764 39.084-2.24 103.042zM512 123.051c-247.446 0-448 90.347-448 201.897v-123.051c0-111.552 200.555-201.897 448-201.897s448 90.347 448 201.897v123.051c0-111.552-200.555-201.897-448-201.897zM960 694.101c0-111.702-200.555-201.301-448-201.301s-448 89.6-448 201.301c0 111.701 200.555 201.899 448 201.899s448-90.347 448-201.899z" />
<glyph unicode="&#x46;" glyph-name="animation-video" d="M952.182 832l0.031-0.002c39.701-0.323 71.788-33.5 71.788-74.38 0 0 0 0 0-0.002v-619.234c0-0.002 0-0.003 0-0.003 0-40.88-32.087-74.058-71.818-74.38h-879.809c-39.971 0-72.373 33.303-72.373 74.383v619.234c0 41.082 32.403 74.383 72.373 74.383h879.809zM128 736c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM352 736c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM576 736c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM800 736c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM128 288c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM352 288c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM576 288c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM800 288c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96z" />
<glyph unicode="&#x47;" glyph-name="thumbnails" d="M239.765 896h-144.405c-17.32 0-31.36-14.040-31.36-31.36v-144.405c0-17.32 14.040-31.36 31.36-31.36h144.405c17.32 0 31.36 14.040 31.36 31.36v144.405c0 17.32-14.040 31.36-31.36 31.36zM584.128 896h-144.256c-17.32 0-31.36-14.040-31.36-31.36v-144.405c0-17.32 14.040-31.36 31.36-31.36h144.405c17.32 0 31.36 14.040 31.36 31.36v144.405c0 0 0 0 0 0 0 17.32-14.040 31.36-31.36 31.36-0.052 0-0.105 0-0.158 0zM960 864.64c0 17.32-14.040 31.36-31.36 31.36h-144.405c-17.32 0-31.36-14.040-31.36-31.36v0-144.256c0-17.32 14.040-31.36 31.36-31.36h144.405c17.32 0 31.36 14.040 31.36 31.36v144.256zM239.765 551.488h-144.405c-17.32 0-31.36-14.040-31.36-31.36v-144.405c0-17.32 14.040-31.36 31.36-31.36h144.405c17.32 0 31.36 14.040 31.36 31.36v144.405c0 17.32-14.040 31.36-31.36 31.36zM584.128 551.488h-144.256c-17.32 0-31.36-14.040-31.36-31.36v-144.405c0-17.32 14.040-31.36 31.36-31.36h144.405c17.32 0 31.36 14.040 31.36 31.36v144.405c0 17.32-14.040 31.36-31.36 31.36zM928.64 551.488h-144.405c-17.32 0-31.36-14.040-31.36-31.36v0-144.256c0-17.32 14.040-31.36 31.36-31.36h144.405c17.32 0 31.36 14.040 31.36 31.36v144.256c0 17.32-14.040 31.36-31.36 31.36zM239.765 206.976h-144.405c-17.32 0-31.36-14.040-31.36-31.36v-144.256c0-17.32 14.040-31.36 31.36-31.36h144.405c17.32 0 31.36 14.040 31.36 31.36v144.256c0 17.32-14.040 31.36-31.36 31.36zM584.128 206.976h-144.256c-17.32 0-31.36-14.040-31.36-31.36v-144.256c0-17.32 14.040-31.36 31.36-31.36h144.405c17.32 0 31.36 14.040 31.36 31.36v144.256c0 17.32-14.040 31.36-31.36 31.36zM928.64 206.976h-144.405c-17.32 0-31.36-14.040-31.36-31.36v-144.256c0-17.32 14.040-31.36 31.36-31.36h144.405c17.32 0 31.36 14.040 31.36 31.36v144.256c0 17.32-14.040 31.36-31.36 31.36z" />
<glyph unicode="&#x48;" glyph-name="refresh" d="M716.894 672.58c-1.28 1.166-2.571 2.322-3.872 3.467-69.009 60.732-161.584 87.586-253.821 71.323-165.344-29.155-275.747-186.827-246.593-352.171s186.827-275.747 352.171-246.593c77.947 13.744 145.751 56.436 191.797 118.844 26.232 35.553 76.318 43.109 111.871 16.877s43.109-76.318 16.877-111.871c-70.189-95.128-173.971-160.472-292.762-181.418-252.367-44.499-493.024 124.011-537.524 376.378s124.011 493.024 376.378 537.524c140.63 24.797 282.185-16.266 387.309-108.781 5.96-5.245 11.78-10.637 17.455-16.171l48.279 43.47c11.75 10.579 26.999 16.435 42.81 16.439 35.346 0.008 64.006-28.639 64.014-63.986l0.048-215.702c0-2.244-0.117-4.487-0.352-6.718-3.703-35.152-35.2-60.646-70.352-56.944l-214.515 22.595c-15.724 1.656-30.278 9.074-40.857 20.824-23.651 26.267-21.53 66.734 4.737 90.386l46.901 42.23z" />
<glyph unicode="&#x49;" glyph-name="info" d="M512 960c70.667 0 137-13.333 199-40 62.667-26.667 117.166-63.166 163.5-109.5s82.833-100.833 109.5-163.5c26.667-62 40-128.333 40-199s-13.333-137-40-199c-26.667-62.667-63.166-117.166-109.5-163.5s-100.833-82.833-163.5-109.5c-62-26.667-128.333-40-199-40s-137 13.333-199 40c-62.667 26.667-117.166 63.166-163.5 109.5s-82.833 100.833-109.5 163.5c-26.667 62-40 128.333-40 199s13.333 137 40 199c26.667 62.667 63.166 117.166 109.5 163.5s100.833 82.833 163.5 109.5c62 26.667 128.333 40 199 40zM512 512c-35.346 0-64-28.654-64-64v-192c0-35.346 28.654-64 64-64s64 28.654 64 64v192c0 35.346-28.654 64-64 64zM512 576c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64s28.654-64 64-64z" />
<glyph unicode="&#x4a;" glyph-name="home" d="M936.881 602.057l-412.161 319.201c-5.37 4.22-12.228 6.767-19.68 6.767s-14.31-2.547-19.748-6.819l-398.972-319.469c-7.236-5.902-11.824-14.814-11.84-24.797v-576.965c0-17.673 14.327-32 32-32h236.959c17.673 0 32 14.327 32 32v353.281h273.121v-353.281c0-17.673 14.327-32 32-32h236.959c17.673 0 32 14.327 32 32v576.962c-0.037 10.179-4.821 19.232-12.251 25.068z" />
<glyph unicode="&#x4b;" glyph-name="heart" d="M984.615 578.511c0 2.507 0 5.162 0 7.67s0 5.604 0 8.554c0 2.95 0 9.586 0 14.748 0 2.065 0 3.981 0 5.899 0 6.047-0.759 12.093-1.519 18.139 0 0.885 0 1.771 0 2.507-6.367 48.931-29.099 91.815-62.608 124.154-46.486 44.413-110.252 71.819-180.597 71.819s-134.113-27.408-180.624-71.843c-35.29-35.503-39.688-47.3-46.966-47.3s-11.978 11.354-47.458 46.452c-45.645 44.199-108.596 71.522-178.109 71.522-0.231 0-0.463 0-0.693-0.002-0.924 0.014-2.059 0.019-3.195 0.019-69.737 0-132.896-27.384-178.73-71.7-33.584-32.102-56.491-74.702-63.092-122.331-0.125-1.975-0.125-2.859-0.125-3.596 0-6.047-1.212-11.945-1.519-18.139 0-1.966 0-3.932 0-5.899 0-4.72 0-9.586 0-14.748s0-5.604 0-8.407c0-2.803 0-5.309 0-7.817 7.231-60.554 28.069-115.236 59.461-162.689l-0.933 1.507c2.121-3.244 3.639-6.636 5.913-9.88 85.517-129.476 333.726-343.153 408.175-343.153 74.599 0 322.657 214.27 408.477 343.745 2.123 3.244 3.792 6.636 5.913 9.88 30.401 46.27 51.058 101.344 57.763 160.506l0.461 0.382z" />
<glyph unicode="&#x4c;" glyph-name="lightbulb" d="M858.453 613.355c0 0.114 0 0.249 0 0.384 0 191.341-155.112 346.453-346.453 346.453s-346.453-155.112-346.453-346.453c0-103.281 45.193-196.007 116.883-259.48 16.89-14.701 27.326-35.713 27.501-59.166v-44.063c0-0.051 0-0.111 0-0.171 0-23.187 18.797-41.984 41.984-41.984 0 0 0 0 0 0h320.171c23.187 0 41.984 18.797 41.984 41.984v44.203c0.203 23.426 10.635 44.375 27.040 58.628 72.14 63.639 117.344 156.172 117.344 259.263 0 0.142 0 0.283 0 0.425zM695.978 74.389h-367.957c-9.991 0-18.091 8.099-18.091 18.091v39.424c0 9.991 8.099 18.091 18.091 18.091h367.957c9.991 0 18.091-8.099 18.091-18.091v-39.424c0-9.991-8.099-18.091-18.091-18.091zM631.125-64.192h-238.933c-9.991 0-18.091 8.099-18.091 18.091v39.253c0 9.991 8.099 18.091 18.091 18.091h238.933c9.991 0 18.091-8.099 18.091-18.091v-39.424c-0.097-9.918-8.159-17.92-18.090-17.92 0 0-0.001 0-0.001 0z" />
<glyph unicode="&#x4d;" glyph-name="help-support" d="M989.867 631.637c-7.098 18.287-24.554 31.016-44.983 31.016-6.033 0-11.807-1.11-17.128-3.137l-14.006-5.18c-44.074 84.36-111.225 151.511-193.089 194.394l2.796 15.526c1.895 4.965 2.992 10.707 2.992 16.706 0 20.352-12.633 37.754-30.485 44.791-54.809 21.677-117.927 34.179-183.964 34.179s-129.155-12.502-187.114-35.269c-14.81-5.894-27.539-23.351-27.539-43.78 0-6.033 1.11-11.807 3.137-17.128l5.18-14.006c-84.36-44.074-151.511-111.225-194.394-193.089l-15.526 2.796c-4.965 1.895-10.707 2.992-16.706 2.992-20.352 0-37.754-12.633-44.791-30.485-21.677-54.809-34.179-117.927-34.179-183.964s12.502-129.155 35.269-187.114c5.894-14.81 23.351-27.539 43.78-27.539 6.033 0 11.807 1.11 17.128 3.137l14.006 5.18c44.083-84.353 111.231-151.501 193.089-194.393l-2.795-15.527c-1.895-4.965-2.992-10.707-2.992-16.706 0-20.352 12.633-37.754 30.485-44.791 54.785-21.656 117.873-34.146 183.878-34.146s129.093 12.49 187.029 35.235c14.81 5.895 27.539 23.351 27.539 43.781 0 6.033-1.11 11.807-3.137 17.128l-5.18 14.006c84.422 44.057 151.629 111.21 194.564 193.091l15.527-2.797c4.965-1.895 10.707-2.992 16.706-2.992 20.352 0 37.754 12.633 44.791 30.485 21.656 54.785 34.146 117.873 34.146 183.878s-12.49 129.093-35.235 187.029zM305.152 365.397l-226.133-83.627c-19.522 49.344-30.84 106.508-30.84 166.315s11.318 116.97 31.93 169.465l10.174-7.246 214.869-79.531c-10.091-24.452-15.95-52.843-15.95-82.603s5.859-58.15 16.487-84.082zM512 911.872c0.020 0 0.044 0 0.068 0 59.758 0 116.869-11.337 169.297-31.979l-7.232-10.176-79.531-214.869c-24.452 10.091-52.843 15.95-82.603 15.95s-58.15-5.859-84.082-16.487l-82.147 226.67c49.292 19.553 106.403 30.891 166.161 30.891 0.024 0 0.048 0 0.072 0zM512-15.701c-0.020 0-0.044 0-0.068 0-59.758 0-116.869 11.337-169.297 31.979l86.763 225.045c24.452-10.091 52.843-15.95 82.603-15.95s58.15 5.859 84.082 16.487l82.147-226.67c-49.301-19.615-106.427-31.011-166.209-31.061zM674.133 513.195c7.926-19.144 12.529-41.376 12.529-64.683s-4.603-45.539-12.949-65.836c-1.787-4.171-3.069-10.354-3.069-16.837 0-20.603 12.946-38.182 31.147-45.047l5.793-2.158c-17.663-26.282-39.596-48.214-65.032-65.341l-2.893 4.925c-6.974 18.532-24.553 31.478-45.156 31.478-6.483 0-12.666-1.282-18.311-3.606-18.824-7.81-41.056-12.413-64.362-12.413s-45.539 4.603-65.836 12.949c-4.13 1.75-10.262 3.009-16.689 3.009-20.58 0-38.144-12.918-45.024-31.088l-2.158-5.792c-26.211 17.68-48.086 39.609-65.169 65.027l4.923 2.898c18.532 6.974 31.478 24.553 31.478 45.156 0 6.483-1.282 12.666-3.606 18.311-7.81 18.824-12.413 41.056-12.413 64.362s4.603 45.539 12.949 65.836c1.75 4.13 3.009 10.262 3.009 16.689 0 20.58-12.918 38.144-31.088 45.024l-5.792 2.158c17.637 26.198 39.509 48.070 64.864 65.171l2.891-4.926c6.974-18.532 24.553-31.478 45.156-31.478 6.483 0 12.666 1.282 18.311 3.606 18.823 7.818 41.054 12.426 64.362 12.426s45.54-4.608 65.834-12.962c4.173-1.787 10.356-3.069 16.839-3.069 20.603 0 38.182 12.946 45.047 31.147l2.158 5.793c26.269-17.621 48.198-39.496 65.343-64.868l-4.927-2.886c-18.501-6.99-31.419-24.554-31.419-45.134 0-6.426 1.26-12.559 3.545-18.163zM944.981 281.771l-11.264 4.096-214.869 79.531c10.091 24.452 15.95 52.843 15.95 82.603s-5.859 58.15-16.487 84.082l226.67 82.147c19.522-49.344 30.84-106.508 30.84-166.315s-11.318-116.97-31.93-169.465z" />
<glyph unicode="&#x4e;" glyph-name="loader" d="M512 960c-34.404 0-62.293-27.89-62.293-62.293v-151.723c0-34.404 27.89-62.293 62.293-62.293s62.293 27.89 62.293 62.293v151.723c0 34.404-27.89 62.293-62.293 62.293zM512 212.309c-34.404 0-62.293-27.89-62.293-62.293v-151.723c0-34.404 27.89-62.293 62.293-62.293s62.293 27.89 62.293 62.293v151.723c0 34.404-27.89 62.293-62.293 62.293zM722.603 596.309c0.033 0 0.071 0 0.11 0 17.165 0 32.7 6.981 43.92 18.259l107.352 107.352c11.99 11.377 19.45 27.428 19.45 45.221 0 34.404-27.89 62.293-62.293 62.293-17.793 0-33.843-7.46-45.195-19.422l-107.375-107.377c-11.263-11.271-18.229-26.838-18.229-44.032 0-34.392 27.871-62.275 62.26-62.293zM301.397 299.691c-0.033 0-0.071 0-0.11 0-17.165 0-32.7-6.981-43.92-18.259l-107.352-107.352c-11.99-11.377-19.45-27.428-19.45-45.221 0-34.404 27.89-62.293 62.293-62.293 17.793 0 33.843 7.46 45.195 19.422l107.375 107.377c11.263 11.271 18.229 26.838 18.229 44.032 0 34.392-27.871 62.275-62.26 62.293zM961.707 510.293h-151.723c-34.404 0-62.293-27.89-62.293-62.293s27.89-62.293 62.293-62.293h151.723c34.404 0 62.293 27.89 62.293 62.293s-27.89 62.293-62.293 62.293zM276.309 448c0 34.404-27.89 62.293-62.293 62.293h-151.723c-34.404 0-62.293-27.89-62.293-62.293s27.89-62.293 62.293-62.293h151.723c34.404 0 62.293 27.89 62.293 62.293zM766.635 281.429c-11.377 11.99-27.428 19.45-45.221 19.45-34.404 0-62.293-27.89-62.293-62.293 0-17.793 7.46-33.843 19.422-45.195l107.377-107.375c11.377-11.99 27.428-19.45 45.221-19.45 34.404 0 62.293 27.89 62.293 62.293 0 17.793-7.46 33.843-19.422 45.195zM238.080 809.984c-11.14 10.571-26.233 17.073-42.843 17.073-34.404 0-62.293-27.89-62.293-62.293 0-16.611 6.502-31.703 17.099-42.871l107.323-107.322c11.377-11.99 27.428-19.45 45.221-19.45 34.404 0 62.293 27.89 62.293 62.293 0 17.793-7.46 33.843-19.422 45.195z" />
<glyph unicode="&#x4f;" glyph-name="plugin-2" d="M757.93 655.274l2.731 274.603c0.001 0.101 0.002 0.221 0.002 0.341 0 16.212-13.143 29.355-29.355 29.355-0.001 0-0.001 0-0.002 0h-87.040c-16.055-0.093-29.068-12.987-29.354-28.986l-2.731-275.312h-200.021l2.731 274.432c0.003 0.152 0.004 0.332 0.004 0.512 0 16.154-13.048 29.26-29.179 29.354h-87.049c-0.001 0-0.003 0-0.004 0-16.126 0-29.233-12.929-29.521-28.986l-2.731-275.312h-76.971v-168.96c0.699-144.669 96.73-266.722 228.462-306.607l5.010-214.268c0.049-8.233 3.581-15.631 9.196-20.803 5.313-5.089 12.508-8.21 20.432-8.21 0.024 0 0.048 0 0.072 0h-0.004c29.355 0 45.568 0.853 61.781 1.536s31.573 1.365 59.904 1.536c0.001 0 0.001 0 0.002 0 16.281 0 29.501 13.101 29.694 29.336v209.597c133.939 40.538 229.895 162.573 230.57 307.121v169.039z" />
<glyph unicode="&#x50;" glyph-name="forminator" d="M974.681 663.513l-436.224-436.565c-8.921-8.874-23.335-8.874-32.256 0l-53.931 53.931c-8.874 8.921-8.874 23.335 0 32.256l456.192 456.704c-169.457 210.118-473.148 252.116-693.27 95.875s-280.681-456.782-138.245-686.078c142.436-229.297 438.693-308.188 676.3-180.093s334.532 418.951 221.263 663.971zM137.39 349.145c-2.2 0.028-4.384 0.373-6.485 1.024-8.051 2.298-14.164 8.87-15.872 17.067-5.656 26.825-8.516 54.164-8.533 81.579 0.282 221.575 179.833 401.126 401.408 401.408h31.744l-93.184-94.208c-2.908-2.93-6.57-4.997-10.581-5.973v0c-139.542-32.965-237.89-157.845-237.227-301.227 0.064-11.412 0.805-22.809 2.219-34.133 0.836-6.922-1.555-13.844-6.485-18.773l-40.789-40.107c-4.306-4.284-10.139-6.678-16.213-6.656zM389.933 210.99c-1.369-5.636-5.557-10.165-11.074-11.977v0l-158.358-51.594c-1.772-0.292-3.58-0.292-5.352 0-5.398 0.015-10.46 2.62-13.605 7s-3.988 10.003-2.268 15.111l51.679 158.099c1.813 5.55 6.386 9.759 12.073 11.113s11.671-0.343 15.796-4.479l106.679-106.505c4.117-4.089 5.797-10.028 4.43-15.662zM348.676 395.225c-6.078-0.041-11.918 2.356-16.213 6.656l-53.931 53.931c-8.874 8.921-8.874 23.335 0 32.256l353.621 353.28c8.921 8.874 23.335 8.874 32.256 0v0l53.931-53.931c8.874-8.921 8.874-23.335 0-32.256l-353.451-354.304c-4.306-4.284-10.139-6.678-16.213-6.656zM507.908 47.406c-32.029 0.020-63.941 3.859-95.061 11.435-8.103 1.919-14.522 8.091-16.758 16.113s0.065 16.624 6.006 22.458l39.424 39.595c5.183 5.078 12.455 7.418 19.627 6.315 15.41-2.455 30.988-3.71 46.592-3.755 150.162-0.036 278.547 108.033 304.128 256 0.731 4.582 2.879 8.82 6.144 12.117l88.405 88.405 1.365-19.115c0-9.045 1.365-18.091 1.365-27.136 0.283-221.908-179.33-402.055-401.237-402.432z" />
<glyph unicode="&#x51;" glyph-name="trash" d="M864 704l-59.11-709.315c-2.764-33.171-30.493-58.685-63.779-58.685h-458.223c-33.286 0-61.015 25.514-63.779 58.685l-59.11 709.315h-32c-35.346 0-64 28.654-64 64s28.654 64 64 64h768c35.346 0 64-28.654 64-64s-28.654-64-64-64h-32zM352 960h320c17.673 0 32-14.327 32-32v-64h-384v64c0 17.673 14.327 32 32 32zM319.883 575.376c-26.445-1.849-46.384-24.786-44.535-51.231l29.019-414.987c1.849-26.445 24.786-46.384 51.231-44.535s46.384 24.786 44.535 51.231l-29.019 414.987c-1.849 26.445-24.786 46.384-51.231 44.535zM512 576c-26.51 0-48-21.49-48-48v-416c0-26.51 21.49-48 48-48s48 21.49 48 48v416c0 26.51-21.49 48-48 48zM707.598 575.376c-26.445 1.849-49.382-18.090-51.231-44.535l-29.019-414.987c-1.849-26.445 18.090-49.382 44.535-51.231s49.382 18.090 51.231 44.535l29.019 414.987c1.849 26.445-18.090 49.382-44.535 51.231z" />
<glyph unicode="&#x52;" glyph-name="plug-connected" d="M354.645 573.269c-2.821 2.878-6.749 4.661-11.093 4.661s-8.272-1.784-11.091-4.659l-0.002-0.003-119.467-119.467c-33.906-33.962-54.873-80.85-54.873-132.635 0-40.902 13.080-78.749 35.286-109.586l-0.381 0.556-175.957-175.787c-10.657-10.657-17.249-25.38-17.249-41.643 0-32.525 26.367-58.892 58.892-58.892 16.262 0 30.985 6.592 41.643 17.249v0l175.787 176.128c30.28-21.825 68.127-34.905 109.029-34.905 51.785 0 98.673 20.967 132.637 54.876l119.465 119.465c2.836 2.84 4.59 6.762 4.59 11.093s-1.754 8.253-4.59 11.094v0zM1006.933 942.933c-10.629 10.65-25.324 17.239-41.557 17.239s-30.929-6.589-41.556-17.238l-176.129-175.958c-30.26 21.781-68.071 34.834-108.93 34.834-51.75 0-98.609-20.939-132.568-54.806l-119.463-119.463c-2.836-2.84-4.59-6.762-4.59-11.093s1.754-8.253 4.59-11.094v0l282.624-282.624c2.821-2.878 6.749-4.661 11.093-4.661s8.272 1.784 11.091 4.659l0.002 0.003 119.467 119.467c33.906 33.962 54.873 80.85 54.873 132.635 0 40.902-13.080 78.749-35.286 109.586l0.381-0.556 175.957 175.787c10.701 10.637 17.325 25.366 17.325 41.643s-6.623 31.006-17.322 41.64l-0.003 0.003z" />
<glyph unicode="&#x53;" glyph-name="star" d="M1022.693 572.936c-3.255 9.924-12.398 16.98-23.2 17.067h-346.293l-117.931 333.312c-3.443 9.687-12.531 16.499-23.211 16.499s-19.767-6.811-23.157-16.327l-117.984-334.166h-346.283c-13.554-0.025-24.532-11.018-24.532-24.576 0-7.796 3.63-14.744 9.292-19.247l270.386-214.055-121.003-342.357c-0.92-2.477-1.453-5.339-1.453-8.325 0-13.573 11.003-24.576 24.576-24.576 4.699 0 9.091 1.319 12.824 3.607l317.333 190.403 317.44-190.293c3.626-2.227 8.017-3.546 12.717-3.546 13.573 0 24.576 11.003 24.576 24.576 0 2.986-0.533 5.848-1.508 8.495l-120.948 342.016 270.336 214.016c5.646 4.542 9.228 11.45 9.228 19.194 0 2.907-0.505 5.696-1.431 8.284z" />
<glyph unicode="&#x54;" glyph-name="shipper-anchor" d="M999.595 431.957l-231.595-90.624 75.264-57.856c-40.448-87.723-120.32-185.856-277.163-204.8v405.845h87.552c32.896 0 59.563 26.667 59.563 59.563v0 37.717c0 6.881-5.578 12.459-12.459 12.459h-133.973v83.968c54.046 22.297 91.392 74.577 91.392 135.579 0 80.778-65.483 146.261-146.261 146.261s-146.261-65.483-146.261-146.261c0-61.002 37.345-113.282 90.421-135.224l0.971-0.356v-83.968h-133.803c-6.881 0-12.459-5.578-12.459-12.459v0-37.717c0-32.896 26.667-59.563 59.563-59.563v0h86.869v-405.504c-125.867 11.186-230.756 90.764-278.041 200.922l-0.829 2.171 77.653 59.221-231.595 90.624 9.728-260.437 61.44 47.104c69.568-136.502 204.284-231.011 362.051-242.771l1.469-0.088c1.783-5.006 4.522-9.283 8.023-12.801l-0.001 0.001 19.797-17.067c6.359-6.346 15.137-10.269 24.832-10.269s18.473 3.924 24.833 10.27l-0.001-0.001 19.797 17.067c3.472 3.534 6.205 7.805 7.943 12.556l0.078 0.244c159.506 11.114 294.419 106.399 361.525 241.346l1.142 2.537 62.805-48.128zM512 868.523c30.256 0 54.784-24.528 54.784-54.784s-24.528-54.784-54.784-54.784c-30.256 0-54.784 24.528-54.784 54.784v0c0 30.256 24.528 54.784 54.784 54.784v0z" />
<glyph unicode="&#x55;" glyph-name="performance" d="M417.792 403.456c1.004 1.77 1.595 3.888 1.595 6.144 0 6.975-5.654 12.629-12.629 12.629-0.021 0-0.042 0-0.063 0h-143.698c-2.535 0.013-4.584 2.071-4.584 4.608 0 1.352 0.582 2.567 1.509 3.41l0.004 0.003 508.075 460.629c-72.482 41.722-159.387 66.332-252.040 66.332-282.77 0-512-229.23-512-512 0-168.707 81.597-318.357 207.479-411.636l1.383-0.979zM789.675 878.080l-186.88-329.045c-0.991-1.775-1.574-3.894-1.574-6.15 0-7.069 5.731-12.8 12.8-12.8 0.133 0 0.266 0.002 0.399 0.006h143.341c2.531-0.018 4.577-2.074 4.577-4.608 0-1.265-0.51-2.41-1.334-3.243v0l-527.36-503.808c80.343-54.904 179.602-87.673 286.514-87.673 282.77 0 512 229.23 512 512 0 182.975-95.982 343.532-240.344 434.070l-2.138 1.251z" />
<glyph unicode="&#x56;" glyph-name="stopwatch" d="M1004.63 797.657l-99.726 100.512c-12.377 14.769-30.829 24.092-51.462 24.092-37.008 0-67.008-30-67.008-67.008 0-20.631 9.324-39.085 23.988-51.378l99.83-100.755c12.106-12.011 28.781-19.434 47.189-19.434s35.083 7.422 47.194 19.439c11.97 12.12 19.366 28.788 19.366 47.184s-7.396 35.066-19.377 47.196zM116.059 898.171l-100.512-99.726c-9.673-11.536-15.546-26.539-15.546-42.916 0-37.008 30-67.008 67.008-67.008 16.375 0 31.38 5.875 43.020 15.632l100.567 99.799c14.769 12.377 24.092 30.829 24.092 51.462 0 37.008-30 67.008-67.008 67.008-20.631 0-39.085-9.324-51.378-23.988zM507.886 697.775c0.094 0 0.204 0 0.316 0 165.059 0 298.863-133.806 298.863-298.863s-133.806-298.863-298.863-298.863c-165.059 0-298.863 133.806-298.863 298.863 0 82.645 33.546 157.456 87.765 211.558 53.635 53.931 127.883 87.306 209.925 87.306 0.302 0 0.602 0 0.904-0.001zM507.886 825.498c-235.095-0.207-425.595-190.836-425.595-425.96 0-235.251 190.709-425.96 425.96-425.96s425.96 190.709 425.96 425.96c0 117.871-47.878 224.562-125.246 301.684-76.901 77.071-183.215 124.748-300.664 124.748-0.145 0-0.289 0-0.436 0zM633.566 430.369v2.674c-1.409 5.069-2.804 9.151-4.394 13.131 0.304 0.867-0.64 2.599-1.427 4.171v0c-13.481 30.382-37.255 54.158-66.805 67.307l-0.834 0.332h-1.574v125.837h-99.254v-125.837h-0.943c-16.521-6.724-30.636-16.144-42.483-27.853-23.224-23.43-37.582-55.705-37.582-91.334 0-0.126 0-0.253 0.001-0.378v0.020s0 0 0-0.786c0.037-6.525 0.55-12.899 1.506-19.125l-0.092 0.721c1.638-11.347 4.497-21.575 8.493-31.212l-31.773-30.607-12.899-12.899 68.896-68.896 44.358 44.358 2.202-1.102h1.102c13.995-5.58 30.214-8.814 47.189-8.814s33.193 3.237 48.073 9.124l1.631-0.308c47.547 20.067 80.376 66.17 80.693 119.976-0.062 11.245-1.549 22.076-4.292 32.396zM542.335 365.563c-8.852-8.843-21.075-14.314-34.578-14.314-27.018 0-48.918 21.903-48.918 48.918s21.903 48.918 48.918 48.918c13.501 0 25.726-5.47 34.578-14.314 8.899-8.836 14.407-21.077 14.407-34.605s-5.508-25.769-14.404-34.603z" />
<glyph unicode="&#x57;" glyph-name="web-globe-world" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM925.696 495.275h-125.611c-9.899 146.603-64.853 273.067-143.019 343.040 144.888-55.283 249.655-184.947 268.267-341.061zM460.8 789.333v-293.547h-141.141c11.093 146.773 73.045 256 140.629 293.547zM460.288 400.213v-293.547c-68.267 37.888-129.195 146.261-140.629 292.523zM555.861 103.595v296.107h148.309c-11.776-151.723-77.824-262.827-148.309-296.619zM555.861 495.616v297.131c70.656-34.133 136.533-145.237 148.309-297.472zM366.763 838.315c-78.165-70.656-133.12-196.267-143.019-343.040h-125.44c18.804 158.093 123.57 287.757 265.597 342.078zM98.475 399.701h125.44c10.069-146.261 64.853-271.531 142.848-341.333-144.368 55.070-248.893 183.969-268.084 339.305zM657.237 58.368c77.995 70.485 132.949 195.755 142.848 341.333h125.44c-19.395-157.364-123.919-286.263-265.426-340.372z" />
<glyph unicode="&#x58;" glyph-name="download" d="M930.718 452.783h-212.388c-0.006 0-0.012 0-0.019 0-26.382 0-48.763-17.131-56.625-40.877-21.036-64.253-80.072-109.543-149.686-109.543s-128.649 45.29-149.248 108.012c-8.298 25.277-30.679 42.408-57.061 42.408-0.007 0-0.013 0-0.021 0h-212.387c0 0 0 0 0 0-32.935 0-59.634-26.699-59.634-59.634 0-0.056 0-0.112 0-0.168v-340.258c0-32.935 26.699-59.634 59.634-59.634h837.433c32.935 0 59.634 26.699 59.634 59.634v340.267c0 32.935-26.699 59.634-59.634 59.634zM499.404 420.893c2.927-4.074 7.652-6.697 12.989-6.697 0.030 0 0.060 0 0.091 0h-0.005c0.025 0 0.055 0 0.086 0 5.338 0 10.062 2.623 12.957 6.649l165.064 232.208c2.068 2.663 3.315 6.052 3.315 9.732 0 8.807-7.139 15.945-15.945 15.945-0.156 0-0.312-0.002-0.468-0.007l-77.629 0.001v208.243c0 8.807-7.139 15.945-15.945 15.945h-143.505c-8.807 0-15.945-7.139-15.945-15.945v-208.243h-77.971c-0.060 0.001-0.131 0.001-0.202 0.001-8.807 0-15.945-7.139-15.945-15.945 0-3.538 1.153-6.807 3.103-9.453z" />
<glyph unicode="&#x59;" glyph-name="blog" d="M64 896v-119.467h59.733s0 74.667 74.667 74.667v-283.733s0-14.933-29.867-14.933h-14.933v-44.8h194.133v44.8h-14.933c-29.867 0-29.867 14.933-29.867 14.933v283.733c74.667 0 74.667-74.667 74.667-74.667h59.733v119.467zM930.133 761.6h-388.267c-16.495 0-29.867 13.372-29.867 29.867v0 74.667c0 16.495 13.372 29.867 29.867 29.867v0h388.267c16.495 0 29.867-13.372 29.867-29.867v0-74.667c0-16.495-13.372-29.867-29.867-29.867v0zM930.133 0h-836.267c-16.495 0-29.867 13.372-29.867 29.867v0 74.667c0 16.495 13.372 29.867 29.867 29.867v0h836.267c16.495 0 29.867-13.372 29.867-29.867v0-74.667c0-16.495-13.372-29.867-29.867-29.867v0zM930.133 253.867h-836.267c-16.495 0-29.867 13.372-29.867 29.867v0 74.667c0 16.495 13.372 29.867 29.867 29.867v0h836.267c16.495 0 29.867-13.372 29.867-29.867v0-74.667c0-16.495-13.372-29.867-29.867-29.867v0zM930.133 507.733h-388.267c-16.495 0-29.867 13.372-29.867 29.867v0 74.667c0 16.495 13.372 29.867 29.867 29.867v0h388.267c16.495 0 29.867-13.372 29.867-29.867v0-74.667c0-16.495-13.372-29.867-29.867-29.867v0z" />
<glyph unicode="&#x5a;" glyph-name="wand-magic" d="M736.179 470.143l106.335 106.335c4.546 4.541 7.359 10.818 7.359 17.751s-2.812 13.209-7.358 17.751l-88.584 88.755c-4.541 4.546-10.818 7.359-17.751 7.359s-13.209-2.812-17.751-7.358l-106.506-106.336zM558.67 541.146l-469.888-470.059c-6.84-6.803-11.073-16.22-11.073-26.626s4.233-19.824 11.071-26.624l70.834-70.834c6.822-6.799 16.233-11.002 26.626-11.002s19.805 4.203 26.627 11.003l470.058 469.887zM328.419 815.603l14.849-40.281c14.496-38.367 44.243-68.113 81.647-82.29l41.244-15.169-40.281-14.849c-38.367-14.496-68.113-44.243-82.29-81.647l-15.169-41.244-14.849 40.281c-14.424 38.305-44.040 68.034-81.309 82.287l-41.241 15.171 40.281 14.849c38.367 14.496 68.113 44.243 82.29 81.647zM629.503 960l10.241-27.479c9.878-26.261 30.235-46.617 55.839-56.278l28.137-10.458-27.479-10.241c-26.248-9.898-46.597-30.248-56.277-55.838l-10.459-27.454-10.241 27.479c-9.898 26.248-30.248 46.597-55.838 56.277l-28.138 10.459 27.479 10.241c26.261 9.878 46.617 30.235 56.278 55.839zM874.091 311.409l7.852-20.994c7.585-20.051 23.131-35.597 42.679-43.015l21.668-8.019-21.165-7.852c-20.051-7.585-35.597-23.131-43.015-42.679l-8.019-21.497-7.852 20.994c-7.585 20.051-23.131 35.597-42.679 43.015l-21.668 8.019 21.165 7.852c20.051 7.585 35.597 23.131 43.015 42.679z" />
<glyph unicode="&#x5b;" glyph-name="power-on-off" d="M916.651 761.003c-12.235 15.422-30.974 25.224-52.003 25.224-15.397 0-29.566-5.255-40.813-14.069l0.144 0.109c-15.645-12.197-25.611-31.046-25.611-52.223 0-15.306 5.207-29.396 13.945-40.596l-0.11 0.147c49.588-63.037 79.531-143.561 79.531-231.079 0-0.181 0-0.363 0-0.544v0.028c0-209.721-170.012-379.733-379.733-379.733s-379.733 170.012-379.733 379.733v0c-0.001 0.37-0.002 0.807-0.002 1.245 0 87.421 29.877 167.864 79.977 231.675l-0.615-0.813c8.478 10.994 13.589 24.965 13.589 40.129 0 21.067-9.863 39.83-25.223 51.924l-0.141 0.107c-11.057 8.587-25.133 13.767-40.419 13.767-21.171 0-40.022-9.936-52.144-25.398l-0.109-0.144c-66.83-85.078-107.179-193.714-107.179-311.774 0-0.252 0-0.504 0.001-0.756v0.040c0-282.77 229.23-512 512-512s512 229.23 512 512v0c0.002 0.53 0.003 1.158 0.003 1.785 0 117.964-40.283 226.52-107.844 312.661l0.833-1.103zM512 382.123c36.271 0.193 65.61 29.593 65.707 65.868v445.961c0 36.477-29.571 66.048-66.048 66.048s-66.048-29.571-66.048-66.048v0-445.952c0.097-36.404 29.63-65.878 66.048-65.878 0.12 0 0.24 0 0.36 0.001h-0.018z" />
<glyph unicode="&#x5d;" glyph-name="tablet-portrait" d="M847.787 959.998h-673.963c-19.099-1.203-34.134-16.988-34.134-36.284 0-0.084 0-0.168 0.001-0.251v-950.942c0-0.071-0.001-0.155-0.001-0.238 0-19.296 15.035-35.081 34.029-36.279l674.068-0.005c20.171 0 36.523 16.352 36.523 36.523v950.955c0 20.171-16.352 36.523-36.523 36.523zM510.55-33.965c-16.495 0-29.867 13.372-29.867 29.867s13.372 29.867 29.867 29.867c16.495 0 29.867-13.372 29.867-29.867s-13.372-29.867-29.867-29.867zM764.502 55.465h-505.344v785.067h505.173v-785.067z" />
<glyph unicode="&#x5e;" glyph-name="align-center" d="M110.667 0h802.667c24.165 0 43.755 19.59 43.755 43.755v40.32c0 24.165-19.59 43.755-43.755 43.755h-802.667c0 0 0 0 0 0-24.113 0-43.67-19.505-43.755-43.597v-40.327c0-0.045 0-0.097 0-0.149 0-24.165 19.59-43.755 43.755-43.755 0 0 0 0 0 0zM175.029 340.181v0-40.32c0-24.165 19.59-43.755 43.755-43.755h586.432c24.165 0 43.755 19.59 43.755 43.755v40.32c0 24.165-19.59 43.755-43.755 43.755h-586.432c-24.165 0-43.755-19.59-43.755-43.755zM154.72 768.021h714.859c24.165 0 43.755 19.59 43.755 43.755v40.469c0 24.165-19.59 43.755-43.755 43.755h-714.859c-0.045 0-0.097 0-0.149 0-24.165 0-43.755-19.59-43.755-43.755 0 0 0 0 0 0v0-40.32c0-0.045 0-0.097 0-0.149 0-24.165 19.59-43.755 43.755-43.755 0.052 0 0.105 0 0.158 0zM218.784 555.819c0-24.165 19.59-43.755 43.755-43.755h498.923c24.165 0 43.755 19.59 43.755 43.755v40.32c0 24.165-19.59 43.755-43.755 43.755h-498.773c-24.165 0-43.755-19.59-43.755-43.755v0-40.32z" />
<glyph unicode="&#x5f;" glyph-name="check-tick" d="M874.008 810.069c-92.651 92.636-220.639 149.931-362.008 149.931-282.77 0-512-229.23-512-512s229.23-512 512-512c141.37 0 269.358 57.295 362.009 149.932 92.671 92.656 149.991 220.668 149.991 362.068s-57.32 269.412-149.991 362.068zM724.675 535.125l-251.392-251.392c-10.683-10.67-25.435-17.268-41.728-17.268s-31.045 6.599-41.729 17.269l-126.805 126.805c-6.868 6.884-11.116 16.386-11.116 26.88s4.247 19.996 11.116 26.881l29.695 29.695c6.893 6.919 16.429 11.201 26.965 11.201s20.073-4.282 26.964-11.2l85.335-85.335 209.067 210.091c6.884 6.868 16.386 11.116 26.88 11.116s19.996-4.247 26.881-11.116l29.695-29.695c6.868-6.884 11.116-16.386 11.116-26.88s-4.247-19.996-11.116-26.881z" />
<glyph unicode="&#x60;" glyph-name="list" d="M128 544h768c35.346 0 64-28.654 64-64v-64c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v64c0 35.346 28.654 64 64 64zM128 864h768c35.346 0 64-28.654 64-64v-64c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v64c0 35.346 28.654 64 64 64zM128 224h768c35.346 0 64-28.654 64-64v-64c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v64c0 35.346 28.654 64 64 64z" />
<glyph unicode="&#x61;" glyph-name="zip" d="M755.131 601.565l-230.261 76.87v102.435l230.261-76.87v-102.435zM755.131 447.999l-230.261 76.87v102.261l230.261-76.696v-102.435zM755.131 294.433l-230.261 76.696v102.435l230.261-76.696v-102.435zM755.131 755.129l-230.261 76.87v102.435l230.261-76.87v-102.435zM192.001 473.564v281.565c0 42.453 34.415 76.87 76.87 76.87h588.696c0 70.693-57.308 128-128 128v0h-537.566c-70.653-0.099-127.902-57.348-128-127.99v-434.792c0-0.103 0-0.225 0-0.347 0-70.693 57.308-128 128-128 0 0 0 0 0 0h537.566c0.052 0 0.113 0 0.174 0 70.597 0 127.826 57.229 127.826 127.826 0 0.061 0 0.122 0 0.183v-0.009h-588.696c-0.052 0-0.113 0-0.174 0-42.358 0-76.696 34.338-76.696 76.696 0 0 0 0 0 0v0zM524.87 217.564h230.261v-203.304c0-43.222-35.039-78.261-78.261-78.261v0h-73.739c-43.222 0-78.261 35.039-78.261 78.261v0 203.304zM473.74 63.999c0-42.453-34.415-76.87-76.87-76.87s-76.87 34.415-76.87 76.87c0 42.453 34.415 76.87 76.87 76.87s76.87-34.415 76.87-76.87zM960.001 63.999c0-42.453-34.415-76.87-76.87-76.87s-76.87 34.415-76.87 76.87c0 42.453 34.415 76.87 76.87 76.87s76.87-34.415 76.87-76.87zM448 89.564h384v-51.13h-384v51.13z" />
<glyph unicode="&#x62;" glyph-name="archive" d="M96 640h832c17.673 0 32-14.327 32-32v-544c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v544c0 17.673 14.327 32 32 32zM96 896h832c35.346 0 64-28.654 64-64v-96c0-17.673-14.327-32-32-32h-896c-17.673 0-32 14.327-32 32v96c0 35.346 28.654 64 64 64zM384 512c-35.346 0-64-28.654-64-64s28.654-64 64-64h256c35.346 0 64 28.654 64 64s-28.654 64-64 64h-256z" />
<glyph unicode="&#x63;" glyph-name="inlinecss" d="M128 896h768c35.346 0 64-28.654 64-64s-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64s28.654 64 64 64zM128 128h768c35.346 0 64-28.654 64-64s-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64s28.654 64 64 64zM128 640h768c35.346 0 64-28.654 64-64v-256c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v256c0 35.346 28.654 64 64 64z" />
<glyph unicode="&#x64;" glyph-name="social-dropbox" d="M301.227 888.491l-301.227-196.779 208.213-166.741 303.787 187.563-210.773 175.957zM0 358.229v0l301.227-196.779 210.773 175.957-303.787 187.563-208.213-166.741zM512 337.408l210.773-175.957 301.227 196.779-208.213 166.741-303.787-187.563zM722.773 888.491l-210.773-175.957 303.787-187.563 208.213 166.741-301.227 196.779zM301.227 124.245l-90.453 59.051v-66.219l301.909-181.077 301.739 181.077v66.219l-90.453-59.051-211.285 175.275-211.456-175.275z" />
<glyph unicode="&#x65;" glyph-name="eye" d="M512 223.915c123.759 0 224.085 100.326 224.085 224.085s-100.326 224.085-224.085 224.085c-123.759 0-224.085-100.326-224.085-224.085s100.326-224.085 224.085-224.085zM0 448s136.533 352.085 512 352.085 512-352.085 512-352.085-136.533-352.085-512-352.085-512 352.085-512 352.085zM512 352.085c52.972 0 95.915 42.942 95.915 95.915s-42.942 95.915-95.915 95.915c-52.972 0-95.915-42.942-95.915-95.915s42.942-95.915 95.915-95.915z" />
<glyph unicode="&#x66;" glyph-name="social-facebook" d="M374.272-64v512h-109.739v176.469h109.739v105.984c0 144.213 62.123 229.547 238.080 229.547h147.115v-176.469h-91.989c-68.267 0-73.216-24.747-73.216-70.656v-88.235h165.205l-18.773-176.64h-146.603v-512z" />
<glyph unicode="&#x67;" glyph-name="social-google-plus" d="M0.859 463.671c-10.682-134.785 79.418-267.513 206.439-314.614s288.992-15.32 369.92 96.716c53.411 70.766 64.905 161.88 58.635 247.392-103.683 0.229-207.136 0.229-310.705 0.229 0-36.354 0-72.709 0-109.177 61.885-1.943 124.003-1.029 185.772-1.943-27.285-135.243-214.219-179.143-313.491-90.772-100.897 77.625-96.137 247.621 9.637 319.528 73.845 58.076 178.923 43.67 252.883-6.516 28.893 26.616 55.809 54.024 81.285 82.701-60.385 49.568-135.854 83.978-216.085 80.549-167.427 5.258-321.386-139.244-324.289-304.096l-0.001 0.003zM837.879 584.853c0-30.409-0.581-60.82-0.812-91.456l-92.885-0.572v-91.456l92.885-0.915c0-30.41 0-60.819 0.581-91.458h92.885c0 30.41 0 60.819 0.581 91.458l92.885 0.801v92.144l-92.885 0.572c0 30.409 0 60.933-0.581 91.456l-92.654-0.573z" />
<glyph unicode="&#x68;" glyph-name="social-github" d="M512 934.741c-0.11 0-0.241 0-0.371 0-282.77 0-512-229.23-512-512 0-225.030 145.173-416.153 346.974-484.823 29.205-5.844 37.739 10.028 37.739 23.51s0 44.373 0 87.040c-142.507-30.891-172.544 68.267-172.544 68.267-23.211 59.733-56.661 75.264-56.661 75.264-46.421 31.744 3.584 31.061 3.584 31.061 33.642-4.794 61.856-24.567 78.061-52.229 46.013-78.673 119.741-56.145 149.267-43.003 2.518 26.917 14.443 50.654 32.408 68.248-113.645 12.989-233.112 57.192-233.112 253.458-0.013 0.842-0.020 1.835-0.020 2.83 0 52.018 20.062 99.35 52.871 134.681-6.822 18.19-10.702 39.335-10.702 61.387 0 26.775 5.72 52.215 16.004 75.163s42.541 12.658 140.333-53.731c38.377 10.941 82.454 17.232 128 17.232s89.623-6.291 131.409-18.052c94.383 67.038 137.221 53.385 137.221 53.385 9.885-21.837 15.644-47.349 15.644-74.205 0-21.975-3.856-43.050-10.929-62.584 32.998-33.856 52.995-81.074 52.995-132.964 0-1.105-0.009-2.208-0.027-3.309 0.002-196.442-119.465-239.791-233.811-252.421 18.432-15.872 34.133-47.104 34.133-94.891 0-68.267 0-123.563 0-140.459 0-13.653 9.216-29.696 35.157-24.576 205.138 69.887 350.066 260.877 350.066 485.717 0 282.66-229.052 511.822-511.67 512z" />
<glyph unicode="&#x69;" glyph-name="social-linkedin" d="M264.704 0.001h-185.621v598.528h185.621zM171.82 680.364c-0.045 0-0.097 0-0.149 0-59.547 0-107.819 48.272-107.819 107.819s48.272 107.819 107.819 107.819c59.547 0 107.819-48.272 107.819-107.819 0-0.045 0-0.097 0-0.149 0-59.465-48.206-107.669-107.669-107.669zM960.149 0.001h-185.472v291.051c0 69.44-1.344 158.741-96.469 158.741s-111.403-75.563-111.403-153.664v-296.128h-185.621v598.528h178.155v-81.835h2.539c24.939 47.040 84.672 96.768 175.616 96.768 188.011 0 222.656-123.947 222.656-284.928v-328.533z" />
<glyph unicode="&#x6a;" glyph-name="like" d="M66.821 114.541c-0.050 0.711-0.079 1.54-0.079 2.375s0.029 1.664 0.086 2.486l-0.007 368.828c0 19.18 15.548 34.728 34.728 34.728h68.118c18.63-0.575 33.532-15.737 33.688-34.415v-376.966c-1.836-17.264-16.143-30.648-33.651-31.017l-0.036-0.001h-68.118c-0.003 0-0.006 0-0.007 0-18.918 0-34.303 15.127-34.718 33.946zM272.364 56.662v500.131c0 19.18 15.548 34.728 34.728 34.728h138.018c2.18 3.226 4.679 6.007 7.51 8.41l135.406 234.531c13.649 24.095 39.075 40.115 68.252 40.219 43.398-0.502 78.374-35.789 78.374-79.244 0-0.158-0.001-0.316-0.002-0.474l0.741 0.024v-203.466h188.031c18.793-0.498 33.836-15.849 33.836-34.715 0-0.005 0-0.007 0-0.012v0.001-385.857c-0.020-4.751-1.943-9.047-5.047-12.17l-133.565-133.565c-2.904-2.418-6.674-3.885-10.786-3.885-0.855 0-1.694 0.063-2.514 0.185l-498.256-0.011c-0.011 0-0.025 0-0.038 0-18.523 0-33.645 14.565-34.537 32.866l-0.004 0.080v1.039s0 0 0 0 0 0 0 0zM916.448 169.748v0 0z" />
<glyph unicode="&#x6b;" glyph-name="dislike" d="M957.15 638.747v0c-0.020 4.749-1.943 9.046-5.046 12.168l-133.543 133.543c-2.922 2.413-6.705 3.876-10.829 3.876-0.839 0-1.663-0.060-2.47-0.178l-497.289 0.011c-0.011 0-0.025 0-0.038 0-18.519 0-33.639-14.563-34.531-32.861l-0.004-0.080v-1.187s0 0 0 0 0 0 0 0v-500.497c-0.007-0.265-0.011-0.578-0.011-0.89 0-19.129 15.468-34.644 34.578-34.722h137.707c2.083-3.341 4.489-6.219 7.238-8.726l1.516-2.551v-1.485h0.89l133.544-230.142c13.782-23.498 38.917-39.026 67.678-39.026 0.1 0 0.197 0 0.296 0.001 43.409 0.335 78.482 35.615 78.482 79.087 0 0.209-0.001 0.42-0.003 0.628l0.742-0.033v203.137h187.259c18.789 0.498 33.832 15.847 33.832 34.711 0 0.005 0 0.007 0 0.012v-0.001 385.795zM202.917 692.758v0c-0.251 18.984-15.699 34.276-34.719 34.276-0.001 0-0.002 0-0.003 0h-67.514c-18.672-0.413-33.67-15.566-33.832-34.26v-376.761c1.7-17.439 16.134-30.998 33.8-31.308h67.991c0 0 0.001 0 0.001 0 19.072 0 34.553 15.376 34.72 34.408 0.054 0.726 0.085 1.554 0.085 2.391s-0.031 1.664-0.090 2.484z" />
<glyph unicode="&#x6c;" glyph-name="cloud-migration" d="M4.084 320h379.916v128h-365.939c35.286 82.255 118.578 141.042 216.896 145.083 13.786 98.746 102.292 174.917 209.42 174.917 99.562 0 183.040-65.792 204.508-156.092 18.238 6.353 37.93 9.82 58.468 9.82 87.884 0 160.254-63.463 170.904-145.972 83.204-16.805 145.664-87.332 145.738-172.055-2.662-97.469-86.2-175.7-189.092-175.7h-585.729c-119.608 0-223.556 83.058-245.090 192zM384 528.297v-288.594c0-35.346 28.654-64 64-64 15.811 0 31.062 5.852 42.814 16.429l160.33 144.297c26.273 23.645 28.402 64.112 4.757 90.385-1.501 1.668-3.089 3.256-4.757 4.757l-160.33 144.297c-26.273 23.645-66.739 21.516-90.385-4.757-10.577-11.752-16.429-27.003-16.429-42.814z" />
<glyph unicode="&#x6d;" glyph-name="mail" d="M0 576l512-192 512 192v-384c0-70.692-57.308-128-128-128h-768c-70.692 0-128 57.308-128 128v384zM128 832h768c70.692 0 128-57.308 128-128v-32l-512-192-512 192v32c0 70.692 57.308 128 128 128z" />
<glyph unicode="&#x6e;" glyph-name="open-new-window" d="M840.532 896h-238.933v-119.467h154.411l-468.011-467.563c-0.527-0.539-0.854-1.277-0.854-2.091s0.326-1.552 0.854-2.092l80.788-80.788c0.539-0.527 1.277-0.854 2.091-0.854s1.552 0.326 2.092 0.854l467.562 468.010v-154.411h119.467v358.4zM840.532 149.333c0-16.495-13.372-29.867-29.867-29.867v0h-597.333c-16.495 0-29.867 13.372-29.867 29.867v0 597.333c0 16.495 13.372 29.867 29.867 29.867v0h194.133v119.467h-224c-65.979 0-119.467-53.487-119.467-119.467v0-657.067c0-65.979 53.487-119.467 119.467-119.467v0h657.067c65.979 0 119.467 53.487 119.467 119.467v0 224h-119.467z" />
<glyph unicode="&#x6f;" glyph-name="combine" d="M725.143 384.331h-256.115l-359.096-359.096c-24.83-24.83-65.088-24.83-89.918 0l-0.124 0.124c-24.83 24.83-24.83 65.088 0 89.918l332.723 332.723-332.723 332.723c-24.83 24.83-24.83 65.088 0 89.918l0.124 0.124c24.83 24.83 65.088 24.83 89.918 0l359.096-359.096h256.115v131.106c0 17.557 14.233 31.791 31.791 31.791 7.373 0 14.516-2.562 20.208-7.25l236.543-194.776c13.554-11.161 15.494-31.196 4.333-44.75-1.302-1.581-2.753-3.032-4.333-4.333l-236.543-194.776c-13.554-11.161-33.589-9.22-44.75 4.333-4.686 5.692-7.25 12.835-7.25 20.208v131.108z" />
<glyph unicode="&#x70;" glyph-name="defer" d="M214.488 616.412h-122.529c-6.398 0-12.602 2.194-17.578 6.217-12.007 9.708-13.871 27.311-4.164 39.319l178.422 220.684c1.237 1.531 2.633 2.926 4.164 4.164 12.007 9.708 29.611 7.844 39.319-4.164l178.422-220.684c4.022-4.975 6.217-11.18 6.217-17.578 0-15.441-12.517-27.958-27.958-27.958h-122.482v-559.177c0-30.882-25.034-55.916-55.916-55.916s-55.916 25.034-55.916 55.916v559.177zM773.649 280.907h122.482c15.441 0 27.958-12.517 27.958-27.958 0-6.398-2.194-12.602-6.217-17.578l-178.422-220.684c-9.708-12.007-27.311-13.871-39.319-4.164-1.531 1.237-2.926 2.633-4.164 4.164l-178.422 220.684c-9.708 12.007-7.844 29.611 4.164 39.319 4.975 4.022 11.18 6.217 17.578 6.217h122.529v559.177c0 30.882 25.035 55.916 55.916 55.916s55.916-25.034 55.916-55.916v-559.177z" />
<glyph unicode="&#x71;" glyph-name="eye-hide" d="M201.216 838.997c-2.596 2.605-6.187 4.217-10.155 4.217s-7.559-1.612-10.154-4.216l-61.44-60.928c-2.605-2.596-4.217-6.187-4.217-10.155s1.612-7.559 4.216-10.154l701.27-700.758c2.596-2.605 6.187-4.217 10.155-4.217s7.559 1.612 10.154 4.216l60.928 60.928c2.605 2.596 4.217 6.187 4.217 10.155s-1.612 7.559-4.216 10.154zM665.6 456.533c-4.372 78.297-66.77 140.695-144.666 145.049zM358.4 437.419c5.285-76.768 66.251-137.734 142.541-142.992zM512 671.915c0.243 0.001 0.531 0.002 0.818 0.002 123.288 0 223.232-99.944 223.232-223.232 0-19.895-2.603-39.181-7.486-57.539l150.881-148.97c60.159 57.039 108.919 125.422 142.957 201.809s-134.935 356.101-510.402 356.101c-0.695 0.003-1.517 0.005-2.339 0.005-58.177 0-114.196-9.241-166.669-26.335l113.712-108.838c16.592 4.431 35.643 6.983 55.287 6.997zM512 223.915c-0.228-0.001-0.498-0.001-0.768-0.001-123.288 0-223.232 99.944-223.232 223.232 0 19.337 2.459 38.1 7.081 55.993l-151.38 149.661c-59.739-56.808-108.2-124.836-142.102-200.79s134.934-355.925 510.401-355.925c0.727-0.004 1.587-0.006 2.447-0.006 57.572 0 113.029 9.053 165.026 25.812l-113.884 109.020c-16.056-4.238-34.509-6.722-53.525-6.826z" />
<glyph unicode="&#x72;" glyph-name="reply" d="M1018.197 2.048c-94.208 337.749-356.693 426.667-516.779 448.683l-84.309 11.605v-223.573l-417.109 327.509 417.109 327.339v-175.957l62.293-10.069c203.264-33.28 352.939-115.2 442.197-243.883 82.773-119.467 115.712-279.723 96.256-461.653z" />
<glyph unicode="&#x73;" glyph-name="share" d="M801.445 594.226c-18.787-0.030-36.732-3.598-53.217-10.072l-378.911 219.821c0 3.243 0 6.485 0 9.728-0.286 80.75-65.812 146.1-146.602 146.1-80.966 0-146.603-65.636-146.603-146.603s65.636-146.603 146.603-146.603c32.171 0 61.921 10.362 86.096 27.931l352.858-203.215c-4.21-13.064-6.637-28.094-6.637-43.691s2.427-30.627 6.924-44.733l-352.543-202.393c-23.762 17.425-53.583 27.883-85.845 27.883-80.684 0-146.091-65.407-146.091-146.091s65.407-146.091 146.091-146.091c80.684 0 146.091 65.407 146.091 146.091 0 0.037 0 0.075 0 0.112 0 3.066 0 5.968 0 8.869l380.416 220.16c15.309-5.943 33.028-9.386 51.552-9.386 80.778 0 146.261 65.483 146.261 146.261s-65.483 146.261-146.261 146.261c-0.124 0-0.247 0-0.371 0z" />
<glyph unicode="&#x74;" glyph-name="social-twitter" d="M1024 765.024c-34.892-15.915-75.37-27.521-117.814-32.769 41.325 26.083 73.925 66.439 89.754 114.431-37.902-21.718-82.513-39.422-130.042-49.091-41.122 40.731-95.69 66.405-156.245 66.405-115.932 0-209.914-94.097-209.914-210.171 0-17.16 2.054-33.841 5.93-49.808-174.836 10.663-328.295 93.84-431.157 219.996-18.77-29.233-29.36-65.72-29.36-104.683 0-72.4 36.563-136.25 92.212-174.047-34.281 0.657-66.827 10.245-95.241 26.306 1.042-1.401 1.042-2.261 1.042-3.122 0.044-101.219 71.547-185.705 166.738-205.632-15.119-4.882-34.048-7.552-53.598-7.552-0.107 0-0.216 0-0.326 0-0.032 0-0.092 0-0.151 0-13.869 0-27.42 1.357-40.532 3.945 28.881-84.309 105.824-144.285 197-146.014-70.547-55.954-161.022-89.749-259.379-89.749-0.307 0-0.616 0-0.925 0-17.562 0.002-34.929 1.043-51.992 3.066 92.776-59.354 203.777-94.534 322.988-94.534 0.19 0 0.378 0 0.567 0 385.577 0 596.35 319.845 596.35 597.251 0 9.032 0 18.208 0 27.096 41.174 30.039 75.86 66.047 103.567 107.158l0.529 1.519z" />
<glyph unicode="&#x75;" glyph-name="movefooter" d="M128 896h768c35.346 0 64-28.654 64-64s-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64s28.654 64 64 64zM128 640h768c35.346 0 64-28.654 64-64s-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64s28.654 64 64 64zM128 384h768c35.346 0 64-28.654 64-64v-256c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v256c0 35.346 28.654 64 64 64z" />
<glyph unicode="&#x76;" glyph-name="social-drive" d="M383.488 316.075l-177.664-305.323h640.512l177.664 305.323h-640.512zM329.216 889.344l320.341-554.667 353.28-1.024-320.171 554.667-353.451 1.024zM0 313.173l175.787-306.517 320.171 554.667-175.616 306.517-320.341-554.667z" />
<glyph unicode="&#x77;" glyph-name="wordpress" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM255.147 644.608c25.259 1.365 47.957 4.096 47.957 4.096 8.85 0.729 15.756 8.091 15.756 17.067 0 9.456-7.665 17.121-17.121 17.121-0.481 0-0.956-0.020-1.427-0.059s-68.205-5.287-111.725-5.287c-7.851 0-17.067 0-26.965 0 76.052 114.526 204.485 188.994 350.311 188.994 109.329 0 208.881-41.857 283.507-110.42l-5.764 0.274c-39.179-1.128-70.51-33.157-70.51-72.505 0-0.67 0.009-1.338 0.027-2.004-0.002-34.035 19.966-63.731 41.129-98.206 21.048-32.798 33.711-72.734 34.132-115.6 0.001-35.952-13.823-77.595-31.914-135.622l-41.813-139.776-150.869 451.925c25.259 1.365 47.957 4.096 47.957 4.096 8.85 0.729 15.756 8.091 15.756 17.067 0 9.456-7.665 17.121-17.121 17.121-0.481 0-0.956-0.020-1.427-0.059s-68.205-5.287-111.725-5.287c-41.131 0-110.421 5.291-110.421 5.291-0.409 0.035-0.885 0.055-1.365 0.055-9.456 0-17.121-7.665-17.121-17.121 0-8.975 6.906-16.337 15.694-17.063s21.395-2.564 44.094-4.1l65.365-179.541-91.819-274.603zM329.045 70.656c-141.030 69.533-236.344 212.284-236.344 377.297 0 61.818 13.377 120.511 37.393 173.343zM519.339 411.989l129.195-353.792c0.957-2.241 1.985-4.148 3.161-5.948-41.53-14.922-89.365-23.635-139.236-23.635-42.262 0-83.063 6.257-121.527 17.896zM722.773 85.675l128 370.347c19.469 44.241 31.134 95.751 31.911 149.895 0.003 0.411 0.004 0.553 0.004 0.694 0 15.086-1.055 29.926-3.094 44.45 32.457-59.671 51.452-128.883 51.452-202.531 0-153.868-82.908-288.372-206.488-361.276z" />
<glyph unicode="&#x78;" glyph-name="widget-settings-config" d="M938.501 520.575l-113.642 11.2c-8.043 29.678-19.119 55.638-33.222 79.602l73.392 86.905c3.332 4.076 5.35 9.336 5.35 15.068 0 6.596-2.672 12.567-6.993 16.889l-69.143 69.143c-4.324 4.321-10.294 6.993-16.889 6.993-5.733 0-10.994-2.020-15.111-5.385l-88.363-72.543c-22.463 13.288-48.424 24.362-75.854 31.88l-13.449 114.168c-1.253 12.117-11.401 21.488-23.742 21.504h-97.666c-12.343-0.016-22.489-9.387-23.735-21.401l-11.209-113.894c-29.677-8.033-55.636-19.107-79.596-33.22l-86.911 73.39c-4.076 3.332-9.336 5.35-15.068 5.35-6.596 0-12.567-2.672-16.889-6.993l-68.992-68.992c-4.321-4.324-6.993-10.295-6.993-16.889 0-5.731 2.020-10.994 5.385-15.111l72.541-88.363c-13.295-22.465-24.369-48.426-31.882-75.857l-114.316-13.442c-12.117-1.253-21.488-11.403-21.504-23.742v-97.666c0.016-12.343 9.387-22.489 21.401-23.735l113.894-11.209c8.029-29.675 19.103-55.638 33.219-79.594l-73.39-86.912c-3.402-4.081-5.471-9.378-5.471-15.16 0-6.561 2.66-12.5 6.962-16.798l68.992-68.992c4.324-4.321 10.294-6.993 16.889-6.993 5.731 0 10.994 2.020 15.111 5.385l88.363 72.541c22.461-13.325 48.417-24.446 75.844-32.022l13.458-114.175c1.255-12.128 11.419-21.504 23.774-21.504 0.042 0 0.084 0 0.126 0h97.659c12.343 0.016 22.489 9.387 23.735 21.401l11.209 113.745c29.678 8.082 55.638 19.205 79.587 33.367l86.921-73.388c4.076-3.332 9.335-5.35 15.068-5.35 6.596 0 12.567 2.672 16.889 6.993l68.992 68.992c4.302 4.298 6.962 10.236 6.962 16.798 0 5.78-2.065 11.081-5.5 15.199l-72.545 88.366c13.284 22.463 24.358 48.424 31.88 75.852l114.169 13.449c12.247 1.108 21.772 11.309 21.803 23.741v97.668c-0.016 12.343-9.387 22.489-21.401 23.735l-0.098 0.007zM512.004 315.839c-72.991 0-132.161 59.171-132.161 132.16s59.169 132.16 132.161 132.16c72.991 0 132.161-59.169 132.161-132.16s-59.171-132.16-132.161-132.16z" />
<glyph unicode="&#x79;" glyph-name="social-youtube" d="M1014.113 648.12c0 0-9.729 68.939-41.116 99.375-26.137 25.868-62.396 42.035-102.554 42.459-143.364 10.046-358.365 10.046-358.365 10.046s-215 0-358.439-10.044c-40.234-0.442-76.491-16.603-102.611-42.436-31.41-30.459-40.669-99.4-40.669-99.4-6.069-48.054-9.817-104.254-10.352-161.198l-0.006-76.817c0.482-57.604 4.175-113.815 10.915-169.122s9.33-61.741 39.932-92.177c38.92-39.873 90.080-38.655 112.993-42.762 81.92-7.61 348.239-10.044 348.239-10.044s215.158 0 358.595 10.501c40.103 0.467 76.235 16.564 102.301 42.286 31.408 30.457 40.824 99.396 40.824 99.396 6.032 48.161 9.725 104.427 10.196 161.437l0.006 76.731c-0.476 57.648-4.169 113.913-10.915 169.273l1.028-7.505zM405.206 309.206v281.997l272.125-138.183-272.125-143.814z" />
<glyph unicode="&#x7a;" glyph-name="filter" d="M986.647 776.462c-0.058 41.498-32.921 75.301-74.044 76.87l-797.997 0.005c-0.067 0-0.145 0-0.225 0-42.544 0-77.032-34.489-77.032-77.032 0-24.244 11.2-45.872 28.708-59.994l357.79-358.074v-221.45c0.616-14.21 8.524-26.445 20.054-33.115l0.194-0.103 95.855-55.362c5.842-3.483 12.883-5.541 20.405-5.541 22.276 0 40.336 18.059 40.336 40.336 0 0.058 0 0.115 0 0.173 0 1.098 0 2.047 0 3.155v0 271.91l361.281 361.124c15.197 14.060 24.68 34.107 24.68 56.37 0 0.258-0.001 0.514-0.004 0.772zM301.573 699.271v0z" />
<glyph unicode="&#x7b;" glyph-name="arrow-skip-back" d="M497.129 99.768c-4.641-4.289-10.005-7.889-15.872-10.582l-0.379-0.155c-5.848-2.66-12.683-4.209-19.878-4.209s-14.031 1.549-20.186 4.334l0.309-0.125c-6.287 2.892-11.694 6.487-16.451 10.788l0.056-0.051-311.959 312.104c-4.671 4.572-8.409 10.079-10.912 16.22l-0.116 0.322c-2.207 5.658-3.485 12.206-3.485 19.054 0 0.187 0.001 0.376 0.003 0.562v-0.028c0 0.078-0.001 0.17-0.001 0.262 0 7.178 1.44 14.021 4.046 20.253l-0.129-0.346c2.4 6.77 6.009 12.577 10.613 17.434l-0.020-0.022 312.685 310.653c9.35 9.237 22.207 14.942 36.397 14.942 7.126 0 13.917-1.439 20.095-4.043l-0.341 0.128c6.333-2.695 11.732-6.42 16.244-11.019l0.007-0.007 35.694-36.564c9.237-9.35 14.942-22.207 14.942-36.397 0-7.126-1.439-13.917-4.043-20.095l0.128 0.341c-2.695-6.333-6.42-11.732-11.019-16.244l-0.007-0.007-237.234-239.265 237.234-238.54c4.607-4.519 8.332-9.917 10.904-15.928l0.123-0.323c2.479-5.769 3.919-12.482 3.919-19.533 0-0.121-0.001-0.244-0.002-0.364v0.018c0-0.079 0.001-0.172 0.001-0.266 0-7.227-1.439-14.118-4.047-20.401l0.131 0.353c-2.552-6.29-6.299-11.62-10.995-15.931l-0.031-0.028-35.694-37.289zM873.512 99.768c-4.704-4.25-10.109-7.845-15.999-10.572l-0.397-0.165c-5.77-2.659-12.518-4.208-19.629-4.208-0.087 0-0.176 0-0.263 0.001h0.014c-0.047 0-0.102 0-0.156 0-7.143 0-13.923 1.549-20.025 4.331l0.302-0.123c-6.224 2.933-11.578 6.522-16.309 10.788l0.059-0.051-311.089 312.104c-4.671 4.572-8.409 10.079-10.912 16.22l-0.116 0.322c-2.479 5.965-3.918 12.896-3.918 20.161 0 0.053 0 0.108 0 0.162v-0.008c0 0.078-0.001 0.17-0.001 0.262 0 7.178 1.44 14.021 4.046 20.253l-0.129-0.346c2.617 6.512 6.355 12.067 11.023 16.681l0.005 0.005 311.815 310.653c4.54 4.573 9.933 8.291 15.92 10.9l0.331 0.129c5.488 2.22 11.854 3.509 18.522 3.509 0.579 0 1.155-0.009 1.731-0.028l-0.084 0.003c0.233 0.005 0.509 0.006 0.786 0.006 13.826 0 26.358-5.541 35.495-14.522l-0.007 0.006 36.275-36.564c9.237-9.35 14.942-22.207 14.942-36.397 0-7.126-1.439-13.917-4.043-20.095l0.128 0.341c-2.695-6.333-6.42-11.732-11.019-16.244l-0.007-0.007-238.25-239.265 238.25-238.54c4.607-4.519 8.332-9.917 10.904-15.928l0.123-0.323c2.216-5.484 3.501-11.843 3.501-18.502 0-0.483-0.006-0.967-0.020-1.447l0.002 0.071c0-0.079 0.001-0.172 0.001-0.266 0-7.227-1.439-14.118-4.047-20.401l0.131 0.353c-2.552-6.29-6.299-11.62-10.995-15.931l-0.031-0.028-36.13-37.289z" />
<glyph unicode="&#x7c;" glyph-name="flag" d="M910.404 754.49c-0.036 0-0.077 0-0.118 0-2.422 0-4.731-0.494-6.837-1.39l0.119 0.044c-37.374-20.496-81.739-32.542-128.846-32.556-0.155 0-0.334-0.002-0.511-0.002-85.841 0-162.626 39.821-213.792 102.454-46.563 45.349-109.104 72.959-177.923 72.959-66.249 0-126.68-25.587-172.432-67.66-9.486 21.49-30.172 35.949-54.147 35.949-33.091 0-59.916-27.549-59.916-61.529 0-0.222 0.002-0.445 0.003-0.665v-740.415c0-34.065 26.89-61.68 60.061-61.68s60.061 27.615 60.061 61.68v333.487c36.633 19.388 79.944 30.753 125.841 30.753 85.965 0 162.863-39.873 214.109-102.593 46.514-45.22 108.949-72.744 177.645-72.744 74.257 0 141.198 32.162 188.336 83.661 3.695 3.474 5.927 8.257 5.943 13.578v388.298c0 0.002 0 0.002 0 0.002 0 10.040-7.845 18.198-17.583 18.368h-0.014z" />
<glyph unicode="&#x7d;" glyph-name="arrow-skip-forward" d="M526.871 99.768c4.641-4.289 10.005-7.889 15.872-10.582l0.379-0.155c5.848-2.66 12.683-4.209 19.878-4.209s14.031 1.549 20.186 4.334l-0.309-0.125c6.287 2.892 11.694 6.487 16.451 10.788l-0.056-0.051 311.959 312.104c4.671 4.572 8.409 10.079 10.912 16.22l0.116 0.322c2.207 5.658 3.485 12.206 3.485 19.054 0 0.187-0.001 0.376-0.003 0.562v-0.028c0 0.078 0.001 0.17 0.001 0.262 0 7.178-1.44 14.021-4.046 20.253l0.129-0.346c-2.4 6.77-6.009 12.577-10.613 17.434l0.020-0.022-312.685 310.653c-9.35 9.237-22.207 14.942-36.397 14.942-7.126 0-13.917-1.439-20.095-4.043l0.341 0.128c-6.333-2.695-11.732-6.42-16.244-11.019l-0.007-0.007-35.694-36.564c-9.237-9.35-14.942-22.207-14.942-36.397 0-7.126 1.439-13.917 4.043-20.095l-0.128 0.341c2.695-6.333 6.42-11.732 11.019-16.244l0.007-0.007 237.234-239.265-237.234-238.54c-4.607-4.519-8.332-9.917-10.904-15.928l-0.123-0.323c-2.479-5.769-3.919-12.482-3.919-19.533 0-0.121 0.001-0.244 0.002-0.364v0.018c0-0.079-0.001-0.172-0.001-0.266 0-7.227 1.439-14.118 4.047-20.401l-0.131 0.353c2.552-6.29 6.299-11.62 10.995-15.931l0.031-0.028 35.694-37.289zM150.488 99.768c4.704-4.25 10.109-7.845 15.999-10.572l0.397-0.165c5.509-2.395 11.923-3.787 18.665-3.787 0.426 0 0.852 0.006 1.276 0.017l-0.062-0.002c0.047 0 0.102 0 0.156 0 7.143 0 13.923 1.549 20.025 4.331l-0.302-0.123c6.219 2.8 11.574 6.251 16.334 10.372l-0.083-0.070 311.089 312.104c4.671 4.572 8.409 10.079 10.912 16.22l0.116 0.322c2.479 5.965 3.918 12.896 3.918 20.161 0 0.053 0 0.108 0 0.162v-0.008c0 0.078 0.001 0.17 0.001 0.262 0 7.178-1.44 14.021-4.046 20.253l0.129-0.346c-2.617 6.512-6.355 12.067-11.023 16.681l-0.005 0.005-311.815 310.653c-4.54 4.573-9.933 8.291-15.92 10.9l-0.331 0.129c-5.488 2.22-11.854 3.509-18.522 3.509-0.579 0-1.155-0.009-1.731-0.028l0.084 0.003c-0.233 0.005-0.509 0.006-0.786 0.006-13.826 0-26.358-5.541-35.495-14.522l0.007 0.006-36.275-36.564c-9.237-9.35-14.942-22.207-14.942-36.397 0-7.126 1.439-13.917 4.043-20.095l-0.128 0.341c2.695-6.333 6.42-11.732 11.019-16.244l0.007-0.007 238.25-239.265-238.25-238.54c-4.607-4.519-8.332-9.917-10.904-15.928l-0.123-0.323c-2.216-5.484-3.501-11.843-3.501-18.502 0-0.483 0.006-0.967 0.020-1.447l-0.002 0.071c0-0.079-0.001-0.172-0.001-0.266 0-7.227 1.439-14.118 4.047-20.401l-0.131 0.353c2.426-6.264 6.031-11.593 10.576-15.946l0.017-0.016 36.564-37.289z" />
<glyph unicode="&#x7e;" glyph-name="brush" d="M160.069 366.080c-0.042-1.090-0.069-2.366-0.069-3.65 0-54.576 44.719-98.816 99.886-98.816 1.298 0 2.592 0.024 3.876 0.072l82.621-0.006c0.954 0.054 2.068 0.086 3.192 0.086 32.585 0 59-26.132 59-58.368 0-1.11-0.032-2.214-0.093-3.31l0.008-219.496c0.099-25.692 21.124-46.496 47.086-46.592h112.661c25.97 0.096 47 20.9 47.097 46.582v219.486c-0.061 0.998-0.097 2.164-0.097 3.338 0 32.236 26.415 58.368 59 58.368 1.187 0 2.367-0.034 3.536-0.102l82.645 0.008c1.154-0.048 2.509-0.074 3.869-0.074 55.070 0 99.712 44.164 99.712 98.644 0 1.346-0.028 2.688-0.081 4.020l0.006 102.21h-703.861l0.004-102.4zM420.565 960l-74.183-73.388-74.183 73.388h-112.135v-450.56h703.861v450.56h-443.36z" />
<glyph unicode="&#xa1;" glyph-name="graph-line" d="M0 60.27v30.507c0 18.872 8.329 36.782 22.761 48.942l277.261 233.626c54.49 45.914 129.926 57.876 195.947 31.070l54.621-22.177c74.466-30.235 159.884-10.889 214.057 48.479l203.715 223.251c11.913 13.055 32.153 13.981 45.208 2.068 6.645-6.063 10.43-14.643 10.43-23.638v-504.398c0-70.692-57.308-128-128-128h-835.73c-33.286 0-60.27 26.984-60.27 60.27zM322.145 508.556l-218.165-174.532c-27.601-22.081-67.875-17.606-89.956 9.995s-17.606 67.875 9.995 89.956l261.785 209.428c58.993 47.194 140.179 55.407 207.428 20.983l74.82-38.3c25.85-13.232 57.37-7.401 76.775 14.203l263.093 292.909c20.545 28.762 60.516 35.424 89.278 14.88s35.424-60.516 14.88-89.278l-275.116-316.685c-55.434-63.809-146.777-82.504-222.822-45.603l-56.154 27.249c-44.423 21.557-97.285 15.639-135.842-15.207z" />
<glyph unicode="&#xa2;" glyph-name="upload-cloud" d="M512 128v128h80.297c15.811 0 31.062 5.852 42.814 16.429 26.273 23.645 28.402 64.112 4.757 90.385l-144.297 160.33c-1.501 1.668-3.089 3.256-4.757 4.757-26.273 23.645-66.739 21.516-90.385-4.757l-144.297-160.33c-10.577-11.752-16.429-27.003-16.429-42.814 0-35.346 28.654-64 64-64h80.297v-128h-134.826c-134.486 0-249.174 105.007-249.174 233.656l0.002 0.090c0.964 124.682 104.79 225.987 234.836 230.305l0.118 1.032c13.786 98.746 102.292 174.917 209.42 174.917 99.562 0 183.040-65.792 205.694-155.731l-1.186-0.361c18.238 6.353 37.93 9.82 58.468 9.82 87.884 0 160.254-63.463 169.706-145.77l-0.004 0.002 1.202-0.204c83.204-16.805 145.664-87.332 145.742-171.82l-0.004-0.235c-2.662-97.469-86.2-175.7-188.862-175.7-0.080 0-0.162 0-0.23 0h-322.904z" />
<glyph unicode="&#xa3;" glyph-name="download-cloud" d="M384 759.638v-247.638h-80.297c-35.346 0-64-28.654-64-64 0-15.811 5.852-31.062 16.429-42.814l144.297-160.33c23.645-26.273 64.112-28.402 90.385-4.757 1.668 1.501 3.256 3.089 4.757 4.757l144.297 160.33c23.645 26.273 21.516 66.739-4.757 90.385-11.752 10.577-27.003 16.429-42.814 16.429h-80.297v245.413c68.105-22.058 120.518-76.658 136.885-145.505 18.238 6.353 37.93 9.82 58.468 9.82 87.884 0 160.254-63.463 170.904-145.972 83.204-16.805 145.664-87.332 145.738-172.055-2.662-97.469-86.2-175.7-189.092-175.7h-585.729c-134.486 0-249.174 105.007-249.172 233.746 0.964 124.682 104.79 225.987 234.954 231.337 11.086 79.407 70.491 144.216 149.044 166.555z" />
<glyph unicode="&#xa5;" glyph-name="color-pick-eyedropper" d="M646.997 791.552l45.056-45.227-304.299-304.469c0.395-4.001 0.62-8.648 0.62-13.348 0-37.29-14.17-71.27-37.419-96.85l22.634-22.41 22.528-22.528c25.415 23.141 59.352 37.311 96.598 37.311 4.687 0 9.321-0.224 13.893-0.663l303.887 304.514 45.056-45.227 51.2 51.2-208.896 208.384zM506.197 385.365c-6.949-6.006-16.072-9.665-26.049-9.665-22.056 0-39.936 17.88-39.936 39.936 0 9.977 3.659 19.1 9.708 26.1l273.024 273.016 56.32-56.491zM999.424 935.424v0c-15.17 15.196-36.14 24.597-59.307 24.597s-44.137-9.401-59.306-24.596l-118.273-118.444 118.613-119.467 118.272 118.443c15.411 15.23 24.955 36.367 24.955 59.733s-9.544 44.503-24.947 59.725zM486.571 51.2h-370.688v371.029h156.331c5.090 0 9.216 4.126 9.216 9.216v96.768c0 5.090-4.126 9.216-9.216 9.216h-262.997c-5.090 0-9.216-4.126-9.216-9.216v-582.997c0-0.008 0-0.016 0-0.025 0-5.090 4.126-9.216 9.216-9.216 0.24 0 0.478 0.009 0.714 0.027l583.819-0.002c5.090 0 9.216 4.126 9.216 9.216v262.485c0 5.090-4.126 9.216-9.216 9.216h-97.451c-5.090 0-9.216-4.126-9.216-9.216z" />
<glyph unicode="&#xa7;" glyph-name="align-y-top" d="M64 832h896c35.346 0 64-28.654 64-64s-28.654-64-64-64h-896c-35.346 0-64 28.654-64 64s28.654 64 64 64zM320 576h384c35.346 0 64-28.654 64-64v-384c0-35.346-28.654-64-64-64h-384c-35.346 0-64 28.654-64 64v384c0 35.346 28.654 64 64 64z" />
<glyph unicode="&#xa8;" glyph-name="calculator" d="M192 960h640c70.692 0 128-57.308 128-128v-768c0-70.692-57.308-128-128-128h-640c-70.692 0-128 57.308-128 128v768c0 70.692 57.308 128 128 128zM256 832c-35.346 0-64-28.654-64-64v-32c0-35.346 28.654-64 64-64h512c35.346 0 64 28.654 64 64v32c0 35.346-28.654 64-64 64h-512zM224 576c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM464 576c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM224 384c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM464 384c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM224 192c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM464 192c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM704 576c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM704 384c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM704 192c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96z" />
<glyph unicode="&#xa9;" glyph-name="layout" d="M958.507 723.968h-893.163v116.928c0 30.433 24.671 55.104 55.104 55.104h782.955c30.433 0 55.104-24.671 55.104-55.104zM272.171 0h-151.723c-30.433 0-55.104 24.671-55.104 55.104v610.624h206.827zM327.424 665.728h631.232v-331.072h-631.232v331.072zM903.403 0h-575.979v275.968h631.083v-220.864c0-30.433-24.671-55.104-55.104-55.104z" />
<glyph unicode="&#xaa;" glyph-name="branda" d="M512 64c141.385 0 256 114.615 256 256v608c0 17.673 14.327 32 32 32h64c17.673 0 32-14.327 32-32v-608c0-212.077-171.923-384-384-384s-384 171.923-384 384v608c0 17.673 14.327 32 32 32h320c17.673 0 32-14.327 32-32v-864zM384 98.248v733.752h-128v-512c0-94.756 51.481-177.488 128-221.752z" />
<glyph unicode="&#xab;" glyph-name="laptop" d="M125.27 257.806h773.803c29.523 0.097 53.419 24.053 53.419 53.589 0 0 0 0 0 0v473.941c0 29.502-23.916 53.419-53.419 53.419h-773.803c-29.502 0-53.419-23.916-53.419-53.419v-474.112c0 0 0 0 0 0 0-29.537 23.896-53.492 53.409-53.589zM178.688 731.748h666.795v-367.275h-666.624zM999.595 204.217h-974.677c-13.667 0-24.747-11.079-24.747-24.747v-59.733c-0.002-0.108-0.003-0.235-0.003-0.363 0-6.447 2.465-12.318 6.505-16.722l34.117-37.87c4.505-4.65 10.806-7.537 17.782-7.537 0.409 0 0.815 0.010 1.219 0.029l902.258-0.002c6.688 0.147 12.7 2.925 17.065 7.337l37.549 37.89c4.351 4.388 7.070 10.401 7.168 17.048v59.752c-0.096 13.534-11.042 24.48-24.567 24.576zM605.184 118.542c0.019-0.161 0.029-0.347 0.029-0.536 0-2.563-1.949-4.672-4.446-4.924l-177.344-0.002c-2.518 0.254-4.466 2.362-4.466 4.926 0 0.189 0.011 0.375 0.031 0.558l-0.002 24.041c-0.019 0.161-0.029 0.347-0.029 0.536 0 2.563 1.949 4.672 4.446 4.924l177.514 0.002c2.518-0.254 4.466-2.362 4.466-4.926 0-0.189-0.011-0.375-0.031-0.558z" />
<glyph unicode="&#xac;" glyph-name="arrows-expand" d="M109.982 293.839l-45.997-275.685c-0.147-0.806-0.231-1.734-0.231-2.682 0-4.315 1.744-8.223 4.562-11.058l-0.001 0.001c2.724-2.85 6.557-4.623 10.803-4.623 1.040 0 2.053 0.105 3.032 0.308l274.843 46.428c7.493 1.27 13.129 7.712 13.129 15.471 0 4.342-1.764 8.271-4.615 11.111l-53.764 53.764 144.264 144.264c2.861 2.841 4.63 6.777 4.63 11.127s-1.771 8.285-4.629 11.126l-99.463 99.463c-2.841 2.861-6.777 4.63-11.127 4.63s-8.285-1.771-11.126-4.629l-143.966-144.265-53.764 53.764c-2.839 2.851-6.77 4.615-11.112 4.615-7.759 0-14.201-5.636-15.458-13.035zM914.040 602.081l45.997 275.685c0.133 0.768 0.209 1.652 0.209 2.555 0 4.305-1.734 8.202-4.542 11.037l0.001-0.001c-2.884 2.991-6.926 4.851-11.404 4.851-0.931 0-1.842-0.080-2.729-0.234l-274.843-46.731c-7.493-1.27-13.129-7.712-13.129-15.471 0-4.342 1.764-8.271 4.615-11.111l53.764-53.764-144.264-144.414c-2.861-2.841-4.63-6.777-4.63-11.127s1.771-8.285 4.629-11.126l99.463-99.463c2.841-2.861 6.777-4.63 11.127-4.63s8.285 1.771 11.126 4.629l144.414 144.414 53.764-53.764c2.839-2.851 6.77-4.615 11.112-4.615 7.759 0 14.201 5.636 15.458 13.035z" />
<glyph unicode="&#xae;" glyph-name="update" d="M311.743 222.622c0.929-0.838 1.863-1.67 2.802-2.497 69.009-60.732 161.584-87.586 253.821-71.323 103.046 18.17 187.795 87.13 227.628 181.864 17.126 40.729 64.026 59.863 104.755 42.737s59.863-64.026 42.737-104.755c-60.693-144.344-190.177-249.705-347.337-277.416-140.63-24.797-282.185 16.266-387.309 108.781-5.599 4.927-11.074 9.985-16.422 15.167l-47.146-42.45c-11.75-10.579-26.999-16.435-42.81-16.439-35.346-0.008-64.006 28.639-64.014 63.986l-0.048 215.702c-0.001 2.244 0.117 4.487 0.352 6.718 3.703 35.152 35.2 60.646 70.352 56.944l214.515-22.595c15.724-1.656 30.278-9.074 40.857-20.824 23.651-26.267 21.53-66.734-4.737-90.386l-47.997-43.216zM716.899 672.584c-1.285 1.17-2.58 2.329-3.885 3.478-69.009 60.732-161.584 87.586-253.821 71.323-103.046-18.17-187.795-87.13-227.628-181.864-17.126-40.729-64.026-59.863-104.755-42.737s-59.863 64.026-42.737 104.755c60.693 144.344 190.177 249.705 347.337 277.416 140.63 24.797 282.185-16.266 387.309-108.781 5.964-5.249 11.788-10.645 17.467-16.183l48.274 43.466c11.75 10.579 26.999 16.435 42.81 16.439 35.346 0.008 64.006-28.639 64.014-63.986l0.048-215.702c0-2.244-0.117-4.487-0.352-6.718-3.703-35.152-35.2-60.646-70.352-56.944l-214.515 22.595c-15.724 1.656-30.278 9.074-40.857 20.824-23.651 26.267-21.53 66.734 4.737 90.386l46.906 42.235z" />
<glyph unicode="&#xaf;" glyph-name="arrow-right" d="M963.754 468.992l-388.949 388.608c-5.491 5.46-13.061 8.836-21.419 8.836s-15.927-3.375-21.42-8.837l-62.463-62.121c-5.46-5.491-8.836-13.061-8.836-21.419s3.375-15.927 8.837-21.42l230.569-230.399h-621.909c0 0 0 0-0.001 0-14.644 0-26.527-11.823-26.623-26.444v-95.583c0-14.704 11.92-26.624 26.624-26.624h621.909l-230.4-230.4c-5.46-5.491-8.836-13.061-8.836-21.419s3.375-15.927 8.837-21.42l62.292-61.951c5.491-5.46 13.061-8.836 21.419-8.836s15.927 3.375 21.42 8.837l388.948 388.607c5.38 5.401 8.706 12.851 8.706 21.077s-3.326 15.677-8.707 21.078z" />
<glyph unicode="&#xb0;" glyph-name="hummingbird" d="M1009.323 570.197c-72.363-3.755-161.621-7.509-238.933-8.192l192.171 128.512c19.042-34.586 34.899-74.653 45.502-116.806zM512 960c189.862-0.034 355.572-103.406 443.951-256.93-61.487-12.553-225.839-36.617-400.943-48.051-34.133-2.219-55.979-36.181-68.267-62.464 0 0-31.061 195.925-244.907 145.408-41.984 18.944-81.237 34.133-116.224 46.251 94.16 107.956 231.957 175.787 385.597 175.787 0.279 0 0.557 0 0.836-0.001zM0 448c0 0.221-0.001 0.483-0.001 0.746 0 121.29 42.344 232.689 113.056 320.222 39.45-15.556 74.218-33.581 106.162-55.431s37.807-77.121 65.284-135.489 46.592-91.136 54.613-161.109 65.877-184.491 168.277-221.867c-34.879-47.972-65.982-102.598-90.759-160.574 26.898-39.4 57.774-69.843 91.053-97.495-280.204 0.74-507.686 229.298-507.686 510.988 0 0.003 0 0.007 0 0.010zM573.952-60.416c0 19.115 0 36.352 1.195 51.2 2.803 46.275 12.454 89.473 27.966 129.761 19.44 50.098 31.281 111.481 31.281 175.63 0 12.407-0.443 24.711-1.314 36.896-1.165 15.156-3.891 30.694-7.991 45.664l392.938 149.478c4.007-24.063 6.297-51.79 6.297-80.052 0-260.928-195.185-476.268-447.514-507.978z" />
<glyph unicode="&#xb1;" glyph-name="uptime" d="M182.38 504.833l35.667 57.002c9.973 16.21 27.72 26.868 47.983 26.868 1.002 0 1.999-0.026 2.988-0.078 20.963-0.726 39.094-12.634 48.475-29.9l41.331-76.592 89.944 160.768c9.965 17.66 28.725 29.404 50.254 29.404 24.723 0 45.794-15.488 53.863-37.202l79.733-220.042 36.184 61.61c10.179 16.966 28.59 28.162 49.64 28.162 0.117 0 0.232 0 0.345 0h122.32l118.891-56.832v256l-447.997 256-447.997-256v-256l118.374 56.832zM752.025 391.169l-81.33-138.24c-10.179-16.962-28.58-28.154-49.622-28.16h-5.688c-22.3 2.314-40.643 16.942-48.116 36.812l-79.22 216.116-79.434-143.36c-9.615-17.626-28.136-29.4-49.43-29.4-0.796 0-1.587 0.016-2.375 0.048-21.49 0.312-40.172 12.404-49.707 30.070l-44.261 82.736c-10.278-16.092-28.15-26.624-48.506-26.624-0.028 0-0.059 0-0.089 0l-150.248 56.832v-255.999l447.995-256 447.997 256v255.999l-118.891-56.832-89.076 0.002z" />
<glyph unicode="&#xb4;" glyph-name="play" d="M293.643 886.078l531.188-386.319c28.586-20.79 34.906-60.816 14.116-89.402-3.938-5.415-8.701-10.178-14.116-14.116l-531.188-386.319c-28.586-20.79-68.612-14.47-89.402 14.116-7.956 10.939-12.241 24.117-12.241 37.643v772.637c0 35.346 28.654 64 64 64 13.526 0 26.704-4.285 37.643-12.241z" />
<glyph unicode="&#xb5;" glyph-name="profile-male" d="M921.991 173.375c-37.632 62.123-126.037 74.667-170.24 89.6s-129.173 76.907-129.173 76.907v44.8c17.386 16.117 32.259 34.602 44.19 55.017l0.61 1.132c1.792 3.136 3.285 6.123 4.779 8.96v1.195c1.195 2.688 2.24 5.077 3.136 7.467v1.643c0.825 2.114 1.645 4.757 2.298 7.466 1.567 7.063 2.834 15.217 3.613 23.513 7.977 2.92 12.009-1.41 22.165 24.723 11.499 29.867 30.912 96.171 18.219 110.208-2.949 3.455-7.309 5.633-12.176 5.633-3.373 0-6.503-1.045-9.081-2.83 6.241 25.947 9.791 55.696 9.791 86.275 0 7.749-0.228 15.445-0.678 23.080-5.775 93.026-97.764 146.937-182.884 155.298-94.379 9.259-91.989-7.317-102.144-40.917-68.992 1.045-98.261-62.421-98.261-62.421-16.725-38.229-17.771-88.107-3.136-159.787-2.527 1.75-5.655 2.795-9.028 2.795-4.867 0-9.228-2.177-12.159-5.61-12.712-14.060 6.701-80.812 18.2-110.229s14.933-21.205 23.595-24.341c0-3.883 1.195-19.413 2.091-23.445 11.669-33.197 30.989-61.224 55.92-82.983l0.231-46.192s-85.12-62.123-129.323-76.907-132.459-27.776-170.091-89.6-36.437-173.824-36.437-173.824h891.968s1.643 111.253-35.989 173.376z" />
<glyph unicode="&#xb6;" glyph-name="align-y-bottom" d="M64 192h896c35.346 0 64-28.654 64-64s-28.654-64-64-64h-896c-35.346 0-64 28.654-64 64s28.654 64 64 64zM320 832h384c35.346 0 64-28.654 64-64v-384c0-35.346-28.654-64-64-64h-384c-35.346 0-64 28.654-64 64v384c0 35.346 28.654 64 64 64z" />
<glyph unicode="&#xb7;" glyph-name="defender" d="M922.965 925.867c-2.901 0-212.309 22.016-330.923 34.133v-358.4l-80.043-36.523-79.531 35.499v359.424c-119.125-12.117-328.533-34.133-331.435-34.133-58.271-12.934-101.199-64.173-101.199-125.438 0-7.354 0.618-14.563 1.806-21.579l87.788-576.951c6.661-42.74 32.169-78.424 67.598-98.803l354.973-167.096 355.157 166.741c36.081 20.752 61.581 56.427 68.166 98.378l87.994 578.315c1.066 6.216 1.675 13.377 1.675 20.679 0 61.596-43.335 113.070-101.18 125.599zM806.059 215.552l-294.059-131.925-294.229 131.925-60.928 378.88 355.157-158.379 354.987 158.379z" />
<glyph unicode="&#xb8;" glyph-name="sitemap" d="M425.472 625.835h173.056c25.921 0 46.933 21.013 46.933 46.933v173.227c0 25.921-21.013 46.933-46.933 46.933h-173.056c-25.921 0-46.933-21.013-46.933-46.933v-173.227c0-25.921 21.013-46.933 46.933-46.933zM598.528 270.165h-173.056c-25.921 0-46.933-21.013-46.933-46.933v-173.227c0-25.921 21.013-46.933 46.933-46.933h173.056c25.921 0 46.933 21.013 46.933 46.933v173.227c0 25.921-21.013 46.933-46.933 46.933zM977.067 270.165h-173.227c-25.921 0-46.933-21.013-46.933-46.933v-173.227c0-25.921 21.013-46.933 46.933-46.933h173.227c25.921 0 46.933 21.013 46.933 46.933v173.227c0 25.921-21.013 46.933-46.933 46.933zM220.16 270.165h-173.227c-25.921 0-46.933-21.013-46.933-46.933v-173.227c0-25.921 21.013-46.933 46.933-46.933h173.227c25.921 0 46.933 21.013 46.933 46.933v173.227c0 25.921-21.013 46.933-46.933 46.933zM178.005 445.099h290.133v-85.333h89.088v85.333h290.133v-85.333h89.088v85.333c0 49.202-39.886 89.088-89.088 89.088h-669.355c-49.129-0.097-88.917-39.946-88.917-89.088 0 0 0 0 0 0v-85.333h89.088z" />
<glyph unicode="&#xba;" glyph-name="magnifying-glass-search" d="M1024 39.595l-226.816 226.816c50.818 70.758 81.267 159.126 81.267 254.605 0 242.711-196.756 439.467-439.467 439.467s-439.467-196.756-439.467-439.467c0-242.711 196.756-439.467 439.467-439.467 95.479 0 183.847 30.449 255.922 82.165l225.67-227.715zM146.432 520.704c0 0.051 0 0.111 0 0.171 0 161.744 131.12 292.864 292.864 292.864s292.864-131.12 292.864-292.864c0-161.744-131.12-292.864-292.864-292.864-161.606 0.194-292.573 131.101-292.864 292.665z" />
<glyph unicode="&#xbb;" glyph-name="folder-open" d="M0 768.157c0 35.259 28.862 63.843 63.41 63.843h257.18c35.020 0 76.361-25.903 92.040-57.261l35.369-70.739h-191.688c-70.865 0-144.008-54.934-163.628-123.604l-92.685-324.396v512.157zM155.208 517.359c20.32 67.733 93.979 122.641 164.969 122.641h575.647c70.79 0 111.807-54.566 91.384-122.641l-118.415-394.718c-20.32-67.733-93.979-122.641-164.969-122.641h-575.647c-70.79 0-111.807 54.566-91.384 122.641l118.415 394.718z" />
<glyph unicode="&#xbf;" glyph-name="clipboard-notes" d="M877.227 836.778v0s0 1.195 0 1.707c0 34.404-27.89 62.293-62.293 62.293h-174.251v40.107c0 0.051 0.001 0.111 0.001 0.171 0 10.462-8.482 18.944-18.944 18.944 0 0-0.001 0-0.001 0h-218.965c-10.462 0-18.944-8.482-18.944-18.944v-40.448h-174.763c-34.404 0-62.293-27.89-62.293-62.293s0-1.024 0-1.707v0-837.803c-0.001-0.152-0.002-0.332-0.002-0.512 0-34.404 27.89-62.293 62.293-62.293 0.001 0 0.002 0 0.002 0h605.696c0 0 0 0 0 0 34.344 0 62.196 27.792 62.293 62.113s0 0.009 0 0.009v0 838.656zM759.126 53.93h-494.933v728.747h59.392v-36.352s0 0 0-1.195c0-11.876 9.628-21.504 21.504-21.504h333.312c11.876 0 21.504 9.628 21.504 21.504s0 0 0 0v37.547h59.221zM383.147 553.471c-0.094 7.751-6.4 13.999-14.164 13.999-0.12 0-0.24-0.002-0.36-0.004h-30.702c-7.823 0-14.165-6.342-14.165-14.165v-30.891c0-7.823 6.342-14.165 14.165-14.165h30.72c0.051-0.001 0.111-0.001 0.171-0.001 7.823 0 14.165 6.342 14.165 14.165 0 0 0 0.001 0 0.001v0 31.061zM699.905 553.471c0 7.823-6.342 14.165-14.165 14.165h-229.035c-7.823 0-14.165-6.342-14.165-14.165v-30.891c0-7.823 6.342-14.165 14.165-14.165h229.035c7.823 0 14.165 6.342 14.165 14.165v0 30.891zM383.147 435.028c0 7.823-6.342 14.165-14.165 14.165h-30.72c-7.785-0.095-14.070-6.381-14.165-14.156v-30.9c0-7.823 6.342-14.165 14.165-14.165h30.379c0.051-0.001 0.111-0.001 0.171-0.001 7.823 0 14.165 6.342 14.165 14.165 0 0 0 0.001 0 0.001v0 30.891zM699.905 435.028c0 7.823-6.342 14.165-14.165 14.165h-229.035c-7.785-0.095-14.070-6.381-14.165-14.156v-30.9c0-7.823 6.342-14.165 14.165-14.165h229.035c7.823 0 14.165 6.342 14.165 14.165v0 30.891zM383.147 316.586c0 7.823-6.342 14.165-14.165 14.165h-30.72c-7.785-0.095-14.070-6.381-14.165-14.156v-30.9c0-7.823 6.342-14.165 14.165-14.165h30.379c0.051-0.001 0.111-0.001 0.171-0.001 7.823 0 14.165 6.342 14.165 14.165 0 0 0 0.001 0 0.001v0 30.891zM699.905 316.586c0 7.823-6.342 14.165-14.165 14.165h-229.035c-7.785-0.095-14.070-6.381-14.165-14.156v-30.9c0-7.823 6.342-14.165 14.165-14.165h229.035c7.823 0 14.165 6.342 14.165 14.165v0 30.891z" />
<glyph unicode="&#xc1;" glyph-name="refresh2" d="M995.157 353.621l-65.365 113.152-8.192 15.36-102.741-59.733-14.677-8.363 8.533-14.677 65.365-113.152c7.865-13.361 12.511-29.434 12.511-46.592 0-51.37-41.643-93.013-93.013-93.013-0.078 0-0.157 0-0.235 0h-240.116v-135.509h239.957c0.035 0 0.075 0 0.116 0 126.21 0 228.523 102.313 228.523 228.523 0 42.105-11.387 81.55-31.249 115.424l0.584-1.077zM593.749 778.069l103.253-179.029 9.557-17.067 15.189 11.264 82.091 61.099 12.117 8.875-7.509 12.971-97.451 169.472c-40.252 68.771-113.761 114.229-197.888 114.229s-157.636-45.458-197.304-113.151l-0.584-1.078-65.365-113.323-8.533-14.677 14.677-8.363 102.571-59.563 8.533 14.507 65.365 113.323c16.425 27.992 46.373 46.489 80.64 46.489s64.215-18.497 80.402-46.051l0.238-0.438zM228.864 146.261c-0.015 0-0.034 0-0.052 0-51.37 0-93.013 41.643-93.013 93.013 0 17.158 4.646 33.231 12.748 47.029l-0.237-0.437 110.251 190.976 9.557 17.067-17.067 7.509-94.379 40.107-13.653 5.973-7.509-12.971-104.448-180.907c-19.279-32.797-30.666-72.242-30.666-114.347 0-126.191 102.282-228.492 228.465-228.523h147.629v135.509h-147.627zM397.995 78.336l246.613-142.336v284.843l-246.613-142.507 246.613-142.336v284.843l-246.613-142.507zM289.28 665.429l-246.613-142.507 246.613-142.336v284.843l-246.613-142.507 246.613-142.336v284.843zM851.968 466.091v284.843l-246.613-142.507 246.613-142.336v284.843l-246.613-142.507 246.613-142.336z" />
<glyph unicode="&#xc2;" glyph-name="arrow-down" d="M532.993-3.924l388.949 388.949c5.46 5.491 8.836 13.061 8.836 21.419s-3.375 15.927-8.837 21.42l-62.463 62.463c-5.491 5.46-13.061 8.836-21.419 8.836s-15.927-3.375-21.42-8.837l-230.399-230.228v621.568c0.001 0.101 0.002 0.221 0.002 0.341 0 14.704-11.92 26.624-26.624 26.624-0.001 0-0.002 0-0.002 0h-95.403c-14.704 0-26.624-11.92-26.624-26.624v-621.909l-230.4 230.229c-5.491 5.46-13.061 8.836-21.419 8.836s-15.927-3.375-21.42-8.837l-62.292-62.463c-5.46-5.491-8.836-13.061-8.836-21.419s3.375-15.927 8.837-21.42l388.948-388.948c5.401-5.38 12.851-8.706 21.077-8.706s15.677 3.326 21.078 8.707z" />
<glyph unicode="&#xc5;" glyph-name="element-checkbox" d="M256 960h512c141.385 0 256-114.615 256-256v-512c0-141.385-114.615-256-256-256h-512c-141.385 0-256 114.615-256 256v512c0 141.385 114.615 256 256 256zM757 535c3.333 3.333 6 7.333 8 12s3 9.667 3 15c0 5.333-1 10.333-3 15s-4.667 8.667-8 12l-30 30c-3.333 3.333-7.333 6-12 8s-9.667 3-15 3c-5.333 0-10.333-1-15-3s-8.667-4.667-12-8l-209-210-85 85c-4 3.333-8.167 6-12.5 8s-9.167 3-14.5 3c-5.333 0-10.333-1-15-3s-8.667-4.667-12-8l-30-30c-3.333-3.333-6-7.333-8-12s-3-9.667-3-15c0-4.667 1-9.333 3-14s4.667-8.667 8-12l127-127c5.333-5.333 11.5-9.667 18.5-13s14.833-5 23.5-5c8 0 15.5 1.667 22.5 5s13.167 7.667 18.5 13l252 251z" />
<glyph unicode="&#xc6;" glyph-name="page-pdf" d="M407.040 307.541h-58.368v-109.227h33.109v34.133h25.259c0.757-0.054 1.64-0.085 2.53-0.085 20.736 0 37.547 16.81 37.547 37.547s-16.81 37.547-37.547 37.547c-0.89 0-1.773-0.031-2.648-0.092zM402.773 261.291h-20.992v17.067h20.992c5.632 0 9.899-2.731 9.899-8.704s-4.437-8.533-9.899-8.533zM512 307.541h-48.469v-109.227h48.469c34.133 0 59.733 19.797 59.733 54.784s-25.6 54.443-59.733 54.443zM512 227.157h-15.36v51.2h15.36c0.742 0.082 1.602 0.128 2.474 0.128 13.196 0 23.893-10.697 23.893-23.893 0-0.706-0.031-1.405-0.091-2.095 0.007 0.033 0.007-0.035 0.007-0.102 0-13.95-11.309-25.259-25.259-25.259-0.36 0-0.719 0.008-1.076 0.022zM592.384 198.315h33.109v40.789h48.64v28.843h-48.64v10.752h49.835v28.843h-82.944v-109.227zM870.4 891.733v0 47.787c0 11.311-9.169 20.48-20.48 20.48h-389.12l-307.2-307.2v-696.32c0-11.311 9.169-20.48 20.48-20.48h675.84c11.311 0 20.48 9.169 20.48 20.48v29.013zM271.531 53.931v557.909h209.749c11.311 0 20.48 9.169 20.48 20.48v209.749h250.88v-788.139z" />
<glyph unicode="&#xc7;" glyph-name="graph-bar" d="M463.533 359.569h-173.396c-10.274 0-18.604-8.039-18.604-17.957v-259.65c0-9.918 8.33-17.959 18.604-17.959h173.396c10.274 0 18.604 8.039 18.604 17.957v259.812c0 9.918-8.33 17.957-18.604 17.957v-0.16zM733.867 896h-173.396c-10.274 0-18.602-8.041-18.602-17.959v-796.080c0-9.918 8.328-17.957 18.602-17.957h173.396c10.274 0 18.602 8.039 18.602 17.957v796.080c0 9.918-8.328 17.959-18.602 17.959zM1005.398 654.145h-173.226c-10.274 0-18.602-8.041-18.602-17.959v-554.226c0-9.918 8.328-17.959 18.602-17.959h173.226c10.274 0 18.602 8.039 18.602 17.957v554.226c0 9.918-8.328 17.959-18.602 17.959v0.002zM191.832 654.145h-173.228c-10.274 0-18.604-8.041-18.604-17.959v-554.226c0-9.918 8.33-17.959 18.604-17.959h173.228c10.274 0 18.604 8.039 18.604 17.957v554.226c0 9.918-8.33 17.959-18.604 17.959v0.002z" />
<glyph unicode="&#xcd;" glyph-name="element-radio" d="M512 960c282.77 0 512-229.23 512-512s-229.23-512-512-512c-282.77 0-512 229.23-512 512s229.23 512 512 512zM512 192c141.385 0 256 114.615 256 256s-114.615 256-256 256c-141.385 0-256-114.615-256-256s114.615-256 256-256z" />
<glyph unicode="&#xce;" glyph-name="storage-server-data" d="M973.995 832h-923.989c-27.758-0.668-50.005-23.329-50.005-51.186 0-0.005 0-0.010 0-0.015v-238.933c0-0.004 0-0.009 0-0.014 0-27.857 22.247-50.518 49.943-51.185l924.051-0.001c27.758 0.668 50.005 23.329 50.005 51.186 0 0.005 0 0.010 0 0.015v238.933c0 0.004 0 0.009 0 0.014 0 27.857-22.247 50.518-49.943 51.185zM137.728 612.864c-26.1 0.853-46.933 22.216-46.933 48.445 0 26.769 21.7 48.469 48.469 48.469 26.76 0 48.455-21.687 48.469-48.444 0-26.77-21.7-48.471-48.469-48.471zM973.995 405.333h-923.989c-27.758-0.668-50.005-23.329-50.005-51.186 0-0.005 0-0.010 0-0.015v-238.933c0-0.004 0-0.009 0-0.014 0-27.857 22.247-50.518 49.943-51.185l924.051-0.001c27.758 0.668 50.005 23.329 50.005 51.186 0 0.005 0 0.010 0 0.015v238.933c0 0.004 0 0.009 0 0.014 0 27.857-22.247 50.518-49.943 51.185zM137.728 186.197c-26.1 0.853-46.933 22.216-46.933 48.445 0 26.769 21.7 48.469 48.469 48.469 26.76 0 48.455-21.687 48.469-48.444 0-26.77-21.7-48.471-48.469-48.471z" />
<glyph unicode="&#xcf;" glyph-name="element-select" d="M256 960h512c141.385 0 256-114.615 256-256v-512c0-141.385-114.615-256-256-256h-512c-141.385 0-256 114.615-256 256v512c0 141.385 114.615 256 256 256zM512 256l256 320h-512l256-320z" />
<glyph unicode="&#xd0;" glyph-name="cloudflare" d="M699.311 230.329l4.865 17.484c2.331 6.169 3.68 13.292 3.68 20.721 0 12.481-3.807 24.103-10.36 33.831-10.141 13.064-26.265 21.658-44.475 21.957l-369.356 4.589c-2.423 0.020-4.562 1.181-5.874 2.956-0.776 1.144-1.227 2.518-1.227 3.996 0 0.886 0.162 1.737 0.462 2.523 1.302 3.466 4.592 5.987 8.528 6.272l372.667 4.467c49.36 5.311 90.168 36.077 108.48 78.264l21.576 54.666c0.338 1.058 0.531 2.274 0.531 3.534s-0.195 2.476-0.555 3.623c-25.625 105.442-122.001 182.789-237.024 182.789-105.653 0-195.57-65.257-229.144-156.432-18.511 11.439-41.211 19.308-65.81 19.308-60.376 0-109.319-47.412-109.319-105.899 0-9.204 1.212-18.135 3.491-26.649-83.733-1.883-150.447-68.135-150.447-149.482 0-8.034 0.651-15.924 1.905-23.618 0.347-2.592 3.356-5.226 6.998-5.226 0.020 0 0.041 0 0.060 0h682.414c3.98 0.062 7.324 2.627 8.432 6.138l-0.497 0.187zM810.55 477.714c-2.091-0.689-3.635-2.431-3.965-4.557l-14.341-48.393c-2.331-6.169-3.68-13.292-3.68-20.721 0-12.481 3.807-24.103 10.358-33.831 10.37-12.792 26.603-21.091 44.835-21.091 0.048 0 26.357-1.53 78.927-4.589 2.331-0.083 4.368-1.231 5.618-2.954 0.776-1.145 1.227-2.52 1.227-3.998 0-0.886-0.164-1.737-0.462-2.523-1.301-3.466-4.593-5.987-8.527-6.272l-81.703-4.467c-49.568-5.316-90.522-36.306-108.74-78.757l-6.213-15.858c-0.179-0.443-0.282-0.958-0.282-1.494 0-2.249 1.82-4.088 4.112-4.21h281.63c3.461 0 6.332 2.17 7.283 5.156 4.685 15.738 7.372 33.755 7.372 52.38 0 107.959-90.254 195.497-201.656 195.676l-11.792 0.501z" />
<glyph unicode="&#xd2;" glyph-name="page" d="M870.4 891.733v0 47.787c0 11.311-9.169 20.48-20.48 20.48h-389.12l-307.2-307.2v-696.32c0-11.311 9.169-20.48 20.48-20.48h675.84c11.311 0 20.48 9.169 20.48 20.48v29.013zM271.531 53.931v557.909h209.749c11.311 0 20.48 9.169 20.48 20.48v209.749h250.88v-788.139z" />
<glyph unicode="&#xd3;" glyph-name="chevron-left" d="M716.62 38.236c-5.492-4.91-11.792-9.080-18.644-12.262-7.344-3.354-15.383-5.196-23.852-5.196s-16.508 1.841-23.738 5.146c-7.031 3.224-13.388 7.396-19.008 12.382l-366.854 367.035c-5.463 5.454-9.854 11.98-12.829 19.236-3.048 7.438-4.735 15.621-4.735 24.198s1.687 16.76 4.748 24.235c2.991 7.15 7.377 13.616 12.814 19.027l367.789 365.4c10.89 10.984 25.984 17.784 42.667 17.784s31.777-6.8 42.662-17.78l41.818-43.012c5.397-5.383 9.775-11.785 12.822-18.894 3.056-7.305 4.744-15.342 4.744-23.773s-1.689-16.467-4.746-23.789c-3.067-7.024-7.441-13.367-12.816-18.703l-279.044-281.433 279.040-280.576c5.394-5.385 9.771-11.787 12.821-18.893 3.065-7.145 4.76-15.008 4.76-23.266 0-0.178-0.001-0.357-0.002-0.535 0-0.035 0.001-0.108 0.001-0.182 0-8.477-1.693-16.559-4.76-23.926-2.85-6.986-7.257-13.255-12.781-18.327l-42.021-43.895z" />
<glyph unicode="&#xd4;" glyph-name="arrow-up" d="M491.007 899.925l-388.949-388.949c-5.46-5.491-8.836-13.061-8.836-21.419s3.375-15.927 8.837-21.42l62.463-62.463c5.491-5.46 13.061-8.836 21.419-8.836s15.927 3.375 21.42 8.837l230.399 230.228v-621.568c-0.001-0.102-0.002-0.222-0.002-0.342 0-14.645 11.824-26.528 26.446-26.623h95.412c14.704 0 26.624 11.92 26.624 26.624v621.909l230.4-230.4c5.491-5.46 13.061-8.836 21.419-8.836s15.927 3.375 21.42 8.837l62.463 62.463c5.46 5.491 8.836 13.061 8.836 21.419s-3.375 15.927-8.837 21.42l-388.948 389.119c-5.401 5.38-12.851 8.706-21.077 8.706s-15.677-3.326-21.078-8.707z" />
<glyph unicode="&#xd8;" glyph-name="camera" d="M512.001 527.104c65.98 0 119.467-53.487 119.467-119.467s-53.487-119.467-119.467-119.467c-65.98 0-119.467 53.487-119.467 119.467s53.487 119.467 119.467 119.467zM976.897 774.058v0h-210.603v35.84c0 26.015-21.089 47.104-47.104 47.104h-414.379c-26.015 0-47.104-21.089-47.104-47.104v-35.328h-210.603c0 0-0.001 0-0.001 0-26.015 0-47.104-21.089-47.104-47.104 0-0.12 0-0.24 0.001-0.36v-640.664c-0.001-0.101-0.001-0.221-0.001-0.341 0-26.015 21.089-47.104 47.104-47.104 0 0 0.001 0 0.001 0h929.792c0 0 0.001 0 0.001 0 26.015 0 47.104 21.089 47.104 47.104 0 0.12 0 0.24-0.001 0.36v640.664c0 26.015-21.089 47.104-47.104 47.104zM515.073 162.901c-134.693 0-243.883 109.19-243.883 243.883s109.19 243.883 243.883 243.883c134.693 0 243.883-109.19 243.883-243.883s-109.19-243.883-243.883-243.883zM961.025 585.13h-186.368v125.952h186.368v-125.952z" />
<glyph unicode="&#xda;" glyph-name="element-number" d="M832 192l192 192h-384zM832 704l192-192h-384zM249.96 128c-109.648 0-192.348 33.932-249.96 91.429l87.347 113.108c42.744-39.588 101.285-61.267 160.755-61.267 67.833 0 101.285 33.932 101.285 72.577 0 42.415-32.523 72.577-96.639 72.577-49.249 0-88.276-14.138-122.657-47.128l-110.577 27.334v371.37h449.742v-141.384h-289.917v-121.591c29.735 29.219 78.054 49.956 132.878 49.956 105.002 0 199.782-78.233 199.782-204.536 0-135.729-101.285-222.445-262.040-222.445z" />
<glyph unicode="&#xdf;" glyph-name="save" d="M256 896v-192c0-35.346 28.654-64 64-64h320c35.346 0 64 28.654 64 64v192h37.49c16.974 0 33.253-6.743 45.255-18.745l154.51-154.51c12.002-12.002 18.745-28.281 18.745-45.255v-613.49c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v768c0 35.346 28.654 64 64 64h128zM512 896h128v-160c0-17.673-14.327-32-32-32h-64c-17.673 0-32 14.327-32 32v160zM256 448c-35.346 0-64-28.654-64-64v-192c0-35.346 28.654-64 64-64h512c35.346 0 64 28.654 64 64v192c0 35.346-28.654 64-64 64h-512zM288 384h448c17.673 0 32-14.327 32-32s-14.327-32-32-32h-448c-17.673 0-32 14.327-32 32s14.327 32 32 32zM288 256h448c17.673 0 32-14.327 32-32s-14.327-32-32-32h-448c-17.673 0-32 14.327-32 32s14.327 32 32 32z" />
<glyph unicode="&#xe5;" glyph-name="align-x-left" d="M448 704h384c35.346 0 64-28.654 64-64v-384c0-35.346-28.654-64-64-64h-384c-35.346 0-64 28.654-64 64v384c0 35.346 28.654 64 64 64zM192 960c35.346 0 64-28.654 64-64v-896c0-35.346-28.654-64-64-64s-64 28.654-64 64v896c0 35.346 28.654 64 64 64z" />
<glyph unicode="&#xe6;" glyph-name="layers" d="M1011.883 558.080l-447.829-260.267c-14.438-8.497-31.806-13.517-50.347-13.517s-35.908 5.019-50.819 13.773l-450.77 260.181c-7.29 4.311-12.102 12.132-12.102 21.077s4.812 16.766 11.989 21.015l435.655 253.161c17.935 10.569 39.513 16.813 62.549 16.813s44.615-6.244 63.135-17.131l438.54-253.122c7.29-4.311 12.102-12.132 12.102-21.077s-4.812-16.766-11.989-21.015zM1011.883 251.904l-182.784 105.643-264.875-153.6c-14.438-8.497-31.806-13.517-50.347-13.517s-35.908 5.019-50.819 13.773l-268.157 154.197-182.784-106.325c-7.29-4.311-12.102-12.132-12.102-21.077s4.812-16.766 11.989-21.015l451.356-260.499c14.438-8.497 31.806-13.517 50.347-13.517s35.908 5.019 50.819 13.773l447.357 259.327c7.29 4.311 12.102 12.132 12.102 21.077s-4.812 16.766-11.989 21.015z" />
<glyph unicode="&#xe7;" glyph-name="page-multiple" d="M911.531 741.206h-38.059v-733.867c0-9.426-7.641-17.067-17.067-17.067h-542.208v-37.205c0-9.426 7.641-17.067 17.067-17.067h580.267c9.426 0 17.067 7.641 17.067 17.067v771.584c0 9.426-7.641 17.067-17.067 17.067zM818.688 61.953v772.096c0 9.426-7.641 17.067-17.067 17.067h-37.547v-733.867c0-9.426-7.641-17.067-17.067-17.067h-542.208v-38.059c0-9.426 7.641-17.067 17.067-17.067h580.267c9.426 0 17.067 7.641 17.067 17.067zM709.803 171.35v771.584c0 9.426-7.641 17.067-17.067 17.067h-580.267c-9.426 0-17.067-7.641-17.067-17.067v-771.584c0-9.426 7.641-17.067 17.067-17.067h580.267c9.426 0 17.067 7.641 17.067 17.067z" />
<glyph unicode="&#xf7;" glyph-name="add-playlist" horiz-adv-x="964" d="M783.059 329.412c33.267 0 60.235-26.968 60.235-60.235v-60.235h60.235c33.267 0 60.235-26.968 60.235-60.235s-26.968-60.235-60.235-60.235h-60.235v-60.235c0-33.267-26.968-60.235-60.235-60.235s-60.235 26.968-60.235 60.235v60.235h-60.235c-33.267 0-60.235 26.968-60.235 60.235s26.968 60.235 60.235 60.235h60.235v60.235c0 33.267 26.968 60.235 60.235 60.235zM481.882 269.176c33.25 0 60.235-26.925 60.235-60.235s-26.985-60.235-60.235-60.235h-421.647c-33.25 0-60.235 26.925-60.235 60.235s26.985 60.235 60.235 60.235h421.647zM722.824 510.118c33.31 0 60.235-26.985 60.235-60.235s-26.925-60.235-60.235-60.235h-662.588c-33.25 0-60.235 26.985-60.235 60.235s26.985 60.235 60.235 60.235h662.588zM722.824 751.059c33.31 0 60.235-26.985 60.235-60.235s-26.925-60.235-60.235-60.235h-662.588c-33.25 0-60.235 26.985-60.235 60.235s26.985 60.235 60.235 60.235h662.588z" />
<glyph unicode="&#xf8;" glyph-name="speed-optimize" d="M475.793 894.803c-266.855-19.796-475.793-238.971-475.793-506.45 0-152.123 67.582-288.622 174.648-381.687 5.027-4.328 10.882-6.666 17.288-6.666 9.379 0 17.575 5.012 22.004 12.477l43.671 74.793c2.042 3.51 3.246 7.719 3.246 12.207 0 6.912-2.858 13.164-7.468 17.66-73.006 68.243-118.449 164.703-118.449 271.671 0 206.208 168.886 373.374 377.217 373.374s377.217-167.165 377.217-373.374c0-106.966-45.444-203.427-118.265-271.499-4.794-4.668-7.653-10.919-7.653-17.832 0-4.487 1.204-8.697 3.311-12.327l43.692-74.554c4.47-7.53 12.613-12.505 21.929-12.505 6.339 0 12.134 2.303 16.579 6.11 107.517 93.526 175.031 229.964 175.031 382.010 0 280.443-229.684 507.789-513.015 507.789-12.383 0-24.663-0.434-36.826-1.288l1.635 0.091zM462.364 299.645l-58.544 66.013c-5.285 5.937-8.51 13.778-8.51 22.366 0 11.288 5.573 21.288 14.146 27.45l289.953 206.469c5.48 3.846 12.303 6.148 19.67 6.148 10.164 0 19.294-4.382 25.566-11.341l13.156-14.968c5.081-5.878 8.173-13.571 8.173-21.978 0-8.805-3.391-16.825-8.951-22.853l-244.413-258.348c-6.261-6.571-15.116-10.663-24.938-10.663-10.251 0-19.45 4.458-25.727 11.521l0.42 0.186z" />
<glyph unicode="&#x131;" glyph-name="chevron-down" d="M921.583 588.559c5.562-5.106 9.969-11.375 12.847-18.431 2.739-6.961 4.255-14.629 4.255-22.65 0-0.738-0.013-1.472-0.038-2.204 0.004-0.035 0.005-0.201 0.005-0.368 0-8.27-1.695-16.144-4.757-23.293-2.949-6.896-7.151-13.123-12.321-18.397l-366.241-367.094c-5.618-4.978-12.096-9.16-19.153-12.272-7.479-3.363-15.665-5.215-24.282-5.215s-16.803 1.851-24.179 5.178c-7.157 3.155-13.635 7.336-19.334 12.377l-366.001 367.035c-5.157 5.267-9.359 11.493-12.31 18.382-3.064 7.134-4.76 14.985-4.76 23.232 0 0.19 0.001 0.38 0.003 0.57-0.001 0.053-0.001 0.149-0.001 0.246 0 8.455 1.694 16.514 4.76 23.857 2.613 7.223 6.867 13.729 12.297 19.037l42.506 43.359c5.538 4.921 11.896 9.094 18.81 12.263 7.349 3.353 15.388 5.195 23.857 5.195s16.508-1.841 23.738-5.146c7.034-3.211 13.393-7.384 19.004-12.379l281.695-281.021 280.576 279.723c10.689 10.554 25.384 17.073 41.602 17.073 0.314 0 0.628-0.002 0.941-0.007 0.026 0.001 0.112 0.001 0.198 0.001 8.523 0 16.651-1.693 24.065-4.762 6.98-2.849 13.25-7.256 18.322-12.78l43.895-41.509z" />
<glyph unicode="&#x152;" glyph-name="pin" d="M297.155 870.486c125.418 101.021 304.273 101.021 429.691 0 123.952-99.841 157.486-274.697 79.264-413.31l-294.109-521.176-294.109 521.176c-78.222 138.613-44.689 313.469 79.264 413.31zM512 486.4c70.692 0 128 57.308 128 128s-57.308 128-128 128c-70.692 0-128-57.308-128-128s57.308-128 128-128z" />
<glyph unicode="&#x153;" glyph-name="settings-slider-control" horiz-adv-x="978" d="M768 256h129.906c34.293 0 62.094-27.8 62.094-62.094v-3.813c0-34.293-27.8-62.094-62.094-62.094h-129.906v-1.906c0-34.293-27.8-62.094-62.094-62.094h-3.813c-34.293 0-62.094 27.8-62.094 62.094v1.906h-513.906c-34.293 0-62.094 27.8-62.094 62.094v3.813c0 34.293 27.8 62.094 62.094 62.094h513.906v1.906c0 34.293 27.8 62.094 62.094 62.094h3.813c34.293 0 62.094-27.8 62.094-62.094v-1.906zM448 768v1.906c0 34.293 27.8 62.094 62.094 62.094h3.813c34.293 0 62.094-27.8 62.094-62.094v-1.906h321.906c34.293 0 62.094-27.8 62.094-62.094v-3.813c0-34.293-27.8-62.094-62.094-62.094h-321.906v-1.906c0-34.293-27.8-62.094-62.094-62.094h-3.813c-34.293 0-62.094 27.8-62.094 62.094v1.906h-321.906c-34.293 0-62.094 27.8-62.094 62.094v3.813c0 34.293 27.8 62.094 62.094 62.094h321.906zM256 512v1.906c0 34.293 27.8 62.094 62.094 62.094h3.813c34.293 0 62.094-27.8 62.094-62.094v-1.906h513.906c34.293 0 62.094-27.8 62.094-62.094v-3.813c0-34.293-27.8-62.094-62.094-62.094h-513.906v-1.906c0-34.293-27.8-62.094-62.094-62.094h-3.813c-34.293 0-62.094 27.8-62.094 62.094v1.906h-129.906c-34.293 0-62.094 27.8-62.094 62.094v3.813c0 34.293 27.8 62.094 62.094 62.094h129.906z" />
<glyph unicode="&#x192;" glyph-name="align-x-center" d="M576 704h128c35.346 0 64-28.654 64-64v-384c0-35.346-28.654-64-64-64h-128v-192c0-35.346-28.654-64-64-64s-64 28.654-64 64v192h-128c-35.346 0-64 28.654-64 64v384c0 35.346 28.654 64 64 64h128v192c0 35.346 28.654 64 64 64s64-28.654 64-64v-192z" />
<glyph unicode="&#x2c6;" glyph-name="unpublish" d="M586.039 394.981l67.882 67.882c12.497 12.497 12.497 32.758 0 45.255l-45.255 45.255c-12.497 12.497-32.758 12.497-45.255 0l-67.882-67.882-67.882 67.882c-12.497 12.497-32.758 12.497-45.255 0l-45.255-45.255c-12.497-12.497-12.497-32.758 0-45.255l67.882-67.882-67.882-67.882c-12.497-12.497-12.497-32.758 0-45.255l45.255-45.255c12.497-12.497 32.758-12.497 45.255 0l67.882 67.882 67.882-67.882c12.497-12.497 32.758-12.497 45.255 0l45.255 45.255c12.497 12.497 12.497 32.758 0 45.255l-67.882 67.882zM707.353 621.728c87.884 0 160.254-63.463 170.904-145.972 83.204-16.805 145.664-87.332 145.738-172.055-2.662-97.469-86.2-175.7-189.092-175.7h-585.729c-134.486 0-249.174 105.007-249.172 233.746 0.964 124.682 104.79 225.987 234.954 231.337 13.786 98.746 102.292 174.917 209.42 174.917 99.562 0 183.040-65.792 204.508-156.092 18.238 6.353 37.93 9.82 58.468 9.82z" />
<glyph unicode="&#x2c7;" glyph-name="post-pin" d="M536.811 853.105l109.038 106.895 378.152-376.456-109.038-109.219c-32.479 20.14-67.665 28.66-105.558 25.562s-69.985-18.59-96.278-46.476l-46.399-44.152c-26.293-27.886-41.372-60.806-45.239-98.762s4.253-73.2 24.359-105.733l-106.718-106.895-143.837 144.076-167.036-167.314c-10.826-10.844-31.706-27.886-62.639-51.124-38.666-27.886-71.918-49.574-99.758-65.066-34.026-20.14-54.905-26.724-62.639-19.752s-1.547 28.273 18.56 63.905c15.466 27.886 37.119 60.419 64.959 97.6 23.2 32.533 40.212 54.222 51.039 65.066l167.036 164.99-143.837 144.076 109.038 109.219c30.933-20.14 65.345-28.66 103.238-25.562s70.758 18.59 98.598 46.476l44.079 44.152c27.84 27.886 43.692 60.806 47.559 98.762s-5.026 73.2-26.679 105.733z" />
<glyph unicode="&#x2d8;" glyph-name="folder" d="M0 768c0 35.346 28.862 64 63.41 64h257.18c35.020 0 76.361-25.903 92.040-57.261l35.369-70.739h-448v64zM0 640h767.625c70.9 0 128.375-56.796 128.375-127.975v-384.049c0-70.679-57.412-127.975-128.375-127.975h-639.25c-70.9 0-128.375 56.796-128.375 127.975v512.025z" />
<glyph unicode="&#x2d9;" glyph-name="automate" d="M931.584 741.355c94.454-135.064 118.112-307.338 63.563-462.862s-180.634-275.28-338.763-321.757c37.684 56.421 72.377 114.782 103.936 174.843 120.064 222.842 171.264 468.98 171.264 609.776zM195.456 696.428c-59.991-31.612-118.309-66.303-174.72-103.933 44.483 151.22 156.145 273.521 302.706 331.549s311.682 45.313 447.63-34.469c11.648-6.4 22.528-14.208 34.048-22.015-141.056 0.64-386.816-51.583-609.664-171.131zM529.024-64h-17.024c-282.77 0-512 229.224-512 511.986 0 5.76 0 11.392 0 17.152 181.888 56.447 569.216 193.531 646.016 116.605s-60.416-464.116-116.992-645.743z" />
<glyph unicode="&#x2da;" glyph-name="arrows-out" d="M106.101 270.054l-42.263-253.425c-0.101-0.652-0.159-1.406-0.159-2.171 0-4.032 1.598-7.691 4.194-10.378l-0.005 0.005c2.682-2.593 6.341-4.191 10.373-4.191 0.765 0 1.519 0.058 2.253 0.169l252.15 42.701c6.673 1.588 11.559 7.498 11.559 14.547 0 3.826-1.438 7.317-3.804 9.959l-49.418 49.416 132.612 132.612c2.511 2.666 4.054 6.267 4.054 10.229s-1.543 7.564-4.061 10.237l-90.94 91.239c-2.666 2.511-6.267 4.054-10.229 4.054s-7.564-1.543-10.237-4.061l-132.306-132.605-49.431 49.431c-2.628 2.354-6.118 3.792-9.944 3.792-7.051 0-12.96-4.886-14.528-11.457zM917.601 625.778l42.263 253.425c0.101 0.652 0.159 1.406 0.159 2.171 0 4.032-1.598 7.691-4.194 10.378l0.005-0.005c-2.701 2.694-6.429 4.36-10.545 4.36-0.811 0-1.607-0.064-2.384-0.189l-251.847-42.848c-6.673-1.588-11.559-7.498-11.559-14.547 0-3.826 1.438-7.317 3.804-9.959l49.418-49.416-133.359-132.612c-2.511-2.666-4.054-6.267-4.054-10.229s1.543-7.564 4.061-10.237l91.687-91.387c2.666-2.511 6.267-4.054 10.229-4.054s7.564 1.543 10.237 4.061l132.605 132.605 49.431-49.431c2.625-2.338 6.103-3.767 9.916-3.767 7.095 0 13.034 4.949 14.556 11.582zM689.712 42.165l253.873-41.963c0.652-0.101 1.406-0.159 2.171-0.159 4.032 0 7.691 1.598 10.378 4.194l-0.005-0.005c2.593 2.682 4.191 6.341 4.191 10.373 0 0.765-0.058 1.519-0.169 2.253l-43.149 251.85c-1.588 6.673-7.498 11.559-14.547 11.559-3.826 0-7.317-1.438-9.959-3.804l-49.416-49.418-132.612 133.359c-2.666 2.511-6.267 4.054-10.229 4.054s-7.564-1.543-10.237-4.061l-91.387-91.687c-2.511-2.666-4.054-6.267-4.054-10.229s1.543-7.564 4.061-10.237l132.605-132.605-49.431-49.431c-2.338-2.625-3.767-6.103-3.767-9.916 0-7.095 4.949-13.034 11.582-14.556zM333.99 853.667l-253.425 42.263c-0.612 0.090-1.319 0.14-2.037 0.14-4.097 0-7.809-1.65-10.509-4.322l0.001 0.001c-2.682-2.698-4.34-6.419-4.34-10.525 0-0.764 0.058-1.517 0.169-2.25l42.85-251.85c1.588-6.673 7.498-11.559 14.547-11.559 3.826 0 7.317 1.438 9.959 3.804l49.416 49.418 132.612-132.612c2.666-2.511 6.267-4.054 10.229-4.054s7.564 1.543 10.237 4.061l91.387 90.94c2.511 2.666 4.054 6.267 4.054 10.229s-1.543 7.564-4.061 10.237l-132.755 132.306 49.431 49.431c2.338 2.625 3.767 6.103 3.767 9.916 0 7.095-4.949 13.034-11.582 14.556z" />
<glyph unicode="&#x2db;" glyph-name="graph-bar-2" d="M569.856 960c-10.085 0-18.261-8.176-18.261-18.261-0.035-0.409-0.055-0.885-0.055-1.365s0.020-0.956 0.059-1.427l-0.004 0.062v-433.493c0-10.085 8.176-18.261 18.261-18.261h433.152c0.409-0.035 0.885-0.055 1.365-0.055s0.956 0.020 1.427 0.059c10.024-0.004 18.2 8.172 18.2 18.257-2.666 249.806-204.366 451.626-453.872 454.483zM918.357 400.213c0 10.085-8.176 18.261-18.261 18.261h-398.336c-10.085 0-18.261 8.176-18.261 18.261v397.141c0.028 0.408 0.044 0.885 0.044 1.365s-0.016 0.957-0.048 1.429c0.003 10.021-8.172 18.197-18.258 18.197h-6.144c-0.051 0-0.111 0-0.171 0-253.739 0-459.435-205.696-459.435-459.435s205.696-459.435 459.435-459.435c253.739 0 459.435 205.696 459.435 459.435 0 1.536 0 2.901 0 4.437s0 0 0 0z" />
<glyph unicode="&#x2dc;" glyph-name="chevron-right" d="M308.816 857.398c5.489 4.917 11.79 9.088 18.646 12.264 7.34 3.363 15.379 5.211 23.85 5.211s16.51-1.848 23.736-5.162c7.036-3.211 13.395-7.384 19.006-12.379l364.98-367.037c5.487-5.503 9.971-12.010 13.152-19.22 3.337-7.412 5.188-15.597 5.188-24.214s-1.851-16.803-5.178-24.179c-3.217-7.176-7.697-13.623-13.162-19.084l-365.91-365.398c-10.689-10.554-25.384-17.073-41.602-17.073-0.314 0-0.628 0.002-0.941 0.007 0.015-0.001-0.024-0.001-0.062-0.001-8.512 0-16.628 1.693-24.030 4.761-7.018 2.679-13.345 6.922-18.512 12.289l-43.877 43.024c-4.912 5.491-9.082 11.792-12.263 18.645-3.364 7.341-5.212 15.381-5.212 23.851s1.848 16.51 5.162 23.736c3.219 7.034 7.392 13.392 12.381 19.008l281.020 281.351-279.723 280.576c-5.394 5.385-9.771 11.787-12.821 18.893-3.381 7.189-5.369 15.135-5.609 23.519-0.003 0.196-0.003 0.329-0.003 0.462 0 8.478 1.694 16.561 4.761 23.928 2.85 6.986 7.257 13.255 12.781 18.327l43.387 43.895z" />
<glyph unicode="&#x2dd;" glyph-name="chevron-up" d="M102.581 212.996c-4.926 5.536-9.099 11.895-12.264 18.811-3.343 7.338-5.179 15.366-5.179 23.822 0 8.746 1.964 17.033 5.474 24.444 3.18 6.706 7.231 12.776 12.035 18.159l366.185 365.664c5.619 4.975 12.097 9.157 19.152 12.272 7.482 3.354 15.667 5.199 24.283 5.199s16.801-1.845 24.181-5.162c7.155-3.158 13.632-7.339 19.333-12.378l366-367.035c5.397-5.383 9.775-11.785 12.822-18.894 2.75-6.785 4.259-14.202 4.259-21.972 0-0.453-0.005-0.905-0.015-1.356 0.002-0.015 0.002-0.111 0.002-0.208 0-8.455-1.694-16.514-4.76-23.857-2.613-7.223-6.867-13.729-12.297-19.037l-42.506-43.359c-5.537-4.924-11.896-9.096-18.811-12.264-7.346-3.363-15.385-5.211-23.856-5.211s-16.51 1.848-23.736 5.162c-6.969 3.225-13.27 7.396-18.832 12.376l-281.869 281.025-280.576-279.723c-10.714-10.555-25.431-17.072-41.671-17.072-0.29 0-0.58 0.002-0.869 0.006 0.011-0.001-0.027-0.001-0.066-0.001-8.512 0-16.628 1.693-24.030 4.761-6.981 2.849-13.251 7.256-18.323 12.78l-44.066 41.509z" />
<glyph unicode="&#x3a9;" glyph-name="beehive" d="M406.965 427.211l203.748-186.748 52.686 55.062 62.689-119.69 233.911 172.109v-155.952l-448-255.992-303.597 173.476 198.562 317.736zM318.225 508.513l31.022-28.427-206.878-332.89-78.369 44.796v32.527l254.225 283.994zM960 605.425v-163.029l-206.724-150.698-33.078 63.171 239.803 250.556zM512 960l442.415-252.804-271.715-280.653-167.693 320.287-124.090-199.686-78.247 71.705-248.671-278.588v363.747l448 255.992zM508.993 590.513l116.664-222.858-18.288-18.89-158.61 145.353 60.235 96.396z" />
<glyph unicode="&#x3c0;" glyph-name="academy" d="M487.166 82.894c-66.404 0-348.164 62.974-348.164 189.082v141.312l337.148-136.549c3.235-1.348 6.993-2.133 10.938-2.133s7.704 0.783 11.127 2.201l333.233 134.943 3.724-1.843v-138.239c0-126.104-281.604-189.082-348.010-189.082l0.004 0.308zM1023.687 64l-65.319 78.49-65.474-78.49v363.569c0 3.379 0 16.742 0 16.742l-183.391 92.159 314.497-69.12-0.313-403.351zM949.057 520.96l-358.248 69.58c-4.658 0.072-7.647-2.885-7.647-6.532 0-2.16 1.045-4.075 2.665-5.281l193.028-126.732-291.689-118.119-439.014 177.883c-39.341 15.941-58.311 60.755-42.371 100.097 7.812 19.28 23.105 34.569 42.386 42.377l438.999 177.767 461.854-187.022c34.251-13.869 50.773-52.879 36.904-87.129-6.793-16.777-20.094-30.085-36.867-36.889z" />
<glyph unicode="&#x2013;" glyph-name="recaptcha" d="M114.335 124.187c-38.041-38.154-75.279-75.503-113.445-113.782v7.172c0 130.93 0.028 261.861-0.040 392.791-0.007 14.057-1.071 28.124-0.808 42.171 2.28 121.833 41.967 229.877 119.48 323.798 19.492 23.619 41.184 45.108 64.736 64.685 0.938 0.779 1.846 1.601 2.712 2.459 0.304 0.301 0.441 0.772 0.8 1.433-37.48 37.561-74.974 75.135-112.467 112.709 0.162 0.473 0.324 0.945 0.486 1.418h5.583c130.729 0 261.457-0.032 392.187 0.044 14.935 0.008 29.878 1.111 44.804 0.885 118.38-1.799 223.831-39.896 316.319-113.972 26.184-20.971 49.824-44.586 71.313-70.366 1.057-1.268 2.177-2.484 3.544-4.039 37.904 38.044 75.565 75.844 113.225 113.646 0.413-0.171 0.824-0.34 1.236-0.51v-435.802h-434.84c-0.515 0.627-1.032 1.254-1.546 1.88 1.607 0.878 3.531 1.437 4.776 2.681 41.474 41.477 82.844 83.060 124.384 124.469 3.17 3.16 3.269 5.171 0.79 8.74-42.557 61.26-100.337 97.799-174.249 108.273-9.338 1.323-18.663 2.781-28.036 3.77-6.083 0.642-6.14 0.313-6.132-5.734 0.066-54.452 0.14-108.904 0.211-163.356 0.003-1.757 0-3.512 0-5.269l-2.322-1.681c-0.946 1.753-1.543 3.855-2.89 5.209-41.035 41.268-82.179 82.427-123.169 123.742-3.057 3.081-5.071 3.514-8.748 0.971-57.225-39.573-93.054-93.281-106.403-161.784-2.449-12.569-3.991-25.32-5.808-38.007-0.971-6.785-0.603-7.092 6.098-7.086 54.153 0.054 108.305 0.117 162.457 0.177 1.663 0.002 3.325 0.001 6.305 0.001-1.874-1.993-2.994-3.246-4.178-4.434-41.092-41.212-82.137-82.471-123.375-123.535-3.613-3.598-3.642-5.929-0.847-9.944 41.284-59.287 97.11-95.568 168.433-107.409 10.496-1.743 21.026-3.747 31.614-4.383 22.49-1.348 44.651 1.572 66.59 6.665 38.584 8.955 71.277 28.858 101.054 54.209 22.663 19.296 41.229 42.027 55.808 68.022 0.29 0.518 0.675 0.982 1.395 2.017 1.328-1.186 2.569-2.178 3.678-3.299 47.473-48.004 94.944-96.009 142.393-144.039 12.558-12.713 24.964-25.578 37.617-38.196 2.631-2.624 2.641-4.311 0.394-7.201-32.139-41.306-69.537-77.049-112.435-106.946-56.715-39.528-118.882-66.473-186.51-80.653-25.087-5.259-50.414-8.57-76.035-9.951-25.784-1.389-51.524-1.133-77.195 1.293-55.054 5.206-107.949 18.945-158.537 41.439-34.715 15.435-66.629 35.527-97.999 56.924-34.407 23.469-62.862 52.803-89.716 84.102-0.788 0.919-1.461 1.938-2.691 3.585z" />
<glyph unicode="&#x2014;" glyph-name="hustle" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM862.891 419.328c-4.096-39.595-19.456-114.005-77.824-159.061-34.957-26.992-79.245-43.462-127.358-44.031-0.805-0.012-1.601-0.019-2.398-0.019-19.34 0-37.801 3.767-54.688 10.607-33.156 14.157-67.29 50.85-65.412 92.834v1.877l17.067 93.184c2.684 11.537 4.293 24.827 4.436 38.469 0.001 23.654-13.311 26.555-23.21 26.555-28.331 0-66.219-37.205-77.653-96.939l-23.040-110.592h-7.851c-0.173-0.001-0.379-0.002-0.584-0.002-28.781 0-54.469 13.242-71.304 33.966-20.101 24.234-24.027 58.879-12.763 109.226l63.829 256-20.821-11.264c-76.89-45.504-127.642-128.014-127.642-222.379 0-142.167 115.196-257.429 257.338-257.536 0.138 0 0.29 0 0.443 0 24.827 0 48.825 3.553 71.511 10.179l6.563 1.939 36.181-89.429-9.899-3.072c-32.113-10.603-69.078-16.718-107.47-16.718-195.394 0-353.792 158.398-353.792 353.792 0 133.919 74.407 250.459 184.134 310.535 25.211 13.761 52.281 24.364 80.775 31.338l6.231 1.501 7.339 35.157h113.835l-50.176-256-2.901-15.019 12.8 8.363c20.948 14.322 46.83 22.87 74.709 22.87 0.075 0 0.151 0 0.226 0 55.626 0 90.271-36.693 90.271-95.573-0.524-21.184-2.675-41.483-6.338-61.251l-14.824-78.013c-0.309-1.655-0.486-3.559-0.486-5.504 0-6.907 2.23-13.294 6.010-18.479 4.456-4.2 10.577-6.837 17.315-6.837 0.792 0 1.576 0.036 2.349 0.108 63.901-0.007 86.258 74.062 89.33 117.923 0.662 6.619 1.040 14.305 1.040 22.079 0 54.114-18.303 103.953-49.057 143.665-35.194 40.291-79.737 72.393-130.243 92.845l16.979 94.18c69.482-23.968 128.484-63.065 175.37-113.566 42.976-47.054 71.974-107.047 80.465-173.451 1.803-13.898 2.737-28.141 2.737-42.602 0-11.217-0.562-22.302-1.661-33.23z" />
<glyph unicode="&#x2018;" glyph-name="community-people" d="M1007.275 365.996l-174.251 82.773c41.455 28.313 68.313 75.348 68.313 128.655 0 1.33-0.017 2.656-0.050 3.978 0.004 82.919-57.852 150.162-129.191 150.162-25.188-0.030-48.474-8.152-67.404-21.904 11.888-28.284 18.593-61.357 18.593-95.996 0-0.070 0-0.141 0-0.211 0-0.031 0-0.081 0-0.131 0-51.921-15.274-100.275-41.573-140.813 9.235-8.759 19.124-17.128 30.090-23.927l0.561-0.324 111.787-53.248c30.676-16.277 51.214-48.016 51.214-84.552 0-0.575-0.005-1.148-0.015-1.721l0.001-144.981h119.467c16.264 1.302 28.97 14.821 28.97 31.308 0 0.995-0.046 1.978-0.137 2.949l0.009 136.409c0.025 0.492 0.040 1.069 0.040 1.649 0 12.584-6.809 23.577-16.945 29.496zM314.881 449.11c9.565 6.404 17.855 13.609 25.152 21.725-26.524 40.018-42.391 89.074-42.391 141.835 0 0.278 0 0.557 0.001 0.835 0-0.022 0 0.003 0 0.028 0 35.404 7.023 69.167 19.751 99.973-18.433 10.702-40.452 18.255-64.218 18.569-71.416 0.001-129.272-67.242-129.272-150.357-0.034-1.201-0.053-2.615-0.053-4.033 0-53.923 27.603-101.4 69.45-129.070l-174.869-82.619c-10.863-5.857-18.121-17.153-18.121-30.144 0-0.503 0.011-1.003 0.032-1.5l-0.002-138.169c-0.081-0.847-0.127-1.83-0.127-2.825 0-16.487 12.706-30.007 28.859-31.301l115.823-0.007v145.067c-0.006 0.392-0.009 0.856-0.009 1.32 0 37.149 21.309 69.32 52.37 84.959zM800.939 346.71l-214.699 102.229c28.689 18.918 51.133 45.202 64.919 76.188 12.279 26.534 19.194 56.282 19.22 87.643-0.152 18.264-2.571 35.885-6.988 52.696-18.612 76.678-79.711 135.046-153.268 135.046s-131.584-56.491-151.381-132.949c-4.769-16.314-7.621-35.084-7.849-54.485-0.002-0.29-0.002-0.481-0.002-0.673 0-32.828 7.622-63.876 21.193-91.47 14.181-29.538 36.602-54.589 64.276-72.084l-60.551-29.096-155.648-72.533c-13.416-7.233-22.379-21.184-22.379-37.228 0-0.472 0.008-0.942 0.023-1.411l-0.002-170.598c-0.112-1.107-0.176-2.392-0.176-3.692 0-20.471 15.808-37.25 35.883-38.796l553.946-0.008c20.092 1.681 35.762 18.402 35.762 38.784 0 0.946-0.034 1.884-0.1 2.812l0.007 170.542c0.016 0.427 0.024 0.929 0.024 1.432 0 15.977-8.889 29.878-21.99 37.028z" />
<glyph unicode="&#x2019;" glyph-name="indent-more" d="M910.421 896h-802.667c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-0.045 0-0.097 0-0.149 0-24.165 19.59-43.755 43.755-43.755 0 0 0 0 0 0h802.667c24.165 0 43.755 19.59 43.755 43.755v40.469c0 24.165-19.59 43.755-43.755 43.755zM910.421 127.979h-802.667c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-0.045 0-0.097 0-0.149 0-24.165 19.59-43.755 43.755-43.755 0 0 0 0 0 0h802.667c24.165 0 43.755 19.59 43.755 43.755v40.32c0 24.165-19.59 43.755-43.755 43.755zM954.325 340.181c0 24.165-19.59 43.755-43.755 43.755h-498.923c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-24.165 19.59-43.755 43.755-43.755h498.773c24.165 0 43.755 19.59 43.755 43.755v0 40.32zM954.325 594.795c0 24.165-19.59 43.755-43.755 43.755h-498.923c-24.165 0-43.755-19.59-43.755-43.755v-40.469c0-24.165 19.59-43.755 43.755-43.755h498.773c24.165 0 43.755 19.59 43.755 43.755v0 40.32zM71.317 347.2c2.052 0.012 3.903 0.868 5.225 2.237l159.639 92.141c2.235 1.239 3.726 3.58 3.733 6.271 0 0.013 0 0.027 0 0.041 0 2.96-1.757 5.509-4.285 6.661l-0.046 0.019-159.189 92.139c-1.314 1.268-3.105 2.051-5.079 2.051-3.974 0-7.209-3.17-7.315-7.119v-187.124c0-4.041 3.276-7.317 7.317-7.317z" />
<glyph unicode="&#x201a;" glyph-name="upfront" horiz-adv-x="1000" d="M604.501 902.144l82.603-15.189 16.043-200.021-71.68 47.616-173.568 31.915zM166.912 374.955l3.755 125.952-90.112-84.139zM823.808 379.733l153.6 74.069-19.968 254.464-168.789 113.493zM831.829 277.333v0c-59.051-28.672-142.848-68.267-233.301-111.616l184.32-89.429c113.835 54.443 217.429 104.789 217.088 107.691l-13.653 168.277zM175.787 635.733v0l311.296 287.403-196.949 36.864-271.872-251.733-7.68-226.133zM5.973 345.6l-5.973-173.739 488.107-235.861s84.139 39.595 183.979 86.869z" />
<glyph unicode="&#x201c;" glyph-name="send" d="M1023.402 916.159l-147.45-837.616c-5.008-28.45-32.131-47.453-60.581-42.445-2.635 0.464-5.23 1.129-7.763 1.99l-207.048 70.371c-14.31 4.864-30.141 0.626-40.108-10.735l-130.758-149.054c-13.607-15.511-37.212-17.055-52.723-3.447-8.086 7.094-12.723 17.328-12.723 28.085v200.199c0 8.707 3.041 17.14 8.597 23.843l466.486 562.749-580.279-485.010c-10.358-8.657-24.581-11.054-37.204-6.268l-197.428 74.848c-19.294 7.314-29.005 28.885-21.69 48.178 3.067 8.090 8.847 14.865 16.352 19.168l948.942 544.034c17.901 10.262 40.731 4.071 50.994-13.83 4.347-7.583 5.898-16.45 4.383-25.059z" />
<glyph unicode="&#x201d;" glyph-name="indent-less" d="M910.047 896h-802.667c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-0.045 0-0.097 0-0.149 0-24.165 19.59-43.755 43.755-43.755 0 0 0 0 0 0h802.667c24.165 0 43.755 19.59 43.755 43.755v40.469c0 24.165-19.59 43.755-43.755 43.755zM910.047 127.979h-802.667c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-0.045 0-0.097 0-0.149 0-24.165 19.59-43.755 43.755-43.755 0 0 0 0 0 0h802.667c24.165 0 43.755 19.59 43.755 43.755v40.32c0 24.165-19.59 43.755-43.755 43.755zM953.951 340.181c0 24.165-19.59 43.755-43.755 43.755h-498.923c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-24.165 19.59-43.755 43.755-43.755h498.773c24.165 0 43.755 19.59 43.755 43.755v0 40.32zM953.951 594.795c0 24.165-19.59 43.755-43.755 43.755h-498.923c-24.165 0-43.755-19.59-43.755-43.755v-40.469c0-24.165 19.59-43.755 43.755-43.755h498.773c24.165 0 43.755 19.59 43.755 43.755v0 40.32zM63.625 448c0-0.012 0-0.026 0-0.040 0-2.96 1.757-5.509 4.285-6.661l0.046-0.019 159.040-91.84c1.295-1.292 3.085-2.091 5.061-2.091 0.007 0 0.012 0 0.019 0-0.001 0 0 0 0.001 0 3.989 0 7.231 3.191 7.315 7.161v186.974c0 4.041-3.276 7.317-7.317 7.317-0.007 0-0.014 0-0.021 0-2.049 0-3.897-0.86-5.201-2.236l-159.64-92.141c-2.16-1.262-3.588-3.569-3.588-6.209 0-0.075 0.001-0.148 0.004-0.222z" />
<glyph unicode="&#x201e;" glyph-name="drag" d="M352 704c-53.019 0-96 42.981-96 96s42.981 96 96 96c53.019 0 96-42.981 96-96s-42.981-96-96-96zM672 704c-53.019 0-96 42.981-96 96s42.981 96 96 96c53.019 0 96-42.981 96-96s-42.981-96-96-96zM352 352c-53.019 0-96 42.981-96 96s42.981 96 96 96c53.019 0 96-42.981 96-96s-42.981-96-96-96zM672 352c-53.019 0-96 42.981-96 96s42.981 96 96 96c53.019 0 96-42.981 96-96s-42.981-96-96-96zM352 0c-53.019 0-96 42.981-96 96s42.981 96 96 96c53.019 0 96-42.981 96-96s-42.981-96-96-96zM672 0c-53.019 0-96 42.981-96 96s42.981 96 96 96c53.019 0 96-42.981 96-96s-42.981-96-96-96z" />
<glyph unicode="&#x2020;" glyph-name="pause" d="M320 832h64c35.346 0 64-28.654 64-64v-640c0-35.346-28.654-64-64-64h-64c-35.346 0-64 28.654-64 64v640c0 35.346 28.654 64 64 64zM640 832h64c35.346 0 64-28.654 64-64v-640c0-35.346-28.654-64-64-64h-64c-35.346 0-64 28.654-64 64v640c0 35.346 28.654 64 64 64z" />
<glyph unicode="&#x2021;" glyph-name="smush" d="M955.733 702.805v0l-442.709-766.805c282.175 0.786 510.618 229.714 510.618 511.998 0 93.773-25.209 181.658-69.22 257.247zM295.765 628.565l216.235-374.443 216.235 374.443h-432.469zM131.243 789.333h762.368c-93.934 105.383-230.060 171.426-381.611 171.426s-287.677-66.043-381.167-170.92zM68.267 702.293v0c-42.518-73.027-67.616-160.731-67.616-254.297 0-282.121 228.18-510.948 510.054-511.996z" />
<glyph unicode="&#x2022;" glyph-name="align-x-right" d="M832 960c35.346 0 64-28.654 64-64v-896c0-35.346-28.654-64-64-64s-64 28.654-64 64v896c0 35.346 28.654 64 64 64zM192 704h384c35.346 0 64-28.654 64-64v-384c0-35.346-28.654-64-64-64h-384c-35.346 0-64 28.654-64 64v384c0 35.346 28.654 64 64 64z" />
<glyph unicode="&#x2026;" glyph-name="more" d="M236.715 448c0-65.32-52.952-118.272-118.272-118.272s-118.272 52.952-118.272 118.272c0 65.32 52.952 118.272 118.272 118.272s118.272-52.952 118.272-118.272zM630.272 448c0-65.32-52.952-118.272-118.272-118.272s-118.272 52.952-118.272 118.272c0 65.32 52.952 118.272 118.272 118.272s118.272-52.952 118.272-118.272zM1024 448c0-65.32-52.952-118.272-118.272-118.272s-118.272 52.952-118.272 118.272c0 65.32 52.952 118.272 118.272 118.272s118.272-52.952 118.272-118.272z" />
<glyph unicode="&#x2030;" glyph-name="undo" d="M322.35 672.58c1.28 1.166 2.571 2.322 3.872 3.467 69.009 60.732 161.584 87.586 253.821 71.323 165.344-29.155 275.747-186.827 246.593-352.171s-186.827-275.747-352.171-246.593c-77.947 13.744-145.751 56.436-191.797 118.844-26.232 35.553-76.318 43.109-111.871 16.877s-43.109-76.318-16.877-111.871c70.189-95.128 173.971-160.472 292.762-181.418 252.367-44.499 493.024 124.011 537.524 376.378s-124.011 493.024-376.378 537.524c-140.63 24.797-282.185-16.266-387.309-108.781-5.96-5.245-11.78-10.637-17.455-16.171l-48.279 43.47c-11.75 10.579-26.999 16.435-42.81 16.439-35.346 0.008-64.006-28.639-64.014-63.986l-0.048-215.702c0-2.244 0.117-4.487 0.352-6.718 3.703-35.152 35.2-60.646 70.352-56.944l214.515 22.595c15.724 1.656 30.278 9.074 40.857 20.824 23.651 26.267 21.53 66.734-4.737 90.386l-46.901 42.23z" />
<glyph unicode="&#x2039;" glyph-name="wpmudev-logo" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM847.019 345.6c0.009-0.584 0.014-1.273 0.014-1.964 0-35.154-12.93-67.288-34.294-91.906-20.619-23.931-51.098-39.171-85.143-39.421-66.262 0-119.51 59.733-119.51 133.12v204.971c0.271 1.352 0.427 2.905 0.427 4.495 0 13.196-10.697 23.893-23.893 23.893s-23.893-10.697-23.893-23.893c0-1.59 0.155-3.144 0.452-4.647l-0.025-204.648c0.011-0.64 0.017-1.395 0.017-2.151 0-35.094-12.934-67.168-34.294-91.714-20.621-23.935-51.101-39.175-85.146-39.425-66.262 0-119.51 59.733-119.51 133.12v204.971c0.049 0.602 0.078 1.304 0.078 2.012 0 13.487-10.225 24.586-23.346 25.967-14.416-0.145-25.952-11.776-25.952-26.101 0-0.661 0.025-1.317 0.073-1.965l-0.005-390.74-96.427-75.093v465.92c-0.008 0.565-0.013 1.233-0.013 1.901 0 35.174 12.929 67.328 34.294 91.97 20.643 23.895 51.106 39.122 85.133 39.42 66.271 0 119.519-59.733 119.519-133.29v-204.8c-0.049-0.598-0.077-1.294-0.077-1.996 0-13.453 10.24-24.514 23.351-25.814 13.942 0.61 24.924 11.977 24.924 25.908 0 0.669-0.025 1.333-0.075 1.989l0.005 204.713c0 73.387 53.931 133.291 119.467 133.291s119.467-59.733 119.467-133.291v-204.8c0-13.337 10.812-24.149 24.149-24.149s24.149 10.812 24.149 24.149v390.827l96.427 74.923z" />
<glyph unicode="&#x203a;" glyph-name="logout" d="M640 384h-256c-35.346 0-64 28.654-64 64s28.654 64 64 64h256v80.297c0 15.811 5.852 31.062 16.429 42.814 23.645 26.273 64.112 28.402 90.385 4.757l160.33-144.297c1.668-1.501 3.256-3.089 4.757-4.757 23.645-26.273 21.516-66.739-4.757-90.385l-160.33-144.297c-11.752-10.577-27.003-16.429-42.814-16.429-35.346 0-64 28.654-64 64v80.297zM192 64h320c35.346 0 64-28.654 64-64s-28.654-64-64-64h-384c-35.346 0-64 28.654-64 64v896c0 35.346 28.654 64 64 64h384c35.346 0 64-28.654 64-64s-28.654-64-64-64h-320v-768z" />
<glyph unicode="&#x2044;" glyph-name="wrench-tool" d="M926.35 751.857l-141.849-141.849c-1.839-0.116-3.989-0.181-6.154-0.181-57.726 0-104.521 46.795-104.521 104.521 0 2.165 0.065 4.315 0.196 6.447l54.336 54.058 87.499 87.499c1.356 1.329 2.196 3.18 2.196 5.225s-0.841 3.896-2.195 5.224c-0.518 0.466-1.108 0.864-1.748 1.176l-0.046 0.021h-1.195c-29.451 13.406-63.872 21.218-100.119 21.218-136.314 0-246.818-110.504-246.818-246.818 0-26.508 4.178-52.038 11.912-75.971l-258.058-255.822c-86.304-1.44-155.716-71.741-155.716-158.253 0-87.412 70.863-158.275 158.275-158.275 86.514 0 156.813 69.41 158.251 155.58l257.57 257.853c22.47-7.454 48.34-11.755 75.213-11.755 136.15 0 246.52 110.371 246.52 246.52 0 36.432-7.903 71.019-22.090 102.139l0.63-0.2c-0.273 0.511-0.569 0.951-0.906 1.357-1.319 1.343-3.168 2.183-5.215 2.183s-3.896-0.841-5.224-2.195zM288.026 158.329c-0.17-35.991-29.385-65.1-65.399-65.1-36.12 0-65.4 29.281-65.4 65.4 0 36.014 29.111 65.229 65.085 65.399 0.105 0.001 0.21 0.001 0.315 0.001 36.12 0 65.4-29.281 65.4-65.4 0-0.105 0-0.211-0.001-0.315z" />
<glyph unicode="&#x20ac;" glyph-name="tracking-disabled" d="M750.246 672.721l-58.326 44.618c-6.704 4.526-12.068 10.023-16.090 16.489s-6.704 13.579-8.045 21.339c-3.352 16.813 0.168 32.17 10.559 46.073s24.303 22.471 41.734 25.704l213.193 35.888c1.341 0.647 2.514 0.97 3.52 0.97h3.52c17.431 1.293 32.85-3.718 46.259-15.034s20.783-25.38 22.124-42.193l15.084-208.539c0.67-7.76-0.168-15.358-2.514-22.794s-5.866-14.064-10.559-19.884c-11.397-13.579-25.811-21.339-43.242-23.279s-33.186 2.263-47.264 12.609l-57.321 43.648-282.581-305.535c-13.408-14.873-30.169-22.632-50.281-23.279s-37.543 5.82-52.293 19.399l-137.771 130.943-217.216-227.939c-13.408-13.579-29.834-20.854-49.276-21.824s-36.203 5.011-50.281 17.944c-14.749 12.933-22.459 28.775-23.129 47.528s5.698 35.241 19.107 49.468l266.491 279.346c13.408 14.226 30.169 21.501 50.281 21.824s37.208-6.305 51.287-19.884l136.765-129.003 226.266 245.398zM916.449 193.215l64.249-64.249c11.828-11.828 11.828-31.005 0-42.832l-42.832-42.832c-11.828-11.828-31.005-11.828-42.832 0l-64.249 64.249-64.249-64.249c-11.828-11.828-31.005-11.828-42.832 0l-42.832 42.832c-11.828 11.828-11.828 31.005 0 42.832l64.249 64.249-64.249 64.249c-11.828 11.828-11.828 31.005 0 42.832l42.832 42.832c11.828 11.828 31.005 11.828 42.832 0l64.249-64.249 64.249 64.249c11.828 11.828 31.005 11.828 42.832 0l42.832-42.832c11.828-11.828 11.828-31.005 0-42.832l-64.249-64.249z" />
<glyph unicode="&#x2122;" glyph-name="cloud" d="M707.353 621.728c-20.538 0-40.23-3.466-58.468-9.82-21.468 90.3-104.946 156.092-204.508 156.092-107.128 0-195.634-76.172-209.42-174.917-130.164-5.35-233.99-106.654-234.954-231.337-0.002-128.739 114.686-233.746 249.172-233.746h585.729c102.892 0 186.43 78.231 189.092 175.7-0.074 84.722-62.534 155.249-145.738 172.055-10.65 82.51-83.020 145.972-170.904 145.972z" />
<glyph unicode="&#x2202;" glyph-name="smart-crawl" d="M31.744 272.043c74.227-197.089 261.208-334.754 480.341-334.754s406.114 137.665 479.174 331.229zM992.256 623.957c-74.227 197.089-261.208 334.754-480.341 334.754s-406.114-137.665-479.174-331.229zM2.389 495.957c-1.365-15.701-2.389-31.744-2.389-47.957s1.024-32.085 2.389-47.957h1019.221c1.536 15.872 2.389 31.744 2.389 47.957s-0.853 32.256-2.389 47.957z" />
<glyph unicode="&#x2206;" glyph-name="book" d="M892.798 776.531v0c0 10.721-8.691 19.413-19.413 19.413h-40.32v-716.8c-0.075-10.484-8.385-19.003-18.779-19.411l-604.389-0.001c-9.345 0.103-17.108 6.741-18.943 15.553l-0.021 42.836h562.987c10.74 0.085 19.413 8.811 19.413 19.563 0 0 0 0 0 0.001v0 738.752c0 0 0 0 0 0.001 0 10.752-8.673 19.478-19.405 19.563h-603.166c-10.804 0-19.563-8.758-19.563-19.563s0 0 0-0.747v-855.381s0 0 0 0 0 0 0 0v-0.896c0.085-10.74 8.811-19.413 19.563-19.413 0 0 0 0 0.001 0h722.624c10.74 0.085 19.413 8.811 19.413 19.563 0 0 0 0 0 0.001v0z" />
<glyph unicode="&#x220f;" glyph-name="calendar" d="M947.712 597.675h-871.424c0 0-0.001 0-0.001 0-9.931 0-17.993-8.002-18.090-17.911v-625.673c0-9.991 8.099-18.091 18.091-18.091h871.424c0.051-0.001 0.111-0.001 0.171-0.001 9.897 0 17.92 8.023 17.92 17.92 0 0.060 0 0.121-0.001 0.181v625.655c0.001 0.051 0.001 0.111 0.001 0.171 0 9.897-8.023 17.92-17.92 17.92-0.060 0-0.121 0-0.181-0.001zM360.618 68.779c-31.96 0.064-62.513 6.006-90.661 16.801-1.627 0.778-3.962 4.026-3.962 7.818 0 0.406 0.027 0.805 0.079 1.197l8.358 61.223c0.395 2.762 1.989 5.086 4.227 6.463 1.187 0.588 2.537 0.919 3.965 0.919s2.778-0.331 3.979-0.92c23.432-9.491 50.672-15.011 79.201-15.011 0.937 0 1.873 0.006 2.807 0.018 31.261-0.001 53.106 14.847 53.106 36.009 0 26.283-12.629 40.448-82.091 44.373-4.77 0.279-8.533 4.215-8.533 9.031 0 0.005 0 0.010 0 0.015v60.927c0 0.008 0 0.017 0 0.026 0 4.755 3.67 8.654 8.332 9.018 60.106 4.781 66.591 21.847 66.591 36.013 0 9.045 0 24.405-40.448 24.405-24.992-0.457-48.421-6.714-69.134-17.477-0.327-0.196-1.737-0.55-3.229-0.55s-2.902 0.355-4.149 0.984c-2.488 1.281-4.294 3.707-4.72 6.583l-8.369 61.147c-0.051 0.36-0.080 0.776-0.080 1.199 0 3.599 2.102 6.707 5.145 8.164 28.28 12.188 61.139 19.262 95.651 19.262 2.753 0 5.495-0.045 8.226-0.134 72.818 0.010 121.97-34.123 121.97-85.323 0-37.888-19.627-65.877-59.904-85.333 34.133-13.312 69.803-37.547 69.803-88.576 0-73.045-61.269-119.467-156.331-119.467zM740.864 82.432c0-4.996-4.050-9.045-9.045-9.045h-74.069c-4.996 0-9.045 4.050-9.045 9.045v246.101l-48.981-18.603c-1.147-0.565-2.498-0.896-3.925-0.896s-2.778 0.331-3.979 0.92c-2.26 1.339-3.87 3.682-4.209 6.419l-8.367 61.312c-0.053 0.365-0.084 0.787-0.084 1.216 0 3.504 2.031 6.534 4.981 7.977l106.719 52.759c1.19 0.626 2.597 1.003 4.089 1.024h37.212c4.858-0.175 8.73-4.155 8.73-9.040 0-0.242-0.010-0.482-0.028-0.72l0.002-348.47zM947.712 879.445h-92.843v-43.52c0-46.080-26.283-95.232-100.181-95.232s-100.181 48.64-100.181 95.232v43.52h-283.819v-43.52c0-46.080-26.283-95.232-100.181-95.232s-100.352 48.64-100.352 95.232v43.52h-93.867c-0.051 0.001-0.111 0.001-0.171 0.001-9.897 0-17.92-8.023-17.92-17.92 0-0.060 0-0.121 0.001-0.181v-183.116c0-9.991 8.099-18.091 18.091-18.091h871.424c0.051-0.001 0.111-0.001 0.171-0.001 9.897 0 17.92 8.023 17.92 17.92 0 0.060 0 0.121-0.001 0.181v183.116c0.001 0.051 0.001 0.111 0.001 0.171 0 9.897-8.023 17.92-17.92 17.92-0.060 0-0.121 0-0.181-0.001zM270.506 798.891c29.867 0 41.984 10.752 41.984 37.035v86.869c0 26.453-12.117 37.205-41.984 37.205s-41.643-10.752-41.643-37.205v-86.869c0-26.453 12.117-37.035 41.984-37.035zM754.688 798.891c29.867 0 41.984 10.752 41.984 37.035v86.869c0 26.453-12.288 37.205-41.984 37.205s-41.984-10.752-41.984-37.205v-86.869c0-26.453 12.117-37.035 41.984-37.035z" />
<glyph unicode="&#x2211;" glyph-name="gdpr" d="M512-64c-341.333 213.333-512 469.333-512 768 170.667 0 341.333 85.333 512 256 170.667-170.667 341.333-256 512-256 0-298.667-170.667-554.667-512-768zM762.5 598.5l-34 34c-2.333 2.333-4.917 4.167-7.75 5.5s-5.917 2-9.25 2c-3.333 0-6.5-0.667-9.5-2s-5.667-3.167-8-5.5l-251.5-252.5-111 111c-2 2.333-4.5 4.083-7.5 5.25s-6.167 1.75-9.5 1.75c-3.333 0-6.417-0.583-9.25-1.75s-5.417-2.917-7.75-5.25l-34-34c-2.333-2.333-4.167-4.917-5.5-7.75s-2-5.917-2-9.25c0-3.333 0.667-6.5 2-9.5s3.167-5.667 5.5-8l145.5-144c4.333-4.333 9.333-7.75 15-10.25s11.833-3.75 18.5-3.75c6.667 0 12.917 1.25 18.75 3.75s10.917 5.917 15.25 10.25l286 286c2.333 2.333 4.083 5 5.25 8s1.75 6.167 1.75 9.5c0 3.333-0.583 6.417-1.75 9.25s-2.917 5.417-5.25 7.75v-0.5z" />
<glyph unicode="&#x221a;" glyph-name="bookmark" d="M256 960v-1024l256 256 256-256v1024h-512z" />
<glyph unicode="&#x221e;" glyph-name="layout-grid" d="M464 512h96c35.346 0 64-28.654 64-64v-384c0-35.346-28.654-64-64-64h-96c-35.346 0-64 28.654-64 64v384c0 35.346 28.654 64 64 64zM128 896h96c35.346 0 64-28.654 64-64v-416c0-35.346-28.654-64-64-64h-96c-35.346 0-64 28.654-64 64v416c0 35.346 28.654 64 64 64zM128 256h96c35.346 0 64-28.654 64-64v-128c0-35.346-28.654-64-64-64h-96c-35.346 0-64 28.654-64 64v128c0 35.346 28.654 64 64 64zM800 896h96c35.346 0 64-28.654 64-64v-320c0-35.346-28.654-64-64-64h-96c-35.346 0-64 28.654-64 64v320c0 35.346 28.654 64 64 64zM800 352h96c35.346 0 64-28.654 64-64v-224c0-35.346-28.654-64-64-64h-96c-35.346 0-64 28.654-64 64v224c0 35.346 28.654 64 64 64zM464 896h96c35.346 0 64-28.654 64-64v-160c0-35.346-28.654-64-64-64h-96c-35.346 0-64 28.654-64 64v160c0 35.346 28.654 64 64 64z" />
<glyph unicode="&#x222b;" glyph-name="paint-bucket" d="M907.435 459.947v0l-383.488 383.488c-5.437 5.441-12.949 8.806-21.248 8.806s-15.811-3.365-21.248-8.806l-62.806-62.806-134.485 134.315c-10.895 11.861-26.477 19.268-43.789 19.268-32.801 0-59.392-26.591-59.392-59.392 0-17.609 7.664-33.429 19.837-44.305l133.86-133.853-325.803-325.803c-5.39-5.428-8.721-12.906-8.721-21.163s3.331-15.735 8.723-21.164l383.657-383.657c5.437-5.441 12.949-8.806 21.248-8.806s15.811 3.365 21.248 8.806l472.406 472.576c5.4 5.455 8.736 12.962 8.736 21.248s-3.336 15.793-8.739 21.251zM671.915 349.696h-515.584l346.453 346.453 257.877-257.707zM1002.667 151.040l-71.339 123.563-1.195 2.731c-3.657 4.662-9.29 7.629-15.616 7.629s-11.959-2.967-15.584-7.586l-0.032-0.043v-1.195c-0.98-1.283-1.837-2.743-2.509-4.303l-69.683-120.796c-13.484-18.059-21.589-40.821-21.589-65.475 0-60.796 49.284-110.080 110.080-110.080s110.080 49.284 110.080 110.080c0 24.655-8.105 47.416-21.796 65.766z" />
<glyph unicode="&#x2248;" glyph-name="finger-point" d="M839.23 548.523c-0.010 0-0.021 0-0.032 0-20.666 0-39.617-7.347-54.382-19.571-7.65 39.865-42.209 69.443-83.676 69.443-21.062 0-40.342-7.631-55.226-20.278-6.564 41.133-41.748 72.072-84.159 72.072-19.772 0-37.974-6.725-52.443-18.012l0.19 242.489c0 47.128-38.205 85.333-85.333 85.333s-85.333-38.205-85.333-85.333v-440.661l-100.352 95.403c-14.507 11.766-33.194 18.891-53.546 18.891-47.128 0-85.333-38.205-85.333-85.333 0-21.842 8.206-41.767 21.704-56.861l110.008-104.536c40.896-39.332 75.123-85.219 101.064-136.040l32.568-64.493c32.768-75.264 102.059-165.035 251.051-165.035 246.784 0 308.395 171.861 308.395 288.085v238.933c0 47.128-38.205 85.333-85.333 85.333z" />
<glyph unicode="&#x2260;" glyph-name="target" d="M198.338 511.69c32.371-3.182 57.662-30.483 57.662-63.69s-25.291-60.508-57.662-63.69c25.373-125.635 124.337-224.599 249.972-249.972 3.182 32.371 30.483 57.662 63.69 57.662s60.508-25.291 63.69-57.662c125.635 25.373 224.599 124.337 249.972 249.972-32.371 3.182-57.662 30.483-57.662 63.69s25.291 60.508 57.662 63.69c-25.373 125.635-124.337 224.599-249.972 249.972-3.182-32.371-30.483-57.662-63.69-57.662s-60.508 25.291-63.69 57.662c-125.635-25.373-224.599-124.337-249.972-249.972zM68.537 384h-4.537c-35.346 0-64 28.654-64 64s28.654 64 64 64h4.537c28.065 196.204 183.259 351.398 379.463 379.463v4.537c0 35.346 28.654 64 64 64s64-28.654 64-64v-4.537c196.204-28.065 351.398-183.259 379.463-379.463h4.537c35.346 0 64-28.654 64-64s-28.654-64-64-64h-4.537c-28.065-196.204-183.259-351.398-379.463-379.463v-4.537c0-35.346-28.654-64-64-64s-64 28.654-64 64v4.537c-196.204 28.065-351.398 183.259-379.463 379.463zM512 512c-35.346 0-64-28.654-64-64s28.654-64 64-64c35.346 0 64 28.654 64 64s-28.654 64-64 64zM512 640c106.039 0 192-85.961 192-192s-85.961-192-192-192c-106.039 0-192 85.961-192 192s85.961 192 192 192z" />
<glyph unicode="&#x2264;" glyph-name="arrows-in" d="M377.603 70.087l44.959 271.996c0.108 0.699 0.17 1.506 0.17 2.326 0 4.32-1.712 8.241-4.494 11.12l0.005-0.005c-2.874 2.778-6.794 4.49-11.114 4.49-0.82 0-1.628-0.062-2.414-0.181l-270.627-46.228c-6.921-1.864-11.931-8.084-11.931-15.474 0-3.855 1.363-7.391 3.634-10.154l52.937-52.931-142.238-142.718c-2.69-2.856-4.343-6.715-4.343-10.96s1.653-8.104 4.351-10.968l97.911-97.91c2.856-2.69 6.715-4.343 10.96-4.343s8.104 1.653 10.968 4.351l142.069 142.070 53.599-52.799c2.811-2.505 6.539-4.036 10.625-4.036 7.602 0 13.965 5.3 15.595 12.408zM646.398 825.913l-44.959-271.996c-0.108-0.699-0.17-1.506-0.17-2.326 0-4.32 1.712-8.241 4.494-11.12l-0.005 0.005c2.874-2.778 6.794-4.49 11.114-4.49 0.82 0 1.628 0.062 2.414 0.181l270.627 45.748c7.090 1.744 12.266 8.046 12.266 15.557 0 4.037-1.495 7.725-3.962 10.54l-52.943 52.942 142.077 142.077c2.69 2.856 4.343 6.715 4.343 10.96s-1.653 8.104-4.351 10.968l-97.75 98.55c-2.856 2.69-6.715 4.343-10.96 4.343s-8.104-1.653-10.968-4.351l-142.069-142.070-53.599 52.799c-2.811 2.505-6.539 4.036-10.625 4.036-7.602 0-13.965-5.3-15.595-12.408zM889.914 313.603l-271.996 44.959c-0.699 0.108-1.506 0.17-2.326 0.17-4.32 0-8.241-1.712-11.12-4.494l0.005 0.005c-2.778-2.874-4.49-6.794-4.49-11.114 0-0.82 0.062-1.628 0.181-2.414l46.228-270.627c1.701-7.148 8.032-12.383 15.586-12.383 4.099 0 7.838 1.541 10.67 4.076l52.943 52.945 142.077-142.077c2.856-2.69 6.715-4.343 10.96-4.343s8.104 1.653 10.968 4.351l97.91 97.911c2.69 2.856 4.343 6.715 4.343 10.96s-1.653 8.104-4.351 10.968l-142.070 142.069 52.799 53.439c2.505 2.811 4.036 6.539 4.036 10.625 0 7.602-5.3 13.965-12.408 15.595zM134.088 582.397l271.996-44.959c0.699-0.108 1.506-0.17 2.326-0.17 4.32 0 8.241 1.712 11.12 4.494l-0.005-0.005c2.778 2.874 4.49 6.794 4.49 11.114 0 0.82-0.062 1.628-0.181 2.414l-46.228 270.627c-1.864 6.921-8.084 11.931-15.474 11.931-3.855 0-7.391-1.363-10.154-3.634l-53.572-52.937-142.077 142.238c-2.856 2.69-6.715 4.343-10.96 4.343s-8.104-1.653-10.968-4.351l-97.91-97.911c-2.69-2.856-4.343-6.715-4.343-10.96s1.653-8.104 4.351-10.968l142.070-142.069-52.799-53.599c-2.505-2.811-4.036-6.539-4.036-10.625 0-7.602 5.3-13.965 12.408-15.595z" />
<glyph unicode="&#x2265;" glyph-name="arrows-compress" d="M408.042 79.040l48.96 295.36c0.182 0.906 0.286 1.946 0.286 3.011 0 4.537-1.888 8.632-4.921 11.543l-0.006 0.006c-3.037 3.021-7.223 4.887-11.846 4.887-1.015 0-2.010-0.090-2.976-0.263l-294.458-49.585c-8.028-1.361-14.065-8.263-14.065-16.576 0-4.652 1.89-8.861 4.944-11.903l57.601-57.601-154.56-154.56c-2.923-3.019-4.724-7.139-4.724-11.68s1.802-8.661 4.729-11.684l107.035-107.035c3.044-3.065 7.261-4.961 11.92-4.961s8.876 1.897 11.919 4.96l154.081 155.041 57.6-57.6c3.042-3.055 7.253-4.945 11.904-4.945 8.313 0 15.215 6.038 16.562 13.966zM616.041 816.96l-49.12-295.36c-0.143-0.823-0.224-1.77-0.224-2.737 0-4.612 1.858-8.788 4.866-11.825l-0.001 0.001c3.060-3.015 7.263-4.876 11.901-4.876 0.996 0 1.972 0.086 2.921 0.25l294.619 49.585c8.028 1.361 14.065 8.263 14.065 16.576 0 4.652-1.89 8.861-4.944 11.903l-58.081 57.601 154.72 154.72c3.065 3.044 4.961 7.261 4.961 11.92s-1.897 8.876-4.96 11.919l-106.721 106.401c-3.044 3.065-7.261 4.961-11.92 4.961s-8.876-1.897-11.919-4.96l-154.081-155.041-57.6 57.6c-3.042 3.055-7.253 4.945-11.904 4.945-8.313 0-15.215-6.038-16.562-13.966z" />
<glyph unicode="&#x25ca;" glyph-name="key" d="M910.161 573.61h-441.344c-44.245 75.622-125.067 125.611-217.564 125.611-138.746 0-251.221-112.476-251.221-251.221s112.476-251.221 251.221-251.221c92.497 0 173.319 49.989 216.922 124.425l48.087 1.186c0.015 0 0.032 0 0.050 0 2.386 0 4.544 0.98 6.093 2.559l88.236 88.919c1.547 1.559 3.69 2.524 6.059 2.524s4.512-0.965 6.058-2.524l62.123-62.123c1.547-1.559 3.69-2.524 6.059-2.524s4.512 0.965 6.058 2.524l39.254 39.254c1.547 1.559 3.69 2.524 6.059 2.524s4.512-0.965 6.058-2.524l45.057-45.398c1.547-1.559 3.69-2.524 6.059-2.524s4.512 0.965 6.058 2.524l44.886 45.057c1.547 1.559 3.69 2.524 6.059 2.524s4.512-0.965 6.058-2.524l36.353-36.353c1.538-1.508 3.647-2.439 5.973-2.439s4.435 0.931 5.975 2.441l110.42 103.593c1.664 1.561 2.701 3.774 2.701 6.229s-1.037 4.668-2.697 6.225l-105.306 101.38c-1.553 1.476-3.657 2.385-5.972 2.389zM136.529 390.826c-31.355 0.29-56.661 25.775-56.661 57.171 0 31.576 25.597 57.173 57.173 57.173s57.172-25.596 57.173-57.171c0-0.001 0-0.002 0-0.002 0-31.576-25.597-57.173-57.173-57.173-0.18 0-0.36 0.001-0.539 0.002z" />
<glyph unicode="&#x2764;" glyph-name="site-health" d="M640.39 472.324l-99.392-198.788c-11.999-24.198-46.797-23.398-57.796 1.203l-113.794 252.582-59.996-143.392h-188.189l364.979-372.979c14.199-14.598 37.197-14.598 51.397 0l365.179 372.979h-218.189l-44.198 88.395zM947.373 812.105l-4.8 5c-102.989 105.194-271.584 105.194-374.776 0l-55.796-57.197-55.796 56.996c-102.995 105.394-271.784 105.394-374.778 0l-4.8-4.799c-97.394-99.594-101.594-258.185-14.599-364.179h204.788l71.796 172.39c10.799 25.798 47.197 26.398 58.797 0.8l116.393-258.585 97.994 195.788c11.8 23.599 45.396 23.599 57.198 0l55.194-110.394h237.786c86.995 105.994 82.797 264.585-14.598 364.179z" />
<glyph unicode="&#x2909;" glyph-name="async" d="M479.996 768h128c8.487 0 16.626 3.372 22.627 9.373s9.373 14.14 9.373 22.627v64c0 8.487-3.372 16.627-9.373 22.627s-14.14 9.373-22.627 9.373h-128c-8.487 0-16.627-3.372-22.628-9.373s-9.372-14.14-9.372-22.627v-64c0-8.487 3.372-16.627 9.372-22.627s14.141-9.373 22.628-9.373zM479.996 512h255.998c8.486 0 16.627 3.372 22.63 9.373 5.997 6.001 9.37 14.14 9.37 22.627v64c0 8.487-3.373 16.627-9.37 22.627-6.003 6.001-14.144 9.373-22.63 9.373h-255.998c-8.487 0-16.627-3.372-22.628-9.373s-9.372-14.14-9.372-22.627v-64c0-8.487 3.372-16.627 9.372-22.627s14.141-9.373 22.628-9.373zM991.994 128h-511.998c-8.487 0-16.627-3.373-22.628-9.37-6.001-6.003-9.372-14.144-9.372-22.63v-64c0-8.486 3.372-16.627 9.372-22.63 6.001-5.997 14.141-9.37 22.628-9.37h511.998c8.486 0 16.627 3.373 22.63 9.37 5.997 6.003 9.37 14.144 9.37 22.63v64c0 8.486-3.373 16.627-9.37 22.63-6.003 5.997-14.144 9.37-22.63 9.37zM479.996 256h383.998c8.486 0 16.627 3.373 22.63 9.37 5.997 6.003 9.37 14.144 9.37 22.63v64c0 8.487-3.373 16.627-9.37 22.627-6.003 6.001-14.144 9.373-22.63 9.373h-383.998c-8.487 0-16.627-3.372-22.628-9.373s-9.372-14.14-9.372-22.627v-64c0-8.486 3.372-16.627 9.372-22.63 6.001-5.997 14.141-9.37 22.628-9.37zM31.995 640h96v-608c0-8.486 3.372-16.627 9.372-22.63 6.001-5.997 14.141-9.37 22.628-9.37h64c8.487 0 16.626 3.373 22.627 9.37 6.001 6.003 9.373 14.144 9.373 22.63v608h96c28.42 0 42.78 34.48 22.62 54.62l-160 192c-6 5.996-14.136 9.365-22.62 9.365s-16.62-3.369-22.62-9.365l-160-192c-20.080-20.1-5.82-54.62 22.62-54.62z" />
<glyph unicode="&#x296e;" glyph-name="import-export" d="M611.556 652.8h-149.334v-307.2h-248.889v307.2h-149.333l273.778 307.2 273.778-307.2zM686.221-64l273.779 307.2h-149.331v307.2h-248.891v-307.2h-149.334l273.777-307.2z" />
<glyph unicode="&#xe900;" glyph-name="video-playlist" d="M320 256c35.328 0 64-28.608 64-64s-28.672-64-64-64h-256c-35.328 0-64 28.608-64 64s28.672 64 64 64h256zM64 768h704c35.392 0 64-28.672 64-64s-28.608-64-64-64h-704c-35.328 0-64 28.672-64 64s28.672 64 64 64zM64 512h704c35.392 0 64-28.672 64-64s-28.608-64-64-64h-704c-35.328 0-64 28.672-64 64s28.672 64 64 64zM512 288h256c35.346 0 64-28.654 64-64v-192c0-35.346-28.654-64-64-64h-256c-35.346 0-64 28.654-64 64v192c0 35.346 28.654 64 64 64zM800 128l192.305 164.833c8.051 6.901 20.172 5.969 27.073-2.083 2.983-3.48 4.622-7.912 4.622-12.495v-300.51c0-10.604-8.596-19.2-19.2-19.2-4.583 0-9.015 1.64-12.495 4.622l-192.305 164.833z" />
<glyph unicode="&#xf8ff;" glyph-name="arrow-left" d="M59.905 468.992l388.949 388.608c5.491 5.46 13.061 8.836 21.419 8.836s15.927-3.375 21.42-8.837l62.463-62.463c5.46-5.491 8.836-13.061 8.836-21.419s-3.375-15.927-8.837-21.42l-229.887-230.057h621.227c0.203 0.006 0.443 0.009 0.683 0.009 14.647 0 26.532-11.828 26.623-26.453v-95.582c0-14.704-11.92-26.624-26.624-26.624h-621.909l230.4-230.4c5.46-5.491 8.836-13.061 8.836-21.419s-3.375-15.927-8.837-21.42l-62.975-61.951c-5.491-5.46-13.061-8.836-21.419-8.836s-15.927 3.375-21.42 8.837l-388.948 388.607c-5.38 5.401-8.706 12.851-8.706 21.077s3.326 15.677 8.707 21.078z" />
<glyph unicode="&#xfb01;" glyph-name="snapshot" horiz-adv-x="939" d="M52.224 749.227l312.832 180.736-208.555-361.472zM347.819 658.944l-121.685-210.944 120.832-209.579s0-1.024 0-1.365h247.808l121.173 204.8-124.416 216.576zM834.56 779.264l-312.832 180.736-104.448-180.736zM0 598.699v-361.472h208.725zM730.283 658.944l208.384-361.472v361.301zM886.784 146.944l-101.717 176.128-209.749-355.84zM417.621-64l106.155 180.224h-419.499l313.173-180.224z" />
<glyph unicode="&#xfb02;" glyph-name="hub" d="M602.283 538.283h-180.565l-0.171 120.491-90.283 60.245-90.283-60.245v-421.547l90.283-60.245 90.795 58.709v122.027h180.224v-120.491l90.453-60.245 90.283 60.245v421.547l-90.283 60.245-90.453-60.245v-120.491zM120.491 185.856v525.312l214.016 128.341h354.987l214.016-128.512v-525.995l-214.016-128.512h-354.816zM301.227 960l-301.227-180.736v-661.504l301.227-181.76h421.547l301.227 180.736v662.528l-301.227 180.736z" />
<glyph unicode="ffiffi" glyph-name="hub" d="M602.283 538.283h-180.565l-0.171 120.491-90.283 60.245-90.283-60.245v-421.547l90.283-60.245 90.795 58.709v122.027h180.224v-120.491l90.453-60.245 90.283 60.245v421.547l-90.283 60.245-90.453-60.245v-120.491zM120.491 185.856v525.312l214.016 128.341h354.987l214.016-128.512v-525.995l-214.016-128.512h-354.816zM301.227 960l-301.227-180.736v-661.504l301.227-181.76h421.547l301.227 180.736v662.528l-301.227 180.736z" />
<glyph unicode="zip" glyph-name="zip" d="M755.131 601.565l-230.261 76.87v102.435l230.261-76.87v-102.435zM755.131 447.999l-230.261 76.87v102.261l230.261-76.696v-102.435zM755.131 294.433l-230.261 76.696v102.435l230.261-76.696v-102.435zM755.131 755.129l-230.261 76.87v102.435l230.261-76.87v-102.435zM192.001 473.564v281.565c0 42.453 34.415 76.87 76.87 76.87h588.696c0 70.693-57.308 128-128 128v0h-537.566c-70.653-0.099-127.902-57.348-128-127.99v-434.792c0-0.103 0-0.225 0-0.347 0-70.693 57.308-128 128-128 0 0 0 0 0 0h537.566c0.052 0 0.113 0 0.174 0 70.597 0 127.826 57.229 127.826 127.826 0 0.061 0 0.122 0 0.183v-0.009h-588.696c-0.052 0-0.113 0-0.174 0-42.358 0-76.696 34.338-76.696 76.696 0 0 0 0 0 0v0zM524.87 217.564h230.261v-203.304c0-43.222-35.039-78.261-78.261-78.261v0h-73.739c-43.222 0-78.261 35.039-78.261 78.261v0 203.304zM473.74 63.999c0-42.453-34.415-76.87-76.87-76.87s-76.87 34.415-76.87 76.87c0 42.453 34.415 76.87 76.87 76.87s76.87-34.415 76.87-76.87zM960.001 63.999c0-42.453-34.415-76.87-76.87-76.87s-76.87 34.415-76.87 76.87c0 42.453 34.415 76.87 76.87 76.87s76.87-34.415 76.87-76.87zM448 89.564h384v-51.13h-384v51.13z" />
<glyph unicode="wrench_tool" glyph-name="wrench-tool" d="M926.35 751.857l-141.849-141.849c-1.839-0.116-3.989-0.181-6.154-0.181-57.726 0-104.521 46.795-104.521 104.521 0 2.165 0.065 4.315 0.196 6.447l54.336 54.058 87.499 87.499c1.356 1.329 2.196 3.18 2.196 5.225s-0.841 3.896-2.195 5.224c-0.518 0.466-1.108 0.864-1.748 1.176l-0.046 0.021h-1.195c-29.451 13.406-63.872 21.218-100.119 21.218-136.314 0-246.818-110.504-246.818-246.818 0-26.508 4.178-52.038 11.912-75.971l-258.058-255.822c-86.304-1.44-155.716-71.741-155.716-158.253 0-87.412 70.863-158.275 158.275-158.275 86.514 0 156.813 69.41 158.251 155.58l257.57 257.853c22.47-7.454 48.34-11.755 75.213-11.755 136.15 0 246.52 110.371 246.52 246.52 0 36.432-7.903 71.019-22.090 102.139l0.63-0.2c-0.273 0.511-0.569 0.951-0.906 1.357-1.319 1.343-3.168 2.183-5.215 2.183s-3.896-0.841-5.224-2.195zM288.026 158.329c-0.17-35.991-29.385-65.1-65.399-65.1-36.12 0-65.4 29.281-65.4 65.4 0 36.014 29.111 65.229 65.085 65.399 0.105 0.001 0.21 0.001 0.315 0.001 36.12 0 65.4-29.281 65.4-65.4 0-0.105 0-0.211-0.001-0.315z" />
<glyph unicode="wpmudev_logo" glyph-name="wpmudev-logo" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM847.019 345.6c0.009-0.584 0.014-1.273 0.014-1.964 0-35.154-12.93-67.288-34.294-91.906-20.619-23.931-51.098-39.171-85.143-39.421-66.262 0-119.51 59.733-119.51 133.12v204.971c0.271 1.352 0.427 2.905 0.427 4.495 0 13.196-10.697 23.893-23.893 23.893s-23.893-10.697-23.893-23.893c0-1.59 0.155-3.144 0.452-4.647l-0.025-204.648c0.011-0.64 0.017-1.395 0.017-2.151 0-35.094-12.934-67.168-34.294-91.714-20.621-23.935-51.101-39.175-85.146-39.425-66.262 0-119.51 59.733-119.51 133.12v204.971c0.049 0.602 0.078 1.304 0.078 2.012 0 13.487-10.225 24.586-23.346 25.967-14.416-0.145-25.952-11.776-25.952-26.101 0-0.661 0.025-1.317 0.073-1.965l-0.005-390.74-96.427-75.093v465.92c-0.008 0.565-0.013 1.233-0.013 1.901 0 35.174 12.929 67.328 34.294 91.97 20.643 23.895 51.106 39.122 85.133 39.42 66.271 0 119.519-59.733 119.519-133.29v-204.8c-0.049-0.598-0.077-1.294-0.077-1.996 0-13.453 10.24-24.514 23.351-25.814 13.942 0.61 24.924 11.977 24.924 25.908 0 0.669-0.025 1.333-0.075 1.989l0.005 204.713c0 73.387 53.931 133.291 119.467 133.291s119.467-59.733 119.467-133.291v-204.8c0-13.337 10.812-24.149 24.149-24.149s24.149 10.812 24.149 24.149v390.827l96.427 74.923z" />
<glyph unicode="wordpress" glyph-name="wordpress" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM255.147 644.608c25.259 1.365 47.957 4.096 47.957 4.096 8.85 0.729 15.756 8.091 15.756 17.067 0 9.456-7.665 17.121-17.121 17.121-0.481 0-0.956-0.020-1.427-0.059s-68.205-5.287-111.725-5.287c-7.851 0-17.067 0-26.965 0 76.052 114.526 204.485 188.994 350.311 188.994 109.329 0 208.881-41.857 283.507-110.42l-5.764 0.274c-39.179-1.128-70.51-33.157-70.51-72.505 0-0.67 0.009-1.338 0.027-2.004-0.002-34.035 19.966-63.731 41.129-98.206 21.048-32.798 33.711-72.734 34.132-115.6 0.001-35.952-13.823-77.595-31.914-135.622l-41.813-139.776-150.869 451.925c25.259 1.365 47.957 4.096 47.957 4.096 8.85 0.729 15.756 8.091 15.756 17.067 0 9.456-7.665 17.121-17.121 17.121-0.481 0-0.956-0.020-1.427-0.059s-68.205-5.287-111.725-5.287c-41.131 0-110.421 5.291-110.421 5.291-0.409 0.035-0.885 0.055-1.365 0.055-9.456 0-17.121-7.665-17.121-17.121 0-8.975 6.906-16.337 15.694-17.063s21.395-2.564 44.094-4.1l65.365-179.541-91.819-274.603zM329.045 70.656c-141.030 69.533-236.344 212.284-236.344 377.297 0 61.818 13.377 120.511 37.393 173.343zM519.339 411.989l129.195-353.792c0.957-2.241 1.985-4.148 3.161-5.948-41.53-14.922-89.365-23.635-139.236-23.635-42.262 0-83.063 6.257-121.527 17.896zM722.773 85.675l128 370.347c19.469 44.241 31.134 95.751 31.911 149.895 0.003 0.411 0.004 0.553 0.004 0.694 0 15.086-1.055 29.926-3.094 44.45 32.457-59.671 51.452-128.883 51.452-202.531 0-153.868-82.908-288.372-206.488-361.276z" />
<glyph unicode="widget_settings_config" glyph-name="widget-settings-config" d="M938.501 520.575l-113.642 11.2c-8.043 29.678-19.119 55.638-33.222 79.602l73.392 86.905c3.332 4.076 5.35 9.336 5.35 15.068 0 6.596-2.672 12.567-6.993 16.889l-69.143 69.143c-4.324 4.321-10.294 6.993-16.889 6.993-5.733 0-10.994-2.020-15.111-5.385l-88.363-72.543c-22.463 13.288-48.424 24.362-75.854 31.88l-13.449 114.168c-1.253 12.117-11.401 21.488-23.742 21.504h-97.666c-12.343-0.016-22.489-9.387-23.735-21.401l-11.209-113.894c-29.677-8.033-55.636-19.107-79.596-33.22l-86.911 73.39c-4.076 3.332-9.336 5.35-15.068 5.35-6.596 0-12.567-2.672-16.889-6.993l-68.992-68.992c-4.321-4.324-6.993-10.295-6.993-16.889 0-5.731 2.020-10.994 5.385-15.111l72.541-88.363c-13.295-22.465-24.369-48.426-31.882-75.857l-114.316-13.442c-12.117-1.253-21.488-11.403-21.504-23.742v-97.666c0.016-12.343 9.387-22.489 21.401-23.735l113.894-11.209c8.029-29.675 19.103-55.638 33.219-79.594l-73.39-86.912c-3.402-4.081-5.471-9.378-5.471-15.16 0-6.561 2.66-12.5 6.962-16.798l68.992-68.992c4.324-4.321 10.294-6.993 16.889-6.993 5.731 0 10.994 2.020 15.111 5.385l88.363 72.541c22.461-13.325 48.417-24.446 75.844-32.022l13.458-114.175c1.255-12.128 11.419-21.504 23.774-21.504 0.042 0 0.084 0 0.126 0h97.659c12.343 0.016 22.489 9.387 23.735 21.401l11.209 113.745c29.678 8.082 55.638 19.205 79.587 33.367l86.921-73.388c4.076-3.332 9.335-5.35 15.068-5.35 6.596 0 12.567 2.672 16.889 6.993l68.992 68.992c4.302 4.298 6.962 10.236 6.962 16.798 0 5.78-2.065 11.081-5.5 15.199l-72.545 88.366c13.284 22.463 24.358 48.424 31.88 75.852l114.169 13.449c12.247 1.108 21.772 11.309 21.803 23.741v97.668c-0.016 12.343-9.387 22.489-21.401 23.735l-0.098 0.007zM512.004 315.839c-72.991 0-132.161 59.171-132.161 132.16s59.169 132.16 132.161 132.16c72.991 0 132.161-59.169 132.161-132.16s-59.171-132.16-132.161-132.16z" />
<glyph unicode="web_globe_world" glyph-name="web-globe-world" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM925.696 495.275h-125.611c-9.899 146.603-64.853 273.067-143.019 343.040 144.888-55.283 249.655-184.947 268.267-341.061zM460.8 789.333v-293.547h-141.141c11.093 146.773 73.045 256 140.629 293.547zM460.288 400.213v-293.547c-68.267 37.888-129.195 146.261-140.629 292.523zM555.861 103.595v296.107h148.309c-11.776-151.723-77.824-262.827-148.309-296.619zM555.861 495.616v297.131c70.656-34.133 136.533-145.237 148.309-297.472zM366.763 838.315c-78.165-70.656-133.12-196.267-143.019-343.040h-125.44c18.804 158.093 123.57 287.757 265.597 342.078zM98.475 399.701h125.44c10.069-146.261 64.853-271.531 142.848-341.333-144.368 55.070-248.893 183.969-268.084 339.305zM657.237 58.368c77.995 70.485 132.949 195.755 142.848 341.333h125.44c-19.395-157.364-123.919-286.263-265.426-340.372z" />
<glyph unicode="warning_alert" glyph-name="warning-alert" d="M512 960c70.667 0 137-13.333 199-40 62.667-26.667 117.166-63.166 163.5-109.5s82.833-100.833 109.5-163.5c26.667-62 40-128.333 40-199s-13.333-137-40-199c-26.667-62.667-63.166-117.166-109.5-163.5s-100.833-82.833-163.5-109.5c-62-26.667-128.333-40-199-40s-137 13.333-199 40c-62.667 26.667-117.166 63.166-163.5 109.5s-82.833 100.833-109.5 163.5c-26.667 62-40 128.333-40 199s13.333 137 40 199c26.667 62.667 63.166 117.166 109.5 163.5s100.833 82.833 163.5 109.5c62 26.667 128.333 40 199 40zM512 704c-35.346 0-64-28.654-64-64v-192c0-35.346 28.654-64 64-64s64 28.654 64 64v192c0 35.346-28.654 64-64 64zM512 192c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64s28.654-64 64-64z" />
<glyph unicode="wand_magic" glyph-name="wand-magic" d="M736.179 470.143l106.335 106.335c4.546 4.541 7.359 10.818 7.359 17.751s-2.812 13.209-7.358 17.751l-88.584 88.755c-4.541 4.546-10.818 7.359-17.751 7.359s-13.209-2.812-17.751-7.358l-106.506-106.336zM558.67 541.146l-469.888-470.059c-6.84-6.803-11.073-16.22-11.073-26.626s4.233-19.824 11.071-26.624l70.834-70.834c6.822-6.799 16.233-11.002 26.626-11.002s19.805 4.203 26.627 11.003l470.058 469.887zM328.419 815.603l14.849-40.281c14.496-38.367 44.243-68.113 81.647-82.29l41.244-15.169-40.281-14.849c-38.367-14.496-68.113-44.243-82.29-81.647l-15.169-41.244-14.849 40.281c-14.424 38.305-44.040 68.034-81.309 82.287l-41.241 15.171 40.281 14.849c38.367 14.496 68.113 44.243 82.29 81.647zM629.503 960l10.241-27.479c9.878-26.261 30.235-46.617 55.839-56.278l28.137-10.458-27.479-10.241c-26.248-9.898-46.597-30.248-56.277-55.838l-10.459-27.454-10.241 27.479c-9.898 26.248-30.248 46.597-55.838 56.277l-28.138 10.459 27.479 10.241c26.261 9.878 46.617 30.235 56.278 55.839zM874.091 311.409l7.852-20.994c7.585-20.051 23.131-35.597 42.679-43.015l21.668-8.019-21.165-7.852c-20.051-7.585-35.597-23.131-43.015-42.679l-8.019-21.497-7.852 20.994c-7.585 20.051-23.131 35.597-42.679 43.015l-21.668 8.019 21.165 7.852c20.051 7.585 35.597 23.131 43.015 42.679z" />
<glyph unicode="video_playlist" glyph-name="video-playlist" d="M320 256c35.328 0 64-28.608 64-64s-28.672-64-64-64h-256c-35.328 0-64 28.608-64 64s28.672 64 64 64h256zM64 768h704c35.392 0 64-28.672 64-64s-28.608-64-64-64h-704c-35.328 0-64 28.672-64 64s28.672 64 64 64zM64 512h704c35.392 0 64-28.672 64-64s-28.608-64-64-64h-704c-35.328 0-64 28.672-64 64s28.672 64 64 64zM512 288h256c35.346 0 64-28.654 64-64v-192c0-35.346-28.654-64-64-64h-256c-35.346 0-64 28.654-64 64v192c0 35.346 28.654 64 64 64zM800 128l192.305 164.833c8.051 6.901 20.172 5.969 27.073-2.083 2.983-3.48 4.622-7.912 4.622-12.495v-300.51c0-10.604-8.596-19.2-19.2-19.2-4.583 0-9.015 1.64-12.495 4.622l-192.305 164.833z" />
<glyph unicode="user_reputation_points" glyph-name="user-reputation-points" d="M957.76 551.040c-22.249-102.144-213.248-181.888-445.76-181.888-247.446 0-448 90.346-448 201.898v-123.051c0-111.552 200.555-201.898 448-201.898s448 90.347 448 201.898c-0.017 4.737-0.764 39.084-2.24 103.042zM512 123.051c-247.446 0-448 90.347-448 201.897v-123.051c0-111.552 200.555-201.897 448-201.897s448 90.347 448 201.897v123.051c0-111.552-200.555-201.897-448-201.897zM960 694.101c0-111.702-200.555-201.301-448-201.301s-448 89.6-448 201.301c0 111.701 200.555 201.899 448 201.899s448-90.347 448-201.899z" />
<glyph unicode="uptime" glyph-name="uptime" d="M182.38 504.833l35.667 57.002c9.973 16.21 27.72 26.868 47.983 26.868 1.002 0 1.999-0.026 2.988-0.078 20.963-0.726 39.094-12.634 48.475-29.9l41.331-76.592 89.944 160.768c9.965 17.66 28.725 29.404 50.254 29.404 24.723 0 45.794-15.488 53.863-37.202l79.733-220.042 36.184 61.61c10.179 16.966 28.59 28.162 49.64 28.162 0.117 0 0.232 0 0.345 0h122.32l118.891-56.832v256l-447.997 256-447.997-256v-256l118.374 56.832zM752.025 391.169l-81.33-138.24c-10.179-16.962-28.58-28.154-49.622-28.16h-5.688c-22.3 2.314-40.643 16.942-48.116 36.812l-79.22 216.116-79.434-143.36c-9.615-17.626-28.136-29.4-49.43-29.4-0.796 0-1.587 0.016-2.375 0.048-21.49 0.312-40.172 12.404-49.707 30.070l-44.261 82.736c-10.278-16.092-28.15-26.624-48.506-26.624-0.028 0-0.059 0-0.089 0l-150.248 56.832v-255.999l447.995-256 447.997 256v255.999l-118.891-56.832-89.076 0.002z" />
<glyph unicode="upload_cloud" glyph-name="upload-cloud" d="M512 128v128h80.297c15.811 0 31.062 5.852 42.814 16.429 26.273 23.645 28.402 64.112 4.757 90.385l-144.297 160.33c-1.501 1.668-3.089 3.256-4.757 4.757-26.273 23.645-66.739 21.516-90.385-4.757l-144.297-160.33c-10.577-11.752-16.429-27.003-16.429-42.814 0-35.346 28.654-64 64-64h80.297v-128h-134.826c-134.486 0-249.174 105.007-249.174 233.656l0.002 0.090c0.964 124.682 104.79 225.987 234.836 230.305l0.118 1.032c13.786 98.746 102.292 174.917 209.42 174.917 99.562 0 183.040-65.792 205.694-155.731l-1.186-0.361c18.238 6.353 37.93 9.82 58.468 9.82 87.884 0 160.254-63.463 169.706-145.77l-0.004 0.002 1.202-0.204c83.204-16.805 145.664-87.332 145.742-171.82l-0.004-0.235c-2.662-97.469-86.2-175.7-188.862-175.7-0.080 0-0.162 0-0.23 0h-322.904z" />
<glyph unicode="upfront" glyph-name="upfront" horiz-adv-x="1000" d="M604.501 902.144l82.603-15.189 16.043-200.021-71.68 47.616-173.568 31.915zM166.912 374.955l3.755 125.952-90.112-84.139zM823.808 379.733l153.6 74.069-19.968 254.464-168.789 113.493zM831.829 277.333v0c-59.051-28.672-142.848-68.267-233.301-111.616l184.32-89.429c113.835 54.443 217.429 104.789 217.088 107.691l-13.653 168.277zM175.787 635.733v0l311.296 287.403-196.949 36.864-271.872-251.733-7.68-226.133zM5.973 345.6l-5.973-173.739 488.107-235.861s84.139 39.595 183.979 86.869z" />
<glyph unicode="update" glyph-name="update" d="M311.743 222.622c0.929-0.838 1.863-1.67 2.802-2.497 69.009-60.732 161.584-87.586 253.821-71.323 103.046 18.17 187.795 87.13 227.628 181.864 17.126 40.729 64.026 59.863 104.755 42.737s59.863-64.026 42.737-104.755c-60.693-144.344-190.177-249.705-347.337-277.416-140.63-24.797-282.185 16.266-387.309 108.781-5.599 4.927-11.074 9.985-16.422 15.167l-47.146-42.45c-11.75-10.579-26.999-16.435-42.81-16.439-35.346-0.008-64.006 28.639-64.014 63.986l-0.048 215.702c-0.001 2.244 0.117 4.487 0.352 6.718 3.703 35.152 35.2 60.646 70.352 56.944l214.515-22.595c15.724-1.656 30.278-9.074 40.857-20.824 23.651-26.267 21.53-66.734-4.737-90.386l-47.997-43.216zM716.899 672.584c-1.285 1.17-2.58 2.329-3.885 3.478-69.009 60.732-161.584 87.586-253.821 71.323-103.046-18.17-187.795-87.13-227.628-181.864-17.126-40.729-64.026-59.863-104.755-42.737s-59.863 64.026-42.737 104.755c60.693 144.344 190.177 249.705 347.337 277.416 140.63 24.797 282.185-16.266 387.309-108.781 5.964-5.249 11.788-10.645 17.467-16.183l48.274 43.466c11.75 10.579 26.999 16.435 42.81 16.439 35.346 0.008 64.006-28.639 64.014-63.986l0.048-215.702c0-2.244-0.117-4.487-0.352-6.718-3.703-35.152-35.2-60.646-70.352-56.944l-214.515 22.595c-15.724 1.656-30.278 9.074-40.857 20.824-23.651 26.267-21.53 66.734 4.737 90.386l46.906 42.235z" />
<glyph unicode="unpublish" glyph-name="unpublish" d="M586.039 394.981l67.882 67.882c12.497 12.497 12.497 32.758 0 45.255l-45.255 45.255c-12.497 12.497-32.758 12.497-45.255 0l-67.882-67.882-67.882 67.882c-12.497 12.497-32.758 12.497-45.255 0l-45.255-45.255c-12.497-12.497-12.497-32.758 0-45.255l67.882-67.882-67.882-67.882c-12.497-12.497-12.497-32.758 0-45.255l45.255-45.255c12.497-12.497 32.758-12.497 45.255 0l67.882 67.882 67.882-67.882c12.497-12.497 32.758-12.497 45.255 0l45.255 45.255c12.497 12.497 12.497 32.758 0 45.255l-67.882 67.882zM707.353 621.728c87.884 0 160.254-63.463 170.904-145.972 83.204-16.805 145.664-87.332 145.738-172.055-2.662-97.469-86.2-175.7-189.092-175.7h-585.729c-134.486 0-249.174 105.007-249.172 233.746 0.964 124.682 104.79 225.987 234.954 231.337 13.786 98.746 102.292 174.917 209.42 174.917 99.562 0 183.040-65.792 204.508-156.092 18.238 6.353 37.93 9.82 58.468 9.82z" />
<glyph unicode="unlock" glyph-name="unlock" d="M221.825 512v85.31c0 164.261 132.864 301.343 295.141 298.651 150.243-2.915 272.552-120.417 284.016-270.063 0.038-0.516 0.059-1.038 0.059-1.563 0-10.935-8.797-19.808-19.673-19.86h-125.449c-10.016 0.159-18.236 7.747-19.534 18.306-8.903 61.174-61.339 108.148-124.694 108.148-4.209 0-8.368-0.206-12.559-0.63-63.697-7.605-113.093-62.063-113.093-128.111 0-0.509 0.003-1.018 0.009-1.447v-88.741h445.952c35.346 0 64-28.654 64-64v-384c0-35.346-28.654-64-64-64h-640c-35.346 0-64 28.654-64 64v384c0 35.346 28.654 64 64 64h29.825z" />
<glyph unicode="unlink" glyph-name="unlink" horiz-adv-x="1025" d="M129.536 783.36l109.397-110.080c5.875-5.875 13.99-9.508 22.955-9.508 17.929 0 32.463 14.534 32.463 32.463 0 8.964-3.634 17.080-9.508 22.955l-108.885 109.568c-5.652 4.91-13.084 7.903-21.215 7.903-17.909 0-32.427-14.518-32.427-32.427 0-8.131 2.993-15.563 7.936-21.254zM318.635 826.88l39.765-150.357c3.88-13.945 16.466-24.008 31.403-24.008 17.972 0 32.541 14.569 32.541 32.541 0 3.036-0.416 5.974-1.193 8.762l-39.711 149.275c-3.878 13.899-16.427 23.926-31.317 23.926-17.927 0-32.459-14.532-32.459-32.459 0-3.036 0.417-5.975 1.196-8.762zM127.829 567.467v0l149.845-40.107c2.559-0.725 5.497-1.142 8.533-1.142 17.927 0 32.459 14.532 32.459 32.459 0 14.891-10.027 27.439-23.697 31.263l-149.562 40.332c-2.559 0.725-5.497 1.142-8.533 1.142-17.927 0-32.459-14.532-32.459-32.459 0-14.891 10.027-27.439 23.697-31.263zM895.147 112.64l-110.080 110.080c-5.875 5.875-13.99 9.508-22.955 9.508-17.929 0-32.463-14.534-32.463-32.463 0-8.964 3.634-17.080 9.508-22.955l109.568-109.568c5.771-5.373 13.536-8.671 22.072-8.671 17.909 0 32.427 14.518 32.427 32.427 0 8.493-3.265 16.224-8.609 22.005zM706.048 69.12l-40.448 150.357c-3.88 13.945-16.466 24.008-31.403 24.008-17.972 0-32.541-14.569-32.541-32.541 0-3.036 0.416-5.974 1.193-8.762l40.052-149.616c3.878-13.899 16.427-23.926 31.317-23.926 17.927 0 32.459 14.532 32.459 32.459 0 3.036-0.417 5.975-1.196 8.762zM896.853 328.533v0l-149.845 40.107c-2.559 0.725-5.497 1.142-8.533 1.142-17.927 0-32.459-14.532-32.459-32.459 0-14.891 10.027-27.439 23.697-31.263l150.074-40.161c2.559-0.725 5.497-1.142 8.533-1.142 17.927 0 32.459 14.532 32.459 32.459 0 14.891-10.027 27.439-23.697 31.263zM492.032 428.203c-40.919 40.905-97.441 66.205-159.872 66.205-58.335 0-111.51-22.088-151.619-58.358l0.196 0.174-114.347-114.347c-38.111-40.385-61.537-94.988-61.537-155.062 0-124.89 101.243-226.133 226.133-226.133 60.074 0 114.677 23.425 155.173 61.64l114.236 114.243c36.095 39.914 58.183 93.089 58.183 151.424 0 62.431-25.3 118.953-66.206 159.873zM417.963 192l-109.397-109.397c-20.662-20.514-49.128-33.193-80.555-33.193-63.151 0-114.345 51.194-114.345 114.345 0 31.724 12.919 60.43 33.783 81.145l109.404 109.404c19.827 17.113 45.846 27.537 74.3 27.537 62.963 0 114.005-51.042 114.005-114.005 0-28.453-10.424-54.472-27.661-74.446zM958.464 893.781c-40.919 40.905-97.441 66.205-159.872 66.205-58.335 0-111.51-22.088-151.619-58.358l0.196 0.174-114.347-114.347c-37.354-40.216-60.276-94.288-60.276-153.712 0-124.89 101.243-226.133 226.133-226.133 59.467 0 113.573 22.954 153.941 60.486l114.207 114.218c36.095 39.914 58.183 93.089 58.183 151.424 0 62.431-25.3 118.953-66.206 159.873zM884.224 658.091l-109.397-109.397c-19.918-17.349-46.131-27.926-74.814-27.926-63.058 0-114.176 51.118-114.176 114.176 0 29.023 10.829 55.518 28.668 75.662l-0.104-0.12 109.397 109.397c19.827 17.113 45.846 27.537 74.3 27.537 62.963 0 114.005-51.042 114.005-114.005 0-28.453-10.424-54.472-27.661-74.446z" />
<glyph unicode="undo" glyph-name="undo" d="M322.35 672.58c1.28 1.166 2.571 2.322 3.872 3.467 69.009 60.732 161.584 87.586 253.821 71.323 165.344-29.155 275.747-186.827 246.593-352.171s-186.827-275.747-352.171-246.593c-77.947 13.744-145.751 56.436-191.797 118.844-26.232 35.553-76.318 43.109-111.871 16.877s-43.109-76.318-16.877-111.871c70.189-95.128 173.971-160.472 292.762-181.418 252.367-44.499 493.024 124.011 537.524 376.378s-124.011 493.024-376.378 537.524c-140.63 24.797-282.185-16.266-387.309-108.781-5.96-5.245-11.78-10.637-17.455-16.171l-48.279 43.47c-11.75 10.579-26.999 16.435-42.81 16.439-35.346 0.008-64.006-28.639-64.014-63.986l-0.048-215.702c0-2.244 0.117-4.487 0.352-6.718 3.703-35.152 35.2-60.646 70.352-56.944l214.515 22.595c15.724 1.656 30.278 9.074 40.857 20.824 23.651 26.267 21.53 66.734-4.737 90.386l-46.901 42.23z" />
<glyph unicode="trash" glyph-name="trash" d="M864 704l-59.11-709.315c-2.764-33.171-30.493-58.685-63.779-58.685h-458.223c-33.286 0-61.015 25.514-63.779 58.685l-59.11 709.315h-32c-35.346 0-64 28.654-64 64s28.654 64 64 64h768c35.346 0 64-28.654 64-64s-28.654-64-64-64h-32zM352 960h320c17.673 0 32-14.327 32-32v-64h-384v64c0 17.673 14.327 32 32 32zM319.883 575.376c-26.445-1.849-46.384-24.786-44.535-51.231l29.019-414.987c1.849-26.445 24.786-46.384 51.231-44.535s46.384 24.786 44.535 51.231l-29.019 414.987c-1.849 26.445-24.786 46.384-51.231 44.535zM512 576c-26.51 0-48-21.49-48-48v-416c0-26.51 21.49-48 48-48s48 21.49 48 48v416c0 26.51-21.49 48-48 48zM707.598 575.376c-26.445 1.849-49.382-18.090-51.231-44.535l-29.019-414.987c-1.849-26.445 18.090-49.382 44.535-51.231s49.382 18.090 51.231 44.535l29.019 414.987c1.849 26.445-18.090 49.382-44.535 51.231z" />
<glyph unicode="tracking_disabled" glyph-name="tracking-disabled" d="M750.246 672.721l-58.326 44.618c-6.704 4.526-12.068 10.023-16.090 16.489s-6.704 13.579-8.045 21.339c-3.352 16.813 0.168 32.17 10.559 46.073s24.303 22.471 41.734 25.704l213.193 35.888c1.341 0.647 2.514 0.97 3.52 0.97h3.52c17.431 1.293 32.85-3.718 46.259-15.034s20.783-25.38 22.124-42.193l15.084-208.539c0.67-7.76-0.168-15.358-2.514-22.794s-5.866-14.064-10.559-19.884c-11.397-13.579-25.811-21.339-43.242-23.279s-33.186 2.263-47.264 12.609l-57.321 43.648-282.581-305.535c-13.408-14.873-30.169-22.632-50.281-23.279s-37.543 5.82-52.293 19.399l-137.771 130.943-217.216-227.939c-13.408-13.579-29.834-20.854-49.276-21.824s-36.203 5.011-50.281 17.944c-14.749 12.933-22.459 28.775-23.129 47.528s5.698 35.241 19.107 49.468l266.491 279.346c13.408 14.226 30.169 21.501 50.281 21.824s37.208-6.305 51.287-19.884l136.765-129.003 226.266 245.398zM916.449 193.215l64.249-64.249c11.828-11.828 11.828-31.005 0-42.832l-42.832-42.832c-11.828-11.828-31.005-11.828-42.832 0l-64.249 64.249-64.249-64.249c-11.828-11.828-31.005-11.828-42.832 0l-42.832 42.832c-11.828 11.828-11.828 31.005 0 42.832l64.249 64.249-64.249 64.249c-11.828 11.828-11.828 31.005 0 42.832l42.832 42.832c11.828 11.828 31.005 11.828 42.832 0l64.249-64.249 64.249 64.249c11.828 11.828 31.005 11.828 42.832 0l42.832-42.832c11.828-11.828 11.828-31.005 0-42.832l-64.249-64.249z" />
<glyph unicode="thumbnails" glyph-name="thumbnails" d="M239.765 896h-144.405c-17.32 0-31.36-14.040-31.36-31.36v-144.405c0-17.32 14.040-31.36 31.36-31.36h144.405c17.32 0 31.36 14.040 31.36 31.36v144.405c0 17.32-14.040 31.36-31.36 31.36zM584.128 896h-144.256c-17.32 0-31.36-14.040-31.36-31.36v-144.405c0-17.32 14.040-31.36 31.36-31.36h144.405c17.32 0 31.36 14.040 31.36 31.36v144.405c0 0 0 0 0 0 0 17.32-14.040 31.36-31.36 31.36-0.052 0-0.105 0-0.158 0zM960 864.64c0 17.32-14.040 31.36-31.36 31.36h-144.405c-17.32 0-31.36-14.040-31.36-31.36v0-144.256c0-17.32 14.040-31.36 31.36-31.36h144.405c17.32 0 31.36 14.040 31.36 31.36v144.256zM239.765 551.488h-144.405c-17.32 0-31.36-14.040-31.36-31.36v-144.405c0-17.32 14.040-31.36 31.36-31.36h144.405c17.32 0 31.36 14.040 31.36 31.36v144.405c0 17.32-14.040 31.36-31.36 31.36zM584.128 551.488h-144.256c-17.32 0-31.36-14.040-31.36-31.36v-144.405c0-17.32 14.040-31.36 31.36-31.36h144.405c17.32 0 31.36 14.040 31.36 31.36v144.405c0 17.32-14.040 31.36-31.36 31.36zM928.64 551.488h-144.405c-17.32 0-31.36-14.040-31.36-31.36v0-144.256c0-17.32 14.040-31.36 31.36-31.36h144.405c17.32 0 31.36 14.040 31.36 31.36v144.256c0 17.32-14.040 31.36-31.36 31.36zM239.765 206.976h-144.405c-17.32 0-31.36-14.040-31.36-31.36v-144.256c0-17.32 14.040-31.36 31.36-31.36h144.405c17.32 0 31.36 14.040 31.36 31.36v144.256c0 17.32-14.040 31.36-31.36 31.36zM584.128 206.976h-144.256c-17.32 0-31.36-14.040-31.36-31.36v-144.256c0-17.32 14.040-31.36 31.36-31.36h144.405c17.32 0 31.36 14.040 31.36 31.36v144.256c0 17.32-14.040 31.36-31.36 31.36zM928.64 206.976h-144.405c-17.32 0-31.36-14.040-31.36-31.36v-144.256c0-17.32 14.040-31.36 31.36-31.36h144.405c17.32 0 31.36 14.040 31.36 31.36v144.256c0 17.32-14.040 31.36-31.36 31.36z" />
<glyph unicode="target" glyph-name="target" d="M198.338 511.69c32.371-3.182 57.662-30.483 57.662-63.69s-25.291-60.508-57.662-63.69c25.373-125.635 124.337-224.599 249.972-249.972 3.182 32.371 30.483 57.662 63.69 57.662s60.508-25.291 63.69-57.662c125.635 25.373 224.599 124.337 249.972 249.972-32.371 3.182-57.662 30.483-57.662 63.69s25.291 60.508 57.662 63.69c-25.373 125.635-124.337 224.599-249.972 249.972-3.182-32.371-30.483-57.662-63.69-57.662s-60.508 25.291-63.69 57.662c-125.635-25.373-224.599-124.337-249.972-249.972zM68.537 384h-4.537c-35.346 0-64 28.654-64 64s28.654 64 64 64h4.537c28.065 196.204 183.259 351.398 379.463 379.463v4.537c0 35.346 28.654 64 64 64s64-28.654 64-64v-4.537c196.204-28.065 351.398-183.259 379.463-379.463h4.537c35.346 0 64-28.654 64-64s-28.654-64-64-64h-4.537c-28.065-196.204-183.259-351.398-379.463-379.463v-4.537c0-35.346-28.654-64-64-64s-64 28.654-64 64v4.537c-196.204 28.065-351.398 183.259-379.463 379.463zM512 512c-35.346 0-64-28.654-64-64s28.654-64 64-64c35.346 0 64 28.654 64 64s-28.654 64-64 64zM512 640c106.039 0 192-85.961 192-192s-85.961-192-192-192c-106.039 0-192 85.961-192 192s85.961 192 192 192z" />
<glyph unicode="tablet_portrait" glyph-name="tablet-portrait" d="M847.787 959.998h-673.963c-19.099-1.203-34.134-16.988-34.134-36.284 0-0.084 0-0.168 0.001-0.251v-950.942c0-0.071-0.001-0.155-0.001-0.238 0-19.296 15.035-35.081 34.029-36.279l674.068-0.005c20.171 0 36.523 16.352 36.523 36.523v950.955c0 20.171-16.352 36.523-36.523 36.523zM510.55-33.965c-16.495 0-29.867 13.372-29.867 29.867s13.372 29.867 29.867 29.867c16.495 0 29.867-13.372 29.867-29.867s-13.372-29.867-29.867-29.867zM764.502 55.465h-505.344v785.067h505.173v-785.067z" />
<glyph unicode="style_type" glyph-name="style-type" d="M600.183 22.811c0-0.042 0-0.092 0-0.143 0-15.931-7.276-30.162-18.685-39.552-11.343-10.55-26.453-17.019-43.073-17.137-0.026 0-0.030 0-0.033 0-11.14 0-21.521 3.244-30.253 8.839-9.496 6.164-17 15.152-21.316 25.776l-44.678 99.359h-283.307l-44.373-98.645c-4.412-10.932-11.786-19.9-21.129-26.154-8.647-5.591-18.965-8.837-30.041-8.837-0.251 0-0.501 0.002-0.75 0.005-16.766 0.139-32.034 6.598-43.532 17.111-11.636 9.226-19.065 23.426-19.065 39.361 0 0.006 0 0.013 0 0.019 0.497 9.522 2.9 18.373 6.832 26.334l225.616 474.401c5.839 13.038 15.402 23.536 27.33 30.381 11.701 6.853 25.389 10.801 39.998 10.801s28.297-3.948 40.055-10.835c11.808-6.995 21.526-17.206 27.932-29.427l225.816-475.714c3.869-7.822 6.285-16.984 6.652-26.671zM203.041 199.11h194.731l-96.939 217.429zM980.428 346.736q43.52-43.861 43.52-134.144v-188.928c0.067-1.036 0.105-2.247 0.105-3.466 0-15.424-6.089-29.425-15.995-39.732-10.73-9.683-25.041-15.619-40.738-15.619-1.273 0-2.536 0.039-3.789 0.116-0.367-0.026-1-0.037-1.635-0.037-16.095 0-30.664 6.534-41.2 17.094-10.549 10.354-17.086 24.76-17.086 40.694 0 0.514 0.007 1.026 0.020 1.537l-0.002 5.727c-7.996-20.951-22.288-37.999-40.536-49.25-18.994-11.008-41.281-17.361-65.052-17.361-1.28 0-2.555 0.018-3.826 0.055-0.297-0.009-0.87-0.012-1.443-0.012-26.924 0-52.375 6.304-74.959 17.516-20.968 10.24-38.97 26.053-51.962 45.498-12.607 18.963-19.936 41.675-19.936 66.099 0 0.451 0.003 0.902 0.007 1.353-0.104 1.659-0.163 3.679-0.163 5.713 0 24.818 8.756 47.591 23.347 65.398 19.243 18.899 44.285 32.287 72.24 37.242 38.061 7.624 80.858 11.917 124.658 11.917 5.548 0 11.080-0.069 16.595-0.206l20.858 0.016v15.019c0.19 1.951 0.299 4.218 0.299 6.51 0 16.996-5.972 32.597-15.932 44.819-11.911 9.935-27.533 16.048-44.582 16.048-2.294 0-4.563-0.111-6.8-0.327-37.555-3.095-72.498-12.15-104.744-26.231-7.318-4.335-18.437-7.661-30.26-8.382-0.641-0.028-1.133-0.038-1.627-0.038-11.135 0-21.095 5.030-27.732 12.942-6.891 8.683-11.027 19.729-11.027 31.74 0 0.861 0.021 1.718 0.063 2.569-0.029 0.454-0.044 1.126-0.044 1.802 0 9.556 2.815 18.454 7.661 25.911 6.169 8.019 14.031 14.681 23.056 19.429 21.018 11.107 44.941 19.783 70.137 24.97 26.728 6.037 55.41 9.331 84.859 9.347q90.294 0 133.814-43.861zM880.929 75.035c14.043 15.93 22.615 36.976 22.615 60.024 0 1.398-0.032 2.789-0.094 4.172l0.007 13.969h-14.165c-4.533 0.256-9.837 0.403-15.176 0.403-28.403 0-55.84-4.137-81.741-11.842-13.531-4.937-24.486-19.494-24.486-36.61 0-0.748 0.021-1.491 0.062-2.228-0.023-0.401-0.033-0.993-0.033-1.586 0-13.9 5.691-26.471 14.87-35.51 9.691-9.115 22.769-14.712 37.154-14.712 0.62 0 1.238 0.010 1.853 0.031 0.789-0.038 1.821-0.059 2.857-0.059 22.309 0 42.392 9.534 56.396 24.749zM571.852 565.36l19.797 53.589c19.302 51.135 58.945 90.778 108.798 109.654l55.042 19.882-53.589 19.797c-51.135 19.302-90.778 58.945-109.654 108.798l-20.394 55.554-19.797-53.76c-19.302-51.135-58.945-90.778-108.798-109.654l-55.042-20.735 53.589-19.797c51.122-19.322 90.758-58.958 109.653-108.798zM889.633 473.2l13.483 36.352c13.184 34.97 40.294 62.080 74.388 74.973l37.569 13.773-36.693 13.653c-34.97 13.184-62.080 40.294-74.973 74.388l-13.773 37.569-13.483-36.693c-13.221-35-40.396-62.12-74.557-74.974l-37.571-13.772 36.693-13.483c35-13.221 62.12-40.396 74.974-74.557z" />
<glyph unicode="storage_server_data" glyph-name="storage-server-data" d="M973.995 832h-923.989c-27.758-0.668-50.005-23.329-50.005-51.186 0-0.005 0-0.010 0-0.015v-238.933c0-0.004 0-0.009 0-0.014 0-27.857 22.247-50.518 49.943-51.185l924.051-0.001c27.758 0.668 50.005 23.329 50.005 51.186 0 0.005 0 0.010 0 0.015v238.933c0 0.004 0 0.009 0 0.014 0 27.857-22.247 50.518-49.943 51.185zM137.728 612.864c-26.1 0.853-46.933 22.216-46.933 48.445 0 26.769 21.7 48.469 48.469 48.469 26.76 0 48.455-21.687 48.469-48.444 0-26.77-21.7-48.471-48.469-48.471zM973.995 405.333h-923.989c-27.758-0.668-50.005-23.329-50.005-51.186 0-0.005 0-0.010 0-0.015v-238.933c0-0.004 0-0.009 0-0.014 0-27.857 22.247-50.518 49.943-51.185l924.051-0.001c27.758 0.668 50.005 23.329 50.005 51.186 0 0.005 0 0.010 0 0.015v238.933c0 0.004 0 0.009 0 0.014 0 27.857-22.247 50.518-49.943 51.185zM137.728 186.197c-26.1 0.853-46.933 22.216-46.933 48.445 0 26.769 21.7 48.469 48.469 48.469 26.76 0 48.455-21.687 48.469-48.444 0-26.77-21.7-48.471-48.469-48.471z" />
<glyph unicode="stopwatch" glyph-name="stopwatch" d="M1004.63 797.657l-99.726 100.512c-12.377 14.769-30.829 24.092-51.462 24.092-37.008 0-67.008-30-67.008-67.008 0-20.631 9.324-39.085 23.988-51.378l99.83-100.755c12.106-12.011 28.781-19.434 47.189-19.434s35.083 7.422 47.194 19.439c11.97 12.12 19.366 28.788 19.366 47.184s-7.396 35.066-19.377 47.196zM116.059 898.171l-100.512-99.726c-9.673-11.536-15.546-26.539-15.546-42.916 0-37.008 30-67.008 67.008-67.008 16.375 0 31.38 5.875 43.020 15.632l100.567 99.799c14.769 12.377 24.092 30.829 24.092 51.462 0 37.008-30 67.008-67.008 67.008-20.631 0-39.085-9.324-51.378-23.988zM507.886 697.775c0.094 0 0.204 0 0.316 0 165.059 0 298.863-133.806 298.863-298.863s-133.806-298.863-298.863-298.863c-165.059 0-298.863 133.806-298.863 298.863 0 82.645 33.546 157.456 87.765 211.558 53.635 53.931 127.883 87.306 209.925 87.306 0.302 0 0.602 0 0.904-0.001zM507.886 825.498c-235.095-0.207-425.595-190.836-425.595-425.96 0-235.251 190.709-425.96 425.96-425.96s425.96 190.709 425.96 425.96c0 117.871-47.878 224.562-125.246 301.684-76.901 77.071-183.215 124.748-300.664 124.748-0.145 0-0.289 0-0.436 0zM633.566 430.369v2.674c-1.409 5.069-2.804 9.151-4.394 13.131 0.304 0.867-0.64 2.599-1.427 4.171v0c-13.481 30.382-37.255 54.158-66.805 67.307l-0.834 0.332h-1.574v125.837h-99.254v-125.837h-0.943c-16.521-6.724-30.636-16.144-42.483-27.853-23.224-23.43-37.582-55.705-37.582-91.334 0-0.126 0-0.253 0.001-0.378v0.020s0 0 0-0.786c0.037-6.525 0.55-12.899 1.506-19.125l-0.092 0.721c1.638-11.347 4.497-21.575 8.493-31.212l-31.773-30.607-12.899-12.899 68.896-68.896 44.358 44.358 2.202-1.102h1.102c13.995-5.58 30.214-8.814 47.189-8.814s33.193 3.237 48.073 9.124l1.631-0.308c47.547 20.067 80.376 66.17 80.693 119.976-0.062 11.245-1.549 22.076-4.292 32.396zM542.335 365.563c-8.852-8.843-21.075-14.314-34.578-14.314-27.018 0-48.918 21.903-48.918 48.918s21.903 48.918 48.918 48.918c13.501 0 25.726-5.47 34.578-14.314 8.899-8.836 14.407-21.077 14.407-34.605s-5.508-25.769-14.404-34.603z" />
<glyph unicode="star" glyph-name="star" d="M1022.693 572.936c-3.255 9.924-12.398 16.98-23.2 17.067h-346.293l-117.931 333.312c-3.443 9.687-12.531 16.499-23.211 16.499s-19.767-6.811-23.157-16.327l-117.984-334.166h-346.283c-13.554-0.025-24.532-11.018-24.532-24.576 0-7.796 3.63-14.744 9.292-19.247l270.386-214.055-121.003-342.357c-0.92-2.477-1.453-5.339-1.453-8.325 0-13.573 11.003-24.576 24.576-24.576 4.699 0 9.091 1.319 12.824 3.607l317.333 190.403 317.44-190.293c3.626-2.227 8.017-3.546 12.717-3.546 13.573 0 24.576 11.003 24.576 24.576 0 2.986-0.533 5.848-1.508 8.495l-120.948 342.016 270.336 214.016c5.646 4.542 9.228 11.45 9.228 19.194 0 2.907-0.505 5.696-1.431 8.284z" />
<glyph unicode="speed_optimize" glyph-name="speed-optimize" d="M475.793 894.803c-266.855-19.796-475.793-238.971-475.793-506.45 0-152.123 67.582-288.622 174.648-381.687 5.027-4.328 10.882-6.666 17.288-6.666 9.379 0 17.575 5.012 22.004 12.477l43.671 74.793c2.042 3.51 3.246 7.719 3.246 12.207 0 6.912-2.858 13.164-7.468 17.66-73.006 68.243-118.449 164.703-118.449 271.671 0 206.208 168.886 373.374 377.217 373.374s377.217-167.165 377.217-373.374c0-106.966-45.444-203.427-118.265-271.499-4.794-4.668-7.653-10.919-7.653-17.832 0-4.487 1.204-8.697 3.311-12.327l43.692-74.554c4.47-7.53 12.613-12.505 21.929-12.505 6.339 0 12.134 2.303 16.579 6.11 107.517 93.526 175.031 229.964 175.031 382.010 0 280.443-229.684 507.789-513.015 507.789-12.383 0-24.663-0.434-36.826-1.288l1.635 0.091zM462.364 299.645l-58.544 66.013c-5.285 5.937-8.51 13.778-8.51 22.366 0 11.288 5.573 21.288 14.146 27.45l289.953 206.469c5.48 3.846 12.303 6.148 19.67 6.148 10.164 0 19.294-4.382 25.566-11.341l13.156-14.968c5.081-5.878 8.173-13.571 8.173-21.978 0-8.805-3.391-16.825-8.951-22.853l-244.413-258.348c-6.261-6.571-15.116-10.663-24.938-10.663-10.251 0-19.45 4.458-25.727 11.521l0.42 0.186z" />
<glyph unicode="social_youtube" glyph-name="social-youtube" d="M1014.113 648.12c0 0-9.729 68.939-41.116 99.375-26.137 25.868-62.396 42.035-102.554 42.459-143.364 10.046-358.365 10.046-358.365 10.046s-215 0-358.439-10.044c-40.234-0.442-76.491-16.603-102.611-42.436-31.41-30.459-40.669-99.4-40.669-99.4-6.069-48.054-9.817-104.254-10.352-161.198l-0.006-76.817c0.482-57.604 4.175-113.815 10.915-169.122s9.33-61.741 39.932-92.177c38.92-39.873 90.080-38.655 112.993-42.762 81.92-7.61 348.239-10.044 348.239-10.044s215.158 0 358.595 10.501c40.103 0.467 76.235 16.564 102.301 42.286 31.408 30.457 40.824 99.396 40.824 99.396 6.032 48.161 9.725 104.427 10.196 161.437l0.006 76.731c-0.476 57.648-4.169 113.913-10.915 169.273l1.028-7.505zM405.206 309.206v281.997l272.125-138.183-272.125-143.814z" />
<glyph unicode="social_twitter" glyph-name="social-twitter" d="M1024 765.024c-34.892-15.915-75.37-27.521-117.814-32.769 41.325 26.083 73.925 66.439 89.754 114.431-37.902-21.718-82.513-39.422-130.042-49.091-41.122 40.731-95.69 66.405-156.245 66.405-115.932 0-209.914-94.097-209.914-210.171 0-17.16 2.054-33.841 5.93-49.808-174.836 10.663-328.295 93.84-431.157 219.996-18.77-29.233-29.36-65.72-29.36-104.683 0-72.4 36.563-136.25 92.212-174.047-34.281 0.657-66.827 10.245-95.241 26.306 1.042-1.401 1.042-2.261 1.042-3.122 0.044-101.219 71.547-185.705 166.738-205.632-15.119-4.882-34.048-7.552-53.598-7.552-0.107 0-0.216 0-0.326 0-0.032 0-0.092 0-0.151 0-13.869 0-27.42 1.357-40.532 3.945 28.881-84.309 105.824-144.285 197-146.014-70.547-55.954-161.022-89.749-259.379-89.749-0.307 0-0.616 0-0.925 0-17.562 0.002-34.929 1.043-51.992 3.066 92.776-59.354 203.777-94.534 322.988-94.534 0.19 0 0.378 0 0.567 0 385.577 0 596.35 319.845 596.35 597.251 0 9.032 0 18.208 0 27.096 41.174 30.039 75.86 66.047 103.567 107.158l0.529 1.519z" />
<glyph unicode="social_linkedin" glyph-name="social-linkedin" d="M264.704 0.001h-185.621v598.528h185.621zM171.82 680.364c-0.045 0-0.097 0-0.149 0-59.547 0-107.819 48.272-107.819 107.819s48.272 107.819 107.819 107.819c59.547 0 107.819-48.272 107.819-107.819 0-0.045 0-0.097 0-0.149 0-59.465-48.206-107.669-107.669-107.669zM960.149 0.001h-185.472v291.051c0 69.44-1.344 158.741-96.469 158.741s-111.403-75.563-111.403-153.664v-296.128h-185.621v598.528h178.155v-81.835h2.539c24.939 47.040 84.672 96.768 175.616 96.768 188.011 0 222.656-123.947 222.656-284.928v-328.533z" />
<glyph unicode="social_google_plus" glyph-name="social-google-plus" d="M0.859 463.671c-10.682-134.785 79.418-267.513 206.439-314.614s288.992-15.32 369.92 96.716c53.411 70.766 64.905 161.88 58.635 247.392-103.683 0.229-207.136 0.229-310.705 0.229 0-36.354 0-72.709 0-109.177 61.885-1.943 124.003-1.029 185.772-1.943-27.285-135.243-214.219-179.143-313.491-90.772-100.897 77.625-96.137 247.621 9.637 319.528 73.845 58.076 178.923 43.67 252.883-6.516 28.893 26.616 55.809 54.024 81.285 82.701-60.385 49.568-135.854 83.978-216.085 80.549-167.427 5.258-321.386-139.244-324.289-304.096l-0.001 0.003zM837.879 584.853c0-30.409-0.581-60.82-0.812-91.456l-92.885-0.572v-91.456l92.885-0.915c0-30.41 0-60.819 0.581-91.458h92.885c0 30.41 0 60.819 0.581 91.458l92.885 0.801v92.144l-92.885 0.572c0 30.409 0 60.933-0.581 91.456l-92.654-0.573z" />
<glyph unicode="social_github" glyph-name="social-github" d="M512 934.741c-0.11 0-0.241 0-0.371 0-282.77 0-512-229.23-512-512 0-225.030 145.173-416.153 346.974-484.823 29.205-5.844 37.739 10.028 37.739 23.51s0 44.373 0 87.040c-142.507-30.891-172.544 68.267-172.544 68.267-23.211 59.733-56.661 75.264-56.661 75.264-46.421 31.744 3.584 31.061 3.584 31.061 33.642-4.794 61.856-24.567 78.061-52.229 46.013-78.673 119.741-56.145 149.267-43.003 2.518 26.917 14.443 50.654 32.408 68.248-113.645 12.989-233.112 57.192-233.112 253.458-0.013 0.842-0.020 1.835-0.020 2.83 0 52.018 20.062 99.35 52.871 134.681-6.822 18.19-10.702 39.335-10.702 61.387 0 26.775 5.72 52.215 16.004 75.163s42.541 12.658 140.333-53.731c38.377 10.941 82.454 17.232 128 17.232s89.623-6.291 131.409-18.052c94.383 67.038 137.221 53.385 137.221 53.385 9.885-21.837 15.644-47.349 15.644-74.205 0-21.975-3.856-43.050-10.929-62.584 32.998-33.856 52.995-81.074 52.995-132.964 0-1.105-0.009-2.208-0.027-3.309 0.002-196.442-119.465-239.791-233.811-252.421 18.432-15.872 34.133-47.104 34.133-94.891 0-68.267 0-123.563 0-140.459 0-13.653 9.216-29.696 35.157-24.576 205.138 69.887 350.066 260.877 350.066 485.717 0 282.66-229.052 511.822-511.67 512z" />
<glyph unicode="social_facebook" glyph-name="social-facebook" d="M374.272-64v512h-109.739v176.469h109.739v105.984c0 144.213 62.123 229.547 238.080 229.547h147.115v-176.469h-91.989c-68.267 0-73.216-24.747-73.216-70.656v-88.235h165.205l-18.773-176.64h-146.603v-512z" />
<glyph unicode="social_dropbox" glyph-name="social-dropbox" d="M301.227 888.491l-301.227-196.779 208.213-166.741 303.787 187.563-210.773 175.957zM0 358.229v0l301.227-196.779 210.773 175.957-303.787 187.563-208.213-166.741zM512 337.408l210.773-175.957 301.227 196.779-208.213 166.741-303.787-187.563zM722.773 888.491l-210.773-175.957 303.787-187.563 208.213 166.741-301.227 196.779zM301.227 124.245l-90.453 59.051v-66.219l301.909-181.077 301.739 181.077v66.219l-90.453-59.051-211.285 175.275-211.456-175.275z" />
<glyph unicode="social_drive" glyph-name="social-drive" d="M383.488 316.075l-177.664-305.323h640.512l177.664 305.323h-640.512zM329.216 889.344l320.341-554.667 353.28-1.024-320.171 554.667-353.451 1.024zM0 313.173l175.787-306.517 320.171 554.667-175.616 306.517-320.341-554.667z" />
<glyph unicode="snapshot" glyph-name="snapshot" horiz-adv-x="939" d="M52.224 749.227l312.832 180.736-208.555-361.472zM347.819 658.944l-121.685-210.944 120.832-209.579s0-1.024 0-1.365h247.808l121.173 204.8-124.416 216.576zM834.56 779.264l-312.832 180.736-104.448-180.736zM0 598.699v-361.472h208.725zM730.283 658.944l208.384-361.472v361.301zM886.784 146.944l-101.717 176.128-209.749-355.84zM417.621-64l106.155 180.224h-419.499l313.173-180.224z" />
<glyph unicode="smush" glyph-name="smush" d="M955.733 702.805v0l-442.709-766.805c282.175 0.786 510.618 229.714 510.618 511.998 0 93.773-25.209 181.658-69.22 257.247zM295.765 628.565l216.235-374.443 216.235 374.443h-432.469zM131.243 789.333h762.368c-93.934 105.383-230.060 171.426-381.611 171.426s-287.677-66.043-381.167-170.92zM68.267 702.293v0c-42.518-73.027-67.616-160.731-67.616-254.297 0-282.121 228.18-510.948 510.054-511.996z" />
<glyph unicode="smart_crawl" glyph-name="smart-crawl" d="M31.744 272.043c74.227-197.089 261.208-334.754 480.341-334.754s406.114 137.665 479.174 331.229zM992.256 623.957c-74.227 197.089-261.208 334.754-480.341 334.754s-406.114-137.665-479.174-331.229zM2.389 495.957c-1.365-15.701-2.389-31.744-2.389-47.957s1.024-32.085 2.389-47.957h1019.221c1.536 15.872 2.389 31.744 2.389 47.957s-0.853 32.256-2.389 47.957z" />
<glyph unicode="slide_in" glyph-name="slide-in" d="M1024 704h-576c-35.346 0-64-28.654-64-64v-384c0-35.346 28.654-64 64-64h576v-192c0-35.346-28.654-64-64-64h-896c-35.346 0-64 28.654-64 64v896c0 35.346 28.654 64 64 64h896c35.346 0 64-28.654 64-64v-192zM896 640c35.346 0 64-28.654 64-64s-28.654-64-64-64c-35.346 0-64 28.654-64 64s28.654 64 64 64z" />
<glyph unicode="sitemap" glyph-name="sitemap" d="M425.472 625.835h173.056c25.921 0 46.933 21.013 46.933 46.933v173.227c0 25.921-21.013 46.933-46.933 46.933h-173.056c-25.921 0-46.933-21.013-46.933-46.933v-173.227c0-25.921 21.013-46.933 46.933-46.933zM598.528 270.165h-173.056c-25.921 0-46.933-21.013-46.933-46.933v-173.227c0-25.921 21.013-46.933 46.933-46.933h173.056c25.921 0 46.933 21.013 46.933 46.933v173.227c0 25.921-21.013 46.933-46.933 46.933zM977.067 270.165h-173.227c-25.921 0-46.933-21.013-46.933-46.933v-173.227c0-25.921 21.013-46.933 46.933-46.933h173.227c25.921 0 46.933 21.013 46.933 46.933v173.227c0 25.921-21.013 46.933-46.933 46.933zM220.16 270.165h-173.227c-25.921 0-46.933-21.013-46.933-46.933v-173.227c0-25.921 21.013-46.933 46.933-46.933h173.227c25.921 0 46.933 21.013 46.933 46.933v173.227c0 25.921-21.013 46.933-46.933 46.933zM178.005 445.099h290.133v-85.333h89.088v85.333h290.133v-85.333h89.088v85.333c0 49.202-39.886 89.088-89.088 89.088h-669.355c-49.129-0.097-88.917-39.946-88.917-89.088 0 0 0 0 0 0v-85.333h89.088z" />
<glyph unicode="site_health" glyph-name="site-health" d="M640.39 472.324l-99.392-198.788c-11.999-24.198-46.797-23.398-57.796 1.203l-113.794 252.582-59.996-143.392h-188.189l364.979-372.979c14.199-14.598 37.197-14.598 51.397 0l365.179 372.979h-218.189l-44.198 88.395zM947.373 812.105l-4.8 5c-102.989 105.194-271.584 105.194-374.776 0l-55.796-57.197-55.796 56.996c-102.995 105.394-271.784 105.394-374.778 0l-4.8-4.799c-97.394-99.594-101.594-258.185-14.599-364.179h204.788l71.796 172.39c10.799 25.798 47.197 26.398 58.797 0.8l116.393-258.585 97.994 195.788c11.8 23.599 45.396 23.599 57.198 0l55.194-110.394h237.786c86.995 105.994 82.797 264.585-14.598 364.179z" />
<glyph unicode="shipper_anchor" glyph-name="shipper-anchor" d="M999.595 431.957l-231.595-90.624 75.264-57.856c-40.448-87.723-120.32-185.856-277.163-204.8v405.845h87.552c32.896 0 59.563 26.667 59.563 59.563v0 37.717c0 6.881-5.578 12.459-12.459 12.459h-133.973v83.968c54.046 22.297 91.392 74.577 91.392 135.579 0 80.778-65.483 146.261-146.261 146.261s-146.261-65.483-146.261-146.261c0-61.002 37.345-113.282 90.421-135.224l0.971-0.356v-83.968h-133.803c-6.881 0-12.459-5.578-12.459-12.459v0-37.717c0-32.896 26.667-59.563 59.563-59.563v0h86.869v-405.504c-125.867 11.186-230.756 90.764-278.041 200.922l-0.829 2.171 77.653 59.221-231.595 90.624 9.728-260.437 61.44 47.104c69.568-136.502 204.284-231.011 362.051-242.771l1.469-0.088c1.783-5.006 4.522-9.283 8.023-12.801l-0.001 0.001 19.797-17.067c6.359-6.346 15.137-10.269 24.832-10.269s18.473 3.924 24.833 10.27l-0.001-0.001 19.797 17.067c3.472 3.534 6.205 7.805 7.943 12.556l0.078 0.244c159.506 11.114 294.419 106.399 361.525 241.346l1.142 2.537 62.805-48.128zM512 868.523c30.256 0 54.784-24.528 54.784-54.784s-24.528-54.784-54.784-54.784c-30.256 0-54.784 24.528-54.784 54.784v0c0 30.256 24.528 54.784 54.784 54.784v0z" />
<glyph unicode="share" glyph-name="share" d="M801.445 594.226c-18.787-0.030-36.732-3.598-53.217-10.072l-378.911 219.821c0 3.243 0 6.485 0 9.728-0.286 80.75-65.812 146.1-146.602 146.1-80.966 0-146.603-65.636-146.603-146.603s65.636-146.603 146.603-146.603c32.171 0 61.921 10.362 86.096 27.931l352.858-203.215c-4.21-13.064-6.637-28.094-6.637-43.691s2.427-30.627 6.924-44.733l-352.543-202.393c-23.762 17.425-53.583 27.883-85.845 27.883-80.684 0-146.091-65.407-146.091-146.091s65.407-146.091 146.091-146.091c80.684 0 146.091 65.407 146.091 146.091 0 0.037 0 0.075 0 0.112 0 3.066 0 5.968 0 8.869l380.416 220.16c15.309-5.943 33.028-9.386 51.552-9.386 80.778 0 146.261 65.483 146.261 146.261s-65.483 146.261-146.261 146.261c-0.124 0-0.247 0-0.371 0z" />
<glyph unicode="settings_slider_control" glyph-name="settings-slider-control" horiz-adv-x="978" d="M768 256h129.906c34.293 0 62.094-27.8 62.094-62.094v-3.813c0-34.293-27.8-62.094-62.094-62.094h-129.906v-1.906c0-34.293-27.8-62.094-62.094-62.094h-3.813c-34.293 0-62.094 27.8-62.094 62.094v1.906h-513.906c-34.293 0-62.094 27.8-62.094 62.094v3.813c0 34.293 27.8 62.094 62.094 62.094h513.906v1.906c0 34.293 27.8 62.094 62.094 62.094h3.813c34.293 0 62.094-27.8 62.094-62.094v-1.906zM448 768v1.906c0 34.293 27.8 62.094 62.094 62.094h3.813c34.293 0 62.094-27.8 62.094-62.094v-1.906h321.906c34.293 0 62.094-27.8 62.094-62.094v-3.813c0-34.293-27.8-62.094-62.094-62.094h-321.906v-1.906c0-34.293-27.8-62.094-62.094-62.094h-3.813c-34.293 0-62.094 27.8-62.094 62.094v1.906h-321.906c-34.293 0-62.094 27.8-62.094 62.094v3.813c0 34.293 27.8 62.094 62.094 62.094h321.906zM256 512v1.906c0 34.293 27.8 62.094 62.094 62.094h3.813c34.293 0 62.094-27.8 62.094-62.094v-1.906h513.906c34.293 0 62.094-27.8 62.094-62.094v-3.813c0-34.293-27.8-62.094-62.094-62.094h-513.906v-1.906c0-34.293-27.8-62.094-62.094-62.094h-3.813c-34.293 0-62.094 27.8-62.094 62.094v1.906h-129.906c-34.293 0-62.094 27.8-62.094 62.094v3.813c0 34.293 27.8 62.094 62.094 62.094h129.906z" />
<glyph unicode="send" glyph-name="send" d="M1023.402 916.159l-147.45-837.616c-5.008-28.45-32.131-47.453-60.581-42.445-2.635 0.464-5.23 1.129-7.763 1.99l-207.048 70.371c-14.31 4.864-30.141 0.626-40.108-10.735l-130.758-149.054c-13.607-15.511-37.212-17.055-52.723-3.447-8.086 7.094-12.723 17.328-12.723 28.085v200.199c0 8.707 3.041 17.14 8.597 23.843l466.486 562.749-580.279-485.010c-10.358-8.657-24.581-11.054-37.204-6.268l-197.428 74.848c-19.294 7.314-29.005 28.885-21.69 48.178 3.067 8.090 8.847 14.865 16.352 19.168l948.942 544.034c17.901 10.262 40.731 4.071 50.994-13.83 4.347-7.583 5.898-16.45 4.383-25.059z" />
<glyph unicode="save" glyph-name="save" d="M256 896v-192c0-35.346 28.654-64 64-64h320c35.346 0 64 28.654 64 64v192h37.49c16.974 0 33.253-6.743 45.255-18.745l154.51-154.51c12.002-12.002 18.745-28.281 18.745-45.255v-613.49c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v768c0 35.346 28.654 64 64 64h128zM512 896h128v-160c0-17.673-14.327-32-32-32h-64c-17.673 0-32 14.327-32 32v160zM256 448c-35.346 0-64-28.654-64-64v-192c0-35.346 28.654-64 64-64h512c35.346 0 64 28.654 64 64v192c0 35.346-28.654 64-64 64h-512zM288 384h448c17.673 0 32-14.327 32-32s-14.327-32-32-32h-448c-17.673 0-32 14.327-32 32s14.327 32 32 32zM288 256h448c17.673 0 32-14.327 32-32s-14.327-32-32-32h-448c-17.673 0-32 14.327-32 32s14.327 32 32 32z" />
<glyph unicode="reply" glyph-name="reply" d="M1018.197 2.048c-94.208 337.749-356.693 426.667-516.779 448.683l-84.309 11.605v-223.573l-417.109 327.509 417.109 327.339v-175.957l62.293-10.069c203.264-33.28 352.939-115.2 442.197-243.883 82.773-119.467 115.712-279.723 96.256-461.653z" />
<glyph unicode="refresh2" glyph-name="refresh2" d="M995.157 353.621l-65.365 113.152-8.192 15.36-102.741-59.733-14.677-8.363 8.533-14.677 65.365-113.152c7.865-13.361 12.511-29.434 12.511-46.592 0-51.37-41.643-93.013-93.013-93.013-0.078 0-0.157 0-0.235 0h-240.116v-135.509h239.957c0.035 0 0.075 0 0.116 0 126.21 0 228.523 102.313 228.523 228.523 0 42.105-11.387 81.55-31.249 115.424l0.584-1.077zM593.749 778.069l103.253-179.029 9.557-17.067 15.189 11.264 82.091 61.099 12.117 8.875-7.509 12.971-97.451 169.472c-40.252 68.771-113.761 114.229-197.888 114.229s-157.636-45.458-197.304-113.151l-0.584-1.078-65.365-113.323-8.533-14.677 14.677-8.363 102.571-59.563 8.533 14.507 65.365 113.323c16.425 27.992 46.373 46.489 80.64 46.489s64.215-18.497 80.402-46.051l0.238-0.438zM228.864 146.261c-0.015 0-0.034 0-0.052 0-51.37 0-93.013 41.643-93.013 93.013 0 17.158 4.646 33.231 12.748 47.029l-0.237-0.437 110.251 190.976 9.557 17.067-17.067 7.509-94.379 40.107-13.653 5.973-7.509-12.971-104.448-180.907c-19.279-32.797-30.666-72.242-30.666-114.347 0-126.191 102.282-228.492 228.465-228.523h147.629v135.509h-147.627zM397.995 78.336l246.613-142.336v284.843l-246.613-142.507 246.613-142.336v284.843l-246.613-142.507zM289.28 665.429l-246.613-142.507 246.613-142.336v284.843l-246.613-142.507 246.613-142.336v284.843zM851.968 466.091v284.843l-246.613-142.507 246.613-142.336v284.843l-246.613-142.507 246.613-142.336z" />
<glyph unicode="refresh" glyph-name="refresh" d="M716.894 672.58c-1.28 1.166-2.571 2.322-3.872 3.467-69.009 60.732-161.584 87.586-253.821 71.323-165.344-29.155-275.747-186.827-246.593-352.171s186.827-275.747 352.171-246.593c77.947 13.744 145.751 56.436 191.797 118.844 26.232 35.553 76.318 43.109 111.871 16.877s43.109-76.318 16.877-111.871c-70.189-95.128-173.971-160.472-292.762-181.418-252.367-44.499-493.024 124.011-537.524 376.378s124.011 493.024 376.378 537.524c140.63 24.797 282.185-16.266 387.309-108.781 5.96-5.245 11.78-10.637 17.455-16.171l48.279 43.47c11.75 10.579 26.999 16.435 42.81 16.439 35.346 0.008 64.006-28.639 64.014-63.986l0.048-215.702c0-2.244-0.117-4.487-0.352-6.718-3.703-35.152-35.2-60.646-70.352-56.944l-214.515 22.595c-15.724 1.656-30.278 9.074-40.857 20.824-23.651 26.267-21.53 66.734 4.737 90.386l46.901 42.23z" />
<glyph unicode="recaptcha" glyph-name="recaptcha" d="M114.335 124.187c-38.041-38.154-75.279-75.503-113.445-113.782v7.172c0 130.93 0.028 261.861-0.040 392.791-0.007 14.057-1.071 28.124-0.808 42.171 2.28 121.833 41.967 229.877 119.48 323.798 19.492 23.619 41.184 45.108 64.736 64.685 0.938 0.779 1.846 1.601 2.712 2.459 0.304 0.301 0.441 0.772 0.8 1.433-37.48 37.561-74.974 75.135-112.467 112.709 0.162 0.473 0.324 0.945 0.486 1.418h5.583c130.729 0 261.457-0.032 392.187 0.044 14.935 0.008 29.878 1.111 44.804 0.885 118.38-1.799 223.831-39.896 316.319-113.972 26.184-20.971 49.824-44.586 71.313-70.366 1.057-1.268 2.177-2.484 3.544-4.039 37.904 38.044 75.565 75.844 113.225 113.646 0.413-0.171 0.824-0.34 1.236-0.51v-435.802h-434.84c-0.515 0.627-1.032 1.254-1.546 1.88 1.607 0.878 3.531 1.437 4.776 2.681 41.474 41.477 82.844 83.060 124.384 124.469 3.17 3.16 3.269 5.171 0.79 8.74-42.557 61.26-100.337 97.799-174.249 108.273-9.338 1.323-18.663 2.781-28.036 3.77-6.083 0.642-6.14 0.313-6.132-5.734 0.066-54.452 0.14-108.904 0.211-163.356 0.003-1.757 0-3.512 0-5.269l-2.322-1.681c-0.946 1.753-1.543 3.855-2.89 5.209-41.035 41.268-82.179 82.427-123.169 123.742-3.057 3.081-5.071 3.514-8.748 0.971-57.225-39.573-93.054-93.281-106.403-161.784-2.449-12.569-3.991-25.32-5.808-38.007-0.971-6.785-0.603-7.092 6.098-7.086 54.153 0.054 108.305 0.117 162.457 0.177 1.663 0.002 3.325 0.001 6.305 0.001-1.874-1.993-2.994-3.246-4.178-4.434-41.092-41.212-82.137-82.471-123.375-123.535-3.613-3.598-3.642-5.929-0.847-9.944 41.284-59.287 97.11-95.568 168.433-107.409 10.496-1.743 21.026-3.747 31.614-4.383 22.49-1.348 44.651 1.572 66.59 6.665 38.584 8.955 71.277 28.858 101.054 54.209 22.663 19.296 41.229 42.027 55.808 68.022 0.29 0.518 0.675 0.982 1.395 2.017 1.328-1.186 2.569-2.178 3.678-3.299 47.473-48.004 94.944-96.009 142.393-144.039 12.558-12.713 24.964-25.578 37.617-38.196 2.631-2.624 2.641-4.311 0.394-7.201-32.139-41.306-69.537-77.049-112.435-106.946-56.715-39.528-118.882-66.473-186.51-80.653-25.087-5.259-50.414-8.57-76.035-9.951-25.784-1.389-51.524-1.133-77.195 1.293-55.054 5.206-107.949 18.945-158.537 41.439-34.715 15.435-66.629 35.527-97.999 56.924-34.407 23.469-62.862 52.803-89.716 84.102-0.788 0.919-1.461 1.938-2.691 3.585z" />
<glyph unicode="quote_2" glyph-name="quote-2" d="M214.449 82.518c-117.589 0-219.477 101.888-214.357 237.568 8.021 222.037 243.029 386.56 426.667 493.568l54.955-46.933c-131.413-78.336-259.755-199.168-267.264-339.456-5.12-141.141 167.083-206.165 167.083-211.627-2.56-73.045-75.776-133.291-167.083-133.291zM757.681 82.347c-117.419 0-219.307 102.4-214.187 237.568 7.851 221.867 242.859 386.389 425.643 493.568l54.955-46.763c-130.731-78.336-258.56-199.168-266.411-339.456-5.12-141.141 167.083-206.165 167.083-211.627-2.56-73.045-75.776-133.291-167.083-133.291z" />
<glyph unicode="question" glyph-name="question" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM552.789 170.667c-11.513-10.623-26.956-17.137-43.921-17.137-1.059 0-2.113 0.025-3.16 0.076-0.751-0.050-1.805-0.076-2.864-0.076-16.965 0-32.408 6.514-43.966 17.177-11.108 11.186-18 26.656-18 43.736s6.893 32.549 18.048 43.779c12.419 10.757 28.738 17.313 46.589 17.313s34.17-6.556 46.681-17.392c11.062-11.151 17.955-26.621 17.955-43.7s-6.893-32.549-18.048-43.779zM676.352 527.531c-14.593-25.881-32.311-48.004-53.036-66.882l-32.638-31.081c-18.585-17.435-31.085-41.162-34.087-67.765l-1.582-24.907h-102.4c-0.104 2.643-0.163 5.746-0.163 8.863 0 28.82 5.063 56.457 14.347 82.072 11.385 24.359 28.247 46.249 49.016 63.625 18.67 15.401 34.551 32.639 47.867 51.794 8.039 12.997 12.482 27.729 12.496 43.498q0 68.271-62.464 68.271c-0.543 0.017-1.181 0.026-1.822 0.026-17.84 0-33.952-7.398-45.435-19.293-11.575-12.699-18.652-29.637-18.652-48.228 0-0.751 0.012-1.5 0.035-2.246l-116.056 0.109c-0.089 1.957-0.14 4.251-0.14 6.558 0 44.597 19.006 84.754 49.36 112.815 32.988 27.163 75.53 43.576 121.907 43.576 3.801 0 7.575-0.11 11.321-0.328q84.816 0.024 131.067-40.936c28.949-26.748 47.016-64.908 47.016-107.288 0-3.024-0.092-6.026-0.273-9.004 0.020 0.268 0.021 0.101 0.021-0.066 0-23.235-5.614-45.158-15.561-64.488z" />
<glyph unicode="profile_male" glyph-name="profile-male" d="M921.991 173.375c-37.632 62.123-126.037 74.667-170.24 89.6s-129.173 76.907-129.173 76.907v44.8c17.386 16.117 32.259 34.602 44.19 55.017l0.61 1.132c1.792 3.136 3.285 6.123 4.779 8.96v1.195c1.195 2.688 2.24 5.077 3.136 7.467v1.643c0.825 2.114 1.645 4.757 2.298 7.466 1.567 7.063 2.834 15.217 3.613 23.513 7.977 2.92 12.009-1.41 22.165 24.723 11.499 29.867 30.912 96.171 18.219 110.208-2.949 3.455-7.309 5.633-12.176 5.633-3.373 0-6.503-1.045-9.081-2.83 6.241 25.947 9.791 55.696 9.791 86.275 0 7.749-0.228 15.445-0.678 23.080-5.775 93.026-97.764 146.937-182.884 155.298-94.379 9.259-91.989-7.317-102.144-40.917-68.992 1.045-98.261-62.421-98.261-62.421-16.725-38.229-17.771-88.107-3.136-159.787-2.527 1.75-5.655 2.795-9.028 2.795-4.867 0-9.228-2.177-12.159-5.61-12.712-14.060 6.701-80.812 18.2-110.229s14.933-21.205 23.595-24.341c0-3.883 1.195-19.413 2.091-23.445 11.669-33.197 30.989-61.224 55.92-82.983l0.231-46.192s-85.12-62.123-129.323-76.907-132.459-27.776-170.091-89.6-36.437-173.824-36.437-173.824h891.968s1.643 111.253-35.989 173.376z" />
<glyph unicode="power_on_off" glyph-name="power-on-off" d="M916.651 761.003c-12.235 15.422-30.974 25.224-52.003 25.224-15.397 0-29.566-5.255-40.813-14.069l0.144 0.109c-15.645-12.197-25.611-31.046-25.611-52.223 0-15.306 5.207-29.396 13.945-40.596l-0.11 0.147c49.588-63.037 79.531-143.561 79.531-231.079 0-0.181 0-0.363 0-0.544v0.028c0-209.721-170.012-379.733-379.733-379.733s-379.733 170.012-379.733 379.733v0c-0.001 0.37-0.002 0.807-0.002 1.245 0 87.421 29.877 167.864 79.977 231.675l-0.615-0.813c8.478 10.994 13.589 24.965 13.589 40.129 0 21.067-9.863 39.83-25.223 51.924l-0.141 0.107c-11.057 8.587-25.133 13.767-40.419 13.767-21.171 0-40.022-9.936-52.144-25.398l-0.109-0.144c-66.83-85.078-107.179-193.714-107.179-311.774 0-0.252 0-0.504 0.001-0.756v0.040c0-282.77 229.23-512 512-512s512 229.23 512 512v0c0.002 0.53 0.003 1.158 0.003 1.785 0 117.964-40.283 226.52-107.844 312.661l0.833-1.103zM512 382.123c36.271 0.193 65.61 29.593 65.707 65.868v445.961c0 36.477-29.571 66.048-66.048 66.048s-66.048-29.571-66.048-66.048v0-445.952c0.097-36.404 29.63-65.878 66.048-65.878 0.12 0 0.24 0 0.36 0.001h-0.018z" />
<glyph unicode="post_pin" glyph-name="post-pin" d="M536.811 853.105l109.038 106.895 378.152-376.456-109.038-109.219c-32.479 20.14-67.665 28.66-105.558 25.562s-69.985-18.59-96.278-46.476l-46.399-44.152c-26.293-27.886-41.372-60.806-45.239-98.762s4.253-73.2 24.359-105.733l-106.718-106.895-143.837 144.076-167.036-167.314c-10.826-10.844-31.706-27.886-62.639-51.124-38.666-27.886-71.918-49.574-99.758-65.066-34.026-20.14-54.905-26.724-62.639-19.752s-1.547 28.273 18.56 63.905c15.466 27.886 37.119 60.419 64.959 97.6 23.2 32.533 40.212 54.222 51.039 65.066l167.036 164.99-143.837 144.076 109.038 109.219c30.933-20.14 65.345-28.66 103.238-25.562s70.758 18.59 98.598 46.476l44.079 44.152c27.84 27.886 43.692 60.806 47.559 98.762s-5.026 73.2-26.679 105.733z" />
<glyph unicode="popup" glyph-name="popup" d="M64 960h896c35.346 0 64-28.654 64-64v-896c0-35.346-28.654-64-64-64h-896c-35.346 0-64 28.654-64 64v896c0 35.346 28.654 64 64 64zM256 704c-35.346 0-64-28.654-64-64v-384c0-35.346 28.654-64 64-64h512c35.346 0 64 28.654 64 64v384c0 35.346-28.654 64-64 64h-512zM704 640c35.346 0 64-28.654 64-64s-28.654-64-64-64c-35.346 0-64 28.654-64 64s28.654 64 64 64z" />
<glyph unicode="plus_circle" glyph-name="plus-circle" d="M576 512v128c0 35.346-28.654 64-64 64s-64-28.654-64-64v-128h-128c-35.346 0-64-28.654-64-64s28.654-64 64-64h128v-128c0-35.346 28.654-64 64-64s64 28.654 64 64v128h128c35.346 0 64 28.654 64 64s-28.654 64-64 64h-128zM512-64c-282.77 0-512 229.23-512 512s229.23 512 512 512c282.77 0 512-229.23 512-512s-229.23-512-512-512z" />
<glyph unicode="plus" glyph-name="plus" d="M592 528h224c44.183 0 80-35.817 80-80s-35.817-80-80-80h-224v-224c0-44.183-35.817-80-80-80s-80 35.817-80 80v224h-224c-44.183 0-80 35.817-80 80s35.817 80 80 80h224v224c0 44.183 35.817 80 80 80s80-35.817 80-80v-224z" />
<glyph unicode="plugin_2" glyph-name="plugin-2" d="M757.93 655.274l2.731 274.603c0.001 0.101 0.002 0.221 0.002 0.341 0 16.212-13.143 29.355-29.355 29.355-0.001 0-0.001 0-0.002 0h-87.040c-16.055-0.093-29.068-12.987-29.354-28.986l-2.731-275.312h-200.021l2.731 274.432c0.003 0.152 0.004 0.332 0.004 0.512 0 16.154-13.048 29.26-29.179 29.354h-87.049c-0.001 0-0.003 0-0.004 0-16.126 0-29.233-12.929-29.521-28.986l-2.731-275.312h-76.971v-168.96c0.699-144.669 96.73-266.722 228.462-306.607l5.010-214.268c0.049-8.233 3.581-15.631 9.196-20.803 5.313-5.089 12.508-8.21 20.432-8.21 0.024 0 0.048 0 0.072 0h-0.004c29.355 0 45.568 0.853 61.781 1.536s31.573 1.365 59.904 1.536c0.001 0 0.001 0 0.002 0 16.281 0 29.501 13.101 29.694 29.336v209.597c133.939 40.538 229.895 162.573 230.57 307.121v169.039z" />
<glyph unicode="plug_disconnected" glyph-name="plug-disconnected" d="M609.963 390.827c-3.917 3.892-9.315 6.297-15.275 6.297s-11.358-2.405-15.276-6.298l0.001 0.001-130.048-130.56-125.099 125.099 130.048 130.048c3.892 3.917 6.297 9.315 6.297 15.275s-2.405 11.358-6.298 15.276l-30.548 30.548c-3.917 3.892-9.315 6.297-15.275 6.297s-11.358-2.405-15.276-6.298l-130.047-130.047-32.597 32.597c-3.101 3.17-7.422 5.135-12.203 5.135s-9.101-1.965-12.2-5.132l-83.63-83.63c-37.202-37.444-60.196-89.045-60.196-146.015 0-45.244 14.502-87.1 39.111-121.175l-0.419 0.609-82.091-82.091c-11.749-11.749-19.016-27.981-19.016-45.909 0-35.857 29.068-64.926 64.926-64.926 17.929 0 34.16 7.267 45.909 19.016l82.091 82.091c33.426-24.103 75.209-38.549 120.366-38.549 57.155 0 108.904 23.143 146.389 60.568l-0.003-0.003 83.456 83.627c3.17 3.101 5.135 7.422 5.135 12.203s-1.965 9.101-5.132 12.2l-32.6 32.6 130.048 130.048c3.892 3.917 6.297 9.315 6.297 15.275s-2.405 11.358-6.298 15.276l0.001-0.001zM1005.056 941.056c-11.741 11.767-27.975 19.046-45.909 19.046s-34.168-7.28-45.908-19.045l-84.481-84.481c-33.426 24.103-75.209 38.549-120.366 38.549-57.155 0-108.904-23.143-146.389-60.568l0.003 0.003-84.139-83.627c-3.17-3.101-5.135-7.422-5.135-12.203s1.965-9.101 5.132-12.2l312.664-312.664c3.101-3.17 7.422-5.135 12.203-5.135s9.101 1.965 12.2 5.132l83.63 83.63c37.423 37.482 60.565 89.231 60.565 146.386 0 45.157-14.446 86.94-38.97 120.98l0.42-0.613 84.48 84.48c11.767 11.741 19.046 27.975 19.046 45.909s-7.28 34.168-19.045 45.908l-0.001 0.001z" />
<glyph unicode="plug_connected" glyph-name="plug-connected" d="M354.645 573.269c-2.821 2.878-6.749 4.661-11.093 4.661s-8.272-1.784-11.091-4.659l-0.002-0.003-119.467-119.467c-33.906-33.962-54.873-80.85-54.873-132.635 0-40.902 13.080-78.749 35.286-109.586l-0.381 0.556-175.957-175.787c-10.657-10.657-17.249-25.38-17.249-41.643 0-32.525 26.367-58.892 58.892-58.892 16.262 0 30.985 6.592 41.643 17.249v0l175.787 176.128c30.28-21.825 68.127-34.905 109.029-34.905 51.785 0 98.673 20.967 132.637 54.876l119.465 119.465c2.836 2.84 4.59 6.762 4.59 11.093s-1.754 8.253-4.59 11.094v0zM1006.933 942.933c-10.629 10.65-25.324 17.239-41.557 17.239s-30.929-6.589-41.556-17.238l-176.129-175.958c-30.26 21.781-68.071 34.834-108.93 34.834-51.75 0-98.609-20.939-132.568-54.806l-119.463-119.463c-2.836-2.84-4.59-6.762-4.59-11.093s1.754-8.253 4.59-11.094v0l282.624-282.624c2.821-2.878 6.749-4.661 11.093-4.661s8.272 1.784 11.091 4.659l0.002 0.003 119.467 119.467c33.906 33.962 54.873 80.85 54.873 132.635 0 40.902-13.080 78.749-35.286 109.586l0.381-0.556 175.957 175.787c10.701 10.637 17.325 25.366 17.325 41.643s-6.623 31.006-17.322 41.64l-0.003 0.003z" />
<glyph unicode="play" glyph-name="play" d="M293.643 886.078l531.188-386.319c28.586-20.79 34.906-60.816 14.116-89.402-3.938-5.415-8.701-10.178-14.116-14.116l-531.188-386.319c-28.586-20.79-68.612-14.47-89.402 14.116-7.956 10.939-12.241 24.117-12.241 37.643v772.637c0 35.346 28.654 64 64 64 13.526 0 26.704-4.285 37.643-12.241z" />
<glyph unicode="pin" glyph-name="pin" d="M297.155 870.486c125.418 101.021 304.273 101.021 429.691 0 123.952-99.841 157.486-274.697 79.264-413.31l-294.109-521.176-294.109 521.176c-78.222 138.613-44.689 313.469 79.264 413.31zM512 486.4c70.692 0 128 57.308 128 128s-57.308 128-128 128c-70.692 0-128-57.308-128-128s57.308-128 128-128z" />
<glyph unicode="photo_picture" glyph-name="photo-picture" d="M128 831.909h768c70.692 0 128-57.308 128-128v-512c0-70.692-57.308-128-128-128h-768c-70.692 0-128 57.308-128 128v512c0 70.692 57.308 128 128 128zM864 192c17.673 0 32 14.327 32 32v448c0 17.673-14.327 32-32 32h-704c-17.673 0-32-14.327-32-32v-277.114c0-10.479 5.131-20.294 13.735-26.275 14.511-10.087 34.453-6.501 44.54 8.011l5.468 7.866c3.088 5.029 9.354 8.471 16.582 8.471s13.494-3.441 16.631-8.559l42.74-61.863 174.711 252.92c5.545 10.301 17.931 17.472 32.319 17.472 14.004 0 26.108-6.793 31.951-16.825l262.042-379.694c0.826-1.341 1.457-2.78 1.886-4.41h93.395zM736 640c53.019 0 96-42.981 96-96s-42.981-96-96-96c-53.019 0-96 42.981-96 96s42.981 96 96 96z" />
<glyph unicode="phone" glyph-name="phone" d="M96 644.091c0.383 6.356 0.719 12.715 1.158 19.067 2.407 34.835 9.752 68.393 22.669 100.482 10.283 25.546 23.75 49 40.315 70.389 11.371 14.684 24.127 27.819 37.886 39.915 11.775 10.351 23.209 21.152 34.745 31.815 7.805 7.214 16.098 13.568 25.71 17.741 16.771 7.281 32.938 5.537 48.531-3.861 15.58-9.389 27.495-23.14 38.498-37.917 14.867-19.967 26.85-42.028 39.684-63.47 9.421-15.74 18.561-31.656 26.011-48.611 7.548-17.177 13.557-34.88 15.397-53.95 2.536-26.278-3.773-49.817-20.485-69.211-9.59-11.13-20.792-20.641-31.103-31.069-10.013-10.126-21.434-18.212-32.501-26.842-13.34-10.402-23.591-23.417-27.874-41.004-3.58-14.703-2.625-29.374 0.561-43.979 4.338-19.88 12.228-38.199 21.467-55.904 16.31-31.257 36.336-59.679 57.602-87.145 20.172-26.052 41.282-51.184 64.197-74.492 19.154-19.485 39.281-37.668 62.295-51.801 13.611-8.358 27.832-14.956 43.525-17.296 20.317-3.030 38.018 3.112 53.341 17.542 3.092 2.911 6.23 5.854 8.874 9.211 11.704 14.855 25.651 27.129 39.36 39.64 7.778 7.098 15.694 14.267 24.381 19.919 21.681 14.106 44.907 15.397 68.798 7.237 19.479-6.653 36.955-17.52 52.816-31.050 19.334-16.493 38.017-33.873 56.871-51.008 13.325-12.112 25.947-25.026 36.91-39.689 9.418-12.596 17.396-26.049 20.847-42.074 0.578-2.685 1.014-5.405 1.515-8.109v-9.888c-0.282-1.5-0.581-2.997-0.845-4.501-2.861-16.304-11.322-29.058-22.392-39.964-10.796-10.635-22.351-20.414-32.79-31.428-23.2-24.478-49.419-44.015-79.015-58.372-29.561-14.341-60.527-22.693-92.863-25.201-5.43-0.421-10.862-0.81-16.293-1.214h-12.641c-1.228 0.156-2.453 0.36-3.685 0.46-8.106 0.661-16.235 1.068-24.315 1.989-29.335 3.343-57.659 11.278-85.211 22.44-43.679 17.696-83.615 42.727-121.293 72.116-32.133 25.064-62.033 52.964-90.438 82.743-33.21 34.815-64.16 71.844-93.455 110.497-28.62 37.762-55.164 77.111-78.554 118.856-27.723 49.479-50.598 101.29-64.649 157.281-6.417 25.57-10.826 51.513-12.438 77.972-0.368 6.048-0.749 12.095-1.123 18.143v13.596z" />
<glyph unicode="performance" glyph-name="performance" d="M417.792 403.456c1.004 1.77 1.595 3.888 1.595 6.144 0 6.975-5.654 12.629-12.629 12.629-0.021 0-0.042 0-0.063 0h-143.698c-2.535 0.013-4.584 2.071-4.584 4.608 0 1.352 0.582 2.567 1.509 3.41l0.004 0.003 508.075 460.629c-72.482 41.722-159.387 66.332-252.040 66.332-282.77 0-512-229.23-512-512 0-168.707 81.597-318.357 207.479-411.636l1.383-0.979zM789.675 878.080l-186.88-329.045c-0.991-1.775-1.574-3.894-1.574-6.15 0-7.069 5.731-12.8 12.8-12.8 0.133 0 0.266 0.002 0.399 0.006h143.341c2.531-0.018 4.577-2.074 4.577-4.608 0-1.265-0.51-2.41-1.334-3.243v0l-527.36-503.808c80.343-54.904 179.602-87.673 286.514-87.673 282.77 0 512 229.23 512 512 0 182.975-95.982 343.532-240.344 434.070l-2.138 1.251z" />
<glyph unicode="pencil" glyph-name="pencil" d="M0-34.987c-0.395-1.591-0.622-3.418-0.622-5.298 0-6.68 2.864-12.692 7.432-16.873 4.214-4.6 10.225-7.464 16.906-7.464 1.88 0 3.707 0.227 5.455 0.655l312.163 95.029 674.133 674.133c4.857 4.876 7.86 11.602 7.86 19.029s-3.003 14.153-7.861 19.030l-208.212 208.895c-4.849 4.847-11.546 7.845-18.944 7.845s-14.095-2.998-18.944-7.845l-674.304-674.816zM88.235 24.917l60.757 199.168 139.093-139.093z" />
<glyph unicode="pause" glyph-name="pause" d="M320 832h64c35.346 0 64-28.654 64-64v-640c0-35.346-28.654-64-64-64h-64c-35.346 0-64 28.654-64 64v640c0 35.346 28.654 64 64 64zM640 832h64c35.346 0 64-28.654 64-64v-640c0-35.346-28.654-64-64-64h-64c-35.346 0-64 28.654-64 64v640c0 35.346 28.654 64 64 64z" />
<glyph unicode="paperclip" glyph-name="paperclip" d="M248.822-63.976c-51.495 1.136-97.52 23.616-129.751 58.91-61.91 61.751-69.59 121.313-65.321 160.396 7.914 52.328 33.104 97.701 69.471 131.097l392.695 392.679c109.568 109.568 182.443 69.462 216.235 35.84 40.789-40.789 68.267-111.275-36.693-215.381l-361.301-361.472-70.315 70.998 361.131 360.448c55.636 55.636 42.839 68.267 36.693 74.752s-19.797 19.797-75.435-35.84l-392.534-392.534c-20.474-18.438-35.098-43.015-40.978-70.817-3.054-26.463 8.893-52.063 36.37-79.711 34.133-34.133 59.904-30.549 68.267-29.355 30.677 7.419 56.812 23.685 76.316 45.914l465.551 465.744c32.165 29.338 56.871 66.31 71.298 108.071 14.547 53.038-2.178 100.313-50.648 148.782-51.2 51.2-133.291 104.448-257.536-19.968l-428.715-429.739c-9.043-9.107-21.57-14.742-35.413-14.742-27.56 0-49.901 22.344-49.901 49.901 0 13.716 5.534 26.14 14.491 35.16l429.224 429.736c133.291 132.779 278.528 140.117 398.678 19.797 93.184-93.184 93.184-183.979 76.627-243.712-19.472-60.91-53.065-112.682-97.048-153.387l-465.811-465.621c-34.177-37.539-79.859-64.066-131.449-74-8.080-1.219-15.674-1.778-23.4-1.778-0.281 0-0.562 0.001-0.843 0.002z" />
<glyph unicode="paint_bucket" glyph-name="paint-bucket" d="M907.435 459.947v0l-383.488 383.488c-5.437 5.441-12.949 8.806-21.248 8.806s-15.811-3.365-21.248-8.806l-62.806-62.806-134.485 134.315c-10.895 11.861-26.477 19.268-43.789 19.268-32.801 0-59.392-26.591-59.392-59.392 0-17.609 7.664-33.429 19.837-44.305l133.86-133.853-325.803-325.803c-5.39-5.428-8.721-12.906-8.721-21.163s3.331-15.735 8.723-21.164l383.657-383.657c5.437-5.441 12.949-8.806 21.248-8.806s15.811 3.365 21.248 8.806l472.406 472.576c5.4 5.455 8.736 12.962 8.736 21.248s-3.336 15.793-8.739 21.251zM671.915 349.696h-515.584l346.453 346.453 257.877-257.707zM1002.667 151.040l-71.339 123.563-1.195 2.731c-3.657 4.662-9.29 7.629-15.616 7.629s-11.959-2.967-15.584-7.586l-0.032-0.043v-1.195c-0.98-1.283-1.837-2.743-2.509-4.303l-69.683-120.796c-13.484-18.059-21.589-40.821-21.589-65.475 0-60.796 49.284-110.080 110.080-110.080s110.080 49.284 110.080 110.080c0 24.655-8.105 47.416-21.796 65.766z" />
<glyph unicode="page_pdf" glyph-name="page-pdf" d="M407.040 307.541h-58.368v-109.227h33.109v34.133h25.259c0.757-0.054 1.64-0.085 2.53-0.085 20.736 0 37.547 16.81 37.547 37.547s-16.81 37.547-37.547 37.547c-0.89 0-1.773-0.031-2.648-0.092zM402.773 261.291h-20.992v17.067h20.992c5.632 0 9.899-2.731 9.899-8.704s-4.437-8.533-9.899-8.533zM512 307.541h-48.469v-109.227h48.469c34.133 0 59.733 19.797 59.733 54.784s-25.6 54.443-59.733 54.443zM512 227.157h-15.36v51.2h15.36c0.742 0.082 1.602 0.128 2.474 0.128 13.196 0 23.893-10.697 23.893-23.893 0-0.706-0.031-1.405-0.091-2.095 0.007 0.033 0.007-0.035 0.007-0.102 0-13.95-11.309-25.259-25.259-25.259-0.36 0-0.719 0.008-1.076 0.022zM592.384 198.315h33.109v40.789h48.64v28.843h-48.64v10.752h49.835v28.843h-82.944v-109.227zM870.4 891.733v0 47.787c0 11.311-9.169 20.48-20.48 20.48h-389.12l-307.2-307.2v-696.32c0-11.311 9.169-20.48 20.48-20.48h675.84c11.311 0 20.48 9.169 20.48 20.48v29.013zM271.531 53.931v557.909h209.749c11.311 0 20.48 9.169 20.48 20.48v209.749h250.88v-788.139z" />
<glyph unicode="page_multiple" glyph-name="page-multiple" d="M911.531 741.206h-38.059v-733.867c0-9.426-7.641-17.067-17.067-17.067h-542.208v-37.205c0-9.426 7.641-17.067 17.067-17.067h580.267c9.426 0 17.067 7.641 17.067 17.067v771.584c0 9.426-7.641 17.067-17.067 17.067zM818.688 61.953v772.096c0 9.426-7.641 17.067-17.067 17.067h-37.547v-733.867c0-9.426-7.641-17.067-17.067-17.067h-542.208v-38.059c0-9.426 7.641-17.067 17.067-17.067h580.267c9.426 0 17.067 7.641 17.067 17.067zM709.803 171.35v771.584c0 9.426-7.641 17.067-17.067 17.067h-580.267c-9.426 0-17.067-7.641-17.067-17.067v-771.584c0-9.426 7.641-17.067 17.067-17.067h580.267c9.426 0 17.067 7.641 17.067 17.067z" />
<glyph unicode="page" glyph-name="page" d="M870.4 891.733v0 47.787c0 11.311-9.169 20.48-20.48 20.48h-389.12l-307.2-307.2v-696.32c0-11.311 9.169-20.48 20.48-20.48h675.84c11.311 0 20.48 9.169 20.48 20.48v29.013zM271.531 53.931v557.909h209.749c11.311 0 20.48 9.169 20.48 20.48v209.749h250.88v-788.139z" />
<glyph unicode="open_new_window" glyph-name="open-new-window" d="M840.532 896h-238.933v-119.467h154.411l-468.011-467.563c-0.527-0.539-0.854-1.277-0.854-2.091s0.326-1.552 0.854-2.092l80.788-80.788c0.539-0.527 1.277-0.854 2.091-0.854s1.552 0.326 2.092 0.854l467.562 468.010v-154.411h119.467v358.4zM840.532 149.333c0-16.495-13.372-29.867-29.867-29.867v0h-597.333c-16.495 0-29.867 13.372-29.867 29.867v0 597.333c0 16.495 13.372 29.867 29.867 29.867v0h194.133v119.467h-224c-65.979 0-119.467-53.487-119.467-119.467v0-657.067c0-65.979 53.487-119.467 119.467-119.467v0h657.067c65.979 0 119.467 53.487 119.467 119.467v0 224h-119.467z" />
<glyph unicode="movefooter" glyph-name="movefooter" d="M128 896h768c35.346 0 64-28.654 64-64s-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64s28.654 64 64 64zM128 640h768c35.346 0 64-28.654 64-64s-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64s28.654 64 64 64zM128 384h768c35.346 0 64-28.654 64-64v-256c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v256c0 35.346 28.654 64 64 64z" />
<glyph unicode="more" glyph-name="more" d="M236.715 448c0-65.32-52.952-118.272-118.272-118.272s-118.272 52.952-118.272 118.272c0 65.32 52.952 118.272 118.272 118.272s118.272-52.952 118.272-118.272zM630.272 448c0-65.32-52.952-118.272-118.272-118.272s-118.272 52.952-118.272 118.272c0 65.32 52.952 118.272 118.272 118.272s118.272-52.952 118.272-118.272zM1024 448c0-65.32-52.952-118.272-118.272-118.272s-118.272 52.952-118.272 118.272c0 65.32 52.952 118.272 118.272 118.272s118.272-52.952 118.272-118.272z" />
<glyph unicode="monitor" glyph-name="monitor" d="M961.194 860.245h-898.389c-34.686 0-62.805-28.119-62.805-62.805v-548.011c0-34.686 28.119-62.805 62.805-62.805h338.261v-95.232h-104.789c-9.897 0-17.92-8.023-17.92-17.92v-19.456c-0.002-0.102-0.003-0.221-0.003-0.341 0-9.897 8.023-17.92 17.92-17.92 0.001 0 0.002 0 0.003 0h422.229c9.897 0 17.92 8.023 17.92 17.92v19.627c0 9.897-8.023 17.92-17.92 17.92h-95.573v95.232h338.261c0 0 0 0 0 0 34.686 0 62.805 28.119 62.805 62.805 0 0.060 0 0.12 0 0.18v548.001c0 34.686-28.119 62.805-62.805 62.805zM111.956 749.311h800.085v-451.755h-800.085z" />
<glyph unicode="mail" glyph-name="mail" d="M0 576l512-192 512 192v-384c0-70.692-57.308-128-128-128h-768c-70.692 0-128 57.308-128 128v384zM128 832h768c70.692 0 128-57.308 128-128v-32l-512-192-512 192v32c0 70.692 57.308 128 128 128z" />
<glyph unicode="magnifying_glass_search" glyph-name="magnifying-glass-search" d="M1024 39.595l-226.816 226.816c50.818 70.758 81.267 159.126 81.267 254.605 0 242.711-196.756 439.467-439.467 439.467s-439.467-196.756-439.467-439.467c0-242.711 196.756-439.467 439.467-439.467 95.479 0 183.847 30.449 255.922 82.165l225.67-227.715zM146.432 520.704c0 0.051 0 0.111 0 0.171 0 161.744 131.12 292.864 292.864 292.864s292.864-131.12 292.864-292.864c0-161.744-131.12-292.864-292.864-292.864-161.606 0.194-292.573 131.101-292.864 292.665z" />
<glyph unicode="logout" glyph-name="logout" d="M640 384h-256c-35.346 0-64 28.654-64 64s28.654 64 64 64h256v80.297c0 15.811 5.852 31.062 16.429 42.814 23.645 26.273 64.112 28.402 90.385 4.757l160.33-144.297c1.668-1.501 3.256-3.089 4.757-4.757 23.645-26.273 21.516-66.739-4.757-90.385l-160.33-144.297c-11.752-10.577-27.003-16.429-42.814-16.429-35.346 0-64 28.654-64 64v80.297zM192 64h320c35.346 0 64-28.654 64-64s-28.654-64-64-64h-384c-35.346 0-64 28.654-64 64v896c0 35.346 28.654 64 64 64h384c35.346 0 64-28.654 64-64s-28.654-64-64-64h-320v-768z" />
<glyph unicode="lock" glyph-name="lock" d="M222.575 512l0.016 102.193c7.191 156.872 134.178 281.807 289.779 281.807s282.589-124.933 289.803-282.466v-101.534h29.827c35.346 0 64-28.654 64-64v-384c0-35.346-28.654-64-64-64h-640c-35.346 0-64 28.654-64 64v384c0 35.346 28.654 64 64 64h30.575zM386.045 512h251.758v101.532c0 70.902-56.355 128.377-125.878 128.377s-125.88-57.478-125.88-128.377v-101.532z" />
<glyph unicode="loader" glyph-name="loader" d="M512 960c-34.404 0-62.293-27.89-62.293-62.293v-151.723c0-34.404 27.89-62.293 62.293-62.293s62.293 27.89 62.293 62.293v151.723c0 34.404-27.89 62.293-62.293 62.293zM512 212.309c-34.404 0-62.293-27.89-62.293-62.293v-151.723c0-34.404 27.89-62.293 62.293-62.293s62.293 27.89 62.293 62.293v151.723c0 34.404-27.89 62.293-62.293 62.293zM722.603 596.309c0.033 0 0.071 0 0.11 0 17.165 0 32.7 6.981 43.92 18.259l107.352 107.352c11.99 11.377 19.45 27.428 19.45 45.221 0 34.404-27.89 62.293-62.293 62.293-17.793 0-33.843-7.46-45.195-19.422l-107.375-107.377c-11.263-11.271-18.229-26.838-18.229-44.032 0-34.392 27.871-62.275 62.26-62.293zM301.397 299.691c-0.033 0-0.071 0-0.11 0-17.165 0-32.7-6.981-43.92-18.259l-107.352-107.352c-11.99-11.377-19.45-27.428-19.45-45.221 0-34.404 27.89-62.293 62.293-62.293 17.793 0 33.843 7.46 45.195 19.422l107.375 107.377c11.263 11.271 18.229 26.838 18.229 44.032 0 34.392-27.871 62.275-62.26 62.293zM961.707 510.293h-151.723c-34.404 0-62.293-27.89-62.293-62.293s27.89-62.293 62.293-62.293h151.723c34.404 0 62.293 27.89 62.293 62.293s-27.89 62.293-62.293 62.293zM276.309 448c0 34.404-27.89 62.293-62.293 62.293h-151.723c-34.404 0-62.293-27.89-62.293-62.293s27.89-62.293 62.293-62.293h151.723c34.404 0 62.293 27.89 62.293 62.293zM766.635 281.429c-11.377 11.99-27.428 19.45-45.221 19.45-34.404 0-62.293-27.89-62.293-62.293 0-17.793 7.46-33.843 19.422-45.195l107.377-107.375c11.377-11.99 27.428-19.45 45.221-19.45 34.404 0 62.293 27.89 62.293 62.293 0 17.793-7.46 33.843-19.422 45.195zM238.080 809.984c-11.14 10.571-26.233 17.073-42.843 17.073-34.404 0-62.293-27.89-62.293-62.293 0-16.611 6.502-31.703 17.099-42.871l107.323-107.322c11.377-11.99 27.428-19.45 45.221-19.45 34.404 0 62.293 27.89 62.293 62.293 0 17.793-7.46 33.843-19.422 45.195z" />
<glyph unicode="list_number" glyph-name="list-number" d="M384 832h576c35.346 0 64-28.654 64-64s-28.654-64-64-64h-576c-35.346 0-64 28.654-64 64s28.654 64 64 64zM384 512h576c35.346 0 64-28.654 64-64s-28.654-64-64-64h-576c-35.346 0-64 28.654-64 64s28.654 64 64 64zM384 192h576c35.346 0 64-28.654 64-64s-28.654-64-64-64h-576c-35.346 0-64 28.654-64 64s28.654 64 64 64zM85.76 687.36v108.16c-4.8-2.24-9.92-3.52-15.040-3.52-18.56 0-32.32 13.44-32.32 32 0 21.44 14.4 30.4 16.64 29.44 6.4-4.16 12.48-6.4 20.16-6.4 13.76 0 25.28 8.64 28.8 23.36h16.64c18.24 0 28.16-9.92 28.16-29.76v-153.28c0-19.52-9.92-29.76-28.16-29.76h-8c-17.6 0-26.88 10.24-26.88 29.76zM25.6 369.6v12.16c0 36.16 35.52 56.64 63.36 69.12 24 11.2 42.56 16.64 42.56 29.44 0 13.12-8.64 19.84-26.56 19.84-21.44 0-34.24-16-37.44-32.32 0-0.64-41.28-2.24-41.28 28.48s29.76 54.080 82.88 54.080c54.72 0 84.48-24.96 84.48-66.88 0-39.68-27.2-52.48-56.64-63.36-24.96-9.6-43.52-16.64-51.2-30.4h79.36c22.080 0 30.080-8.32 30.080-23.36v-2.56c0-16-7.68-24.96-30.080-24.96h-101.12c-29.76 0-38.4 4.16-38.4 30.72zM22.4 62.72c0 32 37.12 31.36 37.76 29.12 5.44-19.52 21.76-29.44 44.8-29.44 20.16 0 32.32 8.32 32.32 21.44s-7.68 18.88-24.32 18.88h-6.4c-20.8 0-29.44 6.72-29.44 20.8v3.2c0 14.080 9.6 21.12 28.8 21.12h11.2c11.2 0 18.24 6.080 18.24 15.68 0 11.52-11.84 18.88-31.36 18.88-27.2 0-37.44-15.040-40.96-27.52-0.32-2.56-36.8-3.52-36.8 28.8 0 26.56 30.4 46.72 79.040 46.72 57.92 0 89.28-20.16 89.28-57.92 0-20.48-13.44-34.88-37.76-41.92 26.56-8.64 40.96-26.56 40.96-51.84 0-40.96-33.28-64.32-92.16-64.32-51.52 0-83.2 22.080-83.2 48.32z" />
<glyph unicode="list_bullet" glyph-name="list-bullet" d="M384 832h576c35.346 0 64-28.654 64-64s-28.654-64-64-64h-576c-35.346 0-64 28.654-64 64s28.654 64 64 64zM384 512h576c35.346 0 64-28.654 64-64s-28.654-64-64-64h-576c-35.346 0-64 28.654-64 64s28.654 64 64 64zM384 192h576c35.346 0 64-28.654 64-64s-28.654-64-64-64h-576c-35.346 0-64 28.654-64 64s28.654 64 64 64zM64 864h64c35.346 0 64-28.654 64-64v-64c0-35.346-28.654-64-64-64h-64c-35.346 0-64 28.654-64 64v64c0 35.346 28.654 64 64 64zM64 544h64c35.346 0 64-28.654 64-64v-64c0-35.346-28.654-64-64-64h-64c-35.346 0-64 28.654-64 64v64c0 35.346 28.654 64 64 64zM64 224h64c35.346 0 64-28.654 64-64v-64c0-35.346-28.654-64-64-64h-64c-35.346 0-64 28.654-64 64v64c0 35.346 28.654 64 64 64z" />
<glyph unicode="list" glyph-name="list" d="M128 544h768c35.346 0 64-28.654 64-64v-64c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v64c0 35.346 28.654 64 64 64zM128 864h768c35.346 0 64-28.654 64-64v-64c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v64c0 35.346 28.654 64 64 64zM128 224h768c35.346 0 64-28.654 64-64v-64c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v64c0 35.346 28.654 64 64 64z" />
<glyph unicode="link" glyph-name="link" d="M937.837 873.837c-53.702 53.791-127.937 87.068-209.944 87.068-76.601 0-146.422-29.035-199.058-76.699l0.252 0.225-150.034-150.034c-25.673-25.71-46.631-56.139-61.458-89.87-31.665-15.309-58.252-32.532-81.502-53.399l0.273 0.241-150.205-149.693c-52.709-53.514-85.256-127.017-85.256-208.121 0-163.835 132.815-296.651 296.651-296.651 81.104 0 154.606 32.547 208.158 85.293l149.997 149.998c20.623 22.976 37.846 49.563 50.526 78.588 36.363 17.467 66.791 38.424 92.506 64.102l149.86 150.202c47.293 52.346 76.23 122.061 76.23 198.535 0 81.887-33.179 156.025-86.826 209.703zM404.516 128.793v0c-27.092-27.092-64.52-43.849-105.861-43.849-82.683 0-149.711 67.027-149.711 149.711 0 41.341 16.757 78.769 43.849 105.861v0l109.365 109.365c27.541-103.91 107.782-184.094 209.666-211.089zM485.855 421.684c-24.798 24.767-40.912 58.225-43.38 95.415 74.752-4.514 134.187-63.89 139.22-138.191-37.617 2.019-71.081 18.136-95.838 42.944zM840.435 564.883l-118.763-118.763c-27.478 103.889-107.663 184.074-209.496 211.088l107.479 110 9.228 9.228c26.164 22.926 60.662 36.91 98.428 36.91 82.673 0 149.693-67.019 149.693-149.693 0-37.766-13.985-72.264-37.059-98.6z" />
<glyph unicode="like" glyph-name="like" d="M66.821 114.541c-0.050 0.711-0.079 1.54-0.079 2.375s0.029 1.664 0.086 2.486l-0.007 368.828c0 19.18 15.548 34.728 34.728 34.728h68.118c18.63-0.575 33.532-15.737 33.688-34.415v-376.966c-1.836-17.264-16.143-30.648-33.651-31.017l-0.036-0.001h-68.118c-0.003 0-0.006 0-0.007 0-18.918 0-34.303 15.127-34.718 33.946zM272.364 56.662v500.131c0 19.18 15.548 34.728 34.728 34.728h138.018c2.18 3.226 4.679 6.007 7.51 8.41l135.406 234.531c13.649 24.095 39.075 40.115 68.252 40.219 43.398-0.502 78.374-35.789 78.374-79.244 0-0.158-0.001-0.316-0.002-0.474l0.741 0.024v-203.466h188.031c18.793-0.498 33.836-15.849 33.836-34.715 0-0.005 0-0.007 0-0.012v0.001-385.857c-0.020-4.751-1.943-9.047-5.047-12.17l-133.565-133.565c-2.904-2.418-6.674-3.885-10.786-3.885-0.855 0-1.694 0.063-2.514 0.185l-498.256-0.011c-0.011 0-0.025 0-0.038 0-18.523 0-33.645 14.565-34.537 32.866l-0.004 0.080v1.039s0 0 0 0 0 0 0 0zM916.448 169.748v0 0z" />
<glyph unicode="lightbulb" glyph-name="lightbulb" d="M858.453 613.355c0 0.114 0 0.249 0 0.384 0 191.341-155.112 346.453-346.453 346.453s-346.453-155.112-346.453-346.453c0-103.281 45.193-196.007 116.883-259.48 16.89-14.701 27.326-35.713 27.501-59.166v-44.063c0-0.051 0-0.111 0-0.171 0-23.187 18.797-41.984 41.984-41.984 0 0 0 0 0 0h320.171c23.187 0 41.984 18.797 41.984 41.984v44.203c0.203 23.426 10.635 44.375 27.040 58.628 72.14 63.639 117.344 156.172 117.344 259.263 0 0.142 0 0.283 0 0.425zM695.978 74.389h-367.957c-9.991 0-18.091 8.099-18.091 18.091v39.424c0 9.991 8.099 18.091 18.091 18.091h367.957c9.991 0 18.091-8.099 18.091-18.091v-39.424c0-9.991-8.099-18.091-18.091-18.091zM631.125-64.192h-238.933c-9.991 0-18.091 8.099-18.091 18.091v39.253c0 9.991 8.099 18.091 18.091 18.091h238.933c9.991 0 18.091-8.099 18.091-18.091v-39.424c-0.097-9.918-8.159-17.92-18.090-17.92 0 0-0.001 0-0.001 0z" />
<glyph unicode="layout_grid" glyph-name="layout-grid" d="M464 512h96c35.346 0 64-28.654 64-64v-384c0-35.346-28.654-64-64-64h-96c-35.346 0-64 28.654-64 64v384c0 35.346 28.654 64 64 64zM128 896h96c35.346 0 64-28.654 64-64v-416c0-35.346-28.654-64-64-64h-96c-35.346 0-64 28.654-64 64v416c0 35.346 28.654 64 64 64zM128 256h96c35.346 0 64-28.654 64-64v-128c0-35.346-28.654-64-64-64h-96c-35.346 0-64 28.654-64 64v128c0 35.346 28.654 64 64 64zM800 896h96c35.346 0 64-28.654 64-64v-320c0-35.346-28.654-64-64-64h-96c-35.346 0-64 28.654-64 64v320c0 35.346 28.654 64 64 64zM800 352h96c35.346 0 64-28.654 64-64v-224c0-35.346-28.654-64-64-64h-96c-35.346 0-64 28.654-64 64v224c0 35.346 28.654 64 64 64zM464 896h96c35.346 0 64-28.654 64-64v-160c0-35.346-28.654-64-64-64h-96c-35.346 0-64 28.654-64 64v160c0 35.346 28.654 64 64 64z" />
<glyph unicode="layout" glyph-name="layout" d="M958.507 723.968h-893.163v116.928c0 30.433 24.671 55.104 55.104 55.104h782.955c30.433 0 55.104-24.671 55.104-55.104zM272.171 0h-151.723c-30.433 0-55.104 24.671-55.104 55.104v610.624h206.827zM327.424 665.728h631.232v-331.072h-631.232v331.072zM903.403 0h-575.979v275.968h631.083v-220.864c0-30.433-24.671-55.104-55.104-55.104z" />
<glyph unicode="layers" glyph-name="layers" d="M1011.883 558.080l-447.829-260.267c-14.438-8.497-31.806-13.517-50.347-13.517s-35.908 5.019-50.819 13.773l-450.77 260.181c-7.29 4.311-12.102 12.132-12.102 21.077s4.812 16.766 11.989 21.015l435.655 253.161c17.935 10.569 39.513 16.813 62.549 16.813s44.615-6.244 63.135-17.131l438.54-253.122c7.29-4.311 12.102-12.132 12.102-21.077s-4.812-16.766-11.989-21.015zM1011.883 251.904l-182.784 105.643-264.875-153.6c-14.438-8.497-31.806-13.517-50.347-13.517s-35.908 5.019-50.819 13.773l-268.157 154.197-182.784-106.325c-7.29-4.311-12.102-12.132-12.102-21.077s4.812-16.766 11.989-21.015l451.356-260.499c14.438-8.497 31.806-13.517 50.347-13.517s35.908 5.019 50.819 13.773l447.357 259.327c7.29 4.311 12.102 12.132 12.102 21.077s-4.812 16.766-11.989 21.015z" />
<glyph unicode="laptop" glyph-name="laptop" d="M125.27 257.806h773.803c29.523 0.097 53.419 24.053 53.419 53.589 0 0 0 0 0 0v473.941c0 29.502-23.916 53.419-53.419 53.419h-773.803c-29.502 0-53.419-23.916-53.419-53.419v-474.112c0 0 0 0 0 0 0-29.537 23.896-53.492 53.409-53.589zM178.688 731.748h666.795v-367.275h-666.624zM999.595 204.217h-974.677c-13.667 0-24.747-11.079-24.747-24.747v-59.733c-0.002-0.108-0.003-0.235-0.003-0.363 0-6.447 2.465-12.318 6.505-16.722l34.117-37.87c4.505-4.65 10.806-7.537 17.782-7.537 0.409 0 0.815 0.010 1.219 0.029l902.258-0.002c6.688 0.147 12.7 2.925 17.065 7.337l37.549 37.89c4.351 4.388 7.070 10.401 7.168 17.048v59.752c-0.096 13.534-11.042 24.48-24.567 24.576zM605.184 118.542c0.019-0.161 0.029-0.347 0.029-0.536 0-2.563-1.949-4.672-4.446-4.924l-177.344-0.002c-2.518 0.254-4.466 2.362-4.466 4.926 0 0.189 0.011 0.375 0.031 0.558l-0.002 24.041c-0.019 0.161-0.029 0.347-0.029 0.536 0 2.563 1.949 4.672 4.446 4.924l177.514 0.002c2.518-0.254 4.466-2.362 4.466-4.926 0-0.189-0.011-0.375-0.031-0.558z" />
<glyph unicode="key" glyph-name="key" d="M910.161 573.61h-441.344c-44.245 75.622-125.067 125.611-217.564 125.611-138.746 0-251.221-112.476-251.221-251.221s112.476-251.221 251.221-251.221c92.497 0 173.319 49.989 216.922 124.425l48.087 1.186c0.015 0 0.032 0 0.050 0 2.386 0 4.544 0.98 6.093 2.559l88.236 88.919c1.547 1.559 3.69 2.524 6.059 2.524s4.512-0.965 6.058-2.524l62.123-62.123c1.547-1.559 3.69-2.524 6.059-2.524s4.512 0.965 6.058 2.524l39.254 39.254c1.547 1.559 3.69 2.524 6.059 2.524s4.512-0.965 6.058-2.524l45.057-45.398c1.547-1.559 3.69-2.524 6.059-2.524s4.512 0.965 6.058 2.524l44.886 45.057c1.547 1.559 3.69 2.524 6.059 2.524s4.512-0.965 6.058-2.524l36.353-36.353c1.538-1.508 3.647-2.439 5.973-2.439s4.435 0.931 5.975 2.441l110.42 103.593c1.664 1.561 2.701 3.774 2.701 6.229s-1.037 4.668-2.697 6.225l-105.306 101.38c-1.553 1.476-3.657 2.385-5.972 2.389zM136.529 390.826c-31.355 0.29-56.661 25.775-56.661 57.171 0 31.576 25.597 57.173 57.173 57.173s57.172-25.596 57.173-57.171c0-0.001 0-0.002 0-0.002 0-31.576-25.597-57.173-57.173-57.173-0.18 0-0.36 0.001-0.539 0.002z" />
<glyph unicode="instagram" glyph-name="instagram" d="M931.8 447.688c-0.522 0.007-1.044 0.014-1.563 0.020 0 43.786 1.017 87.6-0.287 131.348-1.304 43.68-0.492 87.542-8.619 130.867-15.025 80.104-67.485 132.495-147.681 147.449-43.892 8.189-88.323 7.806-132.57 8.547-76.752 1.287-153.542 1.362-230.298 0.495-46.572-0.522-93.31-1.731-139.622-6.212-94.406-9.144-155.559-64.7-168.54-154.863-6.048-42.022-7.724-84.879-8.499-127.409-1.41-77.315-1.386-154.675-0.539-232.001 0.505-46.001 1.809-92.157 6.127-137.923 8.926-94.522 64.177-156.45 155.778-169.585 40.912-5.868 82.644-8.076 124.017-8.243 110.292-0.444 220.6 0.768 330.889 2.188 22.040 0.283 44.377 2.7 65.987 7.062 75.008 15.148 124.105 59.129 141.708 134.571 5.516 23.631 8.564 48.213 9.424 72.479 2.369 67.038 2.983 134.134 4.291 201.209zM713.388-64.001h-402.773c-6.168 0.853-12.326 1.802-18.504 2.546-20.292 2.451-40.902 3.335-60.836 7.482-115.746 24.081-190.16 92.631-218.092 208.268-7.264 30.078-8.94 61.508-13.182 92.317v402.773c2.106 19.657 3.649 39.393 6.427 58.952 7.98 56.221 27.020 107.803 64.556 151.562 47.599 55.491 109.35 83.613 180.412 93.648 19.651 2.775 39.475 4.335 59.218 6.451h402.773c6.164-0.853 12.322-1.799 18.5-2.546 20.292-2.451 40.905-3.331 60.839-7.479 115.75-24.078 190.15-92.641 218.088-208.268 7.267-30.078 8.943-61.508 13.186-92.32v-402.773c-2.109-19.654-3.656-39.39-6.434-58.948-8.069-56.825-27.436-108.861-65.669-152.852-47.52-54.685-108.865-82.412-179.296-92.355-19.647-2.778-39.472-4.338-59.215-6.458zM511.43 278.487c-92.986 0.222-169.127 76.636-169.052 169.656 0.075 92.955 76.373 169.325 169.322 169.479 93.699 0.157 170.209-76.708 169.817-170.605-0.389-92.969-76.875-168.755-170.086-168.53zM775.95 446.692c0.949 145.681-115.575 263.745-261.789 265.243-146.295 1.502-265.178-115.828-266.11-262.629-0.925-145.712 115.572-263.745 261.789-265.243 146.275-1.502 265.151 115.821 266.11 262.629zM847.602 719.86c0.594 35.386-26.279 63.328-61.31 63.747-34.577 0.413-62.454-26.003-63.358-60.044-0.945-35.345 25.757-63.874 60.512-64.659 35.308-0.795 63.573 26.054 64.157 60.955z" />
<glyph unicode="inlinecss" glyph-name="inlinecss" d="M128 896h768c35.346 0 64-28.654 64-64s-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64s28.654 64 64 64zM128 128h768c35.346 0 64-28.654 64-64s-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64s28.654 64 64 64zM128 640h768c35.346 0 64-28.654 64-64v-256c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v256c0 35.346 28.654 64 64 64z" />
<glyph unicode="info" glyph-name="info" d="M512 960c70.667 0 137-13.333 199-40 62.667-26.667 117.166-63.166 163.5-109.5s82.833-100.833 109.5-163.5c26.667-62 40-128.333 40-199s-13.333-137-40-199c-26.667-62.667-63.166-117.166-109.5-163.5s-100.833-82.833-163.5-109.5c-62-26.667-128.333-40-199-40s-137 13.333-199 40c-62.667 26.667-117.166 63.166-163.5 109.5s-82.833 100.833-109.5 163.5c-26.667 62-40 128.333-40 199s13.333 137 40 199c26.667 62.667 63.166 117.166 109.5 163.5s100.833 82.833 163.5 109.5c62 26.667 128.333 40 199 40zM512 512c-35.346 0-64-28.654-64-64v-192c0-35.346 28.654-64 64-64s64 28.654 64 64v192c0 35.346-28.654 64-64 64zM512 576c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64s28.654-64 64-64z" />
<glyph unicode="indent_more" glyph-name="indent-more" d="M910.421 896h-802.667c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-0.045 0-0.097 0-0.149 0-24.165 19.59-43.755 43.755-43.755 0 0 0 0 0 0h802.667c24.165 0 43.755 19.59 43.755 43.755v40.469c0 24.165-19.59 43.755-43.755 43.755zM910.421 127.979h-802.667c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-0.045 0-0.097 0-0.149 0-24.165 19.59-43.755 43.755-43.755 0 0 0 0 0 0h802.667c24.165 0 43.755 19.59 43.755 43.755v40.32c0 24.165-19.59 43.755-43.755 43.755zM954.325 340.181c0 24.165-19.59 43.755-43.755 43.755h-498.923c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-24.165 19.59-43.755 43.755-43.755h498.773c24.165 0 43.755 19.59 43.755 43.755v0 40.32zM954.325 594.795c0 24.165-19.59 43.755-43.755 43.755h-498.923c-24.165 0-43.755-19.59-43.755-43.755v-40.469c0-24.165 19.59-43.755 43.755-43.755h498.773c24.165 0 43.755 19.59 43.755 43.755v0 40.32zM71.317 347.2c2.052 0.012 3.903 0.868 5.225 2.237l159.639 92.141c2.235 1.239 3.726 3.58 3.733 6.271 0 0.013 0 0.027 0 0.041 0 2.96-1.757 5.509-4.285 6.661l-0.046 0.019-159.189 92.139c-1.314 1.268-3.105 2.051-5.079 2.051-3.974 0-7.209-3.17-7.315-7.119v-187.124c0-4.041 3.276-7.317 7.317-7.317z" />
<glyph unicode="indent_less" glyph-name="indent-less" d="M910.047 896h-802.667c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-0.045 0-0.097 0-0.149 0-24.165 19.59-43.755 43.755-43.755 0 0 0 0 0 0h802.667c24.165 0 43.755 19.59 43.755 43.755v40.469c0 24.165-19.59 43.755-43.755 43.755zM910.047 127.979h-802.667c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-0.045 0-0.097 0-0.149 0-24.165 19.59-43.755 43.755-43.755 0 0 0 0 0 0h802.667c24.165 0 43.755 19.59 43.755 43.755v40.32c0 24.165-19.59 43.755-43.755 43.755zM953.951 340.181c0 24.165-19.59 43.755-43.755 43.755h-498.923c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-24.165 19.59-43.755 43.755-43.755h498.773c24.165 0 43.755 19.59 43.755 43.755v0 40.32zM953.951 594.795c0 24.165-19.59 43.755-43.755 43.755h-498.923c-24.165 0-43.755-19.59-43.755-43.755v-40.469c0-24.165 19.59-43.755 43.755-43.755h498.773c24.165 0 43.755 19.59 43.755 43.755v0 40.32zM63.625 448c0-0.012 0-0.026 0-0.040 0-2.96 1.757-5.509 4.285-6.661l0.046-0.019 159.040-91.84c1.295-1.292 3.085-2.091 5.061-2.091 0.007 0 0.012 0 0.019 0-0.001 0 0 0 0.001 0 3.989 0 7.231 3.191 7.315 7.161v186.974c0 4.041-3.276 7.317-7.317 7.317-0.007 0-0.014 0-0.021 0-2.049 0-3.897-0.86-5.201-2.236l-159.64-92.141c-2.16-1.262-3.588-3.569-3.588-6.209 0-0.075 0.001-0.148 0.004-0.222z" />
<glyph unicode="import_export" glyph-name="import-export" d="M611.556 652.8h-149.334v-307.2h-248.889v307.2h-149.333l273.778 307.2 273.778-307.2zM686.221-64l273.779 307.2h-149.331v307.2h-248.891v-307.2h-149.334l273.777-307.2z" />
<glyph unicode="hustle" glyph-name="hustle" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM862.891 419.328c-4.096-39.595-19.456-114.005-77.824-159.061-34.957-26.992-79.245-43.462-127.358-44.031-0.805-0.012-1.601-0.019-2.398-0.019-19.34 0-37.801 3.767-54.688 10.607-33.156 14.157-67.29 50.85-65.412 92.834v1.877l17.067 93.184c2.684 11.537 4.293 24.827 4.436 38.469 0.001 23.654-13.311 26.555-23.21 26.555-28.331 0-66.219-37.205-77.653-96.939l-23.040-110.592h-7.851c-0.173-0.001-0.379-0.002-0.584-0.002-28.781 0-54.469 13.242-71.304 33.966-20.101 24.234-24.027 58.879-12.763 109.226l63.829 256-20.821-11.264c-76.89-45.504-127.642-128.014-127.642-222.379 0-142.167 115.196-257.429 257.338-257.536 0.138 0 0.29 0 0.443 0 24.827 0 48.825 3.553 71.511 10.179l6.563 1.939 36.181-89.429-9.899-3.072c-32.113-10.603-69.078-16.718-107.47-16.718-195.394 0-353.792 158.398-353.792 353.792 0 133.919 74.407 250.459 184.134 310.535 25.211 13.761 52.281 24.364 80.775 31.338l6.231 1.501 7.339 35.157h113.835l-50.176-256-2.901-15.019 12.8 8.363c20.948 14.322 46.83 22.87 74.709 22.87 0.075 0 0.151 0 0.226 0 55.626 0 90.271-36.693 90.271-95.573-0.524-21.184-2.675-41.483-6.338-61.251l-14.824-78.013c-0.309-1.655-0.486-3.559-0.486-5.504 0-6.907 2.23-13.294 6.010-18.479 4.456-4.2 10.577-6.837 17.315-6.837 0.792 0 1.576 0.036 2.349 0.108 63.901-0.007 86.258 74.062 89.33 117.923 0.662 6.619 1.040 14.305 1.040 22.079 0 54.114-18.303 103.953-49.057 143.665-35.194 40.291-79.737 72.393-130.243 92.845l16.979 94.18c69.482-23.968 128.484-63.065 175.37-113.566 42.976-47.054 71.974-107.047 80.465-173.451 1.803-13.898 2.737-28.141 2.737-42.602 0-11.217-0.562-22.302-1.661-33.23z" />
<glyph unicode="hummingbird" glyph-name="hummingbird" d="M1009.323 570.197c-72.363-3.755-161.621-7.509-238.933-8.192l192.171 128.512c19.042-34.586 34.899-74.653 45.502-116.806zM512 960c189.862-0.034 355.572-103.406 443.951-256.93-61.487-12.553-225.839-36.617-400.943-48.051-34.133-2.219-55.979-36.181-68.267-62.464 0 0-31.061 195.925-244.907 145.408-41.984 18.944-81.237 34.133-116.224 46.251 94.16 107.956 231.957 175.787 385.597 175.787 0.279 0 0.557 0 0.836-0.001zM0 448c0 0.221-0.001 0.483-0.001 0.746 0 121.29 42.344 232.689 113.056 320.222 39.45-15.556 74.218-33.581 106.162-55.431s37.807-77.121 65.284-135.489 46.592-91.136 54.613-161.109 65.877-184.491 168.277-221.867c-34.879-47.972-65.982-102.598-90.759-160.574 26.898-39.4 57.774-69.843 91.053-97.495-280.204 0.74-507.686 229.298-507.686 510.988 0 0.003 0 0.007 0 0.010zM573.952-60.416c0 19.115 0 36.352 1.195 51.2 2.803 46.275 12.454 89.473 27.966 129.761 19.44 50.098 31.281 111.481 31.281 175.63 0 12.407-0.443 24.711-1.314 36.896-1.165 15.156-3.891 30.694-7.991 45.664l392.938 149.478c4.007-24.063 6.297-51.79 6.297-80.052 0-260.928-195.185-476.268-447.514-507.978z" />
<glyph unicode="hub" glyph-name="hub" d="M602.283 538.283h-180.565l-0.171 120.491-90.283 60.245-90.283-60.245v-421.547l90.283-60.245 90.795 58.709v122.027h180.224v-120.491l90.453-60.245 90.283 60.245v421.547l-90.283 60.245-90.453-60.245v-120.491zM120.491 185.856v525.312l214.016 128.341h354.987l214.016-128.512v-525.995l-214.016-128.512h-354.816zM301.227 960l-301.227-180.736v-661.504l301.227-181.76h421.547l301.227 180.736v662.528l-301.227 180.736z" />
<glyph unicode="home" glyph-name="home" d="M936.881 602.057l-412.161 319.201c-5.37 4.22-12.228 6.767-19.68 6.767s-14.31-2.547-19.748-6.819l-398.972-319.469c-7.236-5.902-11.824-14.814-11.84-24.797v-576.965c0-17.673 14.327-32 32-32h236.959c17.673 0 32 14.327 32 32v353.281h273.121v-353.281c0-17.673 14.327-32 32-32h236.959c17.673 0 32 14.327 32 32v576.962c-0.037 10.179-4.821 19.232-12.251 25.068z" />
<glyph unicode="help_support" glyph-name="help-support" d="M989.867 631.637c-7.098 18.287-24.554 31.016-44.983 31.016-6.033 0-11.807-1.11-17.128-3.137l-14.006-5.18c-44.074 84.36-111.225 151.511-193.089 194.394l2.796 15.526c1.895 4.965 2.992 10.707 2.992 16.706 0 20.352-12.633 37.754-30.485 44.791-54.809 21.677-117.927 34.179-183.964 34.179s-129.155-12.502-187.114-35.269c-14.81-5.894-27.539-23.351-27.539-43.78 0-6.033 1.11-11.807 3.137-17.128l5.18-14.006c-84.36-44.074-151.511-111.225-194.394-193.089l-15.526 2.796c-4.965 1.895-10.707 2.992-16.706 2.992-20.352 0-37.754-12.633-44.791-30.485-21.677-54.809-34.179-117.927-34.179-183.964s12.502-129.155 35.269-187.114c5.894-14.81 23.351-27.539 43.78-27.539 6.033 0 11.807 1.11 17.128 3.137l14.006 5.18c44.083-84.353 111.231-151.501 193.089-194.393l-2.795-15.527c-1.895-4.965-2.992-10.707-2.992-16.706 0-20.352 12.633-37.754 30.485-44.791 54.785-21.656 117.873-34.146 183.878-34.146s129.093 12.49 187.029 35.235c14.81 5.895 27.539 23.351 27.539 43.781 0 6.033-1.11 11.807-3.137 17.128l-5.18 14.006c84.422 44.057 151.629 111.21 194.564 193.091l15.527-2.797c4.965-1.895 10.707-2.992 16.706-2.992 20.352 0 37.754 12.633 44.791 30.485 21.656 54.785 34.146 117.873 34.146 183.878s-12.49 129.093-35.235 187.029zM305.152 365.397l-226.133-83.627c-19.522 49.344-30.84 106.508-30.84 166.315s11.318 116.97 31.93 169.465l10.174-7.246 214.869-79.531c-10.091-24.452-15.95-52.843-15.95-82.603s5.859-58.15 16.487-84.082zM512 911.872c0.020 0 0.044 0 0.068 0 59.758 0 116.869-11.337 169.297-31.979l-7.232-10.176-79.531-214.869c-24.452 10.091-52.843 15.95-82.603 15.95s-58.15-5.859-84.082-16.487l-82.147 226.67c49.292 19.553 106.403 30.891 166.161 30.891 0.024 0 0.048 0 0.072 0zM512-15.701c-0.020 0-0.044 0-0.068 0-59.758 0-116.869 11.337-169.297 31.979l86.763 225.045c24.452-10.091 52.843-15.95 82.603-15.95s58.15 5.859 84.082 16.487l82.147-226.67c-49.301-19.615-106.427-31.011-166.209-31.061zM674.133 513.195c7.926-19.144 12.529-41.376 12.529-64.683s-4.603-45.539-12.949-65.836c-1.787-4.171-3.069-10.354-3.069-16.837 0-20.603 12.946-38.182 31.147-45.047l5.793-2.158c-17.663-26.282-39.596-48.214-65.032-65.341l-2.893 4.925c-6.974 18.532-24.553 31.478-45.156 31.478-6.483 0-12.666-1.282-18.311-3.606-18.824-7.81-41.056-12.413-64.362-12.413s-45.539 4.603-65.836 12.949c-4.13 1.75-10.262 3.009-16.689 3.009-20.58 0-38.144-12.918-45.024-31.088l-2.158-5.792c-26.211 17.68-48.086 39.609-65.169 65.027l4.923 2.898c18.532 6.974 31.478 24.553 31.478 45.156 0 6.483-1.282 12.666-3.606 18.311-7.81 18.824-12.413 41.056-12.413 64.362s4.603 45.539 12.949 65.836c1.75 4.13 3.009 10.262 3.009 16.689 0 20.58-12.918 38.144-31.088 45.024l-5.792 2.158c17.637 26.198 39.509 48.070 64.864 65.171l2.891-4.926c6.974-18.532 24.553-31.478 45.156-31.478 6.483 0 12.666 1.282 18.311 3.606 18.823 7.818 41.054 12.426 64.362 12.426s45.54-4.608 65.834-12.962c4.173-1.787 10.356-3.069 16.839-3.069 20.603 0 38.182 12.946 45.047 31.147l2.158 5.793c26.269-17.621 48.198-39.496 65.343-64.868l-4.927-2.886c-18.501-6.99-31.419-24.554-31.419-45.134 0-6.426 1.26-12.559 3.545-18.163zM944.981 281.771l-11.264 4.096-214.869 79.531c10.091 24.452 15.95 52.843 15.95 82.603s-5.859 58.15-16.487 84.082l226.67 82.147c19.522-49.344 30.84-106.508 30.84-166.315s-11.318-116.97-31.93-169.465z" />
<glyph unicode="heart" glyph-name="heart" d="M984.615 578.511c0 2.507 0 5.162 0 7.67s0 5.604 0 8.554c0 2.95 0 9.586 0 14.748 0 2.065 0 3.981 0 5.899 0 6.047-0.759 12.093-1.519 18.139 0 0.885 0 1.771 0 2.507-6.367 48.931-29.099 91.815-62.608 124.154-46.486 44.413-110.252 71.819-180.597 71.819s-134.113-27.408-180.624-71.843c-35.29-35.503-39.688-47.3-46.966-47.3s-11.978 11.354-47.458 46.452c-45.645 44.199-108.596 71.522-178.109 71.522-0.231 0-0.463 0-0.693-0.002-0.924 0.014-2.059 0.019-3.195 0.019-69.737 0-132.896-27.384-178.73-71.7-33.584-32.102-56.491-74.702-63.092-122.331-0.125-1.975-0.125-2.859-0.125-3.596 0-6.047-1.212-11.945-1.519-18.139 0-1.966 0-3.932 0-5.899 0-4.72 0-9.586 0-14.748s0-5.604 0-8.407c0-2.803 0-5.309 0-7.817 7.231-60.554 28.069-115.236 59.461-162.689l-0.933 1.507c2.121-3.244 3.639-6.636 5.913-9.88 85.517-129.476 333.726-343.153 408.175-343.153 74.599 0 322.657 214.27 408.477 343.745 2.123 3.244 3.792 6.636 5.913 9.88 30.401 46.27 51.058 101.344 57.763 160.506l0.461 0.382z" />
<glyph unicode="graph_line" glyph-name="graph-line" d="M0 60.27v30.507c0 18.872 8.329 36.782 22.761 48.942l277.261 233.626c54.49 45.914 129.926 57.876 195.947 31.070l54.621-22.177c74.466-30.235 159.884-10.889 214.057 48.479l203.715 223.251c11.913 13.055 32.153 13.981 45.208 2.068 6.645-6.063 10.43-14.643 10.43-23.638v-504.398c0-70.692-57.308-128-128-128h-835.73c-33.286 0-60.27 26.984-60.27 60.27zM322.145 508.556l-218.165-174.532c-27.601-22.081-67.875-17.606-89.956 9.995s-17.606 67.875 9.995 89.956l261.785 209.428c58.993 47.194 140.179 55.407 207.428 20.983l74.82-38.3c25.85-13.232 57.37-7.401 76.775 14.203l263.093 292.909c20.545 28.762 60.516 35.424 89.278 14.88s35.424-60.516 14.88-89.278l-275.116-316.685c-55.434-63.809-146.777-82.504-222.822-45.603l-56.154 27.249c-44.423 21.557-97.285 15.639-135.842-15.207z" />
<glyph unicode="graph_bar_2" glyph-name="graph-bar-2" d="M569.856 960c-10.085 0-18.261-8.176-18.261-18.261-0.035-0.409-0.055-0.885-0.055-1.365s0.020-0.956 0.059-1.427l-0.004 0.062v-433.493c0-10.085 8.176-18.261 18.261-18.261h433.152c0.409-0.035 0.885-0.055 1.365-0.055s0.956 0.020 1.427 0.059c10.024-0.004 18.2 8.172 18.2 18.257-2.666 249.806-204.366 451.626-453.872 454.483zM918.357 400.213c0 10.085-8.176 18.261-18.261 18.261h-398.336c-10.085 0-18.261 8.176-18.261 18.261v397.141c0.028 0.408 0.044 0.885 0.044 1.365s-0.016 0.957-0.048 1.429c0.003 10.021-8.172 18.197-18.258 18.197h-6.144c-0.051 0-0.111 0-0.171 0-253.739 0-459.435-205.696-459.435-459.435s205.696-459.435 459.435-459.435c253.739 0 459.435 205.696 459.435 459.435 0 1.536 0 2.901 0 4.437s0 0 0 0z" />
<glyph unicode="graph_bar" glyph-name="graph-bar" d="M463.533 359.569h-173.396c-10.274 0-18.604-8.039-18.604-17.957v-259.65c0-9.918 8.33-17.959 18.604-17.959h173.396c10.274 0 18.604 8.039 18.604 17.957v259.812c0 9.918-8.33 17.957-18.604 17.957v-0.16zM733.867 896h-173.396c-10.274 0-18.602-8.041-18.602-17.959v-796.080c0-9.918 8.328-17.957 18.602-17.957h173.396c10.274 0 18.602 8.039 18.602 17.957v796.080c0 9.918-8.328 17.959-18.602 17.959zM1005.398 654.145h-173.226c-10.274 0-18.602-8.041-18.602-17.959v-554.226c0-9.918 8.328-17.959 18.602-17.959h173.226c10.274 0 18.602 8.039 18.602 17.957v554.226c0 9.918-8.328 17.959-18.602 17.959v0.002zM191.832 654.145h-173.228c-10.274 0-18.604-8.041-18.604-17.959v-554.226c0-9.918 8.33-17.959 18.604-17.959h173.228c10.274 0 18.604 8.039 18.604 17.957v554.226c0 9.918-8.33 17.959-18.604 17.959v0.002z" />
<glyph unicode="gdpr" glyph-name="gdpr" d="M512-64c-341.333 213.333-512 469.333-512 768 170.667 0 341.333 85.333 512 256 170.667-170.667 341.333-256 512-256 0-298.667-170.667-554.667-512-768zM762.5 598.5l-34 34c-2.333 2.333-4.917 4.167-7.75 5.5s-5.917 2-9.25 2c-3.333 0-6.5-0.667-9.5-2s-5.667-3.167-8-5.5l-251.5-252.5-111 111c-2 2.333-4.5 4.083-7.5 5.25s-6.167 1.75-9.5 1.75c-3.333 0-6.417-0.583-9.25-1.75s-5.417-2.917-7.75-5.25l-34-34c-2.333-2.333-4.167-4.917-5.5-7.75s-2-5.917-2-9.25c0-3.333 0.667-6.5 2-9.5s3.167-5.667 5.5-8l145.5-144c4.333-4.333 9.333-7.75 15-10.25s11.833-3.75 18.5-3.75c6.667 0 12.917 1.25 18.75 3.75s10.917 5.917 15.25 10.25l286 286c2.333 2.333 4.083 5 5.25 8s1.75 6.167 1.75 9.5c0 3.333-0.583 6.417-1.75 9.25s-2.917 5.417-5.25 7.75v-0.5z" />
<glyph unicode="forminator" glyph-name="forminator" d="M974.681 663.513l-436.224-436.565c-8.921-8.874-23.335-8.874-32.256 0l-53.931 53.931c-8.874 8.921-8.874 23.335 0 32.256l456.192 456.704c-169.457 210.118-473.148 252.116-693.27 95.875s-280.681-456.782-138.245-686.078c142.436-229.297 438.693-308.188 676.3-180.093s334.532 418.951 221.263 663.971zM137.39 349.145c-2.2 0.028-4.384 0.373-6.485 1.024-8.051 2.298-14.164 8.87-15.872 17.067-5.656 26.825-8.516 54.164-8.533 81.579 0.282 221.575 179.833 401.126 401.408 401.408h31.744l-93.184-94.208c-2.908-2.93-6.57-4.997-10.581-5.973v0c-139.542-32.965-237.89-157.845-237.227-301.227 0.064-11.412 0.805-22.809 2.219-34.133 0.836-6.922-1.555-13.844-6.485-18.773l-40.789-40.107c-4.306-4.284-10.139-6.678-16.213-6.656zM389.933 210.99c-1.369-5.636-5.557-10.165-11.074-11.977v0l-158.358-51.594c-1.772-0.292-3.58-0.292-5.352 0-5.398 0.015-10.46 2.62-13.605 7s-3.988 10.003-2.268 15.111l51.679 158.099c1.813 5.55 6.386 9.759 12.073 11.113s11.671-0.343 15.796-4.479l106.679-106.505c4.117-4.089 5.797-10.028 4.43-15.662zM348.676 395.225c-6.078-0.041-11.918 2.356-16.213 6.656l-53.931 53.931c-8.874 8.921-8.874 23.335 0 32.256l353.621 353.28c8.921 8.874 23.335 8.874 32.256 0v0l53.931-53.931c8.874-8.921 8.874-23.335 0-32.256l-353.451-354.304c-4.306-4.284-10.139-6.678-16.213-6.656zM507.908 47.406c-32.029 0.020-63.941 3.859-95.061 11.435-8.103 1.919-14.522 8.091-16.758 16.113s0.065 16.624 6.006 22.458l39.424 39.595c5.183 5.078 12.455 7.418 19.627 6.315 15.41-2.455 30.988-3.71 46.592-3.755 150.162-0.036 278.547 108.033 304.128 256 0.731 4.582 2.879 8.82 6.144 12.117l88.405 88.405 1.365-19.115c0-9.045 1.365-18.091 1.365-27.136 0.283-221.908-179.33-402.055-401.237-402.432z" />
<glyph unicode="folder_open" glyph-name="folder-open" d="M0 768.157c0 35.259 28.862 63.843 63.41 63.843h257.18c35.020 0 76.361-25.903 92.040-57.261l35.369-70.739h-191.688c-70.865 0-144.008-54.934-163.628-123.604l-92.685-324.396v512.157zM155.208 517.359c20.32 67.733 93.979 122.641 164.969 122.641h575.647c70.79 0 111.807-54.566 91.384-122.641l-118.415-394.718c-20.32-67.733-93.979-122.641-164.969-122.641h-575.647c-70.79 0-111.807 54.566-91.384 122.641l118.415 394.718z" />
<glyph unicode="folder" glyph-name="folder" d="M0 768c0 35.346 28.862 64 63.41 64h257.18c35.020 0 76.361-25.903 92.040-57.261l35.369-70.739h-448v64zM0 640h767.625c70.9 0 128.375-56.796 128.375-127.975v-384.049c0-70.679-57.412-127.975-128.375-127.975h-639.25c-70.9 0-128.375 56.796-128.375 127.975v512.025z" />
<glyph unicode="flag" glyph-name="flag" d="M910.404 754.49c-0.036 0-0.077 0-0.118 0-2.422 0-4.731-0.494-6.837-1.39l0.119 0.044c-37.374-20.496-81.739-32.542-128.846-32.556-0.155 0-0.334-0.002-0.511-0.002-85.841 0-162.626 39.821-213.792 102.454-46.563 45.349-109.104 72.959-177.923 72.959-66.249 0-126.68-25.587-172.432-67.66-9.486 21.49-30.172 35.949-54.147 35.949-33.091 0-59.916-27.549-59.916-61.529 0-0.222 0.002-0.445 0.003-0.665v-740.415c0-34.065 26.89-61.68 60.061-61.68s60.061 27.615 60.061 61.68v333.487c36.633 19.388 79.944 30.753 125.841 30.753 85.965 0 162.863-39.873 214.109-102.593 46.514-45.22 108.949-72.744 177.645-72.744 74.257 0 141.198 32.162 188.336 83.661 3.695 3.474 5.927 8.257 5.943 13.578v388.298c0 0.002 0 0.002 0 0.002 0 10.040-7.845 18.198-17.583 18.368h-0.014z" />
<glyph unicode="finger_point" glyph-name="finger-point" d="M839.23 548.523c-0.010 0-0.021 0-0.032 0-20.666 0-39.617-7.347-54.382-19.571-7.65 39.865-42.209 69.443-83.676 69.443-21.062 0-40.342-7.631-55.226-20.278-6.564 41.133-41.748 72.072-84.159 72.072-19.772 0-37.974-6.725-52.443-18.012l0.19 242.489c0 47.128-38.205 85.333-85.333 85.333s-85.333-38.205-85.333-85.333v-440.661l-100.352 95.403c-14.507 11.766-33.194 18.891-53.546 18.891-47.128 0-85.333-38.205-85.333-85.333 0-21.842 8.206-41.767 21.704-56.861l110.008-104.536c40.896-39.332 75.123-85.219 101.064-136.040l32.568-64.493c32.768-75.264 102.059-165.035 251.051-165.035 246.784 0 308.395 171.861 308.395 288.085v238.933c0 47.128-38.205 85.333-85.333 85.333z" />
<glyph unicode="filter" glyph-name="filter" d="M986.647 776.462c-0.058 41.498-32.921 75.301-74.044 76.87l-797.997 0.005c-0.067 0-0.145 0-0.225 0-42.544 0-77.032-34.489-77.032-77.032 0-24.244 11.2-45.872 28.708-59.994l357.79-358.074v-221.45c0.616-14.21 8.524-26.445 20.054-33.115l0.194-0.103 95.855-55.362c5.842-3.483 12.883-5.541 20.405-5.541 22.276 0 40.336 18.059 40.336 40.336 0 0.058 0 0.115 0 0.173 0 1.098 0 2.047 0 3.155v0 271.91l361.281 361.124c15.197 14.060 24.68 34.107 24.68 56.37 0 0.258-0.001 0.514-0.004 0.772zM301.573 699.271v0z" />
<glyph unicode="eye_hide" glyph-name="eye-hide" d="M201.216 838.997c-2.596 2.605-6.187 4.217-10.155 4.217s-7.559-1.612-10.154-4.216l-61.44-60.928c-2.605-2.596-4.217-6.187-4.217-10.155s1.612-7.559 4.216-10.154l701.27-700.758c2.596-2.605 6.187-4.217 10.155-4.217s7.559 1.612 10.154 4.216l60.928 60.928c2.605 2.596 4.217 6.187 4.217 10.155s-1.612 7.559-4.216 10.154zM665.6 456.533c-4.372 78.297-66.77 140.695-144.666 145.049zM358.4 437.419c5.285-76.768 66.251-137.734 142.541-142.992zM512 671.915c0.243 0.001 0.531 0.002 0.818 0.002 123.288 0 223.232-99.944 223.232-223.232 0-19.895-2.603-39.181-7.486-57.539l150.881-148.97c60.159 57.039 108.919 125.422 142.957 201.809s-134.935 356.101-510.402 356.101c-0.695 0.003-1.517 0.005-2.339 0.005-58.177 0-114.196-9.241-166.669-26.335l113.712-108.838c16.592 4.431 35.643 6.983 55.287 6.997zM512 223.915c-0.228-0.001-0.498-0.001-0.768-0.001-123.288 0-223.232 99.944-223.232 223.232 0 19.337 2.459 38.1 7.081 55.993l-151.38 149.661c-59.739-56.808-108.2-124.836-142.102-200.79s134.934-355.925 510.401-355.925c0.727-0.004 1.587-0.006 2.447-0.006 57.572 0 113.029 9.053 165.026 25.812l-113.884 109.020c-16.056-4.238-34.509-6.722-53.525-6.826z" />
<glyph unicode="eye" glyph-name="eye" d="M512 223.915c123.759 0 224.085 100.326 224.085 224.085s-100.326 224.085-224.085 224.085c-123.759 0-224.085-100.326-224.085-224.085s100.326-224.085 224.085-224.085zM0 448s136.533 352.085 512 352.085 512-352.085 512-352.085-136.533-352.085-512-352.085-512 352.085-512 352.085zM512 352.085c52.972 0 95.915 42.942 95.915 95.915s-42.942 95.915-95.915 95.915c-52.972 0-95.915-42.942-95.915-95.915s42.942-95.915 95.915-95.915z" />
<glyph unicode="embed" glyph-name="embed" d="M128 128h768c35.346 0 64-28.654 64-64v0c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v0c0 35.346 28.654 64 64 64zM128 640h768c35.346 0 64-28.654 64-64v-256c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v256c0 35.346 28.654 64 64 64zM832 576c-35.346 0-64-28.654-64-64s28.654-64 64-64c35.346 0 64 28.654 64 64s-28.654 64-64 64zM128 896h768c35.346 0 64-28.654 64-64v0c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v0c0 35.346 28.654 64 64 64z" />
<glyph unicode="element_select" glyph-name="element-select" d="M256 960h512c141.385 0 256-114.615 256-256v-512c0-141.385-114.615-256-256-256h-512c-141.385 0-256 114.615-256 256v512c0 141.385 114.615 256 256 256zM512 256l256 320h-512l256-320z" />
<glyph unicode="element_radio" glyph-name="element-radio" d="M512 960c282.77 0 512-229.23 512-512s-229.23-512-512-512c-282.77 0-512 229.23-512 512s229.23 512 512 512zM512 192c141.385 0 256 114.615 256 256s-114.615 256-256 256c-141.385 0-256-114.615-256-256s114.615-256 256-256z" />
<glyph unicode="element_number" glyph-name="element-number" d="M832 192l192 192h-384zM832 704l192-192h-384zM249.96 128c-109.648 0-192.348 33.932-249.96 91.429l87.347 113.108c42.744-39.588 101.285-61.267 160.755-61.267 67.833 0 101.285 33.932 101.285 72.577 0 42.415-32.523 72.577-96.639 72.577-49.249 0-88.276-14.138-122.657-47.128l-110.577 27.334v371.37h449.742v-141.384h-289.917v-121.591c29.735 29.219 78.054 49.956 132.878 49.956 105.002 0 199.782-78.233 199.782-204.536 0-135.729-101.285-222.445-262.040-222.445z" />
<glyph unicode="element_checkbox" glyph-name="element-checkbox" d="M256 960h512c141.385 0 256-114.615 256-256v-512c0-141.385-114.615-256-256-256h-512c-141.385 0-256 114.615-256 256v512c0 141.385 114.615 256 256 256zM757 535c3.333 3.333 6 7.333 8 12s3 9.667 3 15c0 5.333-1 10.333-3 15s-4.667 8.667-8 12l-30 30c-3.333 3.333-7.333 6-12 8s-9.667 3-15 3c-5.333 0-10.333-1-15-3s-8.667-4.667-12-8l-209-210-85 85c-4 3.333-8.167 6-12.5 8s-9.167 3-14.5 3c-5.333 0-10.333-1-15-3s-8.667-4.667-12-8l-30-30c-3.333-3.333-6-7.333-8-12s-3-9.667-3-15c0-4.667 1-9.333 3-14s4.667-8.667 8-12l127-127c5.333-5.333 11.5-9.667 18.5-13s14.833-5 23.5-5c8 0 15.5 1.667 22.5 5s13.167 7.667 18.5 13l252 251z" />
<glyph unicode="drag" glyph-name="drag" d="M352 704c-53.019 0-96 42.981-96 96s42.981 96 96 96c53.019 0 96-42.981 96-96s-42.981-96-96-96zM672 704c-53.019 0-96 42.981-96 96s42.981 96 96 96c53.019 0 96-42.981 96-96s-42.981-96-96-96zM352 352c-53.019 0-96 42.981-96 96s42.981 96 96 96c53.019 0 96-42.981 96-96s-42.981-96-96-96zM672 352c-53.019 0-96 42.981-96 96s42.981 96 96 96c53.019 0 96-42.981 96-96s-42.981-96-96-96zM352 0c-53.019 0-96 42.981-96 96s42.981 96 96 96c53.019 0 96-42.981 96-96s-42.981-96-96-96zM672 0c-53.019 0-96 42.981-96 96s42.981 96 96 96c53.019 0 96-42.981 96-96s-42.981-96-96-96z" />
<glyph unicode="download_cloud" glyph-name="download-cloud" d="M384 759.638v-247.638h-80.297c-35.346 0-64-28.654-64-64 0-15.811 5.852-31.062 16.429-42.814l144.297-160.33c23.645-26.273 64.112-28.402 90.385-4.757 1.668 1.501 3.256 3.089 4.757 4.757l144.297 160.33c23.645 26.273 21.516 66.739-4.757 90.385-11.752 10.577-27.003 16.429-42.814 16.429h-80.297v245.413c68.105-22.058 120.518-76.658 136.885-145.505 18.238 6.353 37.93 9.82 58.468 9.82 87.884 0 160.254-63.463 170.904-145.972 83.204-16.805 145.664-87.332 145.738-172.055-2.662-97.469-86.2-175.7-189.092-175.7h-585.729c-134.486 0-249.174 105.007-249.172 233.746 0.964 124.682 104.79 225.987 234.954 231.337 11.086 79.407 70.491 144.216 149.044 166.555z" />
<glyph unicode="download" glyph-name="download" d="M930.718 452.783h-212.388c-0.006 0-0.012 0-0.019 0-26.382 0-48.763-17.131-56.625-40.877-21.036-64.253-80.072-109.543-149.686-109.543s-128.649 45.29-149.248 108.012c-8.298 25.277-30.679 42.408-57.061 42.408-0.007 0-0.013 0-0.021 0h-212.387c0 0 0 0 0 0-32.935 0-59.634-26.699-59.634-59.634 0-0.056 0-0.112 0-0.168v-340.258c0-32.935 26.699-59.634 59.634-59.634h837.433c32.935 0 59.634 26.699 59.634 59.634v340.267c0 32.935-26.699 59.634-59.634 59.634zM499.404 420.893c2.927-4.074 7.652-6.697 12.989-6.697 0.030 0 0.060 0 0.091 0h-0.005c0.025 0 0.055 0 0.086 0 5.338 0 10.062 2.623 12.957 6.649l165.064 232.208c2.068 2.663 3.315 6.052 3.315 9.732 0 8.807-7.139 15.945-15.945 15.945-0.156 0-0.312-0.002-0.468-0.007l-77.629 0.001v208.243c0 8.807-7.139 15.945-15.945 15.945h-143.505c-8.807 0-15.945-7.139-15.945-15.945v-208.243h-77.971c-0.060 0.001-0.131 0.001-0.202 0.001-8.807 0-15.945-7.139-15.945-15.945 0-3.538 1.153-6.807 3.103-9.453z" />
<glyph unicode="dislike" glyph-name="dislike" d="M957.15 638.747v0c-0.020 4.749-1.943 9.046-5.046 12.168l-133.543 133.543c-2.922 2.413-6.705 3.876-10.829 3.876-0.839 0-1.663-0.060-2.47-0.178l-497.289 0.011c-0.011 0-0.025 0-0.038 0-18.519 0-33.639-14.563-34.531-32.861l-0.004-0.080v-1.187s0 0 0 0 0 0 0 0v-500.497c-0.007-0.265-0.011-0.578-0.011-0.89 0-19.129 15.468-34.644 34.578-34.722h137.707c2.083-3.341 4.489-6.219 7.238-8.726l1.516-2.551v-1.485h0.89l133.544-230.142c13.782-23.498 38.917-39.026 67.678-39.026 0.1 0 0.197 0 0.296 0.001 43.409 0.335 78.482 35.615 78.482 79.087 0 0.209-0.001 0.42-0.003 0.628l0.742-0.033v203.137h187.259c18.789 0.498 33.832 15.847 33.832 34.711 0 0.005 0 0.007 0 0.012v-0.001 385.795zM202.917 692.758v0c-0.251 18.984-15.699 34.276-34.719 34.276-0.001 0-0.002 0-0.003 0h-67.514c-18.672-0.413-33.67-15.566-33.832-34.26v-376.761c1.7-17.439 16.134-30.998 33.8-31.308h67.991c0 0 0.001 0 0.001 0 19.072 0 34.553 15.376 34.72 34.408 0.054 0.726 0.085 1.554 0.085 2.391s-0.031 1.664-0.090 2.484z" />
<glyph unicode="defer" glyph-name="defer" d="M214.488 616.412h-122.529c-6.398 0-12.602 2.194-17.578 6.217-12.007 9.708-13.871 27.311-4.164 39.319l178.422 220.684c1.237 1.531 2.633 2.926 4.164 4.164 12.007 9.708 29.611 7.844 39.319-4.164l178.422-220.684c4.022-4.975 6.217-11.18 6.217-17.578 0-15.441-12.517-27.958-27.958-27.958h-122.482v-559.177c0-30.882-25.034-55.916-55.916-55.916s-55.916 25.034-55.916 55.916v559.177zM773.649 280.907h122.482c15.441 0 27.958-12.517 27.958-27.958 0-6.398-2.194-12.602-6.217-17.578l-178.422-220.684c-9.708-12.007-27.311-13.871-39.319-4.164-1.531 1.237-2.926 2.633-4.164 4.164l-178.422 220.684c-9.708 12.007-7.844 29.611 4.164 39.319 4.975 4.022 11.18 6.217 17.578 6.217h122.529v559.177c0 30.882 25.035 55.916 55.916 55.916s55.916-25.034 55.916-55.916v-559.177z" />
<glyph unicode="defender" glyph-name="defender" d="M922.965 925.867c-2.901 0-212.309 22.016-330.923 34.133v-358.4l-80.043-36.523-79.531 35.499v359.424c-119.125-12.117-328.533-34.133-331.435-34.133-58.271-12.934-101.199-64.173-101.199-125.438 0-7.354 0.618-14.563 1.806-21.579l87.788-576.951c6.661-42.74 32.169-78.424 67.598-98.803l354.973-167.096 355.157 166.741c36.081 20.752 61.581 56.427 68.166 98.378l87.994 578.315c1.066 6.216 1.675 13.377 1.675 20.679 0 61.596-43.335 113.070-101.18 125.599zM806.059 215.552l-294.059-131.925-294.229 131.925-60.928 378.88 355.157-158.379 354.987 158.379z" />
<glyph unicode="cross_close" glyph-name="cross-close" d="M1024 448c0 282.77-229.23 512-512 512s-512-229.23-512-512c0-282.77 229.23-512 512-512s512 229.23 512 512zM680.107 235.349c-5.961-5.964-14.198-9.652-23.296-9.652s-17.335 3.689-23.296 9.652l-121.515 121.515-121.515-121.515c-5.961-5.964-14.198-9.652-23.296-9.652s-17.335 3.689-23.296 9.652l-49.835 49.835c-5.964 5.961-9.652 14.198-9.652 23.296s3.689 17.335 9.652 23.296l121.515 121.515-121.515 121.515c-5.964 5.961-9.652 14.198-9.652 23.296s3.689 17.335 9.652 23.296l49.835 49.835c5.961 5.964 14.198 9.652 23.296 9.652s17.335-3.689 23.296-9.652l121.515-120.832 121.515 121.515c5.961 5.964 14.198 9.652 23.296 9.652s17.335-3.689 23.296-9.652l49.835-49.835c5.964-5.961 9.652-14.198 9.652-23.296s-3.689-17.335-9.652-23.296l-121.515-121.515 121.515-121.515c5.964-5.961 9.652-14.198 9.652-23.296s-3.689-17.335-9.652-23.296z" />
<glyph unicode="crop" glyph-name="crop" d="M993.343 183.651h-90.771v591.382c0 0.856 0 1.713 0 2.569 0 33.106-26.837 59.943-59.943 59.943h-592.581v88.202c0 18.918-15.336 34.253-34.253 34.253h-57.032c-18.918 0-34.253-15.336-34.253-34.253v0-88.373h-90.257c-18.918 0-34.253-15.336-34.253-34.253v-57.374c0-18.918 15.336-34.253 34.253-34.253h90.771v-590.697c0-0.856 0-1.713 0-2.569 0-33.106 26.837-59.943 59.943-59.943h592.581v-88.716c0-18.918 15.336-34.253 34.253-34.253h57.374c18.918 0 34.253 15.336 34.253 34.253v89.058h89.915c18.918 0 34.253 15.336 34.253 34.253v56.86c0 18.918-15.336 34.253-34.253 34.253zM249.535 183.993v528.527h528.013v-528.87h-527.5z" />
<glyph unicode="copy" glyph-name="copy" d="M736 64c0-70.692-57.308-128-128-128h-384c-70.692 0-128 57.308-128 128v576c0 70.692 57.308 128 128 128v-576c0-70.692 57.308-128 128-128h384zM416 960h192v-256c0-35.346 28.654-64 64-64h256v-384c0-70.692-57.308-128-128-128h-416c-53.019 0-96 42.981-96 96v608c0 70.692 57.308 128 128 128zM672 960l256-256h-224c-17.673 0-32 14.327-32 32v224z" />
<glyph unicode="community_people" glyph-name="community-people" d="M1007.275 365.996l-174.251 82.773c41.455 28.313 68.313 75.348 68.313 128.655 0 1.33-0.017 2.656-0.050 3.978 0.004 82.919-57.852 150.162-129.191 150.162-25.188-0.030-48.474-8.152-67.404-21.904 11.888-28.284 18.593-61.357 18.593-95.996 0-0.070 0-0.141 0-0.211 0-0.031 0-0.081 0-0.131 0-51.921-15.274-100.275-41.573-140.813 9.235-8.759 19.124-17.128 30.090-23.927l0.561-0.324 111.787-53.248c30.676-16.277 51.214-48.016 51.214-84.552 0-0.575-0.005-1.148-0.015-1.721l0.001-144.981h119.467c16.264 1.302 28.97 14.821 28.97 31.308 0 0.995-0.046 1.978-0.137 2.949l0.009 136.409c0.025 0.492 0.040 1.069 0.040 1.649 0 12.584-6.809 23.577-16.945 29.496zM314.881 449.11c9.565 6.404 17.855 13.609 25.152 21.725-26.524 40.018-42.391 89.074-42.391 141.835 0 0.278 0 0.557 0.001 0.835 0-0.022 0 0.003 0 0.028 0 35.404 7.023 69.167 19.751 99.973-18.433 10.702-40.452 18.255-64.218 18.569-71.416 0.001-129.272-67.242-129.272-150.357-0.034-1.201-0.053-2.615-0.053-4.033 0-53.923 27.603-101.4 69.45-129.070l-174.869-82.619c-10.863-5.857-18.121-17.153-18.121-30.144 0-0.503 0.011-1.003 0.032-1.5l-0.002-138.169c-0.081-0.847-0.127-1.83-0.127-2.825 0-16.487 12.706-30.007 28.859-31.301l115.823-0.007v145.067c-0.006 0.392-0.009 0.856-0.009 1.32 0 37.149 21.309 69.32 52.37 84.959zM800.939 346.71l-214.699 102.229c28.689 18.918 51.133 45.202 64.919 76.188 12.279 26.534 19.194 56.282 19.22 87.643-0.152 18.264-2.571 35.885-6.988 52.696-18.612 76.678-79.711 135.046-153.268 135.046s-131.584-56.491-151.381-132.949c-4.769-16.314-7.621-35.084-7.849-54.485-0.002-0.29-0.002-0.481-0.002-0.673 0-32.828 7.622-63.876 21.193-91.47 14.181-29.538 36.602-54.589 64.276-72.084l-60.551-29.096-155.648-72.533c-13.416-7.233-22.379-21.184-22.379-37.228 0-0.472 0.008-0.942 0.023-1.411l-0.002-170.598c-0.112-1.107-0.176-2.392-0.176-3.692 0-20.471 15.808-37.25 35.883-38.796l553.946-0.008c20.092 1.681 35.762 18.402 35.762 38.784 0 0.946-0.034 1.884-0.1 2.812l0.007 170.542c0.016 0.427 0.024 0.929 0.024 1.432 0 15.977-8.889 29.878-21.99 37.028z" />
<glyph unicode="combine" glyph-name="combine" d="M725.143 384.331h-256.115l-359.096-359.096c-24.83-24.83-65.088-24.83-89.918 0l-0.124 0.124c-24.83 24.83-24.83 65.088 0 89.918l332.723 332.723-332.723 332.723c-24.83 24.83-24.83 65.088 0 89.918l0.124 0.124c24.83 24.83 65.088 24.83 89.918 0l359.096-359.096h256.115v131.106c0 17.557 14.233 31.791 31.791 31.791 7.373 0 14.516-2.562 20.208-7.25l236.543-194.776c13.554-11.161 15.494-31.196 4.333-44.75-1.302-1.581-2.753-3.032-4.333-4.333l-236.543-194.776c-13.554-11.161-33.589-9.22-44.75 4.333-4.686 5.692-7.25 12.835-7.25 20.208v131.108z" />
<glyph unicode="color_pick_eyedropper" glyph-name="color-pick-eyedropper" d="M646.997 791.552l45.056-45.227-304.299-304.469c0.395-4.001 0.62-8.648 0.62-13.348 0-37.29-14.17-71.27-37.419-96.85l22.634-22.41 22.528-22.528c25.415 23.141 59.352 37.311 96.598 37.311 4.687 0 9.321-0.224 13.893-0.663l303.887 304.514 45.056-45.227 51.2 51.2-208.896 208.384zM506.197 385.365c-6.949-6.006-16.072-9.665-26.049-9.665-22.056 0-39.936 17.88-39.936 39.936 0 9.977 3.659 19.1 9.708 26.1l273.024 273.016 56.32-56.491zM999.424 935.424v0c-15.17 15.196-36.14 24.597-59.307 24.597s-44.137-9.401-59.306-24.596l-118.273-118.444 118.613-119.467 118.272 118.443c15.411 15.23 24.955 36.367 24.955 59.733s-9.544 44.503-24.947 59.725zM486.571 51.2h-370.688v371.029h156.331c5.090 0 9.216 4.126 9.216 9.216v96.768c0 5.090-4.126 9.216-9.216 9.216h-262.997c-5.090 0-9.216-4.126-9.216-9.216v-582.997c0-0.008 0-0.016 0-0.025 0-5.090 4.126-9.216 9.216-9.216 0.24 0 0.478 0.009 0.714 0.027l583.819-0.002c5.090 0 9.216 4.126 9.216 9.216v262.485c0 5.090-4.126 9.216-9.216 9.216h-97.451c-5.090 0-9.216-4.126-9.216-9.216z" />
<glyph unicode="code" glyph-name="code" d="M137.076 447.767c22.144-13.682 39.454-28.996 51.93-45.943s21.209-38.558 26.199-64.833c4.99-26.275 7.485-59.935 7.485-100.981 0-30.784 0.702-53.483 2.105-68.098s4.211-25.731 8.421-33.349c4.211-7.618 9.279-12.593 15.205-14.926s16.062-4.586 30.409-6.763c11.852-1.555 21.676-7.307 29.474-17.258s11.696-23.010 11.696-39.18c0-37.625-22.924-56.437-68.772-56.437-28.382 0-53.723 5.908-76.023 17.724s-39.532 28.529-51.696 50.141c-12.164 21.611-18.402 46.409-18.713 74.395-0.936 47.265-1.871 85.2-2.807 113.807s-2.339 47.109-4.211 55.504c-4.678 20.834-11.618 36.536-20.819 47.109s-21.209 20.445-36.023 29.618c-14.815 9.173-25.341 17.413-31.579 24.72s-9.357 18.89-9.357 34.749c0 23.010 9.045 40.268 27.135 51.773 22.456 13.993 38.44 25.886 47.953 35.681s16.218 22.388 20.117 37.78c3.899 15.392 6.16 32.183 6.784 50.374s1.559 61.956 2.807 131.298c0.936 42.911 14.581 77.193 40.936 102.846s61.52 38.48 105.497 38.48c45.848 0 68.772-18.501 68.772-55.504 0-16.791-3.821-30.007-11.462-39.646s-17.544-15.237-29.708-16.791c-18.090-2.488-30.721-6.219-37.895-11.194s-11.852-14.615-14.035-28.918c-2.183-14.304-3.587-41.978-4.211-83.023-0.624-40.113-3.041-72.995-7.251-98.649s-12.476-47.497-24.795-65.533c-12.32-18.035-30.175-34.36-53.567-48.974zM886.924 447.767c-22.144-13.682-39.454-28.996-51.93-45.943s-21.209-38.558-26.199-64.833c-4.99-26.275-7.485-59.935-7.485-100.981 0-30.784-0.702-53.483-2.105-68.098s-4.211-25.731-8.421-33.349c-4.211-7.618-9.279-12.593-15.205-14.926s-16.062-4.586-30.409-6.763c-11.852-1.555-21.676-7.307-29.474-17.258s-11.696-23.010-11.696-39.18c0-37.625 22.924-56.437 68.772-56.437 28.382 0 53.723 5.908 76.023 17.724s39.532 28.529 51.696 50.141c12.164 21.611 18.402 46.409 18.713 74.395 0.936 47.265 1.871 85.2 2.807 113.807s2.339 47.109 4.211 55.504c4.678 20.834 11.618 36.536 20.819 47.109s21.209 20.445 36.023 29.618c14.815 9.173 25.341 17.413 31.579 24.72s9.357 18.89 9.357 34.749c0 23.010-9.045 40.268-27.135 51.773-22.456 13.993-38.44 25.886-47.953 35.681s-16.218 22.388-20.117 37.78c-3.899 15.392-6.16 32.183-6.784 50.374s-1.559 61.956-2.807 131.298c-0.936 42.911-14.581 77.193-40.936 102.846s-61.52 38.48-105.497 38.48c-45.848 0-68.772-18.501-68.772-55.504 0-16.791 3.821-30.007 11.462-39.646s17.544-15.237 29.708-16.791c18.090-2.488 30.721-6.219 37.895-11.194s11.852-14.615 14.035-28.918c2.183-14.304 3.587-41.978 4.211-83.023 0.624-40.113 3.041-72.995 7.251-98.649s12.476-47.497 24.795-65.533c12.32-18.035 30.175-34.36 53.567-48.974z" />
<glyph unicode="cloudflare" glyph-name="cloudflare" d="M699.311 230.329l4.865 17.484c2.331 6.169 3.68 13.292 3.68 20.721 0 12.481-3.807 24.103-10.36 33.831-10.141 13.064-26.265 21.658-44.475 21.957l-369.356 4.589c-2.423 0.020-4.562 1.181-5.874 2.956-0.776 1.144-1.227 2.518-1.227 3.996 0 0.886 0.162 1.737 0.462 2.523 1.302 3.466 4.592 5.987 8.528 6.272l372.667 4.467c49.36 5.311 90.168 36.077 108.48 78.264l21.576 54.666c0.338 1.058 0.531 2.274 0.531 3.534s-0.195 2.476-0.555 3.623c-25.625 105.442-122.001 182.789-237.024 182.789-105.653 0-195.57-65.257-229.144-156.432-18.511 11.439-41.211 19.308-65.81 19.308-60.376 0-109.319-47.412-109.319-105.899 0-9.204 1.212-18.135 3.491-26.649-83.733-1.883-150.447-68.135-150.447-149.482 0-8.034 0.651-15.924 1.905-23.618 0.347-2.592 3.356-5.226 6.998-5.226 0.020 0 0.041 0 0.060 0h682.414c3.98 0.062 7.324 2.627 8.432 6.138l-0.497 0.187zM810.55 477.714c-2.091-0.689-3.635-2.431-3.965-4.557l-14.341-48.393c-2.331-6.169-3.68-13.292-3.68-20.721 0-12.481 3.807-24.103 10.358-33.831 10.37-12.792 26.603-21.091 44.835-21.091 0.048 0 26.357-1.53 78.927-4.589 2.331-0.083 4.368-1.231 5.618-2.954 0.776-1.145 1.227-2.52 1.227-3.998 0-0.886-0.164-1.737-0.462-2.523-1.301-3.466-4.593-5.987-8.527-6.272l-81.703-4.467c-49.568-5.316-90.522-36.306-108.74-78.757l-6.213-15.858c-0.179-0.443-0.282-0.958-0.282-1.494 0-2.249 1.82-4.088 4.112-4.21h281.63c3.461 0 6.332 2.17 7.283 5.156 4.685 15.738 7.372 33.755 7.372 52.38 0 107.959-90.254 195.497-201.656 195.676l-11.792 0.501z" />
<glyph unicode="cloud_migration" glyph-name="cloud-migration" d="M4.084 320h379.916v128h-365.939c35.286 82.255 118.578 141.042 216.896 145.083 13.786 98.746 102.292 174.917 209.42 174.917 99.562 0 183.040-65.792 204.508-156.092 18.238 6.353 37.93 9.82 58.468 9.82 87.884 0 160.254-63.463 170.904-145.972 83.204-16.805 145.664-87.332 145.738-172.055-2.662-97.469-86.2-175.7-189.092-175.7h-585.729c-119.608 0-223.556 83.058-245.090 192zM384 528.297v-288.594c0-35.346 28.654-64 64-64 15.811 0 31.062 5.852 42.814 16.429l160.33 144.297c26.273 23.645 28.402 64.112 4.757 90.385-1.501 1.668-3.089 3.256-4.757 4.757l-160.33 144.297c-26.273 23.645-66.739 21.516-90.385-4.757-10.577-11.752-16.429-27.003-16.429-42.814z" />
<glyph unicode="cloud" glyph-name="cloud" d="M707.353 621.728c-20.538 0-40.23-3.466-58.468-9.82-21.468 90.3-104.946 156.092-204.508 156.092-107.128 0-195.634-76.172-209.42-174.917-130.164-5.35-233.99-106.654-234.954-231.337-0.002-128.739 114.686-233.746 249.172-233.746h585.729c102.892 0 186.43 78.231 189.092 175.7-0.074 84.722-62.534 155.249-145.738 172.055-10.65 82.51-83.020 145.972-170.904 145.972z" />
<glyph unicode="close" glyph-name="close" d="M620.102 448.032l234.834 234.834c7.407 7.444 11.987 17.708 11.987 29.041s-4.579 21.597-11.988 29.042l-50.879 50.097c-7.444 7.407-17.708 11.987-29.041 11.987s-21.597-4.579-29.042-11.988l-234.832-234.832-234.834 234.834c-7.377 7.168-17.458 11.588-28.572 11.588s-21.195-4.42-28.581-11.598l-50.558-50.401c-7.315-7.428-11.832-17.628-11.832-28.885s4.517-21.457 11.836-28.89l234.828-234.828-234.834-234.834c-7.407-7.444-11.987-17.708-11.987-29.041s4.579-21.597 11.988-29.042l50.566-50.097c7.427-7.445 17.696-12.051 29.041-12.051s21.615 4.606 29.041 12.050l234.835 234.835 234.834-234.834c7.444-7.407 17.708-11.987 29.041-11.987s21.597 4.579 29.042 11.988l50.409 50.409c7.407 7.444 11.987 17.708 11.987 29.041s-4.579 21.597-11.988 29.042z" />
<glyph unicode="clock" glyph-name="clock" d="M512 823.467c207.365 0 375.467-168.102 375.467-375.467s-168.102-375.467-375.467-375.467c-207.365 0-375.467 168.102-375.467 375.467 0.677 207.091 168.375 374.79 375.401 375.466zM512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM774.144 638.293l-53.248 53.248c-4.962 4.662-11.661 7.527-19.029 7.527s-14.067-2.864-19.044-7.54l-170.652-170.653-93.696 93.696c-4.946 4.7-11.65 7.591-19.029 7.591s-14.083-2.891-19.041-7.602l-53.065-53.066c-4.951-4.865-8.020-11.631-8.021-19.114 0-0.020 0-0.043 0-0.066 0-7.378 3.001-14.055 7.85-18.877l165.719-165.719c4.849-4.851 11.549-7.851 18.95-7.851 0.058 0 0.116 0 0.174 0.001h1.015c7.274 0.098 13.834 3.079 18.603 7.851l242.347 242.347c4.857 4.876 7.86 11.602 7.86 19.029s-3.003 14.153-7.861 19.030z" />
<glyph unicode="clipboard_notes" glyph-name="clipboard-notes" d="M877.227 836.778v0s0 1.195 0 1.707c0 34.404-27.89 62.293-62.293 62.293h-174.251v40.107c0 0.051 0.001 0.111 0.001 0.171 0 10.462-8.482 18.944-18.944 18.944 0 0-0.001 0-0.001 0h-218.965c-10.462 0-18.944-8.482-18.944-18.944v-40.448h-174.763c-34.404 0-62.293-27.89-62.293-62.293s0-1.024 0-1.707v0-837.803c-0.001-0.152-0.002-0.332-0.002-0.512 0-34.404 27.89-62.293 62.293-62.293 0.001 0 0.002 0 0.002 0h605.696c0 0 0 0 0 0 34.344 0 62.196 27.792 62.293 62.113s0 0.009 0 0.009v0 838.656zM759.126 53.93h-494.933v728.747h59.392v-36.352s0 0 0-1.195c0-11.876 9.628-21.504 21.504-21.504h333.312c11.876 0 21.504 9.628 21.504 21.504s0 0 0 0v37.547h59.221zM383.147 553.471c-0.094 7.751-6.4 13.999-14.164 13.999-0.12 0-0.24-0.002-0.36-0.004h-30.702c-7.823 0-14.165-6.342-14.165-14.165v-30.891c0-7.823 6.342-14.165 14.165-14.165h30.72c0.051-0.001 0.111-0.001 0.171-0.001 7.823 0 14.165 6.342 14.165 14.165 0 0 0 0.001 0 0.001v0 31.061zM699.905 553.471c0 7.823-6.342 14.165-14.165 14.165h-229.035c-7.823 0-14.165-6.342-14.165-14.165v-30.891c0-7.823 6.342-14.165 14.165-14.165h229.035c7.823 0 14.165 6.342 14.165 14.165v0 30.891zM383.147 435.028c0 7.823-6.342 14.165-14.165 14.165h-30.72c-7.785-0.095-14.070-6.381-14.165-14.156v-30.9c0-7.823 6.342-14.165 14.165-14.165h30.379c0.051-0.001 0.111-0.001 0.171-0.001 7.823 0 14.165 6.342 14.165 14.165 0 0 0 0.001 0 0.001v0 30.891zM699.905 435.028c0 7.823-6.342 14.165-14.165 14.165h-229.035c-7.785-0.095-14.070-6.381-14.165-14.156v-30.9c0-7.823 6.342-14.165 14.165-14.165h229.035c7.823 0 14.165 6.342 14.165 14.165v0 30.891zM383.147 316.586c0 7.823-6.342 14.165-14.165 14.165h-30.72c-7.785-0.095-14.070-6.381-14.165-14.156v-30.9c0-7.823 6.342-14.165 14.165-14.165h30.379c0.051-0.001 0.111-0.001 0.171-0.001 7.823 0 14.165 6.342 14.165 14.165 0 0 0 0.001 0 0.001v0 30.891zM699.905 316.586c0 7.823-6.342 14.165-14.165 14.165h-229.035c-7.785-0.095-14.070-6.381-14.165-14.156v-30.9c0-7.823 6.342-14.165 14.165-14.165h229.035c7.823 0 14.165 6.342 14.165 14.165v0 30.891z" />
<glyph unicode="chevron_up" glyph-name="chevron-up" d="M102.581 212.996c-4.926 5.536-9.099 11.895-12.264 18.811-3.343 7.338-5.179 15.366-5.179 23.822 0 8.746 1.964 17.033 5.474 24.444 3.18 6.706 7.231 12.776 12.035 18.159l366.185 365.664c5.619 4.975 12.097 9.157 19.152 12.272 7.482 3.354 15.667 5.199 24.283 5.199s16.801-1.845 24.181-5.162c7.155-3.158 13.632-7.339 19.333-12.378l366-367.035c5.397-5.383 9.775-11.785 12.822-18.894 2.75-6.785 4.259-14.202 4.259-21.972 0-0.453-0.005-0.905-0.015-1.356 0.002-0.015 0.002-0.111 0.002-0.208 0-8.455-1.694-16.514-4.76-23.857-2.613-7.223-6.867-13.729-12.297-19.037l-42.506-43.359c-5.537-4.924-11.896-9.096-18.811-12.264-7.346-3.363-15.385-5.211-23.856-5.211s-16.51 1.848-23.736 5.162c-6.969 3.225-13.27 7.396-18.832 12.376l-281.869 281.025-280.576-279.723c-10.714-10.555-25.431-17.072-41.671-17.072-0.29 0-0.58 0.002-0.869 0.006 0.011-0.001-0.027-0.001-0.066-0.001-8.512 0-16.628 1.693-24.030 4.761-6.981 2.849-13.251 7.256-18.323 12.78l-44.066 41.509z" />
<glyph unicode="chevron_right" glyph-name="chevron-right" d="M308.816 857.398c5.489 4.917 11.79 9.088 18.646 12.264 7.34 3.363 15.379 5.211 23.85 5.211s16.51-1.848 23.736-5.162c7.036-3.211 13.395-7.384 19.006-12.379l364.98-367.037c5.487-5.503 9.971-12.010 13.152-19.22 3.337-7.412 5.188-15.597 5.188-24.214s-1.851-16.803-5.178-24.179c-3.217-7.176-7.697-13.623-13.162-19.084l-365.91-365.398c-10.689-10.554-25.384-17.073-41.602-17.073-0.314 0-0.628 0.002-0.941 0.007 0.015-0.001-0.024-0.001-0.062-0.001-8.512 0-16.628 1.693-24.030 4.761-7.018 2.679-13.345 6.922-18.512 12.289l-43.877 43.024c-4.912 5.491-9.082 11.792-12.263 18.645-3.364 7.341-5.212 15.381-5.212 23.851s1.848 16.51 5.162 23.736c3.219 7.034 7.392 13.392 12.381 19.008l281.020 281.351-279.723 280.576c-5.394 5.385-9.771 11.787-12.821 18.893-3.381 7.189-5.369 15.135-5.609 23.519-0.003 0.196-0.003 0.329-0.003 0.462 0 8.478 1.694 16.561 4.761 23.928 2.85 6.986 7.257 13.255 12.781 18.327l43.387 43.895z" />
<glyph unicode="chevron_left" glyph-name="chevron-left" d="M716.62 38.236c-5.492-4.91-11.792-9.080-18.644-12.262-7.344-3.354-15.383-5.196-23.852-5.196s-16.508 1.841-23.738 5.146c-7.031 3.224-13.388 7.396-19.008 12.382l-366.854 367.035c-5.463 5.454-9.854 11.98-12.829 19.236-3.048 7.438-4.735 15.621-4.735 24.198s1.687 16.76 4.748 24.235c2.991 7.15 7.377 13.616 12.814 19.027l367.789 365.4c10.89 10.984 25.984 17.784 42.667 17.784s31.777-6.8 42.662-17.78l41.818-43.012c5.397-5.383 9.775-11.785 12.822-18.894 3.056-7.305 4.744-15.342 4.744-23.773s-1.689-16.467-4.746-23.789c-3.067-7.024-7.441-13.367-12.816-18.703l-279.044-281.433 279.040-280.576c5.394-5.385 9.771-11.787 12.821-18.893 3.065-7.145 4.76-15.008 4.76-23.266 0-0.178-0.001-0.357-0.002-0.535 0-0.035 0.001-0.108 0.001-0.182 0-8.477-1.693-16.559-4.76-23.926-2.85-6.986-7.257-13.255-12.781-18.327l-42.021-43.895z" />
<glyph unicode="chevron_down" glyph-name="chevron-down" d="M921.583 588.559c5.562-5.106 9.969-11.375 12.847-18.431 2.739-6.961 4.255-14.629 4.255-22.65 0-0.738-0.013-1.472-0.038-2.204 0.004-0.035 0.005-0.201 0.005-0.368 0-8.27-1.695-16.144-4.757-23.293-2.949-6.896-7.151-13.123-12.321-18.397l-366.241-367.094c-5.618-4.978-12.096-9.16-19.153-12.272-7.479-3.363-15.665-5.215-24.282-5.215s-16.803 1.851-24.179 5.178c-7.157 3.155-13.635 7.336-19.334 12.377l-366.001 367.035c-5.157 5.267-9.359 11.493-12.31 18.382-3.064 7.134-4.76 14.985-4.76 23.232 0 0.19 0.001 0.38 0.003 0.57-0.001 0.053-0.001 0.149-0.001 0.246 0 8.455 1.694 16.514 4.76 23.857 2.613 7.223 6.867 13.729 12.297 19.037l42.506 43.359c5.538 4.921 11.896 9.094 18.81 12.263 7.349 3.353 15.388 5.195 23.857 5.195s16.508-1.841 23.738-5.146c7.034-3.211 13.393-7.384 19.004-12.379l281.695-281.021 280.576 279.723c10.689 10.554 25.384 17.073 41.602 17.073 0.314 0 0.628-0.002 0.941-0.007 0.026 0.001 0.112 0.001 0.198 0.001 8.523 0 16.651-1.693 24.065-4.762 6.98-2.849 13.25-7.256 18.322-12.78l43.895-41.509z" />
<glyph unicode="check_tick" glyph-name="check-tick" d="M874.008 810.069c-92.651 92.636-220.639 149.931-362.008 149.931-282.77 0-512-229.23-512-512s229.23-512 512-512c141.37 0 269.358 57.295 362.009 149.932 92.671 92.656 149.991 220.668 149.991 362.068s-57.32 269.412-149.991 362.068zM724.675 535.125l-251.392-251.392c-10.683-10.67-25.435-17.268-41.728-17.268s-31.045 6.599-41.729 17.269l-126.805 126.805c-6.868 6.884-11.116 16.386-11.116 26.88s4.247 19.996 11.116 26.881l29.695 29.695c6.893 6.919 16.429 11.201 26.965 11.201s20.073-4.282 26.964-11.2l85.335-85.335 209.067 210.091c6.884 6.868 16.386 11.116 26.88 11.116s19.996-4.247 26.881-11.116l29.695-29.695c6.868-6.884 11.116-16.386 11.116-26.88s-4.247-19.996-11.116-26.881z" />
<glyph unicode="check" glyph-name="check" d="M968.539 715.568l-62.444 62.444c-7.94 8.099-18.995 13.119-31.221 13.119s-23.282-5.021-31.215-13.112l-460.37-462.087-202.941 202.941c-7.94 8.099-18.995 13.119-31.221 13.119s-23.282-5.021-31.215-13.112l-62.45-62.45c-8.099-7.94-13.119-18.995-13.119-31.221s5.021-23.282 13.112-31.215l266.016-263.518c15.821-15.822 37.676-25.608 61.819-25.608s45.998 9.786 61.819 25.608l523.431 523.275c8.099 7.94 13.119 18.995 13.119 31.221s-5.021 23.282-13.112 31.215z" />
<glyph unicode="camera" glyph-name="camera" d="M512.001 527.104c65.98 0 119.467-53.487 119.467-119.467s-53.487-119.467-119.467-119.467c-65.98 0-119.467 53.487-119.467 119.467s53.487 119.467 119.467 119.467zM976.897 774.058v0h-210.603v35.84c0 26.015-21.089 47.104-47.104 47.104h-414.379c-26.015 0-47.104-21.089-47.104-47.104v-35.328h-210.603c0 0-0.001 0-0.001 0-26.015 0-47.104-21.089-47.104-47.104 0-0.12 0-0.24 0.001-0.36v-640.664c-0.001-0.101-0.001-0.221-0.001-0.341 0-26.015 21.089-47.104 47.104-47.104 0 0 0.001 0 0.001 0h929.792c0 0 0.001 0 0.001 0 26.015 0 47.104 21.089 47.104 47.104 0 0.12 0 0.24-0.001 0.36v640.664c0 26.015-21.089 47.104-47.104 47.104zM515.073 162.901c-134.693 0-243.883 109.19-243.883 243.883s109.19 243.883 243.883 243.883c134.693 0 243.883-109.19 243.883-243.883s-109.19-243.883-243.883-243.883zM961.025 585.13h-186.368v125.952h186.368v-125.952z" />
<glyph unicode="calendar" glyph-name="calendar" d="M947.712 597.675h-871.424c0 0-0.001 0-0.001 0-9.931 0-17.993-8.002-18.090-17.911v-625.673c0-9.991 8.099-18.091 18.091-18.091h871.424c0.051-0.001 0.111-0.001 0.171-0.001 9.897 0 17.92 8.023 17.92 17.92 0 0.060 0 0.121-0.001 0.181v625.655c0.001 0.051 0.001 0.111 0.001 0.171 0 9.897-8.023 17.92-17.92 17.92-0.060 0-0.121 0-0.181-0.001zM360.618 68.779c-31.96 0.064-62.513 6.006-90.661 16.801-1.627 0.778-3.962 4.026-3.962 7.818 0 0.406 0.027 0.805 0.079 1.197l8.358 61.223c0.395 2.762 1.989 5.086 4.227 6.463 1.187 0.588 2.537 0.919 3.965 0.919s2.778-0.331 3.979-0.92c23.432-9.491 50.672-15.011 79.201-15.011 0.937 0 1.873 0.006 2.807 0.018 31.261-0.001 53.106 14.847 53.106 36.009 0 26.283-12.629 40.448-82.091 44.373-4.77 0.279-8.533 4.215-8.533 9.031 0 0.005 0 0.010 0 0.015v60.927c0 0.008 0 0.017 0 0.026 0 4.755 3.67 8.654 8.332 9.018 60.106 4.781 66.591 21.847 66.591 36.013 0 9.045 0 24.405-40.448 24.405-24.992-0.457-48.421-6.714-69.134-17.477-0.327-0.196-1.737-0.55-3.229-0.55s-2.902 0.355-4.149 0.984c-2.488 1.281-4.294 3.707-4.72 6.583l-8.369 61.147c-0.051 0.36-0.080 0.776-0.080 1.199 0 3.599 2.102 6.707 5.145 8.164 28.28 12.188 61.139 19.262 95.651 19.262 2.753 0 5.495-0.045 8.226-0.134 72.818 0.010 121.97-34.123 121.97-85.323 0-37.888-19.627-65.877-59.904-85.333 34.133-13.312 69.803-37.547 69.803-88.576 0-73.045-61.269-119.467-156.331-119.467zM740.864 82.432c0-4.996-4.050-9.045-9.045-9.045h-74.069c-4.996 0-9.045 4.050-9.045 9.045v246.101l-48.981-18.603c-1.147-0.565-2.498-0.896-3.925-0.896s-2.778 0.331-3.979 0.92c-2.26 1.339-3.87 3.682-4.209 6.419l-8.367 61.312c-0.053 0.365-0.084 0.787-0.084 1.216 0 3.504 2.031 6.534 4.981 7.977l106.719 52.759c1.19 0.626 2.597 1.003 4.089 1.024h37.212c4.858-0.175 8.73-4.155 8.73-9.040 0-0.242-0.010-0.482-0.028-0.72l0.002-348.47zM947.712 879.445h-92.843v-43.52c0-46.080-26.283-95.232-100.181-95.232s-100.181 48.64-100.181 95.232v43.52h-283.819v-43.52c0-46.080-26.283-95.232-100.181-95.232s-100.352 48.64-100.352 95.232v43.52h-93.867c-0.051 0.001-0.111 0.001-0.171 0.001-9.897 0-17.92-8.023-17.92-17.92 0-0.060 0-0.121 0.001-0.181v-183.116c0-9.991 8.099-18.091 18.091-18.091h871.424c0.051-0.001 0.111-0.001 0.171-0.001 9.897 0 17.92 8.023 17.92 17.92 0 0.060 0 0.121-0.001 0.181v183.116c0.001 0.051 0.001 0.111 0.001 0.171 0 9.897-8.023 17.92-17.92 17.92-0.060 0-0.121 0-0.181-0.001zM270.506 798.891c29.867 0 41.984 10.752 41.984 37.035v86.869c0 26.453-12.117 37.205-41.984 37.205s-41.643-10.752-41.643-37.205v-86.869c0-26.453 12.117-37.035 41.984-37.035zM754.688 798.891c29.867 0 41.984 10.752 41.984 37.035v86.869c0 26.453-12.288 37.205-41.984 37.205s-41.984-10.752-41.984-37.205v-86.869c0-26.453 12.117-37.035 41.984-37.035z" />
<glyph unicode="calculator" glyph-name="calculator" d="M192 960h640c70.692 0 128-57.308 128-128v-768c0-70.692-57.308-128-128-128h-640c-70.692 0-128 57.308-128 128v768c0 70.692 57.308 128 128 128zM256 832c-35.346 0-64-28.654-64-64v-32c0-35.346 28.654-64 64-64h512c35.346 0 64 28.654 64 64v32c0 35.346-28.654 64-64 64h-512zM224 576c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM464 576c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM224 384c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM464 384c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM224 192c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM464 192c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM704 576c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM704 384c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM704 192c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96z" />
<glyph unicode="brush" glyph-name="brush" d="M160.069 366.080c-0.042-1.090-0.069-2.366-0.069-3.65 0-54.576 44.719-98.816 99.886-98.816 1.298 0 2.592 0.024 3.876 0.072l82.621-0.006c0.954 0.054 2.068 0.086 3.192 0.086 32.585 0 59-26.132 59-58.368 0-1.11-0.032-2.214-0.093-3.31l0.008-219.496c0.099-25.692 21.124-46.496 47.086-46.592h112.661c25.97 0.096 47 20.9 47.097 46.582v219.486c-0.061 0.998-0.097 2.164-0.097 3.338 0 32.236 26.415 58.368 59 58.368 1.187 0 2.367-0.034 3.536-0.102l82.645 0.008c1.154-0.048 2.509-0.074 3.869-0.074 55.070 0 99.712 44.164 99.712 98.644 0 1.346-0.028 2.688-0.081 4.020l0.006 102.21h-703.861l0.004-102.4zM420.565 960l-74.183-73.388-74.183 73.388h-112.135v-450.56h703.861v450.56h-443.36z" />
<glyph unicode="branda" glyph-name="branda" d="M512 64c141.385 0 256 114.615 256 256v608c0 17.673 14.327 32 32 32h64c17.673 0 32-14.327 32-32v-608c0-212.077-171.923-384-384-384s-384 171.923-384 384v608c0 17.673 14.327 32 32 32h320c17.673 0 32-14.327 32-32v-864zM384 98.248v733.752h-128v-512c0-94.756 51.481-177.488 128-221.752z" />
<glyph unicode="bookmark" glyph-name="bookmark" d="M256 960v-1024l256 256 256-256v1024h-512z" />
<glyph unicode="book" glyph-name="book" d="M892.798 776.531v0c0 10.721-8.691 19.413-19.413 19.413h-40.32v-716.8c-0.075-10.484-8.385-19.003-18.779-19.411l-604.389-0.001c-9.345 0.103-17.108 6.741-18.943 15.553l-0.021 42.836h562.987c10.74 0.085 19.413 8.811 19.413 19.563 0 0 0 0 0 0.001v0 738.752c0 0 0 0 0 0.001 0 10.752-8.673 19.478-19.405 19.563h-603.166c-10.804 0-19.563-8.758-19.563-19.563s0 0 0-0.747v-855.381s0 0 0 0 0 0 0 0v-0.896c0.085-10.74 8.811-19.413 19.563-19.413 0 0 0 0 0.001 0h722.624c10.74 0.085 19.413 8.811 19.413 19.563 0 0 0 0 0 0.001v0z" />
<glyph unicode="bold" glyph-name="bold" d="M684.799 460.033c72.576 14.976 132.48 80.64 132.48 176.127 0 102.528-74.88 195.84-221.184 195.84h-368.767c-19.512 0-35.328-15.816-35.328-35.328v-697.344c0-19.511 15.816-35.328 35.328-35.328h381.439c147.456 0 223.233 92.16 223.233 208.384 0 95.616-63.999 175.616-147.201 187.649zM355.455 688h204.801c55.296 0 89.599-33.408 89.599-80.64 0-49.536-34.56-80.64-89.599-80.64h-204.801v161.28zM567.294 207.871h-211.839v175.104h211.968c63.36 0 97.92-39.168 97.92-87.552 0-55.296-36.864-87.552-97.92-87.552h-0.129z" />
<glyph unicode="blog" glyph-name="blog" d="M64 896v-119.467h59.733s0 74.667 74.667 74.667v-283.733s0-14.933-29.867-14.933h-14.933v-44.8h194.133v44.8h-14.933c-29.867 0-29.867 14.933-29.867 14.933v283.733c74.667 0 74.667-74.667 74.667-74.667h59.733v119.467zM930.133 761.6h-388.267c-16.495 0-29.867 13.372-29.867 29.867v0 74.667c0 16.495 13.372 29.867 29.867 29.867v0h388.267c16.495 0 29.867-13.372 29.867-29.867v0-74.667c0-16.495-13.372-29.867-29.867-29.867v0zM930.133 0h-836.267c-16.495 0-29.867 13.372-29.867 29.867v0 74.667c0 16.495 13.372 29.867 29.867 29.867v0h836.267c16.495 0 29.867-13.372 29.867-29.867v0-74.667c0-16.495-13.372-29.867-29.867-29.867v0zM930.133 253.867h-836.267c-16.495 0-29.867 13.372-29.867 29.867v0 74.667c0 16.495 13.372 29.867 29.867 29.867v0h836.267c16.495 0 29.867-13.372 29.867-29.867v0-74.667c0-16.495-13.372-29.867-29.867-29.867v0zM930.133 507.733h-388.267c-16.495 0-29.867 13.372-29.867 29.867v0 74.667c0 16.495 13.372 29.867 29.867 29.867v0h388.267c16.495 0 29.867-13.372 29.867-29.867v0-74.667c0-16.495-13.372-29.867-29.867-29.867v0z" />
<glyph unicode="beehive" glyph-name="beehive" d="M406.965 427.211l203.748-186.748 52.686 55.062 62.689-119.69 233.911 172.109v-155.952l-448-255.992-303.597 173.476 198.562 317.736zM318.225 508.513l31.022-28.427-206.878-332.89-78.369 44.796v32.527l254.225 283.994zM960 605.425v-163.029l-206.724-150.698-33.078 63.171 239.803 250.556zM512 960l442.415-252.804-271.715-280.653-167.693 320.287-124.090-199.686-78.247 71.705-248.671-278.588v363.747l448 255.992zM508.993 590.513l116.664-222.858-18.288-18.89-158.61 145.353 60.235 96.396z" />
<glyph unicode="automate" glyph-name="automate" d="M931.584 741.355c94.454-135.064 118.112-307.338 63.563-462.862s-180.634-275.28-338.763-321.757c37.684 56.421 72.377 114.782 103.936 174.843 120.064 222.842 171.264 468.98 171.264 609.776zM195.456 696.428c-59.991-31.612-118.309-66.303-174.72-103.933 44.483 151.22 156.145 273.521 302.706 331.549s311.682 45.313 447.63-34.469c11.648-6.4 22.528-14.208 34.048-22.015-141.056 0.64-386.816-51.583-609.664-171.131zM529.024-64h-17.024c-282.77 0-512 229.224-512 511.986 0 5.76 0 11.392 0 17.152 181.888 56.447 569.216 193.531 646.016 116.605s-60.416-464.116-116.992-645.743z" />
<glyph unicode="async" glyph-name="async" d="M479.996 768h128c8.487 0 16.626 3.372 22.627 9.373s9.373 14.14 9.373 22.627v64c0 8.487-3.372 16.627-9.373 22.627s-14.14 9.373-22.627 9.373h-128c-8.487 0-16.627-3.372-22.628-9.373s-9.372-14.14-9.372-22.627v-64c0-8.487 3.372-16.627 9.372-22.627s14.141-9.373 22.628-9.373zM479.996 512h255.998c8.486 0 16.627 3.372 22.63 9.373 5.997 6.001 9.37 14.14 9.37 22.627v64c0 8.487-3.373 16.627-9.37 22.627-6.003 6.001-14.144 9.373-22.63 9.373h-255.998c-8.487 0-16.627-3.372-22.628-9.373s-9.372-14.14-9.372-22.627v-64c0-8.487 3.372-16.627 9.372-22.627s14.141-9.373 22.628-9.373zM991.994 128h-511.998c-8.487 0-16.627-3.373-22.628-9.37-6.001-6.003-9.372-14.144-9.372-22.63v-64c0-8.486 3.372-16.627 9.372-22.63 6.001-5.997 14.141-9.37 22.628-9.37h511.998c8.486 0 16.627 3.373 22.63 9.37 5.997 6.003 9.37 14.144 9.37 22.63v64c0 8.486-3.373 16.627-9.37 22.63-6.003 5.997-14.144 9.37-22.63 9.37zM479.996 256h383.998c8.486 0 16.627 3.373 22.63 9.37 5.997 6.003 9.37 14.144 9.37 22.63v64c0 8.487-3.373 16.627-9.37 22.627-6.003 6.001-14.144 9.373-22.63 9.373h-383.998c-8.487 0-16.627-3.372-22.628-9.373s-9.372-14.14-9.372-22.627v-64c0-8.486 3.372-16.627 9.372-22.63 6.001-5.997 14.141-9.37 22.628-9.37zM31.995 640h96v-608c0-8.486 3.372-16.627 9.372-22.63 6.001-5.997 14.141-9.37 22.628-9.37h64c8.487 0 16.626 3.373 22.627 9.37 6.001 6.003 9.373 14.144 9.373 22.63v608h96c28.42 0 42.78 34.48 22.62 54.62l-160 192c-6 5.996-14.136 9.365-22.62 9.365s-16.62-3.369-22.62-9.365l-160-192c-20.080-20.1-5.82-54.62 22.62-54.62z" />
<glyph unicode="arrows_out" glyph-name="arrows-out" d="M106.101 270.054l-42.263-253.425c-0.101-0.652-0.159-1.406-0.159-2.171 0-4.032 1.598-7.691 4.194-10.378l-0.005 0.005c2.682-2.593 6.341-4.191 10.373-4.191 0.765 0 1.519 0.058 2.253 0.169l252.15 42.701c6.673 1.588 11.559 7.498 11.559 14.547 0 3.826-1.438 7.317-3.804 9.959l-49.418 49.416 132.612 132.612c2.511 2.666 4.054 6.267 4.054 10.229s-1.543 7.564-4.061 10.237l-90.94 91.239c-2.666 2.511-6.267 4.054-10.229 4.054s-7.564-1.543-10.237-4.061l-132.306-132.605-49.431 49.431c-2.628 2.354-6.118 3.792-9.944 3.792-7.051 0-12.96-4.886-14.528-11.457zM917.601 625.778l42.263 253.425c0.101 0.652 0.159 1.406 0.159 2.171 0 4.032-1.598 7.691-4.194 10.378l0.005-0.005c-2.701 2.694-6.429 4.36-10.545 4.36-0.811 0-1.607-0.064-2.384-0.189l-251.847-42.848c-6.673-1.588-11.559-7.498-11.559-14.547 0-3.826 1.438-7.317 3.804-9.959l49.418-49.416-133.359-132.612c-2.511-2.666-4.054-6.267-4.054-10.229s1.543-7.564 4.061-10.237l91.687-91.387c2.666-2.511 6.267-4.054 10.229-4.054s7.564 1.543 10.237 4.061l132.605 132.605 49.431-49.431c2.625-2.338 6.103-3.767 9.916-3.767 7.095 0 13.034 4.949 14.556 11.582zM689.712 42.165l253.873-41.963c0.652-0.101 1.406-0.159 2.171-0.159 4.032 0 7.691 1.598 10.378 4.194l-0.005-0.005c2.593 2.682 4.191 6.341 4.191 10.373 0 0.765-0.058 1.519-0.169 2.253l-43.149 251.85c-1.588 6.673-7.498 11.559-14.547 11.559-3.826 0-7.317-1.438-9.959-3.804l-49.416-49.418-132.612 133.359c-2.666 2.511-6.267 4.054-10.229 4.054s-7.564-1.543-10.237-4.061l-91.387-91.687c-2.511-2.666-4.054-6.267-4.054-10.229s1.543-7.564 4.061-10.237l132.605-132.605-49.431-49.431c-2.338-2.625-3.767-6.103-3.767-9.916 0-7.095 4.949-13.034 11.582-14.556zM333.99 853.667l-253.425 42.263c-0.612 0.090-1.319 0.14-2.037 0.14-4.097 0-7.809-1.65-10.509-4.322l0.001 0.001c-2.682-2.698-4.34-6.419-4.34-10.525 0-0.764 0.058-1.517 0.169-2.25l42.85-251.85c1.588-6.673 7.498-11.559 14.547-11.559 3.826 0 7.317 1.438 9.959 3.804l49.416 49.418 132.612-132.612c2.666-2.511 6.267-4.054 10.229-4.054s7.564 1.543 10.237 4.061l91.387 90.94c2.511 2.666 4.054 6.267 4.054 10.229s-1.543 7.564-4.061 10.237l-132.755 132.306 49.431 49.431c2.338 2.625 3.767 6.103 3.767 9.916 0 7.095-4.949 13.034-11.582 14.556z" />
<glyph unicode="arrows_in" glyph-name="arrows-in" d="M377.603 70.087l44.959 271.996c0.108 0.699 0.17 1.506 0.17 2.326 0 4.32-1.712 8.241-4.494 11.12l0.005-0.005c-2.874 2.778-6.794 4.49-11.114 4.49-0.82 0-1.628-0.062-2.414-0.181l-270.627-46.228c-6.921-1.864-11.931-8.084-11.931-15.474 0-3.855 1.363-7.391 3.634-10.154l52.937-52.931-142.238-142.718c-2.69-2.856-4.343-6.715-4.343-10.96s1.653-8.104 4.351-10.968l97.911-97.91c2.856-2.69 6.715-4.343 10.96-4.343s8.104 1.653 10.968 4.351l142.069 142.070 53.599-52.799c2.811-2.505 6.539-4.036 10.625-4.036 7.602 0 13.965 5.3 15.595 12.408zM646.398 825.913l-44.959-271.996c-0.108-0.699-0.17-1.506-0.17-2.326 0-4.32 1.712-8.241 4.494-11.12l-0.005 0.005c2.874-2.778 6.794-4.49 11.114-4.49 0.82 0 1.628 0.062 2.414 0.181l270.627 45.748c7.090 1.744 12.266 8.046 12.266 15.557 0 4.037-1.495 7.725-3.962 10.54l-52.943 52.942 142.077 142.077c2.69 2.856 4.343 6.715 4.343 10.96s-1.653 8.104-4.351 10.968l-97.75 98.55c-2.856 2.69-6.715 4.343-10.96 4.343s-8.104-1.653-10.968-4.351l-142.069-142.070-53.599 52.799c-2.811 2.505-6.539 4.036-10.625 4.036-7.602 0-13.965-5.3-15.595-12.408zM889.914 313.603l-271.996 44.959c-0.699 0.108-1.506 0.17-2.326 0.17-4.32 0-8.241-1.712-11.12-4.494l0.005 0.005c-2.778-2.874-4.49-6.794-4.49-11.114 0-0.82 0.062-1.628 0.181-2.414l46.228-270.627c1.701-7.148 8.032-12.383 15.586-12.383 4.099 0 7.838 1.541 10.67 4.076l52.943 52.945 142.077-142.077c2.856-2.69 6.715-4.343 10.96-4.343s8.104 1.653 10.968 4.351l97.91 97.911c2.69 2.856 4.343 6.715 4.343 10.96s-1.653 8.104-4.351 10.968l-142.070 142.069 52.799 53.439c2.505 2.811 4.036 6.539 4.036 10.625 0 7.602-5.3 13.965-12.408 15.595zM134.088 582.397l271.996-44.959c0.699-0.108 1.506-0.17 2.326-0.17 4.32 0 8.241 1.712 11.12 4.494l-0.005-0.005c2.778 2.874 4.49 6.794 4.49 11.114 0 0.82-0.062 1.628-0.181 2.414l-46.228 270.627c-1.864 6.921-8.084 11.931-15.474 11.931-3.855 0-7.391-1.363-10.154-3.634l-53.572-52.937-142.077 142.238c-2.856 2.69-6.715 4.343-10.96 4.343s-8.104-1.653-10.968-4.351l-97.91-97.911c-2.69-2.856-4.343-6.715-4.343-10.96s1.653-8.104 4.351-10.968l142.070-142.069-52.799-53.599c-2.505-2.811-4.036-6.539-4.036-10.625 0-7.602 5.3-13.965 12.408-15.595z" />
<glyph unicode="arrows_expand" glyph-name="arrows-expand" d="M109.982 293.839l-45.997-275.685c-0.147-0.806-0.231-1.734-0.231-2.682 0-4.315 1.744-8.223 4.562-11.058l-0.001 0.001c2.724-2.85 6.557-4.623 10.803-4.623 1.040 0 2.053 0.105 3.032 0.308l274.843 46.428c7.493 1.27 13.129 7.712 13.129 15.471 0 4.342-1.764 8.271-4.615 11.111l-53.764 53.764 144.264 144.264c2.861 2.841 4.63 6.777 4.63 11.127s-1.771 8.285-4.629 11.126l-99.463 99.463c-2.841 2.861-6.777 4.63-11.127 4.63s-8.285-1.771-11.126-4.629l-143.966-144.265-53.764 53.764c-2.839 2.851-6.77 4.615-11.112 4.615-7.759 0-14.201-5.636-15.458-13.035zM914.040 602.081l45.997 275.685c0.133 0.768 0.209 1.652 0.209 2.555 0 4.305-1.734 8.202-4.542 11.037l0.001-0.001c-2.884 2.991-6.926 4.851-11.404 4.851-0.931 0-1.842-0.080-2.729-0.234l-274.843-46.731c-7.493-1.27-13.129-7.712-13.129-15.471 0-4.342 1.764-8.271 4.615-11.111l53.764-53.764-144.264-144.414c-2.861-2.841-4.63-6.777-4.63-11.127s1.771-8.285 4.629-11.126l99.463-99.463c2.841-2.861 6.777-4.63 11.127-4.63s8.285 1.771 11.126 4.629l144.414 144.414 53.764-53.764c2.839-2.851 6.77-4.615 11.112-4.615 7.759 0 14.201 5.636 15.458 13.035z" />
<glyph unicode="arrows_compress" glyph-name="arrows-compress" d="M408.042 79.040l48.96 295.36c0.182 0.906 0.286 1.946 0.286 3.011 0 4.537-1.888 8.632-4.921 11.543l-0.006 0.006c-3.037 3.021-7.223 4.887-11.846 4.887-1.015 0-2.010-0.090-2.976-0.263l-294.458-49.585c-8.028-1.361-14.065-8.263-14.065-16.576 0-4.652 1.89-8.861 4.944-11.903l57.601-57.601-154.56-154.56c-2.923-3.019-4.724-7.139-4.724-11.68s1.802-8.661 4.729-11.684l107.035-107.035c3.044-3.065 7.261-4.961 11.92-4.961s8.876 1.897 11.919 4.96l154.081 155.041 57.6-57.6c3.042-3.055 7.253-4.945 11.904-4.945 8.313 0 15.215 6.038 16.562 13.966zM616.041 816.96l-49.12-295.36c-0.143-0.823-0.224-1.77-0.224-2.737 0-4.612 1.858-8.788 4.866-11.825l-0.001 0.001c3.060-3.015 7.263-4.876 11.901-4.876 0.996 0 1.972 0.086 2.921 0.25l294.619 49.585c8.028 1.361 14.065 8.263 14.065 16.576 0 4.652-1.89 8.861-4.944 11.903l-58.081 57.601 154.72 154.72c3.065 3.044 4.961 7.261 4.961 11.92s-1.897 8.876-4.96 11.919l-106.721 106.401c-3.044 3.065-7.261 4.961-11.92 4.961s-8.876-1.897-11.919-4.96l-154.081-155.041-57.6 57.6c-3.042 3.055-7.253 4.945-11.904 4.945-8.313 0-15.215-6.038-16.562-13.966z" />
<glyph unicode="arrow_up" glyph-name="arrow-up" d="M491.007 899.925l-388.949-388.949c-5.46-5.491-8.836-13.061-8.836-21.419s3.375-15.927 8.837-21.42l62.463-62.463c5.491-5.46 13.061-8.836 21.419-8.836s15.927 3.375 21.42 8.837l230.399 230.228v-621.568c-0.001-0.102-0.002-0.222-0.002-0.342 0-14.645 11.824-26.528 26.446-26.623h95.412c14.704 0 26.624 11.92 26.624 26.624v621.909l230.4-230.4c5.491-5.46 13.061-8.836 21.419-8.836s15.927 3.375 21.42 8.837l62.463 62.463c5.46 5.491 8.836 13.061 8.836 21.419s-3.375 15.927-8.837 21.42l-388.948 389.119c-5.401 5.38-12.851 8.706-21.077 8.706s-15.677-3.326-21.078-8.707z" />
<glyph unicode="arrow_skip_start" glyph-name="arrow-skip-start" d="M794.729 99.707c-4.704-4.25-10.109-7.845-16-10.573l-0.397-0.165c-5.848-2.66-12.683-4.209-19.879-4.209s-14.031 1.549-20.188 4.334l0.309-0.125c-6.234 2.89-11.594 6.486-16.301 10.782l0.050-0.044-312.112 312.112c-4.671 4.572-8.409 10.079-10.913 16.22l-0.116 0.322c-2.207 5.658-3.485 12.207-3.485 19.054 0 0.187 0.001 0.376 0.003 0.562v-0.028c0 0.078-0.001 0.17-0.001 0.262 0 7.179 1.44 14.021 4.047 20.254l-0.129-0.346c2.401 6.771 6.010 12.577 10.613 17.434l-0.020-0.022 312.837 310.661c4.498 4.64 9.904 8.372 15.934 10.909l0.317 0.119c5.872 2.541 12.708 4.020 19.891 4.020 14.167 0 26.989-5.751 36.262-15.046l0.001-0.001 35.549-36.566c9.237-9.35 14.944-22.209 14.944-36.398 0-7.126-1.439-13.917-4.043-20.097l0.128 0.341c-2.696-6.333-6.42-11.732-11.019-16.244l-0.007-0.007-237.24-239.271 237.24-238.546c4.607-4.519 8.332-9.917 10.904-15.928l0.123-0.324c2.479-5.769 3.919-12.482 3.919-19.533 0-0.121-0.001-0.244-0.002-0.364v0.018c0-0.079 0.001-0.172 0.001-0.266 0-7.227-1.439-14.118-4.047-20.403l0.131 0.353c-2.552-6.29-6.299-11.62-10.995-15.931l-0.031-0.028-35.549-37.291zM294.13 99.707h-87.060c-16.027 0-29.019 12.992-29.019 29.019v0 638.444c0 16.027 12.992 29.019 29.019 29.019v0h87.060c16.027 0 29.019-12.992 29.019-29.019v0-638.444c0-16.027-12.992-29.019-29.019-29.019v0z" />
<glyph unicode="arrow_skip_forward" glyph-name="arrow-skip-forward" d="M526.871 99.768c4.641-4.289 10.005-7.889 15.872-10.582l0.379-0.155c5.848-2.66 12.683-4.209 19.878-4.209s14.031 1.549 20.186 4.334l-0.309-0.125c6.287 2.892 11.694 6.487 16.451 10.788l-0.056-0.051 311.959 312.104c4.671 4.572 8.409 10.079 10.912 16.22l0.116 0.322c2.207 5.658 3.485 12.206 3.485 19.054 0 0.187-0.001 0.376-0.003 0.562v-0.028c0 0.078 0.001 0.17 0.001 0.262 0 7.178-1.44 14.021-4.046 20.253l0.129-0.346c-2.4 6.77-6.009 12.577-10.613 17.434l0.020-0.022-312.685 310.653c-9.35 9.237-22.207 14.942-36.397 14.942-7.126 0-13.917-1.439-20.095-4.043l0.341 0.128c-6.333-2.695-11.732-6.42-16.244-11.019l-0.007-0.007-35.694-36.564c-9.237-9.35-14.942-22.207-14.942-36.397 0-7.126 1.439-13.917 4.043-20.095l-0.128 0.341c2.695-6.333 6.42-11.732 11.019-16.244l0.007-0.007 237.234-239.265-237.234-238.54c-4.607-4.519-8.332-9.917-10.904-15.928l-0.123-0.323c-2.479-5.769-3.919-12.482-3.919-19.533 0-0.121 0.001-0.244 0.002-0.364v0.018c0-0.079-0.001-0.172-0.001-0.266 0-7.227 1.439-14.118 4.047-20.401l-0.131 0.353c2.552-6.29 6.299-11.62 10.995-15.931l0.031-0.028 35.694-37.289zM150.488 99.768c4.704-4.25 10.109-7.845 15.999-10.572l0.397-0.165c5.509-2.395 11.923-3.787 18.665-3.787 0.426 0 0.852 0.006 1.276 0.017l-0.062-0.002c0.047 0 0.102 0 0.156 0 7.143 0 13.923 1.549 20.025 4.331l-0.302-0.123c6.219 2.8 11.574 6.251 16.334 10.372l-0.083-0.070 311.089 312.104c4.671 4.572 8.409 10.079 10.912 16.22l0.116 0.322c2.479 5.965 3.918 12.896 3.918 20.161 0 0.053 0 0.108 0 0.162v-0.008c0 0.078 0.001 0.17 0.001 0.262 0 7.178-1.44 14.021-4.046 20.253l0.129-0.346c-2.617 6.512-6.355 12.067-11.023 16.681l-0.005 0.005-311.815 310.653c-4.54 4.573-9.933 8.291-15.92 10.9l-0.331 0.129c-5.488 2.22-11.854 3.509-18.522 3.509-0.579 0-1.155-0.009-1.731-0.028l0.084 0.003c-0.233 0.005-0.509 0.006-0.786 0.006-13.826 0-26.358-5.541-35.495-14.522l0.007 0.006-36.275-36.564c-9.237-9.35-14.942-22.207-14.942-36.397 0-7.126 1.439-13.917 4.043-20.095l-0.128 0.341c2.695-6.333 6.42-11.732 11.019-16.244l0.007-0.007 238.25-239.265-238.25-238.54c-4.607-4.519-8.332-9.917-10.904-15.928l-0.123-0.323c-2.216-5.484-3.501-11.843-3.501-18.502 0-0.483 0.006-0.967 0.020-1.447l-0.002 0.071c0-0.079-0.001-0.172-0.001-0.266 0-7.227 1.439-14.118 4.047-20.401l-0.131 0.353c2.426-6.264 6.031-11.593 10.576-15.946l0.017-0.016 36.564-37.289z" />
<glyph unicode="arrow_skip_end" glyph-name="arrow-skip-end" d="M229.76 99.83c4.702-4.248 10.107-7.843 15.997-10.569l0.397-0.164c5.507-2.395 11.921-3.787 18.662-3.787 0.426 0 0.852 0.006 1.275 0.017l-0.062-0.002c0.047 0 0.102 0 0.156 0 7.141 0 13.921 1.549 20.021 4.331l-0.302-0.123c6.217 2.8 11.572 6.251 16.33 10.37l-0.083-0.070 311.025 311.897c4.641 4.638 8.371 10.184 10.905 16.35l0.12 0.333c2.477 5.93 3.917 12.819 3.917 20.044 0 0.094 0 0.187-0.001 0.279v-0.015c0 0.078 0.001 0.17 0.001 0.262 0 7.177-1.44 14.017-4.046 20.248l0.129-0.346c-2.617 6.511-6.353 12.065-11.021 16.678l-0.005 0.005-311.751 310.591c-4.539 4.573-9.931 8.291-15.918 10.898l-0.331 0.129c-5.488 2.22-11.852 3.508-18.518 3.508-0.579 0-1.155-0.009-1.729-0.028l0.084 0.003c-0.233 0.005-0.509 0.006-0.786 0.006-13.822 0-26.352-5.539-35.489-14.52l0.007 0.006-36.267-36.558c-4.407-4.602-7.985-10.041-10.465-16.049l-0.126-0.345c-2.647-5.948-4.187-12.889-4.187-20.189 0-13.973 5.645-26.63 14.778-35.81l-0.003 0.003 238.203-239.217-238.203-238.492c-4.607-4.517-8.33-9.915-10.902-15.924l-0.123-0.323c-2.215-5.506-3.497-11.891-3.497-18.575 0-0.458 0.006-0.912 0.017-1.366l-0.002 0.067c0-0.079-0.001-0.172-0.001-0.266 0-7.226 1.439-14.116 4.047-20.397l-0.13 0.353c2.373-6.284 5.984-11.622 10.569-15.938l0.021-0.019 36.558-37.283zM730.244 99.83h87.040c16.023 0 29.013 12.99 29.013 29.013v0 638.299c0 16.023-12.99 29.013-29.013 29.013v0h-87.040c-16.023 0-29.013-12.99-29.013-29.013v0-638.299c0-16.023 12.99-29.013 29.013-29.013v0z" />
<glyph unicode="arrow_skip_back" glyph-name="arrow-skip-back" d="M497.129 99.768c-4.641-4.289-10.005-7.889-15.872-10.582l-0.379-0.155c-5.848-2.66-12.683-4.209-19.878-4.209s-14.031 1.549-20.186 4.334l0.309-0.125c-6.287 2.892-11.694 6.487-16.451 10.788l0.056-0.051-311.959 312.104c-4.671 4.572-8.409 10.079-10.912 16.22l-0.116 0.322c-2.207 5.658-3.485 12.206-3.485 19.054 0 0.187 0.001 0.376 0.003 0.562v-0.028c0 0.078-0.001 0.17-0.001 0.262 0 7.178 1.44 14.021 4.046 20.253l-0.129-0.346c2.4 6.77 6.009 12.577 10.613 17.434l-0.020-0.022 312.685 310.653c9.35 9.237 22.207 14.942 36.397 14.942 7.126 0 13.917-1.439 20.095-4.043l-0.341 0.128c6.333-2.695 11.732-6.42 16.244-11.019l0.007-0.007 35.694-36.564c9.237-9.35 14.942-22.207 14.942-36.397 0-7.126-1.439-13.917-4.043-20.095l0.128 0.341c-2.695-6.333-6.42-11.732-11.019-16.244l-0.007-0.007-237.234-239.265 237.234-238.54c4.607-4.519 8.332-9.917 10.904-15.928l0.123-0.323c2.479-5.769 3.919-12.482 3.919-19.533 0-0.121-0.001-0.244-0.002-0.364v0.018c0-0.079 0.001-0.172 0.001-0.266 0-7.227-1.439-14.118-4.047-20.401l0.131 0.353c-2.552-6.29-6.299-11.62-10.995-15.931l-0.031-0.028-35.694-37.289zM873.512 99.768c-4.704-4.25-10.109-7.845-15.999-10.572l-0.397-0.165c-5.77-2.659-12.518-4.208-19.629-4.208-0.087 0-0.176 0-0.263 0.001h0.014c-0.047 0-0.102 0-0.156 0-7.143 0-13.923 1.549-20.025 4.331l0.302-0.123c-6.224 2.933-11.578 6.522-16.309 10.788l0.059-0.051-311.089 312.104c-4.671 4.572-8.409 10.079-10.912 16.22l-0.116 0.322c-2.479 5.965-3.918 12.896-3.918 20.161 0 0.053 0 0.108 0 0.162v-0.008c0 0.078-0.001 0.17-0.001 0.262 0 7.178 1.44 14.021 4.046 20.253l-0.129-0.346c2.617 6.512 6.355 12.067 11.023 16.681l0.005 0.005 311.815 310.653c4.54 4.573 9.933 8.291 15.92 10.9l0.331 0.129c5.488 2.22 11.854 3.509 18.522 3.509 0.579 0 1.155-0.009 1.731-0.028l-0.084 0.003c0.233 0.005 0.509 0.006 0.786 0.006 13.826 0 26.358-5.541 35.495-14.522l-0.007 0.006 36.275-36.564c9.237-9.35 14.942-22.207 14.942-36.397 0-7.126-1.439-13.917-4.043-20.095l0.128 0.341c-2.695-6.333-6.42-11.732-11.019-16.244l-0.007-0.007-238.25-239.265 238.25-238.54c4.607-4.519 8.332-9.917 10.904-15.928l0.123-0.323c2.216-5.484 3.501-11.843 3.501-18.502 0-0.483-0.006-0.967-0.020-1.447l0.002 0.071c0-0.079 0.001-0.172 0.001-0.266 0-7.227-1.439-14.118-4.047-20.401l0.131 0.353c-2.552-6.29-6.299-11.62-10.995-15.931l-0.031-0.028-36.13-37.289z" />
<glyph unicode="arrow_right" glyph-name="arrow-right" d="M963.754 468.992l-388.949 388.608c-5.491 5.46-13.061 8.836-21.419 8.836s-15.927-3.375-21.42-8.837l-62.463-62.121c-5.46-5.491-8.836-13.061-8.836-21.419s3.375-15.927 8.837-21.42l230.569-230.399h-621.909c0 0 0 0-0.001 0-14.644 0-26.527-11.823-26.623-26.444v-95.583c0-14.704 11.92-26.624 26.624-26.624h621.909l-230.4-230.4c-5.46-5.491-8.836-13.061-8.836-21.419s3.375-15.927 8.837-21.42l62.292-61.951c5.491-5.46 13.061-8.836 21.419-8.836s15.927 3.375 21.42 8.837l388.948 388.607c5.38 5.401 8.706 12.851 8.706 21.077s-3.326 15.677-8.707 21.078z" />
<glyph unicode="arrow_left" glyph-name="arrow-left" d="M59.905 468.992l388.949 388.608c5.491 5.46 13.061 8.836 21.419 8.836s15.927-3.375 21.42-8.837l62.463-62.463c5.46-5.491 8.836-13.061 8.836-21.419s-3.375-15.927-8.837-21.42l-229.887-230.057h621.227c0.203 0.006 0.443 0.009 0.683 0.009 14.647 0 26.532-11.828 26.623-26.453v-95.582c0-14.704-11.92-26.624-26.624-26.624h-621.909l230.4-230.4c5.46-5.491 8.836-13.061 8.836-21.419s-3.375-15.927-8.837-21.42l-62.975-61.951c-5.491-5.46-13.061-8.836-21.419-8.836s-15.927 3.375-21.42 8.837l-388.948 388.607c-5.38 5.401-8.706 12.851-8.706 21.077s3.326 15.677 8.707 21.078z" />
<glyph unicode="arrow_down" glyph-name="arrow-down" d="M532.993-3.924l388.949 388.949c5.46 5.491 8.836 13.061 8.836 21.419s-3.375 15.927-8.837 21.42l-62.463 62.463c-5.491 5.46-13.061 8.836-21.419 8.836s-15.927-3.375-21.42-8.837l-230.399-230.228v621.568c0.001 0.101 0.002 0.221 0.002 0.341 0 14.704-11.92 26.624-26.624 26.624-0.001 0-0.002 0-0.002 0h-95.403c-14.704 0-26.624-11.92-26.624-26.624v-621.909l-230.4 230.229c-5.491 5.46-13.061 8.836-21.419 8.836s-15.927-3.375-21.42-8.837l-62.292-62.463c-5.46-5.491-8.836-13.061-8.836-21.419s3.375-15.927 8.837-21.42l388.948-388.948c5.401-5.38 12.851-8.706 21.077-8.706s15.677 3.326 21.078 8.707z" />
<glyph unicode="archive" glyph-name="archive" d="M96 640h832c17.673 0 32-14.327 32-32v-544c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v544c0 17.673 14.327 32 32 32zM96 896h832c35.346 0 64-28.654 64-64v-96c0-17.673-14.327-32-32-32h-896c-17.673 0-32 14.327-32 32v96c0 35.346 28.654 64 64 64zM384 512c-35.346 0-64-28.654-64-64s28.654-64 64-64h256c35.346 0 64 28.654 64 64s-28.654 64-64 64h-256z" />
<glyph unicode="animation_video" glyph-name="animation-video" d="M952.182 832l0.031-0.002c39.701-0.323 71.788-33.5 71.788-74.38 0 0 0 0 0-0.002v-619.234c0-0.002 0-0.003 0-0.003 0-40.88-32.087-74.058-71.818-74.38h-879.809c-39.971 0-72.373 33.303-72.373 74.383v619.234c0 41.082 32.403 74.383 72.373 74.383h879.809zM128 736c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM352 736c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM576 736c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM800 736c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM128 288c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM352 288c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM576 288c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96zM800 288c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h96c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32h-96z" />
<glyph unicode="align_y_top" glyph-name="align-y-top" d="M64 832h896c35.346 0 64-28.654 64-64s-28.654-64-64-64h-896c-35.346 0-64 28.654-64 64s28.654 64 64 64zM320 576h384c35.346 0 64-28.654 64-64v-384c0-35.346-28.654-64-64-64h-384c-35.346 0-64 28.654-64 64v384c0 35.346 28.654 64 64 64z" />
<glyph unicode="align_y_center" glyph-name="align-y-center" d="M256 512v128c0 35.346 28.654 64 64 64h384c35.346 0 64-28.654 64-64v-128h192c35.346 0 64-28.654 64-64s-28.654-64-64-64h-192v-128c0-35.346-28.654-64-64-64h-384c-35.346 0-64 28.654-64 64v128h-192c-35.346 0-64 28.654-64 64s28.654 64 64 64h192z" />
<glyph unicode="align_y_bottom" glyph-name="align-y-bottom" d="M64 192h896c35.346 0 64-28.654 64-64s-28.654-64-64-64h-896c-35.346 0-64 28.654-64 64s28.654 64 64 64zM320 832h384c35.346 0 64-28.654 64-64v-384c0-35.346-28.654-64-64-64h-384c-35.346 0-64 28.654-64 64v384c0 35.346 28.654 64 64 64z" />
<glyph unicode="align_x_right" glyph-name="align-x-right" d="M832 960c35.346 0 64-28.654 64-64v-896c0-35.346-28.654-64-64-64s-64 28.654-64 64v896c0 35.346 28.654 64 64 64zM192 704h384c35.346 0 64-28.654 64-64v-384c0-35.346-28.654-64-64-64h-384c-35.346 0-64 28.654-64 64v384c0 35.346 28.654 64 64 64z" />
<glyph unicode="align_x_left" glyph-name="align-x-left" d="M448 704h384c35.346 0 64-28.654 64-64v-384c0-35.346-28.654-64-64-64h-384c-35.346 0-64 28.654-64 64v384c0 35.346 28.654 64 64 64zM192 960c35.346 0 64-28.654 64-64v-896c0-35.346-28.654-64-64-64s-64 28.654-64 64v896c0 35.346 28.654 64 64 64z" />
<glyph unicode="align_x_center" glyph-name="align-x-center" d="M576 704h128c35.346 0 64-28.654 64-64v-384c0-35.346-28.654-64-64-64h-128v-192c0-35.346-28.654-64-64-64s-64 28.654-64 64v192h-128c-35.346 0-64 28.654-64 64v384c0 35.346 28.654 64 64 64h128v192c0 35.346 28.654 64 64 64s64-28.654 64-64v-192z" />
<glyph unicode="align_right" glyph-name="align-right" d="M913.259 896h-802.667c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-0.045 0-0.097 0-0.149 0-24.165 19.59-43.755 43.755-43.755 0 0 0 0 0 0h802.667c24.165 0 43.755 19.59 43.755 43.755v40.469c0 24.165-19.59 43.755-43.755 43.755zM913.259 640.043h-586.432c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-24.165 19.59-43.755 43.755-43.755h586.432c24.165 0 43.755 19.59 43.755 43.755v40.32c0 24.165-19.59 43.755-43.755 43.755zM913.108 127.979h-714.859c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-0.045 0-0.097 0-0.149 0-24.165 19.59-43.755 43.755-43.755 0 0 0 0 0 0h714.859c24.165 0 43.755 19.59 43.755 43.755v0 40.32c0 24.165-19.59 43.755-43.755 43.755zM957.163 340.181c0 24.165-19.59 43.755-43.755 43.755h-498.923c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-24.165 19.59-43.755 43.755-43.755h498.773c24.165 0 43.755 19.59 43.755 43.755v0 40.32z" />
<glyph unicode="align_left" glyph-name="align-left" d="M913.333 896h-802.667c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-0.045 0-0.097 0-0.149 0-24.165 19.59-43.755 43.755-43.755 0 0 0 0 0 0h802.667c24.165 0 43.755 19.59 43.755 43.755v40.469c0 24.165-19.59 43.755-43.755 43.755zM110.667 512.213h586.432c24.165 0 43.755 19.59 43.755 43.755v40.32c0 24.165-19.59 43.755-43.755 43.755h-586.432c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-24.165 19.59-43.755 43.755-43.755zM825.675 127.979h-715.008c-24.165 0-43.755-19.59-43.755-43.755v-40.32c0-0.045 0-0.097 0-0.149 0-24.165 19.59-43.755 43.755-43.755 0 0 0 0 0 0h715.008c24.165 0 43.755 19.59 43.755 43.755v0 40.32c0 24.165-19.59 43.755-43.755 43.755zM110.667 255.957h498.923c24.165 0 43.755 19.59 43.755 43.755v0 40.32c0 24.165-19.59 43.755-43.755 43.755h-498.923c0 0 0 0 0 0-24.113 0-43.67-19.505-43.755-43.597v-40.327c0-24.165 19.59-43.755 43.755-43.755z" />
<glyph unicode="align_justify" glyph-name="align-justify" d="M915.2 896h-806.4c-24.743 0-44.8-20.057-44.8-44.8v-40.619c0-24.743 20.057-44.8 44.8-44.8h806.4c24.743 0 44.8 20.057 44.8 44.8v40.619c0 24.743-20.057 44.8-44.8 44.8zM915.2 639.744h-806.4c-24.743 0-44.8-20.057-44.8-44.8v-40.619c0-24.743 20.057-44.8 44.8-44.8h806.4c24.743 0 44.8 20.057 44.8 44.8v41.365c0 24.743-20.057 44.8-44.8 44.8zM915.2 384.235h-806.4c-24.743 0-44.8-20.057-44.8-44.8v-40.619c0-24.743 20.057-44.8 44.8-44.8h806.4c24.743 0 44.8 20.057 44.8 44.8v41.365c0 24.743-20.057 44.8-44.8 44.8zM915.2 128.725h-806.4c-24.743 0-44.8-20.057-44.8-44.8v-39.125c0-24.743 20.057-44.8 44.8-44.8h806.4c24.743 0 44.8 20.057 44.8 44.8v39.872c0 24.743-20.057 44.8-44.8 44.8z" />
<glyph unicode="align_center" glyph-name="align-center" d="M110.667 0h802.667c24.165 0 43.755 19.59 43.755 43.755v40.32c0 24.165-19.59 43.755-43.755 43.755h-802.667c0 0 0 0 0 0-24.113 0-43.67-19.505-43.755-43.597v-40.327c0-0.045 0-0.097 0-0.149 0-24.165 19.59-43.755 43.755-43.755 0 0 0 0 0 0zM175.029 340.181v0-40.32c0-24.165 19.59-43.755 43.755-43.755h586.432c24.165 0 43.755 19.59 43.755 43.755v40.32c0 24.165-19.59 43.755-43.755 43.755h-586.432c-24.165 0-43.755-19.59-43.755-43.755zM154.72 768.021h714.859c24.165 0 43.755 19.59 43.755 43.755v40.469c0 24.165-19.59 43.755-43.755 43.755h-714.859c-0.045 0-0.097 0-0.149 0-24.165 0-43.755-19.59-43.755-43.755 0 0 0 0 0 0v0-40.32c0-0.045 0-0.097 0-0.149 0-24.165 19.59-43.755 43.755-43.755 0.052 0 0.105 0 0.158 0zM218.784 555.819c0-24.165 19.59-43.755 43.755-43.755h498.923c24.165 0 43.755 19.59 43.755 43.755v40.32c0 24.165-19.59 43.755-43.755 43.755h-498.773c-24.165 0-43.755-19.59-43.755-43.755v0-40.32z" />
<glyph unicode="add_playlist" glyph-name="add-playlist" horiz-adv-x="964" d="M783.059 329.412c33.267 0 60.235-26.968 60.235-60.235v-60.235h60.235c33.267 0 60.235-26.968 60.235-60.235s-26.968-60.235-60.235-60.235h-60.235v-60.235c0-33.267-26.968-60.235-60.235-60.235s-60.235 26.968-60.235 60.235v60.235h-60.235c-33.267 0-60.235 26.968-60.235 60.235s26.968 60.235 60.235 60.235h60.235v60.235c0 33.267 26.968 60.235 60.235 60.235zM481.882 269.176c33.25 0 60.235-26.925 60.235-60.235s-26.985-60.235-60.235-60.235h-421.647c-33.25 0-60.235 26.925-60.235 60.235s26.985 60.235 60.235 60.235h421.647zM722.824 510.118c33.31 0 60.235-26.985 60.235-60.235s-26.925-60.235-60.235-60.235h-662.588c-33.25 0-60.235 26.985-60.235 60.235s26.985 60.235 60.235 60.235h662.588zM722.824 751.059c33.31 0 60.235-26.985 60.235-60.235s-26.925-60.235-60.235-60.235h-662.588c-33.25 0-60.235 26.985-60.235 60.235s26.985 60.235 60.235 60.235h662.588z" />
<glyph unicode="academy" glyph-name="academy" d="M487.166 82.894c-66.404 0-348.164 62.974-348.164 189.082v141.312l337.148-136.549c3.235-1.348 6.993-2.133 10.938-2.133s7.704 0.783 11.127 2.201l333.233 134.943 3.724-1.843v-138.239c0-126.104-281.604-189.082-348.010-189.082l0.004 0.308zM1023.687 64l-65.319 78.49-65.474-78.49v363.569c0 3.379 0 16.742 0 16.742l-183.391 92.159 314.497-69.12-0.313-403.351zM949.057 520.96l-358.248 69.58c-4.658 0.072-7.647-2.885-7.647-6.532 0-2.16 1.045-4.075 2.665-5.281l193.028-126.732-291.689-118.119-439.014 177.883c-39.341 15.941-58.311 60.755-42.371 100.097 7.812 19.28 23.105 34.569 42.386 42.377l438.999 177.767 461.854-187.022c34.251-13.869 50.773-52.879 36.904-87.129-6.793-16.777-20.094-30.085-36.867-36.889z" />
</font></defs></svg>

After

Width:  |  Height:  |  Size: 336 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 692 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 776 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 655 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="15px" viewBox="0 0 18 15" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 41.2 (35397) - http://www.bohemiancoding.com/sketch -->
<title>folder-closed</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Folder-22px-Solid-3-Closed" fill="#888888">
<path d="M0,1 C0,0.44771525 0.45303631,0 0.99703014,0 L7.00296986,0 C7.5536144,0 8,0.44386482 8,1 L8,2 L0,2 L0,1 Z M0,3 L18,3 L18,15 L0,15 L0,3 Z" id="folder-closed"></path>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 713 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

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