From d091c46f22a73b5d32a29c995988b5cb282c8bd1 Mon Sep 17 00:00:00 2001 From: Zbynek Konecny Date: Sun, 15 Jun 2025 21:20:08 +0200 Subject: [PATCH 1/2] Merge repositories --- .gitignore | 10 +- Gruntfile.js => content/Gruntfile.js | 0 content/package-lock.json | 5173 +++++++++++++++++ package.json => content/package.json | 0 content/pom.xml | 231 + .../src}/main/assembly/generated-site.xml | 0 .../google/gwt/site/markdown/MDHelper.java | 0 .../gwt/site/markdown/MDHelperException.java | 0 .../gwt/site/markdown/MDTranslator.java | 0 .../google/gwt/site/markdown/MarkDown.java | 0 .../gwt/site/markdown/MarkupWriter.java | 0 .../site/markdown/TranslatorException.java | 0 .../com/google/gwt/site/markdown/Util.java | 0 .../site/markdown/fs/FileSystemTraverser.java | 0 .../google/gwt/site/markdown/fs/MDNode.java | 0 .../google/gwt/site/markdown/fs/MDParent.java | 0 .../gwt/site/markdown/toc/TocCreator.java | 0 .../site/markdown/toc/TocFromMdCreator.java | 0 .../markdown/toc/TocFromTemplateCreator.java | 0 .../src}/main/markdown/GWTPolicy.md | 0 .../src}/main/markdown/articles/articles.md | 0 .../src}/main/markdown/articles/config.xml | 0 .../dom_events_memory_leaks_and_you.md | 0 .../markdown/articles/dynamic_host_page.md | 0 .../src}/main/markdown/articles/elemental.md | 0 .../markdown/articles/fragment_merging.md | 0 .../main/markdown/articles/gss_migration.md | 0 .../src}/main/markdown/articles/gwt-iphone.md | 0 .../markdown/articles/mvp-architecture-2.md | 0 .../markdown/articles/mvp-architecture.md | 0 .../articles/security_for_gwt_applications.md | 0 .../main/markdown/articles/superdevmode.md | 0 .../testing_methodologies_using_gwt.md | 0 .../articles/using_gwt_for_json_mashups.md | 0 .../articles/using_gwt_with_hibernate.md | 0 .../src}/main/markdown/benchmarks.md | 0 {src => content/src}/main/markdown/books.md | 0 .../src}/main/markdown/casestudies.md | 0 .../main/markdown/community-group-charter.md | 0 .../src}/main/markdown/community.md | 0 {src => content/src}/main/markdown/config.xml | 0 .../src}/main/markdown/developer_spotlight.md | 0 .../src}/main/markdown/doc/config.xml | 0 .../src}/main/markdown/doc/latest/DevGuide.md | 0 .../main/markdown/doc/latest/DevGuideA11y.md | 0 .../markdown/doc/latest/DevGuideAutoBeans.md | 0 .../doc/latest/DevGuideClientBundle.md | 0 .../doc/latest/DevGuideCodeSplitting.md | 0 .../doc/latest/DevGuideCodingBasics.md | 0 .../doc/latest/DevGuideCodingBasicsClient.md | 0 .../DevGuideCodingBasicsCompatibility.md | 0 .../latest/DevGuideCodingBasicsDeferred.md | 0 .../doc/latest/DevGuideCodingBasicsDelayed.md | 0 .../latest/DevGuideCodingBasicsFormatting.md | 0 .../doc/latest/DevGuideCodingBasicsHistory.md | 0 .../doc/latest/DevGuideCodingBasicsJSNI.md | 0 .../doc/latest/DevGuideCodingBasicsJSON.md | 0 .../latest/DevGuideCodingBasicsJsInterop.md | 0 .../doc/latest/DevGuideCodingBasicsOverlay.md | 0 .../doc/latest/DevGuideCodingBasicsXML.md | 0 .../doc/latest/DevGuideCompileReport.md | 0 .../latest/DevGuideCompilingAndDebugging.md | 0 .../markdown/doc/latest/DevGuideDeploying.md | 0 .../markdown/doc/latest/DevGuideGlossary.md | 0 .../markdown/doc/latest/DevGuideGssVsCss.md | 0 .../main/markdown/doc/latest/DevGuideHtml5.md | 0 .../doc/latest/DevGuideHtml5Storage.md | 0 .../main/markdown/doc/latest/DevGuideI18n.md | 0 .../doc/latest/DevGuideI18nConstants.md | 0 .../markdown/doc/latest/DevGuideI18nLocale.md | 0 .../doc/latest/DevGuideI18nMessages.md | 0 .../doc/latest/DevGuideI18nPluralForms.md | 0 .../main/markdown/doc/latest/DevGuideIE9.md | 0 .../doc/latest/DevGuideLightweightMetrics.md | 0 .../markdown/doc/latest/DevGuideLinkers.md | 0 .../markdown/doc/latest/DevGuideLogging.md | 0 .../latest/DevGuideMvpActivitiesAndPlaces.md | 0 .../markdown/doc/latest/DevGuideOptimizing.md | 0 .../doc/latest/DevGuideOrganizingProjects.md | 0 .../doc/latest/DevGuideRequestFactory.md | 0 .../markdown/doc/latest/DevGuideSecurity.md | 0 .../doc/latest/DevGuideSecurityRpcXsrf.md | 0 .../doc/latest/DevGuideSecuritySafeHtml.md | 0 .../doc/latest/DevGuideServerCommunication.md | 0 .../markdown/doc/latest/DevGuideTesting.md | 0 .../doc/latest/DevGuideTestingCoverage.md | 0 .../doc/latest/DevGuideTestingHtmlUnit.md | 0 .../latest/DevGuideTestingRemoteTesting.md | 0 .../main/markdown/doc/latest/DevGuideUi.md | 0 .../markdown/doc/latest/DevGuideUiBinder.md | 0 .../doc/latest/DevGuideUiBinderI18n.md | 0 .../markdown/doc/latest/DevGuideUiBrowser.md | 0 .../doc/latest/DevGuideUiCellTable.md | 0 .../doc/latest/DevGuideUiCellWidgets.md | 0 .../main/markdown/doc/latest/DevGuideUiCss.md | 0 .../doc/latest/DevGuideUiCustomCells.md | 0 .../doc/latest/DevGuideUiCustomWidgets.md | 0 .../main/markdown/doc/latest/DevGuideUiDom.md | 0 .../markdown/doc/latest/DevGuideUiEditors.md | 0 .../markdown/doc/latest/DevGuideUiHandlers.md | 0 .../doc/latest/DevGuideUiImageBundles.md | 0 .../markdown/doc/latest/DevGuideUiPanels.md | 0 .../markdown/doc/latest/DevGuideUiWidgets.md | 0 .../markdown/doc/latest/DevGuideValidation.md | 0 .../src}/main/markdown/doc/latest/FAQ.md | 0 .../main/markdown/doc/latest/FAQ_Client.md | 0 .../doc/latest/FAQ_DebuggingAndCompiling.md | 0 .../markdown/doc/latest/FAQ_GettingStarted.md | 0 .../main/markdown/doc/latest/FAQ_Server.md | 0 .../doc/latest/FAQ_Troubleshooting.md | 0 .../src}/main/markdown/doc/latest/FAQ_UI.md | 0 .../doc/latest/RefCommandLineTools.md | 0 .../markdown/doc/latest/RefGWTClassAPI.md | 0 .../src}/main/markdown/doc/latest/RefGuide.md | 0 .../markdown/doc/latest/RefJreEmulation.md | 0 .../markdown/doc/latest/RefWidgetGallery.md | 0 .../main/markdown/doc/latest/ReleaseNotes.md | 0 .../src}/main/markdown/doc/latest/config.xml | 0 .../doc/latest/polymer-tutorial/create.md | 0 .../polymer-tutorial/elements-applogic.md | 0 .../polymer-tutorial/elements-buildui.md | 0 .../latest/polymer-tutorial/introduction.md | 0 .../polymer-tutorial/widgets-applogic.md | 0 .../polymer-tutorial/widgets-buildui.md | 0 .../main/markdown/doc/latest/tutorial/JSON.md | 0 .../markdown/doc/latest/tutorial/JSONphp.md | 0 .../markdown/doc/latest/tutorial/JUnit.md | 0 .../main/markdown/doc/latest/tutorial/RPC.md | 0 .../markdown/doc/latest/tutorial/Xsite.md | 0 .../markdown/doc/latest/tutorial/appengine.md | 0 .../markdown/doc/latest/tutorial/buildui.md | 0 .../doc/latest/tutorial/clientserver.md | 0 .../doc/latest/tutorial/codeclient.md | 0 .../markdown/doc/latest/tutorial/compile.md | 0 .../markdown/doc/latest/tutorial/config.xml | 0 .../markdown/doc/latest/tutorial/create.md | 0 .../markdown/doc/latest/tutorial/debug.md | 0 .../markdown/doc/latest/tutorial/design.md | 0 .../doc/latest/tutorial/gettingstarted.md | 0 .../main/markdown/doc/latest/tutorial/i18n.md | 0 .../markdown/doc/latest/tutorial/index.md | 0 .../doc/latest/tutorial/manageevents.md | 0 .../markdown/doc/latest/tutorial/style.md | 0 .../src}/main/markdown/download.md | 0 .../src}/main/markdown/examples.md | 0 .../src}/main/markdown/gettingstarted-v2.md | 0 .../src}/main/markdown/gettingstarted.md | 0 {src => content/src}/main/markdown/index.md | 0 .../src}/main/markdown/learnmore-sdk.md | 0 .../src}/main/markdown/lifeofanissue.md | 0 .../src}/main/markdown/makinggwtbetter.md | 0 .../src}/main/markdown/meetingnotes.md | 0 .../main/markdown/meetingnotes/2015-02-11.md | 0 .../main/markdown/meetingnotes/2015-06-17.md | 0 .../main/markdown/meetingnotes/2015-08-19.md | 0 .../main/markdown/meetingnotes/2015-10-28.md | 0 .../main/markdown/meetingnotes/2016-01-10.md | 0 .../main/markdown/meetingnotes/2016-02-10.md | 0 .../main/markdown/meetingnotes/2016-04-13.md | 0 .../main/markdown/meetingnotes/2016-07-20.md | 0 .../main/markdown/meetingnotes/2017-01-11.md | 0 .../main/markdown/meetingnotes/2017-02-08.md | 0 .../main/markdown/meetingnotes/2017-03-08.md | 0 .../main/markdown/meetingnotes/2017-04-12.md | 0 .../main/markdown/meetingnotes/2017-05-10.md | 0 .../src}/main/markdown/overview.md | 0 .../src}/main/markdown/presentations.md | 0 {src => content/src}/main/markdown/privacy.md | 0 .../src}/main/markdown/release-notes.md | 0 .../src}/main/markdown/resources.md | 0 {src => content/src}/main/markdown/roadmap.md | 0 .../src}/main/markdown/steering.md | 0 {src => content/src}/main/markdown/terms.md | 0 .../src}/main/markdown/usingeclipse.md | 0 .../src}/main/markdown/usingintellij.md | 0 .../src}/main/markdown/versions.md | 0 .../src}/main/markdown/whos_using_gwt.md | 0 {src => content/src}/main/resources/main.tpl | 0 {src => content/src}/main/resources/toc.md | 0 .../src}/main/site/articles/index.html | 0 .../site/assets/build/fonts/icons/icons.css | 0 .../site/assets/build/fonts/icons/icons.eot | Bin .../site/assets/build/fonts/icons/icons.svg | 0 .../site/assets/build/fonts/icons/icons.ttf | Bin .../site/assets/build/fonts/icons/icons.woff | Bin .../site/assets/build/fonts/icons/icons.woff2 | Bin .../build/js/vendor/jquery-1.11.0.min.js | 0 .../assets/build/js/vendor/jquery.flexnav.js | 0 .../build/js/vendor/jquery.flexnav.min.js | 0 .../build/js/vendor/modernizr-2.6.2.min.js | 0 .../img/apple-touch-icon-precomposed.png | Bin .../src}/main/site/assets/img/logoBig.png | Bin .../src}/main/site/assets/img/navLogoBig.png | Bin .../main/site/assets/img/navLogoSmall.png | Bin .../src}/main/site/assets/js/global.js | 0 .../src}/main/site/assets/less/colors.less | 0 .../src}/main/site/assets/less/flexnav.less | 0 .../src}/main/site/assets/less/functions.less | 0 .../src}/main/site/assets/less/grid.less | 0 .../src}/main/site/assets/less/layout.less | 0 .../src}/main/site/assets/less/normalize.less | 0 .../src}/main/site/assets/less/print.less | 0 .../src}/main/site/assets/less/style.less | 0 .../src}/main/site/css/jenkins-theme.css | 0 {src => content/src}/main/site/css/main.css | 0 {src => content/src}/main/site/doc/index.html | 0 .../doc/latest/images/AnatomyOfServices.png | Bin .../main/site/doc/latest/images/Button.png | Bin .../site/doc/latest/images/CellBrowser.png | Bin .../main/site/doc/latest/images/CellList.png | Bin .../main/site/doc/latest/images/CheckBox.png | Bin .../latest/images/CodeSplittingFragments.odg | Bin .../latest/images/CodeSplittingFragments.png | Bin .../latest/images/CustomCells-BasicRender.png | Bin .../images/CustomCells-HandlingEvents.png | Bin .../site/doc/latest/images/DatePicker.png | Bin .../DevGuideDirectoriesPackageConventions.png | Bin .../site/doc/latest/images/DevModeCollage.png | Bin .../site/doc/latest/images/DevModeTypical.jpg | Bin .../doc/latest/images/DevelopmentShell1.png | Bin .../doc/latest/images/DevelopmentShell2.png | Bin .../doc/latest/images/DevelopmentShell3.png | Bin .../doc/latest/images/DevelopmentShell4.png | Bin .../main/site/doc/latest/images/DialogBox.png | Bin .../doc/latest/images/DisclosurePanel.png | Bin .../doc/latest/images/DockLayoutPanel.png | Bin .../main/site/doc/latest/images/DockPanel.png | Bin .../doc/latest/images/DockPanel_Showcase.png | Bin .../site/doc/latest/images/FAQ_UILayout1.png | Bin .../site/doc/latest/images/FAQ_UILayout2.png | Bin .../site/doc/latest/images/FAQ_UILayout3.png | Bin .../site/doc/latest/images/FAQ_UILayout4.png | Bin .../main/site/doc/latest/images/FlowPanel.png | Bin .../images/GettingUsedToAsyncCalls1.png | Bin .../images/GettingUsedToAsyncCalls2.png | Bin .../site/doc/latest/images/HTML5_Badge_64.png | Bin .../site/doc/latest/images/HelloWorld.png | Bin .../doc/latest/images/HorizontalPanel.png | Bin .../images/HorizontalPanel_Showcase.png | Bin .../latest/images/HorizontalSplitPanel.png | Bin .../images/HorizontalSplitPanel_Showcase.png | Bin .../site/doc/latest/images/HostedMode1.png | Bin .../main/site/doc/latest/images/Hyperlink.png | Bin .../site/doc/latest/images/LayoutPanel.png | Bin .../main/site/doc/latest/images/ListBox.png | Bin .../site/doc/latest/images/LoggingExample.png | Bin .../main/site/doc/latest/images/MenuBar.png | Bin .../doc/latest/images/PasswordTextBox.png | Bin .../site/doc/latest/images/PopupPanel.png | Bin .../site/doc/latest/images/PushButton.png | Bin .../site/doc/latest/images/RadioButton.png | Bin .../latest/images/RichTextArea-clipped.png | Bin .../site/doc/latest/images/RichTextArea.png | Bin .../images/SplitLayoutPanel-gallery.png | Bin .../doc/latest/images/SplitLayoutPanel.png | Bin .../doc/latest/images/StackLayoutPanel.png | Bin .../site/doc/latest/images/StackPanel.png | Bin .../site/doc/latest/images/SuggestBox.png | Bin .../main/site/doc/latest/images/TabBar.png | Bin .../site/doc/latest/images/TabLayoutPanel.png | Bin .../main/site/doc/latest/images/TabPanel.png | Bin .../doc/latest/images/TabPanel_Showcase.png | Bin .../main/site/doc/latest/images/Table.png | Bin .../doc/latest/images/TestCoverageFinal.jpg | Bin .../doc/latest/images/TestCoverageInitial.jpg | Bin .../main/site/doc/latest/images/TextArea.png | Bin .../main/site/doc/latest/images/TextBox.png | Bin .../site/doc/latest/images/ToggleButton.png | Bin .../src}/main/site/doc/latest/images/Tree.png | Bin .../images/UnresponsiveScriptDialog.png | Bin .../latest/images/ValidationScreenshot.png | Bin .../site/doc/latest/images/VerticalPanel.png | Bin .../doc/latest/images/VerticalSplitPanel.png | Bin .../images/VerticalSplitPanel_Showcase.png | Bin .../main/site/doc/latest/images/WebMode1.png | Bin .../doc/latest/images/appengine_lowres.png | Bin .../main/site/doc/latest/images/apps_mp.png | Bin .../images/compileReport-Dependencies.gif | Bin .../compileReport-InitialDownloadExample.gif | Bin .../latest/images/compileReport-Overview.gif | Bin .../images/compileReport-PackageBreakdown.gif | Bin .../compileReport-PermutationOverview.gif | Bin .../images/compileReport-splitPointStatus.gif | Bin .../site/doc/latest/images/google-plugin.png | Bin .../main/site/doc/latest/images/gph_logo.png | Bin .../site/doc/latest/images/icon_android.jpg | Bin .../site/doc/latest/images/localStorage.png | Bin .../src}/main/site/doc/latest/index.html | 0 .../polymer-tutorial/images/todo-list-01.png | Bin .../polymer-tutorial/images/todo-list-02.png | Bin .../polymer-tutorial/images/todo-list-03.png | Bin .../polymer-tutorial/images/todo-list-04.png | Bin .../polymer-tutorial/images/todo-list-05.png | Bin .../polymer-tutorial/images/todo-list-06.png | Bin .../polymer-tutorial/images/todo-list-07.png | Bin .../polymer-tutorial/images/todo-list-08.png | Bin .../tutorial/gettingstarted/StockWatcher.css | 0 .../tutorial/gettingstarted/StockWatcher.html | 0 .../tutorial/gettingstarted/images/gwt.png | Bin .../2293D04F6B35190160A90C78400C3926.cache.js | 0 .../gwt/standard/images/hborder.png | Bin .../stockwatcher/gwt/standard/standard.css | 0 .../stockwatcher/stockwatcher.nocache.js | 0 .../tutorial/images/AnatomyOfServices.png | Bin .../doc/latest/tutorial/images/BuildUI.png | Bin .../tutorial/images/CodeClientAddStock.png | Bin .../latest/tutorial/images/CodeClientBug.png | Bin .../images/CodeClientNewJavaClass.jpg | Bin .../tutorial/images/CreateEclipseImport.jpg | Bin .../tutorial/images/CreateGWTComponents.jpg | Bin .../images/CreateStarterApplication.png | Bin .../tutorial/images/DebugVariablesBug.png | Bin .../images/DeployAppEngineProject.png | Bin .../images/DesignStockWatcherFinal.png | Bin .../tutorial/images/DevModeNoEclipse.png | Bin .../doc/latest/tutorial/images/DevModeTab.png | Bin .../tutorial/images/GWTCompileProject.png | Bin .../doc/latest/tutorial/images/JSONdata.png | Bin .../tutorial/images/JSONerrormessage.png | Bin .../tutorial/images/JSONstockPricesphp.png | Bin .../latest/tutorial/images/JUnitFailed.png | Bin .../tutorial/images/JUnitSimpleTestDev.png | Bin .../tutorial/images/JUnitcreatetest.png | Bin .../latest/tutorial/images/ManageEvents.png | Bin .../latest/tutorial/images/MissingPlugin.png | Bin .../images/NewWebApplicationProject.png | Bin .../tutorial/images/RPCerrormessage.png | Bin .../tutorial/images/StockWatcherUIpanel1.jpg | Bin .../tutorial/images/StockWatcherUIpanel2.jpg | Bin .../tutorial/images/StockWatcherUIpanel3.jpg | Bin .../tutorial/images/StockWatcherUIpanel4.jpg | Bin .../doc/latest/tutorial/images/StyleAfter.png | Bin .../latest/tutorial/images/StyleBefore.png | Bin .../latest/tutorial/images/StyleSecondary.png | Bin .../latest/tutorial/images/i18nEnglish.png | Bin .../doc/latest/tutorial/images/i18nGerman.png | Bin .../tutorial/images/spring-dashboard.png | Bin .../tutorial/images/spring-databrowser.png | Bin .../tutorial/images/spring-devserver.png | Bin .../tutorial/images/spring-extensions.png | Bin .../latest/tutorial/images/spring-package.png | Bin .../tutorial/images/spring-projects.png | Bin .../latest/tutorial/images/spring-prompt.png | Bin .../tutorial/images/spring-roo-shell.png | Bin .../latest/tutorial/images/spring-runas.png | Bin .../main/site/doctype/2.10.0/gwt-module.dtd | 0 .../main/site/doctype/2.11.0/gwt-module.dtd | 0 .../main/site/doctype/2.12.0/gwt-module.dtd | 0 .../main/site/doctype/2.12.1/gwt-module.dtd | 0 .../main/site/doctype/2.12.2/gwt-module.dtd | 0 .../main/site/doctype/2.4.0/gwt-module.dtd | 0 .../main/site/doctype/2.5.0/gwt-module.dtd | 0 .../main/site/doctype/2.5.1/gwt-module.dtd | 0 .../main/site/doctype/2.6.0/gwt-module.dtd | 0 .../main/site/doctype/2.6.1/gwt-module.dtd | 0 .../main/site/doctype/2.7.0/gwt-module.dtd | 0 .../main/site/doctype/2.8.0/gwt-module.dtd | 0 .../main/site/doctype/2.8.1/gwt-module.dtd | 0 .../main/site/doctype/2.8.2/gwt-module.dtd | 0 .../main/site/doctype/2.9.0/gwt-module.dtd | 0 .../src}/main/site/images/I18N.jpg | Bin .../main/site/images/app_gal_blueprint.png | Bin .../site/images/app_gal_contactoffice.png | Bin .../main/site/images/app_gal_dotemplate.jpg | Bin .../src}/main/site/images/app_gal_gogrid.png | Bin .../main/site/images/app_gal_iphonereader.png | Bin .../src}/main/site/images/app_gal_kaching.png | Bin .../src}/main/site/images/app_gal_queweb.png | Bin .../main/site/images/app_gal_riflethru.png | Bin .../site/images/app_gal_scenechronize.png | Bin .../main/site/images/app_gal_studyblue.png | Bin .../main/site/images/app_gal_typeracer.png | Bin .../src}/main/site/images/app_gal_venda.png | Bin .../src}/main/site/images/app_gal_whirled.png | Bin .../src}/main/site/images/arrow-48.png | Bin .../src}/main/site/images/arrow-closed.png | Bin .../src}/main/site/images/arrow-md.png | Bin .../src}/main/site/images/arrow-open.png | Bin .../src}/main/site/images/bookedin.png | Bin ...ith_Ext_GWT_Enterprise_RIA_Development.png | Bin ..._for_the_Web_with_Google_Web_Toolkit_2.jpg | Bin ...GWT_Rich_Internet_Application_Cookbook.jpg | Bin .../books/Ext_GWT_20_Beginners_Guide.jpg | Bin .../site/images/books/GWT_in_Practice.jpg | Bin ...e_Java_and_GWT_Application_Development.jpg | Bin ...kit_2_Application_Development_Cookbook.jpg | Bin .../Google_Web_Toolkit_Applications.jpeg | Bin ..._Web_Toolkit_GWT_Java_AJAX_Programming.jpg | Bin ...s_Digital_Short_Cut_Cool_Useful_Stuff.jpeg | Bin ...lkit_Solutions_More_Cool_Useful_Stuff.jpeg | Bin ...eb_Toolkit_Taking_the_Pain_Out_of_Ajax.jpg | Bin .../site/images/books/Vaadin_7_Cookbook.jpg | Bin .../main/site/images/books/Vaadin_Recipes.jpg | Bin .../main/site/images/books/gwt_in_action.jpg | Bin .../books/gwt_in_action_second_edition.jpg | Bin .../site/images/books/learning_vaddin.jpg | Bin .../src}/main/site/images/cloudorado.png | Bin .../src}/main/site/images/community.gif | Bin .../main/site/images/contact-list-view.png | Bin .../contacts-project-hierarchy-testing.png | Bin .../images/contacts-project-hierarchy.png | Bin .../site/images/data_presentation_widgets.png | Bin .../main/site/images/dev_gal_blueprint.jpg | Bin .../src}/main/site/images/dev_gal_gogrid.jpg | Bin .../site/images/dev_gal_scenechronize.jpg | Bin .../src}/main/site/images/dev_gal_whirled.jpg | Bin .../src}/main/site/images/docs.gif | Bin .../src}/main/site/images/down.png | Bin .../src}/main/site/images/dynamictable.jpg | Bin .../eclipse/eclipse-install-options.png | Bin .../main/site/images/eclipse/web-app-src.png | Bin .../site/images/eclipse/web-app-wizard.png | Bin .../src}/main/site/images/favicon.png | Bin .../src}/main/site/images/flow1-sm.png | Bin .../src}/main/site/images/flow2-sm.png | Bin .../src}/main/site/images/flow3-sm.png | Bin .../src}/main/site/images/flow4-sm.png | Bin .../site/images/fragment_merging_after.jpg | Bin .../site/images/fragment_merging_before.jpg | Bin .../src}/main/site/images/gaestudio.png | Bin .../src}/main/site/images/gilead_diagram.png | Bin .../site/images/gitter-logo-mark-white.png | Bin .../src}/main/site/images/go_grid.jpg | Bin .../main/site/images/gwt-architecture.png | Bin .../src}/main/site/images/gwt-logo.png | Bin .../src}/main/site/images/gwt-sm.png | Bin .../src}/main/site/images/gwtdesigner.png | Bin .../images/gwtproject.org-2015-banner@2x.png | Bin .../src}/main/site/images/helloworld.jpg | Bin .../site/images/hosted_hibernate_error.png | Bin .../main/site/images/import-into-intellij.png | Bin .../src}/main/site/images/inbox.png | Bin .../main/site/images/intellij-project.png | Bin .../site/images/intellij-run-code-server.png | Bin .../main/site/images/intellij-run-server.png | Bin .../src}/main/site/images/jsonrpc.jpg | Bin .../src}/main/site/images/kicthensink.jpg | Bin .../src}/main/site/images/kitchensink.jpg | Bin .../src}/main/site/images/learnmore.gif | Bin .../src}/main/site/images/logo-wire.png | Bin .../main/site/images/lombardi_blueprint.jpg | Bin .../src}/main/site/images/mail.jpg | Bin .../src}/main/site/images/mvp_diagram.png | Bin .../site/images/myapplication-browser.png | Bin .../site/images/myapplication-devmode.png | Bin .../images/myapplication-missing-plugin.png | Bin .../src}/main/site/images/mywebapp.png | Bin .../src}/main/site/images/newwindow.gif | Bin .../src}/main/site/images/noscreenshot.jpg | Bin .../src}/main/site/images/ruxit.png | Bin .../src}/main/site/images/scenechronize.jpg | Bin .../src}/main/site/images/sdk-sm.png | Bin .../site/images/sdm-debugger-breakpoint.png | Bin .../src}/main/site/images/sdm-debugger.png | Bin .../src}/main/site/images/showcase.jpg | Bin .../main/site/images/speedtracer-large.png | Bin .../src}/main/site/images/spring_logo.png | Bin .../src}/main/site/images/st_server_trace.png | Bin .../src}/main/site/images/sticky.png | Bin .../src}/main/site/images/sts_dashboard.png | Bin .../main/site/images/superdevmode_dialog.png | Bin .../images/superdevmode_enablesourcemaps.png | Bin .../site/images/testing_methodologies_mvc.png | Bin .../site/images/testing_methodologies_mvp.png | Bin .../testing_methodologies_object_diagram.png | Bin .../testing_methodologies_screenshot.png | Bin .../src}/main/site/images/war_output_dir.png | Bin .../src}/main/site/images/wave.jpg | Bin .../src}/main/site/images/whirled.jpg | Bin {src => content/src}/main/site/index.html | 0 .../main/site/missing-plugin/download.gif | Bin .../src}/main/site/missing-plugin/index.html | 0 .../main/site/missing-plugin/unsupported.gif | Bin .../gwt/site/markdown/MDTranslatorTest.java | 0 pom.xml | Bin 7370 -> 1054 bytes web-app/pom.xml | 197 + .../webapp/client/GWTProjectEntryPoint.java | 525 ++ .../webapp/client/highlight/JsHighlight.java | 41 + .../webapp/client/highlight/highlight.pack.js | 1306 +++++ .../gwt/site/webapp/client/highlight/idea.css | 111 + web-app/src/main/module.gwt.xml | 18 + web-app/src/main/webapp/gwt.html | 14 + web-app/src/main/webapp/images/gwt-logo.png | Bin 0 -> 103265 bytes .../com/google/gwt/site/webapp/Test.gwt.xml | 4 + .../client/ProjectEntryPointGwtTest.java | 21 + .../webapp/client/ProjectEntryPointTest.java | 61 + 486 files changed, 7707 insertions(+), 5 deletions(-) rename Gruntfile.js => content/Gruntfile.js (100%) create mode 100644 content/package-lock.json rename package.json => content/package.json (100%) create mode 100644 content/pom.xml rename {src => content/src}/main/assembly/generated-site.xml (100%) rename {src => content/src}/main/java/com/google/gwt/site/markdown/MDHelper.java (100%) rename {src => content/src}/main/java/com/google/gwt/site/markdown/MDHelperException.java (100%) rename {src => content/src}/main/java/com/google/gwt/site/markdown/MDTranslator.java (100%) rename {src => content/src}/main/java/com/google/gwt/site/markdown/MarkDown.java (100%) rename {src => content/src}/main/java/com/google/gwt/site/markdown/MarkupWriter.java (100%) rename {src => content/src}/main/java/com/google/gwt/site/markdown/TranslatorException.java (100%) rename {src => content/src}/main/java/com/google/gwt/site/markdown/Util.java (100%) rename {src => content/src}/main/java/com/google/gwt/site/markdown/fs/FileSystemTraverser.java (100%) rename {src => content/src}/main/java/com/google/gwt/site/markdown/fs/MDNode.java (100%) rename {src => content/src}/main/java/com/google/gwt/site/markdown/fs/MDParent.java (100%) rename {src => content/src}/main/java/com/google/gwt/site/markdown/toc/TocCreator.java (100%) rename {src => content/src}/main/java/com/google/gwt/site/markdown/toc/TocFromMdCreator.java (100%) rename {src => content/src}/main/java/com/google/gwt/site/markdown/toc/TocFromTemplateCreator.java (100%) rename {src => content/src}/main/markdown/GWTPolicy.md (100%) rename {src => content/src}/main/markdown/articles/articles.md (100%) rename {src => content/src}/main/markdown/articles/config.xml (100%) rename {src => content/src}/main/markdown/articles/dom_events_memory_leaks_and_you.md (100%) rename {src => content/src}/main/markdown/articles/dynamic_host_page.md (100%) rename {src => content/src}/main/markdown/articles/elemental.md (100%) rename {src => content/src}/main/markdown/articles/fragment_merging.md (100%) rename {src => content/src}/main/markdown/articles/gss_migration.md (100%) rename {src => content/src}/main/markdown/articles/gwt-iphone.md (100%) rename {src => content/src}/main/markdown/articles/mvp-architecture-2.md (100%) rename {src => content/src}/main/markdown/articles/mvp-architecture.md (100%) rename {src => content/src}/main/markdown/articles/security_for_gwt_applications.md (100%) rename {src => content/src}/main/markdown/articles/superdevmode.md (100%) rename {src => content/src}/main/markdown/articles/testing_methodologies_using_gwt.md (100%) rename {src => content/src}/main/markdown/articles/using_gwt_for_json_mashups.md (100%) rename {src => content/src}/main/markdown/articles/using_gwt_with_hibernate.md (100%) rename {src => content/src}/main/markdown/benchmarks.md (100%) rename {src => content/src}/main/markdown/books.md (100%) rename {src => content/src}/main/markdown/casestudies.md (100%) rename {src => content/src}/main/markdown/community-group-charter.md (100%) rename {src => content/src}/main/markdown/community.md (100%) rename {src => content/src}/main/markdown/config.xml (100%) rename {src => content/src}/main/markdown/developer_spotlight.md (100%) rename {src => content/src}/main/markdown/doc/config.xml (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuide.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideA11y.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideAutoBeans.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideClientBundle.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideCodeSplitting.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideCodingBasics.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideCodingBasicsClient.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideCodingBasicsCompatibility.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideCodingBasicsDeferred.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideCodingBasicsDelayed.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideCodingBasicsFormatting.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideCodingBasicsHistory.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideCodingBasicsJSNI.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideCodingBasicsJSON.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideCodingBasicsJsInterop.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideCodingBasicsOverlay.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideCodingBasicsXML.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideCompileReport.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideCompilingAndDebugging.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideDeploying.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideGlossary.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideGssVsCss.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideHtml5.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideHtml5Storage.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideI18n.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideI18nConstants.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideI18nLocale.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideI18nMessages.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideI18nPluralForms.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideIE9.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideLightweightMetrics.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideLinkers.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideLogging.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideMvpActivitiesAndPlaces.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideOptimizing.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideOrganizingProjects.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideRequestFactory.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideSecurity.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideSecurityRpcXsrf.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideSecuritySafeHtml.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideServerCommunication.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideTesting.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideTestingCoverage.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideTestingHtmlUnit.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideTestingRemoteTesting.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideUi.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideUiBinder.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideUiBinderI18n.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideUiBrowser.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideUiCellTable.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideUiCellWidgets.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideUiCss.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideUiCustomCells.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideUiCustomWidgets.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideUiDom.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideUiEditors.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideUiHandlers.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideUiImageBundles.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideUiPanels.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideUiWidgets.md (100%) rename {src => content/src}/main/markdown/doc/latest/DevGuideValidation.md (100%) rename {src => content/src}/main/markdown/doc/latest/FAQ.md (100%) rename {src => content/src}/main/markdown/doc/latest/FAQ_Client.md (100%) rename {src => content/src}/main/markdown/doc/latest/FAQ_DebuggingAndCompiling.md (100%) rename {src => content/src}/main/markdown/doc/latest/FAQ_GettingStarted.md (100%) rename {src => content/src}/main/markdown/doc/latest/FAQ_Server.md (100%) rename {src => content/src}/main/markdown/doc/latest/FAQ_Troubleshooting.md (100%) rename {src => content/src}/main/markdown/doc/latest/FAQ_UI.md (100%) rename {src => content/src}/main/markdown/doc/latest/RefCommandLineTools.md (100%) rename {src => content/src}/main/markdown/doc/latest/RefGWTClassAPI.md (100%) rename {src => content/src}/main/markdown/doc/latest/RefGuide.md (100%) rename {src => content/src}/main/markdown/doc/latest/RefJreEmulation.md (100%) rename {src => content/src}/main/markdown/doc/latest/RefWidgetGallery.md (100%) rename {src => content/src}/main/markdown/doc/latest/ReleaseNotes.md (100%) rename {src => content/src}/main/markdown/doc/latest/config.xml (100%) rename {src => content/src}/main/markdown/doc/latest/polymer-tutorial/create.md (100%) rename {src => content/src}/main/markdown/doc/latest/polymer-tutorial/elements-applogic.md (100%) rename {src => content/src}/main/markdown/doc/latest/polymer-tutorial/elements-buildui.md (100%) rename {src => content/src}/main/markdown/doc/latest/polymer-tutorial/introduction.md (100%) rename {src => content/src}/main/markdown/doc/latest/polymer-tutorial/widgets-applogic.md (100%) rename {src => content/src}/main/markdown/doc/latest/polymer-tutorial/widgets-buildui.md (100%) rename {src => content/src}/main/markdown/doc/latest/tutorial/JSON.md (100%) rename {src => content/src}/main/markdown/doc/latest/tutorial/JSONphp.md (100%) rename {src => content/src}/main/markdown/doc/latest/tutorial/JUnit.md (100%) rename {src => content/src}/main/markdown/doc/latest/tutorial/RPC.md (100%) rename {src => content/src}/main/markdown/doc/latest/tutorial/Xsite.md (100%) rename {src => content/src}/main/markdown/doc/latest/tutorial/appengine.md (100%) rename {src => content/src}/main/markdown/doc/latest/tutorial/buildui.md (100%) rename {src => content/src}/main/markdown/doc/latest/tutorial/clientserver.md (100%) rename {src => content/src}/main/markdown/doc/latest/tutorial/codeclient.md (100%) rename {src => content/src}/main/markdown/doc/latest/tutorial/compile.md (100%) rename {src => content/src}/main/markdown/doc/latest/tutorial/config.xml (100%) rename {src => content/src}/main/markdown/doc/latest/tutorial/create.md (100%) rename {src => content/src}/main/markdown/doc/latest/tutorial/debug.md (100%) rename {src => content/src}/main/markdown/doc/latest/tutorial/design.md (100%) rename {src => content/src}/main/markdown/doc/latest/tutorial/gettingstarted.md (100%) rename {src => content/src}/main/markdown/doc/latest/tutorial/i18n.md (100%) rename {src => content/src}/main/markdown/doc/latest/tutorial/index.md (100%) rename {src => content/src}/main/markdown/doc/latest/tutorial/manageevents.md (100%) rename {src => content/src}/main/markdown/doc/latest/tutorial/style.md (100%) rename {src => content/src}/main/markdown/download.md (100%) rename {src => content/src}/main/markdown/examples.md (100%) rename {src => content/src}/main/markdown/gettingstarted-v2.md (100%) rename {src => content/src}/main/markdown/gettingstarted.md (100%) rename {src => content/src}/main/markdown/index.md (100%) rename {src => content/src}/main/markdown/learnmore-sdk.md (100%) rename {src => content/src}/main/markdown/lifeofanissue.md (100%) rename {src => content/src}/main/markdown/makinggwtbetter.md (100%) rename {src => content/src}/main/markdown/meetingnotes.md (100%) rename {src => content/src}/main/markdown/meetingnotes/2015-02-11.md (100%) rename {src => content/src}/main/markdown/meetingnotes/2015-06-17.md (100%) rename {src => content/src}/main/markdown/meetingnotes/2015-08-19.md (100%) rename {src => content/src}/main/markdown/meetingnotes/2015-10-28.md (100%) rename {src => content/src}/main/markdown/meetingnotes/2016-01-10.md (100%) rename {src => content/src}/main/markdown/meetingnotes/2016-02-10.md (100%) rename {src => content/src}/main/markdown/meetingnotes/2016-04-13.md (100%) rename {src => content/src}/main/markdown/meetingnotes/2016-07-20.md (100%) rename {src => content/src}/main/markdown/meetingnotes/2017-01-11.md (100%) rename {src => content/src}/main/markdown/meetingnotes/2017-02-08.md (100%) rename {src => content/src}/main/markdown/meetingnotes/2017-03-08.md (100%) rename {src => content/src}/main/markdown/meetingnotes/2017-04-12.md (100%) rename {src => content/src}/main/markdown/meetingnotes/2017-05-10.md (100%) rename {src => content/src}/main/markdown/overview.md (100%) rename {src => content/src}/main/markdown/presentations.md (100%) rename {src => content/src}/main/markdown/privacy.md (100%) rename {src => content/src}/main/markdown/release-notes.md (100%) rename {src => content/src}/main/markdown/resources.md (100%) rename {src => content/src}/main/markdown/roadmap.md (100%) rename {src => content/src}/main/markdown/steering.md (100%) rename {src => content/src}/main/markdown/terms.md (100%) rename {src => content/src}/main/markdown/usingeclipse.md (100%) rename {src => content/src}/main/markdown/usingintellij.md (100%) rename {src => content/src}/main/markdown/versions.md (100%) rename {src => content/src}/main/markdown/whos_using_gwt.md (100%) rename {src => content/src}/main/resources/main.tpl (100%) rename {src => content/src}/main/resources/toc.md (100%) rename {src => content/src}/main/site/articles/index.html (100%) rename {src => content/src}/main/site/assets/build/fonts/icons/icons.css (100%) rename {src => content/src}/main/site/assets/build/fonts/icons/icons.eot (100%) rename {src => content/src}/main/site/assets/build/fonts/icons/icons.svg (100%) rename {src => content/src}/main/site/assets/build/fonts/icons/icons.ttf (100%) rename {src => content/src}/main/site/assets/build/fonts/icons/icons.woff (100%) rename {src => content/src}/main/site/assets/build/fonts/icons/icons.woff2 (100%) rename {src => content/src}/main/site/assets/build/js/vendor/jquery-1.11.0.min.js (100%) rename {src => content/src}/main/site/assets/build/js/vendor/jquery.flexnav.js (100%) rename {src => content/src}/main/site/assets/build/js/vendor/jquery.flexnav.min.js (100%) rename {src => content/src}/main/site/assets/build/js/vendor/modernizr-2.6.2.min.js (100%) rename {src => content/src}/main/site/assets/img/apple-touch-icon-precomposed.png (100%) rename {src => content/src}/main/site/assets/img/logoBig.png (100%) rename {src => content/src}/main/site/assets/img/navLogoBig.png (100%) rename {src => content/src}/main/site/assets/img/navLogoSmall.png (100%) rename {src => content/src}/main/site/assets/js/global.js (100%) rename {src => content/src}/main/site/assets/less/colors.less (100%) rename {src => content/src}/main/site/assets/less/flexnav.less (100%) rename {src => content/src}/main/site/assets/less/functions.less (100%) rename {src => content/src}/main/site/assets/less/grid.less (100%) rename {src => content/src}/main/site/assets/less/layout.less (100%) rename {src => content/src}/main/site/assets/less/normalize.less (100%) rename {src => content/src}/main/site/assets/less/print.less (100%) rename {src => content/src}/main/site/assets/less/style.less (100%) rename {src => content/src}/main/site/css/jenkins-theme.css (100%) rename {src => content/src}/main/site/css/main.css (100%) rename {src => content/src}/main/site/doc/index.html (100%) rename {src => content/src}/main/site/doc/latest/images/AnatomyOfServices.png (100%) rename {src => content/src}/main/site/doc/latest/images/Button.png (100%) rename {src => content/src}/main/site/doc/latest/images/CellBrowser.png (100%) rename {src => content/src}/main/site/doc/latest/images/CellList.png (100%) rename {src => content/src}/main/site/doc/latest/images/CheckBox.png (100%) rename {src => content/src}/main/site/doc/latest/images/CodeSplittingFragments.odg (100%) rename {src => content/src}/main/site/doc/latest/images/CodeSplittingFragments.png (100%) rename {src => content/src}/main/site/doc/latest/images/CustomCells-BasicRender.png (100%) rename {src => content/src}/main/site/doc/latest/images/CustomCells-HandlingEvents.png (100%) rename {src => content/src}/main/site/doc/latest/images/DatePicker.png (100%) rename {src => content/src}/main/site/doc/latest/images/DevGuideDirectoriesPackageConventions.png (100%) rename {src => content/src}/main/site/doc/latest/images/DevModeCollage.png (100%) rename {src => content/src}/main/site/doc/latest/images/DevModeTypical.jpg (100%) rename {src => content/src}/main/site/doc/latest/images/DevelopmentShell1.png (100%) rename {src => content/src}/main/site/doc/latest/images/DevelopmentShell2.png (100%) rename {src => content/src}/main/site/doc/latest/images/DevelopmentShell3.png (100%) rename {src => content/src}/main/site/doc/latest/images/DevelopmentShell4.png (100%) rename {src => content/src}/main/site/doc/latest/images/DialogBox.png (100%) rename {src => content/src}/main/site/doc/latest/images/DisclosurePanel.png (100%) rename {src => content/src}/main/site/doc/latest/images/DockLayoutPanel.png (100%) rename {src => content/src}/main/site/doc/latest/images/DockPanel.png (100%) rename {src => content/src}/main/site/doc/latest/images/DockPanel_Showcase.png (100%) rename {src => content/src}/main/site/doc/latest/images/FAQ_UILayout1.png (100%) rename {src => content/src}/main/site/doc/latest/images/FAQ_UILayout2.png (100%) rename {src => content/src}/main/site/doc/latest/images/FAQ_UILayout3.png (100%) rename {src => content/src}/main/site/doc/latest/images/FAQ_UILayout4.png (100%) rename {src => content/src}/main/site/doc/latest/images/FlowPanel.png (100%) rename {src => content/src}/main/site/doc/latest/images/GettingUsedToAsyncCalls1.png (100%) rename {src => content/src}/main/site/doc/latest/images/GettingUsedToAsyncCalls2.png (100%) rename {src => content/src}/main/site/doc/latest/images/HTML5_Badge_64.png (100%) rename {src => content/src}/main/site/doc/latest/images/HelloWorld.png (100%) rename {src => content/src}/main/site/doc/latest/images/HorizontalPanel.png (100%) rename {src => content/src}/main/site/doc/latest/images/HorizontalPanel_Showcase.png (100%) rename {src => content/src}/main/site/doc/latest/images/HorizontalSplitPanel.png (100%) rename {src => content/src}/main/site/doc/latest/images/HorizontalSplitPanel_Showcase.png (100%) rename {src => content/src}/main/site/doc/latest/images/HostedMode1.png (100%) rename {src => content/src}/main/site/doc/latest/images/Hyperlink.png (100%) rename {src => content/src}/main/site/doc/latest/images/LayoutPanel.png (100%) rename {src => content/src}/main/site/doc/latest/images/ListBox.png (100%) rename {src => content/src}/main/site/doc/latest/images/LoggingExample.png (100%) rename {src => content/src}/main/site/doc/latest/images/MenuBar.png (100%) rename {src => content/src}/main/site/doc/latest/images/PasswordTextBox.png (100%) rename {src => content/src}/main/site/doc/latest/images/PopupPanel.png (100%) rename {src => content/src}/main/site/doc/latest/images/PushButton.png (100%) rename {src => content/src}/main/site/doc/latest/images/RadioButton.png (100%) rename {src => content/src}/main/site/doc/latest/images/RichTextArea-clipped.png (100%) rename {src => content/src}/main/site/doc/latest/images/RichTextArea.png (100%) rename {src => content/src}/main/site/doc/latest/images/SplitLayoutPanel-gallery.png (100%) rename {src => content/src}/main/site/doc/latest/images/SplitLayoutPanel.png (100%) rename {src => content/src}/main/site/doc/latest/images/StackLayoutPanel.png (100%) rename {src => content/src}/main/site/doc/latest/images/StackPanel.png (100%) rename {src => content/src}/main/site/doc/latest/images/SuggestBox.png (100%) rename {src => content/src}/main/site/doc/latest/images/TabBar.png (100%) rename {src => content/src}/main/site/doc/latest/images/TabLayoutPanel.png (100%) rename {src => content/src}/main/site/doc/latest/images/TabPanel.png (100%) rename {src => content/src}/main/site/doc/latest/images/TabPanel_Showcase.png (100%) rename {src => content/src}/main/site/doc/latest/images/Table.png (100%) rename {src => content/src}/main/site/doc/latest/images/TestCoverageFinal.jpg (100%) rename {src => content/src}/main/site/doc/latest/images/TestCoverageInitial.jpg (100%) rename {src => content/src}/main/site/doc/latest/images/TextArea.png (100%) rename {src => content/src}/main/site/doc/latest/images/TextBox.png (100%) rename {src => content/src}/main/site/doc/latest/images/ToggleButton.png (100%) rename {src => content/src}/main/site/doc/latest/images/Tree.png (100%) rename {src => content/src}/main/site/doc/latest/images/UnresponsiveScriptDialog.png (100%) rename {src => content/src}/main/site/doc/latest/images/ValidationScreenshot.png (100%) rename {src => content/src}/main/site/doc/latest/images/VerticalPanel.png (100%) rename {src => content/src}/main/site/doc/latest/images/VerticalSplitPanel.png (100%) rename {src => content/src}/main/site/doc/latest/images/VerticalSplitPanel_Showcase.png (100%) rename {src => content/src}/main/site/doc/latest/images/WebMode1.png (100%) rename {src => content/src}/main/site/doc/latest/images/appengine_lowres.png (100%) rename {src => content/src}/main/site/doc/latest/images/apps_mp.png (100%) rename {src => content/src}/main/site/doc/latest/images/compileReport-Dependencies.gif (100%) rename {src => content/src}/main/site/doc/latest/images/compileReport-InitialDownloadExample.gif (100%) rename {src => content/src}/main/site/doc/latest/images/compileReport-Overview.gif (100%) rename {src => content/src}/main/site/doc/latest/images/compileReport-PackageBreakdown.gif (100%) rename {src => content/src}/main/site/doc/latest/images/compileReport-PermutationOverview.gif (100%) rename {src => content/src}/main/site/doc/latest/images/compileReport-splitPointStatus.gif (100%) rename {src => content/src}/main/site/doc/latest/images/google-plugin.png (100%) rename {src => content/src}/main/site/doc/latest/images/gph_logo.png (100%) rename {src => content/src}/main/site/doc/latest/images/icon_android.jpg (100%) rename {src => content/src}/main/site/doc/latest/images/localStorage.png (100%) rename {src => content/src}/main/site/doc/latest/index.html (100%) rename {src => content/src}/main/site/doc/latest/polymer-tutorial/images/todo-list-01.png (100%) rename {src => content/src}/main/site/doc/latest/polymer-tutorial/images/todo-list-02.png (100%) rename {src => content/src}/main/site/doc/latest/polymer-tutorial/images/todo-list-03.png (100%) rename {src => content/src}/main/site/doc/latest/polymer-tutorial/images/todo-list-04.png (100%) rename {src => content/src}/main/site/doc/latest/polymer-tutorial/images/todo-list-05.png (100%) rename {src => content/src}/main/site/doc/latest/polymer-tutorial/images/todo-list-06.png (100%) rename {src => content/src}/main/site/doc/latest/polymer-tutorial/images/todo-list-07.png (100%) rename {src => content/src}/main/site/doc/latest/polymer-tutorial/images/todo-list-08.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/gettingstarted/StockWatcher.css (100%) rename {src => content/src}/main/site/doc/latest/tutorial/gettingstarted/StockWatcher.html (100%) rename {src => content/src}/main/site/doc/latest/tutorial/gettingstarted/images/gwt.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/2293D04F6B35190160A90C78400C3926.cache.js (100%) rename {src => content/src}/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/gwt/standard/images/hborder.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/gwt/standard/standard.css (100%) rename {src => content/src}/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/stockwatcher.nocache.js (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/AnatomyOfServices.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/BuildUI.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/CodeClientAddStock.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/CodeClientBug.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/CodeClientNewJavaClass.jpg (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/CreateEclipseImport.jpg (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/CreateGWTComponents.jpg (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/CreateStarterApplication.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/DebugVariablesBug.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/DeployAppEngineProject.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/DesignStockWatcherFinal.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/DevModeNoEclipse.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/DevModeTab.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/GWTCompileProject.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/JSONdata.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/JSONerrormessage.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/JSONstockPricesphp.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/JUnitFailed.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/JUnitSimpleTestDev.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/JUnitcreatetest.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/ManageEvents.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/MissingPlugin.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/NewWebApplicationProject.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/RPCerrormessage.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/StockWatcherUIpanel1.jpg (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/StockWatcherUIpanel2.jpg (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/StockWatcherUIpanel3.jpg (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/StockWatcherUIpanel4.jpg (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/StyleAfter.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/StyleBefore.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/StyleSecondary.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/i18nEnglish.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/i18nGerman.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/spring-dashboard.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/spring-databrowser.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/spring-devserver.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/spring-extensions.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/spring-package.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/spring-projects.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/spring-prompt.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/spring-roo-shell.png (100%) rename {src => content/src}/main/site/doc/latest/tutorial/images/spring-runas.png (100%) rename {src => content/src}/main/site/doctype/2.10.0/gwt-module.dtd (100%) rename {src => content/src}/main/site/doctype/2.11.0/gwt-module.dtd (100%) rename {src => content/src}/main/site/doctype/2.12.0/gwt-module.dtd (100%) rename {src => content/src}/main/site/doctype/2.12.1/gwt-module.dtd (100%) rename {src => content/src}/main/site/doctype/2.12.2/gwt-module.dtd (100%) rename {src => content/src}/main/site/doctype/2.4.0/gwt-module.dtd (100%) rename {src => content/src}/main/site/doctype/2.5.0/gwt-module.dtd (100%) rename {src => content/src}/main/site/doctype/2.5.1/gwt-module.dtd (100%) rename {src => content/src}/main/site/doctype/2.6.0/gwt-module.dtd (100%) rename {src => content/src}/main/site/doctype/2.6.1/gwt-module.dtd (100%) rename {src => content/src}/main/site/doctype/2.7.0/gwt-module.dtd (100%) rename {src => content/src}/main/site/doctype/2.8.0/gwt-module.dtd (100%) rename {src => content/src}/main/site/doctype/2.8.1/gwt-module.dtd (100%) rename {src => content/src}/main/site/doctype/2.8.2/gwt-module.dtd (100%) rename {src => content/src}/main/site/doctype/2.9.0/gwt-module.dtd (100%) rename {src => content/src}/main/site/images/I18N.jpg (100%) rename {src => content/src}/main/site/images/app_gal_blueprint.png (100%) rename {src => content/src}/main/site/images/app_gal_contactoffice.png (100%) rename {src => content/src}/main/site/images/app_gal_dotemplate.jpg (100%) rename {src => content/src}/main/site/images/app_gal_gogrid.png (100%) rename {src => content/src}/main/site/images/app_gal_iphonereader.png (100%) rename {src => content/src}/main/site/images/app_gal_kaching.png (100%) rename {src => content/src}/main/site/images/app_gal_queweb.png (100%) rename {src => content/src}/main/site/images/app_gal_riflethru.png (100%) rename {src => content/src}/main/site/images/app_gal_scenechronize.png (100%) rename {src => content/src}/main/site/images/app_gal_studyblue.png (100%) rename {src => content/src}/main/site/images/app_gal_typeracer.png (100%) rename {src => content/src}/main/site/images/app_gal_venda.png (100%) rename {src => content/src}/main/site/images/app_gal_whirled.png (100%) rename {src => content/src}/main/site/images/arrow-48.png (100%) rename {src => content/src}/main/site/images/arrow-closed.png (100%) rename {src => content/src}/main/site/images/arrow-md.png (100%) rename {src => content/src}/main/site/images/arrow-open.png (100%) rename {src => content/src}/main/site/images/bookedin.png (100%) rename {src => content/src}/main/site/images/books/Developing_with_Ext_GWT_Enterprise_RIA_Development.png (100%) rename {src => content/src}/main/site/images/books/Essential_GWT_Building_for_the_Web_with_Google_Web_Toolkit_2.jpg (100%) rename {src => content/src}/main/site/images/books/ExtGWT_Rich_Internet_Application_Cookbook.jpg (100%) rename {src => content/src}/main/site/images/books/Ext_GWT_20_Beginners_Guide.jpg (100%) rename {src => content/src}/main/site/images/books/GWT_in_Practice.jpg (100%) rename {src => content/src}/main/site/images/books/Google_App_Engine_Java_and_GWT_Application_Development.jpg (100%) rename {src => content/src}/main/site/images/books/Google_Web_Toolkit_2_Application_Development_Cookbook.jpg (100%) rename {src => content/src}/main/site/images/books/Google_Web_Toolkit_Applications.jpeg (100%) rename {src => content/src}/main/site/images/books/Google_Web_Toolkit_GWT_Java_AJAX_Programming.jpg (100%) rename {src => content/src}/main/site/images/books/Google_Web_Toolkit_Solutions_Digital_Short_Cut_Cool_Useful_Stuff.jpeg (100%) rename {src => content/src}/main/site/images/books/Google_Web_Toolkit_Solutions_More_Cool_Useful_Stuff.jpeg (100%) rename {src => content/src}/main/site/images/books/Google_Web_Toolkit_Taking_the_Pain_Out_of_Ajax.jpg (100%) rename {src => content/src}/main/site/images/books/Vaadin_7_Cookbook.jpg (100%) rename {src => content/src}/main/site/images/books/Vaadin_Recipes.jpg (100%) rename {src => content/src}/main/site/images/books/gwt_in_action.jpg (100%) rename {src => content/src}/main/site/images/books/gwt_in_action_second_edition.jpg (100%) rename {src => content/src}/main/site/images/books/learning_vaddin.jpg (100%) rename {src => content/src}/main/site/images/cloudorado.png (100%) rename {src => content/src}/main/site/images/community.gif (100%) rename {src => content/src}/main/site/images/contact-list-view.png (100%) rename {src => content/src}/main/site/images/contacts-project-hierarchy-testing.png (100%) rename {src => content/src}/main/site/images/contacts-project-hierarchy.png (100%) rename {src => content/src}/main/site/images/data_presentation_widgets.png (100%) rename {src => content/src}/main/site/images/dev_gal_blueprint.jpg (100%) rename {src => content/src}/main/site/images/dev_gal_gogrid.jpg (100%) rename {src => content/src}/main/site/images/dev_gal_scenechronize.jpg (100%) rename {src => content/src}/main/site/images/dev_gal_whirled.jpg (100%) rename {src => content/src}/main/site/images/docs.gif (100%) rename {src => content/src}/main/site/images/down.png (100%) rename {src => content/src}/main/site/images/dynamictable.jpg (100%) rename {src => content/src}/main/site/images/eclipse/eclipse-install-options.png (100%) rename {src => content/src}/main/site/images/eclipse/web-app-src.png (100%) rename {src => content/src}/main/site/images/eclipse/web-app-wizard.png (100%) rename {src => content/src}/main/site/images/favicon.png (100%) rename {src => content/src}/main/site/images/flow1-sm.png (100%) rename {src => content/src}/main/site/images/flow2-sm.png (100%) rename {src => content/src}/main/site/images/flow3-sm.png (100%) rename {src => content/src}/main/site/images/flow4-sm.png (100%) rename {src => content/src}/main/site/images/fragment_merging_after.jpg (100%) rename {src => content/src}/main/site/images/fragment_merging_before.jpg (100%) rename {src => content/src}/main/site/images/gaestudio.png (100%) rename {src => content/src}/main/site/images/gilead_diagram.png (100%) rename {src => content/src}/main/site/images/gitter-logo-mark-white.png (100%) rename {src => content/src}/main/site/images/go_grid.jpg (100%) rename {src => content/src}/main/site/images/gwt-architecture.png (100%) rename {src => content/src}/main/site/images/gwt-logo.png (100%) rename {src => content/src}/main/site/images/gwt-sm.png (100%) rename {src => content/src}/main/site/images/gwtdesigner.png (100%) rename {src => content/src}/main/site/images/gwtproject.org-2015-banner@2x.png (100%) rename {src => content/src}/main/site/images/helloworld.jpg (100%) rename {src => content/src}/main/site/images/hosted_hibernate_error.png (100%) rename {src => content/src}/main/site/images/import-into-intellij.png (100%) rename {src => content/src}/main/site/images/inbox.png (100%) rename {src => content/src}/main/site/images/intellij-project.png (100%) rename {src => content/src}/main/site/images/intellij-run-code-server.png (100%) rename {src => content/src}/main/site/images/intellij-run-server.png (100%) rename {src => content/src}/main/site/images/jsonrpc.jpg (100%) rename {src => content/src}/main/site/images/kicthensink.jpg (100%) rename {src => content/src}/main/site/images/kitchensink.jpg (100%) rename {src => content/src}/main/site/images/learnmore.gif (100%) rename {src => content/src}/main/site/images/logo-wire.png (100%) rename {src => content/src}/main/site/images/lombardi_blueprint.jpg (100%) rename {src => content/src}/main/site/images/mail.jpg (100%) rename {src => content/src}/main/site/images/mvp_diagram.png (100%) rename {src => content/src}/main/site/images/myapplication-browser.png (100%) rename {src => content/src}/main/site/images/myapplication-devmode.png (100%) rename {src => content/src}/main/site/images/myapplication-missing-plugin.png (100%) rename {src => content/src}/main/site/images/mywebapp.png (100%) rename {src => content/src}/main/site/images/newwindow.gif (100%) rename {src => content/src}/main/site/images/noscreenshot.jpg (100%) rename {src => content/src}/main/site/images/ruxit.png (100%) rename {src => content/src}/main/site/images/scenechronize.jpg (100%) rename {src => content/src}/main/site/images/sdk-sm.png (100%) rename {src => content/src}/main/site/images/sdm-debugger-breakpoint.png (100%) rename {src => content/src}/main/site/images/sdm-debugger.png (100%) rename {src => content/src}/main/site/images/showcase.jpg (100%) rename {src => content/src}/main/site/images/speedtracer-large.png (100%) rename {src => content/src}/main/site/images/spring_logo.png (100%) rename {src => content/src}/main/site/images/st_server_trace.png (100%) rename {src => content/src}/main/site/images/sticky.png (100%) rename {src => content/src}/main/site/images/sts_dashboard.png (100%) rename {src => content/src}/main/site/images/superdevmode_dialog.png (100%) rename {src => content/src}/main/site/images/superdevmode_enablesourcemaps.png (100%) rename {src => content/src}/main/site/images/testing_methodologies_mvc.png (100%) rename {src => content/src}/main/site/images/testing_methodologies_mvp.png (100%) rename {src => content/src}/main/site/images/testing_methodologies_object_diagram.png (100%) rename {src => content/src}/main/site/images/testing_methodologies_screenshot.png (100%) rename {src => content/src}/main/site/images/war_output_dir.png (100%) rename {src => content/src}/main/site/images/wave.jpg (100%) rename {src => content/src}/main/site/images/whirled.jpg (100%) rename {src => content/src}/main/site/index.html (100%) rename {src => content/src}/main/site/missing-plugin/download.gif (100%) rename {src => content/src}/main/site/missing-plugin/index.html (100%) rename {src => content/src}/main/site/missing-plugin/unsupported.gif (100%) rename {src => content/src}/test/java/com/google/gwt/site/markdown/MDTranslatorTest.java (100%) create mode 100644 web-app/pom.xml create mode 100644 web-app/src/main/java/com/google/gwt/site/webapp/client/GWTProjectEntryPoint.java create mode 100644 web-app/src/main/java/com/google/gwt/site/webapp/client/highlight/JsHighlight.java create mode 100644 web-app/src/main/java/com/google/gwt/site/webapp/client/highlight/highlight.pack.js create mode 100644 web-app/src/main/java/com/google/gwt/site/webapp/client/highlight/idea.css create mode 100644 web-app/src/main/module.gwt.xml create mode 100644 web-app/src/main/webapp/gwt.html create mode 100644 web-app/src/main/webapp/images/gwt-logo.png create mode 100644 web-app/src/test/java/com/google/gwt/site/webapp/Test.gwt.xml create mode 100644 web-app/src/test/java/com/google/gwt/site/webapp/client/ProjectEntryPointGwtTest.java create mode 100644 web-app/src/test/java/com/google/gwt/site/webapp/client/ProjectEntryPointTest.java diff --git a/.gitignore b/.gitignore index b39850e0b..cefd0358d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,11 @@ target/ .idea/ -gwt-site.iml +*.iml .DS_Store npm-debug.log node/ node_modules/ -src/main/site/assets/build/css/ -src/main/site/assets/build/img/ -src/main/site/assets/build/js/global.js -src/main/site/assets/build/js/global.min.js +content/src/main/site/assets/build/css/ +content/src/main/site/assets/build/img/ +content/src/main/site/assets/build/js/global.js +content/src/main/site/assets/build/js/global.min.js diff --git a/Gruntfile.js b/content/Gruntfile.js similarity index 100% rename from Gruntfile.js rename to content/Gruntfile.js diff --git a/content/package-lock.json b/content/package-lock.json new file mode 100644 index 000000000..8da068b58 --- /dev/null +++ b/content/package-lock.json @@ -0,0 +1,5173 @@ +{ + "name": "GWTSite", + "version": "2.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha512-I/bSHSNEcFFqXLf91nchoNB9D1Kie3QKcWdchYUaoIg1+1bdWDkdfdlvdIOJbi9U8xR0y+MWc5D+won9v95WlQ==", + "dev": true, + "optional": true, + "requires": { + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" + }, + "dependencies": { + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "optional": true + } + } + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==", + "dev": true, + "optional": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", + "dev": true, + "optional": true + }, + "archive-type": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-3.2.0.tgz", + "integrity": "sha512-6cAWDM0lUYTbb7F436FAjbBYnsn5E3L2AgTOLzrFfLt7FVM6uJwKUvllE8VjLKTmKCU8PqtWlUAezEYjg5iGqA==", + "dev": true, + "optional": true, + "requires": { + "file-type": "^3.1.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + } + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==", + "dev": true, + "optional": true + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "dev": true + }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "optional": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true, + "optional": true + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "optional": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha512-u1L0ZLywRziOVjUhRxI0Qg9G+4RnFB9H/Rq40YWn0dieDgO7vAYeJz6jKAO6t/aruzlDFLAPkQTT87e+f8Imaw==", + "dev": true, + "optional": true + }, + "async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true + }, + "async-each-series": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-1.1.0.tgz", + "integrity": "sha512-/VIpPVIJJlJObJiXkHBJ1RhjDtydBRG/3/dWpsXoVGOShNw5tameXnC7Yys+wpb0p/myItxGmSGgNi/dNlsIiA==", + "dev": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha512-JnJpAS0p9RmixkOvW2XwDxxzs1bd4/VAGIl6Q0EC5YOo+p+hqIhtDhn/nmFnB/xUNXbLkpE2mOjgVIBRKD4xYw==", + "dev": true, + "optional": true + }, + "aws4": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", + "dev": true, + "optional": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "beeper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha512-3vqtKL1N45I5dV0RdssXZG7X6pCqQrWPNOlBPZPrd+QkE2HEhR57Z04m0KtpbsZH73j+a3F8UD1TQnn+ExTvIA==", + "dev": true, + "optional": true + }, + "bin-build": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/bin-build/-/bin-build-2.2.0.tgz", + "integrity": "sha512-m8gaq/BdoePIT5RlHW3KNJZwNkg9YtPn2C89x85/0KYIExoHMm3D/RL/Wxrvum9CI6pbF2KUQa8a/WWFudVmng==", + "dev": true, + "optional": true, + "requires": { + "archive-type": "^3.0.1", + "decompress": "^3.0.0", + "download": "^4.1.2", + "exec-series": "^1.0.0", + "rimraf": "^2.2.6", + "tempfile": "^1.0.0", + "url-regex": "^3.0.0" + } + }, + "bin-check": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-2.0.0.tgz", + "integrity": "sha512-jf6fesAGnXBynRU3JLpo0qe8vw8JBPBJCKK0v8NV3iH1P2UkQ6UEcIy7uPw1OdWkPUtpmX1uqeyTGrpeKd2CwQ==", + "dev": true, + "optional": true, + "requires": { + "executable": "^1.0.0" + } + }, + "bin-version": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-1.0.4.tgz", + "integrity": "sha512-o9u3aS7w6RqoH9BErxuilhQG2fn3srr3ZekEEGailMnj5F+0p+R3TXENvO+vGaLnKlmq8xhhh/Fvl1RRxx/FdQ==", + "dev": true, + "optional": true, + "requires": { + "find-versions": "^1.0.0" + } + }, + "bin-version-check": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-2.1.0.tgz", + "integrity": "sha512-3lUeqGAbnWQG7OCfIiHXw1EmzzvAGlMYqqgRahkr7oDeY1Qra8r2DZH2bbfXZI4NA3aaD1Ap+xt8CeVO/fftrw==", + "dev": true, + "optional": true, + "requires": { + "bin-version": "^1.0.0", + "minimist": "^1.1.0", + "semver": "^4.0.3", + "semver-truncate": "^1.0.0" + }, + "dependencies": { + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha512-IrpJ+yoG4EOH8DFWuVg+8H1kW1Oaof0Wxe7cPcXW3x9BjkN/eVo54F15LyqemnDIUYskQWr9qvl/RihmSy6+xQ==", + "dev": true, + "optional": true + } + } + }, + "bin-wrapper": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-3.0.2.tgz", + "integrity": "sha512-5QEiUnaE7hgRlQxaV2jpeTg0+IA3o4zZ2sduuSqyJCdOuJ1wDuEmM1ntGelDf4ueCOaOam4bOMtOU4W6lG+hUg==", + "dev": true, + "optional": true, + "requires": { + "bin-check": "^2.0.0", + "bin-version-check": "^2.1.0", + "download": "^4.0.0", + "each-async": "^1.1.1", + "lazy-req": "^1.0.0", + "os-filter-obj": "^1.0.0" + } + }, + "bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "dev": true, + "optional": true, + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "body": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", + "integrity": "sha512-chUsBxGRtuElD6fmw1gHLpvnKdVLK302peeFa9ZqAEk8TyzZ3fygLyUEDDPTJvL9+Bor0dIwn6ePOsRM2y0zQQ==", + "dev": true, + "requires": { + "continuable-cache": "^0.3.1", + "error": "^7.0.0", + "raw-body": "~1.1.0", + "safe-json-parse": "~1.0.1" + } + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha512-KbiZEa9/vofNcVJXGwdWWn25reQ3V3dHBWbS07FTF3/TOehLnm9GEhJV4T6ZvGPkShRpmUqYwnaCrkj0mRnP6Q==", + "dev": true, + "optional": true, + "requires": { + "hoek": "2.x.x" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "requires": { + "fill-range": "^7.1.1" + } + }, + "browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==", + "dev": true, + "requires": { + "pako": "~0.2.0" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "optional": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true, + "optional": true + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "optional": true + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", + "dev": true, + "optional": true + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "buffer-to-vinyl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz", + "integrity": "sha512-t6B4HXJ3YdJ/lXKhK3nlGW1aAvpQH2FMyHh25SmfdYkQAU3/R2MYo4VrY1DlQuZd8zLNOqWPxZFJILRuTkqaEQ==", + "dev": true, + "requires": { + "file-type": "^3.1.0", + "readable-stream": "^2.0.2", + "uuid": "^2.0.1", + "vinyl": "^1.0.0" + } + }, + "bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", + "integrity": "sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==", + "dev": true + }, + "call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "requires": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + } + }, + "call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + } + }, + "call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "dev": true, + "requires": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + } + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "capture-stack-trace": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.2.tgz", + "integrity": "sha512-X/WM2UQs6VMHUtjUDnZTRI+i1crWteJySFzr9UpGoQa4WQffXVTTXuekjl7TjZRlcF2XfjgITT0HxZ9RnxeT0w==", + "dev": true, + "optional": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true, + "optional": true + }, + "caw": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/caw/-/caw-1.2.0.tgz", + "integrity": "sha512-GIAlMoessjWW8p0mkStU4kMvV35toVCAyOWhUajk7O0d7wJI8F9TDjfrkSoO26b0d1QsnDLmw5I3X+yd6OKorQ==", + "dev": true, + "optional": true, + "requires": { + "get-proxy": "^1.0.1", + "is-obj": "^1.0.0", + "object-assign": "^3.0.0", + "tunnel-agent": "^0.4.0" + }, + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==", + "dev": true, + "optional": true + } + } + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ==", + "dev": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "clap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", + "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", + "dev": true, + "optional": true, + "requires": { + "chalk": "^1.1.3" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "optional": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "optional": true + } + } + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA==", + "dev": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA==", + "dev": true + }, + "co": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz", + "integrity": "sha512-CQsjCRiNObI8AtTsNIBDRMQ4oMR83CzEswHYahClvul7gKk+lDQiOKv+5qh7LQWf5sh6jkZNispz/QlsZxyNgA==", + "dev": true, + "optional": true + }, + "coa": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", + "integrity": "sha512-KAGck/eNAmCL0dcT3BiuYwLbExK6lduR8DxM3C1TyDzaXhZHyZ8ooX5I5+na2e3dPFuibfxrGdorr0/Lr7RYCQ==", + "dev": true, + "optional": true, + "requires": { + "q": "^1.1.2" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "optional": true + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "optional": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "console-stream": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz", + "integrity": "sha512-QC/8l9e6ofi6nqZ5PawlDgzmMw3OxIXtvolBzap/F4UDBJlDaZRSNbL/lb41C29FcbSJncBFlJFj2WJoNyZRfQ==", + "dev": true, + "optional": true + }, + "continuable-cache": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", + "integrity": "sha512-TF30kpKhTH8AGCG3dut0rdd/19B7Z+qCnrMoBLpyQu/2drZdNrrpcjPEoJeSVsQM+8KmWG5O56oPDjSSUsuTyA==", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha512-gYTKKexFO3kh200H1Nit76sRwRtOY32vQd3jpAQKpLtZqyNsSQNfI4N7o3eP2wUjV35pTWKRYqFUDBvUha/Pkw==", + "dev": true, + "optional": true, + "requires": { + "capture-stack-trace": "^1.0.0" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha512-FFN5KwpvvQTTS5hWPxrU8/QE4kQUc6uwZcrnlMBN82t1MgAtq8mnoDwINBly9Tdr02seeIIhtdF+UH1feBYGog==", + "dev": true, + "optional": true, + "requires": { + "boom": "2.x.x" + } + }, + "csso": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.0.0.tgz", + "integrity": "sha512-tckZA0LhyEnToPoQDmncCA+TUS3aoIVl/MsSaoipR52Sfa+H83fJvIHRVOHMFn9zW6kIV1L0D7tUDFFjvN28lg==", + "dev": true, + "optional": true, + "requires": { + "clap": "^1.0.9", + "source-map": "^0.5.3" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "optional": true + } + } + }, + "dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", + "dev": true + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true + }, + "decompress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-3.0.0.tgz", + "integrity": "sha512-QCl8WTT4FSft5F+0M0InHKO6UYFfYhw5++vktTKpmUsQ6YUMPcBwMu7Sp3P0lMGk00hTNHohdhfdi9+OswLJuQ==", + "dev": true, + "optional": true, + "requires": { + "buffer-to-vinyl": "^1.0.0", + "concat-stream": "^1.4.6", + "decompress-tar": "^3.0.0", + "decompress-tarbz2": "^3.0.0", + "decompress-targz": "^3.0.0", + "decompress-unzip": "^3.0.0", + "stream-combiner2": "^1.1.1", + "vinyl-assign": "^1.0.1", + "vinyl-fs": "^2.2.0" + } + }, + "decompress-tar": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-3.1.0.tgz", + "integrity": "sha512-YuF7b9jA2bnBhf0/HQ/5UDgX5Ogzw1xJz6mWOFRctyOcmZPjJx3jjde9tCBjysvYscutRTPi35Q20mPDA74SKQ==", + "dev": true, + "optional": true, + "requires": { + "is-tar": "^1.0.0", + "object-assign": "^2.0.0", + "strip-dirs": "^1.0.0", + "tar-stream": "^1.1.1", + "through2": "^0.6.1", + "vinyl": "^0.4.3" + }, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha512-g62n3Kb9cszeZvmvBUqP/dsEJD/+80pDA8u8KqHnAPrVnQ2Je9rVV6opxkhuWCd1kCn2gOibzDKxCtBvD3q5kA==", + "dev": true, + "optional": true + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha512-pmza4M5VA15HOImIQYWhoXGlGNafCm0QK5BpBUXkzzEwrRxKqBsbAhTfkT2zMcJhUX1G1Gkid0xaV8WjOl7DsA==", + "dev": true, + "optional": true, + "requires": { + "clone": "^0.2.0", + "clone-stats": "^0.0.1" + } + } + } + }, + "decompress-tarbz2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz", + "integrity": "sha512-UVCUT54LTEf8uqoytmEMVSwTVl/rZJ0o6bUJsJ7psRmICUzCsz9BJ31drbX0NtgwD9cFzIwKProa2yThmVBKvQ==", + "dev": true, + "optional": true, + "requires": { + "is-bzip2": "^1.0.0", + "object-assign": "^2.0.0", + "seek-bzip": "^1.0.3", + "strip-dirs": "^1.0.0", + "tar-stream": "^1.1.1", + "through2": "^0.6.1", + "vinyl": "^0.4.3" + }, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha512-g62n3Kb9cszeZvmvBUqP/dsEJD/+80pDA8u8KqHnAPrVnQ2Je9rVV6opxkhuWCd1kCn2gOibzDKxCtBvD3q5kA==", + "dev": true, + "optional": true + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha512-pmza4M5VA15HOImIQYWhoXGlGNafCm0QK5BpBUXkzzEwrRxKqBsbAhTfkT2zMcJhUX1G1Gkid0xaV8WjOl7DsA==", + "dev": true, + "optional": true, + "requires": { + "clone": "^0.2.0", + "clone-stats": "^0.0.1" + } + } + } + }, + "decompress-targz": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-3.1.0.tgz", + "integrity": "sha512-umeSWvrmd9/qcmGaf0oAc+Gx7La0B4Uxo+HXoo0HqrjEbCzn7SMiWvmE5sS56B+GqaoJ8z64ORZCRaOzKCYi/w==", + "dev": true, + "optional": true, + "requires": { + "is-gzip": "^1.0.0", + "object-assign": "^2.0.0", + "strip-dirs": "^1.0.0", + "tar-stream": "^1.1.1", + "through2": "^0.6.1", + "vinyl": "^0.4.3" + }, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha512-g62n3Kb9cszeZvmvBUqP/dsEJD/+80pDA8u8KqHnAPrVnQ2Je9rVV6opxkhuWCd1kCn2gOibzDKxCtBvD3q5kA==", + "dev": true, + "optional": true + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha512-pmza4M5VA15HOImIQYWhoXGlGNafCm0QK5BpBUXkzzEwrRxKqBsbAhTfkT2zMcJhUX1G1Gkid0xaV8WjOl7DsA==", + "dev": true, + "optional": true, + "requires": { + "clone": "^0.2.0", + "clone-stats": "^0.0.1" + } + } + } + }, + "decompress-unzip": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-3.4.0.tgz", + "integrity": "sha512-rclee6Q/+aChW77vbHmtGNZi3ko1Qhsp9Brs5mVyhBSeg+K4n+6MHo47y/+7GsmYZuEqVJ46LjwT3/N8N50jZQ==", + "dev": true, + "optional": true, + "requires": { + "is-zip": "^1.0.0", + "read-all-stream": "^3.0.0", + "stat-mode": "^0.2.0", + "strip-dirs": "^1.0.0", + "through2": "^2.0.0", + "vinyl": "^1.0.0", + "yauzl": "^2.2.1" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "optional": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "optional": true + }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, + "define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "optional": true + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "dev": true + }, + "download": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/download/-/download-4.4.3.tgz", + "integrity": "sha512-yOTsksXxUQ9b/p/HA3g9L97JZThcAKq8v3+Afwhf/kIoV0spu6pOvj+OKQbyGKYAwBGqSPbO+x1pCFSg5ce9OA==", + "dev": true, + "optional": true, + "requires": { + "caw": "^1.0.1", + "concat-stream": "^1.4.7", + "each-async": "^1.0.0", + "filenamify": "^1.0.1", + "got": "^5.0.0", + "gulp-decompress": "^1.2.0", + "gulp-rename": "^1.2.0", + "is-url": "^1.2.0", + "object-assign": "^4.0.1", + "read-all-stream": "^3.0.0", + "readable-stream": "^2.0.2", + "stream-combiner2": "^1.1.1", + "vinyl": "^1.0.0", + "vinyl-fs": "^2.2.0", + "ware": "^1.2.0" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "optional": true + } + } + }, + "dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "requires": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + } + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "each-async": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/each-async/-/each-async-1.1.1.tgz", + "integrity": "sha512-0hJGub96skwr+sUojv7zQ0kc9i4jn3SwLiLk8Jr7KDz7aaaMzkN5UX3a/9ZhzC0OfZVyXHhlHcjC0KVOiKZ+HQ==", + "dev": true, + "optional": true, + "requires": { + "onetime": "^1.0.0", + "set-immediate-shim": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "optional": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/error/-/error-7.2.1.tgz", + "integrity": "sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==", + "dev": true, + "requires": { + "string-template": "~0.2.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true + }, + "es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "requires": { + "es-errors": "^1.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==", + "dev": true + }, + "exec-buffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/exec-buffer/-/exec-buffer-2.0.1.tgz", + "integrity": "sha512-or7SADjL54VpD0Z3mzsJ6LpSLiqy1VLeAuamwa4k1gXVJCKY+5Y2H+DTgAru5UuEzmN2RqiHHGTEjzT5YLnE/A==", + "dev": true, + "optional": true, + "requires": { + "rimraf": "^2.2.6", + "tempfile": "^1.0.0" + } + }, + "exec-series": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/exec-series/-/exec-series-1.0.3.tgz", + "integrity": "sha512-VkmGmKa4oWkVBcPPfSzOEmry9ELWKk4oodvXpmtYmvGD82k/TnT0CGNw9VoxQLYGwNJR6fIaXpHUhBm4tNTSMQ==", + "dev": true, + "optional": true, + "requires": { + "async-each-series": "^1.1.0", + "object-assign": "^4.1.0" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "optional": true + } + } + }, + "executable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/executable/-/executable-1.1.0.tgz", + "integrity": "sha512-qZLuUgqTqYRLdF8Gl56y/JhT+X15uPX6y0Vpmj0cF4SCwbswBPc6yxzr1nClQa+SwRQ5Sk9+Mxa3ZBX9t6aWzg==", + "dev": true, + "optional": true, + "requires": { + "meow": "^3.1.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha512-AFASGfIlnIbkKPQwX1yHaDjFvh/1gyKJODme52V6IORh69uEYgZp0o9C+qsIGNVEiuuhQU0CSSl++Rlegg1qvA==", + "dev": true, + "requires": { + "fill-range": "^2.1.0" + }, + "dependencies": { + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true, + "optional": true + }, + "fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "optional": true, + "requires": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + } + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "optional": true, + "requires": { + "pend": "~1.2.0" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + } + } + }, + "file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", + "dev": true + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha512-BTCqyBaWBTsauvnHiE8i562+EdJj+oUpkqWp2R1iCoR8f6oo8STRu3of7WJJ0TqWtxN50a5YFpzYK4Jj9esYfQ==", + "dev": true + }, + "filename-reserved-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz", + "integrity": "sha512-UZArj7+U+2reBBVCvVmRlyq9D7EYQdUtuNN+1iz7pF1jGcJ2L0TjiRCxsTZfj2xFbM4c25uGCUDpKTHA7L2TKg==", + "dev": true, + "optional": true + }, + "filenamify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz", + "integrity": "sha512-DKVP0WQcB7WaIMSwDETqImRej2fepPqvXQjaVib7LRZn9Rxn5UbvK2tYTqGf1A1DkIprQQkG4XSQXSOZp7Q3GQ==", + "dev": true, + "optional": true, + "requires": { + "filename-reserved-regex": "^1.0.0", + "strip-outer": "^1.0.0", + "trim-repeated": "^1.0.0" + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "find-versions": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-1.2.1.tgz", + "integrity": "sha512-t0ciYD8XnoFVirFJN2niUJAQ/kyZU5UDSJobyekmiMPCBsYsWd4nd75e7HU2Xf4m+1Y7iLEo3fovNRNIV5MaDQ==", + "dev": true, + "optional": true, + "requires": { + "array-uniq": "^1.0.0", + "get-stdin": "^4.0.1", + "meow": "^3.5.0", + "semver-regex": "^1.0.0" + } + }, + "findup-sync": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", + "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", + "resolve-dir": "^1.0.1" + } + }, + "fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + } + }, + "first-chunk-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", + "integrity": "sha512-ArRi5axuv66gEsyl3UuK80CzW7t56hem73YGNYxNWTGNKFJUadSb9Gu9SHijYEUi8ulQMf1bJomYNwSCPHhtTQ==", + "dev": true + }, + "flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha512-8HWGSLAPr+AG0hBpsqi5Ob8HrLStN/LWeqhpFl14d7FJgHK48TmgLoALPz69XSUR65YJzDfLUX/BM8+MLJLghQ==", + "dev": true, + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true, + "optional": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, + "get-intrinsic": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "dev": true, + "requires": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "function-bind": "^1.1.2", + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + } + }, + "get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "requires": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + } + }, + "get-proxy": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-1.1.0.tgz", + "integrity": "sha512-3cJ+77wC52qD2PqWNXtB2HkU6tQXc/X3hSMtSN0Y8c8nbYMMxF7vpsjH4H0iSt+28l/NK13DKl8iKAVGkqDFnA==", + "dev": true, + "optional": true, + "requires": { + "rc": "^1.1.2" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", + "dev": true + }, + "getobject": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz", + "integrity": "sha512-2zblDBaFcb3rB4rF77XVnuINOE2h2k/OnqXAiy0IrTxUfV1iFp3la33oAQVY9pCpWU268WFYVt2t71hlMuLsOg==", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "optional": true + } + } + }, + "gifsicle": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/gifsicle/-/gifsicle-3.0.4.tgz", + "integrity": "sha512-bfwYZooxxqCHpu3qUMn3En9xij/rrQd1fD9TNr+f7r5y/Inqj0WGkL7AeqQffBe/Sd6M/MIHzRKeD9hgI6Xavg==", + "dev": true, + "optional": true, + "requires": { + "bin-build": "^2.0.0", + "bin-wrapper": "^3.0.0", + "logalot": "^2.0.0" + } + }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==", + "dev": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-stream": { + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz", + "integrity": "sha512-piN8XVAO2sNxwVLokL4PswgJvK/uQ6+awwXUVRTGF+rRfgCZpn4hOqxiRuTEbU/k3qgKl0DACYQ/0Sge54UMQg==", + "dev": true, + "requires": { + "extend": "^3.0.0", + "glob": "^5.0.3", + "glob-parent": "^3.0.0", + "micromatch": "^2.3.7", + "ordered-read-streams": "^0.3.0", + "through2": "^0.6.0", + "to-absolute-glob": "^0.1.1", + "unique-stream": "^2.0.2" + }, + "dependencies": { + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + } + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "globule": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz", + "integrity": "sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "^4.17.21", + "minimatch": "~3.0.2" + } + }, + "glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "dev": true, + "optional": true, + "requires": { + "sparkles": "^1.0.0" + } + }, + "gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true + }, + "got": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-5.7.1.tgz", + "integrity": "sha512-1qd54GLxvVgzuidFmw9ze9umxS3rzhdBH6Wt6BTYrTQUXTN01vGGYXwzLzYLowNx8HBH3/c7kRyvx90fh13i7Q==", + "dev": true, + "optional": true, + "requires": { + "create-error-class": "^3.0.1", + "duplexer2": "^0.1.4", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "node-status-codes": "^1.0.0", + "object-assign": "^4.0.1", + "parse-json": "^2.1.0", + "pinkie-promise": "^2.0.0", + "read-all-stream": "^3.0.0", + "readable-stream": "^2.0.5", + "timed-out": "^3.0.0", + "unzip-response": "^1.0.2", + "url-parse-lax": "^1.0.0" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "optional": true + } + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "grunt": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.6.1.tgz", + "integrity": "sha512-/ABUy3gYWu5iBmrUSRBP97JLpQUm0GgVveDCp6t3yRNIoltIYw7rEj3g5y1o2PGPR2vfTRGa7WC/LZHLTXnEzA==", + "dev": true, + "requires": { + "dateformat": "~4.6.2", + "eventemitter2": "~0.4.13", + "exit": "~0.1.2", + "findup-sync": "~5.0.0", + "glob": "~7.1.6", + "grunt-cli": "~1.4.3", + "grunt-known-options": "~2.0.0", + "grunt-legacy-log": "~3.0.0", + "grunt-legacy-util": "~2.0.1", + "iconv-lite": "~0.6.3", + "js-yaml": "~3.14.0", + "minimatch": "~3.0.4", + "nopt": "~3.0.6" + }, + "dependencies": { + "grunt-cli": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz", + "integrity": "sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ==", + "dev": true, + "requires": { + "grunt-known-options": "~2.0.0", + "interpret": "~1.1.0", + "liftup": "~3.0.1", + "nopt": "~4.0.1", + "v8flags": "~3.2.0" + }, + "dependencies": { + "nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + } + } + } + } + }, + "grunt-cli": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.5.0.tgz", + "integrity": "sha512-rILKAFoU0dzlf22SUfDtq2R1fosChXXlJM5j7wI6uoW8gwmXDXzbUvirlKZSYCdXl3LXFbR+8xyS+WFo+b6vlA==", + "dev": true, + "requires": { + "grunt-known-options": "~2.0.0", + "interpret": "~1.1.0", + "liftup": "~3.0.1", + "nopt": "~5.0.0", + "v8flags": "^4.0.1" + }, + "dependencies": { + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "v8flags": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.1.tgz", + "integrity": "sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==", + "dev": true + } + } + }, + "grunt-contrib-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz", + "integrity": "sha512-QdTmcxe8aim2Z0dFeuSJ+f7fHIeY7PZaTMZxgvosjXwyMhpy2GUR5WHkr12lksHfZVE80v2wUwqF56wyfPUwoQ==", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "source-map": "^0.5.3" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true + } + } + }, + "grunt-contrib-imagemin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/grunt-contrib-imagemin/-/grunt-contrib-imagemin-1.0.1.tgz", + "integrity": "sha512-5QM+e2zgC3eYn6f7XMZnEPQvunp0cSktW7ryyX9wMqv+LB5Q5rgKGwpjUwy5XQovK82JnMAelhodS3ylpKGAxw==", + "dev": true, + "requires": { + "async": "^1.5.2", + "chalk": "^1.0.0", + "gulp-rename": "^1.2.0", + "imagemin": "^4.0.0", + "pretty-bytes": "^3.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true + } + } + }, + "grunt-contrib-less": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-1.4.1.tgz", + "integrity": "sha512-NI8pp1KL3c43iR6OLWRyla6I5FLSpvbT5R6UzGHvdRDT0cM0WVfDiIAqqnjDL9z7pPr3ZyOrum5Jn1CIATmHxQ==", + "dev": true, + "requires": { + "async": "^2.0.0", + "chalk": "^1.0.0", + "less": "~2.7.1", + "lodash": "^4.8.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true + }, + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true + } + } + }, + "grunt-contrib-uglify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-2.3.0.tgz", + "integrity": "sha512-hdV6W7OwRCcYb6MJoSK8OE/D3dFJ02ykp+UMoGNBGusKxiX0TBreQ0JD/PHMsBUfCmp8vOYEbL9np90qO4bJJQ==", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "maxmin": "^1.1.0", + "object.assign": "^4.0.4", + "uglify-js": "~2.8.21", + "uri-path": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true + } + } + }, + "grunt-contrib-watch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz", + "integrity": "sha512-yGweN+0DW5yM+oo58fRu/XIRrPcn3r4tQx+nL7eMRwjpvk+rQY6R8o94BPK0i2UhTg9FN21hS+m8vR8v9vXfeg==", + "dev": true, + "requires": { + "async": "^2.6.0", + "gaze": "^1.1.0", + "lodash": "^4.17.10", + "tiny-lr": "^1.1.1" + }, + "dependencies": { + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + } + } + }, + "grunt-known-options": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-2.0.0.tgz", + "integrity": "sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA==", + "dev": true + }, + "grunt-legacy-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-3.0.0.tgz", + "integrity": "sha512-GHZQzZmhyq0u3hr7aHW4qUH0xDzwp2YXldLPZTCjlOeGscAOWWPftZG3XioW8MasGp+OBRIu39LFx14SLjXRcA==", + "dev": true, + "requires": { + "colors": "~1.1.2", + "grunt-legacy-log-utils": "~2.1.0", + "hooker": "~0.2.3", + "lodash": "~4.17.19" + } + }, + "grunt-legacy-log-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz", + "integrity": "sha512-lwquaPXJtKQk0rUM1IQAop5noEpwFqOXasVoedLeNzaibf/OPWjKYvvdqnEHNmU+0T0CaReAXIbGo747ZD+Aaw==", + "dev": true, + "requires": { + "chalk": "~4.1.0", + "lodash": "~4.17.19" + } + }, + "grunt-legacy-util": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-2.0.1.tgz", + "integrity": "sha512-2bQiD4fzXqX8rhNdXkAywCadeqiPiay0oQny77wA2F3WF4grPJXCvAcyoWUJV+po/b15glGkxuSiQCK299UC2w==", + "dev": true, + "requires": { + "async": "~3.2.0", + "exit": "~0.1.2", + "getobject": "~1.0.0", + "hooker": "~0.2.3", + "lodash": "~4.17.21", + "underscore.string": "~3.3.5", + "which": "~2.0.2" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "gulp-decompress": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gulp-decompress/-/gulp-decompress-1.2.0.tgz", + "integrity": "sha512-ChTv+4/4BwAdQLUgQoAvLFjYFvxYF6p9Mmf/b19/Lp7yNCvb8+KRkdXV8Gd7XErxtrEh8XDCCVon3DgqW4TgfA==", + "dev": true, + "optional": true, + "requires": { + "archive-type": "^3.0.0", + "decompress": "^3.0.0", + "gulp-util": "^3.0.1", + "readable-stream": "^2.0.2" + } + }, + "gulp-rename": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.4.0.tgz", + "integrity": "sha512-swzbIGb/arEoFK89tPY58vg3Ok1bw+d35PfUNwWqdo7KM4jkmuGA78JiDNqR+JeZFaeeHnRg9N7aihX3YPmsyg==", + "dev": true + }, + "gulp-sourcemaps": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz", + "integrity": "sha512-NjRy6+Qb5K1xbwOvPviD3uA4KSq2zsalPL+4vxPQPuL+kKzHjXJL10/kLaESic3LmBto8VIBHr3gIN3F9AjnhA==", + "dev": true, + "requires": { + "convert-source-map": "^1.1.1", + "graceful-fs": "^4.1.2", + "strip-bom": "^2.0.0", + "through2": "^2.0.0", + "vinyl": "^1.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "gulp-util": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "integrity": "sha512-q5oWPc12lwSFS9h/4VIjG+1NuNDlJ48ywV2JKItY4Ycc/n1fXJeYPVQsfu5ZrhQi7FGSDBalwUCLar/GyHXKGw==", + "dev": true, + "optional": true, + "requires": { + "array-differ": "^1.0.0", + "array-uniq": "^1.0.2", + "beeper": "^1.0.0", + "chalk": "^1.0.0", + "dateformat": "^2.0.0", + "fancy-log": "^1.1.0", + "gulplog": "^1.0.0", + "has-gulplog": "^0.1.0", + "lodash._reescape": "^3.0.0", + "lodash._reevaluate": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.template": "^3.0.0", + "minimist": "^1.1.0", + "multipipe": "^0.1.2", + "object-assign": "^3.0.0", + "replace-ext": "0.0.1", + "through2": "^2.0.0", + "vinyl": "^0.5.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "optional": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "dateformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha512-GODcnWq3YGoTnygPfi02ygEiRxqUxpJwuRHjdhJYuxpcZmDq4rjBiXYmbCCzStxo176ixfLT6i4NPwQooRySnw==", + "dev": true, + "optional": true + }, + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==", + "dev": true, + "optional": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "optional": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "optional": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "vinyl": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", + "integrity": "sha512-P5zdf3WB9uzr7IFoVQ2wZTmUwHL8cMZWJGzLBNCHNZ3NB6HTMsYABtt7z8tAGIINLXyAob9B9a1yzVGMFOYKEA==", + "dev": true, + "optional": true, + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } + } + } + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==", + "dev": true, + "optional": true, + "requires": { + "glogg": "^1.0.0" + } + }, + "gzip-size": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz", + "integrity": "sha512-mu66twX6zg8WB6IPfUtrquS7fjwGnDJ7kdVcggd5rpjwBItQKjHtvhu6VcQMkqPYAR7DjWpEaN3xiBSNmxvzPg==", + "dev": true, + "requires": { + "browserify-zlib": "^0.1.4", + "concat-stream": "^1.4.1" + } + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha512-f8xf2GOR6Rgwc9FPTLNzgwB+JQ2/zMauYXSWmX5YV5acex6VomT0ocSuwR7BfXo5MpHi+jL+saaux2fwsGJDKQ==", + "dev": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha512-5Gbp6RAftMYYV3UEI4c4Vv3+a4dQ7taVyvHt+/L6kRt+f4HX1GweAk5UDWN0SvdVnRBzGQ6OG89pGaD9uSFnVw==", + "dev": true, + "optional": true, + "requires": { + "ajv": "^4.9.1", + "har-schema": "^1.0.5" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha512-+F4GzLjwHNNDEAJW2DC1xXfEoPkRDmUdJ7CBYw4MpqtDwOnqdImJl7GWlpqx+Wko6//J8uKTnIe4wZSv7yCqmw==", + "dev": true, + "optional": true, + "requires": { + "sparkles": "^1.0.0" + } + }, + "has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0" + } + }, + "has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true + }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha512-X8xbmTc1cbPXcQV4WkLcRMALuyoxhfpFATmyuCxJPOAvrDS4DNnsTAOmKUxMTOWU6TzrTOkxPKwIx5ZOpJVSrg==", + "dev": true, + "optional": true, + "requires": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha512-V6Yw1rIcYV/4JsnggjBU0l4Kr+EXhpwqXRusENU1Xx6ro00IHPHYNynCuBTOZAPlr3AAmLvchH9I7N/VUdvOwQ==", + "dev": true, + "optional": true + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hooker": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "integrity": "sha512-t+UerCsQviSymAInD01Pw+Dn/usmz1sRO+3Zk1+lx8eg+WKpD2ulcwWqHHL0+aseRBr+3+vIhiG1K1JTwaIcTA==", + "dev": true + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "http-parser-js": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz", + "integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==", + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha512-iUn0NcRULlDGtqNLN1Jxmzayk8ogm7NToldASyZBpM2qggbphjXzNOiw3piN8tgz+e/DRs6X5gAzFwTI6BCRcg==", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true + }, + "imagemin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-4.0.0.tgz", + "integrity": "sha512-iJyJW7JAHHGsbmb729CEpEILUXx8xXvczQ8SAS8nT97UPKkawgoMGIuW+It9lyRerPSiB7eliZ/tE2K3Bww5uA==", + "dev": true, + "requires": { + "buffer-to-vinyl": "^1.0.0", + "concat-stream": "^1.4.6", + "imagemin-gifsicle": "^4.0.0", + "imagemin-jpegtran": "^4.0.0", + "imagemin-optipng": "^4.0.0", + "imagemin-svgo": "^4.0.0", + "optional": "^0.1.0", + "readable-stream": "^2.0.0", + "stream-combiner2": "^1.1.1", + "vinyl-fs": "^2.1.1" + } + }, + "imagemin-gifsicle": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/imagemin-gifsicle/-/imagemin-gifsicle-4.2.0.tgz", + "integrity": "sha512-YrmI8O4hbNLoS7LDG65QwA92k5pRQ0UkJJSeAq44Pc2fWTMUKTLEYjCBBvSC22qKRZUB7nTEezI/hWC5xE6HTg==", + "dev": true, + "optional": true, + "requires": { + "gifsicle": "^3.0.0", + "is-gif": "^1.0.0", + "through2": "^0.6.1" + } + }, + "imagemin-jpegtran": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/imagemin-jpegtran/-/imagemin-jpegtran-4.3.2.tgz", + "integrity": "sha512-rTcs0JPWSPUKJKTc2IoFF4Tes34FLKZLSXkxl4z1fS86/zdSjIutA5VZgte/iZZPzyGzKo+EiFbd/T3p2odt9w==", + "dev": true, + "optional": true, + "requires": { + "is-jpg": "^1.0.0", + "jpegtran-bin": "^3.0.0", + "through2": "^2.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "optional": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "imagemin-optipng": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-4.3.0.tgz", + "integrity": "sha512-URpRIva07RB3k+v3cUFpMT8sj0MGU349pRfWIZRDrxLrhh0iDxnnzmsD79QCZ4swv51RWgQat3pZnaR8RuQtlg==", + "dev": true, + "optional": true, + "requires": { + "exec-buffer": "^2.0.0", + "is-png": "^1.0.0", + "optipng-bin": "^3.0.0", + "through2": "^0.6.1" + } + }, + "imagemin-svgo": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-4.2.1.tgz", + "integrity": "sha512-kAHl0IIfJcrCdje1z4PcVzz7nE2wMgIX9Nolkyl0nNAjEz2P7c2o0ZrJr1FfhKx372cJPWpttALKQ2rE0UpoZg==", + "dev": true, + "optional": true, + "requires": { + "is-svg": "^1.0.0", + "svgo": "^0.6.0", + "through2": "^2.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "optional": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha512-CLM8SNMDu7C5psFCn6Wg/tgpj/bKAg7hc2gWqcuR9OD5Ft9PhBpIu8PLicPeis+xDd6YX2ncI8MCA64I9tftIA==", + "dev": true + }, + "ip-regex": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-1.0.3.tgz", + "integrity": "sha512-HjpCHTuxbR/6jWJroc/VN+npo5j0T4Vv2TAI5qdEHQx7hsL767MeccGFSsLtF694EiZKTSEqgoeU6DtGFCcuqQ==", + "dev": true, + "optional": true + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-bzip2": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-bzip2/-/is-bzip2-1.0.0.tgz", + "integrity": "sha512-v5DA9z/rmk4UdJtb3N1jYqjvCA5roRVf5Q6vprHOcF6U/98TmAJ/AvbPeRMEOYWDW4eMr/pJj5Fnfe0T2wL1Bg==", + "dev": true, + "optional": true + }, + "is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "requires": { + "hasown": "^2.0.2" + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg==", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha512-0EygVC5qPvIyb+gSz7zdD5/AAoS6Qrx1e//6N4yv4oNm30kqvdmG66oZFWVlQHUWe5OjP08FuTw2IdT0EOTcYA==", + "dev": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true + }, + "is-gif": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-gif/-/is-gif-1.0.0.tgz", + "integrity": "sha512-WDzHvXD3xfQ5einLRHRH7iReMuPwuXImHikxQeTWP09kGIv2mf2ZM63e9YHVSq9kEgjJuxRSp5AzH8Hga0+lNw==", + "dev": true, + "optional": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-gzip": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz", + "integrity": "sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==", + "dev": true, + "optional": true + }, + "is-jpg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-jpg/-/is-jpg-1.0.1.tgz", + "integrity": "sha512-X5PVpLMBH/OaeTN8quzbcLTlwXCb/6n3tcfYTtEDzp0ZwAlgAOtIAIBHN4mS5OcscMgO8etZ5Ol1mNrXSqwBVQ==", + "dev": true, + "optional": true + }, + "is-natural-number": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-2.1.1.tgz", + "integrity": "sha512-88gG/Fur5/8RkhB6UonqOuwQfNJvuaDStW/+r6oIB/hOQPUQe7DiiDQq0fitGOnARt+mQl/S6rg6Vku+i0sA4w==", + "dev": true, + "optional": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "dev": true, + "optional": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-png": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-png/-/is-png-1.1.0.tgz", + "integrity": "sha512-23Rmps8UEx3Bzqr0JqAtQo0tYP6sDfIfMt1rL9rzlla/zbteftI9LSJoqsIoGgL06sJboDGdVns4RTakAW/WTw==", + "dev": true, + "optional": true + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha512-Yu68oeXJ7LeWNmZ3Zov/xg/oDBnBK2RNxwYY1ilNJX+tKKZqgPK+qOn/Gs9jEu66KDY9Netf5XLKNGzas/vPfQ==", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q==", + "dev": true + }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha512-cr/SlUEe5zOGmzvj9bUyC4LVvkNVAXu4GytXLNMr1pny+a65MpQ9IJzFHD5vi7FyJgb4qt27+eS3TuQnqB+RQw==", + "dev": true, + "optional": true + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", + "dev": true, + "optional": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true + }, + "is-svg": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-1.1.1.tgz", + "integrity": "sha512-o6rxtFf0DlA6nJLX/5IrDRjuRJ4FeSmoFhJW/wKNF8WrcS7jg/zXM5od1HFMVnymFhFWcvLEXXcqUq0Np3e4MA==", + "dev": true, + "optional": true + }, + "is-tar": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-tar/-/is-tar-1.0.0.tgz", + "integrity": "sha512-8sR603bS6APKxcdkQ1e5rAC9JDCxM3OlbGJDWv5ajhHqIh6cTaqcpeOTch1iIeHYY4nHEFTgmCiGSLfvmODH4w==", + "dev": true, + "optional": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true, + "optional": true + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "dev": true, + "optional": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "is-valid-glob": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz", + "integrity": "sha512-CvG8EtJZ8FyzVOGPzrDorzyN65W1Ld8BVnqshRCah6pFIsprGx3dKgFtjLn/Vw9kGqR4OlR84U7yhT9ZVTyWIQ==", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-zip": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-zip/-/is-zip-1.0.0.tgz", + "integrity": "sha512-aym/dLqHZVMW/+bbNrA/eTeWTyW4fE6koLSoFSsM2GF3/pho7aPCcmHFWFLvzHu7MDuf67domYn36GDwU/cJkQ==", + "dev": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true, + "optional": true + }, + "jpegtran-bin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jpegtran-bin/-/jpegtran-bin-3.2.0.tgz", + "integrity": "sha512-XdDj5m/ssa1Anieqd8/JVQLrIsBZ6A9rYzASfpNI0/o/rfsmQx1TP3zZ1GvkMMW5sVlqM2RcMjy8bg428UE9fQ==", + "dev": true, + "optional": true, + "requires": { + "bin-build": "^2.0.0", + "bin-wrapper": "^3.0.0", + "logalot": "^2.0.0" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true, + "optional": true + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.2.1.tgz", + "integrity": "sha512-Lp6HbbBgosLmJbjx0pBLbgvx68FaFU1sdkmBuckmhhJ88kL13OA51CDtR2yJB50eCNMH9wRqtQNNiAqQH4YXnA==", + "dev": true, + "optional": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "isarray": "^2.0.5", + "jsonify": "^0.0.1", + "object-keys": "^1.1.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "optional": true + } + } + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "optional": true + }, + "jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "dev": true, + "optional": true + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "optional": true + } + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==", + "dev": true + }, + "lazy-req": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/lazy-req/-/lazy-req-1.1.0.tgz", + "integrity": "sha512-Vn/JuGaYykbelAVNAhfVJxuwHQCOSNE6mqMtD+gnd+QORlAHwWVmVFqQga3yWt84G5vAwEwpT6sAsZ+tgJ88/Q==", + "dev": true, + "optional": true + }, + "lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "requires": { + "readable-stream": "^2.0.5" + } + }, + "less": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/less/-/less-2.7.3.tgz", + "integrity": "sha512-KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==", + "dev": true, + "requires": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.2.11", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "2.81.0", + "source-map": "^0.5.3" + } + }, + "liftup": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/liftup/-/liftup-3.0.1.tgz", + "integrity": "sha512-yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw==", + "dev": true, + "requires": { + "extend": "^3.0.2", + "findup-sync": "^4.0.0", + "fined": "^1.2.0", + "flagged-respawn": "^1.0.1", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.1", + "rechoir": "^0.7.0", + "resolve": "^1.19.0" + }, + "dependencies": { + "findup-sync": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", + "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + } + } + } + }, + "livereload-js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz", + "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==", + "dev": true + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ==", + "dev": true, + "optional": true + }, + "lodash._basetostring": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "integrity": "sha512-mTzAr1aNAv/i7W43vOR/uD/aJ4ngbtsRaCubp2BfZhlGU/eORUjg/7F6X0orNMdv33JOrdgGybtvMN/po3EWrA==", + "dev": true, + "optional": true + }, + "lodash._basevalues": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "integrity": "sha512-H94wl5P13uEqlCg7OcNNhMQ8KvWSIyqXzOPusRgHC9DK3o54P6P3xtbXlVbRABG4q5gSmp7EDdJ0MSuW9HX6Mg==", + "dev": true, + "optional": true + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==", + "dev": true, + "optional": true + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ==", + "dev": true, + "optional": true + }, + "lodash._reescape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "integrity": "sha512-Sjlavm5y+FUVIF3vF3B75GyXrzsfYV8Dlv3L4mEpuB9leg8N6yf/7rU06iLPx9fY0Mv3khVp9p7Dx0mGV6V5OQ==", + "dev": true, + "optional": true + }, + "lodash._reevaluate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "integrity": "sha512-OrPwdDc65iJiBeUe5n/LIjd7Viy99bKwDdk7Z5ljfZg0uFRFlfQaCy9tZ4YMAag9WAZmlVpe1iZrkIMMSMHD3w==", + "dev": true, + "optional": true + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", + "dev": true, + "optional": true + }, + "lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha512-O0pWuFSK6x4EXhM1dhZ8gchNtG7JMqBtrHdoUFUWXD7dJnNSUze1GuyQr5sOs0aCvgGeI3o/OJW8f4ca7FDxmQ==", + "dev": true, + "optional": true + }, + "lodash.escape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "integrity": "sha512-n1PZMXgaaDWZDSvuNZ/8XOcYO2hOKDqZel5adtR30VKQAtoWs/5AOeFA0vPV8moiPzlqe7F4cP2tzpFewQyelQ==", + "dev": true, + "optional": true, + "requires": { + "lodash._root": "^3.0.0" + } + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", + "dev": true, + "optional": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==", + "dev": true, + "optional": true + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "dev": true + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ==", + "dev": true, + "optional": true, + "requires": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw==", + "dev": true, + "optional": true + }, + "lodash.template": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "integrity": "sha512-0B4Y53I0OgHUJkt+7RmlDFWKjVAI/YUpWNiL9GQz5ORDr4ttgfQGo+phBWKFLJbBdtOwgMuUkdOHOnPg45jKmQ==", + "dev": true, + "optional": true, + "requires": { + "lodash._basecopy": "^3.0.0", + "lodash._basetostring": "^3.0.0", + "lodash._basevalues": "^3.0.0", + "lodash._isiterateecall": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0", + "lodash.keys": "^3.0.0", + "lodash.restparam": "^3.0.0", + "lodash.templatesettings": "^3.0.0" + } + }, + "lodash.templatesettings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "integrity": "sha512-TcrlEr31tDYnWkHFWDCV3dHYroKEXpJZ2YJYvJdhN+y4AkWMDZ5I4I8XDtUKqSAyG81N7w+I1mFEJtcED+tGqQ==", + "dev": true, + "optional": true, + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0" + } + }, + "logalot": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz", + "integrity": "sha512-Ah4CgdSRfeCJagxQhcVNMi9BfGYyEKLa6d7OA6xSbld/Hg3Cf2QiOa1mDpmG7Ve8LOH6DN3mdttzjQAvWTyVkw==", + "dev": true, + "optional": true, + "requires": { + "figures": "^1.3.5", + "squeak": "^1.0.0" + } + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==", + "dev": true + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "optional": true + }, + "lpad-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz", + "integrity": "sha512-MMIcFmmR9zlGZtBcFOows6c2COMekHCIFJz3ew/rRpKZ1wR4mXDPzvcVqLarux8M33X4TPSq2Jdw8WJj0q0KbQ==", + "dev": true, + "optional": true, + "requires": { + "get-stdin": "^4.0.1", + "indent-string": "^2.1.0", + "longest": "^1.0.0", + "meow": "^3.3.0" + } + }, + "make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true + }, + "math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true + }, + "math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", + "dev": true + }, + "maxmin": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz", + "integrity": "sha512-jypoV6wTPuz/ngkc2sDZnFvpvx14QICNKS/jK9RbkmiQQJZ4JWstIszA8iT/z9tPSF/vXQ5qtG0h65N9tiLIKA==", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "figures": "^1.0.1", + "gzip-size": "^1.0.0", + "pretty-bytes": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "pretty-bytes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", + "integrity": "sha512-LNisJvAjy+hruxp3GV4IkZZscTI34+ISfeM1hesB9V6ezIDfXYrBi9TIXVjjMcEB4QFN7tL+dFDEk4s8jMBMyA==", + "dev": true, + "requires": { + "get-stdin": "^4.0.1", + "meow": "^3.1.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true + } + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + } + } + }, + "merge-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "integrity": "sha512-e6RM36aegd4f+r8BZCcYXlO2P3H6xbUM6ktL2Xmf45GAOit9bI4z6/3VU7JwllVO1L7u0UDSg/EhzQ5lmMLolA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "requires": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "optional": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "optional": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "multipipe": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "integrity": "sha512-7ZxrUybYv9NonoXgwoOqtStIu18D1c3eFZj27hqgf5kBrBF8Q+tE8V0MW8dKM5QLkQPh1JhhbKgHLY9kifov4Q==", + "dev": true, + "optional": true, + "requires": { + "duplexer2": "0.0.2" + }, + "dependencies": { + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha512-+AWBwjGadtksxjOQSFDhPNQbed7icNXApT4+2BNpsXzcCBiInq2H9XW0O8sfHFaPmnQRs7cg/P0fAr2IWQSW0g==", + "dev": true, + "optional": true, + "requires": { + "readable-stream": "~1.1.9" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true, + "optional": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true, + "optional": true + } + } + }, + "node-status-codes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz", + "integrity": "sha512-1cBMgRxdMWE8KeWCqk2RIOrvUb0XCwYfEsY5/y2NlXyq4Y/RumnOZvTj4Nbr77+Vb2C+kyBoRTdkNOS8L3d/aQ==", + "dev": true, + "optional": true + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha512-VlF07iu3VV3+BTXj43Nmp6Irt/G7j/NgEctUS6IweH1RGhURjjCc2NWtzXFPXXWWfc7hgbXQdtiQu2LGp6MxUg==", + "dev": true, + "optional": true + }, + "object-assign": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", + "integrity": "sha512-CdsOUYIh5wIiozhJ3rLQgmUTgcyzFwZZrqhkKhODMoGtPKM+wt0h0CNIoauJWMsS9822EdzPsF/6mb4nLvPN5g==", + "dev": true, + "optional": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + } + }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", + "dev": true, + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha512-UiAM5mhmIuKLsOvrL+B0U2d1hXHF3bFYWIuH1LMpuV2EJEHG1Ntz06PgLEHjm6VFd87NpH8rastvPoyv6UW2fA==", + "dev": true, + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + } + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==", + "dev": true, + "optional": true + }, + "optional": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/optional/-/optional-0.1.4.tgz", + "integrity": "sha512-gtvrrCfkE08wKcgXaVwQVgwEQ8vel2dc5DDBn9RLQZ3YtmtkBss6A2HY6BnJH4N/4Ku97Ri/SF8sNWE2225WJw==", + "dev": true + }, + "optipng-bin": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/optipng-bin/-/optipng-bin-3.1.4.tgz", + "integrity": "sha512-gsHt71VXDuI7ymHq5pBdzKS5Q1dcHLW6V6j13gnutO1mS8ezulK5Q+Xj/9/e6AwtjOResu2/UOBO/AiGrBo6+A==", + "dev": true, + "optional": true, + "requires": { + "bin-build": "^2.0.0", + "bin-wrapper": "^3.0.0", + "logalot": "^2.0.0" + } + }, + "ordered-read-streams": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz", + "integrity": "sha512-xQvd8qvx9U1iYY9aVqPpoF5V9uaWJKV6ZGljkh/jkiNX0DiQsjbWvRumbh10QTMDE8DheaOEU8xi0szbrgjzcw==", + "dev": true, + "requires": { + "is-stream": "^1.0.1", + "readable-stream": "^2.0.1" + } + }, + "os-filter-obj": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-1.0.3.tgz", + "integrity": "sha512-rohpWX8f46ASEOR77j8ZlJ2j5Rzg0j7gxC73ceZaDeMyE6H3nXnwgEjgg5ySlcT0bDuPUw7qcdWtd8Pzp/FJxg==", + "dev": true, + "optional": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", + "dev": true + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==", + "dev": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "optional": true + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "dev": true, + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "optional": true + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha512-YHk5ez1hmMR5LOkb9iJkLKqoBlL7WD5M8ljC75ZfzXriuBIVNuecaXuU7e+hOwyqf24Wxhh7Vxgt7Hnw9288Tg==", + "dev": true, + "optional": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==", + "dev": true, + "optional": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha512-s/46sYeylUfHNjI+sA/78FAHlmIuKqI9wNnzEOGehAlUUYeObv5C2mOinXBjyUyWmJ2SfcS2/ydApH4hTF4WXQ==", + "dev": true + }, + "pretty-bytes": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz", + "integrity": "sha512-eb7ZAeUTgfh294cElcu51w+OTRp/6ItW758LjwJSK72LDevcuJn0P4eD71PLMDGPwwatXmAmYHTkzvpKlJE3ow==", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "optional": true, + "requires": { + "asap": "~2.0.3" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true, + "optional": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "dev": true, + "optional": true + }, + "qs": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.1.tgz", + "integrity": "sha512-LQy1Q1fcva/UsnP/6Iaa4lVeM49WiOitu2T4hZCyA/elLKu37L99qcBJk4VCCk+rdLvnMzfKyiN3SZTqdAZGSQ==", + "dev": true + }, + "randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "dev": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "raw-body": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", + "integrity": "sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg==", + "dev": true, + "requires": { + "bytes": "1", + "string_decoder": "0.10" + }, + "dependencies": { + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true + } + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "read-all-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz", + "integrity": "sha512-DI1drPHbmBcUDWrJ7ull/F2Qb8HkwBncVx8/RpKYFSIACYaVRQReISYPdZz/mt1y1+qMCOrfReTopERmaxtP6w==", + "dev": true, + "optional": true, + "requires": { + "pinkie-promise": "^2.0.0", + "readable-stream": "^2.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "requires": { + "resolve": "^1.9.0" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha512-AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ==", + "dev": true + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha512-IZnsR7voF0miGSu29EXPRgPTuEsI/+aibNSBbN1pplrfartF5wDYGADz3iD9vmBVf2r00rckWZf8BtS5kk7Niw==", + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" + }, + "dependencies": { + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true, + "optional": true + } + } + }, + "resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "requires": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg==", + "dev": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-json-parse": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz", + "integrity": "sha512-o0JmTu17WGUaUOHa1l0FPGXKBfijbxK6qoHzlkihsDXxzBHvJcA7zgviKR92Xs841rX9pK16unfphLq0/KqX7A==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true, + "optional": true + }, + "seek-bzip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", + "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", + "dev": true, + "optional": true, + "requires": { + "commander": "^2.8.1" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, + "semver-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-1.0.0.tgz", + "integrity": "sha512-1vZcoRC+LPtHFkLUPyrabsATDSHerxW+hJBN8h04HZOZBuewbXaNROtUVdEPrTdZsWNq6sfsXDhd48GB2xTG4g==", + "dev": true, + "optional": true + }, + "semver-truncate": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz", + "integrity": "sha512-V1fGg9i4CL3qesB6U0L6XAm4xOJiHmt4QAacazumuasc03BvtFGIMCduv01JWQ69Nv+JST9TqhSCiJoxoY031w==", + "dev": true, + "optional": true, + "requires": { + "semver": "^5.3.0" + } + }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + } + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==", + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha512-7bgVOAnPj3XjrKY577S+puCKGCRlUrcrEdsMeRXlg9Ghf5df/xNi6sONUa43WrHUd3TjJBF7O04jYoiY0FVa0A==", + "dev": true, + "optional": true, + "requires": { + "hoek": "2.x.x" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + }, + "sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "dev": true, + "optional": true + }, + "spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", + "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", + "dev": true + }, + "sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true + }, + "squeak": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz", + "integrity": "sha512-YQL1ulInM+ev8nXX7vfXsCsDh6IqXlrremc1hzi77776BtpWgYJUMto3UM05GSAaGzJgWekszjoKDrVNB5XG+A==", + "dev": true, + "optional": true, + "requires": { + "chalk": "^1.0.0", + "console-stream": "^0.1.1", + "lpad-align": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "optional": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "optional": true + } + } + }, + "sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dev": true, + "optional": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "optional": true + } + } + }, + "stat-mode": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz", + "integrity": "sha512-o+7DC0OM5Jt3+gratXXqfXf62V/CBoqQbT7Kp7jCxTYW2PLOB2/ZSGIfm9T5/QZe1Vw1MCbu6DoB6JnhVtxcJw==", + "dev": true, + "optional": true + }, + "stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", + "dev": true, + "requires": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "dev": true + }, + "string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "stringstream": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", + "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-bom-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz", + "integrity": "sha512-7jfJB9YpI2Z0aH3wu10ZqitvYJaE0s5IzFuWE+0pbb4Q/armTloEUShymkDO47YSLnjAW52mlXT//hs9wXNNJQ==", + "dev": true, + "requires": { + "first-chunk-stream": "^1.0.0", + "strip-bom": "^2.0.0" + } + }, + "strip-dirs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-1.1.1.tgz", + "integrity": "sha512-+0QvOUTIs3xMridKraQAUSIp/kq7FRt/QjevB40+U6qJfeuPpTDQENFVfAbfZp59GpJkxY+yMdjR5cgKZyR2vg==", + "dev": true, + "optional": true, + "requires": { + "chalk": "^1.0.0", + "get-stdin": "^4.0.1", + "is-absolute": "^0.1.5", + "is-natural-number": "^2.0.0", + "minimist": "^1.1.0", + "sum-up": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "optional": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "is-absolute": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz", + "integrity": "sha512-Xi9/ZSn4NFapG8RP98iNPMOeaV3mXPisxKxzKtHVqr3g56j/fBn+yZmnxSVAA8lmZbl2J9b/a4kJvfU3hqQYgA==", + "dev": true, + "optional": true, + "requires": { + "is-relative": "^0.1.0" + } + }, + "is-relative": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz", + "integrity": "sha512-wBOr+rNM4gkAZqoLRJI4myw5WzzIdQosFAAbnvfXP5z1LyzgAI3ivOKehC5KfqlQJZoihVhirgtCBj378Eg8GA==", + "dev": true, + "optional": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "optional": true + } + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "optional": true + }, + "strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "optional": true, + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "sum-up": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sum-up/-/sum-up-1.0.3.tgz", + "integrity": "sha512-zw5P8gnhiqokJUWRdR6F4kIIIke0+ubQSGyYUY506GCbJWtV7F6Xuy0j6S125eSX2oF+a8KdivsZ8PlVEH0Mcw==", + "dev": true, + "optional": true, + "requires": { + "chalk": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "optional": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "optional": true + } + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "svgo": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.6.6.tgz", + "integrity": "sha512-C5A1r5SjFesNoKsmc+kWBxmB04iBGH2D/nFy8HJaME9+SyZKcmqcN8QG+GwxIc7D2+JWhaaW7uaM9+XwfplTEQ==", + "dev": true, + "optional": true, + "requires": { + "coa": "~1.0.1", + "colors": "~1.1.2", + "csso": "~2.0.0", + "js-yaml": "~3.6.0", + "mkdirp": "~0.5.1", + "sax": "~1.2.1", + "whet.extend": "~0.9.9" + }, + "dependencies": { + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", + "dev": true, + "optional": true + }, + "js-yaml": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", + "integrity": "sha512-BLv3oxhfET+w5fjPwq3PsAsxzi9i3qzU//HMpWVz0A6KplF86HdR9x2TGnv9DXhSUrO7LO8czUiTd3yb3mLSvg==", + "dev": true, + "optional": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^2.6.0" + } + } + } + }, + "tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "dev": true, + "optional": true, + "requires": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + } + }, + "tempfile": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz", + "integrity": "sha512-NjT12fW6pSEKz1eVcADgaKfeM+XZ4+zSaqVz46XH7+CiEwcelnwtGWRRjF1p+xyW2PVgKKKS2UUw1LzRelntxg==", + "dev": true, + "optional": true, + "requires": { + "os-tmpdir": "^1.0.0", + "uuid": "^2.0.1" + } + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", + "dev": true, + "requires": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true + } + } + }, + "through2-filter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz", + "integrity": "sha512-miwWajb1B80NvIVKXFPN/o7+vJc4jYUvnZCwvhicRAoTxdD9wbcjri70j+BenCrN/JXEPKDjhpw4iY7yiNsCGg==", + "dev": true, + "requires": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==", + "dev": true, + "optional": true + }, + "timed-out": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-3.1.3.tgz", + "integrity": "sha512-3RB4qgvPkxF/FGPnrzaWLhW1rxNK2sdH0mFjbhxkfTR6QXvcM3EtYm9L44UrhODZrZ+yhDXeMncLqi8QXn2MJg==", + "dev": true, + "optional": true + }, + "tiny-lr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz", + "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==", + "dev": true, + "requires": { + "body": "^5.1.0", + "debug": "^3.1.0", + "faye-websocket": "~0.10.0", + "livereload-js": "^2.3.0", + "object-assign": "^4.1.0", + "qs": "^6.4.0" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + } + } + }, + "to-absolute-glob": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz", + "integrity": "sha512-Vvl5x6zNf9iVG1QTWeknmWrKzZxaeKfIDRibrZCR3b2V/2NlFJuD2HV7P7AVjaKLZNqLPHqyr0jGrW0fTcxCPQ==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1" + } + }, + "to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", + "dev": true, + "optional": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "dev": true, + "optional": true, + "requires": { + "punycode": "^1.4.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==", + "dev": true + }, + "trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "dev": true, + "optional": true, + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha512-e0IoVDWx8SDHc/hwFTqJDQ7CCDTEeGhmcT9jkWJjoGQSpgBz20nAMr80E3Tpk7PatJ1b37DQDgJR3CNSzcMOZQ==", + "dev": true, + "optional": true + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true, + "optional": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w==", + "dev": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q==", + "dev": true, + "optional": true + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", + "dev": true + }, + "underscore.string": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.6.tgz", + "integrity": "sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==", + "dev": true, + "requires": { + "sprintf-js": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "dev": true, + "requires": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dev": true, + "requires": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + } + } + }, + "unzip-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", + "integrity": "sha512-pwCcjjhEcpW45JZIySExBHYv5Y9EeL2OIGEfrSKp2dMUFGFv4CpvZkwJbVge8OvGH2BNNtJBx67DuKuJhf+N5Q==", + "dev": true, + "optional": true + }, + "uri-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz", + "integrity": "sha512-8pMuAn4KacYdGMkFaoQARicp4HSw24/DHOVKWqVRJ8LhhAwPPFpdGvdL9184JVmUwe7vz7Z9n6IqI6t5n2ELdg==", + "dev": true + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==", + "dev": true, + "optional": true, + "requires": { + "prepend-http": "^1.0.1" + } + }, + "url-regex": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/url-regex/-/url-regex-3.2.0.tgz", + "integrity": "sha512-dQ9cJzMou5OKr6ZzfvwJkCq3rC72PNXhqz0v3EIhF4a3Np+ujr100AhUx2cKx5ei3iymoJpJrPB3sVSEMdqAeg==", + "dev": true, + "optional": true, + "requires": { + "ip-regex": "^1.0.1" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "uuid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "integrity": "sha512-FULf7fayPdpASncVy4DLh3xydlXEJJpvIELjYjNeQWYUZ9pclcpvCZSr2gkmN2FrrGcI7G/cJsIEwk5/8vfXpg==", + "dev": true + }, + "v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "vali-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", + "integrity": "sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true, + "optional": true + } + } + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha512-Ci3wnR2uuSAWFMSglZuB8Z2apBdtOyz8CV7dC6/U1XbltXBC+IuutUkXQISz01P+US2ouBuesSbV6zILZ6BuzQ==", + "dev": true, + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } + }, + "vinyl-assign": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/vinyl-assign/-/vinyl-assign-1.2.1.tgz", + "integrity": "sha512-jUVK1MkXgsZDdyUAy0rnrcmPeuR/ZLwsaS377zaaciz9SoDRVPIjHlUcYVcUAzLD+AolsLxMMwSe/VP77lAvow==", + "dev": true, + "optional": true, + "requires": { + "object-assign": "^4.0.1", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "optional": true + } + } + }, + "vinyl-fs": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz", + "integrity": "sha512-lxMlQW/Wxk/pwhooY3Ut0Q11OH5ZvZfV0Gg1c306fBNWznQ6ZeQaCdE7XX0O/PpGSqgAsHMBxwFgcGxiYW3hZg==", + "dev": true, + "requires": { + "duplexify": "^3.2.0", + "glob-stream": "^5.3.2", + "graceful-fs": "^4.0.0", + "gulp-sourcemaps": "1.6.0", + "is-valid-glob": "^0.3.0", + "lazystream": "^1.0.0", + "lodash.isequal": "^4.0.0", + "merge-stream": "^1.0.0", + "mkdirp": "^0.5.0", + "object-assign": "^4.0.0", + "readable-stream": "^2.0.4", + "strip-bom": "^2.0.0", + "strip-bom-stream": "^1.0.0", + "through2": "^2.0.0", + "through2-filter": "^2.0.0", + "vali-date": "^1.0.0", + "vinyl": "^1.0.0" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "ware": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ware/-/ware-1.3.0.tgz", + "integrity": "sha512-Y2HUDMktriUm+SR2gZWxlrszcgtXExlhQYZ8QJNYbl22jum00KIUcHJ/h/sdAXhWTJcbSkiMYN9Z2tWbWYSrrw==", + "dev": true, + "optional": true, + "requires": { + "wrap-fn": "^0.1.0" + } + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "whet.extend": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "integrity": "sha512-mmIPAft2vTgEILgPeZFqE/wWh24SEsR/k+N9fJ3Jxrz44iDFy9aemCxdksfURSHYFCLmvs/d/7Iso5XjPpNfrA==", + "dev": true, + "optional": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg==", + "dev": true + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q==", + "dev": true + }, + "wrap-fn": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/wrap-fn/-/wrap-fn-0.1.5.tgz", + "integrity": "sha512-xDLdGx0M8JQw9QDAC9s5NUxtg9MI09F6Vbxa2LYoSoCvzJnx2n81YMIfykmXEGsUvuLaxnblJTzhSOjUOX37ag==", + "dev": true, + "optional": true, + "requires": { + "co": "3.1.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha512-QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A==", + "dev": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g==", + "dev": true + } + } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "optional": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/package.json b/content/package.json similarity index 100% rename from package.json rename to content/package.json diff --git a/content/pom.xml b/content/pom.xml new file mode 100644 index 000000000..bd766fa14 --- /dev/null +++ b/content/pom.xml @@ -0,0 +1,231 @@ + + 4.0.0 + + + org.gwtproject.site + 2.0-SNAPSHOT + gwt-site-parent + + gwt-site-content + + jar + + + markdown + http://www.gwtproject.org + + + UTF-8 + 1.8 + 1.8 + + + + generated-site + + + src/main/markdown + + + src/main/site + + + src/main/resources + + + + + org.codehaus.mojo + exec-maven-plugin + 1.1.1 + + + prepare-package + + java + + + com.google.gwt.site.markdown.MarkDown + + ${basedir}/src/main/markdown/ + ${basedir}/target/generated-site + ${basedir}/src/main/resources/main.tpl + ${basedir}/src/main/resources/toc.md + + + + + + + + maven-resources-plugin + 2.6 + + + copy doc resources + + prepare-package + + copy-resources + + + + woff2 + woff + ttf + eot + + ${basedir}/target/generated-site + + + src/main/site/ + + assets/img/* + assets/js/* + assets/less/* + + true + + + + + + + + maven-dependency-plugin + + + unpack + prepare-package + + unpack + + + + + org.gwtproject + gwt-dev + 2.12.2 + javadoc + + + ${project.build.directory}/generated-site/javadoc/latest + + + + + + maven-assembly-plugin + + + assemble + package + + single + + + + + + src/main/assembly/generated-site.xml + + + + + org.eclipse.jetty + jetty-maven-plugin + 9.4.28.v20200408 + + + 9999 + + + jar + + ${project.build.directory}/generated-site + + + + + + + + junit + junit + 4.13.1 + test + + + + org.commonmark + commonmark + + 0.21.0 + + + + org.commonmark + commonmark-ext-gfm-tables + + 0.21.0 + + + commons-io + commons-io + 2.7 + + + + + + grunt + + + + + com.github.eirslett + frontend-maven-plugin + 1.9.1 + + + install node and npm + generate-resources + + install-node-and-npm + + + v10.16.0 + 6.9.0 + + + + npm install + generate-resources + + npm + + + install + + + + grunt build + generate-resources + + grunt + + + + concat uglify imagemin less + + + + + + + + + + + diff --git a/src/main/assembly/generated-site.xml b/content/src/main/assembly/generated-site.xml similarity index 100% rename from src/main/assembly/generated-site.xml rename to content/src/main/assembly/generated-site.xml diff --git a/src/main/java/com/google/gwt/site/markdown/MDHelper.java b/content/src/main/java/com/google/gwt/site/markdown/MDHelper.java similarity index 100% rename from src/main/java/com/google/gwt/site/markdown/MDHelper.java rename to content/src/main/java/com/google/gwt/site/markdown/MDHelper.java diff --git a/src/main/java/com/google/gwt/site/markdown/MDHelperException.java b/content/src/main/java/com/google/gwt/site/markdown/MDHelperException.java similarity index 100% rename from src/main/java/com/google/gwt/site/markdown/MDHelperException.java rename to content/src/main/java/com/google/gwt/site/markdown/MDHelperException.java diff --git a/src/main/java/com/google/gwt/site/markdown/MDTranslator.java b/content/src/main/java/com/google/gwt/site/markdown/MDTranslator.java similarity index 100% rename from src/main/java/com/google/gwt/site/markdown/MDTranslator.java rename to content/src/main/java/com/google/gwt/site/markdown/MDTranslator.java diff --git a/src/main/java/com/google/gwt/site/markdown/MarkDown.java b/content/src/main/java/com/google/gwt/site/markdown/MarkDown.java similarity index 100% rename from src/main/java/com/google/gwt/site/markdown/MarkDown.java rename to content/src/main/java/com/google/gwt/site/markdown/MarkDown.java diff --git a/src/main/java/com/google/gwt/site/markdown/MarkupWriter.java b/content/src/main/java/com/google/gwt/site/markdown/MarkupWriter.java similarity index 100% rename from src/main/java/com/google/gwt/site/markdown/MarkupWriter.java rename to content/src/main/java/com/google/gwt/site/markdown/MarkupWriter.java diff --git a/src/main/java/com/google/gwt/site/markdown/TranslatorException.java b/content/src/main/java/com/google/gwt/site/markdown/TranslatorException.java similarity index 100% rename from src/main/java/com/google/gwt/site/markdown/TranslatorException.java rename to content/src/main/java/com/google/gwt/site/markdown/TranslatorException.java diff --git a/src/main/java/com/google/gwt/site/markdown/Util.java b/content/src/main/java/com/google/gwt/site/markdown/Util.java similarity index 100% rename from src/main/java/com/google/gwt/site/markdown/Util.java rename to content/src/main/java/com/google/gwt/site/markdown/Util.java diff --git a/src/main/java/com/google/gwt/site/markdown/fs/FileSystemTraverser.java b/content/src/main/java/com/google/gwt/site/markdown/fs/FileSystemTraverser.java similarity index 100% rename from src/main/java/com/google/gwt/site/markdown/fs/FileSystemTraverser.java rename to content/src/main/java/com/google/gwt/site/markdown/fs/FileSystemTraverser.java diff --git a/src/main/java/com/google/gwt/site/markdown/fs/MDNode.java b/content/src/main/java/com/google/gwt/site/markdown/fs/MDNode.java similarity index 100% rename from src/main/java/com/google/gwt/site/markdown/fs/MDNode.java rename to content/src/main/java/com/google/gwt/site/markdown/fs/MDNode.java diff --git a/src/main/java/com/google/gwt/site/markdown/fs/MDParent.java b/content/src/main/java/com/google/gwt/site/markdown/fs/MDParent.java similarity index 100% rename from src/main/java/com/google/gwt/site/markdown/fs/MDParent.java rename to content/src/main/java/com/google/gwt/site/markdown/fs/MDParent.java diff --git a/src/main/java/com/google/gwt/site/markdown/toc/TocCreator.java b/content/src/main/java/com/google/gwt/site/markdown/toc/TocCreator.java similarity index 100% rename from src/main/java/com/google/gwt/site/markdown/toc/TocCreator.java rename to content/src/main/java/com/google/gwt/site/markdown/toc/TocCreator.java diff --git a/src/main/java/com/google/gwt/site/markdown/toc/TocFromMdCreator.java b/content/src/main/java/com/google/gwt/site/markdown/toc/TocFromMdCreator.java similarity index 100% rename from src/main/java/com/google/gwt/site/markdown/toc/TocFromMdCreator.java rename to content/src/main/java/com/google/gwt/site/markdown/toc/TocFromMdCreator.java diff --git a/src/main/java/com/google/gwt/site/markdown/toc/TocFromTemplateCreator.java b/content/src/main/java/com/google/gwt/site/markdown/toc/TocFromTemplateCreator.java similarity index 100% rename from src/main/java/com/google/gwt/site/markdown/toc/TocFromTemplateCreator.java rename to content/src/main/java/com/google/gwt/site/markdown/toc/TocFromTemplateCreator.java diff --git a/src/main/markdown/GWTPolicy.md b/content/src/main/markdown/GWTPolicy.md similarity index 100% rename from src/main/markdown/GWTPolicy.md rename to content/src/main/markdown/GWTPolicy.md diff --git a/src/main/markdown/articles/articles.md b/content/src/main/markdown/articles/articles.md similarity index 100% rename from src/main/markdown/articles/articles.md rename to content/src/main/markdown/articles/articles.md diff --git a/src/main/markdown/articles/config.xml b/content/src/main/markdown/articles/config.xml similarity index 100% rename from src/main/markdown/articles/config.xml rename to content/src/main/markdown/articles/config.xml diff --git a/src/main/markdown/articles/dom_events_memory_leaks_and_you.md b/content/src/main/markdown/articles/dom_events_memory_leaks_and_you.md similarity index 100% rename from src/main/markdown/articles/dom_events_memory_leaks_and_you.md rename to content/src/main/markdown/articles/dom_events_memory_leaks_and_you.md diff --git a/src/main/markdown/articles/dynamic_host_page.md b/content/src/main/markdown/articles/dynamic_host_page.md similarity index 100% rename from src/main/markdown/articles/dynamic_host_page.md rename to content/src/main/markdown/articles/dynamic_host_page.md diff --git a/src/main/markdown/articles/elemental.md b/content/src/main/markdown/articles/elemental.md similarity index 100% rename from src/main/markdown/articles/elemental.md rename to content/src/main/markdown/articles/elemental.md diff --git a/src/main/markdown/articles/fragment_merging.md b/content/src/main/markdown/articles/fragment_merging.md similarity index 100% rename from src/main/markdown/articles/fragment_merging.md rename to content/src/main/markdown/articles/fragment_merging.md diff --git a/src/main/markdown/articles/gss_migration.md b/content/src/main/markdown/articles/gss_migration.md similarity index 100% rename from src/main/markdown/articles/gss_migration.md rename to content/src/main/markdown/articles/gss_migration.md diff --git a/src/main/markdown/articles/gwt-iphone.md b/content/src/main/markdown/articles/gwt-iphone.md similarity index 100% rename from src/main/markdown/articles/gwt-iphone.md rename to content/src/main/markdown/articles/gwt-iphone.md diff --git a/src/main/markdown/articles/mvp-architecture-2.md b/content/src/main/markdown/articles/mvp-architecture-2.md similarity index 100% rename from src/main/markdown/articles/mvp-architecture-2.md rename to content/src/main/markdown/articles/mvp-architecture-2.md diff --git a/src/main/markdown/articles/mvp-architecture.md b/content/src/main/markdown/articles/mvp-architecture.md similarity index 100% rename from src/main/markdown/articles/mvp-architecture.md rename to content/src/main/markdown/articles/mvp-architecture.md diff --git a/src/main/markdown/articles/security_for_gwt_applications.md b/content/src/main/markdown/articles/security_for_gwt_applications.md similarity index 100% rename from src/main/markdown/articles/security_for_gwt_applications.md rename to content/src/main/markdown/articles/security_for_gwt_applications.md diff --git a/src/main/markdown/articles/superdevmode.md b/content/src/main/markdown/articles/superdevmode.md similarity index 100% rename from src/main/markdown/articles/superdevmode.md rename to content/src/main/markdown/articles/superdevmode.md diff --git a/src/main/markdown/articles/testing_methodologies_using_gwt.md b/content/src/main/markdown/articles/testing_methodologies_using_gwt.md similarity index 100% rename from src/main/markdown/articles/testing_methodologies_using_gwt.md rename to content/src/main/markdown/articles/testing_methodologies_using_gwt.md diff --git a/src/main/markdown/articles/using_gwt_for_json_mashups.md b/content/src/main/markdown/articles/using_gwt_for_json_mashups.md similarity index 100% rename from src/main/markdown/articles/using_gwt_for_json_mashups.md rename to content/src/main/markdown/articles/using_gwt_for_json_mashups.md diff --git a/src/main/markdown/articles/using_gwt_with_hibernate.md b/content/src/main/markdown/articles/using_gwt_with_hibernate.md similarity index 100% rename from src/main/markdown/articles/using_gwt_with_hibernate.md rename to content/src/main/markdown/articles/using_gwt_with_hibernate.md diff --git a/src/main/markdown/benchmarks.md b/content/src/main/markdown/benchmarks.md similarity index 100% rename from src/main/markdown/benchmarks.md rename to content/src/main/markdown/benchmarks.md diff --git a/src/main/markdown/books.md b/content/src/main/markdown/books.md similarity index 100% rename from src/main/markdown/books.md rename to content/src/main/markdown/books.md diff --git a/src/main/markdown/casestudies.md b/content/src/main/markdown/casestudies.md similarity index 100% rename from src/main/markdown/casestudies.md rename to content/src/main/markdown/casestudies.md diff --git a/src/main/markdown/community-group-charter.md b/content/src/main/markdown/community-group-charter.md similarity index 100% rename from src/main/markdown/community-group-charter.md rename to content/src/main/markdown/community-group-charter.md diff --git a/src/main/markdown/community.md b/content/src/main/markdown/community.md similarity index 100% rename from src/main/markdown/community.md rename to content/src/main/markdown/community.md diff --git a/src/main/markdown/config.xml b/content/src/main/markdown/config.xml similarity index 100% rename from src/main/markdown/config.xml rename to content/src/main/markdown/config.xml diff --git a/src/main/markdown/developer_spotlight.md b/content/src/main/markdown/developer_spotlight.md similarity index 100% rename from src/main/markdown/developer_spotlight.md rename to content/src/main/markdown/developer_spotlight.md diff --git a/src/main/markdown/doc/config.xml b/content/src/main/markdown/doc/config.xml similarity index 100% rename from src/main/markdown/doc/config.xml rename to content/src/main/markdown/doc/config.xml diff --git a/src/main/markdown/doc/latest/DevGuide.md b/content/src/main/markdown/doc/latest/DevGuide.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuide.md rename to content/src/main/markdown/doc/latest/DevGuide.md diff --git a/src/main/markdown/doc/latest/DevGuideA11y.md b/content/src/main/markdown/doc/latest/DevGuideA11y.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideA11y.md rename to content/src/main/markdown/doc/latest/DevGuideA11y.md diff --git a/src/main/markdown/doc/latest/DevGuideAutoBeans.md b/content/src/main/markdown/doc/latest/DevGuideAutoBeans.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideAutoBeans.md rename to content/src/main/markdown/doc/latest/DevGuideAutoBeans.md diff --git a/src/main/markdown/doc/latest/DevGuideClientBundle.md b/content/src/main/markdown/doc/latest/DevGuideClientBundle.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideClientBundle.md rename to content/src/main/markdown/doc/latest/DevGuideClientBundle.md diff --git a/src/main/markdown/doc/latest/DevGuideCodeSplitting.md b/content/src/main/markdown/doc/latest/DevGuideCodeSplitting.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideCodeSplitting.md rename to content/src/main/markdown/doc/latest/DevGuideCodeSplitting.md diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasics.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasics.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideCodingBasics.md rename to content/src/main/markdown/doc/latest/DevGuideCodingBasics.md diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasicsClient.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasicsClient.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideCodingBasicsClient.md rename to content/src/main/markdown/doc/latest/DevGuideCodingBasicsClient.md diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasicsCompatibility.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasicsCompatibility.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideCodingBasicsCompatibility.md rename to content/src/main/markdown/doc/latest/DevGuideCodingBasicsCompatibility.md diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasicsDeferred.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasicsDeferred.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideCodingBasicsDeferred.md rename to content/src/main/markdown/doc/latest/DevGuideCodingBasicsDeferred.md diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasicsDelayed.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasicsDelayed.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideCodingBasicsDelayed.md rename to content/src/main/markdown/doc/latest/DevGuideCodingBasicsDelayed.md diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasicsFormatting.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasicsFormatting.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideCodingBasicsFormatting.md rename to content/src/main/markdown/doc/latest/DevGuideCodingBasicsFormatting.md diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasicsHistory.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasicsHistory.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideCodingBasicsHistory.md rename to content/src/main/markdown/doc/latest/DevGuideCodingBasicsHistory.md diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasicsJSNI.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasicsJSNI.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideCodingBasicsJSNI.md rename to content/src/main/markdown/doc/latest/DevGuideCodingBasicsJSNI.md diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasicsJSON.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasicsJSON.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideCodingBasicsJSON.md rename to content/src/main/markdown/doc/latest/DevGuideCodingBasicsJSON.md diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasicsJsInterop.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasicsJsInterop.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideCodingBasicsJsInterop.md rename to content/src/main/markdown/doc/latest/DevGuideCodingBasicsJsInterop.md diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasicsOverlay.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasicsOverlay.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideCodingBasicsOverlay.md rename to content/src/main/markdown/doc/latest/DevGuideCodingBasicsOverlay.md diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasicsXML.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasicsXML.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideCodingBasicsXML.md rename to content/src/main/markdown/doc/latest/DevGuideCodingBasicsXML.md diff --git a/src/main/markdown/doc/latest/DevGuideCompileReport.md b/content/src/main/markdown/doc/latest/DevGuideCompileReport.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideCompileReport.md rename to content/src/main/markdown/doc/latest/DevGuideCompileReport.md diff --git a/src/main/markdown/doc/latest/DevGuideCompilingAndDebugging.md b/content/src/main/markdown/doc/latest/DevGuideCompilingAndDebugging.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideCompilingAndDebugging.md rename to content/src/main/markdown/doc/latest/DevGuideCompilingAndDebugging.md diff --git a/src/main/markdown/doc/latest/DevGuideDeploying.md b/content/src/main/markdown/doc/latest/DevGuideDeploying.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideDeploying.md rename to content/src/main/markdown/doc/latest/DevGuideDeploying.md diff --git a/src/main/markdown/doc/latest/DevGuideGlossary.md b/content/src/main/markdown/doc/latest/DevGuideGlossary.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideGlossary.md rename to content/src/main/markdown/doc/latest/DevGuideGlossary.md diff --git a/src/main/markdown/doc/latest/DevGuideGssVsCss.md b/content/src/main/markdown/doc/latest/DevGuideGssVsCss.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideGssVsCss.md rename to content/src/main/markdown/doc/latest/DevGuideGssVsCss.md diff --git a/src/main/markdown/doc/latest/DevGuideHtml5.md b/content/src/main/markdown/doc/latest/DevGuideHtml5.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideHtml5.md rename to content/src/main/markdown/doc/latest/DevGuideHtml5.md diff --git a/src/main/markdown/doc/latest/DevGuideHtml5Storage.md b/content/src/main/markdown/doc/latest/DevGuideHtml5Storage.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideHtml5Storage.md rename to content/src/main/markdown/doc/latest/DevGuideHtml5Storage.md diff --git a/src/main/markdown/doc/latest/DevGuideI18n.md b/content/src/main/markdown/doc/latest/DevGuideI18n.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideI18n.md rename to content/src/main/markdown/doc/latest/DevGuideI18n.md diff --git a/src/main/markdown/doc/latest/DevGuideI18nConstants.md b/content/src/main/markdown/doc/latest/DevGuideI18nConstants.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideI18nConstants.md rename to content/src/main/markdown/doc/latest/DevGuideI18nConstants.md diff --git a/src/main/markdown/doc/latest/DevGuideI18nLocale.md b/content/src/main/markdown/doc/latest/DevGuideI18nLocale.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideI18nLocale.md rename to content/src/main/markdown/doc/latest/DevGuideI18nLocale.md diff --git a/src/main/markdown/doc/latest/DevGuideI18nMessages.md b/content/src/main/markdown/doc/latest/DevGuideI18nMessages.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideI18nMessages.md rename to content/src/main/markdown/doc/latest/DevGuideI18nMessages.md diff --git a/src/main/markdown/doc/latest/DevGuideI18nPluralForms.md b/content/src/main/markdown/doc/latest/DevGuideI18nPluralForms.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideI18nPluralForms.md rename to content/src/main/markdown/doc/latest/DevGuideI18nPluralForms.md diff --git a/src/main/markdown/doc/latest/DevGuideIE9.md b/content/src/main/markdown/doc/latest/DevGuideIE9.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideIE9.md rename to content/src/main/markdown/doc/latest/DevGuideIE9.md diff --git a/src/main/markdown/doc/latest/DevGuideLightweightMetrics.md b/content/src/main/markdown/doc/latest/DevGuideLightweightMetrics.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideLightweightMetrics.md rename to content/src/main/markdown/doc/latest/DevGuideLightweightMetrics.md diff --git a/src/main/markdown/doc/latest/DevGuideLinkers.md b/content/src/main/markdown/doc/latest/DevGuideLinkers.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideLinkers.md rename to content/src/main/markdown/doc/latest/DevGuideLinkers.md diff --git a/src/main/markdown/doc/latest/DevGuideLogging.md b/content/src/main/markdown/doc/latest/DevGuideLogging.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideLogging.md rename to content/src/main/markdown/doc/latest/DevGuideLogging.md diff --git a/src/main/markdown/doc/latest/DevGuideMvpActivitiesAndPlaces.md b/content/src/main/markdown/doc/latest/DevGuideMvpActivitiesAndPlaces.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideMvpActivitiesAndPlaces.md rename to content/src/main/markdown/doc/latest/DevGuideMvpActivitiesAndPlaces.md diff --git a/src/main/markdown/doc/latest/DevGuideOptimizing.md b/content/src/main/markdown/doc/latest/DevGuideOptimizing.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideOptimizing.md rename to content/src/main/markdown/doc/latest/DevGuideOptimizing.md diff --git a/src/main/markdown/doc/latest/DevGuideOrganizingProjects.md b/content/src/main/markdown/doc/latest/DevGuideOrganizingProjects.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideOrganizingProjects.md rename to content/src/main/markdown/doc/latest/DevGuideOrganizingProjects.md diff --git a/src/main/markdown/doc/latest/DevGuideRequestFactory.md b/content/src/main/markdown/doc/latest/DevGuideRequestFactory.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideRequestFactory.md rename to content/src/main/markdown/doc/latest/DevGuideRequestFactory.md diff --git a/src/main/markdown/doc/latest/DevGuideSecurity.md b/content/src/main/markdown/doc/latest/DevGuideSecurity.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideSecurity.md rename to content/src/main/markdown/doc/latest/DevGuideSecurity.md diff --git a/src/main/markdown/doc/latest/DevGuideSecurityRpcXsrf.md b/content/src/main/markdown/doc/latest/DevGuideSecurityRpcXsrf.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideSecurityRpcXsrf.md rename to content/src/main/markdown/doc/latest/DevGuideSecurityRpcXsrf.md diff --git a/src/main/markdown/doc/latest/DevGuideSecuritySafeHtml.md b/content/src/main/markdown/doc/latest/DevGuideSecuritySafeHtml.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideSecuritySafeHtml.md rename to content/src/main/markdown/doc/latest/DevGuideSecuritySafeHtml.md diff --git a/src/main/markdown/doc/latest/DevGuideServerCommunication.md b/content/src/main/markdown/doc/latest/DevGuideServerCommunication.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideServerCommunication.md rename to content/src/main/markdown/doc/latest/DevGuideServerCommunication.md diff --git a/src/main/markdown/doc/latest/DevGuideTesting.md b/content/src/main/markdown/doc/latest/DevGuideTesting.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideTesting.md rename to content/src/main/markdown/doc/latest/DevGuideTesting.md diff --git a/src/main/markdown/doc/latest/DevGuideTestingCoverage.md b/content/src/main/markdown/doc/latest/DevGuideTestingCoverage.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideTestingCoverage.md rename to content/src/main/markdown/doc/latest/DevGuideTestingCoverage.md diff --git a/src/main/markdown/doc/latest/DevGuideTestingHtmlUnit.md b/content/src/main/markdown/doc/latest/DevGuideTestingHtmlUnit.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideTestingHtmlUnit.md rename to content/src/main/markdown/doc/latest/DevGuideTestingHtmlUnit.md diff --git a/src/main/markdown/doc/latest/DevGuideTestingRemoteTesting.md b/content/src/main/markdown/doc/latest/DevGuideTestingRemoteTesting.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideTestingRemoteTesting.md rename to content/src/main/markdown/doc/latest/DevGuideTestingRemoteTesting.md diff --git a/src/main/markdown/doc/latest/DevGuideUi.md b/content/src/main/markdown/doc/latest/DevGuideUi.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideUi.md rename to content/src/main/markdown/doc/latest/DevGuideUi.md diff --git a/src/main/markdown/doc/latest/DevGuideUiBinder.md b/content/src/main/markdown/doc/latest/DevGuideUiBinder.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideUiBinder.md rename to content/src/main/markdown/doc/latest/DevGuideUiBinder.md diff --git a/src/main/markdown/doc/latest/DevGuideUiBinderI18n.md b/content/src/main/markdown/doc/latest/DevGuideUiBinderI18n.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideUiBinderI18n.md rename to content/src/main/markdown/doc/latest/DevGuideUiBinderI18n.md diff --git a/src/main/markdown/doc/latest/DevGuideUiBrowser.md b/content/src/main/markdown/doc/latest/DevGuideUiBrowser.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideUiBrowser.md rename to content/src/main/markdown/doc/latest/DevGuideUiBrowser.md diff --git a/src/main/markdown/doc/latest/DevGuideUiCellTable.md b/content/src/main/markdown/doc/latest/DevGuideUiCellTable.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideUiCellTable.md rename to content/src/main/markdown/doc/latest/DevGuideUiCellTable.md diff --git a/src/main/markdown/doc/latest/DevGuideUiCellWidgets.md b/content/src/main/markdown/doc/latest/DevGuideUiCellWidgets.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideUiCellWidgets.md rename to content/src/main/markdown/doc/latest/DevGuideUiCellWidgets.md diff --git a/src/main/markdown/doc/latest/DevGuideUiCss.md b/content/src/main/markdown/doc/latest/DevGuideUiCss.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideUiCss.md rename to content/src/main/markdown/doc/latest/DevGuideUiCss.md diff --git a/src/main/markdown/doc/latest/DevGuideUiCustomCells.md b/content/src/main/markdown/doc/latest/DevGuideUiCustomCells.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideUiCustomCells.md rename to content/src/main/markdown/doc/latest/DevGuideUiCustomCells.md diff --git a/src/main/markdown/doc/latest/DevGuideUiCustomWidgets.md b/content/src/main/markdown/doc/latest/DevGuideUiCustomWidgets.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideUiCustomWidgets.md rename to content/src/main/markdown/doc/latest/DevGuideUiCustomWidgets.md diff --git a/src/main/markdown/doc/latest/DevGuideUiDom.md b/content/src/main/markdown/doc/latest/DevGuideUiDom.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideUiDom.md rename to content/src/main/markdown/doc/latest/DevGuideUiDom.md diff --git a/src/main/markdown/doc/latest/DevGuideUiEditors.md b/content/src/main/markdown/doc/latest/DevGuideUiEditors.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideUiEditors.md rename to content/src/main/markdown/doc/latest/DevGuideUiEditors.md diff --git a/src/main/markdown/doc/latest/DevGuideUiHandlers.md b/content/src/main/markdown/doc/latest/DevGuideUiHandlers.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideUiHandlers.md rename to content/src/main/markdown/doc/latest/DevGuideUiHandlers.md diff --git a/src/main/markdown/doc/latest/DevGuideUiImageBundles.md b/content/src/main/markdown/doc/latest/DevGuideUiImageBundles.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideUiImageBundles.md rename to content/src/main/markdown/doc/latest/DevGuideUiImageBundles.md diff --git a/src/main/markdown/doc/latest/DevGuideUiPanels.md b/content/src/main/markdown/doc/latest/DevGuideUiPanels.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideUiPanels.md rename to content/src/main/markdown/doc/latest/DevGuideUiPanels.md diff --git a/src/main/markdown/doc/latest/DevGuideUiWidgets.md b/content/src/main/markdown/doc/latest/DevGuideUiWidgets.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideUiWidgets.md rename to content/src/main/markdown/doc/latest/DevGuideUiWidgets.md diff --git a/src/main/markdown/doc/latest/DevGuideValidation.md b/content/src/main/markdown/doc/latest/DevGuideValidation.md similarity index 100% rename from src/main/markdown/doc/latest/DevGuideValidation.md rename to content/src/main/markdown/doc/latest/DevGuideValidation.md diff --git a/src/main/markdown/doc/latest/FAQ.md b/content/src/main/markdown/doc/latest/FAQ.md similarity index 100% rename from src/main/markdown/doc/latest/FAQ.md rename to content/src/main/markdown/doc/latest/FAQ.md diff --git a/src/main/markdown/doc/latest/FAQ_Client.md b/content/src/main/markdown/doc/latest/FAQ_Client.md similarity index 100% rename from src/main/markdown/doc/latest/FAQ_Client.md rename to content/src/main/markdown/doc/latest/FAQ_Client.md diff --git a/src/main/markdown/doc/latest/FAQ_DebuggingAndCompiling.md b/content/src/main/markdown/doc/latest/FAQ_DebuggingAndCompiling.md similarity index 100% rename from src/main/markdown/doc/latest/FAQ_DebuggingAndCompiling.md rename to content/src/main/markdown/doc/latest/FAQ_DebuggingAndCompiling.md diff --git a/src/main/markdown/doc/latest/FAQ_GettingStarted.md b/content/src/main/markdown/doc/latest/FAQ_GettingStarted.md similarity index 100% rename from src/main/markdown/doc/latest/FAQ_GettingStarted.md rename to content/src/main/markdown/doc/latest/FAQ_GettingStarted.md diff --git a/src/main/markdown/doc/latest/FAQ_Server.md b/content/src/main/markdown/doc/latest/FAQ_Server.md similarity index 100% rename from src/main/markdown/doc/latest/FAQ_Server.md rename to content/src/main/markdown/doc/latest/FAQ_Server.md diff --git a/src/main/markdown/doc/latest/FAQ_Troubleshooting.md b/content/src/main/markdown/doc/latest/FAQ_Troubleshooting.md similarity index 100% rename from src/main/markdown/doc/latest/FAQ_Troubleshooting.md rename to content/src/main/markdown/doc/latest/FAQ_Troubleshooting.md diff --git a/src/main/markdown/doc/latest/FAQ_UI.md b/content/src/main/markdown/doc/latest/FAQ_UI.md similarity index 100% rename from src/main/markdown/doc/latest/FAQ_UI.md rename to content/src/main/markdown/doc/latest/FAQ_UI.md diff --git a/src/main/markdown/doc/latest/RefCommandLineTools.md b/content/src/main/markdown/doc/latest/RefCommandLineTools.md similarity index 100% rename from src/main/markdown/doc/latest/RefCommandLineTools.md rename to content/src/main/markdown/doc/latest/RefCommandLineTools.md diff --git a/src/main/markdown/doc/latest/RefGWTClassAPI.md b/content/src/main/markdown/doc/latest/RefGWTClassAPI.md similarity index 100% rename from src/main/markdown/doc/latest/RefGWTClassAPI.md rename to content/src/main/markdown/doc/latest/RefGWTClassAPI.md diff --git a/src/main/markdown/doc/latest/RefGuide.md b/content/src/main/markdown/doc/latest/RefGuide.md similarity index 100% rename from src/main/markdown/doc/latest/RefGuide.md rename to content/src/main/markdown/doc/latest/RefGuide.md diff --git a/src/main/markdown/doc/latest/RefJreEmulation.md b/content/src/main/markdown/doc/latest/RefJreEmulation.md similarity index 100% rename from src/main/markdown/doc/latest/RefJreEmulation.md rename to content/src/main/markdown/doc/latest/RefJreEmulation.md diff --git a/src/main/markdown/doc/latest/RefWidgetGallery.md b/content/src/main/markdown/doc/latest/RefWidgetGallery.md similarity index 100% rename from src/main/markdown/doc/latest/RefWidgetGallery.md rename to content/src/main/markdown/doc/latest/RefWidgetGallery.md diff --git a/src/main/markdown/doc/latest/ReleaseNotes.md b/content/src/main/markdown/doc/latest/ReleaseNotes.md similarity index 100% rename from src/main/markdown/doc/latest/ReleaseNotes.md rename to content/src/main/markdown/doc/latest/ReleaseNotes.md diff --git a/src/main/markdown/doc/latest/config.xml b/content/src/main/markdown/doc/latest/config.xml similarity index 100% rename from src/main/markdown/doc/latest/config.xml rename to content/src/main/markdown/doc/latest/config.xml diff --git a/src/main/markdown/doc/latest/polymer-tutorial/create.md b/content/src/main/markdown/doc/latest/polymer-tutorial/create.md similarity index 100% rename from src/main/markdown/doc/latest/polymer-tutorial/create.md rename to content/src/main/markdown/doc/latest/polymer-tutorial/create.md diff --git a/src/main/markdown/doc/latest/polymer-tutorial/elements-applogic.md b/content/src/main/markdown/doc/latest/polymer-tutorial/elements-applogic.md similarity index 100% rename from src/main/markdown/doc/latest/polymer-tutorial/elements-applogic.md rename to content/src/main/markdown/doc/latest/polymer-tutorial/elements-applogic.md diff --git a/src/main/markdown/doc/latest/polymer-tutorial/elements-buildui.md b/content/src/main/markdown/doc/latest/polymer-tutorial/elements-buildui.md similarity index 100% rename from src/main/markdown/doc/latest/polymer-tutorial/elements-buildui.md rename to content/src/main/markdown/doc/latest/polymer-tutorial/elements-buildui.md diff --git a/src/main/markdown/doc/latest/polymer-tutorial/introduction.md b/content/src/main/markdown/doc/latest/polymer-tutorial/introduction.md similarity index 100% rename from src/main/markdown/doc/latest/polymer-tutorial/introduction.md rename to content/src/main/markdown/doc/latest/polymer-tutorial/introduction.md diff --git a/src/main/markdown/doc/latest/polymer-tutorial/widgets-applogic.md b/content/src/main/markdown/doc/latest/polymer-tutorial/widgets-applogic.md similarity index 100% rename from src/main/markdown/doc/latest/polymer-tutorial/widgets-applogic.md rename to content/src/main/markdown/doc/latest/polymer-tutorial/widgets-applogic.md diff --git a/src/main/markdown/doc/latest/polymer-tutorial/widgets-buildui.md b/content/src/main/markdown/doc/latest/polymer-tutorial/widgets-buildui.md similarity index 100% rename from src/main/markdown/doc/latest/polymer-tutorial/widgets-buildui.md rename to content/src/main/markdown/doc/latest/polymer-tutorial/widgets-buildui.md diff --git a/src/main/markdown/doc/latest/tutorial/JSON.md b/content/src/main/markdown/doc/latest/tutorial/JSON.md similarity index 100% rename from src/main/markdown/doc/latest/tutorial/JSON.md rename to content/src/main/markdown/doc/latest/tutorial/JSON.md diff --git a/src/main/markdown/doc/latest/tutorial/JSONphp.md b/content/src/main/markdown/doc/latest/tutorial/JSONphp.md similarity index 100% rename from src/main/markdown/doc/latest/tutorial/JSONphp.md rename to content/src/main/markdown/doc/latest/tutorial/JSONphp.md diff --git a/src/main/markdown/doc/latest/tutorial/JUnit.md b/content/src/main/markdown/doc/latest/tutorial/JUnit.md similarity index 100% rename from src/main/markdown/doc/latest/tutorial/JUnit.md rename to content/src/main/markdown/doc/latest/tutorial/JUnit.md diff --git a/src/main/markdown/doc/latest/tutorial/RPC.md b/content/src/main/markdown/doc/latest/tutorial/RPC.md similarity index 100% rename from src/main/markdown/doc/latest/tutorial/RPC.md rename to content/src/main/markdown/doc/latest/tutorial/RPC.md diff --git a/src/main/markdown/doc/latest/tutorial/Xsite.md b/content/src/main/markdown/doc/latest/tutorial/Xsite.md similarity index 100% rename from src/main/markdown/doc/latest/tutorial/Xsite.md rename to content/src/main/markdown/doc/latest/tutorial/Xsite.md diff --git a/src/main/markdown/doc/latest/tutorial/appengine.md b/content/src/main/markdown/doc/latest/tutorial/appengine.md similarity index 100% rename from src/main/markdown/doc/latest/tutorial/appengine.md rename to content/src/main/markdown/doc/latest/tutorial/appengine.md diff --git a/src/main/markdown/doc/latest/tutorial/buildui.md b/content/src/main/markdown/doc/latest/tutorial/buildui.md similarity index 100% rename from src/main/markdown/doc/latest/tutorial/buildui.md rename to content/src/main/markdown/doc/latest/tutorial/buildui.md diff --git a/src/main/markdown/doc/latest/tutorial/clientserver.md b/content/src/main/markdown/doc/latest/tutorial/clientserver.md similarity index 100% rename from src/main/markdown/doc/latest/tutorial/clientserver.md rename to content/src/main/markdown/doc/latest/tutorial/clientserver.md diff --git a/src/main/markdown/doc/latest/tutorial/codeclient.md b/content/src/main/markdown/doc/latest/tutorial/codeclient.md similarity index 100% rename from src/main/markdown/doc/latest/tutorial/codeclient.md rename to content/src/main/markdown/doc/latest/tutorial/codeclient.md diff --git a/src/main/markdown/doc/latest/tutorial/compile.md b/content/src/main/markdown/doc/latest/tutorial/compile.md similarity index 100% rename from src/main/markdown/doc/latest/tutorial/compile.md rename to content/src/main/markdown/doc/latest/tutorial/compile.md diff --git a/src/main/markdown/doc/latest/tutorial/config.xml b/content/src/main/markdown/doc/latest/tutorial/config.xml similarity index 100% rename from src/main/markdown/doc/latest/tutorial/config.xml rename to content/src/main/markdown/doc/latest/tutorial/config.xml diff --git a/src/main/markdown/doc/latest/tutorial/create.md b/content/src/main/markdown/doc/latest/tutorial/create.md similarity index 100% rename from src/main/markdown/doc/latest/tutorial/create.md rename to content/src/main/markdown/doc/latest/tutorial/create.md diff --git a/src/main/markdown/doc/latest/tutorial/debug.md b/content/src/main/markdown/doc/latest/tutorial/debug.md similarity index 100% rename from src/main/markdown/doc/latest/tutorial/debug.md rename to content/src/main/markdown/doc/latest/tutorial/debug.md diff --git a/src/main/markdown/doc/latest/tutorial/design.md b/content/src/main/markdown/doc/latest/tutorial/design.md similarity index 100% rename from src/main/markdown/doc/latest/tutorial/design.md rename to content/src/main/markdown/doc/latest/tutorial/design.md diff --git a/src/main/markdown/doc/latest/tutorial/gettingstarted.md b/content/src/main/markdown/doc/latest/tutorial/gettingstarted.md similarity index 100% rename from src/main/markdown/doc/latest/tutorial/gettingstarted.md rename to content/src/main/markdown/doc/latest/tutorial/gettingstarted.md diff --git a/src/main/markdown/doc/latest/tutorial/i18n.md b/content/src/main/markdown/doc/latest/tutorial/i18n.md similarity index 100% rename from src/main/markdown/doc/latest/tutorial/i18n.md rename to content/src/main/markdown/doc/latest/tutorial/i18n.md diff --git a/src/main/markdown/doc/latest/tutorial/index.md b/content/src/main/markdown/doc/latest/tutorial/index.md similarity index 100% rename from src/main/markdown/doc/latest/tutorial/index.md rename to content/src/main/markdown/doc/latest/tutorial/index.md diff --git a/src/main/markdown/doc/latest/tutorial/manageevents.md b/content/src/main/markdown/doc/latest/tutorial/manageevents.md similarity index 100% rename from src/main/markdown/doc/latest/tutorial/manageevents.md rename to content/src/main/markdown/doc/latest/tutorial/manageevents.md diff --git a/src/main/markdown/doc/latest/tutorial/style.md b/content/src/main/markdown/doc/latest/tutorial/style.md similarity index 100% rename from src/main/markdown/doc/latest/tutorial/style.md rename to content/src/main/markdown/doc/latest/tutorial/style.md diff --git a/src/main/markdown/download.md b/content/src/main/markdown/download.md similarity index 100% rename from src/main/markdown/download.md rename to content/src/main/markdown/download.md diff --git a/src/main/markdown/examples.md b/content/src/main/markdown/examples.md similarity index 100% rename from src/main/markdown/examples.md rename to content/src/main/markdown/examples.md diff --git a/src/main/markdown/gettingstarted-v2.md b/content/src/main/markdown/gettingstarted-v2.md similarity index 100% rename from src/main/markdown/gettingstarted-v2.md rename to content/src/main/markdown/gettingstarted-v2.md diff --git a/src/main/markdown/gettingstarted.md b/content/src/main/markdown/gettingstarted.md similarity index 100% rename from src/main/markdown/gettingstarted.md rename to content/src/main/markdown/gettingstarted.md diff --git a/src/main/markdown/index.md b/content/src/main/markdown/index.md similarity index 100% rename from src/main/markdown/index.md rename to content/src/main/markdown/index.md diff --git a/src/main/markdown/learnmore-sdk.md b/content/src/main/markdown/learnmore-sdk.md similarity index 100% rename from src/main/markdown/learnmore-sdk.md rename to content/src/main/markdown/learnmore-sdk.md diff --git a/src/main/markdown/lifeofanissue.md b/content/src/main/markdown/lifeofanissue.md similarity index 100% rename from src/main/markdown/lifeofanissue.md rename to content/src/main/markdown/lifeofanissue.md diff --git a/src/main/markdown/makinggwtbetter.md b/content/src/main/markdown/makinggwtbetter.md similarity index 100% rename from src/main/markdown/makinggwtbetter.md rename to content/src/main/markdown/makinggwtbetter.md diff --git a/src/main/markdown/meetingnotes.md b/content/src/main/markdown/meetingnotes.md similarity index 100% rename from src/main/markdown/meetingnotes.md rename to content/src/main/markdown/meetingnotes.md diff --git a/src/main/markdown/meetingnotes/2015-02-11.md b/content/src/main/markdown/meetingnotes/2015-02-11.md similarity index 100% rename from src/main/markdown/meetingnotes/2015-02-11.md rename to content/src/main/markdown/meetingnotes/2015-02-11.md diff --git a/src/main/markdown/meetingnotes/2015-06-17.md b/content/src/main/markdown/meetingnotes/2015-06-17.md similarity index 100% rename from src/main/markdown/meetingnotes/2015-06-17.md rename to content/src/main/markdown/meetingnotes/2015-06-17.md diff --git a/src/main/markdown/meetingnotes/2015-08-19.md b/content/src/main/markdown/meetingnotes/2015-08-19.md similarity index 100% rename from src/main/markdown/meetingnotes/2015-08-19.md rename to content/src/main/markdown/meetingnotes/2015-08-19.md diff --git a/src/main/markdown/meetingnotes/2015-10-28.md b/content/src/main/markdown/meetingnotes/2015-10-28.md similarity index 100% rename from src/main/markdown/meetingnotes/2015-10-28.md rename to content/src/main/markdown/meetingnotes/2015-10-28.md diff --git a/src/main/markdown/meetingnotes/2016-01-10.md b/content/src/main/markdown/meetingnotes/2016-01-10.md similarity index 100% rename from src/main/markdown/meetingnotes/2016-01-10.md rename to content/src/main/markdown/meetingnotes/2016-01-10.md diff --git a/src/main/markdown/meetingnotes/2016-02-10.md b/content/src/main/markdown/meetingnotes/2016-02-10.md similarity index 100% rename from src/main/markdown/meetingnotes/2016-02-10.md rename to content/src/main/markdown/meetingnotes/2016-02-10.md diff --git a/src/main/markdown/meetingnotes/2016-04-13.md b/content/src/main/markdown/meetingnotes/2016-04-13.md similarity index 100% rename from src/main/markdown/meetingnotes/2016-04-13.md rename to content/src/main/markdown/meetingnotes/2016-04-13.md diff --git a/src/main/markdown/meetingnotes/2016-07-20.md b/content/src/main/markdown/meetingnotes/2016-07-20.md similarity index 100% rename from src/main/markdown/meetingnotes/2016-07-20.md rename to content/src/main/markdown/meetingnotes/2016-07-20.md diff --git a/src/main/markdown/meetingnotes/2017-01-11.md b/content/src/main/markdown/meetingnotes/2017-01-11.md similarity index 100% rename from src/main/markdown/meetingnotes/2017-01-11.md rename to content/src/main/markdown/meetingnotes/2017-01-11.md diff --git a/src/main/markdown/meetingnotes/2017-02-08.md b/content/src/main/markdown/meetingnotes/2017-02-08.md similarity index 100% rename from src/main/markdown/meetingnotes/2017-02-08.md rename to content/src/main/markdown/meetingnotes/2017-02-08.md diff --git a/src/main/markdown/meetingnotes/2017-03-08.md b/content/src/main/markdown/meetingnotes/2017-03-08.md similarity index 100% rename from src/main/markdown/meetingnotes/2017-03-08.md rename to content/src/main/markdown/meetingnotes/2017-03-08.md diff --git a/src/main/markdown/meetingnotes/2017-04-12.md b/content/src/main/markdown/meetingnotes/2017-04-12.md similarity index 100% rename from src/main/markdown/meetingnotes/2017-04-12.md rename to content/src/main/markdown/meetingnotes/2017-04-12.md diff --git a/src/main/markdown/meetingnotes/2017-05-10.md b/content/src/main/markdown/meetingnotes/2017-05-10.md similarity index 100% rename from src/main/markdown/meetingnotes/2017-05-10.md rename to content/src/main/markdown/meetingnotes/2017-05-10.md diff --git a/src/main/markdown/overview.md b/content/src/main/markdown/overview.md similarity index 100% rename from src/main/markdown/overview.md rename to content/src/main/markdown/overview.md diff --git a/src/main/markdown/presentations.md b/content/src/main/markdown/presentations.md similarity index 100% rename from src/main/markdown/presentations.md rename to content/src/main/markdown/presentations.md diff --git a/src/main/markdown/privacy.md b/content/src/main/markdown/privacy.md similarity index 100% rename from src/main/markdown/privacy.md rename to content/src/main/markdown/privacy.md diff --git a/src/main/markdown/release-notes.md b/content/src/main/markdown/release-notes.md similarity index 100% rename from src/main/markdown/release-notes.md rename to content/src/main/markdown/release-notes.md diff --git a/src/main/markdown/resources.md b/content/src/main/markdown/resources.md similarity index 100% rename from src/main/markdown/resources.md rename to content/src/main/markdown/resources.md diff --git a/src/main/markdown/roadmap.md b/content/src/main/markdown/roadmap.md similarity index 100% rename from src/main/markdown/roadmap.md rename to content/src/main/markdown/roadmap.md diff --git a/src/main/markdown/steering.md b/content/src/main/markdown/steering.md similarity index 100% rename from src/main/markdown/steering.md rename to content/src/main/markdown/steering.md diff --git a/src/main/markdown/terms.md b/content/src/main/markdown/terms.md similarity index 100% rename from src/main/markdown/terms.md rename to content/src/main/markdown/terms.md diff --git a/src/main/markdown/usingeclipse.md b/content/src/main/markdown/usingeclipse.md similarity index 100% rename from src/main/markdown/usingeclipse.md rename to content/src/main/markdown/usingeclipse.md diff --git a/src/main/markdown/usingintellij.md b/content/src/main/markdown/usingintellij.md similarity index 100% rename from src/main/markdown/usingintellij.md rename to content/src/main/markdown/usingintellij.md diff --git a/src/main/markdown/versions.md b/content/src/main/markdown/versions.md similarity index 100% rename from src/main/markdown/versions.md rename to content/src/main/markdown/versions.md diff --git a/src/main/markdown/whos_using_gwt.md b/content/src/main/markdown/whos_using_gwt.md similarity index 100% rename from src/main/markdown/whos_using_gwt.md rename to content/src/main/markdown/whos_using_gwt.md diff --git a/src/main/resources/main.tpl b/content/src/main/resources/main.tpl similarity index 100% rename from src/main/resources/main.tpl rename to content/src/main/resources/main.tpl diff --git a/src/main/resources/toc.md b/content/src/main/resources/toc.md similarity index 100% rename from src/main/resources/toc.md rename to content/src/main/resources/toc.md diff --git a/src/main/site/articles/index.html b/content/src/main/site/articles/index.html similarity index 100% rename from src/main/site/articles/index.html rename to content/src/main/site/articles/index.html diff --git a/src/main/site/assets/build/fonts/icons/icons.css b/content/src/main/site/assets/build/fonts/icons/icons.css similarity index 100% rename from src/main/site/assets/build/fonts/icons/icons.css rename to content/src/main/site/assets/build/fonts/icons/icons.css diff --git a/src/main/site/assets/build/fonts/icons/icons.eot b/content/src/main/site/assets/build/fonts/icons/icons.eot similarity index 100% rename from src/main/site/assets/build/fonts/icons/icons.eot rename to content/src/main/site/assets/build/fonts/icons/icons.eot diff --git a/src/main/site/assets/build/fonts/icons/icons.svg b/content/src/main/site/assets/build/fonts/icons/icons.svg similarity index 100% rename from src/main/site/assets/build/fonts/icons/icons.svg rename to content/src/main/site/assets/build/fonts/icons/icons.svg diff --git a/src/main/site/assets/build/fonts/icons/icons.ttf b/content/src/main/site/assets/build/fonts/icons/icons.ttf similarity index 100% rename from src/main/site/assets/build/fonts/icons/icons.ttf rename to content/src/main/site/assets/build/fonts/icons/icons.ttf diff --git a/src/main/site/assets/build/fonts/icons/icons.woff b/content/src/main/site/assets/build/fonts/icons/icons.woff similarity index 100% rename from src/main/site/assets/build/fonts/icons/icons.woff rename to content/src/main/site/assets/build/fonts/icons/icons.woff diff --git a/src/main/site/assets/build/fonts/icons/icons.woff2 b/content/src/main/site/assets/build/fonts/icons/icons.woff2 similarity index 100% rename from src/main/site/assets/build/fonts/icons/icons.woff2 rename to content/src/main/site/assets/build/fonts/icons/icons.woff2 diff --git a/src/main/site/assets/build/js/vendor/jquery-1.11.0.min.js b/content/src/main/site/assets/build/js/vendor/jquery-1.11.0.min.js similarity index 100% rename from src/main/site/assets/build/js/vendor/jquery-1.11.0.min.js rename to content/src/main/site/assets/build/js/vendor/jquery-1.11.0.min.js diff --git a/src/main/site/assets/build/js/vendor/jquery.flexnav.js b/content/src/main/site/assets/build/js/vendor/jquery.flexnav.js similarity index 100% rename from src/main/site/assets/build/js/vendor/jquery.flexnav.js rename to content/src/main/site/assets/build/js/vendor/jquery.flexnav.js diff --git a/src/main/site/assets/build/js/vendor/jquery.flexnav.min.js b/content/src/main/site/assets/build/js/vendor/jquery.flexnav.min.js similarity index 100% rename from src/main/site/assets/build/js/vendor/jquery.flexnav.min.js rename to content/src/main/site/assets/build/js/vendor/jquery.flexnav.min.js diff --git a/src/main/site/assets/build/js/vendor/modernizr-2.6.2.min.js b/content/src/main/site/assets/build/js/vendor/modernizr-2.6.2.min.js similarity index 100% rename from src/main/site/assets/build/js/vendor/modernizr-2.6.2.min.js rename to content/src/main/site/assets/build/js/vendor/modernizr-2.6.2.min.js diff --git a/src/main/site/assets/img/apple-touch-icon-precomposed.png b/content/src/main/site/assets/img/apple-touch-icon-precomposed.png similarity index 100% rename from src/main/site/assets/img/apple-touch-icon-precomposed.png rename to content/src/main/site/assets/img/apple-touch-icon-precomposed.png diff --git a/src/main/site/assets/img/logoBig.png b/content/src/main/site/assets/img/logoBig.png similarity index 100% rename from src/main/site/assets/img/logoBig.png rename to content/src/main/site/assets/img/logoBig.png diff --git a/src/main/site/assets/img/navLogoBig.png b/content/src/main/site/assets/img/navLogoBig.png similarity index 100% rename from src/main/site/assets/img/navLogoBig.png rename to content/src/main/site/assets/img/navLogoBig.png diff --git a/src/main/site/assets/img/navLogoSmall.png b/content/src/main/site/assets/img/navLogoSmall.png similarity index 100% rename from src/main/site/assets/img/navLogoSmall.png rename to content/src/main/site/assets/img/navLogoSmall.png diff --git a/src/main/site/assets/js/global.js b/content/src/main/site/assets/js/global.js similarity index 100% rename from src/main/site/assets/js/global.js rename to content/src/main/site/assets/js/global.js diff --git a/src/main/site/assets/less/colors.less b/content/src/main/site/assets/less/colors.less similarity index 100% rename from src/main/site/assets/less/colors.less rename to content/src/main/site/assets/less/colors.less diff --git a/src/main/site/assets/less/flexnav.less b/content/src/main/site/assets/less/flexnav.less similarity index 100% rename from src/main/site/assets/less/flexnav.less rename to content/src/main/site/assets/less/flexnav.less diff --git a/src/main/site/assets/less/functions.less b/content/src/main/site/assets/less/functions.less similarity index 100% rename from src/main/site/assets/less/functions.less rename to content/src/main/site/assets/less/functions.less diff --git a/src/main/site/assets/less/grid.less b/content/src/main/site/assets/less/grid.less similarity index 100% rename from src/main/site/assets/less/grid.less rename to content/src/main/site/assets/less/grid.less diff --git a/src/main/site/assets/less/layout.less b/content/src/main/site/assets/less/layout.less similarity index 100% rename from src/main/site/assets/less/layout.less rename to content/src/main/site/assets/less/layout.less diff --git a/src/main/site/assets/less/normalize.less b/content/src/main/site/assets/less/normalize.less similarity index 100% rename from src/main/site/assets/less/normalize.less rename to content/src/main/site/assets/less/normalize.less diff --git a/src/main/site/assets/less/print.less b/content/src/main/site/assets/less/print.less similarity index 100% rename from src/main/site/assets/less/print.less rename to content/src/main/site/assets/less/print.less diff --git a/src/main/site/assets/less/style.less b/content/src/main/site/assets/less/style.less similarity index 100% rename from src/main/site/assets/less/style.less rename to content/src/main/site/assets/less/style.less diff --git a/src/main/site/css/jenkins-theme.css b/content/src/main/site/css/jenkins-theme.css similarity index 100% rename from src/main/site/css/jenkins-theme.css rename to content/src/main/site/css/jenkins-theme.css diff --git a/src/main/site/css/main.css b/content/src/main/site/css/main.css similarity index 100% rename from src/main/site/css/main.css rename to content/src/main/site/css/main.css diff --git a/src/main/site/doc/index.html b/content/src/main/site/doc/index.html similarity index 100% rename from src/main/site/doc/index.html rename to content/src/main/site/doc/index.html diff --git a/src/main/site/doc/latest/images/AnatomyOfServices.png b/content/src/main/site/doc/latest/images/AnatomyOfServices.png similarity index 100% rename from src/main/site/doc/latest/images/AnatomyOfServices.png rename to content/src/main/site/doc/latest/images/AnatomyOfServices.png diff --git a/src/main/site/doc/latest/images/Button.png b/content/src/main/site/doc/latest/images/Button.png similarity index 100% rename from src/main/site/doc/latest/images/Button.png rename to content/src/main/site/doc/latest/images/Button.png diff --git a/src/main/site/doc/latest/images/CellBrowser.png b/content/src/main/site/doc/latest/images/CellBrowser.png similarity index 100% rename from src/main/site/doc/latest/images/CellBrowser.png rename to content/src/main/site/doc/latest/images/CellBrowser.png diff --git a/src/main/site/doc/latest/images/CellList.png b/content/src/main/site/doc/latest/images/CellList.png similarity index 100% rename from src/main/site/doc/latest/images/CellList.png rename to content/src/main/site/doc/latest/images/CellList.png diff --git a/src/main/site/doc/latest/images/CheckBox.png b/content/src/main/site/doc/latest/images/CheckBox.png similarity index 100% rename from src/main/site/doc/latest/images/CheckBox.png rename to content/src/main/site/doc/latest/images/CheckBox.png diff --git a/src/main/site/doc/latest/images/CodeSplittingFragments.odg b/content/src/main/site/doc/latest/images/CodeSplittingFragments.odg similarity index 100% rename from src/main/site/doc/latest/images/CodeSplittingFragments.odg rename to content/src/main/site/doc/latest/images/CodeSplittingFragments.odg diff --git a/src/main/site/doc/latest/images/CodeSplittingFragments.png b/content/src/main/site/doc/latest/images/CodeSplittingFragments.png similarity index 100% rename from src/main/site/doc/latest/images/CodeSplittingFragments.png rename to content/src/main/site/doc/latest/images/CodeSplittingFragments.png diff --git a/src/main/site/doc/latest/images/CustomCells-BasicRender.png b/content/src/main/site/doc/latest/images/CustomCells-BasicRender.png similarity index 100% rename from src/main/site/doc/latest/images/CustomCells-BasicRender.png rename to content/src/main/site/doc/latest/images/CustomCells-BasicRender.png diff --git a/src/main/site/doc/latest/images/CustomCells-HandlingEvents.png b/content/src/main/site/doc/latest/images/CustomCells-HandlingEvents.png similarity index 100% rename from src/main/site/doc/latest/images/CustomCells-HandlingEvents.png rename to content/src/main/site/doc/latest/images/CustomCells-HandlingEvents.png diff --git a/src/main/site/doc/latest/images/DatePicker.png b/content/src/main/site/doc/latest/images/DatePicker.png similarity index 100% rename from src/main/site/doc/latest/images/DatePicker.png rename to content/src/main/site/doc/latest/images/DatePicker.png diff --git a/src/main/site/doc/latest/images/DevGuideDirectoriesPackageConventions.png b/content/src/main/site/doc/latest/images/DevGuideDirectoriesPackageConventions.png similarity index 100% rename from src/main/site/doc/latest/images/DevGuideDirectoriesPackageConventions.png rename to content/src/main/site/doc/latest/images/DevGuideDirectoriesPackageConventions.png diff --git a/src/main/site/doc/latest/images/DevModeCollage.png b/content/src/main/site/doc/latest/images/DevModeCollage.png similarity index 100% rename from src/main/site/doc/latest/images/DevModeCollage.png rename to content/src/main/site/doc/latest/images/DevModeCollage.png diff --git a/src/main/site/doc/latest/images/DevModeTypical.jpg b/content/src/main/site/doc/latest/images/DevModeTypical.jpg similarity index 100% rename from src/main/site/doc/latest/images/DevModeTypical.jpg rename to content/src/main/site/doc/latest/images/DevModeTypical.jpg diff --git a/src/main/site/doc/latest/images/DevelopmentShell1.png b/content/src/main/site/doc/latest/images/DevelopmentShell1.png similarity index 100% rename from src/main/site/doc/latest/images/DevelopmentShell1.png rename to content/src/main/site/doc/latest/images/DevelopmentShell1.png diff --git a/src/main/site/doc/latest/images/DevelopmentShell2.png b/content/src/main/site/doc/latest/images/DevelopmentShell2.png similarity index 100% rename from src/main/site/doc/latest/images/DevelopmentShell2.png rename to content/src/main/site/doc/latest/images/DevelopmentShell2.png diff --git a/src/main/site/doc/latest/images/DevelopmentShell3.png b/content/src/main/site/doc/latest/images/DevelopmentShell3.png similarity index 100% rename from src/main/site/doc/latest/images/DevelopmentShell3.png rename to content/src/main/site/doc/latest/images/DevelopmentShell3.png diff --git a/src/main/site/doc/latest/images/DevelopmentShell4.png b/content/src/main/site/doc/latest/images/DevelopmentShell4.png similarity index 100% rename from src/main/site/doc/latest/images/DevelopmentShell4.png rename to content/src/main/site/doc/latest/images/DevelopmentShell4.png diff --git a/src/main/site/doc/latest/images/DialogBox.png b/content/src/main/site/doc/latest/images/DialogBox.png similarity index 100% rename from src/main/site/doc/latest/images/DialogBox.png rename to content/src/main/site/doc/latest/images/DialogBox.png diff --git a/src/main/site/doc/latest/images/DisclosurePanel.png b/content/src/main/site/doc/latest/images/DisclosurePanel.png similarity index 100% rename from src/main/site/doc/latest/images/DisclosurePanel.png rename to content/src/main/site/doc/latest/images/DisclosurePanel.png diff --git a/src/main/site/doc/latest/images/DockLayoutPanel.png b/content/src/main/site/doc/latest/images/DockLayoutPanel.png similarity index 100% rename from src/main/site/doc/latest/images/DockLayoutPanel.png rename to content/src/main/site/doc/latest/images/DockLayoutPanel.png diff --git a/src/main/site/doc/latest/images/DockPanel.png b/content/src/main/site/doc/latest/images/DockPanel.png similarity index 100% rename from src/main/site/doc/latest/images/DockPanel.png rename to content/src/main/site/doc/latest/images/DockPanel.png diff --git a/src/main/site/doc/latest/images/DockPanel_Showcase.png b/content/src/main/site/doc/latest/images/DockPanel_Showcase.png similarity index 100% rename from src/main/site/doc/latest/images/DockPanel_Showcase.png rename to content/src/main/site/doc/latest/images/DockPanel_Showcase.png diff --git a/src/main/site/doc/latest/images/FAQ_UILayout1.png b/content/src/main/site/doc/latest/images/FAQ_UILayout1.png similarity index 100% rename from src/main/site/doc/latest/images/FAQ_UILayout1.png rename to content/src/main/site/doc/latest/images/FAQ_UILayout1.png diff --git a/src/main/site/doc/latest/images/FAQ_UILayout2.png b/content/src/main/site/doc/latest/images/FAQ_UILayout2.png similarity index 100% rename from src/main/site/doc/latest/images/FAQ_UILayout2.png rename to content/src/main/site/doc/latest/images/FAQ_UILayout2.png diff --git a/src/main/site/doc/latest/images/FAQ_UILayout3.png b/content/src/main/site/doc/latest/images/FAQ_UILayout3.png similarity index 100% rename from src/main/site/doc/latest/images/FAQ_UILayout3.png rename to content/src/main/site/doc/latest/images/FAQ_UILayout3.png diff --git a/src/main/site/doc/latest/images/FAQ_UILayout4.png b/content/src/main/site/doc/latest/images/FAQ_UILayout4.png similarity index 100% rename from src/main/site/doc/latest/images/FAQ_UILayout4.png rename to content/src/main/site/doc/latest/images/FAQ_UILayout4.png diff --git a/src/main/site/doc/latest/images/FlowPanel.png b/content/src/main/site/doc/latest/images/FlowPanel.png similarity index 100% rename from src/main/site/doc/latest/images/FlowPanel.png rename to content/src/main/site/doc/latest/images/FlowPanel.png diff --git a/src/main/site/doc/latest/images/GettingUsedToAsyncCalls1.png b/content/src/main/site/doc/latest/images/GettingUsedToAsyncCalls1.png similarity index 100% rename from src/main/site/doc/latest/images/GettingUsedToAsyncCalls1.png rename to content/src/main/site/doc/latest/images/GettingUsedToAsyncCalls1.png diff --git a/src/main/site/doc/latest/images/GettingUsedToAsyncCalls2.png b/content/src/main/site/doc/latest/images/GettingUsedToAsyncCalls2.png similarity index 100% rename from src/main/site/doc/latest/images/GettingUsedToAsyncCalls2.png rename to content/src/main/site/doc/latest/images/GettingUsedToAsyncCalls2.png diff --git a/src/main/site/doc/latest/images/HTML5_Badge_64.png b/content/src/main/site/doc/latest/images/HTML5_Badge_64.png similarity index 100% rename from src/main/site/doc/latest/images/HTML5_Badge_64.png rename to content/src/main/site/doc/latest/images/HTML5_Badge_64.png diff --git a/src/main/site/doc/latest/images/HelloWorld.png b/content/src/main/site/doc/latest/images/HelloWorld.png similarity index 100% rename from src/main/site/doc/latest/images/HelloWorld.png rename to content/src/main/site/doc/latest/images/HelloWorld.png diff --git a/src/main/site/doc/latest/images/HorizontalPanel.png b/content/src/main/site/doc/latest/images/HorizontalPanel.png similarity index 100% rename from src/main/site/doc/latest/images/HorizontalPanel.png rename to content/src/main/site/doc/latest/images/HorizontalPanel.png diff --git a/src/main/site/doc/latest/images/HorizontalPanel_Showcase.png b/content/src/main/site/doc/latest/images/HorizontalPanel_Showcase.png similarity index 100% rename from src/main/site/doc/latest/images/HorizontalPanel_Showcase.png rename to content/src/main/site/doc/latest/images/HorizontalPanel_Showcase.png diff --git a/src/main/site/doc/latest/images/HorizontalSplitPanel.png b/content/src/main/site/doc/latest/images/HorizontalSplitPanel.png similarity index 100% rename from src/main/site/doc/latest/images/HorizontalSplitPanel.png rename to content/src/main/site/doc/latest/images/HorizontalSplitPanel.png diff --git a/src/main/site/doc/latest/images/HorizontalSplitPanel_Showcase.png b/content/src/main/site/doc/latest/images/HorizontalSplitPanel_Showcase.png similarity index 100% rename from src/main/site/doc/latest/images/HorizontalSplitPanel_Showcase.png rename to content/src/main/site/doc/latest/images/HorizontalSplitPanel_Showcase.png diff --git a/src/main/site/doc/latest/images/HostedMode1.png b/content/src/main/site/doc/latest/images/HostedMode1.png similarity index 100% rename from src/main/site/doc/latest/images/HostedMode1.png rename to content/src/main/site/doc/latest/images/HostedMode1.png diff --git a/src/main/site/doc/latest/images/Hyperlink.png b/content/src/main/site/doc/latest/images/Hyperlink.png similarity index 100% rename from src/main/site/doc/latest/images/Hyperlink.png rename to content/src/main/site/doc/latest/images/Hyperlink.png diff --git a/src/main/site/doc/latest/images/LayoutPanel.png b/content/src/main/site/doc/latest/images/LayoutPanel.png similarity index 100% rename from src/main/site/doc/latest/images/LayoutPanel.png rename to content/src/main/site/doc/latest/images/LayoutPanel.png diff --git a/src/main/site/doc/latest/images/ListBox.png b/content/src/main/site/doc/latest/images/ListBox.png similarity index 100% rename from src/main/site/doc/latest/images/ListBox.png rename to content/src/main/site/doc/latest/images/ListBox.png diff --git a/src/main/site/doc/latest/images/LoggingExample.png b/content/src/main/site/doc/latest/images/LoggingExample.png similarity index 100% rename from src/main/site/doc/latest/images/LoggingExample.png rename to content/src/main/site/doc/latest/images/LoggingExample.png diff --git a/src/main/site/doc/latest/images/MenuBar.png b/content/src/main/site/doc/latest/images/MenuBar.png similarity index 100% rename from src/main/site/doc/latest/images/MenuBar.png rename to content/src/main/site/doc/latest/images/MenuBar.png diff --git a/src/main/site/doc/latest/images/PasswordTextBox.png b/content/src/main/site/doc/latest/images/PasswordTextBox.png similarity index 100% rename from src/main/site/doc/latest/images/PasswordTextBox.png rename to content/src/main/site/doc/latest/images/PasswordTextBox.png diff --git a/src/main/site/doc/latest/images/PopupPanel.png b/content/src/main/site/doc/latest/images/PopupPanel.png similarity index 100% rename from src/main/site/doc/latest/images/PopupPanel.png rename to content/src/main/site/doc/latest/images/PopupPanel.png diff --git a/src/main/site/doc/latest/images/PushButton.png b/content/src/main/site/doc/latest/images/PushButton.png similarity index 100% rename from src/main/site/doc/latest/images/PushButton.png rename to content/src/main/site/doc/latest/images/PushButton.png diff --git a/src/main/site/doc/latest/images/RadioButton.png b/content/src/main/site/doc/latest/images/RadioButton.png similarity index 100% rename from src/main/site/doc/latest/images/RadioButton.png rename to content/src/main/site/doc/latest/images/RadioButton.png diff --git a/src/main/site/doc/latest/images/RichTextArea-clipped.png b/content/src/main/site/doc/latest/images/RichTextArea-clipped.png similarity index 100% rename from src/main/site/doc/latest/images/RichTextArea-clipped.png rename to content/src/main/site/doc/latest/images/RichTextArea-clipped.png diff --git a/src/main/site/doc/latest/images/RichTextArea.png b/content/src/main/site/doc/latest/images/RichTextArea.png similarity index 100% rename from src/main/site/doc/latest/images/RichTextArea.png rename to content/src/main/site/doc/latest/images/RichTextArea.png diff --git a/src/main/site/doc/latest/images/SplitLayoutPanel-gallery.png b/content/src/main/site/doc/latest/images/SplitLayoutPanel-gallery.png similarity index 100% rename from src/main/site/doc/latest/images/SplitLayoutPanel-gallery.png rename to content/src/main/site/doc/latest/images/SplitLayoutPanel-gallery.png diff --git a/src/main/site/doc/latest/images/SplitLayoutPanel.png b/content/src/main/site/doc/latest/images/SplitLayoutPanel.png similarity index 100% rename from src/main/site/doc/latest/images/SplitLayoutPanel.png rename to content/src/main/site/doc/latest/images/SplitLayoutPanel.png diff --git a/src/main/site/doc/latest/images/StackLayoutPanel.png b/content/src/main/site/doc/latest/images/StackLayoutPanel.png similarity index 100% rename from src/main/site/doc/latest/images/StackLayoutPanel.png rename to content/src/main/site/doc/latest/images/StackLayoutPanel.png diff --git a/src/main/site/doc/latest/images/StackPanel.png b/content/src/main/site/doc/latest/images/StackPanel.png similarity index 100% rename from src/main/site/doc/latest/images/StackPanel.png rename to content/src/main/site/doc/latest/images/StackPanel.png diff --git a/src/main/site/doc/latest/images/SuggestBox.png b/content/src/main/site/doc/latest/images/SuggestBox.png similarity index 100% rename from src/main/site/doc/latest/images/SuggestBox.png rename to content/src/main/site/doc/latest/images/SuggestBox.png diff --git a/src/main/site/doc/latest/images/TabBar.png b/content/src/main/site/doc/latest/images/TabBar.png similarity index 100% rename from src/main/site/doc/latest/images/TabBar.png rename to content/src/main/site/doc/latest/images/TabBar.png diff --git a/src/main/site/doc/latest/images/TabLayoutPanel.png b/content/src/main/site/doc/latest/images/TabLayoutPanel.png similarity index 100% rename from src/main/site/doc/latest/images/TabLayoutPanel.png rename to content/src/main/site/doc/latest/images/TabLayoutPanel.png diff --git a/src/main/site/doc/latest/images/TabPanel.png b/content/src/main/site/doc/latest/images/TabPanel.png similarity index 100% rename from src/main/site/doc/latest/images/TabPanel.png rename to content/src/main/site/doc/latest/images/TabPanel.png diff --git a/src/main/site/doc/latest/images/TabPanel_Showcase.png b/content/src/main/site/doc/latest/images/TabPanel_Showcase.png similarity index 100% rename from src/main/site/doc/latest/images/TabPanel_Showcase.png rename to content/src/main/site/doc/latest/images/TabPanel_Showcase.png diff --git a/src/main/site/doc/latest/images/Table.png b/content/src/main/site/doc/latest/images/Table.png similarity index 100% rename from src/main/site/doc/latest/images/Table.png rename to content/src/main/site/doc/latest/images/Table.png diff --git a/src/main/site/doc/latest/images/TestCoverageFinal.jpg b/content/src/main/site/doc/latest/images/TestCoverageFinal.jpg similarity index 100% rename from src/main/site/doc/latest/images/TestCoverageFinal.jpg rename to content/src/main/site/doc/latest/images/TestCoverageFinal.jpg diff --git a/src/main/site/doc/latest/images/TestCoverageInitial.jpg b/content/src/main/site/doc/latest/images/TestCoverageInitial.jpg similarity index 100% rename from src/main/site/doc/latest/images/TestCoverageInitial.jpg rename to content/src/main/site/doc/latest/images/TestCoverageInitial.jpg diff --git a/src/main/site/doc/latest/images/TextArea.png b/content/src/main/site/doc/latest/images/TextArea.png similarity index 100% rename from src/main/site/doc/latest/images/TextArea.png rename to content/src/main/site/doc/latest/images/TextArea.png diff --git a/src/main/site/doc/latest/images/TextBox.png b/content/src/main/site/doc/latest/images/TextBox.png similarity index 100% rename from src/main/site/doc/latest/images/TextBox.png rename to content/src/main/site/doc/latest/images/TextBox.png diff --git a/src/main/site/doc/latest/images/ToggleButton.png b/content/src/main/site/doc/latest/images/ToggleButton.png similarity index 100% rename from src/main/site/doc/latest/images/ToggleButton.png rename to content/src/main/site/doc/latest/images/ToggleButton.png diff --git a/src/main/site/doc/latest/images/Tree.png b/content/src/main/site/doc/latest/images/Tree.png similarity index 100% rename from src/main/site/doc/latest/images/Tree.png rename to content/src/main/site/doc/latest/images/Tree.png diff --git a/src/main/site/doc/latest/images/UnresponsiveScriptDialog.png b/content/src/main/site/doc/latest/images/UnresponsiveScriptDialog.png similarity index 100% rename from src/main/site/doc/latest/images/UnresponsiveScriptDialog.png rename to content/src/main/site/doc/latest/images/UnresponsiveScriptDialog.png diff --git a/src/main/site/doc/latest/images/ValidationScreenshot.png b/content/src/main/site/doc/latest/images/ValidationScreenshot.png similarity index 100% rename from src/main/site/doc/latest/images/ValidationScreenshot.png rename to content/src/main/site/doc/latest/images/ValidationScreenshot.png diff --git a/src/main/site/doc/latest/images/VerticalPanel.png b/content/src/main/site/doc/latest/images/VerticalPanel.png similarity index 100% rename from src/main/site/doc/latest/images/VerticalPanel.png rename to content/src/main/site/doc/latest/images/VerticalPanel.png diff --git a/src/main/site/doc/latest/images/VerticalSplitPanel.png b/content/src/main/site/doc/latest/images/VerticalSplitPanel.png similarity index 100% rename from src/main/site/doc/latest/images/VerticalSplitPanel.png rename to content/src/main/site/doc/latest/images/VerticalSplitPanel.png diff --git a/src/main/site/doc/latest/images/VerticalSplitPanel_Showcase.png b/content/src/main/site/doc/latest/images/VerticalSplitPanel_Showcase.png similarity index 100% rename from src/main/site/doc/latest/images/VerticalSplitPanel_Showcase.png rename to content/src/main/site/doc/latest/images/VerticalSplitPanel_Showcase.png diff --git a/src/main/site/doc/latest/images/WebMode1.png b/content/src/main/site/doc/latest/images/WebMode1.png similarity index 100% rename from src/main/site/doc/latest/images/WebMode1.png rename to content/src/main/site/doc/latest/images/WebMode1.png diff --git a/src/main/site/doc/latest/images/appengine_lowres.png b/content/src/main/site/doc/latest/images/appengine_lowres.png similarity index 100% rename from src/main/site/doc/latest/images/appengine_lowres.png rename to content/src/main/site/doc/latest/images/appengine_lowres.png diff --git a/src/main/site/doc/latest/images/apps_mp.png b/content/src/main/site/doc/latest/images/apps_mp.png similarity index 100% rename from src/main/site/doc/latest/images/apps_mp.png rename to content/src/main/site/doc/latest/images/apps_mp.png diff --git a/src/main/site/doc/latest/images/compileReport-Dependencies.gif b/content/src/main/site/doc/latest/images/compileReport-Dependencies.gif similarity index 100% rename from src/main/site/doc/latest/images/compileReport-Dependencies.gif rename to content/src/main/site/doc/latest/images/compileReport-Dependencies.gif diff --git a/src/main/site/doc/latest/images/compileReport-InitialDownloadExample.gif b/content/src/main/site/doc/latest/images/compileReport-InitialDownloadExample.gif similarity index 100% rename from src/main/site/doc/latest/images/compileReport-InitialDownloadExample.gif rename to content/src/main/site/doc/latest/images/compileReport-InitialDownloadExample.gif diff --git a/src/main/site/doc/latest/images/compileReport-Overview.gif b/content/src/main/site/doc/latest/images/compileReport-Overview.gif similarity index 100% rename from src/main/site/doc/latest/images/compileReport-Overview.gif rename to content/src/main/site/doc/latest/images/compileReport-Overview.gif diff --git a/src/main/site/doc/latest/images/compileReport-PackageBreakdown.gif b/content/src/main/site/doc/latest/images/compileReport-PackageBreakdown.gif similarity index 100% rename from src/main/site/doc/latest/images/compileReport-PackageBreakdown.gif rename to content/src/main/site/doc/latest/images/compileReport-PackageBreakdown.gif diff --git a/src/main/site/doc/latest/images/compileReport-PermutationOverview.gif b/content/src/main/site/doc/latest/images/compileReport-PermutationOverview.gif similarity index 100% rename from src/main/site/doc/latest/images/compileReport-PermutationOverview.gif rename to content/src/main/site/doc/latest/images/compileReport-PermutationOverview.gif diff --git a/src/main/site/doc/latest/images/compileReport-splitPointStatus.gif b/content/src/main/site/doc/latest/images/compileReport-splitPointStatus.gif similarity index 100% rename from src/main/site/doc/latest/images/compileReport-splitPointStatus.gif rename to content/src/main/site/doc/latest/images/compileReport-splitPointStatus.gif diff --git a/src/main/site/doc/latest/images/google-plugin.png b/content/src/main/site/doc/latest/images/google-plugin.png similarity index 100% rename from src/main/site/doc/latest/images/google-plugin.png rename to content/src/main/site/doc/latest/images/google-plugin.png diff --git a/src/main/site/doc/latest/images/gph_logo.png b/content/src/main/site/doc/latest/images/gph_logo.png similarity index 100% rename from src/main/site/doc/latest/images/gph_logo.png rename to content/src/main/site/doc/latest/images/gph_logo.png diff --git a/src/main/site/doc/latest/images/icon_android.jpg b/content/src/main/site/doc/latest/images/icon_android.jpg similarity index 100% rename from src/main/site/doc/latest/images/icon_android.jpg rename to content/src/main/site/doc/latest/images/icon_android.jpg diff --git a/src/main/site/doc/latest/images/localStorage.png b/content/src/main/site/doc/latest/images/localStorage.png similarity index 100% rename from src/main/site/doc/latest/images/localStorage.png rename to content/src/main/site/doc/latest/images/localStorage.png diff --git a/src/main/site/doc/latest/index.html b/content/src/main/site/doc/latest/index.html similarity index 100% rename from src/main/site/doc/latest/index.html rename to content/src/main/site/doc/latest/index.html diff --git a/src/main/site/doc/latest/polymer-tutorial/images/todo-list-01.png b/content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-01.png similarity index 100% rename from src/main/site/doc/latest/polymer-tutorial/images/todo-list-01.png rename to content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-01.png diff --git a/src/main/site/doc/latest/polymer-tutorial/images/todo-list-02.png b/content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-02.png similarity index 100% rename from src/main/site/doc/latest/polymer-tutorial/images/todo-list-02.png rename to content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-02.png diff --git a/src/main/site/doc/latest/polymer-tutorial/images/todo-list-03.png b/content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-03.png similarity index 100% rename from src/main/site/doc/latest/polymer-tutorial/images/todo-list-03.png rename to content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-03.png diff --git a/src/main/site/doc/latest/polymer-tutorial/images/todo-list-04.png b/content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-04.png similarity index 100% rename from src/main/site/doc/latest/polymer-tutorial/images/todo-list-04.png rename to content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-04.png diff --git a/src/main/site/doc/latest/polymer-tutorial/images/todo-list-05.png b/content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-05.png similarity index 100% rename from src/main/site/doc/latest/polymer-tutorial/images/todo-list-05.png rename to content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-05.png diff --git a/src/main/site/doc/latest/polymer-tutorial/images/todo-list-06.png b/content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-06.png similarity index 100% rename from src/main/site/doc/latest/polymer-tutorial/images/todo-list-06.png rename to content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-06.png diff --git a/src/main/site/doc/latest/polymer-tutorial/images/todo-list-07.png b/content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-07.png similarity index 100% rename from src/main/site/doc/latest/polymer-tutorial/images/todo-list-07.png rename to content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-07.png diff --git a/src/main/site/doc/latest/polymer-tutorial/images/todo-list-08.png b/content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-08.png similarity index 100% rename from src/main/site/doc/latest/polymer-tutorial/images/todo-list-08.png rename to content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-08.png diff --git a/src/main/site/doc/latest/tutorial/gettingstarted/StockWatcher.css b/content/src/main/site/doc/latest/tutorial/gettingstarted/StockWatcher.css similarity index 100% rename from src/main/site/doc/latest/tutorial/gettingstarted/StockWatcher.css rename to content/src/main/site/doc/latest/tutorial/gettingstarted/StockWatcher.css diff --git a/src/main/site/doc/latest/tutorial/gettingstarted/StockWatcher.html b/content/src/main/site/doc/latest/tutorial/gettingstarted/StockWatcher.html similarity index 100% rename from src/main/site/doc/latest/tutorial/gettingstarted/StockWatcher.html rename to content/src/main/site/doc/latest/tutorial/gettingstarted/StockWatcher.html diff --git a/src/main/site/doc/latest/tutorial/gettingstarted/images/gwt.png b/content/src/main/site/doc/latest/tutorial/gettingstarted/images/gwt.png similarity index 100% rename from src/main/site/doc/latest/tutorial/gettingstarted/images/gwt.png rename to content/src/main/site/doc/latest/tutorial/gettingstarted/images/gwt.png diff --git a/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/2293D04F6B35190160A90C78400C3926.cache.js b/content/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/2293D04F6B35190160A90C78400C3926.cache.js similarity index 100% rename from src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/2293D04F6B35190160A90C78400C3926.cache.js rename to content/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/2293D04F6B35190160A90C78400C3926.cache.js diff --git a/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/gwt/standard/images/hborder.png b/content/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/gwt/standard/images/hborder.png similarity index 100% rename from src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/gwt/standard/images/hborder.png rename to content/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/gwt/standard/images/hborder.png diff --git a/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/gwt/standard/standard.css b/content/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/gwt/standard/standard.css similarity index 100% rename from src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/gwt/standard/standard.css rename to content/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/gwt/standard/standard.css diff --git a/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/stockwatcher.nocache.js b/content/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/stockwatcher.nocache.js similarity index 100% rename from src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/stockwatcher.nocache.js rename to content/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/stockwatcher.nocache.js diff --git a/src/main/site/doc/latest/tutorial/images/AnatomyOfServices.png b/content/src/main/site/doc/latest/tutorial/images/AnatomyOfServices.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/AnatomyOfServices.png rename to content/src/main/site/doc/latest/tutorial/images/AnatomyOfServices.png diff --git a/src/main/site/doc/latest/tutorial/images/BuildUI.png b/content/src/main/site/doc/latest/tutorial/images/BuildUI.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/BuildUI.png rename to content/src/main/site/doc/latest/tutorial/images/BuildUI.png diff --git a/src/main/site/doc/latest/tutorial/images/CodeClientAddStock.png b/content/src/main/site/doc/latest/tutorial/images/CodeClientAddStock.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/CodeClientAddStock.png rename to content/src/main/site/doc/latest/tutorial/images/CodeClientAddStock.png diff --git a/src/main/site/doc/latest/tutorial/images/CodeClientBug.png b/content/src/main/site/doc/latest/tutorial/images/CodeClientBug.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/CodeClientBug.png rename to content/src/main/site/doc/latest/tutorial/images/CodeClientBug.png diff --git a/src/main/site/doc/latest/tutorial/images/CodeClientNewJavaClass.jpg b/content/src/main/site/doc/latest/tutorial/images/CodeClientNewJavaClass.jpg similarity index 100% rename from src/main/site/doc/latest/tutorial/images/CodeClientNewJavaClass.jpg rename to content/src/main/site/doc/latest/tutorial/images/CodeClientNewJavaClass.jpg diff --git a/src/main/site/doc/latest/tutorial/images/CreateEclipseImport.jpg b/content/src/main/site/doc/latest/tutorial/images/CreateEclipseImport.jpg similarity index 100% rename from src/main/site/doc/latest/tutorial/images/CreateEclipseImport.jpg rename to content/src/main/site/doc/latest/tutorial/images/CreateEclipseImport.jpg diff --git a/src/main/site/doc/latest/tutorial/images/CreateGWTComponents.jpg b/content/src/main/site/doc/latest/tutorial/images/CreateGWTComponents.jpg similarity index 100% rename from src/main/site/doc/latest/tutorial/images/CreateGWTComponents.jpg rename to content/src/main/site/doc/latest/tutorial/images/CreateGWTComponents.jpg diff --git a/src/main/site/doc/latest/tutorial/images/CreateStarterApplication.png b/content/src/main/site/doc/latest/tutorial/images/CreateStarterApplication.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/CreateStarterApplication.png rename to content/src/main/site/doc/latest/tutorial/images/CreateStarterApplication.png diff --git a/src/main/site/doc/latest/tutorial/images/DebugVariablesBug.png b/content/src/main/site/doc/latest/tutorial/images/DebugVariablesBug.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/DebugVariablesBug.png rename to content/src/main/site/doc/latest/tutorial/images/DebugVariablesBug.png diff --git a/src/main/site/doc/latest/tutorial/images/DeployAppEngineProject.png b/content/src/main/site/doc/latest/tutorial/images/DeployAppEngineProject.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/DeployAppEngineProject.png rename to content/src/main/site/doc/latest/tutorial/images/DeployAppEngineProject.png diff --git a/src/main/site/doc/latest/tutorial/images/DesignStockWatcherFinal.png b/content/src/main/site/doc/latest/tutorial/images/DesignStockWatcherFinal.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/DesignStockWatcherFinal.png rename to content/src/main/site/doc/latest/tutorial/images/DesignStockWatcherFinal.png diff --git a/src/main/site/doc/latest/tutorial/images/DevModeNoEclipse.png b/content/src/main/site/doc/latest/tutorial/images/DevModeNoEclipse.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/DevModeNoEclipse.png rename to content/src/main/site/doc/latest/tutorial/images/DevModeNoEclipse.png diff --git a/src/main/site/doc/latest/tutorial/images/DevModeTab.png b/content/src/main/site/doc/latest/tutorial/images/DevModeTab.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/DevModeTab.png rename to content/src/main/site/doc/latest/tutorial/images/DevModeTab.png diff --git a/src/main/site/doc/latest/tutorial/images/GWTCompileProject.png b/content/src/main/site/doc/latest/tutorial/images/GWTCompileProject.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/GWTCompileProject.png rename to content/src/main/site/doc/latest/tutorial/images/GWTCompileProject.png diff --git a/src/main/site/doc/latest/tutorial/images/JSONdata.png b/content/src/main/site/doc/latest/tutorial/images/JSONdata.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/JSONdata.png rename to content/src/main/site/doc/latest/tutorial/images/JSONdata.png diff --git a/src/main/site/doc/latest/tutorial/images/JSONerrormessage.png b/content/src/main/site/doc/latest/tutorial/images/JSONerrormessage.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/JSONerrormessage.png rename to content/src/main/site/doc/latest/tutorial/images/JSONerrormessage.png diff --git a/src/main/site/doc/latest/tutorial/images/JSONstockPricesphp.png b/content/src/main/site/doc/latest/tutorial/images/JSONstockPricesphp.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/JSONstockPricesphp.png rename to content/src/main/site/doc/latest/tutorial/images/JSONstockPricesphp.png diff --git a/src/main/site/doc/latest/tutorial/images/JUnitFailed.png b/content/src/main/site/doc/latest/tutorial/images/JUnitFailed.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/JUnitFailed.png rename to content/src/main/site/doc/latest/tutorial/images/JUnitFailed.png diff --git a/src/main/site/doc/latest/tutorial/images/JUnitSimpleTestDev.png b/content/src/main/site/doc/latest/tutorial/images/JUnitSimpleTestDev.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/JUnitSimpleTestDev.png rename to content/src/main/site/doc/latest/tutorial/images/JUnitSimpleTestDev.png diff --git a/src/main/site/doc/latest/tutorial/images/JUnitcreatetest.png b/content/src/main/site/doc/latest/tutorial/images/JUnitcreatetest.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/JUnitcreatetest.png rename to content/src/main/site/doc/latest/tutorial/images/JUnitcreatetest.png diff --git a/src/main/site/doc/latest/tutorial/images/ManageEvents.png b/content/src/main/site/doc/latest/tutorial/images/ManageEvents.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/ManageEvents.png rename to content/src/main/site/doc/latest/tutorial/images/ManageEvents.png diff --git a/src/main/site/doc/latest/tutorial/images/MissingPlugin.png b/content/src/main/site/doc/latest/tutorial/images/MissingPlugin.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/MissingPlugin.png rename to content/src/main/site/doc/latest/tutorial/images/MissingPlugin.png diff --git a/src/main/site/doc/latest/tutorial/images/NewWebApplicationProject.png b/content/src/main/site/doc/latest/tutorial/images/NewWebApplicationProject.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/NewWebApplicationProject.png rename to content/src/main/site/doc/latest/tutorial/images/NewWebApplicationProject.png diff --git a/src/main/site/doc/latest/tutorial/images/RPCerrormessage.png b/content/src/main/site/doc/latest/tutorial/images/RPCerrormessage.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/RPCerrormessage.png rename to content/src/main/site/doc/latest/tutorial/images/RPCerrormessage.png diff --git a/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel1.jpg b/content/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel1.jpg similarity index 100% rename from src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel1.jpg rename to content/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel1.jpg diff --git a/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel2.jpg b/content/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel2.jpg similarity index 100% rename from src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel2.jpg rename to content/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel2.jpg diff --git a/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel3.jpg b/content/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel3.jpg similarity index 100% rename from src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel3.jpg rename to content/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel3.jpg diff --git a/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel4.jpg b/content/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel4.jpg similarity index 100% rename from src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel4.jpg rename to content/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel4.jpg diff --git a/src/main/site/doc/latest/tutorial/images/StyleAfter.png b/content/src/main/site/doc/latest/tutorial/images/StyleAfter.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/StyleAfter.png rename to content/src/main/site/doc/latest/tutorial/images/StyleAfter.png diff --git a/src/main/site/doc/latest/tutorial/images/StyleBefore.png b/content/src/main/site/doc/latest/tutorial/images/StyleBefore.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/StyleBefore.png rename to content/src/main/site/doc/latest/tutorial/images/StyleBefore.png diff --git a/src/main/site/doc/latest/tutorial/images/StyleSecondary.png b/content/src/main/site/doc/latest/tutorial/images/StyleSecondary.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/StyleSecondary.png rename to content/src/main/site/doc/latest/tutorial/images/StyleSecondary.png diff --git a/src/main/site/doc/latest/tutorial/images/i18nEnglish.png b/content/src/main/site/doc/latest/tutorial/images/i18nEnglish.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/i18nEnglish.png rename to content/src/main/site/doc/latest/tutorial/images/i18nEnglish.png diff --git a/src/main/site/doc/latest/tutorial/images/i18nGerman.png b/content/src/main/site/doc/latest/tutorial/images/i18nGerman.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/i18nGerman.png rename to content/src/main/site/doc/latest/tutorial/images/i18nGerman.png diff --git a/src/main/site/doc/latest/tutorial/images/spring-dashboard.png b/content/src/main/site/doc/latest/tutorial/images/spring-dashboard.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/spring-dashboard.png rename to content/src/main/site/doc/latest/tutorial/images/spring-dashboard.png diff --git a/src/main/site/doc/latest/tutorial/images/spring-databrowser.png b/content/src/main/site/doc/latest/tutorial/images/spring-databrowser.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/spring-databrowser.png rename to content/src/main/site/doc/latest/tutorial/images/spring-databrowser.png diff --git a/src/main/site/doc/latest/tutorial/images/spring-devserver.png b/content/src/main/site/doc/latest/tutorial/images/spring-devserver.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/spring-devserver.png rename to content/src/main/site/doc/latest/tutorial/images/spring-devserver.png diff --git a/src/main/site/doc/latest/tutorial/images/spring-extensions.png b/content/src/main/site/doc/latest/tutorial/images/spring-extensions.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/spring-extensions.png rename to content/src/main/site/doc/latest/tutorial/images/spring-extensions.png diff --git a/src/main/site/doc/latest/tutorial/images/spring-package.png b/content/src/main/site/doc/latest/tutorial/images/spring-package.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/spring-package.png rename to content/src/main/site/doc/latest/tutorial/images/spring-package.png diff --git a/src/main/site/doc/latest/tutorial/images/spring-projects.png b/content/src/main/site/doc/latest/tutorial/images/spring-projects.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/spring-projects.png rename to content/src/main/site/doc/latest/tutorial/images/spring-projects.png diff --git a/src/main/site/doc/latest/tutorial/images/spring-prompt.png b/content/src/main/site/doc/latest/tutorial/images/spring-prompt.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/spring-prompt.png rename to content/src/main/site/doc/latest/tutorial/images/spring-prompt.png diff --git a/src/main/site/doc/latest/tutorial/images/spring-roo-shell.png b/content/src/main/site/doc/latest/tutorial/images/spring-roo-shell.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/spring-roo-shell.png rename to content/src/main/site/doc/latest/tutorial/images/spring-roo-shell.png diff --git a/src/main/site/doc/latest/tutorial/images/spring-runas.png b/content/src/main/site/doc/latest/tutorial/images/spring-runas.png similarity index 100% rename from src/main/site/doc/latest/tutorial/images/spring-runas.png rename to content/src/main/site/doc/latest/tutorial/images/spring-runas.png diff --git a/src/main/site/doctype/2.10.0/gwt-module.dtd b/content/src/main/site/doctype/2.10.0/gwt-module.dtd similarity index 100% rename from src/main/site/doctype/2.10.0/gwt-module.dtd rename to content/src/main/site/doctype/2.10.0/gwt-module.dtd diff --git a/src/main/site/doctype/2.11.0/gwt-module.dtd b/content/src/main/site/doctype/2.11.0/gwt-module.dtd similarity index 100% rename from src/main/site/doctype/2.11.0/gwt-module.dtd rename to content/src/main/site/doctype/2.11.0/gwt-module.dtd diff --git a/src/main/site/doctype/2.12.0/gwt-module.dtd b/content/src/main/site/doctype/2.12.0/gwt-module.dtd similarity index 100% rename from src/main/site/doctype/2.12.0/gwt-module.dtd rename to content/src/main/site/doctype/2.12.0/gwt-module.dtd diff --git a/src/main/site/doctype/2.12.1/gwt-module.dtd b/content/src/main/site/doctype/2.12.1/gwt-module.dtd similarity index 100% rename from src/main/site/doctype/2.12.1/gwt-module.dtd rename to content/src/main/site/doctype/2.12.1/gwt-module.dtd diff --git a/src/main/site/doctype/2.12.2/gwt-module.dtd b/content/src/main/site/doctype/2.12.2/gwt-module.dtd similarity index 100% rename from src/main/site/doctype/2.12.2/gwt-module.dtd rename to content/src/main/site/doctype/2.12.2/gwt-module.dtd diff --git a/src/main/site/doctype/2.4.0/gwt-module.dtd b/content/src/main/site/doctype/2.4.0/gwt-module.dtd similarity index 100% rename from src/main/site/doctype/2.4.0/gwt-module.dtd rename to content/src/main/site/doctype/2.4.0/gwt-module.dtd diff --git a/src/main/site/doctype/2.5.0/gwt-module.dtd b/content/src/main/site/doctype/2.5.0/gwt-module.dtd similarity index 100% rename from src/main/site/doctype/2.5.0/gwt-module.dtd rename to content/src/main/site/doctype/2.5.0/gwt-module.dtd diff --git a/src/main/site/doctype/2.5.1/gwt-module.dtd b/content/src/main/site/doctype/2.5.1/gwt-module.dtd similarity index 100% rename from src/main/site/doctype/2.5.1/gwt-module.dtd rename to content/src/main/site/doctype/2.5.1/gwt-module.dtd diff --git a/src/main/site/doctype/2.6.0/gwt-module.dtd b/content/src/main/site/doctype/2.6.0/gwt-module.dtd similarity index 100% rename from src/main/site/doctype/2.6.0/gwt-module.dtd rename to content/src/main/site/doctype/2.6.0/gwt-module.dtd diff --git a/src/main/site/doctype/2.6.1/gwt-module.dtd b/content/src/main/site/doctype/2.6.1/gwt-module.dtd similarity index 100% rename from src/main/site/doctype/2.6.1/gwt-module.dtd rename to content/src/main/site/doctype/2.6.1/gwt-module.dtd diff --git a/src/main/site/doctype/2.7.0/gwt-module.dtd b/content/src/main/site/doctype/2.7.0/gwt-module.dtd similarity index 100% rename from src/main/site/doctype/2.7.0/gwt-module.dtd rename to content/src/main/site/doctype/2.7.0/gwt-module.dtd diff --git a/src/main/site/doctype/2.8.0/gwt-module.dtd b/content/src/main/site/doctype/2.8.0/gwt-module.dtd similarity index 100% rename from src/main/site/doctype/2.8.0/gwt-module.dtd rename to content/src/main/site/doctype/2.8.0/gwt-module.dtd diff --git a/src/main/site/doctype/2.8.1/gwt-module.dtd b/content/src/main/site/doctype/2.8.1/gwt-module.dtd similarity index 100% rename from src/main/site/doctype/2.8.1/gwt-module.dtd rename to content/src/main/site/doctype/2.8.1/gwt-module.dtd diff --git a/src/main/site/doctype/2.8.2/gwt-module.dtd b/content/src/main/site/doctype/2.8.2/gwt-module.dtd similarity index 100% rename from src/main/site/doctype/2.8.2/gwt-module.dtd rename to content/src/main/site/doctype/2.8.2/gwt-module.dtd diff --git a/src/main/site/doctype/2.9.0/gwt-module.dtd b/content/src/main/site/doctype/2.9.0/gwt-module.dtd similarity index 100% rename from src/main/site/doctype/2.9.0/gwt-module.dtd rename to content/src/main/site/doctype/2.9.0/gwt-module.dtd diff --git a/src/main/site/images/I18N.jpg b/content/src/main/site/images/I18N.jpg similarity index 100% rename from src/main/site/images/I18N.jpg rename to content/src/main/site/images/I18N.jpg diff --git a/src/main/site/images/app_gal_blueprint.png b/content/src/main/site/images/app_gal_blueprint.png similarity index 100% rename from src/main/site/images/app_gal_blueprint.png rename to content/src/main/site/images/app_gal_blueprint.png diff --git a/src/main/site/images/app_gal_contactoffice.png b/content/src/main/site/images/app_gal_contactoffice.png similarity index 100% rename from src/main/site/images/app_gal_contactoffice.png rename to content/src/main/site/images/app_gal_contactoffice.png diff --git a/src/main/site/images/app_gal_dotemplate.jpg b/content/src/main/site/images/app_gal_dotemplate.jpg similarity index 100% rename from src/main/site/images/app_gal_dotemplate.jpg rename to content/src/main/site/images/app_gal_dotemplate.jpg diff --git a/src/main/site/images/app_gal_gogrid.png b/content/src/main/site/images/app_gal_gogrid.png similarity index 100% rename from src/main/site/images/app_gal_gogrid.png rename to content/src/main/site/images/app_gal_gogrid.png diff --git a/src/main/site/images/app_gal_iphonereader.png b/content/src/main/site/images/app_gal_iphonereader.png similarity index 100% rename from src/main/site/images/app_gal_iphonereader.png rename to content/src/main/site/images/app_gal_iphonereader.png diff --git a/src/main/site/images/app_gal_kaching.png b/content/src/main/site/images/app_gal_kaching.png similarity index 100% rename from src/main/site/images/app_gal_kaching.png rename to content/src/main/site/images/app_gal_kaching.png diff --git a/src/main/site/images/app_gal_queweb.png b/content/src/main/site/images/app_gal_queweb.png similarity index 100% rename from src/main/site/images/app_gal_queweb.png rename to content/src/main/site/images/app_gal_queweb.png diff --git a/src/main/site/images/app_gal_riflethru.png b/content/src/main/site/images/app_gal_riflethru.png similarity index 100% rename from src/main/site/images/app_gal_riflethru.png rename to content/src/main/site/images/app_gal_riflethru.png diff --git a/src/main/site/images/app_gal_scenechronize.png b/content/src/main/site/images/app_gal_scenechronize.png similarity index 100% rename from src/main/site/images/app_gal_scenechronize.png rename to content/src/main/site/images/app_gal_scenechronize.png diff --git a/src/main/site/images/app_gal_studyblue.png b/content/src/main/site/images/app_gal_studyblue.png similarity index 100% rename from src/main/site/images/app_gal_studyblue.png rename to content/src/main/site/images/app_gal_studyblue.png diff --git a/src/main/site/images/app_gal_typeracer.png b/content/src/main/site/images/app_gal_typeracer.png similarity index 100% rename from src/main/site/images/app_gal_typeracer.png rename to content/src/main/site/images/app_gal_typeracer.png diff --git a/src/main/site/images/app_gal_venda.png b/content/src/main/site/images/app_gal_venda.png similarity index 100% rename from src/main/site/images/app_gal_venda.png rename to content/src/main/site/images/app_gal_venda.png diff --git a/src/main/site/images/app_gal_whirled.png b/content/src/main/site/images/app_gal_whirled.png similarity index 100% rename from src/main/site/images/app_gal_whirled.png rename to content/src/main/site/images/app_gal_whirled.png diff --git a/src/main/site/images/arrow-48.png b/content/src/main/site/images/arrow-48.png similarity index 100% rename from src/main/site/images/arrow-48.png rename to content/src/main/site/images/arrow-48.png diff --git a/src/main/site/images/arrow-closed.png b/content/src/main/site/images/arrow-closed.png similarity index 100% rename from src/main/site/images/arrow-closed.png rename to content/src/main/site/images/arrow-closed.png diff --git a/src/main/site/images/arrow-md.png b/content/src/main/site/images/arrow-md.png similarity index 100% rename from src/main/site/images/arrow-md.png rename to content/src/main/site/images/arrow-md.png diff --git a/src/main/site/images/arrow-open.png b/content/src/main/site/images/arrow-open.png similarity index 100% rename from src/main/site/images/arrow-open.png rename to content/src/main/site/images/arrow-open.png diff --git a/src/main/site/images/bookedin.png b/content/src/main/site/images/bookedin.png similarity index 100% rename from src/main/site/images/bookedin.png rename to content/src/main/site/images/bookedin.png diff --git a/src/main/site/images/books/Developing_with_Ext_GWT_Enterprise_RIA_Development.png b/content/src/main/site/images/books/Developing_with_Ext_GWT_Enterprise_RIA_Development.png similarity index 100% rename from src/main/site/images/books/Developing_with_Ext_GWT_Enterprise_RIA_Development.png rename to content/src/main/site/images/books/Developing_with_Ext_GWT_Enterprise_RIA_Development.png diff --git a/src/main/site/images/books/Essential_GWT_Building_for_the_Web_with_Google_Web_Toolkit_2.jpg b/content/src/main/site/images/books/Essential_GWT_Building_for_the_Web_with_Google_Web_Toolkit_2.jpg similarity index 100% rename from src/main/site/images/books/Essential_GWT_Building_for_the_Web_with_Google_Web_Toolkit_2.jpg rename to content/src/main/site/images/books/Essential_GWT_Building_for_the_Web_with_Google_Web_Toolkit_2.jpg diff --git a/src/main/site/images/books/ExtGWT_Rich_Internet_Application_Cookbook.jpg b/content/src/main/site/images/books/ExtGWT_Rich_Internet_Application_Cookbook.jpg similarity index 100% rename from src/main/site/images/books/ExtGWT_Rich_Internet_Application_Cookbook.jpg rename to content/src/main/site/images/books/ExtGWT_Rich_Internet_Application_Cookbook.jpg diff --git a/src/main/site/images/books/Ext_GWT_20_Beginners_Guide.jpg b/content/src/main/site/images/books/Ext_GWT_20_Beginners_Guide.jpg similarity index 100% rename from src/main/site/images/books/Ext_GWT_20_Beginners_Guide.jpg rename to content/src/main/site/images/books/Ext_GWT_20_Beginners_Guide.jpg diff --git a/src/main/site/images/books/GWT_in_Practice.jpg b/content/src/main/site/images/books/GWT_in_Practice.jpg similarity index 100% rename from src/main/site/images/books/GWT_in_Practice.jpg rename to content/src/main/site/images/books/GWT_in_Practice.jpg diff --git a/src/main/site/images/books/Google_App_Engine_Java_and_GWT_Application_Development.jpg b/content/src/main/site/images/books/Google_App_Engine_Java_and_GWT_Application_Development.jpg similarity index 100% rename from src/main/site/images/books/Google_App_Engine_Java_and_GWT_Application_Development.jpg rename to content/src/main/site/images/books/Google_App_Engine_Java_and_GWT_Application_Development.jpg diff --git a/src/main/site/images/books/Google_Web_Toolkit_2_Application_Development_Cookbook.jpg b/content/src/main/site/images/books/Google_Web_Toolkit_2_Application_Development_Cookbook.jpg similarity index 100% rename from src/main/site/images/books/Google_Web_Toolkit_2_Application_Development_Cookbook.jpg rename to content/src/main/site/images/books/Google_Web_Toolkit_2_Application_Development_Cookbook.jpg diff --git a/src/main/site/images/books/Google_Web_Toolkit_Applications.jpeg b/content/src/main/site/images/books/Google_Web_Toolkit_Applications.jpeg similarity index 100% rename from src/main/site/images/books/Google_Web_Toolkit_Applications.jpeg rename to content/src/main/site/images/books/Google_Web_Toolkit_Applications.jpeg diff --git a/src/main/site/images/books/Google_Web_Toolkit_GWT_Java_AJAX_Programming.jpg b/content/src/main/site/images/books/Google_Web_Toolkit_GWT_Java_AJAX_Programming.jpg similarity index 100% rename from src/main/site/images/books/Google_Web_Toolkit_GWT_Java_AJAX_Programming.jpg rename to content/src/main/site/images/books/Google_Web_Toolkit_GWT_Java_AJAX_Programming.jpg diff --git a/src/main/site/images/books/Google_Web_Toolkit_Solutions_Digital_Short_Cut_Cool_Useful_Stuff.jpeg b/content/src/main/site/images/books/Google_Web_Toolkit_Solutions_Digital_Short_Cut_Cool_Useful_Stuff.jpeg similarity index 100% rename from src/main/site/images/books/Google_Web_Toolkit_Solutions_Digital_Short_Cut_Cool_Useful_Stuff.jpeg rename to content/src/main/site/images/books/Google_Web_Toolkit_Solutions_Digital_Short_Cut_Cool_Useful_Stuff.jpeg diff --git a/src/main/site/images/books/Google_Web_Toolkit_Solutions_More_Cool_Useful_Stuff.jpeg b/content/src/main/site/images/books/Google_Web_Toolkit_Solutions_More_Cool_Useful_Stuff.jpeg similarity index 100% rename from src/main/site/images/books/Google_Web_Toolkit_Solutions_More_Cool_Useful_Stuff.jpeg rename to content/src/main/site/images/books/Google_Web_Toolkit_Solutions_More_Cool_Useful_Stuff.jpeg diff --git a/src/main/site/images/books/Google_Web_Toolkit_Taking_the_Pain_Out_of_Ajax.jpg b/content/src/main/site/images/books/Google_Web_Toolkit_Taking_the_Pain_Out_of_Ajax.jpg similarity index 100% rename from src/main/site/images/books/Google_Web_Toolkit_Taking_the_Pain_Out_of_Ajax.jpg rename to content/src/main/site/images/books/Google_Web_Toolkit_Taking_the_Pain_Out_of_Ajax.jpg diff --git a/src/main/site/images/books/Vaadin_7_Cookbook.jpg b/content/src/main/site/images/books/Vaadin_7_Cookbook.jpg similarity index 100% rename from src/main/site/images/books/Vaadin_7_Cookbook.jpg rename to content/src/main/site/images/books/Vaadin_7_Cookbook.jpg diff --git a/src/main/site/images/books/Vaadin_Recipes.jpg b/content/src/main/site/images/books/Vaadin_Recipes.jpg similarity index 100% rename from src/main/site/images/books/Vaadin_Recipes.jpg rename to content/src/main/site/images/books/Vaadin_Recipes.jpg diff --git a/src/main/site/images/books/gwt_in_action.jpg b/content/src/main/site/images/books/gwt_in_action.jpg similarity index 100% rename from src/main/site/images/books/gwt_in_action.jpg rename to content/src/main/site/images/books/gwt_in_action.jpg diff --git a/src/main/site/images/books/gwt_in_action_second_edition.jpg b/content/src/main/site/images/books/gwt_in_action_second_edition.jpg similarity index 100% rename from src/main/site/images/books/gwt_in_action_second_edition.jpg rename to content/src/main/site/images/books/gwt_in_action_second_edition.jpg diff --git a/src/main/site/images/books/learning_vaddin.jpg b/content/src/main/site/images/books/learning_vaddin.jpg similarity index 100% rename from src/main/site/images/books/learning_vaddin.jpg rename to content/src/main/site/images/books/learning_vaddin.jpg diff --git a/src/main/site/images/cloudorado.png b/content/src/main/site/images/cloudorado.png similarity index 100% rename from src/main/site/images/cloudorado.png rename to content/src/main/site/images/cloudorado.png diff --git a/src/main/site/images/community.gif b/content/src/main/site/images/community.gif similarity index 100% rename from src/main/site/images/community.gif rename to content/src/main/site/images/community.gif diff --git a/src/main/site/images/contact-list-view.png b/content/src/main/site/images/contact-list-view.png similarity index 100% rename from src/main/site/images/contact-list-view.png rename to content/src/main/site/images/contact-list-view.png diff --git a/src/main/site/images/contacts-project-hierarchy-testing.png b/content/src/main/site/images/contacts-project-hierarchy-testing.png similarity index 100% rename from src/main/site/images/contacts-project-hierarchy-testing.png rename to content/src/main/site/images/contacts-project-hierarchy-testing.png diff --git a/src/main/site/images/contacts-project-hierarchy.png b/content/src/main/site/images/contacts-project-hierarchy.png similarity index 100% rename from src/main/site/images/contacts-project-hierarchy.png rename to content/src/main/site/images/contacts-project-hierarchy.png diff --git a/src/main/site/images/data_presentation_widgets.png b/content/src/main/site/images/data_presentation_widgets.png similarity index 100% rename from src/main/site/images/data_presentation_widgets.png rename to content/src/main/site/images/data_presentation_widgets.png diff --git a/src/main/site/images/dev_gal_blueprint.jpg b/content/src/main/site/images/dev_gal_blueprint.jpg similarity index 100% rename from src/main/site/images/dev_gal_blueprint.jpg rename to content/src/main/site/images/dev_gal_blueprint.jpg diff --git a/src/main/site/images/dev_gal_gogrid.jpg b/content/src/main/site/images/dev_gal_gogrid.jpg similarity index 100% rename from src/main/site/images/dev_gal_gogrid.jpg rename to content/src/main/site/images/dev_gal_gogrid.jpg diff --git a/src/main/site/images/dev_gal_scenechronize.jpg b/content/src/main/site/images/dev_gal_scenechronize.jpg similarity index 100% rename from src/main/site/images/dev_gal_scenechronize.jpg rename to content/src/main/site/images/dev_gal_scenechronize.jpg diff --git a/src/main/site/images/dev_gal_whirled.jpg b/content/src/main/site/images/dev_gal_whirled.jpg similarity index 100% rename from src/main/site/images/dev_gal_whirled.jpg rename to content/src/main/site/images/dev_gal_whirled.jpg diff --git a/src/main/site/images/docs.gif b/content/src/main/site/images/docs.gif similarity index 100% rename from src/main/site/images/docs.gif rename to content/src/main/site/images/docs.gif diff --git a/src/main/site/images/down.png b/content/src/main/site/images/down.png similarity index 100% rename from src/main/site/images/down.png rename to content/src/main/site/images/down.png diff --git a/src/main/site/images/dynamictable.jpg b/content/src/main/site/images/dynamictable.jpg similarity index 100% rename from src/main/site/images/dynamictable.jpg rename to content/src/main/site/images/dynamictable.jpg diff --git a/src/main/site/images/eclipse/eclipse-install-options.png b/content/src/main/site/images/eclipse/eclipse-install-options.png similarity index 100% rename from src/main/site/images/eclipse/eclipse-install-options.png rename to content/src/main/site/images/eclipse/eclipse-install-options.png diff --git a/src/main/site/images/eclipse/web-app-src.png b/content/src/main/site/images/eclipse/web-app-src.png similarity index 100% rename from src/main/site/images/eclipse/web-app-src.png rename to content/src/main/site/images/eclipse/web-app-src.png diff --git a/src/main/site/images/eclipse/web-app-wizard.png b/content/src/main/site/images/eclipse/web-app-wizard.png similarity index 100% rename from src/main/site/images/eclipse/web-app-wizard.png rename to content/src/main/site/images/eclipse/web-app-wizard.png diff --git a/src/main/site/images/favicon.png b/content/src/main/site/images/favicon.png similarity index 100% rename from src/main/site/images/favicon.png rename to content/src/main/site/images/favicon.png diff --git a/src/main/site/images/flow1-sm.png b/content/src/main/site/images/flow1-sm.png similarity index 100% rename from src/main/site/images/flow1-sm.png rename to content/src/main/site/images/flow1-sm.png diff --git a/src/main/site/images/flow2-sm.png b/content/src/main/site/images/flow2-sm.png similarity index 100% rename from src/main/site/images/flow2-sm.png rename to content/src/main/site/images/flow2-sm.png diff --git a/src/main/site/images/flow3-sm.png b/content/src/main/site/images/flow3-sm.png similarity index 100% rename from src/main/site/images/flow3-sm.png rename to content/src/main/site/images/flow3-sm.png diff --git a/src/main/site/images/flow4-sm.png b/content/src/main/site/images/flow4-sm.png similarity index 100% rename from src/main/site/images/flow4-sm.png rename to content/src/main/site/images/flow4-sm.png diff --git a/src/main/site/images/fragment_merging_after.jpg b/content/src/main/site/images/fragment_merging_after.jpg similarity index 100% rename from src/main/site/images/fragment_merging_after.jpg rename to content/src/main/site/images/fragment_merging_after.jpg diff --git a/src/main/site/images/fragment_merging_before.jpg b/content/src/main/site/images/fragment_merging_before.jpg similarity index 100% rename from src/main/site/images/fragment_merging_before.jpg rename to content/src/main/site/images/fragment_merging_before.jpg diff --git a/src/main/site/images/gaestudio.png b/content/src/main/site/images/gaestudio.png similarity index 100% rename from src/main/site/images/gaestudio.png rename to content/src/main/site/images/gaestudio.png diff --git a/src/main/site/images/gilead_diagram.png b/content/src/main/site/images/gilead_diagram.png similarity index 100% rename from src/main/site/images/gilead_diagram.png rename to content/src/main/site/images/gilead_diagram.png diff --git a/src/main/site/images/gitter-logo-mark-white.png b/content/src/main/site/images/gitter-logo-mark-white.png similarity index 100% rename from src/main/site/images/gitter-logo-mark-white.png rename to content/src/main/site/images/gitter-logo-mark-white.png diff --git a/src/main/site/images/go_grid.jpg b/content/src/main/site/images/go_grid.jpg similarity index 100% rename from src/main/site/images/go_grid.jpg rename to content/src/main/site/images/go_grid.jpg diff --git a/src/main/site/images/gwt-architecture.png b/content/src/main/site/images/gwt-architecture.png similarity index 100% rename from src/main/site/images/gwt-architecture.png rename to content/src/main/site/images/gwt-architecture.png diff --git a/src/main/site/images/gwt-logo.png b/content/src/main/site/images/gwt-logo.png similarity index 100% rename from src/main/site/images/gwt-logo.png rename to content/src/main/site/images/gwt-logo.png diff --git a/src/main/site/images/gwt-sm.png b/content/src/main/site/images/gwt-sm.png similarity index 100% rename from src/main/site/images/gwt-sm.png rename to content/src/main/site/images/gwt-sm.png diff --git a/src/main/site/images/gwtdesigner.png b/content/src/main/site/images/gwtdesigner.png similarity index 100% rename from src/main/site/images/gwtdesigner.png rename to content/src/main/site/images/gwtdesigner.png diff --git a/src/main/site/images/gwtproject.org-2015-banner@2x.png b/content/src/main/site/images/gwtproject.org-2015-banner@2x.png similarity index 100% rename from src/main/site/images/gwtproject.org-2015-banner@2x.png rename to content/src/main/site/images/gwtproject.org-2015-banner@2x.png diff --git a/src/main/site/images/helloworld.jpg b/content/src/main/site/images/helloworld.jpg similarity index 100% rename from src/main/site/images/helloworld.jpg rename to content/src/main/site/images/helloworld.jpg diff --git a/src/main/site/images/hosted_hibernate_error.png b/content/src/main/site/images/hosted_hibernate_error.png similarity index 100% rename from src/main/site/images/hosted_hibernate_error.png rename to content/src/main/site/images/hosted_hibernate_error.png diff --git a/src/main/site/images/import-into-intellij.png b/content/src/main/site/images/import-into-intellij.png similarity index 100% rename from src/main/site/images/import-into-intellij.png rename to content/src/main/site/images/import-into-intellij.png diff --git a/src/main/site/images/inbox.png b/content/src/main/site/images/inbox.png similarity index 100% rename from src/main/site/images/inbox.png rename to content/src/main/site/images/inbox.png diff --git a/src/main/site/images/intellij-project.png b/content/src/main/site/images/intellij-project.png similarity index 100% rename from src/main/site/images/intellij-project.png rename to content/src/main/site/images/intellij-project.png diff --git a/src/main/site/images/intellij-run-code-server.png b/content/src/main/site/images/intellij-run-code-server.png similarity index 100% rename from src/main/site/images/intellij-run-code-server.png rename to content/src/main/site/images/intellij-run-code-server.png diff --git a/src/main/site/images/intellij-run-server.png b/content/src/main/site/images/intellij-run-server.png similarity index 100% rename from src/main/site/images/intellij-run-server.png rename to content/src/main/site/images/intellij-run-server.png diff --git a/src/main/site/images/jsonrpc.jpg b/content/src/main/site/images/jsonrpc.jpg similarity index 100% rename from src/main/site/images/jsonrpc.jpg rename to content/src/main/site/images/jsonrpc.jpg diff --git a/src/main/site/images/kicthensink.jpg b/content/src/main/site/images/kicthensink.jpg similarity index 100% rename from src/main/site/images/kicthensink.jpg rename to content/src/main/site/images/kicthensink.jpg diff --git a/src/main/site/images/kitchensink.jpg b/content/src/main/site/images/kitchensink.jpg similarity index 100% rename from src/main/site/images/kitchensink.jpg rename to content/src/main/site/images/kitchensink.jpg diff --git a/src/main/site/images/learnmore.gif b/content/src/main/site/images/learnmore.gif similarity index 100% rename from src/main/site/images/learnmore.gif rename to content/src/main/site/images/learnmore.gif diff --git a/src/main/site/images/logo-wire.png b/content/src/main/site/images/logo-wire.png similarity index 100% rename from src/main/site/images/logo-wire.png rename to content/src/main/site/images/logo-wire.png diff --git a/src/main/site/images/lombardi_blueprint.jpg b/content/src/main/site/images/lombardi_blueprint.jpg similarity index 100% rename from src/main/site/images/lombardi_blueprint.jpg rename to content/src/main/site/images/lombardi_blueprint.jpg diff --git a/src/main/site/images/mail.jpg b/content/src/main/site/images/mail.jpg similarity index 100% rename from src/main/site/images/mail.jpg rename to content/src/main/site/images/mail.jpg diff --git a/src/main/site/images/mvp_diagram.png b/content/src/main/site/images/mvp_diagram.png similarity index 100% rename from src/main/site/images/mvp_diagram.png rename to content/src/main/site/images/mvp_diagram.png diff --git a/src/main/site/images/myapplication-browser.png b/content/src/main/site/images/myapplication-browser.png similarity index 100% rename from src/main/site/images/myapplication-browser.png rename to content/src/main/site/images/myapplication-browser.png diff --git a/src/main/site/images/myapplication-devmode.png b/content/src/main/site/images/myapplication-devmode.png similarity index 100% rename from src/main/site/images/myapplication-devmode.png rename to content/src/main/site/images/myapplication-devmode.png diff --git a/src/main/site/images/myapplication-missing-plugin.png b/content/src/main/site/images/myapplication-missing-plugin.png similarity index 100% rename from src/main/site/images/myapplication-missing-plugin.png rename to content/src/main/site/images/myapplication-missing-plugin.png diff --git a/src/main/site/images/mywebapp.png b/content/src/main/site/images/mywebapp.png similarity index 100% rename from src/main/site/images/mywebapp.png rename to content/src/main/site/images/mywebapp.png diff --git a/src/main/site/images/newwindow.gif b/content/src/main/site/images/newwindow.gif similarity index 100% rename from src/main/site/images/newwindow.gif rename to content/src/main/site/images/newwindow.gif diff --git a/src/main/site/images/noscreenshot.jpg b/content/src/main/site/images/noscreenshot.jpg similarity index 100% rename from src/main/site/images/noscreenshot.jpg rename to content/src/main/site/images/noscreenshot.jpg diff --git a/src/main/site/images/ruxit.png b/content/src/main/site/images/ruxit.png similarity index 100% rename from src/main/site/images/ruxit.png rename to content/src/main/site/images/ruxit.png diff --git a/src/main/site/images/scenechronize.jpg b/content/src/main/site/images/scenechronize.jpg similarity index 100% rename from src/main/site/images/scenechronize.jpg rename to content/src/main/site/images/scenechronize.jpg diff --git a/src/main/site/images/sdk-sm.png b/content/src/main/site/images/sdk-sm.png similarity index 100% rename from src/main/site/images/sdk-sm.png rename to content/src/main/site/images/sdk-sm.png diff --git a/src/main/site/images/sdm-debugger-breakpoint.png b/content/src/main/site/images/sdm-debugger-breakpoint.png similarity index 100% rename from src/main/site/images/sdm-debugger-breakpoint.png rename to content/src/main/site/images/sdm-debugger-breakpoint.png diff --git a/src/main/site/images/sdm-debugger.png b/content/src/main/site/images/sdm-debugger.png similarity index 100% rename from src/main/site/images/sdm-debugger.png rename to content/src/main/site/images/sdm-debugger.png diff --git a/src/main/site/images/showcase.jpg b/content/src/main/site/images/showcase.jpg similarity index 100% rename from src/main/site/images/showcase.jpg rename to content/src/main/site/images/showcase.jpg diff --git a/src/main/site/images/speedtracer-large.png b/content/src/main/site/images/speedtracer-large.png similarity index 100% rename from src/main/site/images/speedtracer-large.png rename to content/src/main/site/images/speedtracer-large.png diff --git a/src/main/site/images/spring_logo.png b/content/src/main/site/images/spring_logo.png similarity index 100% rename from src/main/site/images/spring_logo.png rename to content/src/main/site/images/spring_logo.png diff --git a/src/main/site/images/st_server_trace.png b/content/src/main/site/images/st_server_trace.png similarity index 100% rename from src/main/site/images/st_server_trace.png rename to content/src/main/site/images/st_server_trace.png diff --git a/src/main/site/images/sticky.png b/content/src/main/site/images/sticky.png similarity index 100% rename from src/main/site/images/sticky.png rename to content/src/main/site/images/sticky.png diff --git a/src/main/site/images/sts_dashboard.png b/content/src/main/site/images/sts_dashboard.png similarity index 100% rename from src/main/site/images/sts_dashboard.png rename to content/src/main/site/images/sts_dashboard.png diff --git a/src/main/site/images/superdevmode_dialog.png b/content/src/main/site/images/superdevmode_dialog.png similarity index 100% rename from src/main/site/images/superdevmode_dialog.png rename to content/src/main/site/images/superdevmode_dialog.png diff --git a/src/main/site/images/superdevmode_enablesourcemaps.png b/content/src/main/site/images/superdevmode_enablesourcemaps.png similarity index 100% rename from src/main/site/images/superdevmode_enablesourcemaps.png rename to content/src/main/site/images/superdevmode_enablesourcemaps.png diff --git a/src/main/site/images/testing_methodologies_mvc.png b/content/src/main/site/images/testing_methodologies_mvc.png similarity index 100% rename from src/main/site/images/testing_methodologies_mvc.png rename to content/src/main/site/images/testing_methodologies_mvc.png diff --git a/src/main/site/images/testing_methodologies_mvp.png b/content/src/main/site/images/testing_methodologies_mvp.png similarity index 100% rename from src/main/site/images/testing_methodologies_mvp.png rename to content/src/main/site/images/testing_methodologies_mvp.png diff --git a/src/main/site/images/testing_methodologies_object_diagram.png b/content/src/main/site/images/testing_methodologies_object_diagram.png similarity index 100% rename from src/main/site/images/testing_methodologies_object_diagram.png rename to content/src/main/site/images/testing_methodologies_object_diagram.png diff --git a/src/main/site/images/testing_methodologies_screenshot.png b/content/src/main/site/images/testing_methodologies_screenshot.png similarity index 100% rename from src/main/site/images/testing_methodologies_screenshot.png rename to content/src/main/site/images/testing_methodologies_screenshot.png diff --git a/src/main/site/images/war_output_dir.png b/content/src/main/site/images/war_output_dir.png similarity index 100% rename from src/main/site/images/war_output_dir.png rename to content/src/main/site/images/war_output_dir.png diff --git a/src/main/site/images/wave.jpg b/content/src/main/site/images/wave.jpg similarity index 100% rename from src/main/site/images/wave.jpg rename to content/src/main/site/images/wave.jpg diff --git a/src/main/site/images/whirled.jpg b/content/src/main/site/images/whirled.jpg similarity index 100% rename from src/main/site/images/whirled.jpg rename to content/src/main/site/images/whirled.jpg diff --git a/src/main/site/index.html b/content/src/main/site/index.html similarity index 100% rename from src/main/site/index.html rename to content/src/main/site/index.html diff --git a/src/main/site/missing-plugin/download.gif b/content/src/main/site/missing-plugin/download.gif similarity index 100% rename from src/main/site/missing-plugin/download.gif rename to content/src/main/site/missing-plugin/download.gif diff --git a/src/main/site/missing-plugin/index.html b/content/src/main/site/missing-plugin/index.html similarity index 100% rename from src/main/site/missing-plugin/index.html rename to content/src/main/site/missing-plugin/index.html diff --git a/src/main/site/missing-plugin/unsupported.gif b/content/src/main/site/missing-plugin/unsupported.gif similarity index 100% rename from src/main/site/missing-plugin/unsupported.gif rename to content/src/main/site/missing-plugin/unsupported.gif diff --git a/src/test/java/com/google/gwt/site/markdown/MDTranslatorTest.java b/content/src/test/java/com/google/gwt/site/markdown/MDTranslatorTest.java similarity index 100% rename from src/test/java/com/google/gwt/site/markdown/MDTranslatorTest.java rename to content/src/test/java/com/google/gwt/site/markdown/MDTranslatorTest.java diff --git a/pom.xml b/pom.xml index 9d12536bdd510ed523d385fb283ee169e004a40f..573ecda87afffb42c71b5b04e078197c52dfeed4 100644 GIT binary patch literal 1054 zcmb`H%TB^T6o&t`iSIzzw<5YCrHMOD@RDGRTZD=?+6IdF^y+tJL}v&jnwZJZVL0bI zx4(S6XR0+iz{8~ zoaZrj9k<&Nvj=~n$1UuYY^Cg@fY*i6(ILcJxC0HpB3dR19LuxeTykHK@4ohkx4C@G z9=1MT^B$1%m}di}!vBA&ZT-1pmfIxiZ4z`Zb^V%9SsvAvF^dYnf?3`0Id@&PI`Y6f zbKG5a)~m2z851-uESc;X?3}YrHD#}y3PPo%E@DG$i?Zn%b4PHj&-e7(ROacPntXE- zr>Hr^5*wp#_lw!4$FTaYQ(b~mE_8w(hdM=**N(So8$!QWoNn06tc&ZKL(1u=jO5dYr4LJRh3fGFDyy0+j16n$VD`U27w`>IH^tW+WeiHc(s{oi-Tm#CNH z6mFLSsm*)vc=x;G@j~lH+^|#zcU8&TKQ4As*3YA;N^Th^Nu8uSMnscGA3wZ{F3F0l zE;Q%!yS8xL`~9BmA1l7iYPF93efRbX1gj)0cqUy{7wd3=*JH0r-9 zV|Y@rxJsHYnb>n0sjn#2HDzqhk1mG&O|;O}G(xhHht-;aovcL<;C4Eww6bcS+0Qx?y$Fuu!KI zB(Gj}+bY&vB;`PKi%t`O%Os5n7q#CpF8Jf;g-!|Q zhSQQ`L!O)=H441g>O+u;G;jvc2$lypqrZeF}r!E%C;CvE6Rq`d!d9bjSUw&Z9}n?RgY2 zAx~Gd%sKHW6`ia*`O4j?_m`Bh!~m3#L=GM^F1NHP2?YCV(UlIogrOGpl+k7?j_fWi zyUeyvJy!H5YREBEb|%}XsPgDHtPe_P&JZxgQjN?_`(Tlhwf6}*BPLN%$J(ltz@ASw z9bAq5_lXnweqnr`o-*3xycN~B`u>8Nv6}IW@$_)KqPm(sFdO1xnvCH&Db&V}V-qn` zCeKs(torj*JlA4LRt-*Q9O=`CM>Pz7yVt)gW_mr%kH7uf4Ie`pyT$v~J&-1-0ukHw zZOD2BP6_#|>A7Bqn)Q5Bkgq0u3yykm71&g zjn9b%ghulUJUdQ;hy{!?k49!<0$Kps=927ZLT>3`J?(~IHytmaj9GLUGY0U{9Mf9w z>iZ>GKc0Ek(-s2d)$u z7%&GW+E9IhzoD)NPra9qJKc(G)?_uxfS+-Oklo2J-&UbauAw3H?lkw7Q?IxmawJm< z`#71@vOv+UZo^_aBJ#oGv&}@rR+SC;{iuThAw6gmt`X^wa?sY=*4=(}5Qj@DZ#oX> z#_P%=+nX)wQZ$^6d23eD^yDNjS`>PYvQL3)2&=c@I zO7trefrVPFEdXtE<0VbJFG8?uV50Q10`r67V5f+!jXYMeN<07n diff --git a/web-app/pom.xml b/web-app/pom.xml new file mode 100644 index 000000000..aa2a58d8f --- /dev/null +++ b/web-app/pom.xml @@ -0,0 +1,197 @@ + + + + 4.0.0 + + org.gwtproject.site + 2.0-SNAPSHOT + gwt-site-parent + + gwt-site-webapp + gwt-app + + + yyyy-MM-dd + UTF-8 + + 2.12.1 + + 4.13.2 + + + 2.17 + 3.1 + + + + + + junit + junit + ${junit.version} + test + + + + + org.gwtproject + gwt-user + ${gwt.version} + + + com.google.elemental2 + elemental2-dom + 1.1.0 + + + org.gwtproject + gwt-dev + ${gwt.version} + + + org.gwtproject + gwt-codeserver + ${gwt.version} + + + + + + + ${basedir}/src/test/java + + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${compiler-plugin.version} + + 1.8 + 1.8 + + + + + net.ltgt.gwt.maven + gwt-maven-plugin + 1.0.1 + true + + com.google.gwt.site.webapp.GWTProject + + -saveSource + + + true + + true + ${project.build.directory}/www + ${project.build.directory}/extra + + **/*Test.java + + false + + + + maven-resources-plugin + + + + copy-sourcemap-resources + prepare-package + + copy-resources + + + ${project.build.directory}/${project.build.finalName}/ + + + + ${project.build.directory}/extra/gwtproject/src + src + + + + ${project.build.directory}/extra/gwtproject/symbolMaps + + *.json + + src + + + + + + + + + + + + full-site + + + com.google.gwt.site + gwt-site + ${project.version} + zip + generated-site + + + + + + maven-dependency-plugin + + + unpack-dependencies + prepare-package + + unpack-dependencies + + + com.google.gwt.site + gwt-site + true + ${project.build.directory}/www/ + + + + + + maven-resources-plugin + + + + copy-www-resources + prepare-package + + copy-resources + + + ${project.build.directory}/www/ + + + ${project.build.directory}/${project.build.finalName}/ + + + + + + + + + + + diff --git a/web-app/src/main/java/com/google/gwt/site/webapp/client/GWTProjectEntryPoint.java b/web-app/src/main/java/com/google/gwt/site/webapp/client/GWTProjectEntryPoint.java new file mode 100644 index 000000000..d2d2c08fc --- /dev/null +++ b/web-app/src/main/java/com/google/gwt/site/webapp/client/GWTProjectEntryPoint.java @@ -0,0 +1,525 @@ +/* + * Copyright 2015 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.google.gwt.site.webapp.client; + +import static elemental2.dom.DomGlobal.*; + +import com.google.gwt.core.client.EntryPoint; +import com.google.gwt.core.client.GWT; +import com.google.gwt.core.client.Scheduler; +import com.google.gwt.event.shared.HandlerRegistration; +import com.google.gwt.regexp.shared.RegExp; +import com.google.gwt.site.webapp.client.highlight.JsHighlight; +import com.google.gwt.user.client.Window; +import elemental2.core.JsArray; +import elemental2.core.JsWeakMap; +import elemental2.dom.*; +import jsinterop.annotations.JsFunction; +import jsinterop.base.JsArrayLike; + +public class GWTProjectEntryPoint implements EntryPoint { + + private static final int ANIMATION_TIME = 200; + + // Visible for testing + // The absolute path to the url root (http://gwtproject.com) + static String origin = GWT.getModuleBaseForStaticFiles() + .replaceFirst("^(\\w+://.+?)/.*", "$1").toLowerCase(); + + // Visible for testing + // We discard links with different origin, hashes, starting with protocol, javadocs, + // and media links. + static final RegExp isSameOriginRexp = RegExp.compile("^" + origin + + "|^(?!(#|[a-z#]+:))(?!.*(|/)javadoc/)(?!.*\\.(jpe?g|png|mpe?g|mp[34]|avi)$)", + "i"); + + private static boolean ajaxEnabled = origin.startsWith("http"); + private static String currentPage = Window.Location.getPath(); + private HandlerRegistration resizeHandler; + private EventListener homeScrollHandler; + private final JsWeakMap clickHandlers = new JsWeakMap<>(); + + private void slideToggle(HTMLElement el, int animationTime, boolean open) { + if (open) { + slideDown(el, animationTime); + } else { + slideUp(el, animationTime); + } + } + + private void slideDown(HTMLElement el, int animationTime) { + el.style.display = ""; + animateMaxHeight(el, 0, estimateHeight(el), animationTime); + } + + private void slideUp(HTMLElement el, int animationTime) { + animateMaxHeight(el, estimateHeight(el), 0, animationTime); + } + + private int estimateHeight(HTMLElement el) { + // applied as max-height, so overestimating only makes the animation + // lag slightly towards the start/end + return el.childElementCount * 33; + } + + private void animateMaxHeight(HTMLElement el, int from, int to, int animationTime) { + if (animationTime == 0) { + el.style.setProperty("display", to == 0 ? "none" : ""); + return; + } + el.style.setProperty("max-height", from + "px"); + el.style.setProperty("overflow", "hidden"); + el.style.setProperty("transition", "max-height " + animationTime + "ms ease-in-out"); + if (!el.dataset.has("transitionListener")) { + el.addEventListener("transitionend", evt -> { + String maxHeight = el.style.removeProperty("max-height"); + el.style.removeProperty("overflow"); + if ("0px".equals(maxHeight)) { + el.style.setProperty("display", "none"); + } + }); + el.dataset.set("transitionListener", "true"); + } + Scheduler.get().scheduleDeferred(() -> el.style.setProperty("max-height", to + "px")); + } + + @Override + public void onModuleLoad() { + bindSearch(); + + enhancePage(); + enhanceMenu(); + + onPageLoaded(false); + querySelector(".holder").style.display = ""; + } + + private HTMLElement querySelector(String selector) { + return (HTMLElement) document.querySelector(selector); + } + + private void highLight() { + JsHighlight.INSTANCE.initialize(); + forEach("pre > code", JsHighlight.INSTANCE::highlightBlock); + } + + private void bindSearch() { + HTMLElement form = querySelector("#search form"); + form.addEventListener("submit", (evt) -> { + HTMLInputElement input = (HTMLInputElement) form.querySelector("input"); + doSearch(input.value); + evt.preventDefault(); + }); + } + + private void enhanceMenu() { + HTMLElement nav = querySelector("#nav"); + nav.addEventListener("mouseenter", evt -> { + if (!nav.classList.contains("alwaysOpen")) { + nav.classList.remove("closed"); + } + }); + nav.addEventListener("mouseleave", evt -> { + if (!nav.classList.contains("alwaysOpen")) { + nav.classList.add("closed"); + } + }); + } + + /* + * Open the branch and select the item corresponding to the current url. + */ + private void openMenu() { + // close all submenus + // todo hide first anchor with css + forEach("#submenu > nav > ul > li", el -> { + el.style.display = "none"; + forEachChild(el, "a", child -> child.style.display = "none"); + }); + + String path = Window.Location.getPath(); + JsArrayLike matchingLinks = document + .querySelectorAll("#submenu a[href='" + path + "']"); + HTMLElement selectedItem = (HTMLElement) JsArray.from(matchingLinks) + .find((el, index, parent) -> !"none".equals(((HTMLElement) el).style.display)); + String mainNavigationHref; + String mainTitle; + if (selectedItem != null) { + + showBranch(selectedItem); + + JsArray liParents = parentMenuItems(selectedItem); + + HTMLElement subMenuItem = liParents.getAt(liParents.length - 1); + + subMenuItem.style.display = ""; + forEach("#submenu .active", el -> { + if (liParents.indexOf(el) < 0) { + el.classList.remove("active"); + } + }); + liParents.push(selectedItem); + liParents.forEach((el, index, array) -> { + if (el != selectedItem.parentElement) { + el.classList.add("active"); + } + return null; + }); + mainNavigationHref = subMenuItem.querySelector("a").getAttribute("href"); + mainTitle = subMenuItem.querySelector("a").textContent + " - " + selectedItem.textContent; + } else { + mainNavigationHref = Window.Location.getPath(); + mainTitle = isOverviewPage(mainNavigationHref) ? "Overview" : "Project"; + } + + forEach("#nav a.active", el -> el.classList.remove("active")); + forEach("#nav a[href='" + mainNavigationHref + "']", el -> el.classList.add("active")); + + + // Change the page title for easy bookmarking + querySelector("title").textContent = "[GWT] " + mainTitle; + + boolean homePage = isHomePage(path); + boolean overviewPage = isOverviewPage(path); + querySelector("#nav").classList.toggle("alwaysOpen", homePage); + querySelector("#content").classList.toggle("home", homePage); + if (querySelector("#submenu") != null) { + if (homePage || overviewPage) { + querySelector("#submenu").style.display = "none"; + } else { + querySelector("#submenu").style.display = ""; + } + } + + maybeStyleHomepage(); + } + + private JsArray parentMenuItems(HTMLElement selectedItem) { + JsArray ret = new JsArray<>(); + Element current = selectedItem; + while (current != null) { + if (current.tagName.equalsIgnoreCase("li")) { + ret.push((HTMLElement) current); + } + if ("submenu".equals(current.id)) { + break; + } + current = current.parentElement; + } + return ret; + } + + /* + * Enhance the page adding handlers and replacing relative by absolute urls + */ + private void enhancePage() { + HTMLElement nav = querySelector("#nav"); + nav.addEventListener("mouseenter", evt -> nav.classList.remove("closed")); + nav.addEventListener("mouseleave", evt -> { + if (!nav.classList.contains("alwaysOpen")) { + nav.classList.add("closed"); + } + }); + + enhanceLinks(); + + // Do not continue enhancing if Ajax is disabled + if (!ajaxEnabled) { + // Select current item from the URL info + loadPage(null); + return; + } + + // Use Ajax instead of default behaviour + document.body.addEventListener("click", evt -> { + Element target = (Element) evt.target; + if (target.closest("a") == null) { + return; + } + if (shouldEnhanceLink(target) + // Is it a normal click (not ctrl/cmd/shift/right/middle click) ? + && handleAsClick((MouseEvent) evt)) { + + // In mobile, if menu is visible, close it + forEach("#submenu.show", el -> el.classList.remove("show")); + + // Load the page using Ajax + loadPage(target); + evt.preventDefault(); + } + }); + + // Select the TOC item when URL changes + window.addEventListener("popstate", evt -> loadPage(null)); + } + + + private boolean handleAsClick(MouseEvent event) { + int mouseButtons = event.button; + boolean modifiers = event.altKey || event.ctrlKey || event.metaKey || event.shiftKey; + boolean middle = mouseButtons == 4; + boolean right = mouseButtons == 2; + return !modifiers && !middle && !right; + } + + private boolean shouldEnhanceLink(Element link) { + return + // Enhance only local links + isSameOriginRexp.test(link.getAttribute("href")) + // Do not load links that are marked as full page reload + && !Boolean.parseBoolean(link.getAttribute("data-full-load")); + } + + private void enhanceLinks() { + // Replace relative paths in anchors by absolute ones + // exclude all anchors in the conHighlight and collapse menutent area. + // TODO could be done on server side + + forEach("a:not(#content a)", el -> { + if (shouldEnhanceLink(el)) { + // No need to make complicated things for computing + // the absolute path: anchor.pathname is the way + HTMLAnchorElement link = (HTMLAnchorElement) el; + link.href = link.pathname; + } + }); + + // We add a span with the +/- icon so as the click area is well defined + // this span is not rendered in server side because it is only needed + // for enhancing the page. + JsArray parentItems = new JsArray<>(); + forEach("#submenu ul > li li", el -> { + if (el.querySelector("ul") != null) { + parentItems.push(el); + el.parentElement.insertBefore(document.createElement("span"), el); + } + }); + String spanOrLocalLink = "span,a[href='#']"; + forEachChild(querySelector("#submenu"), spanOrLocalLink, el -> { + el.removeEventListener("click", clickHandlers.get(el)); + }); + // Toggle the branch when clicking on the arrow or anchor without content + parentItems.forEach((item, index, array) -> { + forEachChild(item, spanOrLocalLink, element -> { + EventListener eventListener = (evt) -> + toggleMenu((HTMLElement) ((Element) evt.target).parentElement); + element.addEventListener("click", eventListener); + clickHandlers.set(element, eventListener); + }); + item.classList.add("folder"); + if (!item.classList.contains("open")) { + forEachChild(item, "ul", + child -> slideUp(child, 0)); + } + return null; + }); + } + + private void toggleMenu(HTMLElement menu) { + boolean open = menu.classList.toggle("open"); + forEachChild(menu, "ul", + child -> slideToggle(child, ANIMATION_TIME, open)); + } + + private void showBranch(final HTMLElement item) { + Scheduler.get().scheduleDeferred(() -> { + Element parent = item.closest("li"); + while (parent != null) { + parent.classList.add("open"); + forEachChild(parent, "ul", + (htmlElement) -> slideDown(htmlElement, ajaxEnabled ? ANIMATION_TIME : 0)); + parent = parent.parentElement.closest("li"); + } + }); + } + + /* + * Change URL via pushState and load the page via Ajax. + */ + private void loadPage(Element link) { + String pageUrl = link == null ? null : ((HTMLAnchorElement) link).pathname; + + boolean shouldReplaceMenu = shouldReplaceMenu(pageUrl); + if (!currentPage.equals(pageUrl)) { + if (pageUrl != null) { + // Preserve QueryString, useful for the gwt.codesvr parameter in dev-mode. + pageUrl = pageUrl.replaceFirst("(#.*|)$", Window.Location.getQueryString() + "$1"); + // Set the page to load in the URL + history.pushState(null, null, pageUrl); + } + + pageUrl = Window.Location.getPath(); + if (!currentPage.equals(pageUrl)) { + forEach("#spinner", el -> el.style.display = ""); + ajaxLoad(pageUrl, shouldReplaceMenu); + } else { + scrollToHash(); + } + currentPage = pageUrl; + } + } + + private void ajaxLoad(String pageUrl, final boolean shouldReplaceMenu) { + fetch(pageUrl).then(Response::text).then(responseText -> { + HTMLElement content = (HTMLElement) document.createElement("div"); + content.innerHTML = responseText; + + if (shouldReplaceMenu) { + document.querySelector("#submenu") + .replaceWith(content.querySelector("#submenu")); + } + + document.querySelector("#content").replaceWith(content.querySelector("#content")); + + onPageLoaded(shouldReplaceMenu); + return null; + }); + } + + private boolean shouldReplaceMenu(String pageUrl) { + String path = Window.Location.getPath(); + + boolean isHomeOrOverview = isHomePage(path) || isOverviewPage(path); + + return isHomeOrOverview && (!isHomePage(pageUrl) || !isOverviewPage(pageUrl)); + } + + private void onPageLoaded(boolean menuReplaced) { + if (menuReplaced) { + enhanceLinks(); + } + document.documentElement.style.removeProperty("scroll-behavior"); + openMenu(); + scrollToHash(); + forEach("#spinner", spinner -> spinner.style.display = "none"); + HTMLElement editLink = querySelector("#editLink"); + HTMLElement heading = querySelector("#content h1"); + if (editLink != null && heading != null) { + heading.appendChild(editLink); + } + // highlight loaded page + highLight(); + } + + /* + * Move the scroll to the hash fragment in the URL + */ + private void scrollToHash() { + String hash = Window.Location.getHash(); + Element anchor = hash.length() > 1 ? document.querySelector( + hash + ", [name='" + hash.substring(1) + "']") : null; + if (anchor == null) { + Window.scrollTo(0, 0); + } else { + anchor.scrollIntoView(); + } + } + + private void maybeStyleHomepage() { + if (querySelector("#content").classList.contains("home")) { + document.documentElement.style.setProperty("scroll-behavior", "smooth"); + styleHomepage(); + resizeHandler = Window.addResizeHandler(event -> styleHomepage()); + + // Pager + forEach(".next, .pager a", (element) -> element.addEventListener("click", event -> { + event.preventDefault(); + document.documentElement.scrollTop = + getElementOffset(document.querySelector(element.getAttribute("href"))); + })); + + forEach(".pager a", (element) -> element.addEventListener("click", event -> { + forEach(".pager a", e -> e.classList.remove("active")); + element.classList.add("active"); + })); + if (homeScrollHandler == null) { + homeScrollHandler = evt -> { + forEach(".pager a", el -> el.classList.remove("active")); + if (window.scrollY + 100 > getElementOffset(document.querySelector("#letsbegin"))) { + querySelector(".pager a:nth-child(3)").classList.add("active"); + } else if (window.scrollY + 100 > getElementOffset(document.querySelector("#gwt"))) { + querySelector(".pager a:nth-child(2)").classList.add("active"); + } else { + querySelector(".pager a:nth-child(1)").classList.add("active"); + } + }; + } + window.addEventListener("scroll", homeScrollHandler); + } else { + window.removeEventListener("scroll", homeScrollHandler); + if (resizeHandler != null) { + resizeHandler.removeHandler(); + resizeHandler = null; + } + } + } + + private int getElementOffset(Element element) { + return ((HTMLElement) element).offsetTop; + } + + private boolean isOverviewPage(String path) { + return "/overview.html".compareToIgnoreCase(path) == 0; + } + + private boolean isHomePage(String path) { + return "/".equals(path); + } + + private void styleHomepage() { + final int windowHeight = window.innerHeight; + int sectionHeight = ((HTMLElement) document.querySelector("#letsbegin")).offsetHeight; + + if (windowHeight > sectionHeight) { + forEach(".home section", element -> { + element.style.setProperty("height", windowHeight + "px"); + element.style.setProperty("padding", "0"); + HTMLElement container = (HTMLElement) element.querySelector(".container"); + container.style.setProperty("padding-top", + (windowHeight - container.offsetHeight) / 2 + "px"); + }); + } + } + + private void forEach(String selector, ElementConsumer consumer) { + document.querySelectorAll(selector).forEach((element, index, parent) -> { + consumer.accept((HTMLElement) element); + return null; + }); + } + + private void forEachChild(Element parent, String selector, ElementConsumer consumer) { + parent.childNodes.forEach((element, index, p) -> { + if (element instanceof HTMLElement) { + if (((HTMLElement) element).matches(selector)) { + consumer.accept((HTMLElement) element); + } + } + return null; + }); + } + + private native void doSearch(String value) /*-{ + var element = $wnd.google.search.cse.element.getElement('searchresults'); + element.execute(value); + }-*/; + + @JsFunction + private interface ElementConsumer { + void accept(HTMLElement element); + } +} diff --git a/web-app/src/main/java/com/google/gwt/site/webapp/client/highlight/JsHighlight.java b/web-app/src/main/java/com/google/gwt/site/webapp/client/highlight/JsHighlight.java new file mode 100644 index 000000000..395a554cf --- /dev/null +++ b/web-app/src/main/java/com/google/gwt/site/webapp/client/highlight/JsHighlight.java @@ -0,0 +1,41 @@ +package com.google.gwt.site.webapp.client.highlight; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.core.client.ScriptInjector; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.CssResource; +import com.google.gwt.resources.client.TextResource; +import elemental2.dom.DomGlobal; +import elemental2.dom.HTMLElement; +import jsinterop.base.Js; + +public class JsHighlight { + + interface CssHighlight extends ClientBundle { + CssHighlight INSTANCE = GWT.create(CssHighlight.class); + + @Source("idea.css") + CssResource idea(); + + @Source("highlight.pack.js") + TextResource highlight(); + + } + + private static boolean initialized; + public static final JsHighlight INSTANCE = GWT.create(JsHighlight.class); + + + public void initialize() { + if (!initialized) { + initialized = true; + ScriptInjector.fromString(CssHighlight.INSTANCE.highlight().getText()) + .setWindow(Js.uncheckedCast(DomGlobal.window)).inject(); + CssHighlight.INSTANCE.idea().ensureInjected(); + } + } + + public native void highlightBlock(HTMLElement e) /*-{ + e && $wnd.hljs && $wnd.hljs.highlightBlock(e); + }-*/; +} diff --git a/web-app/src/main/java/com/google/gwt/site/webapp/client/highlight/highlight.pack.js b/web-app/src/main/java/com/google/gwt/site/webapp/client/highlight/highlight.pack.js new file mode 100644 index 000000000..2f3351f0a --- /dev/null +++ b/web-app/src/main/java/com/google/gwt/site/webapp/client/highlight/highlight.pack.js @@ -0,0 +1,1306 @@ +/** + * This is a reduced version of highlight for gwt site supporting: + * java, javascript, html, xml, css, json, bash. + * + * Produced from https://github.com/isagalaev/highlight.js.git + * node tools/build.js -n java javascript html xml bash css json + */ + +(function(factory) { + + // Setup highlight.js for different environments. First is Node.js or + // CommonJS. + if(typeof exports !== 'undefined') { + factory(exports); + } else { + // Export hljs globally even when using AMD for cases when this script + // is loaded with others that may still expect a global hljs. + window.hljs = factory({}); + + // Finally register the global hljs with AMD. + if(typeof define === 'function' && define.amd) { + define('hljs', [], function() { + return window.hljs; + }); + } + } + +}(function(hljs) { + + /* Utility functions */ + + function escape(value) { + return value.replace(/&/gm, '&').replace(//gm, '>'); + } + + function tag(node) { + return node.nodeName.toLowerCase(); + } + + function testRe(re, lexeme) { + var match = re && re.exec(lexeme); + return match && match.index == 0; + } + + function isNotHighlighted(language) { + return /no-?highlight|plain|text/.test(language); + } + + function blockLanguage(block) { + var i, match, length, + classes = block.className + ' '; + + classes += block.parentNode ? block.parentNode.className : ''; + + // language-* takes precedence over non-prefixed class names and + match = /\blang(?:uage)?-([\w-]+)\b/.exec(classes); + if (match) { + return getLanguage(match[1]) ? match[1] : 'no-highlight'; + } + + classes = classes.split(/\s+/); + for(i = 0, length = classes.length; i < length; i++) { + if(getLanguage(classes[i]) || isNotHighlighted(classes[i])) { + return classes[i]; + } + } + + } + + function inherit(parent, obj) { + var result = {}, key; + for (key in parent) + result[key] = parent[key]; + if (obj) + for (key in obj) + result[key] = obj[key]; + return result; + } + + /* Stream merging */ + + function nodeStream(node) { + var result = []; + (function _nodeStream(node, offset) { + for (var child = node.firstChild; child; child = child.nextSibling) { + if (child.nodeType == 3) + offset += child.nodeValue.length; + else if (child.nodeType == 1) { + result.push({ + event: 'start', + offset: offset, + node: child + }); + offset = _nodeStream(child, offset); + // Prevent void elements from having an end tag that would actually + // double them in the output. There are more void elements in HTML + // but we list only those realistically expected in code display. + if (!tag(child).match(/br|hr|img|input/)) { + result.push({ + event: 'stop', + offset: offset, + node: child + }); + } + } + } + return offset; + })(node, 0); + return result; + } + + function mergeStreams(original, highlighted, value) { + var processed = 0; + var result = ''; + var nodeStack = []; + + function selectStream() { + if (!original.length || !highlighted.length) { + return original.length ? original : highlighted; + } + if (original[0].offset != highlighted[0].offset) { + return (original[0].offset < highlighted[0].offset) ? original : highlighted; + } + + /* + To avoid starting the stream just before it should stop the order is + ensured that original always starts first and closes last: + + if (event1 == 'start' && event2 == 'start') + return original; + if (event1 == 'start' && event2 == 'stop') + return highlighted; + if (event1 == 'stop' && event2 == 'start') + return original; + if (event1 == 'stop' && event2 == 'stop') + return highlighted; + + ... which is collapsed to: + */ + return highlighted[0].event == 'start' ? original : highlighted; + } + + function open(node) { + function attr_str(a) {return ' ' + a.nodeName + '="' + escape(a.value) + '"';} + result += '<' + tag(node) + Array.prototype.map.call(node.attributes, attr_str).join('') + '>'; + } + + function close(node) { + result += ''; + } + + function render(event) { + (event.event == 'start' ? open : close)(event.node); + } + + while (original.length || highlighted.length) { + var stream = selectStream(); + result += escape(value.substr(processed, stream[0].offset - processed)); + processed = stream[0].offset; + if (stream == original) { + /* + On any opening or closing tag of the original markup we first close + the entire highlighted node stack, then render the original tag along + with all the following original tags at the same offset and then + reopen all the tags on the highlighted stack. + */ + nodeStack.reverse().forEach(close); + do { + render(stream.splice(0, 1)[0]); + stream = selectStream(); + } while (stream == original && stream.length && stream[0].offset == processed); + nodeStack.reverse().forEach(open); + } else { + if (stream[0].event == 'start') { + nodeStack.push(stream[0].node); + } else { + nodeStack.pop(); + } + render(stream.splice(0, 1)[0]); + } + } + return result + escape(value.substr(processed)); + } + + /* Initialization */ + + function compileLanguage(language) { + + function reStr(re) { + return (re && re.source) || re; + } + + function langRe(value, global) { + return new RegExp( + reStr(value), + 'm' + (language.case_insensitive ? 'i' : '') + (global ? 'g' : '') + ); + } + + function compileMode(mode, parent) { + if (mode.compiled) + return; + mode.compiled = true; + + mode.keywords = mode.keywords || mode.beginKeywords; + if (mode.keywords) { + var compiled_keywords = {}; + + var flatten = function(className, str) { + if (language.case_insensitive) { + str = str.toLowerCase(); + } + str.split(' ').forEach(function(kw) { + var pair = kw.split('|'); + compiled_keywords[pair[0]] = [className, pair[1] ? Number(pair[1]) : 1]; + }); + }; + + if (typeof mode.keywords == 'string') { // string + flatten('keyword', mode.keywords); + } else { + Object.keys(mode.keywords).forEach(function (className) { + flatten(className, mode.keywords[className]); + }); + } + mode.keywords = compiled_keywords; + } + mode.lexemesRe = langRe(mode.lexemes || /\b\w+\b/, true); + + if (parent) { + if (mode.beginKeywords) { + mode.begin = '\\b(' + mode.beginKeywords.split(' ').join('|') + ')\\b'; + } + if (!mode.begin) + mode.begin = /\B|\b/; + mode.beginRe = langRe(mode.begin); + if (!mode.end && !mode.endsWithParent) + mode.end = /\B|\b/; + if (mode.end) + mode.endRe = langRe(mode.end); + mode.terminator_end = reStr(mode.end) || ''; + if (mode.endsWithParent && parent.terminator_end) + mode.terminator_end += (mode.end ? '|' : '') + parent.terminator_end; + } + if (mode.illegal) + mode.illegalRe = langRe(mode.illegal); + if (mode.relevance === undefined) + mode.relevance = 1; + if (!mode.contains) { + mode.contains = []; + } + var expanded_contains = []; + mode.contains.forEach(function(c) { + if (c.variants) { + c.variants.forEach(function(v) {expanded_contains.push(inherit(c, v));}); + } else { + expanded_contains.push(c == 'self' ? mode : c); + } + }); + mode.contains = expanded_contains; + mode.contains.forEach(function(c) {compileMode(c, mode);}); + + if (mode.starts) { + compileMode(mode.starts, parent); + } + + var terminators = + mode.contains.map(function(c) { + return c.beginKeywords ? '\\.?(' + c.begin + ')\\.?' : c.begin; + }) + .concat([mode.terminator_end, mode.illegal]) + .map(reStr) + .filter(Boolean); + mode.terminators = terminators.length ? langRe(terminators.join('|'), true) : {exec: function(/*s*/) {return null;}}; + } + + compileMode(language); + } + + /* + Core highlighting function. Accepts a language name, or an alias, and a + string with the code to highlight. Returns an object with the following + properties: + + - relevance (int) + - value (an HTML string with highlighting markup) + + */ + function highlight(name, value, ignore_illegals, continuation) { + + function subMode(lexeme, mode) { + for (var i = 0; i < mode.contains.length; i++) { + if (testRe(mode.contains[i].beginRe, lexeme)) { + return mode.contains[i]; + } + } + } + + function endOfMode(mode, lexeme) { + if (testRe(mode.endRe, lexeme)) { + while (mode.endsParent && mode.parent) { + mode = mode.parent; + } + return mode; + } + if (mode.endsWithParent) { + return endOfMode(mode.parent, lexeme); + } + } + + function isIllegal(lexeme, mode) { + return !ignore_illegals && testRe(mode.illegalRe, lexeme); + } + + function keywordMatch(mode, match) { + var match_str = language.case_insensitive ? match[0].toLowerCase() : match[0]; + return mode.keywords.hasOwnProperty(match_str) && mode.keywords[match_str]; + } + + function buildSpan(classname, insideSpan, leaveOpen, noPrefix) { + var classPrefix = noPrefix ? '' : options.classPrefix, + openSpan = ''; + + return openSpan + insideSpan + closeSpan; + } + + function processKeywords() { + if (!top.keywords) + return escape(mode_buffer); + var result = ''; + var last_index = 0; + top.lexemesRe.lastIndex = 0; + var match = top.lexemesRe.exec(mode_buffer); + while (match) { + result += escape(mode_buffer.substr(last_index, match.index - last_index)); + var keyword_match = keywordMatch(top, match); + if (keyword_match) { + relevance += keyword_match[1]; + result += buildSpan(keyword_match[0], escape(match[0])); + } else { + result += escape(match[0]); + } + last_index = top.lexemesRe.lastIndex; + match = top.lexemesRe.exec(mode_buffer); + } + return result + escape(mode_buffer.substr(last_index)); + } + + function processSubLanguage() { + var explicit = typeof top.subLanguage == 'string'; + if (explicit && !languages[top.subLanguage]) { + return escape(mode_buffer); + } + + var result = explicit ? + highlight(top.subLanguage, mode_buffer, true, continuations[top.subLanguage]) : + highlightAuto(mode_buffer, top.subLanguage.length ? top.subLanguage : undefined); + + // Counting embedded language score towards the host language may be disabled + // with zeroing the containing mode relevance. Usecase in point is Markdown that + // allows XML everywhere and makes every XML snippet to have a much larger Markdown + // score. + if (top.relevance > 0) { + relevance += result.relevance; + } + if (explicit) { + continuations[top.subLanguage] = result.top; + } + return buildSpan(result.language, result.value, false, true); + } + + function processBuffer() { + return top.subLanguage !== undefined ? processSubLanguage() : processKeywords(); + } + + function startNewMode(mode, lexeme) { + var markup = mode.className? buildSpan(mode.className, '', true): ''; + if (mode.returnBegin) { + result += markup; + mode_buffer = ''; + } else if (mode.excludeBegin) { + result += escape(lexeme) + markup; + mode_buffer = ''; + } else { + result += markup; + mode_buffer = lexeme; + } + top = Object.create(mode, {parent: {value: top}}); + } + + function processLexeme(buffer, lexeme) { + + mode_buffer += buffer; + if (lexeme === undefined) { + result += processBuffer(); + return 0; + } + + var new_mode = subMode(lexeme, top); + if (new_mode) { + result += processBuffer(); + startNewMode(new_mode, lexeme); + return new_mode.returnBegin ? 0 : lexeme.length; + } + + var end_mode = endOfMode(top, lexeme); + if (end_mode) { + var origin = top; + if (!(origin.returnEnd || origin.excludeEnd)) { + mode_buffer += lexeme; + } + result += processBuffer(); + do { + if (top.className) { + result += ''; + } + relevance += top.relevance; + top = top.parent; + } while (top != end_mode.parent); + if (origin.excludeEnd) { + result += escape(lexeme); + } + mode_buffer = ''; + if (end_mode.starts) { + startNewMode(end_mode.starts, ''); + } + return origin.returnEnd ? 0 : lexeme.length; + } + + if (isIllegal(lexeme, top)) + throw new Error('Illegal lexeme "' + lexeme + '" for mode "' + (top.className || '') + '"'); + + /* + Parser should not reach this point as all types of lexemes should be caught + earlier, but if it does due to some bug make sure it advances at least one + character forward to prevent infinite looping. + */ + mode_buffer += lexeme; + return lexeme.length || 1; + } + + var language = getLanguage(name); + if (!language) { + throw new Error('Unknown language: "' + name + '"'); + } + + compileLanguage(language); + var top = continuation || language; + var continuations = {}; // keep continuations for sub-languages + var result = '', current; + for(current = top; current != language; current = current.parent) { + if (current.className) { + result = buildSpan(current.className, '', true) + result; + } + } + var mode_buffer = ''; + var relevance = 0; + try { + var match, count, index = 0; + while (true) { + top.terminators.lastIndex = index; + match = top.terminators.exec(value); + if (!match) + break; + count = processLexeme(value.substr(index, match.index - index), match[0]); + index = match.index + count; + } + processLexeme(value.substr(index)); + for(current = top; current.parent; current = current.parent) { // close dangling modes + if (current.className) { + result += ''; + } + } + return { + relevance: relevance, + value: result, + language: name, + top: top + }; + } catch (e) { + if (e.message.indexOf('Illegal') != -1) { + return { + relevance: 0, + value: escape(value) + }; + } else { + throw e; + } + } + } + + /* + Highlighting with language detection. Accepts a string with the code to + highlight. Returns an object with the following properties: + + - language (detected language) + - relevance (int) + - value (an HTML string with highlighting markup) + - second_best (object with the same structure for second-best heuristically + detected language, may be absent) + + */ + function highlightAuto(text, languageSubset) { + languageSubset = languageSubset || options.languages || Object.keys(languages); + var result = { + relevance: 0, + value: escape(text) + }; + var second_best = result; + languageSubset.forEach(function(name) { + if (!getLanguage(name)) { + return; + } + var current = highlight(name, text, false); + current.language = name; + if (current.relevance > second_best.relevance) { + second_best = current; + } + if (current.relevance > result.relevance) { + second_best = result; + result = current; + } + }); + if (second_best.language) { + result.second_best = second_best; + } + return result; + } + + /* + Post-processing of the highlighted markup: + + - replace TABs with something more useful + - replace real line-breaks with '
' for non-pre containers + + */ + function fixMarkup(value) { + if (options.tabReplace) { + value = value.replace(/^((<[^>]+>|\t)+)/gm, function(match, p1 /*..., offset, s*/) { + return p1.replace(/\t/g, options.tabReplace); + }); + } + if (options.useBR) { + value = value.replace(/\n/g, '
'); + } + return value; + } + + function buildClassName(prevClassName, currentLang, resultLang) { + var language = currentLang ? aliases[currentLang] : resultLang, + result = [prevClassName.trim()]; + + if (!prevClassName.match(/\bhljs\b/)) { + result.push('hljs'); + } + + if (prevClassName.indexOf(language) === -1) { + result.push(language); + } + + return result.join(' ').trim(); + } + + /* + Applies highlighting to a DOM node containing code. Accepts a DOM node and + two optional parameters for fixMarkup. + */ + function highlightBlock(block) { + var language = blockLanguage(block); + if (isNotHighlighted(language)) + return; + + var node; + if (options.useBR) { + node = document.createElementNS('http://www.w3.org/1999/xhtml', 'div'); + node.innerHTML = block.innerHTML.replace(/\n/g, '').replace(//g, '\n'); + } else { + node = block; + } + var text = node.textContent; + var result = language ? highlight(language, text, true) : highlightAuto(text); + + var originalStream = nodeStream(node); + if (originalStream.length) { + var resultNode = document.createElementNS('http://www.w3.org/1999/xhtml', 'div'); + resultNode.innerHTML = result.value; + result.value = mergeStreams(originalStream, nodeStream(resultNode), text); + } + result.value = fixMarkup(result.value); + + block.innerHTML = result.value; + block.className = buildClassName(block.className, language, result.language); + block.result = { + language: result.language, + re: result.relevance + }; + if (result.second_best) { + block.second_best = { + language: result.second_best.language, + re: result.second_best.relevance + }; + } + } + + var options = { + classPrefix: 'hljs-', + tabReplace: null, + useBR: false, + languages: undefined + }; + + /* + Updates highlight.js global options with values passed in the form of an object + */ + function configure(user_options) { + options = inherit(options, user_options); + } + + /* + Applies highlighting to all
..
blocks on a page. + */ + function initHighlighting() { + if (initHighlighting.called) + return; + initHighlighting.called = true; + + var blocks = document.querySelectorAll('pre code'); + Array.prototype.forEach.call(blocks, highlightBlock); + } + + /* + Attaches highlighting to the page load event. + */ + function initHighlightingOnLoad() { + addEventListener('DOMContentLoaded', initHighlighting, false); + addEventListener('load', initHighlighting, false); + } + + var languages = {}; + var aliases = {}; + + function registerLanguage(name, language) { + var lang = languages[name] = language(hljs); + if (lang.aliases) { + lang.aliases.forEach(function(alias) {aliases[alias] = name;}); + } + } + + function listLanguages() { + return Object.keys(languages); + } + + function getLanguage(name) { + return languages[name] || languages[aliases[name]]; + } + + /* Interface definition */ + + hljs.highlight = highlight; + hljs.highlightAuto = highlightAuto; + hljs.fixMarkup = fixMarkup; + hljs.highlightBlock = highlightBlock; + hljs.configure = configure; + hljs.initHighlighting = initHighlighting; + hljs.initHighlightingOnLoad = initHighlightingOnLoad; + hljs.registerLanguage = registerLanguage; + hljs.listLanguages = listLanguages; + hljs.getLanguage = getLanguage; + hljs.inherit = inherit; + + // Common regexps + hljs.IDENT_RE = '[a-zA-Z]\\w*'; + hljs.UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\w*'; + hljs.NUMBER_RE = '\\b\\d+(\\.\\d+)?'; + hljs.C_NUMBER_RE = '(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'; // 0x..., 0..., decimal, float + hljs.BINARY_NUMBER_RE = '\\b(0b[01]+)'; // 0b... + hljs.RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~'; + + // Common modes + hljs.BACKSLASH_ESCAPE = { + begin: '\\\\[\\s\\S]', relevance: 0 + }; + hljs.APOS_STRING_MODE = { + className: 'string', + begin: '\'', end: '\'', + illegal: '\\n', + contains: [hljs.BACKSLASH_ESCAPE] + }; + hljs.QUOTE_STRING_MODE = { + className: 'string', + begin: '"', end: '"', + illegal: '\\n', + contains: [hljs.BACKSLASH_ESCAPE] + }; + hljs.PHRASAL_WORDS_MODE = { + begin: /\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such)\b/ + }; + hljs.COMMENT = function (begin, end, inherits) { + var mode = hljs.inherit( + { + className: 'comment', + begin: begin, end: end, + contains: [] + }, + inherits || {} + ); + mode.contains.push(hljs.PHRASAL_WORDS_MODE); + mode.contains.push({ + className: 'doctag', + begin: "(?:TODO|FIXME|NOTE|BUG|XXX):", + relevance: 0 + }); + return mode; + }; + hljs.C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$'); + hljs.C_BLOCK_COMMENT_MODE = hljs.COMMENT('/\\*', '\\*/'); + hljs.HASH_COMMENT_MODE = hljs.COMMENT('#', '$'); + hljs.NUMBER_MODE = { + className: 'number', + begin: hljs.NUMBER_RE, + relevance: 0 + }; + hljs.C_NUMBER_MODE = { + className: 'number', + begin: hljs.C_NUMBER_RE, + relevance: 0 + }; + hljs.BINARY_NUMBER_MODE = { + className: 'number', + begin: hljs.BINARY_NUMBER_RE, + relevance: 0 + }; + hljs.CSS_NUMBER_MODE = { + className: 'number', + begin: hljs.NUMBER_RE + '(' + + '%|em|ex|ch|rem' + + '|vw|vh|vmin|vmax' + + '|cm|mm|in|pt|pc|px' + + '|deg|grad|rad|turn' + + '|s|ms' + + '|Hz|kHz' + + '|dpi|dpcm|dppx' + + ')?', + relevance: 0 + }; + hljs.REGEXP_MODE = { + className: 'regexp', + begin: /\//, end: /\/[gimuy]*/, + illegal: /\n/, + contains: [ + hljs.BACKSLASH_ESCAPE, + { + begin: /\[/, end: /\]/, + relevance: 0, + contains: [hljs.BACKSLASH_ESCAPE] + } + ] + }; + hljs.TITLE_MODE = { + className: 'title', + begin: hljs.IDENT_RE, + relevance: 0 + }; + hljs.UNDERSCORE_TITLE_MODE = { + className: 'title', + begin: hljs.UNDERSCORE_IDENT_RE, + relevance: 0 + }; + +hljs.registerLanguage('bash', function(hljs) { + var VAR = { + className: 'variable', + variants: [ + {begin: /\$[\w\d#@][\w\d_]*/}, + {begin: /\$\{(.*?)}/} + ] + }; + var QUOTE_STRING = { + className: 'string', + begin: /"/, end: /"/, + contains: [ + hljs.BACKSLASH_ESCAPE, + VAR, + { + className: 'variable', + begin: /\$\(/, end: /\)/, + contains: [hljs.BACKSLASH_ESCAPE] + } + ] + }; + var APOS_STRING = { + className: 'string', + begin: /'/, end: /'/ + }; + + return { + aliases: ['sh', 'zsh'], + lexemes: /-?[a-z\.]+/, + keywords: { + keyword: + 'if then else elif fi for while in do done case esac function', + literal: + 'true false', + built_in: + // Shell built-ins + // http://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html + 'break cd continue eval exec exit export getopts hash pwd readonly return shift test times ' + + 'trap umask unset mvn ant webAppCreator i18nCreator ' + + // Bash built-ins + 'alias bind builtin caller command declare echo enable help let local logout mapfile printf ' + + 'read readarray source type typeset ulimit unalias ' + + // Shell modifiers + 'set shopt ' + + // Zsh built-ins + 'autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles ' + + 'compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate ' + + 'fc fg float functions getcap getln history integer jobs kill limit log noglob popd print ' + + 'pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit ' + + 'unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof ' + + 'zpty zregexparse zsocket zstyle ztcp', + operator: + '-ne -eq -lt -gt -f -d -e -s -l -a' // relevance booster + }, + contains: [ + { + className: 'shebang', + begin: /^#![^\n]+sh\s*$/, + relevance: 10 + }, + { + className: 'function', + begin: /\w[\w\d_]*\s*\(\s*\)\s*\{/, + returnBegin: true, + contains: [hljs.inherit(hljs.TITLE_MODE, {begin: /\w[\w\d_]*/})], + relevance: 0 + }, + hljs.HASH_COMMENT_MODE, + hljs.NUMBER_MODE, + QUOTE_STRING, + APOS_STRING, + VAR + ] + }; +}); + +hljs.registerLanguage('css', function(hljs) { + var IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*'; + var FUNCTION = { + className: 'function', + begin: IDENT_RE + '\\(', + returnBegin: true, + excludeEnd: true, + end: '\\(' + }; + var RULE = { + className: 'rule', + begin: /[A-Z\_\.\-]+\s*:/, returnBegin: true, end: ';', endsWithParent: true, + contains: [ + { + className: 'attribute', + begin: /\S/, end: ':', excludeEnd: true, + starts: { + className: 'value', + endsWithParent: true, excludeEnd: true, + contains: [ + FUNCTION, + hljs.CSS_NUMBER_MODE, + hljs.QUOTE_STRING_MODE, + hljs.APOS_STRING_MODE, + hljs.C_BLOCK_COMMENT_MODE, + { + className: 'hexcolor', begin: '#[0-9A-Fa-f]+' + }, + { + className: 'important', begin: '!important' + } + ] + } + } + ] + }; + + return { + case_insensitive: true, + illegal: /[=\/|'\$]/, + contains: [ + hljs.C_BLOCK_COMMENT_MODE, + RULE, + { + className: 'id', begin: /\#[A-Za-z0-9_-]+/ + }, + { + className: 'class', begin: /\.[A-Za-z0-9_-]+/ + }, + { + className: 'attr_selector', + begin: /\[/, end: /\]/, + illegal: '$' + }, + { + className: 'pseudo', + begin: /:(:)?[a-zA-Z0-9\_\-\+\(\)"']+/ + }, + { + className: 'at_rule', + begin: '@(font-face|page)', + lexemes: '[a-z-]+', + keywords: 'font-face page' + }, + { + className: 'at_rule', + begin: '@', end: '[{;]', // at_rule eating first "{" is a good thing + // because it doesn’t let it to be parsed as + // a rule set but instead drops parser into + // the default mode which is how it should be. + contains: [ + { + className: 'keyword', + begin: /\S+/ + }, + { + begin: /\s/, endsWithParent: true, excludeEnd: true, + relevance: 0, + contains: [ + FUNCTION, + hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, + hljs.CSS_NUMBER_MODE + ] + } + ] + }, + { + className: 'tag', begin: IDENT_RE, + relevance: 0 + }, + { + className: 'rules', + begin: '{', end: '}', + illegal: /\S/, + contains: [ + hljs.C_BLOCK_COMMENT_MODE, + RULE, + ] + } + ] + }; +}); + +hljs.registerLanguage('java', function(hljs) { + var GENERIC_IDENT_RE = hljs.UNDERSCORE_IDENT_RE + '(<' + hljs.UNDERSCORE_IDENT_RE + '>)?'; + var KEYWORDS = + 'false synchronized int abstract float private char boolean static null if const ' + + 'for true while long strictfp finally protected import native final void ' + + 'enum else break transient catch instanceof byte super volatile case assert short ' + + 'package default double public try this switch continue throws protected public private'; + + // https://docs.oracle.com/javase/7/docs/technotes/guides/language/underscores-literals.html + var JAVA_NUMBER_RE = '\\b' + + '(' + + '0[bB]([01]+[01_]+[01]+|[01]+)' + // 0b... + '|' + + '0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)' + // 0x... + '|' + + '(' + + '([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?' + + '|' + + '\\.([\\d]+[\\d_]+[\\d]+|[\\d]+)' + + ')' + + '([eE][-+]?\\d+)?' + // octal, decimal, float + ')' + + '[lLfF]?'; + var JAVA_NUMBER_MODE = { + className: 'number', + begin: JAVA_NUMBER_RE, + relevance: 0 + }; + + return { + aliases: ['jsp'], + keywords: KEYWORDS, + illegal: /<\//, + contains: [ + hljs.COMMENT( + '/\\*\\*', + '\\*/', + { + relevance : 0, + contains : [{ + className : 'doctag', + begin : '@[A-Za-z]+' + }] + } + ), + hljs.C_LINE_COMMENT_MODE, + hljs.C_BLOCK_COMMENT_MODE, + hljs.APOS_STRING_MODE, + hljs.QUOTE_STRING_MODE, + { + className: 'class', + beginKeywords: 'class interface', end: /[{;=]/, excludeEnd: true, + keywords: 'class interface', + illegal: /[:"\[\]]/, + contains: [ + {beginKeywords: 'extends implements'}, + hljs.UNDERSCORE_TITLE_MODE + ] + }, + { + // Expression keywords prevent 'keyword Name(...)' from being + // recognized as a function definition + beginKeywords: 'new throw return else', + relevance: 0 + }, + { + className: 'function', + begin: '(' + GENERIC_IDENT_RE + '\\s+)+' + hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true, end: /[{;=]/, + excludeEnd: true, + keywords: KEYWORDS, + contains: [ + { + begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true, + relevance: 0, + contains: [hljs.UNDERSCORE_TITLE_MODE] + }, + { + className: 'params', + begin: /\(/, end: /\)/, + keywords: KEYWORDS, + relevance: 0, + contains: [ + hljs.APOS_STRING_MODE, + hljs.QUOTE_STRING_MODE, + hljs.C_NUMBER_MODE, + hljs.C_BLOCK_COMMENT_MODE + ] + }, + hljs.C_LINE_COMMENT_MODE, + hljs.C_BLOCK_COMMENT_MODE + ] + }, + JAVA_NUMBER_MODE, + { + className: 'annotation', begin: '@[A-Za-z]+' + } + ] + }; +}); + +hljs.registerLanguage('javascript', function(hljs) { + return { + aliases: ['js'], + keywords: { + keyword: + 'in of if for while finally var new function do return void else break catch ' + + 'instanceof with throw case default try this switch continue typeof delete ' + + 'let yield const export super debugger as async await', + literal: + 'true false null undefined NaN Infinity', + built_in: + 'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent ' + + 'encodeURI encodeURIComponent escape unescape Object Function Boolean Error ' + + 'EvalError InternalError RangeError ReferenceError StopIteration SyntaxError ' + + 'TypeError URIError Number Math Date String RegExp Array Float32Array ' + + 'Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array ' + + 'Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require ' + + 'module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect ' + + 'Promise' + }, + contains: [ + { + className: 'pi', + relevance: 10, + begin: /^\s*['"]use (strict|asm)['"]/ + }, + hljs.APOS_STRING_MODE, + hljs.QUOTE_STRING_MODE, + { // template string + className: 'string', + begin: '`', end: '`', + contains: [ + hljs.BACKSLASH_ESCAPE, + { + className: 'subst', + begin: '\\$\\{', end: '\\}' + } + ] + }, + hljs.C_LINE_COMMENT_MODE, + hljs.C_BLOCK_COMMENT_MODE, + { + className: 'number', + variants: [ + { begin: '\\b(0[bB][01]+)' }, + { begin: '\\b(0[oO][0-7]+)' }, + { begin: hljs.C_NUMBER_RE } + ], + relevance: 0 + }, + { // "value" container + begin: '(' + hljs.RE_STARTERS_RE + '|\\b(case|return|throw)\\b)\\s*', + keywords: 'return throw case', + contains: [ + hljs.C_LINE_COMMENT_MODE, + hljs.C_BLOCK_COMMENT_MODE, + hljs.REGEXP_MODE, + { // E4X / JSX + begin: /\s*[);\]]/, + relevance: 0, + subLanguage: 'xml' + } + ], + relevance: 0 + }, + { + className: 'function', + beginKeywords: 'function', end: /\{/, excludeEnd: true, + contains: [ + hljs.inherit(hljs.TITLE_MODE, {begin: /[A-Za-z$_][0-9A-Za-z$_]*/}), + { + className: 'params', + begin: /\(/, end: /\)/, + excludeBegin: true, + excludeEnd: true, + contains: [ + hljs.C_LINE_COMMENT_MODE, + hljs.C_BLOCK_COMMENT_MODE + ], + illegal: /["'\(]/ + } + ], + illegal: /\[|%/ + }, + { + begin: /\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something` + }, + { + begin: '\\.' + hljs.IDENT_RE, relevance: 0 // hack: prevents detection of keywords after dots + }, + // ECMAScript 6 modules import + { + beginKeywords: 'import', end: '[;$]', + keywords: 'import from as', + contains: [ + hljs.APOS_STRING_MODE, + hljs.QUOTE_STRING_MODE + ] + }, + { // ES6 class + className: 'class', + beginKeywords: 'class', end: /[{;=]/, excludeEnd: true, + illegal: /[:"\[\]]/, + contains: [ + {beginKeywords: 'extends'}, + hljs.UNDERSCORE_TITLE_MODE + ] + } + ] + }; +}); + +hljs.registerLanguage('json', function(hljs) { + var LITERALS = {literal: 'true false null'}; + var TYPES = [ + hljs.QUOTE_STRING_MODE, + hljs.C_NUMBER_MODE + ]; + var VALUE_CONTAINER = { + className: 'value', + end: ',', endsWithParent: true, excludeEnd: true, + contains: TYPES, + keywords: LITERALS + }; + var OBJECT = { + begin: '{', end: '}', + contains: [ + { + className: 'attribute', + begin: '\\s*"', end: '"\\s*:\\s*', excludeBegin: true, excludeEnd: true, + contains: [hljs.BACKSLASH_ESCAPE], + illegal: '\\n', + starts: VALUE_CONTAINER + } + ], + illegal: '\\S' + }; + var ARRAY = { + begin: '\\[', end: '\\]', + contains: [hljs.inherit(VALUE_CONTAINER, {className: null})], // inherit is also a workaround for a bug that makes shared modes with endsWithParent compile only the ending of one of the parents + illegal: '\\S' + }; + TYPES.splice(TYPES.length, 0, OBJECT, ARRAY); + return { + contains: TYPES, + keywords: LITERALS, + illegal: '\\S' + }; +}); + +hljs.registerLanguage('xml', function(hljs) { + var XML_IDENT_RE = '[A-Za-z0-9\\._:-]+'; + var PHP = { + begin: /<\?(php)?(?!\w)/, end: /\?>/, + subLanguage: 'php' + }; + var TAG_INTERNALS = { + endsWithParent: true, + illegal: /]+/} + ] + } + ] + } + ] + }; + return { + aliases: ['html', 'xhtml', 'rss', 'atom', 'xsl', 'plist'], + case_insensitive: true, + contains: [ + { + className: 'doctype', + begin: '', + relevance: 10, + contains: [{begin: '\\[', end: '\\]'}] + }, + hljs.COMMENT( + '', + { + relevance: 10 + } + ), + { + className: 'cdata', + begin: '<\\!\\[CDATA\\[', end: '\\]\\]>', + relevance: 10 + }, + { + className: 'tag', + /* + The lookahead pattern (?=...) ensures that 'begin' only matches + '|$)', end: '>', + keywords: {title: 'style'}, + contains: [TAG_INTERNALS], + starts: { + end: '', returnEnd: true, + subLanguage: 'css' + } + }, + { + className: 'tag', + // See the comment in the