diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..8af92c6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+*.DS_Store
+bower_components/
+/node_modules/
\ No newline at end of file
diff --git a/README.md b/README.md
index dd9a89f..32daa87 100644
--- a/README.md
+++ b/README.md
@@ -1,27 +1,68 @@
 # multiScroll.js
 
 ![preview](https://raw.github.com/alvarotrigo/multiScroll.js/master/examples/imgs/multiscroll.png)
-A simple plugin to create multi scrolling websites with two vertical scrolling panels.
+![compatibility](http://alvarotrigo.com/multiScroll/imgs/compatible.gif)
+
+---
+![multiScroll.js version](http://img.shields.io/badge/multiscroll.js-v0.2.2-brightgreen.svg)
+[![License](http://img.shields.io/badge/License-MIT-blue.svg)](http://opensource.org/licenses/MIT)
+[![PayPal Donate](https://img.shields.io/badge/donate-PayPal.me-ff69b4.svg)](https://www.paypal.me/alvarotrigo/9.95)
+&nbsp;&nbsp; **|**&nbsp;&nbsp; *3.7Kb gziped* &nbsp;&nbsp;**|**&nbsp;&nbsp; *Created by [@imac2](https://twitter.com/imac2)*
 
 - [Live demo](http://alvarotrigo.com/multiScroll/)
-- [Website](http://alvarotrigo.com/blog/multiscroll-js-jquery-plugin-to-create-multi-scrolling-sites-with-two-vertical-layouts/)
+- [Wordpress theme](https://goo.gl/Xuix30)
+- [multiScroll.js Extensions](http://alvarotrigo.com/multiScroll/extensions/)
+- [Website post](http://alvarotrigo.com/blog/multiscroll-js-jquery-plugin-to-create-multi-scrolling-sites-with-two-vertical-layouts/)
+---
+
+A simple plugin to create multi scrolling websites with two vertical scrolling panels.
 
-Invite me to a coffe
+
+Invite me to a coffee
 [![Donate](https://www.paypalobjects.com/en_US/GB/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/es/cgi-bin/webscr?cmd=_donations&business=BEK5JQCQMED4J&lc=GB&item_name=multiScroll%2ejs&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted)
 
 Customizations of the plugin available upon request for some reasonable price. <a href="http://alvarotrigo.com/#contact-page">Contact me</a>.
 
+- [Introduction](https://github.com/alvarotrigo/multiscroll.js#introduction)
+- [Compatibility](https://github.com/alvarotrigo/multiscroll.js#compatibility)
+- [Usage](https://github.com/alvarotrigo/multiscroll.js#usage)
+  - [Creating links to sections](https://github.com/alvarotrigo/multiscroll.js#creating-links-to-sections)
+  - [State classes added by multiscroll.js](https://github.com/alvarotrigo/multiscroll.js#state-classes-added-by-multiscrolljs)
+  - [Use extensions](https://github.com/alvarotrigo/multiscroll.js#use-extensions)
+- [Options](https://github.com/alvarotrigo/multiscroll.js#options)
+- [Methods](https://github.com/alvarotrigo/multiscroll.js#methods)
+- [Callbacks](https://github.com/alvarotrigo/multiscroll.js#callbacks)
+- [Reporting issues](https://github.com/alvarotrigo/multiscroll.js#reporting-issues)
+- [Changelog](https://github.com/alvarotrigo/multiscroll.js#changelog)
+- [Build tasks](https://github.com/alvarotrigo/multiscroll.js#build-tasks)
+- [Resources](https://github.com/alvarotrigo/multiscroll.js#resources)
+- [Who is using multiscroll.js](https://github.com/alvarotrigo/multiscroll.js#who-is-using-multiscrolljs)
+- [Donations](https://github.com/alvarotrigo/multiscroll.js#donations)
+- [License](https://github.com/alvarotrigo/multiscroll.js#license)
+
 ## Introduction
 This plugin its in Beta version. Suggestion are more than welcome, not only for feature requests but also for coding style improvements.
 
-## Compatibility 
-multiScroll.js is fully functional on all modern browsers, as well as some old ones such as Internet Explorer 8, 9, Opera 12... 
+## Compatibility
+multiScroll.js is fully functional on all modern browsers, as well as some old ones such as Internet Explorer 8, 9, Opera 12...
 It works with browsers with CSS3 support and with the ones who don't have it, making it ideal for old browsers compatibility.
+It is designed to work as well on touch devices such as mobile phones or tablets.
 
 ## Usage
 As you can see in the example files, you will need to include the JavaScript file `jquery.multiscroll.js` (or the minified version `jquery.multiscroll.min.js`) and the css file `jquery.multiscroll.css` of the plugin, as well as [jQuery](http://jquery.com/). Optionally, you can add the [jQuery UI library](http://jqueryui.com/) in case you want to use other easing effects apart from the ones included in the jQuery library which are the `linear` or `swing` effects. (`easeInQuart` is active by default, so you would need [jQuery UI library](http://jqueryui.com/) or the customized version  which is included in the vendors folder under the name `jquery.easings.min.js`.)
 
-###Including files:
+### Install using bower or npm
+**Optionally**, you can install multiscroll.js with bower or npm if you prefer:
+Terminal:
+```shell
+// With bower
+bower install multiscroll.js
+
+// With npm
+npm install multiscroll.js
+```
+
+### Including files:
 ```html
 <link rel="stylesheet" type="text/css" href="jquery.multiscroll.css" />
 
@@ -29,12 +70,16 @@ As you can see in the example files, you will need to include the JavaScript fil
 
 <!-- This following line is needed in case of using the default easing option or when using another
  one rather than "linear" or "swing". You can also add the full jQuery UI instead of this file if you prefer -->
-<script src="vendors/jquery.easings.min.js"></script>	
+<script src="vendors/jquery.easings.min.js"></script>
 
 <script type="text/javascript" src="jquery.multiscroll.js"></script>
 ```
 
-###Required HTML structure
+### Optional use of CDN
+If you prefer to use a CDN to load the needed files, multiscroll.js is in CDNJS:
+https://cdnjs.com/libraries/multiscroll.js
+
+### Required HTML structure
 Each section will be defined with a `div` containing the `section` class.
 The active section by default will be the first section, which is taken as the home page.
 ```html
@@ -52,7 +97,14 @@ The active section by default will be the first section, which is taken as the h
 </div>
 ```
 
-###Initialization 
+If you want to define a different starting point rather than the first section, just add the class active to the section you want to show on load.
+This should be done for the `ms-right` and `ms-left` elements.
+
+```javascript
+<div class="ms-section active">Some section</div>
+```
+
+### Initialization
 All you need to do is call the plugin inside a `$(document).ready` function:
 
 ```javascript
@@ -64,7 +116,7 @@ $(document).ready(function() {
 A more complex initialization with all options set could look like this:
 ```javascript
 $(document).ready(function() {
-	$('#multiscroll').multiscroll{
+	$('#multiscroll').multiscroll({
 		verticalCentered : true,
 		scrollingSpeed: 700,
 		easing: 'easeInQuart',
@@ -79,10 +131,22 @@ $(document).ready(function() {
 		css3: false,
 		paddingTop: 0,
 		paddingBottom: 0,
-		normalScrollElements: null, 
+		normalScrollElements: null,
+		scrollOverflow: false,
+		scrollOverflowOptions: null,
 		keyboardScrolling: true,
 		touchSensitivity: 5,
 
+		//responsive
+		responsiveWidth: 0,
+		responsiveHeight: 0,
+		responsiveExpand: false,
+
+		// Custom selectors
+		sectionSelector: '.ms-section',
+		leftSelector: '.ms-left',
+		rightSelector: '.ms-right',
+
 		//events
 		onLeave: function(index, nextIndex, direction){},
 		afterLoad: function(anchorLink, index){},
@@ -92,8 +156,8 @@ $(document).ready(function() {
 });
 ```
 
-#### Using anchor links
-In order to create links to certain sections, if you are using multiscroll.js with anchor links for the sections (using the `anchors` option), then you will be able to use anchor links also to navigate directly to a certain section by using the URL. 
+### Creating links to sections
+If you are using multiscroll.js with anchor links for the sections (using the `anchors` option), then you will be able to use anchor links also to navigate directly to a certain section by using the URL.
 
 You can do it by creating accessing to the URL by adding the anchor. For example: `http://youriste.com/#secondSection`.
 
@@ -101,24 +165,49 @@ You can do it by creating accessing to the URL by adding the anchor. For example
 
 You can also use the `menu` option and make use of anchor links (#) as explained below in the options section.
 
+
+### State classes added by multiScroll.js
+multiScroll.js adds multiple classes in different elements to keep a record of the status of the site:
+
+- `active` is added the current visible section.
+- `active` is added to the current menu element (if using the `menu` option).
+- A class of the form `ms-viewing-SECTION` is added to the `body` element of the site. (eg: [`ms-viewing-second`](http://alvarotrigo.com/multiScroll/#second) The `SECTION` part will be the anchors (or index if no anchor is provided) of the current section.
+- `ms-responsive` is added to the `body` element when the entering in the responsive mode
+
+### Use extensions
+multiscroll.js [provides a set of extensions](http://alvarotrigo.com/multiScroll/extensions/) you can use to enhance its default features. All of them are listed as [multiscroll.js options](https://github.com/alvarotrigo/multiscroll.js#options).
+
+Extensions requires you to use the minified file [`jquery.multiscroll.extensions.min.js`](https://github.com/alvarotrigo/multiscroll.js/blob/master/dist/jquery.multiscroll.extensions.min.js) that is inside the [`dist` folder](https://github.com/alvarotrigo/multiscroll.js/tree/master/dist) instead of the usual multiscroll.js file (`jquery.multiscroll.js` or `jquery.multiscroll.min.js`).
+
+Once you adquire the extension file, you will need to add it before multiscroll. For example, if I want to use the Continuos Horizontal extension, I would have include the extension file and then the extensions version of the multiscroll file.
+
+```html
+<script type="text/javascript" src="multiscroll.responsiveExpand.min.js"></script>
+<script type="text/javascript" src="jquery.multiscroll.extensions.min.js"></script>
+```
+
+An activation key and a license key will be required for each extension. [See more details about it here](https://github.com/alvarotrigo/multiscroll.js/wiki/How-to-activate-a-multiscroll.js-extension).
+
+Then you will be able to use and configure them as explained in [options](https://github.com/alvarotrigo/multiscroll.js#options).
+
 ## Options
 
 - `verticalCentered`: (default `true`) Vertically centering of the content within sections.
 
-- `scrollingSpeed`: (default `700`) Speed in miliseconds for the scrolling transitions.
+- `scrollingSpeed`: (default `700`) Speed in milliseconds for the scrolling transitions.
 
-- `sectionsColor`:(default `none`) Define the CSS `background-color` property for each section: 
-Example: 
+- `sectionsColor`:(default `none`) Define the CSS `background-color` property for each section:
+Example:
 ```javascript
 $('#multiscroll').multiscroll({
-    sectionsColor: ['#f2f2f2', '#4BBFC3', '#7BAABE', 'whitesmoke', '#000'],
+	sectionsColor: ['#f2f2f2', '#4BBFC3', '#7BAABE', 'whitesmoke', '#000'],
 });
 ```
 
 - `anchors`: (default `[]`) Defines the anchor links (#example) to be shown on the URL for each section. Using anchors forward and backward navigation will also be possible through the browser. This option also allows users to bookmark a specific section. **Be careful!** if you use anchors, they can not have the same value as any ID element on the site (or NAME element for IE).
 
 - `easing`: (default `easeInQuart`) Defines the transition effect to use for the vertical and horizontal scrolling.
-It requieres the file `vendors/jquery.easings.min.js` or [jQuery UI](http://jqueryui.com/) for using some of its transitions. Other libraries could be used instead.
+It requires the file `vendors/jquery.easings.min.js` or [jQuery UI](http://jqueryui.com/) for using some of its transitions. Other libraries could be used instead.
 
 - `loopTop`: (default `false`) Defines whether scrolling up in the first section should scroll to the last one or not.
 
@@ -126,12 +215,16 @@ It requieres the file `vendors/jquery.easings.min.js` or [jQuery UI](http://jque
 
 - `css3`: (default `false`). Defines wheter to use JavaScript or CSS3 transforms to scroll within sections. Useful to speed up the movement in tablet and mobile devices with browsers supporting CSS3. If this option is set to `true` and the browser doesn't support CSS3, a jQuery fallback will be used instead.
 
-- `paddingTop`: (default `0`) Defines the top padding for each section with a numerical value and its measure (paddingTop: '10px', paddingTop: '10em'...) Useful in case of using a fixed header. 
+- `paddingTop`: (default `0`) Defines the top padding for each section with a numerical value and its measure (paddingTop: '10px', paddingTop: '10em'...) Useful in case of using a fixed header.
 
 - `paddingBottom`: (default `0`) Defines the bottom padding for each section with a numerical value and its measure (paddingBottom: '10px', paddingBottom: '10em'...). Useful in case of using a fixed footer.
 
 - `normalScrollElements`: (default `null`) If you want to avoid the auto scroll when scrolling over some elements, this is the option you need to use. (useful for maps, scrolling divs etc.) It requires a string with the jQuery selectors for those elements. (For example: `normalScrollElements: '#element1, .element2'`)
 
+- `scrollOverflow`: (default `false`) [Demo](https://alvarotrigo.com/multiScroll/extensions/scrollOverflow.html) | [Extension of multiScroll.js](http://alvarotrigo.com/multiScroll/extensions/). (not compatible with IE 8) defines whether or not to create a scroll bar for the section/slide in case its content is bigger than the viewport's height. When set to `true`, your content will be wrapped by multiScroll.js. Consider using delegation or load your other scripts in the `afterRender` callback.
+
+- `scrollOverflowOptions`: (default `null`) when using `scrollOverflow:true` multiScroll.js will make use of a forked and modified version of [iScroll.js library](https://github.com/cubiq/iscroll/). You can customize the scrolling behaviour by providing multiScroll.js with the iScroll.js options you want to use. Check its [documentation](http://iscrolljs.com/) for more info.
+
 - `keyboardScrolling`: (default `true`) Defines if the content can be navigated using the keyboard
 
 - `touchSensitivity`: (default 5) Defines a percentage of the browsers window width/height, and how far a swipe must measure for navigating to the next section.
@@ -141,25 +234,36 @@ This won't generate a menu but will just add the `active` class to the element i
 In order to link the elements of the menu with the sections, an HTML 5 data-tag (`data-menuanchor`) will be needed to use with the same anchor links as used within the sections. Example:
 ```html
 <ul id="myMenu">
-    <li data-menuanchor="firstPage" class="active"><a href="#firstPage">First section</a></li>
-    <li data-menuanchor="secondPage"><a href="#secondPage">Second section</a></li>
-    <li data-menuanchor="thirdPage"><a href="#thirdPage">Third section</a></li>
-    <li data-menuanchor="fourthPage"><a href="#fourthPage">Fourth section</a></li>
+	<li data-menuanchor="firstPage" class="active"><a href="#firstPage">First section</a></li>
+	<li data-menuanchor="secondPage"><a href="#secondPage">Second section</a></li>
+	<li data-menuanchor="thirdPage"><a href="#thirdPage">Third section</a></li>
+	<li data-menuanchor="fourthPage"><a href="#fourthPage">Fourth section</a></li>
 </ul>
 ```
 ```javascript
 $('#multiscroll').multiscroll({
-    anchors: ['firstPage', 'secondPage', 'thirdPage', 'fourthPage', 'lastPage'],
-    menu: '#myMenu'
+	anchors: ['firstPage', 'secondPage', 'thirdPage', 'fourthPage', 'lastPage'],
+	menu: '#myMenu'
 });
 ```
 
-- `navigation`: (default `false`) If set to `true`, it will show a navigation bar made up of small circles. 
+- `navigation`: (default `false`) If set to `true`, it will show a navigation bar made up of small circles.
 
 - `navigationPosition`: (default `none`) It can be set to `left` or `right` and defines which position the navigation bar will be shown (if using one).
 
 - `navigationTooltips`: (default []) Defines the tooltips to show for the navigation circles in case they are being used. Example: `navigationTooltips: ['firstSection', 'secondSection']`.
 
+- `sectionSelector`: (default `.ms-section`) You can use own class name for section.
+
+- `leftSelector`: (default `.ms-left`) You can use own class name for left block.
+
+- `rightSelector`: (default `.ms-right`) You can use own class name for right block.
+
+- `responsiveWidth`: (default `0`) Only useful when using the option `responsiveExpand`. Normal scroll will be used under the defined width in pixels. A class `ms-responsive` is added to the body tag in case the user wants to use it for his own responsive CSS. For example, if set to 900, whenever the browser's width is less than 900 the plugin will scroll like a normal site.
+
+- `responsiveHeight`: (default `0`) Only useful when using the option `responsiveExpand`. Normal scroll will be used under the defined height in pixels. A class `ms-responsive` is added to the body tag in case the user wants to use it for his own responsive CSS. For example, if set to 900, whenever the browser's height is less than 900 the plugin will scroll like a normal site.
+
+- `responsiveExpand`: (default `false`) [Demo](https://alvarotrigo.com/multiScroll/extensions/responsive-expand.html) | [Extension of multiScroll.js](http://alvarotrigo.com/multiScroll/extensions/). When responsive mode is fired (by using the `responsiveWidth` or `responsiveHeight` options detailed above) it turns auto scrolling off and expands each left and right side into a full-width section placing one after another. Then the page can be scrolled normally. [Read more about how to use the Responsive Expand option.](https://github.com/alvarotrigo/multiscroll.js/wiki/Responsive-Expand-Extension)
 
 ## Methods
 
@@ -185,18 +289,18 @@ $.fn.multiscroll.moveTo('firstSection');
 
 ```javascript
 //Scrolling to the 3rd section in the site
-$.fn.multiscroll.moveTo(3); 
+$.fn.multiscroll.moveTo(3);
 ```
 
-### setAllowScrolling
-Adds or remove the possiblity of scrolling through sections by using the mouse wheel/trackpad or touch gestures (which is active by default).
+### setMouseWheelScrolling
+Adds or remove the possibility of scrolling through sections by using mouse wheel (which is active by default).
 
 ```javascript
-$.fn.multiscroll.setAllowScrolling(false);
+$.fn.multiscroll.setMouseWheelScrolling(false);
 ```
 
 ### setKeyboardScrolling
-Adds or remove the possiblity of scrolling through sections by using the keyboard arrow keys (which is active by default).
+Adds or remove the possibility of scrolling through sections by using the keyboard arrow keys (which is active by default).
 
 ```javascript
 $.fn.multiscroll.setKeyboardScrolling(false);
@@ -204,17 +308,30 @@ $.fn.multiscroll.setKeyboardScrolling(false);
 
 
 ### setScrollingSpeed
-Defines the scrolling speed in miliseconds.
+Defines the scrolling speed in milliseconds.
 
 ```javascript
 $.fn.multiscroll.setScrollingSpeed(700);
 ```
 
+### destroy
+Destroy plugin's events.
+
+```javascript
+$.fn.multiscroll.destroy();
+```
+
+### build
+Build plugin's events after destroy.
+
+```javascript
+$.fn.multiscroll.build();
+```
 
 
 ## Callbacks
-###afterLoad (`anchorLink`, `index`)
-Callback fired once the sections have been loaded, after the scrolling has ended. 
+### afterLoad (`anchorLink`, `index`)
+Callback fired once the sections have been loaded, after the scrolling has ended.
 Parameters:
 
 - `anchorLink`: anchorLink corresponding to the section.
@@ -227,13 +344,13 @@ Example:
 ```javascript
 	$('#multiscroll').multiscroll({
 		anchors: ['firstPage', 'secondPage', 'thirdPage', 'fourthPage', 'lastPage'],
-	
+
 		afterLoad: function(anchorLink, index){
 			//using index
 			if(index == '3'){
 				alert("Section 3 ended loading");
 			}
-			
+
 			//using anchorLink
 			if(anchorLink == 'secondSection'){
 				alert("Section 2 ended loading");
@@ -242,8 +359,8 @@ Example:
 	});
 ```
 
-###onLeave (`index`, `nextIndex`, `direction`)
-This callback is fired once the user leaves a section, in the transition to the new section. 
+### onLeave (`index`, `nextIndex`, `direction`)
+This callback is fired once the user leaves a section, in the transition to the new section.
 
 Parameters:
 
@@ -254,13 +371,13 @@ Parameters:
 Example:
 
 ```javascript
-	$('#multiscroll').multiscroll({	
-		onLeave: function(index, direction){
+	$('#multiscroll').multiscroll({
+		onLeave: function(index, nextIndex, direction){
 			//after leaving section 2
 			if(index == '2' && direction =='down'){
 				alert("Going to section 3!");
 			}
-			
+
 			else if(index == '2' && direction == 'up'){
 				alert("Going to section 1!");
 			}
@@ -269,7 +386,7 @@ Example:
 ```
 
 
-###afterRender()
+### afterRender()
 This callback is fired just after the structure of the page is generated. This is the callback you want to use to initialize other plugins or fire any code which requires the document to be ready (as this plugin modifies the DOM to create the resulting structure).
 
 Example:
@@ -277,12 +394,12 @@ Example:
 ```javascript
 	$('#multiscroll').multiscroll({
 		afterRender: function(){
-			alert("The resulting DOM stucture is ready");
+			alert("The resulting DOM structure is ready");
 		}
 	});
 ```
 
-###afterResize()
+### afterResize()
 This callback is fired after resizing the browser's window. Just after the sections are resized.
 
 Example:
@@ -295,10 +412,43 @@ Example:
 	});
 ```
 
+## Reporting issues
+1. Please, look for your issue before asking using the github issues search.
+2. Make sure you use the latest multiscroll.js version. No support is provided for older versions.
+3. Use the [the Github Issues forum](https://github.com/alvarotrigo/multiscroll.js/issues) to create issues.
+4. **An isolated reproduction of the issue will be required.** Make use of jsfiddle or codepen for it if possible.
 
+## Changelog
+To see the list of recent changes, see [Releases section](https://github.com/alvarotrigo/multiscroll.js/releases).
+
+## Build tasks
+Want to build multiscroll.js distribution files? Please see [Build Tasks](https://github.com/alvarotrigo/multiscroll.js/wiki/Build-tasks)
+
+## Resources
+- [Wordpress theme](https://goo.gl/kaTYZb)
 
 ## Who is using multiscroll.js
-If you want your page to be listed here. Please <a href="mailto:alvaro@alvarotrigo.com">contact me</a> with the URL
+If you want your page to be listed here. Please <a href="mailto:alvaro@alvarotrigo.com">contact me</a> with the URL.
+
+- [Themify](https://goo.gl/kaTYZb)
+- http://designova.net/reflex/index07.html
+- https://www.genscher.com
+- http://betterhr.de
+- https://www.kurasino.co.jp
+- http://www.lhaulhaumaria.com
+- https://thewastedhour.com
+- http://restaurant-eveil.com
+- https://www.tischlerei-clemens.de/tischlerei.html
+- http://www.ateliers-romeo.com
+- https://buerobinder.de
+- https://www.blancacre.com
+- http://caporasosrls.com
+- https://www.epic.ch/de/home
+- https://www.paulsbuero.com
+- http://ruiferraodev.net
+- http://lucasfleischer.com
+- https://quintushortus.com/pages/le-concept
+
 
 ## Donations
 Donations would be more than welcome :)
diff --git a/bower.json b/bower.json
index 6823307..bfc75b8 100644
--- a/bower.json
+++ b/bower.json
@@ -1,11 +1,11 @@
 {
   "name": "multiscroll.js",
-  "version": "2.0.5",
+  "version": "0.2.2",
   "homepage": "http://alvarotrigo.com/multiScroll/",
   "authors": [
     "Alvaro Trigo https://github.com/alvarotrigo"
   ],
-  "description": "Create  beautiful fullscreen scrolling websites",
+  "description": "Create beautiful fullscreen multi-scrolling websites",
   "main": [
       "jquery.multiscroll.js",
       "jquery.multiscroll.css"
@@ -27,10 +27,11 @@
     "node_modules",
     "bower_components",
     "test",
-    "tests"
+    "tests",
+    "examples"
   ],
   "dependencies": {
-      "jQuery": "latest",
+      "jquery": "^1.x",
       "jquery.ui": "latest"
     }
 }
diff --git a/dist/jquery.multiscroll.css b/dist/jquery.multiscroll.css
new file mode 100644
index 0000000..dc946cc
--- /dev/null
+++ b/dist/jquery.multiscroll.css
@@ -0,0 +1,112 @@
+/*!
+ * multiscroll.js 0.2.2
+ * https://github.com/alvarotrigo/multiscroll.js
+ * @license MIT licensed
+ *
+ * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo
+ */
+html, body {
+    margin: 0;
+    padding: 0;
+    overflow:hidden;
+    -webkit-tap-highlight-color: rgba(0,0,0,0);
+}
+.ms-section {
+    position: relative;
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    box-sizing: border-box;
+}
+.ms-section.ms-table{
+    display: table;
+    width: 100%;
+}
+.ms-tableCell {
+    display: table-cell;
+    vertical-align: middle;
+    width: 100%;
+    height: 100%;
+}
+.ms-easing {
+    -webkit-transition: all 0.7s ease-out;
+    -moz-transition: all 0.7s ease-out;
+    -o-transition: all 0.7s ease-out;
+    transition: all 0.7s ease-out;
+}
+#multiscroll-nav {
+    position: fixed;
+    z-index: 100;
+    margin-top: -32px;
+    top: 50%;
+    opacity: 1;
+}
+#multiscroll-nav.right {
+    right: 17px;
+}
+#multiscroll-nav.left {
+    left: 17px;
+}
+#multiscroll-nav ul{
+  margin: 0;
+  padding: 0;
+}
+#multiscroll-nav li{
+    display: block;
+    width: 14px;
+    height: 13px;
+    margin: 7px;
+    position:relative;
+}
+#multiscroll-nav li a{
+    display: block;
+    position: relative;
+    z-index: 1;
+    width: 100%;
+    height: 100%;
+    cursor: pointer;
+    text-decoration: none;
+}
+#multiscroll-nav li .active span{
+    background: #333;
+}
+#multiscroll-nav span{
+    top: 2px;
+    left: 2px;
+    width: 8px;
+    height: 8px;
+    border: 1px solid #000;
+    background: rgba(0, 0, 0, 0);
+    -webkit-border-radius: 50%;
+    -moz-border-radius: 50%;
+    border-radius: 50%;
+    position: absolute;
+    z-index: 1;
+}
+.multiscroll-tooltip {
+    position: absolute;
+    color: #fff;
+    font-size: 14px;
+    font-family: arial, helvetica, sans-serif;
+    top: -2px;
+    white-space: nowrap;
+    max-width: 220px;
+}
+.multiscroll-tooltip.right {
+    right: 20px;
+}
+.multiscroll-tooltip.left {
+    left: 20px;
+}
+.ms-responsive .ms-hide{
+    display: none;
+}
+.ms-scrollable {
+    overflow: hidden;
+    position: relative;
+}
+.ms-scroller{
+    overflow: hidden;
+}
+.iScrollIndicator{
+    border: 0 !important;
+}
diff --git a/dist/jquery.multiscroll.extensions.min.js b/dist/jquery.multiscroll.extensions.min.js
new file mode 100644
index 0000000..3bded64
--- /dev/null
+++ b/dist/jquery.multiscroll.extensions.min.js
@@ -0,0 +1,8 @@
+/*!
+ * multiscroll.js 0.2.2 - Extensions 0.0.7
+ * https://github.com/alvarotrigo/multiscroll.js
+ * @license MIT licensed
+ *
+ * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo
+ */
+!function(e,t,n,o,i){e.fn.multiscroll=function(s){var l=e.fn.multiscroll;l.shared={afterRender:O};var a="multiscroll-wrapper",r="."+a,c=(e("html, body"),e("body"));s=e.extend({verticalCentered:!0,scrollingSpeed:700,easing:"easeInOutCubic",menu:!1,sectionsColor:[],anchors:[],navigation:!1,navigationPosition:"right",navigationColor:"#000",navigationTooltips:[],loopBottom:!1,loopTop:!1,css3:!1,autoScrolling:!0,paddingTop:0,paddingBottom:0,fixedElements:null,normalScrollElements:null,keyboardScrolling:!0,touchSensitivity:5,responsiveWidth:null,responsiveHeight:null,responsiveExpand:!1,responsiveCombine:!1,scrollOverflow:!1,scrollOverflowOptions:null,sectionSelector:".ms-section",leftSelector:".ms-left",rightSelector:".ms-right",afterLoad:null,onLeave:null,afterRender:null,afterResize:null},s);var d,m,v=600,f=navigator.userAgent.match(/(iPhone|iPod|iPad|Android|playbook|silk|BlackBerry|BB10|Windows Phone|Tizen|Bada|webOS|IEMobile|Opera Mini)/),u="ontouchstart"in t||navigator.msMaxTouchPoints>0||navigator.maxTouchPoints,h={};".ms-right"!==s.rightSelector&&e(s.rightSelector).addClass("ms-right"),".ms-left"!==s.leftSelector&&e(s.leftSelector).addClass("ms-left");var p,g,x=e(".ms-left").find(".ms-section").length,w=!1,b=e(t).height(),S=e(t).width(),C=function(){var e;e=t.PointerEvent?{down:"pointerdown",move:"pointermove"}:{down:"MSPointerDown",move:"MSPointerMove"};return e}(),y={touchmove:"ontouchmove"in t?"touchmove":C.move,touchstart:"ontouchstart"in t?"touchstart":C.down};function O(){e.isFunction(s.afterRender)&&s.afterRender.call(this),s.scrollOverflow&&l.scrollOverflow.iscrollHandler.afterLoad()}function T(){var n=t.location.hash.replace("#","");if(n.length){var o=$("responsiveExpand","isResponsive")?e(".ms-left").find('[data-panel="ms-left"][data-anchor="'+n+'"]'):e(".ms-left").find('[data-anchor="'+n+'"]');("undefined"==typeof lastScrolledDestiny||n!==lastScrolledDestiny)&&k(o)}}e(this).length&&(l.getMultiscrollData=function(){return{options:s,internals:{isTouch:u,isTouchDevice:f,isReallyTouch:F,getEventsPage:K,numberSections:x,setLastScrollDestiny:Q,setURLHash:z,activateMenuElement:A,activateNavDots:Z,getYmovement:P,removeMouseWheelHandler:M,addMouseWheelHandler:B,removeTouchHandler:q,addTouchHandler:V,transformContainer:W,c:ne}}}),_("responsiveExpand"),_("scrollOverflow"),_("responsiveCombine"),B(),V(),s.css3&&(s.css3=function(){var e,o=n.createElement("p"),s={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};for(var l in n.body.insertBefore(o,null),s)o.style[l]!==i&&(o.style[l]="translate3d(1px,1px,1px)",e=t.getComputedStyle(o).getPropertyValue(s[l]));return n.body.removeChild(o),e!==i&&e.length>0&&"none"!==e}()),e("html, body").css({overflow:"hidden",height:"100%"}),e(this).addClass(a),".ms-section"!==s.sectionSelector&&e(s.sectionSelector).each(function(){e(this).addClass("ms-section")}),s.navigation&&(e("body").append('<div id="multiscroll-nav"><ul></ul></div>'),(p=e("#multiscroll-nav")).css("color",s.navigationColor),p.addClass(s.navigationPosition)),e(".ms-right, .ms-left").css({width:"50%",position:"absolute",height:"100%","-ms-touch-action":"none"}),e(".ms-right").css({right:"1px",top:"0","-ms-touch-action":"none","touch-action":"none"}),e(".ms-left").css({left:"0",top:"0","-ms-touch-action":"none","touch-action":"none"}),e(".ms-left .ms-section, .ms-right .ms-section").each(function(){var t,n=e(this).index();if((s.paddingTop||s.paddingBottom)&&e(this).css("padding",s.paddingTop+" 0 "+s.paddingBottom+" 0"),void 0!==s.sectionsColor[n]&&e(this).css("background-color",s.sectionsColor[n]),void 0!==s.anchors[n]&&e(this).attr("data-anchor",s.anchors[n]),s.verticalCentered&&(t=e(this)).addClass("ms-table").wrapInner('<div class="ms-tableCell" style="height: '+Y(t)+'px" />'),e(this).closest(".ms-left").length&&s.navigation){var o="";s.anchors.length&&(o=s.anchors[n]);var i=s.navigationTooltips[n];void 0===i&&(i=""),s.navigation&&p.find("ul").append('<li data-tooltip="'+i+'"><a href="#'+o+'"><span></span></a></li>')}}),e(".ms-right").html(e(".ms-right").find(".ms-section").get().reverse()),e(".ms-left .ms-section, .ms-right .ms-section").each(function(){var t=e(this).index();e(this).css({height:"100%"}),!t&&s.navigation&&p.find("li").eq(t).find("a").addClass("active")}).promise().done(function(){e(".ms-left .ms-section.active").length||(e(".ms-right").find(".ms-section").last().addClass("active"),e(".ms-left").find(".ms-section").first().addClass("active")),J("responsiveExpand")&&(l.responsiveExpand.setIndex("ms-left"),l.responsiveExpand.setIndex("ms-right"),l.responsiveExpand.init()),J("responsiveCombine")&&l.responsiveCombine.init(),J("scrollOverflow")&&(l.scrollOverflow.init(),d=l.scrollOverflow.iscrollHandler.init(s)),s.navigation&&p.css("margin-top","-"+p.height()/2+"px"),O(),D(),j(),e(t).on("load",function(){var n,o;n=t.location.hash.replace("#",""),o=e('.ms-left .ms-section[data-anchor="'+n+'"]'),n.length&&k(o)})}),e(t).on("hashchange",T),e(n).keydown(function(t){if(clearTimeout(g),!s.autoScrolling)return;var o=e(n.activeElement);if(!o.is("textarea")&&!o.is("input")&&!o.is("select")&&s.keyboardScrolling){var i=t.which;e.inArray(i,[40,38,32,33,34])>-1&&t.preventDefault(),g=setTimeout(function(){!function(t){var n=t.shiftKey;switch(t.which){case 38:case 33:l.moveSectionUp();break;case 32:if(n){l.moveSectionUp();break}case 40:case 34:l.moveSectionDown();break;case 36:l.moveTo(1);break;case 35:l.moveTo(e(".ms-left .ms-section").length);break;default:;}}(t)},150)}}),e(n).mousedown(function(e){if(1==e.button)return e.preventDefault(),!1}),e(n).on("click","#multiscroll-nav a",function(t){t.preventDefault();var n=e(this).parent().index();k(e(".ms-left .ms-section").eq(n))}),e(n).on({mouseenter:function(){var t=e(this).data("tooltip");e('<div class="multiscroll-tooltip '+s.navigationPosition+'">'+t+"</div>").hide().appendTo(e(this)).fadeIn(200)},mouseleave:function(){e(this).find(".multiscroll-tooltip").fadeOut(200,function(){e(this).remove()})}},"#multiscroll-nav li"),s.normalScrollElements&&(e(n).on("mouseenter",s.normalScrollElements,function(){l.setMouseWheelScrolling(!1)}),e(n).on("mouseleave",s.normalScrollElements,function(){l.setMouseWheelScrolling(!0)})),e(t).on("resize",L);var E=b;function L(){if(f){var i=e(n.activeElement);if(!i.is("textarea")&&!i.is("input")&&!i.is("select")){var s=e(t).height();o.abs(s-E)>20*o.max(E,s)/100&&(I(!0),E=s)}}else clearTimeout(m),m=setTimeout(function(){I(!0)},350)}function I(n){b=e(t).height(),S=e(t).width(),e(".ms-tableCell").each(function(){e(this).css({height:Y(e(this).parent())})}),s.scrollOverflow&&d.createScrollBarForAll(),s.scrollOverflow&&l.scrollOverflow.iscrollHandler.afterLoad(),D(),e.isFunction(s.afterResize)&&s.afterResize.call(this)}function D(){s.css3&&s.autoScrolling?(W(e(".ms-left"),"translate3d(0px, -"+e(".ms-left").find(".ms-section.active").position().top+"px, 0px)",!1),W(e(".ms-right"),"translate3d(0px, -"+e(".ms-right").find(".ms-section.active").position().top+"px, 0px)",!1)):s.autoScrolling?(e(".ms-left").css("top",-e(".ms-left").find(".ms-section.active").position().top),e(".ms-right").css("top",-e(".ms-right").find(".ms-section.active").position().top)):e("html,body").scrollTop(e(".ms-left").find(".ms-section.active").position().top)}function k(t){var n=t.index(),o=e(".ms-right").find(".ms-section").eq(x-1-n),i=t.data("anchor"),a=e(".ms-left .ms-section.active").index()+1,r=P(t);w=!0;var c={left:t.position().top};if($("responsiveExpand","isResponsive")||(c.right=o.position().top),$("responsiveExpand","isResponsive")||o.addClass("active").siblings().removeClass("active"),t.addClass("active").siblings().removeClass("active"),z(i),$("responsiveExpand","isResponsive"))l.responsiveExpand.performMovement(t),setTimeout(function(){w=!1},s.scrollingSpeed);else if(s.css3){e.isFunction(s.onLeave)&&s.onLeave.call(this,a,n+1,r),s.scrollOverflow&&l.scrollOverflow.iscrollHandler.onLeave();var d="translate3d(0px, -"+c.left+"px, 0px)",m="translate3d(0px, -"+c.right+"px, 0px)";W(e(".ms-left"),d,!0),W(e(".ms-right"),m,!0),setTimeout(function(){e.isFunction(s.afterLoad)&&s.afterLoad.call(this,i,n+1),s.scrollOverflow&&l.scrollOverflow.iscrollHandler.afterLoad(),setTimeout(function(){w=!1},v)},s.scrollingSpeed)}else e.isFunction(s.onLeave)&&s.onLeave.call(this,a,n+1,r),e(".ms-left").animate({top:-c.left},s.scrollingSpeed,s.easing,function(){e.isFunction(s.afterLoad)&&s.afterLoad.call(this,i,n+1),s.scrollOverflow&&l.scrollOverflow.iscrollHandler.afterLoad(),setTimeout(function(){w=!1},v)}),e(".ms-right").animate({top:-c.right},s.scrollingSpeed,s.easing);lastScrolledDestiny=i,A(i),Z(i,n)}function M(){n.addEventListener?(n.removeEventListener("mousewheel",H,!1),n.removeEventListener("wheel",H,!1)):n.detachEvent("onmousewheel",H)}function B(){n.addEventListener?(n.addEventListener("mousewheel",H,!1),n.addEventListener("wheel",H,!1)):n.attachEvent("onmousewheel",H)}function H(n){e(r).trigger("onMouseWheel",[n,S]),n=t.event||n;var i=o.max(-1,o.min(1,n.wheelDelta||-n.deltaY||-n.detail));return w||R(i<0?"down":"up"),!1}function R(t){var n="down"===t?l.moveSectionDown:l.moveSectionUp;if(s.scrollOverflow){var o=l.scrollOverflow.iscrollHandler.scrollable(e.fn.multiscroll.scrollOverflow.g_overedPanel()),i="down"===t?"bottom":"top";if(o.length>0){if(!l.scrollOverflow.iscrollHandler.isScrolled(i,o))return!0;n()}else n()}else n()}function W(e,t,n){var o;e.toggleClass("ms-easing",n),e.css({"-webkit-transform":o=t,"-moz-transform":o,"-ms-transform":o,transform:o})}function Z(t,n){s.navigation&&(e("#multiscroll-nav").find(".active").removeClass("active"),t?e("#multiscroll-nav").find('a[href="#'+t+'"]').addClass("active"):e("#multiscroll-nav").find("li").eq(n).find("a").addClass("active"))}function A(t){s.menu&&(e(s.menu).find(".active").removeClass("active"),e(s.menu).find('[data-menuanchor="'+t+'"]').addClass("active"))}function P(t){return e(".ms-left .ms-section.active").index()>t.index()?"up":"down"}function z(e){s.anchors.length&&(location.hash=e),j()}function j(){var t=e(".ms-left .ms-section.active"),n=t.data("anchor"),o=t.index(),i=String(o);if(s.anchors.length&&(i=n),void 0!==i){i=i.replace("/","-").replace("#","");var l=new RegExp("\\b\\s?ms-viewing-[^\\s]+\\b","g");e("body")[0].className=e("body")[0].className.replace(l,""),e("body").addClass("ms-viewing-"+i)}}function Y(e){var t=b;if(s.paddingTop||s.paddingBottom){var n=parseInt(e.css("padding-top"))+parseInt(e.css("padding-bottom"));t=b-n}return t}l.silentScroll=D,l.moveSectionUp=function(){var t=e(".ms-left .ms-section.active").prev(".ms-section");!t.length&&s.loopTop&&(t=e(".ms-left .ms-section").last()),t.length&&k(t)},l.moveSectionDown=function(){var t=e(".ms-left .ms-section.active").next(".ms-section");!t.length&&s.loopBottom&&(t=e(".ms-left .ms-section").first()),t.length&&k(t)},l.moveTo=function(t){k(isNaN(t)?e('.ms-left [data-anchor="'+t+'"]'):e(".ms-left .ms-section").eq(t-1))},l.setKeyboardScrolling=function(e){s.keyboardScrolling=e},l.setMouseWheelScrolling=function(e){e?B():M()},l.setScrollingSpeed=function(e){s.scrollingSpeed=e};var G=0,N=0;function X(n){if(F(n)){event.preventDefault();e(".ms-left .ms-section.active");if(!w){var i=K(n);N=i.y,i.x,o.abs(G-N)>e(t).height()/100*s.touchSensitivity&&(G>N?R("down"):N>G&&R("up"))}}}function F(e){return void 0===e.pointerType||"mouse"!=e.pointerType}function U(t){if(e(r).trigger("onTouch",[t,S]),F(t)){var n=K(t);G=n.y,n.x}}function V(){(u||f)&&(n.removeEventListener(y.touchstart,U),n.removeEventListener(y.touchmove,X,{passive:!1}),n.addEventListener(y.touchstart,U),n.addEventListener(y.touchmove,X,{passive:!1}))}function q(){(u||f)&&(n.removeEventListener(y.touchstart,U),n.removeEventListener(y.touchmove,X,{passive:!1}))}function K(e){var t=[];return t.y=void 0!==e.pageY&&(e.pageY||e.pageX)?e.pageY:e.touches[0].pageY,t.x=void 0!==e.pageX&&(e.pageY||e.pageX)?e.pageX:e.touches[0].pageX,u&&F(e)&&void 0!==e.touches&&(t.y=e.touches[0].pageY,t.x=e.touches[0].pageX),t}function Q(e){lastScrolledDestiny=e}function _(e){var n="ms_"+e+"Extension";h[e]=s[e+"Key"],l[e]=void 0!==t[n]?new t[n]:null,l[e]&&l[e].c(e)}function J(e){return s[e]&&l[e]}function $(e,t,n){var o=Array.isArray(n)?n.join(", "):n;return!!J(e)&&l[e][t](o)}function ee(e){var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function n(e){var n,o,i,s,l,a,r="",c=0;for(e=e.replace(/[^A-Za-z0-9+/=]/g,"");c<e.length;)n=t.indexOf(e.charAt(c++))<<2|(s=t.indexOf(e.charAt(c++)))>>4,o=(15&s)<<4|(l=t.indexOf(e.charAt(c++)))>>2,i=(3&l)<<6|(a=t.indexOf(e.charAt(c++))),r+=String.fromCharCode(n),64!=l&&(r+=String.fromCharCode(o)),64!=a&&(r+=String.fromCharCode(i));return r=function(e){var t,n="",o=0,i=0,s=0;for(;o<e.length;)(i=e.charCodeAt(o))<128?(n+=String.fromCharCode(i),o++):i>191&&i<224?(s=e.charCodeAt(o+1),n+=String.fromCharCode((31&i)<<6|63&s),o+=2):(s=e.charCodeAt(o+1),t=e.charCodeAt(o+2),n+=String.fromCharCode((15&i)<<12|(63&s)<<6|63&t),o+=3);return n}(r)}function o(e){return e.slice(3).slice(0,-3)}return function(e){var t=e.split("_");if(t.length>1){var i=t[1];return e.replace(o(t[1]),"").split("_")[0]+"_"+n(i.slice(3).slice(0,-3))}return o(e)}(n(e))}function te(e){var t=function(){if(n.domain.length){for(var e=n.domain.replace(/^(www\.)/,"").split(".");e.length>2;)e.shift();return e.join(".").replace(/(^\.*)|(\.*$)/g,"")}return""}(),o=["localhost","127.0.0.1","jshell.net","UDdDQU5ZNlNN"],i=o[0],s=o[1],l=o[2],a=ee(o[3]),r=[i,s,l].indexOf(t)<0&&0!==t.length,c=void 0!==h[e]&&h[e].length;if(!c&&r)return!1;var d=c?ee(h[e]):"",m=(d=d.split("_")).length>1&&d[1].indexOf(e,d[1].length-e.length)>-1;return!(d[0].indexOf(t,d[0].length-t.length)<0&&r&&a!=d[0])&&m||!r}function ne(e){if(J(e)&&l[e]){var t=ee("MTIzPGRpdiBzdHlsZT0iei1pbmRleDo5OTk5OTk5O3Bvc2l0aW9uOmZpeGVkOyB0b3A6IDIwcHg7IGxlZnQ6MjBweDsgYmFja2dyb3VuZDpyZWQ7IHBhZGRpbmc6IDdweCAxNXB4OyBmb250LXNpemU6IDE0cHg7IGZvbnQtZmFtaWx5OiBhcmlhbDsgY29sb3I6ICNmZmY7IGRpc3BsYXk6IGlubGluZS1ibG9jazsiPjxhIGhyZWY9Imh0dHA6Ly9hbHZhcm90cmlnby5jb20vbXVsdGlTY3JvbGwvZXh0ZW5zaW9ucy8iIHN0eWxlPSJjb2xvcjogI2ZmZjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7Ij5VbmxpY2Vuc2VkIG11bHRpU2Nyb2xsLmpzIEV4dGVuc2lvbjwvYT48L2Rpdj4xMjM="),n=o.random()<.5;if(!te(e)){var i=function(){"9999999"!==(n?c.find("div").first():c.find("div").last()).css("z-index")&&(n?c.prepend(t):c.append(t))};i(),setInterval(i,2e3)}}}l.destroy=function(){l.setKeyboardScrolling(!1),l.setMouseWheelScrolling(!1),q(),e(t).off("hashchange",T).off("resize",L),e(n).off("mouseenter","#multiscroll-nav li").off("mouseleave","#multiscroll-nav li").off("click","#multiscroll-nav a")},l.build=function(){l.setKeyboardScrolling(!0),l.setMouseWheelScrolling(!0),e(t).on("hashchange",T).on("resize",L),e(n).on("mouseenter","#multiscroll-nav li").on("mouseleave","#multiscroll-nav li").on("click","#multiscroll-nav a")},l.extensionCall=$}}(jQuery,window,document,Math);
\ No newline at end of file
diff --git a/dist/jquery.multiscroll.js b/dist/jquery.multiscroll.js
new file mode 100644
index 0000000..4135ae6
--- /dev/null
+++ b/dist/jquery.multiscroll.js
@@ -0,0 +1,913 @@
+/*!
+ * multiscroll.js 0.2.2
+ * https://github.com/alvarotrigo/multiscroll.js
+ * @license MIT licensed
+ *
+ * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo
+ */
+(function($, window, document, Math, undefined) {
+
+    $.fn.multiscroll = function(options) {
+        var MS = $.fn.multiscroll;
+
+        // Create some defaults, extending them with any options that were provided
+        options = $.extend({
+            'verticalCentered' : true,
+            'scrollingSpeed': 700,
+            'easing': 'easeInQuart',
+            'menu': false,
+            'sectionsColor': [],
+            'anchors':[],
+            'navigation': false,
+            'navigationPosition': 'right',
+            'navigationColor': '#000',
+            'navigationTooltips': [],
+            'loopBottom': false,
+            'loopTop': false,
+            'css3': false,
+            'paddingTop': 0,
+            'paddingBottom': 0,
+            'fixedElements': null,
+            'normalScrollElements': null,
+            'keyboardScrolling': true,
+            'touchSensitivity': 5,
+
+            // Custom selectors
+            'sectionSelector': '.ms-section',
+            'leftSelector': '.ms-left',
+            'rightSelector': '.ms-right',
+
+            //events
+            'afterLoad': null,
+            'onLeave': null,
+            'afterRender': null,
+            'afterResize': null
+        }, options);
+
+        //Defines the delay to take place before being able to scroll to the next section
+        //BE CAREFUL! Not recommened to change it under 400 for a good behavior in laptops and
+        //Apple devices (laptops, mouses...)
+        var scrollDelay = 600;
+
+        var isTouchDevice = navigator.userAgent.match(/(iPhone|iPod|iPad|Android|playbook|silk|BlackBerry|BB10|Windows Phone|Tizen|Bada|webOS|IEMobile|Opera Mini)/);
+        var isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0) || (navigator.maxTouchPoints));
+
+        // adding class namef for right and left blocks
+        if (options.rightSelector !== '.ms-right') {
+            $(options.rightSelector).addClass('ms-right');
+        }
+
+        if (options.leftSelector !== '.ms-left') {
+            $(options.leftSelector).addClass('ms-left');
+        }
+
+        var numberSections = $('.ms-left').find('.ms-section').length;
+        var isMoving = false;
+        var nav;
+        var windowHeight = $(window).height();
+        var MSPointer = getMSPointer();
+        var events = {
+            touchmove: 'ontouchmove' in window ? 'touchmove' :  MSPointer.move,
+            touchstart: 'ontouchstart' in window ? 'touchstart' :  MSPointer.down
+        };
+
+        //timeouts
+        var resizeId;
+
+        addMouseWheelHandler();
+        addTouchHandler();
+
+        //if css3 is not supported, it will use jQuery animations
+        if(options.css3){
+            options.css3 = support3d();
+        }
+
+        $('html, body').css({
+            'overflow' : 'hidden',
+            'height' : '100%'
+        });
+
+        //adding class names to each sections
+        if (options.sectionSelector !== '.ms-section') {
+            $(options.sectionSelector).each(function(){
+                $(this).addClass('ms-section');
+            });
+        }
+
+        //creating the navigation dots
+        if (options.navigation) {
+            $('body').append('<div id="multiscroll-nav"><ul></ul></div>');
+            nav = $('#multiscroll-nav');
+
+            nav.css('color', options.navigationColor);
+            nav.addClass(options.navigationPosition);
+        }
+
+        $('.ms-right, .ms-left').css({
+            'width': '50%',
+            'position': 'absolute',
+            'height': '100%',
+            '-ms-touch-action': 'none'
+        });
+
+        $('.ms-right').css({
+            'right': '1px', //http://stackoverflow.com/questions/23675457/chrome-and-opera-creating-small-padding-when-using-displaytable
+            'top': '0',
+            '-ms-touch-action': 'none',
+            'touch-action': 'none'
+        });
+
+        $('.ms-left').css({
+            'left': '0',
+            'top': '0',
+            '-ms-touch-action': 'none',
+            'touch-action': 'none'
+        });
+
+
+        $('.ms-left .ms-section, .ms-right .ms-section').each(function(){
+            var sectionIndex = $(this).index();
+
+            if(options.paddingTop || options.paddingBottom){
+                $(this).css('padding', options.paddingTop  + ' 0 ' + options.paddingBottom + ' 0');
+            }
+
+            if (typeof options.sectionsColor[sectionIndex] !==  'undefined') {
+                $(this).css('background-color', options.sectionsColor[sectionIndex]);
+            }
+
+            if (typeof options.anchors[sectionIndex] !== 'undefined') {
+                $(this).attr('data-anchor', options.anchors[sectionIndex]);
+            }
+
+            if(options.verticalCentered){
+                addTableClass($(this));
+            }
+
+            //only for the left panel
+            if($(this).closest('.ms-left').length && options.navigation) {
+                var link = '';
+                if(options.anchors.length){
+                    link = options.anchors[sectionIndex];
+                }
+                var tooltip = options.navigationTooltips[sectionIndex];
+                if(typeof tooltip === 'undefined'){
+                    tooltip = '';
+                }
+                if (options.navigation) {
+                    nav.find('ul').append('<li data-tooltip="' + tooltip + '"><a href="#' + link + '"><span></span></a></li>');
+                }
+            }
+        });
+
+        //inverting the right panel
+        $('.ms-right').html( $('.ms-right').find('.ms-section').get().reverse());
+
+        $('.ms-left .ms-section, .ms-right .ms-section').each(function(){
+            var sectionIndex = $(this).index();
+
+            $(this).css({
+                'height': '100%'
+            });
+
+
+            if(!sectionIndex && options.navigation ){
+                //activating the navigation bullet
+                nav.find('li').eq(sectionIndex).find('a').addClass('active');
+            }
+        }).promise().done(function(){
+
+            //if no active section is defined, the 1st one will be the default one
+            if(!$('.ms-left .ms-section.active').length){
+                $('.ms-right').find('.ms-section').last().addClass('active');
+                $('.ms-left').find('.ms-section').first().addClass('active');
+            }
+
+            //vertical centered of the navigation + first bullet active
+            if(options.navigation){
+                nav.css('margin-top', '-' + (nav.height()/2) + 'px');
+            }
+            $.isFunction( options.afterRender ) && options.afterRender.call( this);
+
+            //scrolling to the defined active section and adjusting right and left panels
+            silentScroll();
+
+            //setting the class for the body element
+            setBodyClass();
+
+            $(window).on('load', function() {
+                scrollToAnchor();
+            });
+        });
+
+
+        //detecting any change on the URL to scroll to the given anchor link
+        //(a way to detect back history button as we play with the hashes on the URL)
+        $(window).on('hashchange', hashChangeHandler);
+
+        function hashChangeHandler(){
+            var value =  window.location.hash.replace('#', '');
+            var sectionAnchor = value;
+
+            if(sectionAnchor.length){
+                var section = $('.ms-left').find('[data-anchor="'+sectionAnchor+'"]');
+
+                var isFirstScrollMove = (typeof lastScrolledDestiny === 'undefined' );
+
+                if (isFirstScrollMove || sectionAnchor !== lastScrolledDestiny){
+                    scrollPage(section);
+                }
+            }
+        };
+
+
+        /**
+        * Sliding with arrow keys, both, vertical and horizontal
+        */
+        $(document).keydown(keydownHandler);
+
+
+        var keydownId;
+        function keydownHandler(e) {
+            clearTimeout(keydownId);
+
+            var activeElement = $(document.activeElement);
+
+            if(!activeElement.is('textarea') && !activeElement.is('input') && !activeElement.is('select') &&
+                options.keyboardScrolling){
+                var keyCode = e.which;
+
+                //preventing the scroll with arrow keys & spacebar & Page Up & Down keys
+                var keyControls = [40, 38, 32, 33, 34];
+                if($.inArray(keyCode, keyControls) > -1){
+                    e.preventDefault();
+                }
+
+                keydownId = setTimeout(function(){
+                    onkeydown(e);
+                },150);
+            }
+        }
+
+        /**
+         * Sliding with arrow keys, both, vertical and horizontal
+         */
+        function onkeydown(e){
+            var shiftPressed = e.shiftKey;
+
+            switch (e.which) {
+                //up
+                case 38:
+                case 33:
+                    MS.moveSectionUp();
+                    break;
+
+                //down
+                case 32: //spacebar
+                    if(shiftPressed){
+                        MS.moveSectionUp();
+                        break;
+                    }
+                case 40:
+                case 34:
+                    MS.moveSectionDown();
+                    break;
+
+                //Home
+                case 36:
+                    MS.moveTo(1);
+                    break;
+
+                //End
+                case 35:
+                    MS.moveTo( $('.ms-left .ms-section').length);
+                    break;
+
+                default:
+                    return; // exit this handler for other keys
+            }
+        }
+
+        /**
+         * Disabling any action when pressing of the mouse wheel (Chrome, IE, Opera, Safari)
+         */
+        $(document).mousedown(function(e) {
+            if(e.button == 1){
+                e.preventDefault();
+                return false;
+            }
+        });
+
+        function navClickHandler(e) {
+            e.preventDefault();
+            var index = $(this).parent().index();
+            scrollPage($('.ms-left .ms-section').eq(index));
+        }
+
+        //navigation action
+        $(document).on('click', '#multiscroll-nav a', navClickHandler);
+
+        function navMouseEnterHandler() {
+            var tooltip = $(this).data('tooltip');
+            $('<div class="multiscroll-tooltip ' + options.navigationPosition +'">' + tooltip + '</div>').hide().appendTo($(this)).fadeIn(200);
+        }
+
+        function navMouseLeaveHandler() {
+            $(this).find('.multiscroll-tooltip').fadeOut(200, function() {
+                $(this).remove();
+            });
+        }
+
+        //navigation tooltips
+        $(document).on({
+            mouseenter: navMouseEnterHandler,
+            mouseleave: navMouseLeaveHandler
+        }, '#multiscroll-nav li');
+
+
+        if(options.normalScrollElements){
+            $(document).on('mouseenter', options.normalScrollElements, function () {
+                MS.setMouseWheelScrolling(false);
+            });
+
+            $(document).on('mouseleave', options.normalScrollElements, function(){
+                MS.setMouseWheelScrolling(true);
+            });
+        }
+
+
+        //when resizing the site, we adjust the heights of the sections
+        $(window).on('resize', resizeHandler);
+
+
+        var previousHeight = windowHeight;
+
+        /**
+         * When resizing is finished, we adjust the slides sizes and positions
+         */
+        function resizeHandler() {
+            // rebuild immediately on touch devices
+            if (isTouchDevice) {
+                var activeElement = $(document.activeElement);
+
+                //if the keyboard is NOT visible
+                if (!activeElement.is('textarea') && !activeElement.is('input') && !activeElement.is('select')) {
+                    var currentHeight = $(window).height();
+
+                    //making sure the change in the viewport size is enough to force a rebuild. (20 % of the window to avoid problems when hidding scroll bars)
+                    if( Math.abs(currentHeight - previousHeight) > (20 * Math.max(previousHeight, currentHeight) / 100) ){
+                        reBuild(true);
+                        previousHeight = currentHeight;
+                    }
+                }
+            }else{
+                //in order to call the functions only when the resize is finished
+                //http://stackoverflow.com/questions/4298612/jquery-how-to-call-resize-event-only-once-its-finished-resizing
+                clearTimeout(resizeId);
+
+                resizeId = setTimeout(function(){
+                    reBuild(true);
+                }, 350);
+            }
+        }
+
+        /**
+         * When resizing is finished, we adjust the slides sizes and positions
+         */
+        function reBuild(resizing){
+            windowHeight = $(window).height();
+            $('.ms-tableCell').each(function() {
+                $(this).css({ height: getTableHeight($(this).parent()) });
+            });
+
+            if(options.scrollOverflow){
+                scrollBarHandler.createScrollBarForAll();
+            }
+
+            silentScroll();
+            $.isFunction( options.afterResize ) && options.afterResize.call( this);
+        }
+
+        function silentScroll(){
+            //moving the right section to the bottom
+            if(options.css3){
+                transformContainer($('.ms-left'), 'translate3d(0px, -' + $('.ms-left').find('.ms-section.active').position().top + 'px, 0px)', false);
+                transformContainer($('.ms-right'), 'translate3d(0px, -' + $('.ms-right').find('.ms-section.active').position().top + 'px, 0px)', false);
+            }else{
+                $('.ms-left').css('top', -$('.ms-left').find('.ms-section.active').position().top );
+                $('.ms-right').css('top', -$('.ms-right').find('.ms-section.active').position().top );
+            }
+        }
+
+        MS.moveSectionUp = function(){
+            var prev = $('.ms-left .ms-section.active').prev('.ms-section');
+
+            if(!prev.length && options.loopTop){
+                prev = $('.ms-left .ms-section').last();
+            }
+
+            if (prev.length) {
+                scrollPage(prev);
+            }
+        };
+
+        MS.moveSectionDown = function (){
+            var next = $('.ms-left .ms-section.active').next('.ms-section');
+
+            if(!next.length && options.loopBottom ){
+                next = $('.ms-left .ms-section').first();
+            }
+
+            if(next.length){
+                scrollPage(next);
+            }
+        };
+
+        MS.moveTo = function (section){
+            var destiny = '';
+
+            if(isNaN(section)){
+                destiny = $('.ms-left [data-anchor="'+section+'"]');
+            }else{
+                destiny = $('.ms-left .ms-section').eq( (section -1) );
+            }
+
+            scrollPage(destiny);
+        };
+
+        function scrollPage(leftDestination){
+            var leftDestinationIndex = leftDestination.index();
+            var rightDestination = $('.ms-right').find('.ms-section').eq( numberSections -1 - leftDestinationIndex);
+            var rightDestinationIndex = numberSections - 1 - leftDestinationIndex;
+            var anchorLink  = leftDestination.data('anchor');
+            var activeSection = $('.ms-left .ms-section.active');
+            var leavingSection = activeSection.index() + 1;
+            var yMovement = getYmovement(leftDestination);
+
+            //preventing from activating the MouseWheelHandler event
+            //more than once if the page is scrolling
+            isMoving = true;
+
+            var topPos = {
+                'left' : leftDestination.position().top,
+                'right': rightDestination.position().top
+            };
+
+            rightDestination.addClass('active').siblings().removeClass('active');
+            leftDestination.addClass('active').siblings().removeClass('active');
+
+            setURLHash(anchorLink);
+
+            // Use CSS3 translate functionality or...
+            if (options.css3){
+                //callback (onLeave)
+                $.isFunction(options.onLeave) && options.onLeave.call(this, leavingSection, (leftDestinationIndex + 1), yMovement);
+
+                var translate3dLeft = 'translate3d(0px, -' + topPos['left'] + 'px, 0px)';
+                var translate3dRight = 'translate3d(0px, -' + topPos['right'] + 'px, 0px)';
+
+                transformContainer($('.ms-left'), translate3dLeft, true);
+                transformContainer($('.ms-right'), translate3dRight, true);
+
+                setTimeout(function () {
+                    //callback (afterLoad)
+                    $.isFunction(options.afterLoad) && options.afterLoad.call(this, anchorLink, (leftDestinationIndex + 1));
+
+                    setTimeout(function () {
+                        isMoving = false;
+                    }, scrollDelay);
+                }, options.scrollingSpeed);
+            }else{
+                //callback (onLeave)
+                $.isFunction(options.onLeave) && options.onLeave.call(this, leavingSection, (leftDestinationIndex + 1), yMovement);
+
+                $('.ms-left').animate({
+                    'top': -topPos['left']
+                }, options.scrollingSpeed, options.easing, function(){
+                    $.isFunction(options.afterLoad) && options.afterLoad.call(this, anchorLink, (leftDestinationIndex + 1));
+
+                    setTimeout(function () {
+                        isMoving = false;
+                    }, scrollDelay);
+                });
+
+                $('.ms-right').animate({
+                    'top': -topPos['right']
+                }, options.scrollingSpeed, options.easing);
+            }
+
+            //flag to avoid callingn `scrollPage()` twice in case of using anchor links
+            lastScrolledDestiny = anchorLink;
+
+            activateMenuElement(anchorLink);
+            activateNavDots(anchorLink, leftDestinationIndex);
+        }
+
+        /**
+        * Removes the auto scrolling action fired by the mouse wheel and tackpad.
+        * After this function is called, the mousewheel and trackpad movements won't scroll through sections.
+        */
+        function removeMouseWheelHandler(){
+            if (document.addEventListener) {
+                document.removeEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper
+                document.removeEventListener('wheel', MouseWheelHandler, false); //Firefox
+            } else {
+                document.detachEvent("onmousewheel", MouseWheelHandler); //IE 6/7/8
+            }
+        }
+
+        /**
+        * Adds the auto scrolling action for the mouse wheel and tackpad.
+        * After this function is called, the mousewheel and trackpad movements will scroll through sections
+        */
+        function addMouseWheelHandler(){
+            if (document.addEventListener) {
+                document.addEventListener("mousewheel", MouseWheelHandler, false); //IE9, Chrome, Safari, Oper
+                document.addEventListener("wheel", MouseWheelHandler, false); //Firefox
+            } else {
+                document.attachEvent("onmousewheel", MouseWheelHandler); //IE 6/7/8
+            }
+        }
+
+        /**
+         * Detecting mousewheel scrolling
+         *
+         * http://blogs.sitepointstatic.com/examples/tech/mouse-wheel/index.html
+         * http://www.sitepoint.com/html5-javascript-mouse-wheel/
+         */
+        function MouseWheelHandler(e) {
+            // cross-browser wheel delta
+            e = window.event || e;
+            var delta = Math.max(-1, Math.min(1,
+                    (e.wheelDelta || -e.deltaY || -e.detail)));
+
+            if (!isMoving) { //if theres any #
+
+                //scrolling down?
+                if (delta < 0) {
+                    MS.moveSectionDown();
+                }
+
+                //scrolling up?
+                else {
+                    MS.moveSectionUp();
+                }
+            }
+
+
+            return false;
+        }
+
+        /**
+        * Adds a css3 transform property to the container class with or without animation depending on the animated param.
+        */
+        function transformContainer(container, translate3d, animated){
+            container.toggleClass('ms-easing', animated);
+
+            container.css(getTransforms(translate3d));
+        }
+
+
+        /**
+        * Returns the transform styles for all browsers
+        */
+        function getTransforms(translate3d){
+            return {
+                '-webkit-transform': translate3d,
+                '-moz-transform': translate3d,
+                '-ms-transform':translate3d,
+                'transform': translate3d
+            };
+        }
+
+        /**
+         * Activating the website navigation dots according to the given slide name.
+         */
+        function activateNavDots(name, sectionIndex){
+            if(options.navigation){
+                $('#multiscroll-nav').find('.active').removeClass('active');
+                if(name){
+                    $('#multiscroll-nav').find('a[href="#' + name + '"]').addClass('active');
+                }else{
+                    $('#multiscroll-nav').find('li').eq(sectionIndex).find('a').addClass('active');
+                }
+            }
+        }
+
+        /**
+         * Activating the website main menu elements according to the given slide name.
+         */
+        function activateMenuElement(name){
+            if(options.menu){
+                $(options.menu).find('.active').removeClass('active');
+                $(options.menu).find('[data-menuanchor="'+name+'"]').addClass('active');
+            }
+        }
+
+        /**
+        * Retuns `up` or `down` depending on the scrolling movement to reach its destination
+        * from the current section.
+        */
+        function getYmovement(destiny){
+            var fromIndex = $('.ms-left .ms-section.active').index();
+            var toIndex = destiny.index();
+
+            if(fromIndex > toIndex){
+                return 'up';
+            }
+            return 'down';
+        }
+
+
+        /**
+        * Sets the URL hash for a section with slides
+        */
+        function setURLHash(anchorLink){
+            if(options.anchors.length){
+                location.hash = anchorLink;
+            }
+
+            setBodyClass();
+        }
+
+         /**
+        * Sets a class for the body of the page depending on the active section / slide
+        */
+        function setBodyClass(){
+            var section = $('.ms-left .ms-section.active');
+            var sectionAnchor = section.data('anchor');
+            var sectionIndex = section.index();
+
+            var text = String(sectionIndex);
+
+            if(options.anchors.length){
+                text = sectionAnchor;
+            }
+
+            //changing slash for dash to make it a valid CSS style
+            text = text.replace('/', '-').replace('#','');
+
+            //removing previous anchor classes
+            var classRe = new RegExp('\\b\\s?' + 'ms-viewing' + '-[^\\s]+\\b', "g");
+            $('body')[0].className = $('body')[0].className.replace(classRe, '');
+
+            //adding the current anchor
+            $('body').addClass('ms-viewing-' + text);
+        }
+
+
+        /**
+        * Checks for translate3d support
+        * @return boolean
+        * http://stackoverflow.com/questions/5661671/detecting-transform-translate3d-support
+        */
+        function support3d() {
+            var el = document.createElement('p'),
+                has3d,
+                transforms = {
+                    'webkitTransform':'-webkit-transform',
+                    'OTransform':'-o-transform',
+                    'msTransform':'-ms-transform',
+                    'MozTransform':'-moz-transform',
+                    'transform':'transform'
+                };
+
+            // Add it to the body to get the computed style.
+            document.body.insertBefore(el, null);
+
+            for (var t in transforms) {
+                if (el.style[t] !== undefined) {
+                    el.style[t] = "translate3d(1px,1px,1px)";
+                    has3d = window.getComputedStyle(el).getPropertyValue(transforms[t]);
+                }
+            }
+
+            document.body.removeChild(el);
+
+            return (has3d !== undefined && has3d.length > 0 && has3d !== "none");
+        }
+
+        /**
+        * Wraps an element in order to center it vertically by using a class style.
+        */
+        function addTableClass(element){
+            element.addClass('ms-table').wrapInner('<div class="ms-tableCell" style="height: ' + getTableHeight(element) + 'px" />');
+        }
+
+        /**
+        * Gets the height of the section after removing the paddings.
+        */
+        function getTableHeight(section){
+            var sectionHeight = windowHeight;
+
+            if(options.paddingTop || options.paddingBottom){
+                var paddings = parseInt(section.css('padding-top')) + parseInt(section.css('padding-bottom'));
+                sectionHeight = (windowHeight - paddings);
+            }
+
+            return sectionHeight;
+        }
+
+
+        /**
+        * Scrolls the page to the existent anchor in the URL
+        */
+        function scrollToAnchor(){
+            //getting the anchor link in the URL and deleting the `#`
+            var sectionAnchor =  window.location.hash.replace('#', '');
+            var section = $('.ms-left .ms-section[data-anchor="'+sectionAnchor+'"]');
+
+            if(sectionAnchor.length){  //if theres any #
+                scrollPage(section);
+            }
+        }
+
+        /**
+        * Adds or remove the possiblity of scrolling through sections by using the keyboard arrow keys
+        */
+        MS.setKeyboardScrolling = function (value){
+            options.keyboardScrolling = value;
+        };
+
+        /**
+        * Adds or remove the possiblity of scrolling through sections by using the mouse wheel or the trackpad.
+        */
+        MS.setMouseWheelScrolling = function (value){
+            if(value){
+                addMouseWheelHandler();
+            }else{
+                removeMouseWheelHandler();
+            }
+        };
+
+        /**
+        * Defines the scrolling speed
+        */
+        MS.setScrollingSpeed = function(value){
+            options.scrollingSpeed = value;
+        };
+
+
+
+        var touchStartY = 0;
+        var touchStartX = 0;
+        var touchEndY = 0;
+        var touchEndX = 0;
+
+        /* Detecting touch events
+
+        * As we are changing the top property of the page on scrolling, we can not use the traditional way to detect it.
+        * This way, the touchstart and the touch moves shows an small difference between them which is the
+        * used one to determine the direction.
+        */
+        function touchMoveHandler(e){
+
+            if(isReallyTouch(e)){
+                //preventing the easing on iOS devices
+                event.preventDefault();
+
+                var activeSection = $('.ms-left .ms-section.active');
+
+                if (!isMoving) { //if theres any #
+                    var touchEvents = getEventsPage(e);
+                    touchEndY = touchEvents['y'];
+                    touchEndX = touchEvents['x'];
+
+
+                    //is the movement greater than the minimum resistance to scroll?
+                    if (Math.abs(touchStartY - touchEndY) > ($(window).height() / 100 * options.touchSensitivity)) {
+
+                        if (touchStartY > touchEndY) {
+                            MS.moveSectionDown();
+
+                        } else if (touchEndY > touchStartY) {
+                            MS.moveSectionUp();
+                        }
+                    }
+                }
+            }
+        }
+
+        /**
+        * As IE >= 10 fires both touch and mouse events when using a mouse in a touchscreen
+        * this way we make sure that is really a touch event what IE is detecting.
+        */
+        function isReallyTouch(e){
+            //if is not IE   ||  IE is detecting `touch` or `pen`
+            return typeof e.pointerType === 'undefined' || e.pointerType != 'mouse';
+        }
+
+
+        /**
+        * Handler to get he coordinates of the starting touch
+        */
+        function touchStartHandler(e){
+
+            if(isReallyTouch(e)){
+                var touchEvents = getEventsPage(e);
+                touchStartY = touchEvents['y'];
+                touchStartX = touchEvents['x'];
+            }
+        }
+
+
+        /**
+        * Adds the possibility to auto scroll through sections on touch devices.
+        */
+        function addTouchHandler(){
+            if(isTouch || isTouchDevice){
+                document.removeEventListener(events.touchstart, touchStartHandler);
+                document.removeEventListener(events.touchmove, touchMoveHandler, {passive: false});
+
+                document.addEventListener(events.touchstart, touchStartHandler);
+                document.addEventListener(events.touchmove, touchMoveHandler, {passive: false});
+            }
+        }
+
+        /**
+        * Removes the auto scrolling for touch devices.
+        */
+        function removeTouchHandler(){
+            if(isTouch || isTouchDevice){
+                document.removeEventListener(events.touchstart, touchStartHandler);
+                document.removeEventListener(events.touchmove, touchMoveHandler, {passive: false});
+            }
+        }
+
+        /*
+        * Returns and object with Microsoft pointers (for IE<11 and for IE >= 11)
+        * http://msdn.microsoft.com/en-us/library/ie/dn304886(v=vs.85).aspx
+        */
+        function getMSPointer(){
+            var pointer;
+
+            //IE >= 11
+            if(window.PointerEvent){
+                pointer = { down: "pointerdown", move: "pointermove"};
+            }
+
+            //IE < 11
+            else{
+                pointer = { down: "MSPointerDown", move: "MSPointerMove"};
+            }
+
+            return pointer;
+        }
+
+        /**
+        * Gets the pageX and pageY properties depending on the browser.
+        * https://github.com/alvarotrigo/fullPage.js/issues/194#issuecomment-34069854
+        */
+        function getEventsPage(e){
+            var events = [];
+
+            events.y = (typeof e.pageY !== 'undefined' && (e.pageY || e.pageX) ? e.pageY : e.touches[0].pageY);
+            events.x = (typeof e.pageX !== 'undefined' && (e.pageY || e.pageX) ? e.pageX : e.touches[0].pageX);
+
+            //in touch devices with scrollBar:true, e.pageY is detected, but we have to deal with touch events. #1008
+            if(isTouch && isReallyTouch(e) && typeof e.touches !== 'undefined'){
+                events.y = e.touches[0].pageY;
+                events.x = e.touches[0].pageX;
+            }
+
+            return events;
+        }
+
+        /**
+        * Destroy multiscroll.js plugin's events
+        */
+        MS.destroy = function() {
+            MS.setKeyboardScrolling(false);
+            MS.setMouseWheelScrolling(false);
+            removeTouchHandler();
+
+            $(window)
+                .off('hashchange', hashChangeHandler)
+                .off('resize', resizeHandler);
+
+            $(document)
+                .off('mouseenter', '#multiscroll-nav li')
+                .off('mouseleave', '#multiscroll-nav li')
+                .off('click', '#multiscroll-nav a');
+        };
+
+        /**
+        * Build multiscroll.js plugin's events after destroy
+        */
+        MS.build = function() {
+            MS.setKeyboardScrolling(true);
+            MS.setMouseWheelScrolling(true);
+            addTouchHandler();
+
+            $(window)
+                .on('hashchange', hashChangeHandler)
+                .on('resize', resizeHandler);
+
+            $(document)
+                .on('mouseenter', '#multiscroll-nav li', navMouseEnterHandler)
+                .on('mouseleave', '#multiscroll-nav li', navMouseLeaveHandler)
+                .on('click', '#multiscroll-nav a', navClickHandler);
+        };
+
+    };
+})(jQuery, window, document, Math);
diff --git a/dist/jquery.multiscroll.min.css b/dist/jquery.multiscroll.min.css
new file mode 100644
index 0000000..b768586
--- /dev/null
+++ b/dist/jquery.multiscroll.min.css
@@ -0,0 +1,8 @@
+/*!
+ * multiscroll.js 0.2.2
+ * https://github.com/alvarotrigo/multiscroll.js
+ * @license MIT licensed
+ *
+ * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo
+ */body,html{margin:0;padding:0;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ms-section{position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ms-section.ms-table{display:table;width:100%}.ms-tableCell{display:table-cell;vertical-align:middle;width:100%;height:100%}.ms-easing{-webkit-transition:all .7s ease-out;-moz-transition:all .7s ease-out;-o-transition:all .7s ease-out;transition:all .7s ease-out}#multiscroll-nav{position:fixed;z-index:100;margin-top:-32px;top:50%;opacity:1}#multiscroll-nav.right{right:17px}#multiscroll-nav.left{left:17px}#multiscroll-nav ul{margin:0;padding:0}#multiscroll-nav li{display:block;width:14px;height:13px;margin:7px;position:relative}#multiscroll-nav li a{display:block;position:relative;z-index:1;width:100%;height:100%;cursor:pointer;text-decoration:none}#multiscroll-nav li .active span{background:#333}#multiscroll-nav span{top:2px;left:2px;width:8px;height:8px;border:1px solid #000;background:rgba(0,0,0,0);-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;position:absolute;z-index:1}.multiscroll-tooltip{position:absolute;color:#fff;font-size:14px;font-family:arial,helvetica,sans-serif;top:-2px;white-space:nowrap;max-width:220px}.multiscroll-tooltip.right{right:20px}.multiscroll-tooltip.left{left:20px}.ms-responsive .ms-hide{display:none}.ms-scrollable{overflow:hidden;position:relative}.ms-scroller{overflow:hidden}.iScrollIndicator{border:0!important}
+/*# sourceMappingURL=jquery.multiscroll.min.css.map */
diff --git a/dist/jquery.multiscroll.min.css.map b/dist/jquery.multiscroll.min.css.map
new file mode 100644
index 0000000..a268916
--- /dev/null
+++ b/dist/jquery.multiscroll.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["jquery.multiscroll.css"],"names":[],"mappings":";;;;;;AAOM,KAAN,KACI,OAAQ,EACR,QAAS,EACT,SAAS,OACT,4BAA6B,cAEjC,YACI,SAAU,SACV,mBAAoB,WACpB,gBAAiB,WACjB,WAAY,WAEhB,qBACI,QAAS,MACT,MAAO,KAEX,cACI,QAAS,WACT,eAAgB,OAChB,MAAO,KACP,OAAQ,KAEZ,WACI,mBAAoB,IAAI,IAAK,SAC7B,gBAAiB,IAAI,IAAK,SAC1B,cAAe,IAAI,IAAK,SACxB,WAAY,IAAI,IAAK,SAEzB,iBACI,SAAU,MACV,QAAS,IACT,WAAY,MACZ,IAAK,IACL,QAAS,EAEb,uBACI,MAAO,KAEX,sBACI,KAAM,KAEV,oBACE,OAAQ,EACR,QAAS,EAEX,oBACI,QAAS,MACT,MAAO,KACP,OAAQ,KACR,OAAQ,IACR,SAAS,SAEb,sBACI,QAAS,MACT,SAAU,SACV,QAAS,EACT,MAAO,KACP,OAAQ,KACR,OAAQ,QACR,gBAAiB,KAErB,iCACI,WAAY,KAEhB,sBACI,IAAK,IACL,KAAM,IACN,MAAO,IACP,OAAQ,IACR,OAAQ,IAAI,MAAM,KAClB,WAAY,cACZ,sBAAuB,IACvB,mBAAoB,IACpB,cAAe,IACf,SAAU,SACV,QAAS,EAEb,qBACI,SAAU,SACV,MAAO,KACP,UAAW,KACX,YAAa,MAAO,UAAW,WAC/B,IAAK,KACL,YAAa,OACb,UAAW,MAEf,2BACI,MAAO,KAEX,0BACI,KAAM,KAEV,wBACI,QAAS,KAEb,eACI,SAAU,OACV,SAAU,SAEd,aACI,SAAU,OAEd,kBACI,OAAQ","file":"jquery.multiscroll.min.css","sourcesContent":["/*!\r\n * multiscroll.js 0.2.2\r\n * https://github.com/alvarotrigo/multiscroll.js\r\n * @license MIT licensed\r\n *\r\n * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo\r\n */\r\nhtml, body {\r\n    margin: 0;\r\n    padding: 0;\r\n    overflow:hidden;\r\n    -webkit-tap-highlight-color: rgba(0,0,0,0);\r\n}\r\n.ms-section {\r\n    position: relative;\r\n    -webkit-box-sizing: border-box;\r\n    -moz-box-sizing: border-box;\r\n    box-sizing: border-box;\r\n}\r\n.ms-section.ms-table{\r\n    display: table;\r\n    width: 100%;\r\n}\r\n.ms-tableCell {\r\n    display: table-cell;\r\n    vertical-align: middle;\r\n    width: 100%;\r\n    height: 100%;\r\n}\r\n.ms-easing {\r\n    -webkit-transition: all 0.7s ease-out;\r\n    -moz-transition: all 0.7s ease-out;\r\n    -o-transition: all 0.7s ease-out;\r\n    transition: all 0.7s ease-out;\r\n}\r\n#multiscroll-nav {\r\n    position: fixed;\r\n    z-index: 100;\r\n    margin-top: -32px;\r\n    top: 50%;\r\n    opacity: 1;\r\n}\r\n#multiscroll-nav.right {\r\n    right: 17px;\r\n}\r\n#multiscroll-nav.left {\r\n    left: 17px;\r\n}\r\n#multiscroll-nav ul{\r\n  margin: 0;\r\n  padding: 0;\r\n}\r\n#multiscroll-nav li{\r\n    display: block;\r\n    width: 14px;\r\n    height: 13px;\r\n    margin: 7px;\r\n    position:relative;\r\n}\r\n#multiscroll-nav li a{\r\n    display: block;\r\n    position: relative;\r\n    z-index: 1;\r\n    width: 100%;\r\n    height: 100%;\r\n    cursor: pointer;\r\n    text-decoration: none;\r\n}\r\n#multiscroll-nav li .active span{\r\n    background: #333;\r\n}\r\n#multiscroll-nav span{\r\n    top: 2px;\r\n    left: 2px;\r\n    width: 8px;\r\n    height: 8px;\r\n    border: 1px solid #000;\r\n    background: rgba(0, 0, 0, 0);\r\n    -webkit-border-radius: 50%;\r\n    -moz-border-radius: 50%;\r\n    border-radius: 50%;\r\n    position: absolute;\r\n    z-index: 1;\r\n}\r\n.multiscroll-tooltip {\r\n    position: absolute;\r\n    color: #fff;\r\n    font-size: 14px;\r\n    font-family: arial, helvetica, sans-serif;\r\n    top: -2px;\r\n    white-space: nowrap;\r\n    max-width: 220px;\r\n}\r\n.multiscroll-tooltip.right {\r\n    right: 20px;\r\n}\r\n.multiscroll-tooltip.left {\r\n    left: 20px;\r\n}\r\n.ms-responsive .ms-hide{\r\n    display: none;\r\n}\r\n.ms-scrollable {\r\n    overflow: hidden;\r\n    position: relative;\r\n}\r\n.ms-scroller{\r\n    overflow: hidden;\r\n}\r\n.iScrollIndicator{\r\n    border: 0 !important;\r\n}\r\n"]}
\ No newline at end of file
diff --git a/dist/jquery.multiscroll.min.js b/dist/jquery.multiscroll.min.js
new file mode 100644
index 0000000..dfd59cf
--- /dev/null
+++ b/dist/jquery.multiscroll.min.js
@@ -0,0 +1,9 @@
+/*!
+ * multiscroll.js 0.2.2
+ * https://github.com/alvarotrigo/multiscroll.js
+ * @license MIT licensed
+ *
+ * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo
+ */
+!function(R,Y,I,W,X){R.fn.multiscroll=function(f){var o=R.fn.multiscroll;f=R.extend({verticalCentered:!0,scrollingSpeed:700,easing:"easeInQuart",menu:!1,sectionsColor:[],anchors:[],navigation:!1,navigationPosition:"right",navigationColor:"#000",navigationTooltips:[],loopBottom:!1,loopTop:!1,css3:!1,paddingTop:0,paddingBottom:0,fixedElements:null,normalScrollElements:null,keyboardScrolling:!0,touchSensitivity:5,sectionSelector:".ms-section",leftSelector:".ms-left",rightSelector:".ms-right",afterLoad:null,onLeave:null,afterRender:null,afterResize:null},f);var h=600,n=navigator.userAgent.match(/(iPhone|iPod|iPad|Android|playbook|silk|BlackBerry|BB10|Windows Phone|Tizen|Bada|webOS|IEMobile|Opera Mini)/),i="ontouchstart"in Y||0<navigator.msMaxTouchPoints||navigator.maxTouchPoints;".ms-right"!==f.rightSelector&&R(f.rightSelector).addClass("ms-right"),".ms-left"!==f.leftSelector&&R(f.leftSelector).addClass("ms-left");var s,a,l,u=R(".ms-left").find(".ms-section").length,p=!1,r=R(Y).height(),e=function(){var e;e=Y.PointerEvent?{down:"pointerdown",move:"pointermove"}:{down:"MSPointerDown",move:"MSPointerMove"};return e}(),t={touchmove:"ontouchmove"in Y?"touchmove":e.move,touchstart:"ontouchstart"in Y?"touchstart":e.down};function c(){var e=Y.location.hash.replace("#","");if(e.length){var t=R(".ms-left").find('[data-anchor="'+e+'"]');("undefined"==typeof lastScrolledDestiny||e!==lastScrolledDestiny)&&y(t)}}function m(e){e.preventDefault();var t=R(this).parent().index();y(R(".ms-left .ms-section").eq(t))}function d(){var e=R(this).data("tooltip");R('<div class="multiscroll-tooltip '+f.navigationPosition+'">'+e+"</div>").hide().appendTo(R(this)).fadeIn(200)}function v(){R(this).find(".multiscroll-tooltip").fadeOut(200,function(){R(this).remove()})}w(),z(),f.css3&&(f.css3=function(){var e,t=I.createElement("p"),n={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};for(var o in I.body.insertBefore(t,null),n)t.style[o]!==X&&(t.style[o]="translate3d(1px,1px,1px)",e=Y.getComputedStyle(t).getPropertyValue(n[o]));return I.body.removeChild(t),e!==X&&0<e.length&&"none"!==e}()),R("html, body").css({overflow:"hidden",height:"100%"}),".ms-section"!==f.sectionSelector&&R(f.sectionSelector).each(function(){R(this).addClass("ms-section")}),f.navigation&&(R("body").append('<div id="multiscroll-nav"><ul></ul></div>'),(s=R("#multiscroll-nav")).css("color",f.navigationColor),s.addClass(f.navigationPosition)),R(".ms-right, .ms-left").css({width:"50%",position:"absolute",height:"100%","-ms-touch-action":"none"}),R(".ms-right").css({right:"1px",top:"0","-ms-touch-action":"none","touch-action":"none"}),R(".ms-left").css({left:"0",top:"0","-ms-touch-action":"none","touch-action":"none"}),R(".ms-left .ms-section, .ms-right .ms-section").each(function(){var e,t=R(this).index();if((f.paddingTop||f.paddingBottom)&&R(this).css("padding",f.paddingTop+" 0 "+f.paddingBottom+" 0"),void 0!==f.sectionsColor[t]&&R(this).css("background-color",f.sectionsColor[t]),void 0!==f.anchors[t]&&R(this).attr("data-anchor",f.anchors[t]),f.verticalCentered&&(e=R(this)).addClass("ms-table").wrapInner('<div class="ms-tableCell" style="height: '+L(e)+'px" />'),R(this).closest(".ms-left").length&&f.navigation){var n="";f.anchors.length&&(n=f.anchors[t]);var o=f.navigationTooltips[t];void 0===o&&(o=""),f.navigation&&s.find("ul").append('<li data-tooltip="'+o+'"><a href="#'+n+'"><span></span></a></li>')}}),R(".ms-right").html(R(".ms-right").find(".ms-section").get().reverse()),R(".ms-left .ms-section, .ms-right .ms-section").each(function(){var e=R(this).index();R(this).css({height:"100%"}),!e&&f.navigation&&s.find("li").eq(e).find("a").addClass("active")}).promise().done(function(){R(".ms-left .ms-section.active").length||(R(".ms-right").find(".ms-section").last().addClass("active"),R(".ms-left").find(".ms-section").first().addClass("active")),f.navigation&&s.css("margin-top","-"+s.height()/2+"px"),R.isFunction(f.afterRender)&&f.afterRender.call(this),b(),E(),R(Y).on("load",function(){var e,t;e=Y.location.hash.replace("#",""),t=R('.ms-left .ms-section[data-anchor="'+e+'"]'),e.length&&y(t)})}),R(Y).on("hashchange",c),R(I).keydown(function(e){clearTimeout(l);var t=R(I.activeElement);if(!t.is("textarea")&&!t.is("input")&&!t.is("select")&&f.keyboardScrolling){var n=e.which;-1<R.inArray(n,[40,38,32,33,34])&&e.preventDefault(),l=setTimeout(function(){!function(e){var t=e.shiftKey;switch(e.which){case 38:case 33:o.moveSectionUp();break;case 32:if(t){o.moveSectionUp();break}case 40:case 34:o.moveSectionDown();break;case 36:o.moveTo(1);break;case 35:o.moveTo(R(".ms-left .ms-section").length);break;default:;}}(e)},150)}}),R(I).mousedown(function(e){if(1==e.button)return e.preventDefault(),!1}),R(I).on("click","#multiscroll-nav a",m),R(I).on({mouseenter:d,mouseleave:v},"#multiscroll-nav li"),f.normalScrollElements&&(R(I).on("mouseenter",f.normalScrollElements,function(){o.setMouseWheelScrolling(!1)}),R(I).on("mouseleave",f.normalScrollElements,function(){o.setMouseWheelScrolling(!0)})),R(Y).on("resize",S);var g=r;function S(){if(n){var e=R(I.activeElement);if(!e.is("textarea")&&!e.is("input")&&!e.is("select")){var t=R(Y).height();W.abs(t-g)>20*W.max(g,t)/100&&(x(!0),g=t)}}else clearTimeout(a),a=setTimeout(function(){x(!0)},350)}function x(e){r=R(Y).height(),R(".ms-tableCell").each(function(){R(this).css({height:L(R(this).parent())})}),f.scrollOverflow&&scrollBarHandler.createScrollBarForAll(),b(),R.isFunction(f.afterResize)&&f.afterResize.call(this)}function b(){f.css3?(T(R(".ms-left"),"translate3d(0px, -"+R(".ms-left").find(".ms-section.active").position().top+"px, 0px)",!1),T(R(".ms-right"),"translate3d(0px, -"+R(".ms-right").find(".ms-section.active").position().top+"px, 0px)",!1)):(R(".ms-left").css("top",-R(".ms-left").find(".ms-section.active").position().top),R(".ms-right").css("top",-R(".ms-right").find(".ms-section.active").position().top))}function y(e){var t=e.index(),n=R(".ms-right").find(".ms-section").eq(u-1-t),o=e.data("anchor"),i=R(".ms-left .ms-section.active").index()+1,s=function(e){var t=R(".ms-left .ms-section.active").index(),n=e.index();if(n<t)return"up";return"down"}(e);p=!0;var a,l,r,c=e.position().top,m=n.position().top;if(n.addClass("active").siblings().removeClass("active"),e.addClass("active").siblings().removeClass("active"),function(e){f.anchors.length&&(location.hash=e);E()}(o),f.css3){R.isFunction(f.onLeave)&&f.onLeave.call(this,i,t+1,s);var d="translate3d(0px, -"+c+"px, 0px)",v="translate3d(0px, -"+m+"px, 0px)";T(R(".ms-left"),d,!0),T(R(".ms-right"),v,!0),setTimeout(function(){R.isFunction(f.afterLoad)&&f.afterLoad.call(this,o,t+1),setTimeout(function(){p=!1},h)},f.scrollingSpeed)}else R.isFunction(f.onLeave)&&f.onLeave.call(this,i,t+1,s),R(".ms-left").animate({top:-c},f.scrollingSpeed,f.easing,function(){R.isFunction(f.afterLoad)&&f.afterLoad.call(this,o,t+1),setTimeout(function(){p=!1},h)}),R(".ms-right").animate({top:-m},f.scrollingSpeed,f.easing);lastScrolledDestiny=o,a=o,f.menu&&(R(f.menu).find(".active").removeClass("active"),R(f.menu).find('[data-menuanchor="'+a+'"]').addClass("active")),l=o,r=t,f.navigation&&(R("#multiscroll-nav").find(".active").removeClass("active"),l?R("#multiscroll-nav").find('a[href="#'+l+'"]').addClass("active"):R("#multiscroll-nav").find("li").eq(r).find("a").addClass("active"))}function w(){I.addEventListener?(I.addEventListener("mousewheel",C,!1),I.addEventListener("wheel",C,!1)):I.attachEvent("onmousewheel",C)}function C(e){e=Y.event||e;var t=W.max(-1,W.min(1,e.wheelDelta||-e.deltaY||-e.detail));return p||(t<0?o.moveSectionDown():o.moveSectionUp()),!1}function T(e,t,n){var o;e.toggleClass("ms-easing",n),e.css({"-webkit-transform":o=t,"-moz-transform":o,"-ms-transform":o,transform:o})}function E(){var e=R(".ms-left .ms-section.active"),t=e.data("anchor"),n=e.index(),o=String(n);f.anchors.length&&(o=t),o=o.replace("/","-").replace("#","");var i=new RegExp("\\b\\s?ms-viewing-[^\\s]+\\b","g");R("body")[0].className=R("body")[0].className.replace(i,""),R("body").addClass("ms-viewing-"+o)}function L(e){var t=r;if(f.paddingTop||f.paddingBottom){var n=parseInt(e.css("padding-top"))+parseInt(e.css("padding-bottom"));t=r-n}return t}o.moveSectionUp=function(){var e=R(".ms-left .ms-section.active").prev(".ms-section");!e.length&&f.loopTop&&(e=R(".ms-left .ms-section").last()),e.length&&y(e)},o.moveSectionDown=function(){var e=R(".ms-left .ms-section.active").next(".ms-section");!e.length&&f.loopBottom&&(e=R(".ms-left .ms-section").first()),e.length&&y(e)},o.moveTo=function(e){y(isNaN(e)?R('.ms-left [data-anchor="'+e+'"]'):R(".ms-left .ms-section").eq(e-1))},o.setKeyboardScrolling=function(e){f.keyboardScrolling=e},o.setMouseWheelScrolling=function(e){e?w():I.addEventListener?(I.removeEventListener("mousewheel",C,!1),I.removeEventListener("wheel",C,!1)):I.detachEvent("onmousewheel",C)},o.setScrollingSpeed=function(e){f.scrollingSpeed=e};var k=0,B=0;function D(e){if(M(e)){event.preventDefault();R(".ms-left .ms-section.active");if(!p){var t=F(e);B=t.y,t.x,W.abs(k-B)>R(Y).height()/100*f.touchSensitivity&&(B<k?o.moveSectionDown():k<B&&o.moveSectionUp())}}}function M(e){return void 0===e.pointerType||"mouse"!=e.pointerType}function P(e){if(M(e)){var t=F(e);k=t.y,t.x}}function z(){(i||n)&&(I.removeEventListener(t.touchstart,P),I.removeEventListener(t.touchmove,D,{passive:!1}),I.addEventListener(t.touchstart,P),I.addEventListener(t.touchmove,D,{passive:!1}))}function F(e){var t=[];return t.y=void 0!==e.pageY&&(e.pageY||e.pageX)?e.pageY:e.touches[0].pageY,t.x=void 0!==e.pageX&&(e.pageY||e.pageX)?e.pageX:e.touches[0].pageX,i&&M(e)&&void 0!==e.touches&&(t.y=e.touches[0].pageY,t.x=e.touches[0].pageX),t}o.destroy=function(){o.setKeyboardScrolling(!1),o.setMouseWheelScrolling(!1),(i||n)&&(I.removeEventListener(t.touchstart,P),I.removeEventListener(t.touchmove,D,{passive:!1})),R(Y).off("hashchange",c).off("resize",S),R(I).off("mouseenter","#multiscroll-nav li").off("mouseleave","#multiscroll-nav li").off("click","#multiscroll-nav a")},o.build=function(){o.setKeyboardScrolling(!0),o.setMouseWheelScrolling(!0),z(),R(Y).on("hashchange",c).on("resize",S),R(I).on("mouseenter","#multiscroll-nav li",d).on("mouseleave","#multiscroll-nav li",v).on("click","#multiscroll-nav a",m)}}}(jQuery,window,document,Math);
+//# sourceMappingURL=jquery.multiscroll.min.js.map
diff --git a/dist/jquery.multiscroll.min.js.map b/dist/jquery.multiscroll.min.js.map
new file mode 100644
index 0000000..1d1a0db
--- /dev/null
+++ b/dist/jquery.multiscroll.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["jquery.multiscroll.js"],"names":["$","window","document","Math","undefined","fn","multiscroll","options","MS","extend","verticalCentered","scrollingSpeed","easing","menu","sectionsColor","anchors","navigation","navigationPosition","navigationColor","navigationTooltips","loopBottom","loopTop","css3","paddingTop","paddingBottom","fixedElements","normalScrollElements","keyboardScrolling","touchSensitivity","sectionSelector","leftSelector","rightSelector","afterLoad","onLeave","afterRender","afterResize","scrollDelay","isTouchDevice","navigator","userAgent","match","isTouch","msMaxTouchPoints","addClass","nav","resizeId","keydownId","numberSections","find","length","isMoving","windowHeight","height","MSPointer","pointer","PointerEvent","down","move","getMSPointer","events","touchmove","touchstart","hashChangeHandler","sectionAnchor","location","hash","replace","section","lastScrolledDestiny","scrollPage","navClickHandler","e","preventDefault","index","this","parent","eq","navMouseEnterHandler","tooltip","data","hide","appendTo","fadeIn","navMouseLeaveHandler","fadeOut","remove","addMouseWheelHandler","addTouchHandler","has3d","el","createElement","transforms","webkitTransform","OTransform","msTransform","MozTransform","transform","t","body","insertBefore","style","getComputedStyle","getPropertyValue","removeChild","support3d","css","overflow","each","append","width","position","-ms-touch-action","right","top","touch-action","left","element","sectionIndex","attr","wrapInner","getTableHeight","closest","link","html","get","reverse","promise","done","last","first","isFunction","call","silentScroll","setBodyClass","on","keydown","clearTimeout","activeElement","is","keyCode","which","inArray","setTimeout","shiftPressed","shiftKey","moveSectionUp","moveSectionDown","moveTo","onkeydown","mousedown","button","mouseenter","mouseleave","setMouseWheelScrolling","resizeHandler","previousHeight","currentHeight","abs","max","reBuild","resizing","scrollOverflow","scrollBarHandler","createScrollBarForAll","transformContainer","leftDestination","leftDestinationIndex","rightDestination","anchorLink","leavingSection","yMovement","destiny","fromIndex","toIndex","getYmovement","name","topPos","siblings","removeClass","setURLHash","translate3dLeft","translate3dRight","animate","addEventListener","MouseWheelHandler","attachEvent","event","delta","min","wheelDelta","deltaY","detail","container","translate3d","animated","toggleClass","-webkit-transform","-moz-transform","-ms-transform","text","String","classRe","RegExp","className","sectionHeight","paddings","parseInt","prev","next","isNaN","setKeyboardScrolling","value","removeEventListener","detachEvent","setScrollingSpeed","touchStartY","touchEndY","touchMoveHandler","isReallyTouch","touchEvents","getEventsPage","pointerType","touchStartHandler","passive","y","pageY","pageX","touches","x","destroy","off","build","jQuery"],"mappings":";;;;;;;CAOA,SAAUA,EAAGC,EAAQC,EAAUC,EAAMC,GAEjCJ,EAAEK,GAAGC,YAAc,SAASC,GACxB,IAAIC,EAAKR,EAAEK,GAAGC,YAGdC,EAAUP,EAAES,QACRC,kBAAqB,EACrBC,eAAkB,IAClBC,OAAU,cACVC,MAAQ,EACRC,iBACAC,WACAC,YAAc,EACdC,mBAAsB,QACtBC,gBAAmB,OACnBC,sBACAC,YAAc,EACdC,SAAW,EACXC,MAAQ,EACRC,WAAc,EACdC,cAAiB,EACjBC,cAAiB,KACjBC,qBAAwB,KACxBC,mBAAqB,EACrBC,iBAAoB,EAGpBC,gBAAmB,cACnBC,aAAgB,WAChBC,cAAiB,YAGjBC,UAAa,KACbC,QAAW,KACXC,YAAe,KACfC,YAAe,MAChB5B,GAKH,IAAI6B,EAAc,IAEdC,EAAgBC,UAAUC,UAAUC,MAAM,+GAC1CC,EAAY,iBAAkBxC,GAAyC,EAA7BqC,UAAUI,kBAA0BJ,UAAwB,eAG5E,cAA1B/B,EAAQwB,eACR/B,EAAEO,EAAQwB,eAAeY,SAAS,YAGT,aAAzBpC,EAAQuB,cACR9B,EAAEO,EAAQuB,cAAca,SAAS,WAGrC,IAEIC,EASAC,EA2JAC,EAtKAC,EAAiB/C,EAAE,YAAYgD,KAAK,eAAeC,OACnDC,GAAW,EAEXC,EAAenD,EAAEC,GAAQmD,SACzBC,EAqwBJ,WACI,IAAIC,EAIAA,EADDrD,EAAOsD,cACMC,KAAM,cAAeC,KAAM,gBAK3BD,KAAM,gBAAiBC,KAAM,iBAG7C,OAAOH,EAlxBKI,GACZC,GACAC,UAAW,gBAAiB3D,EAAS,YAAeoD,EAAUI,KAC9DI,WAAY,iBAAkB5D,EAAS,aAAgBoD,EAAUG,MAyIrE,SAASM,IACL,IACIC,EADS9D,EAAO+D,SAASC,KAAKC,QAAQ,IAAK,IAG/C,GAAGH,EAAcd,OAAO,CACpB,IAAIkB,EAAUnE,EAAE,YAAYgD,KAAK,iBAAiBe,EAAc,OAER,oBAAxBK,qBAEPL,IAAkBK,sBACvCC,EAAWF,IAmFvB,SAASG,EAAgBC,GACrBA,EAAEC,iBACF,IAAIC,EAAQzE,EAAE0E,MAAMC,SAASF,QAC7BJ,EAAWrE,EAAE,wBAAwB4E,GAAGH,IAM5C,SAASI,IACL,IAAIC,EAAU9E,EAAE0E,MAAMK,KAAK,WAC3B/E,EAAE,mCAAqCO,EAAQU,mBAAoB,KAAO6D,EAAU,UAAUE,OAAOC,SAASjF,EAAE0E,OAAOQ,OAAO,KAGlI,SAASC,IACLnF,EAAE0E,MAAM1B,KAAK,wBAAwBoC,QAAQ,IAAK,WAC9CpF,EAAE0E,MAAMW,WAhPhBC,IACAC,IAGGhF,EAAQe,OACPf,EAAQe,KAskBZ,WACI,IACIkE,EADAC,EAAKvF,EAASwF,cAAc,KAE5BC,GACIC,gBAAkB,oBAClBC,WAAa,eACbC,YAAc,gBACdC,aAAe,iBACfC,UAAY,aAMpB,IAAK,IAAIC,KAFT/F,EAASgG,KAAKC,aAAaV,EAAI,MAEjBE,EACNF,EAAGW,MAAMH,KAAO7F,IAChBqF,EAAGW,MAAMH,GAAK,2BACdT,EAAQvF,EAAOoG,iBAAiBZ,GAAIa,iBAAiBX,EAAWM,KAMxE,OAFA/F,EAASgG,KAAKK,YAAYd,GAElBD,IAAUpF,GAA4B,EAAfoF,EAAMvC,QAAwB,SAAVuC,EA7lBpCgB,IAGnBxG,EAAE,cAAcyG,KACZC,SAAa,SACbtD,OAAW,SAIiB,gBAA5B7C,EAAQsB,iBACR7B,EAAEO,EAAQsB,iBAAiB8E,KAAK,WAC5B3G,EAAE0E,MAAM/B,SAAS,gBAKrBpC,EAAQS,aACRhB,EAAE,QAAQ4G,OAAO,8CACjBhE,EAAM5C,EAAE,qBAEJyG,IAAI,QAASlG,EAAQW,iBACzB0B,EAAID,SAASpC,EAAQU,qBAGzBjB,EAAE,uBAAuByG,KACrBI,MAAS,MACTC,SAAY,WACZ1D,OAAU,OACV2D,mBAAoB,SAGxB/G,EAAE,aAAayG,KACXO,MAAS,MACTC,IAAO,IACPF,mBAAoB,OACpBG,eAAgB,SAGpBlH,EAAE,YAAYyG,KACVU,KAAQ,IACRF,IAAO,IACPF,mBAAoB,OACpBG,eAAgB,SAIpBlH,EAAE,+CAA+C2G,KAAK,WAClD,IAojBmBS,EApjBfC,EAAerH,EAAE0E,MAAMD,QAmB3B,IAjBGlE,EAAQgB,YAAchB,EAAQiB,gBAC7BxB,EAAE0E,MAAM+B,IAAI,UAAWlG,EAAQgB,WAAc,MAAQhB,EAAQiB,cAAgB,WAG7B,IAAzCjB,EAAQO,cAAcuG,IAC7BrH,EAAE0E,MAAM+B,IAAI,mBAAoBlG,EAAQO,cAAcuG,SAGb,IAAlC9G,EAAQQ,QAAQsG,IACvBrH,EAAE0E,MAAM4C,KAAK,cAAe/G,EAAQQ,QAAQsG,IAG7C9G,EAAQG,mBAsiBQ0G,EAriBDpH,EAAE0E,OAsiBZ/B,SAAS,YAAY4E,UAAU,4CAA8CC,EAAeJ,GAAW,UAliB5GpH,EAAE0E,MAAM+C,QAAQ,YAAYxE,QAAU1C,EAAQS,WAAY,CACzD,IAAI0G,EAAO,GACRnH,EAAQQ,QAAQkC,SACfyE,EAAOnH,EAAQQ,QAAQsG,IAE3B,IAAIvC,EAAUvE,EAAQY,mBAAmBkG,QACnB,IAAZvC,IACNA,EAAU,IAEVvE,EAAQS,YACR4B,EAAII,KAAK,MAAM4D,OAAO,qBAAuB9B,EAAU,eAAiB4C,EAAO,+BAM3F1H,EAAE,aAAa2H,KAAM3H,EAAE,aAAagD,KAAK,eAAe4E,MAAMC,WAE9D7H,EAAE,+CAA+C2G,KAAK,WAClD,IAAIU,EAAerH,EAAE0E,MAAMD,QAE3BzE,EAAE0E,MAAM+B,KACJrD,OAAU,UAIViE,GAAgB9G,EAAQS,YAExB4B,EAAII,KAAK,MAAM4B,GAAGyC,GAAcrE,KAAK,KAAKL,SAAS,YAExDmF,UAAUC,KAAK,WAGV/H,EAAE,+BAA+BiD,SACjCjD,EAAE,aAAagD,KAAK,eAAegF,OAAOrF,SAAS,UACnD3C,EAAE,YAAYgD,KAAK,eAAeiF,QAAQtF,SAAS,WAIpDpC,EAAQS,YACP4B,EAAI6D,IAAI,aAAc,IAAO7D,EAAIQ,SAAS,EAAK,MAEnDpD,EAAEkI,WAAY3H,EAAQ2B,cAAiB3B,EAAQ2B,YAAYiG,KAAMzD,MAGjE0D,IAGAC,IAEArI,EAAEC,GAAQqI,GAAG,OAAQ,WAqgBzB,IAEQvE,EACAI,EADAJ,EAAiB9D,EAAO+D,SAASC,KAAKC,QAAQ,IAAK,IACnDC,EAAUnE,EAAE,qCAAqC+D,EAAc,MAEhEA,EAAcd,QACboB,EAAWF,OAngBnBnE,EAAEC,GAAQqI,GAAG,aAAcxE,GAqB3B9D,EAAEE,GAAUqI,QAIZ,SAAwBhE,GACpBiE,aAAa1F,GAEb,IAAI2F,EAAgBzI,EAAEE,EAASuI,eAE/B,IAAIA,EAAcC,GAAG,cAAgBD,EAAcC,GAAG,WAAaD,EAAcC,GAAG,WAChFnI,EAAQoB,kBAAkB,CAC1B,IAAIgH,EAAUpE,EAAEqE,OAIsB,EAAnC5I,EAAE6I,QAAQF,GADM,GAAI,GAAI,GAAI,GAAI,MAE/BpE,EAAEC,iBAGN1B,EAAYgG,WAAW,YAS/B,SAAmBvE,GACf,IAAIwE,EAAexE,EAAEyE,SAErB,OAAQzE,EAAEqE,OAEN,KAAK,GACL,KAAK,GACDpI,EAAGyI,gBACH,MAGJ,KAAK,GACD,GAAGF,EAAa,CACZvI,EAAGyI,gBACH,MAER,KAAK,GACL,KAAK,GACDzI,EAAG0I,kBACH,MAGJ,KAAK,GACD1I,EAAG2I,OAAO,GACV,MAGJ,KAAK,GACD3I,EAAG2I,OAAQnJ,EAAE,wBAAwBiD,QACrC,MAEJ,WAvCImG,CAAU7E,IACZ,QA8CVvE,EAAEE,GAAUmJ,UAAU,SAAS9E,GAC3B,GAAe,GAAZA,EAAE+E,OAED,OADA/E,EAAEC,kBACK,IAWfxE,EAAEE,GAAUoI,GAAG,QAAS,qBAAsBhE,GAc9CtE,EAAEE,GAAUoI,IACRiB,WAAY1E,EACZ2E,WAAYrE,GACb,uBAGA5E,EAAQmB,uBACP1B,EAAEE,GAAUoI,GAAG,aAAc/H,EAAQmB,qBAAsB,WACvDlB,EAAGiJ,wBAAuB,KAG9BzJ,EAAEE,GAAUoI,GAAG,aAAc/H,EAAQmB,qBAAsB,WACvDlB,EAAGiJ,wBAAuB,MAMlCzJ,EAAEC,GAAQqI,GAAG,SAAUoB,GAGvB,IAAIC,EAAiBxG,EAKrB,SAASuG,IAEL,GAAIrH,EAAe,CACf,IAAIoG,EAAgBzI,EAAEE,EAASuI,eAG/B,IAAKA,EAAcC,GAAG,cAAgBD,EAAcC,GAAG,WAAaD,EAAcC,GAAG,UAAW,CAC5F,IAAIkB,EAAgB5J,EAAEC,GAAQmD,SAG1BjD,EAAK0J,IAAID,EAAgBD,GAAmB,GAAKxJ,EAAK2J,IAAIH,EAAgBC,GAAiB,MAC3FG,GAAQ,GACRJ,EAAiBC,SAMzBpB,aAAa3F,GAEbA,EAAWiG,WAAW,WAClBiB,GAAQ,IACT,KAOX,SAASA,EAAQC,GACb7G,EAAenD,EAAEC,GAAQmD,SACzBpD,EAAE,iBAAiB2G,KAAK,WACpB3G,EAAE0E,MAAM+B,KAAMrD,OAAQoE,EAAexH,EAAE0E,MAAMC,cAG9CpE,EAAQ0J,gBACPC,iBAAiBC,wBAGrB/B,IACApI,EAAEkI,WAAY3H,EAAQ4B,cAAiB5B,EAAQ4B,YAAYgG,KAAMzD,MAGrE,SAAS0D,IAEF7H,EAAQe,MACP8I,EAAmBpK,EAAE,YAAa,qBAAuBA,EAAE,YAAYgD,KAAK,sBAAsB8D,WAAWG,IAAM,YAAY,GAC/HmD,EAAmBpK,EAAE,aAAc,qBAAuBA,EAAE,aAAagD,KAAK,sBAAsB8D,WAAWG,IAAM,YAAY,KAEjIjH,EAAE,YAAYyG,IAAI,OAAQzG,EAAE,YAAYgD,KAAK,sBAAsB8D,WAAWG,KAC9EjH,EAAE,aAAayG,IAAI,OAAQzG,EAAE,aAAagD,KAAK,sBAAsB8D,WAAWG,MAwCxF,SAAS5C,EAAWgG,GAChB,IAAIC,EAAuBD,EAAgB5F,QACvC8F,EAAmBvK,EAAE,aAAagD,KAAK,eAAe4B,GAAI7B,EAAgB,EAAIuH,GAE9EE,EAAcH,EAAgBtF,KAAK,UAEnC0F,EADgBzK,EAAE,+BACayE,QAAU,EACzCiG,EAsKR,SAAsBC,GAClB,IAAIC,EAAY5K,EAAE,+BAA+ByE,QAC7CoG,EAAUF,EAAQlG,QAEtB,GAAeoG,EAAZD,EACC,MAAO,KAEX,MAAO,OA7KSE,CAAaT,GAI7BnH,GAAW,EAEX,IAqJyB6H,EAdJA,EAAM1D,EAvIvB2D,EACSX,EAAgBvD,WAAWG,IADpC+D,EAEST,EAAiBzD,WAAWG,IASzC,GANAsD,EAAiB5H,SAAS,UAAUsI,WAAWC,YAAY,UAC3Db,EAAgB1H,SAAS,UAAUsI,WAAWC,YAAY,UAwK9D,SAAoBV,GACbjK,EAAQQ,QAAQkC,SACfe,SAASC,KAAOuG,GAGpBnC,IA3KA8C,CAAWX,GAGPjK,EAAQe,KAAK,CAEbtB,EAAEkI,WAAW3H,EAAQ0B,UAAY1B,EAAQ0B,QAAQkG,KAAKzD,KAAM+F,EAAiBH,EAAuB,EAAII,GAExG,IAAIU,EAAkB,qBAAuBJ,EAAiB,WAC1DK,EAAmB,qBAAuBL,EAAkB,WAEhEZ,EAAmBpK,EAAE,YAAaoL,GAAiB,GACnDhB,EAAmBpK,EAAE,aAAcqL,GAAkB,GAErDvC,WAAW,WAEP9I,EAAEkI,WAAW3H,EAAQyB,YAAczB,EAAQyB,UAAUmG,KAAKzD,KAAM8F,EAAaF,EAAuB,GAEpGxB,WAAW,WACP5F,GAAW,GACZd,IACJ7B,EAAQI,qBAGXX,EAAEkI,WAAW3H,EAAQ0B,UAAY1B,EAAQ0B,QAAQkG,KAAKzD,KAAM+F,EAAiBH,EAAuB,EAAII,GAExG1K,EAAE,YAAYsL,SACVrE,KAAQ+D,GACTzK,EAAQI,eAAgBJ,EAAQK,OAAQ,WACvCZ,EAAEkI,WAAW3H,EAAQyB,YAAczB,EAAQyB,UAAUmG,KAAKzD,KAAM8F,EAAaF,EAAuB,GAEpGxB,WAAW,WACP5F,GAAW,GACZd,KAGPpC,EAAE,aAAasL,SACXrE,KAAQ+D,GACTzK,EAAQI,eAAgBJ,EAAQK,QAIvCwD,oBAAsBoG,EAoGGO,EAlGLP,EAmGjBjK,EAAQM,OACPb,EAAEO,EAAQM,MAAMmC,KAAK,WAAWkI,YAAY,UAC5ClL,EAAEO,EAAQM,MAAMmC,KAAK,qBAAqB+H,EAAK,MAAMpI,SAAS,WAjB7CoI,EAnFLP,EAmFWnD,EAnFCiD,EAoFzB/J,EAAQS,aACPhB,EAAE,oBAAoBgD,KAAK,WAAWkI,YAAY,UAC/CH,EACC/K,EAAE,oBAAoBgD,KAAK,YAAc+H,EAAO,MAAMpI,SAAS,UAE/D3C,EAAE,oBAAoBgD,KAAK,MAAM4B,GAAGyC,GAAcrE,KAAK,KAAKL,SAAS,WArEjF,SAAS2C,IACDpF,EAASqL,kBACTrL,EAASqL,iBAAiB,aAAcC,GAAmB,GAC3DtL,EAASqL,iBAAiB,QAASC,GAAmB,IAEtDtL,EAASuL,YAAY,eAAgBD,GAU7C,SAASA,EAAkBjH,GAEvBA,EAAItE,EAAOyL,OAASnH,EACpB,IAAIoH,EAAQxL,EAAK2J,KAAK,EAAG3J,EAAKyL,IAAI,EACzBrH,EAAEsH,aAAetH,EAAEuH,SAAWvH,EAAEwH,SAgBzC,OAdK7I,IAGGyI,EAAQ,EACRnL,EAAG0I,kBAKH1I,EAAGyI,kBAKJ,EAMX,SAASmB,EAAmB4B,EAAWC,EAAaC,GAUpD,IAAuBD,EATnBD,EAAUG,YAAY,YAAaD,GAEnCF,EAAUvF,KASN2F,oBAFeH,EAPSA,EAUxBI,iBAAkBJ,EAClBK,gBAAgBL,EAChBjG,UAAaiG,IAyDrB,SAAS5D,IACL,IAAIlE,EAAUnE,EAAE,+BACZ+D,EAAgBI,EAAQY,KAAK,UAC7BsC,EAAelD,EAAQM,QAEvB8H,EAAOC,OAAOnF,GAEf9G,EAAQQ,QAAQkC,SACfsJ,EAAOxI,GAIXwI,EAAOA,EAAKrI,QAAQ,IAAK,KAAKA,QAAQ,IAAI,IAG1C,IAAIuI,EAAU,IAAIC,OAAO,+BAA0C,KACnE1M,EAAE,QAAQ,GAAG2M,UAAY3M,EAAE,QAAQ,GAAG2M,UAAUzI,QAAQuI,EAAS,IAGjEzM,EAAE,QAAQ2C,SAAS,cAAgB4J,GA6CvC,SAAS/E,EAAerD,GACpB,IAAIyI,EAAgBzJ,EAEpB,GAAG5C,EAAQgB,YAAchB,EAAQiB,cAAc,CAC3C,IAAIqL,EAAWC,SAAS3I,EAAQsC,IAAI,gBAAkBqG,SAAS3I,EAAQsC,IAAI,mBAC3EmG,EAAiBzJ,EAAe0J,EAGpC,OAAOD,EAlTXpM,EAAGyI,cAAgB,WACf,IAAI8D,EAAO/M,EAAE,+BAA+B+M,KAAK,gBAE7CA,EAAK9J,QAAU1C,EAAQc,UACvB0L,EAAO/M,EAAE,wBAAwBgI,QAGjC+E,EAAK9J,QACLoB,EAAW0I,IAInBvM,EAAG0I,gBAAkB,WACjB,IAAI8D,EAAOhN,EAAE,+BAA+BgN,KAAK,gBAE7CA,EAAK/J,QAAU1C,EAAQa,aACvB4L,EAAOhN,EAAE,wBAAwBiI,SAGlC+E,EAAK/J,QACJoB,EAAW2I,IAInBxM,EAAG2I,OAAS,SAAUhF,GASlBE,EANG4I,MAAM9I,GACKnE,EAAE,0BAA0BmE,EAAQ,MAEpCnE,EAAE,wBAAwB4E,GAAKT,EAAS,KAwS1D3D,EAAG0M,qBAAuB,SAAUC,GAChC5M,EAAQoB,kBAAoBwL,GAMhC3M,EAAGiJ,uBAAyB,SAAU0D,GAC/BA,EACC7H,IAlOApF,EAASqL,kBACTrL,EAASkN,oBAAoB,aAAc5B,GAAmB,GAC9DtL,EAASkN,oBAAoB,QAAS5B,GAAmB,IAEzDtL,EAASmN,YAAY,eAAgB7B,IAuO7ChL,EAAG8M,kBAAoB,SAASH,GAC5B5M,EAAQI,eAAiBwM,GAK7B,IAAII,EAAc,EAEdC,EAAY,EAShB,SAASC,EAAiBlJ,GAEtB,GAAGmJ,EAAcnJ,GAAG,CAEhBmH,MAAMlH,iBAEcxE,EAAE,+BAEtB,IAAKkD,EAAU,CACX,IAAIyK,EAAcC,EAAcrJ,GAChCiJ,EAAYG,EAAe,EACfA,EAAe,EAIvBxN,EAAK0J,IAAI0D,EAAcC,GAAcxN,EAAEC,GAAQmD,SAAW,IAAM7C,EAAQqB,mBAEtD4L,EAAdD,EACA/M,EAAG0I,kBAEgBqE,EAAZC,GACPhN,EAAGyI,mBAWvB,SAASyE,EAAcnJ,GAEnB,YAAgC,IAAlBA,EAAEsJ,aAAgD,SAAjBtJ,EAAEsJ,YAOrD,SAASC,EAAkBvJ,GAEvB,GAAGmJ,EAAcnJ,GAAG,CAChB,IAAIoJ,EAAcC,EAAcrJ,GAChCgJ,EAAcI,EAAe,EACfA,EAAe,GAQrC,SAASpI,KACF9C,GAAWJ,KACVnC,EAASkN,oBAAoBzJ,EAAOE,WAAYiK,GAChD5N,EAASkN,oBAAoBzJ,EAAOC,UAAW6J,GAAmBM,SAAS,IAE3E7N,EAASqL,iBAAiB5H,EAAOE,WAAYiK,GAC7C5N,EAASqL,iBAAiB5H,EAAOC,UAAW6J,GAAmBM,SAAS,KAsChF,SAASH,EAAcrJ,GACnB,IAAIZ,KAWJ,OATAA,EAAOqK,OAAwB,IAAZzJ,EAAE0J,QAA0B1J,EAAE0J,OAAS1J,EAAE2J,OAAS3J,EAAE0J,MAAQ1J,EAAE4J,QAAQ,GAAGF,MAC5FtK,EAAOyK,OAAwB,IAAZ7J,EAAE2J,QAA0B3J,EAAE0J,OAAS1J,EAAE2J,OAAS3J,EAAE2J,MAAQ3J,EAAE4J,QAAQ,GAAGD,MAGzFzL,GAAWiL,EAAcnJ,SAA2B,IAAdA,EAAE4J,UACvCxK,EAAOqK,EAAIzJ,EAAE4J,QAAQ,GAAGF,MACxBtK,EAAOyK,EAAI7J,EAAE4J,QAAQ,GAAGD,OAGrBvK,EAMXnD,EAAG6N,QAAU,WACT7N,EAAG0M,sBAAqB,GACxB1M,EAAGiJ,wBAAuB,IAlDvBhH,GAAWJ,KACVnC,EAASkN,oBAAoBzJ,EAAOE,WAAYiK,GAChD5N,EAASkN,oBAAoBzJ,EAAOC,UAAW6J,GAAmBM,SAAS,KAmD/E/N,EAAEC,GACGqO,IAAI,aAAcxK,GAClBwK,IAAI,SAAU5E,GAEnB1J,EAAEE,GACGoO,IAAI,aAAc,uBAClBA,IAAI,aAAc,uBAClBA,IAAI,QAAS,uBAMtB9N,EAAG+N,MAAQ,WACP/N,EAAG0M,sBAAqB,GACxB1M,EAAGiJ,wBAAuB,GAC1BlE,IAEAvF,EAAEC,GACGqI,GAAG,aAAcxE,GACjBwE,GAAG,SAAUoB,GAElB1J,EAAEE,GACGoI,GAAG,aAAc,sBAAuBzD,GACxCyD,GAAG,aAAc,sBAAuBnD,GACxCmD,GAAG,QAAS,qBAAsBhE,KAr4BnD,CAy4BGkK,OAAQvO,OAAQC,SAAUC","file":"jquery.multiscroll.min.js","sourcesContent":["/*!\r\n * multiscroll.js 0.2.2\r\n * https://github.com/alvarotrigo/multiscroll.js\r\n * @license MIT licensed\r\n *\r\n * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo\r\n */\r\n(function($, window, document, Math, undefined) {\r\n\r\n    $.fn.multiscroll = function(options) {\r\n        var MS = $.fn.multiscroll;\r\n\r\n        // Create some defaults, extending them with any options that were provided\r\n        options = $.extend({\r\n            'verticalCentered' : true,\r\n            'scrollingSpeed': 700,\r\n            'easing': 'easeInQuart',\r\n            'menu': false,\r\n            'sectionsColor': [],\r\n            'anchors':[],\r\n            'navigation': false,\r\n            'navigationPosition': 'right',\r\n            'navigationColor': '#000',\r\n            'navigationTooltips': [],\r\n            'loopBottom': false,\r\n            'loopTop': false,\r\n            'css3': false,\r\n            'paddingTop': 0,\r\n            'paddingBottom': 0,\r\n            'fixedElements': null,\r\n            'normalScrollElements': null,\r\n            'keyboardScrolling': true,\r\n            'touchSensitivity': 5,\r\n\r\n            // Custom selectors\r\n            'sectionSelector': '.ms-section',\r\n            'leftSelector': '.ms-left',\r\n            'rightSelector': '.ms-right',\r\n\r\n            //events\r\n            'afterLoad': null,\r\n            'onLeave': null,\r\n            'afterRender': null,\r\n            'afterResize': null\r\n        }, options);\r\n\r\n        //Defines the delay to take place before being able to scroll to the next section\r\n        //BE CAREFUL! Not recommened to change it under 400 for a good behavior in laptops and\r\n        //Apple devices (laptops, mouses...)\r\n        var scrollDelay = 600;\r\n\r\n        var isTouchDevice = navigator.userAgent.match(/(iPhone|iPod|iPad|Android|playbook|silk|BlackBerry|BB10|Windows Phone|Tizen|Bada|webOS|IEMobile|Opera Mini)/);\r\n        var isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0) || (navigator.maxTouchPoints));\r\n\r\n        // adding class namef for right and left blocks\r\n        if (options.rightSelector !== '.ms-right') {\r\n            $(options.rightSelector).addClass('ms-right');\r\n        }\r\n\r\n        if (options.leftSelector !== '.ms-left') {\r\n            $(options.leftSelector).addClass('ms-left');\r\n        }\r\n\r\n        var numberSections = $('.ms-left').find('.ms-section').length;\r\n        var isMoving = false;\r\n        var nav;\r\n        var windowHeight = $(window).height();\r\n        var MSPointer = getMSPointer();\r\n        var events = {\r\n            touchmove: 'ontouchmove' in window ? 'touchmove' :  MSPointer.move,\r\n            touchstart: 'ontouchstart' in window ? 'touchstart' :  MSPointer.down\r\n        };\r\n\r\n        //timeouts\r\n        var resizeId;\r\n\r\n        addMouseWheelHandler();\r\n        addTouchHandler();\r\n\r\n        //if css3 is not supported, it will use jQuery animations\r\n        if(options.css3){\r\n            options.css3 = support3d();\r\n        }\r\n\r\n        $('html, body').css({\r\n            'overflow' : 'hidden',\r\n            'height' : '100%'\r\n        });\r\n\r\n        //adding class names to each sections\r\n        if (options.sectionSelector !== '.ms-section') {\r\n            $(options.sectionSelector).each(function(){\r\n                $(this).addClass('ms-section');\r\n            });\r\n        }\r\n\r\n        //creating the navigation dots\r\n        if (options.navigation) {\r\n            $('body').append('<div id=\"multiscroll-nav\"><ul></ul></div>');\r\n            nav = $('#multiscroll-nav');\r\n\r\n            nav.css('color', options.navigationColor);\r\n            nav.addClass(options.navigationPosition);\r\n        }\r\n\r\n        $('.ms-right, .ms-left').css({\r\n            'width': '50%',\r\n            'position': 'absolute',\r\n            'height': '100%',\r\n            '-ms-touch-action': 'none'\r\n        });\r\n\r\n        $('.ms-right').css({\r\n            'right': '1px', //http://stackoverflow.com/questions/23675457/chrome-and-opera-creating-small-padding-when-using-displaytable\r\n            'top': '0',\r\n            '-ms-touch-action': 'none',\r\n            'touch-action': 'none'\r\n        });\r\n\r\n        $('.ms-left').css({\r\n            'left': '0',\r\n            'top': '0',\r\n            '-ms-touch-action': 'none',\r\n            'touch-action': 'none'\r\n        });\r\n\r\n\r\n        $('.ms-left .ms-section, .ms-right .ms-section').each(function(){\r\n            var sectionIndex = $(this).index();\r\n\r\n            if(options.paddingTop || options.paddingBottom){\r\n                $(this).css('padding', options.paddingTop  + ' 0 ' + options.paddingBottom + ' 0');\r\n            }\r\n\r\n            if (typeof options.sectionsColor[sectionIndex] !==  'undefined') {\r\n                $(this).css('background-color', options.sectionsColor[sectionIndex]);\r\n            }\r\n\r\n            if (typeof options.anchors[sectionIndex] !== 'undefined') {\r\n                $(this).attr('data-anchor', options.anchors[sectionIndex]);\r\n            }\r\n\r\n            if(options.verticalCentered){\r\n                addTableClass($(this));\r\n            }\r\n\r\n            //only for the left panel\r\n            if($(this).closest('.ms-left').length && options.navigation) {\r\n                var link = '';\r\n                if(options.anchors.length){\r\n                    link = options.anchors[sectionIndex];\r\n                }\r\n                var tooltip = options.navigationTooltips[sectionIndex];\r\n                if(typeof tooltip === 'undefined'){\r\n                    tooltip = '';\r\n                }\r\n                if (options.navigation) {\r\n                    nav.find('ul').append('<li data-tooltip=\"' + tooltip + '\"><a href=\"#' + link + '\"><span></span></a></li>');\r\n                }\r\n            }\r\n        });\r\n\r\n        //inverting the right panel\r\n        $('.ms-right').html( $('.ms-right').find('.ms-section').get().reverse());\r\n\r\n        $('.ms-left .ms-section, .ms-right .ms-section').each(function(){\r\n            var sectionIndex = $(this).index();\r\n\r\n            $(this).css({\r\n                'height': '100%'\r\n            });\r\n\r\n\r\n            if(!sectionIndex && options.navigation ){\r\n                //activating the navigation bullet\r\n                nav.find('li').eq(sectionIndex).find('a').addClass('active');\r\n            }\r\n        }).promise().done(function(){\r\n\r\n            //if no active section is defined, the 1st one will be the default one\r\n            if(!$('.ms-left .ms-section.active').length){\r\n                $('.ms-right').find('.ms-section').last().addClass('active');\r\n                $('.ms-left').find('.ms-section').first().addClass('active');\r\n            }\r\n\r\n            //vertical centered of the navigation + first bullet active\r\n            if(options.navigation){\r\n                nav.css('margin-top', '-' + (nav.height()/2) + 'px');\r\n            }\r\n            $.isFunction( options.afterRender ) && options.afterRender.call( this);\r\n\r\n            //scrolling to the defined active section and adjusting right and left panels\r\n            silentScroll();\r\n\r\n            //setting the class for the body element\r\n            setBodyClass();\r\n\r\n            $(window).on('load', function() {\r\n                scrollToAnchor();\r\n            });\r\n        });\r\n\r\n\r\n        //detecting any change on the URL to scroll to the given anchor link\r\n        //(a way to detect back history button as we play with the hashes on the URL)\r\n        $(window).on('hashchange', hashChangeHandler);\r\n\r\n        function hashChangeHandler(){\r\n            var value =  window.location.hash.replace('#', '');\r\n            var sectionAnchor = value;\r\n\r\n            if(sectionAnchor.length){\r\n                var section = $('.ms-left').find('[data-anchor=\"'+sectionAnchor+'\"]');\r\n\r\n                var isFirstScrollMove = (typeof lastScrolledDestiny === 'undefined' );\r\n\r\n                if (isFirstScrollMove || sectionAnchor !== lastScrolledDestiny){\r\n                    scrollPage(section);\r\n                }\r\n            }\r\n        };\r\n\r\n\r\n        /**\r\n        * Sliding with arrow keys, both, vertical and horizontal\r\n        */\r\n        $(document).keydown(keydownHandler);\r\n\r\n\r\n        var keydownId;\r\n        function keydownHandler(e) {\r\n            clearTimeout(keydownId);\r\n\r\n            var activeElement = $(document.activeElement);\r\n\r\n            if(!activeElement.is('textarea') && !activeElement.is('input') && !activeElement.is('select') &&\r\n                options.keyboardScrolling){\r\n                var keyCode = e.which;\r\n\r\n                //preventing the scroll with arrow keys & spacebar & Page Up & Down keys\r\n                var keyControls = [40, 38, 32, 33, 34];\r\n                if($.inArray(keyCode, keyControls) > -1){\r\n                    e.preventDefault();\r\n                }\r\n\r\n                keydownId = setTimeout(function(){\r\n                    onkeydown(e);\r\n                },150);\r\n            }\r\n        }\r\n\r\n        /**\r\n         * Sliding with arrow keys, both, vertical and horizontal\r\n         */\r\n        function onkeydown(e){\r\n            var shiftPressed = e.shiftKey;\r\n\r\n            switch (e.which) {\r\n                //up\r\n                case 38:\r\n                case 33:\r\n                    MS.moveSectionUp();\r\n                    break;\r\n\r\n                //down\r\n                case 32: //spacebar\r\n                    if(shiftPressed){\r\n                        MS.moveSectionUp();\r\n                        break;\r\n                    }\r\n                case 40:\r\n                case 34:\r\n                    MS.moveSectionDown();\r\n                    break;\r\n\r\n                //Home\r\n                case 36:\r\n                    MS.moveTo(1);\r\n                    break;\r\n\r\n                //End\r\n                case 35:\r\n                    MS.moveTo( $('.ms-left .ms-section').length);\r\n                    break;\r\n\r\n                default:\r\n                    return; // exit this handler for other keys\r\n            }\r\n        }\r\n\r\n        /**\r\n         * Disabling any action when pressing of the mouse wheel (Chrome, IE, Opera, Safari)\r\n         */\r\n        $(document).mousedown(function(e) {\r\n            if(e.button == 1){\r\n                e.preventDefault();\r\n                return false;\r\n            }\r\n        });\r\n\r\n        function navClickHandler(e) {\r\n            e.preventDefault();\r\n            var index = $(this).parent().index();\r\n            scrollPage($('.ms-left .ms-section').eq(index));\r\n        }\r\n\r\n        //navigation action\r\n        $(document).on('click', '#multiscroll-nav a', navClickHandler);\r\n\r\n        function navMouseEnterHandler() {\r\n            var tooltip = $(this).data('tooltip');\r\n            $('<div class=\"multiscroll-tooltip ' + options.navigationPosition +'\">' + tooltip + '</div>').hide().appendTo($(this)).fadeIn(200);\r\n        }\r\n\r\n        function navMouseLeaveHandler() {\r\n            $(this).find('.multiscroll-tooltip').fadeOut(200, function() {\r\n                $(this).remove();\r\n            });\r\n        }\r\n\r\n        //navigation tooltips\r\n        $(document).on({\r\n            mouseenter: navMouseEnterHandler,\r\n            mouseleave: navMouseLeaveHandler\r\n        }, '#multiscroll-nav li');\r\n\r\n\r\n        if(options.normalScrollElements){\r\n            $(document).on('mouseenter', options.normalScrollElements, function () {\r\n                MS.setMouseWheelScrolling(false);\r\n            });\r\n\r\n            $(document).on('mouseleave', options.normalScrollElements, function(){\r\n                MS.setMouseWheelScrolling(true);\r\n            });\r\n        }\r\n\r\n\r\n        //when resizing the site, we adjust the heights of the sections\r\n        $(window).on('resize', resizeHandler);\r\n\r\n\r\n        var previousHeight = windowHeight;\r\n\r\n        /**\r\n         * When resizing is finished, we adjust the slides sizes and positions\r\n         */\r\n        function resizeHandler() {\r\n            // rebuild immediately on touch devices\r\n            if (isTouchDevice) {\r\n                var activeElement = $(document.activeElement);\r\n\r\n                //if the keyboard is NOT visible\r\n                if (!activeElement.is('textarea') && !activeElement.is('input') && !activeElement.is('select')) {\r\n                    var currentHeight = $(window).height();\r\n\r\n                    //making sure the change in the viewport size is enough to force a rebuild. (20 % of the window to avoid problems when hidding scroll bars)\r\n                    if( Math.abs(currentHeight - previousHeight) > (20 * Math.max(previousHeight, currentHeight) / 100) ){\r\n                        reBuild(true);\r\n                        previousHeight = currentHeight;\r\n                    }\r\n                }\r\n            }else{\r\n                //in order to call the functions only when the resize is finished\r\n                //http://stackoverflow.com/questions/4298612/jquery-how-to-call-resize-event-only-once-its-finished-resizing\r\n                clearTimeout(resizeId);\r\n\r\n                resizeId = setTimeout(function(){\r\n                    reBuild(true);\r\n                }, 350);\r\n            }\r\n        }\r\n\r\n        /**\r\n         * When resizing is finished, we adjust the slides sizes and positions\r\n         */\r\n        function reBuild(resizing){\r\n            windowHeight = $(window).height();\r\n            $('.ms-tableCell').each(function() {\r\n                $(this).css({ height: getTableHeight($(this).parent()) });\r\n            });\r\n\r\n            if(options.scrollOverflow){\r\n                scrollBarHandler.createScrollBarForAll();\r\n            }\r\n\r\n            silentScroll();\r\n            $.isFunction( options.afterResize ) && options.afterResize.call( this);\r\n        }\r\n\r\n        function silentScroll(){\r\n            //moving the right section to the bottom\r\n            if(options.css3){\r\n                transformContainer($('.ms-left'), 'translate3d(0px, -' + $('.ms-left').find('.ms-section.active').position().top + 'px, 0px)', false);\r\n                transformContainer($('.ms-right'), 'translate3d(0px, -' + $('.ms-right').find('.ms-section.active').position().top + 'px, 0px)', false);\r\n            }else{\r\n                $('.ms-left').css('top', -$('.ms-left').find('.ms-section.active').position().top );\r\n                $('.ms-right').css('top', -$('.ms-right').find('.ms-section.active').position().top );\r\n            }\r\n        }\r\n\r\n        MS.moveSectionUp = function(){\r\n            var prev = $('.ms-left .ms-section.active').prev('.ms-section');\r\n\r\n            if(!prev.length && options.loopTop){\r\n                prev = $('.ms-left .ms-section').last();\r\n            }\r\n\r\n            if (prev.length) {\r\n                scrollPage(prev);\r\n            }\r\n        };\r\n\r\n        MS.moveSectionDown = function (){\r\n            var next = $('.ms-left .ms-section.active').next('.ms-section');\r\n\r\n            if(!next.length && options.loopBottom ){\r\n                next = $('.ms-left .ms-section').first();\r\n            }\r\n\r\n            if(next.length){\r\n                scrollPage(next);\r\n            }\r\n        };\r\n\r\n        MS.moveTo = function (section){\r\n            var destiny = '';\r\n\r\n            if(isNaN(section)){\r\n                destiny = $('.ms-left [data-anchor=\"'+section+'\"]');\r\n            }else{\r\n                destiny = $('.ms-left .ms-section').eq( (section -1) );\r\n            }\r\n\r\n            scrollPage(destiny);\r\n        };\r\n\r\n        function scrollPage(leftDestination){\r\n            var leftDestinationIndex = leftDestination.index();\r\n            var rightDestination = $('.ms-right').find('.ms-section').eq( numberSections -1 - leftDestinationIndex);\r\n            var rightDestinationIndex = numberSections - 1 - leftDestinationIndex;\r\n            var anchorLink  = leftDestination.data('anchor');\r\n            var activeSection = $('.ms-left .ms-section.active');\r\n            var leavingSection = activeSection.index() + 1;\r\n            var yMovement = getYmovement(leftDestination);\r\n\r\n            //preventing from activating the MouseWheelHandler event\r\n            //more than once if the page is scrolling\r\n            isMoving = true;\r\n\r\n            var topPos = {\r\n                'left' : leftDestination.position().top,\r\n                'right': rightDestination.position().top\r\n            };\r\n\r\n            rightDestination.addClass('active').siblings().removeClass('active');\r\n            leftDestination.addClass('active').siblings().removeClass('active');\r\n\r\n            setURLHash(anchorLink);\r\n\r\n            // Use CSS3 translate functionality or...\r\n            if (options.css3){\r\n                //callback (onLeave)\r\n                $.isFunction(options.onLeave) && options.onLeave.call(this, leavingSection, (leftDestinationIndex + 1), yMovement);\r\n\r\n                var translate3dLeft = 'translate3d(0px, -' + topPos['left'] + 'px, 0px)';\r\n                var translate3dRight = 'translate3d(0px, -' + topPos['right'] + 'px, 0px)';\r\n\r\n                transformContainer($('.ms-left'), translate3dLeft, true);\r\n                transformContainer($('.ms-right'), translate3dRight, true);\r\n\r\n                setTimeout(function () {\r\n                    //callback (afterLoad)\r\n                    $.isFunction(options.afterLoad) && options.afterLoad.call(this, anchorLink, (leftDestinationIndex + 1));\r\n\r\n                    setTimeout(function () {\r\n                        isMoving = false;\r\n                    }, scrollDelay);\r\n                }, options.scrollingSpeed);\r\n            }else{\r\n                //callback (onLeave)\r\n                $.isFunction(options.onLeave) && options.onLeave.call(this, leavingSection, (leftDestinationIndex + 1), yMovement);\r\n\r\n                $('.ms-left').animate({\r\n                    'top': -topPos['left']\r\n                }, options.scrollingSpeed, options.easing, function(){\r\n                    $.isFunction(options.afterLoad) && options.afterLoad.call(this, anchorLink, (leftDestinationIndex + 1));\r\n\r\n                    setTimeout(function () {\r\n                        isMoving = false;\r\n                    }, scrollDelay);\r\n                });\r\n\r\n                $('.ms-right').animate({\r\n                    'top': -topPos['right']\r\n                }, options.scrollingSpeed, options.easing);\r\n            }\r\n\r\n            //flag to avoid callingn `scrollPage()` twice in case of using anchor links\r\n            lastScrolledDestiny = anchorLink;\r\n\r\n            activateMenuElement(anchorLink);\r\n            activateNavDots(anchorLink, leftDestinationIndex);\r\n        }\r\n\r\n        /**\r\n        * Removes the auto scrolling action fired by the mouse wheel and tackpad.\r\n        * After this function is called, the mousewheel and trackpad movements won't scroll through sections.\r\n        */\r\n        function removeMouseWheelHandler(){\r\n            if (document.addEventListener) {\r\n                document.removeEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper\r\n                document.removeEventListener('wheel', MouseWheelHandler, false); //Firefox\r\n            } else {\r\n                document.detachEvent(\"onmousewheel\", MouseWheelHandler); //IE 6/7/8\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Adds the auto scrolling action for the mouse wheel and tackpad.\r\n        * After this function is called, the mousewheel and trackpad movements will scroll through sections\r\n        */\r\n        function addMouseWheelHandler(){\r\n            if (document.addEventListener) {\r\n                document.addEventListener(\"mousewheel\", MouseWheelHandler, false); //IE9, Chrome, Safari, Oper\r\n                document.addEventListener(\"wheel\", MouseWheelHandler, false); //Firefox\r\n            } else {\r\n                document.attachEvent(\"onmousewheel\", MouseWheelHandler); //IE 6/7/8\r\n            }\r\n        }\r\n\r\n        /**\r\n         * Detecting mousewheel scrolling\r\n         *\r\n         * http://blogs.sitepointstatic.com/examples/tech/mouse-wheel/index.html\r\n         * http://www.sitepoint.com/html5-javascript-mouse-wheel/\r\n         */\r\n        function MouseWheelHandler(e) {\r\n            // cross-browser wheel delta\r\n            e = window.event || e;\r\n            var delta = Math.max(-1, Math.min(1,\r\n                    (e.wheelDelta || -e.deltaY || -e.detail)));\r\n\r\n            if (!isMoving) { //if theres any #\r\n\r\n                //scrolling down?\r\n                if (delta < 0) {\r\n                    MS.moveSectionDown();\r\n                }\r\n\r\n                //scrolling up?\r\n                else {\r\n                    MS.moveSectionUp();\r\n                }\r\n            }\r\n\r\n\r\n            return false;\r\n        }\r\n\r\n        /**\r\n        * Adds a css3 transform property to the container class with or without animation depending on the animated param.\r\n        */\r\n        function transformContainer(container, translate3d, animated){\r\n            container.toggleClass('ms-easing', animated);\r\n\r\n            container.css(getTransforms(translate3d));\r\n        }\r\n\r\n\r\n        /**\r\n        * Returns the transform styles for all browsers\r\n        */\r\n        function getTransforms(translate3d){\r\n            return {\r\n                '-webkit-transform': translate3d,\r\n                '-moz-transform': translate3d,\r\n                '-ms-transform':translate3d,\r\n                'transform': translate3d\r\n            };\r\n        }\r\n\r\n        /**\r\n         * Activating the website navigation dots according to the given slide name.\r\n         */\r\n        function activateNavDots(name, sectionIndex){\r\n            if(options.navigation){\r\n                $('#multiscroll-nav').find('.active').removeClass('active');\r\n                if(name){\r\n                    $('#multiscroll-nav').find('a[href=\"#' + name + '\"]').addClass('active');\r\n                }else{\r\n                    $('#multiscroll-nav').find('li').eq(sectionIndex).find('a').addClass('active');\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n         * Activating the website main menu elements according to the given slide name.\r\n         */\r\n        function activateMenuElement(name){\r\n            if(options.menu){\r\n                $(options.menu).find('.active').removeClass('active');\r\n                $(options.menu).find('[data-menuanchor=\"'+name+'\"]').addClass('active');\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Retuns `up` or `down` depending on the scrolling movement to reach its destination\r\n        * from the current section.\r\n        */\r\n        function getYmovement(destiny){\r\n            var fromIndex = $('.ms-left .ms-section.active').index();\r\n            var toIndex = destiny.index();\r\n\r\n            if(fromIndex > toIndex){\r\n                return 'up';\r\n            }\r\n            return 'down';\r\n        }\r\n\r\n\r\n        /**\r\n        * Sets the URL hash for a section with slides\r\n        */\r\n        function setURLHash(anchorLink){\r\n            if(options.anchors.length){\r\n                location.hash = anchorLink;\r\n            }\r\n\r\n            setBodyClass();\r\n        }\r\n\r\n         /**\r\n        * Sets a class for the body of the page depending on the active section / slide\r\n        */\r\n        function setBodyClass(){\r\n            var section = $('.ms-left .ms-section.active');\r\n            var sectionAnchor = section.data('anchor');\r\n            var sectionIndex = section.index();\r\n\r\n            var text = String(sectionIndex);\r\n\r\n            if(options.anchors.length){\r\n                text = sectionAnchor;\r\n            }\r\n\r\n            //changing slash for dash to make it a valid CSS style\r\n            text = text.replace('/', '-').replace('#','');\r\n\r\n            //removing previous anchor classes\r\n            var classRe = new RegExp('\\\\b\\\\s?' + 'ms-viewing' + '-[^\\\\s]+\\\\b', \"g\");\r\n            $('body')[0].className = $('body')[0].className.replace(classRe, '');\r\n\r\n            //adding the current anchor\r\n            $('body').addClass('ms-viewing-' + text);\r\n        }\r\n\r\n\r\n        /**\r\n        * Checks for translate3d support\r\n        * @return boolean\r\n        * http://stackoverflow.com/questions/5661671/detecting-transform-translate3d-support\r\n        */\r\n        function support3d() {\r\n            var el = document.createElement('p'),\r\n                has3d,\r\n                transforms = {\r\n                    'webkitTransform':'-webkit-transform',\r\n                    'OTransform':'-o-transform',\r\n                    'msTransform':'-ms-transform',\r\n                    'MozTransform':'-moz-transform',\r\n                    'transform':'transform'\r\n                };\r\n\r\n            // Add it to the body to get the computed style.\r\n            document.body.insertBefore(el, null);\r\n\r\n            for (var t in transforms) {\r\n                if (el.style[t] !== undefined) {\r\n                    el.style[t] = \"translate3d(1px,1px,1px)\";\r\n                    has3d = window.getComputedStyle(el).getPropertyValue(transforms[t]);\r\n                }\r\n            }\r\n\r\n            document.body.removeChild(el);\r\n\r\n            return (has3d !== undefined && has3d.length > 0 && has3d !== \"none\");\r\n        }\r\n\r\n        /**\r\n        * Wraps an element in order to center it vertically by using a class style.\r\n        */\r\n        function addTableClass(element){\r\n            element.addClass('ms-table').wrapInner('<div class=\"ms-tableCell\" style=\"height: ' + getTableHeight(element) + 'px\" />');\r\n        }\r\n\r\n        /**\r\n        * Gets the height of the section after removing the paddings.\r\n        */\r\n        function getTableHeight(section){\r\n            var sectionHeight = windowHeight;\r\n\r\n            if(options.paddingTop || options.paddingBottom){\r\n                var paddings = parseInt(section.css('padding-top')) + parseInt(section.css('padding-bottom'));\r\n                sectionHeight = (windowHeight - paddings);\r\n            }\r\n\r\n            return sectionHeight;\r\n        }\r\n\r\n\r\n        /**\r\n        * Scrolls the page to the existent anchor in the URL\r\n        */\r\n        function scrollToAnchor(){\r\n            //getting the anchor link in the URL and deleting the `#`\r\n            var sectionAnchor =  window.location.hash.replace('#', '');\r\n            var section = $('.ms-left .ms-section[data-anchor=\"'+sectionAnchor+'\"]');\r\n\r\n            if(sectionAnchor.length){  //if theres any #\r\n                scrollPage(section);\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the keyboard arrow keys\r\n        */\r\n        MS.setKeyboardScrolling = function (value){\r\n            options.keyboardScrolling = value;\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the mouse wheel or the trackpad.\r\n        */\r\n        MS.setMouseWheelScrolling = function (value){\r\n            if(value){\r\n                addMouseWheelHandler();\r\n            }else{\r\n                removeMouseWheelHandler();\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Defines the scrolling speed\r\n        */\r\n        MS.setScrollingSpeed = function(value){\r\n            options.scrollingSpeed = value;\r\n        };\r\n\r\n\r\n\r\n        var touchStartY = 0;\r\n        var touchStartX = 0;\r\n        var touchEndY = 0;\r\n        var touchEndX = 0;\r\n\r\n        /* Detecting touch events\r\n\r\n        * As we are changing the top property of the page on scrolling, we can not use the traditional way to detect it.\r\n        * This way, the touchstart and the touch moves shows an small difference between them which is the\r\n        * used one to determine the direction.\r\n        */\r\n        function touchMoveHandler(e){\r\n\r\n            if(isReallyTouch(e)){\r\n                //preventing the easing on iOS devices\r\n                event.preventDefault();\r\n\r\n                var activeSection = $('.ms-left .ms-section.active');\r\n\r\n                if (!isMoving) { //if theres any #\r\n                    var touchEvents = getEventsPage(e);\r\n                    touchEndY = touchEvents['y'];\r\n                    touchEndX = touchEvents['x'];\r\n\r\n\r\n                    //is the movement greater than the minimum resistance to scroll?\r\n                    if (Math.abs(touchStartY - touchEndY) > ($(window).height() / 100 * options.touchSensitivity)) {\r\n\r\n                        if (touchStartY > touchEndY) {\r\n                            MS.moveSectionDown();\r\n\r\n                        } else if (touchEndY > touchStartY) {\r\n                            MS.moveSectionUp();\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n        * As IE >= 10 fires both touch and mouse events when using a mouse in a touchscreen\r\n        * this way we make sure that is really a touch event what IE is detecting.\r\n        */\r\n        function isReallyTouch(e){\r\n            //if is not IE   ||  IE is detecting `touch` or `pen`\r\n            return typeof e.pointerType === 'undefined' || e.pointerType != 'mouse';\r\n        }\r\n\r\n\r\n        /**\r\n        * Handler to get he coordinates of the starting touch\r\n        */\r\n        function touchStartHandler(e){\r\n\r\n            if(isReallyTouch(e)){\r\n                var touchEvents = getEventsPage(e);\r\n                touchStartY = touchEvents['y'];\r\n                touchStartX = touchEvents['x'];\r\n            }\r\n        }\r\n\r\n\r\n        /**\r\n        * Adds the possibility to auto scroll through sections on touch devices.\r\n        */\r\n        function addTouchHandler(){\r\n            if(isTouch || isTouchDevice){\r\n                document.removeEventListener(events.touchstart, touchStartHandler);\r\n                document.removeEventListener(events.touchmove, touchMoveHandler, {passive: false});\r\n\r\n                document.addEventListener(events.touchstart, touchStartHandler);\r\n                document.addEventListener(events.touchmove, touchMoveHandler, {passive: false});\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Removes the auto scrolling for touch devices.\r\n        */\r\n        function removeTouchHandler(){\r\n            if(isTouch || isTouchDevice){\r\n                document.removeEventListener(events.touchstart, touchStartHandler);\r\n                document.removeEventListener(events.touchmove, touchMoveHandler, {passive: false});\r\n            }\r\n        }\r\n\r\n        /*\r\n        * Returns and object with Microsoft pointers (for IE<11 and for IE >= 11)\r\n        * http://msdn.microsoft.com/en-us/library/ie/dn304886(v=vs.85).aspx\r\n        */\r\n        function getMSPointer(){\r\n            var pointer;\r\n\r\n            //IE >= 11\r\n            if(window.PointerEvent){\r\n                pointer = { down: \"pointerdown\", move: \"pointermove\"};\r\n            }\r\n\r\n            //IE < 11\r\n            else{\r\n                pointer = { down: \"MSPointerDown\", move: \"MSPointerMove\"};\r\n            }\r\n\r\n            return pointer;\r\n        }\r\n\r\n        /**\r\n        * Gets the pageX and pageY properties depending on the browser.\r\n        * https://github.com/alvarotrigo/fullPage.js/issues/194#issuecomment-34069854\r\n        */\r\n        function getEventsPage(e){\r\n            var events = [];\r\n\r\n            events.y = (typeof e.pageY !== 'undefined' && (e.pageY || e.pageX) ? e.pageY : e.touches[0].pageY);\r\n            events.x = (typeof e.pageX !== 'undefined' && (e.pageY || e.pageX) ? e.pageX : e.touches[0].pageX);\r\n\r\n            //in touch devices with scrollBar:true, e.pageY is detected, but we have to deal with touch events. #1008\r\n            if(isTouch && isReallyTouch(e) && typeof e.touches !== 'undefined'){\r\n                events.y = e.touches[0].pageY;\r\n                events.x = e.touches[0].pageX;\r\n            }\r\n\r\n            return events;\r\n        }\r\n\r\n        /**\r\n        * Destroy multiscroll.js plugin's events\r\n        */\r\n        MS.destroy = function() {\r\n            MS.setKeyboardScrolling(false);\r\n            MS.setMouseWheelScrolling(false);\r\n            removeTouchHandler();\r\n\r\n            $(window)\r\n                .off('hashchange', hashChangeHandler)\r\n                .off('resize', resizeHandler);\r\n\r\n            $(document)\r\n                .off('mouseenter', '#multiscroll-nav li')\r\n                .off('mouseleave', '#multiscroll-nav li')\r\n                .off('click', '#multiscroll-nav a');\r\n        };\r\n\r\n        /**\r\n        * Build multiscroll.js plugin's events after destroy\r\n        */\r\n        MS.build = function() {\r\n            MS.setKeyboardScrolling(true);\r\n            MS.setMouseWheelScrolling(true);\r\n            addTouchHandler();\r\n\r\n            $(window)\r\n                .on('hashchange', hashChangeHandler)\r\n                .on('resize', resizeHandler);\r\n\r\n            $(document)\r\n                .on('mouseenter', '#multiscroll-nav li', navMouseEnterHandler)\r\n                .on('mouseleave', '#multiscroll-nav li', navMouseLeaveHandler)\r\n                .on('click', '#multiscroll-nav a', navClickHandler);\r\n        };\r\n\r\n    };\r\n})(jQuery, window, document, Math);\r\n"]}
\ No newline at end of file
diff --git a/example.html b/example.html
deleted file mode 100644
index ba02c3d..0000000
--- a/example.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
-
-<head>
-	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />	
-	<title>fullPage.js One Page Scroll Sites</title>
-	<meta name="author" content="Alvaro Trigo Lopez" />
-	<meta name="description" content="fullPage plugin by Alvaro Trigo. Create fullscreen pages fast and simple. One page scroll like iPhone website." />
-	<meta name="keywords"  content="fullpage,jquery,alvaro,trigo,plugin,fullscren,screen,full,iphone5,apple" />
-	<meta name="Resource-type" content="Document" />
-
-	
-	<link rel="stylesheet" type="text/css" href="jquery.multiscroll.css" />
-	<link rel="stylesheet" type="text/css" href="examples.css" />
-
-	<!--[if IE]>
-		<script type="text/javascript">
-			 var console = { log: function() {} };
-		</script>
-	<![endif]-->
-		
-	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
-	<script type="text/javascript" src="vendors/jquery.easings.min.js"></script>
-
-
-	<script type="text/javascript" src="jquery.multiscroll.js"></script>
-	<script type="text/javascript">
-	 $(document).ready(function() {
-            $('#myContainer').multiscroll({
-            	sectionsColor: ['#1bbc9b', '#4BBFC3', '#7BAABE'],
-            	anchors: ['firstSection', 'second', 'third'],
-            	menu: '#menu',
-            	navigation: true,
-            	navigationTooltips: ['uno', 'dos', 'tres'],
-            	normalScrollElements: '#demo',
-            	loopBottom: true,
-            	loopTop: true,
-            	onLeave: function(index, nextIndex, direction){
-            		console.log("onLeave==> index: " + index +" nextIndex: " + nextIndex + " direction: " + direction );
-            	},
-            	afterLoad: function(anchorLink, index){
-					console.log("afterLoad==> anchorLink: " + anchorLink +" index: " + index);
-            	},
-            	afterRender: function(){
-            		console.log("finish rendering");
-            	}
-            });
-
-            $('#pepe').click(function(){
-            	$.fn.multiscroll.moveTo('third');
-            });
-        });
-    </script>
-
-	<style>
-		#pepe{
-			position:fixed;
-			top: 100px;
-			left: 50px;
-			z-index: 99999;
-		}
-	</style>
-
-</head>
-<body>
-
-
-<div id="pepe">click</div>
-<ul id="menu">
-	<li data-menuanchor="firstSection"><a href="#firstSection">First slide</a></li>
-	<li data-menuanchor="second"><a href="#second">Second slide</a></li>
-	<li data-menuanchor="third"><a href="#third">Third slide</a></li>
-</ul>
-
-<div id="myContainer">
-
-	<div class="ms-left">
-		<div class="ms-section" id="left1">
-			Left 1
-		</div>
-
-		<div class="ms-section" id="left2">
-			Left 2 
-		</div>
-
-		<div class="ms-section" id="left3">
-			Left 3
-		</div>
-	</div>
-	
-	<div class="ms-right">
-		<div class="ms-section" id="right1">
-			Right 1
-		</div>
-
-		<div class="ms-section" id="right2">
-			Right 2
-		</div>
-
-		<div class="ms-section" id="right3">
-			Right 3
-		</div>
-	</div>	
-</div>
-
-</body>
-</html>
diff --git a/examples/css3 copia.html b/examples/css3 copia.html
new file mode 100644
index 0000000..724192c
--- /dev/null
+++ b/examples/css3 copia.html	
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />	
+	<title>multiscroll.js - split multi-scrolling pages plugin</title>
+	<meta name="author" content="Alvaro Trigo Lopez" />
+	<meta name="description" content="multiscroll plugin by Alvaro Trigo. Create divided multi-scrolling pages with two splited vertical layouts or panels." />
+	<meta name="keywords"  content="multiscroll,jquery,alvaro,trigo,plugin,divided,splitscreen,screen,panels,layouts,vertical,split,splited" />
+	<meta name="Resource-type" content="Document" />
+
+	
+	<link rel="stylesheet" type="text/css" href="../jquery.multiscroll.css" />		
+	<link rel="stylesheet" type="text/css" href="examples.css" />		
+	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
+	<script type="text/javascript" src="../vendors/jquery.easings.min.js"></script>
+	<script type="text/javascript" src="../jquery.multiscroll.js"></script>
+
+	<script type="text/javascript">
+	 $(document).ready(function() {
+            $('#myContainer').multiscroll({
+            	sectionsColor: ['#C63D0F', '#1BBC9B', '#7E8F7C'],
+            	anchors: ['first', 'second', 'third'],
+            	menu: '#menu',
+            	css3: true
+            });
+        });
+    </script>
+
+    <style>
+    h1{
+    	color: #fff;
+    }
+	</style>
+
+</head>
+<body>
+
+
+<ul id="menu">
+	<li data-menuanchor="first"><a href="#first">First slide</a></li>
+	<li data-menuanchor="second"><a href="#second">Second slide</a></li>
+	<li data-menuanchor="third"><a href="#third">Third slide</a></li>
+</ul>
+
+<div id="myContainer">
+
+	<div class="ms-left">
+		<div class="ms-section" id="left1">
+			<h1>Left 1</h1>
+		</div>
+
+		<div class="ms-section" id="left2">
+			<input type="text" name="demo" />
+		</div>
+
+		<div class="ms-section" id="left3">
+			<h1>Left 3</h1>
+		</div>
+	</div>
+	
+	<div class="ms-right">
+		<div class="ms-section" id="right1">
+			<h1>Right 1</h1>
+		</div>
+
+		<div class="ms-section" id="right2">
+			<h1>Right 2</h1>
+		</div>
+
+		<div class="ms-section" id="right3">
+			<h1>Right 3</h1>
+		</div>
+	</div>	
+</div>
+
+</body>
+</html>
diff --git a/examples/css3.html b/examples/css3.html
new file mode 100644
index 0000000..8d79222
--- /dev/null
+++ b/examples/css3.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<title>multiscroll.js - split multi-scrolling pages plugin</title>
+	<meta name="author" content="Alvaro Trigo Lopez" />
+	<meta name="description" content="multiscroll plugin by Alvaro Trigo. Create divided multi-scrolling pages with two splited vertical layouts or panels." />
+	<meta name="keywords"  content="multiscroll,jquery,alvaro,trigo,plugin,divided,splitscreen,screen,panels,layouts,vertical,split,splited" />
+	<meta name="Resource-type" content="Document" />
+
+
+	<link rel="stylesheet" type="text/css" href="../jquery.multiscroll.css" />
+	<link rel="stylesheet" type="text/css" href="examples.css" />
+	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
+	<script type="text/javascript" src="../vendors/jquery.easings.min.js"></script>
+	<script type="text/javascript" src="../jquery.multiscroll.js"></script>
+
+	<script type="text/javascript">
+	 $(document).ready(function() {
+            $('#myContainer').multiscroll({
+            	sectionsColor: ['#C63D0F', '#1BBC9B', '#7E8F7C'],
+            	anchors: ['first', 'second', 'third'],
+            	menu: '#menu',
+            	css3: true
+            });
+        });
+    </script>
+
+    <style>
+    h1{
+    	color: #fff;
+    }
+	</style>
+
+</head>
+<body>
+
+
+<ul id="menu">
+	<li data-menuanchor="first"><a href="#first">First slide</a></li>
+	<li data-menuanchor="second"><a href="#second">Second slide</a></li>
+	<li data-menuanchor="third"><a href="#third">Third slide</a></li>
+</ul>
+
+<div id="myContainer">
+
+	<div class="ms-left">
+		<div class="ms-section" id="left1">
+			<h1>Left 1</h1>
+		</div>
+
+		<div class="ms-section" id="left2">
+			<h1>Left 2 </h1>
+		</div>
+
+		<div class="ms-section" id="left3">
+			<h1>Left 3</h1>
+		</div>
+	</div>
+
+	<div class="ms-right">
+		<div class="ms-section" id="right1">
+			<h1>Right 1</h1>
+		</div>
+
+		<div class="ms-section" id="right2">
+			<h1>Right 2</h1>
+		</div>
+
+		<div class="ms-section" id="right3">
+			<h1>Right 3</h1>
+		</div>
+	</div>
+</div>
+
+</body>
+</html>
diff --git a/examples/easing.html b/examples/easing.html
new file mode 100644
index 0000000..f84ed21
--- /dev/null
+++ b/examples/easing.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />	
+	<title>multiscroll.js - split multi-scrolling pages plugin</title>
+	<meta name="author" content="Alvaro Trigo Lopez" />
+	<meta name="description" content="multiscroll plugin by Alvaro Trigo. Create divided multi-scrolling pages with two splited vertical layouts or panels." />
+	<meta name="keywords"  content="multiscroll,jquery,alvaro,trigo,plugin,divided,splitscreen,screen,panels,layouts,vertical,split,splited" />
+	<meta name="Resource-type" content="Document" />
+
+	
+	<link rel="stylesheet" type="text/css" href="../jquery.multiscroll.css" />		
+	<link rel="stylesheet" type="text/css" href="examples.css" />		
+	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
+	<script type="text/javascript" src="../vendors/jquery.easings.min.js"></script>
+	<script type="text/javascript" src="../jquery.multiscroll.js"></script>
+
+	<script type="text/javascript">
+	 $(document).ready(function() {
+            $('#myContainer').multiscroll({
+            	sectionsColor: ['#8FB98B', '#DE564B', '#EAE1C0'],
+            	anchors: ['first', 'second', 'third'],
+            	menu: '#menu',
+            	easing: 'easeOutBack'
+            });
+        });
+    </script>
+
+	<style>
+		.ms-section{
+			text-align: center;
+		}
+
+		#menu li {
+			display:inline-block;
+			margin: 10px;
+			color: #000;
+			background:#fff;
+			background: rgba(255,255,255, 0.3);
+			-webkit-border-radius: 10px; 
+		            border-radius: 10px; 
+		}
+		#menu li.active{
+			background:#666;
+			background: rgba(255,255,255, 1);
+			color: #000;
+		}
+		#menu li a{
+			text-decoration:none;
+			color: #000;
+		}
+		#menu li.active a:hover{
+			color: #000;
+		}
+		#menu li:hover{
+			background: rgba(255,255,255, 0.8);
+		}
+		#menu li a,
+		#menu li.active a{
+			padding: 9px 18px;
+			display:block;
+		}
+		#menu li.active a{
+			color: #000;
+		}
+		#menu{
+			position:fixed;
+			top:0;
+			left:0;
+			height: 40px;
+			z-index: 70;
+			width: 100%;
+			padding: 0;
+			margin:0;
+		}
+	</style>
+
+</head>
+<body>
+
+
+<ul id="menu">
+	<li data-menuanchor="first"><a href="#first">First section</a></li>
+	<li data-menuanchor="second"><a href="#second">Second section</a></li>
+	<li data-menuanchor="third"><a href="#third">Third section</a></li>
+</ul>
+
+<div id="myContainer">
+
+	<div class="ms-left">
+		<div class="ms-section" id="left1">
+			<h1>Left 1</h1>
+		</div>
+
+		<div class="ms-section" id="left2">
+			<h1>Left 2 </h1>
+		</div>
+
+		<div class="ms-section" id="left3">
+			<h1>Left 3</h1>
+		</div>
+	</div>
+	
+	<div class="ms-right">
+		<div class="ms-section" id="right1">
+			<h1>Right 1</h1>
+		</div>
+
+		<div class="ms-section" id="right2">
+			<h1>Right 2</h1>
+		</div>
+
+		<div class="ms-section" id="right3">
+			<h1>Right 3</h1>
+		</div>
+	</div>	
+</div>
+
+</body>
+</html>
diff --git a/examples/example.html b/examples/example.html
new file mode 100644
index 0000000..bb78bf0
--- /dev/null
+++ b/examples/example.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />	
+	<title>multiscroll.js - split multi-scrolling pages plugin</title>
+	<meta name="author" content="Alvaro Trigo Lopez" />
+	<meta name="description" content="multiscroll plugin by Alvaro Trigo. Create divided multi-scrolling pages with two splited vertical layouts or panels." />
+	<meta name="keywords"  content="multiscroll,jquery,alvaro,trigo,plugin,divided,splitscreen,screen,panels,layouts,vertical,split,splited" />
+	<meta name="Resource-type" content="Document" />
+
+	
+	<link rel="stylesheet" type="text/css" href="../jquery.multiscroll.css" />		
+	<link rel="stylesheet" type="text/css" href="examples.css" />		
+	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
+	<script type="text/javascript" src="../vendors/jquery.easings.min.js"></script>
+	<script type="text/javascript" src="../jquery.multiscroll.js"></script>
+
+	<script type="text/javascript">
+	 $(document).ready(function() {
+            $('#myContainer').multiscroll({
+            	sectionsColor: ['#1bbc9b', '#4BBFC3', '#7BAABE'],
+            	anchors: ['first', 'second', 'third'],
+            	menu: '#menu',
+            	navigation: true,
+            	navigationTooltips: ['One', 'Two', 'Three'],
+            	loopBottom: true,
+            	loopTop: true
+            });
+        });
+    </script>
+</head>
+<body>
+
+
+<ul id="menu">
+	<li data-menuanchor="first"><a href="#first">First slide</a></li>
+	<li data-menuanchor="second"><a href="#second">Second slide</a></li>
+	<li data-menuanchor="third"><a href="#third">Third slide</a></li>
+</ul>
+
+<div id="myContainer">
+
+	<div class="ms-left">
+		<div class="ms-section" id="left1">
+			<h1>Left 1</h1>
+		</div>
+
+		<div class="ms-section" id="left2">
+			<h1>Left 2 </h1>
+		</div>
+
+		<div class="ms-section" id="left3">
+			<h1>Left 3</h1>
+		</div>
+	</div>
+	
+	<div class="ms-right">
+		<div class="ms-section" id="right1">
+			<h1>Right 1</h1>
+		</div>
+
+		<div class="ms-section" id="right2">
+			<h1>Right 2</h1>
+		</div>
+
+		<div class="ms-section" id="right3">
+			<h1>Right 3</h1>
+		</div>
+	</div>	
+</div>
+
+</body>
+</html>
diff --git a/examples.css b/examples/examples.css
similarity index 54%
rename from examples.css
rename to examples/examples.css
index e9147e9..21b1fc1 100644
--- a/examples.css
+++ b/examples/examples.css
@@ -52,39 +52,29 @@ body{
 	color: #333;
 	color: rgba(0,0,0,0.5);
 }
-.wrap{
-	margin-left: auto;
-	margin-right: auto;
-	width: 960px;
-	position: relative;
-}
 h1{
 	font-size: 6em;	
 }
 p{
 	font-size: 2em;
 }
-.intro p{
-	width: 50%;
-	margin: 0 auto;
-	font-size: 1.5em;
-}
-.section{
-	text-align:center;
-}
+.ms-section{
+			text-align: center;
+		}
+
 #menu li {
 	display:inline-block;
 	margin: 10px;
 	color: #000;
 	background:#fff;
-	background: rgba(255,255,255, 0.5);
+	background: rgba(255,255,255, 0.3);
 	-webkit-border-radius: 10px; 
-            border-radius: 10px; 
+			border-radius: 10px; 
 }
 #menu li.active{
 	background:#666;
-	background: rgba(0,0,0, 0.5);
-	color: #fff;
+	background: rgba(255,255,255, 1);
+	color: #000;
 }
 #menu li a{
 	text-decoration:none;
@@ -102,7 +92,7 @@ p{
 	display:block;
 }
 #menu li.active a{
-	color: #fff;
+	color: #000;
 }
 #menu{
 	position:fixed;
@@ -114,54 +104,6 @@ p{
 	padding: 0;
 	margin:0;
 }
-.twitter-share-button{
-	position: fixed;
-	z-index: 99;
-	right: 149px;
-	top: 9px;
-}
-#download{
-	margin: 10px 0 0 0;
-	padding: 15px 10px;
-	color: #fff;
-	text-shadow: 0 -1px 0 rgba(0,0,0,0.25);
-	background-color: #49afcd;
-	background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
-	background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4);
-	background-image: -webkit-gradient(linear,0 0,0 100%,from( #5bc0de),to( #2f96b4));
-	background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);
-	background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);
-	background-image: linear-gradient(top, #5bc0de, #2f96b4);
-	background-repeat: repeat-x;
-	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);
-	border-color: #2f96b4 #2f96b4 #1f6377;
-	border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);
-	filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
-	
-	-webkit-border-radius: 6px;
-	-moz-border-radius: 6px;
-	border-radius: 6px;
-	vertical-align: middle;
-	cursor: pointer;
-	display: inline-block;
-	-webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);
-	-moz-box-shadow: inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);
-	box-shadow: inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);
-}
-#download a{
-	text-decoration:none;
-	color:#fff;
-}
-#download:hover{
-	text-shadow: 0 -1px 0 rgba(0,0,0,.25);
-	background-color: #2F96B4;
-	background-position: 0 -15px;
-	-webkit-transition: background-position .1s linear;
-	-moz-transition: background-position .1s linear;
-	-ms-transition: background-position .1s linear;
-	-o-transition: background-position .1s linear;
-	transition: background-position .1s linear;
-}
 #infoMenu{
 	height: 20px;
 	color: #f2f2f2;
@@ -231,8 +173,6 @@ p{
 	padding: 0 0 5px 0;
 }
 
-
-
 /* Demos Menu
  * --------------------------------------- */
  #demosMenu{
diff --git a/examples/fixedHeaders.html b/examples/fixedHeaders.html
new file mode 100644
index 0000000..cf846e1
--- /dev/null
+++ b/examples/fixedHeaders.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />	
+	<title>multiscroll.js - split multi-scrolling pages plugin</title>
+	<meta name="author" content="Alvaro Trigo Lopez" />
+	<meta name="description" content="multiscroll plugin by Alvaro Trigo. Create divided multi-scrolling pages with two splited vertical layouts or panels." />
+	<meta name="keywords"  content="multiscroll,jquery,alvaro,trigo,plugin,divided,splitscreen,screen,panels,layouts,vertical,split,splited" />
+	<meta name="Resource-type" content="Document" />
+
+	
+	<link rel="stylesheet" type="text/css" href="../jquery.multiscroll.css" />		
+	<link rel="stylesheet" type="text/css" href="examples.css" />		
+	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
+	<script type="text/javascript" src="../vendors/jquery.easings.min.js"></script>
+	<script type="text/javascript" src="../jquery.multiscroll.js"></script>
+
+	<script type="text/javascript">
+	 $(document).ready(function() {
+            $('#myContainer').multiscroll({
+            	sectionsColor: ['#C63D0F', '#1BBC9B', '#7E8F7C'],
+            	anchors: ['first', 'second', 'third'],
+            	menu: '#menu',
+            	css3: true,
+            	paddingTop: '70px',
+            	paddingBottom: '70px'
+            });
+        });
+    </script>
+
+
+    <style>
+    h1{
+    	color: #fff;
+    }
+    
+	/* Fixed header and footer.
+	* --------------------------------------- */
+	#header, #footer{
+		position:fixed;
+		height: 50px;
+		display:block;
+		width: 100%;
+		background: #333;
+		z-index:9;
+		text-align:center;
+		color: #f2f2f2;
+		padding: 20px 0 0 0;
+	}
+	
+	#header{
+		top:0px;
+	}
+	#footer{
+		bottom:0px;
+	}
+
+	</style>
+</head>
+<body>
+
+
+<div id="header">Header</div>
+<div id="footer">Footer</div>
+
+
+<ul id="menu">
+	<li data-menuanchor="first"><a href="#first">First slide</a></li>
+	<li data-menuanchor="second"><a href="#second">Second slide</a></li>
+	<li data-menuanchor="third"><a href="#third">Third slide</a></li>
+</ul>
+
+<div id="myContainer">
+
+	<div class="ms-left">
+		<div class="ms-section" id="left1">
+			<h1>Left 1</h1>
+		</div>
+
+		<div class="ms-section" id="left2">
+			<h1>Left 2 </h1>
+		</div>
+
+		<div class="ms-section" id="left3">
+			<h1>Left 3</h1>
+		</div>
+	</div>
+	
+	<div class="ms-right">
+		<div class="ms-section" id="right1">
+			<h1>Right 1</h1>
+		</div>
+
+		<div class="ms-section" id="right2">
+			<h1>Right 2</h1>
+		</div>
+
+		<div class="ms-section" id="right3">
+			<h1>Right 3</h1>
+		</div>
+	</div>	
+</div>
+
+</body>
+</html>
diff --git a/examples/looping.html b/examples/looping.html
new file mode 100644
index 0000000..4dab9bb
--- /dev/null
+++ b/examples/looping.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />	
+	<title>multiscroll.js - split multi-scrolling pages plugin</title>
+	<meta name="author" content="Alvaro Trigo Lopez" />
+	<meta name="description" content="multiscroll plugin by Alvaro Trigo. Create divided multi-scrolling pages with two splited vertical layouts or panels." />
+	<meta name="keywords"  content="multiscroll,jquery,alvaro,trigo,plugin,divided,splitscreen,screen,panels,layouts,vertical,split,splited" />
+	<meta name="Resource-type" content="Document" />
+
+	
+	<link rel="stylesheet" type="text/css" href="../jquery.multiscroll.css" />		
+	<link rel="stylesheet" type="text/css" href="examples.css" />		
+	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
+	<script type="text/javascript" src="../vendors/jquery.easings.min.js"></script>
+	<script type="text/javascript" src="../jquery.multiscroll.js"></script>
+
+	<script type="text/javascript">
+	 $(document).ready(function() {
+            $('#myContainer').multiscroll({
+            	sectionsColor: ['#1bbc9b', '#4BBFC3', '#7BAABE'],
+            	anchors: ['first', 'second', 'third'],
+            	menu: '#menu',
+            	loopTop: true,
+            	loopBottom: true
+            });
+        });
+    </script>
+</head>
+<body>
+
+<ul id="menu">
+	<li data-menuanchor="first"><a href="#first">First slide</a></li>
+	<li data-menuanchor="second"><a href="#second">Second slide</a></li>
+	<li data-menuanchor="third"><a href="#third">Third slide</a></li>
+</ul>
+
+<div id="myContainer">
+
+	<div class="ms-left">
+		<div class="ms-section" id="left1">
+			<h1>Left 1</h1>
+		</div>
+
+		<div class="ms-section" id="left2">
+			<h1>Left 2 </h1>
+		</div>
+
+		<div class="ms-section" id="left3">
+			<h1>Left 3</h1>
+		</div>
+	</div>
+	
+	<div class="ms-right">
+		<div class="ms-section" id="right1">
+			<h1>Right 1</h1>
+		</div>
+
+		<div class="ms-section" id="right2">
+			<h1>Right 2</h1>
+		</div>
+
+		<div class="ms-section" id="right3">
+			<h1>Right 3</h1>
+		</div>
+	</div>	
+</div>
+
+</body>
+</html>
diff --git a/examples/noAnchor.html b/examples/noAnchor.html
new file mode 100644
index 0000000..6744254
--- /dev/null
+++ b/examples/noAnchor.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />	
+	<title>multiscroll.js - split multi-scrolling pages plugin</title>
+	<meta name="author" content="Alvaro Trigo Lopez" />
+	<meta name="description" content="multiscroll plugin by Alvaro Trigo. Create divided multi-scrolling pages with two splited vertical layouts or panels." />
+	<meta name="keywords"  content="multiscroll,jquery,alvaro,trigo,plugin,divided,splitscreen,screen,panels,layouts,vertical,split,splited" />
+	<meta name="Resource-type" content="Document" />
+
+	
+	<link rel="stylesheet" type="text/css" href="../jquery.multiscroll.css" />		
+	<link rel="stylesheet" type="text/css" href="examples.css" />		
+	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
+	<script type="text/javascript" src="../vendors/jquery.easings.min.js"></script>
+	<script type="text/javascript" src="../jquery.multiscroll.js"></script>
+
+	<script type="text/javascript">
+	 $(document).ready(function() {
+            $('#myContainer').multiscroll({
+            	sectionsColor: ['#1bbc9b', '#4BBFC3', '#7BAABE'],
+            });
+        });
+    </script>
+</head>
+<body>
+
+<div id="myContainer">
+
+	<div class="ms-left">
+		<div class="ms-section" id="left1">
+			<h1>Left 1</h1>
+		</div>
+
+		<div class="ms-section" id="left2">
+			<h1>Left 2 </h1>
+		</div>
+
+		<div class="ms-section" id="left3">
+			<h1>Left 3</h1>
+		</div>
+	</div>
+	
+	<div class="ms-right">
+		<div class="ms-section" id="right1">
+			<h1>Right 1</h1>
+		</div>
+
+		<div class="ms-section" id="right2">
+			<h1>Right 2</h1>
+		</div>
+
+		<div class="ms-section" id="right3">
+			<h1>Right 3</h1>
+		</div>
+	</div>	
+</div>
+
+</body>
+</html>
diff --git a/examples/responsiveExpand.html b/examples/responsiveExpand.html
new file mode 100644
index 0000000..259f60e
--- /dev/null
+++ b/examples/responsiveExpand.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>Responsive Expand - multiScroll.js</title>
+    <meta name="author" content="Alvaro Trigo Lopez" />
+    <meta name="description" content="multiScroll.js responsive expand example." />
+    <meta name="keywords"  content="multiscroll.js, multiscroll, responsive, expand, example" />
+    <meta name="Resource-type" content="Document" />
+    <meta http-equiv="refresh" content="0; url=http://alvarotrigo.com/multiScroll/extensions/responsive-expand.html" />
+</head>
+<body>
+
+Redirecting...
+
+</body>
+</html>
\ No newline at end of file
diff --git a/examples/scrollable.html b/examples/scrollable.html
new file mode 100644
index 0000000..1fcc2a1
--- /dev/null
+++ b/examples/scrollable.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>multiscroll.js - split multi-scrolling pages plugin</title>
+    <meta name="author" content="Alvaro Trigo Lopez" />
+    <meta name="description" content="multiscroll plugin by Alvaro Trigo. Create divided multi-scrolling pages with two splited vertical layouts or panels." />
+    <meta name="keywords"  content="multiscroll,jquery,alvaro,trigo,plugin,divided,splitscreen,screen,panels,layouts,vertical,split,splited" />
+    <meta name="Resource-type" content="Document" />
+
+
+    <link rel="stylesheet" type="text/css" href="../jquery.multiscroll.css" />
+    <link rel="stylesheet" type="text/css" href="examples.css" />
+    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
+    <script type="text/javascript" src="../vendors/jquery.easings.min.js"></script>
+    <script type="text/javascript" src="../jquery.multiscroll.js"></script>
+
+    <script type="text/javascript">
+     $(document).ready(function() {
+            $('#myContainer').multiscroll({
+                sectionsColor: ['#1bbc9b', '#4BBFC3', '#7BAABE'],
+                anchors: ['first', 'second', 'third'],
+                menu: '#menu',
+                navigation: true,
+                navigationTooltips: ['One', 'Two', 'Three'],
+                loopBottom: true,
+                loopTop: true
+            });
+        });
+    </script>
+</head>
+<body>
+
+
+<ul id="menu">
+    <li data-menuanchor="first"><a href="#first">First slide</a></li>
+    <li data-menuanchor="second"><a href="#second">Second slide</a></li>
+    <li data-menuanchor="third"><a href="#third">Third slide</a></li>
+</ul>
+
+<div id="myContainer">
+
+    <div class="ms-left">
+        <div class="ms-section" id="left1">
+            <h1>Left 1</h1>
+        </div>
+
+        <div class="ms-section" id="left2">
+            <h1>Left 2 </h1>
+        </div>
+
+        <div class="ms-section" id="left3">
+            <h1>Left 3</h1>
+        </div>
+    </div>
+
+    <div class="ms-right">
+        <div class="ms-section" id="right1">
+            <h1>Right 1</h1>
+        </div>
+
+        <div class="ms-section" id="right2">
+            <h1>Right 2</h1>
+        </div>
+
+        <div class="ms-section" id="right3">
+            <h1>Right 3</h1>
+        </div>
+    </div>
+</div>
+
+</body>
+</html>
diff --git a/examples/scrollingSpeed.html b/examples/scrollingSpeed.html
new file mode 100644
index 0000000..7d3057d
--- /dev/null
+++ b/examples/scrollingSpeed.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />	
+	<title>multiscroll.js - split multi-scrolling pages plugin</title>
+	<meta name="author" content="Alvaro Trigo Lopez" />
+	<meta name="description" content="multiscroll plugin by Alvaro Trigo. Create divided multi-scrolling pages with two splited vertical layouts or panels." />
+	<meta name="keywords"  content="multiscroll,jquery,alvaro,trigo,plugin,divided,splitscreen,screen,panels,layouts,vertical,split,splited" />
+	<meta name="Resource-type" content="Document" />
+
+	
+	<link rel="stylesheet" type="text/css" href="../jquery.multiscroll.css" />		
+	<link rel="stylesheet" type="text/css" href="examples.css" />		
+	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
+	<script type="text/javascript" src="../vendors/jquery.easings.min.js"></script>
+	<script type="text/javascript" src="../jquery.multiscroll.js"></script>
+
+	<script type="text/javascript">
+	 $(document).ready(function() {
+            $('#myContainer').multiscroll({
+            	sectionsColor: ['#C63D0F', '#1BBC9B', '#7E8F7C'],
+            	anchors: ['first', 'second', 'third'],
+            	menu: '#menu',
+            	scrollingSpeed: 1700
+            });
+        });
+    </script>
+
+    <style>
+    h1{
+    	color: #fff;
+    }
+    </style>
+</head>
+<body>
+
+<ul id="menu">
+	<li data-menuanchor="first"><a href="#first">First slide</a></li>
+	<li data-menuanchor="second"><a href="#second">Second slide</a></li>
+	<li data-menuanchor="third"><a href="#third">Third slide</a></li>
+</ul>
+
+<div id="myContainer">
+
+	<div class="ms-left">
+		<div class="ms-section" id="left1">
+			<h1>Left 1</h1>
+		</div>
+
+		<div class="ms-section" id="left2">
+			<h1>Left 2 </h1>
+		</div>
+
+		<div class="ms-section" id="left3">
+			<h1>Left 3</h1>
+		</div>
+	</div>
+	
+	<div class="ms-right">
+		<div class="ms-section" id="right1">
+			<h1>Right 1</h1>
+		</div>
+
+		<div class="ms-section" id="right2">
+			<h1>Right 2</h1>
+		</div>
+
+		<div class="ms-section" id="right3">
+			<h1>Right 3</h1>
+		</div>
+	</div>	
+</div>
+
+</body>
+</html>
diff --git a/examples/selectors.html b/examples/selectors.html
new file mode 100644
index 0000000..fc05128
--- /dev/null
+++ b/examples/selectors.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />	
+	<title>multiscroll.js - split multi-scrolling pages plugin</title>
+	<meta name="author" content="Alvaro Trigo Lopez" />
+	<meta name="description" content="multiscroll plugin by Alvaro Trigo. Create divided multi-scrolling pages with two splited vertical layouts or panels." />
+	<meta name="keywords"  content="multiscroll,jquery,alvaro,trigo,plugin,divided,splitscreen,screen,panels,layouts,vertical,split,splited" />
+	<meta name="Resource-type" content="Document" />
+
+	
+	<link rel="stylesheet" type="text/css" href="../jquery.multiscroll.css" />		
+	<link rel="stylesheet" type="text/css" href="examples.css" />		
+	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
+	<script type="text/javascript" src="../vendors/jquery.easings.min.js"></script>
+	<script type="text/javascript" src="../jquery.multiscroll.js"></script>
+
+	<script type="text/javascript">
+		$(document).ready(function() {
+			$('#myContainer').multiscroll({
+				sectionsColor: ['#1bbc9b', '#4BBFC3', '#7BAABE'],
+				anchors: ['first', 'second', 'third'],
+				menu: '#menu',
+				navigation: true,
+				navigationTooltips: ['One', 'Two', 'Three'],
+				loopBottom: true,
+				loopTop: true,
+				sectionSelector: '.section',
+				leftSelector: '.left',
+				rightSelector: '.right',
+			});
+		});
+	</script>
+</head>
+<body>
+
+
+<ul id="menu">
+	<li data-menuanchor="first"><a href="#first">First slide</a></li>
+	<li data-menuanchor="second"><a href="#second">Second slide</a></li>
+	<li data-menuanchor="third"><a href="#third">Third slide</a></li>
+</ul>
+
+<div id="myContainer">
+
+	<div class="left">
+		<div class="section" id="left1">
+			<h1>Left 1</h1>
+		</div>
+
+		<div class="section" id="left2">
+			<h1>Left 2 </h1>
+		</div>
+
+		<div class="section" id="left3">
+			<h1>Left 3</h1>
+		</div>
+	</div>
+	
+	<div class="right">
+		<div class="section" id="right1">
+			<h1>Right 1</h1>
+		</div>
+
+		<div class="section" id="right2">
+			<h1>Right 2</h1>
+		</div>
+
+		<div class="section" id="right3">
+			<h1>Right 3</h1>
+		</div>
+	</div>	
+</div>
+
+</body>
+</html>
diff --git a/gulpfile.js b/gulpfile.js
new file mode 100644
index 0000000..12fa347
--- /dev/null
+++ b/gulpfile.js
@@ -0,0 +1,35 @@
+var gulp = require('gulp');
+var rename = require('gulp-rename');
+var sourcemaps = require('gulp-sourcemaps');
+var uglify = require('gulp-uglify');
+var minifyCss = require('gulp-clean-css');
+
+gulp.task('css', function() {
+    gulp.src('./jquery.multiscroll.css')
+        .pipe(sourcemaps.init())
+        .pipe(gulp.dest('./dist'))
+        .pipe(minifyCss({
+            compatibility: 'ie8',
+            advanced: false,
+            keepSpecialComments: '1'
+        }))
+        .pipe(rename({suffix: '.min'}))
+        .pipe(sourcemaps.write('.'))
+        .pipe(gulp.dest('./dist'));
+});
+
+gulp.task('js', function() {
+    gulp.src('./jquery.multiscroll.js')
+        .pipe(sourcemaps.init())
+        .pipe(gulp.dest('./dist'))
+        .pipe(uglify({
+            output: {
+                comments: 'some'
+            }
+        }))
+        .pipe(rename({suffix: '.min'}))
+        .pipe(sourcemaps.write('.'))
+        .pipe(gulp.dest('./dist'));
+});
+
+gulp.task('default', ['css', 'js']);
diff --git a/jquery.multiscroll.css b/jquery.multiscroll.css
index 04c1858..dc946cc 100644
--- a/jquery.multiscroll.css
+++ b/jquery.multiscroll.css
@@ -1,15 +1,15 @@
-/**
- * multiscroll 1.6.7
+/*!
+ * multiscroll.js 0.2.2
  * https://github.com/alvarotrigo/multiscroll.js
- * MIT licensed
+ * @license MIT licensed
  *
- * Copyright (C) 2013 alvarotrigo.com - A project by Alvaro Trigo
+ * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo
  */
 html, body {
     margin: 0;
     padding: 0;
-	overflow:hidden;
-	-webkit-tap-highlight-color: rgba(0,0,0,0);
+    overflow:hidden;
+    -webkit-tap-highlight-color: rgba(0,0,0,0);
 }
 .ms-section {
     position: relative;
@@ -27,29 +27,6 @@ html, body {
     width: 100%;
     height: 100%;
 }
-.controlArrow {
-    position: absolute;
-    top: 50%;
-    cursor: pointer;
-    width: 0;
-    height: 0;
-    border-style: solid;
-    margin-top: -38px;
-}
-.controlArrow.prev {
-    left: 15px;
-    width: 0;
-    border-width: 38.5px 34px 38.5px 0;
-    border-color: transparent #fff transparent transparent;
-}
-.controlArrow.next {
-    right: 15px;
-    border-width: 38.5px 0 38.5px 34px;
-    border-color: transparent transparent transparent #fff;
-}
-.scrollable {
-    overflow: scroll;
-}
 .ms-easing {
     -webkit-transition: all 0.7s ease-out;
     -moz-transition: all 0.7s ease-out;
@@ -69,36 +46,18 @@ html, body {
 #multiscroll-nav.left {
     left: 17px;
 }
-.multiscroll-slidesNav {
-    position: absolute;
-    z-index: 4;
-    left: 50%;
-    opacity: 1;
-}
-.multiscroll-slidesNav.bottom {
-    bottom: 17px;
-}
-.multiscroll-slidesNav.top {
-    top: 17px;
-}
-#multiscroll-nav ul,
-.multiscroll-slidesNav ul {
+#multiscroll-nav ul{
   margin: 0;
   padding: 0;
 }
-#multiscroll-nav li,
-.multiscroll-slidesNav li {
+#multiscroll-nav li{
     display: block;
     width: 14px;
     height: 13px;
     margin: 7px;
     position:relative;
 }
-.multiscroll-slidesNav li {
-    display: inline-block;
-}
-#multiscroll-nav li a,
-.multiscroll-slidesNav li a {
+#multiscroll-nav li a{
     display: block;
     position: relative;
     z-index: 1;
@@ -107,12 +66,10 @@ html, body {
     cursor: pointer;
     text-decoration: none;
 }
-#multiscroll-nav li .active span,
-.multiscroll-slidesNav .active span {
+#multiscroll-nav li .active span{
     background: #333;
 }
-#multiscroll-nav span,
-.multiscroll-slidesNav span {
+#multiscroll-nav span{
     top: 2px;
     left: 2px;
     width: 8px;
@@ -131,6 +88,8 @@ html, body {
     font-size: 14px;
     font-family: arial, helvetica, sans-serif;
     top: -2px;
+    white-space: nowrap;
+    max-width: 220px;
 }
 .multiscroll-tooltip.right {
     right: 20px;
@@ -138,3 +97,16 @@ html, body {
 .multiscroll-tooltip.left {
     left: 20px;
 }
+.ms-responsive .ms-hide{
+    display: none;
+}
+.ms-scrollable {
+    overflow: hidden;
+    position: relative;
+}
+.ms-scroller{
+    overflow: hidden;
+}
+.iScrollIndicator{
+    border: 0 !important;
+}
diff --git a/jquery.multiscroll.js b/jquery.multiscroll.js
index c388099..4135ae6 100644
--- a/jquery.multiscroll.js
+++ b/jquery.multiscroll.js
@@ -1,635 +1,913 @@
-/**
- * multiscroll.js 0.0.4 Beta
+/*!
+ * multiscroll.js 0.2.2
  * https://github.com/alvarotrigo/multiscroll.js
- * MIT licensed
+ * @license MIT licensed
  *
- * Copyright (C) 2013 alvarotrigo.com - A project by Alvaro Trigo
+ * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo
  */
-
-(function($) {
-	$.fn.multiscroll = function(options) {
-		// Create some defaults, extending them with any options that were provided
-		options = $.extend({
-			'verticalCentered' : true,
-			'scrollingSpeed': 700,
-			'easing': 'easeInQuart',
-			'menu': true,
-			'sectionsColor': [],
-			'anchors':[],
-			'navigation': false,
-			'navigationPosition': 'right',
-			'navigationColor': '#000',
-			'navigationTooltips': [],
-			'loopBottom': false,
-			'loopTop': false,
-			'css3': false,
-			'paddingTop': 0,
-			'paddingBottom': 0,
-			'normalScrollElements': null, 
-			'keyboardScrolling': true,
-			'touchSensitivity': 5,
-
-			//events
-			'afterLoad': null,
-			'onLeave': null,
-			'afterRender': null,
-			'afterResize': null
-		}, options);		
-		
-
-		//Defines the delay to take place before being able to scroll to the next section
-		//BE CAREFUL! Not recommened to change it under 400 for a good behavior in laptops and 
-		//Apple devices (laptops, mouses...)
-		var scrollDelay = 600;
-
-		var numberSections = $('.ms-left').find('.ms-section').length;
-		var isMoving = false;
-		var nav;
-		var windowHeight = $(window).height();
-
-
-		addMouseWheelHandler();
-		addTouchHandler();
-
-		//if css3 is not supported, it will use jQuery animations
-		if(options.css3){
-			options.css3 = support3d();
-		}
-
-		$('html, body').css({
-			'overflow' : 'hidden',
-			'height' : '100%'
-		});
-
-		//creating the navigation dots 
-		if (options.navigation) {
-			$('body').append('<div id="multiscroll-nav"><ul></ul></div>');
-			nav = $('#multiscroll-nav');
-
-			nav.css('color', options.navigationColor);
-			nav.addClass(options.navigationPosition);
-		}
-		
-		$('.ms-right, .ms-left').css({
-			'width': '50%',
-			'position': 'absolute',
-			'height': '100%'
-		});
-
-		$('.ms-right').css({
-			'right': '0',
-			'top': '0' 
-		});
-
-		$('.ms-left').css({
-			'left': '0',
-			'top': '0' 
-		});
-
-
-		$('.ms-left .ms-section, .ms-right .ms-section').each(function(){
-			var sectionIndex = $(this).index();
-
-			if (typeof options.sectionsColor[sectionIndex] !==  'undefined') {
-				$(this).css('background-color', options.sectionsColor[sectionIndex]);
-			}
-
-			if (typeof options.anchors[sectionIndex] !== 'undefined') {
-				$(this).attr('data-anchor', options.anchors[sectionIndex]);
-			}	
-
-			if(options.verticalCentered){
-				addTableClass($(this));
-			}
-
-			//only for the left panel
-			if($(this).closest('.ms-left').length && options.navigation) {
-				var link = '';
-				if(options.anchors.length){
-					link = options.anchors[sectionIndex];
-				}
-				var tooltip = options.navigationTooltips[sectionIndex];
-				if(typeof tooltip === 'undefined'){
-					tooltip = '';
-				}
-				if (options.navigation) {
-					nav.find('ul').append('<li data-tooltip="' + tooltip + '"><a href="#' + link + '"><span></span></a></li>');
-				}
-			}
-		});
-
-		//inverting the right panel
-		$('.ms-right').html( $('.ms-right').find('.ms-section').get().reverse());
-
-		$('.ms-left .ms-section, .ms-right .ms-section').each(function(){
-			var sectionIndex = $(this).index();
-			fromTop = sectionIndex  * 100;
-
-			$(this).css({
-				'height': '100%',
-				'display': 'block'
-			});
-	
-			if(!sectionIndex && options.navigation ){
-				//activating the navigation bullet
-				nav.find('li').eq(sectionIndex).find('a').addClass('active');
-			}
-		}).promise().done(function(){	
-			 $('.ms-right').find('.ms-section').last().addClass('active');
-			 $('.ms-left').find('.ms-section').first().addClass('active');
-
-			$.isFunction( options.afterRender ) && options.afterRender.call( this);
-		});
-
-
-		positionRightPanel();
-
-		
-		
-		//detecting any change on the URL to scroll to the given anchor link
-		//(a way to detect back history button as we play with the hashes on the URL)
-		$(window).on('hashchange',function(){
-			var value =  window.location.hash.replace('#', '');
-			var sectionAnchor = value;
-
-			if(isNaN(sectionAnchor)){
-				var section = $('.ms-left').find('[data-anchor="'+sectionAnchor+'"]');
-			}else{
-				var section = $('.ms-left .ms-section').eq( (destiny -1) );
-			} 
-			
-			var isFirstScrollMove = (typeof lastScrolledDestiny === 'undefined' );
-
-			if (isFirstScrollMove || sectionAnchor !== lastScrolledDestiny){
-				scrollPage(section);
-			}
-		});
-		
-
-		/**
-		 * Sliding with arrow keys, both, vertical and horizontal
-		 */
-		$(document).keydown(function(e) {
-			//Moving the main page with the keyboard arrows if keyboard scrolling is enabled
-			if (options.keyboardScrolling && !isMoving) {
-				switch (e.which) {
-					//up
-					case 38:
-					case 33:
-						$.fn.multiscroll.moveSectionUp();
-						break;
-
-					//down
-					case 40:
-					case 34:
-						$.fn.multiscroll.moveSectionDown();
-						break;
-			
-					default:
-						return; // exit this handler for other keys
-				}
-			}
-		});
-
-		//navigation action 
-		$(document).on('click', '#multiscroll-nav a', function(e){
-			e.preventDefault();
-			var index = $(this).parent().index();
-			scrollPage($('.ms-left .ms-section').eq(index));
-		});
-		
-		//navigation tooltips 
-		$(document).on({
-			mouseenter: function(){
-				var tooltip = $(this).data('tooltip');
-				$('<div class="multiscroll-tooltip ' + options.navigationPosition +'">' + tooltip + '</div>').hide().appendTo($(this)).fadeIn(200);
-			},
-			mouseleave: function(){
-				$(this).find('.multiscroll-tooltip').fadeOut().remove();
-			}
-		}, '#multiscroll-nav li');
-
-
-		if(options.normalScrollElements){
-			$(document).on('mouseover', options.normalScrollElements, function () {
-				$.fn.multiscroll.setMouseWheelScrolling(false);
-			});
-			
-			$(document).on('mouseout', options.normalScrollElements, function(){
-				$.fn.multiscroll.setMouseWheelScrolling(true);
-			});
-		}
-
-
-		//when resizing the site, we adjust the heights of the sections
-		$(window).resize(function() {
-			doneResizing();
-		});
-
-		/**
-		 * When resizing is finished, we adjust the slides sizes and positions
-		 */
-		function doneResizing() {
-			windowHeight = $(window).height();
-
-			positionRightPanel();
-			$.isFunction( options.afterResize ) && options.afterResize.call( this);
-		}
-
-		function positionRightPanel(){
-			//moving the right section to the bottom
-			if(options.css3){
-				transformContainer($('.ms-left'), 'translate3d(0px, -' + $('.ms-left').find('.ms-section.active').position().top + 'px, 0px)', false);
-				transformContainer($('.ms-right'), 'translate3d(0px, -' + $('.ms-right').find('.ms-section.active').position().top + 'px, 0px)', false);
-			}else{
-				$('.ms-left').css('top', -$('.ms-left').find('.ms-section.active').position().top );
-				$('.ms-right').css('top', -$('.ms-right').find('.ms-section.active').position().top );
-			}
-		}
-
-		$.fn.multiscroll.moveSectionUp = function(){
-			var prev = $('.ms-left .ms-section.active').prev('.ms-section');
-
-			if(!prev.length && options.loopTop){
-				prev = $('.ms-left .ms-section').last();
-			}
-
-			if (prev.length) {
-				scrollPage(prev);
-			}
-		};
-
-		$.fn.multiscroll.moveSectionDown = function (){
-			var next = $('.ms-left .ms-section.active').next('.ms-section');
-
-			if(!next.length && options.loopBottom ){
-				next = $('.ms-left .ms-section').first();
-			}
-
-			if(next.length){
-				scrollPage(next);
-			}
-		};
-
-		$.fn.multiscroll.moveTo = function (section){
-			var destiny = '';
-			
-			if(isNaN(section)){
-				destiny = $('.ms-left [data-anchor="'+section+'"]');
-			}else{
-				destiny = $('.section').eq( (section -1) );
-			}
-			
-			scrollPage(destiny);
-		};
-
-		function scrollPage(leftDestination){
-			var leftDestinationIndex = leftDestination.index();
-			var rightDestination = $('.ms-right').find('.ms-section').eq( numberSections -1 - leftDestinationIndex);
-			var rightDestinationIndex = numberSections - 1 - leftDestinationIndex;
-			var anchorLink  = leftDestination.data('anchor');
-			var activeSection = $('.ms-left .ms-section.active');
-			var leavingSection = activeSection.index() + 1;
-			var yMovement = getYmovement(leftDestination);
-
-			//preventing from activating the MouseWheelHandler event
-			//more than once if the page is scrolling
-			isMoving = true;
-
-			setURLHash(anchorLink);
-
-			var topPos = {
-				'left' : leftDestination.position().top,
-				'right': rightDestination.position().top
-			};
-
-			rightDestination.addClass('active').siblings().removeClass('active');
-			leftDestination.addClass('active').siblings().removeClass('active');
-
-			// Use CSS3 translate functionality or...
-			if (options.css3){				
-				//callback (onLeave) 
-				$.isFunction(options.onLeave) && options.onLeave.call(this, leavingSection, (leftDestinationIndex + 1), yMovement);
-
-				var translate3dLeft = 'translate3d(0px, -' + topPos['left'] + 'px, 0px)';
-				var translate3dRight = 'translate3d(0px, -' + topPos['right'] + 'px, 0px)';
-
-				transformContainer($('.ms-left'), translate3dLeft, true);
-				transformContainer($('.ms-right'), translate3dRight, true);
-
-				setTimeout(function () {
-					//callback (afterLoad) 
-					$.isFunction(options.afterLoad) && options.afterLoad.call(this, anchorLink, (leftDestinationIndex + 1));
-
-					setTimeout(function () {
-						isMoving = false;
-					}, scrollDelay);
-				}, options.scrollingSpeed);
-			}else{
-				//callback (onLeave) 
-				$.isFunction(options.onLeave) && options.onLeave.call(this, leavingSection, (leftDestinationIndex + 1), yMovement);
-
-				$('.ms-left').animate({
-					'top': -topPos['left']
-				}, options.scrollingSpeed, options.easing, function(){
-					$.isFunction(options.afterLoad) && options.afterLoad.call(this, anchorLink, (leftDestinationIndex + 1));
-
-					setTimeout(function () {
-						isMoving = false;
-					}, scrollDelay);
-				});
-
-				$('.ms-right').animate({
-					'top': -topPos['right']
-				}, options.scrollingSpeed, options.easing);
-			}
-			
-			//flag to avoid callingn `scrollPage()` twice in case of using anchor links
-			lastScrolledDestiny = anchorLink;
-
-			//avoid firing it twice (as it does also on scroll)
-			activateMenuElement(anchorLink);
-			activateNavDots(anchorLink, leftDestinationIndex);
-			
-		}
-
-		/**
-		* Removes the auto scrolling action fired by the mouse wheel and tackpad.
-		* After this function is called, the mousewheel and trackpad movements won't scroll through sections.
-		*/
-		function removeMouseWheelHandler(){
-			if (document.addEventListener) {
-				document.removeEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper
-				document.removeEventListener('wheel', MouseWheelHandler, false); //Firefox
-			} else {
-				document.detachEvent("onmousewheel", MouseWheelHandler); //IE 6/7/8
-			}
-		}
-
-		/**
-		* Adds the auto scrolling action for the mouse wheel and tackpad.
-		* After this function is called, the mousewheel and trackpad movements will scroll through sections
-		*/
-		function addMouseWheelHandler(){
-			if (document.addEventListener) {
-				document.addEventListener("mousewheel", MouseWheelHandler, false); //IE9, Chrome, Safari, Oper
-				document.addEventListener("wheel", MouseWheelHandler, false); //Firefox
-			} else {
-				document.attachEvent("onmousewheel", MouseWheelHandler); //IE 6/7/8
-			}
-		}
-
-		/**
-		 * Detecting mousewheel scrolling
-		 * 
-		 * http://blogs.sitepointstatic.com/examples/tech/mouse-wheel/index.html
-		 * http://www.sitepoint.com/html5-javascript-mouse-wheel/
-		 */
-		function MouseWheelHandler(e) {
-			// cross-browser wheel delta
-			e = window.event || e;
-			var delta = Math.max(-1, Math.min(1,
-					(e.wheelDelta || -e.deltaY || -e.detail)));
-
-			if (!isMoving) { //if theres any #
-
-				//scrolling down?
-				if (delta < 0) {
-					$.fn.multiscroll.moveSectionDown();
-				}
-
-				//scrolling up?
-				else {
-					$.fn.multiscroll.moveSectionUp();
-				}
-			}
-		
-
-			return false;
-		}
-
-		/**
-		* Adds a css3 transform property to the container class with or without animation depending on the animated param.
-		*/
-		function transformContainer(container, translate3d, animated){
-			container.toggleClass('easing', animated);
-			
-			container.css(getTransforms(translate3d));
-		}
-
-
-		function getTransforms(translate3d){
-			return {
-				'-webkit-transform': translate3d,
-				'-moz-transform': translate3d,
-				'-ms-transform':translate3d,
-				'transform': translate3d
-			};
-		}
-
-		/**
-		 * Activating the website navigation dots according to the given slide name.
-		 */
-		function activateNavDots(name, sectionIndex){
-			if(options.navigation){
-				$('#multiscroll-nav').find('.active').removeClass('active');
-				if(name){ 
-					$('#multiscroll-nav').find('a[href="#' + name + '"]').addClass('active');
-				}else{
-					$('#multiscroll-nav').find('li').eq(sectionIndex).find('a').addClass('active');
-				}
-			}
-		}
-
-		/**
-		 * Activating the website main menu elements according to the given slide name.
-		 */
-		function activateMenuElement(name){
-			if(options.menu){
-				$(options.menu).find('.active').removeClass('active');
-				$(options.menu).find('[data-menuanchor="'+name+'"]').addClass('active');
-			}
-		}
-
-		/**
-		* Retuns `up` or `down` depending on the scrolling movement to reach its destination
-		* from the current section.
-		*/
-		function getYmovement(destiny){
-			var fromIndex = $('.ms-left .ms-section.active').index();
-			var toIndex = destiny.index();
-
-			if(fromIndex > toIndex){
-				return 'up';
-			}
-			return 'down';
-		}	
-
-
-		/**
-		* Sets the URL hash for a section with slides
-		*/
-		function setURLHash(anchorLink){
-			if(options.anchors.length){
-				location.hash = anchorLink;
-			}
-		}
-
-
-		/**
-		* Checks for translate3d support 
-		* @return boolean
-		* http://stackoverflow.com/questions/5661671/detecting-transform-translate3d-support
-		*/
-		function support3d() {
-			var el = document.createElement('p'), 
-				has3d,
-				transforms = {
-					'webkitTransform':'-webkit-transform',
-					'OTransform':'-o-transform',
-					'msTransform':'-ms-transform',
-					'MozTransform':'-moz-transform',
-					'transform':'transform'
-				};
-
-			// Add it to the body to get the computed style.
-			document.body.insertBefore(el, null);
-
-			for (var t in transforms) {
-				if (el.style[t] !== undefined) {
-					el.style[t] = "translate3d(1px,1px,1px)";
-					has3d = window.getComputedStyle(el).getPropertyValue(transforms[t]);
-				}
-			}
-			
-			document.body.removeChild(el);
-
-			return (has3d !== undefined && has3d.length > 0 && has3d !== "none");
-		}
-
-		function addTableClass(element){
-			element.addClass('ms-table').wrapInner('<div class="ms-tableCell" style="height: ' + getTableHeight(element) + 'px" />');
-		}
-
-		function getTableHeight(section){
-			var sectionHeight = windowHeight;
-
-			if(options.paddingTop || options.paddingBottom){			
-				var paddings = parseInt(section.css('padding-top')) + parseInt(section.css('padding-bottom'));
-				sectionHeight = (windowHeight - paddings);
-			}
-
-			return sectionHeight;
-		}
-
-
-		/**
-		* Adds or remove the possiblity of scrolling through sections by using the keyboard arrow keys
-		*/
-		$.fn.multiscroll.setKeyboardScrolling = function (value){
-			options.keyboardScrolling = value;
-		};
-
-		/**
-		* Adds or remove the possiblity of scrolling through sections by using the mouse wheel or the trackpad. 
-		*/
-		$.fn.multiscroll.setMouseWheelScrolling = function (value){
-			if(value){
-				addMouseWheelHandler();
-			}else{
-				removeMouseWheelHandler();
-			}
-		};
-
-		/**
-		* Defines the scrolling speed 
-		*/
-		$.fn.multiscroll.setScrollingSpeed = function(value){
-		   options.scrollingSpeed = value;
-		};
-
-
-
-		var touchStartY = 0;
-		var touchStartX = 0;
-		var touchEndY = 0;
-		var touchEndX = 0;
-	
-		/* Detecting touch events 
-		
-		* As we are changing the top property of the page on scrolling, we can not use the traditional way to detect it.
-		* This way, the touchstart and the touch moves shows an small difference between them which is the
-		* used one to determine the direction.
-		*/		
-		function touchMoveHandler(event){
-			var e = event.originalEvent;
-
-			//preventing the easing on iOS devices 
-			event.preventDefault();
-
-			var activeSection = $('.ms-left .ms-section.active');
-
-			if (!isMoving) { //if theres any #
-				var touchEvents = getEventsPage(e);
-				touchEndY = touchEvents['y'];
-				touchEndX = touchEvents['x'];
-									
-
-				//is the movement greater than the minimum resistance to scroll?
-				if (Math.abs(touchStartY - touchEndY) > ($(window).height() / 100 * options.touchSensitivity)) {
-
-					if (touchStartY > touchEndY) {
-						$.fn.multiscroll.moveSectionDown();
-
-					} else if (touchEndY > touchStartY) {
-						$.fn.multiscroll.moveSectionUp();
-					}
-				}
-			}
-		}
-
-
-
-		function touchStartHandler(event){
-			var e = event.originalEvent;
-			var touchEvents = getEventsPage(e);
-			touchStartY = touchEvents['y'];
-			touchStartX = touchEvents['x'];
-		}
-
-
-		/**
-		* Adds the possibility to auto scroll through sections on touch devices.
-		*/
-		function addTouchHandler(){
-			$(document).off('touchstart MSPointerDown').on('touchstart MSPointerDown', touchStartHandler);
-			$(document).off('touchmove MSPointerMove').on('touchmove MSPointerMove', touchMoveHandler);
-		}
-		
-		/**
-		* Removes the auto scrolling for touch devices.
-		*/
-		function removeTouchHandler(){
-			$(document).off('touchstart MSPointerDown');
-			$(document).off('touchmove MSPointerMove');
-		}
-
-		/**
-		* Gets the pageX and pageY properties depending on the browser.
-		* https://github.com/alvarotrigo/fullPage.js/issues/194#issuecomment-34069854
-		*/
-		function getEventsPage(e){
-			var events = new Array();
-			if (window.navigator.msPointerEnabled){
-				events['y'] = e.pageY;
-				events['x'] = e.pageX;
-			}else{
-				events['y'] = e.touches[0].pageY;
-				events['x'] =  e.touches[0].pageX;
-			}
-
-			return events;
-		}
-
-	};	
-})(jQuery);
+(function($, window, document, Math, undefined) {
+
+    $.fn.multiscroll = function(options) {
+        var MS = $.fn.multiscroll;
+
+        // Create some defaults, extending them with any options that were provided
+        options = $.extend({
+            'verticalCentered' : true,
+            'scrollingSpeed': 700,
+            'easing': 'easeInQuart',
+            'menu': false,
+            'sectionsColor': [],
+            'anchors':[],
+            'navigation': false,
+            'navigationPosition': 'right',
+            'navigationColor': '#000',
+            'navigationTooltips': [],
+            'loopBottom': false,
+            'loopTop': false,
+            'css3': false,
+            'paddingTop': 0,
+            'paddingBottom': 0,
+            'fixedElements': null,
+            'normalScrollElements': null,
+            'keyboardScrolling': true,
+            'touchSensitivity': 5,
+
+            // Custom selectors
+            'sectionSelector': '.ms-section',
+            'leftSelector': '.ms-left',
+            'rightSelector': '.ms-right',
+
+            //events
+            'afterLoad': null,
+            'onLeave': null,
+            'afterRender': null,
+            'afterResize': null
+        }, options);
+
+        //Defines the delay to take place before being able to scroll to the next section
+        //BE CAREFUL! Not recommened to change it under 400 for a good behavior in laptops and
+        //Apple devices (laptops, mouses...)
+        var scrollDelay = 600;
+
+        var isTouchDevice = navigator.userAgent.match(/(iPhone|iPod|iPad|Android|playbook|silk|BlackBerry|BB10|Windows Phone|Tizen|Bada|webOS|IEMobile|Opera Mini)/);
+        var isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0) || (navigator.maxTouchPoints));
+
+        // adding class namef for right and left blocks
+        if (options.rightSelector !== '.ms-right') {
+            $(options.rightSelector).addClass('ms-right');
+        }
+
+        if (options.leftSelector !== '.ms-left') {
+            $(options.leftSelector).addClass('ms-left');
+        }
+
+        var numberSections = $('.ms-left').find('.ms-section').length;
+        var isMoving = false;
+        var nav;
+        var windowHeight = $(window).height();
+        var MSPointer = getMSPointer();
+        var events = {
+            touchmove: 'ontouchmove' in window ? 'touchmove' :  MSPointer.move,
+            touchstart: 'ontouchstart' in window ? 'touchstart' :  MSPointer.down
+        };
+
+        //timeouts
+        var resizeId;
+
+        addMouseWheelHandler();
+        addTouchHandler();
+
+        //if css3 is not supported, it will use jQuery animations
+        if(options.css3){
+            options.css3 = support3d();
+        }
+
+        $('html, body').css({
+            'overflow' : 'hidden',
+            'height' : '100%'
+        });
+
+        //adding class names to each sections
+        if (options.sectionSelector !== '.ms-section') {
+            $(options.sectionSelector).each(function(){
+                $(this).addClass('ms-section');
+            });
+        }
+
+        //creating the navigation dots
+        if (options.navigation) {
+            $('body').append('<div id="multiscroll-nav"><ul></ul></div>');
+            nav = $('#multiscroll-nav');
+
+            nav.css('color', options.navigationColor);
+            nav.addClass(options.navigationPosition);
+        }
+
+        $('.ms-right, .ms-left').css({
+            'width': '50%',
+            'position': 'absolute',
+            'height': '100%',
+            '-ms-touch-action': 'none'
+        });
+
+        $('.ms-right').css({
+            'right': '1px', //http://stackoverflow.com/questions/23675457/chrome-and-opera-creating-small-padding-when-using-displaytable
+            'top': '0',
+            '-ms-touch-action': 'none',
+            'touch-action': 'none'
+        });
+
+        $('.ms-left').css({
+            'left': '0',
+            'top': '0',
+            '-ms-touch-action': 'none',
+            'touch-action': 'none'
+        });
+
+
+        $('.ms-left .ms-section, .ms-right .ms-section').each(function(){
+            var sectionIndex = $(this).index();
+
+            if(options.paddingTop || options.paddingBottom){
+                $(this).css('padding', options.paddingTop  + ' 0 ' + options.paddingBottom + ' 0');
+            }
+
+            if (typeof options.sectionsColor[sectionIndex] !==  'undefined') {
+                $(this).css('background-color', options.sectionsColor[sectionIndex]);
+            }
+
+            if (typeof options.anchors[sectionIndex] !== 'undefined') {
+                $(this).attr('data-anchor', options.anchors[sectionIndex]);
+            }
+
+            if(options.verticalCentered){
+                addTableClass($(this));
+            }
+
+            //only for the left panel
+            if($(this).closest('.ms-left').length && options.navigation) {
+                var link = '';
+                if(options.anchors.length){
+                    link = options.anchors[sectionIndex];
+                }
+                var tooltip = options.navigationTooltips[sectionIndex];
+                if(typeof tooltip === 'undefined'){
+                    tooltip = '';
+                }
+                if (options.navigation) {
+                    nav.find('ul').append('<li data-tooltip="' + tooltip + '"><a href="#' + link + '"><span></span></a></li>');
+                }
+            }
+        });
+
+        //inverting the right panel
+        $('.ms-right').html( $('.ms-right').find('.ms-section').get().reverse());
+
+        $('.ms-left .ms-section, .ms-right .ms-section').each(function(){
+            var sectionIndex = $(this).index();
+
+            $(this).css({
+                'height': '100%'
+            });
+
+
+            if(!sectionIndex && options.navigation ){
+                //activating the navigation bullet
+                nav.find('li').eq(sectionIndex).find('a').addClass('active');
+            }
+        }).promise().done(function(){
+
+            //if no active section is defined, the 1st one will be the default one
+            if(!$('.ms-left .ms-section.active').length){
+                $('.ms-right').find('.ms-section').last().addClass('active');
+                $('.ms-left').find('.ms-section').first().addClass('active');
+            }
+
+            //vertical centered of the navigation + first bullet active
+            if(options.navigation){
+                nav.css('margin-top', '-' + (nav.height()/2) + 'px');
+            }
+            $.isFunction( options.afterRender ) && options.afterRender.call( this);
+
+            //scrolling to the defined active section and adjusting right and left panels
+            silentScroll();
+
+            //setting the class for the body element
+            setBodyClass();
+
+            $(window).on('load', function() {
+                scrollToAnchor();
+            });
+        });
+
+
+        //detecting any change on the URL to scroll to the given anchor link
+        //(a way to detect back history button as we play with the hashes on the URL)
+        $(window).on('hashchange', hashChangeHandler);
+
+        function hashChangeHandler(){
+            var value =  window.location.hash.replace('#', '');
+            var sectionAnchor = value;
+
+            if(sectionAnchor.length){
+                var section = $('.ms-left').find('[data-anchor="'+sectionAnchor+'"]');
+
+                var isFirstScrollMove = (typeof lastScrolledDestiny === 'undefined' );
+
+                if (isFirstScrollMove || sectionAnchor !== lastScrolledDestiny){
+                    scrollPage(section);
+                }
+            }
+        };
+
+
+        /**
+        * Sliding with arrow keys, both, vertical and horizontal
+        */
+        $(document).keydown(keydownHandler);
+
+
+        var keydownId;
+        function keydownHandler(e) {
+            clearTimeout(keydownId);
+
+            var activeElement = $(document.activeElement);
+
+            if(!activeElement.is('textarea') && !activeElement.is('input') && !activeElement.is('select') &&
+                options.keyboardScrolling){
+                var keyCode = e.which;
+
+                //preventing the scroll with arrow keys & spacebar & Page Up & Down keys
+                var keyControls = [40, 38, 32, 33, 34];
+                if($.inArray(keyCode, keyControls) > -1){
+                    e.preventDefault();
+                }
+
+                keydownId = setTimeout(function(){
+                    onkeydown(e);
+                },150);
+            }
+        }
+
+        /**
+         * Sliding with arrow keys, both, vertical and horizontal
+         */
+        function onkeydown(e){
+            var shiftPressed = e.shiftKey;
+
+            switch (e.which) {
+                //up
+                case 38:
+                case 33:
+                    MS.moveSectionUp();
+                    break;
+
+                //down
+                case 32: //spacebar
+                    if(shiftPressed){
+                        MS.moveSectionUp();
+                        break;
+                    }
+                case 40:
+                case 34:
+                    MS.moveSectionDown();
+                    break;
+
+                //Home
+                case 36:
+                    MS.moveTo(1);
+                    break;
+
+                //End
+                case 35:
+                    MS.moveTo( $('.ms-left .ms-section').length);
+                    break;
+
+                default:
+                    return; // exit this handler for other keys
+            }
+        }
+
+        /**
+         * Disabling any action when pressing of the mouse wheel (Chrome, IE, Opera, Safari)
+         */
+        $(document).mousedown(function(e) {
+            if(e.button == 1){
+                e.preventDefault();
+                return false;
+            }
+        });
+
+        function navClickHandler(e) {
+            e.preventDefault();
+            var index = $(this).parent().index();
+            scrollPage($('.ms-left .ms-section').eq(index));
+        }
+
+        //navigation action
+        $(document).on('click', '#multiscroll-nav a', navClickHandler);
+
+        function navMouseEnterHandler() {
+            var tooltip = $(this).data('tooltip');
+            $('<div class="multiscroll-tooltip ' + options.navigationPosition +'">' + tooltip + '</div>').hide().appendTo($(this)).fadeIn(200);
+        }
+
+        function navMouseLeaveHandler() {
+            $(this).find('.multiscroll-tooltip').fadeOut(200, function() {
+                $(this).remove();
+            });
+        }
+
+        //navigation tooltips
+        $(document).on({
+            mouseenter: navMouseEnterHandler,
+            mouseleave: navMouseLeaveHandler
+        }, '#multiscroll-nav li');
+
+
+        if(options.normalScrollElements){
+            $(document).on('mouseenter', options.normalScrollElements, function () {
+                MS.setMouseWheelScrolling(false);
+            });
+
+            $(document).on('mouseleave', options.normalScrollElements, function(){
+                MS.setMouseWheelScrolling(true);
+            });
+        }
+
+
+        //when resizing the site, we adjust the heights of the sections
+        $(window).on('resize', resizeHandler);
+
+
+        var previousHeight = windowHeight;
+
+        /**
+         * When resizing is finished, we adjust the slides sizes and positions
+         */
+        function resizeHandler() {
+            // rebuild immediately on touch devices
+            if (isTouchDevice) {
+                var activeElement = $(document.activeElement);
+
+                //if the keyboard is NOT visible
+                if (!activeElement.is('textarea') && !activeElement.is('input') && !activeElement.is('select')) {
+                    var currentHeight = $(window).height();
+
+                    //making sure the change in the viewport size is enough to force a rebuild. (20 % of the window to avoid problems when hidding scroll bars)
+                    if( Math.abs(currentHeight - previousHeight) > (20 * Math.max(previousHeight, currentHeight) / 100) ){
+                        reBuild(true);
+                        previousHeight = currentHeight;
+                    }
+                }
+            }else{
+                //in order to call the functions only when the resize is finished
+                //http://stackoverflow.com/questions/4298612/jquery-how-to-call-resize-event-only-once-its-finished-resizing
+                clearTimeout(resizeId);
+
+                resizeId = setTimeout(function(){
+                    reBuild(true);
+                }, 350);
+            }
+        }
+
+        /**
+         * When resizing is finished, we adjust the slides sizes and positions
+         */
+        function reBuild(resizing){
+            windowHeight = $(window).height();
+            $('.ms-tableCell').each(function() {
+                $(this).css({ height: getTableHeight($(this).parent()) });
+            });
+
+            if(options.scrollOverflow){
+                scrollBarHandler.createScrollBarForAll();
+            }
+
+            silentScroll();
+            $.isFunction( options.afterResize ) && options.afterResize.call( this);
+        }
+
+        function silentScroll(){
+            //moving the right section to the bottom
+            if(options.css3){
+                transformContainer($('.ms-left'), 'translate3d(0px, -' + $('.ms-left').find('.ms-section.active').position().top + 'px, 0px)', false);
+                transformContainer($('.ms-right'), 'translate3d(0px, -' + $('.ms-right').find('.ms-section.active').position().top + 'px, 0px)', false);
+            }else{
+                $('.ms-left').css('top', -$('.ms-left').find('.ms-section.active').position().top );
+                $('.ms-right').css('top', -$('.ms-right').find('.ms-section.active').position().top );
+            }
+        }
+
+        MS.moveSectionUp = function(){
+            var prev = $('.ms-left .ms-section.active').prev('.ms-section');
+
+            if(!prev.length && options.loopTop){
+                prev = $('.ms-left .ms-section').last();
+            }
+
+            if (prev.length) {
+                scrollPage(prev);
+            }
+        };
+
+        MS.moveSectionDown = function (){
+            var next = $('.ms-left .ms-section.active').next('.ms-section');
+
+            if(!next.length && options.loopBottom ){
+                next = $('.ms-left .ms-section').first();
+            }
+
+            if(next.length){
+                scrollPage(next);
+            }
+        };
+
+        MS.moveTo = function (section){
+            var destiny = '';
+
+            if(isNaN(section)){
+                destiny = $('.ms-left [data-anchor="'+section+'"]');
+            }else{
+                destiny = $('.ms-left .ms-section').eq( (section -1) );
+            }
+
+            scrollPage(destiny);
+        };
+
+        function scrollPage(leftDestination){
+            var leftDestinationIndex = leftDestination.index();
+            var rightDestination = $('.ms-right').find('.ms-section').eq( numberSections -1 - leftDestinationIndex);
+            var rightDestinationIndex = numberSections - 1 - leftDestinationIndex;
+            var anchorLink  = leftDestination.data('anchor');
+            var activeSection = $('.ms-left .ms-section.active');
+            var leavingSection = activeSection.index() + 1;
+            var yMovement = getYmovement(leftDestination);
+
+            //preventing from activating the MouseWheelHandler event
+            //more than once if the page is scrolling
+            isMoving = true;
+
+            var topPos = {
+                'left' : leftDestination.position().top,
+                'right': rightDestination.position().top
+            };
+
+            rightDestination.addClass('active').siblings().removeClass('active');
+            leftDestination.addClass('active').siblings().removeClass('active');
+
+            setURLHash(anchorLink);
+
+            // Use CSS3 translate functionality or...
+            if (options.css3){
+                //callback (onLeave)
+                $.isFunction(options.onLeave) && options.onLeave.call(this, leavingSection, (leftDestinationIndex + 1), yMovement);
+
+                var translate3dLeft = 'translate3d(0px, -' + topPos['left'] + 'px, 0px)';
+                var translate3dRight = 'translate3d(0px, -' + topPos['right'] + 'px, 0px)';
+
+                transformContainer($('.ms-left'), translate3dLeft, true);
+                transformContainer($('.ms-right'), translate3dRight, true);
+
+                setTimeout(function () {
+                    //callback (afterLoad)
+                    $.isFunction(options.afterLoad) && options.afterLoad.call(this, anchorLink, (leftDestinationIndex + 1));
+
+                    setTimeout(function () {
+                        isMoving = false;
+                    }, scrollDelay);
+                }, options.scrollingSpeed);
+            }else{
+                //callback (onLeave)
+                $.isFunction(options.onLeave) && options.onLeave.call(this, leavingSection, (leftDestinationIndex + 1), yMovement);
+
+                $('.ms-left').animate({
+                    'top': -topPos['left']
+                }, options.scrollingSpeed, options.easing, function(){
+                    $.isFunction(options.afterLoad) && options.afterLoad.call(this, anchorLink, (leftDestinationIndex + 1));
+
+                    setTimeout(function () {
+                        isMoving = false;
+                    }, scrollDelay);
+                });
+
+                $('.ms-right').animate({
+                    'top': -topPos['right']
+                }, options.scrollingSpeed, options.easing);
+            }
+
+            //flag to avoid callingn `scrollPage()` twice in case of using anchor links
+            lastScrolledDestiny = anchorLink;
+
+            activateMenuElement(anchorLink);
+            activateNavDots(anchorLink, leftDestinationIndex);
+        }
+
+        /**
+        * Removes the auto scrolling action fired by the mouse wheel and tackpad.
+        * After this function is called, the mousewheel and trackpad movements won't scroll through sections.
+        */
+        function removeMouseWheelHandler(){
+            if (document.addEventListener) {
+                document.removeEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper
+                document.removeEventListener('wheel', MouseWheelHandler, false); //Firefox
+            } else {
+                document.detachEvent("onmousewheel", MouseWheelHandler); //IE 6/7/8
+            }
+        }
+
+        /**
+        * Adds the auto scrolling action for the mouse wheel and tackpad.
+        * After this function is called, the mousewheel and trackpad movements will scroll through sections
+        */
+        function addMouseWheelHandler(){
+            if (document.addEventListener) {
+                document.addEventListener("mousewheel", MouseWheelHandler, false); //IE9, Chrome, Safari, Oper
+                document.addEventListener("wheel", MouseWheelHandler, false); //Firefox
+            } else {
+                document.attachEvent("onmousewheel", MouseWheelHandler); //IE 6/7/8
+            }
+        }
+
+        /**
+         * Detecting mousewheel scrolling
+         *
+         * http://blogs.sitepointstatic.com/examples/tech/mouse-wheel/index.html
+         * http://www.sitepoint.com/html5-javascript-mouse-wheel/
+         */
+        function MouseWheelHandler(e) {
+            // cross-browser wheel delta
+            e = window.event || e;
+            var delta = Math.max(-1, Math.min(1,
+                    (e.wheelDelta || -e.deltaY || -e.detail)));
+
+            if (!isMoving) { //if theres any #
+
+                //scrolling down?
+                if (delta < 0) {
+                    MS.moveSectionDown();
+                }
+
+                //scrolling up?
+                else {
+                    MS.moveSectionUp();
+                }
+            }
+
+
+            return false;
+        }
+
+        /**
+        * Adds a css3 transform property to the container class with or without animation depending on the animated param.
+        */
+        function transformContainer(container, translate3d, animated){
+            container.toggleClass('ms-easing', animated);
+
+            container.css(getTransforms(translate3d));
+        }
+
+
+        /**
+        * Returns the transform styles for all browsers
+        */
+        function getTransforms(translate3d){
+            return {
+                '-webkit-transform': translate3d,
+                '-moz-transform': translate3d,
+                '-ms-transform':translate3d,
+                'transform': translate3d
+            };
+        }
+
+        /**
+         * Activating the website navigation dots according to the given slide name.
+         */
+        function activateNavDots(name, sectionIndex){
+            if(options.navigation){
+                $('#multiscroll-nav').find('.active').removeClass('active');
+                if(name){
+                    $('#multiscroll-nav').find('a[href="#' + name + '"]').addClass('active');
+                }else{
+                    $('#multiscroll-nav').find('li').eq(sectionIndex).find('a').addClass('active');
+                }
+            }
+        }
+
+        /**
+         * Activating the website main menu elements according to the given slide name.
+         */
+        function activateMenuElement(name){
+            if(options.menu){
+                $(options.menu).find('.active').removeClass('active');
+                $(options.menu).find('[data-menuanchor="'+name+'"]').addClass('active');
+            }
+        }
+
+        /**
+        * Retuns `up` or `down` depending on the scrolling movement to reach its destination
+        * from the current section.
+        */
+        function getYmovement(destiny){
+            var fromIndex = $('.ms-left .ms-section.active').index();
+            var toIndex = destiny.index();
+
+            if(fromIndex > toIndex){
+                return 'up';
+            }
+            return 'down';
+        }
+
+
+        /**
+        * Sets the URL hash for a section with slides
+        */
+        function setURLHash(anchorLink){
+            if(options.anchors.length){
+                location.hash = anchorLink;
+            }
+
+            setBodyClass();
+        }
+
+         /**
+        * Sets a class for the body of the page depending on the active section / slide
+        */
+        function setBodyClass(){
+            var section = $('.ms-left .ms-section.active');
+            var sectionAnchor = section.data('anchor');
+            var sectionIndex = section.index();
+
+            var text = String(sectionIndex);
+
+            if(options.anchors.length){
+                text = sectionAnchor;
+            }
+
+            //changing slash for dash to make it a valid CSS style
+            text = text.replace('/', '-').replace('#','');
+
+            //removing previous anchor classes
+            var classRe = new RegExp('\\b\\s?' + 'ms-viewing' + '-[^\\s]+\\b', "g");
+            $('body')[0].className = $('body')[0].className.replace(classRe, '');
+
+            //adding the current anchor
+            $('body').addClass('ms-viewing-' + text);
+        }
+
+
+        /**
+        * Checks for translate3d support
+        * @return boolean
+        * http://stackoverflow.com/questions/5661671/detecting-transform-translate3d-support
+        */
+        function support3d() {
+            var el = document.createElement('p'),
+                has3d,
+                transforms = {
+                    'webkitTransform':'-webkit-transform',
+                    'OTransform':'-o-transform',
+                    'msTransform':'-ms-transform',
+                    'MozTransform':'-moz-transform',
+                    'transform':'transform'
+                };
+
+            // Add it to the body to get the computed style.
+            document.body.insertBefore(el, null);
+
+            for (var t in transforms) {
+                if (el.style[t] !== undefined) {
+                    el.style[t] = "translate3d(1px,1px,1px)";
+                    has3d = window.getComputedStyle(el).getPropertyValue(transforms[t]);
+                }
+            }
+
+            document.body.removeChild(el);
+
+            return (has3d !== undefined && has3d.length > 0 && has3d !== "none");
+        }
+
+        /**
+        * Wraps an element in order to center it vertically by using a class style.
+        */
+        function addTableClass(element){
+            element.addClass('ms-table').wrapInner('<div class="ms-tableCell" style="height: ' + getTableHeight(element) + 'px" />');
+        }
+
+        /**
+        * Gets the height of the section after removing the paddings.
+        */
+        function getTableHeight(section){
+            var sectionHeight = windowHeight;
+
+            if(options.paddingTop || options.paddingBottom){
+                var paddings = parseInt(section.css('padding-top')) + parseInt(section.css('padding-bottom'));
+                sectionHeight = (windowHeight - paddings);
+            }
+
+            return sectionHeight;
+        }
+
+
+        /**
+        * Scrolls the page to the existent anchor in the URL
+        */
+        function scrollToAnchor(){
+            //getting the anchor link in the URL and deleting the `#`
+            var sectionAnchor =  window.location.hash.replace('#', '');
+            var section = $('.ms-left .ms-section[data-anchor="'+sectionAnchor+'"]');
+
+            if(sectionAnchor.length){  //if theres any #
+                scrollPage(section);
+            }
+        }
+
+        /**
+        * Adds or remove the possiblity of scrolling through sections by using the keyboard arrow keys
+        */
+        MS.setKeyboardScrolling = function (value){
+            options.keyboardScrolling = value;
+        };
+
+        /**
+        * Adds or remove the possiblity of scrolling through sections by using the mouse wheel or the trackpad.
+        */
+        MS.setMouseWheelScrolling = function (value){
+            if(value){
+                addMouseWheelHandler();
+            }else{
+                removeMouseWheelHandler();
+            }
+        };
+
+        /**
+        * Defines the scrolling speed
+        */
+        MS.setScrollingSpeed = function(value){
+            options.scrollingSpeed = value;
+        };
+
+
+
+        var touchStartY = 0;
+        var touchStartX = 0;
+        var touchEndY = 0;
+        var touchEndX = 0;
+
+        /* Detecting touch events
+
+        * As we are changing the top property of the page on scrolling, we can not use the traditional way to detect it.
+        * This way, the touchstart and the touch moves shows an small difference between them which is the
+        * used one to determine the direction.
+        */
+        function touchMoveHandler(e){
+
+            if(isReallyTouch(e)){
+                //preventing the easing on iOS devices
+                event.preventDefault();
+
+                var activeSection = $('.ms-left .ms-section.active');
+
+                if (!isMoving) { //if theres any #
+                    var touchEvents = getEventsPage(e);
+                    touchEndY = touchEvents['y'];
+                    touchEndX = touchEvents['x'];
+
+
+                    //is the movement greater than the minimum resistance to scroll?
+                    if (Math.abs(touchStartY - touchEndY) > ($(window).height() / 100 * options.touchSensitivity)) {
+
+                        if (touchStartY > touchEndY) {
+                            MS.moveSectionDown();
+
+                        } else if (touchEndY > touchStartY) {
+                            MS.moveSectionUp();
+                        }
+                    }
+                }
+            }
+        }
+
+        /**
+        * As IE >= 10 fires both touch and mouse events when using a mouse in a touchscreen
+        * this way we make sure that is really a touch event what IE is detecting.
+        */
+        function isReallyTouch(e){
+            //if is not IE   ||  IE is detecting `touch` or `pen`
+            return typeof e.pointerType === 'undefined' || e.pointerType != 'mouse';
+        }
+
+
+        /**
+        * Handler to get he coordinates of the starting touch
+        */
+        function touchStartHandler(e){
+
+            if(isReallyTouch(e)){
+                var touchEvents = getEventsPage(e);
+                touchStartY = touchEvents['y'];
+                touchStartX = touchEvents['x'];
+            }
+        }
+
+
+        /**
+        * Adds the possibility to auto scroll through sections on touch devices.
+        */
+        function addTouchHandler(){
+            if(isTouch || isTouchDevice){
+                document.removeEventListener(events.touchstart, touchStartHandler);
+                document.removeEventListener(events.touchmove, touchMoveHandler, {passive: false});
+
+                document.addEventListener(events.touchstart, touchStartHandler);
+                document.addEventListener(events.touchmove, touchMoveHandler, {passive: false});
+            }
+        }
+
+        /**
+        * Removes the auto scrolling for touch devices.
+        */
+        function removeTouchHandler(){
+            if(isTouch || isTouchDevice){
+                document.removeEventListener(events.touchstart, touchStartHandler);
+                document.removeEventListener(events.touchmove, touchMoveHandler, {passive: false});
+            }
+        }
+
+        /*
+        * Returns and object with Microsoft pointers (for IE<11 and for IE >= 11)
+        * http://msdn.microsoft.com/en-us/library/ie/dn304886(v=vs.85).aspx
+        */
+        function getMSPointer(){
+            var pointer;
+
+            //IE >= 11
+            if(window.PointerEvent){
+                pointer = { down: "pointerdown", move: "pointermove"};
+            }
+
+            //IE < 11
+            else{
+                pointer = { down: "MSPointerDown", move: "MSPointerMove"};
+            }
+
+            return pointer;
+        }
+
+        /**
+        * Gets the pageX and pageY properties depending on the browser.
+        * https://github.com/alvarotrigo/fullPage.js/issues/194#issuecomment-34069854
+        */
+        function getEventsPage(e){
+            var events = [];
+
+            events.y = (typeof e.pageY !== 'undefined' && (e.pageY || e.pageX) ? e.pageY : e.touches[0].pageY);
+            events.x = (typeof e.pageX !== 'undefined' && (e.pageY || e.pageX) ? e.pageX : e.touches[0].pageX);
+
+            //in touch devices with scrollBar:true, e.pageY is detected, but we have to deal with touch events. #1008
+            if(isTouch && isReallyTouch(e) && typeof e.touches !== 'undefined'){
+                events.y = e.touches[0].pageY;
+                events.x = e.touches[0].pageX;
+            }
+
+            return events;
+        }
+
+        /**
+        * Destroy multiscroll.js plugin's events
+        */
+        MS.destroy = function() {
+            MS.setKeyboardScrolling(false);
+            MS.setMouseWheelScrolling(false);
+            removeTouchHandler();
+
+            $(window)
+                .off('hashchange', hashChangeHandler)
+                .off('resize', resizeHandler);
+
+            $(document)
+                .off('mouseenter', '#multiscroll-nav li')
+                .off('mouseleave', '#multiscroll-nav li')
+                .off('click', '#multiscroll-nav a');
+        };
+
+        /**
+        * Build multiscroll.js plugin's events after destroy
+        */
+        MS.build = function() {
+            MS.setKeyboardScrolling(true);
+            MS.setMouseWheelScrolling(true);
+            addTouchHandler();
+
+            $(window)
+                .on('hashchange', hashChangeHandler)
+                .on('resize', resizeHandler);
+
+            $(document)
+                .on('mouseenter', '#multiscroll-nav li', navMouseEnterHandler)
+                .on('mouseleave', '#multiscroll-nav li', navMouseLeaveHandler)
+                .on('click', '#multiscroll-nav a', navClickHandler);
+        };
+
+    };
+})(jQuery, window, document, Math);
diff --git a/jquery.multiscroll.min.js b/jquery.multiscroll.min.js
index 1b0b933..052267a 100644
--- a/jquery.multiscroll.min.js
+++ b/jquery.multiscroll.min.js
@@ -1,22 +1,8 @@
-/**
- * multiscroll.js 0.0.4 Beta
+/*!
+ * multiscroll.js 0.2.2
  * https://github.com/alvarotrigo/multiscroll.js
- * MIT licensed
+ * @license MIT licensed
  *
- * Copyright (C) 2013 alvarotrigo.com - A project by Alvaro Trigo
+ * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo
  */
-(function(a){a.fn.multiscroll=function(c){function w(){q=a(window).height();r();a.isFunction(c.afterResize)&&c.afterResize.call(this)}function r(){c.css3?(m(a(".ms-left"),"translate3d(0px, -"+a(".ms-left").find(".ms-section.active").position().top+"px, 0px)",!1),m(a(".ms-right"),"translate3d(0px, -"+a(".ms-right").find(".ms-section.active").position().top+"px, 0px)",!1)):(a(".ms-left").css("top",-a(".ms-left").find(".ms-section.active").position().top),a(".ms-right").css("top",-a(".ms-right").find(".ms-section.active").position().top))}
-function g(b){var d=b.index(),s=a(".ms-right").find(".ms-section").eq(x-1-d),e=b.data("anchor"),f=a(".ms-left .ms-section.active").index()+1,g=y(b);h=!0;c.anchors.length&&(location.hash=e);var k={left:b.position().top,right:s.position().top};s.addClass("active").siblings().removeClass("active");b.addClass("active").siblings().removeClass("active");c.css3?(a.isFunction(c.onLeave)&&c.onLeave.call(this,f,d+1,g),b="translate3d(0px, -"+k.left+"px, 0px)",k="translate3d(0px, -"+k.right+"px, 0px)",m(a(".ms-left"),
-b,!0),m(a(".ms-right"),k,!0),setTimeout(function(){a.isFunction(c.afterLoad)&&c.afterLoad.call(this,e,d+1);setTimeout(function(){h=!1},t)},c.scrollingSpeed)):(a.isFunction(c.onLeave)&&c.onLeave.call(this,f,d+1,g),a(".ms-left").animate({top:-k.left},c.scrollingSpeed,c.easing,function(){a.isFunction(c.afterLoad)&&c.afterLoad.call(this,e,d+1);setTimeout(function(){h=!1},t)}),a(".ms-right").animate({top:-k.right},c.scrollingSpeed,c.easing));lastScrolledDestiny=e;z(e);A(e,d)}function u(){document.addEventListener?
-(document.addEventListener("mousewheel",f,!1),document.addEventListener("wheel",f,!1)):document.attachEvent("onmousewheel",f)}function f(b){b=window.event||b;b=Math.max(-1,Math.min(1,b.wheelDelta||-b.deltaY||-b.detail));h||(0>b?a.fn.multiscroll.moveSectionDown():a.fn.multiscroll.moveSectionUp());return!1}function m(b,a,c){b.toggleClass("easing",c);b.css({"-webkit-transform":a,"-moz-transform":a,"-ms-transform":a,transform:a})}function A(b,d){c.navigation&&(a("#multiscroll-nav").find(".active").removeClass("active"),
-b?a("#multiscroll-nav").find('a[href="#'+b+'"]').addClass("active"):a("#multiscroll-nav").find("li").eq(d).find("a").addClass("active"))}function z(b){c.menu&&(a(c.menu).find(".active").removeClass("active"),a(c.menu).find('[data-menuanchor="'+b+'"]').addClass("active"))}function y(b){var c=a(".ms-left .ms-section.active").index();b=b.index();return c>b?"up":"down"}function B(){var b=document.createElement("p"),a,c={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",
-MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(b,null);for(var e in c)void 0!==b.style[e]&&(b.style[e]="translate3d(1px,1px,1px)",a=window.getComputedStyle(b).getPropertyValue(c[e]));document.body.removeChild(b);return void 0!==a&&0<a.length&&"none"!==a}function C(a){var d=q;if(c.paddingTop||c.paddingBottom)a=parseInt(a.css("padding-top"))+parseInt(a.css("padding-bottom")),d=q-a;return d}function v(a){var c=[];window.navigator.msPointerEnabled?(c.y=a.pageY,c.x=a.pageX):
-(c.y=a.touches[0].pageY,c.x=a.touches[0].pageX);return c}c=a.extend({verticalCentered:!0,scrollingSpeed:700,easing:"easeInQuart",menu:!0,sectionsColor:[],anchors:[],navigation:!1,navigationPosition:"right",navigationColor:"#000",navigationTooltips:[],loopBottom:!1,loopTop:!1,css3:!1,paddingTop:0,paddingBottom:0,fixedElements:null,normalScrollElements:null,keyboardScrolling:!0,touchSensitivity:5,afterLoad:null,onLeave:null,afterRender:null,afterResize:null},c);var t=600,x=a(".ms-left").find(".ms-section").length,
-h=!1,l,q=a(window).height();u();a(document).off("touchstart MSPointerDown").on("touchstart MSPointerDown",function(a){n=v(a.originalEvent).y});a(document).off("touchmove MSPointerMove").on("touchmove MSPointerMove",function(b){var d=b.originalEvent;b.preventDefault();a(".ms-left .ms-section.active");h||(p=v(d).y,Math.abs(n-p)>a(window).height()/100*c.touchSensitivity&&(n>p?a.fn.multiscroll.moveSectionDown():p>n&&a.fn.multiscroll.moveSectionUp()))});c.css3&&(c.css3=B());a("html, body").css({overflow:"hidden",
-height:"100%"});c.navigation&&(a("body").append('<div id="multiscroll-nav"><ul></ul></div>'),l=a("#multiscroll-nav"),l.css("color",c.navigationColor),l.addClass(c.navigationPosition));a(".ms-right, .ms-left").css({width:"50%",position:"absolute",height:"100%"});a(".ms-right").css({right:"0",top:"0"});a(".ms-left").css({left:"0",top:"0"});a(".ms-left .ms-section, .ms-right .ms-section").each(function(){var b=a(this).index();"undefined"!==typeof c.sectionsColor[b]&&a(this).css("background-color",c.sectionsColor[b]);
-"undefined"!==typeof c.anchors[b]&&a(this).attr("data-anchor",c.anchors[b]);if(c.verticalCentered){var d=a(this);d.addClass("ms-table").wrapInner('<div class="ms-tableCell" style="height: '+C(d)+'px" />')}a(this).closest(".ms-left").length&&c.navigation&&(d="",c.anchors.length&&(d=c.anchors[b]),b=c.navigationTooltips[b],"undefined"===typeof b&&(b=""),c.navigation&&l.find("ul").append('<li data-tooltip="'+b+'"><a href="#'+d+'"><span></span></a></li>'))});a(".ms-right").html(a(".ms-right").find(".ms-section").get().reverse());
-a(".ms-left .ms-section, .ms-right .ms-section").each(function(){var b=a(this).index();fromTop=100*b;a(this).css({height:"100%",display:"block"});!b&&c.navigation&&l.find("li").eq(b).find("a").addClass("active")}).promise().done(function(){a(".ms-right").find(".ms-section").last().addClass("active");a(".ms-left").find(".ms-section").first().addClass("active");a.isFunction(c.afterRender)&&c.afterRender.call(this)});r();a(window).on("hashchange",function(){var b=window.location.hash.replace("#",""),
-c=isNaN(b)?a(".ms-left").find('[data-anchor="'+b+'"]'):a(".ms-left .ms-section").eq(destiny-1);"undefined"!==typeof lastScrolledDestiny&&b===lastScrolledDestiny||g(c)});a(document).keydown(function(b){if(c.keyboardScrolling&&!h)switch(b.which){case 38:case 33:a.fn.multiscroll.moveSectionUp();break;case 40:case 34:a.fn.multiscroll.moveSectionDown()}});a(document).on("click","#multiscroll-nav a",function(b){b.preventDefault();b=a(this).parent().index();g(a(".ms-left .ms-section").eq(b))});a(document).on({mouseenter:function(){var b=
-a(this).data("tooltip");a('<div class="multiscroll-tooltip '+c.navigationPosition+'">'+b+"</div>").hide().appendTo(a(this)).fadeIn(200)},mouseleave:function(){a(this).find(".multiscroll-tooltip").fadeOut().remove()}},"#multiscroll-nav li");c.normalScrollElements&&(a(document).on("mouseover",c.normalScrollElements,function(){a.fn.multiscroll.setMouseWheelScrolling(!1)}),a(document).on("mouseout",c.normalScrollElements,function(){a.fn.multiscroll.setMouseWheelScrolling(!0)}));a(window).resize(function(){w()});
-a.fn.multiscroll.moveSectionUp=function(){var b=a(".ms-left .ms-section.active").prev(".ms-section");!b.length&&c.loopTop&&(b=a(".ms-left .ms-section").last());b.length&&g(b)};a.fn.multiscroll.moveSectionDown=function(){var b=a(".ms-left .ms-section.active").next(".ms-section");!b.length&&c.loopBottom&&(b=a(".ms-left .ms-section").first());b.length&&g(b)};a.fn.multiscroll.moveTo=function(b){var c="",c=isNaN(b)?a('.ms-left [data-anchor="'+b+'"]'):a(".section").eq(b-1);g(c)};a.fn.multiscroll.setKeyboardScrolling=
-function(a){c.keyboardScrolling=a};a.fn.multiscroll.setMouseWheelScrolling=function(a){a?u():document.addEventListener?(document.removeEventListener("mousewheel",f,!1),document.removeEventListener("wheel",f,!1)):document.detachEvent("onmousewheel",f)};a.fn.multiscroll.setScrollingSpeed=function(a){c.scrollingSpeed=a};var n=0,p=0}})(jQuery);
\ No newline at end of file
+!function(R,Y,I,W,X){R.fn.multiscroll=function(f){var o=R.fn.multiscroll;f=R.extend({verticalCentered:!0,scrollingSpeed:700,easing:"easeInQuart",menu:!1,sectionsColor:[],anchors:[],navigation:!1,navigationPosition:"right",navigationColor:"#000",navigationTooltips:[],loopBottom:!1,loopTop:!1,css3:!1,paddingTop:0,paddingBottom:0,fixedElements:null,normalScrollElements:null,keyboardScrolling:!0,touchSensitivity:5,sectionSelector:".ms-section",leftSelector:".ms-left",rightSelector:".ms-right",afterLoad:null,onLeave:null,afterRender:null,afterResize:null},f);var h=600,n=navigator.userAgent.match(/(iPhone|iPod|iPad|Android|playbook|silk|BlackBerry|BB10|Windows Phone|Tizen|Bada|webOS|IEMobile|Opera Mini)/),i="ontouchstart"in Y||0<navigator.msMaxTouchPoints||navigator.maxTouchPoints;".ms-right"!==f.rightSelector&&R(f.rightSelector).addClass("ms-right"),".ms-left"!==f.leftSelector&&R(f.leftSelector).addClass("ms-left");var s,a,l,u=R(".ms-left").find(".ms-section").length,p=!1,r=R(Y).height(),e=function(){var e;e=Y.PointerEvent?{down:"pointerdown",move:"pointermove"}:{down:"MSPointerDown",move:"MSPointerMove"};return e}(),t={touchmove:"ontouchmove"in Y?"touchmove":e.move,touchstart:"ontouchstart"in Y?"touchstart":e.down};function c(){var e=Y.location.hash.replace("#","");if(e.length){var t=R(".ms-left").find('[data-anchor="'+e+'"]');("undefined"==typeof lastScrolledDestiny||e!==lastScrolledDestiny)&&y(t)}}function m(e){e.preventDefault();var t=R(this).parent().index();y(R(".ms-left .ms-section").eq(t))}function d(){var e=R(this).data("tooltip");R('<div class="multiscroll-tooltip '+f.navigationPosition+'">'+e+"</div>").hide().appendTo(R(this)).fadeIn(200)}function v(){R(this).find(".multiscroll-tooltip").fadeOut(200,function(){R(this).remove()})}w(),z(),f.css3&&(f.css3=function(){var e,t=I.createElement("p"),n={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};for(var o in I.body.insertBefore(t,null),n)t.style[o]!==X&&(t.style[o]="translate3d(1px,1px,1px)",e=Y.getComputedStyle(t).getPropertyValue(n[o]));return I.body.removeChild(t),e!==X&&0<e.length&&"none"!==e}()),R("html, body").css({overflow:"hidden",height:"100%"}),".ms-section"!==f.sectionSelector&&R(f.sectionSelector).each(function(){R(this).addClass("ms-section")}),f.navigation&&(R("body").append('<div id="multiscroll-nav"><ul></ul></div>'),(s=R("#multiscroll-nav")).css("color",f.navigationColor),s.addClass(f.navigationPosition)),R(".ms-right, .ms-left").css({width:"50%",position:"absolute",height:"100%","-ms-touch-action":"none"}),R(".ms-right").css({right:"1px",top:"0","-ms-touch-action":"none","touch-action":"none"}),R(".ms-left").css({left:"0",top:"0","-ms-touch-action":"none","touch-action":"none"}),R(".ms-left .ms-section, .ms-right .ms-section").each(function(){var e,t=R(this).index();if((f.paddingTop||f.paddingBottom)&&R(this).css("padding",f.paddingTop+" 0 "+f.paddingBottom+" 0"),void 0!==f.sectionsColor[t]&&R(this).css("background-color",f.sectionsColor[t]),void 0!==f.anchors[t]&&R(this).attr("data-anchor",f.anchors[t]),f.verticalCentered&&(e=R(this)).addClass("ms-table").wrapInner('<div class="ms-tableCell" style="height: '+L(e)+'px" />'),R(this).closest(".ms-left").length&&f.navigation){var n="";f.anchors.length&&(n=f.anchors[t]);var o=f.navigationTooltips[t];void 0===o&&(o=""),f.navigation&&s.find("ul").append('<li data-tooltip="'+o+'"><a href="#'+n+'"><span></span></a></li>')}}),R(".ms-right").html(R(".ms-right").find(".ms-section").get().reverse()),R(".ms-left .ms-section, .ms-right .ms-section").each(function(){var e=R(this).index();R(this).css({height:"100%"}),!e&&f.navigation&&s.find("li").eq(e).find("a").addClass("active")}).promise().done(function(){R(".ms-left .ms-section.active").length||(R(".ms-right").find(".ms-section").last().addClass("active"),R(".ms-left").find(".ms-section").first().addClass("active")),f.navigation&&s.css("margin-top","-"+s.height()/2+"px"),R.isFunction(f.afterRender)&&f.afterRender.call(this),b(),E(),R(Y).on("load",function(){var e,t;e=Y.location.hash.replace("#",""),t=R('.ms-left .ms-section[data-anchor="'+e+'"]'),e.length&&y(t)})}),R(Y).on("hashchange",c),R(I).keydown(function(e){clearTimeout(l);var t=R(I.activeElement);if(!t.is("textarea")&&!t.is("input")&&!t.is("select")&&f.keyboardScrolling){var n=e.which;-1<R.inArray(n,[40,38,32,33,34])&&e.preventDefault(),l=setTimeout(function(){!function(e){var t=e.shiftKey;switch(e.which){case 38:case 33:o.moveSectionUp();break;case 32:if(t){o.moveSectionUp();break}case 40:case 34:o.moveSectionDown();break;case 36:o.moveTo(1);break;case 35:o.moveTo(R(".ms-left .ms-section").length);break;default:;}}(e)},150)}}),R(I).mousedown(function(e){if(1==e.button)return e.preventDefault(),!1}),R(I).on("click","#multiscroll-nav a",m),R(I).on({mouseenter:d,mouseleave:v},"#multiscroll-nav li"),f.normalScrollElements&&(R(I).on("mouseenter",f.normalScrollElements,function(){o.setMouseWheelScrolling(!1)}),R(I).on("mouseleave",f.normalScrollElements,function(){o.setMouseWheelScrolling(!0)})),R(Y).on("resize",S);var g=r;function S(){if(n){var e=R(I.activeElement);if(!e.is("textarea")&&!e.is("input")&&!e.is("select")){var t=R(Y).height();W.abs(t-g)>20*W.max(g,t)/100&&(x(!0),g=t)}}else clearTimeout(a),a=setTimeout(function(){x(!0)},350)}function x(e){r=R(Y).height(),R(".ms-tableCell").each(function(){R(this).css({height:L(R(this).parent())})}),f.scrollOverflow&&scrollBarHandler.createScrollBarForAll(),b(),R.isFunction(f.afterResize)&&f.afterResize.call(this)}function b(){f.css3?(T(R(".ms-left"),"translate3d(0px, -"+R(".ms-left").find(".ms-section.active").position().top+"px, 0px)",!1),T(R(".ms-right"),"translate3d(0px, -"+R(".ms-right").find(".ms-section.active").position().top+"px, 0px)",!1)):(R(".ms-left").css("top",-R(".ms-left").find(".ms-section.active").position().top),R(".ms-right").css("top",-R(".ms-right").find(".ms-section.active").position().top))}function y(e){var t=e.index(),n=R(".ms-right").find(".ms-section").eq(u-1-t),o=e.data("anchor"),i=R(".ms-left .ms-section.active").index()+1,s=function(e){var t=R(".ms-left .ms-section.active").index(),n=e.index();if(n<t)return"up";return"down"}(e);p=!0;var a,l,r,c=e.position().top,m=n.position().top;if(n.addClass("active").siblings().removeClass("active"),e.addClass("active").siblings().removeClass("active"),function(e){f.anchors.length&&(location.hash=e);E()}(o),f.css3){R.isFunction(f.onLeave)&&f.onLeave.call(this,i,t+1,s);var d="translate3d(0px, -"+c+"px, 0px)",v="translate3d(0px, -"+m+"px, 0px)";T(R(".ms-left"),d,!0),T(R(".ms-right"),v,!0),setTimeout(function(){R.isFunction(f.afterLoad)&&f.afterLoad.call(this,o,t+1),setTimeout(function(){p=!1},h)},f.scrollingSpeed)}else R.isFunction(f.onLeave)&&f.onLeave.call(this,i,t+1,s),R(".ms-left").animate({top:-c},f.scrollingSpeed,f.easing,function(){R.isFunction(f.afterLoad)&&f.afterLoad.call(this,o,t+1),setTimeout(function(){p=!1},h)}),R(".ms-right").animate({top:-m},f.scrollingSpeed,f.easing);lastScrolledDestiny=o,a=o,f.menu&&(R(f.menu).find(".active").removeClass("active"),R(f.menu).find('[data-menuanchor="'+a+'"]').addClass("active")),l=o,r=t,f.navigation&&(R("#multiscroll-nav").find(".active").removeClass("active"),l?R("#multiscroll-nav").find('a[href="#'+l+'"]').addClass("active"):R("#multiscroll-nav").find("li").eq(r).find("a").addClass("active"))}function w(){I.addEventListener?(I.addEventListener("mousewheel",C,!1),I.addEventListener("wheel",C,!1)):I.attachEvent("onmousewheel",C)}function C(e){e=Y.event||e;var t=W.max(-1,W.min(1,e.wheelDelta||-e.deltaY||-e.detail));return p||(t<0?o.moveSectionDown():o.moveSectionUp()),!1}function T(e,t,n){var o;e.toggleClass("ms-easing",n),e.css({"-webkit-transform":o=t,"-moz-transform":o,"-ms-transform":o,transform:o})}function E(){var e=R(".ms-left .ms-section.active"),t=e.data("anchor"),n=e.index(),o=String(n);f.anchors.length&&(o=t),o=o.replace("/","-").replace("#","");var i=new RegExp("\\b\\s?ms-viewing-[^\\s]+\\b","g");R("body")[0].className=R("body")[0].className.replace(i,""),R("body").addClass("ms-viewing-"+o)}function L(e){var t=r;if(f.paddingTop||f.paddingBottom){var n=parseInt(e.css("padding-top"))+parseInt(e.css("padding-bottom"));t=r-n}return t}o.moveSectionUp=function(){var e=R(".ms-left .ms-section.active").prev(".ms-section");!e.length&&f.loopTop&&(e=R(".ms-left .ms-section").last()),e.length&&y(e)},o.moveSectionDown=function(){var e=R(".ms-left .ms-section.active").next(".ms-section");!e.length&&f.loopBottom&&(e=R(".ms-left .ms-section").first()),e.length&&y(e)},o.moveTo=function(e){y(isNaN(e)?R('.ms-left [data-anchor="'+e+'"]'):R(".ms-left .ms-section").eq(e-1))},o.setKeyboardScrolling=function(e){f.keyboardScrolling=e},o.setMouseWheelScrolling=function(e){e?w():I.addEventListener?(I.removeEventListener("mousewheel",C,!1),I.removeEventListener("wheel",C,!1)):I.detachEvent("onmousewheel",C)},o.setScrollingSpeed=function(e){f.scrollingSpeed=e};var k=0,B=0;function D(e){if(M(e)){event.preventDefault();R(".ms-left .ms-section.active");if(!p){var t=F(e);B=t.y,t.x,W.abs(k-B)>R(Y).height()/100*f.touchSensitivity&&(B<k?o.moveSectionDown():k<B&&o.moveSectionUp())}}}function M(e){return void 0===e.pointerType||"mouse"!=e.pointerType}function P(e){if(M(e)){var t=F(e);k=t.y,t.x}}function z(){(i||n)&&(I.removeEventListener(t.touchstart,P),I.removeEventListener(t.touchmove,D,{passive:!1}),I.addEventListener(t.touchstart,P),I.addEventListener(t.touchmove,D,{passive:!1}))}function F(e){var t=[];return t.y=void 0!==e.pageY&&(e.pageY||e.pageX)?e.pageY:e.touches[0].pageY,t.x=void 0!==e.pageX&&(e.pageY||e.pageX)?e.pageX:e.touches[0].pageX,i&&M(e)&&void 0!==e.touches&&(t.y=e.touches[0].pageY,t.x=e.touches[0].pageX),t}o.destroy=function(){o.setKeyboardScrolling(!1),o.setMouseWheelScrolling(!1),(i||n)&&(I.removeEventListener(t.touchstart,P),I.removeEventListener(t.touchmove,D,{passive:!1})),R(Y).off("hashchange",c).off("resize",S),R(I).off("mouseenter","#multiscroll-nav li").off("mouseleave","#multiscroll-nav li").off("click","#multiscroll-nav a")},o.build=function(){o.setKeyboardScrolling(!0),o.setMouseWheelScrolling(!0),z(),R(Y).on("hashchange",c).on("resize",S),R(I).on("mouseenter","#multiscroll-nav li",d).on("mouseleave","#multiscroll-nav li",v).on("click","#multiscroll-nav a",m)}}}(jQuery,window,document,Math);
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..3598585
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,3734 @@
+{
+  "name": "multiscroll.js",
+  "version": "0.1.9",
+  "lockfileVersion": 1,
+  "requires": true,
+  "dependencies": {
+    "@gulp-sourcemaps/identity-map": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.1.tgz",
+      "integrity": "sha1-z6I7xYQPkQTOMqZedNt+epdLvuE=",
+      "dev": true,
+      "requires": {
+        "acorn": "5.5.0",
+        "css": "2.2.1",
+        "normalize-path": "2.1.1",
+        "source-map": "0.5.7",
+        "through2": "2.0.3"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        }
+      }
+    },
+    "@gulp-sourcemaps/map-sources": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz",
+      "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=",
+      "dev": true,
+      "requires": {
+        "normalize-path": "2.1.1",
+        "through2": "2.0.3"
+      }
+    },
+    "acorn": {
+      "version": "5.5.0",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.0.tgz",
+      "integrity": "sha512-arn53F07VXmls4o4pUhSzBa4fvaagPRe7AVZ8l7NHxFWUie2DsuFSBMMNAkgzRlOhEhzAnxeKyaWVzOH4xqp/g==",
+      "dev": true
+    },
+    "amdefine": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+      "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+      "dev": true
+    },
+    "atob": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/atob/-/atob-1.1.3.tgz",
+      "integrity": "sha1-lfE2KbEsOlGl0hWr3OKqnzL4B3M=",
+      "dev": true
+    },
+    "commander": {
+      "version": "2.14.1",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz",
+      "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==",
+      "dev": true
+    },
+    "convert-source-map": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
+      "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=",
+      "dev": true
+    },
+    "core-util-is": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+      "dev": true
+    },
+    "css": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/css/-/css-2.2.1.tgz",
+      "integrity": "sha1-c6TIHehdtmTU7mdPfUcIXjstVdw=",
+      "dev": true,
+      "requires": {
+        "inherits": "2.0.3",
+        "source-map": "0.1.43",
+        "source-map-resolve": "0.3.1",
+        "urix": "0.1.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.1.43",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
+          "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
+          "dev": true,
+          "requires": {
+            "amdefine": "1.0.1"
+          }
+        }
+      }
+    },
+    "d": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+      "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
+      "dev": true,
+      "requires": {
+        "es5-ext": "0.10.39"
+      }
+    },
+    "debug": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+      "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+      "dev": true,
+      "requires": {
+        "ms": "2.0.0"
+      }
+    },
+    "debug-fabulous": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.0.0.tgz",
+      "integrity": "sha512-dsd50qQ1atDeurcxL7XOjPp4nZCGZzWIONDujDXzl1atSyC3hMbZD+v6440etw+Vt0Pr8ce4TQzHfX3KZM05Mw==",
+      "dev": true,
+      "requires": {
+        "debug": "3.1.0",
+        "memoizee": "0.4.12",
+        "object-assign": "4.1.1"
+      }
+    },
+    "detect-newline": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz",
+      "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=",
+      "dev": true
+    },
+    "es5-ext": {
+      "version": "0.10.39",
+      "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.39.tgz",
+      "integrity": "sha512-AlaXZhPHl0po/uxMx1tyrlt1O86M6D5iVaDH8UgLfgek4kXTX6vzsRfJQWC2Ku+aG8pkw1XWzh9eTkwfVrsD5g==",
+      "dev": true,
+      "requires": {
+        "es6-iterator": "2.0.3",
+        "es6-symbol": "3.1.1"
+      }
+    },
+    "es6-iterator": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+      "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+      "dev": true,
+      "requires": {
+        "d": "1.0.0",
+        "es5-ext": "0.10.39",
+        "es6-symbol": "3.1.1"
+      }
+    },
+    "es6-symbol": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+      "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+      "dev": true,
+      "requires": {
+        "d": "1.0.0",
+        "es5-ext": "0.10.39"
+      }
+    },
+    "es6-weak-map": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
+      "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
+      "dev": true,
+      "requires": {
+        "d": "1.0.0",
+        "es5-ext": "0.10.39",
+        "es6-iterator": "2.0.3",
+        "es6-symbol": "3.1.1"
+      }
+    },
+    "event-emitter": {
+      "version": "0.3.5",
+      "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+      "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
+      "dev": true,
+      "requires": {
+        "d": "1.0.0",
+        "es5-ext": "0.10.39"
+      }
+    },
+    "glogg": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz",
+      "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==",
+      "dev": true,
+      "requires": {
+        "sparkles": "1.0.0"
+      }
+    },
+    "graceful-fs": {
+      "version": "4.1.11",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+      "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+      "dev": true
+    },
+    "gulp": {
+      "version": "3.9.1",
+      "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz",
+      "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=",
+      "dev": true,
+      "requires": {
+        "archy": "1.0.0",
+        "chalk": "1.1.3",
+        "deprecated": "0.0.1",
+        "gulp-util": "3.0.7",
+        "interpret": "1.0.1",
+        "liftoff": "2.3.0",
+        "minimist": "1.2.0",
+        "orchestrator": "0.3.7",
+        "pretty-hrtime": "1.0.2",
+        "semver": "4.3.6",
+        "tildify": "1.2.0",
+        "v8flags": "2.0.11",
+        "vinyl-fs": "0.3.14"
+      },
+      "dependencies": {
+        "archy": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
+          "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "2.2.1",
+            "escape-string-regexp": "1.0.5",
+            "has-ansi": "2.0.0",
+            "strip-ansi": "3.0.1",
+            "supports-color": "2.0.0"
+          },
+          "dependencies": {
+            "ansi-styles": {
+              "version": "2.2.1",
+              "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+              "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+              "dev": true
+            },
+            "escape-string-regexp": {
+              "version": "1.0.5",
+              "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+              "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+              "dev": true
+            },
+            "has-ansi": {
+              "version": "2.0.0",
+              "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+              "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+              "dev": true,
+              "requires": {
+                "ansi-regex": "2.0.0"
+              },
+              "dependencies": {
+                "ansi-regex": {
+                  "version": "2.0.0",
+                  "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz",
+                  "integrity": "sha1-xQYbbg74qBd15Q9dZhUb9r83EQc=",
+                  "dev": true
+                }
+              }
+            },
+            "strip-ansi": {
+              "version": "3.0.1",
+              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+              "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+              "dev": true,
+              "requires": {
+                "ansi-regex": "2.0.0"
+              },
+              "dependencies": {
+                "ansi-regex": {
+                  "version": "2.0.0",
+                  "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz",
+                  "integrity": "sha1-xQYbbg74qBd15Q9dZhUb9r83EQc=",
+                  "dev": true
+                }
+              }
+            },
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "deprecated": {
+          "version": "0.0.1",
+          "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz",
+          "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=",
+          "dev": true
+        },
+        "gulp-util": {
+          "version": "3.0.7",
+          "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.7.tgz",
+          "integrity": "sha1-eJJcS4+LSQBawBoBHFV+YhiUHLs=",
+          "dev": true,
+          "requires": {
+            "array-differ": "1.0.0",
+            "array-uniq": "1.0.3",
+            "beeper": "1.1.0",
+            "chalk": "1.1.3",
+            "dateformat": "1.0.12",
+            "fancy-log": "1.2.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.6.2",
+            "minimist": "1.2.0",
+            "multipipe": "0.1.2",
+            "object-assign": "3.0.0",
+            "replace-ext": "0.0.1",
+            "through2": "2.0.1",
+            "vinyl": "0.5.3"
+          },
+          "dependencies": {
+            "array-differ": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
+              "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
+              "dev": true
+            },
+            "array-uniq": {
+              "version": "1.0.3",
+              "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+              "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+              "dev": true
+            },
+            "beeper": {
+              "version": "1.1.0",
+              "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.0.tgz",
+              "integrity": "sha1-nub8HOf1T+qs585zWIsFYDeGaiw=",
+              "dev": true
+            },
+            "dateformat": {
+              "version": "1.0.12",
+              "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
+              "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
+              "dev": true,
+              "requires": {
+                "get-stdin": "4.0.1",
+                "meow": "3.7.0"
+              },
+              "dependencies": {
+                "get-stdin": {
+                  "version": "4.0.1",
+                  "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+                  "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+                  "dev": true
+                },
+                "meow": {
+                  "version": "3.7.0",
+                  "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+                  "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+                  "dev": true,
+                  "requires": {
+                    "camelcase-keys": "2.1.0",
+                    "decamelize": "1.2.0",
+                    "loud-rejection": "1.6.0",
+                    "map-obj": "1.0.1",
+                    "minimist": "1.2.0",
+                    "normalize-package-data": "2.3.5",
+                    "object-assign": "4.1.0",
+                    "read-pkg-up": "1.0.1",
+                    "redent": "1.0.0",
+                    "trim-newlines": "1.0.0"
+                  },
+                  "dependencies": {
+                    "camelcase-keys": {
+                      "version": "2.1.0",
+                      "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+                      "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+                      "dev": true,
+                      "requires": {
+                        "camelcase": "2.1.1",
+                        "map-obj": "1.0.1"
+                      },
+                      "dependencies": {
+                        "camelcase": {
+                          "version": "2.1.1",
+                          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+                          "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "decamelize": {
+                      "version": "1.2.0",
+                      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+                      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+                      "dev": true
+                    },
+                    "loud-rejection": {
+                      "version": "1.6.0",
+                      "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+                      "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+                      "dev": true,
+                      "requires": {
+                        "currently-unhandled": "0.4.1",
+                        "signal-exit": "3.0.1"
+                      },
+                      "dependencies": {
+                        "currently-unhandled": {
+                          "version": "0.4.1",
+                          "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+                          "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+                          "dev": true,
+                          "requires": {
+                            "array-find-index": "1.0.2"
+                          },
+                          "dependencies": {
+                            "array-find-index": {
+                              "version": "1.0.2",
+                              "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+                              "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+                              "dev": true
+                            }
+                          }
+                        },
+                        "signal-exit": {
+                          "version": "3.0.1",
+                          "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.1.tgz",
+                          "integrity": "sha1-WkyISZK2OnrNm623iUw+6c/MrYE=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "map-obj": {
+                      "version": "1.0.1",
+                      "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+                      "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+                      "dev": true
+                    },
+                    "normalize-package-data": {
+                      "version": "2.3.5",
+                      "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz",
+                      "integrity": "sha1-jZJPFClg4Xd+f/4XBUNjHMfLAt8=",
+                      "dev": true,
+                      "requires": {
+                        "hosted-git-info": "2.1.5",
+                        "is-builtin-module": "1.0.0",
+                        "semver": "4.3.6",
+                        "validate-npm-package-license": "3.0.1"
+                      },
+                      "dependencies": {
+                        "hosted-git-info": {
+                          "version": "2.1.5",
+                          "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz",
+                          "integrity": "sha1-C6gdkNouJas0ozLm7HeTbhWYEYs=",
+                          "dev": true
+                        },
+                        "is-builtin-module": {
+                          "version": "1.0.0",
+                          "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+                          "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+                          "dev": true,
+                          "requires": {
+                            "builtin-modules": "1.1.1"
+                          },
+                          "dependencies": {
+                            "builtin-modules": {
+                              "version": "1.1.1",
+                              "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+                              "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+                              "dev": true
+                            }
+                          }
+                        },
+                        "validate-npm-package-license": {
+                          "version": "3.0.1",
+                          "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
+                          "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
+                          "dev": true,
+                          "requires": {
+                            "spdx-correct": "1.0.2",
+                            "spdx-expression-parse": "1.0.4"
+                          },
+                          "dependencies": {
+                            "spdx-correct": {
+                              "version": "1.0.2",
+                              "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
+                              "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
+                              "dev": true,
+                              "requires": {
+                                "spdx-license-ids": "1.2.2"
+                              },
+                              "dependencies": {
+                                "spdx-license-ids": {
+                                  "version": "1.2.2",
+                                  "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
+                                  "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
+                                  "dev": true
+                                }
+                              }
+                            },
+                            "spdx-expression-parse": {
+                              "version": "1.0.4",
+                              "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
+                              "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
+                              "dev": true
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "object-assign": {
+                      "version": "4.1.0",
+                      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
+                      "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=",
+                      "dev": true
+                    },
+                    "read-pkg-up": {
+                      "version": "1.0.1",
+                      "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+                      "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+                      "dev": true,
+                      "requires": {
+                        "find-up": "1.1.2",
+                        "read-pkg": "1.1.0"
+                      },
+                      "dependencies": {
+                        "find-up": {
+                          "version": "1.1.2",
+                          "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+                          "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+                          "dev": true,
+                          "requires": {
+                            "path-exists": "2.1.0",
+                            "pinkie-promise": "2.0.1"
+                          },
+                          "dependencies": {
+                            "path-exists": {
+                              "version": "2.1.0",
+                              "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+                              "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+                              "dev": true,
+                              "requires": {
+                                "pinkie-promise": "2.0.1"
+                              }
+                            },
+                            "pinkie-promise": {
+                              "version": "2.0.1",
+                              "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+                              "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+                              "dev": true,
+                              "requires": {
+                                "pinkie": "2.0.4"
+                              },
+                              "dependencies": {
+                                "pinkie": {
+                                  "version": "2.0.4",
+                                  "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+                                  "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+                                  "dev": true
+                                }
+                              }
+                            }
+                          }
+                        },
+                        "read-pkg": {
+                          "version": "1.1.0",
+                          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+                          "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+                          "dev": true,
+                          "requires": {
+                            "load-json-file": "1.1.0",
+                            "normalize-package-data": "2.3.5",
+                            "path-type": "1.1.0"
+                          },
+                          "dependencies": {
+                            "load-json-file": {
+                              "version": "1.1.0",
+                              "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+                              "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+                              "dev": true,
+                              "requires": {
+                                "graceful-fs": "4.1.9",
+                                "parse-json": "2.2.0",
+                                "pify": "2.3.0",
+                                "pinkie-promise": "2.0.1",
+                                "strip-bom": "2.0.0"
+                              },
+                              "dependencies": {
+                                "graceful-fs": {
+                                  "version": "4.1.9",
+                                  "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.9.tgz",
+                                  "integrity": "sha1-uqy6N9GdEfnRRtNXi8mZWMN4fik=",
+                                  "dev": true
+                                },
+                                "parse-json": {
+                                  "version": "2.2.0",
+                                  "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+                                  "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+                                  "dev": true,
+                                  "requires": {
+                                    "error-ex": "1.3.0"
+                                  },
+                                  "dependencies": {
+                                    "error-ex": {
+                                      "version": "1.3.0",
+                                      "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz",
+                                      "integrity": "sha1-5ntD8+gsluo6WE/+4Ln8MyXYAtk=",
+                                      "dev": true,
+                                      "requires": {
+                                        "is-arrayish": "0.2.1"
+                                      },
+                                      "dependencies": {
+                                        "is-arrayish": {
+                                          "version": "0.2.1",
+                                          "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+                                          "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+                                          "dev": true
+                                        }
+                                      }
+                                    }
+                                  }
+                                },
+                                "pify": {
+                                  "version": "2.3.0",
+                                  "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+                                  "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+                                  "dev": true
+                                },
+                                "pinkie-promise": {
+                                  "version": "2.0.1",
+                                  "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+                                  "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+                                  "dev": true,
+                                  "requires": {
+                                    "pinkie": "2.0.4"
+                                  },
+                                  "dependencies": {
+                                    "pinkie": {
+                                      "version": "2.0.4",
+                                      "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+                                      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+                                      "dev": true
+                                    }
+                                  }
+                                },
+                                "strip-bom": {
+                                  "version": "2.0.0",
+                                  "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+                                  "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+                                  "dev": true,
+                                  "requires": {
+                                    "is-utf8": "0.2.1"
+                                  },
+                                  "dependencies": {
+                                    "is-utf8": {
+                                      "version": "0.2.1",
+                                      "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+                                      "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+                                      "dev": true
+                                    }
+                                  }
+                                }
+                              }
+                            },
+                            "path-type": {
+                              "version": "1.1.0",
+                              "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+                              "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+                              "dev": true,
+                              "requires": {
+                                "graceful-fs": "4.1.9",
+                                "pify": "2.3.0",
+                                "pinkie-promise": "2.0.1"
+                              },
+                              "dependencies": {
+                                "graceful-fs": {
+                                  "version": "4.1.9",
+                                  "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.9.tgz",
+                                  "integrity": "sha1-uqy6N9GdEfnRRtNXi8mZWMN4fik=",
+                                  "dev": true
+                                },
+                                "pify": {
+                                  "version": "2.3.0",
+                                  "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+                                  "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+                                  "dev": true
+                                },
+                                "pinkie-promise": {
+                                  "version": "2.0.1",
+                                  "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+                                  "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+                                  "dev": true,
+                                  "requires": {
+                                    "pinkie": "2.0.4"
+                                  },
+                                  "dependencies": {
+                                    "pinkie": {
+                                      "version": "2.0.4",
+                                      "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+                                      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+                                      "dev": true
+                                    }
+                                  }
+                                }
+                              }
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "redent": {
+                      "version": "1.0.0",
+                      "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+                      "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+                      "dev": true,
+                      "requires": {
+                        "indent-string": "2.1.0",
+                        "strip-indent": "1.0.1"
+                      },
+                      "dependencies": {
+                        "indent-string": {
+                          "version": "2.1.0",
+                          "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+                          "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+                          "dev": true,
+                          "requires": {
+                            "repeating": "2.0.1"
+                          },
+                          "dependencies": {
+                            "repeating": {
+                              "version": "2.0.1",
+                              "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+                              "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+                              "dev": true,
+                              "requires": {
+                                "is-finite": "1.0.2"
+                              },
+                              "dependencies": {
+                                "is-finite": {
+                                  "version": "1.0.2",
+                                  "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+                                  "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+                                  "dev": true,
+                                  "requires": {
+                                    "number-is-nan": "1.0.1"
+                                  },
+                                  "dependencies": {
+                                    "number-is-nan": {
+                                      "version": "1.0.1",
+                                      "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+                                      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+                                      "dev": true
+                                    }
+                                  }
+                                }
+                              }
+                            }
+                          }
+                        },
+                        "strip-indent": {
+                          "version": "1.0.1",
+                          "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+                          "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+                          "dev": true,
+                          "requires": {
+                            "get-stdin": "4.0.1"
+                          }
+                        }
+                      }
+                    },
+                    "trim-newlines": {
+                      "version": "1.0.0",
+                      "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+                      "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+                      "dev": true
+                    }
+                  }
+                }
+              }
+            },
+            "fancy-log": {
+              "version": "1.2.0",
+              "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.2.0.tgz",
+              "integrity": "sha1-1aUbU+mrIsoH1VjytnrlX9tfy9g=",
+              "dev": true,
+              "requires": {
+                "chalk": "1.1.3",
+                "time-stamp": "1.0.1"
+              },
+              "dependencies": {
+                "time-stamp": {
+                  "version": "1.0.1",
+                  "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.0.1.tgz",
+                  "integrity": "sha1-n0vSNVnJNllm8zAtu6KwfGuZsVE=",
+                  "dev": true
+                }
+              }
+            },
+            "gulplog": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
+              "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
+              "dev": true,
+              "requires": {
+                "glogg": "1.0.0"
+              },
+              "dependencies": {
+                "glogg": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz",
+                  "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=",
+                  "dev": true,
+                  "requires": {
+                    "sparkles": "1.0.0"
+                  },
+                  "dependencies": {
+                    "sparkles": {
+                      "version": "1.0.0",
+                      "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz",
+                      "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=",
+                      "dev": true
+                    }
+                  }
+                }
+              }
+            },
+            "has-gulplog": {
+              "version": "0.1.0",
+              "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz",
+              "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=",
+              "dev": true,
+              "requires": {
+                "sparkles": "1.0.0"
+              },
+              "dependencies": {
+                "sparkles": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz",
+                  "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=",
+                  "dev": true
+                }
+              }
+            },
+            "lodash._reescape": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz",
+              "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=",
+              "dev": true
+            },
+            "lodash._reevaluate": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz",
+              "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=",
+              "dev": true
+            },
+            "lodash._reinterpolate": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+              "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
+              "dev": true
+            },
+            "lodash.template": {
+              "version": "3.6.2",
+              "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz",
+              "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=",
+              "dev": true,
+              "requires": {
+                "lodash._basecopy": "3.0.1",
+                "lodash._basetostring": "3.0.1",
+                "lodash._basevalues": "3.0.0",
+                "lodash._isiterateecall": "3.0.9",
+                "lodash._reinterpolate": "3.0.0",
+                "lodash.escape": "3.2.0",
+                "lodash.keys": "3.1.2",
+                "lodash.restparam": "3.6.1",
+                "lodash.templatesettings": "3.1.1"
+              },
+              "dependencies": {
+                "lodash._basecopy": {
+                  "version": "3.0.1",
+                  "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
+                  "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
+                  "dev": true
+                },
+                "lodash._basetostring": {
+                  "version": "3.0.1",
+                  "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
+                  "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=",
+                  "dev": true
+                },
+                "lodash._basevalues": {
+                  "version": "3.0.0",
+                  "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz",
+                  "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=",
+                  "dev": true
+                },
+                "lodash._isiterateecall": {
+                  "version": "3.0.9",
+                  "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
+                  "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
+                  "dev": true
+                },
+                "lodash.escape": {
+                  "version": "3.2.0",
+                  "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz",
+                  "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=",
+                  "dev": true,
+                  "requires": {
+                    "lodash._root": "3.0.1"
+                  },
+                  "dependencies": {
+                    "lodash._root": {
+                      "version": "3.0.1",
+                      "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
+                      "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=",
+                      "dev": true
+                    }
+                  }
+                },
+                "lodash.keys": {
+                  "version": "3.1.2",
+                  "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
+                  "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
+                  "dev": true,
+                  "requires": {
+                    "lodash._getnative": "3.9.1",
+                    "lodash.isarguments": "3.1.0",
+                    "lodash.isarray": "3.0.4"
+                  },
+                  "dependencies": {
+                    "lodash._getnative": {
+                      "version": "3.9.1",
+                      "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
+                      "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
+                      "dev": true
+                    },
+                    "lodash.isarguments": {
+                      "version": "3.1.0",
+                      "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
+                      "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
+                      "dev": true
+                    },
+                    "lodash.isarray": {
+                      "version": "3.0.4",
+                      "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
+                      "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
+                      "dev": true
+                    }
+                  }
+                },
+                "lodash.restparam": {
+                  "version": "3.6.1",
+                  "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
+                  "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=",
+                  "dev": true
+                },
+                "lodash.templatesettings": {
+                  "version": "3.1.1",
+                  "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz",
+                  "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=",
+                  "dev": true,
+                  "requires": {
+                    "lodash._reinterpolate": "3.0.0",
+                    "lodash.escape": "3.2.0"
+                  }
+                }
+              }
+            },
+            "multipipe": {
+              "version": "0.1.2",
+              "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz",
+              "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=",
+              "dev": true,
+              "requires": {
+                "duplexer2": "0.0.2"
+              },
+              "dependencies": {
+                "duplexer2": {
+                  "version": "0.0.2",
+                  "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
+                  "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
+                  "dev": true,
+                  "requires": {
+                    "readable-stream": "1.1.14"
+                  },
+                  "dependencies": {
+                    "readable-stream": {
+                      "version": "1.1.14",
+                      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+                      "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+                      "dev": true,
+                      "requires": {
+                        "core-util-is": "1.0.2",
+                        "inherits": "2.0.3",
+                        "isarray": "0.0.1",
+                        "string_decoder": "0.10.31"
+                      },
+                      "dependencies": {
+                        "core-util-is": {
+                          "version": "1.0.2",
+                          "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+                          "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+                          "dev": true
+                        },
+                        "inherits": {
+                          "version": "2.0.3",
+                          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+                          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+                          "dev": true
+                        },
+                        "isarray": {
+                          "version": "0.0.1",
+                          "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+                          "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+                          "dev": true
+                        },
+                        "string_decoder": {
+                          "version": "0.10.31",
+                          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+                          "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+                          "dev": true
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            },
+            "object-assign": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
+              "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=",
+              "dev": true
+            },
+            "replace-ext": {
+              "version": "0.0.1",
+              "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
+              "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
+              "dev": true
+            },
+            "through2": {
+              "version": "2.0.1",
+              "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz",
+              "integrity": "sha1-OE51MU1J8y3hLuu4E2uOtrXVnak=",
+              "dev": true,
+              "requires": {
+                "readable-stream": "2.0.6",
+                "xtend": "4.0.1"
+              },
+              "dependencies": {
+                "readable-stream": {
+                  "version": "2.0.6",
+                  "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
+                  "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
+                  "dev": true,
+                  "requires": {
+                    "core-util-is": "1.0.2",
+                    "inherits": "2.0.3",
+                    "isarray": "1.0.0",
+                    "process-nextick-args": "1.0.7",
+                    "string_decoder": "0.10.31",
+                    "util-deprecate": "1.0.2"
+                  },
+                  "dependencies": {
+                    "core-util-is": {
+                      "version": "1.0.2",
+                      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+                      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+                      "dev": true
+                    },
+                    "inherits": {
+                      "version": "2.0.3",
+                      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+                      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+                      "dev": true
+                    },
+                    "isarray": {
+                      "version": "1.0.0",
+                      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+                      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+                      "dev": true
+                    },
+                    "process-nextick-args": {
+                      "version": "1.0.7",
+                      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+                      "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
+                      "dev": true
+                    },
+                    "string_decoder": {
+                      "version": "0.10.31",
+                      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+                      "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+                      "dev": true
+                    },
+                    "util-deprecate": {
+                      "version": "1.0.2",
+                      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+                      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+                      "dev": true
+                    }
+                  }
+                },
+                "xtend": {
+                  "version": "4.0.1",
+                  "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+                  "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+                  "dev": true
+                }
+              }
+            },
+            "vinyl": {
+              "version": "0.5.3",
+              "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz",
+              "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=",
+              "dev": true,
+              "requires": {
+                "clone": "1.0.2",
+                "clone-stats": "0.0.1",
+                "replace-ext": "0.0.1"
+              },
+              "dependencies": {
+                "clone": {
+                  "version": "1.0.2",
+                  "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
+                  "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=",
+                  "dev": true
+                },
+                "clone-stats": {
+                  "version": "0.0.1",
+                  "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
+                  "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
+                  "dev": true
+                }
+              }
+            }
+          }
+        },
+        "interpret": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz",
+          "integrity": "sha1-1Xn7f2k7hYAElHrzn6DbSfeVYCw=",
+          "dev": true
+        },
+        "liftoff": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.3.0.tgz",
+          "integrity": "sha1-qY8v9nGD2Lp8+soQVIvX/wVQs4U=",
+          "dev": true,
+          "requires": {
+            "extend": "3.0.0",
+            "findup-sync": "0.4.3",
+            "fined": "1.0.2",
+            "flagged-respawn": "0.3.2",
+            "lodash.isplainobject": "4.0.6",
+            "lodash.isstring": "4.0.1",
+            "lodash.mapvalues": "4.6.0",
+            "rechoir": "0.6.2",
+            "resolve": "1.1.7"
+          },
+          "dependencies": {
+            "extend": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz",
+              "integrity": "sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ=",
+              "dev": true
+            },
+            "findup-sync": {
+              "version": "0.4.3",
+              "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz",
+              "integrity": "sha1-QAQ5Kee8YK3wt/SCfExudaDeyhI=",
+              "dev": true,
+              "requires": {
+                "detect-file": "0.1.0",
+                "is-glob": "2.0.1",
+                "micromatch": "2.3.11",
+                "resolve-dir": "0.1.1"
+              },
+              "dependencies": {
+                "detect-file": {
+                  "version": "0.1.0",
+                  "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-0.1.0.tgz",
+                  "integrity": "sha1-STXe39lIhkjgBrASlWbpOGcR6mM=",
+                  "dev": true,
+                  "requires": {
+                    "fs-exists-sync": "0.1.0"
+                  },
+                  "dependencies": {
+                    "fs-exists-sync": {
+                      "version": "0.1.0",
+                      "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz",
+                      "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=",
+                      "dev": true
+                    }
+                  }
+                },
+                "is-glob": {
+                  "version": "2.0.1",
+                  "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+                  "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+                  "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": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+                      "dev": true
+                    }
+                  }
+                },
+                "micromatch": {
+                  "version": "2.3.11",
+                  "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+                  "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+                  "dev": true,
+                  "requires": {
+                    "arr-diff": "2.0.0",
+                    "array-unique": "0.2.1",
+                    "braces": "1.8.5",
+                    "expand-brackets": "0.1.5",
+                    "extglob": "0.3.2",
+                    "filename-regex": "2.0.0",
+                    "is-extglob": "1.0.0",
+                    "is-glob": "2.0.1",
+                    "kind-of": "3.0.4",
+                    "normalize-path": "2.0.1",
+                    "object.omit": "2.0.0",
+                    "parse-glob": "3.0.4",
+                    "regex-cache": "0.4.3"
+                  },
+                  "dependencies": {
+                    "arr-diff": {
+                      "version": "2.0.0",
+                      "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+                      "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+                      "dev": true,
+                      "requires": {
+                        "arr-flatten": "1.0.1"
+                      },
+                      "dependencies": {
+                        "arr-flatten": {
+                          "version": "1.0.1",
+                          "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz",
+                          "integrity": "sha1-5f/lTUXhnzLyFukeuZyM6JK7YEs=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "array-unique": {
+                      "version": "0.2.1",
+                      "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+                      "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
+                      "dev": true
+                    },
+                    "braces": {
+                      "version": "1.8.5",
+                      "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+                      "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+                      "dev": true,
+                      "requires": {
+                        "expand-range": "1.8.2",
+                        "preserve": "0.2.0",
+                        "repeat-element": "1.1.2"
+                      },
+                      "dependencies": {
+                        "expand-range": {
+                          "version": "1.8.2",
+                          "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
+                          "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
+                          "dev": true,
+                          "requires": {
+                            "fill-range": "2.2.3"
+                          },
+                          "dependencies": {
+                            "fill-range": {
+                              "version": "2.2.3",
+                              "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
+                              "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
+                              "dev": true,
+                              "requires": {
+                                "is-number": "2.1.0",
+                                "isobject": "2.1.0",
+                                "randomatic": "1.1.5",
+                                "repeat-element": "1.1.2",
+                                "repeat-string": "1.5.4"
+                              },
+                              "dependencies": {
+                                "is-number": {
+                                  "version": "2.1.0",
+                                  "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
+                                  "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+                                  "dev": true,
+                                  "requires": {
+                                    "kind-of": "3.0.4"
+                                  }
+                                },
+                                "isobject": {
+                                  "version": "2.1.0",
+                                  "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+                                  "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+                                  "dev": true,
+                                  "requires": {
+                                    "isarray": "1.0.0"
+                                  },
+                                  "dependencies": {
+                                    "isarray": {
+                                      "version": "1.0.0",
+                                      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+                                      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+                                      "dev": true
+                                    }
+                                  }
+                                },
+                                "randomatic": {
+                                  "version": "1.1.5",
+                                  "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.5.tgz",
+                                  "integrity": "sha1-Xp718tVzxnvSuBJK6QtRVuRXhAs=",
+                                  "dev": true,
+                                  "requires": {
+                                    "is-number": "2.1.0",
+                                    "kind-of": "3.0.4"
+                                  }
+                                },
+                                "repeat-string": {
+                                  "version": "1.5.4",
+                                  "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.4.tgz",
+                                  "integrity": "sha1-ZOwMkeD0tHX5DVtkNlHj5uW2wtU=",
+                                  "dev": true
+                                }
+                              }
+                            }
+                          }
+                        },
+                        "preserve": {
+                          "version": "0.2.0",
+                          "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
+                          "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
+                          "dev": true
+                        },
+                        "repeat-element": {
+                          "version": "1.1.2",
+                          "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
+                          "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "expand-brackets": {
+                      "version": "0.1.5",
+                      "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+                      "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+                      "dev": true,
+                      "requires": {
+                        "is-posix-bracket": "0.1.1"
+                      },
+                      "dependencies": {
+                        "is-posix-bracket": {
+                          "version": "0.1.1",
+                          "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
+                          "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "extglob": {
+                      "version": "0.3.2",
+                      "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+                      "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+                      "dev": true,
+                      "requires": {
+                        "is-extglob": "1.0.0"
+                      }
+                    },
+                    "filename-regex": {
+                      "version": "2.0.0",
+                      "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz",
+                      "integrity": "sha1-mW4+gEebmLmJfxWopYs9CE6SZ3U=",
+                      "dev": true
+                    },
+                    "is-extglob": {
+                      "version": "1.0.0",
+                      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+                      "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+                      "dev": true
+                    },
+                    "kind-of": {
+                      "version": "3.0.4",
+                      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.0.4.tgz",
+                      "integrity": "sha1-e47PGKThf4Jp1ztQHJ8jLJaIenQ=",
+                      "dev": true,
+                      "requires": {
+                        "is-buffer": "1.1.4"
+                      },
+                      "dependencies": {
+                        "is-buffer": {
+                          "version": "1.1.4",
+                          "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.4.tgz",
+                          "integrity": "sha1-z8hszV3FpS+oBIkRHGkgxFfi2Ys=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "normalize-path": {
+                      "version": "2.0.1",
+                      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz",
+                      "integrity": "sha1-R4hqwWYnYNQmG32XnSQXCdPOP3o=",
+                      "dev": true
+                    },
+                    "object.omit": {
+                      "version": "2.0.0",
+                      "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.0.tgz",
+                      "integrity": "sha1-hoWXMz1U5gZilAu0WGBd1q4S/pQ=",
+                      "dev": true,
+                      "requires": {
+                        "for-own": "0.1.4",
+                        "is-extendable": "0.1.1"
+                      },
+                      "dependencies": {
+                        "for-own": {
+                          "version": "0.1.4",
+                          "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.4.tgz",
+                          "integrity": "sha1-AUm0GjkIjHUV9R6+HBOG1F+TUHI=",
+                          "dev": true,
+                          "requires": {
+                            "for-in": "0.1.6"
+                          },
+                          "dependencies": {
+                            "for-in": {
+                              "version": "0.1.6",
+                              "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.6.tgz",
+                              "integrity": "sha1-yfluib+tGKVFr17D7TUqHZ5bTcg=",
+                              "dev": true
+                            }
+                          }
+                        },
+                        "is-extendable": {
+                          "version": "0.1.1",
+                          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+                          "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "parse-glob": {
+                      "version": "3.0.4",
+                      "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+                      "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+                      "dev": true,
+                      "requires": {
+                        "glob-base": "0.3.0",
+                        "is-dotfile": "1.0.2",
+                        "is-extglob": "1.0.0",
+                        "is-glob": "2.0.1"
+                      },
+                      "dependencies": {
+                        "glob-base": {
+                          "version": "0.3.0",
+                          "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
+                          "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+                          "dev": true,
+                          "requires": {
+                            "glob-parent": "2.0.0",
+                            "is-glob": "2.0.1"
+                          },
+                          "dependencies": {
+                            "glob-parent": {
+                              "version": "2.0.0",
+                              "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+                              "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+                              "dev": true,
+                              "requires": {
+                                "is-glob": "2.0.1"
+                              }
+                            }
+                          }
+                        },
+                        "is-dotfile": {
+                          "version": "1.0.2",
+                          "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz",
+                          "integrity": "sha1-LBMjg/ORmfjtwmjKAbmwB9IFzE0=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "regex-cache": {
+                      "version": "0.4.3",
+                      "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz",
+                      "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=",
+                      "dev": true,
+                      "requires": {
+                        "is-equal-shallow": "0.1.3",
+                        "is-primitive": "2.0.0"
+                      },
+                      "dependencies": {
+                        "is-equal-shallow": {
+                          "version": "0.1.3",
+                          "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
+                          "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+                          "dev": true,
+                          "requires": {
+                            "is-primitive": "2.0.0"
+                          }
+                        },
+                        "is-primitive": {
+                          "version": "2.0.0",
+                          "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
+                          "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
+                          "dev": true
+                        }
+                      }
+                    }
+                  }
+                },
+                "resolve-dir": {
+                  "version": "0.1.1",
+                  "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz",
+                  "integrity": "sha1-shklmlYC+sXFxJatiUpujMQwJh4=",
+                  "dev": true,
+                  "requires": {
+                    "expand-tilde": "1.2.2",
+                    "global-modules": "0.2.3"
+                  },
+                  "dependencies": {
+                    "expand-tilde": {
+                      "version": "1.2.2",
+                      "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz",
+                      "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=",
+                      "dev": true,
+                      "requires": {
+                        "os-homedir": "1.0.2"
+                      },
+                      "dependencies": {
+                        "os-homedir": {
+                          "version": "1.0.2",
+                          "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+                          "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "global-modules": {
+                      "version": "0.2.3",
+                      "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz",
+                      "integrity": "sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=",
+                      "dev": true,
+                      "requires": {
+                        "global-prefix": "0.1.4",
+                        "is-windows": "0.2.0"
+                      },
+                      "dependencies": {
+                        "global-prefix": {
+                          "version": "0.1.4",
+                          "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.4.tgz",
+                          "integrity": "sha1-BRWNsc3i3UkbRV4pDrOri/xFxuE=",
+                          "dev": true,
+                          "requires": {
+                            "ini": "1.3.4",
+                            "is-windows": "0.2.0",
+                            "osenv": "0.1.3",
+                            "which": "1.2.11"
+                          },
+                          "dependencies": {
+                            "ini": {
+                              "version": "1.3.4",
+                              "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
+                              "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=",
+                              "dev": true
+                            },
+                            "osenv": {
+                              "version": "0.1.3",
+                              "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.3.tgz",
+                              "integrity": "sha1-g88FxtZFj8TVrGNi6jJdkvJ1Qhc=",
+                              "dev": true,
+                              "requires": {
+                                "os-homedir": "1.0.2",
+                                "os-tmpdir": "1.0.2"
+                              },
+                              "dependencies": {
+                                "os-homedir": {
+                                  "version": "1.0.2",
+                                  "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+                                  "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+                                  "dev": true
+                                },
+                                "os-tmpdir": {
+                                  "version": "1.0.2",
+                                  "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+                                  "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+                                  "dev": true
+                                }
+                              }
+                            },
+                            "which": {
+                              "version": "1.2.11",
+                              "resolved": "https://registry.npmjs.org/which/-/which-1.2.11.tgz",
+                              "integrity": "sha1-yLLu6muMFln6fB3U/aq+lTPcXos=",
+                              "dev": true,
+                              "requires": {
+                                "isexe": "1.1.2"
+                              },
+                              "dependencies": {
+                                "isexe": {
+                                  "version": "1.1.2",
+                                  "resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz",
+                                  "integrity": "sha1-NvPiLmB1CSD15yQaR2qMakInWtA=",
+                                  "dev": true
+                                }
+                              }
+                            }
+                          }
+                        },
+                        "is-windows": {
+                          "version": "0.2.0",
+                          "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz",
+                          "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=",
+                          "dev": true
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            },
+            "fined": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmjs.org/fined/-/fined-1.0.2.tgz",
+              "integrity": "sha1-WyhCS3YNdZiWC374SA3/itNmDpc=",
+              "dev": true,
+              "requires": {
+                "expand-tilde": "1.2.2",
+                "lodash.assignwith": "4.2.0",
+                "lodash.isempty": "4.4.0",
+                "lodash.isplainobject": "4.0.6",
+                "lodash.isstring": "4.0.1",
+                "lodash.pick": "4.4.0",
+                "parse-filepath": "1.0.1"
+              },
+              "dependencies": {
+                "expand-tilde": {
+                  "version": "1.2.2",
+                  "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz",
+                  "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=",
+                  "dev": true,
+                  "requires": {
+                    "os-homedir": "1.0.2"
+                  },
+                  "dependencies": {
+                    "os-homedir": {
+                      "version": "1.0.2",
+                      "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+                      "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+                      "dev": true
+                    }
+                  }
+                },
+                "lodash.assignwith": {
+                  "version": "4.2.0",
+                  "resolved": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz",
+                  "integrity": "sha1-EnqX8CrcQXUalU0ksN4X4QDgOOs=",
+                  "dev": true
+                },
+                "lodash.isempty": {
+                  "version": "4.4.0",
+                  "resolved": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz",
+                  "integrity": "sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=",
+                  "dev": true
+                },
+                "lodash.pick": {
+                  "version": "4.4.0",
+                  "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
+                  "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=",
+                  "dev": true
+                },
+                "parse-filepath": {
+                  "version": "1.0.1",
+                  "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.1.tgz",
+                  "integrity": "sha1-FZ1hVdQ5BNFsEO9piRHaHpGWm3M=",
+                  "dev": true,
+                  "requires": {
+                    "is-absolute": "0.2.5",
+                    "map-cache": "0.2.2",
+                    "path-root": "0.1.1"
+                  },
+                  "dependencies": {
+                    "is-absolute": {
+                      "version": "0.2.5",
+                      "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.5.tgz",
+                      "integrity": "sha1-mUFCufRo0nwU+/DNMP5325NMp20=",
+                      "dev": true,
+                      "requires": {
+                        "is-relative": "0.2.1",
+                        "is-windows": "0.1.1"
+                      },
+                      "dependencies": {
+                        "is-relative": {
+                          "version": "0.2.1",
+                          "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz",
+                          "integrity": "sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU=",
+                          "dev": true,
+                          "requires": {
+                            "is-unc-path": "0.1.1"
+                          },
+                          "dependencies": {
+                            "is-unc-path": {
+                              "version": "0.1.1",
+                              "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.1.tgz",
+                              "integrity": "sha1-qyUz13rXM1YRJMPcD1zYuQBUyGs=",
+                              "dev": true,
+                              "requires": {
+                                "unc-path-regex": "0.1.2"
+                              },
+                              "dependencies": {
+                                "unc-path-regex": {
+                                  "version": "0.1.2",
+                                  "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
+                                  "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=",
+                                  "dev": true
+                                }
+                              }
+                            }
+                          }
+                        },
+                        "is-windows": {
+                          "version": "0.1.1",
+                          "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.1.1.tgz",
+                          "integrity": "sha1-vjEHFUMc+rzMVKs5USEPoLbQGr4=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "map-cache": {
+                      "version": "0.2.2",
+                      "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+                      "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+                      "dev": true
+                    },
+                    "path-root": {
+                      "version": "0.1.1",
+                      "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
+                      "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
+                      "dev": true,
+                      "requires": {
+                        "path-root-regex": "0.1.2"
+                      },
+                      "dependencies": {
+                        "path-root-regex": {
+                          "version": "0.1.2",
+                          "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
+                          "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=",
+                          "dev": true
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            },
+            "flagged-respawn": {
+              "version": "0.3.2",
+              "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-0.3.2.tgz",
+              "integrity": "sha1-/xke3c1wiKZ1smEP/8l2vpuAdLU=",
+              "dev": true
+            },
+            "lodash.isplainobject": {
+              "version": "4.0.6",
+              "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+              "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=",
+              "dev": true
+            },
+            "lodash.isstring": {
+              "version": "4.0.1",
+              "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+              "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=",
+              "dev": true
+            },
+            "lodash.mapvalues": {
+              "version": "4.6.0",
+              "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz",
+              "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=",
+              "dev": true
+            },
+            "rechoir": {
+              "version": "0.6.2",
+              "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+              "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+              "dev": true,
+              "requires": {
+                "resolve": "1.1.7"
+              }
+            },
+            "resolve": {
+              "version": "1.1.7",
+              "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
+              "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
+              "dev": true
+            }
+          }
+        },
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+          "dev": true
+        },
+        "orchestrator": {
+          "version": "0.3.7",
+          "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.7.tgz",
+          "integrity": "sha1-xFBk4ixaKnuZc09AmpX/7cfTw98=",
+          "dev": true,
+          "requires": {
+            "end-of-stream": "0.1.5",
+            "sequencify": "0.0.7",
+            "stream-consume": "0.1.0"
+          },
+          "dependencies": {
+            "end-of-stream": {
+              "version": "0.1.5",
+              "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz",
+              "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=",
+              "dev": true,
+              "requires": {
+                "once": "1.3.3"
+              },
+              "dependencies": {
+                "once": {
+                  "version": "1.3.3",
+                  "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
+                  "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
+                  "dev": true,
+                  "requires": {
+                    "wrappy": "1.0.2"
+                  },
+                  "dependencies": {
+                    "wrappy": {
+                      "version": "1.0.2",
+                      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+                      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+                      "dev": true
+                    }
+                  }
+                }
+              }
+            },
+            "sequencify": {
+              "version": "0.0.7",
+              "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz",
+              "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=",
+              "dev": true
+            },
+            "stream-consume": {
+              "version": "0.1.0",
+              "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz",
+              "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=",
+              "dev": true
+            }
+          }
+        },
+        "pretty-hrtime": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.2.tgz",
+          "integrity": "sha1-cMqW9NBiikQ7kYdY95QWqae8n6g=",
+          "dev": true
+        },
+        "semver": {
+          "version": "4.3.6",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
+          "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=",
+          "dev": true
+        },
+        "tildify": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz",
+          "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=",
+          "dev": true,
+          "requires": {
+            "os-homedir": "1.0.2"
+          },
+          "dependencies": {
+            "os-homedir": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+              "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+              "dev": true
+            }
+          }
+        },
+        "v8flags": {
+          "version": "2.0.11",
+          "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.0.11.tgz",
+          "integrity": "sha1-vKjzDw1tYGEswsAGQeaWLUKuaIE=",
+          "dev": true,
+          "requires": {
+            "user-home": "1.1.1"
+          },
+          "dependencies": {
+            "user-home": {
+              "version": "1.1.1",
+              "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
+              "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=",
+              "dev": true
+            }
+          }
+        },
+        "vinyl-fs": {
+          "version": "0.3.14",
+          "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz",
+          "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=",
+          "dev": true,
+          "requires": {
+            "defaults": "1.0.3",
+            "glob-stream": "3.1.18",
+            "glob-watcher": "0.0.6",
+            "graceful-fs": "3.0.11",
+            "mkdirp": "0.5.1",
+            "strip-bom": "1.0.0",
+            "through2": "0.6.5",
+            "vinyl": "0.4.6"
+          },
+          "dependencies": {
+            "defaults": {
+              "version": "1.0.3",
+              "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
+              "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
+              "dev": true,
+              "requires": {
+                "clone": "1.0.2"
+              },
+              "dependencies": {
+                "clone": {
+                  "version": "1.0.2",
+                  "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
+                  "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=",
+                  "dev": true
+                }
+              }
+            },
+            "glob-stream": {
+              "version": "3.1.18",
+              "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz",
+              "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=",
+              "dev": true,
+              "requires": {
+                "glob": "4.5.3",
+                "glob2base": "0.0.12",
+                "minimatch": "2.0.10",
+                "ordered-read-streams": "0.1.0",
+                "through2": "0.6.5",
+                "unique-stream": "1.0.0"
+              },
+              "dependencies": {
+                "glob": {
+                  "version": "4.5.3",
+                  "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
+                  "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=",
+                  "dev": true,
+                  "requires": {
+                    "inflight": "1.0.6",
+                    "inherits": "2.0.3",
+                    "minimatch": "2.0.10",
+                    "once": "1.4.0"
+                  },
+                  "dependencies": {
+                    "inflight": {
+                      "version": "1.0.6",
+                      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+                      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+                      "dev": true,
+                      "requires": {
+                        "once": "1.4.0",
+                        "wrappy": "1.0.2"
+                      },
+                      "dependencies": {
+                        "wrappy": {
+                          "version": "1.0.2",
+                          "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+                          "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "inherits": {
+                      "version": "2.0.3",
+                      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+                      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+                      "dev": true
+                    },
+                    "once": {
+                      "version": "1.4.0",
+                      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+                      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+                      "dev": true,
+                      "requires": {
+                        "wrappy": "1.0.2"
+                      },
+                      "dependencies": {
+                        "wrappy": {
+                          "version": "1.0.2",
+                          "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+                          "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+                          "dev": true
+                        }
+                      }
+                    }
+                  }
+                },
+                "glob2base": {
+                  "version": "0.0.12",
+                  "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz",
+                  "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=",
+                  "dev": true,
+                  "requires": {
+                    "find-index": "0.1.1"
+                  },
+                  "dependencies": {
+                    "find-index": {
+                      "version": "0.1.1",
+                      "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz",
+                      "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=",
+                      "dev": true
+                    }
+                  }
+                },
+                "minimatch": {
+                  "version": "2.0.10",
+                  "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz",
+                  "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=",
+                  "dev": true,
+                  "requires": {
+                    "brace-expansion": "1.1.6"
+                  },
+                  "dependencies": {
+                    "brace-expansion": {
+                      "version": "1.1.6",
+                      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz",
+                      "integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=",
+                      "dev": true,
+                      "requires": {
+                        "balanced-match": "0.4.2",
+                        "concat-map": "0.0.1"
+                      },
+                      "dependencies": {
+                        "balanced-match": {
+                          "version": "0.4.2",
+                          "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+                          "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
+                          "dev": true
+                        },
+                        "concat-map": {
+                          "version": "0.0.1",
+                          "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+                          "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+                          "dev": true
+                        }
+                      }
+                    }
+                  }
+                },
+                "ordered-read-streams": {
+                  "version": "0.1.0",
+                  "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz",
+                  "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=",
+                  "dev": true
+                },
+                "unique-stream": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz",
+                  "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=",
+                  "dev": true
+                }
+              }
+            },
+            "glob-watcher": {
+              "version": "0.0.6",
+              "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz",
+              "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=",
+              "dev": true,
+              "requires": {
+                "gaze": "0.5.2"
+              },
+              "dependencies": {
+                "gaze": {
+                  "version": "0.5.2",
+                  "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz",
+                  "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=",
+                  "dev": true,
+                  "requires": {
+                    "globule": "0.1.0"
+                  },
+                  "dependencies": {
+                    "globule": {
+                      "version": "0.1.0",
+                      "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz",
+                      "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=",
+                      "dev": true,
+                      "requires": {
+                        "glob": "3.1.21",
+                        "lodash": "1.0.2",
+                        "minimatch": "0.2.14"
+                      },
+                      "dependencies": {
+                        "glob": {
+                          "version": "3.1.21",
+                          "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
+                          "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
+                          "dev": true,
+                          "requires": {
+                            "graceful-fs": "1.2.3",
+                            "inherits": "1.0.2",
+                            "minimatch": "0.2.14"
+                          },
+                          "dependencies": {
+                            "graceful-fs": {
+                              "version": "1.2.3",
+                              "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
+                              "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
+                              "dev": true
+                            },
+                            "inherits": {
+                              "version": "1.0.2",
+                              "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
+                              "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=",
+                              "dev": true
+                            }
+                          }
+                        },
+                        "lodash": {
+                          "version": "1.0.2",
+                          "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz",
+                          "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=",
+                          "dev": true
+                        },
+                        "minimatch": {
+                          "version": "0.2.14",
+                          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
+                          "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
+                          "dev": true,
+                          "requires": {
+                            "lru-cache": "2.7.3",
+                            "sigmund": "1.0.1"
+                          },
+                          "dependencies": {
+                            "lru-cache": {
+                              "version": "2.7.3",
+                              "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
+                              "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
+                              "dev": true
+                            },
+                            "sigmund": {
+                              "version": "1.0.1",
+                              "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
+                              "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
+                              "dev": true
+                            }
+                          }
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            },
+            "graceful-fs": {
+              "version": "3.0.11",
+              "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
+              "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
+              "dev": true,
+              "requires": {
+                "natives": "1.1.0"
+              },
+              "dependencies": {
+                "natives": {
+                  "version": "1.1.0",
+                  "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz",
+                  "integrity": "sha1-6f+EFBimsux6SV6TmYT3jxY+bjE=",
+                  "dev": true
+                }
+              }
+            },
+            "mkdirp": {
+              "version": "0.5.1",
+              "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+              "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+              "dev": true,
+              "requires": {
+                "minimist": "0.0.8"
+              },
+              "dependencies": {
+                "minimist": {
+                  "version": "0.0.8",
+                  "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+                  "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+                  "dev": true
+                }
+              }
+            },
+            "strip-bom": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz",
+              "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=",
+              "dev": true,
+              "requires": {
+                "first-chunk-stream": "1.0.0",
+                "is-utf8": "0.2.1"
+              },
+              "dependencies": {
+                "first-chunk-stream": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
+                  "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=",
+                  "dev": true
+                },
+                "is-utf8": {
+                  "version": "0.2.1",
+                  "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+                  "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+                  "dev": true
+                }
+              }
+            },
+            "through2": {
+              "version": "0.6.5",
+              "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+              "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
+              "dev": true,
+              "requires": {
+                "readable-stream": "1.0.34",
+                "xtend": "4.0.1"
+              },
+              "dependencies": {
+                "readable-stream": {
+                  "version": "1.0.34",
+                  "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+                  "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+                  "dev": true,
+                  "requires": {
+                    "core-util-is": "1.0.2",
+                    "inherits": "2.0.3",
+                    "isarray": "0.0.1",
+                    "string_decoder": "0.10.31"
+                  },
+                  "dependencies": {
+                    "core-util-is": {
+                      "version": "1.0.2",
+                      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+                      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+                      "dev": true
+                    },
+                    "inherits": {
+                      "version": "2.0.3",
+                      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+                      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+                      "dev": true
+                    },
+                    "isarray": {
+                      "version": "0.0.1",
+                      "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+                      "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+                      "dev": true
+                    },
+                    "string_decoder": {
+                      "version": "0.10.31",
+                      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+                      "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+                      "dev": true
+                    }
+                  }
+                },
+                "xtend": {
+                  "version": "4.0.1",
+                  "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+                  "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+                  "dev": true
+                }
+              }
+            },
+            "vinyl": {
+              "version": "0.4.6",
+              "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
+              "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
+              "dev": true,
+              "requires": {
+                "clone": "0.2.0",
+                "clone-stats": "0.0.1"
+              },
+              "dependencies": {
+                "clone": {
+                  "version": "0.2.0",
+                  "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
+                  "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
+                  "dev": true
+                },
+                "clone-stats": {
+                  "version": "0.0.1",
+                  "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
+                  "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
+                  "dev": true
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "gulp-clean-css": {
+      "version": "2.0.13",
+      "resolved": "https://registry.npmjs.org/gulp-clean-css/-/gulp-clean-css-2.0.13.tgz",
+      "integrity": "sha1-hd70qqKvbwbBZG4FER/XtLXmJ9A=",
+      "dev": true,
+      "requires": {
+        "clean-css": "3.4.20",
+        "gulp-util": "3.0.7",
+        "object-assign": "4.1.0",
+        "readable-stream": "2.1.5",
+        "vinyl-bufferstream": "1.0.1",
+        "vinyl-sourcemaps-apply": "0.2.1"
+      },
+      "dependencies": {
+        "clean-css": {
+          "version": "3.4.20",
+          "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.20.tgz",
+          "integrity": "sha1-wNiWO1RI4DDwvNPd0NrE3+PepQE=",
+          "dev": true,
+          "requires": {
+            "commander": "2.8.1",
+            "source-map": "0.4.4"
+          },
+          "dependencies": {
+            "commander": {
+              "version": "2.8.1",
+              "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
+              "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
+              "dev": true,
+              "requires": {
+                "graceful-readlink": "1.0.1"
+              },
+              "dependencies": {
+                "graceful-readlink": {
+                  "version": "1.0.1",
+                  "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+                  "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
+                  "dev": true
+                }
+              }
+            },
+            "source-map": {
+              "version": "0.4.4",
+              "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+              "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+              "dev": true,
+              "requires": {
+                "amdefine": "1.0.0"
+              },
+              "dependencies": {
+                "amdefine": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz",
+                  "integrity": "sha1-/RdHRwDLXMnCtwnwvp0jzjwZjDM=",
+                  "dev": true
+                }
+              }
+            }
+          }
+        },
+        "gulp-util": {
+          "version": "3.0.7",
+          "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.7.tgz",
+          "integrity": "sha1-eJJcS4+LSQBawBoBHFV+YhiUHLs=",
+          "dev": true,
+          "requires": {
+            "array-differ": "1.0.0",
+            "array-uniq": "1.0.3",
+            "beeper": "1.1.0",
+            "chalk": "1.1.3",
+            "dateformat": "1.0.12",
+            "fancy-log": "1.2.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.6.2",
+            "minimist": "1.2.0",
+            "multipipe": "0.1.2",
+            "object-assign": "3.0.0",
+            "replace-ext": "0.0.1",
+            "through2": "2.0.1",
+            "vinyl": "0.5.3"
+          },
+          "dependencies": {
+            "array-differ": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
+              "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
+              "dev": true
+            },
+            "array-uniq": {
+              "version": "1.0.3",
+              "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+              "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+              "dev": true
+            },
+            "beeper": {
+              "version": "1.1.0",
+              "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.0.tgz",
+              "integrity": "sha1-nub8HOf1T+qs585zWIsFYDeGaiw=",
+              "dev": true
+            },
+            "chalk": {
+              "version": "1.1.3",
+              "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+              "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+              "dev": true,
+              "requires": {
+                "ansi-styles": "2.2.1",
+                "escape-string-regexp": "1.0.5",
+                "has-ansi": "2.0.0",
+                "strip-ansi": "3.0.1",
+                "supports-color": "2.0.0"
+              },
+              "dependencies": {
+                "ansi-styles": {
+                  "version": "2.2.1",
+                  "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+                  "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+                  "dev": true
+                },
+                "escape-string-regexp": {
+                  "version": "1.0.5",
+                  "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+                  "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+                  "dev": true
+                },
+                "has-ansi": {
+                  "version": "2.0.0",
+                  "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+                  "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+                  "dev": true,
+                  "requires": {
+                    "ansi-regex": "2.0.0"
+                  },
+                  "dependencies": {
+                    "ansi-regex": {
+                      "version": "2.0.0",
+                      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz",
+                      "integrity": "sha1-xQYbbg74qBd15Q9dZhUb9r83EQc=",
+                      "dev": true
+                    }
+                  }
+                },
+                "strip-ansi": {
+                  "version": "3.0.1",
+                  "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+                  "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+                  "dev": true,
+                  "requires": {
+                    "ansi-regex": "2.0.0"
+                  },
+                  "dependencies": {
+                    "ansi-regex": {
+                      "version": "2.0.0",
+                      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz",
+                      "integrity": "sha1-xQYbbg74qBd15Q9dZhUb9r83EQc=",
+                      "dev": true
+                    }
+                  }
+                },
+                "supports-color": {
+                  "version": "2.0.0",
+                  "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+                  "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+                  "dev": true
+                }
+              }
+            },
+            "dateformat": {
+              "version": "1.0.12",
+              "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
+              "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
+              "dev": true,
+              "requires": {
+                "get-stdin": "4.0.1",
+                "meow": "3.7.0"
+              },
+              "dependencies": {
+                "get-stdin": {
+                  "version": "4.0.1",
+                  "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+                  "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+                  "dev": true
+                },
+                "meow": {
+                  "version": "3.7.0",
+                  "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+                  "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+                  "dev": true,
+                  "requires": {
+                    "camelcase-keys": "2.1.0",
+                    "decamelize": "1.2.0",
+                    "loud-rejection": "1.6.0",
+                    "map-obj": "1.0.1",
+                    "minimist": "1.2.0",
+                    "normalize-package-data": "2.3.5",
+                    "object-assign": "4.1.0",
+                    "read-pkg-up": "1.0.1",
+                    "redent": "1.0.0",
+                    "trim-newlines": "1.0.0"
+                  },
+                  "dependencies": {
+                    "camelcase-keys": {
+                      "version": "2.1.0",
+                      "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+                      "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+                      "dev": true,
+                      "requires": {
+                        "camelcase": "2.1.1",
+                        "map-obj": "1.0.1"
+                      },
+                      "dependencies": {
+                        "camelcase": {
+                          "version": "2.1.1",
+                          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+                          "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "decamelize": {
+                      "version": "1.2.0",
+                      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+                      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+                      "dev": true
+                    },
+                    "loud-rejection": {
+                      "version": "1.6.0",
+                      "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+                      "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+                      "dev": true,
+                      "requires": {
+                        "currently-unhandled": "0.4.1",
+                        "signal-exit": "3.0.1"
+                      },
+                      "dependencies": {
+                        "currently-unhandled": {
+                          "version": "0.4.1",
+                          "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+                          "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+                          "dev": true,
+                          "requires": {
+                            "array-find-index": "1.0.2"
+                          },
+                          "dependencies": {
+                            "array-find-index": {
+                              "version": "1.0.2",
+                              "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+                              "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+                              "dev": true
+                            }
+                          }
+                        },
+                        "signal-exit": {
+                          "version": "3.0.1",
+                          "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.1.tgz",
+                          "integrity": "sha1-WkyISZK2OnrNm623iUw+6c/MrYE=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "map-obj": {
+                      "version": "1.0.1",
+                      "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+                      "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+                      "dev": true
+                    },
+                    "normalize-package-data": {
+                      "version": "2.3.5",
+                      "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz",
+                      "integrity": "sha1-jZJPFClg4Xd+f/4XBUNjHMfLAt8=",
+                      "dev": true,
+                      "requires": {
+                        "hosted-git-info": "2.1.5",
+                        "is-builtin-module": "1.0.0",
+                        "semver": "5.3.0",
+                        "validate-npm-package-license": "3.0.1"
+                      },
+                      "dependencies": {
+                        "hosted-git-info": {
+                          "version": "2.1.5",
+                          "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz",
+                          "integrity": "sha1-C6gdkNouJas0ozLm7HeTbhWYEYs=",
+                          "dev": true
+                        },
+                        "is-builtin-module": {
+                          "version": "1.0.0",
+                          "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+                          "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+                          "dev": true,
+                          "requires": {
+                            "builtin-modules": "1.1.1"
+                          },
+                          "dependencies": {
+                            "builtin-modules": {
+                              "version": "1.1.1",
+                              "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+                              "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+                              "dev": true
+                            }
+                          }
+                        },
+                        "semver": {
+                          "version": "5.3.0",
+                          "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+                          "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
+                          "dev": true
+                        },
+                        "validate-npm-package-license": {
+                          "version": "3.0.1",
+                          "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
+                          "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
+                          "dev": true,
+                          "requires": {
+                            "spdx-correct": "1.0.2",
+                            "spdx-expression-parse": "1.0.4"
+                          },
+                          "dependencies": {
+                            "spdx-correct": {
+                              "version": "1.0.2",
+                              "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
+                              "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
+                              "dev": true,
+                              "requires": {
+                                "spdx-license-ids": "1.2.2"
+                              },
+                              "dependencies": {
+                                "spdx-license-ids": {
+                                  "version": "1.2.2",
+                                  "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
+                                  "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
+                                  "dev": true
+                                }
+                              }
+                            },
+                            "spdx-expression-parse": {
+                              "version": "1.0.4",
+                              "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
+                              "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
+                              "dev": true
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "object-assign": {
+                      "version": "4.1.0",
+                      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
+                      "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=",
+                      "dev": true
+                    },
+                    "read-pkg-up": {
+                      "version": "1.0.1",
+                      "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+                      "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+                      "dev": true,
+                      "requires": {
+                        "find-up": "1.1.2",
+                        "read-pkg": "1.1.0"
+                      },
+                      "dependencies": {
+                        "find-up": {
+                          "version": "1.1.2",
+                          "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+                          "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+                          "dev": true,
+                          "requires": {
+                            "path-exists": "2.1.0",
+                            "pinkie-promise": "2.0.1"
+                          },
+                          "dependencies": {
+                            "path-exists": {
+                              "version": "2.1.0",
+                              "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+                              "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+                              "dev": true,
+                              "requires": {
+                                "pinkie-promise": "2.0.1"
+                              }
+                            },
+                            "pinkie-promise": {
+                              "version": "2.0.1",
+                              "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+                              "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+                              "dev": true,
+                              "requires": {
+                                "pinkie": "2.0.4"
+                              },
+                              "dependencies": {
+                                "pinkie": {
+                                  "version": "2.0.4",
+                                  "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+                                  "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+                                  "dev": true
+                                }
+                              }
+                            }
+                          }
+                        },
+                        "read-pkg": {
+                          "version": "1.1.0",
+                          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+                          "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+                          "dev": true,
+                          "requires": {
+                            "load-json-file": "1.1.0",
+                            "normalize-package-data": "2.3.5",
+                            "path-type": "1.1.0"
+                          },
+                          "dependencies": {
+                            "load-json-file": {
+                              "version": "1.1.0",
+                              "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+                              "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+                              "dev": true,
+                              "requires": {
+                                "graceful-fs": "4.1.9",
+                                "parse-json": "2.2.0",
+                                "pify": "2.3.0",
+                                "pinkie-promise": "2.0.1",
+                                "strip-bom": "2.0.0"
+                              },
+                              "dependencies": {
+                                "graceful-fs": {
+                                  "version": "4.1.9",
+                                  "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.9.tgz",
+                                  "integrity": "sha1-uqy6N9GdEfnRRtNXi8mZWMN4fik=",
+                                  "dev": true
+                                },
+                                "parse-json": {
+                                  "version": "2.2.0",
+                                  "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+                                  "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+                                  "dev": true,
+                                  "requires": {
+                                    "error-ex": "1.3.0"
+                                  },
+                                  "dependencies": {
+                                    "error-ex": {
+                                      "version": "1.3.0",
+                                      "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz",
+                                      "integrity": "sha1-5ntD8+gsluo6WE/+4Ln8MyXYAtk=",
+                                      "dev": true,
+                                      "requires": {
+                                        "is-arrayish": "0.2.1"
+                                      },
+                                      "dependencies": {
+                                        "is-arrayish": {
+                                          "version": "0.2.1",
+                                          "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+                                          "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+                                          "dev": true
+                                        }
+                                      }
+                                    }
+                                  }
+                                },
+                                "pify": {
+                                  "version": "2.3.0",
+                                  "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+                                  "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+                                  "dev": true
+                                },
+                                "pinkie-promise": {
+                                  "version": "2.0.1",
+                                  "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+                                  "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+                                  "dev": true,
+                                  "requires": {
+                                    "pinkie": "2.0.4"
+                                  },
+                                  "dependencies": {
+                                    "pinkie": {
+                                      "version": "2.0.4",
+                                      "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+                                      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+                                      "dev": true
+                                    }
+                                  }
+                                },
+                                "strip-bom": {
+                                  "version": "2.0.0",
+                                  "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+                                  "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+                                  "dev": true,
+                                  "requires": {
+                                    "is-utf8": "0.2.1"
+                                  },
+                                  "dependencies": {
+                                    "is-utf8": {
+                                      "version": "0.2.1",
+                                      "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+                                      "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+                                      "dev": true
+                                    }
+                                  }
+                                }
+                              }
+                            },
+                            "path-type": {
+                              "version": "1.1.0",
+                              "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+                              "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+                              "dev": true,
+                              "requires": {
+                                "graceful-fs": "4.1.9",
+                                "pify": "2.3.0",
+                                "pinkie-promise": "2.0.1"
+                              },
+                              "dependencies": {
+                                "graceful-fs": {
+                                  "version": "4.1.9",
+                                  "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.9.tgz",
+                                  "integrity": "sha1-uqy6N9GdEfnRRtNXi8mZWMN4fik=",
+                                  "dev": true
+                                },
+                                "pify": {
+                                  "version": "2.3.0",
+                                  "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+                                  "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+                                  "dev": true
+                                },
+                                "pinkie-promise": {
+                                  "version": "2.0.1",
+                                  "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+                                  "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+                                  "dev": true,
+                                  "requires": {
+                                    "pinkie": "2.0.4"
+                                  },
+                                  "dependencies": {
+                                    "pinkie": {
+                                      "version": "2.0.4",
+                                      "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+                                      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+                                      "dev": true
+                                    }
+                                  }
+                                }
+                              }
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "redent": {
+                      "version": "1.0.0",
+                      "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+                      "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+                      "dev": true,
+                      "requires": {
+                        "indent-string": "2.1.0",
+                        "strip-indent": "1.0.1"
+                      },
+                      "dependencies": {
+                        "indent-string": {
+                          "version": "2.1.0",
+                          "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+                          "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+                          "dev": true,
+                          "requires": {
+                            "repeating": "2.0.1"
+                          },
+                          "dependencies": {
+                            "repeating": {
+                              "version": "2.0.1",
+                              "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+                              "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+                              "dev": true,
+                              "requires": {
+                                "is-finite": "1.0.2"
+                              },
+                              "dependencies": {
+                                "is-finite": {
+                                  "version": "1.0.2",
+                                  "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+                                  "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+                                  "dev": true,
+                                  "requires": {
+                                    "number-is-nan": "1.0.1"
+                                  },
+                                  "dependencies": {
+                                    "number-is-nan": {
+                                      "version": "1.0.1",
+                                      "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+                                      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+                                      "dev": true
+                                    }
+                                  }
+                                }
+                              }
+                            }
+                          }
+                        },
+                        "strip-indent": {
+                          "version": "1.0.1",
+                          "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+                          "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+                          "dev": true,
+                          "requires": {
+                            "get-stdin": "4.0.1"
+                          }
+                        }
+                      }
+                    },
+                    "trim-newlines": {
+                      "version": "1.0.0",
+                      "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+                      "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+                      "dev": true
+                    }
+                  }
+                }
+              }
+            },
+            "fancy-log": {
+              "version": "1.2.0",
+              "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.2.0.tgz",
+              "integrity": "sha1-1aUbU+mrIsoH1VjytnrlX9tfy9g=",
+              "dev": true,
+              "requires": {
+                "chalk": "1.1.3",
+                "time-stamp": "1.0.1"
+              },
+              "dependencies": {
+                "time-stamp": {
+                  "version": "1.0.1",
+                  "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.0.1.tgz",
+                  "integrity": "sha1-n0vSNVnJNllm8zAtu6KwfGuZsVE=",
+                  "dev": true
+                }
+              }
+            },
+            "gulplog": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
+              "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
+              "dev": true,
+              "requires": {
+                "glogg": "1.0.0"
+              },
+              "dependencies": {
+                "glogg": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz",
+                  "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=",
+                  "dev": true,
+                  "requires": {
+                    "sparkles": "1.0.0"
+                  },
+                  "dependencies": {
+                    "sparkles": {
+                      "version": "1.0.0",
+                      "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz",
+                      "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=",
+                      "dev": true
+                    }
+                  }
+                }
+              }
+            },
+            "has-gulplog": {
+              "version": "0.1.0",
+              "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz",
+              "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=",
+              "dev": true,
+              "requires": {
+                "sparkles": "1.0.0"
+              },
+              "dependencies": {
+                "sparkles": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz",
+                  "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=",
+                  "dev": true
+                }
+              }
+            },
+            "lodash._reescape": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz",
+              "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=",
+              "dev": true
+            },
+            "lodash._reevaluate": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz",
+              "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=",
+              "dev": true
+            },
+            "lodash._reinterpolate": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+              "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
+              "dev": true
+            },
+            "lodash.template": {
+              "version": "3.6.2",
+              "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz",
+              "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=",
+              "dev": true,
+              "requires": {
+                "lodash._basecopy": "3.0.1",
+                "lodash._basetostring": "3.0.1",
+                "lodash._basevalues": "3.0.0",
+                "lodash._isiterateecall": "3.0.9",
+                "lodash._reinterpolate": "3.0.0",
+                "lodash.escape": "3.2.0",
+                "lodash.keys": "3.1.2",
+                "lodash.restparam": "3.6.1",
+                "lodash.templatesettings": "3.1.1"
+              },
+              "dependencies": {
+                "lodash._basecopy": {
+                  "version": "3.0.1",
+                  "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
+                  "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
+                  "dev": true
+                },
+                "lodash._basetostring": {
+                  "version": "3.0.1",
+                  "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
+                  "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=",
+                  "dev": true
+                },
+                "lodash._basevalues": {
+                  "version": "3.0.0",
+                  "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz",
+                  "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=",
+                  "dev": true
+                },
+                "lodash._isiterateecall": {
+                  "version": "3.0.9",
+                  "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
+                  "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
+                  "dev": true
+                },
+                "lodash.escape": {
+                  "version": "3.2.0",
+                  "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz",
+                  "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=",
+                  "dev": true,
+                  "requires": {
+                    "lodash._root": "3.0.1"
+                  },
+                  "dependencies": {
+                    "lodash._root": {
+                      "version": "3.0.1",
+                      "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
+                      "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=",
+                      "dev": true
+                    }
+                  }
+                },
+                "lodash.keys": {
+                  "version": "3.1.2",
+                  "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
+                  "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
+                  "dev": true,
+                  "requires": {
+                    "lodash._getnative": "3.9.1",
+                    "lodash.isarguments": "3.1.0",
+                    "lodash.isarray": "3.0.4"
+                  },
+                  "dependencies": {
+                    "lodash._getnative": {
+                      "version": "3.9.1",
+                      "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
+                      "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
+                      "dev": true
+                    },
+                    "lodash.isarguments": {
+                      "version": "3.1.0",
+                      "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
+                      "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
+                      "dev": true
+                    },
+                    "lodash.isarray": {
+                      "version": "3.0.4",
+                      "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
+                      "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
+                      "dev": true
+                    }
+                  }
+                },
+                "lodash.restparam": {
+                  "version": "3.6.1",
+                  "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
+                  "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=",
+                  "dev": true
+                },
+                "lodash.templatesettings": {
+                  "version": "3.1.1",
+                  "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz",
+                  "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=",
+                  "dev": true,
+                  "requires": {
+                    "lodash._reinterpolate": "3.0.0",
+                    "lodash.escape": "3.2.0"
+                  }
+                }
+              }
+            },
+            "minimist": {
+              "version": "1.2.0",
+              "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+              "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+              "dev": true
+            },
+            "multipipe": {
+              "version": "0.1.2",
+              "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz",
+              "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=",
+              "dev": true,
+              "requires": {
+                "duplexer2": "0.0.2"
+              },
+              "dependencies": {
+                "duplexer2": {
+                  "version": "0.0.2",
+                  "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
+                  "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
+                  "dev": true,
+                  "requires": {
+                    "readable-stream": "1.1.14"
+                  },
+                  "dependencies": {
+                    "readable-stream": {
+                      "version": "1.1.14",
+                      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+                      "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+                      "dev": true,
+                      "requires": {
+                        "core-util-is": "1.0.2",
+                        "inherits": "2.0.3",
+                        "isarray": "0.0.1",
+                        "string_decoder": "0.10.31"
+                      },
+                      "dependencies": {
+                        "core-util-is": {
+                          "version": "1.0.2",
+                          "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+                          "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+                          "dev": true
+                        },
+                        "inherits": {
+                          "version": "2.0.3",
+                          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+                          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+                          "dev": true
+                        },
+                        "isarray": {
+                          "version": "0.0.1",
+                          "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+                          "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+                          "dev": true
+                        },
+                        "string_decoder": {
+                          "version": "0.10.31",
+                          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+                          "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+                          "dev": true
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            },
+            "object-assign": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
+              "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=",
+              "dev": true
+            },
+            "replace-ext": {
+              "version": "0.0.1",
+              "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
+              "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
+              "dev": true
+            },
+            "through2": {
+              "version": "2.0.1",
+              "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz",
+              "integrity": "sha1-OE51MU1J8y3hLuu4E2uOtrXVnak=",
+              "dev": true,
+              "requires": {
+                "readable-stream": "2.0.6",
+                "xtend": "4.0.1"
+              },
+              "dependencies": {
+                "readable-stream": {
+                  "version": "2.0.6",
+                  "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
+                  "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
+                  "dev": true,
+                  "requires": {
+                    "core-util-is": "1.0.2",
+                    "inherits": "2.0.3",
+                    "isarray": "1.0.0",
+                    "process-nextick-args": "1.0.7",
+                    "string_decoder": "0.10.31",
+                    "util-deprecate": "1.0.2"
+                  },
+                  "dependencies": {
+                    "core-util-is": {
+                      "version": "1.0.2",
+                      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+                      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+                      "dev": true
+                    },
+                    "inherits": {
+                      "version": "2.0.3",
+                      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+                      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+                      "dev": true
+                    },
+                    "isarray": {
+                      "version": "1.0.0",
+                      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+                      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+                      "dev": true
+                    },
+                    "process-nextick-args": {
+                      "version": "1.0.7",
+                      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+                      "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
+                      "dev": true
+                    },
+                    "string_decoder": {
+                      "version": "0.10.31",
+                      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+                      "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+                      "dev": true
+                    },
+                    "util-deprecate": {
+                      "version": "1.0.2",
+                      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+                      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+                      "dev": true
+                    }
+                  }
+                },
+                "xtend": {
+                  "version": "4.0.1",
+                  "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+                  "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+                  "dev": true
+                }
+              }
+            },
+            "vinyl": {
+              "version": "0.5.3",
+              "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz",
+              "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=",
+              "dev": true,
+              "requires": {
+                "clone": "1.0.2",
+                "clone-stats": "0.0.1",
+                "replace-ext": "0.0.1"
+              },
+              "dependencies": {
+                "clone": {
+                  "version": "1.0.2",
+                  "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
+                  "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=",
+                  "dev": true
+                },
+                "clone-stats": {
+                  "version": "0.0.1",
+                  "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
+                  "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
+                  "dev": true
+                }
+              }
+            }
+          }
+        },
+        "object-assign": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
+          "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=",
+          "dev": true
+        },
+        "readable-stream": {
+          "version": "2.1.5",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz",
+          "integrity": "sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA=",
+          "dev": true,
+          "requires": {
+            "buffer-shims": "1.0.0",
+            "core-util-is": "1.0.2",
+            "inherits": "2.0.3",
+            "isarray": "1.0.0",
+            "process-nextick-args": "1.0.7",
+            "string_decoder": "0.10.31",
+            "util-deprecate": "1.0.2"
+          },
+          "dependencies": {
+            "buffer-shims": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
+              "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=",
+              "dev": true
+            },
+            "core-util-is": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+              "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+              "dev": true
+            },
+            "inherits": {
+              "version": "2.0.3",
+              "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+              "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+              "dev": true
+            },
+            "isarray": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+              "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+              "dev": true
+            },
+            "process-nextick-args": {
+              "version": "1.0.7",
+              "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+              "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
+              "dev": true
+            },
+            "string_decoder": {
+              "version": "0.10.31",
+              "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+              "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+              "dev": true
+            },
+            "util-deprecate": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+              "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+              "dev": true
+            }
+          }
+        },
+        "vinyl-bufferstream": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/vinyl-bufferstream/-/vinyl-bufferstream-1.0.1.tgz",
+          "integrity": "sha1-BTeGn1gO/6TKRay0dXnkuf5jCBo=",
+          "dev": true,
+          "requires": {
+            "bufferstreams": "1.0.1"
+          },
+          "dependencies": {
+            "bufferstreams": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-1.0.1.tgz",
+              "integrity": "sha1-z7GtlWjTujz+k1upq92VLeiKqyo=",
+              "dev": true,
+              "requires": {
+                "readable-stream": "1.1.14"
+              },
+              "dependencies": {
+                "readable-stream": {
+                  "version": "1.1.14",
+                  "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+                  "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+                  "dev": true,
+                  "requires": {
+                    "core-util-is": "1.0.2",
+                    "inherits": "2.0.3",
+                    "isarray": "0.0.1",
+                    "string_decoder": "0.10.31"
+                  },
+                  "dependencies": {
+                    "core-util-is": {
+                      "version": "1.0.2",
+                      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+                      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+                      "dev": true
+                    },
+                    "inherits": {
+                      "version": "2.0.3",
+                      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+                      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+                      "dev": true
+                    },
+                    "isarray": {
+                      "version": "0.0.1",
+                      "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+                      "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+                      "dev": true
+                    },
+                    "string_decoder": {
+                      "version": "0.10.31",
+                      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+                      "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+                      "dev": true
+                    }
+                  }
+                }
+              }
+            }
+          }
+        },
+        "vinyl-sourcemaps-apply": {
+          "version": "0.2.1",
+          "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz",
+          "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=",
+          "dev": true,
+          "requires": {
+            "source-map": "0.5.6"
+          },
+          "dependencies": {
+            "source-map": {
+              "version": "0.5.6",
+              "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
+              "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
+              "dev": true
+            }
+          }
+        }
+      }
+    },
+    "gulp-rename": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz",
+      "integrity": "sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc=",
+      "dev": true
+    },
+    "gulp-sourcemaps": {
+      "version": "2.6.4",
+      "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-2.6.4.tgz",
+      "integrity": "sha1-y7IAhFCxvM5s0jv5gze+dRv24wo=",
+      "dev": true,
+      "requires": {
+        "@gulp-sourcemaps/identity-map": "1.0.1",
+        "@gulp-sourcemaps/map-sources": "1.0.0",
+        "acorn": "5.5.0",
+        "convert-source-map": "1.5.1",
+        "css": "2.2.1",
+        "debug-fabulous": "1.0.0",
+        "detect-newline": "2.1.0",
+        "graceful-fs": "4.1.11",
+        "source-map": "0.6.1",
+        "strip-bom-string": "1.0.0",
+        "through2": "2.0.3"
+      }
+    },
+    "gulp-uglify": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.0.tgz",
+      "integrity": "sha1-DfAzHXKg0wLj434QlIXd3zPG0co=",
+      "dev": true,
+      "requires": {
+        "gulplog": "1.0.0",
+        "has-gulplog": "0.1.0",
+        "lodash": "4.17.5",
+        "make-error-cause": "1.2.2",
+        "through2": "2.0.3",
+        "uglify-js": "3.3.13",
+        "vinyl-sourcemaps-apply": "0.2.1"
+      }
+    },
+    "gulplog": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
+      "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
+      "dev": true,
+      "requires": {
+        "glogg": "1.0.1"
+      }
+    },
+    "has-gulplog": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz",
+      "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=",
+      "dev": true,
+      "requires": {
+        "sparkles": "1.0.0"
+      }
+    },
+    "inherits": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+      "dev": true
+    },
+    "is-promise": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+      "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
+      "dev": true
+    },
+    "isarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+      "dev": true
+    },
+    "lodash": {
+      "version": "4.17.5",
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz",
+      "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==",
+      "dev": true
+    },
+    "lru-queue": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
+      "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=",
+      "dev": true,
+      "requires": {
+        "es5-ext": "0.10.39"
+      }
+    },
+    "make-error": {
+      "version": "1.3.4",
+      "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz",
+      "integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==",
+      "dev": true
+    },
+    "make-error-cause": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz",
+      "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=",
+      "dev": true,
+      "requires": {
+        "make-error": "1.3.4"
+      }
+    },
+    "memoizee": {
+      "version": "0.4.12",
+      "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.12.tgz",
+      "integrity": "sha512-sprBu6nwxBWBvBOh5v2jcsGqiGLlL2xr2dLub3vR8dnE8YB17omwtm/0NSHl8jjNbcsJd5GMWJAnTSVe/O0Wfg==",
+      "dev": true,
+      "requires": {
+        "d": "1.0.0",
+        "es5-ext": "0.10.39",
+        "es6-weak-map": "2.0.2",
+        "event-emitter": "0.3.5",
+        "is-promise": "2.1.0",
+        "lru-queue": "0.1.0",
+        "next-tick": "1.0.0",
+        "timers-ext": "0.1.2"
+      }
+    },
+    "ms": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+      "dev": true
+    },
+    "next-tick": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
+      "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
+      "dev": true
+    },
+    "normalize-path": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+      "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+      "dev": true,
+      "requires": {
+        "remove-trailing-separator": "1.1.0"
+      }
+    },
+    "object-assign": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+      "dev": true
+    },
+    "process-nextick-args": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+      "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
+      "dev": true
+    },
+    "readable-stream": {
+      "version": "2.3.5",
+      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
+      "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
+      "dev": true,
+      "requires": {
+        "core-util-is": "1.0.2",
+        "inherits": "2.0.3",
+        "isarray": "1.0.0",
+        "process-nextick-args": "2.0.0",
+        "safe-buffer": "5.1.1",
+        "string_decoder": "1.0.3",
+        "util-deprecate": "1.0.2"
+      }
+    },
+    "remove-trailing-separator": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+      "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+      "dev": true
+    },
+    "resolve-url": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+      "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+      "dev": true
+    },
+    "safe-buffer": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+      "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
+      "dev": true
+    },
+    "source-map": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+      "dev": true
+    },
+    "source-map-resolve": {
+      "version": "0.3.1",
+      "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.3.1.tgz",
+      "integrity": "sha1-YQ9hIqRFuN1RU1oqcbeD38Ekh2E=",
+      "dev": true,
+      "requires": {
+        "atob": "1.1.3",
+        "resolve-url": "0.2.1",
+        "source-map-url": "0.3.0",
+        "urix": "0.1.0"
+      }
+    },
+    "source-map-url": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.3.0.tgz",
+      "integrity": "sha1-fsrxO1e80J2opAxdJp2zN5nUqvk=",
+      "dev": true
+    },
+    "sparkles": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz",
+      "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=",
+      "dev": true
+    },
+    "string_decoder": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+      "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "5.1.1"
+      }
+    },
+    "strip-bom-string": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz",
+      "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=",
+      "dev": true
+    },
+    "through2": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+      "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+      "dev": true,
+      "requires": {
+        "readable-stream": "2.3.5",
+        "xtend": "4.0.1"
+      }
+    },
+    "timers-ext": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.2.tgz",
+      "integrity": "sha1-YcxHp2wavTGV8UUn+XjViulMUgQ=",
+      "dev": true,
+      "requires": {
+        "es5-ext": "0.10.39",
+        "next-tick": "1.0.0"
+      }
+    },
+    "uglify-js": {
+      "version": "3.3.13",
+      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.13.tgz",
+      "integrity": "sha512-7rdn/bDOG1ElSTPdh7AI5TCjLv63ZD4k8BBadN3ssIkhlaQL2c0yRxmXCyOYhZK0wZTgGgUSnYQ4CGu+Jos5cA==",
+      "dev": true,
+      "requires": {
+        "commander": "2.14.1",
+        "source-map": "0.6.1"
+      }
+    },
+    "urix": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+      "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+      "dev": true
+    },
+    "util-deprecate": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+      "dev": true
+    },
+    "vinyl-sourcemaps-apply": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz",
+      "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=",
+      "dev": true,
+      "requires": {
+        "source-map": "0.5.7"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        }
+      }
+    },
+    "xtend": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+      "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+      "dev": true
+    }
+  }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..30224cf
--- /dev/null
+++ b/package.json
@@ -0,0 +1,38 @@
+{
+  "name": "multiscroll.js",
+  "version": "0.2.2",
+  "description": "A simple plugin to create split scrolling websites with two vertical scrolling panels.",
+  "main": "jquery.multiscroll.js",
+  "scripts": {
+    "test": "echo \"Error: no test specified\" && exit 1"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/alvarotrigo/multiscroll.js.git"
+  },
+  "keywords": [
+    "scroll",
+    "split-screen",
+    "split-layout",
+    "mousewheel",
+    "multi",
+    "split",
+    "multiscroll",
+    "snap"
+  ],
+  "authors": [
+    "Alvaro Trigo https://github.com/alvarotrigo"
+  ],
+  "license": "MIT",
+  "bugs": {
+    "url": "https://github.com/alvarotrigo/multiscroll.js/issues"
+  },
+  "homepage": "http://www.alvarotrigo.com/multiScroll/",
+  "devDependencies": {
+    "gulp": "^3.9.1",
+    "gulp-clean-css": "^2.0.13",
+    "gulp-rename": "^1.2.2",
+    "gulp-sourcemaps": "^2.1.1",
+    "gulp-uglify": "^3.0.0"
+  }
+}
