diff --git a/19_decorators.md b/19_decorators.md
new file mode 100644
index 0000000..c61fe32
--- /dev/null
+++ b/19_decorators.md
@@ -0,0 +1,284 @@
+# 装饰器
+
+**Decorators**
+
+## 简介
+
+随着TypeScript及ES6中类的引入,就有了一些需要对类与类的成员进行批注与修改等额外特性的场景(With the introduction of Classes in TypeScript and ES6, there now exist certain scennarios that require additional features to support annotating or modifying classes and class members)。装饰器这一特性,就提供了一种将类声明与成员的批注与元编程语法加入进来的方式。装饰器特性,是一项JavaScript的[第二阶段提议](https://github.com/tc39/proposal-decorators),且是TypeScript的一项实验特性。
+
+> 注意:装饰器是一项实验特性,在以后的版本发布中可能改变。
+
+要开启装饰器的实验性支持,就必须在命令行或`tsconfig.json`中开启编译器的`experimentalDecorators`选项:
+
+**命令行**:
+
+```bash
+tsc --target ES5 --experimentalDecorators
+```
+
+**tsconfig.json**
+
+```json
+{
+    "compilerOptions": {
+        "target": "ES5",
+        "experimentalDecorators": true
+    }
+}
+```
+
+## 关于装饰器(Decorators)
+
+*装饰器* 是一类特殊的声明,可被附加到[类的声明](#class-decorators)、[方法](#method-decorators)、[访问器](#accessor-decorators)、[属性](#property-decorators)或者[参数](#parameter-decorators)。装饰器使用的形式是`@expression`,其中的`expression`必须评估为一个将在运行时,以有关被装饰声明的信息被调用的函数(Decorators use the form `@expression`, where `expression` must evaluate to a function that will be called at runtime with information about the decorated declaration)。
+
+比如,对于给定的装饰器`@sealed`,那么就可能向下面这样写该`sealed`函数:
+
+```typescript
+function sealed(target) {
+    // ... 对`target`进行一些操作 ...
+}
+```
+
+> 注意:在下面的[类装饰器](#class-decorators)中,可以看到更详细的示例
+
+### 装饰器工厂(Decorator Factories)
+<a href="decorator-factories"></a>
+
+可通过编写一个装饰器工厂,来对装饰器作用于声明的方式进行定制。 *装饰器工厂* 就是一个返回由装饰器在运行时调用的表达式的函数(If you want to customize how a decorator is applied to a declaration, we can write a decorator factory. A *Decorator Factory* is simply a function that returns the expression that will be called by the decorator at runtime)。
+
+可以下面的形式,来编写一个装饰器工厂:
+
+```typescript
+function color (value: string) { // 这是装饰器工厂
+    return function (target) { // 这是装饰器
+        // 以`target`与`value`来完成一些操作
+    }
+}
+```
+
+> 注意,在下面的[方法装饰器](#method-decorators)部分,可见到装饰工厂的更详细示例。
+
+### 装饰器的复合(Decorator Composition)
+
+对某个声明,可应用多个装饰器,如下面的示例中那样:
+
++ 在同一行:
+
+    ```typescript
+    @f @g x
+    ```
+
++ 在多行上:
+    
+    ```typescript
+    @f
+    @g
+    x
+    ```
+
+当有多个装饰器应用到单个声明时,它们的执行与[数学中的复合函数](http://en.wikipedia.org/wiki/Function_composition)类似。在这个模型中,当将`f`与`g`进行复合时,`(f∘ g)(x)`复合结果与`f(g(x))`等价。
+
+因此,TypeScript中在对单一声明上的多个装饰器进行执行时,将完成以下步骤:
+
+1. 各个装饰器的表达式将自顶向下执行。
+
+2. 随后的结果作为函数被自底向上进行调用。
+
+当使用了[装饰器工厂](#decorator-factories),就可以在下面的示例中观察到这种执行顺序:
+
+```typescript
+function f() {
+    console.log("f(): evaluated");
+
+    return function (target, propertyKey: string, descriptor: PropertyDescriptor) {
+        console.log("f(): called");
+    }
+}
+
+function g() {
+    console.log("g(): evaluated");
+
+    return function (target, propertyKey: string, descriptor: PropertyDescriptor) {
+        console.log("g(): called");
+    }
+}
+
+class C {
+    @f()
+    @g()
+    method() {}
+}
+```
+
+其将把下面的输出打印到控制台:
+
+```bash
+f(): evaluated
+g(): evaluated
+g(): called
+f(): called
+```
+
+### 装饰器求值(Decorator Evaluation)
+
+对于将装饰器如何应用到类内部的各种声明,有着以下可遵循的定义良好的顺序:
+
+1. 对于各个实例成员, *参数装饰器*,接着分别是 *方法*、*访问器* 或者 *属性装饰器* 将被应用( *Parameter Decorators*, followed by *Method*, *Accessor*, or *Property Decorators* are applied for each instance member)。
+
+2. 对于各个静态成员, *参数装饰器*,接着分别是 *方法*、*访问器* 或者 *属性装饰器* 将被应用( *Parameter Decorators*, followed by *Method*, *Accessor*, or *Property Decorators* are applied for each static member)。
+
+3. 对于构造器,将应用参数装饰器( *Parameter Decorators* are applied for the constructor)。
+
+4. 对于类,将应用 *类装饰器* ( *Class Decorators* are applied for the class )。
+
+### 类装饰器
+
+*类装饰器* 是在类声明之前、紧接着类声明处使用的。类声明作用与类的构造器,而可用于对类的定义进行观察、修改或替换。类装饰器不能在声明文件,或任何其它外围上下文中使用(比如在某个`declare`类上。The class decorator is applied to the constructor of the class and can be used to observe, modify or replace a class definition. A class decorator cannot be used in a declaration file, or in any other ambient context(such as on a `declare` class))。
+
+> 什么是TypeScript的外围上下文(ambient context, 有的翻译为“已有环境”)?
+    > 
+    >
+
+类装饰器的表达式,将被作为一个函数,在运行时以被装饰的类的构造器函数,作为唯一参数而被调用。
+
+> **注意** 应注意返回一个新的构造器函数,因为必须注意维护好原来的原型。运行时对装饰器的应用这一逻辑,并不会做这件事(Should you chose to return a new constructor function, you must take care to maintain the original prototype. The logic that applies decorators at runtime will not do this for you)。
+
+下面是一个应用到`Greeter`类的类装饰器(`@sealed`)的示例:
+
+```typescript
+@sealed
+class Greeter {
+    greeting: string;
+
+    constructor(message: string) {
+        this.greeting = message;
+    }
+
+    greeter () {
+        return `Hello, { this.greeting }`;
+    }
+}
+```
+
+可将`@sealed`装饰器定义为使用下面的函数声明:
+
+```typescript
+function sealed(constructor: Function) {
+    Object.seal(constructor);
+    Object.seal(constructor.prototype);
+}
+```
+
+在`@sealed`装饰器(于运行时)被执行后,它将同时封闭构造器及其原型。
+
+接着的是一个如何覆写构造器的示例:
+
+```typescript
+function classDecorator<T extends {new( ...args: any[] ): {}}>(constructor: T) {
+    return class extends constructor {
+        newProperty = "new property";
+        hello = "override";
+    }
+}
+
+@classDecorator
+class Greeter {
+    property = "property";
+    hello: string;
+
+    constructor(m: string) {
+        this.hello = m;
+    }
+}
+
+console.log(new Greeter("world"));
+```
+
+### 方法装饰器(Method Decorators)
+
+*方法装饰器* 是在某个方法声明之前、紧接着该方法处使用的。此种装饰器被应用到方法的 *属性描述符* ,而可用于对方法定义进行观察、修改或替换。不能在定义文件、过载或任何其它已有上下文中(比如某个`declare`类中)使用方法装饰器(The decorator is applied to the *Property Descriptor* for the method, and can be used to observe, modify, or replace a method definition. A method decorator cannot be used in a declaration file, on an overload, or in any other ambient context(such as in a `declare` class))。
+
+方法装饰器的表达式,将在运行时作为函数,以下面的三个参数进行调用:
+
+1. 静态成员的类构造函数,或实例成员的类的原型(Either the constructor function of the class for a static member, or the prototype of the class for an instance member, )。
+
+> 关于静态成员与实例成员的区别:
+
+> 前面所说的都是对于类的实例成员,在实例化后的对象才会起作用。可以使用static定义类中的静态成员,所有实例可以使用this中的名称来访问静态成员。 
+> [TypeScript笔记](http://yrq110.me/2018/01/06/20180106-typescript-note/)
+
+2. 成员的名称。
+
+3. 成员的 *属性描述符*。
+
+>  **注意** 在低于ES5的目标脚本中, *成员描述符* 将为 `undefined`。
+
+在方法装饰器有返回值时,其将作为该方法的 *属性描述符*。
+
+> **注意** 在目标脚本低于ES5版本中,该返回值将被忽略。
+
+下面是一个应用到`Greeter`类的方法装饰器(`@enumerable`)的示例:
+
+```typescript
+function enumerable (value: boolean) {
+    return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {
+        descriptor.enumerable = value;
+    }
+}
+
+class Greeter {
+    greeting: string;
+
+    constructor (m: string) {
+        this.greeting = m;
+    }
+
+    @enumerable(false)
+    greet () {
+        return `Hello, ${ this.greeting }`;
+    }
+}
+
+let g = new Greeter("world");
+console.log(g.greet());
+```
+
+这里的`@enumerable(false)`装饰器是一个装饰器工厂。在`@enumerable(false)`装饰器被调用时,其就对属性描述符的`enumberable`属性,进行修改。
+
+### 访问器装饰器(Accessor Decorators)
+
+*访问器装饰器* 是在紧接着某个访问器声明之前进行声明的。访问器装饰器是应用到该访问器的 *属性描述符(the Property Descriptor)* 上的,且可用于对某个访问器的定义进行观察、修改或替换。在定义文件、或其他任何外围上下文(比如某个`declare`的类)中,都不能使用访问器的装饰器。
+
+> **注意** 对与单个成员,TypeScript是不允许对其`get`或`set`访问器进行装饰的。而是该成员的所有装饰器,都必须应用到按文档顺序所指定的第一个访问器(TypeScript disallows decorating both the `get` and `set` accessor for a single member. Instead, all decorators for the member must be applied to the first accessor specified in document order)。这是因为应用到 *熟悉描述符* 的那些结合了`get`与`set`访问器的装饰器,并不是各自单独声明的。
+
+访问器装饰器的表达式,在运行时将作为函数得以调用,有着以下三个参数:
+
+1. 对于静态成员,类的构造函数;或对于实例成员,那就就是类的原型
+
+2. 该成员的名称
+
+3. 该成员的 *属性描述符*
+
+在访问器装饰器返回一个值时,该值将作为成员的 *属性描述符* 得以使用。
+
+> **注意** 在低于`ES5`的目标脚本下,该返回值将被忽略。
+
+下面是一个应用到`Point`类的某个成员上的访问器修饰器`@configurable`的示例:
+
+```typescript
+Class Point {
+    private _x: number;
+    private _y: number;
+
+    constructor (x: number, y: number) {
+        this._x = x;
+        this._y = y;
+    }
+
+    @configurable (false)
+    get x() { return this._x; }
+
+    @configurable (false)
+    get y() { return this._y; }
+}
+```
diff --git a/gulpfile.js b/gulpfile.js
index e2394a9..e371a4c 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -1,35 +1,25 @@
-const gulp = require('gulp'),
-      browserify = require('browserify'),
-      source = require('vinyl-source-stream'),
-      watchify = require('watchify'),
-      tsify = require('tsify'),
-      gutil = require('gulp-util');
+var gulp = require('gulp');
+var ts = require('gulp-typescript');
+
+var tsProject = ts.createProject('tsconfig.json');
 
 let paths = {
     pages: ["src/*.html"]
 };
 
-let watchedBrowserify = watchify(browserify({
-    basedir: '.',
-    debug: true,
-    entries: ["src/main.ts"],
-    cache: {},
-    packageCache: {}
-// tsify 是browserify的插件,用于编译 TypeScript, 选项写在后面
-}).plugin(tsify, { noImplicitAny: true }));
-
 gulp.task("copy-html", ()=>{
     return gulp.src(paths.pages)
         .pipe(gulp.dest("dist"))
 });
 
-function bundle () {
-    return watchedBrowserify
-        .bundle()
-        .pipe(source('bundle.js'))
-        .pipe(gulp.dest("dist"))
-}
+gulp.task('tsc', () => {
+    return gulp.src('src/*.ts')
+                          .pipe(tsProject())
+                          .pipe(gulp.dest('dist'));
+});
 
-gulp.task('default', ['copy-html'], bundle);
-watchedBrowserify.on("update", bundle);
-watchedBrowserify.on("log", gutil.log);
+gulp.task('watch', () => {
+    gulp.watch('src/*ts', ['tsc']);
+});
+
+gulp.task('default', gulp.series('copy-html', 'tsc', 'tsc'));
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..f4b603d
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,5038 @@
+{
+    "name": "typescript-learnings",
+    "version": "0.1.0",
+    "lockfileVersion": 1,
+    "requires": true,
+    "dependencies": {
+        "@gulp-sourcemaps/identity-map": {
+            "version": "1.0.2",
+            "resolved": "http://registry.npm.taobao.org/@gulp-sourcemaps/identity-map/download/@gulp-sourcemaps/identity-map-1.0.2.tgz",
+            "integrity": "sha1-Hm/l2AJ7HyhdwNMXYvVmvM1z1ak=",
+            "dev": true,
+            "requires": {
+                "acorn": "^5.0.3",
+                "css": "^2.2.1",
+                "normalize-path": "^2.1.1",
+                "source-map": "^0.6.0",
+                "through2": "^2.0.3"
+            },
+            "dependencies": {
+                "source-map": {
+                    "version": "0.6.1",
+                    "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+                    "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+                    "dev": true
+                }
+            }
+        },
+        "@gulp-sourcemaps/map-sources": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/@gulp-sourcemaps/map-sources/download/@gulp-sourcemaps/map-sources-1.0.0.tgz",
+            "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=",
+            "dev": true,
+            "requires": {
+                "normalize-path": "^2.0.1",
+                "through2": "^2.0.3"
+            }
+        },
+        "accepts": {
+            "version": "1.3.5",
+            "resolved": "http://registry.npm.taobao.org/accepts/download/accepts-1.3.5.tgz",
+            "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
+            "dev": true,
+            "requires": {
+                "mime-types": "~2.1.18",
+                "negotiator": "0.6.1"
+            }
+        },
+        "acorn": {
+            "version": "5.7.3",
+            "resolved": "http://registry.npm.taobao.org/acorn/download/acorn-5.7.3.tgz",
+            "integrity": "sha1-Z6ojG/iBKXS4UjWpZ3Hra9B+onk=",
+            "dev": true
+        },
+        "ansi-colors": {
+            "version": "1.1.0",
+            "resolved": "http://registry.npm.taobao.org/ansi-colors/download/ansi-colors-1.1.0.tgz",
+            "integrity": "sha1-Y3S03V1HGP884npnGjscrQdxMqk=",
+            "dev": true,
+            "requires": {
+                "ansi-wrap": "^0.1.0"
+            }
+        },
+        "ansi-gray": {
+            "version": "0.1.1",
+            "resolved": "http://registry.npm.taobao.org/ansi-gray/download/ansi-gray-0.1.1.tgz",
+            "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=",
+            "dev": true,
+            "requires": {
+                "ansi-wrap": "0.1.0"
+            }
+        },
+        "ansi-regex": {
+            "version": "2.1.1",
+            "resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz",
+            "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+            "dev": true
+        },
+        "ansi-styles": {
+            "version": "2.2.1",
+            "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+            "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+            "dev": true
+        },
+        "ansi-wrap": {
+            "version": "0.1.0",
+            "resolved": "http://registry.npm.taobao.org/ansi-wrap/download/ansi-wrap-0.1.0.tgz",
+            "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=",
+            "dev": true
+        },
+        "anymatch": {
+            "version": "2.0.0",
+            "resolved": "http://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz",
+            "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=",
+            "dev": true,
+            "requires": {
+                "micromatch": "^3.1.4",
+                "normalize-path": "^2.1.1"
+            }
+        },
+        "apache-crypt": {
+            "version": "1.2.1",
+            "resolved": "http://registry.npm.taobao.org/apache-crypt/download/apache-crypt-1.2.1.tgz",
+            "integrity": "sha1-1vxyqm0n2ZyVqU/RiNcx7v/6Zjw=",
+            "dev": true,
+            "requires": {
+                "unix-crypt-td-js": "^1.0.0"
+            }
+        },
+        "apache-md5": {
+            "version": "1.1.2",
+            "resolved": "http://registry.npm.taobao.org/apache-md5/download/apache-md5-1.1.2.tgz",
+            "integrity": "sha1-7klza2ObTxCLbp5ibG2pkwa0FpI=",
+            "dev": true
+        },
+        "append-buffer": {
+            "version": "1.0.2",
+            "resolved": "http://registry.npm.taobao.org/append-buffer/download/append-buffer-1.0.2.tgz",
+            "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=",
+            "dev": true,
+            "requires": {
+                "buffer-equal": "^1.0.0"
+            }
+        },
+        "archy": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/archy/download/archy-1.0.0.tgz",
+            "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
+            "dev": true
+        },
+        "arr-diff": {
+            "version": "4.0.0",
+            "resolved": "http://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz",
+            "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+            "dev": true
+        },
+        "arr-filter": {
+            "version": "1.1.2",
+            "resolved": "http://registry.npm.taobao.org/arr-filter/download/arr-filter-1.1.2.tgz",
+            "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=",
+            "dev": true,
+            "requires": {
+                "make-iterator": "^1.0.0"
+            }
+        },
+        "arr-flatten": {
+            "version": "1.1.0",
+            "resolved": "http://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz",
+            "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=",
+            "dev": true
+        },
+        "arr-map": {
+            "version": "2.0.2",
+            "resolved": "http://registry.npm.taobao.org/arr-map/download/arr-map-2.0.2.tgz",
+            "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=",
+            "dev": true,
+            "requires": {
+                "make-iterator": "^1.0.0"
+            }
+        },
+        "arr-union": {
+            "version": "3.1.0",
+            "resolved": "http://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz",
+            "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+            "dev": true
+        },
+        "array-differ": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/array-differ/download/array-differ-1.0.0.tgz",
+            "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
+            "dev": true
+        },
+        "array-each": {
+            "version": "1.0.1",
+            "resolved": "http://registry.npm.taobao.org/array-each/download/array-each-1.0.1.tgz",
+            "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=",
+            "dev": true
+        },
+        "array-initial": {
+            "version": "1.1.0",
+            "resolved": "http://registry.npm.taobao.org/array-initial/download/array-initial-1.1.0.tgz",
+            "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=",
+            "dev": true,
+            "requires": {
+                "array-slice": "^1.0.0",
+                "is-number": "^4.0.0"
+            },
+            "dependencies": {
+                "is-number": {
+                    "version": "4.0.0",
+                    "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-4.0.0.tgz",
+                    "integrity": "sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8=",
+                    "dev": true
+                }
+            }
+        },
+        "array-last": {
+            "version": "1.3.0",
+            "resolved": "http://registry.npm.taobao.org/array-last/download/array-last-1.3.0.tgz",
+            "integrity": "sha1-eqdwc/7FZd2rJJP1+IGF9ASp0zY=",
+            "dev": true,
+            "requires": {
+                "is-number": "^4.0.0"
+            },
+            "dependencies": {
+                "is-number": {
+                    "version": "4.0.0",
+                    "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-4.0.0.tgz",
+                    "integrity": "sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8=",
+                    "dev": true
+                }
+            }
+        },
+        "array-slice": {
+            "version": "1.1.0",
+            "resolved": "http://registry.npm.taobao.org/array-slice/download/array-slice-1.1.0.tgz",
+            "integrity": "sha1-42jqFfibxwaff/uJrsOmx9SsItQ=",
+            "dev": true
+        },
+        "array-sort": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/array-sort/download/array-sort-1.0.0.tgz",
+            "integrity": "sha1-5MBTVkU/VvU1EqfR1hI/LFTAqIo=",
+            "dev": true,
+            "requires": {
+                "default-compare": "^1.0.0",
+                "get-value": "^2.0.6",
+                "kind-of": "^5.0.2"
+            },
+            "dependencies": {
+                "kind-of": {
+                    "version": "5.1.0",
+                    "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz",
+                    "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=",
+                    "dev": true
+                }
+            }
+        },
+        "array-uniq": {
+            "version": "1.0.3",
+            "resolved": "http://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz",
+            "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+            "dev": true
+        },
+        "array-unique": {
+            "version": "0.3.2",
+            "resolved": "http://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz",
+            "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+            "dev": true
+        },
+        "assign-symbols": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz",
+            "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+            "dev": true
+        },
+        "async-done": {
+            "version": "1.3.1",
+            "resolved": "http://registry.npm.taobao.org/async-done/download/async-done-1.3.1.tgz",
+            "integrity": "sha1-FLe3Nme4ZMjwK1slP8nG7dt3fz4=",
+            "dev": true,
+            "requires": {
+                "end-of-stream": "^1.1.0",
+                "once": "^1.3.2",
+                "process-nextick-args": "^1.0.7",
+                "stream-exhaust": "^1.0.1"
+            }
+        },
+        "async-each": {
+            "version": "1.0.2",
+            "resolved": "http://registry.npm.taobao.org/async-each/download/async-each-1.0.2.tgz",
+            "integrity": "sha1-i4p8oqZY+Sfp8wfW0aQvQZnw9zU=",
+            "dev": true
+        },
+        "async-settle": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/async-settle/download/async-settle-1.0.0.tgz",
+            "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=",
+            "dev": true,
+            "requires": {
+                "async-done": "^1.2.2"
+            }
+        },
+        "atob": {
+            "version": "2.1.2",
+            "resolved": "http://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz",
+            "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=",
+            "dev": true
+        },
+        "bach": {
+            "version": "1.2.0",
+            "resolved": "http://registry.npm.taobao.org/bach/download/bach-1.2.0.tgz",
+            "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=",
+            "dev": true,
+            "requires": {
+                "arr-filter": "^1.1.1",
+                "arr-flatten": "^1.0.1",
+                "arr-map": "^2.0.0",
+                "array-each": "^1.0.0",
+                "array-initial": "^1.0.0",
+                "array-last": "^1.1.1",
+                "async-done": "^1.2.2",
+                "async-settle": "^1.0.0",
+                "now-and-later": "^2.0.0"
+            }
+        },
+        "balanced-match": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz",
+            "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+            "dev": true
+        },
+        "base": {
+            "version": "0.11.2",
+            "resolved": "http://registry.npm.taobao.org/base/download/base-0.11.2.tgz",
+            "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=",
+            "dev": true,
+            "requires": {
+                "cache-base": "^1.0.1",
+                "class-utils": "^0.3.5",
+                "component-emitter": "^1.2.1",
+                "define-property": "^1.0.0",
+                "isobject": "^3.0.1",
+                "mixin-deep": "^1.2.0",
+                "pascalcase": "^0.1.1"
+            },
+            "dependencies": {
+                "define-property": {
+                    "version": "1.0.0",
+                    "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz",
+                    "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+                    "dev": true,
+                    "requires": {
+                        "is-descriptor": "^1.0.0"
+                    }
+                },
+                "is-accessor-descriptor": {
+                    "version": "1.0.0",
+                    "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz",
+                    "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
+                    "dev": true,
+                    "requires": {
+                        "kind-of": "^6.0.0"
+                    }
+                },
+                "is-data-descriptor": {
+                    "version": "1.0.0",
+                    "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz",
+                    "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
+                    "dev": true,
+                    "requires": {
+                        "kind-of": "^6.0.0"
+                    }
+                },
+                "is-descriptor": {
+                    "version": "1.0.2",
+                    "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz",
+                    "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
+                    "dev": true,
+                    "requires": {
+                        "is-accessor-descriptor": "^1.0.0",
+                        "is-data-descriptor": "^1.0.0",
+                        "kind-of": "^6.0.2"
+                    }
+                }
+            }
+        },
+        "basic-auth": {
+            "version": "2.0.1",
+            "resolved": "http://registry.npm.taobao.org/basic-auth/download/basic-auth-2.0.1.tgz",
+            "integrity": "sha1-uZgnm/R844NEtPPPkW1Gebv1Hjo=",
+            "dev": true,
+            "requires": {
+                "safe-buffer": "5.1.2"
+            }
+        },
+        "batch": {
+            "version": "0.6.1",
+            "resolved": "http://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz",
+            "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
+            "dev": true
+        },
+        "bcryptjs": {
+            "version": "2.4.3",
+            "resolved": "http://registry.npm.taobao.org/bcryptjs/download/bcryptjs-2.4.3.tgz",
+            "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=",
+            "dev": true
+        },
+        "beeper": {
+            "version": "1.1.1",
+            "resolved": "http://registry.npm.taobao.org/beeper/download/beeper-1.1.1.tgz",
+            "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=",
+            "dev": true
+        },
+        "binary-extensions": {
+            "version": "1.13.0",
+            "resolved": "http://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.0.tgz",
+            "integrity": "sha1-lSPgATBqMkRLkHQj8d4hZCIvarE=",
+            "dev": true
+        },
+        "brace-expansion": {
+            "version": "1.1.11",
+            "resolved": "http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz",
+            "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=",
+            "dev": true,
+            "requires": {
+                "balanced-match": "^1.0.0",
+                "concat-map": "0.0.1"
+            }
+        },
+        "braces": {
+            "version": "2.3.2",
+            "resolved": "http://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz",
+            "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=",
+            "dev": true,
+            "requires": {
+                "arr-flatten": "^1.1.0",
+                "array-unique": "^0.3.2",
+                "extend-shallow": "^2.0.1",
+                "fill-range": "^4.0.0",
+                "isobject": "^3.0.1",
+                "repeat-element": "^1.1.2",
+                "snapdragon": "^0.8.1",
+                "snapdragon-node": "^2.0.1",
+                "split-string": "^3.0.2",
+                "to-regex": "^3.0.1"
+            },
+            "dependencies": {
+                "extend-shallow": {
+                    "version": "2.0.1",
+                    "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+                    "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                    "dev": true,
+                    "requires": {
+                        "is-extendable": "^0.1.0"
+                    }
+                }
+            }
+        },
+        "buffer-equal": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/buffer-equal/download/buffer-equal-1.0.0.tgz",
+            "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=",
+            "dev": true
+        },
+        "buffer-from": {
+            "version": "1.1.1",
+            "resolved": "http://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz",
+            "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=",
+            "dev": true
+        },
+        "cache-base": {
+            "version": "1.0.1",
+            "resolved": "http://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz",
+            "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=",
+            "dev": true,
+            "requires": {
+                "collection-visit": "^1.0.0",
+                "component-emitter": "^1.2.1",
+                "get-value": "^2.0.6",
+                "has-value": "^1.0.0",
+                "isobject": "^3.0.1",
+                "set-value": "^2.0.0",
+                "to-object-path": "^0.3.0",
+                "union-value": "^1.0.0",
+                "unset-value": "^1.0.0"
+            }
+        },
+        "camelcase": {
+            "version": "3.0.0",
+            "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-3.0.0.tgz",
+            "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+            "dev": true
+        },
+        "chalk": {
+            "version": "1.1.3",
+            "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+            "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+            "dev": true,
+            "requires": {
+                "ansi-styles": "^2.2.1",
+                "escape-string-regexp": "^1.0.2",
+                "has-ansi": "^2.0.0",
+                "strip-ansi": "^3.0.0",
+                "supports-color": "^2.0.0"
+            }
+        },
+        "chokidar": {
+            "version": "2.1.5",
+            "resolved": "http://registry.npm.taobao.org/chokidar/download/chokidar-2.1.5.tgz",
+            "integrity": "sha1-CuhDTZYigaX1bHKGnnnLbZ2GrU0=",
+            "dev": true,
+            "requires": {
+                "anymatch": "^2.0.0",
+                "async-each": "^1.0.1",
+                "braces": "^2.3.2",
+                "fsevents": "^1.2.7",
+                "glob-parent": "^3.1.0",
+                "inherits": "^2.0.3",
+                "is-binary-path": "^1.0.0",
+                "is-glob": "^4.0.0",
+                "normalize-path": "^3.0.0",
+                "path-is-absolute": "^1.0.0",
+                "readdirp": "^2.2.1",
+                "upath": "^1.1.1"
+            },
+            "dependencies": {
+                "normalize-path": {
+                    "version": "3.0.0",
+                    "resolved": "http://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz",
+                    "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=",
+                    "dev": true
+                }
+            }
+        },
+        "class-utils": {
+            "version": "0.3.6",
+            "resolved": "http://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz",
+            "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=",
+            "dev": true,
+            "requires": {
+                "arr-union": "^3.1.0",
+                "define-property": "^0.2.5",
+                "isobject": "^3.0.0",
+                "static-extend": "^0.1.1"
+            },
+            "dependencies": {
+                "define-property": {
+                    "version": "0.2.5",
+                    "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
+                    "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+                    "dev": true,
+                    "requires": {
+                        "is-descriptor": "^0.1.0"
+                    }
+                }
+            }
+        },
+        "cliui": {
+            "version": "3.2.0",
+            "resolved": "http://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz",
+            "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+            "dev": true,
+            "requires": {
+                "string-width": "^1.0.1",
+                "strip-ansi": "^3.0.1",
+                "wrap-ansi": "^2.0.0"
+            }
+        },
+        "clone": {
+            "version": "2.1.2",
+            "resolved": "http://registry.npm.taobao.org/clone/download/clone-2.1.2.tgz",
+            "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
+            "dev": true
+        },
+        "clone-buffer": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/clone-buffer/download/clone-buffer-1.0.0.tgz",
+            "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=",
+            "dev": true
+        },
+        "clone-stats": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/clone-stats/download/clone-stats-1.0.0.tgz",
+            "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=",
+            "dev": true
+        },
+        "cloneable-readable": {
+            "version": "1.1.2",
+            "resolved": "http://registry.npm.taobao.org/cloneable-readable/download/cloneable-readable-1.1.2.tgz",
+            "integrity": "sha1-1ZHe5Kj4vBXaQ86X3O66E9Q+KmU=",
+            "dev": true,
+            "requires": {
+                "inherits": "^2.0.1",
+                "process-nextick-args": "^2.0.0",
+                "readable-stream": "^2.3.5"
+            },
+            "dependencies": {
+                "process-nextick-args": {
+                    "version": "2.0.0",
+                    "resolved": "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.0.tgz",
+                    "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=",
+                    "dev": true
+                }
+            }
+        },
+        "code-point-at": {
+            "version": "1.1.0",
+            "resolved": "http://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz",
+            "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+            "dev": true
+        },
+        "collection-map": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/collection-map/download/collection-map-1.0.0.tgz",
+            "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=",
+            "dev": true,
+            "requires": {
+                "arr-map": "^2.0.2",
+                "for-own": "^1.0.0",
+                "make-iterator": "^1.0.0"
+            }
+        },
+        "collection-visit": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz",
+            "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+            "dev": true,
+            "requires": {
+                "map-visit": "^1.0.0",
+                "object-visit": "^1.0.0"
+            }
+        },
+        "color-support": {
+            "version": "1.1.3",
+            "resolved": "http://registry.npm.taobao.org/color-support/download/color-support-1.1.3.tgz",
+            "integrity": "sha1-k4NDeaHMmgxh+C9S8NBDIiUb1aI=",
+            "dev": true
+        },
+        "colors": {
+            "version": "1.3.3",
+            "resolved": "http://registry.npm.taobao.org/colors/download/colors-1.3.3.tgz",
+            "integrity": "sha1-OeAF1Uav4B4B+cTKj6UPaGoBIF0=",
+            "dev": true
+        },
+        "commander": {
+            "version": "2.19.0",
+            "resolved": "http://registry.npm.taobao.org/commander/download/commander-2.19.0.tgz",
+            "integrity": "sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So=",
+            "dev": true
+        },
+        "component-emitter": {
+            "version": "1.2.1",
+            "resolved": "http://registry.npm.taobao.org/component-emitter/download/component-emitter-1.2.1.tgz",
+            "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
+            "dev": true
+        },
+        "concat-map": {
+            "version": "0.0.1",
+            "resolved": "http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz",
+            "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+            "dev": true
+        },
+        "concat-stream": {
+            "version": "1.6.2",
+            "resolved": "http://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz",
+            "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=",
+            "dev": true,
+            "requires": {
+                "buffer-from": "^1.0.0",
+                "inherits": "^2.0.3",
+                "readable-stream": "^2.2.2",
+                "typedarray": "^0.0.6"
+            }
+        },
+        "connect": {
+            "version": "3.6.6",
+            "resolved": "http://registry.npm.taobao.org/connect/download/connect-3.6.6.tgz",
+            "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=",
+            "dev": true,
+            "requires": {
+                "debug": "2.6.9",
+                "finalhandler": "1.1.0",
+                "parseurl": "~1.3.2",
+                "utils-merge": "1.0.1"
+            }
+        },
+        "convert-source-map": {
+            "version": "1.6.0",
+            "resolved": "http://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.6.0.tgz",
+            "integrity": "sha1-UbU3qMQ+DwTewZk7/83VBOdYrCA=",
+            "dev": true,
+            "requires": {
+                "safe-buffer": "~5.1.1"
+            }
+        },
+        "copy-descriptor": {
+            "version": "0.1.1",
+            "resolved": "http://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz",
+            "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+            "dev": true
+        },
+        "copy-props": {
+            "version": "2.0.4",
+            "resolved": "http://registry.npm.taobao.org/copy-props/download/copy-props-2.0.4.tgz",
+            "integrity": "sha1-k7scrfr9MdpbuKnUtB9HHsOnLf4=",
+            "dev": true,
+            "requires": {
+                "each-props": "^1.3.0",
+                "is-plain-object": "^2.0.1"
+            }
+        },
+        "core-util-is": {
+            "version": "1.0.2",
+            "resolved": "http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz",
+            "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+            "dev": true
+        },
+        "cors": {
+            "version": "2.8.5",
+            "resolved": "http://registry.npm.taobao.org/cors/download/cors-2.8.5.tgz",
+            "integrity": "sha1-6sEdpRWS3Ya58G9uesKTs9+HXSk=",
+            "dev": true,
+            "requires": {
+                "object-assign": "^4",
+                "vary": "^1"
+            }
+        },
+        "css": {
+            "version": "2.2.4",
+            "resolved": "http://registry.npm.taobao.org/css/download/css-2.2.4.tgz",
+            "integrity": "sha1-xkZ1XHOXHyu6amAeLPL9cbEpiSk=",
+            "dev": true,
+            "requires": {
+                "inherits": "^2.0.3",
+                "source-map": "^0.6.1",
+                "source-map-resolve": "^0.5.2",
+                "urix": "^0.1.0"
+            },
+            "dependencies": {
+                "source-map": {
+                    "version": "0.6.1",
+                    "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+                    "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+                    "dev": true
+                }
+            }
+        },
+        "d": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/d/download/d-1.0.0.tgz",
+            "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
+            "dev": true,
+            "requires": {
+                "es5-ext": "^0.10.9"
+            }
+        },
+        "dateformat": {
+            "version": "2.2.0",
+            "resolved": "http://registry.npm.taobao.org/dateformat/download/dateformat-2.2.0.tgz",
+            "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=",
+            "dev": true
+        },
+        "debug": {
+            "version": "2.6.9",
+            "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
+            "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+            "dev": true,
+            "requires": {
+                "ms": "2.0.0"
+            }
+        },
+        "debug-fabulous": {
+            "version": "1.1.0",
+            "resolved": "http://registry.npm.taobao.org/debug-fabulous/download/debug-fabulous-1.1.0.tgz",
+            "integrity": "sha1-r4oIYyRlIk70F0qfBjCMPCoevI4=",
+            "dev": true,
+            "requires": {
+                "debug": "3.X",
+                "memoizee": "0.4.X",
+                "object-assign": "4.X"
+            },
+            "dependencies": {
+                "debug": {
+                    "version": "3.2.6",
+                    "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz",
+                    "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=",
+                    "dev": true,
+                    "requires": {
+                        "ms": "^2.1.1"
+                    }
+                },
+                "ms": {
+                    "version": "2.1.1",
+                    "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz",
+                    "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=",
+                    "dev": true
+                }
+            }
+        },
+        "decamelize": {
+            "version": "1.2.0",
+            "resolved": "http://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz",
+            "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+            "dev": true
+        },
+        "decode-uri-component": {
+            "version": "0.2.0",
+            "resolved": "http://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz",
+            "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+            "dev": true
+        },
+        "default-compare": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/default-compare/download/default-compare-1.0.0.tgz",
+            "integrity": "sha1-y2ETGESthNhHiPto/QFoHKd4Gi8=",
+            "dev": true,
+            "requires": {
+                "kind-of": "^5.0.2"
+            },
+            "dependencies": {
+                "kind-of": {
+                    "version": "5.1.0",
+                    "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz",
+                    "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=",
+                    "dev": true
+                }
+            }
+        },
+        "default-resolution": {
+            "version": "2.0.0",
+            "resolved": "http://registry.npm.taobao.org/default-resolution/download/default-resolution-2.0.0.tgz",
+            "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=",
+            "dev": true
+        },
+        "define-properties": {
+            "version": "1.1.3",
+            "resolved": "http://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz",
+            "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=",
+            "dev": true,
+            "requires": {
+                "object-keys": "^1.0.12"
+            }
+        },
+        "define-property": {
+            "version": "2.0.2",
+            "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz",
+            "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=",
+            "dev": true,
+            "requires": {
+                "is-descriptor": "^1.0.2",
+                "isobject": "^3.0.1"
+            },
+            "dependencies": {
+                "is-accessor-descriptor": {
+                    "version": "1.0.0",
+                    "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz",
+                    "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
+                    "dev": true,
+                    "requires": {
+                        "kind-of": "^6.0.0"
+                    }
+                },
+                "is-data-descriptor": {
+                    "version": "1.0.0",
+                    "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz",
+                    "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
+                    "dev": true,
+                    "requires": {
+                        "kind-of": "^6.0.0"
+                    }
+                },
+                "is-descriptor": {
+                    "version": "1.0.2",
+                    "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz",
+                    "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
+                    "dev": true,
+                    "requires": {
+                        "is-accessor-descriptor": "^1.0.0",
+                        "is-data-descriptor": "^1.0.0",
+                        "kind-of": "^6.0.2"
+                    }
+                }
+            }
+        },
+        "depd": {
+            "version": "1.1.2",
+            "resolved": "http://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz",
+            "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+            "dev": true
+        },
+        "destroy": {
+            "version": "1.0.4",
+            "resolved": "http://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz",
+            "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
+            "dev": true
+        },
+        "detect-file": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/detect-file/download/detect-file-1.0.0.tgz",
+            "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=",
+            "dev": true
+        },
+        "detect-newline": {
+            "version": "2.1.0",
+            "resolved": "http://registry.npm.taobao.org/detect-newline/download/detect-newline-2.1.0.tgz",
+            "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=",
+            "dev": true
+        },
+        "duplexer": {
+            "version": "0.1.1",
+            "resolved": "http://registry.npm.taobao.org/duplexer/download/duplexer-0.1.1.tgz",
+            "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
+            "dev": true
+        },
+        "duplexer2": {
+            "version": "0.0.2",
+            "resolved": "http://registry.npm.taobao.org/duplexer2/download/duplexer2-0.0.2.tgz",
+            "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
+            "dev": true,
+            "requires": {
+                "readable-stream": "~1.1.9"
+            },
+            "dependencies": {
+                "isarray": {
+                    "version": "0.0.1",
+                    "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz",
+                    "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+                    "dev": true
+                },
+                "readable-stream": {
+                    "version": "1.1.14",
+                    "resolved": "http://registry.npm.taobao.org/readable-stream/download/readable-stream-1.1.14.tgz",
+                    "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+                    "dev": true,
+                    "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.1",
+                        "isarray": "0.0.1",
+                        "string_decoder": "~0.10.x"
+                    }
+                },
+                "string_decoder": {
+                    "version": "0.10.31",
+                    "resolved": "http://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz",
+                    "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+                    "dev": true
+                }
+            }
+        },
+        "duplexify": {
+            "version": "3.7.1",
+            "resolved": "http://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz",
+            "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=",
+            "dev": true,
+            "requires": {
+                "end-of-stream": "^1.0.0",
+                "inherits": "^2.0.1",
+                "readable-stream": "^2.0.0",
+                "stream-shift": "^1.0.0"
+            }
+        },
+        "each-props": {
+            "version": "1.3.2",
+            "resolved": "http://registry.npm.taobao.org/each-props/download/each-props-1.3.2.tgz",
+            "integrity": "sha1-6kWkFNFt1c+kGbGoFyDVygaJIzM=",
+            "dev": true,
+            "requires": {
+                "is-plain-object": "^2.0.1",
+                "object.defaults": "^1.1.0"
+            }
+        },
+        "ee-first": {
+            "version": "1.1.1",
+            "resolved": "http://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz",
+            "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
+            "dev": true
+        },
+        "encodeurl": {
+            "version": "1.0.2",
+            "resolved": "http://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz",
+            "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+            "dev": true
+        },
+        "end-of-stream": {
+            "version": "1.4.1",
+            "resolved": "http://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.1.tgz",
+            "integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=",
+            "dev": true,
+            "requires": {
+                "once": "^1.4.0"
+            }
+        },
+        "error-ex": {
+            "version": "1.3.2",
+            "resolved": "http://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz",
+            "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=",
+            "dev": true,
+            "requires": {
+                "is-arrayish": "^0.2.1"
+            }
+        },
+        "es5-ext": {
+            "version": "0.10.49",
+            "resolved": "http://registry.npm.taobao.org/es5-ext/download/es5-ext-0.10.49.tgz",
+            "integrity": "sha1-BZojnehiyUSU/sKPgVDJdwKMbF4=",
+            "dev": true,
+            "requires": {
+                "es6-iterator": "~2.0.3",
+                "es6-symbol": "~3.1.1",
+                "next-tick": "^1.0.0"
+            }
+        },
+        "es6-iterator": {
+            "version": "2.0.3",
+            "resolved": "http://registry.npm.taobao.org/es6-iterator/download/es6-iterator-2.0.3.tgz",
+            "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+            "dev": true,
+            "requires": {
+                "d": "1",
+                "es5-ext": "^0.10.35",
+                "es6-symbol": "^3.1.1"
+            }
+        },
+        "es6-symbol": {
+            "version": "3.1.1",
+            "resolved": "http://registry.npm.taobao.org/es6-symbol/download/es6-symbol-3.1.1.tgz",
+            "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+            "dev": true,
+            "requires": {
+                "d": "1",
+                "es5-ext": "~0.10.14"
+            }
+        },
+        "es6-weak-map": {
+            "version": "2.0.2",
+            "resolved": "http://registry.npm.taobao.org/es6-weak-map/download/es6-weak-map-2.0.2.tgz",
+            "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
+            "dev": true,
+            "requires": {
+                "d": "1",
+                "es5-ext": "^0.10.14",
+                "es6-iterator": "^2.0.1",
+                "es6-symbol": "^3.1.1"
+            }
+        },
+        "escape-html": {
+            "version": "1.0.3",
+            "resolved": "http://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz",
+            "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+            "dev": true
+        },
+        "escape-string-regexp": {
+            "version": "1.0.5",
+            "resolved": "http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz",
+            "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+            "dev": true
+        },
+        "etag": {
+            "version": "1.8.1",
+            "resolved": "http://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz",
+            "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+            "dev": true
+        },
+        "event-emitter": {
+            "version": "0.3.5",
+            "resolved": "http://registry.npm.taobao.org/event-emitter/download/event-emitter-0.3.5.tgz",
+            "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
+            "dev": true,
+            "requires": {
+                "d": "1",
+                "es5-ext": "~0.10.14"
+            }
+        },
+        "event-stream": {
+            "version": "3.3.4",
+            "resolved": "http://registry.npm.taobao.org/event-stream/download/event-stream-3.3.4.tgz",
+            "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=",
+            "dev": true,
+            "requires": {
+                "duplexer": "~0.1.1",
+                "from": "~0",
+                "map-stream": "~0.1.0",
+                "pause-stream": "0.0.11",
+                "split": "0.3",
+                "stream-combiner": "~0.0.4",
+                "through": "~2.3.1"
+            }
+        },
+        "expand-brackets": {
+            "version": "2.1.4",
+            "resolved": "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz",
+            "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+            "dev": true,
+            "requires": {
+                "debug": "^2.3.3",
+                "define-property": "^0.2.5",
+                "extend-shallow": "^2.0.1",
+                "posix-character-classes": "^0.1.0",
+                "regex-not": "^1.0.0",
+                "snapdragon": "^0.8.1",
+                "to-regex": "^3.0.1"
+            },
+            "dependencies": {
+                "define-property": {
+                    "version": "0.2.5",
+                    "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
+                    "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+                    "dev": true,
+                    "requires": {
+                        "is-descriptor": "^0.1.0"
+                    }
+                },
+                "extend-shallow": {
+                    "version": "2.0.1",
+                    "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+                    "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                    "dev": true,
+                    "requires": {
+                        "is-extendable": "^0.1.0"
+                    }
+                }
+            }
+        },
+        "expand-range": {
+            "version": "1.8.2",
+            "resolved": "http://registry.npm.taobao.org/expand-range/download/expand-range-1.8.2.tgz",
+            "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
+            "dev": true,
+            "requires": {
+                "fill-range": "^2.1.0"
+            },
+            "dependencies": {
+                "fill-range": {
+                    "version": "2.2.4",
+                    "resolved": "http://registry.npm.taobao.org/fill-range/download/fill-range-2.2.4.tgz",
+                    "integrity": "sha1-6x53OrsFbc2N8r/favWbizqTZWU=",
+                    "dev": true,
+                    "requires": {
+                        "is-number": "^2.1.0",
+                        "isobject": "^2.0.0",
+                        "randomatic": "^3.0.0",
+                        "repeat-element": "^1.1.2",
+                        "repeat-string": "^1.5.2"
+                    }
+                },
+                "is-number": {
+                    "version": "2.1.0",
+                    "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz",
+                    "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+                    "dev": true,
+                    "requires": {
+                        "kind-of": "^3.0.2"
+                    }
+                },
+                "isobject": {
+                    "version": "2.1.0",
+                    "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz",
+                    "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+                    "dev": true,
+                    "requires": {
+                        "isarray": "1.0.0"
+                    }
+                },
+                "kind-of": {
+                    "version": "3.2.2",
+                    "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
+                    "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                    "dev": true,
+                    "requires": {
+                        "is-buffer": "^1.1.5"
+                    }
+                }
+            }
+        },
+        "expand-tilde": {
+            "version": "2.0.2",
+            "resolved": "http://registry.npm.taobao.org/expand-tilde/download/expand-tilde-2.0.2.tgz",
+            "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
+            "dev": true,
+            "requires": {
+                "homedir-polyfill": "^1.0.1"
+            }
+        },
+        "extend": {
+            "version": "3.0.2",
+            "resolved": "http://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz",
+            "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=",
+            "dev": true
+        },
+        "extend-shallow": {
+            "version": "3.0.2",
+            "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz",
+            "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+            "dev": true,
+            "requires": {
+                "assign-symbols": "^1.0.0",
+                "is-extendable": "^1.0.1"
+            },
+            "dependencies": {
+                "is-extendable": {
+                    "version": "1.0.1",
+                    "resolved": "http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz",
+                    "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=",
+                    "dev": true,
+                    "requires": {
+                        "is-plain-object": "^2.0.4"
+                    }
+                }
+            }
+        },
+        "extglob": {
+            "version": "2.0.4",
+            "resolved": "http://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz",
+            "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=",
+            "dev": true,
+            "requires": {
+                "array-unique": "^0.3.2",
+                "define-property": "^1.0.0",
+                "expand-brackets": "^2.1.4",
+                "extend-shallow": "^2.0.1",
+                "fragment-cache": "^0.2.1",
+                "regex-not": "^1.0.0",
+                "snapdragon": "^0.8.1",
+                "to-regex": "^3.0.1"
+            },
+            "dependencies": {
+                "define-property": {
+                    "version": "1.0.0",
+                    "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz",
+                    "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+                    "dev": true,
+                    "requires": {
+                        "is-descriptor": "^1.0.0"
+                    }
+                },
+                "extend-shallow": {
+                    "version": "2.0.1",
+                    "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+                    "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                    "dev": true,
+                    "requires": {
+                        "is-extendable": "^0.1.0"
+                    }
+                },
+                "is-accessor-descriptor": {
+                    "version": "1.0.0",
+                    "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz",
+                    "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
+                    "dev": true,
+                    "requires": {
+                        "kind-of": "^6.0.0"
+                    }
+                },
+                "is-data-descriptor": {
+                    "version": "1.0.0",
+                    "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz",
+                    "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
+                    "dev": true,
+                    "requires": {
+                        "kind-of": "^6.0.0"
+                    }
+                },
+                "is-descriptor": {
+                    "version": "1.0.2",
+                    "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz",
+                    "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
+                    "dev": true,
+                    "requires": {
+                        "is-accessor-descriptor": "^1.0.0",
+                        "is-data-descriptor": "^1.0.0",
+                        "kind-of": "^6.0.2"
+                    }
+                }
+            }
+        },
+        "fancy-log": {
+            "version": "1.3.3",
+            "resolved": "http://registry.npm.taobao.org/fancy-log/download/fancy-log-1.3.3.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Ffancy-log%2Fdownload%2Ffancy-log-1.3.3.tgz",
+            "integrity": "sha1-28GRVPVYaQFQojlToK29A1vkX8c=",
+            "dev": true,
+            "requires": {
+                "ansi-gray": "^0.1.1",
+                "color-support": "^1.1.3",
+                "parse-node-version": "^1.0.0",
+                "time-stamp": "^1.0.0"
+            }
+        },
+        "faye-websocket": {
+            "version": "0.11.1",
+            "resolved": "http://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.11.1.tgz",
+            "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=",
+            "dev": true,
+            "requires": {
+                "websocket-driver": ">=0.5.1"
+            }
+        },
+        "filename-regex": {
+            "version": "2.0.1",
+            "resolved": "http://registry.npm.taobao.org/filename-regex/download/filename-regex-2.0.1.tgz",
+            "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
+            "dev": true
+        },
+        "fill-range": {
+            "version": "4.0.0",
+            "resolved": "http://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz",
+            "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+            "dev": true,
+            "requires": {
+                "extend-shallow": "^2.0.1",
+                "is-number": "^3.0.0",
+                "repeat-string": "^1.6.1",
+                "to-regex-range": "^2.1.0"
+            },
+            "dependencies": {
+                "extend-shallow": {
+                    "version": "2.0.1",
+                    "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+                    "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                    "dev": true,
+                    "requires": {
+                        "is-extendable": "^0.1.0"
+                    }
+                }
+            }
+        },
+        "finalhandler": {
+            "version": "1.1.0",
+            "resolved": "http://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.0.tgz",
+            "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
+            "dev": true,
+            "requires": {
+                "debug": "2.6.9",
+                "encodeurl": "~1.0.1",
+                "escape-html": "~1.0.3",
+                "on-finished": "~2.3.0",
+                "parseurl": "~1.3.2",
+                "statuses": "~1.3.1",
+                "unpipe": "~1.0.0"
+            }
+        },
+        "find-up": {
+            "version": "1.1.2",
+            "resolved": "http://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz",
+            "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+            "dev": true,
+            "requires": {
+                "path-exists": "^2.0.0",
+                "pinkie-promise": "^2.0.0"
+            }
+        },
+        "findup-sync": {
+            "version": "3.0.0",
+            "resolved": "http://registry.npm.taobao.org/findup-sync/download/findup-sync-3.0.0.tgz",
+            "integrity": "sha1-F7EI+e5RLft6XH88iyfqnhqcCNE=",
+            "dev": true,
+            "requires": {
+                "detect-file": "^1.0.0",
+                "is-glob": "^4.0.0",
+                "micromatch": "^3.0.4",
+                "resolve-dir": "^1.0.1"
+            }
+        },
+        "fined": {
+            "version": "1.1.1",
+            "resolved": "http://registry.npm.taobao.org/fined/download/fined-1.1.1.tgz",
+            "integrity": "sha1-ldiP8ykSPdGmlQ/fzTIfdGJx4B8=",
+            "dev": true,
+            "requires": {
+                "expand-tilde": "^2.0.2",
+                "is-plain-object": "^2.0.3",
+                "object.defaults": "^1.1.0",
+                "object.pick": "^1.2.0",
+                "parse-filepath": "^1.0.1"
+            }
+        },
+        "first-chunk-stream": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/first-chunk-stream/download/first-chunk-stream-1.0.0.tgz",
+            "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=",
+            "dev": true
+        },
+        "flagged-respawn": {
+            "version": "1.0.1",
+            "resolved": "http://registry.npm.taobao.org/flagged-respawn/download/flagged-respawn-1.0.1.tgz",
+            "integrity": "sha1-595vEnnd2cqarIpZcdYYYGs6q0E=",
+            "dev": true
+        },
+        "flush-write-stream": {
+            "version": "1.1.1",
+            "resolved": "http://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz",
+            "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=",
+            "dev": true,
+            "requires": {
+                "inherits": "^2.0.3",
+                "readable-stream": "^2.3.6"
+            }
+        },
+        "for-in": {
+            "version": "1.0.2",
+            "resolved": "http://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz",
+            "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+            "dev": true
+        },
+        "for-own": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/for-own/download/for-own-1.0.0.tgz",
+            "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
+            "dev": true,
+            "requires": {
+                "for-in": "^1.0.1"
+            }
+        },
+        "fragment-cache": {
+            "version": "0.2.1",
+            "resolved": "http://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz",
+            "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+            "dev": true,
+            "requires": {
+                "map-cache": "^0.2.2"
+            }
+        },
+        "fresh": {
+            "version": "0.5.2",
+            "resolved": "http://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz",
+            "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+            "dev": true
+        },
+        "from": {
+            "version": "0.1.7",
+            "resolved": "http://registry.npm.taobao.org/from/download/from-0.1.7.tgz",
+            "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=",
+            "dev": true
+        },
+        "fs-mkdirp-stream": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/fs-mkdirp-stream/download/fs-mkdirp-stream-1.0.0.tgz",
+            "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=",
+            "dev": true,
+            "requires": {
+                "graceful-fs": "^4.1.11",
+                "through2": "^2.0.3"
+            }
+        },
+        "fs.realpath": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz",
+            "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+            "dev": true
+        },
+        "fsevents": {
+            "version": "1.2.7",
+            "resolved": "http://registry.npm.taobao.org/fsevents/download/fsevents-1.2.7.tgz",
+            "integrity": "sha1-SFG2ZKN4PlIAOzxm6w7uEHSTOqQ=",
+            "dev": true,
+            "optional": true,
+            "requires": {
+                "nan": "^2.9.2",
+                "node-pre-gyp": "^0.10.0"
+            },
+            "dependencies": {
+                "abbrev": {
+                    "version": "1.1.1",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "ansi-regex": {
+                    "version": "2.1.1",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "aproba": {
+                    "version": "1.2.0",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "are-we-there-yet": {
+                    "version": "1.1.5",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "delegates": "^1.0.0",
+                        "readable-stream": "^2.0.6"
+                    }
+                },
+                "balanced-match": {
+                    "version": "1.0.0",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "brace-expansion": {
+                    "version": "1.1.11",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "balanced-match": "^1.0.0",
+                        "concat-map": "0.0.1"
+                    }
+                },
+                "chownr": {
+                    "version": "1.1.1",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "code-point-at": {
+                    "version": "1.1.0",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "concat-map": {
+                    "version": "0.0.1",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "console-control-strings": {
+                    "version": "1.1.0",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "core-util-is": {
+                    "version": "1.0.2",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "debug": {
+                    "version": "2.6.9",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "ms": "2.0.0"
+                    }
+                },
+                "deep-extend": {
+                    "version": "0.6.0",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "delegates": {
+                    "version": "1.0.0",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "detect-libc": {
+                    "version": "1.0.3",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "fs-minipass": {
+                    "version": "1.2.5",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "minipass": "^2.2.1"
+                    }
+                },
+                "fs.realpath": {
+                    "version": "1.0.0",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "gauge": {
+                    "version": "2.7.4",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "aproba": "^1.0.3",
+                        "console-control-strings": "^1.0.0",
+                        "has-unicode": "^2.0.0",
+                        "object-assign": "^4.1.0",
+                        "signal-exit": "^3.0.0",
+                        "string-width": "^1.0.1",
+                        "strip-ansi": "^3.0.1",
+                        "wide-align": "^1.1.0"
+                    }
+                },
+                "glob": {
+                    "version": "7.1.3",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "fs.realpath": "^1.0.0",
+                        "inflight": "^1.0.4",
+                        "inherits": "2",
+                        "minimatch": "^3.0.4",
+                        "once": "^1.3.0",
+                        "path-is-absolute": "^1.0.0"
+                    }
+                },
+                "has-unicode": {
+                    "version": "2.0.1",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "iconv-lite": {
+                    "version": "0.4.24",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "safer-buffer": ">= 2.1.2 < 3"
+                    }
+                },
+                "ignore-walk": {
+                    "version": "3.0.1",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "minimatch": "^3.0.4"
+                    }
+                },
+                "inflight": {
+                    "version": "1.0.6",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "once": "^1.3.0",
+                        "wrappy": "1"
+                    }
+                },
+                "inherits": {
+                    "version": "2.0.3",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "ini": {
+                    "version": "1.3.5",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "is-fullwidth-code-point": {
+                    "version": "1.0.0",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "number-is-nan": "^1.0.0"
+                    }
+                },
+                "isarray": {
+                    "version": "1.0.0",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "minimatch": {
+                    "version": "3.0.4",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "brace-expansion": "^1.1.7"
+                    }
+                },
+                "minimist": {
+                    "version": "0.0.8",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "minipass": {
+                    "version": "2.3.5",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "safe-buffer": "^5.1.2",
+                        "yallist": "^3.0.0"
+                    }
+                },
+                "minizlib": {
+                    "version": "1.2.1",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "minipass": "^2.2.1"
+                    }
+                },
+                "mkdirp": {
+                    "version": "0.5.1",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "minimist": "0.0.8"
+                    }
+                },
+                "ms": {
+                    "version": "2.0.0",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "needle": {
+                    "version": "2.2.4",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "debug": "^2.1.2",
+                        "iconv-lite": "^0.4.4",
+                        "sax": "^1.2.4"
+                    }
+                },
+                "node-pre-gyp": {
+                    "version": "0.10.3",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "detect-libc": "^1.0.2",
+                        "mkdirp": "^0.5.1",
+                        "needle": "^2.2.1",
+                        "nopt": "^4.0.1",
+                        "npm-packlist": "^1.1.6",
+                        "npmlog": "^4.0.2",
+                        "rc": "^1.2.7",
+                        "rimraf": "^2.6.1",
+                        "semver": "^5.3.0",
+                        "tar": "^4"
+                    }
+                },
+                "nopt": {
+                    "version": "4.0.1",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "abbrev": "1",
+                        "osenv": "^0.1.4"
+                    }
+                },
+                "npm-bundled": {
+                    "version": "1.0.5",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "npm-packlist": {
+                    "version": "1.2.0",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "ignore-walk": "^3.0.1",
+                        "npm-bundled": "^1.0.1"
+                    }
+                },
+                "npmlog": {
+                    "version": "4.1.2",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "are-we-there-yet": "~1.1.2",
+                        "console-control-strings": "~1.1.0",
+                        "gauge": "~2.7.3",
+                        "set-blocking": "~2.0.0"
+                    }
+                },
+                "number-is-nan": {
+                    "version": "1.0.1",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "object-assign": {
+                    "version": "4.1.1",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "once": {
+                    "version": "1.4.0",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "wrappy": "1"
+                    }
+                },
+                "os-homedir": {
+                    "version": "1.0.2",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "os-tmpdir": {
+                    "version": "1.0.2",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "osenv": {
+                    "version": "0.1.5",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "os-homedir": "^1.0.0",
+                        "os-tmpdir": "^1.0.0"
+                    }
+                },
+                "path-is-absolute": {
+                    "version": "1.0.1",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "process-nextick-args": {
+                    "version": "2.0.0",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "rc": {
+                    "version": "1.2.8",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "deep-extend": "^0.6.0",
+                        "ini": "~1.3.0",
+                        "minimist": "^1.2.0",
+                        "strip-json-comments": "~2.0.1"
+                    },
+                    "dependencies": {
+                        "minimist": {
+                            "version": "1.2.0",
+                            "bundled": true,
+                            "dev": true,
+                            "optional": true
+                        }
+                    }
+                },
+                "readable-stream": {
+                    "version": "2.3.6",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.3",
+                        "isarray": "~1.0.0",
+                        "process-nextick-args": "~2.0.0",
+                        "safe-buffer": "~5.1.1",
+                        "string_decoder": "~1.1.1",
+                        "util-deprecate": "~1.0.1"
+                    }
+                },
+                "rimraf": {
+                    "version": "2.6.3",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "glob": "^7.1.3"
+                    }
+                },
+                "safe-buffer": {
+                    "version": "5.1.2",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "safer-buffer": {
+                    "version": "2.1.2",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "sax": {
+                    "version": "1.2.4",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "semver": {
+                    "version": "5.6.0",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "set-blocking": {
+                    "version": "2.0.0",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "signal-exit": {
+                    "version": "3.0.2",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "string-width": {
+                    "version": "1.0.2",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "code-point-at": "^1.0.0",
+                        "is-fullwidth-code-point": "^1.0.0",
+                        "strip-ansi": "^3.0.0"
+                    }
+                },
+                "string_decoder": {
+                    "version": "1.1.1",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "safe-buffer": "~5.1.0"
+                    }
+                },
+                "strip-ansi": {
+                    "version": "3.0.1",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "ansi-regex": "^2.0.0"
+                    }
+                },
+                "strip-json-comments": {
+                    "version": "2.0.1",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "tar": {
+                    "version": "4.4.8",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "chownr": "^1.1.1",
+                        "fs-minipass": "^1.2.5",
+                        "minipass": "^2.3.4",
+                        "minizlib": "^1.1.1",
+                        "mkdirp": "^0.5.0",
+                        "safe-buffer": "^5.1.2",
+                        "yallist": "^3.0.2"
+                    }
+                },
+                "util-deprecate": {
+                    "version": "1.0.2",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "wide-align": {
+                    "version": "1.1.3",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true,
+                    "requires": {
+                        "string-width": "^1.0.2 || 2"
+                    }
+                },
+                "wrappy": {
+                    "version": "1.0.2",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                },
+                "yallist": {
+                    "version": "3.0.3",
+                    "bundled": true,
+                    "dev": true,
+                    "optional": true
+                }
+            }
+        },
+        "function-bind": {
+            "version": "1.1.1",
+            "resolved": "http://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz",
+            "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=",
+            "dev": true
+        },
+        "get-caller-file": {
+            "version": "1.0.3",
+            "resolved": "http://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz",
+            "integrity": "sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o=",
+            "dev": true
+        },
+        "get-value": {
+            "version": "2.0.6",
+            "resolved": "http://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz",
+            "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+            "dev": true
+        },
+        "glob": {
+            "version": "7.1.3",
+            "resolved": "http://registry.npm.taobao.org/glob/download/glob-7.1.3.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.3.tgz",
+            "integrity": "sha1-OWCDLT8VdBCDQtr9OmezMsCWnfE=",
+            "dev": true,
+            "requires": {
+                "fs.realpath": "^1.0.0",
+                "inflight": "^1.0.4",
+                "inherits": "2",
+                "minimatch": "^3.0.4",
+                "once": "^1.3.0",
+                "path-is-absolute": "^1.0.0"
+            }
+        },
+        "glob-base": {
+            "version": "0.3.0",
+            "resolved": "http://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz",
+            "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+            "dev": true,
+            "requires": {
+                "glob-parent": "^2.0.0",
+                "is-glob": "^2.0.0"
+            },
+            "dependencies": {
+                "glob-parent": {
+                    "version": "2.0.0",
+                    "resolved": "http://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz",
+                    "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+                    "dev": true,
+                    "requires": {
+                        "is-glob": "^2.0.0"
+                    }
+                },
+                "is-extglob": {
+                    "version": "1.0.0",
+                    "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz",
+                    "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+                    "dev": true
+                },
+                "is-glob": {
+                    "version": "2.0.1",
+                    "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz",
+                    "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+                    "dev": true,
+                    "requires": {
+                        "is-extglob": "^1.0.0"
+                    }
+                }
+            }
+        },
+        "glob-parent": {
+            "version": "3.1.0",
+            "resolved": "http://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz",
+            "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+            "dev": true,
+            "requires": {
+                "is-glob": "^3.1.0",
+                "path-dirname": "^1.0.0"
+            },
+            "dependencies": {
+                "is-glob": {
+                    "version": "3.1.0",
+                    "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz",
+                    "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+                    "dev": true,
+                    "requires": {
+                        "is-extglob": "^2.1.0"
+                    }
+                }
+            }
+        },
+        "glob-stream": {
+            "version": "6.1.0",
+            "resolved": "http://registry.npm.taobao.org/glob-stream/download/glob-stream-6.1.0.tgz",
+            "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=",
+            "dev": true,
+            "requires": {
+                "extend": "^3.0.0",
+                "glob": "^7.1.1",
+                "glob-parent": "^3.1.0",
+                "is-negated-glob": "^1.0.0",
+                "ordered-read-streams": "^1.0.0",
+                "pumpify": "^1.3.5",
+                "readable-stream": "^2.1.5",
+                "remove-trailing-separator": "^1.0.1",
+                "to-absolute-glob": "^2.0.0",
+                "unique-stream": "^2.0.2"
+            }
+        },
+        "glob-watcher": {
+            "version": "5.0.3",
+            "resolved": "http://registry.npm.taobao.org/glob-watcher/download/glob-watcher-5.0.3.tgz",
+            "integrity": "sha1-iKir8cTRMeuTkomUvEpZPC5d1iY=",
+            "dev": true,
+            "requires": {
+                "anymatch": "^2.0.0",
+                "async-done": "^1.2.0",
+                "chokidar": "^2.0.0",
+                "is-negated-glob": "^1.0.0",
+                "just-debounce": "^1.0.0",
+                "object.defaults": "^1.1.0"
+            }
+        },
+        "global-modules": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/global-modules/download/global-modules-1.0.0.tgz",
+            "integrity": "sha1-bXcPDrUjrHgWTXK15xqIdyZcw+o=",
+            "dev": true,
+            "requires": {
+                "global-prefix": "^1.0.1",
+                "is-windows": "^1.0.1",
+                "resolve-dir": "^1.0.0"
+            }
+        },
+        "global-prefix": {
+            "version": "1.0.2",
+            "resolved": "http://registry.npm.taobao.org/global-prefix/download/global-prefix-1.0.2.tgz",
+            "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
+            "dev": true,
+            "requires": {
+                "expand-tilde": "^2.0.2",
+                "homedir-polyfill": "^1.0.1",
+                "ini": "^1.3.4",
+                "is-windows": "^1.0.1",
+                "which": "^1.2.14"
+            }
+        },
+        "glogg": {
+            "version": "1.0.2",
+            "resolved": "http://registry.npm.taobao.org/glogg/download/glogg-1.0.2.tgz",
+            "integrity": "sha1-LX3XAr7aIus7/634gGltpthGMT8=",
+            "dev": true,
+            "requires": {
+                "sparkles": "^1.0.0"
+            }
+        },
+        "graceful-fs": {
+            "version": "4.1.15",
+            "resolved": "http://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.1.15.tgz",
+            "integrity": "sha1-/7cD4QZuig7qpMi4C6klPu77+wA=",
+            "dev": true
+        },
+        "gulp": {
+            "version": "4.0.0",
+            "resolved": "http://registry.npm.taobao.org/gulp/download/gulp-4.0.0.tgz",
+            "integrity": "sha1-lXZsYB2t5Kd+0+eyttwDiBtZY2Y=",
+            "dev": true,
+            "requires": {
+                "glob-watcher": "^5.0.0",
+                "gulp-cli": "^2.0.0",
+                "undertaker": "^1.0.0",
+                "vinyl-fs": "^3.0.0"
+            },
+            "dependencies": {
+                "gulp-cli": {
+                    "version": "2.1.0",
+                    "resolved": "http://registry.npm.taobao.org/gulp-cli/download/gulp-cli-2.1.0.tgz",
+                    "integrity": "sha1-JwUUOudEyeENiUymIc4KOTOqLok=",
+                    "dev": true,
+                    "requires": {
+                        "ansi-colors": "^1.0.1",
+                        "archy": "^1.0.0",
+                        "array-sort": "^1.0.0",
+                        "color-support": "^1.1.3",
+                        "concat-stream": "^1.6.0",
+                        "copy-props": "^2.0.1",
+                        "fancy-log": "^1.3.2",
+                        "gulplog": "^1.0.0",
+                        "interpret": "^1.1.0",
+                        "isobject": "^3.0.1",
+                        "liftoff": "^3.1.0",
+                        "matchdep": "^2.0.0",
+                        "mute-stdout": "^1.0.0",
+                        "pretty-hrtime": "^1.0.0",
+                        "replace-homedir": "^1.0.0",
+                        "semver-greatest-satisfied-range": "^1.1.0",
+                        "v8flags": "^3.0.1",
+                        "yargs": "^7.1.0"
+                    }
+                }
+            }
+        },
+        "gulp-sourcemaps": {
+            "version": "2.6.5",
+            "resolved": "http://registry.npm.taobao.org/gulp-sourcemaps/download/gulp-sourcemaps-2.6.5.tgz",
+            "integrity": "sha1-o/AC2HNG0sDzrsNq9+uHPyPeiuY=",
+            "dev": true,
+            "requires": {
+                "@gulp-sourcemaps/identity-map": "1.X",
+                "@gulp-sourcemaps/map-sources": "1.X",
+                "acorn": "5.X",
+                "convert-source-map": "1.X",
+                "css": "2.X",
+                "debug-fabulous": "1.X",
+                "detect-newline": "2.X",
+                "graceful-fs": "4.X",
+                "source-map": "~0.6.0",
+                "strip-bom-string": "1.X",
+                "through2": "2.X"
+            },
+            "dependencies": {
+                "source-map": {
+                    "version": "0.6.1",
+                    "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+                    "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+                    "dev": true
+                }
+            }
+        },
+        "gulp-typescript": {
+            "version": "3.2.4",
+            "resolved": "http://registry.npm.taobao.org/gulp-typescript/download/gulp-typescript-3.2.4.tgz",
+            "integrity": "sha1-F8a5QQeLAsBSKXTtbJY6sZCSCkc=",
+            "dev": true,
+            "requires": {
+                "gulp-util": "~3.0.7",
+                "source-map": "~0.5.3",
+                "through2": "~2.0.1",
+                "vinyl-fs": "~2.4.3"
+            },
+            "dependencies": {
+                "arr-diff": {
+                    "version": "2.0.0",
+                    "resolved": "http://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz",
+                    "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+                    "dev": true,
+                    "requires": {
+                        "arr-flatten": "^1.0.1"
+                    }
+                },
+                "array-unique": {
+                    "version": "0.2.1",
+                    "resolved": "http://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz",
+                    "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
+                    "dev": true
+                },
+                "braces": {
+                    "version": "1.8.5",
+                    "resolved": "http://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz",
+                    "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+                    "dev": true,
+                    "requires": {
+                        "expand-range": "^1.8.1",
+                        "preserve": "^0.2.0",
+                        "repeat-element": "^1.1.2"
+                    }
+                },
+                "clone": {
+                    "version": "1.0.4",
+                    "resolved": "http://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz",
+                    "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
+                    "dev": true
+                },
+                "clone-stats": {
+                    "version": "0.0.1",
+                    "resolved": "http://registry.npm.taobao.org/clone-stats/download/clone-stats-0.0.1.tgz",
+                    "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
+                    "dev": true
+                },
+                "expand-brackets": {
+                    "version": "0.1.5",
+                    "resolved": "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz",
+                    "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+                    "dev": true,
+                    "requires": {
+                        "is-posix-bracket": "^0.1.0"
+                    }
+                },
+                "extend-shallow": {
+                    "version": "2.0.1",
+                    "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+                    "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                    "dev": true,
+                    "requires": {
+                        "is-extendable": "^0.1.0"
+                    }
+                },
+                "extglob": {
+                    "version": "0.3.2",
+                    "resolved": "http://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz",
+                    "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+                    "dev": true,
+                    "requires": {
+                        "is-extglob": "^1.0.0"
+                    }
+                },
+                "glob": {
+                    "version": "5.0.15",
+                    "resolved": "http://registry.npm.taobao.org/glob/download/glob-5.0.15.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-5.0.15.tgz",
+                    "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+                    "dev": true,
+                    "requires": {
+                        "inflight": "^1.0.4",
+                        "inherits": "2",
+                        "minimatch": "2 || 3",
+                        "once": "^1.3.0",
+                        "path-is-absolute": "^1.0.0"
+                    }
+                },
+                "glob-stream": {
+                    "version": "5.3.5",
+                    "resolved": "http://registry.npm.taobao.org/glob-stream/download/glob-stream-5.3.5.tgz",
+                    "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=",
+                    "dev": true,
+                    "requires": {
+                        "extend": "^3.0.0",
+                        "glob": "^5.0.3",
+                        "glob-parent": "^3.0.0",
+                        "micromatch": "^2.3.7",
+                        "ordered-read-streams": "^0.3.0",
+                        "through2": "^0.6.0",
+                        "to-absolute-glob": "^0.1.1",
+                        "unique-stream": "^2.0.2"
+                    },
+                    "dependencies": {
+                        "readable-stream": {
+                            "version": "1.0.34",
+                            "resolved": "http://registry.npm.taobao.org/readable-stream/download/readable-stream-1.0.34.tgz",
+                            "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+                            "dev": true,
+                            "requires": {
+                                "core-util-is": "~1.0.0",
+                                "inherits": "~2.0.1",
+                                "isarray": "0.0.1",
+                                "string_decoder": "~0.10.x"
+                            }
+                        },
+                        "through2": {
+                            "version": "0.6.5",
+                            "resolved": "http://registry.npm.taobao.org/through2/download/through2-0.6.5.tgz",
+                            "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
+                            "dev": true,
+                            "requires": {
+                                "readable-stream": ">=1.0.33-1 <1.1.0-0",
+                                "xtend": ">=4.0.0 <4.1.0-0"
+                            }
+                        }
+                    }
+                },
+                "gulp-sourcemaps": {
+                    "version": "1.6.0",
+                    "resolved": "http://registry.npm.taobao.org/gulp-sourcemaps/download/gulp-sourcemaps-1.6.0.tgz",
+                    "integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=",
+                    "dev": true,
+                    "requires": {
+                        "convert-source-map": "^1.1.1",
+                        "graceful-fs": "^4.1.2",
+                        "strip-bom": "^2.0.0",
+                        "through2": "^2.0.0",
+                        "vinyl": "^1.0.0"
+                    }
+                },
+                "is-extglob": {
+                    "version": "1.0.0",
+                    "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz",
+                    "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+                    "dev": true
+                },
+                "is-glob": {
+                    "version": "2.0.1",
+                    "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz",
+                    "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+                    "dev": true,
+                    "requires": {
+                        "is-extglob": "^1.0.0"
+                    }
+                },
+                "is-valid-glob": {
+                    "version": "0.3.0",
+                    "resolved": "http://registry.npm.taobao.org/is-valid-glob/download/is-valid-glob-0.3.0.tgz",
+                    "integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4=",
+                    "dev": true
+                },
+                "isarray": {
+                    "version": "0.0.1",
+                    "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz",
+                    "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+                    "dev": true
+                },
+                "kind-of": {
+                    "version": "3.2.2",
+                    "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
+                    "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                    "dev": true,
+                    "requires": {
+                        "is-buffer": "^1.1.5"
+                    }
+                },
+                "micromatch": {
+                    "version": "2.3.11",
+                    "resolved": "http://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz",
+                    "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+                    "dev": true,
+                    "requires": {
+                        "arr-diff": "^2.0.0",
+                        "array-unique": "^0.2.1",
+                        "braces": "^1.8.2",
+                        "expand-brackets": "^0.1.4",
+                        "extglob": "^0.3.1",
+                        "filename-regex": "^2.0.0",
+                        "is-extglob": "^1.0.0",
+                        "is-glob": "^2.0.1",
+                        "kind-of": "^3.0.2",
+                        "normalize-path": "^2.0.1",
+                        "object.omit": "^2.0.0",
+                        "parse-glob": "^3.0.4",
+                        "regex-cache": "^0.4.2"
+                    }
+                },
+                "ordered-read-streams": {
+                    "version": "0.3.0",
+                    "resolved": "http://registry.npm.taobao.org/ordered-read-streams/download/ordered-read-streams-0.3.0.tgz",
+                    "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=",
+                    "dev": true,
+                    "requires": {
+                        "is-stream": "^1.0.1",
+                        "readable-stream": "^2.0.1"
+                    }
+                },
+                "replace-ext": {
+                    "version": "0.0.1",
+                    "resolved": "http://registry.npm.taobao.org/replace-ext/download/replace-ext-0.0.1.tgz",
+                    "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
+                    "dev": true
+                },
+                "string_decoder": {
+                    "version": "0.10.31",
+                    "resolved": "http://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz",
+                    "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+                    "dev": true
+                },
+                "through2-filter": {
+                    "version": "2.0.0",
+                    "resolved": "http://registry.npm.taobao.org/through2-filter/download/through2-filter-2.0.0.tgz",
+                    "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=",
+                    "dev": true,
+                    "requires": {
+                        "through2": "~2.0.0",
+                        "xtend": "~4.0.0"
+                    }
+                },
+                "to-absolute-glob": {
+                    "version": "0.1.1",
+                    "resolved": "http://registry.npm.taobao.org/to-absolute-glob/download/to-absolute-glob-0.1.1.tgz",
+                    "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=",
+                    "dev": true,
+                    "requires": {
+                        "extend-shallow": "^2.0.1"
+                    }
+                },
+                "vinyl": {
+                    "version": "1.2.0",
+                    "resolved": "http://registry.npm.taobao.org/vinyl/download/vinyl-1.2.0.tgz",
+                    "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
+                    "dev": true,
+                    "requires": {
+                        "clone": "^1.0.0",
+                        "clone-stats": "^0.0.1",
+                        "replace-ext": "0.0.1"
+                    }
+                },
+                "vinyl-fs": {
+                    "version": "2.4.4",
+                    "resolved": "http://registry.npm.taobao.org/vinyl-fs/download/vinyl-fs-2.4.4.tgz",
+                    "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=",
+                    "dev": true,
+                    "requires": {
+                        "duplexify": "^3.2.0",
+                        "glob-stream": "^5.3.2",
+                        "graceful-fs": "^4.0.0",
+                        "gulp-sourcemaps": "1.6.0",
+                        "is-valid-glob": "^0.3.0",
+                        "lazystream": "^1.0.0",
+                        "lodash.isequal": "^4.0.0",
+                        "merge-stream": "^1.0.0",
+                        "mkdirp": "^0.5.0",
+                        "object-assign": "^4.0.0",
+                        "readable-stream": "^2.0.4",
+                        "strip-bom": "^2.0.0",
+                        "strip-bom-stream": "^1.0.0",
+                        "through2": "^2.0.0",
+                        "through2-filter": "^2.0.0",
+                        "vali-date": "^1.0.0",
+                        "vinyl": "^1.0.0"
+                    }
+                }
+            }
+        },
+        "gulp-uglify": {
+            "version": "3.0.2",
+            "resolved": "http://registry.npm.taobao.org/gulp-uglify/download/gulp-uglify-3.0.2.tgz",
+            "integrity": "sha1-X1sugzf4ecqd7Jcf6xuCpah4ULA=",
+            "dev": true,
+            "requires": {
+                "array-each": "^1.0.1",
+                "extend-shallow": "^3.0.2",
+                "gulplog": "^1.0.0",
+                "has-gulplog": "^0.1.0",
+                "isobject": "^3.0.1",
+                "make-error-cause": "^1.1.1",
+                "safe-buffer": "^5.1.2",
+                "through2": "^2.0.0",
+                "uglify-js": "^3.0.5",
+                "vinyl-sourcemaps-apply": "^0.2.0"
+            }
+        },
+        "gulp-util": {
+            "version": "3.0.8",
+            "resolved": "http://registry.npm.taobao.org/gulp-util/download/gulp-util-3.0.8.tgz",
+            "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=",
+            "dev": true,
+            "requires": {
+                "array-differ": "^1.0.0",
+                "array-uniq": "^1.0.2",
+                "beeper": "^1.0.0",
+                "chalk": "^1.0.0",
+                "dateformat": "^2.0.0",
+                "fancy-log": "^1.1.0",
+                "gulplog": "^1.0.0",
+                "has-gulplog": "^0.1.0",
+                "lodash._reescape": "^3.0.0",
+                "lodash._reevaluate": "^3.0.0",
+                "lodash._reinterpolate": "^3.0.0",
+                "lodash.template": "^3.0.0",
+                "minimist": "^1.1.0",
+                "multipipe": "^0.1.2",
+                "object-assign": "^3.0.0",
+                "replace-ext": "0.0.1",
+                "through2": "^2.0.0",
+                "vinyl": "^0.5.0"
+            },
+            "dependencies": {
+                "clone": {
+                    "version": "1.0.4",
+                    "resolved": "http://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz",
+                    "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
+                    "dev": true
+                },
+                "clone-stats": {
+                    "version": "0.0.1",
+                    "resolved": "http://registry.npm.taobao.org/clone-stats/download/clone-stats-0.0.1.tgz",
+                    "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
+                    "dev": true
+                },
+                "object-assign": {
+                    "version": "3.0.0",
+                    "resolved": "http://registry.npm.taobao.org/object-assign/download/object-assign-3.0.0.tgz",
+                    "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=",
+                    "dev": true
+                },
+                "replace-ext": {
+                    "version": "0.0.1",
+                    "resolved": "http://registry.npm.taobao.org/replace-ext/download/replace-ext-0.0.1.tgz",
+                    "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
+                    "dev": true
+                },
+                "vinyl": {
+                    "version": "0.5.3",
+                    "resolved": "http://registry.npm.taobao.org/vinyl/download/vinyl-0.5.3.tgz",
+                    "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=",
+                    "dev": true,
+                    "requires": {
+                        "clone": "^1.0.0",
+                        "clone-stats": "^0.0.1",
+                        "replace-ext": "0.0.1"
+                    }
+                }
+            }
+        },
+        "gulplog": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/gulplog/download/gulplog-1.0.0.tgz",
+            "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
+            "dev": true,
+            "requires": {
+                "glogg": "^1.0.0"
+            }
+        },
+        "has-ansi": {
+            "version": "2.0.0",
+            "resolved": "http://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz",
+            "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+            "dev": true,
+            "requires": {
+                "ansi-regex": "^2.0.0"
+            }
+        },
+        "has-gulplog": {
+            "version": "0.1.0",
+            "resolved": "http://registry.npm.taobao.org/has-gulplog/download/has-gulplog-0.1.0.tgz",
+            "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=",
+            "dev": true,
+            "requires": {
+                "sparkles": "^1.0.0"
+            }
+        },
+        "has-symbols": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.0.tgz",
+            "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
+            "dev": true
+        },
+        "has-value": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz",
+            "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+            "dev": true,
+            "requires": {
+                "get-value": "^2.0.6",
+                "has-values": "^1.0.0",
+                "isobject": "^3.0.0"
+            }
+        },
+        "has-values": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz",
+            "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+            "dev": true,
+            "requires": {
+                "is-number": "^3.0.0",
+                "kind-of": "^4.0.0"
+            },
+            "dependencies": {
+                "kind-of": {
+                    "version": "4.0.0",
+                    "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz",
+                    "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+                    "dev": true,
+                    "requires": {
+                        "is-buffer": "^1.1.5"
+                    }
+                }
+            }
+        },
+        "homedir-polyfill": {
+            "version": "1.0.3",
+            "resolved": "http://registry.npm.taobao.org/homedir-polyfill/download/homedir-polyfill-1.0.3.tgz",
+            "integrity": "sha1-dDKYzvTlrz4ZQWH7rcwhUdOgWOg=",
+            "dev": true,
+            "requires": {
+                "parse-passwd": "^1.0.0"
+            }
+        },
+        "hosted-git-info": {
+            "version": "2.7.1",
+            "resolved": "http://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.7.1.tgz",
+            "integrity": "sha1-l/I2l3vW4SVAiTD/bePuxigewEc=",
+            "dev": true
+        },
+        "http-auth": {
+            "version": "3.1.3",
+            "resolved": "http://registry.npm.taobao.org/http-auth/download/http-auth-3.1.3.tgz",
+            "integrity": "sha1-lFz63WZSHq+PfISRPTd9exXyTjE=",
+            "dev": true,
+            "requires": {
+                "apache-crypt": "^1.1.2",
+                "apache-md5": "^1.0.6",
+                "bcryptjs": "^2.3.0",
+                "uuid": "^3.0.0"
+            }
+        },
+        "http-errors": {
+            "version": "1.6.3",
+            "resolved": "http://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz",
+            "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+            "dev": true,
+            "requires": {
+                "depd": "~1.1.2",
+                "inherits": "2.0.3",
+                "setprototypeof": "1.1.0",
+                "statuses": ">= 1.4.0 < 2"
+            },
+            "dependencies": {
+                "statuses": {
+                    "version": "1.5.0",
+                    "resolved": "http://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz",
+                    "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+                    "dev": true
+                }
+            }
+        },
+        "http-parser-js": {
+            "version": "0.5.0",
+            "resolved": "http://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.5.0.tgz",
+            "integrity": "sha1-1l7b7ehDSdDcMDIIFaFdOcw8u9g=",
+            "dev": true
+        },
+        "inflight": {
+            "version": "1.0.6",
+            "resolved": "http://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz",
+            "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+            "dev": true,
+            "requires": {
+                "once": "^1.3.0",
+                "wrappy": "1"
+            }
+        },
+        "inherits": {
+            "version": "2.0.3",
+            "resolved": "http://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz",
+            "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+            "dev": true
+        },
+        "ini": {
+            "version": "1.3.5",
+            "resolved": "http://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz",
+            "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=",
+            "dev": true
+        },
+        "interpret": {
+            "version": "1.2.0",
+            "resolved": "http://registry.npm.taobao.org/interpret/download/interpret-1.2.0.tgz",
+            "integrity": "sha1-1QYaYiS+WOgIOYX1AU2EQ1lXYpY=",
+            "dev": true
+        },
+        "invert-kv": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/invert-kv/download/invert-kv-1.0.0.tgz",
+            "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+            "dev": true
+        },
+        "is-absolute": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/is-absolute/download/is-absolute-1.0.0.tgz",
+            "integrity": "sha1-OV4a6EsR8mrReV5zwXN45IowFXY=",
+            "dev": true,
+            "requires": {
+                "is-relative": "^1.0.0",
+                "is-windows": "^1.0.1"
+            }
+        },
+        "is-accessor-descriptor": {
+            "version": "0.1.6",
+            "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz",
+            "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+            "dev": true,
+            "requires": {
+                "kind-of": "^3.0.2"
+            },
+            "dependencies": {
+                "kind-of": {
+                    "version": "3.2.2",
+                    "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
+                    "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                    "dev": true,
+                    "requires": {
+                        "is-buffer": "^1.1.5"
+                    }
+                }
+            }
+        },
+        "is-arrayish": {
+            "version": "0.2.1",
+            "resolved": "http://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz",
+            "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+            "dev": true
+        },
+        "is-binary-path": {
+            "version": "1.0.1",
+            "resolved": "http://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz",
+            "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+            "dev": true,
+            "requires": {
+                "binary-extensions": "^1.0.0"
+            }
+        },
+        "is-buffer": {
+            "version": "1.1.6",
+            "resolved": "http://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz",
+            "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=",
+            "dev": true
+        },
+        "is-data-descriptor": {
+            "version": "0.1.4",
+            "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz",
+            "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+            "dev": true,
+            "requires": {
+                "kind-of": "^3.0.2"
+            },
+            "dependencies": {
+                "kind-of": {
+                    "version": "3.2.2",
+                    "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
+                    "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                    "dev": true,
+                    "requires": {
+                        "is-buffer": "^1.1.5"
+                    }
+                }
+            }
+        },
+        "is-descriptor": {
+            "version": "0.1.6",
+            "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz",
+            "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=",
+            "dev": true,
+            "requires": {
+                "is-accessor-descriptor": "^0.1.6",
+                "is-data-descriptor": "^0.1.4",
+                "kind-of": "^5.0.0"
+            },
+            "dependencies": {
+                "kind-of": {
+                    "version": "5.1.0",
+                    "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz",
+                    "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=",
+                    "dev": true
+                }
+            }
+        },
+        "is-dotfile": {
+            "version": "1.0.3",
+            "resolved": "http://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.3.tgz",
+            "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
+            "dev": true
+        },
+        "is-equal-shallow": {
+            "version": "0.1.3",
+            "resolved": "http://registry.npm.taobao.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz",
+            "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+            "dev": true,
+            "requires": {
+                "is-primitive": "^2.0.0"
+            }
+        },
+        "is-extendable": {
+            "version": "0.1.1",
+            "resolved": "http://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz",
+            "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+            "dev": true
+        },
+        "is-extglob": {
+            "version": "2.1.1",
+            "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz",
+            "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+            "dev": true
+        },
+        "is-fullwidth-code-point": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz",
+            "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+            "dev": true,
+            "requires": {
+                "number-is-nan": "^1.0.0"
+            }
+        },
+        "is-glob": {
+            "version": "4.0.0",
+            "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-4.0.0.tgz",
+            "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+            "dev": true,
+            "requires": {
+                "is-extglob": "^2.1.1"
+            }
+        },
+        "is-negated-glob": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/is-negated-glob/download/is-negated-glob-1.0.0.tgz",
+            "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=",
+            "dev": true
+        },
+        "is-number": {
+            "version": "3.0.0",
+            "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz",
+            "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+            "dev": true,
+            "requires": {
+                "kind-of": "^3.0.2"
+            },
+            "dependencies": {
+                "kind-of": {
+                    "version": "3.2.2",
+                    "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
+                    "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                    "dev": true,
+                    "requires": {
+                        "is-buffer": "^1.1.5"
+                    }
+                }
+            }
+        },
+        "is-plain-object": {
+            "version": "2.0.4",
+            "resolved": "http://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz",
+            "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=",
+            "dev": true,
+            "requires": {
+                "isobject": "^3.0.1"
+            }
+        },
+        "is-posix-bracket": {
+            "version": "0.1.1",
+            "resolved": "http://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz",
+            "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
+            "dev": true
+        },
+        "is-primitive": {
+            "version": "2.0.0",
+            "resolved": "http://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz",
+            "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
+            "dev": true
+        },
+        "is-promise": {
+            "version": "2.1.0",
+            "resolved": "http://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz",
+            "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
+            "dev": true
+        },
+        "is-relative": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/is-relative/download/is-relative-1.0.0.tgz",
+            "integrity": "sha1-obtpNc6MXboei5dUubLcwCDiJg0=",
+            "dev": true,
+            "requires": {
+                "is-unc-path": "^1.0.0"
+            }
+        },
+        "is-stream": {
+            "version": "1.1.0",
+            "resolved": "http://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz",
+            "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+            "dev": true
+        },
+        "is-unc-path": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/is-unc-path/download/is-unc-path-1.0.0.tgz",
+            "integrity": "sha1-1zHoiY7QkKEsNSrS6u1Qla0yLJ0=",
+            "dev": true,
+            "requires": {
+                "unc-path-regex": "^0.1.2"
+            }
+        },
+        "is-utf8": {
+            "version": "0.2.1",
+            "resolved": "http://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz",
+            "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+            "dev": true
+        },
+        "is-valid-glob": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/is-valid-glob/download/is-valid-glob-1.0.0.tgz",
+            "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=",
+            "dev": true
+        },
+        "is-windows": {
+            "version": "1.0.2",
+            "resolved": "http://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz",
+            "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=",
+            "dev": true
+        },
+        "is-wsl": {
+            "version": "1.1.0",
+            "resolved": "http://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz",
+            "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
+            "dev": true
+        },
+        "isarray": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz",
+            "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+            "dev": true
+        },
+        "isexe": {
+            "version": "2.0.0",
+            "resolved": "http://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz",
+            "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+            "dev": true
+        },
+        "isobject": {
+            "version": "3.0.1",
+            "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz",
+            "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+            "dev": true
+        },
+        "json-stable-stringify-without-jsonify": {
+            "version": "1.0.1",
+            "resolved": "http://registry.npm.taobao.org/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz",
+            "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
+            "dev": true
+        },
+        "just-debounce": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/just-debounce/download/just-debounce-1.0.0.tgz",
+            "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=",
+            "dev": true
+        },
+        "kind-of": {
+            "version": "6.0.2",
+            "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz",
+            "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=",
+            "dev": true
+        },
+        "last-run": {
+            "version": "1.1.1",
+            "resolved": "http://registry.npm.taobao.org/last-run/download/last-run-1.1.1.tgz",
+            "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=",
+            "dev": true,
+            "requires": {
+                "default-resolution": "^2.0.0",
+                "es6-weak-map": "^2.0.1"
+            }
+        },
+        "lazystream": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/lazystream/download/lazystream-1.0.0.tgz",
+            "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
+            "dev": true,
+            "requires": {
+                "readable-stream": "^2.0.5"
+            }
+        },
+        "lcid": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/lcid/download/lcid-1.0.0.tgz",
+            "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+            "dev": true,
+            "requires": {
+                "invert-kv": "^1.0.0"
+            }
+        },
+        "lead": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/lead/download/lead-1.0.0.tgz",
+            "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=",
+            "dev": true,
+            "requires": {
+                "flush-write-stream": "^1.0.2"
+            }
+        },
+        "liftoff": {
+            "version": "3.1.0",
+            "resolved": "http://registry.npm.taobao.org/liftoff/download/liftoff-3.1.0.tgz",
+            "integrity": "sha1-ybpggfkIZwYH7nkGLXAN8GLFLtM=",
+            "dev": true,
+            "requires": {
+                "extend": "^3.0.0",
+                "findup-sync": "^3.0.0",
+                "fined": "^1.0.1",
+                "flagged-respawn": "^1.0.0",
+                "is-plain-object": "^2.0.4",
+                "object.map": "^1.0.0",
+                "rechoir": "^0.6.2",
+                "resolve": "^1.1.7"
+            }
+        },
+        "live-server": {
+            "version": "1.2.1",
+            "resolved": "http://registry.npm.taobao.org/live-server/download/live-server-1.2.1.tgz",
+            "integrity": "sha1-ZwYw3UCdIv6cUTqxwYlGhsdXFT4=",
+            "dev": true,
+            "requires": {
+                "chokidar": "^2.0.4",
+                "colors": "^1.3.3",
+                "connect": "^3.6.6",
+                "cors": "^2.8.5",
+                "event-stream": "3.3.4",
+                "faye-websocket": "0.11.x",
+                "http-auth": "3.1.x",
+                "morgan": "^1.9.1",
+                "object-assign": "^4.1.1",
+                "opn": "^6.0.0",
+                "proxy-middleware": "^0.15.0",
+                "send": "^0.16.2",
+                "serve-index": "^1.9.1"
+            },
+            "dependencies": {
+                "object-assign": {
+                    "version": "4.1.1",
+                    "resolved": "http://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz",
+                    "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+                    "dev": true
+                }
+            }
+        },
+        "load-json-file": {
+            "version": "1.1.0",
+            "resolved": "http://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz",
+            "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+            "dev": true,
+            "requires": {
+                "graceful-fs": "^4.1.2",
+                "parse-json": "^2.2.0",
+                "pify": "^2.0.0",
+                "pinkie-promise": "^2.0.0",
+                "strip-bom": "^2.0.0"
+            }
+        },
+        "lodash._basecopy": {
+            "version": "3.0.1",
+            "resolved": "http://registry.npm.taobao.org/lodash._basecopy/download/lodash._basecopy-3.0.1.tgz",
+            "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
+            "dev": true
+        },
+        "lodash._basetostring": {
+            "version": "3.0.1",
+            "resolved": "http://registry.npm.taobao.org/lodash._basetostring/download/lodash._basetostring-3.0.1.tgz",
+            "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=",
+            "dev": true
+        },
+        "lodash._basevalues": {
+            "version": "3.0.0",
+            "resolved": "http://registry.npm.taobao.org/lodash._basevalues/download/lodash._basevalues-3.0.0.tgz",
+            "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=",
+            "dev": true
+        },
+        "lodash._getnative": {
+            "version": "3.9.1",
+            "resolved": "http://registry.npm.taobao.org/lodash._getnative/download/lodash._getnative-3.9.1.tgz",
+            "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
+            "dev": true
+        },
+        "lodash._isiterateecall": {
+            "version": "3.0.9",
+            "resolved": "http://registry.npm.taobao.org/lodash._isiterateecall/download/lodash._isiterateecall-3.0.9.tgz",
+            "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
+            "dev": true
+        },
+        "lodash._reescape": {
+            "version": "3.0.0",
+            "resolved": "http://registry.npm.taobao.org/lodash._reescape/download/lodash._reescape-3.0.0.tgz",
+            "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=",
+            "dev": true
+        },
+        "lodash._reevaluate": {
+            "version": "3.0.0",
+            "resolved": "http://registry.npm.taobao.org/lodash._reevaluate/download/lodash._reevaluate-3.0.0.tgz",
+            "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=",
+            "dev": true
+        },
+        "lodash._reinterpolate": {
+            "version": "3.0.0",
+            "resolved": "http://registry.npm.taobao.org/lodash._reinterpolate/download/lodash._reinterpolate-3.0.0.tgz",
+            "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
+            "dev": true
+        },
+        "lodash._root": {
+            "version": "3.0.1",
+            "resolved": "http://registry.npm.taobao.org/lodash._root/download/lodash._root-3.0.1.tgz",
+            "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=",
+            "dev": true
+        },
+        "lodash.escape": {
+            "version": "3.2.0",
+            "resolved": "http://registry.npm.taobao.org/lodash.escape/download/lodash.escape-3.2.0.tgz",
+            "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=",
+            "dev": true,
+            "requires": {
+                "lodash._root": "^3.0.0"
+            }
+        },
+        "lodash.isarguments": {
+            "version": "3.1.0",
+            "resolved": "http://registry.npm.taobao.org/lodash.isarguments/download/lodash.isarguments-3.1.0.tgz",
+            "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
+            "dev": true
+        },
+        "lodash.isarray": {
+            "version": "3.0.4",
+            "resolved": "http://registry.npm.taobao.org/lodash.isarray/download/lodash.isarray-3.0.4.tgz",
+            "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
+            "dev": true
+        },
+        "lodash.isequal": {
+            "version": "4.5.0",
+            "resolved": "http://registry.npm.taobao.org/lodash.isequal/download/lodash.isequal-4.5.0.tgz",
+            "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=",
+            "dev": true
+        },
+        "lodash.keys": {
+            "version": "3.1.2",
+            "resolved": "http://registry.npm.taobao.org/lodash.keys/download/lodash.keys-3.1.2.tgz",
+            "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
+            "dev": true,
+            "requires": {
+                "lodash._getnative": "^3.0.0",
+                "lodash.isarguments": "^3.0.0",
+                "lodash.isarray": "^3.0.0"
+            }
+        },
+        "lodash.restparam": {
+            "version": "3.6.1",
+            "resolved": "http://registry.npm.taobao.org/lodash.restparam/download/lodash.restparam-3.6.1.tgz",
+            "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=",
+            "dev": true
+        },
+        "lodash.template": {
+            "version": "3.6.2",
+            "resolved": "http://registry.npm.taobao.org/lodash.template/download/lodash.template-3.6.2.tgz",
+            "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=",
+            "dev": true,
+            "requires": {
+                "lodash._basecopy": "^3.0.0",
+                "lodash._basetostring": "^3.0.0",
+                "lodash._basevalues": "^3.0.0",
+                "lodash._isiterateecall": "^3.0.0",
+                "lodash._reinterpolate": "^3.0.0",
+                "lodash.escape": "^3.0.0",
+                "lodash.keys": "^3.0.0",
+                "lodash.restparam": "^3.0.0",
+                "lodash.templatesettings": "^3.0.0"
+            }
+        },
+        "lodash.templatesettings": {
+            "version": "3.1.1",
+            "resolved": "http://registry.npm.taobao.org/lodash.templatesettings/download/lodash.templatesettings-3.1.1.tgz",
+            "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=",
+            "dev": true,
+            "requires": {
+                "lodash._reinterpolate": "^3.0.0",
+                "lodash.escape": "^3.0.0"
+            }
+        },
+        "lru-queue": {
+            "version": "0.1.0",
+            "resolved": "http://registry.npm.taobao.org/lru-queue/download/lru-queue-0.1.0.tgz",
+            "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=",
+            "dev": true,
+            "requires": {
+                "es5-ext": "~0.10.2"
+            }
+        },
+        "make-error": {
+            "version": "1.3.5",
+            "resolved": "http://registry.npm.taobao.org/make-error/download/make-error-1.3.5.tgz",
+            "integrity": "sha1-7+ToH22yjK3WBccPKcgxtY73dsg=",
+            "dev": true
+        },
+        "make-error-cause": {
+            "version": "1.2.2",
+            "resolved": "http://registry.npm.taobao.org/make-error-cause/download/make-error-cause-1.2.2.tgz",
+            "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=",
+            "dev": true,
+            "requires": {
+                "make-error": "^1.2.0"
+            }
+        },
+        "make-iterator": {
+            "version": "1.0.1",
+            "resolved": "http://registry.npm.taobao.org/make-iterator/download/make-iterator-1.0.1.tgz",
+            "integrity": "sha1-KbM/MSqo9UfEpeSQ9Wr87JkTOtY=",
+            "dev": true,
+            "requires": {
+                "kind-of": "^6.0.2"
+            }
+        },
+        "map-cache": {
+            "version": "0.2.2",
+            "resolved": "http://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz",
+            "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+            "dev": true
+        },
+        "map-stream": {
+            "version": "0.1.0",
+            "resolved": "http://registry.npm.taobao.org/map-stream/download/map-stream-0.1.0.tgz",
+            "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=",
+            "dev": true
+        },
+        "map-visit": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz",
+            "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+            "dev": true,
+            "requires": {
+                "object-visit": "^1.0.0"
+            }
+        },
+        "matchdep": {
+            "version": "2.0.0",
+            "resolved": "http://registry.npm.taobao.org/matchdep/download/matchdep-2.0.0.tgz",
+            "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=",
+            "dev": true,
+            "requires": {
+                "findup-sync": "^2.0.0",
+                "micromatch": "^3.0.4",
+                "resolve": "^1.4.0",
+                "stack-trace": "0.0.10"
+            },
+            "dependencies": {
+                "findup-sync": {
+                    "version": "2.0.0",
+                    "resolved": "http://registry.npm.taobao.org/findup-sync/download/findup-sync-2.0.0.tgz",
+                    "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=",
+                    "dev": true,
+                    "requires": {
+                        "detect-file": "^1.0.0",
+                        "is-glob": "^3.1.0",
+                        "micromatch": "^3.0.4",
+                        "resolve-dir": "^1.0.1"
+                    }
+                },
+                "is-glob": {
+                    "version": "3.1.0",
+                    "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz",
+                    "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+                    "dev": true,
+                    "requires": {
+                        "is-extglob": "^2.1.0"
+                    }
+                }
+            }
+        },
+        "math-random": {
+            "version": "1.0.4",
+            "resolved": "http://registry.npm.taobao.org/math-random/download/math-random-1.0.4.tgz",
+            "integrity": "sha1-XdaUPJOFSCZwFtTjTwV1gwgMUUw=",
+            "dev": true
+        },
+        "memoizee": {
+            "version": "0.4.14",
+            "resolved": "http://registry.npm.taobao.org/memoizee/download/memoizee-0.4.14.tgz",
+            "integrity": "sha1-B6APIEaZ+alcLZ53IYJxx81hDVc=",
+            "dev": true,
+            "requires": {
+                "d": "1",
+                "es5-ext": "^0.10.45",
+                "es6-weak-map": "^2.0.2",
+                "event-emitter": "^0.3.5",
+                "is-promise": "^2.1",
+                "lru-queue": "0.1",
+                "next-tick": "1",
+                "timers-ext": "^0.1.5"
+            }
+        },
+        "merge-stream": {
+            "version": "1.0.1",
+            "resolved": "http://registry.npm.taobao.org/merge-stream/download/merge-stream-1.0.1.tgz",
+            "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=",
+            "dev": true,
+            "requires": {
+                "readable-stream": "^2.0.1"
+            }
+        },
+        "micromatch": {
+            "version": "3.1.10",
+            "resolved": "http://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz",
+            "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=",
+            "dev": true,
+            "requires": {
+                "arr-diff": "^4.0.0",
+                "array-unique": "^0.3.2",
+                "braces": "^2.3.1",
+                "define-property": "^2.0.2",
+                "extend-shallow": "^3.0.2",
+                "extglob": "^2.0.4",
+                "fragment-cache": "^0.2.1",
+                "kind-of": "^6.0.2",
+                "nanomatch": "^1.2.9",
+                "object.pick": "^1.3.0",
+                "regex-not": "^1.0.0",
+                "snapdragon": "^0.8.1",
+                "to-regex": "^3.0.2"
+            }
+        },
+        "mime": {
+            "version": "1.4.1",
+            "resolved": "http://registry.npm.taobao.org/mime/download/mime-1.4.1.tgz",
+            "integrity": "sha1-Eh+evEnjdm8xGnbh+hyAA8SwOqY=",
+            "dev": true
+        },
+        "mime-db": {
+            "version": "1.38.0",
+            "resolved": "http://registry.npm.taobao.org/mime-db/download/mime-db-1.38.0.tgz",
+            "integrity": "sha1-GiqrFtqesWe0nG5N8tnGjWPY4q0=",
+            "dev": true
+        },
+        "mime-types": {
+            "version": "2.1.22",
+            "resolved": "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.22.tgz",
+            "integrity": "sha1-/ms1WhkJJqt2mMmgVWoRGZshmb0=",
+            "dev": true,
+            "requires": {
+                "mime-db": "~1.38.0"
+            }
+        },
+        "minimatch": {
+            "version": "3.0.4",
+            "resolved": "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz",
+            "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
+            "dev": true,
+            "requires": {
+                "brace-expansion": "^1.1.7"
+            }
+        },
+        "minimist": {
+            "version": "1.2.0",
+            "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz",
+            "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+            "dev": true
+        },
+        "mixin-deep": {
+            "version": "1.3.1",
+            "resolved": "http://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.1.tgz",
+            "integrity": "sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4=",
+            "dev": true,
+            "requires": {
+                "for-in": "^1.0.2",
+                "is-extendable": "^1.0.1"
+            },
+            "dependencies": {
+                "is-extendable": {
+                    "version": "1.0.1",
+                    "resolved": "http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz",
+                    "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=",
+                    "dev": true,
+                    "requires": {
+                        "is-plain-object": "^2.0.4"
+                    }
+                }
+            }
+        },
+        "mkdirp": {
+            "version": "0.5.1",
+            "resolved": "http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.1.tgz",
+            "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+            "dev": true,
+            "requires": {
+                "minimist": "0.0.8"
+            },
+            "dependencies": {
+                "minimist": {
+                    "version": "0.0.8",
+                    "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz",
+                    "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+                    "dev": true
+                }
+            }
+        },
+        "morgan": {
+            "version": "1.9.1",
+            "resolved": "http://registry.npm.taobao.org/morgan/download/morgan-1.9.1.tgz",
+            "integrity": "sha1-Co0Wc0odmvvIJLmd+H5zjlji2lk=",
+            "dev": true,
+            "requires": {
+                "basic-auth": "~2.0.0",
+                "debug": "2.6.9",
+                "depd": "~1.1.2",
+                "on-finished": "~2.3.0",
+                "on-headers": "~1.0.1"
+            }
+        },
+        "ms": {
+            "version": "2.0.0",
+            "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz",
+            "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+            "dev": true
+        },
+        "multipipe": {
+            "version": "0.1.2",
+            "resolved": "http://registry.npm.taobao.org/multipipe/download/multipipe-0.1.2.tgz",
+            "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=",
+            "dev": true,
+            "requires": {
+                "duplexer2": "0.0.2"
+            }
+        },
+        "mute-stdout": {
+            "version": "1.0.1",
+            "resolved": "http://registry.npm.taobao.org/mute-stdout/download/mute-stdout-1.0.1.tgz",
+            "integrity": "sha1-rLAwDrTeI6fd7sAU4+lgRLNHIzE=",
+            "dev": true
+        },
+        "nan": {
+            "version": "2.13.2",
+            "resolved": "http://registry.npm.taobao.org/nan/download/nan-2.13.2.tgz",
+            "integrity": "sha1-9R3Hrma6fV1V4ebU2AkugCya7+c=",
+            "dev": true,
+            "optional": true
+        },
+        "nanomatch": {
+            "version": "1.2.13",
+            "resolved": "http://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz",
+            "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=",
+            "dev": true,
+            "requires": {
+                "arr-diff": "^4.0.0",
+                "array-unique": "^0.3.2",
+                "define-property": "^2.0.2",
+                "extend-shallow": "^3.0.2",
+                "fragment-cache": "^0.2.1",
+                "is-windows": "^1.0.2",
+                "kind-of": "^6.0.2",
+                "object.pick": "^1.3.0",
+                "regex-not": "^1.0.0",
+                "snapdragon": "^0.8.1",
+                "to-regex": "^3.0.1"
+            }
+        },
+        "negotiator": {
+            "version": "0.6.1",
+            "resolved": "http://registry.npm.taobao.org/negotiator/download/negotiator-0.6.1.tgz",
+            "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
+            "dev": true
+        },
+        "next-tick": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/next-tick/download/next-tick-1.0.0.tgz",
+            "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
+            "dev": true
+        },
+        "normalize-package-data": {
+            "version": "2.5.0",
+            "resolved": "http://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz",
+            "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=",
+            "dev": true,
+            "requires": {
+                "hosted-git-info": "^2.1.4",
+                "resolve": "^1.10.0",
+                "semver": "2 || 3 || 4 || 5",
+                "validate-npm-package-license": "^3.0.1"
+            }
+        },
+        "normalize-path": {
+            "version": "2.1.1",
+            "resolved": "http://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz",
+            "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+            "dev": true,
+            "requires": {
+                "remove-trailing-separator": "^1.0.1"
+            }
+        },
+        "now-and-later": {
+            "version": "2.0.0",
+            "resolved": "http://registry.npm.taobao.org/now-and-later/download/now-and-later-2.0.0.tgz",
+            "integrity": "sha1-vGHLtFbXnLMiB85HygUTb/Ln1u4=",
+            "dev": true,
+            "requires": {
+                "once": "^1.3.2"
+            }
+        },
+        "number-is-nan": {
+            "version": "1.0.1",
+            "resolved": "http://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz",
+            "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+            "dev": true
+        },
+        "object-assign": {
+            "version": "4.1.1",
+            "resolved": "http://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz",
+            "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+            "dev": true
+        },
+        "object-copy": {
+            "version": "0.1.0",
+            "resolved": "http://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz",
+            "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+            "dev": true,
+            "requires": {
+                "copy-descriptor": "^0.1.0",
+                "define-property": "^0.2.5",
+                "kind-of": "^3.0.3"
+            },
+            "dependencies": {
+                "define-property": {
+                    "version": "0.2.5",
+                    "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
+                    "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+                    "dev": true,
+                    "requires": {
+                        "is-descriptor": "^0.1.0"
+                    }
+                },
+                "kind-of": {
+                    "version": "3.2.2",
+                    "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
+                    "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                    "dev": true,
+                    "requires": {
+                        "is-buffer": "^1.1.5"
+                    }
+                }
+            }
+        },
+        "object-keys": {
+            "version": "1.1.0",
+            "resolved": "http://registry.npm.taobao.org/object-keys/download/object-keys-1.1.0.tgz",
+            "integrity": "sha1-Eb0iNI3S4JagRasG9shbzDQPoDI=",
+            "dev": true
+        },
+        "object-visit": {
+            "version": "1.0.1",
+            "resolved": "http://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz",
+            "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+            "dev": true,
+            "requires": {
+                "isobject": "^3.0.0"
+            }
+        },
+        "object.assign": {
+            "version": "4.1.0",
+            "resolved": "http://registry.npm.taobao.org/object.assign/download/object.assign-4.1.0.tgz",
+            "integrity": "sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=",
+            "dev": true,
+            "requires": {
+                "define-properties": "^1.1.2",
+                "function-bind": "^1.1.1",
+                "has-symbols": "^1.0.0",
+                "object-keys": "^1.0.11"
+            }
+        },
+        "object.defaults": {
+            "version": "1.1.0",
+            "resolved": "http://registry.npm.taobao.org/object.defaults/download/object.defaults-1.1.0.tgz",
+            "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=",
+            "dev": true,
+            "requires": {
+                "array-each": "^1.0.1",
+                "array-slice": "^1.0.0",
+                "for-own": "^1.0.0",
+                "isobject": "^3.0.0"
+            }
+        },
+        "object.map": {
+            "version": "1.0.1",
+            "resolved": "http://registry.npm.taobao.org/object.map/download/object.map-1.0.1.tgz",
+            "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=",
+            "dev": true,
+            "requires": {
+                "for-own": "^1.0.0",
+                "make-iterator": "^1.0.0"
+            }
+        },
+        "object.omit": {
+            "version": "2.0.1",
+            "resolved": "http://registry.npm.taobao.org/object.omit/download/object.omit-2.0.1.tgz",
+            "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
+            "dev": true,
+            "requires": {
+                "for-own": "^0.1.4",
+                "is-extendable": "^0.1.1"
+            },
+            "dependencies": {
+                "for-own": {
+                    "version": "0.1.5",
+                    "resolved": "http://registry.npm.taobao.org/for-own/download/for-own-0.1.5.tgz",
+                    "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+                    "dev": true,
+                    "requires": {
+                        "for-in": "^1.0.1"
+                    }
+                }
+            }
+        },
+        "object.pick": {
+            "version": "1.3.0",
+            "resolved": "http://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz",
+            "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+            "dev": true,
+            "requires": {
+                "isobject": "^3.0.1"
+            }
+        },
+        "object.reduce": {
+            "version": "1.0.1",
+            "resolved": "http://registry.npm.taobao.org/object.reduce/download/object.reduce-1.0.1.tgz",
+            "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=",
+            "dev": true,
+            "requires": {
+                "for-own": "^1.0.0",
+                "make-iterator": "^1.0.0"
+            }
+        },
+        "on-finished": {
+            "version": "2.3.0",
+            "resolved": "http://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz",
+            "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+            "dev": true,
+            "requires": {
+                "ee-first": "1.1.1"
+            }
+        },
+        "on-headers": {
+            "version": "1.0.2",
+            "resolved": "http://registry.npm.taobao.org/on-headers/download/on-headers-1.0.2.tgz",
+            "integrity": "sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8=",
+            "dev": true
+        },
+        "once": {
+            "version": "1.4.0",
+            "resolved": "http://registry.npm.taobao.org/once/download/once-1.4.0.tgz",
+            "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+            "dev": true,
+            "requires": {
+                "wrappy": "1"
+            }
+        },
+        "opn": {
+            "version": "6.0.0",
+            "resolved": "http://registry.npm.taobao.org/opn/download/opn-6.0.0.tgz",
+            "integrity": "sha1-PFsNtnbV+X2hIz0e1C0YK8WifS0=",
+            "dev": true,
+            "requires": {
+                "is-wsl": "^1.1.0"
+            }
+        },
+        "ordered-read-streams": {
+            "version": "1.0.1",
+            "resolved": "http://registry.npm.taobao.org/ordered-read-streams/download/ordered-read-streams-1.0.1.tgz",
+            "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=",
+            "dev": true,
+            "requires": {
+                "readable-stream": "^2.0.1"
+            }
+        },
+        "os-locale": {
+            "version": "1.4.0",
+            "resolved": "http://registry.npm.taobao.org/os-locale/download/os-locale-1.4.0.tgz",
+            "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
+            "dev": true,
+            "requires": {
+                "lcid": "^1.0.0"
+            }
+        },
+        "parse-filepath": {
+            "version": "1.0.2",
+            "resolved": "http://registry.npm.taobao.org/parse-filepath/download/parse-filepath-1.0.2.tgz",
+            "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=",
+            "dev": true,
+            "requires": {
+                "is-absolute": "^1.0.0",
+                "map-cache": "^0.2.0",
+                "path-root": "^0.1.1"
+            }
+        },
+        "parse-glob": {
+            "version": "3.0.4",
+            "resolved": "http://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz",
+            "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+            "dev": true,
+            "requires": {
+                "glob-base": "^0.3.0",
+                "is-dotfile": "^1.0.0",
+                "is-extglob": "^1.0.0",
+                "is-glob": "^2.0.0"
+            },
+            "dependencies": {
+                "is-extglob": {
+                    "version": "1.0.0",
+                    "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz",
+                    "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+                    "dev": true
+                },
+                "is-glob": {
+                    "version": "2.0.1",
+                    "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz",
+                    "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+                    "dev": true,
+                    "requires": {
+                        "is-extglob": "^1.0.0"
+                    }
+                }
+            }
+        },
+        "parse-json": {
+            "version": "2.2.0",
+            "resolved": "http://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz",
+            "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+            "dev": true,
+            "requires": {
+                "error-ex": "^1.2.0"
+            }
+        },
+        "parse-node-version": {
+            "version": "1.0.1",
+            "resolved": "http://registry.npm.taobao.org/parse-node-version/download/parse-node-version-1.0.1.tgz",
+            "integrity": "sha1-4rXb7eAOf6m8NjYH9TMn6LBzGJs=",
+            "dev": true
+        },
+        "parse-passwd": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/parse-passwd/download/parse-passwd-1.0.0.tgz",
+            "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
+            "dev": true
+        },
+        "parseurl": {
+            "version": "1.3.2",
+            "resolved": "http://registry.npm.taobao.org/parseurl/download/parseurl-1.3.2.tgz",
+            "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
+            "dev": true
+        },
+        "pascalcase": {
+            "version": "0.1.1",
+            "resolved": "http://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz",
+            "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+            "dev": true
+        },
+        "path-dirname": {
+            "version": "1.0.2",
+            "resolved": "http://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz",
+            "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+            "dev": true
+        },
+        "path-exists": {
+            "version": "2.1.0",
+            "resolved": "http://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz",
+            "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+            "dev": true,
+            "requires": {
+                "pinkie-promise": "^2.0.0"
+            }
+        },
+        "path-is-absolute": {
+            "version": "1.0.1",
+            "resolved": "http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz",
+            "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+            "dev": true
+        },
+        "path-parse": {
+            "version": "1.0.6",
+            "resolved": "http://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz",
+            "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=",
+            "dev": true
+        },
+        "path-root": {
+            "version": "0.1.1",
+            "resolved": "http://registry.npm.taobao.org/path-root/download/path-root-0.1.1.tgz",
+            "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
+            "dev": true,
+            "requires": {
+                "path-root-regex": "^0.1.0"
+            }
+        },
+        "path-root-regex": {
+            "version": "0.1.2",
+            "resolved": "http://registry.npm.taobao.org/path-root-regex/download/path-root-regex-0.1.2.tgz",
+            "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=",
+            "dev": true
+        },
+        "path-type": {
+            "version": "1.1.0",
+            "resolved": "http://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz",
+            "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+            "dev": true,
+            "requires": {
+                "graceful-fs": "^4.1.2",
+                "pify": "^2.0.0",
+                "pinkie-promise": "^2.0.0"
+            }
+        },
+        "pause-stream": {
+            "version": "0.0.11",
+            "resolved": "http://registry.npm.taobao.org/pause-stream/download/pause-stream-0.0.11.tgz",
+            "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
+            "dev": true,
+            "requires": {
+                "through": "~2.3"
+            }
+        },
+        "pify": {
+            "version": "2.3.0",
+            "resolved": "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
+            "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+            "dev": true
+        },
+        "pinkie": {
+            "version": "2.0.4",
+            "resolved": "http://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz",
+            "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+            "dev": true
+        },
+        "pinkie-promise": {
+            "version": "2.0.1",
+            "resolved": "http://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz",
+            "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+            "dev": true,
+            "requires": {
+                "pinkie": "^2.0.0"
+            }
+        },
+        "posix-character-classes": {
+            "version": "0.1.1",
+            "resolved": "http://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz",
+            "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+            "dev": true
+        },
+        "preserve": {
+            "version": "0.2.0",
+            "resolved": "http://registry.npm.taobao.org/preserve/download/preserve-0.2.0.tgz",
+            "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
+            "dev": true
+        },
+        "pretty-hrtime": {
+            "version": "1.0.3",
+            "resolved": "http://registry.npm.taobao.org/pretty-hrtime/download/pretty-hrtime-1.0.3.tgz",
+            "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=",
+            "dev": true
+        },
+        "process-nextick-args": {
+            "version": "1.0.7",
+            "resolved": "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-1.0.7.tgz",
+            "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
+            "dev": true
+        },
+        "proxy-middleware": {
+            "version": "0.15.0",
+            "resolved": "http://registry.npm.taobao.org/proxy-middleware/download/proxy-middleware-0.15.0.tgz",
+            "integrity": "sha1-o/3xvvtzD5UZZYcqwvYHTGFHelY=",
+            "dev": true
+        },
+        "pump": {
+            "version": "2.0.1",
+            "resolved": "http://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz",
+            "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=",
+            "dev": true,
+            "requires": {
+                "end-of-stream": "^1.1.0",
+                "once": "^1.3.1"
+            }
+        },
+        "pumpify": {
+            "version": "1.5.1",
+            "resolved": "http://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz",
+            "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=",
+            "dev": true,
+            "requires": {
+                "duplexify": "^3.6.0",
+                "inherits": "^2.0.3",
+                "pump": "^2.0.0"
+            }
+        },
+        "randomatic": {
+            "version": "3.1.1",
+            "resolved": "http://registry.npm.taobao.org/randomatic/download/randomatic-3.1.1.tgz",
+            "integrity": "sha1-t3bvxZN1mE42xTey9RofCv8Noe0=",
+            "dev": true,
+            "requires": {
+                "is-number": "^4.0.0",
+                "kind-of": "^6.0.0",
+                "math-random": "^1.0.1"
+            },
+            "dependencies": {
+                "is-number": {
+                    "version": "4.0.0",
+                    "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-4.0.0.tgz",
+                    "integrity": "sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8=",
+                    "dev": true
+                }
+            }
+        },
+        "range-parser": {
+            "version": "1.2.0",
+            "resolved": "http://registry.npm.taobao.org/range-parser/download/range-parser-1.2.0.tgz",
+            "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=",
+            "dev": true
+        },
+        "read-pkg": {
+            "version": "1.1.0",
+            "resolved": "http://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz",
+            "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+            "dev": true,
+            "requires": {
+                "load-json-file": "^1.0.0",
+                "normalize-package-data": "^2.3.2",
+                "path-type": "^1.0.0"
+            }
+        },
+        "read-pkg-up": {
+            "version": "1.0.1",
+            "resolved": "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz",
+            "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+            "dev": true,
+            "requires": {
+                "find-up": "^1.0.0",
+                "read-pkg": "^1.0.0"
+            }
+        },
+        "readable-stream": {
+            "version": "2.3.6",
+            "resolved": "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.6.tgz",
+            "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=",
+            "dev": true,
+            "requires": {
+                "core-util-is": "~1.0.0",
+                "inherits": "~2.0.3",
+                "isarray": "~1.0.0",
+                "process-nextick-args": "~2.0.0",
+                "safe-buffer": "~5.1.1",
+                "string_decoder": "~1.1.1",
+                "util-deprecate": "~1.0.1"
+            },
+            "dependencies": {
+                "process-nextick-args": {
+                    "version": "2.0.0",
+                    "resolved": "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.0.tgz",
+                    "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=",
+                    "dev": true
+                }
+            }
+        },
+        "readdirp": {
+            "version": "2.2.1",
+            "resolved": "http://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz",
+            "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=",
+            "dev": true,
+            "requires": {
+                "graceful-fs": "^4.1.11",
+                "micromatch": "^3.1.10",
+                "readable-stream": "^2.0.2"
+            }
+        },
+        "rechoir": {
+            "version": "0.6.2",
+            "resolved": "http://registry.npm.taobao.org/rechoir/download/rechoir-0.6.2.tgz",
+            "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+            "dev": true,
+            "requires": {
+                "resolve": "^1.1.6"
+            }
+        },
+        "regex-cache": {
+            "version": "0.4.4",
+            "resolved": "http://registry.npm.taobao.org/regex-cache/download/regex-cache-0.4.4.tgz",
+            "integrity": "sha1-db3FiioUls7EihKDW8VMjVYjNt0=",
+            "dev": true,
+            "requires": {
+                "is-equal-shallow": "^0.1.3"
+            }
+        },
+        "regex-not": {
+            "version": "1.0.2",
+            "resolved": "http://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz",
+            "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=",
+            "dev": true,
+            "requires": {
+                "extend-shallow": "^3.0.2",
+                "safe-regex": "^1.1.0"
+            }
+        },
+        "remove-bom-buffer": {
+            "version": "3.0.0",
+            "resolved": "http://registry.npm.taobao.org/remove-bom-buffer/download/remove-bom-buffer-3.0.0.tgz",
+            "integrity": "sha1-wr8eN3Ug0yT2I4kuM8EMrCwlK1M=",
+            "dev": true,
+            "requires": {
+                "is-buffer": "^1.1.5",
+                "is-utf8": "^0.2.1"
+            }
+        },
+        "remove-bom-stream": {
+            "version": "1.2.0",
+            "resolved": "http://registry.npm.taobao.org/remove-bom-stream/download/remove-bom-stream-1.2.0.tgz",
+            "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=",
+            "dev": true,
+            "requires": {
+                "remove-bom-buffer": "^3.0.0",
+                "safe-buffer": "^5.1.0",
+                "through2": "^2.0.3"
+            }
+        },
+        "remove-trailing-separator": {
+            "version": "1.1.0",
+            "resolved": "http://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz",
+            "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+            "dev": true
+        },
+        "repeat-element": {
+            "version": "1.1.3",
+            "resolved": "http://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz",
+            "integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4=",
+            "dev": true
+        },
+        "repeat-string": {
+            "version": "1.6.1",
+            "resolved": "http://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz",
+            "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+            "dev": true
+        },
+        "replace-ext": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/replace-ext/download/replace-ext-1.0.0.tgz",
+            "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=",
+            "dev": true
+        },
+        "replace-homedir": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/replace-homedir/download/replace-homedir-1.0.0.tgz",
+            "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=",
+            "dev": true,
+            "requires": {
+                "homedir-polyfill": "^1.0.1",
+                "is-absolute": "^1.0.0",
+                "remove-trailing-separator": "^1.1.0"
+            }
+        },
+        "require-directory": {
+            "version": "2.1.1",
+            "resolved": "http://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz",
+            "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+            "dev": true
+        },
+        "require-main-filename": {
+            "version": "1.0.1",
+            "resolved": "http://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz",
+            "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+            "dev": true
+        },
+        "resolve": {
+            "version": "1.10.0",
+            "resolved": "http://registry.npm.taobao.org/resolve/download/resolve-1.10.0.tgz",
+            "integrity": "sha1-O9qur0XMB/N1ZW39LlTtCBCxAbo=",
+            "dev": true,
+            "requires": {
+                "path-parse": "^1.0.6"
+            }
+        },
+        "resolve-dir": {
+            "version": "1.0.1",
+            "resolved": "http://registry.npm.taobao.org/resolve-dir/download/resolve-dir-1.0.1.tgz",
+            "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
+            "dev": true,
+            "requires": {
+                "expand-tilde": "^2.0.0",
+                "global-modules": "^1.0.0"
+            }
+        },
+        "resolve-options": {
+            "version": "1.1.0",
+            "resolved": "http://registry.npm.taobao.org/resolve-options/download/resolve-options-1.1.0.tgz",
+            "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=",
+            "dev": true,
+            "requires": {
+                "value-or-function": "^3.0.0"
+            }
+        },
+        "resolve-url": {
+            "version": "0.2.1",
+            "resolved": "http://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz",
+            "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+            "dev": true
+        },
+        "ret": {
+            "version": "0.1.15",
+            "resolved": "http://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz",
+            "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=",
+            "dev": true
+        },
+        "safe-buffer": {
+            "version": "5.1.2",
+            "resolved": "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz",
+            "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=",
+            "dev": true
+        },
+        "safe-regex": {
+            "version": "1.1.0",
+            "resolved": "http://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz",
+            "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+            "dev": true,
+            "requires": {
+                "ret": "~0.1.10"
+            }
+        },
+        "semver": {
+            "version": "5.7.0",
+            "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.7.0.tgz",
+            "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=",
+            "dev": true
+        },
+        "semver-greatest-satisfied-range": {
+            "version": "1.1.0",
+            "resolved": "http://registry.npm.taobao.org/semver-greatest-satisfied-range/download/semver-greatest-satisfied-range-1.1.0.tgz",
+            "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=",
+            "dev": true,
+            "requires": {
+                "sver-compat": "^1.5.0"
+            }
+        },
+        "send": {
+            "version": "0.16.2",
+            "resolved": "http://registry.npm.taobao.org/send/download/send-0.16.2.tgz",
+            "integrity": "sha1-bsyh4PjBVtFBWXVZhI32RzCmu8E=",
+            "dev": true,
+            "requires": {
+                "debug": "2.6.9",
+                "depd": "~1.1.2",
+                "destroy": "~1.0.4",
+                "encodeurl": "~1.0.2",
+                "escape-html": "~1.0.3",
+                "etag": "~1.8.1",
+                "fresh": "0.5.2",
+                "http-errors": "~1.6.2",
+                "mime": "1.4.1",
+                "ms": "2.0.0",
+                "on-finished": "~2.3.0",
+                "range-parser": "~1.2.0",
+                "statuses": "~1.4.0"
+            },
+            "dependencies": {
+                "statuses": {
+                    "version": "1.4.0",
+                    "resolved": "http://registry.npm.taobao.org/statuses/download/statuses-1.4.0.tgz",
+                    "integrity": "sha1-u3PURtonlhBu/MG2AaJT1sRr0Ic=",
+                    "dev": true
+                }
+            }
+        },
+        "serve-index": {
+            "version": "1.9.1",
+            "resolved": "http://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz",
+            "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
+            "dev": true,
+            "requires": {
+                "accepts": "~1.3.4",
+                "batch": "0.6.1",
+                "debug": "2.6.9",
+                "escape-html": "~1.0.3",
+                "http-errors": "~1.6.2",
+                "mime-types": "~2.1.17",
+                "parseurl": "~1.3.2"
+            }
+        },
+        "set-blocking": {
+            "version": "2.0.0",
+            "resolved": "http://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz",
+            "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+            "dev": true
+        },
+        "set-value": {
+            "version": "2.0.0",
+            "resolved": "http://registry.npm.taobao.org/set-value/download/set-value-2.0.0.tgz",
+            "integrity": "sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=",
+            "dev": true,
+            "requires": {
+                "extend-shallow": "^2.0.1",
+                "is-extendable": "^0.1.1",
+                "is-plain-object": "^2.0.3",
+                "split-string": "^3.0.1"
+            },
+            "dependencies": {
+                "extend-shallow": {
+                    "version": "2.0.1",
+                    "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+                    "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                    "dev": true,
+                    "requires": {
+                        "is-extendable": "^0.1.0"
+                    }
+                }
+            }
+        },
+        "setprototypeof": {
+            "version": "1.1.0",
+            "resolved": "http://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz",
+            "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=",
+            "dev": true
+        },
+        "snapdragon": {
+            "version": "0.8.2",
+            "resolved": "http://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz",
+            "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=",
+            "dev": true,
+            "requires": {
+                "base": "^0.11.1",
+                "debug": "^2.2.0",
+                "define-property": "^0.2.5",
+                "extend-shallow": "^2.0.1",
+                "map-cache": "^0.2.2",
+                "source-map": "^0.5.6",
+                "source-map-resolve": "^0.5.0",
+                "use": "^3.1.0"
+            },
+            "dependencies": {
+                "define-property": {
+                    "version": "0.2.5",
+                    "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
+                    "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+                    "dev": true,
+                    "requires": {
+                        "is-descriptor": "^0.1.0"
+                    }
+                },
+                "extend-shallow": {
+                    "version": "2.0.1",
+                    "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+                    "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                    "dev": true,
+                    "requires": {
+                        "is-extendable": "^0.1.0"
+                    }
+                }
+            }
+        },
+        "snapdragon-node": {
+            "version": "2.1.1",
+            "resolved": "http://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz",
+            "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=",
+            "dev": true,
+            "requires": {
+                "define-property": "^1.0.0",
+                "isobject": "^3.0.0",
+                "snapdragon-util": "^3.0.1"
+            },
+            "dependencies": {
+                "define-property": {
+                    "version": "1.0.0",
+                    "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz",
+                    "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+                    "dev": true,
+                    "requires": {
+                        "is-descriptor": "^1.0.0"
+                    }
+                },
+                "is-accessor-descriptor": {
+                    "version": "1.0.0",
+                    "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz",
+                    "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
+                    "dev": true,
+                    "requires": {
+                        "kind-of": "^6.0.0"
+                    }
+                },
+                "is-data-descriptor": {
+                    "version": "1.0.0",
+                    "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz",
+                    "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
+                    "dev": true,
+                    "requires": {
+                        "kind-of": "^6.0.0"
+                    }
+                },
+                "is-descriptor": {
+                    "version": "1.0.2",
+                    "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz",
+                    "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
+                    "dev": true,
+                    "requires": {
+                        "is-accessor-descriptor": "^1.0.0",
+                        "is-data-descriptor": "^1.0.0",
+                        "kind-of": "^6.0.2"
+                    }
+                }
+            }
+        },
+        "snapdragon-util": {
+            "version": "3.0.1",
+            "resolved": "http://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz",
+            "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=",
+            "dev": true,
+            "requires": {
+                "kind-of": "^3.2.0"
+            },
+            "dependencies": {
+                "kind-of": {
+                    "version": "3.2.2",
+                    "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
+                    "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                    "dev": true,
+                    "requires": {
+                        "is-buffer": "^1.1.5"
+                    }
+                }
+            }
+        },
+        "source-map": {
+            "version": "0.5.7",
+            "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+            "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+            "dev": true
+        },
+        "source-map-resolve": {
+            "version": "0.5.2",
+            "resolved": "http://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.2.tgz",
+            "integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=",
+            "dev": true,
+            "requires": {
+                "atob": "^2.1.1",
+                "decode-uri-component": "^0.2.0",
+                "resolve-url": "^0.2.1",
+                "source-map-url": "^0.4.0",
+                "urix": "^0.1.0"
+            }
+        },
+        "source-map-url": {
+            "version": "0.4.0",
+            "resolved": "http://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz",
+            "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+            "dev": true
+        },
+        "sparkles": {
+            "version": "1.0.1",
+            "resolved": "http://registry.npm.taobao.org/sparkles/download/sparkles-1.0.1.tgz",
+            "integrity": "sha1-AI22XtzmxQ7sDF4ijhlFBh3QQ3w=",
+            "dev": true
+        },
+        "spdx-correct": {
+            "version": "3.1.0",
+            "resolved": "http://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.0.tgz",
+            "integrity": "sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ=",
+            "dev": true,
+            "requires": {
+                "spdx-expression-parse": "^3.0.0",
+                "spdx-license-ids": "^3.0.0"
+            }
+        },
+        "spdx-exceptions": {
+            "version": "2.2.0",
+            "resolved": "http://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.2.0.tgz",
+            "integrity": "sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc=",
+            "dev": true
+        },
+        "spdx-expression-parse": {
+            "version": "3.0.0",
+            "resolved": "http://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.0.tgz",
+            "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=",
+            "dev": true,
+            "requires": {
+                "spdx-exceptions": "^2.1.0",
+                "spdx-license-ids": "^3.0.0"
+            }
+        },
+        "spdx-license-ids": {
+            "version": "3.0.3",
+            "resolved": "http://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.3.tgz",
+            "integrity": "sha1-gcDOjyFHR1YUi7tfO/wPNr8V124=",
+            "dev": true
+        },
+        "split": {
+            "version": "0.3.3",
+            "resolved": "http://registry.npm.taobao.org/split/download/split-0.3.3.tgz",
+            "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=",
+            "dev": true,
+            "requires": {
+                "through": "2"
+            }
+        },
+        "split-string": {
+            "version": "3.1.0",
+            "resolved": "http://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz",
+            "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=",
+            "dev": true,
+            "requires": {
+                "extend-shallow": "^3.0.0"
+            }
+        },
+        "stack-trace": {
+            "version": "0.0.10",
+            "resolved": "http://registry.npm.taobao.org/stack-trace/download/stack-trace-0.0.10.tgz",
+            "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
+            "dev": true
+        },
+        "static-extend": {
+            "version": "0.1.2",
+            "resolved": "http://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz",
+            "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+            "dev": true,
+            "requires": {
+                "define-property": "^0.2.5",
+                "object-copy": "^0.1.0"
+            },
+            "dependencies": {
+                "define-property": {
+                    "version": "0.2.5",
+                    "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
+                    "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+                    "dev": true,
+                    "requires": {
+                        "is-descriptor": "^0.1.0"
+                    }
+                }
+            }
+        },
+        "statuses": {
+            "version": "1.3.1",
+            "resolved": "http://registry.npm.taobao.org/statuses/download/statuses-1.3.1.tgz",
+            "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=",
+            "dev": true
+        },
+        "stream-combiner": {
+            "version": "0.0.4",
+            "resolved": "http://registry.npm.taobao.org/stream-combiner/download/stream-combiner-0.0.4.tgz",
+            "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=",
+            "dev": true,
+            "requires": {
+                "duplexer": "~0.1.1"
+            }
+        },
+        "stream-exhaust": {
+            "version": "1.0.2",
+            "resolved": "http://registry.npm.taobao.org/stream-exhaust/download/stream-exhaust-1.0.2.tgz",
+            "integrity": "sha1-rNrI2lnvK8HheiwMz2wyDRIOVV0=",
+            "dev": true
+        },
+        "stream-shift": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.0.tgz",
+            "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
+            "dev": true
+        },
+        "string-width": {
+            "version": "1.0.2",
+            "resolved": "http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz",
+            "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+            "dev": true,
+            "requires": {
+                "code-point-at": "^1.0.0",
+                "is-fullwidth-code-point": "^1.0.0",
+                "strip-ansi": "^3.0.0"
+            }
+        },
+        "string_decoder": {
+            "version": "1.1.1",
+            "resolved": "http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz",
+            "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=",
+            "dev": true,
+            "requires": {
+                "safe-buffer": "~5.1.0"
+            }
+        },
+        "strip-ansi": {
+            "version": "3.0.1",
+            "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz",
+            "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+            "dev": true,
+            "requires": {
+                "ansi-regex": "^2.0.0"
+            }
+        },
+        "strip-bom": {
+            "version": "2.0.0",
+            "resolved": "http://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz",
+            "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+            "dev": true,
+            "requires": {
+                "is-utf8": "^0.2.0"
+            }
+        },
+        "strip-bom-stream": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/strip-bom-stream/download/strip-bom-stream-1.0.0.tgz",
+            "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=",
+            "dev": true,
+            "requires": {
+                "first-chunk-stream": "^1.0.0",
+                "strip-bom": "^2.0.0"
+            }
+        },
+        "strip-bom-string": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/strip-bom-string/download/strip-bom-string-1.0.0.tgz",
+            "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=",
+            "dev": true
+        },
+        "supports-color": {
+            "version": "2.0.0",
+            "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+            "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+            "dev": true
+        },
+        "sver-compat": {
+            "version": "1.5.0",
+            "resolved": "http://registry.npm.taobao.org/sver-compat/download/sver-compat-1.5.0.tgz",
+            "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=",
+            "dev": true,
+            "requires": {
+                "es6-iterator": "^2.0.1",
+                "es6-symbol": "^3.1.1"
+            }
+        },
+        "through": {
+            "version": "2.3.8",
+            "resolved": "http://registry.npm.taobao.org/through/download/through-2.3.8.tgz",
+            "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+            "dev": true
+        },
+        "through2": {
+            "version": "2.0.5",
+            "resolved": "http://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz",
+            "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=",
+            "dev": true,
+            "requires": {
+                "readable-stream": "~2.3.6",
+                "xtend": "~4.0.1"
+            }
+        },
+        "through2-filter": {
+            "version": "3.0.0",
+            "resolved": "http://registry.npm.taobao.org/through2-filter/download/through2-filter-3.0.0.tgz",
+            "integrity": "sha1-cA54bfI2fCyIzYqlvkz5weeDElQ=",
+            "dev": true,
+            "requires": {
+                "through2": "~2.0.0",
+                "xtend": "~4.0.0"
+            }
+        },
+        "time-stamp": {
+            "version": "1.1.0",
+            "resolved": "http://registry.npm.taobao.org/time-stamp/download/time-stamp-1.1.0.tgz",
+            "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=",
+            "dev": true
+        },
+        "timers-ext": {
+            "version": "0.1.7",
+            "resolved": "http://registry.npm.taobao.org/timers-ext/download/timers-ext-0.1.7.tgz",
+            "integrity": "sha1-b1ethXjgej+5+R2Th9ZWR1VeJcY=",
+            "dev": true,
+            "requires": {
+                "es5-ext": "~0.10.46",
+                "next-tick": "1"
+            }
+        },
+        "to-absolute-glob": {
+            "version": "2.0.2",
+            "resolved": "http://registry.npm.taobao.org/to-absolute-glob/download/to-absolute-glob-2.0.2.tgz",
+            "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=",
+            "dev": true,
+            "requires": {
+                "is-absolute": "^1.0.0",
+                "is-negated-glob": "^1.0.0"
+            }
+        },
+        "to-object-path": {
+            "version": "0.3.0",
+            "resolved": "http://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz",
+            "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+            "dev": true,
+            "requires": {
+                "kind-of": "^3.0.2"
+            },
+            "dependencies": {
+                "kind-of": {
+                    "version": "3.2.2",
+                    "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
+                    "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                    "dev": true,
+                    "requires": {
+                        "is-buffer": "^1.1.5"
+                    }
+                }
+            }
+        },
+        "to-regex": {
+            "version": "3.0.2",
+            "resolved": "http://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz",
+            "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=",
+            "dev": true,
+            "requires": {
+                "define-property": "^2.0.2",
+                "extend-shallow": "^3.0.2",
+                "regex-not": "^1.0.2",
+                "safe-regex": "^1.1.0"
+            }
+        },
+        "to-regex-range": {
+            "version": "2.1.1",
+            "resolved": "http://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz",
+            "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+            "dev": true,
+            "requires": {
+                "is-number": "^3.0.0",
+                "repeat-string": "^1.6.1"
+            }
+        },
+        "to-through": {
+            "version": "2.0.0",
+            "resolved": "http://registry.npm.taobao.org/to-through/download/to-through-2.0.0.tgz",
+            "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=",
+            "dev": true,
+            "requires": {
+                "through2": "^2.0.3"
+            }
+        },
+        "typedarray": {
+            "version": "0.0.6",
+            "resolved": "http://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz",
+            "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+            "dev": true
+        },
+        "typescript": {
+            "version": "2.9.2",
+            "resolved": "http://registry.npm.taobao.org/typescript/download/typescript-2.9.2.tgz",
+            "integrity": "sha1-HL9h0F1rliaSROtqO85L2RTg8Aw=",
+            "dev": true
+        },
+        "uglify-js": {
+            "version": "3.5.2",
+            "resolved": "http://registry.npm.taobao.org/uglify-js/download/uglify-js-3.5.2.tgz",
+            "integrity": "sha1-3Ax6wtoKS30V6EJmgY/zDoJSlHQ=",
+            "dev": true,
+            "requires": {
+                "commander": "~2.19.0",
+                "source-map": "~0.6.1"
+            },
+            "dependencies": {
+                "source-map": {
+                    "version": "0.6.1",
+                    "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+                    "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+                    "dev": true
+                }
+            }
+        },
+        "unc-path-regex": {
+            "version": "0.1.2",
+            "resolved": "http://registry.npm.taobao.org/unc-path-regex/download/unc-path-regex-0.1.2.tgz",
+            "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=",
+            "dev": true
+        },
+        "undertaker": {
+            "version": "1.2.0",
+            "resolved": "http://registry.npm.taobao.org/undertaker/download/undertaker-1.2.0.tgz",
+            "integrity": "sha1-M52kZGJS0ILcN45wgGcpl1DhG0k=",
+            "dev": true,
+            "requires": {
+                "arr-flatten": "^1.0.1",
+                "arr-map": "^2.0.0",
+                "bach": "^1.0.0",
+                "collection-map": "^1.0.0",
+                "es6-weak-map": "^2.0.1",
+                "last-run": "^1.1.0",
+                "object.defaults": "^1.0.0",
+                "object.reduce": "^1.0.0",
+                "undertaker-registry": "^1.0.0"
+            }
+        },
+        "undertaker-registry": {
+            "version": "1.0.1",
+            "resolved": "http://registry.npm.taobao.org/undertaker-registry/download/undertaker-registry-1.0.1.tgz",
+            "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=",
+            "dev": true
+        },
+        "union-value": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/union-value/download/union-value-1.0.0.tgz",
+            "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
+            "dev": true,
+            "requires": {
+                "arr-union": "^3.1.0",
+                "get-value": "^2.0.6",
+                "is-extendable": "^0.1.1",
+                "set-value": "^0.4.3"
+            },
+            "dependencies": {
+                "extend-shallow": {
+                    "version": "2.0.1",
+                    "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+                    "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                    "dev": true,
+                    "requires": {
+                        "is-extendable": "^0.1.0"
+                    }
+                },
+                "set-value": {
+                    "version": "0.4.3",
+                    "resolved": "http://registry.npm.taobao.org/set-value/download/set-value-0.4.3.tgz",
+                    "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
+                    "dev": true,
+                    "requires": {
+                        "extend-shallow": "^2.0.1",
+                        "is-extendable": "^0.1.1",
+                        "is-plain-object": "^2.0.1",
+                        "to-object-path": "^0.3.0"
+                    }
+                }
+            }
+        },
+        "unique-stream": {
+            "version": "2.3.1",
+            "resolved": "http://registry.npm.taobao.org/unique-stream/download/unique-stream-2.3.1.tgz",
+            "integrity": "sha1-xl0RDppK35psWUiygFPZqNBMvqw=",
+            "dev": true,
+            "requires": {
+                "json-stable-stringify-without-jsonify": "^1.0.1",
+                "through2-filter": "^3.0.0"
+            }
+        },
+        "unix-crypt-td-js": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/unix-crypt-td-js/download/unix-crypt-td-js-1.0.0.tgz",
+            "integrity": "sha1-HAgkFQSBvHoB1J6Y8exmjYJBLzs=",
+            "dev": true
+        },
+        "unpipe": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz",
+            "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+            "dev": true
+        },
+        "unset-value": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz",
+            "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+            "dev": true,
+            "requires": {
+                "has-value": "^0.3.1",
+                "isobject": "^3.0.0"
+            },
+            "dependencies": {
+                "has-value": {
+                    "version": "0.3.1",
+                    "resolved": "http://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz",
+                    "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+                    "dev": true,
+                    "requires": {
+                        "get-value": "^2.0.3",
+                        "has-values": "^0.1.4",
+                        "isobject": "^2.0.0"
+                    },
+                    "dependencies": {
+                        "isobject": {
+                            "version": "2.1.0",
+                            "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz",
+                            "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+                            "dev": true,
+                            "requires": {
+                                "isarray": "1.0.0"
+                            }
+                        }
+                    }
+                },
+                "has-values": {
+                    "version": "0.1.4",
+                    "resolved": "http://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz",
+                    "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+                    "dev": true
+                }
+            }
+        },
+        "upath": {
+            "version": "1.1.2",
+            "resolved": "http://registry.npm.taobao.org/upath/download/upath-1.1.2.tgz",
+            "integrity": "sha1-PbZYYA7a7sy+bbXmhNZ+6MKs0Gg=",
+            "dev": true
+        },
+        "urix": {
+            "version": "0.1.0",
+            "resolved": "http://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz",
+            "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+            "dev": true
+        },
+        "use": {
+            "version": "3.1.1",
+            "resolved": "http://registry.npm.taobao.org/use/download/use-3.1.1.tgz",
+            "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=",
+            "dev": true
+        },
+        "util-deprecate": {
+            "version": "1.0.2",
+            "resolved": "http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz",
+            "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+            "dev": true
+        },
+        "utils-merge": {
+            "version": "1.0.1",
+            "resolved": "http://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz",
+            "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+            "dev": true
+        },
+        "uuid": {
+            "version": "3.3.2",
+            "resolved": "http://registry.npm.taobao.org/uuid/download/uuid-3.3.2.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.3.2.tgz",
+            "integrity": "sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE=",
+            "dev": true
+        },
+        "v8flags": {
+            "version": "3.1.2",
+            "resolved": "http://registry.npm.taobao.org/v8flags/download/v8flags-3.1.2.tgz",
+            "integrity": "sha1-/FzQwidCgYHmwpspkuT48dpeDJ8=",
+            "dev": true,
+            "requires": {
+                "homedir-polyfill": "^1.0.1"
+            }
+        },
+        "vali-date": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/vali-date/download/vali-date-1.0.0.tgz",
+            "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=",
+            "dev": true
+        },
+        "validate-npm-package-license": {
+            "version": "3.0.4",
+            "resolved": "http://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz",
+            "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=",
+            "dev": true,
+            "requires": {
+                "spdx-correct": "^3.0.0",
+                "spdx-expression-parse": "^3.0.0"
+            }
+        },
+        "value-or-function": {
+            "version": "3.0.0",
+            "resolved": "http://registry.npm.taobao.org/value-or-function/download/value-or-function-3.0.0.tgz",
+            "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=",
+            "dev": true
+        },
+        "vary": {
+            "version": "1.1.2",
+            "resolved": "http://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz",
+            "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+            "dev": true
+        },
+        "vinyl": {
+            "version": "2.2.0",
+            "resolved": "http://registry.npm.taobao.org/vinyl/download/vinyl-2.2.0.tgz",
+            "integrity": "sha1-2FsH2pbkWNJbL/4Z/s6fLKoT7YY=",
+            "dev": true,
+            "requires": {
+                "clone": "^2.1.1",
+                "clone-buffer": "^1.0.0",
+                "clone-stats": "^1.0.0",
+                "cloneable-readable": "^1.0.0",
+                "remove-trailing-separator": "^1.0.1",
+                "replace-ext": "^1.0.0"
+            }
+        },
+        "vinyl-fs": {
+            "version": "3.0.3",
+            "resolved": "http://registry.npm.taobao.org/vinyl-fs/download/vinyl-fs-3.0.3.tgz",
+            "integrity": "sha1-yFhJQF9nQo/qu71cXb3WT0fTG8c=",
+            "dev": true,
+            "requires": {
+                "fs-mkdirp-stream": "^1.0.0",
+                "glob-stream": "^6.1.0",
+                "graceful-fs": "^4.0.0",
+                "is-valid-glob": "^1.0.0",
+                "lazystream": "^1.0.0",
+                "lead": "^1.0.0",
+                "object.assign": "^4.0.4",
+                "pumpify": "^1.3.5",
+                "readable-stream": "^2.3.3",
+                "remove-bom-buffer": "^3.0.0",
+                "remove-bom-stream": "^1.2.0",
+                "resolve-options": "^1.1.0",
+                "through2": "^2.0.0",
+                "to-through": "^2.0.0",
+                "value-or-function": "^3.0.0",
+                "vinyl": "^2.0.0",
+                "vinyl-sourcemap": "^1.1.0"
+            }
+        },
+        "vinyl-sourcemap": {
+            "version": "1.1.0",
+            "resolved": "http://registry.npm.taobao.org/vinyl-sourcemap/download/vinyl-sourcemap-1.1.0.tgz",
+            "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=",
+            "dev": true,
+            "requires": {
+                "append-buffer": "^1.0.2",
+                "convert-source-map": "^1.5.0",
+                "graceful-fs": "^4.1.6",
+                "normalize-path": "^2.1.1",
+                "now-and-later": "^2.0.0",
+                "remove-bom-buffer": "^3.0.0",
+                "vinyl": "^2.0.0"
+            }
+        },
+        "vinyl-sourcemaps-apply": {
+            "version": "0.2.1",
+            "resolved": "http://registry.npm.taobao.org/vinyl-sourcemaps-apply/download/vinyl-sourcemaps-apply-0.2.1.tgz",
+            "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=",
+            "dev": true,
+            "requires": {
+                "source-map": "^0.5.1"
+            }
+        },
+        "websocket-driver": {
+            "version": "0.7.0",
+            "resolved": "http://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.0.tgz",
+            "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
+            "dev": true,
+            "requires": {
+                "http-parser-js": ">=0.4.0",
+                "websocket-extensions": ">=0.1.1"
+            }
+        },
+        "websocket-extensions": {
+            "version": "0.1.3",
+            "resolved": "http://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.3.tgz",
+            "integrity": "sha1-XS/yKXcAPsaHpLhwc9+7rBRszyk=",
+            "dev": true
+        },
+        "which": {
+            "version": "1.3.1",
+            "resolved": "http://registry.npm.taobao.org/which/download/which-1.3.1.tgz",
+            "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=",
+            "dev": true,
+            "requires": {
+                "isexe": "^2.0.0"
+            }
+        },
+        "which-module": {
+            "version": "1.0.0",
+            "resolved": "http://registry.npm.taobao.org/which-module/download/which-module-1.0.0.tgz",
+            "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
+            "dev": true
+        },
+        "wrap-ansi": {
+            "version": "2.1.0",
+            "resolved": "http://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz",
+            "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+            "dev": true,
+            "requires": {
+                "string-width": "^1.0.1",
+                "strip-ansi": "^3.0.1"
+            }
+        },
+        "wrappy": {
+            "version": "1.0.2",
+            "resolved": "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz",
+            "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+            "dev": true
+        },
+        "xtend": {
+            "version": "4.0.1",
+            "resolved": "http://registry.npm.taobao.org/xtend/download/xtend-4.0.1.tgz",
+            "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+            "dev": true
+        },
+        "y18n": {
+            "version": "3.2.1",
+            "resolved": "http://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz",
+            "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+            "dev": true
+        },
+        "yargs": {
+            "version": "7.1.0",
+            "resolved": "http://registry.npm.taobao.org/yargs/download/yargs-7.1.0.tgz",
+            "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
+            "dev": true,
+            "requires": {
+                "camelcase": "^3.0.0",
+                "cliui": "^3.2.0",
+                "decamelize": "^1.1.1",
+                "get-caller-file": "^1.0.1",
+                "os-locale": "^1.4.0",
+                "read-pkg-up": "^1.0.1",
+                "require-directory": "^2.1.1",
+                "require-main-filename": "^1.0.1",
+                "set-blocking": "^2.0.0",
+                "string-width": "^1.0.2",
+                "which-module": "^1.0.0",
+                "y18n": "^3.2.1",
+                "yargs-parser": "^5.0.0"
+            }
+        },
+        "yargs-parser": {
+            "version": "5.0.0",
+            "resolved": "http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-5.0.0.tgz",
+            "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
+            "dev": true,
+            "requires": {
+                "camelcase": "^3.0.0"
+            }
+        }
+    }
+}
diff --git a/package.json b/package.json
index 9d5e5b3..2c5e039 100644
--- a/package.json
+++ b/package.json
@@ -27,7 +27,6 @@
         "gulp-sourcemaps": "^2.6.1",
         "gulp-typescript": "^3.2.3",
         "gulp-uglify": "^3.0.0",
-        "gulp-util": "^3.0.8",
         "live-server": "^1.2.0",
         "typescript": "^2.6.2"
     }
diff --git a/src/Calculator.ts b/src/Calculator.ts
deleted file mode 100644
index e94d4c8..0000000
--- a/src/Calculator.ts
+++ /dev/null
@@ -1,74 +0,0 @@
-export class Calculator {
-    private current = 0;
-    private memory = 0;
-    private operator: string;
-
-    protected processDigit (digit: string, currentValue: number) {
-        if (digit >= "0" && digit <= "9") {
-            return currentValue * 10 + (digit.charCodeAt(0) - "0".charCodeAt(0));
-        }
-    }
-
-    protected processOperator (operator: string) {
-        if (["+", "-", "*", "/"].indexOf(operator) >= 0) {
-            return operator;
-        }
-    }
-
-    protected evaluateOperator (operator: string, left: number, right: number): number {
-        switch (this.operator) {
-            case "+": return left + right;
-            case "-": return left - right;
-            case "*": return left * right;
-            case "/": return left / right;
-        }
-    }
-
-    private evaluate () {
-        if (this.operator) {
-            this.memory = this.evaluateOperator(this.operator, this.memory, this.current);
-        }
-        else {
-            this.memory = this.current;
-        }
-        this.current = 0;
-    }
-
-    public handelChar (char: string) {
-        if (char === "=") {
-            this.evaluate();
-            return;
-        }
-        else {
-            let value = this.processDigit(char, this.current);
-
-            if (value !== undefined) {
-                this.current = value;
-                return;
-            }
-            else {
-                let value = this.processOperator(char);
-
-                if (value !== undefined) {
-                    this.evaluate();
-                    this.operator = value;
-                    return;
-                }
-            }
-        }
-
-        throw new Error(`Unsupported input: '${char}'`);
-    }
-
-    public getResult() {
-        return this.memory;
-    }
-}
-
-export function test (c: Calculator, input: string) {
-    for (let i = 0; i < input.length; i++){
-        c.handelChar(input[i]);
-    }
-
-    console.log(`result of '${input}' is '${c.getResult()}'`);
-}
diff --git a/src/LettersOnlyValidator.ts b/src/LettersOnlyValidator.ts
deleted file mode 100644
index 97726c7..0000000
--- a/src/LettersOnlyValidator.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-
-/// <reference path="Validation.ts">
-namespace Validation {
-    const lettersRegexp = /^[A-Za-z]+$/;
-
-    export class LettersOnlyValidator implements StringValidator {
-        isAcceptable (s: string) {
-            return lettersRegexp.test(s);
-        }
-    }
-}
diff --git a/src/ProgrammerCalculator.ts b/src/ProgrammerCalculator.ts
deleted file mode 100644
index 30a8cbc..0000000
--- a/src/ProgrammerCalculator.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { Calculator } from "./Calculator";
-
-class ProgrammerCalculator extends Calculator {
-    static digits = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"];
-
-    constructor (public base: number) {
-        super();
-
-        if (base <= 0 || base > ProgrammerCalculator.digits.length) {
-            throw new Error("基数必须要在0到16的范围");
-        }
-    }
-
-    protected processDigit(digit: string, currentValue: number) {
-        if (ProgrammerCalculator.digits.indexOf(digit) >= 0) {
-            return currentValue * this.base + ProgrammerCalculator.digits.indexOf(digit);
-        }
-    }
-}
-
-// 将新的已扩展的计算器作为`Calculator`进行导出
-export { ProgrammerCalculator as Calculator };
-
-// 还要导出辅助函数
-export { test } from "./Calculator";
diff --git a/src/Test.ts b/src/Test.ts
deleted file mode 100644
index b959702..0000000
--- a/src/Test.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-/// <reference path="Validation.ts">
-/// <reference path="LettersOnlyValidator.ts">
-/// <reference path="ZipCodeValidator.ts">
-
-// 一些尝试样本
-let strings = ["Hello", "98052", "101"];
-
-// 要使用的验证器
-let validators: { [s: string]: Validation.StringValidator; } = {};
-
-validators["ZIP code"] = new Validation.ZipCodeValidator();
-validators["Letters only"] = new Validation.LettersOnlyValidator();
-
-
-// 展示各个字符串是否通过各个验证器验证
-for (let s of strings) {
-    for (let name in validators) {
-        let isMatch = validators[name].isAcceptable(s);
-        console.log(`"${ s }" ${ isMatch ? "matches" : "does not match" } "${ name }".`);
-    }
-}
diff --git a/src/TestCalculator.ts b/src/TestCalculator.ts
deleted file mode 100644
index fa16560..0000000
--- a/src/TestCalculator.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { Calculator, test } from "./Calculator";
-
-let c = new Calculator;
-test(c, "1+2*33/11-3=");
diff --git a/src/TestProgrammerCalculator.ts b/src/TestProgrammerCalculator.ts
deleted file mode 100644
index 6d7f6b6..0000000
--- a/src/TestProgrammerCalculator.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { Calculator, test } from "./ProgrammerCalculator";
-
-let c = new Calculator(16);
-test(c, "001+0A0=");
diff --git a/src/Validation.ts b/src/Validation.ts
deleted file mode 100644
index 8e174de..0000000
--- a/src/Validation.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-namespace Validation {
-    export interface StringValidator {
-        isAcceptable (s: string): boolean;
-    }
-}
diff --git a/src/ZipCodeValidator.ts b/src/ZipCodeValidator.ts
deleted file mode 100644
index e4e8d4e..0000000
--- a/src/ZipCodeValidator.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-
-/// <reference path="Validation.ts">
-namespace Validation {
-    const numberRegexp = /^[0-9]+$/;
-
-    export class ZipCodeValidator implements StringValidator {
-        isAcceptable(s: string) {
-            return s.length === 5 && numberRegexp.test(s);
-        }
-    }
-}
diff --git a/src/declaration_merging.js b/src/declaration_merging.js
deleted file mode 100644
index 3c08fd4..0000000
--- a/src/declaration_merging.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function buildLabel(name) {
-    return buildLabel.prefix + name + buildLabel.suffix;
-}
-(function (buildLabel) {
-    buildLabel.suffix = "";
-    buildLabel.prefix = "Hello, ";
-})(buildLabel || (buildLabel = {}));
-console.log(buildLabel("Sam Smith"));
diff --git a/src/declaration_merging.ts b/src/declaration_merging.ts
deleted file mode 100644
index e504136..0000000
--- a/src/declaration_merging.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-function buildLabel(name: string): string {
-    return buildLabel.prefix + name + buildLabel.suffix;
-}
-
-namespace buildLabel {
-    export let suffix = "";
-    export let prefix = "Hello, ";
-}
-
-console.log(buildLabel("Sam Smith"));
diff --git a/src/greet.js b/src/greet.js
deleted file mode 100644
index a9297d2..0000000
--- a/src/greet.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-exports.__esModule = true;
-function sayHello(name) {
-    return "Hello from " + name;
-}
-exports.sayHello = sayHello;
diff --git a/src/greet.ts b/src/greet.ts
deleted file mode 100644
index 49b34fe..0000000
--- a/src/greet.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export function sayHello(name: string) {
-
-    return `Hello from ${name}`;
-
-}
diff --git a/src/index.html b/src/index.html
deleted file mode 100644
index 86a41d6..0000000
--- a/src/index.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE html>
-<html>
-    <head>
-        <meta charset="UTF-8" />
-        <title>测试...</title>
-    </head>
-    <body>
-        <h3 id="greeting">Loading...</h3>
-    </body>
-
-    <script src="./bundle.js"></script>
-</html>
-
diff --git a/src/main.ts b/src/main.ts
index 92d901c..d0da1fa 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -1,21 +1,20 @@
-'use strict';
-
-import { StringValidator } from "./Validation";
-import { ZipCodeValidator } from "./ZipCodeValidator";
-import { LettersOnlyValidator } from "./LettersOnlyValidator";
-
-// 一些测试样本
-let strings = ["Hello", "98052", "101"];
-
-// 要用到的验证器
-let validators: { [s: string]: StringValidator; } = {};
-
-validators["ZIP code"] = new ZipCodeValidator();
-validators["Letters only"] = new LettersOnlyValidator();
-
-// 演示各个字符串是否通过各个验证器验证
-strings.forEach(s => {
-    for (let name in validators) {
-        console.log(`"${ s }" - ${ validators[name].isAcceptable(s) ? "matches": "does not match" } ${ name }`);
+class Point {
+    private _x: number;
+    private _y: number;
+    constructor(x: number, y: number) {
+        this._x = x;
+        this._y = y;
     }
-});
+
+    @configurable(false)
+    get x() { return this._x; }
+
+    @configurable(false)
+    get y() { return this._y; }
+}
+
+function configurable(value: boolean) {
+    return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {
+        descriptor.configurable = value;
+    };
+}
diff --git a/src/namespaced.ts b/src/namespaced.ts
deleted file mode 100644
index 0d75ff7..0000000
--- a/src/namespaced.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-namespace Validation {
-    export interface StringValidator {
-        isAcceptable (s: string): boolean;
-    }
-
-    const lettersRegexp = /^[A-Za-z]+$/;
-    const numberRegexp = /^[0-9]+$/;
-
-    export class LettersOnlyValidator implements StringValidator {
-        isAcceptable (s: string) {
-            return lettersRegexp.test(s);
-        }
-    }
-
-    export class ZipCodeValidator implements StringValidator {
-        isAcceptable(s: string) {
-            return s.length === 5 && numberRegexp.test(s);
-        }
-    }
-}
-
-// 一些尝试样本
-let strings = ["Hello", "98052", "101"];
-
-
-// 要使用的验证器
-let validators: { [s: string]: Validation.StringValidator; } = {};
-
-validators["ZIP code"] = new Validation.ZipCodeValidator();
-validators["Letters only"] = new Validation.LettersOnlyValidator();
-
-
-// 展示各个字符串是否通过各个验证器验证
-for (let s of strings) {
-    for (let name in validators) {
-        let isMatch = validators[name].isAcceptable(s);
-        console.log(`"${ s }" ${ isMatch ? "matches" : "does not match" } "${ name }".`);
-    }
-}
diff --git a/src/sample.js b/src/sample.js
deleted file mode 100644
index e4282e8..0000000
--- a/src/sample.js
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-/// <reference path="Validation.ts">
-var Validation;
-(function (Validation) {
-    var lettersRegexp = /^[A-Za-z]+$/;
-    var LettersOnlyValidator = /** @class */ (function () {
-        function LettersOnlyValidator() {
-        }
-        LettersOnlyValidator.prototype.isAcceptable = function (s) {
-            return lettersRegexp.test(s);
-        };
-        return LettersOnlyValidator;
-    }());
-    Validation.LettersOnlyValidator = LettersOnlyValidator;
-})(Validation || (Validation = {}));
-/// <reference path="Validation.ts">
-var Validation;
-(function (Validation) {
-    var numberRegexp = /^[0-9]+$/;
-    var ZipCodeValidator = /** @class */ (function () {
-        function ZipCodeValidator() {
-        }
-        ZipCodeValidator.prototype.isAcceptable = function (s) {
-            return s.length === 5 && numberRegexp.test(s);
-        };
-        return ZipCodeValidator;
-    }());
-    Validation.ZipCodeValidator = ZipCodeValidator;
-})(Validation || (Validation = {}));
-/// <reference path="Validation.ts">
-/// <reference path="LettersOnlyValidator.ts">
-/// <reference path="ZipCodeValidator.ts">
-// 一些尝试样本
-var strings = ["Hello", "98052", "101"];
-// 要使用的验证器
-var validators = {};
-validators["ZIP code"] = new Validation.ZipCodeValidator();
-validators["Letters only"] = new Validation.LettersOnlyValidator();
-// 展示各个字符串是否通过各个验证器验证
-for (var _i = 0, strings_1 = strings; _i < strings_1.length; _i++) {
-    var s = strings_1[_i];
-    for (var name_1 in validators) {
-        var isMatch = validators[name_1].isAcceptable(s);
-        console.log("\"" + s + "\" " + (isMatch ? "matches" : "does not match") + " \"" + name_1 + "\".");
-    }
-}
diff --git a/src/singleFile.ts b/src/singleFile.ts
deleted file mode 100644
index 561931a..0000000
--- a/src/singleFile.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-interface StringValidator {
-    isAcceptable (s: string): boolean;
-}
-
-let lettersRegexp = /^[A-Za-z]+$/;
-let numberRegexp = /^[0-9]+$/;
-
-class LettersOnlyValidator implements StringValidator {
-    isAcceptable (s: string) {
-        return lettersRegexp.test(s);
-    }
-}
-
-class ZipCodeValidator implements StringValidator {
-    isAcceptable(s: string) {
-        return s.length === 5 && numberRegexp.test(s);
-    }
-}
-
-// 一些尝试样本
-let strings = ["Hello", "98052", "101"];
-
-
-// 要使用的验证器
-let validators: { [s: string]: StringValidator; } = {};
-
-validators["ZIP code"] = new ZipCodeValidator();
-validators["Letters only"] = new LettersOnlyValidator();
-
-
-// 展示各个字符串是否通过各个验证器验证
-for (let s of strings) {
-    for (let name in validators) {
-        let isMatch = validators[name].isAcceptable(s);
-        console.log(`"${ s }" ${ isMatch ? "matches" : "does not match" } "${ name }".`);
-    }
-}
diff --git a/tsconfig.json b/tsconfig.json
index 97fc3a7..33918d4 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -5,6 +5,7 @@
     "compilerOptions": {
         "noImplicitAny": true,
         "target": "es5",
-        "outDir": "dist/"
+        "outDir": "dist/",
+        "experimentalDecorators": true
     }
 }