From 00d5693c72b9d5fd153ed4a5a44e09bad3e0f36e Mon Sep 17 00:00:00 2001 From: aniket sharma Date: Sun, 7 Oct 2018 13:53:47 +0530 Subject: [PATCH] Revert "Added Fibonacci Program in Main" --- ><>/hello_world.fish | 2 + ACPI/HelloWorld.aml | 8 + Ada/hello.adb | 11 + Algol/helloworld.alg | 1 + AmazonAlexa/References.txt | 11 + AmazonAlexa/index.js | 104 + AmazonAlexa/package.json | 15 + Angular/.angular-cli.json | 60 + Angular/.editorconfig | 13 + Angular/.gitignore | 44 + Angular/README.md | 27 + Angular/e2e/app.e2e-spec.ts | 14 + Angular/e2e/app.po.ts | 11 + Angular/e2e/tsconfig.e2e.json | 14 + Angular/karma.conf.js | 33 + Angular/package-lock.json | 12698 ++++++++++++++++ Angular/package.json | 48 + Angular/protractor.conf.js | 28 + Angular/src/app/app.component.css | 0 Angular/src/app/app.component.html | 15 + Angular/src/app/app.component.spec.ts | 27 + Angular/src/app/app.component.ts | 24 + Angular/src/app/app.module.ts | 20 + Angular/src/assets/.gitkeep | 0 Angular/src/environments/environment.prod.ts | 3 + Angular/src/environments/environment.ts | 8 + Angular/src/favicon.ico | Bin 0 -> 5430 bytes Angular/src/index.html | 14 + Angular/src/main.ts | 12 + Angular/src/polyfills.ts | 79 + Angular/src/styles.css | 1 + Angular/src/test.ts | 20 + Angular/src/tsconfig.app.json | 13 + Angular/src/tsconfig.spec.json | 19 + Angular/src/typings.d.ts | 5 + Angular/tsconfig.json | 19 + Angular/tslint.json | 143 + AngularJS/app.js | 5 + AngularJS/index.html | 14 + Apex/HelloWorld.cls | 7 + Arduino/Arduino.ino | 64 + Arduino/Digispark.HelloWorld.ino | 26 + Arduino/LCD_Base_bb_Schem.png | Bin 0 -> 50374 bytes Argh/Hello World.txt | 3 + ArnoldC/hello.arnoldc | 3 + Assembly/helloworld.asm | 11 + Assembly/helloworld_arm.S | 17 + Autohotkey/ahk.ahk | 1 + Ballerina/hello_world.bal | 23 + Bash/example.sh | 7 + Bash/find.sh | 5 + Bash/hello.sh | 3 + Bash/while.sh | 12 + Basic/Hello World | 9 + Brainfuck/HelloWorld.bf | 1 + Brainfuck/SquareNumbers.bf | 5 + Brainfuck/SumOf2Int.bf | 1 + Brainfuck/digix.bf | 1 + Brainfuck/multiply.bf | 1 + Brainfuck/replicando.bf | 1 + C#/AcendingSort.c | 50 + C#/HelloWorldC#.cs | 13 + C#/hello.cs | 15 + C#/helloworld.cs | 13 + C#/helloworld_id.cs | 19 + C#/helloworld_in_id.cs | 19 + C++/Armstrong.cpp | 25 + C++/Ascending order.cpp | 20 + C++/Ashutosh.cpp | 6 + C++/BuyingATVSet.cpp | 30 + C++/DELETE.cpp | 31 + C++/Factorial.cpp | 33 + C++/Hello World AJ.txt | 5 + C++/HelloOpenSource.cpp | 8 + C++/HelloWorld | 2 + C++/HelloWorldGraphics.cpp | 92 + C++/MCM.cpp | 26 + C++/NumPyramid.cpp | 40 + C++/PRACQUE.CPP | 102 + C++/PRACST.CPP | 90 + C++/Palidrome.cpp | 26 + C++/QuickSort.cpp | 45 + C++/Reverse a string.cpp | 28 + C++/SegTree.cpp | 157 + C++/SelectionSort.cpp | 43 + C++/Shubham code.cpp | 8 + C++/SkewHeap.cpp | 49 + C++/Sum in array.cpp | 15 + C++/Username.cpp | 7 + C++/ValeuFalou.cpp | 8 + C++/Xor.cpp | 14 + C++/add2nos.cpp | 11 + C++/amankumarsoni.cpp | 7 + C++/antz.cpp | 6 + C++/bfs.cpp | 49 + C++/bubbleSort.cpp | 33 + C++/convexHull.cpp | 41 + C++/crossWord.cpp | 293 + C++/dfs.cpp | 48 + C++/diamond.cpp | 31 + C++/dijkstra | 42 + C++/evenfibonacci.cpp | 28 + C++/factorial.cpp | 19 + C++/floyd.cpp | 22 + C++/gcd.cpp | 23 + C++/hello world.cpp | 15 + C++/hello-hacktoberfest.cpp | 5 + C++/hello-world.cpp | 8 + C++/hello.cpp | 8 + C++/helloWorld.cpp | 7 + C++/hello_world.cpp | 7 + C++/helloword_id.cpp | 8 + C++/helloword_in_id.cpp | 8 + C++/helloworld_c++.cpp | 8 + C++/insertion.cpp | 32 + C++/islands.cpp | 71 + C++/main.cpp | 34 + C++/manav.cpp | 9 + C++/merge_sort(top-down-recursvive).cpp | 65 + C++/my_hello_world.cpp | 7 + C++/occurrence of a number.cpp | 21 + C++/pascal.cpp | 35 + C++/patriciacorhid.cpp | 6 + C++/shellSort.cpp | 34 + C++/shubham.cpp | 8 + C++/sieve.cpp | 27 + C++/star.cpp | 33 + C++/strange_sumB.cpp | 20 + C++/tic.cpp | 152 + C++/triangle.cpp | 26 + C++/vipassna.cpp | 6 + C/.DS_Store | Bin 0 -> 6148 bytes C/ABCDE reverse pyramid.c | 28 + C/AcendingSort.c | 50 + C/Chocolate Distribution Problem | 73 + C/HelloWorld.cpp | 8 + C/Recursive_insertion_sort.c | 33 + C/RenFraser.c | 12 + C/SpiderGame.c | 275 + C/Superari15.c | 6 + C/add2num.c | 15 + C/akshatkaush/helloworld.c | 6 + C/antz.c | 16 + C/array.c | 30 + C/arrayeven.c | 29 + C/arrayinsert.c | 22 + C/arraysum.c | 23 + C/binary_sort.c | 81 + C/compoprimeseries.c | 87 + C/concateprime.c | 33 + C/conseprime.c | 86 + C/cpu_waster.c | 14 + C/dharmesh.c | 8 + C/empsal.c | 20 + C/fabonacci.c | 29 + C/factorial.c | 23 + C/factors.c | 22 + C/fest.c | 9 + C/helllllooo | 6 + C/hello | 7 + C/hello .c | 6 + C/hello-world-3 | 12 + C/hellodunia.c | 7 + C/helloworld.c | 10 + C/helloworld_.c | 6 + C/implementation in C.c | 7 + C/index.c | 8 + C/innovative.c | 6 + C/integerexpression1.c | 56 + C/kuchbhi.c | 6 + C/manav.c | 7 + C/matrixaddtwo.c | 55 + C/meghana_hello_world.c | 7 + C/neonno.c | 47 + C/palindrome.c | 36 + C/pattern2.c | 29 + C/positivecheck.c | 24 + C/prime.c | 20 + C/primecheck.c | 29 + C/reversevalue.c | 20 + C/sample1.c | 6 + C/series1.c | 23 + C/series2.c | 27 + C/string1.c | 40 + C/sumprodigits.c | 23 + C/swap.c | 18 + C/table2while.c | 16 + C/towerhenoi.c | 25 + C/union.c | 21 + C/vipassna.c | 7 + C/vovelconsocheck.c | 19 + C/weekdayswitch.c | 25 + C/zombie.c | 25 + COBOL/hello.cob | 7 + CSS/app.css | 10 + CSS/calculator.css | 72 + CSS/css.css | 8 + CSS/index.html | 64 + Calculatrice/bin/calcul/calcuul$1.class | Bin 0 -> 714 bytes Calculatrice/bin/calcul/calcuul$10.class | Bin 0 -> 716 bytes Calculatrice/bin/calcul/calcuul$11.class | Bin 0 -> 717 bytes Calculatrice/bin/calcul/calcuul$12.class | Bin 0 -> 717 bytes Calculatrice/bin/calcul/calcuul$13.class | Bin 0 -> 717 bytes Calculatrice/bin/calcul/calcuul$14.class | Bin 0 -> 717 bytes Calculatrice/bin/calcul/calcuul$15.class | Bin 0 -> 717 bytes Calculatrice/bin/calcul/calcuul$16.class | Bin 0 -> 717 bytes Calculatrice/bin/calcul/calcuul$17.class | Bin 0 -> 717 bytes Calculatrice/bin/calcul/calcuul$18.class | Bin 0 -> 521 bytes Calculatrice/bin/calcul/calcuul$2.class | Bin 0 -> 714 bytes Calculatrice/bin/calcul/calcuul$3.class | Bin 0 -> 714 bytes Calculatrice/bin/calcul/calcuul$4.class | Bin 0 -> 714 bytes Calculatrice/bin/calcul/calcuul$5.class | Bin 0 -> 714 bytes Calculatrice/bin/calcul/calcuul$6.class | Bin 0 -> 714 bytes Calculatrice/bin/calcul/calcuul$7.class | Bin 0 -> 714 bytes Calculatrice/bin/calcul/calcuul$8.class | Bin 0 -> 714 bytes Calculatrice/bin/calcul/calcuul$9.class | Bin 0 -> 714 bytes Calculatrice/bin/calcul/calcuul.class | Bin 0 -> 12253 bytes Calculatrice/src/calcul/calcuul.java | 452 + Clojure/hello.clj | 3 + CoffeeScript/HelloWorld.coffee | 1 + Crystal/hello_world.cr | 5 + D/HelloWorld.d | 5 + Dart/HelloWorld.dart | 4 + Dart/HelloWorlddart.dart | 3 + Delphi/HelloWorld.txt | 11 + ELM.zip | Bin 0 -> 531 bytes Elixir/HelloWorld.ex | 1 + Elm/hello.elm | 6 + Erlang/helloworld.erl | 4 + F#/Program.fs | 8 + F/HelloWorld.fs | 7 + Fetlang/hello.fet | 1 + Fortan/helloworld.f | 3 + Golang/add_2_num.go | 24 + Golang/antz.go | 7 + Golang/httpexample.go | 21 + Golang/main.go | 7 + GolfScript/helloworld.gs | 1 + Gradle/build.gradle | 5 + Groovy/Main.groovy | 1 + Haskell/hello-world.hs | 5 + Haskell/hello.hs | 1 + Haxe/HelloWorld.hx | 5 + Haxe/OpenFL/HelloWorld.hxproj | 54 + Haxe/OpenFL/assets/openfl.svg | 593 + Haxe/OpenFL/project.xml | 24 + Haxe/OpenFL/src/Main.hx | 20 + Hello-world | 1 + Html/Form | 12 + Html/Hello Big Font.html | 11 + Html/HelloWorld.html | 16 + Html/HelloWorldInID.html | 11 + Html/HelloWorld_marquee.html | 18 + Html/Hellooftheworld.html | 12 + Html/Helloworldjm.html | 8 + Html/Introduction.html | 24 + Html/Superari15.html | 7 + Html/TIC-TAC-TOE.html | 384 + Html/dialog.html | 19 + Html/footer.html | 11 + Html/hacktober.html | 34 + Html/hello.html | 8 + Html/helloworld.html | 13 + Html/helloworldTaiwan.html | 10 + Html/helloworldindex.html | 10 + Html/helloworldnm.html | 9 + Html/html-css.html | 9 + Html/index.html | 9 + Html/js.html | 62 + Html/manav.html | 19 + Html/simpleHelloWorld.html | 14 + Html/styles.css | 15 + Html/vipassna.js | 34 + IO/hello.io | 1 + Java/BalancedBrackets | 33 + Java/BinarySearch.java | 54 + Java/BubbleSort.java | 50 + Java/Cloneeskimo.java | 5 + Java/ConditionalOperator.java | 18 + Java/DefinitelyNotAHelloWorld.java | 10 + Java/Demo.java | 6 + Java/FibonacciStream.java | 22 + Java/GithubHandle.java | 6 + Java/Hello.java | 6 + Java/HelloCC9.java | 7 + Java/HelloOpenSource.java | 6 + Java/HelloWorld.java | 6 + Java/HelloWorld/bin/HelloWorld.class | Bin 0 -> 534 bytes Java/HelloWorld/src/HelloWorld.java | 11 + Java/HelloWorldHF.java | 7 + Java/HelloWorldInID.java | 5 + Java/HelloWorldSk.java | 5 + Java/HollowDiamondPattern.java | 63 + Java/LeapYear.java | 19 + Java/LongestIncreasingSubsequence.java | 44 + Java/Lopamudra.java | 9 + Java/MagicSquare.java | 38 + Java/MyOperators.java | 61 + Java/PascalTriangle.java | 42 + Java/PresentedBy.java | 17 + Java/Prime.java | 34 + Java/PrimeCheck.java | 24 + Java/QuickFindUF.java | 23 + Java/QuickUnionUF.java | 34 + Java/SaiTeja.java | 6 + Java/ScannerClass.java | 48 + Java/Selectionsort.java | 30 + Java/SimplePyramid.java | 15 + Java/Superari15.java | 8 + Java/Traversematrix.java | 72 + Java/TwoDimensionalArray.java | 26 + Java/ValidaCPF.java | 78 + Java/abstract.java | 5 + Java/amanhello.java | 6 + Java/binarytodecimal.java | 23 + Java/boxunbox.java | 16 + Java/const_chaining.java | 37 + Java/factorial.java | 15 + Java/fibonacci.java | 34 + Java/hello_hello.java | 5 + Java/helloworldjai.java | 7 + Java/initblock.java | 36 + Java/insertion_sort.java | 24 + Java/linkedList.java | 40 + Java/mergesort.java | 100 + Java/minASCIIdelSum.java | 24 + Java/myGithubHandle.java | 6 + Java/myGithubUsername.java | 8 + Java/rockycamacho.java | 6 + Java/staticInitializer.java | 9 + Java/superkey.java | 33 + Java/vipassna.java | 18 + Java/zeustopher.java | 5 + Javascript/Background_generator/index.html | 17 + Javascript/Background_generator/script.js | 13 + Javascript/Background_generator/style.css | 27 + Javascript/Refresh_Page_Automatically.html | 19 + .../Rock Paper Scissors/Images/paper.png | Bin 0 -> 6431 bytes .../Rock Paper Scissors/Images/rock.png | Bin 0 -> 6460 bytes .../Rock Paper Scissors/Images/scissors.png | Bin 0 -> 6577 bytes Javascript/Rock Paper Scissors/css/style.css | 60 + Javascript/Rock Paper Scissors/index.html | 116 + Javascript/Superari15.js | 1 + Javascript/andretimm.js | 7 + Javascript/carlacentenor.js | 1 + Javascript/console.js | 1 + Javascript/factorial.js | 23 + Javascript/fibonacci.js | 10 + Javascript/hello.js | 15 + Javascript/hello_world/index.html | 12 + Javascript/hello_world/index.js | 3 + Javascript/hellofox.js | 1 + Javascript/hellofriend.js | 1 + Javascript/helloworld-in-id.js | 13 + Javascript/helloworld.js | 1 + Javascript/hercegtomas.js | 1 + Javascript/hola.js | 1 + Javascript/index.js | 1 + Javascript/index1.html | 13 + Javascript/index2.html | 11 + Javascript/index3.html | 12 + Javascript/jamieshark.js | 1 + Javascript/javascript-arr.js | 2 + Javascript/jofftiquez.js | 1 + Javascript/johnm.js | 1 + Javascript/jperez.js | 3 + Javascript/jsgame.html | 146 + Javascript/jsmurf.js | 1 + Javascript/ljeremy.js | 1 + Javascript/myfirstjs.js | 1 + Javascript/namaste.html | 29 + Javascript/receive_udp.js | 20 + Javascript/repeat.js | 65 + Javascript/rockycamacho.js | 1 + Javascript/scorekeeper.js | 57 + Javascript/server.js | 1 + Javascript/shubhamcoder97.js | 1 + Josephus.cpp | 9 + Julia/hello.jl | 1 + Julia/hello_world.jl | 1 + Kotlin/main.kt | 5 + Kotlin/manav.kt | 7 + Kotlin/pyramid.kt | 57 + Kotlin/rockycamacho.kt | 5 + Kotlin/user.kt | 9 + LICENSE | 21 + LOLCODE/HaiWorld.lolcode | 4 + LaTeX/.Rhistory | 0 LaTeX/LaTeX.tex | 4 + Lisp/hello-world.lisp | 1 + Logo/HelloWorld.logo | 55 + Logo/Screen Shot 2018-08-01 at 2.14.43 PM.png | Bin 0 -> 159221 bytes Lopa.java | 9 + Lua/HelloWorld.lua | 1 + Lua/homing_missile.lua | 96 + MATLAB/cmpsimp.m | 7 + MATLAB/hello.m | 1 + MIPS/hello_world.asm | 12 + Malbolge/HelloWorld.mal | 2 + Markdown/git_progress.md | 8 + Markdown/helloworld.md | 5 + NIM/hello_world.nim | 3 + NodeJs/README.md | 3 + NodeJs/app.js | 10 + NodeJs/helloworld.js | 8 + NodeJs/index.js | 2 + NodeJs/name.js | 4 + NodeJs/package.json | 13 + NodeJs/zmq.js | 12 + Objective C/hello_world.m | 9 + Ocaml/hello.ml | 3 + Ook/helloWorld.txt | 18 + PHP/Add.php | 16 + PHP/Diff.php | 16 + PHP/HelloPhp.php | 8 + PHP/HelloWorld.php | 13 + PHP/HelloWorldInID.php | 11 + PHP/HelloWorld_IT | 13 + PHP/OOP/HelloWorldOOP.php | 22 + PHP/OOP/index.php | 6 + PHP/hellophpid.php | 11 + PHP/helloworld.php | 13 + PHP/helloworld_wfebriadi.php | 7 + PHP/phpinfo.php | 6 + PHP/rockycamacho.php | 1 + PHP/time_now | 7 + PULL_REQUEST_TEMPLATE.md | 5 + Pascal/hello-world.pp | 6 + Pascal/pascal.pas | 6 + Perl/helloWorld | 10 + Perl/helloworld.pl | 6 + Pharo/pharo.st | 1 + PowerShell/HelloWorld-by-AT.ps1 | 24 + PowerShell/HelloWorld.ps1 | 23 + Prolog/prolog.pl | 1 + PureBasic/helloworld.pb | 7 + Purescript/.gitignore | 9 + Purescript/bower.json | 17 + Purescript/src/Main.purs | 16 + Purescript/test/Main.purs | 9 + Python/AI.py | 65 + Python/Average_for_3test.py | 12 + Python/Benches.py | 15 + Python/BubbleSort.py | 37 + Python/CaesarCipherInline.py | 5 + Python/Counting the Number words.py | 12 + Python/Counting the occurence of each word.py | 11 + Python/DesicionTree.py | 113 + Python/Fibonacci.py | 8 + Python/Hello World using espeak.py | 3 + Python/Hello-World.py | 1 + Python/HiWorld.py | 2 + Python/Hola Mundo | 1 + Python/LinkedList.py | 105 + Python/Stack | 119 + Python/Superari15.py | 1 + Python/Tree.py | 122 + Python/Zombie game.py | 118 + Python/add.py | 4 + Python/add2nos.py | 4 + Python/add_mult_polynomial.py | 76 + Python/aniket965.py | 2 + Python/armstrong_number.py | 15 + Python/average_grades_finder.py | 140 + Python/balanced-brackets.py | 21 + Python/bracket_finder.py | 23 + Python/calculator | 102 + Python/calculator-asmd.py | 43 + Python/decimal_to_base.py | 27 + Python/decisiontree | 1 + Python/dijkstra's_algorithm.py | 76 + Python/email_regex.py | 6 + Python/factorial.py | 6 + Python/fibonacci_with_cache.py | 8 + Python/floyd_warshall.py | 79 + Python/for_pattern.py | 4 + Python/funny_Hello.py | 7 + Python/geometric-cube-dimensions.py | 49 + Python/gitlherme-hello-world.py | 1 + Python/greatest_common_divisor.py | 9 + Python/guess.py | 23 + Python/helenk.py | 6 + Python/hello-numbers.py | 4 + Python/hello.py | 1 + Python/hello_world.ipynb | 42 + Python/hello_world.py | 3 + Python/hello_world_pt-br.py | 55 + Python/hello_world_ronlek.py | 2 + Python/helloworld.py | 1 + Python/helloworld_in_id.py | 1 + Python/helloworld_indonesia.py | 1 + Python/longest_substring.py | 36 + Python/manav.py | 6 + Python/nc-responder.py | 42 + Python/number_guessing.py | 33 + Python/quick_sort.py | 32 + Python/rockpaperscissors.py | 83 + Python/rockycamacho.py | 1 + Python/rsa.py | 106 + Python/separating_letters.py | 3 + Python/shell_sort.py | 35 + Python/sum_prime.py | 23 + Python/validar_cpf.py | 75 + Python/vipassna.py | 4 + QuakeC/hello.qc | 1 + QuickBASIC/HelloWorld.bas | 3 + R/Hello-in-R.r | 3 + R/HelloWorld | 4 + R/HelloWorld.R | 1 + R/HelloWorldPrintPaste.r | 6 + README.md | 38 + Racket/helloworld.rkt | 2 + React-Native/helloWorld/.babelrc | 3 + React-Native/helloWorld/.buckconfig | 6 + React-Native/helloWorld/.flowconfig | 70 + React-Native/helloWorld/.gitattributes | 1 + React-Native/helloWorld/.gitignore | 56 + React-Native/helloWorld/.watchmanconfig | 1 + React-Native/helloWorld/App.js | 47 + React-Native/helloWorld/android/app/BUCK | 65 + .../helloWorld/android/app/build.gradle | 150 + .../helloWorld/android/app/proguard-rules.pro | 17 + .../android/app/src/main/AndroidManifest.xml | 26 + .../java/com/helloworld/MainActivity.java | 15 + .../java/com/helloworld/MainApplication.java | 45 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3056 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 5024 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2096 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2858 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4569 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 7098 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6464 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 10676 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 9250 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 15523 bytes .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/styles.xml | 8 + React-Native/helloWorld/android/build.gradle | 39 + .../helloWorld/android/gradle.properties | 18 + .../android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54329 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 + React-Native/helloWorld/android/gradlew | 172 + React-Native/helloWorld/android/gradlew.bat | 84 + .../helloWorld/android/keystores/BUCK | 8 + .../keystores/debug.keystore.properties | 4 + .../helloWorld/android/settings.gradle | 3 + React-Native/helloWorld/app.json | 4 + React-Native/helloWorld/index.js | 7 + .../helloWorld/ios/helloWorld-tvOS/Info.plist | 54 + .../ios/helloWorld-tvOSTests/Info.plist | 24 + .../ios/helloWorld.xcodeproj/project.pbxproj | 1494 ++ .../xcschemes/helloWorld-tvOS.xcscheme | 129 + .../xcschemes/helloWorld.xcscheme | 129 + .../helloWorld/ios/helloWorld/AppDelegate.h | 14 + .../helloWorld/ios/helloWorld/AppDelegate.m | 35 + .../helloWorld/Base.lproj/LaunchScreen.xib | 42 + .../AppIcon.appiconset/Contents.json | 38 + .../helloWorld/Images.xcassets/Contents.json | 6 + .../helloWorld/ios/helloWorld/Info.plist | 60 + React-Native/helloWorld/ios/helloWorld/main.m | 16 + .../helloWorld/ios/helloWorldTests/Info.plist | 24 + .../ios/helloWorldTests/helloWorldTests.m | 68 + React-Native/helloWorld/package.json | 22 + React-Native/helloWorld/yarn.lock | 6084 ++++++++ Reactjs/.gitignore | 21 + Reactjs/README.md | 2510 +++ Reactjs/package.json | 25 + Reactjs/public/favicon.ico | Bin 0 -> 3870 bytes Reactjs/public/index.html | 40 + Reactjs/public/manifest.json | 15 + Reactjs/src/App.css | 47 + Reactjs/src/App.js | 49 + Reactjs/src/App.test.js | 9 + Reactjs/src/images/pumpkin-brown.png | Bin 0 -> 8137 bytes Reactjs/src/images/pumpkin-orange.png | Bin 0 -> 8137 bytes Reactjs/src/index.css | 17 + Reactjs/src/index.js | 12 + Reactjs/src/logo.svg | 7 + Reactjs/src/serviceWorker.js | 127 + Reactjs/yarn.lock | 9804 ++++++++++++ RubberDucky/helloworld.duckos | 9 + Ruby/bubble-sort.rb | 18 + Ruby/develop-build.rb | 1 + Ruby/helloworld.rb | 1 + Ruby/input.rb | 3 + Ruby/merge-sort.rb | 50 + Ruby/patriciacorhid.rb | 1 + Ruby/prime-number.rb | 24 + Ruby/ruby-shark.rb | 6 + Rust/hello.rs | 3 + Rust/hello_world.rs | 4 + SQL/HelloWorld.SQL | 7 + SQL/select_from.sql | 1 + SageMath/helloworld.sage | 1 + Sas/hello.sas | 3 + Scala/HelloWorld.scala | 8 + Scheme/hello.scm | 3 + Shell Script/hello_arg.sh | 9 + Shell Script/helloworld.sh | 2 + Shell Script/palindrome.sh | 26 + Solidity/addition.sol | 12 + Solidity/hello_world.sol | 7 + Swift/Hello Objective C | 7 + Swift/hello.swift | 2 + Tcl/.DS_Store | Bin 0 -> 6148 bytes Tcl/hello.tcl | 4 + Tk/hello.tcl | 3 + Typescript/HelloWorld.ts | 5 + Typescript/hello-world-again.ts | 3 + Typescript/hello-world.ts | 5 + Typescript/hello_world.ts | 3 + UnrealScript/hello.uc | 11 + VBScript/HelloWorld.vbs | 1 + Verilog/hello.v | 8 + Vim/hello-world.vim | 1 + Vim/useful-vimrc-file.vim | 42 + Visual Jpp/Hello World | 1 + VisualJ++/Visual J++ | 1 + VueJS/index.html | 14 + VueJS/index.js | 6 + Whitespace/Hello World.txt | 25 + Whitespace/hello-world.ws | 34 + Wolfram/wolfram.wl | 1 + WolframScript/hello.wls | 2 + X++/hello.xpp | 11 + XML/helloworld.xml | 4 + XPL/xpl0 | 5 + YAML/hello.yml | 8 + ZPL/hello.zpl | 2 + Zephir/hello.zep | 4 + _config.yml | 1 + awk/hello_world.awk | 2 + cointoss.py | 30 + main/factorial/Factorial.cs | 18 - main/factorial/FactorialExample.java | 18 - main/factorial/Factorial_Num.py | 19 - main/factorial/Factorial_Recursive.java | 17 - main/factorial/extra_long_factorial.go | 15 - main/factorial/factCPP.cpp | 13 - main/factorial/facto.py | 5 - main/factorial/facto_rial.py | 5 - main/factorial/factoo.py | 7 - main/factorial/factorial.R | 8 - main/factorial/factorial.c | 15 - main/factorial/factorial.cpp | 24 - main/factorial/factorial.ex | 4 - main/factorial/factorial.hs | 4 - main/factorial/factorial.js | 16 - main/factorial/factorial.ml | 2 - main/factorial/factorial.py | 19 - main/factorial/factorial.rb | 3 - main/factorial/factorial_iterative.cpp | 19 - main/factorial/factorial_lambda.py | 3 - main/factorial/factorialrecursion.cpp | 20 - main/factorial/factrecursion.c | 23 - proj/.DS_Store | Bin 0 -> 6148 bytes proj/discover-bg.jpg | Bin 0 -> 165420 bytes proj/email.html | 169 + proj/email.jsp | 178 + proj/email1.jsp | 196 + proj/grid.html | 126 + proj/grid.jsp | 154 + proj/grid1.html | 101 + proj/grid1.jsp | 109 + proj/index-4.html | 714 + proj/index.html | 194 + proj/wronguser.html | 7 + spicyninja | 11 + typescript/hello.ts | 20 + wml/index.wml | 8 + yo-lang/yo!lang.yo | 1 + 671 files changed, 49236 insertions(+), 277 deletions(-) create mode 100644 ><>/hello_world.fish create mode 100644 ACPI/HelloWorld.aml create mode 100644 Ada/hello.adb create mode 100644 Algol/helloworld.alg create mode 100644 AmazonAlexa/References.txt create mode 100644 AmazonAlexa/index.js create mode 100644 AmazonAlexa/package.json create mode 100644 Angular/.angular-cli.json create mode 100644 Angular/.editorconfig create mode 100644 Angular/.gitignore create mode 100644 Angular/README.md create mode 100644 Angular/e2e/app.e2e-spec.ts create mode 100644 Angular/e2e/app.po.ts create mode 100644 Angular/e2e/tsconfig.e2e.json create mode 100644 Angular/karma.conf.js create mode 100644 Angular/package-lock.json create mode 100644 Angular/package.json create mode 100644 Angular/protractor.conf.js create mode 100644 Angular/src/app/app.component.css create mode 100644 Angular/src/app/app.component.html create mode 100644 Angular/src/app/app.component.spec.ts create mode 100644 Angular/src/app/app.component.ts create mode 100644 Angular/src/app/app.module.ts create mode 100644 Angular/src/assets/.gitkeep create mode 100644 Angular/src/environments/environment.prod.ts create mode 100644 Angular/src/environments/environment.ts create mode 100644 Angular/src/favicon.ico create mode 100644 Angular/src/index.html create mode 100644 Angular/src/main.ts create mode 100644 Angular/src/polyfills.ts create mode 100644 Angular/src/styles.css create mode 100644 Angular/src/test.ts create mode 100644 Angular/src/tsconfig.app.json create mode 100644 Angular/src/tsconfig.spec.json create mode 100644 Angular/src/typings.d.ts create mode 100644 Angular/tsconfig.json create mode 100644 Angular/tslint.json create mode 100644 AngularJS/app.js create mode 100644 AngularJS/index.html create mode 100644 Apex/HelloWorld.cls create mode 100644 Arduino/Arduino.ino create mode 100644 Arduino/Digispark.HelloWorld.ino create mode 100644 Arduino/LCD_Base_bb_Schem.png create mode 100644 Argh/Hello World.txt create mode 100644 ArnoldC/hello.arnoldc create mode 100644 Assembly/helloworld.asm create mode 100644 Assembly/helloworld_arm.S create mode 100644 Autohotkey/ahk.ahk create mode 100644 Ballerina/hello_world.bal create mode 100644 Bash/example.sh create mode 100644 Bash/find.sh create mode 100644 Bash/hello.sh create mode 100644 Bash/while.sh create mode 100644 Basic/Hello World create mode 100644 Brainfuck/HelloWorld.bf create mode 100644 Brainfuck/SquareNumbers.bf create mode 100644 Brainfuck/SumOf2Int.bf create mode 100644 Brainfuck/digix.bf create mode 100644 Brainfuck/multiply.bf create mode 100644 Brainfuck/replicando.bf create mode 100644 C#/AcendingSort.c create mode 100644 C#/HelloWorldC#.cs create mode 100644 C#/hello.cs create mode 100644 C#/helloworld.cs create mode 100644 C#/helloworld_id.cs create mode 100644 C#/helloworld_in_id.cs create mode 100644 C++/Armstrong.cpp create mode 100644 C++/Ascending order.cpp create mode 100644 C++/Ashutosh.cpp create mode 100644 C++/BuyingATVSet.cpp create mode 100644 C++/DELETE.cpp create mode 100644 C++/Factorial.cpp create mode 100644 C++/Hello World AJ.txt create mode 100644 C++/HelloOpenSource.cpp create mode 100644 C++/HelloWorld create mode 100644 C++/HelloWorldGraphics.cpp create mode 100644 C++/MCM.cpp create mode 100644 C++/NumPyramid.cpp create mode 100644 C++/PRACQUE.CPP create mode 100644 C++/PRACST.CPP create mode 100644 C++/Palidrome.cpp create mode 100644 C++/QuickSort.cpp create mode 100644 C++/Reverse a string.cpp create mode 100644 C++/SegTree.cpp create mode 100644 C++/SelectionSort.cpp create mode 100644 C++/Shubham code.cpp create mode 100644 C++/SkewHeap.cpp create mode 100644 C++/Sum in array.cpp create mode 100644 C++/Username.cpp create mode 100644 C++/ValeuFalou.cpp create mode 100644 C++/Xor.cpp create mode 100644 C++/add2nos.cpp create mode 100644 C++/amankumarsoni.cpp create mode 100644 C++/antz.cpp create mode 100644 C++/bfs.cpp create mode 100644 C++/bubbleSort.cpp create mode 100644 C++/convexHull.cpp create mode 100644 C++/crossWord.cpp create mode 100644 C++/dfs.cpp create mode 100644 C++/diamond.cpp create mode 100644 C++/dijkstra create mode 100644 C++/evenfibonacci.cpp create mode 100644 C++/factorial.cpp create mode 100644 C++/floyd.cpp create mode 100644 C++/gcd.cpp create mode 100644 C++/hello world.cpp create mode 100644 C++/hello-hacktoberfest.cpp create mode 100644 C++/hello-world.cpp create mode 100644 C++/hello.cpp create mode 100644 C++/helloWorld.cpp create mode 100644 C++/hello_world.cpp create mode 100644 C++/helloword_id.cpp create mode 100644 C++/helloword_in_id.cpp create mode 100644 C++/helloworld_c++.cpp create mode 100644 C++/insertion.cpp create mode 100644 C++/islands.cpp create mode 100644 C++/main.cpp create mode 100644 C++/manav.cpp create mode 100644 C++/merge_sort(top-down-recursvive).cpp create mode 100644 C++/my_hello_world.cpp create mode 100644 C++/occurrence of a number.cpp create mode 100644 C++/pascal.cpp create mode 100644 C++/patriciacorhid.cpp create mode 100644 C++/shellSort.cpp create mode 100644 C++/shubham.cpp create mode 100644 C++/sieve.cpp create mode 100644 C++/star.cpp create mode 100644 C++/strange_sumB.cpp create mode 100644 C++/tic.cpp create mode 100644 C++/triangle.cpp create mode 100644 C++/vipassna.cpp create mode 100644 C/.DS_Store create mode 100644 C/ABCDE reverse pyramid.c create mode 100644 C/AcendingSort.c create mode 100644 C/Chocolate Distribution Problem create mode 100644 C/HelloWorld.cpp create mode 100644 C/Recursive_insertion_sort.c create mode 100644 C/RenFraser.c create mode 100644 C/SpiderGame.c create mode 100644 C/Superari15.c create mode 100755 C/add2num.c create mode 100644 C/akshatkaush/helloworld.c create mode 100644 C/antz.c create mode 100755 C/array.c create mode 100755 C/arrayeven.c create mode 100755 C/arrayinsert.c create mode 100755 C/arraysum.c create mode 100644 C/binary_sort.c create mode 100755 C/compoprimeseries.c create mode 100755 C/concateprime.c create mode 100755 C/conseprime.c create mode 100644 C/cpu_waster.c create mode 100644 C/dharmesh.c create mode 100755 C/empsal.c create mode 100755 C/fabonacci.c create mode 100755 C/factorial.c create mode 100755 C/factors.c create mode 100644 C/fest.c create mode 100644 C/helllllooo create mode 100644 C/hello create mode 100644 C/hello .c create mode 100644 C/hello-world-3 create mode 100644 C/hellodunia.c create mode 100644 C/helloworld.c create mode 100644 C/helloworld_.c create mode 100644 C/implementation in C.c create mode 100644 C/index.c create mode 100644 C/innovative.c create mode 100755 C/integerexpression1.c create mode 100644 C/kuchbhi.c create mode 100644 C/manav.c create mode 100755 C/matrixaddtwo.c create mode 100644 C/meghana_hello_world.c create mode 100755 C/neonno.c create mode 100755 C/palindrome.c create mode 100755 C/pattern2.c create mode 100755 C/positivecheck.c create mode 100755 C/prime.c create mode 100755 C/primecheck.c create mode 100755 C/reversevalue.c create mode 100644 C/sample1.c create mode 100755 C/series1.c create mode 100755 C/series2.c create mode 100755 C/string1.c create mode 100755 C/sumprodigits.c create mode 100644 C/swap.c create mode 100755 C/table2while.c create mode 100755 C/towerhenoi.c create mode 100755 C/union.c create mode 100644 C/vipassna.c create mode 100755 C/vovelconsocheck.c create mode 100755 C/weekdayswitch.c create mode 100755 C/zombie.c create mode 100644 COBOL/hello.cob create mode 100644 CSS/app.css create mode 100644 CSS/calculator.css create mode 100644 CSS/css.css create mode 100644 CSS/index.html create mode 100644 Calculatrice/bin/calcul/calcuul$1.class create mode 100644 Calculatrice/bin/calcul/calcuul$10.class create mode 100644 Calculatrice/bin/calcul/calcuul$11.class create mode 100644 Calculatrice/bin/calcul/calcuul$12.class create mode 100644 Calculatrice/bin/calcul/calcuul$13.class create mode 100644 Calculatrice/bin/calcul/calcuul$14.class create mode 100644 Calculatrice/bin/calcul/calcuul$15.class create mode 100644 Calculatrice/bin/calcul/calcuul$16.class create mode 100644 Calculatrice/bin/calcul/calcuul$17.class create mode 100644 Calculatrice/bin/calcul/calcuul$18.class create mode 100644 Calculatrice/bin/calcul/calcuul$2.class create mode 100644 Calculatrice/bin/calcul/calcuul$3.class create mode 100644 Calculatrice/bin/calcul/calcuul$4.class create mode 100644 Calculatrice/bin/calcul/calcuul$5.class create mode 100644 Calculatrice/bin/calcul/calcuul$6.class create mode 100644 Calculatrice/bin/calcul/calcuul$7.class create mode 100644 Calculatrice/bin/calcul/calcuul$8.class create mode 100644 Calculatrice/bin/calcul/calcuul$9.class create mode 100644 Calculatrice/bin/calcul/calcuul.class create mode 100644 Calculatrice/src/calcul/calcuul.java create mode 100644 Clojure/hello.clj create mode 100644 CoffeeScript/HelloWorld.coffee create mode 100644 Crystal/hello_world.cr create mode 100644 D/HelloWorld.d create mode 100644 Dart/HelloWorld.dart create mode 100644 Dart/HelloWorlddart.dart create mode 100644 Delphi/HelloWorld.txt create mode 100644 ELM.zip create mode 100644 Elixir/HelloWorld.ex create mode 100644 Elm/hello.elm create mode 100644 Erlang/helloworld.erl create mode 100644 F#/Program.fs create mode 100644 F/HelloWorld.fs create mode 100644 Fetlang/hello.fet create mode 100644 Fortan/helloworld.f create mode 100644 Golang/add_2_num.go create mode 100644 Golang/antz.go create mode 100644 Golang/httpexample.go create mode 100644 Golang/main.go create mode 100644 GolfScript/helloworld.gs create mode 100644 Gradle/build.gradle create mode 100644 Groovy/Main.groovy create mode 100644 Haskell/hello-world.hs create mode 100644 Haskell/hello.hs create mode 100644 Haxe/HelloWorld.hx create mode 100644 Haxe/OpenFL/HelloWorld.hxproj create mode 100644 Haxe/OpenFL/assets/openfl.svg create mode 100644 Haxe/OpenFL/project.xml create mode 100644 Haxe/OpenFL/src/Main.hx create mode 160000 Hello-world create mode 100644 Html/Form create mode 100644 Html/Hello Big Font.html create mode 100644 Html/HelloWorld.html create mode 100644 Html/HelloWorldInID.html create mode 100644 Html/HelloWorld_marquee.html create mode 100644 Html/Hellooftheworld.html create mode 100644 Html/Helloworldjm.html create mode 100644 Html/Introduction.html create mode 100644 Html/Superari15.html create mode 100644 Html/TIC-TAC-TOE.html create mode 100644 Html/dialog.html create mode 100644 Html/footer.html create mode 100644 Html/hacktober.html create mode 100644 Html/hello.html create mode 100644 Html/helloworld.html create mode 100644 Html/helloworldTaiwan.html create mode 100644 Html/helloworldindex.html create mode 100644 Html/helloworldnm.html create mode 100644 Html/html-css.html create mode 100644 Html/index.html create mode 100644 Html/js.html create mode 100644 Html/manav.html create mode 100644 Html/simpleHelloWorld.html create mode 100644 Html/styles.css create mode 100644 Html/vipassna.js create mode 100644 IO/hello.io create mode 100644 Java/BalancedBrackets create mode 100644 Java/BinarySearch.java create mode 100644 Java/BubbleSort.java create mode 100644 Java/Cloneeskimo.java create mode 100755 Java/ConditionalOperator.java create mode 100644 Java/DefinitelyNotAHelloWorld.java create mode 100644 Java/Demo.java create mode 100644 Java/FibonacciStream.java create mode 100644 Java/GithubHandle.java create mode 100644 Java/Hello.java create mode 100644 Java/HelloCC9.java create mode 100644 Java/HelloOpenSource.java create mode 100644 Java/HelloWorld.java create mode 100644 Java/HelloWorld/bin/HelloWorld.class create mode 100644 Java/HelloWorld/src/HelloWorld.java create mode 100644 Java/HelloWorldHF.java create mode 100644 Java/HelloWorldInID.java create mode 100644 Java/HelloWorldSk.java create mode 100644 Java/HollowDiamondPattern.java create mode 100755 Java/LeapYear.java create mode 100644 Java/LongestIncreasingSubsequence.java create mode 100644 Java/Lopamudra.java create mode 100644 Java/MagicSquare.java create mode 100755 Java/MyOperators.java create mode 100644 Java/PascalTriangle.java create mode 100644 Java/PresentedBy.java create mode 100644 Java/Prime.java create mode 100755 Java/PrimeCheck.java create mode 100644 Java/QuickFindUF.java create mode 100644 Java/QuickUnionUF.java create mode 100644 Java/SaiTeja.java create mode 100755 Java/ScannerClass.java create mode 100644 Java/Selectionsort.java create mode 100644 Java/SimplePyramid.java create mode 100644 Java/Superari15.java create mode 100755 Java/Traversematrix.java create mode 100644 Java/TwoDimensionalArray.java create mode 100644 Java/ValidaCPF.java create mode 100644 Java/abstract.java create mode 100644 Java/amanhello.java create mode 100755 Java/binarytodecimal.java create mode 100644 Java/boxunbox.java create mode 100644 Java/const_chaining.java create mode 100644 Java/factorial.java create mode 100644 Java/fibonacci.java create mode 100644 Java/hello_hello.java create mode 100644 Java/helloworldjai.java create mode 100644 Java/initblock.java create mode 100644 Java/insertion_sort.java create mode 100644 Java/linkedList.java create mode 100644 Java/mergesort.java create mode 100644 Java/minASCIIdelSum.java create mode 100644 Java/myGithubHandle.java create mode 100644 Java/myGithubUsername.java create mode 100644 Java/rockycamacho.java create mode 100644 Java/staticInitializer.java create mode 100644 Java/superkey.java create mode 100644 Java/vipassna.java create mode 100644 Java/zeustopher.java create mode 100644 Javascript/Background_generator/index.html create mode 100644 Javascript/Background_generator/script.js create mode 100644 Javascript/Background_generator/style.css create mode 100644 Javascript/Refresh_Page_Automatically.html create mode 100644 Javascript/Rock Paper Scissors/Images/paper.png create mode 100644 Javascript/Rock Paper Scissors/Images/rock.png create mode 100644 Javascript/Rock Paper Scissors/Images/scissors.png create mode 100644 Javascript/Rock Paper Scissors/css/style.css create mode 100644 Javascript/Rock Paper Scissors/index.html create mode 100644 Javascript/Superari15.js create mode 100644 Javascript/andretimm.js create mode 100644 Javascript/carlacentenor.js create mode 100644 Javascript/console.js create mode 100644 Javascript/factorial.js create mode 100644 Javascript/fibonacci.js create mode 100644 Javascript/hello.js create mode 100644 Javascript/hello_world/index.html create mode 100644 Javascript/hello_world/index.js create mode 100644 Javascript/hellofox.js create mode 100644 Javascript/hellofriend.js create mode 100644 Javascript/helloworld-in-id.js create mode 100644 Javascript/helloworld.js create mode 100644 Javascript/hercegtomas.js create mode 100644 Javascript/hola.js create mode 100644 Javascript/index.js create mode 100644 Javascript/index1.html create mode 100644 Javascript/index2.html create mode 100644 Javascript/index3.html create mode 100644 Javascript/jamieshark.js create mode 100644 Javascript/javascript-arr.js create mode 100644 Javascript/jofftiquez.js create mode 100644 Javascript/johnm.js create mode 100644 Javascript/jperez.js create mode 100644 Javascript/jsgame.html create mode 100644 Javascript/jsmurf.js create mode 100644 Javascript/ljeremy.js create mode 100644 Javascript/myfirstjs.js create mode 100644 Javascript/namaste.html create mode 100644 Javascript/receive_udp.js create mode 100644 Javascript/repeat.js create mode 100644 Javascript/rockycamacho.js create mode 100644 Javascript/scorekeeper.js create mode 100644 Javascript/server.js create mode 100644 Javascript/shubhamcoder97.js create mode 100644 Josephus.cpp create mode 100644 Julia/hello.jl create mode 100644 Julia/hello_world.jl create mode 100644 Kotlin/main.kt create mode 100644 Kotlin/manav.kt create mode 100644 Kotlin/pyramid.kt create mode 100644 Kotlin/rockycamacho.kt create mode 100644 Kotlin/user.kt create mode 100644 LICENSE create mode 100644 LOLCODE/HaiWorld.lolcode create mode 100644 LaTeX/.Rhistory create mode 100644 LaTeX/LaTeX.tex create mode 100644 Lisp/hello-world.lisp create mode 100644 Logo/HelloWorld.logo create mode 100644 Logo/Screen Shot 2018-08-01 at 2.14.43 PM.png create mode 100644 Lopa.java create mode 100644 Lua/HelloWorld.lua create mode 100644 Lua/homing_missile.lua create mode 100644 MATLAB/cmpsimp.m create mode 100644 MATLAB/hello.m create mode 100644 MIPS/hello_world.asm create mode 100644 Malbolge/HelloWorld.mal create mode 100644 Markdown/git_progress.md create mode 100644 Markdown/helloworld.md create mode 100644 NIM/hello_world.nim create mode 100644 NodeJs/README.md create mode 100644 NodeJs/app.js create mode 100644 NodeJs/helloworld.js create mode 100644 NodeJs/index.js create mode 100644 NodeJs/name.js create mode 100644 NodeJs/package.json create mode 100755 NodeJs/zmq.js create mode 100644 Objective C/hello_world.m create mode 100644 Ocaml/hello.ml create mode 100644 Ook/helloWorld.txt create mode 100644 PHP/Add.php create mode 100644 PHP/Diff.php create mode 100644 PHP/HelloPhp.php create mode 100644 PHP/HelloWorld.php create mode 100644 PHP/HelloWorldInID.php create mode 100644 PHP/HelloWorld_IT create mode 100644 PHP/OOP/HelloWorldOOP.php create mode 100644 PHP/OOP/index.php create mode 100644 PHP/hellophpid.php create mode 100644 PHP/helloworld.php create mode 100644 PHP/helloworld_wfebriadi.php create mode 100644 PHP/phpinfo.php create mode 100644 PHP/rockycamacho.php create mode 100644 PHP/time_now create mode 100644 PULL_REQUEST_TEMPLATE.md create mode 100644 Pascal/hello-world.pp create mode 100644 Pascal/pascal.pas create mode 100644 Perl/helloWorld create mode 100644 Perl/helloworld.pl create mode 100644 Pharo/pharo.st create mode 100644 PowerShell/HelloWorld-by-AT.ps1 create mode 100644 PowerShell/HelloWorld.ps1 create mode 100644 Prolog/prolog.pl create mode 100644 PureBasic/helloworld.pb create mode 100644 Purescript/.gitignore create mode 100644 Purescript/bower.json create mode 100644 Purescript/src/Main.purs create mode 100644 Purescript/test/Main.purs create mode 100644 Python/AI.py create mode 100644 Python/Average_for_3test.py create mode 100644 Python/Benches.py create mode 100644 Python/BubbleSort.py create mode 100644 Python/CaesarCipherInline.py create mode 100644 Python/Counting the Number words.py create mode 100644 Python/Counting the occurence of each word.py create mode 100644 Python/DesicionTree.py create mode 100644 Python/Fibonacci.py create mode 100644 Python/Hello World using espeak.py create mode 100644 Python/Hello-World.py create mode 100644 Python/HiWorld.py create mode 100644 Python/Hola Mundo create mode 100644 Python/LinkedList.py create mode 100644 Python/Stack create mode 100644 Python/Superari15.py create mode 100644 Python/Tree.py create mode 100644 Python/Zombie game.py create mode 100644 Python/add.py create mode 100644 Python/add2nos.py create mode 100644 Python/add_mult_polynomial.py create mode 100644 Python/aniket965.py create mode 100644 Python/armstrong_number.py create mode 100644 Python/average_grades_finder.py create mode 100644 Python/balanced-brackets.py create mode 100644 Python/bracket_finder.py create mode 100644 Python/calculator create mode 100644 Python/calculator-asmd.py create mode 100644 Python/decimal_to_base.py create mode 100644 Python/decisiontree create mode 100644 Python/dijkstra's_algorithm.py create mode 100644 Python/email_regex.py create mode 100644 Python/factorial.py create mode 100644 Python/fibonacci_with_cache.py create mode 100644 Python/floyd_warshall.py create mode 100644 Python/for_pattern.py create mode 100644 Python/funny_Hello.py create mode 100644 Python/geometric-cube-dimensions.py create mode 100644 Python/gitlherme-hello-world.py create mode 100644 Python/greatest_common_divisor.py create mode 100644 Python/guess.py create mode 100644 Python/helenk.py create mode 100644 Python/hello-numbers.py create mode 100644 Python/hello.py create mode 100644 Python/hello_world.ipynb create mode 100644 Python/hello_world.py create mode 100644 Python/hello_world_pt-br.py create mode 100644 Python/hello_world_ronlek.py create mode 100644 Python/helloworld.py create mode 100644 Python/helloworld_in_id.py create mode 100644 Python/helloworld_indonesia.py create mode 100644 Python/longest_substring.py create mode 100644 Python/manav.py create mode 100644 Python/nc-responder.py create mode 100644 Python/number_guessing.py create mode 100644 Python/quick_sort.py create mode 100644 Python/rockpaperscissors.py create mode 100644 Python/rockycamacho.py create mode 100644 Python/rsa.py create mode 100644 Python/separating_letters.py create mode 100644 Python/shell_sort.py create mode 100644 Python/sum_prime.py create mode 100644 Python/validar_cpf.py create mode 100644 Python/vipassna.py create mode 100644 QuakeC/hello.qc create mode 100644 QuickBASIC/HelloWorld.bas create mode 100644 R/Hello-in-R.r create mode 100644 R/HelloWorld create mode 100644 R/HelloWorld.R create mode 100644 R/HelloWorldPrintPaste.r create mode 100644 README.md create mode 100644 Racket/helloworld.rkt create mode 100644 React-Native/helloWorld/.babelrc create mode 100644 React-Native/helloWorld/.buckconfig create mode 100644 React-Native/helloWorld/.flowconfig create mode 100644 React-Native/helloWorld/.gitattributes create mode 100644 React-Native/helloWorld/.gitignore create mode 100644 React-Native/helloWorld/.watchmanconfig create mode 100644 React-Native/helloWorld/App.js create mode 100644 React-Native/helloWorld/android/app/BUCK create mode 100644 React-Native/helloWorld/android/app/build.gradle create mode 100644 React-Native/helloWorld/android/app/proguard-rules.pro create mode 100644 React-Native/helloWorld/android/app/src/main/AndroidManifest.xml create mode 100644 React-Native/helloWorld/android/app/src/main/java/com/helloworld/MainActivity.java create mode 100644 React-Native/helloWorld/android/app/src/main/java/com/helloworld/MainApplication.java create mode 100644 React-Native/helloWorld/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 React-Native/helloWorld/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 React-Native/helloWorld/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 React-Native/helloWorld/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 React-Native/helloWorld/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 React-Native/helloWorld/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 React-Native/helloWorld/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 React-Native/helloWorld/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 React-Native/helloWorld/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 React-Native/helloWorld/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 React-Native/helloWorld/android/app/src/main/res/values/strings.xml create mode 100644 React-Native/helloWorld/android/app/src/main/res/values/styles.xml create mode 100644 React-Native/helloWorld/android/build.gradle create mode 100644 React-Native/helloWorld/android/gradle.properties create mode 100644 React-Native/helloWorld/android/gradle/wrapper/gradle-wrapper.jar create mode 100644 React-Native/helloWorld/android/gradle/wrapper/gradle-wrapper.properties create mode 100755 React-Native/helloWorld/android/gradlew create mode 100644 React-Native/helloWorld/android/gradlew.bat create mode 100644 React-Native/helloWorld/android/keystores/BUCK create mode 100644 React-Native/helloWorld/android/keystores/debug.keystore.properties create mode 100644 React-Native/helloWorld/android/settings.gradle create mode 100644 React-Native/helloWorld/app.json create mode 100644 React-Native/helloWorld/index.js create mode 100644 React-Native/helloWorld/ios/helloWorld-tvOS/Info.plist create mode 100644 React-Native/helloWorld/ios/helloWorld-tvOSTests/Info.plist create mode 100644 React-Native/helloWorld/ios/helloWorld.xcodeproj/project.pbxproj create mode 100644 React-Native/helloWorld/ios/helloWorld.xcodeproj/xcshareddata/xcschemes/helloWorld-tvOS.xcscheme create mode 100644 React-Native/helloWorld/ios/helloWorld.xcodeproj/xcshareddata/xcschemes/helloWorld.xcscheme create mode 100644 React-Native/helloWorld/ios/helloWorld/AppDelegate.h create mode 100644 React-Native/helloWorld/ios/helloWorld/AppDelegate.m create mode 100644 React-Native/helloWorld/ios/helloWorld/Base.lproj/LaunchScreen.xib create mode 100644 React-Native/helloWorld/ios/helloWorld/Images.xcassets/AppIcon.appiconset/Contents.json create mode 100644 React-Native/helloWorld/ios/helloWorld/Images.xcassets/Contents.json create mode 100644 React-Native/helloWorld/ios/helloWorld/Info.plist create mode 100644 React-Native/helloWorld/ios/helloWorld/main.m create mode 100644 React-Native/helloWorld/ios/helloWorldTests/Info.plist create mode 100644 React-Native/helloWorld/ios/helloWorldTests/helloWorldTests.m create mode 100644 React-Native/helloWorld/package.json create mode 100644 React-Native/helloWorld/yarn.lock create mode 100644 Reactjs/.gitignore create mode 100644 Reactjs/README.md create mode 100644 Reactjs/package.json create mode 100644 Reactjs/public/favicon.ico create mode 100644 Reactjs/public/index.html create mode 100644 Reactjs/public/manifest.json create mode 100644 Reactjs/src/App.css create mode 100644 Reactjs/src/App.js create mode 100644 Reactjs/src/App.test.js create mode 100644 Reactjs/src/images/pumpkin-brown.png create mode 100644 Reactjs/src/images/pumpkin-orange.png create mode 100644 Reactjs/src/index.css create mode 100644 Reactjs/src/index.js create mode 100644 Reactjs/src/logo.svg create mode 100644 Reactjs/src/serviceWorker.js create mode 100644 Reactjs/yarn.lock create mode 100644 RubberDucky/helloworld.duckos create mode 100644 Ruby/bubble-sort.rb create mode 100644 Ruby/develop-build.rb create mode 100644 Ruby/helloworld.rb create mode 100644 Ruby/input.rb create mode 100644 Ruby/merge-sort.rb create mode 100644 Ruby/patriciacorhid.rb create mode 100644 Ruby/prime-number.rb create mode 100644 Ruby/ruby-shark.rb create mode 100644 Rust/hello.rs create mode 100644 Rust/hello_world.rs create mode 100644 SQL/HelloWorld.SQL create mode 100644 SQL/select_from.sql create mode 100644 SageMath/helloworld.sage create mode 100644 Sas/hello.sas create mode 100644 Scala/HelloWorld.scala create mode 100644 Scheme/hello.scm create mode 100644 Shell Script/hello_arg.sh create mode 100644 Shell Script/helloworld.sh create mode 100644 Shell Script/palindrome.sh create mode 100644 Solidity/addition.sol create mode 100644 Solidity/hello_world.sol create mode 100644 Swift/Hello Objective C create mode 100644 Swift/hello.swift create mode 100644 Tcl/.DS_Store create mode 100644 Tcl/hello.tcl create mode 100644 Tk/hello.tcl create mode 100644 Typescript/HelloWorld.ts create mode 100644 Typescript/hello-world-again.ts create mode 100644 Typescript/hello-world.ts create mode 100644 Typescript/hello_world.ts create mode 100644 UnrealScript/hello.uc create mode 100644 VBScript/HelloWorld.vbs create mode 100644 Verilog/hello.v create mode 100644 Vim/hello-world.vim create mode 100644 Vim/useful-vimrc-file.vim create mode 100644 Visual Jpp/Hello World create mode 100644 VisualJ++/Visual J++ create mode 100644 VueJS/index.html create mode 100644 VueJS/index.js create mode 100644 Whitespace/Hello World.txt create mode 100644 Whitespace/hello-world.ws create mode 100644 Wolfram/wolfram.wl create mode 100644 WolframScript/hello.wls create mode 100644 X++/hello.xpp create mode 100644 XML/helloworld.xml create mode 100644 XPL/xpl0 create mode 100644 YAML/hello.yml create mode 100644 ZPL/hello.zpl create mode 100644 Zephir/hello.zep create mode 100644 _config.yml create mode 100755 awk/hello_world.awk create mode 100644 cointoss.py delete mode 100644 main/factorial/Factorial.cs delete mode 100644 main/factorial/FactorialExample.java delete mode 100644 main/factorial/Factorial_Num.py delete mode 100644 main/factorial/Factorial_Recursive.java delete mode 100644 main/factorial/extra_long_factorial.go delete mode 100644 main/factorial/factCPP.cpp delete mode 100644 main/factorial/facto.py delete mode 100644 main/factorial/facto_rial.py delete mode 100644 main/factorial/factoo.py delete mode 100644 main/factorial/factorial.R delete mode 100644 main/factorial/factorial.c delete mode 100644 main/factorial/factorial.cpp delete mode 100644 main/factorial/factorial.ex delete mode 100644 main/factorial/factorial.hs delete mode 100644 main/factorial/factorial.js delete mode 100644 main/factorial/factorial.ml delete mode 100644 main/factorial/factorial.py delete mode 100644 main/factorial/factorial.rb delete mode 100644 main/factorial/factorial_iterative.cpp delete mode 100644 main/factorial/factorial_lambda.py delete mode 100644 main/factorial/factorialrecursion.cpp delete mode 100644 main/factorial/factrecursion.c create mode 100644 proj/.DS_Store create mode 100644 proj/discover-bg.jpg create mode 100644 proj/email.html create mode 100644 proj/email.jsp create mode 100644 proj/email1.jsp create mode 100644 proj/grid.html create mode 100644 proj/grid.jsp create mode 100644 proj/grid1.html create mode 100644 proj/grid1.jsp create mode 100644 proj/index-4.html create mode 100644 proj/index.html create mode 100644 proj/wronguser.html create mode 100644 spicyninja create mode 100644 typescript/hello.ts create mode 100644 wml/index.wml create mode 100644 yo-lang/yo!lang.yo diff --git a/><>/hello_world.fish b/><>/hello_world.fish new file mode 100644 index 000000000..d65eec6cd --- /dev/null +++ b/><>/hello_world.fish @@ -0,0 +1,2 @@ +"Hello world!"r\ + o;!?l< \ No newline at end of file diff --git a/ACPI/HelloWorld.aml b/ACPI/HelloWorld.aml new file mode 100644 index 000000000..64270774d --- /dev/null +++ b/ACPI/HelloWorld.aml @@ -0,0 +1,8 @@ +// Hello world in ACPI Source Language + +Scope(\) { + Method(_WAK) { + Store ("Hello World", Debug) + Return(Package(2){0x00000000,0}) + } +} diff --git a/Ada/hello.adb b/Ada/hello.adb new file mode 100644 index 000000000..931db44b3 --- /dev/null +++ b/Ada/hello.adb @@ -0,0 +1,11 @@ +with Ada.Text_IO, Ada.Integer_Text_IO; +use Ada; + +procedure Solution is + begin + Ada.Text_IO.Put_Line("Hello-world"); + + +end Solution; + +--thank in advance for hackerank XD \ No newline at end of file diff --git a/Algol/helloworld.alg b/Algol/helloworld.alg new file mode 100644 index 000000000..e26910360 --- /dev/null +++ b/Algol/helloworld.alg @@ -0,0 +1 @@ +BEGIN DISPLAY("HELLO WORLD!") END. diff --git a/AmazonAlexa/References.txt b/AmazonAlexa/References.txt new file mode 100644 index 000000000..def3aed52 --- /dev/null +++ b/AmazonAlexa/References.txt @@ -0,0 +1,11 @@ +Setup an AWS account: https://aws.amazon.com/free + +Lambda code: https://github.com/alexa/skill-sample-nodejs-hello-world + +Alexa Docs: https://developer.amazon.com/alexa-skills-kit + +Alexa Console (after signup): https://developer.amazon.com/alexa/console/ask + +Connecting Alexa and Lambda walkthrough (in depth): https://tutorials.botsfloor.com/how-to-build-a-hello-world-alexa-skill-bcea0d01ee8f + +Walkthrough for beginners: https://www.youtube.com/watch?v=V0PwCFrIfwg diff --git a/AmazonAlexa/index.js b/AmazonAlexa/index.js new file mode 100644 index 000000000..fdf374028 --- /dev/null +++ b/AmazonAlexa/index.js @@ -0,0 +1,104 @@ +/* eslint-disable func-names */ +/* eslint-disable no-console */ + +const Alexa = require('ask-sdk-core'); + +const LaunchRequestHandler = { + canHandle(handlerInput) { + return handlerInput.requestEnvelope.request.type === 'LaunchRequest'; + }, + handle(handlerInput) { + const speechText = 'Welcome to the Alexa Skills Kit, you can say hello!'; + + return handlerInput.responseBuilder + .speak(speechText) + .reprompt(speechText) + .withSimpleCard('Hello World', speechText) + .getResponse(); + }, +}; + +const HelloWorldIntentHandler = { + canHandle(handlerInput) { + return handlerInput.requestEnvelope.request.type === 'IntentRequest' + && handlerInput.requestEnvelope.request.intent.name === 'HelloWorldIntent'; + }, + handle(handlerInput) { + const speechText = 'Hello World!'; + + return handlerInput.responseBuilder + .speak(speechText) + .withSimpleCard('Hello World', speechText) + .getResponse(); + }, +}; + +const HelpIntentHandler = { + canHandle(handlerInput) { + return handlerInput.requestEnvelope.request.type === 'IntentRequest' + && handlerInput.requestEnvelope.request.intent.name === 'AMAZON.HelpIntent'; + }, + handle(handlerInput) { + const speechText = 'You can say hello to me!'; + + return handlerInput.responseBuilder + .speak(speechText) + .reprompt(speechText) + .withSimpleCard('Hello World', speechText) + .getResponse(); + }, +}; + +const CancelAndStopIntentHandler = { + canHandle(handlerInput) { + return handlerInput.requestEnvelope.request.type === 'IntentRequest' + && (handlerInput.requestEnvelope.request.intent.name === 'AMAZON.CancelIntent' + || handlerInput.requestEnvelope.request.intent.name === 'AMAZON.StopIntent'); + }, + handle(handlerInput) { + const speechText = 'Goodbye!'; + + return handlerInput.responseBuilder + .speak(speechText) + .withSimpleCard('Hello World', speechText) + .getResponse(); + }, +}; + +const SessionEndedRequestHandler = { + canHandle(handlerInput) { + return handlerInput.requestEnvelope.request.type === 'SessionEndedRequest'; + }, + handle(handlerInput) { + console.log(`Session ended with reason: ${handlerInput.requestEnvelope.request.reason}`); + + return handlerInput.responseBuilder.getResponse(); + }, +}; + +const ErrorHandler = { + canHandle() { + return true; + }, + handle(handlerInput, error) { + console.log(`Error handled: ${error.message}`); + + return handlerInput.responseBuilder + .speak('Sorry, I can\'t understand the command, say again.') + .reprompt('Sorry, I can\'t understand the command, say again.') + .getResponse(); + }, +}; + +const skillBuilder = Alexa.SkillBuilders.custom(); + +exports.handler = skillBuilder + .addRequestHandlers( + LaunchRequestHandler, + HelloWorldIntentHandler, + HelpIntentHandler, + CancelAndStopIntentHandler, + SessionEndedRequestHandler + ) + .addErrorHandlers(ErrorHandler) + .lambda(); diff --git a/AmazonAlexa/package.json b/AmazonAlexa/package.json new file mode 100644 index 000000000..e7af15e31 --- /dev/null +++ b/AmazonAlexa/package.json @@ -0,0 +1,15 @@ +{ + "name": "hello-world", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "ask-sdk-core": "^2.0.0", + "ask-sdk-model": "^1.0.0" + } +} diff --git a/Angular/.angular-cli.json b/Angular/.angular-cli.json new file mode 100644 index 000000000..ed0c1be8e --- /dev/null +++ b/Angular/.angular-cli.json @@ -0,0 +1,60 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "project": { + "name": "angular" + }, + "apps": [ + { + "root": "src", + "outDir": "dist", + "assets": [ + "assets", + "favicon.ico" + ], + "index": "index.html", + "main": "main.ts", + "polyfills": "polyfills.ts", + "test": "test.ts", + "tsconfig": "tsconfig.app.json", + "testTsconfig": "tsconfig.spec.json", + "prefix": "app", + "styles": [ + "styles.css" + ], + "scripts": [], + "environmentSource": "environments/environment.ts", + "environments": { + "dev": "environments/environment.ts", + "prod": "environments/environment.prod.ts" + } + } + ], + "e2e": { + "protractor": { + "config": "./protractor.conf.js" + } + }, + "lint": [ + { + "project": "src/tsconfig.app.json", + "exclude": "**/node_modules/**" + }, + { + "project": "src/tsconfig.spec.json", + "exclude": "**/node_modules/**" + }, + { + "project": "e2e/tsconfig.e2e.json", + "exclude": "**/node_modules/**" + } + ], + "test": { + "karma": { + "config": "./karma.conf.js" + } + }, + "defaults": { + "styleExt": "css", + "component": {} + } +} diff --git a/Angular/.editorconfig b/Angular/.editorconfig new file mode 100644 index 000000000..6e87a003d --- /dev/null +++ b/Angular/.editorconfig @@ -0,0 +1,13 @@ +# Editor configuration, see http://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/Angular/.gitignore b/Angular/.gitignore new file mode 100644 index 000000000..eabf65e51 --- /dev/null +++ b/Angular/.gitignore @@ -0,0 +1,44 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/dist +/dist-server +/tmp +/out-tsc + +# dependencies +/node_modules + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +# misc +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +yarn-error.log +testem.log +/typings + +# e2e +/e2e/*.js +/e2e/*.map + +# System Files +.DS_Store +Thumbs.db diff --git a/Angular/README.md b/Angular/README.md new file mode 100644 index 000000000..26b1e1298 --- /dev/null +++ b/Angular/README.md @@ -0,0 +1,27 @@ +# Angular + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.7.1. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). diff --git a/Angular/e2e/app.e2e-spec.ts b/Angular/e2e/app.e2e-spec.ts new file mode 100644 index 000000000..9febd3c5f --- /dev/null +++ b/Angular/e2e/app.e2e-spec.ts @@ -0,0 +1,14 @@ +import { AppPage } from './app.po'; + +describe('angular App', () => { + let page: AppPage; + + beforeEach(() => { + page = new AppPage(); + }); + + it('should display welcome message', () => { + page.navigateTo(); + expect(page.getParagraphText()).toEqual('Welcome to app!'); + }); +}); diff --git a/Angular/e2e/app.po.ts b/Angular/e2e/app.po.ts new file mode 100644 index 000000000..82ea75ba5 --- /dev/null +++ b/Angular/e2e/app.po.ts @@ -0,0 +1,11 @@ +import { browser, by, element } from 'protractor'; + +export class AppPage { + navigateTo() { + return browser.get('/'); + } + + getParagraphText() { + return element(by.css('app-root h1')).getText(); + } +} diff --git a/Angular/e2e/tsconfig.e2e.json b/Angular/e2e/tsconfig.e2e.json new file mode 100644 index 000000000..1d9e5edf0 --- /dev/null +++ b/Angular/e2e/tsconfig.e2e.json @@ -0,0 +1,14 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/e2e", + "baseUrl": "./", + "module": "commonjs", + "target": "es5", + "types": [ + "jasmine", + "jasminewd2", + "node" + ] + } +} diff --git a/Angular/karma.conf.js b/Angular/karma.conf.js new file mode 100644 index 000000000..af139fada --- /dev/null +++ b/Angular/karma.conf.js @@ -0,0 +1,33 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular/cli'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular/cli/plugins/karma') + ], + client:{ + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + reports: [ 'html', 'lcovonly' ], + fixWebpackSourcePaths: true + }, + angularCli: { + environment: 'dev' + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false + }); +}; diff --git a/Angular/package-lock.json b/Angular/package-lock.json new file mode 100644 index 000000000..b6ac67b5a --- /dev/null +++ b/Angular/package-lock.json @@ -0,0 +1,12698 @@ +{ + "name": "angular", + "version": "0.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@angular-devkit/build-optimizer": { + "version": "0.3.2", + "resolved": "http://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.3.2.tgz", + "integrity": "sha512-U0BCZtThq5rUfY08shHXpxe8ZhSsiYB/cJjUvAWRTs/ORrs8pbngS6xwseQws8d/vHoVrtqGD9GU9h8AmFRERQ==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "source-map": "^0.5.6", + "typescript": "~2.6.2", + "webpack-sources": "^1.0.1" + }, + "dependencies": { + "typescript": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.6.2.tgz", + "integrity": "sha1-PFtv1/beCRQmkCfwPAlGdY92c6Q=", + "dev": true + } + } + }, + "@angular-devkit/core": { + "version": "0.3.2", + "resolved": "http://registry.npmjs.org/@angular-devkit/core/-/core-0.3.2.tgz", + "integrity": "sha512-zABk/iP7YX5SVbmK4e+IX7j2d0D37MQJQiKgWdV3JzfvVJhNJzddiirtT980pIafoq+KyvTgVwXtc+vnux0oeQ==", + "dev": true, + "requires": { + "ajv": "~5.5.1", + "chokidar": "^1.7.0", + "rxjs": "^5.5.6", + "source-map": "^0.5.6" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + } + } + }, + "@angular-devkit/schematics": { + "version": "0.3.2", + "resolved": "http://registry.npmjs.org/@angular-devkit/schematics/-/schematics-0.3.2.tgz", + "integrity": "sha512-B6zZoqvHaTJy+vVdA6EtlxnCdGMa5elCa4j9lQLC3JI8DLvMXUWkCIPVbPzJ/GSRR9nsKWpvYMYaJyfBDUqfhw==", + "dev": true, + "requires": { + "@ngtools/json-schema": "^1.1.0", + "rxjs": "^5.5.6" + } + }, + "@angular/animations": { + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-5.2.11.tgz", + "integrity": "sha512-J7wKHkFn3wV28/Y1Qm4yjGXVCwXzj1JR5DRjGDTFnxTRacUFx7Nj0ApGhN0b2+V0NOvgxQOvEW415Y22kGoblw==", + "requires": { + "tslib": "^1.7.1" + } + }, + "@angular/cli": { + "version": "1.7.4", + "resolved": "http://registry.npmjs.org/@angular/cli/-/cli-1.7.4.tgz", + "integrity": "sha512-URdb1QtnQf+Ievy93wjq7gE81s25BkWUwJFPey+YkphBA3G1lbCAQPiEh2pntBwaIKavgEuCw+Sf2YZdgTVhDA==", + "dev": true, + "requires": { + "@angular-devkit/build-optimizer": "0.3.2", + "@angular-devkit/core": "0.3.2", + "@angular-devkit/schematics": "0.3.2", + "@ngtools/json-schema": "1.2.0", + "@ngtools/webpack": "1.10.2", + "@schematics/angular": "0.3.2", + "@schematics/package-update": "0.3.2", + "ajv": "^6.1.1", + "autoprefixer": "^7.2.3", + "cache-loader": "^1.2.0", + "chalk": "~2.2.0", + "circular-dependency-plugin": "^4.2.1", + "clean-css": "^4.1.11", + "common-tags": "^1.3.1", + "copy-webpack-plugin": "~4.4.1", + "core-object": "^3.1.0", + "denodeify": "^1.2.1", + "ember-cli-string-utils": "^1.0.0", + "extract-text-webpack-plugin": "^3.0.2", + "file-loader": "^1.1.5", + "fs-extra": "^4.0.0", + "glob": "^7.0.3", + "html-webpack-plugin": "^2.29.0", + "istanbul-instrumenter-loader": "^3.0.0", + "karma-source-map-support": "^1.2.0", + "less": "^2.7.2", + "less-loader": "^4.0.5", + "license-webpack-plugin": "^1.0.0", + "loader-utils": "1.1.0", + "lodash": "^4.11.1", + "memory-fs": "^0.4.1", + "minimatch": "^3.0.4", + "node-modules-path": "^1.0.0", + "node-sass": "^4.7.2", + "nopt": "^4.0.1", + "opn": "~5.1.0", + "portfinder": "~1.0.12", + "postcss": "^6.0.16", + "postcss-import": "^11.0.0", + "postcss-loader": "^2.0.10", + "postcss-url": "^7.1.2", + "raw-loader": "^0.5.1", + "resolve": "^1.1.7", + "rxjs": "^5.5.6", + "sass-loader": "^6.0.6", + "semver": "^5.1.0", + "silent-error": "^1.0.0", + "source-map-support": "^0.4.1", + "style-loader": "^0.19.1", + "stylus": "^0.54.5", + "stylus-loader": "^3.0.1", + "uglifyjs-webpack-plugin": "^1.1.8", + "url-loader": "^0.6.2", + "webpack": "~3.11.0", + "webpack-dev-middleware": "~1.12.0", + "webpack-dev-server": "~2.11.0", + "webpack-merge": "^4.1.0", + "webpack-sources": "^1.0.0", + "webpack-subresource-integrity": "^1.0.1" + } + }, + "@angular/common": { + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-5.2.11.tgz", + "integrity": "sha512-LniJjGAeftUJDJh+2+LEjltcGen08C/VMxQ/eUYmesytKy1sN+MWzh3GbpKfEWtWmyUsYTG9lAAJNo3L3jPwsw==", + "requires": { + "tslib": "^1.7.1" + } + }, + "@angular/compiler": { + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-5.2.11.tgz", + "integrity": "sha512-ICvB1ud1mxaXUYLb8vhJqiLhGBVocAZGxoHTglv6hMkbrRYcnlB3FZJFOzBvtj+krkd1jamoYLI43UAmesqQ6Q==", + "requires": { + "tslib": "^1.7.1" + } + }, + "@angular/compiler-cli": { + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-5.2.11.tgz", + "integrity": "sha512-dwrQ0yxoCM/XzKzlm7pTsyg4/6ECjT9emZufGj8t12bLMO8NDn1IJOsqXJA1+onEgQKhlr0Ziwi+96TvDTb1Cg==", + "dev": true, + "requires": { + "chokidar": "^1.4.2", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "tsickle": "^0.27.2" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "@angular/core": { + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-5.2.11.tgz", + "integrity": "sha512-h2vpvXNAdOqKzbVaZcHnHGMT5A8uDnizk6FgGq6SPyw9s3d+/VxZ9LJaPjUk3g2lICA7og1tUel+2YfF971MlQ==", + "requires": { + "tslib": "^1.7.1" + } + }, + "@angular/forms": { + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-5.2.11.tgz", + "integrity": "sha512-wBllFlIubPclAFRXUc84Kc7TMeKOftzrQraVZ7ooTNeFLLa/FZLN2K8HGyRde8X/XDsMu1XAmjNfkz++spwTzA==", + "requires": { + "tslib": "^1.7.1" + } + }, + "@angular/http": { + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/@angular/http/-/http-5.2.11.tgz", + "integrity": "sha512-eR7wNXh1+6MpcQNb3sq4bJVX03dx50Wl3kpPG+Q7N1VSL0oPQSobaTrR17ac3oFCEfSJn6kkUCqtUXha6wcNHg==", + "requires": { + "tslib": "^1.7.1" + } + }, + "@angular/language-service": { + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-5.2.11.tgz", + "integrity": "sha512-tgnFAhwBmUs1W0dmcmlBmUlMaOgkoyuSdrcF23lz8W5+nSLb+LnbH5a3blU2NVqA4ESvLKQkPW5dpKa/LuhrPQ==", + "dev": true + }, + "@angular/platform-browser": { + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-5.2.11.tgz", + "integrity": "sha512-6YZ4IpBFqXx88vEzBZG2WWnaSYXbFWDgG0iT+bZPHAfwsbmqbcMcs7Ogu+XZ4VmK02dTqbrFh7U4P2W+sqrzow==", + "requires": { + "tslib": "^1.7.1" + } + }, + "@angular/platform-browser-dynamic": { + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.2.11.tgz", + "integrity": "sha512-5kKPNULcXNwkyBjpHfF+pq+Yxi8Zl866YSOK9t8txoiQ9Ctw97kMkEJcTetk6MJgBp/NP3YyjtoTAm8oXLerug==", + "requires": { + "tslib": "^1.7.1" + } + }, + "@angular/router": { + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-5.2.11.tgz", + "integrity": "sha512-NT8xYl7Vr3qPygisek3PlXqNROEjg48GXOEsDEc7c8lDBo3EB9Tf328fWJD0GbLtXZNhmmNNxwIe+qqPFFhFAA==", + "requires": { + "tslib": "^1.7.1" + } + }, + "@ngtools/json-schema": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ngtools/json-schema/-/json-schema-1.2.0.tgz", + "integrity": "sha512-pMh+HDc6mOjUO3agRfB1tInimo7hf67u+0Cska2bfXFe6oU7rSMnr5PLVtiZVgwMoBHpx/6XjBymvcnWPo2Uzg==", + "dev": true + }, + "@ngtools/webpack": { + "version": "1.10.2", + "resolved": "http://registry.npmjs.org/@ngtools/webpack/-/webpack-1.10.2.tgz", + "integrity": "sha512-3u2zg2rarG3qNLSukBClGADWuq/iNn5SQtlSeAbfKzwBeyLGbF0gN1z1tVx1Bcr8YwFzR6NdRePQmJGcoqq1fg==", + "dev": true, + "requires": { + "chalk": "~2.2.0", + "enhanced-resolve": "^3.1.0", + "loader-utils": "^1.0.2", + "magic-string": "^0.22.3", + "semver": "^5.3.0", + "source-map": "^0.5.6", + "tree-kill": "^1.0.0", + "webpack-sources": "^1.1.0" + } + }, + "@schematics/angular": { + "version": "0.3.2", + "resolved": "http://registry.npmjs.org/@schematics/angular/-/angular-0.3.2.tgz", + "integrity": "sha512-Elrk0BA951s0ScFZU0AWrpUeJBYVR52DZ1QTIO5R0AhwEd1PW4olI8szPLGQlVW5Sd6H0FA/fyFLIvn2r9v6Rw==", + "dev": true, + "requires": { + "typescript": "~2.6.2" + }, + "dependencies": { + "typescript": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.6.2.tgz", + "integrity": "sha1-PFtv1/beCRQmkCfwPAlGdY92c6Q=", + "dev": true + } + } + }, + "@schematics/package-update": { + "version": "0.3.2", + "resolved": "http://registry.npmjs.org/@schematics/package-update/-/package-update-0.3.2.tgz", + "integrity": "sha512-7aVP4994Hu8vRdTTohXkfGWEwLhrdNP3EZnWyBootm5zshWqlQojUGweZe5zwewsKcixeVOiy2YtW+aI4aGSLA==", + "dev": true, + "requires": { + "rxjs": "^5.5.6", + "semver": "^5.3.0", + "semver-intersect": "^1.1.2" + } + }, + "@types/jasmine": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.8.9.tgz", + "integrity": "sha512-8dPZwjosElZOGGYw1nwTvOEMof4gjwAWNFS93nBI091BoEfd5drnHOLRMiRF/LOPuMTn5LgEdv0bTUO8QFVuHQ==", + "dev": true + }, + "@types/jasminewd2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.5.tgz", + "integrity": "sha512-1awkm/O4pQCR9hI2F80HmIOda/L+ogkSL8Arj1k00eue5VLY5ooewhSOyF/cUJE0S+/34uD5EYY3zmd6fu2OCA==", + "dev": true, + "requires": { + "@types/jasmine": "*" + } + }, + "@types/node": { + "version": "6.0.118", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.118.tgz", + "integrity": "sha512-N33cKXGSqhOYaPiT4xUGsYlPPDwFtQM/6QxJxuMXA/7BcySW+lkn2yigWP7vfs4daiL/7NJNU6DMCqg5N4B+xQ==", + "dev": true + }, + "@types/q": { + "version": "0.0.32", + "resolved": "http://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "dev": true + }, + "@types/selenium-webdriver": { + "version": "2.53.43", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-2.53.43.tgz", + "integrity": "sha512-UBYHWph6P3tutkbXpW6XYg9ZPbTKjw/YC2hGG1/GEvWwTbvezBUv3h+mmUFw79T3RFPnmedpiXdOBbXX+4l0jg==", + "dev": true + }, + "@types/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=", + "dev": true + }, + "@types/strip-json-comments": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz", + "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/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": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", + "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "dev": true, + "requires": { + "acorn": "^4.0.3" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + } + } + }, + "addressparser": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz", + "integrity": "sha1-R6++GiqSYhkdtoOOT9HTm0CCF0Y=", + "dev": true, + "optional": true + }, + "adm-zip": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.11.tgz", + "integrity": "sha512-L8vcjDTCOIJk7wFvmlEUN7AsSb8T+2JrdP7KINBjzr24TJ5Mwj590sLu3BC7zNZowvJWa/JtPmD8eJCzdtDWjA==", + "dev": true + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "ajv": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.4.tgz", + "integrity": "sha512-4Wyjt8+t6YszqaXnLDfMmG/8AlO5Zbcsy3ATHncCzjW/NoPzAId8AK6749Ybjmdt+kUY1gP60fCu46oDxPv/mg==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "dependencies": { + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + } + } + }, + "ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", + "dev": true + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "amqplib": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/amqplib/-/amqplib-0.5.2.tgz", + "integrity": "sha512-l9mCs6LbydtHqRniRwYkKdqxVa6XMz3Vw1fh+2gJaaVgTM6Jk3o8RccAKWKtlhT1US5sWrFh+KKxsVUALURSIA==", + "dev": true, + "optional": true, + "requires": { + "bitsyntax": "~0.0.4", + "bluebird": "^3.4.6", + "buffer-more-ints": "0.0.2", + "readable-stream": "1.x >=1.1.9", + "safe-buffer": "^5.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true, + "optional": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true, + "optional": true + } + } + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "app-root-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.1.0.tgz", + "integrity": "sha1-mL9lmTJ+zqGZMJhm6BQDaP0uZGo=", + "dev": true + }, + "append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "dev": true, + "requires": { + "default-require-extensions": "^1.0.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz", + "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=", + "dev": true + }, + "array-includes": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", + "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" + } + }, + "array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true, + "optional": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, + "requires": { + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true, + "optional": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "ast-types": { + "version": "0.11.5", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.5.tgz", + "integrity": "sha512-oJjo+5e7/vEc2FBK8gUalV0pba4L3VdBIs2EKhOLHLcOd2FgQIVQN9xb0eZ9IjEWyAL7vq6fGJxOvVvdCHNyMw==", + "dev": true, + "optional": true + }, + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true, + "optional": true + }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "7.2.6", + "resolved": "http://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.6.tgz", + "integrity": "sha512-Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ==", + "dev": true, + "requires": { + "browserslist": "^2.11.3", + "caniuse-lite": "^1.0.30000805", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^6.0.17", + "postcss-value-parser": "^3.2.3" + } + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true, + "optional": true + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true + }, + "axios": { + "version": "0.15.3", + "resolved": "http://registry.npmjs.org/axios/-/axios-0.15.3.tgz", + "integrity": "sha1-LJ1jiy4ZGgjqHWzJiOrda6W9wFM=", + "dev": true, + "optional": true, + "requires": { + "follow-redirects": "1.0.0" + }, + "dependencies": { + "follow-redirects": { + "version": "1.0.0", + "resolved": "http://registry.npmjs.org/follow-redirects/-/follow-redirects-1.0.0.tgz", + "integrity": "sha1-jjQpjL0uF28lTv/sdaHHjMhJ/Tc=", + "dev": true, + "optional": true, + "requires": { + "debug": "^2.2.0" + } + } + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "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": "https://registry.npmjs.org/define-property/-/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": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true + }, + "base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "dev": true + }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "requires": { + "callsite": "1.0.0" + } + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true + }, + "binary-extensions": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", + "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", + "dev": true + }, + "bitsyntax": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/bitsyntax/-/bitsyntax-0.0.4.tgz", + "integrity": "sha1-6xDMb4K4xJDj6FaY8H6D1G4MuoI=", + "dev": true, + "optional": true, + "requires": { + "buffer-more-ints": "0.0.2" + } + }, + "bl": { + "version": "1.1.2", + "resolved": "http://registry.npmjs.org/bl/-/bl-1.1.2.tgz", + "integrity": "sha1-/cqHGplxOqANGeO7ukHER4emU5g=", + "dev": true, + "optional": true, + "requires": { + "readable-stream": "~2.0.5" + }, + "dependencies": { + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true, + "optional": true + }, + "readable-stream": { + "version": "2.0.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true, + "optional": true + } + } + }, + "blob": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=", + "dev": true + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "optional": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "blocking-proxy": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-0.0.5.tgz", + "integrity": "sha1-RikF4Nz76pcPQao3Ij3anAexkSs=", + "dev": true, + "requires": { + "minimist": "^1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "bluebird": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.2.tgz", + "integrity": "sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg==", + "dev": true + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "body-parser": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "dev": true, + "requires": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.1", + "http-errors": "~1.6.2", + "iconv-lite": "0.4.19", + "on-finished": "~2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "~1.6.15" + }, + "dependencies": { + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.x.x" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "2.11.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", + "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000792", + "electron-to-chromium": "^1.3.30" + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-more-ints": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-0.0.2.tgz", + "integrity": "sha1-JrOIXRD6E9t/wBquOquHAZngEkw=", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "buildmail": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/buildmail/-/buildmail-4.0.1.tgz", + "integrity": "sha1-h393OLeHKYccmhBeO4N9K+EaenI=", + "dev": true, + "optional": true, + "requires": { + "addressparser": "1.0.1", + "libbase64": "0.1.0", + "libmime": "3.0.0", + "libqp": "1.1.0", + "nodemailer-fetch": "1.6.0", + "nodemailer-shared": "1.1.0", + "punycode": "1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true, + "optional": true + } + } + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "cacache": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", + "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "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" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "cache-loader": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-1.2.2.tgz", + "integrity": "sha512-rsGh4SIYyB9glU+d0OcHwiXHXBoUgDhHZaQ1KAbiXqfz1CDPxtTboh1gPbJ0q2qdO8a9lfcjgC5CJ2Ms32y5bw==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "mkdirp": "^0.5.1", + "neo-async": "^2.5.0", + "schema-utils": "^0.4.2" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "caniuse-lite": { + "version": "1.0.30000889", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000889.tgz", + "integrity": "sha512-MFxcQ6x/LEEoaIhO7Zdb7Eg8YyNONN+WBnS5ERJ0li2yRw51+i4xXUNxnLaveTb/4ZoJqsWKEmlomhG2pYzlQA==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "chalk": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.2.tgz", + "integrity": "sha512-LvixLAQ4MYhbf7hgL4o5PeK32gJKvVzDRiSNIApDofQvyhl8adgG2lJVXn4+ekQoK7HL9RF8lqxwerpe0x2pCw==", + "dev": true, + "requires": { + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "requires": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + } + }, + "chownr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "circular-dependency-plugin": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-4.4.0.tgz", + "integrity": "sha512-yEFtUNUYT4jBykEX5ZOHw+5goA3glGZr9wAXIQqoyakjz5H5TeUmScnWRc52douAhb9eYzK3s7V6bXfNnjFdzg==", + "dev": true + }, + "circular-json": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.7.tgz", + "integrity": "sha512-/pXoV1JA847qRKPrHbBK6YIBGFF8GOP4wzSgUOA7q0ew0vAv0iJswP+2/nZQ9uzA3Azi7eTrg9L2yzXc/7ZMIA==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "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": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "clean-css": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/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": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "clone-deep": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", + "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.0", + "shallow-clone": "^1.0.0" + }, + "dependencies": { + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "codelyzer": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-4.5.0.tgz", + "integrity": "sha512-oO6vCkjqsVrEsmh58oNlnJkRXuA30hF8cdNAQV9DytEalDwyOFRvHMnlKFzmOStNerOmPGZU9GAHnBo4tGvtiQ==", + "dev": true, + "requires": { + "app-root-path": "^2.1.0", + "css-selector-tokenizer": "^0.7.0", + "cssauron": "^1.4.0", + "semver-dsl": "^1.0.1", + "source-map": "^0.5.7", + "sprintf-js": "^1.1.1" + }, + "dependencies": { + "sprintf-js": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz", + "integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw=", + "dev": true + } + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + }, + "combine-lists": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz", + "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=", + "dev": true, + "requires": { + "lodash": "^4.5.0" + } + }, + "combined-stream": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + }, + "common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "compressible": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.15.tgz", + "integrity": "sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw==", + "dev": true, + "requires": { + "mime-db": ">= 1.36.0 < 2" + } + }, + "compression": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", + "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.14", + "debug": "2.6.9", + "on-headers": "~1.0.1", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "connect": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/connect/-/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" + }, + "dependencies": { + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/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" + } + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + } + } + }, + "connect-history-api-fallback": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=", + "dev": true + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "^0.1.4" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", + "dev": true + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-webpack-plugin": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.4.3.tgz", + "integrity": "sha512-v4THQ24Tks2NkyOvZuFDgZVfDD9YaA9rwYLZTrWg2GHIA8lrH5DboEyeoorh5Skki+PUbgSmnsCwhMWqYrQZrA==", + "dev": true, + "requires": { + "cacache": "^10.0.1", + "find-cache-dir": "^1.0.0", + "globby": "^7.1.1", + "is-glob": "^4.0.0", + "loader-utils": "^1.1.0", + "minimatch": "^3.0.4", + "p-limit": "^1.0.0", + "serialize-javascript": "^1.4.0" + }, + "dependencies": { + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + } + } + }, + "core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" + }, + "core-object": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/core-object/-/core-object-3.1.5.tgz", + "integrity": "sha512-sA2/4+/PZ/KV6CKgjrVrrUVBKCkdDO02CUlQ0YKTQoYUwPYNOtOAcWlbYhd5v/1JqYaA6oZ4sDlOU4ppVw6Wbg==", + "dev": true, + "requires": { + "chalk": "^2.0.0" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cosmiconfig": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", + "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", + "dev": true, + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0", + "require-from-string": "^2.0.1" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + } + } + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "optional": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "optional": true, + "requires": { + "boom": "2.x.x" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css-parse": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz", + "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", + "dev": true + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "css-selector-tokenizer": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", + "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", + "dev": true, + "requires": { + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" + } + }, + "css-what": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", + "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=", + "dev": true + }, + "cssauron": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", + "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", + "dev": true, + "requires": { + "through": "X.X.X" + } + }, + "cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "dev": true + }, + "cuint": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", + "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "cyclist": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "dev": true + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true, + "requires": { + "es5-ext": "^0.10.9" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "data-uri-to-buffer": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz", + "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==", + "dev": true, + "optional": true + }, + "date-format": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz", + "integrity": "sha1-YV6CjiM90aubua4JUODOzPpuytg=", + "dev": true + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true, + "optional": true + }, + "default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "dev": true, + "requires": { + "strip-bom": "^2.0.0" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "degenerator": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", + "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", + "dev": true, + "optional": true, + "requires": { + "ast-types": "0.x.x", + "escodegen": "1.x.x", + "esprima": "3.x.x" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true, + "optional": true + } + } + }, + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "dev": true, + "requires": { + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" + }, + "dependencies": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "denodeify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", + "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "requires": { + "utila": "~0.4" + } + }, + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "requires": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dev": true, + "requires": { + "domelementtype": "~1.1.1", + "entities": "~1.1.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", + "dev": true + }, + "domhandler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz", + "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "double-ended-queue": { + "version": "2.1.0-0", + "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", + "integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=", + "dev": true, + "optional": true + }, + "duplexify": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", + "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "ejs": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", + "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.73", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.73.tgz", + "integrity": "sha512-6PIg7v9zRoVGh6EheRF8h6Plti+3Yo/qtHobS4/Htyt53DNHmKKGFqSae1AIk0k1S4gCQvt7I2WgpbuZNcDY+g==", + "dev": true + }, + "elliptic": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", + "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "ember-cli-string-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ember-cli-string-utils/-/ember-cli-string-utils-1.1.0.tgz", + "integrity": "sha1-ObZ3/CgF9VFzc1N2/O8njqpEUqE=", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.1.5.tgz", + "integrity": "sha512-D06ivJkYxyRrcEe0bTpNnBQNgP9d3xog+qZlLbui8EsMr/DouQpf5o9FzJnWYHEYE0YsFHllUv2R1dkgYZXHcA==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "uws": "~9.14.0", + "ws": "~3.3.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "engine.io-client": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.6.tgz", + "integrity": "sha512-hnuHsFluXnsKOndS4Hv6SvUrgdYx1pk2NqfaDMW+GWdgfU3+/V25Cj7I8a0x92idSpa5PIhJRKxPvp9mnoLsfg==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "engine.io-parser": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.2.tgz", + "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.4", + "has-binary2": "~1.0.2" + } + }, + "enhanced-resolve": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", + "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "object-assign": "^4.0.1", + "tapable": "^0.2.7" + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", + "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.46", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz", + "integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" + } + }, + "es6-promise": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", + "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz", + "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==", + "dev": true, + "optional": true, + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true, + "optional": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "dev": true, + "requires": { + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "eventemitter3": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", + "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==", + "dev": true + }, + "events": { + "version": "1.1.1", + "resolved": "http://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, + "eventsource": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", + "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", + "dev": true, + "requires": { + "original": ">=0.0.5" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-braces": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", + "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=", + "dev": true, + "requires": { + "array-slice": "^0.2.3", + "array-unique": "^0.2.1", + "braces": "^0.1.2" + }, + "dependencies": { + "braces": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz", + "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=", + "dev": true, + "requires": { + "expand-range": "^0.1.0" + } + }, + "expand-range": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz", + "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=", + "dev": true, + "requires": { + "is-number": "^0.1.1", + "repeat-string": "^0.2.2" + } + }, + "is-number": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", + "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=", + "dev": true + }, + "repeat-string": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz", + "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=", + "dev": true + } + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "^2.1.0" + } + }, + "express": { + "version": "4.16.3", + "resolved": "http://registry.npmjs.org/express/-/express-4.16.3.tgz", + "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "~1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.3", + "qs": "6.5.1", + "range-parser": "~1.2.0", + "safe-buffer": "5.1.1", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "~1.4.0", + "type-is": "~1.6.16", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/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": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "extract-text-webpack-plugin": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz", + "integrity": "sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==", + "dev": true, + "requires": { + "async": "^2.4.1", + "loader-utils": "^1.1.0", + "schema-utils": "^0.3.0", + "webpack-sources": "^1.0.1" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "dev": true, + "requires": { + "ajv": "^5.0.0" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true, + "optional": true + }, + "fastparse": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", + "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", + "dev": true + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "file-loader": { + "version": "1.1.11", + "resolved": "http://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz", + "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^0.4.5" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "dev": true, + "requires": { + "glob": "^7.0.3", + "minimatch": "^3.0.3" + } + }, + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "finalhandler": { + "version": "1.1.1", + "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" + } + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flush-write-stream": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", + "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" + } + }, + "follow-redirects": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.8.tgz", + "integrity": "sha512-sy1mXPmv7kLAMKW/8XofG7o9T+6gAjzdZK4AJF6ryqQYUa/hnzgiypoeUecZ53x7XiqKNEpNqLtS97MshW2nxg==", + "dev": true, + "requires": { + "debug": "=3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-access": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", + "dev": true, + "requires": { + "null-check": "^1.0.0" + } + }, + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "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 + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "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 + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": 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.5.1", + "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.2", + "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.21", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "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 + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": 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, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "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.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.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.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "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 + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": 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.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.5.1", + "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.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "dev": 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.5.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, + "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, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true + } + } + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "ftp": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", + "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", + "dev": true, + "optional": true, + "requires": { + "readable-stream": "1.1.x", + "xregexp": "2.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true, + "optional": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true, + "optional": true + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": 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" + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "optional": true, + "requires": { + "globule": "^1.0.0" + } + }, + "generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dev": true, + "optional": true, + "requires": { + "is-property": "^1.0.2" + } + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true, + "optional": true, + "requires": { + "is-property": "^1.0.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "get-uri": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.2.tgz", + "integrity": "sha512-ZD325dMZOgerGqF/rF6vZXyFGTAay62svjQIT+X/oU2PtxYpFxvSkbsdi+oxIrsNxlZVd4y8wUDqkaExWTI/Cw==", + "dev": true, + "optional": true, + "requires": { + "data-uri-to-buffer": "1", + "debug": "2", + "extend": "3", + "file-uri-to-path": "1", + "ftp": "~0.3.10", + "readable-stream": "2" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "globule": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "dev": true, + "optional": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "handle-thing": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", + "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", + "dev": true + }, + "handlebars": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.12.tgz", + "integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==", + "dev": true, + "requires": { + "async": "^2.5.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "dev": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "dev": true, + "optional": true, + "requires": { + "ajv": "^4.9.1", + "har-schema": "^1.0.5" + }, + "dependencies": { + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, + "optional": true, + "requires": { + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" + } + } + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/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" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/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": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/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": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "hash.js": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", + "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "optional": true, + "requires": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, + "hipchat-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hipchat-notifier/-/hipchat-notifier-1.1.0.tgz", + "integrity": "sha1-ttJJdVQ3wZEII2d5nTupoPI7Ix4=", + "dev": true, + "optional": true, + "requires": { + "lodash": "^4.0.0", + "request": "^2.0.0" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "html-entities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", + "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", + "dev": true + }, + "html-minifier": { + "version": "3.5.20", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.20.tgz", + "integrity": "sha512-ZmgNLaTp54+HFKkONyLFEfs5dd/ZOtlquKaTnqIWFmx3Av5zG6ZPcV2d0o9XM2fXOTxxIf6eDcwzFFotke/5zA==", + "dev": true, + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.1.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + } + }, + "html-webpack-plugin": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz", + "integrity": "sha1-f5xCG36pHsRg9WUn1430hO51N9U=", + "dev": true, + "requires": { + "bluebird": "^3.4.7", + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "toposort": "^1.0.0" + }, + "dependencies": { + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + } + } + }, + "htmlparser2": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", + "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", + "dev": true, + "requires": { + "domelementtype": "1", + "domhandler": "2.1", + "domutils": "1.1", + "readable-stream": "1.0" + }, + "dependencies": { + "domutils": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz", + "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "http://registry.npmjs.org/readable-stream/-/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" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "http://registry.npmjs.org/http-errors/-/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" + } + }, + "http-parser-js": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", + "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=", + "dev": true + }, + "http-proxy": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", + "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", + "dev": true, + "requires": { + "eventemitter3": "^3.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "http-proxy-middleware": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", + "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", + "dev": true, + "requires": { + "http-proxy": "^1.16.2", + "is-glob": "^3.1.0", + "lodash": "^4.17.2", + "micromatch": "^2.3.11" + }, + "dependencies": { + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "httpntlm": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/httpntlm/-/httpntlm-1.6.1.tgz", + "integrity": "sha1-rQFScUOi6Hc8+uapb1hla7UqNLI=", + "dev": true, + "requires": { + "httpreq": ">=0.4.22", + "underscore": "~1.7.0" + } + }, + "httpreq": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/httpreq/-/httpreq-0.4.24.tgz", + "integrity": "sha1-QzX/2CzZaWaKOUZckprGHWOTYn8=", + "dev": true + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "https-proxy-agent": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", + "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", + "dev": true, + "requires": { + "agent-base": "^4.1.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", + "dev": true + }, + "ieee754": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", + "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "import-local": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", + "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", + "dev": true, + "requires": { + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "dev": true, + "optional": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflection": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.12.0.tgz", + "integrity": "sha1-ogCTVlbW9fa8TcdQLhrstwMihBY=", + "dev": true, + "optional": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "internal-ip": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", + "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", + "dev": true, + "requires": { + "meow": "^3.3.0" + } + }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ipaddr.js": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", + "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/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": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "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": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-my-ip-valid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", + "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", + "dev": true, + "optional": true + }, + "is-my-json-valid": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.19.0.tgz", + "integrity": "sha512-mG0f/unGX1HZ5ep4uhRaPOS8EkAY8/j6mDRMJrutq4CqhoJWYp7qAlonIPy3TV7p3ju4TK9fo/PbnoksWmsp5Q==", + "dev": true, + "optional": true, + "requires": { + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "is-my-ip-valid": "^1.0.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "dev": true, + "requires": { + "buffer-alloc": "^1.2.0" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-api": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz", + "integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==", + "dev": true, + "requires": { + "async": "^2.1.4", + "fileset": "^2.0.2", + "istanbul-lib-coverage": "^1.2.1", + "istanbul-lib-hook": "^1.2.2", + "istanbul-lib-instrument": "^1.10.2", + "istanbul-lib-report": "^1.1.5", + "istanbul-lib-source-maps": "^1.2.6", + "istanbul-reports": "^1.5.1", + "js-yaml": "^3.7.0", + "mkdirp": "^0.5.1", + "once": "^1.4.0" + } + }, + "istanbul-instrumenter-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz", + "integrity": "sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==", + "dev": true, + "requires": { + "convert-source-map": "^1.5.0", + "istanbul-lib-instrument": "^1.7.3", + "loader-utils": "^1.1.0", + "schema-utils": "^0.3.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "dev": true, + "requires": { + "ajv": "^5.0.0" + } + } + } + }, + "istanbul-lib-coverage": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", + "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz", + "integrity": "sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==", + "dev": true, + "requires": { + "append-transform": "^0.4.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", + "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", + "dev": true, + "requires": { + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.1", + "semver": "^5.3.0" + } + }, + "istanbul-lib-report": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz", + "integrity": "sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz", + "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" + }, + "dependencies": { + "debug": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz", + "integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==", + "dev": true, + "requires": { + "handlebars": "^4.0.3" + } + }, + "jasmine": { + "version": "2.99.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.99.0.tgz", + "integrity": "sha1-jKctEC5jm4Z8ZImFbg4YqceqQrc=", + "dev": true, + "requires": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.99.0" + }, + "dependencies": { + "jasmine-core": { + "version": "2.99.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz", + "integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=", + "dev": true + } + } + }, + "jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "dev": true + }, + "jasmine-spec-reporter": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz", + "integrity": "sha512-FZBoZu7VE5nR7Nilzy+Np8KuVIOxF4oXDPDknehCYBDE080EnlPu0afdZNmpGDBRCUBv3mj5qgqCRmk6W/K8vg==", + "dev": true, + "requires": { + "colors": "1.1.2" + } + }, + "jasminewd2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", + "dev": true + }, + "js-base64": { + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", + "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==", + "dev": true, + "optional": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "json-loader": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "optional": true, + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true, + "optional": true + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true, + "optional": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "karma": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/karma/-/karma-2.0.5.tgz", + "integrity": "sha512-rECezBeY7mjzGUWhFlB7CvPHgkHJLXyUmWg+6vHCEsdWNUTnmiS6jRrIMcJEWgU2DUGZzGWG0bTRVky8fsDTOA==", + "dev": true, + "requires": { + "bluebird": "^3.3.0", + "body-parser": "^1.16.1", + "chokidar": "^2.0.3", + "colors": "^1.1.0", + "combine-lists": "^1.0.0", + "connect": "^3.6.0", + "core-js": "^2.2.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.0", + "expand-braces": "^0.1.1", + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "http-proxy": "^1.13.0", + "isbinaryfile": "^3.0.0", + "lodash": "^4.17.4", + "log4js": "^2.5.3", + "mime": "^1.3.4", + "minimatch": "^3.0.2", + "optimist": "^0.6.1", + "qjobs": "^1.1.4", + "range-parser": "^1.2.0", + "rimraf": "^2.6.0", + "safe-buffer": "^5.0.1", + "socket.io": "2.0.4", + "source-map": "^0.6.1", + "tmp": "0.0.33", + "useragent": "2.2.1" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/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": "https://registry.npmjs.org/define-property/-/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": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/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": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/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": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "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": "https://registry.npmjs.org/define-property/-/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": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/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": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/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": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/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": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "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" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "karma-chrome-launcher": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", + "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", + "dev": true, + "requires": { + "fs-access": "^1.0.0", + "which": "^1.2.1" + } + }, + "karma-coverage-istanbul-reporter": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-1.4.3.tgz", + "integrity": "sha1-O13/RmT6W41RlrmInj9hwforgNk=", + "dev": true, + "requires": { + "istanbul-api": "^1.3.1", + "minimatch": "^3.0.4" + } + }, + "karma-jasmine": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.2.tgz", + "integrity": "sha1-OU8rJf+0pkS5rabyLUQ+L9CIhsM=", + "dev": true + }, + "karma-jasmine-html-reporter": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz", + "integrity": "sha1-SKjl7xiAdhfuK14zwRlMNbQ5Ukw=", + "dev": true, + "requires": { + "karma-jasmine": "^1.0.2" + } + }, + "karma-source-map-support": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.3.0.tgz", + "integrity": "sha512-HcPqdAusNez/ywa+biN4EphGz62MmQyPggUsDfsHqa7tSe4jdsxgvTKuDfIazjL+IOxpVWyT7Pr4dhAV+sxX5Q==", + "dev": true, + "requires": { + "source-map-support": "^0.5.5" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", + "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "less": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/less/-/less-2.7.3.tgz", + "integrity": "sha512-KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==", + "dev": true, + "requires": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.2.11", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "2.81.0", + "source-map": "^0.5.3" + } + }, + "less-loader": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz", + "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==", + "dev": true, + "requires": { + "clone": "^2.1.1", + "loader-utils": "^1.1.0", + "pify": "^3.0.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "optional": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "libbase64": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-0.1.0.tgz", + "integrity": "sha1-YjUag5VjrF/1vSbxL2Dpgwu3UeY=", + "dev": true + }, + "libmime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/libmime/-/libmime-3.0.0.tgz", + "integrity": "sha1-UaGp50SOy9Ms2lRCFnW7IbwJPaY=", + "dev": true, + "requires": { + "iconv-lite": "0.4.15", + "libbase64": "0.1.0", + "libqp": "1.1.0" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.15", + "resolved": "http://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", + "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=", + "dev": true + } + } + }, + "libqp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz", + "integrity": "sha1-9ebgatdLeU+1tbZpiL9yjvHe2+g=", + "dev": true + }, + "license-webpack-plugin": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-1.5.0.tgz", + "integrity": "sha512-Of/H79rZqm2aeg4RnP9SMSh19qkKemoLT5VaJV58uH5AxeYWEcBgGFs753JEJ/Hm6BPvQVfIlrrjoBwYj8p7Tw==", + "dev": true, + "requires": { + "ejs": "^2.5.7" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/load-json-file/-/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" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "loader-runner": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.1.tgz", + "integrity": "sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw==", + "dev": true + }, + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true, + "optional": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "lodash.mergewith": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", + "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", + "dev": true, + "optional": true + }, + "lodash.tail": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", + "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", + "dev": true + }, + "log4js": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-2.11.0.tgz", + "integrity": "sha512-z1XdwyGFg8/WGkOyF6DPJjivCWNLKrklGdViywdYnSKOvgtEBo2UyEMZS5sD2mZrQlU3TvO8wDWLc8mzE1ncBQ==", + "dev": true, + "requires": { + "amqplib": "^0.5.2", + "axios": "^0.15.3", + "circular-json": "^0.5.4", + "date-format": "^1.2.0", + "debug": "^3.1.0", + "hipchat-notifier": "^1.1.0", + "loggly": "^1.1.0", + "mailgun-js": "^0.18.0", + "nodemailer": "^2.5.0", + "redis": "^2.7.1", + "semver": "^5.5.0", + "slack-node": "~0.2.0", + "streamroller": "0.7.0" + }, + "dependencies": { + "debug": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "loggly": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/loggly/-/loggly-1.1.1.tgz", + "integrity": "sha1-Cg/B0/o6XsRP3HuJe+uipGlc6+4=", + "dev": true, + "optional": true, + "requires": { + "json-stringify-safe": "5.0.x", + "request": "2.75.x", + "timespan": "2.3.x" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "optional": true + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "dev": true, + "optional": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "form-data": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.0.0.tgz", + "integrity": "sha1-bwrrrcxdoWwT4ezBETfYX5uIOyU=", + "dev": true, + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.11" + } + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "dev": true, + "optional": true, + "requires": { + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^2.0.0" + } + }, + "node-uuid": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=", + "dev": true, + "optional": true + }, + "qs": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz", + "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=", + "dev": true, + "optional": true + }, + "request": { + "version": "2.75.0", + "resolved": "http://registry.npmjs.org/request/-/request-2.75.0.tgz", + "integrity": "sha1-0rgmiihtoT6qXQGt9dGMyQ9lfZM=", + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "bl": "~1.1.2", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.0.0", + "har-validator": "~2.0.6", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "node-uuid": "~1.4.7", + "oauth-sign": "~0.8.1", + "qs": "~6.2.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "optional": true + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true, + "optional": true + } + } + }, + "loglevel": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz", + "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "magic-string": { + "version": "0.22.5", + "resolved": "http://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "dev": true, + "requires": { + "vlq": "^0.2.2" + } + }, + "mailcomposer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/mailcomposer/-/mailcomposer-4.0.1.tgz", + "integrity": "sha1-DhxEsqB890DuF9wUm6AJ8Zyt/rQ=", + "dev": true, + "optional": true, + "requires": { + "buildmail": "4.0.1", + "libmime": "3.0.0" + } + }, + "mailgun-js": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/mailgun-js/-/mailgun-js-0.18.1.tgz", + "integrity": "sha512-lvuMP14u24HS2uBsJEnzSyPMxzU2b99tQsIx1o6QNjqxjk8b3WvR+vq5oG1mjqz/IBYo+5gF+uSoDS0RkMVHmg==", + "dev": true, + "optional": true, + "requires": { + "async": "~2.6.0", + "debug": "~3.1.0", + "form-data": "~2.3.0", + "inflection": "~1.12.0", + "is-stream": "^1.1.0", + "path-proxy": "~1.0.0", + "promisify-call": "^2.0.2", + "proxy-agent": "~3.0.0", + "tsscmp": "~1.0.0" + }, + "dependencies": { + "combined-stream": { + "version": "1.0.6", + "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dev": true, + "optional": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "dev": true, + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + } + } + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "make-error": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", + "dev": true + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "dev": true + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.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" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.36.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", + "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==", + "dev": true + }, + "mime-types": { + "version": "2.1.20", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", + "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", + "dev": true, + "requires": { + "mime-db": "~1.36.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mississippi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", + "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "dev": true, + "requires": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", + "dev": true + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "nan": { + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", + "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "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" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "dev": true + }, + "neo-async": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.2.tgz", + "integrity": "sha512-vdqTKI9GBIYcAEbFAcpKPErKINfPF5zIuz3/niBfq8WUZjpT2tytLlFVrBgWdOtqI4uaA/Rb6No0hux39XXDuw==", + "dev": true + }, + "netmask": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", + "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=", + "dev": true, + "optional": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-forge": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", + "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==", + "dev": true + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "optional": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "optional": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, + "optional": true + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "dev": true, + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + }, + "dependencies": { + "combined-stream": { + "version": "1.0.6", + "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dev": true, + "optional": true, + "requires": { + "delayed-stream": "~1.0.0" + } + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "optional": true + }, + "har-validator": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", + "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", + "dev": true, + "optional": true, + "requires": { + "ajv": "^5.3.0", + "har-schema": "^2.0.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "optional": true, + "requires": { + "abbrev": "1" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "optional": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true, + "optional": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true, + "optional": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true, + "optional": true + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true, + "optional": true + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "optional": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + } + } + }, + "node-libs-browser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", + "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^1.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.0", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.10.3", + "vm-browserify": "0.0.4" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "node-modules-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/node-modules-path/-/node-modules-path-1.0.1.tgz", + "integrity": "sha1-QAlrCM560OoUaAhjr0ScfHWl0cg=", + "dev": true + }, + "node-sass": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.3.tgz", + "integrity": "sha512-XzXyGjO+84wxyH7fV6IwBOTrEBe2f0a6SBze9QWWYR/cL74AcQUks2AsqcCZenl/Fp/JVbuEaLpgrLtocwBUww==", + "dev": true, + "optional": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash.assign": "^4.2.0", + "lodash.clonedeep": "^4.3.2", + "lodash.mergewith": "^4.6.0", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.10.0", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "2.87.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "optional": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "optional": true + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, + "optional": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "dev": true, + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + }, + "dependencies": { + "combined-stream": { + "version": "1.0.6", + "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dev": true, + "optional": true, + "requires": { + "delayed-stream": "~1.0.0" + } + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "optional": true + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "dev": true, + "optional": true, + "requires": { + "ajv": "^5.1.0", + "har-schema": "^2.0.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true, + "optional": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true, + "optional": true + }, + "request": { + "version": "2.87.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", + "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "optional": true + } + } + }, + "nodemailer": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-2.7.2.tgz", + "integrity": "sha1-8kLmSa7q45tsftdA73sGHEBNMPk=", + "dev": true, + "optional": true, + "requires": { + "libmime": "3.0.0", + "mailcomposer": "4.0.1", + "nodemailer-direct-transport": "3.3.2", + "nodemailer-shared": "1.1.0", + "nodemailer-smtp-pool": "2.8.2", + "nodemailer-smtp-transport": "2.7.2", + "socks": "1.1.9" + }, + "dependencies": { + "smart-buffer": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz", + "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=", + "dev": true, + "optional": true + }, + "socks": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.9.tgz", + "integrity": "sha1-Yo1+TQSRJDVEWsC25Fk3bLPm1pE=", + "dev": true, + "optional": true, + "requires": { + "ip": "^1.1.2", + "smart-buffer": "^1.0.4" + } + } + } + }, + "nodemailer-direct-transport": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/nodemailer-direct-transport/-/nodemailer-direct-transport-3.3.2.tgz", + "integrity": "sha1-6W+vuQNYVglH5WkBfZfmBzilCoY=", + "dev": true, + "optional": true, + "requires": { + "nodemailer-shared": "1.1.0", + "smtp-connection": "2.12.0" + } + }, + "nodemailer-fetch": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz", + "integrity": "sha1-ecSQihwPXzdbc/6IjamCj23JY6Q=", + "dev": true + }, + "nodemailer-shared": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz", + "integrity": "sha1-z1mU4v0mjQD1zw+nZ6CBae2wfsA=", + "dev": true, + "requires": { + "nodemailer-fetch": "1.6.0" + } + }, + "nodemailer-smtp-pool": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/nodemailer-smtp-pool/-/nodemailer-smtp-pool-2.8.2.tgz", + "integrity": "sha1-LrlNbPhXgLG0clzoU7nL1ejajHI=", + "dev": true, + "optional": true, + "requires": { + "nodemailer-shared": "1.1.0", + "nodemailer-wellknown": "0.1.10", + "smtp-connection": "2.12.0" + } + }, + "nodemailer-smtp-transport": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/nodemailer-smtp-transport/-/nodemailer-smtp-transport-2.7.2.tgz", + "integrity": "sha1-A9ccdjFPFKx9vHvwM6am0W1n+3c=", + "dev": true, + "optional": true, + "requires": { + "nodemailer-shared": "1.1.0", + "nodemailer-wellknown": "0.1.10", + "smtp-connection": "2.12.0" + } + }, + "nodemailer-wellknown": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/nodemailer-wellknown/-/nodemailer-wellknown-0.1.10.tgz", + "integrity": "sha1-WG24EB2zDLRDjrVGc3pBqtDPE9U=", + "dev": true + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "dev": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "nth-check": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", + "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "null-check": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", + "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", + "dev": true + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/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": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "object-keys": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", + "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "opn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.1.0.tgz", + "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "optional": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + }, + "dependencies": { + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true, + "optional": true + } + } + }, + "options": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", + "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", + "dev": true + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "dev": true + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "pac-proxy-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-3.0.0.tgz", + "integrity": "sha512-AOUX9jES/EkQX2zRz0AW7lSx9jD//hQS8wFXBvcnd/J2Py9KaMJMqV/LPqJssj1tgGufotb2mmopGPR15ODv1Q==", + "dev": true, + "optional": true, + "requires": { + "agent-base": "^4.2.0", + "debug": "^3.1.0", + "get-uri": "^2.0.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "pac-resolver": "^3.0.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "^4.0.1" + }, + "dependencies": { + "debug": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true, + "optional": true + } + } + }, + "pac-resolver": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-3.0.0.tgz", + "integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==", + "dev": true, + "optional": true, + "requires": { + "co": "^4.6.0", + "degenerator": "^1.0.4", + "ip": "^1.1.5", + "netmask": "^1.0.6", + "thunkify": "^2.1.2" + } + }, + "pako": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", + "dev": true + }, + "parallel-transform": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "dev": true, + "requires": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "parse-asn1": { + "version": "5.1.1", + "resolved": "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", + "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", + "dev": true, + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-proxy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/path-proxy/-/path-proxy-1.0.0.tgz", + "integrity": "sha1-GOijaFn8nS8aU7SN7hOFQ8Ag3l4=", + "dev": true, + "optional": true, + "requires": { + "inflection": "~1.3.0" + }, + "dependencies": { + "inflection": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.3.8.tgz", + "integrity": "sha1-y9Fg2p91sUw8xjV41POWeEvzAU4=", + "dev": true, + "optional": true + } + } + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "dev": true, + "optional": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "portfinder": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.17.tgz", + "integrity": "sha512-syFcRIRzVI1BoEFOCaAiizwDolh1S1YXSodsVhncbhjzjZQulhczNRbqnUl9N31Q4dKGOXsNDqxC2BWBgSMqeQ==", + "dev": true, + "requires": { + "async": "^1.5.2", + "debug": "^2.2.0", + "mkdirp": "0.5.x" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-import": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-11.1.0.tgz", + "integrity": "sha512-5l327iI75POonjxkXgdRCUS+AlzAdBx4pOvMEhTKTCjb1p8IEeVR9yx3cPbmN7LIWJLbfnIXxAhoB4jpD0c/Cw==", + "dev": true, + "requires": { + "postcss": "^6.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-load-config": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz", + "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==", + "dev": true, + "requires": { + "cosmiconfig": "^4.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-loader": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.6.tgz", + "integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^6.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^0.4.0" + } + }, + "postcss-url": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-7.3.2.tgz", + "integrity": "sha512-QMV5mA+pCYZQcUEPQkmor9vcPQ2MT+Ipuu8qdi1gVxbNiIiErEGft+eny1ak19qALoBkccS5AHaCaCDzh7b9MA==", + "dev": true, + "requires": { + "mime": "^1.4.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.0", + "postcss": "^6.0.1", + "xxhashjs": "^0.2.1" + } + }, + "postcss-value-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "pretty-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "dev": true, + "requires": { + "renderkid": "^2.0.1", + "utila": "~0.4" + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "optional": true, + "requires": { + "asap": "~2.0.3" + } + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promisify-call": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/promisify-call/-/promisify-call-2.0.4.tgz", + "integrity": "sha1-1IwtRWUszM1SgB3ey9UzptS9X7o=", + "dev": true, + "optional": true, + "requires": { + "with-callback": "^1.0.2" + } + }, + "protractor": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.1.2.tgz", + "integrity": "sha1-myIXQXCaTGLVzVPGqt1UpxE36V8=", + "dev": true, + "requires": { + "@types/node": "^6.0.46", + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "~2.53.39", + "blocking-proxy": "0.0.5", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "^2.5.3", + "jasminewd2": "^2.1.0", + "optimist": "~0.6.0", + "q": "1.4.1", + "saucelabs": "~1.3.0", + "selenium-webdriver": "3.0.1", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "^1.0.0", + "webdriver-manager": "^12.0.6" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + }, + "dependencies": { + "combined-stream": { + "version": "1.0.6", + "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + } + } + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", + "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", + "dev": true, + "requires": { + "ajv": "^5.3.0", + "har-schema": "^2.0.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + }, + "webdriver-manager": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.0.tgz", + "integrity": "sha512-oEc5fmkpz6Yh6udhwir5m0eN5mgRPq9P/NU5YWuT3Up5slt6Zz+znhLU7q4+8rwCZz/Qq3Fgpr/4oao7NPCm2A==", + "dev": true, + "requires": { + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + } + } + } + }, + "proxy-addr": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", + "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.8.0" + } + }, + "proxy-agent": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-3.0.3.tgz", + "integrity": "sha512-PXVVVuH9tiQuxQltFJVSnXWuDtNr+8aNBP6XVDDCDiUuDN8eRCm+ii4/mFWmXWEA0w8jjJSlePa4LXlM4jIzNA==", + "dev": true, + "optional": true, + "requires": { + "agent-base": "^4.2.0", + "debug": "^3.1.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^4.1.2", + "pac-proxy-agent": "^3.0.0", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^4.0.1" + }, + "dependencies": { + "debug": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true, + "optional": true + } + } + }, + "proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=", + "dev": true, + "optional": true + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.1.29", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", + "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true + }, + "qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "dev": true, + "optional": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.0.0.tgz", + "integrity": "sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw==", + "dev": true + }, + "randomatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz", + "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", + "dev": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "randombytes": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "dev": true + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "dev": true, + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" + }, + "dependencies": { + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", + "dev": true + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "dev": true, + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": ">= 1.3.1 < 2" + } + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "dev": true + } + } + }, + "raw-loader": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", + "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", + "dev": true + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "requires": { + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "dependencies": { + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + } + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "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" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/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": "https://registry.npmjs.org/define-property/-/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": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/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": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/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": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "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": "https://registry.npmjs.org/define-property/-/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": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/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": "https://registry.npmjs.org/extend-shallow/-/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": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/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": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "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" + } + } + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "redis": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz", + "integrity": "sha512-M1OkonEQwtRmZv4tEWF2VgpG0JWJ8Fv1PhlgT5+B+uNq2cA3Rt1Yt/ryoR+vQNOQcIEgdCdfH0jr3bDpihAw1A==", + "dev": true, + "optional": true, + "requires": { + "double-ended-queue": "^2.1.0-0", + "redis-commands": "^1.2.0", + "redis-parser": "^2.6.0" + } + }, + "redis-commands": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.3.5.tgz", + "integrity": "sha512-foGF8u6MXGFF++1TZVC6icGXuMYPftKXt1FBT2vrfU9ZATNtZJ8duRC5d1lEfE8hyVe3jhelHGB91oB7I6qLsA==", + "dev": true, + "optional": true + }, + "redis-parser": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz", + "integrity": "sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs=", + "dev": true, + "optional": true + }, + "reflect-metadata": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.12.tgz", + "integrity": "sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A==", + "dev": true + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpu-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "renderkid": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.2.tgz", + "integrity": "sha512-FsygIxevi1jSiPY9h7vZmBFUbAOcbYm9UwyiLNdVsLRs/5We9Ob5NMPbGYUTWiLq5L+ezlVdE0A8bbME5CWTpg==", + "dev": true, + "requires": { + "css-select": "^1.1.0", + "dom-converter": "~0.2", + "htmlparser2": "~3.3.0", + "strip-ansi": "^3.0.0", + "utila": "^0.4.0" + } + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" + } + }, + "requestretry": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-1.13.0.tgz", + "integrity": "sha512-Lmh9qMvnQXADGAQxsXHP4rbgO6pffCfuR8XUBdP9aitJcLQJxhp7YZK4xAVYXnPJ5E52mwrfiKQtKonPL8xsmg==", + "dev": true, + "optional": true, + "requires": { + "extend": "^3.0.0", + "lodash": "^4.15.0", + "request": "^2.74.0", + "when": "^3.7.7" + }, + "dependencies": { + "when": { + "version": "3.7.8", + "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz", + "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=", + "dev": true, + "optional": true + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "dev": true, + "requires": { + "path-parse": "^1.0.5" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "^7.0.5" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rxjs": { + "version": "5.5.12", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", + "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "requires": { + "symbol-observable": "1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass-graph": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", + "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "dev": true, + "optional": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" + } + }, + "sass-loader": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-6.0.7.tgz", + "integrity": "sha512-JoiyD00Yo1o61OJsoP2s2kb19L1/Y2p3QFcCdWdF6oomBGKVYuZyqHWemRBfQ2uGYsk+CH3eCguXNfpjzlcpaA==", + "dev": true, + "requires": { + "clone-deep": "^2.0.1", + "loader-utils": "^1.0.1", + "lodash.tail": "^4.1.1", + "neo-async": "^2.5.0", + "pify": "^3.0.0" + } + }, + "saucelabs": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.3.0.tgz", + "integrity": "sha1-0kDoAJ33+ocwbsRXimm6O1xCT+4=", + "dev": true, + "requires": { + "https-proxy-agent": "^1.0.0" + }, + "dependencies": { + "agent-base": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz", + "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=", + "dev": true, + "requires": { + "extend": "~3.0.0", + "semver": "~5.0.1" + } + }, + "https-proxy-agent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz", + "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=", + "dev": true, + "requires": { + "agent-base": "2", + "debug": "2", + "extend": "3" + } + }, + "semver": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz", + "integrity": "sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no=", + "dev": true + } + } + }, + "sax": { + "version": "0.5.8", + "resolved": "http://registry.npmjs.org/sax/-/sax-0.5.8.tgz", + "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=", + "dev": true + }, + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "optional": true, + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "optional": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selenium-webdriver": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.0.1.tgz", + "integrity": "sha1-ot6l2kqX9mcuiefKcnbO+jZRR6c=", + "dev": true, + "requires": { + "adm-zip": "^0.4.7", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "dependencies": { + "tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.1" + } + } + } + }, + "selfsigned": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.3.tgz", + "integrity": "sha512-vmZenZ+8Al3NLHkWnhBQ0x6BkML1eCP2xEi3JE+f3D9wW9fipD9NNJHYtE9XJM4TsPaHGZJIamrSI6MTg1dU2Q==", + "dev": true, + "requires": { + "node-forge": "0.7.5" + } + }, + "semver": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", + "dev": true + }, + "semver-dsl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", + "dev": true, + "requires": { + "semver": "^5.3.0" + } + }, + "semver-intersect": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", + "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", + "dev": true, + "requires": { + "semver": "^5.0.0" + } + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "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": { + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", + "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", + "dev": true + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/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" + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "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": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", + "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", + "dev": true, + "requires": { + "is-extendable": "^0.1.1", + "kind-of": "^5.0.0", + "mixin-object": "^2.0.1" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "silent-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/silent-error/-/silent-error-1.1.0.tgz", + "integrity": "sha1-IglwbxyFCp8dENDYQJGLRvJuG8k=", + "dev": true, + "requires": { + "debug": "^2.2.0" + } + }, + "slack-node": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/slack-node/-/slack-node-0.2.0.tgz", + "integrity": "sha1-3kuN3aqLeT9h29KTgQT9q/N9+jA=", + "dev": true, + "optional": true, + "requires": { + "requestretry": "^1.2.2" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "smart-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.1.tgz", + "integrity": "sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg==", + "dev": true + }, + "smtp-connection": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/smtp-connection/-/smtp-connection-2.12.0.tgz", + "integrity": "sha1-1275EnyyPCJZ7bHoNJwujV4tdME=", + "dev": true, + "requires": { + "httpntlm": "1.6.1", + "nodemailer-shared": "1.1.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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": "https://registry.npmjs.org/define-property/-/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": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "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": "https://registry.npmjs.org/define-property/-/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": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "optional": true, + "requires": { + "hoek": "2.x.x" + } + }, + "socket.io": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.0.4.tgz", + "integrity": "sha1-waRZDO/4fs8TxyZS8Eb3FrKeYBQ=", + "dev": true, + "requires": { + "debug": "~2.6.6", + "engine.io": "~3.1.0", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.0.4", + "socket.io-parser": "~3.1.1" + } + }, + "socket.io-adapter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", + "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=", + "dev": true + }, + "socket.io-client": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.0.4.tgz", + "integrity": "sha1-CRilUkBtxeVAs4Dc2Xr8SmQzL44=", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~2.6.4", + "engine.io-client": "~3.1.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.1.1", + "to-array": "0.1.4" + } + }, + "socket.io-parser": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.1.3.tgz", + "integrity": "sha512-g0a2HPqLguqAczs3dMECuA1RgoGFPyvDqcbaDEdCWY9g59kdUAz3YRmaJBNKXflrHNwB7Q12Gkf/0CZXfdHR7g==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "has-binary2": "~1.0.2", + "isarray": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "dev": true, + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" + } + }, + "sockjs-client": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.5.tgz", + "integrity": "sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=", + "dev": true, + "requires": { + "debug": "^2.6.6", + "eventsource": "0.1.6", + "faye-websocket": "~0.11.0", + "inherits": "^2.0.1", + "json3": "^3.3.2", + "url-parse": "^1.1.8" + }, + "dependencies": { + "faye-websocket": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", + "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "socks": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.2.1.tgz", + "integrity": "sha512-0GabKw7n9mI46vcNrVfs0o6XzWzjVa3h6GaSo2UPxtWAROXUWavfJWh1M4PR5tnE0dcnQXZIDFP4yrAysLze/w==", + "dev": true, + "requires": { + "ip": "^1.1.5", + "smart-buffer": "^4.0.1" + } + }, + "socks-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz", + "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==", + "dev": true, + "requires": { + "agent-base": "~4.2.0", + "socks": "~2.2.0" + } + }, + "source-list-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "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-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "spdx-correct": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", + "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz", + "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==", + "dev": true + }, + "spdy": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", + "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", + "dev": true, + "requires": { + "debug": "^2.6.8", + "handle-thing": "^1.2.5", + "http-deceiver": "^1.2.7", + "safe-buffer": "^5.0.1", + "select-hose": "^2.0.0", + "spdy-transport": "^2.0.18" + } + }, + "spdy-transport": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.0.tgz", + "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", + "dev": true, + "requires": { + "debug": "^2.6.8", + "detect-node": "^2.0.3", + "hpack.js": "^2.1.6", + "obuf": "^1.1.1", + "readable-stream": "^2.2.9", + "safe-buffer": "^5.0.1", + "wbuf": "^1.7.2" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "ssri": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", + "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/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": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "optional": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true + }, + "streamroller": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-0.7.0.tgz", + "integrity": "sha512-WREzfy0r0zUqp3lGO096wRuUp7ho1X6uo/7DJfTlEi0Iv/4gT7YHqXDjKC2ioVGBZtE8QzsQD9nx1nIuoZ57jQ==", + "dev": true, + "requires": { + "date-format": "^1.2.0", + "debug": "^3.1.0", + "mkdirp": "^0.5.1", + "readable-stream": "^2.3.0" + }, + "dependencies": { + "debug": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/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": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "stringstream": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", + "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://registry.npmjs.org/strip-ansi/-/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": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "style-loader": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.1.tgz", + "integrity": "sha512-IRE+ijgojrygQi3rsqT0U4dd+UcPCqcVvauZpCnQrGAlEe+FUIyrK93bUDScamesjP08JlQNsFJU+KmPedP5Og==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^0.3.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "dev": true, + "requires": { + "ajv": "^5.0.0" + } + } + } + }, + "stylus": { + "version": "0.54.5", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz", + "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=", + "dev": true, + "requires": { + "css-parse": "1.7.x", + "debug": "*", + "glob": "7.0.x", + "mkdirp": "0.5.x", + "sax": "0.5.x", + "source-map": "0.1.x" + }, + "dependencies": { + "glob": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", + "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "stylus-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", + "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "lodash.clonedeep": "^4.5.0", + "when": "~3.6.x" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "^2.0.0" + } + }, + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=" + }, + "tapable": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", + "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", + "dev": true + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, + "optional": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } + }, + "through": { + "version": "2.3.8", + "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + } + }, + "thunkify": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz", + "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=", + "dev": true, + "optional": true + }, + "thunky": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz", + "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=", + "dev": true + }, + "time-stamp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.1.0.tgz", + "integrity": "sha512-lJbq6KsFhZJtN3fPUVje1tq/hHsJOKUUcUj/MGCiQR6qWBDcyi5kxL9J7/RnaEChCn0+L/DUN2WvemDrkk4i3Q==", + "dev": true + }, + "timers-browserify": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", + "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timespan": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz", + "integrity": "sha1-SQLOBAvRPYRcj1myfp1ZutbzmSk=", + "dev": true, + "optional": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "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": "https://registry.npmjs.org/to-regex-range/-/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" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + } + } + }, + "toposort": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", + "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", + "dev": true + }, + "tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "dev": true, + "optional": true, + "requires": { + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true, + "optional": true + } + } + }, + "tree-kill": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz", + "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==", + "dev": true + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.2" + } + }, + "ts-node": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-4.1.0.tgz", + "integrity": "sha512-xcZH12oVg9PShKhy3UHyDmuDLV3y7iKwX25aMVPt1SIXSuAfWkFiGPEkg+th8R4YKW/QCxDoW7lJdb15lx6QWg==", + "dev": true, + "requires": { + "arrify": "^1.0.0", + "chalk": "^2.3.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.0", + "tsconfig": "^7.0.0", + "v8flags": "^3.0.0", + "yn": "^2.0.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", + "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "tsconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", + "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", + "dev": true, + "requires": { + "@types/strip-bom": "^3.0.0", + "@types/strip-json-comments": "0.0.30", + "strip-bom": "^3.0.0", + "strip-json-comments": "^2.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "tsickle": { + "version": "0.27.5", + "resolved": "http://registry.npmjs.org/tsickle/-/tsickle-0.27.5.tgz", + "integrity": "sha512-NP+CjM1EXza/M8mOXBLH3vkFEJiu1zfEAlC5WdJxHPn8l96QPz5eooP6uAgYtw1CcKfuSyIiheNUdKxtDWCNeg==", + "dev": true, + "requires": { + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map": "^0.6.0", + "source-map-support": "^0.5.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", + "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" + }, + "tslint": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.9.1.tgz", + "integrity": "sha1-ElX4ej/1frCw4fDmEKi0dIBGya4=", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.7.0", + "minimatch": "^3.0.4", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.12.1" + }, + "dependencies": { + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "dev": true, + "optional": true + }, + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-is": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.18" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typescript": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.5.3.tgz", + "integrity": "sha512-ptLSQs2S4QuS6/OD1eAKG+S5G8QQtrU5RT32JULdZQtM1L3WTi34Wsu48Yndzi8xsObRAB9RPt/KhA9wlpEF6w==", + "dev": true + }, + "uglify-js": { + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", + "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", + "dev": true, + "requires": { + "commander": "~2.17.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, + "optional": true + }, + "uglifyjs-webpack-plugin": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", + "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", + "dev": true, + "requires": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "schema-utils": "^0.4.5", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "uglify-es": "^3.3.4", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "dependencies": { + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "dev": true, + "requires": { + "commander": "~2.13.0", + "source-map": "~0.6.1" + } + } + } + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "dev": true + }, + "underscore": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/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": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/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-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", + "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/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": "https://registry.npmjs.org/has-value/-/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": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "upath": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", + "dev": true + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-loader": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.6.2.tgz", + "integrity": "sha512-h3qf9TNn53BpuXTTcpC+UehiRrl0Cv45Yr/xWayApjw6G8Bg2dGke7rIwDQ39piciWCWrC+WiqLjOh3SUp9n0Q==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "mime": "^1.4.1", + "schema-utils": "^0.3.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "dev": true, + "requires": { + "ajv": "^5.0.0" + } + } + } + }, + "url-parse": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.3.tgz", + "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==", + "dev": true, + "requires": { + "querystringify": "^2.0.0", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "useragent": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.2.1.tgz", + "integrity": "sha1-z1k+9PLRdYdei7ZY6pLhik/QbY4=", + "dev": true, + "requires": { + "lru-cache": "2.2.x", + "tmp": "0.0.x" + }, + "dependencies": { + "lru-cache": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz", + "integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=", + "dev": true + } + } + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + }, + "uws": { + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/uws/-/uws-9.14.0.tgz", + "integrity": "sha512-HNMztPP5A1sKuVFmdZ6BPVpBQd5bUjNC8EFMFiICK+oho/OQsAJy5hnIx4btMHiOk8j04f/DbIlqnEZ9d72dqg==", + "dev": true, + "optional": true + }, + "v8flags": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.1.tgz", + "integrity": "sha512-iw/1ViSEaff8NJ3HLyEjawk/8hjJib3E7pvG4pddVXfUg1983s3VGsiClDjhK64MQVDGqc1Q8r18S4VKQZS9EQ==", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "vlq": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", + "dev": true + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "dev": true, + "requires": { + "indexof": "0.0.1" + } + }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true + }, + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "dev": true, + "requires": { + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/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": "https://registry.npmjs.org/define-property/-/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": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/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": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/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": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "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": "https://registry.npmjs.org/define-property/-/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": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/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": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/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": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/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": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "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" + } + } + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webdriver-js-extender": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-1.0.0.tgz", + "integrity": "sha1-gcUzqeM9W/tZe05j4s2yW1R3dRU=", + "dev": true, + "requires": { + "@types/selenium-webdriver": "^2.53.35", + "selenium-webdriver": "^2.53.2" + }, + "dependencies": { + "adm-zip": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.4.tgz", + "integrity": "sha1-ph7VrmkFw66lizplfSUDMJEFJzY=", + "dev": true + }, + "sax": { + "version": "0.6.1", + "resolved": "http://registry.npmjs.org/sax/-/sax-0.6.1.tgz", + "integrity": "sha1-VjsZx8HeiS4Jv8Ty/DDjwn8JUrk=", + "dev": true + }, + "selenium-webdriver": { + "version": "2.53.3", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-2.53.3.tgz", + "integrity": "sha1-0p/1qVff8aG0ncRXdW5OS/vc4IU=", + "dev": true, + "requires": { + "adm-zip": "0.4.4", + "rimraf": "^2.2.8", + "tmp": "0.0.24", + "ws": "^1.0.1", + "xml2js": "0.4.4" + } + }, + "tmp": { + "version": "0.0.24", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.24.tgz", + "integrity": "sha1-1qXhmNFKmDXMby18PZ4wJCjIzxI=", + "dev": true + }, + "ultron": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", + "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", + "dev": true + }, + "ws": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", + "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", + "dev": true, + "requires": { + "options": ">=0.0.5", + "ultron": "1.0.x" + } + }, + "xml2js": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.4.tgz", + "integrity": "sha1-MREBAAMAiuGSQOuhdJe1fHKcVV0=", + "dev": true, + "requires": { + "sax": "0.6.x", + "xmlbuilder": ">=1.0.0" + } + } + } + }, + "webpack": { + "version": "3.11.0", + "resolved": "http://registry.npmjs.org/webpack/-/webpack-3.11.0.tgz", + "integrity": "sha512-3kOFejWqj5ISpJk4Qj/V7w98h9Vl52wak3CLiw/cDOfbVTq7FeoZ0SdoHHY9PYlHr50ZS42OfvzE2vB4nncKQg==", + "dev": true, + "requires": { + "acorn": "^5.0.0", + "acorn-dynamic-import": "^2.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "async": "^2.1.2", + "enhanced-resolve": "^3.4.0", + "escope": "^3.6.0", + "interpret": "^1.0.0", + "json-loader": "^0.5.4", + "json5": "^0.5.1", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "mkdirp": "~0.5.0", + "node-libs-browser": "^2.0.0", + "source-map": "^0.5.3", + "supports-color": "^4.2.1", + "tapable": "^0.2.7", + "uglifyjs-webpack-plugin": "^0.4.6", + "watchpack": "^1.4.0", + "webpack-sources": "^1.0.1", + "yargs": "^8.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "uglifyjs-webpack-plugin": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", + "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "dev": true, + "requires": { + "source-map": "^0.5.6", + "uglify-js": "^2.8.29", + "webpack-sources": "^1.0.1" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "dev": true, + "requires": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/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" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/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" + } + } + } + } + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + } + } + } + } + }, + "webpack-core": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", + "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", + "dev": true, + "requires": { + "source-list-map": "~0.1.7", + "source-map": "~0.4.1" + }, + "dependencies": { + "source-list-map": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", + "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", + "dev": true + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "webpack-dev-middleware": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz", + "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==", + "dev": true, + "requires": { + "memory-fs": "~0.4.1", + "mime": "^1.5.0", + "path-is-absolute": "^1.0.0", + "range-parser": "^1.0.3", + "time-stamp": "^2.0.0" + } + }, + "webpack-dev-server": { + "version": "2.11.3", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.11.3.tgz", + "integrity": "sha512-Qz22YEFhWx+M2vvJ+rQppRv39JA0h5NNbOOdODApdX6iZ52Diz7vTPXjF7kJlfn+Uc24Qr48I3SZ9yncQwRycg==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "array-includes": "^3.0.3", + "bonjour": "^3.5.0", + "chokidar": "^2.0.0", + "compression": "^1.5.2", + "connect-history-api-fallback": "^1.3.0", + "debug": "^3.1.0", + "del": "^3.0.0", + "express": "^4.16.2", + "html-entities": "^1.2.0", + "http-proxy-middleware": "~0.17.4", + "import-local": "^1.0.0", + "internal-ip": "1.2.0", + "ip": "^1.1.5", + "killable": "^1.0.0", + "loglevel": "^1.4.1", + "opn": "^5.1.0", + "portfinder": "^1.0.9", + "selfsigned": "^1.9.1", + "serve-index": "^1.7.2", + "sockjs": "0.3.19", + "sockjs-client": "1.1.5", + "spdy": "^3.4.1", + "strip-ansi": "^3.0.0", + "supports-color": "^5.1.0", + "webpack-dev-middleware": "1.12.2", + "yargs": "6.6.0" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" + } + }, + "debug": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", + "dev": true, + "requires": { + "ms": "^2.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/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": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/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": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/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": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/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": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "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": "https://registry.npmjs.org/define-property/-/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": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/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": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/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": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/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": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "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" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yargs": { + "version": "6.6.0", + "resolved": "http://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "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": "^4.2.0" + } + }, + "yargs-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "dev": true, + "requires": { + "camelcase": "^3.0.0" + } + } + } + }, + "webpack-merge": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.4.tgz", + "integrity": "sha512-TmSe1HZKeOPey3oy1Ov2iS3guIZjWvMT2BBJDzzT5jScHTjVC3mpjJofgueEzaEd6ibhxRDD6MIblDr8tzh8iQ==", + "dev": true, + "requires": { + "lodash": "^4.17.5" + } + }, + "webpack-sources": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", + "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "webpack-subresource-integrity": { + "version": "1.0.4", + "resolved": "http://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.0.4.tgz", + "integrity": "sha1-j6yKfo61n8ahZ2ioXJ2U7n+dDts=", + "dev": true, + "requires": { + "webpack-core": "^0.6.8" + } + }, + "websocket-driver": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/websocket-driver/-/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": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "dev": true + }, + "when": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", + "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "with-callback": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/with-callback/-/with-callback-1.0.2.tgz", + "integrity": "sha1-oJYpuakgAo1yFAT7Q1vc/1yRvCE=", + "dev": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + }, + "worker-farm": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", + "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "http://registry.npmjs.org/wrap-ansi/-/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": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + }, + "xml2js": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~9.0.1" + }, + "dependencies": { + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + } + } + }, + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "dev": true + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true + }, + "xregexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", + "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=", + "dev": true, + "optional": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "xxhashjs": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", + "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", + "dev": true, + "requires": { + "cuint": "^0.2.2" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "optional": 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" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true, + "optional": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true, + "optional": true + } + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "^3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true, + "optional": true + } + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + }, + "yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", + "dev": true + }, + "zone.js": { + "version": "0.8.26", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.26.tgz", + "integrity": "sha512-W9Nj+UmBJG251wkCacIkETgra4QgBo/vgoEkb4a2uoLzpQG7qF9nzwoLXWU5xj3Fg2mxGvEDh47mg24vXccYjA==" + } + } +} diff --git a/Angular/package.json b/Angular/package.json new file mode 100644 index 000000000..b7deeaf3e --- /dev/null +++ b/Angular/package.json @@ -0,0 +1,48 @@ +{ + "name": "angular", + "version": "0.0.0", + "license": "MIT", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build --prod", + "test": "ng test", + "lint": "ng lint", + "e2e": "ng e2e" + }, + "private": true, + "dependencies": { + "@angular/animations": "^5.2.0", + "@angular/common": "^5.2.0", + "@angular/compiler": "^5.2.0", + "@angular/core": "^5.2.0", + "@angular/forms": "^5.2.0", + "@angular/http": "^5.2.0", + "@angular/platform-browser": "^5.2.0", + "@angular/platform-browser-dynamic": "^5.2.0", + "@angular/router": "^5.2.0", + "core-js": "^2.4.1", + "rxjs": "^5.5.6", + "zone.js": "^0.8.19" + }, + "devDependencies": { + "@angular/cli": "~1.7.1", + "@angular/compiler-cli": "^5.2.0", + "@angular/language-service": "^5.2.0", + "@types/jasmine": "~2.8.3", + "@types/jasminewd2": "~2.0.2", + "@types/node": "~6.0.60", + "codelyzer": "^4.0.1", + "jasmine-core": "~2.8.0", + "jasmine-spec-reporter": "~4.2.1", + "karma": "~2.0.0", + "karma-chrome-launcher": "~2.2.0", + "karma-coverage-istanbul-reporter": "^1.2.1", + "karma-jasmine": "~1.1.0", + "karma-jasmine-html-reporter": "^0.2.2", + "protractor": "~5.1.2", + "ts-node": "~4.1.0", + "tslint": "~5.9.1", + "typescript": "~2.5.3" + } +} diff --git a/Angular/protractor.conf.js b/Angular/protractor.conf.js new file mode 100644 index 000000000..7ee3b5ee8 --- /dev/null +++ b/Angular/protractor.conf.js @@ -0,0 +1,28 @@ +// Protractor configuration file, see link for more information +// https://github.com/angular/protractor/blob/master/lib/config.ts + +const { SpecReporter } = require('jasmine-spec-reporter'); + +exports.config = { + allScriptsTimeout: 11000, + specs: [ + './e2e/**/*.e2e-spec.ts' + ], + capabilities: { + 'browserName': 'chrome' + }, + directConnect: true, + baseUrl: 'http://localhost:4200/', + framework: 'jasmine', + jasmineNodeOpts: { + showColors: true, + defaultTimeoutInterval: 30000, + print: function() {} + }, + onPrepare() { + require('ts-node').register({ + project: 'e2e/tsconfig.e2e.json' + }); + jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); + } +}; diff --git a/Angular/src/app/app.component.css b/Angular/src/app/app.component.css new file mode 100644 index 000000000..e69de29bb diff --git a/Angular/src/app/app.component.html b/Angular/src/app/app.component.html new file mode 100644 index 000000000..bb45d86a1 --- /dev/null +++ b/Angular/src/app/app.component.html @@ -0,0 +1,15 @@ +
+ + + +
\ No newline at end of file diff --git a/Angular/src/app/app.component.spec.ts b/Angular/src/app/app.component.spec.ts new file mode 100644 index 000000000..bcbdf36b3 --- /dev/null +++ b/Angular/src/app/app.component.spec.ts @@ -0,0 +1,27 @@ +import { TestBed, async } from '@angular/core/testing'; +import { AppComponent } from './app.component'; +describe('AppComponent', () => { + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ + AppComponent + ], + }).compileComponents(); + })); + it('should create the app', async(() => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.debugElement.componentInstance; + expect(app).toBeTruthy(); + })); + it(`should have as title 'app'`, async(() => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.debugElement.componentInstance; + expect(app.title).toEqual('app'); + })); + it('should render title in a h1 tag', async(() => { + const fixture = TestBed.createComponent(AppComponent); + fixture.detectChanges(); + const compiled = fixture.debugElement.nativeElement; + expect(compiled.querySelector('h1').textContent).toContain('Welcome to app!'); + })); +}); diff --git a/Angular/src/app/app.component.ts b/Angular/src/app/app.component.ts new file mode 100644 index 000000000..f1d5e3353 --- /dev/null +++ b/Angular/src/app/app.component.ts @@ -0,0 +1,24 @@ +import { Component } from '@angular/core'; +import { FormControl, FormGroup } from '@angular/forms'; + +@Component({ + selector: 'app-root', + templateUrl: './app.component.html', + styleUrls: ['./app.component.css'] +}) +export class AppComponent { + title = 'Hacktoberfest'; + hackForm: FormGroup; + + constructor() { + this.hackForm = new FormGroup({ + firstName: new FormControl(''), + lastName: new FormControl('') + }); + } + + onSubmit() { + console.warn(this.hackForm.value); + } + +} diff --git a/Angular/src/app/app.module.ts b/Angular/src/app/app.module.ts new file mode 100644 index 000000000..135f731d4 --- /dev/null +++ b/Angular/src/app/app.module.ts @@ -0,0 +1,20 @@ +import { BrowserModule } from '@angular/platform-browser'; +import { NgModule } from '@angular/core'; +import { ReactiveFormsModule } from '@angular/forms'; + + +import { AppComponent } from './app.component'; + + +@NgModule({ + declarations: [ + AppComponent + ], + imports: [ + BrowserModule, + ReactiveFormsModule + ], + providers: [], + bootstrap: [AppComponent] +}) +export class AppModule { } diff --git a/Angular/src/assets/.gitkeep b/Angular/src/assets/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/Angular/src/environments/environment.prod.ts b/Angular/src/environments/environment.prod.ts new file mode 100644 index 000000000..3612073bc --- /dev/null +++ b/Angular/src/environments/environment.prod.ts @@ -0,0 +1,3 @@ +export const environment = { + production: true +}; diff --git a/Angular/src/environments/environment.ts b/Angular/src/environments/environment.ts new file mode 100644 index 000000000..b7f639aec --- /dev/null +++ b/Angular/src/environments/environment.ts @@ -0,0 +1,8 @@ +// The file contents for the current environment will overwrite these during build. +// The build system defaults to the dev environment which uses `environment.ts`, but if you do +// `ng build --env=prod` then `environment.prod.ts` will be used instead. +// The list of which env maps to which file can be found in `.angular-cli.json`. + +export const environment = { + production: false +}; diff --git a/Angular/src/favicon.ico b/Angular/src/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..8081c7ceaf2be08bf59010158c586170d9d2d517 GIT binary patch literal 5430 zcmc(je{54#6vvCoAI3i*G5%$U7!sA3wtMZ$fH6V9C`=eXGJb@R1%(I_{vnZtpD{6n z5Pl{DmxzBDbrB>}`90e12m8T*36WoeDLA&SD_hw{H^wM!cl_RWcVA!I+x87ee975; z@4kD^=bYPn&pmG@(+JZ`rqQEKxW<}RzhW}I!|ulN=fmjVi@x{p$cC`)5$a!)X&U+blKNvN5tg=uLvuLnuqRM;Yc*swiexsoh#XPNu{9F#c`G zQLe{yWA(Y6(;>y|-efAy11k<09(@Oo1B2@0`PtZSkqK&${ zgEY}`W@t{%?9u5rF?}Y7OL{338l*JY#P!%MVQY@oqnItpZ}?s z!r?*kwuR{A@jg2Chlf0^{q*>8n5Ir~YWf*wmsh7B5&EpHfd5@xVaj&gqsdui^spyL zB|kUoblGoO7G(MuKTfa9?pGH0@QP^b#!lM1yHWLh*2iq#`C1TdrnO-d#?Oh@XV2HK zKA{`eo{--^K&MW66Lgsktfvn#cCAc*(}qsfhrvOjMGLE?`dHVipu1J3Kgr%g?cNa8 z)pkmC8DGH~fG+dlrp(5^-QBeEvkOvv#q7MBVLtm2oD^$lJZx--_=K&Ttd=-krx(Bb zcEoKJda@S!%%@`P-##$>*u%T*mh+QjV@)Qa=Mk1?#zLk+M4tIt%}wagT{5J%!tXAE;r{@=bb%nNVxvI+C+$t?!VJ@0d@HIyMJTI{vEw0Ul ze(ha!e&qANbTL1ZneNl45t=#Ot??C0MHjjgY8%*mGisN|S6%g3;Hlx#fMNcL<87MW zZ>6moo1YD?P!fJ#Jb(4)_cc50X5n0KoDYfdPoL^iV`k&o{LPyaoqMqk92wVM#_O0l z09$(A-D+gVIlq4TA&{1T@BsUH`Bm=r#l$Z51J-U&F32+hfUP-iLo=jg7Xmy+WLq6_tWv&`wDlz#`&)Jp~iQf zZP)tu>}pIIJKuw+$&t}GQuqMd%Z>0?t%&BM&Wo^4P^Y z)c6h^f2R>X8*}q|bblAF?@;%?2>$y+cMQbN{X$)^R>vtNq_5AB|0N5U*d^T?X9{xQnJYeU{ zoZL#obI;~Pp95f1`%X3D$Mh*4^?O?IT~7HqlWguezmg?Ybq|7>qQ(@pPHbE9V?f|( z+0xo!#m@Np9PljsyxBY-UA*{U*la#8Wz2sO|48_-5t8%_!n?S$zlGe+NA%?vmxjS- zHE5O3ZarU=X}$7>;Okp(UWXJxI%G_J-@IH;%5#Rt$(WUX?6*Ux!IRd$dLP6+SmPn= z8zjm4jGjN772R{FGkXwcNv8GBcZI#@Y2m{RNF_w8(Z%^A*!bS*!}s6sh*NnURytky humW;*g7R+&|Ledvc- + + + + Angular + + + + + + + + + diff --git a/Angular/src/main.ts b/Angular/src/main.ts new file mode 100644 index 000000000..91ec6da5f --- /dev/null +++ b/Angular/src/main.ts @@ -0,0 +1,12 @@ +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; +import { environment } from './environments/environment'; + +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic().bootstrapModule(AppModule) + .catch(err => console.log(err)); diff --git a/Angular/src/polyfills.ts b/Angular/src/polyfills.ts new file mode 100644 index 000000000..af8477078 --- /dev/null +++ b/Angular/src/polyfills.ts @@ -0,0 +1,79 @@ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** IE9, IE10 and IE11 requires all of the following polyfills. **/ +// import 'core-js/es6/symbol'; +// import 'core-js/es6/object'; +// import 'core-js/es6/function'; +// import 'core-js/es6/parse-int'; +// import 'core-js/es6/parse-float'; +// import 'core-js/es6/number'; +// import 'core-js/es6/math'; +// import 'core-js/es6/string'; +// import 'core-js/es6/date'; +// import 'core-js/es6/array'; +// import 'core-js/es6/regexp'; +// import 'core-js/es6/map'; +// import 'core-js/es6/weak-map'; +// import 'core-js/es6/set'; + +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** IE10 and IE11 requires the following for the Reflect API. */ +// import 'core-js/es6/reflect'; + + +/** Evergreen browsers require these. **/ +// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove. +import 'core-js/es7/reflect'; + + +/** + * Required to support Web Animations `@angular/platform-browser/animations`. + * Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation + **/ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + +/** + * By default, zone.js will patch all possible macroTask and DomEvents + * user can disable parts of macroTask/DomEvents patch by setting following flags + */ + + // (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame + // (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick + // (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames + + /* + * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js + * with the following flag, it will bypass `zone.js` patch for IE/Edge + */ +// (window as any).__Zone_enable_cross_context_check = true; + +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ +import 'zone.js/dist/zone'; // Included with Angular CLI. + + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/Angular/src/styles.css b/Angular/src/styles.css new file mode 100644 index 000000000..90d4ee007 --- /dev/null +++ b/Angular/src/styles.css @@ -0,0 +1 @@ +/* You can add global styles to this file, and also import other style files */ diff --git a/Angular/src/test.ts b/Angular/src/test.ts new file mode 100644 index 000000000..16317897b --- /dev/null +++ b/Angular/src/test.ts @@ -0,0 +1,20 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/zone-testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: any; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/Angular/src/tsconfig.app.json b/Angular/src/tsconfig.app.json new file mode 100644 index 000000000..39ba8dbac --- /dev/null +++ b/Angular/src/tsconfig.app.json @@ -0,0 +1,13 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/app", + "baseUrl": "./", + "module": "es2015", + "types": [] + }, + "exclude": [ + "test.ts", + "**/*.spec.ts" + ] +} diff --git a/Angular/src/tsconfig.spec.json b/Angular/src/tsconfig.spec.json new file mode 100644 index 000000000..ac22a298a --- /dev/null +++ b/Angular/src/tsconfig.spec.json @@ -0,0 +1,19 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/spec", + "baseUrl": "./", + "module": "commonjs", + "types": [ + "jasmine", + "node" + ] + }, + "files": [ + "test.ts" + ], + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} diff --git a/Angular/src/typings.d.ts b/Angular/src/typings.d.ts new file mode 100644 index 000000000..ef5c7bd62 --- /dev/null +++ b/Angular/src/typings.d.ts @@ -0,0 +1,5 @@ +/* SystemJS module definition */ +declare var module: NodeModule; +interface NodeModule { + id: string; +} diff --git a/Angular/tsconfig.json b/Angular/tsconfig.json new file mode 100644 index 000000000..a6c016bf3 --- /dev/null +++ b/Angular/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "outDir": "./dist/out-tsc", + "sourceMap": true, + "declaration": false, + "moduleResolution": "node", + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "target": "es5", + "typeRoots": [ + "node_modules/@types" + ], + "lib": [ + "es2017", + "dom" + ] + } +} diff --git a/Angular/tslint.json b/Angular/tslint.json new file mode 100644 index 000000000..9963d6c39 --- /dev/null +++ b/Angular/tslint.json @@ -0,0 +1,143 @@ +{ + "rulesDirectory": [ + "node_modules/codelyzer" + ], + "rules": { + "arrow-return-shorthand": true, + "callable-types": true, + "class-name": true, + "comment-format": [ + true, + "check-space" + ], + "curly": true, + "deprecation": { + "severity": "warn" + }, + "eofline": true, + "forin": true, + "import-blacklist": [ + true, + "rxjs", + "rxjs/Rx" + ], + "import-spacing": true, + "indent": [ + true, + "spaces" + ], + "interface-over-type-literal": true, + "label-position": true, + "max-line-length": [ + true, + 140 + ], + "member-access": false, + "member-ordering": [ + true, + { + "order": [ + "static-field", + "instance-field", + "static-method", + "instance-method" + ] + } + ], + "no-arg": true, + "no-bitwise": true, + "no-console": [ + true, + "debug", + "info", + "time", + "timeEnd", + "trace" + ], + "no-construct": true, + "no-debugger": true, + "no-duplicate-super": true, + "no-empty": false, + "no-empty-interface": true, + "no-eval": true, + "no-inferrable-types": [ + true, + "ignore-params" + ], + "no-misused-new": true, + "no-non-null-assertion": true, + "no-shadowed-variable": true, + "no-string-literal": false, + "no-string-throw": true, + "no-switch-case-fall-through": true, + "no-trailing-whitespace": true, + "no-unnecessary-initializer": true, + "no-unused-expression": true, + "no-use-before-declare": true, + "no-var-keyword": true, + "object-literal-sort-keys": false, + "one-line": [ + true, + "check-open-brace", + "check-catch", + "check-else", + "check-whitespace" + ], + "prefer-const": true, + "quotemark": [ + true, + "single" + ], + "radix": true, + "semicolon": [ + true, + "always" + ], + "triple-equals": [ + true, + "allow-null-check" + ], + "typedef-whitespace": [ + true, + { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + } + ], + "unified-signatures": true, + "variable-name": false, + "whitespace": [ + true, + "check-branch", + "check-decl", + "check-operator", + "check-separator", + "check-type" + ], + "directive-selector": [ + true, + "attribute", + "app", + "camelCase" + ], + "component-selector": [ + true, + "element", + "app", + "kebab-case" + ], + "no-output-on-prefix": true, + "use-input-property-decorator": true, + "use-output-property-decorator": true, + "use-host-property-decorator": true, + "no-input-rename": true, + "no-output-rename": true, + "use-life-cycle-interface": true, + "use-pipe-transform-interface": true, + "component-class-suffix": true, + "directive-class-suffix": true + } +} diff --git a/AngularJS/app.js b/AngularJS/app.js new file mode 100644 index 000000000..2c0f7cff9 --- /dev/null +++ b/AngularJS/app.js @@ -0,0 +1,5 @@ +var app = angular.module("app", []); + app.controller("HelloController", function($scope) { + $scope.hello = "Hello, AngularJS!"; + } +); \ No newline at end of file diff --git a/AngularJS/index.html b/AngularJS/index.html new file mode 100644 index 000000000..e85801d97 --- /dev/null +++ b/AngularJS/index.html @@ -0,0 +1,14 @@ + + + + + Hello AngularJS + + + + +

{{hello}}

+ + + + diff --git a/Apex/HelloWorld.cls b/Apex/HelloWorld.cls new file mode 100644 index 000000000..2425e0060 --- /dev/null +++ b/Apex/HelloWorld.cls @@ -0,0 +1,7 @@ +public class HelloWorld { + + public void sayHello(){ + return "Hello from Salesforce!"; + } + +} diff --git a/Arduino/Arduino.ino b/Arduino/Arduino.ino new file mode 100644 index 000000000..cb56255d7 --- /dev/null +++ b/Arduino/Arduino.ino @@ -0,0 +1,64 @@ +/* https://www.arduino.cc/en/Tutorial/HelloWorld + + LiquidCrystal Library - Hello World + + Demonstrates the use a 16x2 LCD display. The LiquidCrystal + library works with all LCD displays that are compatible with the + Hitachi HD44780 driver. There are many of them out there, and you + can usually tell them by the 16-pin interface. + + This sketch prints "Hello World!" to the LCD + and shows the time. + + The circuit: + * LCD RS pin to digital pin 12 + * LCD Enable pin to digital pin 11 + * LCD D4 pin to digital pin 5 + * LCD D5 pin to digital pin 4 + * LCD D6 pin to digital pin 3 + * LCD D7 pin to digital pin 2 + * LCD R/W pin to ground + * LCD VSS pin to ground + * LCD VCC pin to 5V + * 10K resistor: + * ends to +5V and ground + * wiper to LCD VO pin (pin 3) + + Library originally added 18 Apr 2008 + by David A. Mellis + library modified 5 Jul 2009 + by Limor Fried (http://www.ladyada.net) + example added 9 Jul 2009 + by Tom Igoe + modified 22 Nov 2010 + by Tom Igoe + modified 7 Nov 2016 + by Arturo Guadalupi + + This example code is in the public domain. + http://www.arduino.cc/en/Tutorial/LiquidCrystalHelloWorld + +*/ + +// include the library code: +#include + +// initialize the library by associating any needed LCD interface pin +// with the arduino pin number it is connected to +const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; +LiquidCrystal lcd(rs, en, d4, d5, d6, d7); + +void setup() { + // set up the LCD's number of columns and rows: + lcd.begin(16, 2); + // Print a message to the LCD. + lcd.print("hello, world!"); +} + +void loop() { + // set the cursor to column 0, line 1 + // (note: line 1 is the second row, since counting begins with 0): + lcd.setCursor(0, 1); + // print the number of seconds since reset: + lcd.print(millis() / 1000); +} diff --git a/Arduino/Digispark.HelloWorld.ino b/Arduino/Digispark.HelloWorld.ino new file mode 100644 index 000000000..ffeff8cda --- /dev/null +++ b/Arduino/Digispark.HelloWorld.ino @@ -0,0 +1,26 @@ +#include"DigiKeyboard.h" +#include + +const char line1[] PROGMEM = "cmd\n"; +const char line2[] PROGMEM = "echo \"Hello World\"\n"; +char buffer[100]; +#define GetPsz(x) (strcpy_P(buffer,(char*)x)) + +void printText(char*txt) { + int l = strlen(txt); + for (int i = 0; i < l; i++) { + DigiKeyboard.print(txt[i]); + DigiKeyboard.update(); + } +} +void setup() { + //Opens command prompt and echos Hello World + DigiKeyboard.sendKeyStroke(21,MOD_GUI_LEFT); + DigiKeyboard.delay(200); + printText(GetPsz(line1)); + DigiKeyboard.delay(200); + printText(GetPsz(line2)); +} + +void loop() { +} diff --git a/Arduino/LCD_Base_bb_Schem.png b/Arduino/LCD_Base_bb_Schem.png new file mode 100644 index 0000000000000000000000000000000000000000..90cc8c3e47db772dd13a4cdd8e037c31b1ccbbdd GIT binary patch literal 50374 zcmb?@by!vHw(mkf#KJ~eWznT{hbXY?yftg z-`>wT=ic)?=l*fnep^9UYtDC$cZ^@XzEW0{K6je@Gzx_}hmpCbibCPbp-?9lPMw6W za5A%oqfn=nEF>kBmCfy(?VQZ*>~CNsC2!a}+L>Bdo1jqc0|{zo>T0vsM7BpZ?#jLN z50|r3y?W|~>fJZ~S3>ETZxUaSeR=bJ|5cUxi}&vnP<&5*i60#7A9PiP_3Z1@zlbJp zeh7Y=^73`_{e-+ z<(E6hLnRZS9<~@8O`w$7P!AdWrn^x72|F=fc&G>AH?QI) zhoWv=HhFmuWiEuuY1e#xAEkX8b;VTfs{ra38|pSj%TxySu@qI;cHv9`>eN}(ZIzeL znNS2?sE6NaY28uJVo+D4*0h9IS@JH-FvCj46bP521?~qtIK}2bq@~49&De$^Wx2xp z=)|K~arVz1F=U(p+$3Y`KTxRT(5rB_>xb@b=kwayc!NvM8?w#So;1iL||@kCfQ~CjcEaicrhw@c0g<09$B0F@86a8_fJhu z{*wKA_rarPEuSN^&xUncht|8k!Ux-%V>Q3g0i5~)(gZtWpMPw~r%|?JiJut_O@~My zl%6?0pz6By6=PJc&3t7-<&s12z1X02&a_*v?qZp~(RCg_{yoaNk1smPgZgMGisu!| zmZ5Kqza__TLEE|R_cjW(R%ut?&3Fpm-~8!#yW8=y*r9YX9m?MngLOcm4DO-X)td{& z8c(56_mTscKT1$+)L&<%QN`MpGkc<^YgLuo!F3T$#Fj&i^xTSc;C)Y%N zU+#Y5XC)3ZZuxX8=WKQZ`A5wh{K{9G#_gZn2rdQOuOsFqaJzfs5w(Pjw!F6DFPV%R zlxXgY1H^p9_|H^6Gu#TxkSn6ExVZcEx)JA{Ky4XT+TKecmpLwYy_EdQhraYml9QqQ z-3iR6RQ1kFol>2)sV)EwNgVPB{ z;tr`hYQGs(n=NI@rY=lzPn|T0=9JJ#iB%oWc&~nuCq(yd?)wtee3ihA%iJ!p0(LOR{BrWAN&osv*%u1ecJfajFBwvI?;7A zGPmpb(egO5t~X?j>bLps%tz0}ki^(&Xfu~EdtVK0J{=(&K_5ZE%%Pr{h07YrI-{|! z(V`xbX`tqlC#AuqHjzo(9ht3>m7qMYMxkbwDU=bIWtL&5E|%)6bNK3{&KLPFN|LE6 z$)5}-sv2&bF(xZ?XT524F8hT`0MA$YPp$pluFRFuhg6ksM6xp93rKRwa%mN+u7{h7 z5luup?8G}O63;NEN3Hw59=Wp2^qYwS$1Pue$3)L6D>5olJ6k4OC0lyFnm2DTJposJ zzfxyE;JiemEQ20{v{^_SVZw}BzuIv6>GW#~B7&QF>{(W66z?nVxz*aHFGVNT82Bg3 z+og|qRL|^D`fwboAKL7tZ%UulK3RAceRA+@+jZe@JPvlkR2+?it16QEU&JNT9z{Hg z8h;jA-XWaQBlT8_B*>ycZvs7G(_qt(LVuF}CcT`(oWfG9szN!A2`3~kB;VNjqxC~; zZwybI$eljUnYfv_zPQoShq~^%tR)#GWhR({NnM=IQc0EVb6o+QG;IxC{X(hSgj~Ab z%G}EIi|OTxVT##_y=GrNu9h^FWR{YBoceWgFt5a>#OINj5vf_}x4bV)Vbx(i6+Ukd zMTpJ?_MgwD(xvisDssFcs3|xS+ZMkh=JRbMa+bqPyZu7@FRqD_%PmY_EfUn?x}?oW z&B~pguD^WqO72Mudz2`997V(M_v%Sm=S>IwanH`pgt)@E&x;v@`AfV@7E6IcNk6!g zm=blkoPK`!E;*($)gg8!DdM)(XpXOvq*8!c@eD18F-NFYZr{h!G`FnnN6Vz5TcVCh z6QUEsd?TDAI)*>^>Po+twkUnEOEi2wD(Odi{P@`OxC52$PlsoQ|0+Nt;K7Og9Z&C@ zwZUS7gC<)A{fiPo$>kDPB|@I$KAEb|y=ne^;a%>{?V0Gd&^C+n&y{`u^!_AzH2vt! z7vHlC&jX)py$}nwf2mF0aVLt$tz$^iY4qOSy~ukbab|av1oGKrd6-4B*e!(z_$s(7 z#2VO5b$;|{Cun1=W=O zf8$DHohpCEkom4k{+#@9oM7U$Sl1gioFanNcb;NH-#OgPx~ULWVm4M1r zIq7)u(&tO#*pjpta$0Ou+SAoJmI4LB4jzN2C$18*ywE(EBV6{ngxRJ?DSJ^XD$lo? z-c!LUz@WbQNqsS%)%+Qa(^JoV=7;(g^_8?abViFG?Y&5#5WV{9b>5Xh(x|I`zZi$y zrzisLnrmZ*!izGqzm`94H|;c?ogQIJd~iN8D{4CGyzROEfueJxnnjD7TlWV!qFNaT zE1#A~mZ#JTmsOdhH?_42iK(ZmZ>aC7^DcD`7eDITvF%u*@T%J4Ug#NoP_=z1+Eg>B zfv2I+W7=b~kJ&HW7R!5;HM8@vg_(i76Y?Sy28xX+Jh1z5`28wcZVJhekk#p zF>V{RB(YnrxZphAdH?v$j8K(Oo8DTP^IE~+)Mc$Qt=N1)Lz_A0IpL$QE~UoG_{!M4 zay_f^CC}<&FVpQ=ibTG);f-pK)oaJSJ&6J$!`17acH7^!H%G4x`#LflwzX9DyD==~ zRw-2(Zip{R^h*v0_J}<=8v3<7Iw29-Hre+En|Qz8^*w7IsX4AH9BH%*8ec z2=khv)93bDP6juQ&S^c?vQFGS;L9KJ~8j8V8xG)jDth?Ep_O@a`G zx`D#nlTddbSQz%QSJ*x}UhNZY;*}{9G1^wYwIBjlk8fEkCvtP#NRV^aa z0y{0w2IdC^tE=RyxoOnMpZ#)MHP}ivPFCOX*;!iJ3@h1eh5JsEgFai!B(>FT2K_=! zijxH#?TzyEUc*}h^M#`Gg?(Or>@7xx{njVos!-7f!D!@n)Dt@7|Lx^&U{HQWpR|Me zio^-U$p}#yAN6qUmkw6x2~bsdh8-y7TJsk~DAe3He>{8{0u%v2ZIsE?Yu8lgm!$(f zeKX2j;Sdn$pDHowv+B(uBYrI?$tAp_^&(vig=%IDQBhYVEU{r}D(6afk@6vs3lbH+y zKKruR66=1WoT$*yaYu?uEcVi+%gCkFi3xB0G9E(hXNq`j@wW=OuOy=_+TsP+OC8SU z_z&Fu=UT|9k!!(5M&e?)%wnex57ygpx(x1Oji&B-Yb8CF8V?^PKkyj!O&F?lQ@VNc zCYs&yDi6GR@k^k!rc$I{}q$%X5d@qkJdQ*5dgc?uLkLMPFnrw(iG@ z6T3VK?1Uu_S^s)j>Ce{UV37CpQ)cp_@%pDk>@#A=2kW@mL=i9SyNt`-tavDYPmK{q zcO{X{aND6Wi4(g495p+4dE;`2s_YN7nfeb$;7u&M20$5lh`8v@ABEzK4Z)Hbhd z=$sHIn{rrNTf0I*@nC69E{dIrlM{RP_qXQxLiGgUq|neu!at*z9lLogBT*>v>esJc zW!mo+wu@#zd2-@XGf@O7KZb-xSI>2Y1T!~UD@IK8w-PFOZ3g}v?5?AqkyQBXm#lhz zen#9dpPuBaYhhs#E9z5W;d8?50$ez%mecvqPuV_;(VA+w3K>?Kt{fe%6jz7Mxt@lD z2o^0_Y$U6Wk?_Y~mc>~LalF`6Sb#A143`a^Cw?aGd#rfLL2Iuk^1o-QrC*_;QF^g@ zD?-F9v+BT5C2`D)(j_1k3UkbbZ=}D!AN`EfV|&<*4zoVp%Ho!QPjtTQ?8|1`Ff8_N z@-son)=LL0U(^Z-{5hLhf=8*OgDF)?ZHK?}qb$!MPp^(PH9cL+;t(q8(mCv!^7_kDLXfz?D|Z5AJk;aVdx3QH?efEL1(lc zpu$xQl6X@?+#EHG)whHP+SmIF&8}X)JaOe=gpan3$!=YZ0j#`+wzj!$iE-okb7Y+N zE|CaI?Plmep;PBCDBMXI_lU~Y$|n!#L`r3LZ%Z759h3;F7VF%Y?V@YyPS3PXMq{25 zk?)C9uA@h5(wK%8*onLaV-G%k^oXbq#n9r|`U8|T7$jRVP>)&jN z%dwCBS?;9J8kJUfLSy^$SK>b;)tyPu!_eZ}B6q#T;NFUS(}m6Ajw z@+SCKBz0n9VsNvx(!ny0!_N5&q7=N=---R@&aR-2n^&9@Pr{ycvbgW*vAmmYeIsyf zT1c@yK}ahzGxMtL4F8pKp?&;?f9@@Pp>=U@a~^Yr#&M$I+=R=09!V^>-H7mni?(*O zMgQ|Nq-e~iPoJ2XnH|X(`)Rz-{N0mD7fDIYs(crV``{*5mMWKJvA)OqqgID|o4PgL zU0@ z`Dc|blR|-r#+g=oZTCV4mbpTdmX>z<)Ty7pzrEox|9RuSw6s^Zhf_p5ylg%cSlo26 zdBBqP8@-DCgrN zpY%n=c>YK7hE?t=Zp$M)xtD2ZI52{~2mE9NOZw8?to4Sq{NMLbj49q6!!nhDOGD); zrK7$N;OTe1yht0Kn3z{o#4WNtV+mOJVufr>FPu zR=#KaZF;`NFj}VyZ{51(ygseac|rW`dt}({5H!9|qqFGFP(h#mJCDaI7f8rlq-AAa zuX-XIZ$ztqW*@a;$Nl9gw9eQvc(bgIc3sk>E~8Hw(7zPhe>gBuW$%%(U3(+wGWXci zK*@%>Z~RMO4_qRr*w}ldrbxJrjKWoPc6OpMVuu@HgM;3On|(M7x4;%^F4G|N>||3|apDUM27^td7V&)d9;I~T zi-UgZDrqU*E3FVC=#mx5uCKee2-__D-8=_t zLb$pG#;D+C{4JSTS=H~|dnS6cGa>CsR8SSkG4gC&#xP4Z}>QDFC{Y(z% zsv5}Rang{RpVP+c7PE{TGbBrlrR)AEa!M;4Z{<{BrvpAPQ~(AZOIHmcPP~z6gVl1EplJ|EnCXO%F3-U zTI)BO>k~nxlEX{ARqlJ}2?#3w>{LDFJ`<)hN2f6U#7@QOAApm7_j(DtuhemixXh_X z&1-ZUe#BX|!V;kOIPel*{%!y1ro_d`5>HR|PyE9HiNI>x2vKacx{vsdzxvV%J<~l`ys)B(SgJS&8cQ+-odRX6a zX4!^^hx7BO0p6VJ%TL-`8h$X5wA+>-gtYgd*+R2+%kS@Q;%Ih9ouhgKd&g&aMCAFiXFvUjZ)l$oo~M7tfp)+9 zaq`zjqiG?TN0G<+v|_P%Ff?iIhjpm*Mdp_Ftxb5usb)z&n%M4QD=iZflZeXJ&(F_n zj(9C=co;4*GcqbivFkfShb1H=R8jOW|ES*4S~XDs*U19Iq<3qE-|wGUY!fk>Z@sSO zw#DOjC!?XS;@fj zJguXpc1aKR-v$MBhtf);F{9q=3eV>U@aYm;sL!5qr8>^L z;MhZT*JFRnrfY*C$=j&vXlu}p#>3Afu3CUM%?r@b+rIhUT&I1J0biu~o#+I&F6 zm`>=JE$2=^PqnK8n7Ktuqt$QvI(T1JUcS370RQc*UCpi(45`h;W#OC0c$)^-066)b z3vb@GNzG>f+uXtJQnk%lUw<`YZ)|H{9q(!{9L=@N55m<1fy{ z!XgJhABuMQ^HZX;mWEu10$Tq2+Jh+$MUVDGL$B?n#RA;-Pkzs{7n@rex2A~BQ!3{h zRLif^E5>I`wL}ToK*dp4@6Bc7w%M4ORm12N^p>*eV-3r{j0n&Eh~b+1`TnUxVwK24 z$MhWN`P#XD=e-0Y`;-8XF8m5wfSIJOt*srgoe&#qNxt#5=ZJDWZPK7tsLA6>MMef= z*X_x?tzz$8$HU!rKi|paSE;FJHMTqC?h zs_t;*3kf#$&mVJ)s=T~>?n0lh}T4 z{py7a$p8ge(CB-Y85B3>9%eF|^Z?4Yavr6lqZ{~S9GIh-ty^N9IX3q2+t;t^zpQfv z`F1rF0%31k?QbpeROGL9dJGg*;$+)PfbSOV) z;uF##v17Jel6EyFk1w247qa_>qM?5!b|k!Kx4kqB@G-djN9on6S$JeI)6)0vM^p|M zS#&k)Pq)=H$I)E9YVt$Kbs>6|t9xn`y0lGWFqM<6baPhhex=L2W?G{?G=VN&fcTlJ zymgw-~1JJ6H{E%N06#o>FG_JB{Dw&df_ZYE+$M zYxJEj-1_S3kE_lT6W?JIg2q_BT==*NHVy(@mjq3c-cRt~bJBq!8G%;2Ot01Dl4i}| z)13qDrM!nB-#XEm^41^~gHj^5LB38Q?z0Q+ty}V4fU#Y?!~h}jDpbx1O)`p#j&SRD zIANQa2a~cs%y)M{M`?2RPwy7)I7=d$)I>Ihcl9IRm;FYuqxV04$fpqNyt&4PE*BdU zciC6~v9`h`?D3Laq5G;)^?I9-qDNst{nZ7J!#+bl4SV~KUEW%Q^0C|)7R?-cUE5LI z{WsSt944g7_Y3U85)y3Y)|Izj6ydI1x$rw-nr1@UZ?wdgzs5fulL@?7ciNpjYTWRV`ABer{t4X)Tm{WoeQ0(KZ{7*Y z{VJ!KwoD*3Q?{2$Nz=R1mE^F!`G)y@241c{`nPUeV@IJJHy^uuA$i8@Smh88qVX==wd4&$ESIW%W zzG9BU47G@xrB(%7CJVnl>DK!C6nBpmSUX*{1f;YMs@JGDG-a>z&2DSTp;WO7*SDM!u_yjB04@vwg#Zpa) z4;)eM?!LtW!oslb3FQ3t57P#Ns6}*P*K=FyF*h%3W@`il1SswUObl0>an;(7<+Dq? zb7ik`xh5M(g=aU%Dh{QJJUv3pi2bmbWvtY_d&r*HTPSSjwjJU}m@JD{p0j|mv=8;0N|NNvwcuS*>IefJN(<+1GPd zTXfOqD~V~<2Jd^abpcW0cK)Lb0uGQR3xK*6PBX!>a&q%i>mV+*bNg)kQJDxtNr#X# zVmjSMeavD@#8`3`PB{m|>zSCE#^Q#_hSC<+u?xkfChJ;0CuM=!MEs*I0NY*F>fq`| z@zZJpuGetgS$r)u;`rE(nn7ftc09O%WY>AdgQxQgIi8SPV!E24L|83>JPeV6GKUn{ zJTBv(30o6I9vJ#;YE=6qu2HMcYa7E}Y9{a3%GS*N+sz_+EO~mOBm2;8t6XK4x>}Lh zL_M0@ctyo@tgQ0LbRDhn(a_VgJ^=QoR(3)|{2zsloZ1&_wm7I?>pRSJAuHF%W8&xc z#GM$LVzQB7DxoV>RJqa7*D;+LDk(+C`*}1dDd2o;5}wX2WoOMAY)KT4yenmt6X476 zJVJCp;pl3nkvAMQ+PRCvfZLfwMD(#iGlIM1eio5@?kf*zm9f;knK|vCHW>KsnnbNz zrEH~{v_!JcMA_i9H2ZNGTM{>#)jFO=`5kU*o#v?1I>BTaS;s+yIw)sdDO#)3dT~B~ zq0DmqS5{@dG?i@pGHK26xYzDe5TE=<9W=gty)aR11xyt;JCNfO!)YR0{3NPi-e#!m zQ>RVy`I+{&{A0!eS9s)B`V2{cVp6s|YqpJ_pI={j_)~gNt0j`nWphrWwDir}w;F)* zB1F@D3`cfQx_(t{yGPO*Ye+GnYBfjRUglBYX+KIHs3_AJE_X^tYcMHeQvtHX;)u>( zSDxkFBI>!sh$nhoMg`E?;ii8MNpithhG;XfVV({)^}~l-&tJUo+^D(6u9vYr;*~Eu zlgu7+Cd5^L^)MuBlH>^;q7Kww;wK@HyW#iJ)E$K?Q{Os+rC>hRbk$z}{Q2%B!j(qx z*T4w$ali<~>82!oA}@BEyPNus>Dk+S5&K*AC=~kvpitZ_?CwxT|5`#-;MU8WB5)JT zOf++aLCL&d3ZDfA&hIbR&UnL*DgEomrWgmcEPh1aL7yH|`ny_{@=C3j{AHU1_gHB& zbk>Bq%-Ym}N*Tt7Ei71fIRhpyD;e)I5v#v+DiTE#4&VY{F@Gz`>C>u}u8ZMV><8Q7 z3XMHcfF@m5`PDcIKHCed7g<+_$MI&;tZ%D@6%-T%^#Nj32|P~)L}ck5l-!UKs z)dCO{Pd627F+G_=+`uq3qtb-%1JiSo#aFs__QU1z`y`nIzEb7Q)YoULNy^yaK zkWl!gOP6F=>*|5>AzWVhCYc94haMW@lpR2&D04#6T-N zPfT#(-9^TLhp#|!9d$j}ai9`#y!R!Lgm2nqaX_Qcw3Rd0jAmsVMje_Qg}4o4`lYA6)IX!}-U|+^H{$eV>Kdjzu-QUv}>{UuZ#^r+Hy_u*8`WeieLj|=5R=fbB(`F&fEM^*(zM259T9r!i( zXYf&VVXN_UJBGL!0l5_in08VqHQuDC*5fIClC52sq-rp)?i~I@Pl`UzH;LN)8-w*d z6c_hLgoF@QqAy_|RNF1)4SYm1&?hK>mm@1M;+!>At1smFLIVWD@3*uOWAr$cjO3j2_p z^RZ0Y?(x55sJEL#nVAFCUZuc0m$&ju6FsR^3kj49365LW^VW!bB2jfDVD5ZA6%L+= z`jRI|1fZ+~V8*EW`ue6V`>l*gbUEwkQNB8lTJa>1TVVmKg540mCUJQYPkEx@Esx{m zcSqp(7dKQ@RnY=`-<+nP{%~J(hzsjt5?&YMx*9IlLa{i z7ABMIuDZH<+WxEH;K+@SB;l#2_i4+?Eh&+oOisj4%gJFiPCVqnyX>uDYKptah-@5E z4g=?Mm^6v-$XPI!&eL{3^2QV^88wgwB4Q&jRbb`uo1x%492`kGJbCz@ z`!BUe@<3g|iT@t7tJQ!`@BRCi>%y-`RdCx}WWU;5;|03h4_6y$C<2NmMxjcIfFv1L zLr19414Y^g8&4x>1y^c2EQkT185JKXP(UIi3iH8u1biB{H{U*_NQXFn{`-#XHCrFQ zgPbI@=f>cS0rmR1MNIxqU+vNTlUq(u8WDMyFJ1aDG&CgJ_vYox+Xj`MyiK!R=`21w zi$C8>4tx5cP{Im`$r=jdh&$dvRrL}veo`Tj+S1+!RqmgzaTw^OZRagK3ckuVBk>M} zvO|2W*TxJRK-|M_K;uA~5PbY&*#2*Qg7iB0fSw2+|6iZ1@LhZJZRhDs5{p(op5Ij& z_(}hYvfb&ELqhFIt){d$$4dWN82`Rfdy-ZtcJbU#{nj{~8~5y*wMiVtvF4v{c!3g6 z@vpD^pZg+Q$$vD-|L&7yZ{hWmC}e=adm~m1>VN#?e|SX{N_p@E2G-Xd8MpVt+PVPvJ{pJ5@c~sYo<*>OXTm+3{1BWghFeRY5T^LlDyp{NzE=d)t;IW+#YL zWM*pW*ZB}O7M2!wpWk1JllTp5*g<-E_39NGMnEE^-k>*s>E%CZ|IPvwO>0r35`zq( z%)L@-+Cn&Z7uPn8PfT%mmj;1@2)D;K>g&XHR-F)ePU1XIXl?6=O(i}~s_ktpwvcTj z^@juLjqwtpi|O)6H5zWj;A{RK>uUB1R5QBFEBH_0*E_rO4tU{*#|@Ge$Rn>Kd_uRA z12Pknm{`&?_=0%x?K*t4$U;jY$aWwCnNNNXMMw)GN?P^hS%487%VieaN7a?5Us+`I z?KGy7!mjE)QsaVx1M}?~FuG<1wDXFr`&Atr93ET4VoHlA(Pbnji`xtosX#;AY~iRi z2R(HFTESsK|JrL~6&eR=v}XoYxw70?W}2kNQ7 z{7E_7-_|Nq^!Bb&Oc1<3jg$XO8&A8(>L7pQsfR+qB4rQ-pJMI7+M5!)QFhE}5)v(# z6zqmItQbMhjSK_NSvnwSAdeMW^;v#OGa4q*u>6~JC6_!EdJ z4exQH{?cr-1D^Xcs~AzapRI9x5z*1+^4lQ0feq5&3`Vo}Z+`p}C%7MdCV;WzV)9y}8;Gk!+jF-F{25%(2;aj4YflNVSeV0l31PP#J;#%J}xT1&$Q$ez_l*WsSC zpFJbcVZC;aoLlDo`}bgCm9guUjrBD0SavfO!_bEs@?04Uz$qmuzJQ!_#!c{q0FZX4 zV!|A|%=!yVbUztA2eD~JqcI{h^nFtp!+diD3pN$ZAS=-CaJt-f=Z_5h4qbR)rUBB` zke5G87Q;!*;~i}NqVZofLLg_atgW4~va;eB6%`)N$jB&zhlgk2qNkRw*t0$Ax6Fly z1&ViA2jewH#HPN=qRGh4uGocB z=mK5OXG{Cd>(}9Mg}}zaI5sfwI12^RHB#-xqG$H!=X($%$ztL-i3#LVSsDrbAHJdp zlXiiDd$?%lhZG=MgwoTqIh@IWiXR|HCct!Z0moD{6Bn17i08)b-1UhNG0?Gt&O-ge zMaWZqf;~v80<>gSqJSWb0C8L|>Pv+Q%M@DLn zJ0=!FlUex#Z561bG?(cQ<)SMurCr;f{M;Sx)#VN zAauM!XO@-y(yjr$JfG50h?`rTgj)D^?B&SAN(h9I^V!NbK;gOHgTh0eD>!X>$U}W# zS3MOGpyDz)H8l(J@J7W%>-X=<>52&l)50qB?`zsFwyyBg`-!mo7bHC-wk^=jH5k@w zC55zz987Li*r*5;U{b?f;8*!~^>lwOmgf?d!FHVGxN}G4{{8y{#a2}*Kn^Fy~PBTw$wu^)mCx2Hz zp4Kw*KW^nbNQ56i!e`U|D2@fwGa0-BJslmOEx4J5HD*3E7BIIz3BYdKiLHal|@Jirf-O!))rhD}90 zR{((k!Dt;A!<3)SfCCuZWEdjn`AcjIn#7gU8GI5F5-z=I{-*9j(dx_s0y@z6UCOPY ztu(i{_Z675$S{)Je*FCckL^%2>eat?r-s?oRb`sFxr$rbzZ(cpCcxQGG4rz{qJze& zE`-S7YEfku5TJlczQx4Egg#-Z4{X2DhaSn;m|W6}r;Q!|TlV2vE2ZAjT*AmtWZe4S zMLPfG)h@7NPM=HY$r^& zC*=cO?sE2FU|^Vs&<3!+3YYmv(SsF9Dq;7Z8=~MwBY~p3ckjwCdjL|04<=q-&A)+@ z;aWdKu$=(XnCi0uhqiIJ!(QFK`wp9u9tfZIEC(!3=iZ zS$X6GIe`k#%`CJ9OjG3U&=C31gJ6xirDc}IKCDP<3|C|H`BSHqVRHhQDDv92MTl7q zdKP?6Bv}HAQkIs1$9-sP8tUp-7y$J=p&Nadl$8Jd`*+zs3V!?K^HhSVV82{Cw{i*Q zRutOg@#E|370$CpRZ9cK*@}t67V?8}zanyNTv<6%1I4^$RKZk)9mw$f`Ew@FZyK*|@r^ttAoVT&z3~qp~fPlbU zM@k?x(;WB;@Spag1Y^Tg_%mYV51s5T#3{rvGcYuovx6z4W~>8EOI=mfNIo5h%L3|x zTg=tW#wjLb#qrs}R=0`ewTaEl?}Wh6RSJr1Xk($j{AmbfvEdOB2u%c!FI3#0kLw%oaeh1&{@R_)8IX*G3CLG-zMInY;51 z#b9xi+?Iy!u-X0k_~<#`N$5x#%F6Gcz1y6QM7c*Ix{fM%9dA8A;8FqkI;al@bQC&e z`GYZ+$n2w}G+0%bnHh*l(B97H`>?64trvVOrnpud2w`*#49Et$>WhOBxT_}!%1Q&% z3cw=jZ`X9XH)c9woz>Et=`doS=0zSbUXazxb|K|W{` zv=s_J0AbivzoYdeXz*Q-v_mL260L>o#3di$@s1N|fj$l|&QoQ}omyJt{2ExL-#4lVyUx=TFEL>6bfx z%iwWb2rGjG3LqN;BrycY42O^fVBpMbY#K0U!D>_<_gWq*R|8D@6Iv!{8ma#ND1}7f zentvJwXa@lW>Gx6LA5)Og8$^{(}YAm!kt)P+Se6Ur9!CLW*>1Gc!l}wi##cXG@W*F z={az2MdCU;0O92U9)f0NQU8Px38aA(thw}1&|jKB4jc47_pk{fIr7g3K+xRSnFv9E zaKrrtMAF5kLYC7UmJVq#uxrv2gxtt2wtv6j5VRq^d>O_s7(^RuEgWI{{<@u&Zgvxb z*1-4?1u{=xs7nxuG(lk&dv01*@BDrv=s5WjnkOU#GNAGCM+5@k;@td3eExhdtegvE zy?_kN4wXA8)_1?Y%EEjQFD!^!F#rMq0x##LzL9-k;KI{CWyZZZI-anP6k22Pl#D*@ zuE-Ds({^IcR-pVjiI>VW#;0Y~ce&E_%B-Nc-Xpx**uKA?Jjrpb{`>S(s`Csg_gg$@4IM0>(TPEcNQ5w3XirUU?G?v|&Gr_c!R7Vd((a+ztP znvnR_`K2-H08*_Rza$hTS z?+#RX6oLq6xb*OJ;u6qn^4kynkxGR!0ei^`a@_IG?pOW>a@|9ryqMV76kwNl{(i+U zx7crrOa*J}9FVCLo<0EA`+DmvNZH{rF&3=*;8*m(4MM-3h2WM7p!i~tTojpwuOZe8 z$^gyC`2EyvM<=IZ*m8n2l#iyGBXBp^U>J3NsZlqPE-oa=7By+U;xgBb!FHF}Jb*tm z$V@W zg{yEQ>A;nTF#m97-$2Wr&-XjbhU{G$khVVeWP-Yzh-iso3>)(f&d~WCU3QHze~e}~ z7>PswS5Q<}T+k}ktcd?F?c@JdIMna=j~kIOlYuI?@e;a%)y5&VKb=G#ufp1PG6J?y8hl_q5%Oy zm`=z7BHsjpB7747j!>Zh>Dyjg)?F^W$rAXv`jx#?Bv&3idIX}O)2=9NfC6pSIgr`P z`&OW45~LL4Za;c*iwk9pw>IjcG4lTZ&88|1^hL%_*}!a7hDWX`HC zOWi2qWb?);KnA~1bng!>5>1MQLGwviNa%q=EH@J$D98XTz!!P|(;H{y3Z?lsyAt9__pxJI`WqRJt;)rmH-gf2du%G+YJEx9&{mY5KJ6Lje!wE z3^1}q{6`1G#<<;<^Z;CD18a}vclh9-@E3*UM}a#Al%cDN#&<^o28?EQPc$EFbVyXo zK$M1YyLw@e-*$%G>s@$s^mh!NjjMwb)r17X;xLI14Dl|D;MR6tx476yTf(xu|#9U{WS@6wisbeBTqq*&wmq1s#G# z-wwux=X`EymU`mXh6YV-HA45(jlQlm+-rvYM^B3#theeI|8o)ySQa$UTTXa2*I1!| z5vagtH?mPla0(eb1bpp0wy#$k7YO#$q8!t=8S!Pr!NCnEm%9sAbG`%g|j1`zTGaEA(5BH6+jp8<%Q z6zfJrMw*_E%rXXb4N=AJyd&_BHL?3W06nWTZxM!n=Trz?-eXhKIncNxK!$- z4FET~X5(lwIBLVx)98(AEaAyl_#M|E>D?(CkY z1i*ND$U5Jh83r82_h3~T0K7EPD}h$VkI*tO1U`EveJVT^LL2*&Va?g9o79k6BN5#Z zx2ruYp@-Q9!ycmw2P^JMO45l?-m!ygehtPt2J;GbVL0G=;Pdkk_r+~n!J(AZy|;WL zx6f(mX-Y^0Ot&Ru!!%JVj7Nm9ql4W^)#O;;-6>KC05OAz3;k3i21K?uo)%-XT=PNEP9+ix6tEIz0XGCPjqvhixCBNMk!}#VwQUiAh z5KK5buV(Z;Y%;VNtd!>BlI#%CK3WQu8aJUk)8YbY z4)ZLVz2RkFtw)Aw?V|fXy2Cj@$%F34m0RdEqX=<_(97e`@h&$ueJZDgmH{8l&CQ&x zU%rfWIE1Ts`A;@OhL0PXe}b4_V%;g~CZqN7ONDuU0{9@mbw3tejS&8wO}i{`o^(mk zP{xosKdaNMNmRQRy1eu5no0VjUP!K&*bZlbhK(pfSRhPdOgC(}s-x2XTL(uTdJ4;zekFvvXnzH#lF@b1<7?Mhf9KCW?03G0b3A}pkDT!FFWA!lm zieVd0)FaXelIltg47s~99Z<25GV!gkG46yL~FRnp)8w@7}{QE#k zWr43*4isfV8?V~>1u}pBMOrCy2!AQIATR~E8WvA^`LFA-@(|X)2LQR9{AiVjnqBo~ zByerb{3NTN$r6Zbgk}Oo4M`Vn*x%~_WAXZYu3mZPpEny|EF=kc25D>+oNhj29q0oVF>v$>dI}l?fKRanh$hCoP7YFD zU!6sWPM$=lGR_5>KP?~~So`lrpUk1-qrp-okQ-S9PZOIuG^7VTS&+@J$UGDp6@nvt zHhZ+ld99-@cK-n%fIt2oP>MVRblFem{P` zPDYZ>4F})ekV0fY2Fq_&e+&3mqw`7f4xl+jY_k2@P5pK>p@C zgO{Y*Yg2A zX2a8_=mM>vfuj{L2J|NSMm*75fU2<&=9#&|iWG2?_Zp_ywxmi$Q!^5cn9$f%&|?5c zV*q^>yRMsm(ne!Idie2Du$^YhiVxI+@a4jS0?6}xB}RF(X(J65j^Y64oYo?Oxc#ym z=kcWt_&rY0RQldMM(ANMx_VY88WT=hmccG8f67<2+54b@qvcAXzul*82UZG3U^}wN z$tHlaEIuJ(2je8@$2_*?i+rC66zm!N)EVsfYl!qfAH=FZdK25+`-#Kt-We+Q#~-;( ze_T%x_UK%;bq4wXLY@%;HzHsGP*kYzOgh?NP)HKhAN4z~HgF#>Dkx^pQ^zO?X4S zq5?e|LMac4D!+cc2S*yr!Hh;LQ;kON&9&xoP;2SaTnt_t{Fk?v8+M}J_LbJ>BJY~14V2@2+gt^QH}GgDgtJJ70Y5UDsYSlS}QZA z8Ju-pKgeFdy7fR@x{1d>Nyy>%GXt+ho@!)Ss^A>REFufJEm0B^)Nw2TkN~_~YB#D0 zlP}R@nhXxA^cA&%jA`-@1c%gF7Qj)Q4b?H)0{lWWtMGgv9tM^mN{RPT#-Ba}PXq4Z zZ(Z&$Ods((_5rbQ*rH#W#wQhWnuFa{)BR>iJ%FRwXCFD$K(l(6jiTA;(K2MZb?Yu* zxo~v#Y6C^X&vD4Ocff3_9^Ji}GbfSvqp;Qq}J>oG# z6}21+2ZW)gXF-4S9S-4L6N0QhmBgco76zHUOx`|-_t5eH3>b7e^2L}l(yUq5R z4KIaHg!1w(4A-Xb`@!o6{ZNh(aMU2y4YCqQ8XKM`q`G?GbdR2`kkhn05QJA}&xRO- zNWk|t|9J0|KW9@IfACV{g=U^Gr3{^0?Ov81z|Rm_baQ!hG`iGd-4qgN&Dy04USAs< z=OJ6nD|NZJ1-KTR=q^)|toBjTRF@)j)CF%L07X3MaqK$Pd^O!8T`7q-QAGg!M>y

u&@+RR@{Hg3_;WsGREplYXVNwGFaf9 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 Q0n^$$ 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 literal 0 HcmV?d00001 diff --git a/Argh/Hello World.txt b/Argh/Hello World.txt new file mode 100644 index 000000000..eda2873ca --- /dev/null +++ b/Argh/Hello World.txt @@ -0,0 +1,3 @@ +j e l o l ! : +lpPpPpPpPpPpPpPpq + H l o W r d D diff --git a/ArnoldC/hello.arnoldc b/ArnoldC/hello.arnoldc new file mode 100644 index 000000000..5d0f36d8a --- /dev/null +++ b/ArnoldC/hello.arnoldc @@ -0,0 +1,3 @@ +IT'S SHOWTIME +TALK TO THE HAND "hello world" +YOU HAVE BEEN TERMINATED diff --git a/Assembly/helloworld.asm b/Assembly/helloworld.asm new file mode 100644 index 000000000..e82d800b3 --- /dev/null +++ b/Assembly/helloworld.asm @@ -0,0 +1,11 @@ + global _main + extern _printf + + section .text +_main: + push message + call _printf + add esp, 4 + ret +message: + db 'Hello, World', 10, 0 diff --git a/Assembly/helloworld_arm.S b/Assembly/helloworld_arm.S new file mode 100644 index 000000000..7f063f787 --- /dev/null +++ b/Assembly/helloworld_arm.S @@ -0,0 +1,17 @@ +msg: + .ascii "Hello, World!\n" +len = . - msg + +.text + .globl main +main: + mov r2, #len + ldr r1, msgaddr + mov r0, #1 + mov r7, #4 + swi #0 + + .align 4 +msgaddr: + .long msg + diff --git a/Autohotkey/ahk.ahk b/Autohotkey/ahk.ahk new file mode 100644 index 000000000..6729d18e9 --- /dev/null +++ b/Autohotkey/ahk.ahk @@ -0,0 +1 @@ +MsgBox, Hello World! diff --git a/Ballerina/hello_world.bal b/Ballerina/hello_world.bal new file mode 100644 index 000000000..fa3755c68 --- /dev/null +++ b/Ballerina/hello_world.bal @@ -0,0 +1,23 @@ +import ballerina/http; + +@http:ServiceConfig { + basePath: "/" +} + +//Bind a New Service for port 9090 +service hello bind {port:9090} { + +//Only accept POST Requests + @http:ResourceConfig { + path: "/", + methods: ["POST"] + } + //New Resource named hi + hi (endpoint caller, http:Request request) { + + http:Response res; + res.setPayload("Hello Ballerina Wold!"); + + _ = caller->respond(res); + } +} \ No newline at end of file diff --git a/Bash/example.sh b/Bash/example.sh new file mode 100644 index 000000000..b9a63c2e2 --- /dev/null +++ b/Bash/example.sh @@ -0,0 +1,7 @@ +# For loop hello world example + +for i in {1..10} +do + echo $i + +done \ No newline at end of file diff --git a/Bash/find.sh b/Bash/find.sh new file mode 100644 index 000000000..26db292dd --- /dev/null +++ b/Bash/find.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +# will find files modified within the last 20 days. Useful for housekeeping unwanted logs > certain age. + +find . -type f -mtime -20 diff --git a/Bash/hello.sh b/Bash/hello.sh new file mode 100644 index 000000000..03fa35ed1 --- /dev/null +++ b/Bash/hello.sh @@ -0,0 +1,3 @@ +#Program to print hello world in Bash + +echo "Hello World!" diff --git a/Bash/while.sh b/Bash/while.sh new file mode 100644 index 000000000..9ed53bcd9 --- /dev/null +++ b/Bash/while.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +i=10 +sum=0 +while [ $i -gt 0 ] +do + sum=$((sum+i)) + i=$((i-1)) + +done + +echo "Sum = $sum" diff --git a/Basic/Hello World b/Basic/Hello World new file mode 100644 index 000000000..988994e0d --- /dev/null +++ b/Basic/Hello World @@ -0,0 +1,9 @@ +10 PRINT "HELLO WORLD" + +(Obviously optional, but included 99.999% of the time...) + 20 GOTO 10 + RUN (AWAY, LAUGHING) + +Poor old Basic - everybody's forgotten you... + 10 FORI=1to100000:NEXT + 20 PRINT CHR$(7):GOTO20 diff --git a/Brainfuck/HelloWorld.bf b/Brainfuck/HelloWorld.bf new file mode 100644 index 000000000..265e751c8 --- /dev/null +++ b/Brainfuck/HelloWorld.bf @@ -0,0 +1 @@ +++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>. diff --git a/Brainfuck/SquareNumbers.bf b/Brainfuck/SquareNumbers.bf new file mode 100644 index 000000000..fa0a6f8c4 --- /dev/null +++ b/Brainfuck/SquareNumbers.bf @@ -0,0 +1,5 @@ +++++[>+++++<-]>[<+++++>-]+<+[ + >[>+>+<<-]++>>[<<+>>-]>>>[-]++>[-]+ + >>>+[[-]++++++>>>]<<<[[<++++++++<++>>-]+<.<[>----<-]<] + <<[>>>>>[>>>[-]+++++++++<[>-<-]+++++++++>[-[<->-]+[<<<]]<[>+<-]>]<<-]<<- +] diff --git a/Brainfuck/SumOf2Int.bf b/Brainfuck/SumOf2Int.bf new file mode 100644 index 000000000..8fffb4b02 --- /dev/null +++ b/Brainfuck/SumOf2Int.bf @@ -0,0 +1 @@ +,>++++++[<-------->-],[<+>-]<. diff --git a/Brainfuck/digix.bf b/Brainfuck/digix.bf new file mode 100644 index 000000000..8c1a311df --- /dev/null +++ b/Brainfuck/digix.bf @@ -0,0 +1 @@ +,>+++ +++[<++++++++>-] diff --git a/Brainfuck/multiply.bf b/Brainfuck/multiply.bf new file mode 100644 index 000000000..152a6eeaa --- /dev/null +++ b/Brainfuck/multiply.bf @@ -0,0 +1 @@ +,>,[>[>+>+<<-]>>[<<+>>-]<<<-] diff --git a/Brainfuck/replicando.bf b/Brainfuck/replicando.bf new file mode 100644 index 000000000..6211b99ed --- /dev/null +++ b/Brainfuck/replicando.bf @@ -0,0 +1 @@ +,>,-[[->>+<<]<[->+>+<<]>>[-<<+>>]>-[-<+>]<] diff --git a/C#/AcendingSort.c b/C#/AcendingSort.c new file mode 100644 index 000000000..6108da733 --- /dev/null +++ b/C#/AcendingSort.c @@ -0,0 +1,50 @@ +#include +#define MAX_SIZE 100 // Maximum array size + +int main() +{ + int arr[MAX_SIZE]; + int size; + int i, j, temp; + + /* Input size of array */ + printf("Enter size of array: "); + scanf("%d", &size); + + /* Input elements in array */ + printf("Enter elements in array: "); + for(i=0; i arr[j]) + { + temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; + } + } + } + + /* Print the sorted array */ + printf("\nElements of array in ascending order: "); + for(i=0; i +#include +using namespace std; + +int main() +{ +int arm=0,a,b,c,d,no; +cout << "Enter any number" << endl; +cin >> no; +d = no; +while( no > 0){ + a=no%10; + no=no/10; + arm=arm+a*a*a; +} +if(arm==d){ + cout<<"Yes"; +} +else{ + cout<<"No"; + +} + +return 0; +} diff --git a/C++/Ascending order.cpp b/C++/Ascending order.cpp new file mode 100644 index 000000000..f3b279380 --- /dev/null +++ b/C++/Ascending order.cpp @@ -0,0 +1,20 @@ +#include + +using namespace std; + +int main() +{ + int n,N; + cin >> n; + int ascending[n]; + for(int i = 0; i < n; i++){ + cin >> ascending[i]; + } + N = sizeof(ascending)/sizeof(ascending[0]); + sort(ascending, ascending + N); + for(int j = 0; j < N; j++){ + cout << ascending[j] << endl; + } + + return 0; +} diff --git a/C++/Ashutosh.cpp b/C++/Ashutosh.cpp new file mode 100644 index 000000000..55b5e68a8 --- /dev/null +++ b/C++/Ashutosh.cpp @@ -0,0 +1,6 @@ +#include +using namespace std; +int main() +{ + cout<<"Hello world" ; +} diff --git a/C++/BuyingATVSet.cpp b/C++/BuyingATVSet.cpp new file mode 100644 index 000000000..27f3a96e4 --- /dev/null +++ b/C++/BuyingATVSet.cpp @@ -0,0 +1,30 @@ +#include +#include +using namespace std; + +typedef unsigned long long int ulli; + +ulli gcd(ulli x, ulli y){ + if( x<0 ) x = -x; + if( y<0 ) y = -y; + while( y!=0 ){ + x %= y; + if( x==0 ) return y; + y %= x; + } + return x; +} + +int main() { + ulli a, b, x, y, gcdiv; + cin>>a>>b>>x>>y; + + gcdiv = gcd(x, y); + + x /= gcdiv; + y /= gcdiv; + + cout< +#include +#include +void main() +{ + clrscr(); + int a[20],n,i,ele,b; + cout<<"Enter the number of elements\n"; + cin>>n; + cout<<"Enter the elements\n"; + for(i=0;i>a[i]; + cout<<"Enter the element to be deleted\n"; + cin>>ele; + for(i=0;i +using namespace std; +int factorial(int n) +{ + if(n==1) + return 1; + else + return n*factorial(n-1); +} +unsigned long long factorialLoop(int n) +{ + if(n < 0) + return -1; + else if (n <= 1) + return 1; + else + { + unsigned long long product = 1; + for(int i = 1; i <= n; i++) + { + product *= i; + } + return product; + } +} +int main() +{ + int n; + cout << "Enter a positive integer: "; + cin >> n; + cout << "Factorial of " << n << " = " << factorial(n); + return 0; +} diff --git a/C++/Hello World AJ.txt b/C++/Hello World AJ.txt new file mode 100644 index 000000000..5397026ea --- /dev/null +++ b/C++/Hello World AJ.txt @@ -0,0 +1,5 @@ +#include +void main() +{ +cout<<"Hello World, I am Ayush Jain"; +} \ No newline at end of file diff --git a/C++/HelloOpenSource.cpp b/C++/HelloOpenSource.cpp new file mode 100644 index 000000000..68720920d --- /dev/null +++ b/C++/HelloOpenSource.cpp @@ -0,0 +1,8 @@ +#include +#include +#include +int main() +{ + std::cout << "Hello Open Source! \n"; + return 0; +} diff --git a/C++/HelloWorld b/C++/HelloWorld new file mode 100644 index 000000000..f627a3ad9 --- /dev/null +++ b/C++/HelloWorld @@ -0,0 +1,2 @@ +#include +cout<<"Hello World!; diff --git a/C++/HelloWorldGraphics.cpp b/C++/HelloWorldGraphics.cpp new file mode 100644 index 000000000..b10dc8c57 --- /dev/null +++ b/C++/HelloWorldGraphics.cpp @@ -0,0 +1,92 @@ +#include +#include +#include +#include +using namespace std; + const int xShift = 90; +void animeLine(int x1,int y1,int x2, int y2){ + for(int i=1;i<=100;i++){ + line(x1,y1,(((x2*i)+x1*(100-i))/100),(((y2*i)+y1*(100-i))/100)); + Sleep(10); + } +} +void drawOne(){ + animeLine(xShift+20,200,xShift+20,400); + animeLine(xShift+40,200,xShift+40,400); + animeLine(xShift+20,300,xShift+40,300); +} +void drawTwo(){ + animeLine(xShift+60,200,xShift+60,400); + animeLine(xShift+120,200,xShift+60,200); + animeLine(xShift+60,300,xShift+90,300); + animeLine(xShift+60,400,xShift+120,400); +} +void drawThree(){ + animeLine(xShift+140,200,xShift+140,400); + animeLine(xShift+140,400,xShift+190,400); + + animeLine(xShift+200,200,xShift+200,400); + animeLine(xShift+200,400,xShift+240,400); +} +void drawFour(){ + animeLine(xShift+250,200,xShift+250,400); + animeLine(xShift+280,200,xShift+280,400); + animeLine(xShift+250,200,xShift+280,200); + animeLine(xShift+250,400,xShift+280,400); +} +void drawFive(){ + animeLine(xShift+380,200,xShift+400,400); + animeLine(xShift+400,400,xShift+420,200); + animeLine(xShift+420,200,xShift+440,400); + animeLine(xShift+440,400,xShift+460,200); +} +void drawSix(){ + animeLine(xShift+480,200,xShift+480,400); + animeLine(xShift+510,200,xShift+510,400); + animeLine(xShift+480,200,xShift+510,200); + animeLine(xShift+480,400,xShift+510,400); +} +void drawSeven(){ + animeLine(xShift+530,200,xShift+530,400); + animeLine(xShift+560,200,xShift+560,250); + animeLine(xShift+530,200,xShift+560,200); + animeLine(xShift+530,250,xShift+560,250); + animeLine(xShift+530,250,xShift+560,400); +} +void drawEight(){ + animeLine(xShift+590,200,xShift+590,400); + animeLine(xShift+590,400,xShift+620,400); +} +void drawNine(){ + animeLine(xShift+640,200,xShift+640,400); + animeLine(xShift+640,200,xShift+660,300); + animeLine(xShift+660,300,xShift+640,400); +} +void drawTen(){ + animeLine(xShift+680,200,xShift+680,380); + animeLine(xShift+670,390,xShift+690,390); + animeLine(xShift+670,390,xShift+670,400); + animeLine(xShift+670,400,xShift+690,400); + animeLine(xShift+690,400,xShift+690,390); +} + +int main() +{ + initwindow(900,600,"Hello there!",100,100); + std::thread t1(drawOne),t2(drawTwo),t3(drawThree),t4(drawFour),t5(drawFive),t6(drawSix); + std::thread t7(drawSeven),t8(drawEight),t9(drawNine),t10(drawTen); + t1.detach(); + t2.detach(); + t3.detach(); + t4.detach(); + t5.detach(); + t6.detach(); + t7.detach(); + t8.detach(); + t9.detach(); + t10.detach(); + + + _getch(); + return 0; +} diff --git a/C++/MCM.cpp b/C++/MCM.cpp new file mode 100644 index 000000000..3b4bb1f56 --- /dev/null +++ b/C++/MCM.cpp @@ -0,0 +1,26 @@ +#include +#include +using namespace std; + +int mcm(int input[],int start,int last){ + if(start==last){ + return 0; + } + int min = INT_MAX; + for(int i=start;i +using namespace std; + +int main() +{ + int rows, count = 0, count1 = 0, k = 0; + + cout << "Enter number of rows: "; + cin >> rows; + + for(int i = 1; i <= rows; ++i) + { + for(int space = 1; space <= rows-i; ++space) + { + cout << " "; + ++count; + } + + while(k != 2*i-1) + { + if (count <= rows-1) + { + cout << i+k << " "; + ++count; + } + else + { + ++count1; + cout << i+k-2*count1 << " "; + } + ++k; + } + count1 = count = k = 0; + + cout << endl; + } + return 0; +} diff --git a/C++/PRACQUE.CPP b/C++/PRACQUE.CPP new file mode 100644 index 000000000..234af52f0 --- /dev/null +++ b/C++/PRACQUE.CPP @@ -0,0 +1,102 @@ +#include +#include +#include +#include +struct customer +{ + int cnum; + char cname[30]; +}; +const int max=20; +customer c[10]; +int front=-1,rear=-1; +void insert(customer c[],customer ele) +{ + if(front==-1) + { + front=rear=0; + c[0]=ele; + } + else if(rear==max-1) + { + cout<<"Over flow\n"; + } + else + { + c[++rear]=ele; + } +} +int del() +{ + if(front==-1) + { + cout<<"underflow\n"; + } + else if(front==rear) + { + front=rear=-1; + } + else + { + front++; + } +} +void display(customer c[],int front,int rear) +{ + if(front==-1) + { + cout<<"Underflow\n"; + } + else + { + for(int i=front;i<=rear;i++) + { + cout<>ch; + if(ch==1) + { + cout<<"Enter the data of the customer\n"; + cout<<"1.Customer Number\n"; + cout<<"2.Customer name\n"; + cin>>c1.cnum; + gets(c1.cname); + insert(c,c1); + getch(); + } + else if(ch==2) + { + cout<<"Deletion\n"; + del(); + getch(); + } + else if(ch==3) + { + cout<<"Dispalying\n"; + display(c,front,rear); + getch(); + } + else if(ch==4) + { + exit(0); + } + } + while(ch>=1&&ch<=4); +} + diff --git a/C++/PRACST.CPP b/C++/PRACST.CPP new file mode 100644 index 000000000..8ebf36213 --- /dev/null +++ b/C++/PRACST.CPP @@ -0,0 +1,90 @@ +#include +#include +#include +#include +struct stud +{ + int rollno; + char name[40]; +}; +const int max=20; +stud s[max],s1; +int top=-1; +void push(stud s[],stud ele) +{ + if(top==-1) + { + top=0; + s[top]=ele; + } + else if(top==max-1) + { + cout<<"Overflow\n"; + } + else + { + s[++top]=ele; + } +} +void pop() +{ + if(top==-1) + { + cout<<"Underflow\n"; + } + else + { + cout<<"popping\n"; + --top; + } +} +void traverse(stud s[],int top) +{ + if(top==-1) + { + cout<<"Underflow \n"; + } + else + { + for(int i=top;i>=0;i--) + { + cout<>ch; + if(ch==1) + { + cout<<"Enter the data\n"; + cin>>s1.rollno; + gets(s1.name); + push(s,s1); + } + else if(ch==2) + { + pop(); + } + else if(ch==3) + { + traverse(s,top); + } + else if(ch==4) + { + exit(0); + } + } + while(ch>=1&&ch<=4); +} + + diff --git a/C++/Palidrome.cpp b/C++/Palidrome.cpp new file mode 100644 index 000000000..fc9223400 --- /dev/null +++ b/C++/Palidrome.cpp @@ -0,0 +1,26 @@ +#include +using namespace std; +int palindrome(int n) +{ + while( n > 0){ + a = n % 10; + n = n / 10; + s = s * 10 + a; + } + return s; +} +int main() +{ + int a,n,b,s=0; + cout << "Please enter a number" << endl; + cin >> n; + b = n; + s=palindrome(n); + if( b == s){ + cout << "Yes" << endl; + } + else{ + cout << "No" << endl; + } + return 0; +} diff --git a/C++/QuickSort.cpp b/C++/QuickSort.cpp new file mode 100644 index 000000000..7db0a5acc --- /dev/null +++ b/C++/QuickSort.cpp @@ -0,0 +1,45 @@ +#include +#include +using namespace std; + +int getPivot(int input[],int start,int end){ + int pivot = input[start]; + int i = start; + int j = end; + while(i=pivot); + if(iend){ + return; + } + int partitionIndex = getPivot(input,start,end); + quickSort(input,start,partitionIndex-1); + quickSort(input,partitionIndex+1,end); + +} + +int main() +{ + cout<<"Om Kumar"< +#include + +#include + +using namespace std; + +int main() +{ + char str[100],temp; + int i,j=0; + + cout<<"Enter any the string :"; + cin >> str; + i=0; + j=strlen(str)-1; + while(i +#include +using namespace std; + +#define endl "\n" + +// A utility function to get the middle index from corner indexes. +int getMid(int s, int e) { return s + (e - s) / 2; } + +/* A recursive function to get the sum of values in given range + of the array. The following are parameters for this function. + + st --> Pointer to segment tree + si --> Index of current node in the segment tree. Initially + 0 is passed as root is always at index 0 + ss & se --> Starting and ending indexes of the segment represented + by current node, i.e., st[si] + qs & qe --> Starting and ending indexes of query range */ +int getSumUtil(int *st, int ss, int se, int qs, int qe, int si) +{ + // If segment of this node is a part of given range, then return + // the sum of the segment + if (qs <= ss && qe >= se) + return st[si]; + + // If segment of this node is outside the given range + if (se < qs || ss > qe) + return 0; + + // If a part of this segment overlaps with the given range + int mid = getMid(ss, se); + return getSumUtil(st, ss, mid, qs, qe, 2 * si + 1) + + getSumUtil(st, mid + 1, se, qs, qe, 2 * si + 2); +} + +/* A recursive function to update the nodes which have the given + index in their range. The following are parameters + st, si, ss and se are same as getSumUtil() + i --> index of the element to be updated. This index is + in the input array. + diff --> Value to be added to all nodes which have i in range */ +void updateValueUtil(int *st, int ss, int se, int i, int diff, int si) +{ + // Base Case: If the input index lies outside the range of + // this segment + if (i < ss || i > se) + return; + + // If the input index is in range of this node, then update + // the value of the node and its children + st[si] = st[si] + diff; + if (se != ss) + { + int mid = getMid(ss, se); + updateValueUtil(st, ss, mid, i, diff, 2 * si + 1); + updateValueUtil(st, mid + 1, se, i, diff, 2 * si + 2); + } +} + +// The function to update a value in input array and segment tree. +// It uses updateValueUtil() to update the value in segment tree +void updateValue(int arr[], int *st, int n, int i, int new_val) +{ + // Check for erroneous input index + if (i < 0 || i > n - 1) + { + cout << "Invalid Input"; + return; + } + + // Get the difference between new value and old value + int diff = new_val - arr[i]; + + // Update the value in array + arr[i] = new_val; + + // Update the values of nodes in segment tree + updateValueUtil(st, 0, n - 1, i, diff, 0); +} + +// Return sum of elements in range from index qs (quey start) +// to qe (query end). It mainly uses getSumUtil() +int getSum(int *st, int n, int qs, int qe) +{ + // Check for erroneous input values + if (qs < 0 || qe > n - 1 || qs > qe) + { + cout << "Invalid Input"; + return -1; + } + + return getSumUtil(st, 0, n - 1, qs, qe, 0); +} + +// A recursive function that constructs Segment Tree for array[ss..se]. +// si is index of current node in segment tree st +int constructSTUtil(int arr[], int ss, int se, int *st, int si) +{ + // If there is one element in array, store it in current node of + // segment tree and return + if (ss == se) + { + st[si] = arr[ss]; + return arr[ss]; + } + + // If there are more than one elements, then recur for left and + // right subtrees and store the sum of values in this node + int mid = getMid(ss, se); + st[si] = constructSTUtil(arr, ss, mid, st, si * 2 + 1) + + constructSTUtil(arr, mid + 1, se, st, si * 2 + 2); + return st[si]; +} + +/* Function to construct segment tree from given array. This function + allocates memory for segment tree and calls constructSTUtil() to + fill the allocated memory */ +int *constructST(int arr[], int n) +{ + // Allocate memory for the segment tree + + //Height of segment tree + int x = (int)(ceil(log2(n))); + + //Maximum size of segment tree + int max_size = 2 * (int)pow(2, x) - 1; + + // Allocate memory + int *st = new int[max_size]; + + // Fill the allocated memory st + constructSTUtil(arr, 0, n - 1, st, 0); + + // Return the constructed segment tree + return st; +} + +// Driver program to test above functions +int main() +{ + int arr[] = {1, 3, 5, 7, 9, 11}; + int n = sizeof(arr) / sizeof(arr[0]); + + // Build segment tree from given array + int *st = constructST(arr, n); + + // Print sum of values in array from index 1 to 3 + + cout << "Sum of values in given range = " << getSum(st, n, 1, 3) << endl; + // Update: set arr[1] = 10 and update corresponding + // segment tree nodes + updateValue(arr, st, n, 1, 10); + + // Find sum after the value is updated + cout << "Updated sum of values in given range = " << getSum(st, n, 1, 3) << endl; + return 0; +} \ No newline at end of file diff --git a/C++/SelectionSort.cpp b/C++/SelectionSort.cpp new file mode 100644 index 000000000..c954233b7 --- /dev/null +++ b/C++/SelectionSort.cpp @@ -0,0 +1,43 @@ +#include + +using namespace std; + +void swap(int input[],int i,int j){ + int temp = input[i]; + input[i] = input[j]; + input[j] = temp; +} + +int getMin(int input[],int start,int end){ + int minValue = INT_MAX; + int minIndex = start; + for(int i=start;iinput[i]){ + minValue = input[i]; + minIndex = i; + } + } + return minIndex; +} +void SelectionSort(int input[],int size){ + for(int i=0;i>n; + int input[n]; + cout<<"Enter the elements to be sorted: "; + for(int i=0;i>input[i]; + int size = sizeof(input)/sizeof(input[0]); + SelectionSort(input,size); + for(int i:input){ + cout< +using namespace std; +int main() +{ +cout<<"Hello world"< +using std::less; + +template > +class SkewHeap{ +private: + struct SkewNode{ + T x; + SkewNode *lc, *rc; + SkewNode(T a=0):x(a), lc(nullptr), rc(nullptr){} + } *root; + cmp CMP_; + size_t count; + SkewNode* Merge(SkewNode* a, SkewNode* b){ + if(!a or !b) return a?a:b; + if(CMP_(a->x, b->x)) swap(a, b); + a->rc = Merge(a->rc, b); + swap(a->lc, a->rc); + return a; + } + void clear(SkewNode*& a){ + if(!a) return; + clear(a->lc); clear(a->rc); + delete a; a = nullptr; + } +public: + SkewHeap(): root(nullptr), count(0){} + bool empty(){return count==0;} + size_t size(){return count;} + T top(){return root->x;} + void clear(){clear(root);count = 0;} + void push(const T& x){ + SkewNode* a = new SkewNode(x); + count += 1; + root = Merge(root, a); + } + void join(SkewHeap& a){ + count += a.count; a.count = 0; + root = Merge(root, a.root); + } + void pop(){ + count -= 1; + SkewNode* rt = Merge(root->lc, root->rc); + delete root; root = rt; + } + friend void swap(SkewHeap& a, SkewHeap& b){ + swap(a.root, b.root); + } +}; diff --git a/C++/Sum in array.cpp b/C++/Sum in array.cpp new file mode 100644 index 000000000..211d72594 --- /dev/null +++ b/C++/Sum in array.cpp @@ -0,0 +1,15 @@ +#include +using namespace std; +int main() +{ + int n,sum = 0; + cin >> n; + int o[n]; + for(int i =0;i < n;i++) + { + cin >> o[i]; + sum+=o[i]; + } + cout << sum << endl; + return 0; +} diff --git a/C++/Username.cpp b/C++/Username.cpp new file mode 100644 index 000000000..66ad8eed5 --- /dev/null +++ b/C++/Username.cpp @@ -0,0 +1,7 @@ +#include + +int main() +{ + std::cout << "Github Name: Djay1407"; + return 0; +} \ No newline at end of file diff --git a/C++/ValeuFalou.cpp b/C++/ValeuFalou.cpp new file mode 100644 index 000000000..b9baa7181 --- /dev/null +++ b/C++/ValeuFalou.cpp @@ -0,0 +1,8 @@ +#include + +int main() +{ + //Good Bye in Brazilian Portuguese + printf("Vlw flw"); + return 0; +} \ No newline at end of file diff --git a/C++/Xor.cpp b/C++/Xor.cpp new file mode 100644 index 000000000..b60ff3c73 --- /dev/null +++ b/C++/Xor.cpp @@ -0,0 +1,14 @@ +#include +using namespace std; +int myXor(int a, int b) +{ + return (a|b) & (~a|~b); +} +int main() +{ + //finding the xor of two numbers + int a,b; + cin>>a>>b; + int result = myXor(a,b); + cout< +using namespace std; + +int main() +{ + double x,y; + cout<<"Enter the numbers you wish to add"<>x>>y; + cout<<"The sum of numbers is "< +#include +void main() +{ +printf("HELLO ALIEN HELLO WORLD"); +getch(); +} diff --git a/C++/antz.cpp b/C++/antz.cpp new file mode 100644 index 000000000..a9f520502 --- /dev/null +++ b/C++/antz.cpp @@ -0,0 +1,6 @@ +#include + +int main() +{ + std::cout << "\nHello World!\n"; +} \ No newline at end of file diff --git a/C++/bfs.cpp b/C++/bfs.cpp new file mode 100644 index 000000000..300c4e018 --- /dev/null +++ b/C++/bfs.cpp @@ -0,0 +1,49 @@ +#include +#include +#include + +using namespace std; + +int main(){ + + int x,y,v,edges; + cout<<"The number of edges: "; + cin>>edges; + + vector visited(10,false); // considering number of edges in graph to be less than 10 + vector graph[10]; + queue queue; + + cout<<"There is a branch between: \n"; + for(int i=0;i>x>>y; + graph[x].push_back(y); + //graph[y].push_back(x); + } + + cout<<"Enter the vertex where you want the bfs transversal to start: \n"; + cin>>v; + + queue.push(v); + visited[v]=1; + //cout<::iterator i=graph[v].begin();i!=graph[v].end();i++){ + + if(!visited[*i]){ + //cout<<*i< + +using namespace std; +void swap(int input[],int i,int j){ + int temp = input[i]; + input[i] = input[j]; + input[j] = temp; +} +void bubbleSort(int input[],int size){ + for(int firstUnsortedIndex = size-1;firstUnsortedIndex>0;firstUnsortedIndex--){ + for(int i = 1;i<=firstUnsortedIndex;i++){ + if(input[i-1]>input[i]){ + swap(input,i-1,i); + } + } + } +} + +int main() +{ + int n; + cout<<"Enter the size: "; + cin>>n; + int input[n]; + for(int i=0;i>input[i]; + int size = sizeof(input)/sizeof(input[0]); + bubbleSort(input,size); + for(int i=0;i +using namespace std; + +// This void calculates the Convex Hull of a poligon declared using +// pair using the Jarvis Algorithm in O(n²). + +#define pb push_back +#define mp make_pair +#define priority_queue pq + +#define f first +#define s second + +typedef long long int ll; +typedef pair pii; +typedef vector vi; + +void convexHull(pii points[], int n) +{ + if (n < 3) return; + vector hull; + + int l = 0; + for (int i = 1; i < n; i++) + if (points[i].f < points[l].f) + l = i; + + int p = l, q; + do { + hull.push_back(points[p]); + q = (p+1)%n; + for (int i = 0; i < n; i++) + { + if (orientation(points[p], points[i], points[q]) < 0) + q = i; + } + p = q; + + } while (p != l); + // Now yout hull in the hull vector +} diff --git a/C++/crossWord.cpp b/C++/crossWord.cpp new file mode 100644 index 000000000..3c52b3773 --- /dev/null +++ b/C++/crossWord.cpp @@ -0,0 +1,293 @@ +// This algorithm solves a crossword using backtracking. +// Comments are in portuguese. +/* +Sample input + 4 3 + 0 0 -1 + 0 0 0 + -1 0 0 + 0 0 0 + 5 + key + car + or + as + rry + saoe +*/ + +#include +#include + +// Estrutura utilizada para coordenar e aramazenar os vertices +typedef struct { + int i; + int j; + int tamPal[2]; // [0] - coluna S / [1] - linha L + int idxPal[2]; // Index da palavra em determinado ponto +}vertice; + +// Estrututa utilizada na pilha +typedef struct{ + int vertice; + int lado; // 'Ponto cadeal' +}par; + +// Funçao para contar tamanho da palavra +int TamanhoPalavra(char *str){ + int tamanho = 0; + while (str[tamanho] != '\0'){ + tamanho++; + } + return tamanho; +} + +void setarTamanhos(vertice *ver, char **tab, int m, int n){ + /* + Funçao que determina o numero de letras que as palavras alocadas em + determinado local podem assumir. Recebe um 'vertice' e percorre todos + os seus quatro pontos cardeiais e realaciona cada um com um tamanho. + */ + + int t = 0; + int di = ver->i; + while (++di < m){ + if (tab[di][ver->j] == '*') break; + t++; + } + ver->tamPal[0] = t; + + t = 0; + int dj = ver->j; + while (++dj < n){ + if (tab[ver->i][dj] == '*') break; + t++; + } + ver->tamPal[1] = t; +} + +void montarTabuleiro(vertice *ver, char **tab, char **pal, int nVer, int m, int n){ + for (int i = 0; i < m; i++) + for (int j = 0; j < n; j++) + if (tab[i][j] != '*') + tab[i][j] = '#'; // Reinicializando tabuleiro + + for (int i = 0; i < nVer; i++){ // Percorrendo todos vertices + for (int j = 0; j < 4; j++){ // Percorrendo pontos posiveis dentro do vertice + int auxTam = ver[i].tamPal[j]; // Variaveis que auxilian na posiçao + int auxIdx = ver[i].idxPal[j]; + + if (auxIdx >= 0){ // Se existe palavra idexada a aquela posicao + char *auxPal = pal[auxIdx]; + if (j == 0){ // Caso ela esteja numa coluna no sul + int auxI = ver[i].i + 1; + int auxJ = ver[i].j; + + for (int k = 0; k < auxTam; k++){ + tab[auxI][auxJ] = auxPal[k]; // Passando a palvra para o tabuleiro + auxI++; + } + } + if (j == 1){ // Caso ela esteja numa linha no leste + int auxI = ver[i].i; + int auxJ = ver[i].j + 1; + + for (int k = 0; k < auxTam; k++){ + tab[auxI][auxJ] = auxPal[k]; + auxJ++; + } + } + } + } + } +} + +int checaEspacoVazio(char **tab, int m, int n){ + // Checa se existe alguma posiçao vazia no tabuleiro + for (int i = 1; i < m; i++){ + for (int j = 1; j < n; j++){ + if (tab[i][j] == '#') return 1; // Tem espaço vazio; + } + } + return 0; +} + +int vaiDar(char **tab, char *pal, int i, int j, int ori){ + /* + Funçao que, dado o tabuleiro, uma palavra, uma posiçao e uma orintaçao, + checa se sera possivel colocar aquela palavra no local, ou seja, se ela + nao vai colodir com alguma palavra ja colocada no tabuleiro, em termos de + letras diferentes. + */ + int n = TamanhoPalavra(pal); + for (int k = 1; k <= n; k++){ + if (ori == 0){ // Caso a palavra tenha que caber em uma coluna + // Caso aquela posicao ja esteja com outra letra e nao seja vazia + if (tab[i+k][j] != pal[k-1] && tab[i+k][j] != '#') return 0; + } + else if (ori == 1){ + if (tab[i][j+k] != pal[k-1] && tab[i][j+k] != '#') return 0; + } + } + return 1; // #VaiDarCerto +} + +void imprimeTabuleiro(char **tab, int m, int n){ + /* + Funçao auxiliar para imprimir o tabuleiro + */ + for (int i = 1; i < m; i++){ + for (int j = 1; j < n; j++){ + printf("%c ", tab[i][j]); + } + printf("\n"); + } +} + +int main(){ + int i, j, m, n, t; + t = 1; // Contador de instancias + while (scanf("%d %d", &m, &n) && !(m == 0 && n == 0)){ + // m - linha , n - col + + // Definindo a matrix que representara o tabuleiro, sendo que ela possui + // 1 linha e coluna a mais (que formam uma especie de moldura). + m += 1; n += 1; + char **tab; + tab = malloc(m * sizeof(char *)); + for (i = 0; i < m; i++) + tab[i] = malloc(n * sizeof(char)); + + /* + Aqui se cria um vetor de vertices. Neste EP, a ideia de vertice se traduz + no local de onde uma palavra pode iniciar/acabar. + */ + vertice *v; + v = malloc(2 * m * n * sizeof(vertice)); + + // Lendo o tabuleiro + int ipt, nVertices = 0; + for (i = 1; i < m; i++){ + for (j = 1; j < n; j++){ + tab[i][j] = '#'; // Inicializando tabuleiro, '#' representa vazio + scanf("%d", &ipt); + if (ipt == -1){ + // Inicializando um vertice + tab[i][j] = '*'; + v[nVertices].i = i; + v[nVertices].j = j; + v[nVertices].idxPal[0] = -1; + v[nVertices].idxPal[1] = -1; + + nVertices++; + } + } + } + + // Criando a 'moldura de vertices' para o tabuleiro + for (int i = 0; i < m; i++){ + tab[i][0] = '*'; + v[nVertices].i = i; + v[nVertices].j = 0; + v[nVertices].idxPal[0] = -1; + v[nVertices].idxPal[1] = -1; + nVertices++; + } + for (int j = 0; j < n; j++){ + tab[0][j] = '*'; + v[nVertices].i = 0; + v[nVertices].j = j; + v[nVertices].idxPal[0] = -1; + v[nVertices].idxPal[1] = -1; + nVertices++; + } + + // Lendo a lista de palavras como uma matriz de char's + int nPal; + scanf("%d", &nPal); + char **pal; + pal = malloc(nPal * sizeof(char*)); + for (i = 0; i < nPal; i++){ + pal[i] = malloc(105 * sizeof(char)); + scanf("%s", pal[i]); + } + + // Setando o numero maximo que uma palavra pode ter para cada vertice + for (i = 0; i < nVertices; i++) + setarTamanhos(&v[i], tab, m, n); + + // Criando pilha usada no backtracking + par *pilha; + pilha = malloc((nPal+1) * sizeof(par)); + int topoPilha = 0; + + printf("Instancia %d\n", t); + int palAtual = 0; + + // Inicio do backtracking + while (palAtual <= nPal){ + if (palAtual < 0){ // Base de erro do backtracking + printf("nao ha solucao\n\n"); + break; + } + else if (palAtual == nPal){ // Sucesso + if (checaEspacoVazio(tab, m, n)){ // Nao tao sucesso assim + printf("nao ha solucao\n\n"); + break; + } + montarTabuleiro(v, tab, pal, nVertices, m, n); + imprimeTabuleiro(tab, m, n); + printf("\n"); + break; + } + + int verAtual = 0; // Indicador de qual vertice estou lidando + while (verAtual <= nVertices && palAtual < nPal && palAtual >= 0){ + int lado = 0; // Indicador de qual ponto do vertice estou lidando + + if (verAtual == nVertices){ // Aqui eu faço o back do tracking + topoPilha--; // Desempilhando + verAtual = pilha[topoPilha].vertice; // Passando valores da pilha de volta para a execuçao + lado = pilha[topoPilha].lado; + v[verAtual].idxPal[lado] = -1; + lado++; // Dando sequencia a partir do proximo passo + palAtual = topoPilha; // A altura da pilha representa a palavr anterior a que estou lidando + if (topoPilha < 0) break; + montarTabuleiro(v, tab, pal, nVertices, m, n); // Atualiza tabuleiro, dado que retirei uma palavra + } + + while (lado <= 2){ + + if (lado == 2){ // Ja percorri todos os pontos possiveis dentro de um vertice + verAtual++; // Vou para o proximo vertice + break; + } + + if (v[verAtual].tamPal[lado] == TamanhoPalavra(pal[palAtual]) && v[verAtual].idxPal[lado] == -1) + if (vaiDar(tab, pal[palAtual], v[verAtual].i, v[verAtual].j, lado) == 1){ + // Caso eu consiga colocar a palavra no determinado local + pilha[topoPilha].vertice = verAtual; + pilha[topoPilha].lado = lado; + v[verAtual].idxPal[lado] = palAtual; + topoPilha++; // Empilhando + palAtual++; // Indo para proxima palavra + verAtual = 0; + montarTabuleiro(v, tab, pal, nVertices, m, n); // Atualiza tabuleiro com a nova palavra + break; + } + + lado++; + } + } + } + + t++; // Incrementando instancia + // Liberando a memoria + free(pilha); + free(tab); + free(v); + free(pal); + } + return 0; +} + diff --git a/C++/dfs.cpp b/C++/dfs.cpp new file mode 100644 index 000000000..79b19e2e0 --- /dev/null +++ b/C++/dfs.cpp @@ -0,0 +1,48 @@ +/* DFS implementation using Stack... Works well in graphs without cycles */ +#include +#include +#include + +using namespace std; + +int main(){ + + int x,y,v,edges; + cout<<"The number of edges: "; + cin>>edges; + + vector visited(10,false); // considering number of edges in graph to be less than 10 + vector graph[10]; + stack stack; + + cout<<"There is a branch between: \n"; + for(int i=0;i>x>>y; + graph[x].push_back(y); + graph[y].push_back(x); + } + + cout<<"Enter the vertex where you want the transversal to start: \n"; + cin>>v; + + stack.push(v); + visited[v]=1; + cout<::iterator i=graph[v].begin();i!=graph[v].end();i++){ + + if(!visited[*i]){ + cout<<*i< +#include + +using namespace std; + +int main() +{ + int n,k,l=-1,r; + cout<<"enter the value of rows:\n"; + cin>>n; + + cout<<"diamond is:\n"; + for(int i=1;i<=n;i++) + { + + for(int space=1;space<=abs((n+1)/2-i);space++){ + cout <<" "; + } + if(i<=(n+1)/2) + l=l+2; + else // i<=(n+1)/2 ? l=l+2:l=l-2 + l=l-2; + for(int j=1;j<=l;j++) { + + cout<<"* "; + } + cout<<"\n"; + } + + +} diff --git a/C++/dijkstra b/C++/dijkstra new file mode 100644 index 000000000..251a7be21 --- /dev/null +++ b/C++/dijkstra @@ -0,0 +1,42 @@ +// Dijkstra algorithm + +#include +using namespace std; + +int n, m, s, t, b, w[1010][1010], visited[10010]; + +int inf = INT_MAX; +vector adj[1010]; //adj vector + +int main(){ + cin >> n >> m; + // reading graph + for(int i = 0; i < m; i++){ + cin >> s >> t >> b; + w[s][t] = w[t][s] = b; // Defining edges weights + adj[s].push_back(t); // Defining adjacency vector + adj[t].push_back(s); + } + + // Distancy vector + vector dist(n+2, inf); + + priority_queue > q; + q.push(make_pair(0, 0)); // Inicializing queue with root vertice + dist[0] = 0; + + while(!q.empty()){ + int v = q.top().second; + q.pop(); + if(visited[v] == 1) continue; + visited[v] = 1; + for(int u : adj[v]){ // Iterating thru adjacencies + if(dist[u] > dist[v] + w[v][u]){ + dist[u] = dist[v] + w[v][u]; + q.push(make_pair(-dist[u], u)); + } + } + } + + cout << dist[n+1] << endl; +} diff --git a/C++/evenfibonacci.cpp b/C++/evenfibonacci.cpp new file mode 100644 index 000000000..60cd097b1 --- /dev/null +++ b/C++/evenfibonacci.cpp @@ -0,0 +1,28 @@ +//find the sum of the even-valued fibonacci terms upto 4 million. +#include +using namespace std; + +int main() { + // your code goes here + int sum=0, x=1, y=2; + + while(x<=4000000)// 4,000,000 . does not exceed---> <= + { + sum+= (x%2==0)?x:0; + int z= x+y; + x=y; + y=z; + } + + cout< + +using namespace std; + +map f; + +int fact(int n){ + + if(n==1 || n==0) + return 1; + else if(f[n]) + return f[n]; + else + return f[n]=n*fact(n-1); +} + +int main(){ + cout< +#include + +using namespace std; + +int main() +{ + int n,k,l=-1,r; + cout<<"enter the value of rows:\n"; + cin>>n; + + cout<<"floyd triangle is:\n"; + for(int i=1;i<=n;i++) + { + for(int k =1;k<=i;k++) + { + cout< +using namespace std; + +int gcd(int a ,int b) +{ if(a==b) +return a; +if(a%b==0) + return b; +if(b%a==0) + return a ; +if(a>b) + return gcd(a%b,b); +else + return gcd(a,b%a); + +} +int main() +{ int a,b; + cout <<"enter the numbers"<>a>>b; + int z =gcd(a,b); + cout<<"the gcd of given numbers is"< + using namespace std; + class Message + { + public: + void display() { + cout << "Hello World\n"; + } + }; + int main() + { + Message c; + c.display(); + return 0; + } diff --git a/C++/hello-hacktoberfest.cpp b/C++/hello-hacktoberfest.cpp new file mode 100644 index 000000000..ee8e9062b --- /dev/null +++ b/C++/hello-hacktoberfest.cpp @@ -0,0 +1,5 @@ +#include + +int main() { + std::cout << "Hello hacktoberfest!\n"; +} \ No newline at end of file diff --git a/C++/hello-world.cpp b/C++/hello-world.cpp new file mode 100644 index 000000000..802c7bb08 --- /dev/null +++ b/C++/hello-world.cpp @@ -0,0 +1,8 @@ +#include + +using namespace std; + +int main(){ + cout << "Hello world !" << endl; + return 0; +} diff --git a/C++/hello.cpp b/C++/hello.cpp new file mode 100644 index 000000000..599978158 --- /dev/null +++ b/C++/hello.cpp @@ -0,0 +1,8 @@ +#include +using namespace std; + +int main() +{ + cout << "Hello, World!"; + return 0; +} diff --git a/C++/helloWorld.cpp b/C++/helloWorld.cpp new file mode 100644 index 000000000..d14b0faf6 --- /dev/null +++ b/C++/helloWorld.cpp @@ -0,0 +1,7 @@ +#include + +int main() +{ + std::cout << "Hello, world!\n"; + return 0; +} \ No newline at end of file diff --git a/C++/hello_world.cpp b/C++/hello_world.cpp new file mode 100644 index 000000000..88ca3f879 --- /dev/null +++ b/C++/hello_world.cpp @@ -0,0 +1,7 @@ +#include +using namespace std; +int main() +{ + cout<<"Hello World\n"; + return 0; +} \ No newline at end of file diff --git a/C++/helloword_id.cpp b/C++/helloword_id.cpp new file mode 100644 index 000000000..423aa6612 --- /dev/null +++ b/C++/helloword_id.cpp @@ -0,0 +1,8 @@ +#include + +using namespace std; + +int main(){ + cout << "Hello Dunia!" << endl; + return 0; +} \ No newline at end of file diff --git a/C++/helloword_in_id.cpp b/C++/helloword_in_id.cpp new file mode 100644 index 000000000..423aa6612 --- /dev/null +++ b/C++/helloword_in_id.cpp @@ -0,0 +1,8 @@ +#include + +using namespace std; + +int main(){ + cout << "Hello Dunia!" << endl; + return 0; +} \ No newline at end of file diff --git a/C++/helloworld_c++.cpp b/C++/helloworld_c++.cpp new file mode 100644 index 000000000..393bcb2ba --- /dev/null +++ b/C++/helloworld_c++.cpp @@ -0,0 +1,8 @@ +#include +using namespace std; + +int main() +{ + cout << "Hello, World!"; + return 0; +} diff --git a/C++/insertion.cpp b/C++/insertion.cpp new file mode 100644 index 000000000..c2fc9801b --- /dev/null +++ b/C++/insertion.cpp @@ -0,0 +1,32 @@ +#include +#include +void main() +{ + clrscr(); + int n,i,k,ele,a[20],pos; + cout<<"Enter no. of elements\n"; + cin>>n; + cout<<"Enter the elements\n"; + for(i=0;i>a[i]; + cout<<"Enter the element to be inserted\n"; + cin>>ele; + if(elea[n-1]) + pos=n; + else + for(i=0;ia[i])&&(elepos;) + { + a[i]=a[i-1]; + a[i]=ele; + break; + }n++; + cout<<"New array is:\n"; + for(k=0;k + +using namespace std; + +int graph[10][10]; +bool visited[10][10]; +int n; + +int dfs(int x,int y){ + + if(x<1 || x>n || y<1 || y>n ) + return 0; + + + if(visited[x][y] || !graph[x][y]) + return 0; + + visited[x][y] = true; + + + if(!visited[x-1][y-1] && graph[x-1][y-1]==1) + dfs(x-1,y-1); + + + if(!visited[x-1][y] && graph[x-1][y]==1) + dfs(x-1,y); + + + if(!visited[x][y-1] && graph[x][y-1]==1) + dfs(x,y-1); + + + if(!visited[x+1][y+1] && graph[x+1][y+1]==1) + dfs(x+1,y+1); + + + + if(!visited[x+1][y] && graph[x+1][y]==1) + dfs(x+1,y); + + + if(!visited[x-1][y+1] && graph[x-1][y+1]==1) + dfs(x-1,y+1); + + + if(!visited[x+1][y-1] && graph[x+1][y-1]==1) + dfs(x+1,y-1); + + + if(!visited[x][y+1] && graph[x][y+1]==1) + dfs(x,y+1); + +} + +int main(){ + + cin>>n; + for(int i=1;i<=n;i++) + for(int j=1;j<=n;j++) + cin>>graph[i][j]; + int count=0; + + for(int i=1;i<=n;i++) + for(int j=1;j<=n;j++) + if(!visited[i][j]&&graph[i][j]){ + dfs(i,j); + count++; + } + cout< +using namespace std; + +void swap(int *a ,int *b) + { + int temp=*a; + *a=*b; + *b=temp; + } + +void sort(int a[],int n) +{ + for (int round = 0; round < n-1; round++) + for (int i = 0; i < n-1- round; i++) + { + if (a[i] > a[i + 1]) + swap(&a[i],&a[i+1]); + } +} + +int main() +{ + int n; + cout<<"Enter the size of array: "; + cin>>n; + int arr[n]; + cout << "Enter the array" << endl; + for (int i = 0; i < n; i++) + cin >> arr[i]; + sort(arr,n); + cout<<"sorted array:"< + +using namespace std; + +void main () { + +cout << "Hello World" ; + +} diff --git a/C++/merge_sort(top-down-recursvive).cpp b/C++/merge_sort(top-down-recursvive).cpp new file mode 100644 index 000000000..e13d42114 --- /dev/null +++ b/C++/merge_sort(top-down-recursvive).cpp @@ -0,0 +1,65 @@ +#include +using namespace std; +void copies(vector &v,vector&temp,int low,int high) +{ + for(int i=low;i<=high;i++) + v[i]=temp[i]; +} +void merges(vector &v,vector&temp,int low1,int high1,int low2,int high2) +{ + int i=low1; + int j=low2; + int k=low1; + while(i<=high1 && j<=high2) + { + if(v[i]<=v[j]) + temp[k++]=v[i++]; + else + temp[k++]=v[j++]; + } + while(i<=high1) + temp[k++]=v[i++]; + + while(j<=high2) + temp[k++]=v[j++]; + +} +void merge_sort(vector &v,int low,int high) +{ + int mid; + vector temp(v.size()); + if(low v; + + cout<<"Enter the no of elements: "; + int n; + cin>>n; + + for(int i=0;i>x; + v.push_back(x); + } + // input ends and sorting begins. + merge_sort(v,0,n-1); + + // sorting ends:) ...and printing begins. + + for(int i=0;i +using namespace std; + +int main() { + printf("Hello, World."); + return 0; +} diff --git a/C++/occurrence of a number.cpp b/C++/occurrence of a number.cpp new file mode 100644 index 000000000..0d3e94e16 --- /dev/null +++ b/C++/occurrence of a number.cpp @@ -0,0 +1,21 @@ +#include +using namespace std; + +int linearsearch(int a[],int x ) +{ int count =0; + for (int i=0 ;i<21;i++) + { + if (a[i]==x) + {count ++;} + + } + return count ; +} +int main() +{ int x; + int a[50]={1,2,3,3,4,5,5,5,5,5,6,6,6,7,7,9,9,9,9,9,9}; + cout<<"enter the element you want to check "<>x; + int y =linearsearch(a,x); + cout< + +using namespace std; + +int main() +{ + int n,k; + int a[10][10]; + cin>>n; + for(int i=1;i<=n;i++) + { + for(int space=1;space<=n-i;space++) + { + cout<<" "; + + } + for(int j=1;j<=2*i-1;j++){ + if(j%2==0) { + cout<<" "; + } + else if(j==1 || j== 2*i-1) { + a[i][j]=1; + cout< + +using namespace std; +int main(){ + cout<< "Hello World!\n"; +} diff --git a/C++/shellSort.cpp b/C++/shellSort.cpp new file mode 100644 index 000000000..e8951966e --- /dev/null +++ b/C++/shellSort.cpp @@ -0,0 +1,34 @@ +#include + +using namespace std; + +void shellSort(int input[],int size){ + for(int gap = size/2;gap>0;gap = gap/2){ + for(int i = gap;i =gap && input[j-gap]>element){ + input[j] = input[j-gap]; + j = j-gap; + } + + input[j] = element; + } + } +} + +int main() +{ + cout<<"Om Kumar"< +#include +void main(){ +int n=5; +for(int i=0;i<3;i++){ + cout< + +// Finds primes up to MAX_SIZE using the sieve of eratosthenes + +using namespace std; + +const int MAX_SIZE = 10000; +bool primes[MAX_SIZE]; + +void sieve(){ + for(int i = 2;i < MAX_SIZE;i++){ + if(!primes[i]){ + for (int j = 0; i*i + j*i < MAX_SIZE; j++) { + primes[i*i + j*i] = 1; + } + } + } + + for (int i = 2; i < MAX_SIZE; ++i) { + if(!primes[i]) printf("%d\n", i); + } +} + + +int main() { + sieve(); +} diff --git a/C++/star.cpp b/C++/star.cpp new file mode 100644 index 000000000..b2e6c22ad --- /dev/null +++ b/C++/star.cpp @@ -0,0 +1,33 @@ +#include +#include + +using namespace std; + +int main() +{ + int n,k,l,r; + cout<<"enter the value of rows:\n"; + cin>>n; + r=(n+1)/2+1; + l=-2; + + for(int i=1;i<=n;i++) + { + if(i<=(n+1)/2) { //l for spaces and r for number of stars,initialy space=0 and star=(n+1)/2 + l=l+2; + r=r-1; } + else { + l=l-2; + r=r+1; } + for(int j=1;j<=r;j++){ + cout<<"* "; + } + for(int j=1;j<=l;j++){ + cout<<" "; + } + for(int j=1;j<=r;j++){ + cout<<"* "; + } + cout<<"\n"; + } +} diff --git a/C++/strange_sumB.cpp b/C++/strange_sumB.cpp new file mode 100644 index 000000000..ad9937424 --- /dev/null +++ b/C++/strange_sumB.cpp @@ -0,0 +1,20 @@ +#include +using namespace std; + +int strange_sumB(int arr[],int left, int right); + +int main(){ + int a[] ={0,1,2,3,4,5,6}; + int sum = strange_sumB(a,3,1); + cout << "sum= " << sum << endl; +} + +int strange_sumB(int arr[], int left, int right){ + cout << "Left= " << left << "\tRight= " << right << endl; + if (right - left == 1) + { + return arr[left]; + } + return strange_sumB(arr,left, right/2) + strange_sumB(arr,right/2,right); +} + diff --git a/C++/tic.cpp b/C++/tic.cpp new file mode 100644 index 000000000..f879b3044 --- /dev/null +++ b/C++/tic.cpp @@ -0,0 +1,152 @@ +/* run this program using the console pauser or add your own getch, system("pause") or input loop */ + +#include +using namespace std; + +char square[10] = {'o','1','2','3','4','5','6','7','8','9'}; + +int checkwin(); +void board(); + +int main() +{ + int player = 1,i,choice; + + char mark; + do + { + board(); + player=(player%2)?1:2; + + cout << "Player " << player << ", enter a number: "; + cin >> choice; + + mark=(player == 1) ? 'X' : 'O'; + + if (choice == 1 && square[1] == '1') + + square[1] = mark; + else if (choice == 2 && square[2] == '2') + + square[2] = mark; + else if (choice == 3 && square[3] == '3') + + square[3] = mark; + else if (choice == 4 && square[4] == '4') + + square[4] = mark; + else if (choice == 5 && square[5] == '5') + + square[5] = mark; + else if (choice == 6 && square[6] == '6') + + square[6] = mark; + else if (choice == 7 && square[7] == '7') + + square[7] = mark; + else if (choice == 8 && square[8] == '8') + + square[8] = mark; + else if (choice == 9 && square[9] == '9') + + square[9] = mark; + else + { + cout<<"Invalid move "; + + player--; + cin.ignore(); + cin.get(); + } + i=checkwin(); + + player++; + }while(i==-1); + board(); + if(i==1) + + cout<<"==>\aPlayer "<<--player<<" win "; + else + cout<<"==>\aGame draw"; + + cin.ignore(); + cin.get(); + return 0; +} + +/********************************************* + + FUNCTION TO RETURN GAME STATUS + 1 FOR GAME IS OVER WITH RESULT + -1 FOR GAME IS IN PROGRESS + O GAME IS OVER AND NO RESULT +**********************************************/ + +int checkwin() +{ + if (square[1] == square[2] && square[2] == square[3]) + + return 1; + else if (square[4] == square[5] && square[5] == square[6]) + + return 1; + else if (square[7] == square[8] && square[8] == square[9]) + + return 1; + else if (square[1] == square[4] && square[4] == square[7]) + + return 1; + else if (square[2] == square[5] && square[5] == square[8]) + + return 1; + else if (square[3] == square[6] && square[6] == square[9]) + + return 1; + else if (square[1] == square[5] && square[5] == square[9]) + + return 1; + else if (square[3] == square[5] && square[5] == square[7]) + + return 1; + else if (square[1] != '1' && square[2] != '2' && square[3] != '3' + && square[4] != '4' && square[5] != '5' && square[6] != '6' + && square[7] != '7' && square[8] != '8' && square[9] != '9') + + return 0; + else + return -1; +} + + +/******************************************************************* + FUNCTION TO DRAW BOARD OF TIC TAC TOE WITH PLAYERS MARK +********************************************************************/ + + +void board() +{ + system("cls"); + cout << "\n\n\tTic Tac Toe\n\n"; + + cout << "Player 1 (X) - Player 2 (O)" << endl << endl; + cout << endl; + + cout << " | | " << endl; + cout << " " << square[1] << " | " << square[2] << " | " << square[3] << endl; + + cout << "_____|_____|_____" << endl; + cout << " | | " << endl; + + cout << " " << square[4] << " | " << square[5] << " | " << square[6] << endl; + + cout << "_____|_____|_____" << endl; + cout << " | | " << endl; + + cout << " " << square[7] << " | " << square[8] << " | " << square[9] << endl; + + cout << " | | " << endl << endl; +} + +/******************************************************************* + END OF PROJECT +********************************************************************/ diff --git a/C++/triangle.cpp b/C++/triangle.cpp new file mode 100644 index 000000000..c8d5d0d9c --- /dev/null +++ b/C++/triangle.cpp @@ -0,0 +1,26 @@ +#include +#include + +using namespace std; + +int main() +{ + int n,k,l=-1,r; + cout<<"enter the value of rows:\n"; + cin>>n; + + for(int i=1;i<=n;i++) + { + for(int space = 1;space<=n-i;space++) { + cout<<" "; + } + + for(int j=1;j<=2*i-1;j++) + { + + cout<<"* "; + } + cout<<"\n"; + + } +} diff --git a/C++/vipassna.cpp b/C++/vipassna.cpp new file mode 100644 index 000000000..7c4a78a38 --- /dev/null +++ b/C++/vipassna.cpp @@ -0,0 +1,6 @@ +#include +#include +void main() +{ +cout<<"HELLO WORLD"; +} diff --git a/C/.DS_Store b/C/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..dacfa60c4f4cd2ad5d8543821d5b85e441ab132b GIT binary patch literal 6148 zcmeHKyN<#@47BekkZ4j;?l15ME5sF7^8>sJq(q_s`c!<^{n_34p_8J3L_>qdl0CbQ zXIGgbjzvV5*TX`j5s@j}P;M5+X3xz>_K_I{!g0n{F47`itciV~e>xC+ z1OQHucEj3d31G1VuqO6_$iOtHz@Tc57#eisOV-uIJ}~H_elyO=n>8mC_1lpzUM^Y# z8L0pj7%K1?+s69;7yQBeKO}KS1*pJVDWH?pdbPwWWp5q5ob}oQ-@vWr2X2P7QxLoz k1HBz%W9@kEMNwC5jpsG74|F>6P6zU5z;vNefmbW=2V`v{;s5{u literal 0 HcmV?d00001 diff --git a/C/ABCDE reverse pyramid.c b/C/ABCDE reverse pyramid.c new file mode 100644 index 000000000..fb823e61f --- /dev/null +++ b/C/ABCDE reverse pyramid.c @@ -0,0 +1,28 @@ +int main () +{ + int n, j; + printf("Enter n : "); + scanf ("%d", &n); + + for(int i=1; i<=n; i++) + { + for(j=1; j<=(n+1-i); j++) + printf ("%c",'A'+j-1); + + for(int k=1; k<=(2*i-3); k++) + { + if (i != 1) + printf (" "); + } + + if(i == 1) + j -= 1; + + for(; j>1; j--) + { + printf ("%c",'A'+j-1-1); + } + printf ("\n"); + } +printf("Thank you bro"); +} \ No newline at end of file diff --git a/C/AcendingSort.c b/C/AcendingSort.c new file mode 100644 index 000000000..6108da733 --- /dev/null +++ b/C/AcendingSort.c @@ -0,0 +1,50 @@ +#include +#define MAX_SIZE 100 // Maximum array size + +int main() +{ + int arr[MAX_SIZE]; + int size; + int i, j, temp; + + /* Input size of array */ + printf("Enter size of array: "); + scanf("%d", &size); + + /* Input elements in array */ + printf("Enter elements in array: "); + for(i=0; i arr[j]) + { + temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; + } + } + } + + /* Print the sorted array */ + printf("\nElements of array in ascending order: "); + for(i=0; i + +int main() { + //code + int t,n,c; + scanf("%d",&t); + while(t>0){ + scanf("%d",&n); + int a[n]; + for(i=0;ia[j+1]){ + temp=a[j+1]; + a[j+1]=a[j]; + a[j]=temp; + } + printf("%d\n",a[c-1]) + t--; + } + return 0; +} diff --git a/C/HelloWorld.cpp b/C/HelloWorld.cpp new file mode 100644 index 000000000..ca3778270 --- /dev/null +++ b/C/HelloWorld.cpp @@ -0,0 +1,8 @@ +#include +#include +int main() +{ + + printf("Hello, World!"); + +} diff --git a/C/Recursive_insertion_sort.c b/C/Recursive_insertion_sort.c new file mode 100644 index 000000000..a8f37ffd4 --- /dev/null +++ b/C/Recursive_insertion_sort.c @@ -0,0 +1,33 @@ +#include +void insertionSortRecursive(int arr[], int n) +{ + if (n <= 1) + return; + insertionSortRecursive( arr, n-1 ); + int last = arr[n-1]; + int j = n-2; + while (j >= 0 && arr[j] > last) + { + arr[j+1] = arr[j]; + j--; + } + arr[j+1] = last; +} +void printArray(int arr[], int n) +{int i; + for (i=0; i < n; i++) + printf("%d ",arr[i]); +} +int main() +{ + int n,i; + printf("Enter the size of array to sort:"); + scanf("%d",&n); + int arr[n]; + printf("Enter the elements of array:"); + for(i=0;i +#include + +// Run the program +int main(int argc, char** argv) { + + // Print out the message! + fprintf(stdout, "Hello from RenFraser!"); + + // End the program. + return 0; +} diff --git a/C/SpiderGame.c b/C/SpiderGame.c new file mode 100644 index 000000000..6b24f747a --- /dev/null +++ b/C/SpiderGame.c @@ -0,0 +1,275 @@ +/********************************************************************* + ____ , + S /---.'.__ ____// + P '--.\ /.---' + I _______ \\ // + D /.------.\ \| .'/ ______ + E // ___ \ \ ||/|\ // _/_----.\__ + R |/ /.-.\ \ \:|< >|// _/.'..\ '--' + // \'. | \'.|.'/ /_/ / \\ + G // \ \_\/" ' ~\-'.-' \\ + A // '-._| :H: |'-.__ \\ + M // (/'==='\)'-._\ || + E || \\ \| + || \\ ' + |/ \\ + || + || + \\ + ' +**********************************************************************/ +#include +#include +#include +#include +#include +#include + +#define LINES 5 /* Bereich von 0 bis 9 */ +#define DEPTH 8 +#define DISTANCE 8 + +/********************************************************************* + Funktionsprototypen +**********************************************************************/ +void erzeugeZufallsfeld(int feld[DEPTH][LINES]); +void ausgabeFeld(int feld[DEPTH][LINES],int spider); +int check(int feld[DEPTH][LINES],int spider,int tipp); + + +/********************************************************************* + Hauptprogramm +**********************************************************************/ +int main(int argc, char *argv[]) +{ + FILE *fp; + int i; + int zeit = 0; + int fehler = 0; + int spielfeld[DEPTH][LINES]={0}; + int startpos,endpos; + int starttime,endtime; + char name[100]; + + printf("Welcome to the Spider Game!\n"); + printf("Type your Name: "); + gets(name); + system("cls"); + + fp = fopen("score.txt", "at"); + + if (argc!=1) + { + fprintf(stderr,"Usage: %s\n",argv[0]); + return EXIT_FAILURE; + } + + + for(i=0;i<=10;i++) + { + erzeugeZufallsfeld(spielfeld); + startpos=rand()%(LINES-1)+1; //Wo beginnt die Spielfigur? (Zahl von 1 bis Anz. der Linien) + ausgabeFeld(spielfeld,startpos); + + printf("\nYour guess: "); + starttime=(int)time(NULL); //Zeit laeuft ... + + do + { + while (!_kbhit()) //Solange noch keine Taste gedrueckt wurde, wird die verstrichene Zeit angezeigt + { + int z; + Sleep(500); + endtime=(int)time(NULL); + printf(" (Time:%4d Sekunden)",(endtime-starttime)); + for (z=0;z<41;z++) //Cursor 41 Zeichen zuruecksetzen + printf("\b"); + } + endpos=getch()-'0'; + } while ((endpos>LINES)||(endpos<1)); //Korrekte Eingabe? + + printf("%d\n\n",endpos); //Tipp ausgeben + + + if (check(spielfeld,startpos,endpos)) //ueberpruefe Tipp + { + printf("CORRECT\n"); + zeit = zeit + (endtime-starttime); + } + else + { + printf("WRONG\n"); + zeit = zeit + (endtime-starttime); + fehler++; + } + + + if(i==10) + { + fprintf(fp,"%s;%d;%d",name,zeit,fehler); + return 1; + } + Sleep(500); + system("cls"); + } + return EXIT_SUCCESS; +} + + +/********************************************************************* + Zweck: erzeugeZufallsfeld() initialisert das Spielfeld mit zufaelligen + Verbindungen zwischen den Linien + Parameter: feld ..... Spielfeld mit den Werten + 0...keine Verbindung + 1...Verbindung nach links + 2...Verbindung nach rechts + Rueckgabewert:keiner +**********************************************************************/ +void erzeugeZufallsfeld(int feld[DEPTH][LINES]) +{ + int z,s; + int sp; + + //Feld zuruecksetzen + for (z=0;z=0) + { + for (n=0;n Spalte nach links wechseln + s--; + else if(feld[z][s-1]==2) //Verbindung nach rechts --> Spalte nach rechts wechseln + s++; + } + + if (s==tipp) + return 1; //TIPP OK + else + return 0; //FALSCHER TIPP +} + diff --git a/C/Superari15.c b/C/Superari15.c new file mode 100644 index 000000000..9b379356e --- /dev/null +++ b/C/Superari15.c @@ -0,0 +1,6 @@ +#include +int main() +{ + printf("HELLO , I am Superari15!"); + return 0; +} diff --git a/C/add2num.c b/C/add2num.c new file mode 100755 index 000000000..bbb3f7385 --- /dev/null +++ b/C/add2num.c @@ -0,0 +1,15 @@ +#include + + +int main(){ + + int a,b,c; + a=5;b=10; + c=a+b; + + printf("The addition of two numbers is %d",c); + printf("\n%d",0%1); + + printf("\n"); + return 0; +} \ No newline at end of file diff --git a/C/akshatkaush/helloworld.c b/C/akshatkaush/helloworld.c new file mode 100644 index 000000000..7a90499d4 --- /dev/null +++ b/C/akshatkaush/helloworld.c @@ -0,0 +1,6 @@ +include +int main() +{ +printf("hello world"); +return 0; +} \ No newline at end of file diff --git a/C/antz.c b/C/antz.c new file mode 100644 index 000000000..1367e7205 --- /dev/null +++ b/C/antz.c @@ -0,0 +1,16 @@ +/* + + This program is a first push for the Hacktoberfest-2018 + + Written by Reuben Antz. (10-05-2018) + +*/ + +#include + +int main() { + + // Print function + printf("\nHello World \n\tfrom Antz!\n"); + return 0; +} diff --git a/C/array.c b/C/array.c new file mode 100755 index 000000000..57cd78ade --- /dev/null +++ b/C/array.c @@ -0,0 +1,30 @@ +#include + +int main(){ + // Find Maximum element in an array + int arr[10]; + int i=0,max=0,size=0,a=1; + + printf("Enter the size of the array "); + scanf("%d",&size); + + printf("Enter %d elements in the array\n",size); + for(i=0;i + +int main(){ + + // Print even and odd numbers stored in the array + int arr1[10]; + int i=0,evensum=0,oddsum=0,size=0; + + printf("Enter the size of the array "); + scanf("%d",&size); + + printf("\nEnter %d elements in the array\n",size); + for(i=0;i + +int main() +{ + int i,sizeofarray,arr[100]; + printf("Enter size of the array\n"); + scanf("%d",&sizeofarray); + printf("Enter %d elements in the array\n",sizeofarray); + + for(i=0;i + +int main(){ + + // Sum and Average of elements of the array + int arr[10],i=0,sum=0,size=0,avg=0; + + printf("Enter size of array "); + scanf("%d",&size); + printf("\nEnter %d elements in the array \n"); + + for(i=0;i + +#define MAX 20 + +// array of items on which linear search will be conducted. +int intArray[MAX] = {1,2,3,4,6,7,9,11,12,14,15,16,17,19,33,34,43,45,55,66}; + +void printline(int count) { + int i; + + for(i = 0;i +int primecheck (int n); +int evenoddcheck(int n1); +int main(){ + + int num,arr[20],digitcount,temp,i,check=0; + printf("Enter a number string "); + scanf("%d",&num); + temp = num; + + digitcount=0; + while(temp>0) + { + arr[digitcount]= temp%10; + temp = temp/10; + digitcount++; + } + + for(i=0;i +#include +int main(){ + // Prime numbers who are divisible by themselfs only or 1 + // how many prime numbers are in between 1 and n store them in the array + // after storing use the array values concateing to make a new prime number + // example 2 and 3 makes 23 + + int num,i=2,flag=0,c,arr[100],j,z; + printf("Enter the nth value "); + scanf("%d",&num); + c=0; + for(i=2;i + +int primecheck(int); + +int main(){ + + int i,c,temp,j,flag,range,arr[10],finalans,sum; + printf("Enter range of prime numbers\n"); + scanf("%d",&range); + +i=2; +c=0; +temp =0; +finalans=0; +sum = 0; + for(i=3;i<=range;i++) + { + // i= number to check + temp = i; + if(primecheck(temp)){ + // The number is a prime number + while(sum<=i || j>=range) + { + if(primecheck(j)) + { + sum = sum + j; + } + j++; + } + printf("%d",sum); + if(sum == temp) + { + finalans++; + } + sum = 0; + + + } + + + } + // printf("Prime Numbers are\n"); + // for(i=0;i + +void waste_cpu(){ + int x = 2; + while(1){ + malloc(x); + x*=2; + } +} + +int main(){ + waste_cpu(); + return 0; +} diff --git a/C/dharmesh.c b/C/dharmesh.c new file mode 100644 index 000000000..312e0eaf2 --- /dev/null +++ b/C/dharmesh.c @@ -0,0 +1,8 @@ +#include +int main() +{ + +printf("hello world"); + + +} \ No newline at end of file diff --git a/C/empsal.c b/C/empsal.c new file mode 100755 index 000000000..95f2dd057 --- /dev/null +++ b/C/empsal.c @@ -0,0 +1,20 @@ +#include + +int main(){ + + float hra,da,ta,gs,sal; + printf("Enter Your Basic Salary "); + scanf("%f",&sal); + + hra = sal*0.20; + da = sal*0.10; + ta = sal*0.10; + gs = sal+hra+da+ta; + + printf("Your Gross Salary is %f",gs); + + + printf("\n"); + return 0; + +} \ No newline at end of file diff --git a/C/fabonacci.c b/C/fabonacci.c new file mode 100755 index 000000000..19377422a --- /dev/null +++ b/C/fabonacci.c @@ -0,0 +1,29 @@ +#include + +int main() +{ + int n; + int i; + int a; + int b; + int hold; + a=0; + b=1; + printf("Enter the n value "); + scanf("%d",&n); + + i=2; + hold =0; + printf("0 "); + while(i<=n) + { + hold = a+b; + printf("%d ",hold); + a=b; + b=hold; + i++; + } + + printf("\n"); + return 0; +} diff --git a/C/factorial.c b/C/factorial.c new file mode 100755 index 000000000..d7c313f7d --- /dev/null +++ b/C/factorial.c @@ -0,0 +1,23 @@ +#include + +int main() +{ + // Factorial of a number 5= 5*4*3*2*1 + int fact=1; + int i=0; + int n; + printf("Enter the number for which you want to calculate factorial "); + scanf("%d",&n); + + i=n; + + while(i>0) + { + fact = fact*i; + i--; + } + printf("Factorial of %d is %d",n,fact); + + printf("\n"); + return 0; +} diff --git a/C/factors.c b/C/factors.c new file mode 100755 index 000000000..42f4ae256 --- /dev/null +++ b/C/factors.c @@ -0,0 +1,22 @@ +#include + +int main(){ + + // Factors of a value + int num,i=2,l=1; + + printf("Enter a value to calculate "); + scanf("%d",&num); + if(l==1){ + while(i +#include + +int main() +{ + printf("Welcome to the Hacktoberfest-2018"); + return 0; +} diff --git a/C/helllllooo b/C/helllllooo new file mode 100644 index 000000000..d5b6b165f --- /dev/null +++ b/C/helllllooo @@ -0,0 +1,6 @@ +#include +int main() +{ +printf("Hello World\n"); +return 0; +} diff --git a/C/hello b/C/hello new file mode 100644 index 000000000..71071752a --- /dev/null +++ b/C/hello @@ -0,0 +1,7 @@ +#include + +int main() +{ + printf("\nHello World\n"); + return 0; +} diff --git a/C/hello .c b/C/hello .c new file mode 100644 index 000000000..1d42b4f74 --- /dev/null +++ b/C/hello .c @@ -0,0 +1,6 @@ +#include +int main() +{ + printf("Hello, World!\n"); + return 0; +} diff --git a/C/hello-world-3 b/C/hello-world-3 new file mode 100644 index 000000000..fcddfafdb --- /dev/null +++ b/C/hello-world-3 @@ -0,0 +1,12 @@ +#include +// code written in c +int main() +{ + +printf("Hello world!"); +return 0; + + + + +} diff --git a/C/hellodunia.c b/C/hellodunia.c new file mode 100644 index 000000000..ec7c4af8c --- /dev/null +++ b/C/hellodunia.c @@ -0,0 +1,7 @@ +#include + +int main() +{ + printf("\nHello dunia\n"); + return 0; +} diff --git a/C/helloworld.c b/C/helloworld.c new file mode 100644 index 000000000..611912ba4 --- /dev/null +++ b/C/helloworld.c @@ -0,0 +1,10 @@ +#include +char copy() +{ + printf("Hello World\n"); +} +int main() +{ + copy(); + return 0; +} diff --git a/C/helloworld_.c b/C/helloworld_.c new file mode 100644 index 000000000..f4bd2c6db --- /dev/null +++ b/C/helloworld_.c @@ -0,0 +1,6 @@ +#include + +int main() { + printf("Hello World!\n"); + return 0; +} diff --git a/C/implementation in C.c b/C/implementation in C.c new file mode 100644 index 000000000..7443e723e --- /dev/null +++ b/C/implementation in C.c @@ -0,0 +1,7 @@ +#include +#include +void main() +{ +printf("Hello World (309) "); +getch(); +} diff --git a/C/index.c b/C/index.c new file mode 100644 index 000000000..d56da22a6 --- /dev/null +++ b/C/index.c @@ -0,0 +1,8 @@ +#include +#include +void main() +{ +clrscr(); +printf("Hello World!!"); +getch(); +} diff --git a/C/innovative.c b/C/innovative.c new file mode 100644 index 000000000..e34610d04 --- /dev/null +++ b/C/innovative.c @@ -0,0 +1,6 @@ +#include +void main() +{ +while(printf("hello world")) +{break;} +} diff --git a/C/integerexpression1.c b/C/integerexpression1.c new file mode 100755 index 000000000..bffa123e4 --- /dev/null +++ b/C/integerexpression1.c @@ -0,0 +1,56 @@ +#include +#include +#include +int main() +{ +// 33 11+11+11 8 + int num,i,quos,rem,sum; + char arr[100]; + + printf("Enter a number to convert\n"); + scanf("%d",&num); + + if(num<11) + { + for(i=0;i11 && num<121) + { + quos= num/11; + rem = num%11; + for(i=0;i +int main() +{ + printf("Error free code"); + return 0; +} diff --git a/C/manav.c b/C/manav.c new file mode 100644 index 000000000..a2637bf94 --- /dev/null +++ b/C/manav.c @@ -0,0 +1,7 @@ +#include + +void main () { + + printf ("Hello World"); + +} diff --git a/C/matrixaddtwo.c b/C/matrixaddtwo.c new file mode 100755 index 000000000..5d3759318 --- /dev/null +++ b/C/matrixaddtwo.c @@ -0,0 +1,55 @@ +#include + +int main(){ + + // Sum of two matrixes are + int sum[10][10],mat1[10][10],mat2[10][10]; + int i=0,j=0; + int sizex=0,sizey=0; + + printf("Enter the size of the matrix\n"); + scanf("%d%d",&sizex,&sizey); + + // 1st Matrix + printf("\nEnter %d elements in the 1st matrix\n",sizex*sizey); + for(i=0;i + +int main() +{ + printf("\nHello World, welcome all\n"); + return 0; +} diff --git a/C/neonno.c b/C/neonno.c new file mode 100755 index 000000000..d1cb197f3 --- /dev/null +++ b/C/neonno.c @@ -0,0 +1,47 @@ +#include + +// Just have to do with the range now + +int main() +{ + int n,square,arr[10],temp,size,digit[10],i,sum,num,c=0; + printf("Enter a number\n"); + scanf("%d",&num); + + +for(n=1;n<=num;n++) +{ +square = n*n; +size = 0; +sum = 0; + + + for(i=0;square>0;i++) + { + digit[i]= square%10; + square = square/10; + size++; + } + +for(i=0;i +#include +int main(){ + + // Palindrome 101 12321 + + char a[20],b[20]; + int arrsize=0,i=0,temp=0; + + printf("Enter a string "); + scanf("%s",a); + arrsize = strlen(a); + + for(i=0;i + +int main() +{ + /* + $$$* + $$*** + $***** + */ + int i,j,k; + for(i=1;i<=8;i=i+2) //i=1 i<=n, i++ + { + for(j=6;j>=i;j=j-2) //j=1, j<=n-1 + { + printf(" "); + } + for(k=1;k<=i;k++) // k<=2*i-1 + { + printf("*"); + } + printf("\n"); + } + + + + + printf("\n"); + return 0; +} \ No newline at end of file diff --git a/C/positivecheck.c b/C/positivecheck.c new file mode 100755 index 000000000..dc5eff8b0 --- /dev/null +++ b/C/positivecheck.c @@ -0,0 +1,24 @@ +#include + +int main(){ + + int num=0; + printf("Enter a Number to check "); + scanf("%d",&num); + + if(num>0) + { + printf("Number is positive"); + } + if(num==0) + { + printf("Number is non Negative nor positive"); + } + if(num<0) + { + printf("Number is a negative Number"); + } + + printf("\n"); + return 0; +} \ No newline at end of file diff --git a/C/prime.c b/C/prime.c new file mode 100755 index 000000000..311cff42c --- /dev/null +++ b/C/prime.c @@ -0,0 +1,20 @@ +#include +#include +int main() +{ +// Prime factorisation +int num,arr[10],i,j; +printf("Enter a Number to calculate\n"); +scanf("%d",&num); + +for(i=0;i + +int main(){ + // Prime numbers who are divisible by themselfs only or 1 + + int num,i=2,flag=0; + printf("Enter a value to check "); + scanf("%d",&num); + + while(i + +int main(){ + + // Reverse of a value + int value,reverse; + printf("Enter a value "); + scanf("%d",&value); + + while(value>0) + { + reverse = reverse*10; + reverse = reverse + value%10; + value = value/10; + } + printf("Reversed value is %d",reverse); + + printf("\n"); + return 0; +} \ No newline at end of file diff --git a/C/sample1.c b/C/sample1.c new file mode 100644 index 000000000..22a58019f --- /dev/null +++ b/C/sample1.c @@ -0,0 +1,6 @@ +#include +int main() +{ +printf("Hello World"); +return 0; +} diff --git a/C/series1.c b/C/series1.c new file mode 100755 index 000000000..0e2fa9947 --- /dev/null +++ b/C/series1.c @@ -0,0 +1,23 @@ +#include + +int main(){ + + // 1/1 + 1/2 + 1/3 + n + // Sum also + float sum=0; + float i=1; + float n; + printf("Enter the end value of the series: "); + scanf("%f",&n); + + while(i<=n) + { + printf("1/%f +",i); + sum = sum + 1/i; + i++; + } + printf("\n Sum is %f",sum); + + printf("\n"); + return 0; +} diff --git a/C/series2.c b/C/series2.c new file mode 100755 index 000000000..732d28c2b --- /dev/null +++ b/C/series2.c @@ -0,0 +1,27 @@ +#include + +int main(){ + + int num,i=1,sum=0; + // +1-2+3-4+5-6+7-8+9-n + printf("Enter the Last value "); + scanf("%d",&num); + + while(i<=num) + { + if(i%2==1) + { + printf("+%d",i); + sum= sum+i; + } + else{ + printf("-%d",i); + sum= sum - i; + } + i++; + } + printf("\nSum is %d",sum); + + printf("\n"); + return 0; +} \ No newline at end of file diff --git a/C/string1.c b/C/string1.c new file mode 100755 index 000000000..36e57ab53 --- /dev/null +++ b/C/string1.c @@ -0,0 +1,40 @@ +#include +#include + +int main(){ + + char a[10],b[10],c[20],temp,temp1; + int sa,sb,sc,i; + + scanf("%s",a); + scanf("%s",b); + + sa = strlen(a); + sb = strlen(b); + + strcpy(c,a); + strcat(c,b); + + printf("%d,%d\n",sa,sb); + printf("%s",c); + + + temp=b[0]; + b[0] =a[0]; + a[0] =temp; + + printf("\n%s %s",a,b); + + temp = b[0]; + b[0] = a[0]; + a[0] = temp; + + temp1 = b[sb-1]; + b[sb-1] = a[sa-1]; + a[sa-1] = temp1; + + printf("\n%s %s\n",a,b); + + printf("\n"); + return 0; +} \ No newline at end of file diff --git a/C/sumprodigits.c b/C/sumprodigits.c new file mode 100755 index 000000000..4e58160e2 --- /dev/null +++ b/C/sumprodigits.c @@ -0,0 +1,23 @@ +#include + +int main() +{ + // We have to calculate the sum and product of the digits + int sum=0,pro=1,i=0,rem,num; + + printf("Enter a number to calculate its sum and product of digits "); + scanf("%d",&num); + + while(num>0) + { + rem = num%10; + sum = sum + rem; + pro = pro * rem; + num = num / 10; + } + + printf("Sum of all the digits is %d\nProduct of all the digits is %d",sum,pro); + + printf("\n"); + return 0; +} \ No newline at end of file diff --git a/C/swap.c b/C/swap.c new file mode 100644 index 000000000..d68db4405 --- /dev/null +++ b/C/swap.c @@ -0,0 +1,18 @@ +#include +int main() +{ + int a,m,c; + + scanf("%d" , &a); + scanf("%d" , &m); + printf("First Number:%d",a); + printf("Second Number:%d",m); + + c=a; + a=m; + m=c; + printf("First Number:%d",a); + printf("Second Number:%d",m); + +return 0; +} diff --git a/C/table2while.c b/C/table2while.c new file mode 100755 index 000000000..b9f1e0dca --- /dev/null +++ b/C/table2while.c @@ -0,0 +1,16 @@ +#include +int main(){ + + int num,i=0; + printf("Enter a number to print its table "); + scanf("%d",&num); + + while(i<=10) + { + printf("%dX%d=%d\n",num,i,num*i); + i++; + } + + printf("\n"); + return 0; +} \ No newline at end of file diff --git a/C/towerhenoi.c b/C/towerhenoi.c new file mode 100755 index 000000000..fb0d6255d --- /dev/null +++ b/C/towerhenoi.c @@ -0,0 +1,25 @@ +#include + +void twhenoi(int n, char a, char b, char c); + +int main() +{ + int n; + scanf("%d",&n); + twhenoi(n,'A','C','B'); + + printf("\n"); + return 0; +} + +void twhenoi(int n, char from, char to, char aux) +{ + if(n==1) + { + printf("\nMove disk 1 from rod %c to rod %c",from,to); + return; + } + twhenoi(n-1,from,aux,to); + printf("\nMove disk %d from rod %c to rod %c",n,from,to); + twhenoi(n-1,aux,to,from); +} \ No newline at end of file diff --git a/C/union.c b/C/union.c new file mode 100755 index 000000000..92325e5ec --- /dev/null +++ b/C/union.c @@ -0,0 +1,21 @@ +#include + +union test +{ +int x,y; + + +}; +int main() +{ +union test t; +t.x =2; + + +printf("%d %d\n",t.x,t.y); +t.y=10; +printf("%d, %d\n",t.x,t.y); + + +return 0; +} diff --git a/C/vipassna.c b/C/vipassna.c new file mode 100644 index 000000000..f999ccb13 --- /dev/null +++ b/C/vipassna.c @@ -0,0 +1,7 @@ +#include +#include +void main() +{ +printf("goodbye, world"); +getch(); +} diff --git a/C/vovelconsocheck.c b/C/vovelconsocheck.c new file mode 100755 index 000000000..56c1d4bf7 --- /dev/null +++ b/C/vovelconsocheck.c @@ -0,0 +1,19 @@ +#include + +int main(){ + + char letters; + printf("Enter a Character Please "); + scanf("%c",&letters); + + if(letters == 'a' || letters == 'A' || letters == 'e' || letters =='E' || letters == 'i' || letters =='I'|| letters == 'o' || letters =='O'|| letters == 'u' || letters == 'U' ) + { + printf("The character is a vovel"); + } + else{ + printf("This Character is a consonent"); + } + +printf("\n"); +return 0; +} \ No newline at end of file diff --git a/C/weekdayswitch.c b/C/weekdayswitch.c new file mode 100755 index 000000000..bd2809c04 --- /dev/null +++ b/C/weekdayswitch.c @@ -0,0 +1,25 @@ +#include + +int main(){ + + int num; + + printf("Enter a number between 1 to 7 to check its weekday "); + scanf("%d",&num); + + switch(num) + { + case 1: printf("Its Monday");break; + case 2: printf("Its Tuesday");break; + case 3: printf("Its Wednesday");break; + case 4: printf("Its Thursday");break; + case 5: printf("Its Friday");break; + case 6: printf("Its Saturday");break; + case 7: printf("Its Sunday");break; + default: printf("You have not entered a valid number please enter a valid number"); + } + + + printf("\n"); + return 0; +} \ No newline at end of file diff --git a/C/zombie.c b/C/zombie.c new file mode 100755 index 000000000..f25bb140b --- /dev/null +++ b/C/zombie.c @@ -0,0 +1,25 @@ +#include + +int main(){ + int b=0,n,a,i; + scanf("%d%d",&b,&n); + for(i=0;i0) + { + printf("Yes It will survive"); + } + else{ + printf("No zombie killed him"); + } + + printf("\n"); + return 0; +} \ No newline at end of file diff --git a/COBOL/hello.cob b/COBOL/hello.cob new file mode 100644 index 000000000..499b4a1c0 --- /dev/null +++ b/COBOL/hello.cob @@ -0,0 +1,7 @@ +IDENTIFICATION DIVISION. + PROGRAM-ID. KARTEST2. + ENVIRONMENT DIVISION. + DATA DIVISION. + PROCEDURE DIVISION. + DISPLAY 'HELLO WORLD ! ' . + GOBACK. \ No newline at end of file diff --git a/CSS/app.css b/CSS/app.css new file mode 100644 index 000000000..c837f2b74 --- /dev/null +++ b/CSS/app.css @@ -0,0 +1,10 @@ +i.icon{ + font-size:2.0em; +} +.container.main{ + margin-top:120px ; +} + +#delete{ + display:inline; +} \ No newline at end of file diff --git a/CSS/calculator.css b/CSS/calculator.css new file mode 100644 index 000000000..9151ff70e --- /dev/null +++ b/CSS/calculator.css @@ -0,0 +1,72 @@ +h1{ + text-align: center; + font-weight:bold; + font-size: 60px; + font-family: "courier"; + color:#D1A683; + background-color: #1A2C56; +text-transform: uppercase; +} + +p { +font-family: "arial"; +color:#D1A683; +font-size: 20px; +font-weight: bold; +text-transform: uppercase; +} +input{ + width:100px; + height: 40px; + box-sizing: border-box; + box-shadow: 0 0 5px rgba(0,0,0,0.9); +border-radius: 7px; +} +input:focus{ + + background-color: white; +border: 3px solid #2980b9; +} +input:value{ +font-size:20px; +font-family: "Calibri"; +padding:10px; +margin:0 10px ; +color:red; +} +.btn{ +font-size:20px; +font-family: "Calibri"; +padding:10px; +margin:0 10px ; +background-color: black; +color:white; +text-transform: uppercase; + +} +.container{ + +font-size:25px; +font-family: "Calibri"; +padding:6px; +margin:10px 10px ; +color:black; +text-transform: uppercase; +font-weight: bold; + +} +span{ +font-size:25px; +font-family: "Calibri"; +padding:6px; +margin:10px 10px ; +color:red; +text-transform: uppercase; +font-weight: bold; + +} +body{ +background: #4CA1AF; /* fallback for old browsers */ +background: -webkit-linear-gradient(to right, #C4E0E5, #4CA1AF); /* Chrome 10-25, Safari 5.1-6 */ +background: linear-gradient(to right, #C4E0E5, #4CA1AF); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ +} \ No newline at end of file diff --git a/CSS/css.css b/CSS/css.css new file mode 100644 index 000000000..47651eb15 --- /dev/null +++ b/CSS/css.css @@ -0,0 +1,8 @@ +body{ + background-color: black; +} +p{ + color: white; + font-size: 40px; + font-style:oblique; +} diff --git a/CSS/index.html b/CSS/index.html new file mode 100644 index 000000000..d06dd2796 --- /dev/null +++ b/CSS/index.html @@ -0,0 +1,64 @@ + + + + + hello CSS world + + + + + + \ No newline at end of file diff --git a/Calculatrice/bin/calcul/calcuul$1.class b/Calculatrice/bin/calcul/calcuul$1.class new file mode 100644 index 0000000000000000000000000000000000000000..987a741086656d1b6b75166384f8200e5da01e2d GIT binary patch literal 714 zcmaJ!rB&;yiYcxj%;Si?ri$I1WQXF z`UCo-O7BbqCAK&)U-zClbIzUl`Rn@+0I%>OK#8H5h%_nE$WKMuItoys=&cxwC>8oT z`Y^bai49O?*zi&D*+z0KwT(^^tBj6SZl#tPL)G4>y!Dcf$J4A`%Dquq*|!Xf?T5+z zK0~EvhO!2Rd5!?HAD1Zl?)O8i;(35)4E1R~jy0?^%!(wDxwjnsW9xBh z@+HTXVf`@}LwI3|ERko*Ip$tOksdnH^%_Eo&iSuV@{zD}@CCf{74Rg7;0NEZ@|Pg=iDSC9>q(aX04F3)#s)Ttri?8jEs@+E Rnk)1WyJ*qMiF6XE{RX5GpA`TA literal 0 HcmV?d00001 diff --git a/Calculatrice/bin/calcul/calcuul$10.class b/Calculatrice/bin/calcul/calcuul$10.class new file mode 100644 index 0000000000000000000000000000000000000000..a708e09d4e594042334c114f3f51b0e84ba39af2 GIT binary patch literal 716 zcmaJ^j`^z z;)nhKe^lx08jx1$!oJPSKJz>?`}^Y8Ie_Qbj8GvgWHQetc@nls-r3!WP$RTY}O6}lj_nbqY6UZo#?W&!_U*JuzT!#sf~882ut1T z&aDBV*0&?o0AXGr!d#3hS^^EU3DvF-XrJ@cel&w964>wsYx+v}?f8>5 ztb(f{-WcvrKbK{xN<8K&S9#t7wcEbf{2eMh8;IF@JA95xu*ALX?-0EoXnqYb3%u4j z1~|hauOggdEa48{2zRkOL)ho{0kiiFV*4lV{RN1F<1?rI5j4T3Q;A5EVH){um^Rw&040X{xfqEk z75X$f>YdBP1}HNud8@dzksL{Fqus|_v7szoktuf{8%vG? zC3%#CbPZy}38sh@ W0xb~TceIzN6YtTWlOyRU(6|M}E1-P< literal 0 HcmV?d00001 diff --git a/Calculatrice/bin/calcul/calcuul$12.class b/Calculatrice/bin/calcul/calcuul$12.class new file mode 100644 index 0000000000000000000000000000000000000000..b099373aa05e5cd2c77f8daad0b4f49fa19755ee GIT binary patch literal 717 zcmaJZn+Nu%K6x^oxuOgICL0CUP$^Xe_Y^Q8yWOovuK=gG4 zrKLam0DUO&&KQtZ>A-y5d*|G9?w#{rr)L13;YoxFVIh-wHqDc;P4iBFCqj+TK9Vz; zU7}{nxMVML+L~0CP8n4Y>h4gNoo#-eUWDCc-*auWdqG(0 zUUqH{3AKS8s|E-+1tMIJQAJCjfi|Jq^#QF^8}(*78L8rf9Oa6zm|D&$w2s>Dn8m`qQ->vZu(zM`(EGf<}k(`+>3CR(7dQf;67Ff4Vh)CEIa)^ zA^Atx)!3{|%^YF%sxU(Q-cE~5z0_W_nD^cT|EU?rr^q=pCc^J;W^V zTIU$x3l@15;T&TLxA;a_#>yOFkKYH(-Vcba6Wsm_5C_LsPWvr@to#X_gLoQic)&1K XtTSkZ=|1GW#+`VC4xcIUqvXPg~Iv)O8!qaV>@LtBfFFM5~9x{ zD2hLP03WJ&XAG3q(t-K9_s+TJ+&h0xfBgpV438pI2=kfDvq_$WZIXAkcOujX?Grhb zNiNM%@_KlpG8dsvSPfSB(IslCj7#=1r>#kK>6B3gq3(`#*?Gdx)AO*q?0c?_b}tBv z-HXo60io8nBh>)mhCqaCF{)?@G|(ngyFQ?mYNK9F#zR%SlfzsQ7E;Su2C~rpJ~P%l z1x|7y2kT-EEg1;EQN?>(jMa#+)=e+fwD0xpZVqDH!E%JVgywlg0{5^&Xvi#6W!c$& zN=W__b~QFDQ&UG+xhjkhzqOMhQwQ2>7PCG*_N-aZzR7Z1YIF2bxnnyL*zgr=`cn7p z_=7bpgUcZf4L7Kt%d%7@9&nkfJm)~|wy!q-hYHUIVzyonzoQZ?ac}E8MDGWhUqj41 zuXT755pY YiZuqUFx`i|*SHhw=VD;tpET3 literal 0 HcmV?d00001 diff --git a/Calculatrice/bin/calcul/calcuul$14.class b/Calculatrice/bin/calcul/calcuul$14.class new file mode 100644 index 0000000000000000000000000000000000000000..fb8f3110a2331865f69eec03d34ec2eeb3524206 GIT binary patch literal 717 zcmaJKzl>DD;rtOr?Oxc~p2N8V_ zK~enC2k@c9J7Yjvr33SI@11kcxp#j4`f&kZA6pSBgoRAz*(6WGHpx4?`w?n{_L-c@ zB$wtSc|AN+nTt>-tOcul?-Dgt#wCZD)7GTAbjqlLP^$M;>1Egh_C3``yJv)@ z?p5dZfKcn(k!pZ&Qy{`zj4E0J4YUc>t`BIX+Nf8P@lX}-#Ju^JK9yXk*59eI5R+k+S@xEJ9rp?O)6zbdrs#jH<{J!=+pWU}0r+MK*p?$nM1HhsmKzSMm? zKDUNta5=;a!wu@^vMg1Jhg{|=&l{k2+gF?aLxpDpFIqYut$qbok^+dI~MCl=#Q*>R literal 0 HcmV?d00001 diff --git a/Calculatrice/bin/calcul/calcuul$15.class b/Calculatrice/bin/calcul/calcuul$15.class new file mode 100644 index 0000000000000000000000000000000000000000..2008520bd5b4ad556d0777a10e849b738013275b GIT binary patch literal 717 zcmaJAPep9Gh@wD z;3QXaurB7%l7aBPDn8g^tVV>@Zu(zMdtTqp#vsOhJdE&w(7dcj;1QMx4Vh)CEIV7< zgybJ#*JHCXHFbog>%s`}ft?hYdab=?G3(Pa&zc48nJl-ZHb-xjJGLW%HD9r&FLmFJ zKU%{wxE$h*;Rf|{S(d8AV=i-*=M7N1?W@iIp~AC)n60`gma7q+~FJHE*579yZk<2_P#@Gp5oqLfH*k5aN4f{Wbsen48+q|#tOq! YvC5zoru&5V8h7F;I(+gZJp~@W0r^{?-2eap literal 0 HcmV?d00001 diff --git a/Calculatrice/bin/calcul/calcuul$16.class b/Calculatrice/bin/calcul/calcuul$16.class new file mode 100644 index 0000000000000000000000000000000000000000..80e946ccfd230e7cf11d769b5e962dbd804ae7e2 GIT binary patch literal 717 zcmaJr`&on>Ke|Lsm2t^l=Cn1bE}b%}Ak^KlE;~>7d3qjpmwnH*(e4Fd zv3t?EIUv;fcBC30+z^OxEk+eBfd<-yYS#y}Qf<_$$#|%WcXF63!a`~}%Rm;|-)F{} zr@%=r!AVi?JFJ*1GAXn)bcE-OWLaJ6Mizm(V<~NZ=k;2o0HKsw_L( zJA~vvVOL|bGBtICm8-%C@mo77GIgN6W-;s2W6zoe?VBvOr8Y+|l{>a0fel}=rZ08h zjz3t#GPoS#&~StLxhzXn;sKYr%5x6XZu@HUf2ij72zCX5jXipxP_$|!XCd5n7wZhTR(C83?L4U&z$y409pDMI0NxCR&k$U Ys#s&t3e$badyPA>jt-wZNl$^tUk0|I^#A|> literal 0 HcmV?d00001 diff --git a/Calculatrice/bin/calcul/calcuul$17.class b/Calculatrice/bin/calcul/calcuul$17.class new file mode 100644 index 0000000000000000000000000000000000000000..4a5256d1564db82bfb0f1f63a79beeab750a1916 GIT binary patch literal 717 zcmaJbMO2){q-BbQ#^`LA|S(k4hXfr9jOKgHv}SFi%~^Opn*1_+VuggR2%hbG9IepogC(hu#j5LGLVJ#_nEQg zDR7btIan8SXvskMjVj*TVys4lwQhQ;rhTt(cXJTq4wfU_B{a_~61ayILPKVmD$CCH z4k7tZ*wxsqOidkO<*G13{MJs2OdV*iSh}n8Q{EkYn#J#QW5WOF0eho46 zyw*7e_=E*sML5S;#7({tZeeMLu*dHMX73xs)=%6%1Bip;GpGF$K$iXm&OkhkRorKo YD%KdZ!gL?BTm(48=+HI?-CRe94eKR$9d;4C%^FlfkM5ZRsG59EXi5hJ0OVd71QEGQ1ge6zc(v zYl={rd|b5Ru8J5+^?!t_1RW;YMv-Cm@2i6Xa^_m#C}WYqiDcYVks30yDtCsF(+HB# zlV{4XB>G?;Y00dd!4L;wH) literal 0 HcmV?d00001 diff --git a/Calculatrice/bin/calcul/calcuul$2.class b/Calculatrice/bin/calcul/calcuul$2.class new file mode 100644 index 0000000000000000000000000000000000000000..d9cf277bcfd7d3843700113754a2178f1a22d7a8 GIT binary patch literal 714 zcmaJ@Cvwct=_dcRwCC*YYz#v@!jk}x8JhEa98a;zuprV@7Dcqh5Z|zM zJ2m-|Q_HY=8;l`5FlC;~kIFgbUPPI_cB0A8o=!7UD1Epu?U5OCymIwwxw_UC2GgPQI5K{E6{~8q^345Ct;Jr&U&pc+4#yVku z4_Km+`*nzA+@~GG1FXy#`gGoN_RhgKf8gO?g3u@WbnUJuS-A$zNSur{JR_PaIz(C_ Txi4t0(L=mML@OuKNuc%zv0I-l literal 0 HcmV?d00001 diff --git a/Calculatrice/bin/calcul/calcuul$3.class b/Calculatrice/bin/calcul/calcuul$3.class new file mode 100644 index 0000000000000000000000000000000000000000..4536f73499959742d97530d2f22ccdc1cd11c882 GIT binary patch literal 714 zcmaJn=#3bQI1~CR zJ{#P~)CQD5L5xt?~$u#R8<@S|U_C3RV=WcSl z&rs``p=^L*mLtGSh$>nf4YV1m9S3M7O3Tx7G?4kF7-W)RE-`dVU*yW|C&8MN;BwOf zqFs{E5?=4Q%s-lZB!>*^o#b9ihtA&Kc0a^(EC*O(XioESyub>>j7U>i6wzCT_&-|@ zQ8lfIug#ES%hjvt3f(iKPezjq zDh5B+^gO*x6oo9XK}D`oe+1TUyIRv{s8DYpr08S+H7Y(5c6YvkcfX_g#bch(SSJi{ zggF|yUx%2-Q`#{+!@`8&fX;i)?pN@gA6WcH5cUE)`+Hxbt0{h T+?O=h=pi-{(aMQ*5~%$JzNDW; literal 0 HcmV?d00001 diff --git a/Calculatrice/bin/calcul/calcuul$4.class b/Calculatrice/bin/calcul/calcuul$4.class new file mode 100644 index 0000000000000000000000000000000000000000..10d13602820c1ad07bccf2be7c2226b1f03719b9 GIT binary patch literal 714 zcmaJ;Sz2bXpUN!i1*lQ z$(Nj1hV{o_4B=-}=BfOooMY}ql-ZsWO@0n_nwdiBi(_do&4}ZTt5?$%x^Ko`jV2dV z41T2PdHR_s3Rz&Aid>~W2i9)8TGMB!P;Vfl=z{+m6(0$^yVu~|pJ;yfn5Q(>2?HEs zkw)&nf4YV1m9S3M7O3RPsXdv@5F~}std}8R9zQ~o^Pl7ck!R4j} zM7t!RCA{9xGXG-oksLB?bdvvCI&}8-w)!ES;YEPw49#gij+apr2HD#X4Bjp@(FQUxeInm_jP^XzGl)gBT_RN8;NwyQOLh6?otLW(}|U!&q9VR!o$ynBb{jmON`8RMv;$*C0ooK4qAkqrS SeNA(X9^wrmS~-zU0<~Y+HlK9> literal 0 HcmV?d00001 diff --git a/Calculatrice/bin/calcul/calcuul$6.class b/Calculatrice/bin/calcul/calcuul$6.class new file mode 100644 index 0000000000000000000000000000000000000000..511e0a04f7a10b53bbc48f149458911606b0c217 GIT binary patch literal 714 zcmaJ`-Dzj)OK#ihjVj|*9 z=#%*4@JyyQK%HU5N5xkg%Zb!B-b<}AI#Gp{TILLOd#Z})1szXjS$8S-T4`n9Ff4Tc zPHqkuYJD@34KUo}2rw6-iWWx$ZH8*s0a}UD@Z7V(2ijdOH+nDI`27qm*899@$e5p=o3eD?Xf3W`VE|tI2kKgC7LQa WL|P%a>onKsAvO@v%87ImsNDeOf1iy2 literal 0 HcmV?d00001 diff --git a/Calculatrice/bin/calcul/calcuul$7.class b/Calculatrice/bin/calcul/calcuul$7.class new file mode 100644 index 0000000000000000000000000000000000000000..0b008f00bb3a09f2977f863790be01ab1f3c5c09 GIT binary patch literal 714 zcmaJp=q~d~+{1>zipq1Us^pnK`j4&4 zso59JoxsLrFoF2Jt;?KVYVTME5q0s{i)KGZCNFHI&B<$Wr*lkae!8?JQSYI$4^7+6y`~tc66}SEn#33=|YblVd{{}8dyo^oUXPPFqn6$xi ScX)2`Lp(sjD=*SZ;Pwmi$e*PE literal 0 HcmV?d00001 diff --git a/Calculatrice/bin/calcul/calcuul$8.class b/Calculatrice/bin/calcul/calcuul$8.class new file mode 100644 index 0000000000000000000000000000000000000000..d9a4c93aa270732a4e36d3c22eb720aa9380a7b6 GIT binary patch literal 714 zcmaJtJ^u1P7DBC=-P13n=}b-o`C6P2}F(`nv`j z8-DNy_@l%pu^`p4K;E9` z>HE>C%w2>g!$ydTZ!VQnXSGfO|AP$Kybgd2~D}R795-(!|kBFv@O(Lz4 T+$S_Q=pmjWp_LcuB~bef0U)2f literal 0 HcmV?d00001 diff --git a/Calculatrice/bin/calcul/calcuul$9.class b/Calculatrice/bin/calcul/calcuul$9.class new file mode 100644 index 0000000000000000000000000000000000000000..a360d42f7e519e464d34da3a13080305e3d3714d GIT binary patch literal 714 zcmaJ-x;=4=bRBD&*=S~@&DeI(`B}3C4E1SHb0R&I}BxpzIe zIb>)I%viR-u*eZ%Ax0e?juyHM^_~ZGGNt9GYBG}LS1~Fi!%}AGmZ2z>-_L>#FTv;L z1ti-fp(BFc&$9ex%848^Z1l4KS~~Fdb~cAG9^pxZ#|-UxK8{taF)WBYm)0il7}6WI zZl@++a_Sh?Zi6wzUrbfz^1bqoc@R+*uf1sUbD;CWSf!6XN_T9=94~#n+P=^OGdVSy zTu?Fi2Tjj2D1^1r;u#gWPW=v8x9e+7pP@#*g_xpu!`G;VNZj8#1Mi=s{Uc!R(byym zaEc`wd059-#(ml`Jiy9~VV}+i&i+sEtqVN7B8Wqxq-$*;S@{Q?k$4&FcuF*NY!GRU TqT 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 W@34K7?RWB)yu//GEN-BEGIN:initComponents + private void initComponents() { + + jTextField1 = new javax.swing.JTextField(); + jButton13 = new javax.swing.JButton(); + jButton14 = new javax.swing.JButton(); + jButton15 = new javax.swing.JButton(); + jButton16 = new javax.swing.JButton(); + jButton17 = new javax.swing.JButton(); + jButton18 = new javax.swing.JButton(); + jButton19 = new javax.swing.JButton(); + jButton20 = new javax.swing.JButton(); + jButton21 = new javax.swing.JButton(); + jButton22 = new javax.swing.JButton(); + jButton23 = new javax.swing.JButton(); + jButton24 = new javax.swing.JButton(); + jButton25 = new javax.swing.JButton(); + jButton26 = new javax.swing.JButton(); + jButton27 = new javax.swing.JButton(); + jButton28 = new javax.swing.JButton(); + + setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); + + jTextField1.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jTextField1ActionPerformed(evt); + } + }); + + jButton13.setText("1"); + jButton13.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton13ActionPerformed(evt); + } + }); + + jButton14.setText("0"); + jButton14.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton14ActionPerformed(evt); + } + }); + + jButton15.setText("4"); + jButton15.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton15ActionPerformed(evt); + } + }); + + jButton16.setText("*"); + jButton16.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton16ActionPerformed(evt); + } + }); + + jButton17.setText("+"); + jButton17.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton17ActionPerformed(evt); + } + }); + + jButton18.setText("-"); + jButton18.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton18ActionPerformed(evt); + } + }); + + jButton19.setText("6"); + jButton19.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton19ActionPerformed(evt); + } + }); + + jButton20.setText("3"); + jButton20.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton20ActionPerformed(evt); + } + }); + + jButton21.setText("="); + jButton21.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton21ActionPerformed(evt); + } + }); + + jButton22.setText("5"); + jButton22.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton22ActionPerformed(evt); + } + }); + + jButton23.setText("2"); + jButton23.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton23ActionPerformed(evt); + } + }); + + jButton24.setText("7"); + jButton24.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton24ActionPerformed(evt); + } + }); + + jButton25.setText("/"); + jButton25.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton25ActionPerformed(evt); + } + }); + + jButton26.setText("."); + jButton26.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton26ActionPerformed(evt); + } + }); + + jButton27.setText("8"); + jButton27.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton27ActionPerformed(evt); + } + }); + + jButton28.setText("9"); + jButton28.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton28ActionPerformed(evt); + } + }); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 318, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(0, 11, Short.MAX_VALUE)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jButton15, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jButton24, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jButton13, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jButton14, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(jButton26, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jButton27, javax.swing.GroupLayout.DEFAULT_SIZE, 75, Short.MAX_VALUE) + .addComponent(jButton22, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jButton23, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addGroup(layout.createSequentialGroup() + .addComponent(jButton21, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jButton18, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createSequentialGroup() + .addComponent(jButton20, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jButton17, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createSequentialGroup() + .addComponent(jButton28, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jButton25, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createSequentialGroup() + .addComponent(jButton19, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jButton16, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE)))) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(11, 11, 11) + .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(23, 23, 23) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jButton24, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jButton28, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jButton25, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jButton27, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addGap(6, 6, 6) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jButton15, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jButton22, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jButton16, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jButton19, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addGap(6, 6, 6) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jButton23, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jButton13, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jButton17, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jButton20, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addGap(6, 6, 6) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jButton18, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jButton21, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jButton26, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jButton14, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE))) + ); + + pack(); + }// //GEN-END:initComponents + + private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField1ActionPerformed + // TODO add your handling code here: + }//GEN-LAST:event_jTextField1ActionPerformed + + private void jButton24ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton24ActionPerformed + + if(eg==false){ + jTextField1.setText(jTextField1.getText()+"7"); + }else{ + jTextField1.setText("7"); + eg=false; + } + }//GEN-LAST:event_jButton24ActionPerformed + + private void jButton25ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton25ActionPerformed + x=Double.parseDouble(jTextField1.getText()); + jTextField1.setText(""); + op="/"; + }//GEN-LAST:event_jButton25ActionPerformed + + private void jButton26ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton26ActionPerformed + if(ver==false){ + jTextField1.setText(jTextField1.getText()+"."); + ver=true; + } + }//GEN-LAST:event_jButton26ActionPerformed + + private void jButton27ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton27ActionPerformed + if(eg==false){ + jTextField1.setText(jTextField1.getText()+"8"); + }else{ + jTextField1.setText("8"); + eg=false; + } + }//GEN-LAST:event_jButton27ActionPerformed + + private void jButton28ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton28ActionPerformed + if(eg==false){ + jTextField1.setText(jTextField1.getText()+"9"); + }else{ + jTextField1.setText("9"); + eg=false; + } + }//GEN-LAST:event_jButton28ActionPerformed + + private void jButton17ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton17ActionPerformed +x=Double.parseDouble(jTextField1.getText()); + jTextField1.setText(""); + op="+"; + }//GEN-LAST:event_jButton17ActionPerformed + + private void jButton18ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton18ActionPerformed + + x=Double.parseDouble(jTextField1.getText()); + jTextField1.setText(""); + op="-"; + }//GEN-LAST:event_jButton18ActionPerformed + + private void jButton20ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton20ActionPerformed + if(eg==false){ + jTextField1.setText(jTextField1.getText()+"3"); + }else{ + jTextField1.setText("3"); + eg=false; + } + }//GEN-LAST:event_jButton20ActionPerformed + + private void jButton15ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton15ActionPerformed + if(eg==false){ + jTextField1.setText(jTextField1.getText()+"4"); + }else{ + jTextField1.setText("4"); + eg=false; + } + }//GEN-LAST:event_jButton15ActionPerformed + + private void jButton22ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton22ActionPerformed + if(eg==false){ + jTextField1.setText(jTextField1.getText()+"5"); + }else{ + jTextField1.setText("5"); + eg=false; + } + }//GEN-LAST:event_jButton22ActionPerformed + + private void jButton19ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton19ActionPerformed + if(eg==false){ + jTextField1.setText(jTextField1.getText()+"6"); + }else{ + jTextField1.setText("6"); + eg=false; + } + }//GEN-LAST:event_jButton19ActionPerformed + + private void jButton13ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton13ActionPerformed + if(eg==false){ + jTextField1.setText(jTextField1.getText()+"1"); + }else{ + jTextField1.setText("1"); + eg=false; + } + }//GEN-LAST:event_jButton13ActionPerformed + + private void jButton23ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton23ActionPerformed + if(eg==false){ + jTextField1.setText(jTextField1.getText()+"2"); + }else{ + jTextField1.setText("2"); + eg=false; + } + }//GEN-LAST:event_jButton23ActionPerformed + + private void jButton14ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton14ActionPerformed + if(eg==false){ + jTextField1.setText(jTextField1.getText()+"0"); + }else{ + jTextField1.setText("0"); + eg=false; + } + }//GEN-LAST:event_jButton14ActionPerformed + + private void jButton16ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton16ActionPerformed + x=Double.parseDouble(jTextField1.getText()); + jTextField1.setText(""); + op="*"; + }//GEN-LAST:event_jButton16ActionPerformed + + private void jButton21ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton21ActionPerformed + if(eg==false){ + y=Double.parseDouble(jTextField1.getText()); + if(op.equals("+")) + jTextField1.setText(""+(x+y)); + if(op.equals("-")) + jTextField1.setText(""+(x-y)); + if(op.equals("*")) + jTextField1.setText(""+(x*y)); + if(op.equals("/")){ + if(y!=0){ + jTextField1.setText(""+(x+y)); + }else{ + jTextField1.setText("err"); + } + } + eg=true; + } + }//GEN-LAST:event_jButton21ActionPerformed + + /** + * @param args the command line arguments + */ + public static void main(String args[]) { + /* Set the Nimbus look and feel */ + // + /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. + * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html + */ + try { + for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { + if ("Nimbus".equals(info.getName())) { + javax.swing.UIManager.setLookAndFeel(info.getClassName()); + break; + } + } + } catch (ClassNotFoundException ex) { + java.util.logging.Logger.getLogger(calcuul.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } catch (InstantiationException ex) { + java.util.logging.Logger.getLogger(calcuul.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } catch (IllegalAccessException ex) { + java.util.logging.Logger.getLogger(calcuul.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } catch (javax.swing.UnsupportedLookAndFeelException ex) { + java.util.logging.Logger.getLogger(calcuul.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } + // + + /* Create and display the form */ + java.awt.EventQueue.invokeLater(new Runnable() { + public void run() { + new calcuul().setVisible(true); + } + }); + } + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JButton jButton13; + private javax.swing.JButton jButton14; + private javax.swing.JButton jButton15; + private javax.swing.JButton jButton16; + private javax.swing.JButton jButton17; + private javax.swing.JButton jButton18; + private javax.swing.JButton jButton19; + private javax.swing.JButton jButton20; + private javax.swing.JButton jButton21; + private javax.swing.JButton jButton22; + private javax.swing.JButton jButton23; + private javax.swing.JButton jButton24; + private javax.swing.JButton jButton25; + private javax.swing.JButton jButton26; + private javax.swing.JButton jButton27; + private javax.swing.JButton jButton28; + private javax.swing.JTextField jTextField1; + // End of variables declaration//GEN-END:variables +} \ No newline at end of file diff --git a/Clojure/hello.clj b/Clojure/hello.clj new file mode 100644 index 000000000..cd81a959e --- /dev/null +++ b/Clojure/hello.clj @@ -0,0 +1,3 @@ +(defn hello-world [] + (println "Hello World")) +(hello-world) diff --git a/CoffeeScript/HelloWorld.coffee b/CoffeeScript/HelloWorld.coffee new file mode 100644 index 000000000..eb81fb31b --- /dev/null +++ b/CoffeeScript/HelloWorld.coffee @@ -0,0 +1 @@ +console.log 'Hello World!' \ No newline at end of file diff --git a/Crystal/hello_world.cr b/Crystal/hello_world.cr new file mode 100644 index 000000000..499820234 --- /dev/null +++ b/Crystal/hello_world.cr @@ -0,0 +1,5 @@ +def output_message(x) + puts x.to_s +end + +output_message(1.0) diff --git a/D/HelloWorld.d b/D/HelloWorld.d new file mode 100644 index 000000000..38e9169a1 --- /dev/null +++ b/D/HelloWorld.d @@ -0,0 +1,5 @@ +import std.stdio; + +void main(string[] args) { + writeln("Hello World!"); +} diff --git a/Dart/HelloWorld.dart b/Dart/HelloWorld.dart new file mode 100644 index 000000000..67fa24d1f --- /dev/null +++ b/Dart/HelloWorld.dart @@ -0,0 +1,4 @@ +void main(){ + print('Hello World !!'); + print("First Try"); +} diff --git a/Dart/HelloWorlddart.dart b/Dart/HelloWorlddart.dart new file mode 100644 index 000000000..e8d437bcb --- /dev/null +++ b/Dart/HelloWorlddart.dart @@ -0,0 +1,3 @@ +void main(){ + print('Hello World This is Manik learning how this works!!'); +} diff --git a/Delphi/HelloWorld.txt b/Delphi/HelloWorld.txt new file mode 100644 index 000000000..86486c8b2 --- /dev/null +++ b/Delphi/HelloWorld.txt @@ -0,0 +1,11 @@ +program HelloWorld; + +{$APPTYPE CONSOLE} + +uses + SysUtils; + +begin + writeln('Hello World'); + readln; +end. \ No newline at end of file diff --git a/ELM.zip b/ELM.zip new file mode 100644 index 0000000000000000000000000000000000000000..52bd44a80548896ec0635b7f29b63651c1f720b2 GIT binary patch literal 531 zcmWIWW@Zs#U|`^2=qhmY?aa&-a0BwfftVMFU44A@JyLUW^7T@4a!;T2*F5VP`oZJu z$&=w8Yc)>jpF86ne&NF9%TJy@dV1=N?g@RZzz-TH&pJ-h@m#CH=>56qsao1I%^RPJ zG#MB@A{;q$CJ8YFz%6_Tv~ZDvsn}bfMed9Y3_MT^J@eA?^-3yAWG8IQJ8Zz?QqKIZ z{q}4t*G9catDTwC#ZJg;2;~Y-^mJbI_{V$gR3%QK^7l8)axWj3%wEQGTb${%L+24; zAHfqRr1z*TWO@H;>g0xr?^_fNJv*$`#7@iJdgd+s;^8yZON_Ul@YpE4_R(rleL2@z zFk$EJ6AQ1TZvE34zc=8=MCnh*o~d(P-RZP*^*XlOBGx-Y=D6F6Oy~OW?_*iDV~S?g zMaiYRHguMyJeDxr$)u6BwDMHy{5v(h=L4ASA9$%rUOQu?v^L2mSn>N7iPa*Tyrje8 zm#@>cxBCBZ_x>*yiAK?%URErz*zcyEygbw9A9H{=Ba;XN?wA0E4Fe;C0*C?vlz2hb hiY-h*8X#H=p;}=f9N^8$29jk0!crjJ0gMF(1_0nlxpe>l literal 0 HcmV?d00001 diff --git a/Elixir/HelloWorld.ex b/Elixir/HelloWorld.ex new file mode 100644 index 000000000..0a10c78ba --- /dev/null +++ b/Elixir/HelloWorld.ex @@ -0,0 +1 @@ +IO.puts "Hello World!" \ No newline at end of file diff --git a/Elm/hello.elm b/Elm/hello.elm new file mode 100644 index 000000000..dce02ba76 --- /dev/null +++ b/Elm/hello.elm @@ -0,0 +1,6 @@ +module Hello exposing (..) + +import Html exposing (text) + +main = + text "Hello" \ No newline at end of file diff --git a/Erlang/helloworld.erl b/Erlang/helloworld.erl new file mode 100644 index 000000000..d027171d6 --- /dev/null +++ b/Erlang/helloworld.erl @@ -0,0 +1,4 @@ +-module(hello). + -export([hello_world/0]). + + hello_world() -> io:fwrite("hello, world\n"). \ No newline at end of file diff --git a/F#/Program.fs b/F#/Program.fs new file mode 100644 index 000000000..345dc43df --- /dev/null +++ b/F#/Program.fs @@ -0,0 +1,8 @@ +// Learn more about F# at http://fsharp.org +// See the 'F# Tutorial' project for more help. +// anshul-negi +[] +let main argv = + printfn "Hello World" //hello world in f# + Console.ReadLine() |> ignore + 0 // return an integer exit code diff --git a/F/HelloWorld.fs b/F/HelloWorld.fs new file mode 100644 index 000000000..e4d98ec60 --- /dev/null +++ b/F/HelloWorld.fs @@ -0,0 +1,7 @@ +open System + +[] +let main argv = + printfn "Hello World" + Console.ReadLine() |> ignore + 0 diff --git a/Fetlang/hello.fet b/Fetlang/hello.fet new file mode 100644 index 000000000..34df170cc --- /dev/null +++ b/Fetlang/hello.fet @@ -0,0 +1 @@ +Make slave scream "Hello, world" diff --git a/Fortan/helloworld.f b/Fortan/helloworld.f new file mode 100644 index 000000000..8e3293563 --- /dev/null +++ b/Fortan/helloworld.f @@ -0,0 +1,3 @@ +program hello +print *,"Hello World!" +end program hello diff --git a/Golang/add_2_num.go b/Golang/add_2_num.go new file mode 100644 index 000000000..196a88c53 --- /dev/null +++ b/Golang/add_2_num.go @@ -0,0 +1,24 @@ +// Naming this your main package, if this isn't named main, code won't run +package main + +// Importing the relevant packages +import "fmt" + +//defining sum function +func Sum(x int, y int) int { + return x + y + +} + +func main() { + + var a int = 3 // Explicit type decalaration + b := 5 // Implicit type declaration + + fmt.Print("Enter 2 numbers: ") + fmt.Scanf("%d %d", &a, &b) // Same as C + + sum := Sum(a, b) + + fmt.Printf("Sum: %d\n",sum); +} diff --git a/Golang/antz.go b/Golang/antz.go new file mode 100644 index 000000000..97503e92a --- /dev/null +++ b/Golang/antz.go @@ -0,0 +1,7 @@ +package main +import "fmt" + + +func main(){ + fmt.Println("Hello World") +} \ No newline at end of file diff --git a/Golang/httpexample.go b/Golang/httpexample.go new file mode 100644 index 000000000..1151334d8 --- /dev/null +++ b/Golang/httpexample.go @@ -0,0 +1,21 @@ +package main + +import ( + "fmt" + "net/http" + "strings" +) + +func sayHello(w http.ResponseWriter, r *http.Request) { + message := r.URL.Path + message = strings.TrimPrefix(message, "/") + message = "Hello " + message + w.Write([]byte(message)) +} +func main() { + fmt.Println("Started on port 8080") + http.HandleFunc("/", sayHello) + if err := http.ListenAndServe(":8080", nil); err != nil { + panic(err) + } +} diff --git a/Golang/main.go b/Golang/main.go new file mode 100644 index 000000000..91e7378c4 --- /dev/null +++ b/Golang/main.go @@ -0,0 +1,7 @@ +package main + +import "fmt" + +func main() { + fmt.Println("Hello World") +} diff --git a/GolfScript/helloworld.gs b/GolfScript/helloworld.gs new file mode 100644 index 000000000..224e2ccfd --- /dev/null +++ b/GolfScript/helloworld.gs @@ -0,0 +1 @@ +Print "Hello world!" \ No newline at end of file diff --git a/Gradle/build.gradle b/Gradle/build.gradle new file mode 100644 index 000000000..2d3b94780 --- /dev/null +++ b/Gradle/build.gradle @@ -0,0 +1,5 @@ +task hello { + doLast { + println 'Hello world!' + } +} diff --git a/Groovy/Main.groovy b/Groovy/Main.groovy new file mode 100644 index 000000000..380fdc01e --- /dev/null +++ b/Groovy/Main.groovy @@ -0,0 +1 @@ +print "Hello World\n"; \ No newline at end of file diff --git a/Haskell/hello-world.hs b/Haskell/hello-world.hs new file mode 100644 index 000000000..ab80cfa7e --- /dev/null +++ b/Haskell/hello-world.hs @@ -0,0 +1,5 @@ +import System.IO + +main = do + putStrLn "Hello, world!" + diff --git a/Haskell/hello.hs b/Haskell/hello.hs new file mode 100644 index 000000000..0872ac9db --- /dev/null +++ b/Haskell/hello.hs @@ -0,0 +1 @@ +main = putStrLn "Hello, world!" diff --git a/Haxe/HelloWorld.hx b/Haxe/HelloWorld.hx new file mode 100644 index 000000000..b5eaf9dad --- /dev/null +++ b/Haxe/HelloWorld.hx @@ -0,0 +1,5 @@ +class HelloWorld { + static public function main():Void { + trace("Hello World."); + } +} diff --git a/Haxe/OpenFL/HelloWorld.hxproj b/Haxe/OpenFL/HelloWorld.hxproj new file mode 100644 index 000000000..6d131be6b --- /dev/null +++ b/Haxe/OpenFL/HelloWorld.hxproj @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "$(CompilerPath)/haxelib" run lime build "$(OutputFile)" $(TargetBuild) -$(BuildConfig) -Dfdb + + + + + + + + \ No newline at end of file diff --git a/Haxe/OpenFL/assets/openfl.svg b/Haxe/OpenFL/assets/openfl.svg new file mode 100644 index 000000000..934b6464e --- /dev/null +++ b/Haxe/OpenFL/assets/openfl.svg @@ -0,0 +1,593 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Haxe/OpenFL/project.xml b/Haxe/OpenFL/project.xml new file mode 100644 index 000000000..331b8a160 --- /dev/null +++ b/Haxe/OpenFL/project.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Haxe/OpenFL/src/Main.hx b/Haxe/OpenFL/src/Main.hx new file mode 100644 index 000000000..ac28b846f --- /dev/null +++ b/Haxe/OpenFL/src/Main.hx @@ -0,0 +1,20 @@ +package; + +import openfl.display.Sprite; + +/** + * ... + * @author AVL + */ +class Main extends Sprite +{ + public function new() + { + super(); + + var img = new openfl.text.TextField(); + img.text = "Hello World!"; + img.textColor = 0xffffff; + addChild(img); + } +} diff --git a/Hello-world b/Hello-world new file mode 160000 index 000000000..91f57fce1 --- /dev/null +++ b/Hello-world @@ -0,0 +1 @@ +Subproject commit 91f57fce1327364047fe5cb7e5bce51b38f93e44 diff --git a/Html/Form b/Html/Form new file mode 100644 index 000000000..ab379b2e2 --- /dev/null +++ b/Html/Form @@ -0,0 +1,12 @@ + + + Form + + +

+ First name:
+ Last name:
+ + + + diff --git a/Html/Hello Big Font.html b/Html/Hello Big Font.html new file mode 100644 index 000000000..84be05a36 --- /dev/null +++ b/Html/Hello Big Font.html @@ -0,0 +1,11 @@ + + + HACKTOBERFEST + + +





+
+

HELLO WORLD!

+
+ + diff --git a/Html/HelloWorld.html b/Html/HelloWorld.html new file mode 100644 index 000000000..294f53b91 --- /dev/null +++ b/Html/HelloWorld.html @@ -0,0 +1,16 @@ + + + +
+ Hello World! +
+ + +

Hello World!

+ orange + + +
+

Hacktoberfest 2018

+
+ diff --git a/Html/HelloWorldInID.html b/Html/HelloWorldInID.html new file mode 100644 index 000000000..0cdb025d3 --- /dev/null +++ b/Html/HelloWorldInID.html @@ -0,0 +1,11 @@ + + + + + Hello World in Indonesia + + + +

Halo Dunia!

+ + diff --git a/Html/HelloWorld_marquee.html b/Html/HelloWorld_marquee.html new file mode 100644 index 000000000..748a26060 --- /dev/null +++ b/Html/HelloWorld_marquee.html @@ -0,0 +1,18 @@ + + + Hello World + + + +











+ Hello World + + + \ No newline at end of file diff --git a/Html/Hellooftheworld.html b/Html/Hellooftheworld.html new file mode 100644 index 000000000..8f7299547 --- /dev/null +++ b/Html/Hellooftheworld.html @@ -0,0 +1,12 @@ + + + + + + +Hello People of the world + + +

This is part of the PR for the Hacktober fest.

+ + diff --git a/Html/Helloworldjm.html b/Html/Helloworldjm.html new file mode 100644 index 000000000..5e432195c --- /dev/null +++ b/Html/Helloworldjm.html @@ -0,0 +1,8 @@ + + +Hello World + + +This is my first HTML program + + diff --git a/Html/Introduction.html b/Html/Introduction.html new file mode 100644 index 000000000..304fde913 --- /dev/null +++ b/Html/Introduction.html @@ -0,0 +1,24 @@ + + +Biodata Diri + + +

Biodata Diri SiAnu

+ +

+ +

Nama : Mudji

+ +

Tempat Tanggal Lahir : Tuban, 16 Juli 1991

+ +

Alamat Rumah : Jalan Swadaya 1 rt 06/09 no.25 Pejaten Timur

+ +

No.HP / Telp : 0213456789

+ +

Pendidikan : S1 Sistem Informasi

+ +

Kegiatan : Menjalani perkuliahan, bla bla bla...

+ +

Cek Jadwal Perkuliahan ATA Masuk

+ + diff --git a/Html/Superari15.html b/Html/Superari15.html new file mode 100644 index 000000000..ea8bb50da --- /dev/null +++ b/Html/Superari15.html @@ -0,0 +1,7 @@ + + + +

SUPERARI15

+ + + diff --git a/Html/TIC-TAC-TOE.html b/Html/TIC-TAC-TOE.html new file mode 100644 index 000000000..1bd00361b --- /dev/null +++ b/Html/TIC-TAC-TOE.html @@ -0,0 +1,384 @@ + + + + + + TIC TAC TOE + + + + + + + + + + + + + + + + + + + + + + +
+ + + diff --git a/Html/dialog.html b/Html/dialog.html new file mode 100644 index 000000000..46ea2cb62 --- /dev/null +++ b/Html/dialog.html @@ -0,0 +1,19 @@ + + + Table HTML + + + + + + + + + + + + + +
JanuaryFebruaryMarch
312831
+ + diff --git a/Html/footer.html b/Html/footer.html new file mode 100644 index 000000000..fc130f975 --- /dev/null +++ b/Html/footer.html @@ -0,0 +1,11 @@ + + + Using Footer + + + + + diff --git a/Html/hacktober.html b/Html/hacktober.html new file mode 100644 index 000000000..1f1be5d79 --- /dev/null +++ b/Html/hacktober.html @@ -0,0 +1,34 @@ + + + + + contribute to hacktoberfest 2018 + + + + + +
+ +
+
+
+

Hacktoberfest 2018

+

Im join in hacktoberfest 2018 :)

+

Get Started Now >

+ +
+ + + +
+
+ +
+
+
+ + + + + diff --git a/Html/hello.html b/Html/hello.html new file mode 100644 index 000000000..cf8ba45d9 --- /dev/null +++ b/Html/hello.html @@ -0,0 +1,8 @@ + + + HACKTOBERFEST + + +

HELLO WORLD!

+ + diff --git a/Html/helloworld.html b/Html/helloworld.html new file mode 100644 index 000000000..1fff44c34 --- /dev/null +++ b/Html/helloworld.html @@ -0,0 +1,13 @@ + + + + +
+ Hello World +
+ + +

Hello World!

+ + + diff --git a/Html/helloworldTaiwan.html b/Html/helloworldTaiwan.html new file mode 100644 index 000000000..99d2513ca --- /dev/null +++ b/Html/helloworldTaiwan.html @@ -0,0 +1,10 @@ + + + + + +

Hello World

+

Greeting from Taiwan Git Newbie

+

Wish you all have a great day & HAPPY Git!!!~~

+ + \ No newline at end of file diff --git a/Html/helloworldindex.html b/Html/helloworldindex.html new file mode 100644 index 000000000..61de62588 --- /dev/null +++ b/Html/helloworldindex.html @@ -0,0 +1,10 @@ + + + + + Hacktoberfest/title> + </head> + <body> + <h1 style="font-size:32px; color:purple;" >Hello World<h1> + </body> +</html> \ No newline at end of file diff --git a/Html/helloworldnm.html b/Html/helloworldnm.html new file mode 100644 index 000000000..1e56297f3 --- /dev/null +++ b/Html/helloworldnm.html @@ -0,0 +1,9 @@ +<!DOCTYPE html> +<html> +<head> + <title>Hello world + + +

Hello world from New Mexico!

+ + \ No newline at end of file diff --git a/Html/html-css.html b/Html/html-css.html new file mode 100644 index 000000000..1edc32d19 --- /dev/null +++ b/Html/html-css.html @@ -0,0 +1,9 @@ + + + + hacktoberfest'18 + + +

hello world

+

hacktoberfest'18

+ diff --git a/Html/index.html b/Html/index.html new file mode 100644 index 000000000..fa728c5a8 --- /dev/null +++ b/Html/index.html @@ -0,0 +1,9 @@ + + + +Hello World + + +

My First WebPage

+ + diff --git a/Html/js.html b/Html/js.html new file mode 100644 index 000000000..f013ed252 --- /dev/null +++ b/Html/js.html @@ -0,0 +1,62 @@ + + + + + + TITLE + + + + + + + + +
+ +
+
+
+
+

33. Write a JavaScript program to check if two numbers are in range 40..60 or in the range 70..100 inclusive.

+ + + + + +
+
+
+
+
+ +
+ + + + + + + + + + \ No newline at end of file diff --git a/Html/manav.html b/Html/manav.html new file mode 100644 index 000000000..8fb125905 --- /dev/null +++ b/Html/manav.html @@ -0,0 +1,19 @@ + + + + + Hello World + + + + + +

+ + HELLO WORLD + +

+ + + + diff --git a/Html/simpleHelloWorld.html b/Html/simpleHelloWorld.html new file mode 100644 index 000000000..55372345f --- /dev/null +++ b/Html/simpleHelloWorld.html @@ -0,0 +1,14 @@ + + + + Hello World + + +

Hello World from Malaysia! :D

+

Hello World from Malaysia! :D

+

Hello World from Malaysia! :D

+

Hello World from Malaysia! :D

+
Hello World from Malaysia! :D
+
Hello World from Malaysia! :D
+ + \ No newline at end of file diff --git a/Html/styles.css b/Html/styles.css new file mode 100644 index 000000000..fe6d2127f --- /dev/null +++ b/Html/styles.css @@ -0,0 +1,15 @@ +@import url('https://fonts.googleapis.com/css?family=Acme'); + +body{ + background-color:#94288E; + font-family: 'Acme', sans-serif; + color:white; + font-size: 20px; +} + +.one{ + display: flex; + justify-content: center; + align-content: center; + text-align: center; +} diff --git a/Html/vipassna.js b/Html/vipassna.js new file mode 100644 index 000000000..883eb517f --- /dev/null +++ b/Html/vipassna.js @@ -0,0 +1,34 @@ + + + Multiplication Table + + + + + diff --git a/IO/hello.io b/IO/hello.io new file mode 100644 index 000000000..6a8643719 --- /dev/null +++ b/IO/hello.io @@ -0,0 +1 @@ + "Hello, world!" println diff --git a/Java/BalancedBrackets b/Java/BalancedBrackets new file mode 100644 index 000000000..8cb3b33b6 --- /dev/null +++ b/Java/BalancedBrackets @@ -0,0 +1,33 @@ +public static boolean checkBalanced(String exp) { + Stack st = new Stack<>(); + for(int i=0;iarry[size-1]) + { + System.out.println("Element not in the array"); + break; + } + else if(find==arry[mid]) + { + System.out.println("Element "+ find +" found at position "+ mid+1); + break; + } + else if(find>arry[mid]) + { + low=mid; + } + else + { + high=mid; + } + } + } + +} diff --git a/Java/BubbleSort.java b/Java/BubbleSort.java new file mode 100644 index 000000000..9c98b7bf0 --- /dev/null +++ b/Java/BubbleSort.java @@ -0,0 +1,50 @@ +import java.util.Scanner; + +public class BubbleSort { + public static int[] takeInput() + { + Scanner s = new Scanner(System.in); + System.out.println("Enter the number of elements in the array"); + int n=s.nextInt(); + System.out.println("Enter the array Elements"); + int input[]=new int [n]; + for(int i=0;iarr[j+1]) + { + int temp=arr[j]; + arr[j]=arr[j+1]; + arr[j+1]=temp; + } + } + } + } + + public static void main(String[] args) { + int input[]=takeInput(); + printArray(input); + bubbleSort(input); + System.out.println(); + printArray(input); + + } + +} diff --git a/Java/Cloneeskimo.java b/Java/Cloneeskimo.java new file mode 100644 index 000000000..14a054a43 --- /dev/null +++ b/Java/Cloneeskimo.java @@ -0,0 +1,5 @@ +public class Cloneeskimo { + public static void main(String[] args){ + System.out.println("Cloneeskimo!"); + } +} \ No newline at end of file diff --git a/Java/ConditionalOperator.java b/Java/ConditionalOperator.java new file mode 100755 index 000000000..4dbf62758 --- /dev/null +++ b/Java/ConditionalOperator.java @@ -0,0 +1,18 @@ +import java.util.Scanner; + + + +public class ConditionalOperator{ + + public static void main(String[] args) { + + Scanner scan = new Scanner(System.in); + int a,b,max=0; + a = scan.nextInt(); + b = scan.nextInt(); + max = a>b?a:b; + System.out.println("Max is : "+max); + + } + +} \ No newline at end of file diff --git a/Java/DefinitelyNotAHelloWorld.java b/Java/DefinitelyNotAHelloWorld.java new file mode 100644 index 000000000..4b9af4b89 --- /dev/null +++ b/Java/DefinitelyNotAHelloWorld.java @@ -0,0 +1,10 @@ +/** + * @author https://github.com/DataSecs + */ + +public class DataSecs { + + public static void main(String[] args) { + System.out.println("Hello Hacktoberfest 2018!"); + } +} diff --git a/Java/Demo.java b/Java/Demo.java new file mode 100644 index 000000000..a09d5b69a --- /dev/null +++ b/Java/Demo.java @@ -0,0 +1,6 @@ +//Made By NAMAN +class Demo{ +public static void main(String args[]){ + System.out.println("Hello World"); + } + } diff --git a/Java/FibonacciStream.java b/Java/FibonacciStream.java new file mode 100644 index 000000000..ea18c65ea --- /dev/null +++ b/Java/FibonacciStream.java @@ -0,0 +1,22 @@ +import java.util.Scanner; +import java.util.stream.Stream; +import java.math.BigInteger; + +/** + * The FibonacciStream class prints out n terms of the fibonacci using java + * stream api. + */ +public class FibonacciStream { + + public static void main(String[] args) { + System.out.print("Enter number of terms: "); + Scanner scan = new Scanner(System.in); + int limit = scan.nextInt(); + + Stream.iterate(new BigInteger[] + { BigInteger.ONE, BigInteger.ONE }, + p -> new BigInteger[] { p[1], p[0].add(p[1]) }) + .limit(limit) + .forEach(p->System.out.println(p[0])); + } +} diff --git a/Java/GithubHandle.java b/Java/GithubHandle.java new file mode 100644 index 000000000..c343d3467 --- /dev/null +++ b/Java/GithubHandle.java @@ -0,0 +1,6 @@ +class GithubHandle +{ + public static void main(String[] args){ + System.out.println("Github User: RitvijSrivastava!"); + } +} diff --git a/Java/Hello.java b/Java/Hello.java new file mode 100644 index 000000000..2abb04bb4 --- /dev/null +++ b/Java/Hello.java @@ -0,0 +1,6 @@ +public class Hello +{ + public static void main(String[] args) { + System.out.print("Hello World !!"); + } +} diff --git a/Java/HelloCC9.java b/Java/HelloCC9.java new file mode 100644 index 000000000..b05c7a5d4 --- /dev/null +++ b/Java/HelloCC9.java @@ -0,0 +1,7 @@ +public class HelloCC9 { + + public static void main(String[] args){ + System.out.println("Hello! I'm CopenhagenCoder9 :)"); + } + +} diff --git a/Java/HelloOpenSource.java b/Java/HelloOpenSource.java new file mode 100644 index 000000000..425875526 --- /dev/null +++ b/Java/HelloOpenSource.java @@ -0,0 +1,6 @@ +public class HelloOpenSource +{ + public static void main(String[] args) { + System.out.println("Hello Open Source!"); + } +} diff --git a/Java/HelloWorld.java b/Java/HelloWorld.java new file mode 100644 index 000000000..e2dceebb6 --- /dev/null +++ b/Java/HelloWorld.java @@ -0,0 +1,6 @@ + +public class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello, World"); + } +} diff --git a/Java/HelloWorld/bin/HelloWorld.class b/Java/HelloWorld/bin/HelloWorld.class new file mode 100644 index 0000000000000000000000000000000000000000..e07cb1c3172b3e572f4ed6f12bef6536c67ec6db GIT binary patch literal 534 zcmZutOHaZ;5dM}|X{~}F_*U=)#@LIA2aFdJoUJCqGs0#*qw1op#U0I;s{b3%0) + { + k++; + for(j=0;j arr[j] && dp[i] < dp[j] + 1) { + dp[i] = dp[j] + 1; + } + } + } + max = findMax(dp); + return max; + } + + public static int findMax(int arr[]) { + int length = arr.length; + int max = 0; + for (int i = 0; i < length; i++) { + if (max < arr[i]) { + max = arr[i]; + } + } + return max; + } +} diff --git a/Java/Lopamudra.java b/Java/Lopamudra.java new file mode 100644 index 000000000..6ea208958 --- /dev/null +++ b/Java/Lopamudra.java @@ -0,0 +1,9 @@ +//the hello world programm +//7.october at gita +class Lopamudra +{ + public static void main(String a[]) + { + System.out.prinln("Hello World"); + } +} \ No newline at end of file diff --git a/Java/MagicSquare.java b/Java/MagicSquare.java new file mode 100644 index 000000000..ae9a3267b --- /dev/null +++ b/Java/MagicSquare.java @@ -0,0 +1,38 @@ +import java.util.*; +class MagicSquare { + public static void main(String[] args) { + Scanner scan = new Scanner(System.in); + System.out.println("Welcome to Magic Square !"); + System.out.println("Enter size. (size is odd number only.)"); + int n = scan.nextInt(); + int[][] m = new int[n+1][n+1]; + int r = 1; + int c = n / 2 + 1; + m[r][c] = 1; + int n2 = n * n ; + for (int k = 2; k <= n2; k++) { + if (r == 1 && c == n) { + r = 2; + } else if (r ==1) { + r = n; + c++; + } else if (c == n) { + r--; + c = 1; + } else if (m[r-1][c+1] > 0) { + r++; + } else { + r--; + c++; + } + m[r][c] = k; + } + for (int i = 1; i <= n; i++) { + for (int j = 1; j <= n; j++) { + System.out.print(m[i][j] + " "); + } + System.out.println(" "); + } + System.out.println("========== Program Terminated =========="); + } +} diff --git a/Java/MyOperators.java b/Java/MyOperators.java new file mode 100755 index 000000000..e01a3d60f --- /dev/null +++ b/Java/MyOperators.java @@ -0,0 +1,61 @@ +import java.util.Scanner; +public class MyOperators{ + + public static void main(String[] args) { + Scanner scan = new Scanner(System.in); + + int sum,sub,mul,div,mod,max=0; + + System.out.println("Enter two values"); + int a = scan.nextInt(); + int b = scan.nextInt(); + + System.out.println("\nThere Arithmetic Operations are\n==========================="); + + sum = a+b; + sub = a-b; + mul = a*b; + div = a/b; + mod = a%b; + max = a>b?a:b; + + System.out.println("Addition is : "+sum); + System.out.println("Subtraction is : "+sub); + System.out.println("Multiplication is : "+mul); + System.out.println("Division is : "+div); + System.out.println("Modulas is : "+mod); + + System.out.println("\nRelational Operations are\n=================================="); + + System.out.println("A is greater then b : "+(a>b)); + System.out.println("A is smaller then b : "+(a=b)); + System.out.println("A is smaller or equal to b : "+(a<=b)); + System.out.println("A is equal to b : "+(a==b)); + System.out.println("A is not equal to b : "+(a!=b)); + + System.out.println("\nLogical Operators are\n======================================"); + + System.out.println("A is larger then b and b is smaller then A : "+(a>b && bb || b presenters = new ArrayList(Arrays.asList("DigitalOcean","Github","Twilio")); + Collections.shuffle(presenters); + String space = " "; + String presentedMsg = "Hacktoberfest is presented by:"; + for(String s : presenters){ + presentedMsg += space + s; + } + System.out.println(presentedMsg); + + } +} diff --git a/Java/Prime.java b/Java/Prime.java new file mode 100644 index 000000000..b0a35b209 --- /dev/null +++ b/Java/Prime.java @@ -0,0 +1,34 @@ +import java.util.Scanner; + +class Prime { + public static void main(String[] args) { + // prompt user and get the integer + System.out.print("Enter the integer to validate if it is a prime"); + Scanner scanner = new Scanner(System.in); + int integer = scanner.nextInt(); + + if (isPrime(integer)) { + System.out.println("Prime"); + } else { + System.out.println("Not prime"); + } + } + + /** + * Returns true if argument is a prime number. + */ + public static boolean isPrime(int integer) { + // guard code: anything that is a multiple of 2 is not a prime number + if (integer % 2 == 0) { + return false; + } + + for (int index = 3; index * index < integer; index += 2) { + if (integer % index == 0) { + return false; + } + } + + return true; + } +} diff --git a/Java/PrimeCheck.java b/Java/PrimeCheck.java new file mode 100755 index 000000000..94b20ec54 --- /dev/null +++ b/Java/PrimeCheck.java @@ -0,0 +1,24 @@ +import java.util.Scanner; + +public class PrimeCheck{ + + public static void main(String[] args) { + + Scanner scan = new Scanner(System.in); + int value = scan.nextInt(); + if((value > 2 && value % 2 == 0) || value == 1) { + System.out.println("Not a Prime number"); + return ; + } + + for (int i = 3; i <= (int)Math.sqrt(value); i += 2) { + + if (value % i == 0) { + System.out.println("Not a Prime number"); + return ; + } + } + + System.out.println(" Prime number"); + } +} diff --git a/Java/QuickFindUF.java b/Java/QuickFindUF.java new file mode 100644 index 000000000..51dbb56e9 --- /dev/null +++ b/Java/QuickFindUF.java @@ -0,0 +1,23 @@ +import java.util.*; +public class QuickFindUF +{ + private int id[]; + public QuickFindUF(int N) + { + id=new int[N]; + } + public boolean connected(int p,int q) + { + return id[p]==id[q]; + } + public void union(int p,int q) + { + int pid=id[p]; + int qid=id[q]; + for(int i=0;i1) +{ + i=value-l;j=f; + while(i>f) + { + a[i][j]=c; + c++; + i--; + } + while(jf) + { + a[i][j]=c; + c++; + j--; + } + +f++; +l++; +temp--; +} +if(iseven != true) +a[value/2][value/2]=c; + +// print the matrix + for(i=0; i0 && temp< a[j-1]) { + a[j]=a[j-1]; + j-=1; + } + a[j]=temp; + } + for(int i=0;i linkedlist = new LinkedList(); + + /*add(String Element) is used for adding + * the elements to the linked list*/ + linkedlist.add("Item1"); + linkedlist.add("Item5"); + linkedlist.add("Item3"); + linkedlist.add("Item6"); + linkedlist.add("Item2"); + + /*Display Linked List Content*/ + System.out.println("Linked List Content: " +linkedlist); + + /*Add First and Last Element*/ + linkedlist.addFirst("First Item"); + linkedlist.addLast("Last Item"); + System.out.println("LinkedList Content after addition: " +linkedlist); + + /*This is how to get and set Values*/ + Object firstvar = linkedlist.get(0); + System.out.println("First element: " +firstvar); + linkedlist.set(0, "Changed first item"); + Object firstvar2 = linkedlist.get(0); + System.out.println("First element after update by set method: " +firstvar2); + + /*Remove first and last element*/ + linkedlist.removeFirst(); + linkedlist.removeLast(); + System.out.println("LinkedList after deletion of first and last element: " +linkedlist); + + /* Add to a Position and remove from a position*/ + linkedlist.add(0, "Newly added item"); + linkedlist.remove(2); + System.out.println("Final Content: " +linkedlist); + } \ No newline at end of file diff --git a/Java/mergesort.java b/Java/mergesort.java new file mode 100644 index 000000000..2806328e1 --- /dev/null +++ b/Java/mergesort.java @@ -0,0 +1,100 @@ +class MergeSort +{ + + void merge(int arr[], int l, int m, int r) + { + + int n1 = m - l + 1; + int n2 = r - m; + + + int L[] = new int [n1]; + int R[] = new int [n2]; + + + for (int i=0; i + + + + Gradient Background + + + + +

Background Generator

+ + +

Current CSS Background

+

+ + + \ No newline at end of file diff --git a/Javascript/Background_generator/script.js b/Javascript/Background_generator/script.js new file mode 100644 index 000000000..903548b05 --- /dev/null +++ b/Javascript/Background_generator/script.js @@ -0,0 +1,13 @@ +var css = document.querySelector("h3"); +var color1=document.querySelector(".color1"); +var color2=document.querySelector(".color2"); +var body = document.getElementById("gradient"); + +function setGradient(){ + body.style.background = "linear-gradient(to right, " + color1.value +", " + color2.value + ")"; + css.textContent = body.style.background + ";"; +} + +color1.addEventListener("input", setGradient); + +color2.addEventListener("input", setGradient); \ No newline at end of file diff --git a/Javascript/Background_generator/style.css b/Javascript/Background_generator/style.css new file mode 100644 index 000000000..300feeb7d --- /dev/null +++ b/Javascript/Background_generator/style.css @@ -0,0 +1,27 @@ +body { + font: 'Raleway', sans-serif; + color: rgba(0,0,0,.5); + text-align: center; + text-transform: uppercase; + letter-spacing: .5em; + top: 15%; + background: linear-gradient(to right, purple , green); /* Standard syntax */ +} + +h1 { + font: 600 3.5em 'Raleway', sans-serif; + color: rgba(0,0,0,.5); + text-align: center; + text-transform: uppercase; + letter-spacing: .5em; + width: 100%; +} + +h3 { + font: 900 1em 'Raleway', sans-serif; + color: rgba(0,0,0,.5); + text-align: center; + text-transform: none; + letter-spacing: 0.01em; + +} diff --git a/Javascript/Refresh_Page_Automatically.html b/Javascript/Refresh_Page_Automatically.html new file mode 100644 index 000000000..12c691318 --- /dev/null +++ b/Javascript/Refresh_Page_Automatically.html @@ -0,0 +1,19 @@ + +My Example + + + +

milliseconds since midnight, January 1, 1970.

diff --git a/Javascript/Rock Paper Scissors/Images/paper.png b/Javascript/Rock Paper Scissors/Images/paper.png new file mode 100644 index 0000000000000000000000000000000000000000..8c84b1828e3f087c2eae71c655f76f4a1874daaa GIT binary patch literal 6431 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 literal 0 HcmV?d00001 diff --git a/Javascript/Rock Paper Scissors/Images/scissors.png b/Javascript/Rock Paper Scissors/Images/scissors.png new file mode 100644 index 0000000000000000000000000000000000000000..44738b533c76f5ab79b31b25da20fb095d240c4b GIT binary patch literal 6577 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 Q{f{b06D#9qhA!m)1LUu8G5`Po literal 0 HcmV?d00001 diff --git a/Javascript/Rock Paper Scissors/css/style.css b/Javascript/Rock Paper Scissors/css/style.css new file mode 100644 index 000000000..2fac14768 --- /dev/null +++ b/Javascript/Rock Paper Scissors/css/style.css @@ -0,0 +1,60 @@ +* { + margin: 0; + padding: 0; + font-family: sans-serif; + font-size: 110%; + text-align: center; + color: white; +} +.clearfix { + clear: both; +} +.container { + width: 90%; + margin: 0 auto; + padding-top: 115px; + padding-bottom: 115px; +} +.inner-container { + padding: 10px 0; + position: fixed; + top: 50%; + left: 50%; + /* bring your own prefixes */ + transform: translate(-50%, -50%); +} +h3 { + font-size: 150%; + margin-bottom: 10px; +} +img { + color: #1e5799; + height: 100px; + width: auto; +} +span { + font-size: 100%; /*Weird thing where span text is bigger*/ +} +#rps { + display: flex; + margin-bottom: 35px; + justify-content: center; +} +#rps > div { + padding: 0px 20px; +} +#rps > div { + transition: 350ms ease-in-out; +} +#rps > div:hover { + opacity: 0.6; + cursor: pointer; +} +#background { + height: 100vh; + background: #1e5799; /* Old browsers */ + background: -webkit-linear-gradient(bottom left, #1e5799 0%, #2989d8 99%, #207cca 100%, #7db9e8 100%); + background: -o-linear-gradient(bottom left, #1e5799 0%, #2989d8 99%, #207cca 100%, #7db9e8 100%); + background: linear-gradient(to top right, #1e5799 0%, #2989d8 99%, #207cca 100%, #7db9e8 100%); /* FF3.6-15 */ /* Chrome10-25,Safari5.1-6 */ /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */ +} \ No newline at end of file diff --git a/Javascript/Rock Paper Scissors/index.html b/Javascript/Rock Paper Scissors/index.html new file mode 100644 index 000000000..55da4d49b --- /dev/null +++ b/Javascript/Rock Paper Scissors/index.html @@ -0,0 +1,116 @@ + + + + + + Rock Paper Scissors + + + + +
+
+
+

Choose Your Weapon

+
+

Rock

+

Paper

+

Scissors

+
+
+

The computer chose

+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/Javascript/Superari15.js b/Javascript/Superari15.js new file mode 100644 index 000000000..ab11e9e13 --- /dev/null +++ b/Javascript/Superari15.js @@ -0,0 +1 @@ +console.log("Hi, I am Superari15!") diff --git a/Javascript/andretimm.js b/Javascript/andretimm.js new file mode 100644 index 000000000..fe621fd94 --- /dev/null +++ b/Javascript/andretimm.js @@ -0,0 +1,7 @@ +/** + * https://github.com/andretimm + */ + + console.log("***************"); + console.log("André de Lima Timm"); + console.log("***************"); \ No newline at end of file diff --git a/Javascript/carlacentenor.js b/Javascript/carlacentenor.js new file mode 100644 index 000000000..53aebe554 --- /dev/null +++ b/Javascript/carlacentenor.js @@ -0,0 +1 @@ +console.log("https://github.com/carlacentenor"); \ No newline at end of file diff --git a/Javascript/console.js b/Javascript/console.js new file mode 100644 index 000000000..f277d5470 --- /dev/null +++ b/Javascript/console.js @@ -0,0 +1 @@ +console.error("Error "); \ No newline at end of file diff --git a/Javascript/factorial.js b/Javascript/factorial.js new file mode 100644 index 000000000..d6acc0d15 --- /dev/null +++ b/Javascript/factorial.js @@ -0,0 +1,23 @@ + + + + + + +Enter Num: + + + + diff --git a/Javascript/fibonacci.js b/Javascript/fibonacci.js new file mode 100644 index 000000000..2f5b98d62 --- /dev/null +++ b/Javascript/fibonacci.js @@ -0,0 +1,10 @@ +cache = {0:0, 1:1} + +function fibonacci(n) { + if (n in Object.keys(cache)) { + return cache[n]; + } else { + cache[n] = fibonacci(n-1) + fibonacci(n-2); + return cache[n]; + } +} diff --git a/Javascript/hello.js b/Javascript/hello.js new file mode 100644 index 000000000..84abda358 --- /dev/null +++ b/Javascript/hello.js @@ -0,0 +1,15 @@ + + + + +

Before the script...

+ + + +

...After the script.

+ + + + diff --git a/Javascript/hello_world/index.html b/Javascript/hello_world/index.html new file mode 100644 index 000000000..0d1e80a29 --- /dev/null +++ b/Javascript/hello_world/index.html @@ -0,0 +1,12 @@ + + + + + + + Hello World - Praveen + + + + + \ No newline at end of file diff --git a/Javascript/hello_world/index.js b/Javascript/hello_world/index.js new file mode 100644 index 000000000..c4809c69a --- /dev/null +++ b/Javascript/hello_world/index.js @@ -0,0 +1,3 @@ +addEventListener('click', () => { + alert("Hello World"); +}); \ No newline at end of file diff --git a/Javascript/hellofox.js b/Javascript/hellofox.js new file mode 100644 index 000000000..f598ac82d --- /dev/null +++ b/Javascript/hellofox.js @@ -0,0 +1 @@ +console.log('Hello, world!🦊') diff --git a/Javascript/hellofriend.js b/Javascript/hellofriend.js new file mode 100644 index 000000000..1f99a6490 --- /dev/null +++ b/Javascript/hellofriend.js @@ -0,0 +1 @@ +console.log('Hello from bali') diff --git a/Javascript/helloworld-in-id.js b/Javascript/helloworld-in-id.js new file mode 100644 index 000000000..ff42ac6ad --- /dev/null +++ b/Javascript/helloworld-in-id.js @@ -0,0 +1,13 @@ + + + + Hello World in Indonesia + + + + + + + diff --git a/Javascript/helloworld.js b/Javascript/helloworld.js new file mode 100644 index 000000000..c05186227 --- /dev/null +++ b/Javascript/helloworld.js @@ -0,0 +1 @@ +document.write("Hello, World!"); \ No newline at end of file diff --git a/Javascript/hercegtomas.js b/Javascript/hercegtomas.js new file mode 100644 index 000000000..b5037294b --- /dev/null +++ b/Javascript/hercegtomas.js @@ -0,0 +1 @@ +console.log("hercegtomas"); \ No newline at end of file diff --git a/Javascript/hola.js b/Javascript/hola.js new file mode 100644 index 000000000..af68f0a06 --- /dev/null +++ b/Javascript/hola.js @@ -0,0 +1 @@ +console.log("hola world"); \ No newline at end of file diff --git a/Javascript/index.js b/Javascript/index.js new file mode 100644 index 000000000..648e422a6 --- /dev/null +++ b/Javascript/index.js @@ -0,0 +1 @@ +console.log('Hello World') \ No newline at end of file diff --git a/Javascript/index1.html b/Javascript/index1.html new file mode 100644 index 000000000..478c3a6f4 --- /dev/null +++ b/Javascript/index1.html @@ -0,0 +1,13 @@ + + + + + + + Hello World + + +

We have to Open console to see the Hello World

+ + + diff --git a/Javascript/index2.html b/Javascript/index2.html new file mode 100644 index 000000000..55e856bfe --- /dev/null +++ b/Javascript/index2.html @@ -0,0 +1,11 @@ + + + + + Title + + +

my first javascript code

+ + + \ No newline at end of file diff --git a/Javascript/index3.html b/Javascript/index3.html new file mode 100644 index 000000000..07948682c --- /dev/null +++ b/Javascript/index3.html @@ -0,0 +1,12 @@ + + + + + + + Document Write + + + + + \ No newline at end of file diff --git a/Javascript/jamieshark.js b/Javascript/jamieshark.js new file mode 100644 index 000000000..3ef0e0878 --- /dev/null +++ b/Javascript/jamieshark.js @@ -0,0 +1 @@ +console.log('hello jamieshark!'); diff --git a/Javascript/javascript-arr.js b/Javascript/javascript-arr.js new file mode 100644 index 000000000..e40310264 --- /dev/null +++ b/Javascript/javascript-arr.js @@ -0,0 +1,2 @@ +let word_chars = ['H','e','l','l','o',' ','w','o','r','d','!']; +word_chars.forEach(function(letter){ document.write(letter); }); diff --git a/Javascript/jofftiquez.js b/Javascript/jofftiquez.js new file mode 100644 index 000000000..bc5b8ef99 --- /dev/null +++ b/Javascript/jofftiquez.js @@ -0,0 +1 @@ +console.log('jofftiquez'); diff --git a/Javascript/johnm.js b/Javascript/johnm.js new file mode 100644 index 000000000..ed9abdf0c --- /dev/null +++ b/Javascript/johnm.js @@ -0,0 +1 @@ +console.log("https://github.com/johnmutton"); \ No newline at end of file diff --git a/Javascript/jperez.js b/Javascript/jperez.js new file mode 100644 index 000000000..25a156cec --- /dev/null +++ b/Javascript/jperez.js @@ -0,0 +1,3 @@ +console.log("----"); +console.log("Jeremiah's GitHub: https://github.com/jeremiahreyperez"); +console.log("----"); diff --git a/Javascript/jsgame.html b/Javascript/jsgame.html new file mode 100644 index 000000000..58bcba42a --- /dev/null +++ b/Javascript/jsgame.html @@ -0,0 +1,146 @@ + + + + + + + + + + + + JS Game + + + + + +
+

The luck game

+

Rules

+
    +
  • You will have 1000 INR when you start the game
  • +
  • Every try(click on start) is charged 100 INR
  • +
  • Game is over if you have less than 100 INR
  • +
  • Every try generates three random numbers, each random number is in 0-9 range
  • +
  • If all the numbers are odd/even (eg. 2 4 6), you get 300 INR
  • +
  • If the numbers are in sequence with difference of 1 in any order (eg. 2 3 4 or 3 2 4 or 4 6 5), you get 800 + INR +
  • +
  • If all the numbers are same (eg. 4 4 4), you get 1000 INR
  • +
  • Else you get no money
  • +
+
+

+
+
+ +
+

+

+

+ + + + + \ No newline at end of file diff --git a/Javascript/jsmurf.js b/Javascript/jsmurf.js new file mode 100644 index 000000000..97f513a40 --- /dev/null +++ b/Javascript/jsmurf.js @@ -0,0 +1 @@ +console.log("JSmurf"); diff --git a/Javascript/ljeremy.js b/Javascript/ljeremy.js new file mode 100644 index 000000000..569e8d231 --- /dev/null +++ b/Javascript/ljeremy.js @@ -0,0 +1 @@ +console.log("https://github.com/LJeremy"); diff --git a/Javascript/myfirstjs.js b/Javascript/myfirstjs.js new file mode 100644 index 000000000..c51d56a43 --- /dev/null +++ b/Javascript/myfirstjs.js @@ -0,0 +1 @@ +alert( 'Hello, world!' ); \ No newline at end of file diff --git a/Javascript/namaste.html b/Javascript/namaste.html new file mode 100644 index 000000000..3bbdfe370 --- /dev/null +++ b/Javascript/namaste.html @@ -0,0 +1,29 @@ + + + +
+

+ + + + \ No newline at end of file diff --git a/Javascript/receive_udp.js b/Javascript/receive_udp.js new file mode 100644 index 000000000..ce16b987f --- /dev/null +++ b/Javascript/receive_udp.js @@ -0,0 +1,20 @@ +var s_port = 41234; +var dgram = require("dgram"); +var server = dgram.createSocket("udp4"); + +server.on("listening", function() { + var address = server.address(); + console.log("server listening " + address.address + ":" + address.port); +}); +server.on("message", function(msg, rinfo) { + console.log("server got a message from " + rinfo.address + ":" + rinfo.port); + console.log(" ASCII: " + msg); +}); +server.on("error", function(err) { + console.log("server error: \n" + err.stack); + server.close(); +}); +server.on("close", function() { + console.log("closed."); +}); +server.bind(s_port); diff --git a/Javascript/repeat.js b/Javascript/repeat.js new file mode 100644 index 000000000..a75f815d5 --- /dev/null +++ b/Javascript/repeat.js @@ -0,0 +1,65 @@ +var btn1=document.querySelector("#button1"); +var btn2=document.querySelector("#button2"); +var reset=document.querySelector("#reset"); +var player1=document.querySelector("#p1"); +var player2=document.querySelector("#p2"); +var numinput =document.getElementsByTagName("input"); +var maxscore=document.querySelector("#display"); +var p1score=0; +var p2score=0; +var winningscore=5; +var gameover =false ; + + + +btn1.addEventListener("click",function(){ + +if(!gameover) +{ p1score++; + if (p1score===winningscore) + { + player1.style.color="green"; + gameover=true; + } +player1.textContent=p1score; +} +}); + +btn2.addEventListener("click",function() +{ + if(!gameover) +{ + p2score++; + if (p2score===winningscore) + { + player2.style.color="green"; + gameover=true; + } +player2.textContent=p2score; +} +}); + +reset.addEventListener("click",function() +{ +replay(); + +}); + +function replay() +{ + p1score=0; +p2score=0; +player1.textContent=0; +player2.textContent=0; +player1.style.color="black"; +player2.style.color="black"; + +gameover=false; +} + +numinput.addEventListener("change",function() +{ + maxscore.textContent=numinput.value; +winningscore=Number(numinput.value); +replay(); +}); diff --git a/Javascript/rockycamacho.js b/Javascript/rockycamacho.js new file mode 100644 index 000000000..73c02658c --- /dev/null +++ b/Javascript/rockycamacho.js @@ -0,0 +1 @@ +console.log('Hello World'); \ No newline at end of file diff --git a/Javascript/scorekeeper.js b/Javascript/scorekeeper.js new file mode 100644 index 000000000..37d46ae11 --- /dev/null +++ b/Javascript/scorekeeper.js @@ -0,0 +1,57 @@ +var p1button=document.getElementById("p1"); +var p2button=document.getElementById("p2"); +var b3=document.getElementById("reset"); +var span1=document.getElementById("p1display"); +var span2=document.getElementById("p2display"); +var winningscoredisplay=document.querySelector("p span"); +var numinput=document.querySelector("input"); +var p1score=0; +var p2score=0; +var winningscore=5; +var gameover= false ; + +p1button.addEventListener("click",function() +{ if(!gameover) + { + p1score++; + if(winningscore===p1score){ + span1.style.color="green"; + gameover=true; + } + span1.textContent=p1score; +} + +}); + +p2button.addEventListener("click",function(){ +if(!gameover) +{ + p2score++; +if (winningscore===p2score) +{ span2.style.color="green"; + gameover=true; +} +span2.textContent=p2score; +} + +}); +b3.addEventListener("click",function(){ + reset(); +}); + +function reset () +{ p1score=0; + p2score=0; + span1.textContent=0; + span2.textContent=0; + span1.style.color="black"; + span2.style.color="black"; + gameover=false; +} + +numinput.addEventListener("change",function() +{ + winningscoredisplay.textContent=numinput.value; + winningscore=Number(numinput.value); + reset(); +}); \ No newline at end of file diff --git a/Javascript/server.js b/Javascript/server.js new file mode 100644 index 000000000..d5a09fe62 --- /dev/null +++ b/Javascript/server.js @@ -0,0 +1 @@ +console.log("Hello World); diff --git a/Javascript/shubhamcoder97.js b/Javascript/shubhamcoder97.js new file mode 100644 index 000000000..49e8892f6 --- /dev/null +++ b/Javascript/shubhamcoder97.js @@ -0,0 +1 @@ +console.log("Shubham_siddhartha"); diff --git a/Josephus.cpp b/Josephus.cpp new file mode 100644 index 000000000..48c60cd04 --- /dev/null +++ b/Josephus.cpp @@ -0,0 +1,9 @@ +int josephus(int n, int k) { + if (n == 1) + return 1; + else + /* The position returned by josephus(n - 1, k) is adjusted because the + recursive call josephus(n - 1, k) considers the original position + k % n + 1 as position 1 */ + return (josephus(n - 1, k) + k - 1) % n + 1; +} diff --git a/Julia/hello.jl b/Julia/hello.jl new file mode 100644 index 000000000..4c613bd31 --- /dev/null +++ b/Julia/hello.jl @@ -0,0 +1 @@ +println("hello world") \ No newline at end of file diff --git a/Julia/hello_world.jl b/Julia/hello_world.jl new file mode 100644 index 000000000..50095f70c --- /dev/null +++ b/Julia/hello_world.jl @@ -0,0 +1 @@ +println("Hello world!") diff --git a/Kotlin/main.kt b/Kotlin/main.kt new file mode 100644 index 000000000..81e5b85d7 --- /dev/null +++ b/Kotlin/main.kt @@ -0,0 +1,5 @@ +package main + +fun main(args: Array) { + println("Hello, World!") +} diff --git a/Kotlin/manav.kt b/Kotlin/manav.kt new file mode 100644 index 000000000..83337f0a7 --- /dev/null +++ b/Kotlin/manav.kt @@ -0,0 +1,7 @@ +package manav + +fun main (args: Array) { + + println("Hello World") + +} diff --git a/Kotlin/pyramid.kt b/Kotlin/pyramid.kt new file mode 100644 index 000000000..e5874086d --- /dev/null +++ b/Kotlin/pyramid.kt @@ -0,0 +1,57 @@ +/** + * Text pyramid generator. First argument is the height of the pyramid; + * otherwise a default height of 5 will be used. Second argument is + * the pyramid's composition; if no string specified, defaults to `^`. + * + * Compile: + * kotlinc pyramid.kt -o pyramid + * + * Run: + * ./pyramid.kexe + * + * Example: + * ./pyramid.kexe 4 itooshallkotlin! + * i + * too + * shall + * kotlin! + */ + + const val BLOCK = "^" + const val DEFAULT_HEIGHT = 5 + +fun main(args: Array) { + + val height = readHeightArgument(args) + val block = if (args.size > 1) args[1] else BLOCK + + var currentCharIndex = -1 + val nextChar: () -> Char = { + currentCharIndex = if (currentCharIndex + 1 < block.length) currentCharIndex + 1 else 0 + block[currentCharIndex] + } + + (1..height step 2).forEach { + repeat((height - it) / 2) { + print(" ") + } + repeat(it) { + print(nextChar()) + } + println() + } +} + +private fun readHeightArgument(args: Array): Int { + return if (!args.isEmpty()) { + try { + args[0].toInt() + } catch (ex: Exception) { + println("Failed to understand argument. Using $DEFAULT_HEIGHT for height.\n") + DEFAULT_HEIGHT + } + } else { + println("No pyramid height specified. Using $DEFAULT_HEIGHT for height.\n") + DEFAULT_HEIGHT + } * 2 +} \ No newline at end of file diff --git a/Kotlin/rockycamacho.kt b/Kotlin/rockycamacho.kt new file mode 100644 index 000000000..3718e4329 --- /dev/null +++ b/Kotlin/rockycamacho.kt @@ -0,0 +1,5 @@ +package main + +fun main(args: Array) { + println("Hello World") +} diff --git a/Kotlin/user.kt b/Kotlin/user.kt new file mode 100644 index 000000000..6f025cae1 --- /dev/null +++ b/Kotlin/user.kt @@ -0,0 +1,9 @@ +package main + +fun main(args: Array) { + if (args.size == 0) { + println("Please provide a name as a command-line argument") + return + } + println("Hello, ${args[0]}!") +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..968e56aae --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Hacktoberfest-2018 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/LOLCODE/HaiWorld.lolcode b/LOLCODE/HaiWorld.lolcode new file mode 100644 index 000000000..fb35d9577 --- /dev/null +++ b/LOLCODE/HaiWorld.lolcode @@ -0,0 +1,4 @@ +HAI 1.2 + CAN HAS STDIO? + VISIBLE "HAI WORLD!!!1!" +KTHXBYE diff --git a/LaTeX/.Rhistory b/LaTeX/.Rhistory new file mode 100644 index 000000000..e69de29bb diff --git a/LaTeX/LaTeX.tex b/LaTeX/LaTeX.tex new file mode 100644 index 000000000..d27547bec --- /dev/null +++ b/LaTeX/LaTeX.tex @@ -0,0 +1,4 @@ +\documentclass{article} +\begin{document} +Hello World +\end{document} diff --git a/Lisp/hello-world.lisp b/Lisp/hello-world.lisp new file mode 100644 index 000000000..521574cac --- /dev/null +++ b/Lisp/hello-world.lisp @@ -0,0 +1 @@ + (print "Hello world") diff --git a/Logo/HelloWorld.logo b/Logo/HelloWorld.logo new file mode 100644 index 000000000..11dfb1b26 --- /dev/null +++ b/Logo/HelloWorld.logo @@ -0,0 +1,55 @@ +# hello, world +to helloworld + hideturtle + fd 20 left 180 + fd 40 left 180 + fd 20 right 90 + fd 20 left 90 + fd 20 left 180 + fd 40 left 90 + fd 20 left 90 + fd 20 right 90 + fd 20 right 90 + fd 10 right 90 + fd 20 left 90 + fd 10 left 90 + fd 30 left 90 + fd 40 left 180 + fd 40 left 90 + fd 20 left 90 + fd 40 left 180 + fd 40 left 90 + fd 40 left 90 + fd 20 left 90 + fd 20 left 90 + fd 20 left 90 + fd 60 left 90 + fd 40 left 180 + fd 40 left 90 + fd 20 left 90 + fd 20 left 180 + fd 20 left 90 + fd 20 left 90 + fd 40 left 180 + fd 40 left 90 + fd 40 left 90 + fd 20 left 90 + fd 20 left 90 + fd 20 left 90 + fd 40 left 90 + fd 20 right 90 + fd 20 right 90 + fd 5 left 90 + fd 5 left 90 + fd 25 left 180 + fd 40 left 90 + fd 40 left 90 + fd 20 left 90 + fd 20 left 90 + fd 20 left 90 + fd 20 left 90 + fd 40 left 180 + fd 40 +end + +lt 90 pu fd 200 pd rt 90 helloworld diff --git a/Logo/Screen Shot 2018-08-01 at 2.14.43 PM.png b/Logo/Screen Shot 2018-08-01 at 2.14.43 PM.png new file mode 100644 index 0000000000000000000000000000000000000000..7ffba94e2d7708a20f6b59fab9d0aa6c8f55ab91 GIT binary patch literal 159221 zcmZU)18^o$ur{1*Y8E?1o|>sX z-7}F2a^i5%*w8>gKyZ>0B1%9&z#IP#6G-rXl5mpuN+2LiE=yry1xaCH0tF{~GfNv& zARvv<6io;fROzPcj2Rkf4X0Vo6B17G2`odX!9-0aDOAOv@_Z3NQ4s-D6h#ri=?IFb zbVU(?1sDne#^_Bt;}lwwx7CCP6i4#AfR!)f$zWu zU?j+1P#`T{f=qM>AT#WOXp&J;V$5g@C=JVqAV_rGp#dBXXSff0gDh7(b8%zP58!~Z zG6jnPAcpEQ(sV?`m~lf2fsOHmz-5V$C(NLyUqTdtKo0RlJdH?5ijck`*(d~h=NqUkTZjhwzJk3=;)?BVMyBr zn+e};+DI~Dx5id`TtC>~h{*Q)jT1k_1S^=D%>D2{GWZgV4Pp%RL7~J$S2k>CUYiwW zsgPnTcy6Vmnq2mep&*uuaas5K#rYb_WxMG@+W6M7pgtK-y zUW368HeBqQY=KzFWm|ogeuZq zvNk9JnycX`1Dgjz*|cm&`N%;=+qQleSePb8os9GCVYut5P^WB_-Bwx?8yqcc#YesfT;z%~A_m=*0{fnP%U-@@A- zlYv(kHBcA4gZ&Vo;y~7jai4MeH)wC>Eb6y-1qwf`UO2eNXRM_z%Djh!5}&pv+O8$I>%}Uunld{pc}7T$#4B zvp;!F!qLP^f9J(4bVc}xaAx9;!JRBrO-O{B`IuUX^{j2o}?pwd@<(Bo9MVDz+5YFK%Vg7=H zDyl19mHREHuzs4`ckA!s^ocv`tkS|J2!E}5B+oFes?n<5H6J7&)XlIVVkD!sxoN}{ z6((6O@BQHr6du-wfYK5JAD@DzqNXC$bD4RuZ%?g@yWqn$^1o%Lb%6lF{snpWzT2E{ z2*jmNcpZ0bpZRKc#8Cv?eu#l6FTIvuu!@H%0D+m1Gzj*Jv`ZQ}ErC@If@=UI6Nt73 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 +5) `$ git push` +6) `$ git status` You will see "nothing to commit, working tree clean" +7) `$ git pull` You will see "Already up to data." diff --git a/Markdown/helloworld.md b/Markdown/helloworld.md new file mode 100644 index 000000000..778111591 --- /dev/null +++ b/Markdown/helloworld.md @@ -0,0 +1,5 @@ +# Hello World +* Hello code +```js +console.log("Hello World"); +``` diff --git a/NIM/hello_world.nim b/NIM/hello_world.nim new file mode 100644 index 000000000..1fb5e725e --- /dev/null +++ b/NIM/hello_world.nim @@ -0,0 +1,3 @@ +echo "Hello World" +# to compile, run the following (assuming you have nim downloaded) +# nim c -r --verbosity:0 helloworld.nim diff --git a/NodeJs/README.md b/NodeJs/README.md new file mode 100644 index 000000000..7a55580eb --- /dev/null +++ b/NodeJs/README.md @@ -0,0 +1,3 @@ +# run + +npm start diff --git a/NodeJs/app.js b/NodeJs/app.js new file mode 100644 index 000000000..9a9d1af13 --- /dev/null +++ b/NodeJs/app.js @@ -0,0 +1,10 @@ +const express = require("express"); +const app = express(); +const bodyParser = require("body-parser"); +const path = require('path'); + +const server = app.listen(8080, "localhost", () => { + const port = server.address().port; + const hostname = server.address().address; + console.log(`Server running at ${hostname}:${port}`); +}); diff --git a/NodeJs/helloworld.js b/NodeJs/helloworld.js new file mode 100644 index 000000000..819178376 --- /dev/null +++ b/NodeJs/helloworld.js @@ -0,0 +1,8 @@ +console.log('Hello world!\n') +console.log('# # ##### ### # ##### ') +console.log('# # ## #### # # ##### #### ##### ###### ##### ###### ###### #### ##### # # # # ## # # ') +console.log('# # # # # # # # # # # # # # # # # # # # # # # # # # # ') +console.log('####### # # # #### # # # ##### ##### # # ##### ##### #### # ##### # # # ##### ') +console.log('# # ###### # # # # # # # # # ##### # # # # # # # # # # ') +console.log('# # # # # # # # # # # # # # # # # # # # # # # # # # # ') +console.log('# # # # #### # # # #### ##### ###### # # # ###### #### # ####### ### ##### ##### ') \ No newline at end of file diff --git a/NodeJs/index.js b/NodeJs/index.js new file mode 100644 index 000000000..ce1ba058f --- /dev/null +++ b/NodeJs/index.js @@ -0,0 +1,2 @@ +const Text = 'Hello World!' +console.log(Text) diff --git a/NodeJs/name.js b/NodeJs/name.js new file mode 100644 index 000000000..59be2cb82 --- /dev/null +++ b/NodeJs/name.js @@ -0,0 +1,4 @@ +var Date = new Date() +var name = 'Jack' + +console.log(`My name is ${name} and I am contributing to the ${Date.getYear()} Hacktoberfest!`) diff --git a/NodeJs/package.json b/NodeJs/package.json new file mode 100644 index 000000000..0fb7a1067 --- /dev/null +++ b/NodeJs/package.json @@ -0,0 +1,13 @@ +{ + "name": "NodeJs", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "node index.js" + }, + "keywords": [], + "author": "", + "license": "ISC" +} diff --git a/NodeJs/zmq.js b/NodeJs/zmq.js new file mode 100755 index 000000000..7306ce5a3 --- /dev/null +++ b/NodeJs/zmq.js @@ -0,0 +1,12 @@ +const zlib = require('zlib'); +const zmq = require('zeromq'); // npm install zeromq +const sock = zmq.socket('sub'); + +sock.connect('tcp://eddn.edcd.io:9500'); +console.log('Worker connected to port 9500'); + +sock.subscribe(''); + +sock.on('message', topic => { + console.log(JSON.parse(zlib.inflateSync(topic))); +}); diff --git a/Objective C/hello_world.m b/Objective C/hello_world.m new file mode 100644 index 000000000..b3764c9ed --- /dev/null +++ b/Objective C/hello_world.m @@ -0,0 +1,9 @@ +#import + +int main (int argc, const char * argv[]) { + NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; + + NSLog (@"hello world"); + [pool drain]; + return 0; +} diff --git a/Ocaml/hello.ml b/Ocaml/hello.ml new file mode 100644 index 000000000..2850b0421 --- /dev/null +++ b/Ocaml/hello.ml @@ -0,0 +1,3 @@ + +let print_hello () = print_endline "hello world" ;; +print_hello () ;; diff --git a/Ook/helloWorld.txt b/Ook/helloWorld.txt new file mode 100644 index 000000000..509448cfc --- /dev/null +++ b/Ook/helloWorld.txt @@ -0,0 +1,18 @@ +Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. +Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. +Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. +Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. +Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? +Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. +Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. +Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. +Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. +Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. +Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. +Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. +Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. +Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. +Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. +Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. +Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! +Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. diff --git a/PHP/Add.php b/PHP/Add.php new file mode 100644 index 000000000..fc9027157 --- /dev/null +++ b/PHP/Add.php @@ -0,0 +1,16 @@ + diff --git a/PHP/Diff.php b/PHP/Diff.php new file mode 100644 index 000000000..09a8d2357 --- /dev/null +++ b/PHP/Diff.php @@ -0,0 +1,16 @@ + diff --git a/PHP/HelloPhp.php b/PHP/HelloPhp.php new file mode 100644 index 000000000..99f0d700d --- /dev/null +++ b/PHP/HelloPhp.php @@ -0,0 +1,8 @@ + + + Hello World + + +

Hello Php!

"; ?> + + diff --git a/PHP/HelloWorld.php b/PHP/HelloWorld.php new file mode 100644 index 000000000..eabab54f2 --- /dev/null +++ b/PHP/HelloWorld.php @@ -0,0 +1,13 @@ + + + + + + Hello World + + +

+ + diff --git a/PHP/HelloWorldInID.php b/PHP/HelloWorldInID.php new file mode 100644 index 000000000..271a8d63b --- /dev/null +++ b/PHP/HelloWorldInID.php @@ -0,0 +1,11 @@ + + + + + Hello World in Indonesia + + + + Halo Dunia!

"; ?> + + diff --git a/PHP/HelloWorld_IT b/PHP/HelloWorld_IT new file mode 100644 index 000000000..d98547a46 --- /dev/null +++ b/PHP/HelloWorld_IT @@ -0,0 +1,13 @@ + + + + + + + How to say "Hello World!" in Italian + + + + Ciao Mondo!"; ?> + + diff --git a/PHP/OOP/HelloWorldOOP.php b/PHP/OOP/HelloWorldOOP.php new file mode 100644 index 000000000..b96a2cb97 --- /dev/null +++ b/PHP/OOP/HelloWorldOOP.php @@ -0,0 +1,22 @@ +msg = $msg; + } + + public static function createFromMsg($msg) { + return new self($msg); + } + + public function __toString() { + return $this->msg; + } + +} \ No newline at end of file diff --git a/PHP/OOP/index.php b/PHP/OOP/index.php new file mode 100644 index 000000000..64a090d04 --- /dev/null +++ b/PHP/OOP/index.php @@ -0,0 +1,6 @@ + + + + + Hello World in Indonesia + + + + Halo Dunia!"; ?> + + diff --git a/PHP/helloworld.php b/PHP/helloworld.php new file mode 100644 index 000000000..eabab54f2 --- /dev/null +++ b/PHP/helloworld.php @@ -0,0 +1,13 @@ + + + + + + Hello World + + +

+ + diff --git a/PHP/helloworld_wfebriadi.php b/PHP/helloworld_wfebriadi.php new file mode 100644 index 000000000..7c0c00fea --- /dev/null +++ b/PHP/helloworld_wfebriadi.php @@ -0,0 +1,7 @@ +// Language: PHP +// Author: Wisnu Febriadi +// GitHub: https://github.com/wfebriadi + + diff --git a/PHP/phpinfo.php b/PHP/phpinfo.php new file mode 100644 index 000000000..0445dbdac --- /dev/null +++ b/PHP/phpinfo.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/PHP/rockycamacho.php b/PHP/rockycamacho.php new file mode 100644 index 000000000..c58d26dd6 --- /dev/null +++ b/PHP/rockycamacho.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PHP/time_now b/PHP/time_now new file mode 100644 index 000000000..91409a448 --- /dev/null +++ b/PHP/time_now @@ -0,0 +1,7 @@ + diff --git a/PULL_REQUEST_TEMPLATE.md b/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000..4563a8a0e --- /dev/null +++ b/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,5 @@ +### What the program do ? + +---- + +### In what programming language it is written? diff --git a/Pascal/hello-world.pp b/Pascal/hello-world.pp new file mode 100644 index 000000000..397d5cf4f --- /dev/null +++ b/Pascal/hello-world.pp @@ -0,0 +1,6 @@ +//fpc 3.0.0 + +program HelloWorld; +begin + writeln('Hello, world!'); +end. diff --git a/Pascal/pascal.pas b/Pascal/pascal.pas new file mode 100644 index 000000000..f5cc42fbc --- /dev/null +++ b/Pascal/pascal.pas @@ -0,0 +1,6 @@ +//FPC 2.6.2 + +program HelloWorld; +begin + writeln('Hello World'); +end. diff --git a/Perl/helloWorld b/Perl/helloWorld new file mode 100644 index 000000000..6fc17a609 --- /dev/null +++ b/Perl/helloWorld @@ -0,0 +1,10 @@ +#!/usr/bin/perl +# +# The traditional first program. + +# Strict and warnings are recommended. +use strict; +use warnings; + +# Print a message. +print "Hello, World!\n"; diff --git a/Perl/helloworld.pl b/Perl/helloworld.pl new file mode 100644 index 000000000..11d9d681f --- /dev/null +++ b/Perl/helloworld.pl @@ -0,0 +1,6 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +print "Hello World!\n"; diff --git a/Pharo/pharo.st b/Pharo/pharo.st new file mode 100644 index 000000000..f333eb6cd --- /dev/null +++ b/Pharo/pharo.st @@ -0,0 +1 @@ +Transcript show: ’hello world’; cr. diff --git a/PowerShell/HelloWorld-by-AT.ps1 b/PowerShell/HelloWorld-by-AT.ps1 new file mode 100644 index 000000000..9b2c7affa --- /dev/null +++ b/PowerShell/HelloWorld-by-AT.ps1 @@ -0,0 +1,24 @@ +## ---------------------------------------- +## Hello World using Powershell +## ---------------------------------------- +## Credits: +## +## Sample Hello World Project +## for Hacktoberfest 2018 +## +## ---------------------------------------- + +Write-Host "----------------------------------------" +Write-Host "----------------------------------------`n`n" + +Write-Host "Hi to my Hello World!`n" +Write-Host -ForegroundColor Green "I'm Azel and joining the hacktoberfest 2018.`n" + +Write-Host "Welcome to Powershell! ..." + +Write-Host "Today is $(Get-Date -DisplayHint Date)`n" + +Write-Host -ForegroundColor Yellow "Happy Coding! :)" + +Write-Host "----------------------------------------" +Write-Host "----------------------------------------" diff --git a/PowerShell/HelloWorld.ps1 b/PowerShell/HelloWorld.ps1 new file mode 100644 index 000000000..b93ae33ae --- /dev/null +++ b/PowerShell/HelloWorld.ps1 @@ -0,0 +1,23 @@ +$Colors = [enum]::GetValues([System.ConsoleColor]) | Where-Object {$_ -ne 'Black'} +$Message = "Hello World!" +$Ticker = 0 +$ColorTicker = 0 + +do { + $Message.ToCharArray() | ForEach-Object { + if ($ColorTicker -gt ($Colors.Count - 1)) { + $ColorTicker = 0 + } + + Write-Host $_ -ForegroundColor $Colors[$ColorTicker] -NoNewline + + $ColorTicker++ + + Start-Sleep -Milliseconds 1 + } + + Write-Host "`r" -NoNewline + + $Ticker++ +} +while ($Ticker -lt 25) \ No newline at end of file diff --git a/Prolog/prolog.pl b/Prolog/prolog.pl new file mode 100644 index 000000000..e9ac557c9 --- /dev/null +++ b/Prolog/prolog.pl @@ -0,0 +1 @@ +write('Hello, World!'), nl. diff --git a/PureBasic/helloworld.pb b/PureBasic/helloworld.pb new file mode 100644 index 000000000..1988b72bc --- /dev/null +++ b/PureBasic/helloworld.pb @@ -0,0 +1,7 @@ +OpenConsole() + +PrintN("Hello World!") + +Delay(2000) + +CloseConsole() diff --git a/Purescript/.gitignore b/Purescript/.gitignore new file mode 100644 index 000000000..20e090a3c --- /dev/null +++ b/Purescript/.gitignore @@ -0,0 +1,9 @@ +/bower_components/ +/node_modules/ +/.pulp-cache/ +/output/ +/generated-docs/ +/.psc-package/ +/.psc* +/.purs* +/.psa* diff --git a/Purescript/bower.json b/Purescript/bower.json new file mode 100644 index 000000000..85a0e89b5 --- /dev/null +++ b/Purescript/bower.json @@ -0,0 +1,17 @@ +{ + "name": "Purescript", + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "output" + ], + "dependencies": { + "purescript-prelude": "^4.1.0", + "purescript-console": "^4.1.0", + "purescript-effect": "^2.0.0" + }, + "devDependencies": { + "purescript-psci-support": "^4.0.0" + } +} diff --git a/Purescript/src/Main.purs b/Purescript/src/Main.purs new file mode 100644 index 000000000..5c46b3d1f --- /dev/null +++ b/Purescript/src/Main.purs @@ -0,0 +1,16 @@ +module Main where + +import Prelude +import Effect (Effect) +import Effect.Console (log) + +-- | STEPS TO RUN THIS CODE +-- | 1. Navigate to Purescript directory (cd Purescript) +-- | 2. Install purescript with it's dependencies +-- | npm install -g purescript pulp bower +-- | 3. Run this in terminal +-- | pulp run + +main :: Effect Unit +main = do + log "Hello world." diff --git a/Purescript/test/Main.purs b/Purescript/test/Main.purs new file mode 100644 index 000000000..bbe367f6e --- /dev/null +++ b/Purescript/test/Main.purs @@ -0,0 +1,9 @@ +module Test.Main where + +import Prelude +import Effect (Effect) +import Effect.Console (log) + +main :: Effect Unit +main = do + log "You should add some tests." diff --git a/Python/AI.py b/Python/AI.py new file mode 100644 index 000000000..94613fa41 --- /dev/null +++ b/Python/AI.py @@ -0,0 +1,65 @@ +import time +from lists import command_list +from lists import math_commands + +print('Hello my name is AIM. How may I help you?') + +while True: + Question = input('') + if Question == 'what does aim mean': + print('Aim means: Artificial Information Machine') + elif Question == 'hi': + print('Greetings earthling! How may I assist you?') + elif Question == 'hello': + print('Live long and prosper sentient being! What can I assist you with?') + elif Question == "what can you do": + print('Everything') + print('Anything') + print('What do you want me to do?') + elif Question == 'what is the answer to life': + print(42) + elif Question == 'math': + print('enter equation one variable at a time, starting with the numbers:') + x = float(input()) + y = float(input()) + numbers = input() + if numbers == 'muiltiply': + print(x*y) + elif numbers == 'divide': + print(x/y) + elif numbers == 'minus': + print(x-y) + elif numbers == 'add': + print(x+y) + elif Question == 'thanks': + print('You are very welcome bag filled with dirty water') + if Question == 'what did you say?': + print('Star Trek') + + elif Question == 'shutdown': + print('Shutting down in') + print(3) + sleep(1) + print(2) + sleep(1) + print(1) + sleep(1) + print('Powered Off') + sleep(1) + break + elif Question == '-help': + print('Here is a list of known commands:') + for elem in command_list: + print(elem) + sleep(5) + print('Not finding what you are looking for?') + sleep(2) + print('Maybe it is in a sub folder of one of the catagories.') + sleep(2) + print ('Try entering one of the catagories by inputing it') + elif Question == 'math operations': + for elem in math_commands: + print(elem) + + else: + print('Unrecognized command. Type -help for a list of commands.') diff --git a/Python/Average_for_3test.py b/Python/Average_for_3test.py new file mode 100644 index 000000000..de6fdf163 --- /dev/null +++ b/Python/Average_for_3test.py @@ -0,0 +1,12 @@ +# Get three test score +round1 = int(raw_input("Enter score for round 1: ")) + +round2 = int(raw_input("Enter score for round 2: ")) + +round3 = int(raw_input("Enter score for round 3: ")) + +# Calculate the average +average = (round1 + round2 + round3) / 3 + +# Print out the test score +print "the average score is: ", average \ No newline at end of file diff --git a/Python/Benches.py b/Python/Benches.py new file mode 100644 index 000000000..6ff6f9171 --- /dev/null +++ b/Python/Benches.py @@ -0,0 +1,15 @@ +n = int(raw_input()) +m = int(raw_input()) + +a = [] + +for x in range(0, n): + a.append(int(raw_input())) + +maximum = max(a) + m + +while m: + a[a.index(min(a))] += 1 + m -= 1 + +print max(a), maximum \ No newline at end of file diff --git a/Python/BubbleSort.py b/Python/BubbleSort.py new file mode 100644 index 000000000..6837acdcf --- /dev/null +++ b/Python/BubbleSort.py @@ -0,0 +1,37 @@ +def bubbleSort(arr): + n = len(arr) + + # Traverse through all array elements + for i in range(n): + + # Last i elements are already in place + for j in range(0, n-i-1): + + # traverse the array from 0 to n-i-1 + # Swap if the element found is greater + # than the next element + if arr[j] > arr[j+1] : + arr[j], arr[j+1] = arr[j+1], arr[j] + +# Driver code to test above +arr = [] +num1 = int(input('enter the value\n')) +num2 = int(input('enter the value\n')) +num3 = int(input('enter the value\n')) +num4 = int(input('enter the value\n')) +num5 = int(input('enter the value\n')) + +#For putting the values in list arr:- +arr.append(num1) +arr.append(num2) +arr.append(num3) +arr.append(num4) +arr.append(num5) + + +bubbleSort(arr) + +print ("Sorted array is:") +for i in range(len(arr)): + print ("%d" %arr[i]), + diff --git a/Python/CaesarCipherInline.py b/Python/CaesarCipherInline.py new file mode 100644 index 000000000..563baa670 --- /dev/null +++ b/Python/CaesarCipherInline.py @@ -0,0 +1,5 @@ +#SecPy +''.join([chr((ord(_)-100)%27+95) for _ in 'mjqqtdktqpx']) + +#OUTPUT: +#> hello_folks diff --git a/Python/Counting the Number words.py b/Python/Counting the Number words.py new file mode 100644 index 000000000..16dbebf8d --- /dev/null +++ b/Python/Counting the Number words.py @@ -0,0 +1,12 @@ +# Program to find the number of words and letters in given sentence + +def main(): + # s stores the input sentence + s = input("Please enter your sentence: ") + # words is an array that stores the words of the sentence + words = s.split() + # wordCount stores the no of words in your senetence + wordCount = len(words) + # Printing the number of words + print ("Your word count is:", wordCount) +main() diff --git a/Python/Counting the occurence of each word.py b/Python/Counting the occurence of each word.py new file mode 100644 index 000000000..fa20eb4c5 --- /dev/null +++ b/Python/Counting the occurence of each word.py @@ -0,0 +1,11 @@ +string=input("Enter string:") +word=input("Enter word:") +a=[] +count=0 +a=string.split(" ") +for i in range(0,len(a)): + if(word==a[i]): + count=count+1 +print("Count of the word is:") +print(count) + diff --git a/Python/DesicionTree.py b/Python/DesicionTree.py new file mode 100644 index 000000000..81d36efbe --- /dev/null +++ b/Python/DesicionTree.py @@ -0,0 +1,113 @@ + +# Run this program on your local python +# interpreter, provided you have installed +# the required libraries. + +# Importing the required packages +import numpy as np +import pandas as pd +from sklearn.metrics import confusion_matrix +from sklearn.cross_validation import train_test_split +from sklearn.tree import DecisionTreeClassifier +from sklearn.metrics import accuracy_score +from sklearn.metrics import classification_report + +# Function importing Dataset +def importdata(): + balance_data = pd.read_csv( +'https://archive.ics.uci.edu/ml/machine-learning-'+ +'databases/balance-scale/balance-scale.data', + sep= ',', header = None) + + # Printing the dataswet shape + print ("Dataset Lenght: ", len(balance_data)) + print ("Dataset Shape: ", balance_data.shape) + + # Printing the dataset obseravtions + print ("Dataset: ",balance_data.head()) + return balance_data + +# Function to split the dataset +def splitdataset(balance_data): + + # Seperating the target variable + X = balance_data.values[:, 1:5] + Y = balance_data.values[:, 0] + + # Spliting the dataset into train and test + X_train, X_test, y_train, y_test = train_test_split( + X, Y, test_size = 0.3, random_state = 100) + + return X, Y, X_train, X_test, y_train, y_test + +# Function to perform training with giniIndex. +def train_using_gini(X_train, X_test, y_train): + + # Creating the classifier object + clf_gini = DecisionTreeClassifier(criterion = "gini", + random_state = 100,max_depth=3, min_samples_leaf=5) + + # Performing training + clf_gini.fit(X_train, y_train) + return clf_gini + +# Function to perform training with entropy. +def tarin_using_entropy(X_train, X_test, y_train): + + # Decision tree with entropy + clf_entropy = DecisionTreeClassifier( + criterion = "entropy", random_state = 100, + max_depth = 3, min_samples_leaf = 5) + + # Performing training + clf_entropy.fit(X_train, y_train) + return clf_entropy + + +# Function to make predictions +def prediction(X_test, clf_object): + + # Predicton on test with giniIndex + y_pred = clf_object.predict(X_test) + print("Predicted values:") + print(y_pred) + return y_pred + +# Function to calculate accuracy +def cal_accuracy(y_test, y_pred): + + print("Confusion Matrix: ", + confusion_matrix(y_test, y_pred)) + + print ("Accuracy : ", + accuracy_score(y_test,y_pred)*100) + + print("Report : ", + classification_report(y_test, y_pred)) + +# Driver code +def main(): + + # Building Phase + data = importdata() + X, Y, X_train, X_test, y_train, y_test = splitdataset(data) + clf_gini = train_using_gini(X_train, X_test, y_train) + clf_entropy = tarin_using_entropy(X_train, X_test, y_train) + + # Operational Phase + print("Results Using Gini Index:") + + # Prediction using gini + y_pred_gini = prediction(X_test, clf_gini) + cal_accuracy(y_test, y_pred_gini) + + print("Results Using Entropy:") + # Prediction using entropy + y_pred_entropy = prediction(X_test, clf_entropy) + cal_accuracy(y_test, y_pred_entropy) + + +# Calling main function +if __name__=="__main__": + main() + diff --git a/Python/Fibonacci.py b/Python/Fibonacci.py new file mode 100644 index 000000000..5451953d9 --- /dev/null +++ b/Python/Fibonacci.py @@ -0,0 +1,8 @@ +import time + +fibonacci = [1, 1] +n = int(input()) +while len(fibonacci) < n: + fibonacci.append(fibonacci[-1] + fibonacci[-2]) +for i in range(n): + print(fibonacci[i], end=' ') diff --git a/Python/Hello World using espeak.py b/Python/Hello World using espeak.py new file mode 100644 index 000000000..0614f8317 --- /dev/null +++ b/Python/Hello World using espeak.py @@ -0,0 +1,3 @@ +import os +os.system("espeak 'Hello World'") + diff --git a/Python/Hello-World.py b/Python/Hello-World.py new file mode 100644 index 000000000..7e27e8e37 --- /dev/null +++ b/Python/Hello-World.py @@ -0,0 +1 @@ +print("Hello everyone!") diff --git a/Python/HiWorld.py b/Python/HiWorld.py new file mode 100644 index 000000000..9c863f85d --- /dev/null +++ b/Python/HiWorld.py @@ -0,0 +1,2 @@ +hi = ("Hi and Hello World") +print hi diff --git a/Python/Hola Mundo b/Python/Hola Mundo new file mode 100644 index 000000000..907f28f44 --- /dev/null +++ b/Python/Hola Mundo @@ -0,0 +1 @@ +print ("Hola Mundo"); diff --git a/Python/LinkedList.py b/Python/LinkedList.py new file mode 100644 index 000000000..ab6a93033 --- /dev/null +++ b/Python/LinkedList.py @@ -0,0 +1,105 @@ +#Linked lists are similar to normal arrays/lists, except instead of being found by position, they are found based on their connections +#A linked is represented by a series of nodes(values) being connected to each other. +#The first node, is referred to as the root, or head node +# +# ROOT NODE 0 1 2 +# |----------| |----------| |----------| |----------| +# | | | | | | | | +# | $HEAD$ |========| "First" |==========| "Middle" |==========| "Last" | +# | | | | | | | | +# |----------| |----------| |----------| |----------| +# +# (A linked list with three values, "First", "Middle" and "Last") +# +#In a linked list, you only have access to the root node, so to find the values of other nodes, you need to look at the connection of each Node +#A removal can be done by changing the connection to the Node before it (the one you want to delete) to the node after it. +#To add a node, just connect a node to he last node... +# +# +# ROOT NODE 0 1 +# |----------| |----------| |----------| +# | | | | | | +# | $HEAD$ |========| "First" |==========*****WW******=========| "Last" | +# | | | | || | | +# |----------| |----------| || |----------| +# || +# || +# ___ || +# |0 0| |||||||||||||| (The robot removes the "middle" node by connecting the "first" node to the "last" node +# _|_U_|_ || +# |@8@8@8||||| +# |@8@8@8| # +# |8_8_8_|//// |----------| +# // | | +# ///////K "Middle" | +# | | +# |----------| +# +#_______________________________________________________________________________________________________________________ + +#The code is Below + +#A node class representing one item in our linked list +class Node: + + #Class member variables + # data: The value wanted to be stored in the current node + # next: A Node object being the next node in the list + + #Intalizing a new Node with the specified data, adding references and changing the data can be done through the member variables + def __init__(self, data): + self.data = data + self.next = None + +#A class that organizes basic operations done with Nodes +class LinkedList: + #Class member variables + # head: The root Node that starts the Node "chain". It cannot be deleted in our case. + # size: A counter that keep track of the amount of Nodes in the list + + #Initalizing the head (root) Node of the list with the unique value "$HEAD$" and a size of 0 + def __init__(self): + self.head = Node("$HEAD$") + self.size = 0 + + #Creating a new Node based on the specified value(data paramater). + #Adding a Node by crawling to the end of the Node chain, then setting the "next" variable of the last Node to be our new Node + #Incrementing the size to keep the size member variable accurate + def add(self,data): + currentNode = self.head + while currentNode.next != None: + currentNode = currentNode.next + + currentNode.next = Node(data) + self.size += 1 + + #Doing nothing if the their are no Node to crawl + #Removing a Node by using the same crawling technqiue, but keeping track of the Node before the checked Node + #(the Node that's next value is the checked Node) and after it (the next value of the checked Node) + #Crawling with a for loop to prevent infinity + #Revoming the current node by setting the before Node's next value to be the removed Node's next value. Also subtracting one to the counter. + def remove(self,data): + beforeNode = self.head + currentNode = self.head.next + if(currentNode != None): + for i in range(self.size): + if (currentNode.data != data): + beforeNode = currentNode + currentNode = currentNode.next + else: + beforeNode.next = currentNode.next + self.size -= 1 + + #Adding string conversion to make life easier :) + def __str__(self): + if(self.size == 0): + firstval = "NONEXISTENT" + nextval = "NONEXISTENT" + elif(self.size == 1): + firstval = self.head.next.data + nextval = "NONEXISTENT" + else: + firstval = self.head.next.data + nextval = self.head.next.next.data + + return "first=(" + str(firstval) + "), " + "next=(" + str(nextval) + "), " + "size=(" + str(self.size) + ")" diff --git a/Python/Stack b/Python/Stack new file mode 100644 index 000000000..5897396c5 --- /dev/null +++ b/Python/Stack @@ -0,0 +1,119 @@ +#A stack is a data structure that can be thought of as a stack of pancakes, or books or verticallist +# +# ---------- +# Index --> 3 "Last" +# ---------- +# 2 "Middle" +# ---------- (Example of a stack with three strings, "First", "Middle" and "Last") +# 1 "First" +# ---------- +# +#A stack is coceptually organized as a vertical list, where the first item is on the bottom, and the last is on the top +#So when an item is added, it goes toward the bottom but appears at the top +#The next item that is added appears on top of the last item +# +# +# ---------- +# 2 "Middle" +# ---------- ---------- (A stack with one value, "First" after the value "Middle" has been added to it) +# 1 "First" --> 1 "First" +# ---------- ---------- +# +# +# +#With stacks, you can only remove the top element, not any other. The same rules apply for reading and deleting. +#The only way to look at other items is to remove the top item, read the new top item (an internal item before), and then put it back. +# ___ +# |0 0| <-- Robot that takes action on your stack |-------------------| +# |_U_|_>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>|TOP VALUE: "Middle"| +# @8@8@8| |-------------------| +# @8@8@8||||||||| +# 8_8_8_| || +# ----WW---- +# 2 "Middle" +# ---------- (The robot can only read the top value, its arm isn't long enough...) +# 1 "First" +# ---------- +#_______________________________________________________________________________________________________________________ +# +# +# ___ +# |0 0| +# |_U_|_ |||||||||||||||||||||||||| +# @8@8@8| || || +# @8@8@8||||| ----WW---- +# 8_8_8_| # "Middle" +# ---------- +# +# ---------- (The robot can only remove items from the top of the list) +# 1 "First" +# ---------- +# +#_______________________________________________________________________________________________________________________ +# +# ___ +# |0 0| +# |_U_|_ +# @8@8@8| +# @8@8@8||||||||| +# 8_8_8_| || +# ----WW---- +# 3 "Last" (The robot can only add items to the top of the stack) +# ---------- +# 2 "Middle" +# ---------- +# 1 "First" +# ---------- +# +#Advantages: +# - Quick access to the top item +# - Easy iteration through all items +# - Structure makes sense for organizing some algorithms + +#Disadvantages: +# - Hard to view any other item other than the top +# - Unable to delete items other than the top +# - Can only add items to the top of the stack + + +#An implementation of a stack using a list +class Stack: + + #Class member variables: + # list: The whole list of values added to the stack + # size: The amount of items on the stack + # last: The last value so it can quickly be retrieved + + #Defining a stack with no items and a size of zero + def __init__(self): + self.list = [] + self.size = 0 + + #Appending the given value v to the end of the list and incrementing the size + def push(self,v): + self.list.append(v) + self.last = v + self.size += 1 + + #Making the list empty and setting size to be zero if the stack has one or no current item(s) + #Removing the last value of the list, setting the last value to be the new end of the list and returning the removed value + def pop(self): + if len(self.list) <= 1: + self.list = [] + self.last = None + self.size == 0 + return None + else: + prepeak = self.last + self.list = self.list[:-1] + self.last = self.list[-1] + self.size -= 1 + return prepeak + + #Returing the value of our 'last' member variable + def peek(self): + return self.last + + #Adding string conversion to make life easier :) + def __str__(self): + return "top=(" + str(self.last) + "), " + "size(" + str(self.size) + ")" diff --git a/Python/Superari15.py b/Python/Superari15.py new file mode 100644 index 000000000..29c6eb859 --- /dev/null +++ b/Python/Superari15.py @@ -0,0 +1 @@ +print("HELLO, WORLD!I am SUPERARI15!") diff --git a/Python/Tree.py b/Python/Tree.py new file mode 100644 index 000000000..fc62fd5f4 --- /dev/null +++ b/Python/Tree.py @@ -0,0 +1,122 @@ +import operator + +class TreeNode: + def __init__(self,value): + self.val=value + self.parent=None + self.right=None + self.left=None + + def getLeft(self): + return self.left + + def getRight(self): + return self.right + + def getRootVal(self): + return self.val + + +class Parsetree: + def __init__(self): + self.root=TreeNode('') + + def insert(self,exp): + tree=self.root + curr=tree + #print(curr,'\n\n') + for i in exp: + if i == '(': + temp=TreeNode('') + curr.left=temp + temp.parent=curr + curr=temp + #print(curr.left) + #print(i) + if i=='+' or i=='-': + curr.val=i + temp=TreeNode('') + curr.right=temp + temp.parent=curr + curr=temp + if i=='*' or i=='/': + curr.val=i + temp=TreeNode('') + curr.right=temp + temp.parent=curr + curr=temp + + if i==')': + curr=curr.parent + + if i.isdigit(): + curr.val=i + curr=curr.parent + + +#-------------------* and / is treated as metacharacter add a \ + +def printPrefix(trav): + if trav: + print(trav.val,end=" ") + + if trav.left!=None: + printPrefix(trav.left) + if trav.right!=None: + printPrefix(trav.right) + + +def printPostFix(trav): + if trav: + printPostFix(trav.left) + + printPostFix(trav.right) + + print(trav.val,end=" ") + #evaluate(trav.val) + + +def evaluate(trav): + opers = {'+':operator.add, '-':operator.sub, '*':operator.mul, '/':operator.truediv} + leftC=trav.getLeft() + rightC=trav.getRight() + if leftC.isdigit(): + leftC=int(leftC) + if rightC.isdigit(): + rightC=int(rightC) + + if leftC and rightC: + fn = opers[trav.getRootVal()] + return fn(evaluate(leftC),evaluate(rightC)) + else: + return trav.getRootVal() + + +def postordereval(tree): + opers = {'+':operator.add, '-':operator.sub, '*':operator.mul, '/':operator.truediv} + res1 = None + res2 = None + if tree: + res1 = postordereval(tree.getLeft()) + res2 = postordereval(tree.getRight()) + if res1 and res2: + return opers[tree.getRootVal()](int(res1),int(res2)) + else: + return tree.getRootVal() + + + +def main(): + pt=Parsetree() + inp=input('Enter the paranthesised string: ') + pt.insert(inp) + printPrefix(pt.root) + print() + printPostFix(pt.root) + print() + #print(pt.root.left.right.val) + #evaluate(pt.root) + print(postordereval(pt.root)) + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/Python/Zombie game.py b/Python/Zombie game.py new file mode 100644 index 000000000..f08d8f0c9 --- /dev/null +++ b/Python/Zombie game.py @@ -0,0 +1,118 @@ +from sys import exit + +def start(): + print "You are in your safe house" + print "safe from the nuclear fallout" + print "But you cant remain in here forever" + print "You have to reach your vault" + print "You have started your journey to the vault" + trap() + +def trap(): + print "You have encountered some zombie's affected by the radiation" + print "You have to fight them" + print "You have two options" + print "Input A to kill them, B to distract them" + + while True: + next = raw_input("> ") + + if next == "A": + lake() + elif next == "B": + b_room() + else: + death("You only had two options but since you did'nt choose any you are dead") + +def b_room(): + print "You choose the second option thus you have made it safely to the b room now" + print "You cant stay here forever tough and must move forward to survive" + print "You have two options now" + print "You may see your options below" + print "option A - you break the door gather all the food you have and leave" + print "option B - you stay here and wait for passing by lookout troops to rescue you" + + while True: + next = raw_input("> ") + + if next == "A": + lake() + elif next == "B": + d_room() + else: + death("You only had two options but since you did'nt choose any you are dead") + +def d_room(): + print + print "you have spawned into the d room" + print "This is the medic room where you can treat all your wounds" + print "you have two choices" + print "option A - parkhour to the safe house risking death" + print "option B - take the long road and reach safely" + + while True: + next = raw_input("> ") + + if next == "A": + safe_house() + elif next == "B": + b_room() + else: + death("You were eaten by all the zombies around you") + + +def lake(): + print "You have moved forward to the lake" + print "Batelling zombies fighting bears" + print "Dont think your troubles are over yet" + print "The lake is all foggy" + print "there are dangerous animals in the lake" + print "you only have two options" + print "A - gather raw material from trees and build a boat" + print "B - risk swimming but end up going to a inbetween safehouse deep in the forest to" + + + + while True: + next = raw_input("> ") + + if next == "A": + c_room() + elif next == "B": + d_room() + else: + death("You were eaten by all the zombies around you") + +def c_room(): + print "you have moved to the c room" + print "This is a final frontier before you are in the safe zone" + print "Altough everything depends on what decisions you make" + print "option A - you parkhour through the forest but risk stumbling and killing yourself" + print "option B - you go slow and take the long cut " + + + + + while True: + next = raw_input("> ") + + if next == "A": + start() + elif next == "B": + safe_house() + else: + death("You were eaten by all the zombies around you") + +def death(why): + print why, "Good job!" + exit(safe) + +def safe_house(): + + print "you have safely reached the safe house" + print "Thank you for playing" + + + exit(2) + +start () diff --git a/Python/add.py b/Python/add.py new file mode 100644 index 000000000..14ce1c58c --- /dev/null +++ b/Python/add.py @@ -0,0 +1,4 @@ +a = 5 +b = 3 +sum = a + b +print(sum) diff --git a/Python/add2nos.py b/Python/add2nos.py new file mode 100644 index 000000000..b2c1e61ac --- /dev/null +++ b/Python/add2nos.py @@ -0,0 +1,4 @@ +a,b=input().split() +a=int(a) +b=int(b) +print(a+b) \ No newline at end of file diff --git a/Python/add_mult_polynomial.py b/Python/add_mult_polynomial.py new file mode 100644 index 000000000..3d2bc3b3b --- /dev/null +++ b/Python/add_mult_polynomial.py @@ -0,0 +1,76 @@ +''' +Let us consider polynomials in a single variable x with integer coefficients: for instance, 3x4 - 17x2 - 3x + 5. Each term of the polynomial can be represented as a pair of integers (coefficient,exponent). The polynomial itself is then a list of such pairs. + +We have the following constraints to guarantee that each polynomial has a unique representation: + + Terms are sorted in descending order of exponent + No term has a zero cofficient + No two terms have the same exponent + Exponents are always nonnegative + +For example, the polynomial introduced earlier is represented as + + [(3,4),(-17,2),(-3,1),(5,0)] + +The zero polynomial, 0, is represented as the empty list [], since it has no terms with nonzero coefficients. + +Write Python functions for the following operations: + + + addpoly(p1,p2) + multpoly(p1,p2) + +that add and multiply two polynomials, respectively. + +You may assume that the inputs to these functions follow the representation given above. Correspondingly, the outputs from these functions should also obey the same constraints. + +Hint: You are not restricted to writing just the two functions asked for. You can write auxiliary functions to "clean up" polynomials – e.g., remove zero coefficient terms, combine like terms, sort by exponent etc. Build a library of functions that can be combined to achieve the desired format. + +You may also want to convert the list representation to a dictionary representation and manipulate the dictionary representation, and then convert back. + +Some examples: + + >>> addpoly([(4,3),(3,0)],[(-4,3),(2,1)]) + [(2, 1),(3, 0)] + +Explanation: (4x3 + 3) + (-4x3 + 2x) = 2x + 3 + + >>> addpoly([(2,1)],[(-2,1)]) + [] + +Explanation: 2x + (-2x) = 0 + + >>> multpoly([(1,1),(-1,0)],[(1,2),(1,1),(1,0)]) + [(1, 3),(-1, 0)] + +Explanation: (x - 1) * (x2 + x + 1) = x3 - 1 +''' + +def addpoly(e1, e2): + new_list = list() + for i in range(len(e1)): + swap = False + for j in range(len(e2)): + if e1[i][1] == e2[j][1]: + swap = True + if e1[i][0] + e2[j][0] != 0: + new_list.append((e1[i][0] + e2[j][0], e1[i][1])) + e2.pop(j) + break + if swap == False: + new_list.append((e1[i][0], e1[i][1])) + new_list = new_list + e2 + new_list = sorted(new_list, key=lambda tup: tup[1], reverse=True) + return new_list + + +def multpoly(e1, e2): + new_list = list() + new_list1 = list() + new_list2 = list() + new_list.append(new_list1) + new_list.append(new_list2) + for i in range(len(e1)): + for j in range(len(e2)): + new_list[i].append((e1[i][0] * e2[j][0], e1[i][1] + e2[j][1])) + return addpoly(new_list[0], new_list[1]) \ No newline at end of file diff --git a/Python/aniket965.py b/Python/aniket965.py new file mode 100644 index 000000000..86a235083 --- /dev/null +++ b/Python/aniket965.py @@ -0,0 +1,2 @@ + +print("Hello world !") diff --git a/Python/armstrong_number.py b/Python/armstrong_number.py new file mode 100644 index 000000000..1efa793f8 --- /dev/null +++ b/Python/armstrong_number.py @@ -0,0 +1,15 @@ +def isArmstrong(num): + copynum = num + total = 0 + while(num>0): + digit = num%10 + total = total + (digit ** 3) + num = num // 10 + if total == copynum: + return True + else: + return False + + +user_input = int(input("Enter a number: ")) +print(isArmstrong(user_input)) \ No newline at end of file diff --git a/Python/average_grades_finder.py b/Python/average_grades_finder.py new file mode 100644 index 000000000..25447c215 --- /dev/null +++ b/Python/average_grades_finder.py @@ -0,0 +1,140 @@ +#Question: + +''' +The academic office at the Hogwarts School of Witchcraft and Wizardry has compiled data about students' grades. The data is provided as text from standard input in three parts: information about courses, information about students and information about grades. Each part has a specific line format, described below.. + + 1. Information about courses + 2. Line format: Course Code~Course Name~Semester~Year~Instructor + 3. Information about students + 4. Line format: Roll Number~Full Name + 5. Information about grades + 6. Line format: Course Code~Semester~Year~Roll Number~Grade + +The possible grades are A, AB, B, BC, C, CD, D with corresponding grade points 10, 9, 8, 7, 6, 5 and 4. The grade point average of a student is the sum of his/her grade points divided by the number of courses. For instance, if a student has taken two courses with grades A and C, the grade point average is 8 = (10+6)÷2. If a student has not completed any courses, the grade point average is defined to be 0. + +You may assume that the data is internally consistent. For every grade, there is a corresponding course code and roll number in the input data. + +Each section of the input starts with a line containing a single keyword. The first section begins with a line containing Courses. The second section begins with a line containing Students. The third section begins with a line containing Grades. The end of the input is marked by a line containing EndOfInput. + +Write a Python program to read the data as described above and print out a line listing the grade point average for each student in the following format: + +Roll Number~Full Name~Grade Point Average + +Your output should be sorted by Roll Number. The grade point average should be rounded off to 2 digits after the decimal point. Use the built-in function round(). + +Here is a sample input and its corresponding output. + +Sample Input + +Courses +TRAN~Transfiguration~1~2011-2012~Minerva McGonagall +CHAR~Charms~1~2011-2012~Filius Flitwick +Students +SLY2301~Hannah Abbott +SLY2302~Euan Abercrombie +SLY2303~Stewart Ackerley +SLY2304~Bertram Aubrey +SLY2305~Avery +SLY2306~Malcolm Baddock +SLY2307~Marcus Belby +SLY2308~Katie Bell +SLY2309~Sirius Orion Black +Grades +TRAN~1~2011-2012~SLY2301~AB +TRAN~1~2011-2012~SLY2302~B +TRAN~1~2011-2012~SLY2303~B +TRAN~1~2011-2012~SLY2305~A +TRAN~1~2011-2012~SLY2306~BC +TRAN~1~2011-2012~SLY2308~A +TRAN~1~2011-2012~SLY2309~AB +CHAR~1~2011-2012~SLY2301~A +CHAR~1~2011-2012~SLY2302~BC +CHAR~1~2011-2012~SLY2303~B +CHAR~1~2011-2012~SLY2305~BC +CHAR~1~2011-2012~SLY2306~C +CHAR~1~2011-2012~SLY2307~B +CHAR~1~2011-2012~SLY2308~AB +EndOfInput + +Sample Output + +SLY2301~Hannah Abbott~9.5 +SLY2302~Euan Abercrombie~7.5 +SLY2303~Stewart Ackerley~8.0 +SLY2304~Bertram Aubrey~0 +SLY2305~Avery~8.5 +SLY2306~Malcolm Baddock~6.5 +SLY2307~Marcus Belby~8.0 +SLY2308~Katie Bell~9.5 +SLY2309~Sirius Orion Black~9.0''' + +#program +def grades(x): + return { + 'A':10, + 'AB':9, + 'B':8, + 'BC':7, + 'C':6, + 'CD':5, + 'D':4 + }.get(x,0) + +def count_ascii(s): + sum = 0 + for i in range(len(s)): + sum = sum + ord(s[i]) + return sum + +def find_grades(): + lines = [] + while True: + line = input() + if line: + lines.append(line) + if line == 'EndOfInput': + break + else: + break + return find_grades1(lines) + +def find_grades1(s): + sorted_roll_dict = {} + final_list = [] + + students = find_students(s.index('Students'), s) + grade = find_grade(s.index('Grades'), s) + sorted_roll = list(students.keys()) + + for i in range(len(sorted_roll)): + sorted_roll_dict[sorted_roll[i]] = count_ascii(sorted_roll[i]) + sorted_roll_dict = sorted(sorted_roll_dict.items(), key=lambda x: x[0]) + for i in range(len(sorted_roll_dict)): + if students.__contains__(sorted_roll_dict[i][0]) and grade.__contains__(sorted_roll_dict[i][0]): + final_list.append('{}~{}~{}'.format(sorted_roll_dict[i][0], students[sorted_roll_dict[i][0]], grade[sorted_roll_dict[i][0]])) + else: + final_list.append('{}~{}~{}'.format(sorted_roll_dict[i][0], students[sorted_roll_dict[i][0]], 0)) + return '\n'.join(final_list) + +def find_students(index, s): + dict1 = {} + for i in range(index+1, s.index('Grades')): + dict1[s[i].split('~')[0]] = s[i].split('~')[1] + return dict1 + +def find_grade(index, s): + dic1 = {} + repeated_rollnos = [] + for i in range(index+1, len(s)-1): + repeated_rollnos.append(s[i].split('~')[-2]) + if dic1.__contains__(s[i].split('~')[-2]): + dic1[s[i].split('~')[-2]] = (dic1[s[i].split('~')[-2]] +grades(s[i].split('~')[-1])) + else: + dic1[s[i].split('~')[-2]] = round(grades(s[i].split('~')[-1])/1, 2) + + roll_nos = list(dic1.keys()) + + for j in range(len(roll_nos)): + dic1[roll_nos[j]] = round(dic1[roll_nos[j]]/repeated_rollnos.count(roll_nos[j]), 2) + + return dic1 \ No newline at end of file diff --git a/Python/balanced-brackets.py b/Python/balanced-brackets.py new file mode 100644 index 000000000..74cc3ffe5 --- /dev/null +++ b/Python/balanced-brackets.py @@ -0,0 +1,21 @@ +PAIRINGS = { + '(': ')', + '{': '}', + '[': ']' +} + + +def is_balanced(symbols): + stack = [] + for s in symbols: + if s in PAIRINGS.keys(): + stack.append(s) + else: + try: + expected_opening_symbol = stack.pop() + except IndexError: # too many closing symbols + return False + if s != PAIRINGS[expected_opening_symbol]: # mismatch + return False + return len(stack) == 0 # false if too many opening symbols + diff --git a/Python/bracket_finder.py b/Python/bracket_finder.py new file mode 100644 index 000000000..359b7161f --- /dev/null +++ b/Python/bracket_finder.py @@ -0,0 +1,23 @@ +''' +Write a function matched(s) that takes as input a string s and checks if the brackets "(" and ")" in s are matched: that is, every "(" has a matching ")" after it and every ")" has a matching "(" before it. Your function should ignore all other symbols that appear in s. Your function should return True if s has matched brackets and False if it does not. + +Here are some examples to show how your function should work. + +>>> matched("a)*(?") + False +>>> matched("((jkl)78(A)&l(8(dd(FJI:),):)?)") + True +''' + + +def matched(s): + charlist = [] + for char in s: + if char == '(': + charlist = charlist + [char] + elif char == ')': + if len(charlist) == 0: + return 'False' + else: + charlist.pop() + return len(charlist) == 0 \ No newline at end of file diff --git a/Python/calculator b/Python/calculator new file mode 100644 index 000000000..7ff57e381 --- /dev/null +++ b/Python/calculator @@ -0,0 +1,102 @@ +from tkinter import* + +def btnClick(numbers): + global operator + operator = operator +str(numbers) + text_input.set (operator) + +def btnAC(): + global operator + operator=" " + text_input.set(" ") + + +def btnEquals(): + global operator + sumup=str(eval(operator)) + text_input.set(sumup) + + def btnBack(): + global operator + +cal =Tk() +cal.title ("calculator") +operator=" " +text_input =StringVar() + +textDisplay = Entry(cal,font=('helvetica',20,'bold'),textvariable =text_input, + bd=30,insertwidth=5,bg='blue',justify='right').grid(columnspan=4) + +btn7 = Button (cal,padx=16,pady=16,bd=8,fg="red",font=('helvetica',20,'bold'),text="7",command=lambda:btnClick(7)).grid (row = 1 , column = 0) + + + +btn8 = Button (cal,padx=16,pady=16,bd=8,fg="red",font=('helvetica',20,'bold'),text="8",command=lambda:btnClick(8)).grid (row = 1 , column = 1) + + +btn9 = Button (cal,padx=16,pady=16,bd=8,fg="red",font=('helvetica',20,'bold'),text="9",command=lambda:btnClick(9)).grid (row = 1 , column = 2) + +btnadd = Button (cal,padx=16,pady=16,bd=8,fg="red",font=('helvetica',20,'bold'),text="+",command=lambda:btnClick("+")).grid (row = 1 , column =3 ) + + + + +btn4 = Button (cal,padx=16,pady=16,bd=8,fg="red",font=('helvetica',20,'bold'),text="4",command=lambda:btnClick(4)).grid (row = 2 , column = 0) + + + +btn5 = Button (cal,padx=16,pady=16,bd=8,fg="red",font=('helvetica',20,'bold'),text="5",command=lambda:btnClick(5)).grid (row = 2 , column = 1) + + +btn6 = Button (cal,padx=16,pady=16,bd=8,fg="red",font=('helvetica',20,'bold'),text="6",command=lambda:btnClick(6)).grid (row = 2 , column = 2) + +btn_sub= Button (cal,padx=16,pady=16,bd=8,fg="red",font=('helvetica',20,'bold'),text="-",command=lambda:btnClick("-")).grid (row = 2, column =3 ) + + + + + +btn1 = Button (cal,padx=16,pady=16,bd=8,fg="red",font=('helvetica',20,'bold'),text="1",command=lambda:btnClick(1)).grid (row = 3 , column = 0) + + + +btn2 = Button (cal,padx=16,pady=16,bd=8,fg="red",font=('helvetica',20,'bold'),text="2",command=lambda:btnClick(2)).grid (row = 3 , column = 1) + + +btn3 = Button (cal,padx=16,pady=16,bd=8,fg="red",font=('helvetica',20,'bold'),text="3",command=lambda:btnClick(3)).grid (row = 3 , column = 2) + +btn_mul = Button (cal,padx=16,pady=16,bd=8,fg="red",font=('helvetica',20,'bold'),text="*",command=lambda:btnClick("*")).grid (row = 3 , column =3 ) + + + + + + +btn0 = Button (cal,padx=16,pady=16,bd=8,fg="red",font=('helvetica',20,'bold'),text="0",command=lambda:btnClick(0)).grid (row = 4, column = 0) + + + +btn_dot = Button (cal,padx=16,pady=16,bd=8,fg="red",font=('helvetica',20,'bold'),text=".",command=lambda:btnClick(".")).grid (row = 4 , column = 1) + + +btn_equal= Button (cal,padx=16,pady=16,bd=8,fg="red",font=('helvetica',20,'bold'),text="=",command=btnEquals).grid (row = 4, column = 2) + +btn_div = Button (cal,padx=16,pady=16,bd=8,fg="red",font=('helvetica',20,'bold'),text="/",command=lambda:btnClick("/")).grid (row = 4, column =3 ) + + + +btn_AC = Button (cal,padx=16,pady=16,bd=8,fg="red",font=('helvetica',20,'bold'),text="AC",command=btnAC).grid (row = 5 , column = 0) + + + +btn_back = Button (cal,padx=10,pady=16,bd=8,fg="red",font=('helvetica',20,'bold'),text="back").grid (row = 5 , column = 1) + + +btn_mod = Button (cal,padx=16,pady=16,bd=8,fg="red",font=('helvetica',20,'bold'),text="%",command=lambda:btnClick("%")).grid (row = 5, column = 2) + +btn_clear= Button (cal,padx=16,pady=16,bd=8,fg="red",font=('helvetica',20,'bold'),text="C",command=btnAC).grid (row = 5 , column =3 ) + + + +cal.mainloop() + diff --git a/Python/calculator-asmd.py b/Python/calculator-asmd.py new file mode 100644 index 000000000..bc816aa25 --- /dev/null +++ b/Python/calculator-asmd.py @@ -0,0 +1,43 @@ +# Program make a simple calculator that can add, subtract, multiply and divide using functions + +# This function adds two numbers +def add(x, y): + return x + y + +# This function subtracts two numbers +def subtract(x, y): + return x - y + +# This function multiplies two numbers +def multiply(x, y): + return x * y + +# This function divides two numbers +def divide(x, y): + return x / y + +print("Select operation.") +print("1.Add") +print("2.Subtract") +print("3.Multiply") +print("4.Divide") + +# Take input from the user +choice = input("Enter choice(1/2/3/4):") + +num1 = int(input("Enter first number: ")) +num2 = int(input("Enter second number: ")) + +if choice == '1': + print(num1,"+",num2,"=", add(num1,num2)) + +elif choice == '2': + print(num1,"-",num2,"=", subtract(num1,num2)) + +elif choice == '3': + print(num1,"*",num2,"=", multiply(num1,num2)) + +elif choice == '4': + print(num1,"/",num2,"=", divide(num1,num2)) +else: + print("Invalid input") diff --git a/Python/decimal_to_base.py b/Python/decimal_to_base.py new file mode 100644 index 000000000..3fc4558a7 --- /dev/null +++ b/Python/decimal_to_base.py @@ -0,0 +1,27 @@ + +def decimal_to_base(n, base): + """Convert decimal number to any base (2-16)""" + + chars = "0123456789ABCDEF" + stack = [] + is_negative = False + + if n < 0: + n = abs(n) + is_negative = True + + while n > 0: + remainder = n % base + stack.append(remainder) + n = n // base + + result = "" + + while stack: + result = result + chars[stack.pop()] + + if is_negative: + return "-"+result + else: + return result + diff --git a/Python/decisiontree b/Python/decisiontree new file mode 100644 index 000000000..70dcf62e6 --- /dev/null +++ b/Python/decisiontree @@ -0,0 +1 @@ +this commmand is based on decision tree diff --git a/Python/dijkstra's_algorithm.py b/Python/dijkstra's_algorithm.py new file mode 100644 index 000000000..855922002 --- /dev/null +++ b/Python/dijkstra's_algorithm.py @@ -0,0 +1,76 @@ +import sys + +class Graph(): + + def __init__(self, vertices): + self.V = vertices + self.graph = [[0 for column in range(vertices)] + for row in range(vertices)] + + def printSolution(self, dist): + print "Vertex tDistance from Source" + for node in range(self.V): + print node,"t",dist[node] + + # A utility function to find the vertex with + # minimum distance value, from the set of vertices + # not yet included in shortest path tree + def minDistance(self, dist, sptSet): + + # Initilaize minimum distance for next node + min = sys.maxint + + # Search not nearest vertex not in the + # shortest path tree + for v in range(self.V): + if dist[v] < min and sptSet[v] == False: + min = dist[v] + min_index = v + + return min_index + + # Funtion that implements Dijkstra's single source + # shortest path algorithm for a graph represented + # using adjacency matrix representation + def dijkstra(self, src): + + dist = [sys.maxint] * self.V + dist[src] = 0 + sptSet = [False] * self.V + + for cout in range(self.V): + + # Pick the minimum distance vertex from + # the set of vertices not yet processed. + # u is always equal to src in first iteration + u = self.minDistance(dist, sptSet) + + # Put the minimum distance vertex in the + # shotest path tree + sptSet[u] = True + + # Update dist value of the adjacent vertices + # of the picked vertex only if the current + # distance is greater than new distance and + # the vertex in not in the shotest path tree + for v in range(self.V): + if self.graph[u][v] > 0 and sptSet[v] == False and + dist[v] > dist[u] + self.graph[u][v]: + dist[v] = dist[u] + self.graph[u][v] + + self.printSolution(dist) + +# Driver program +g = Graph(9) +g.graph = [[0, 4, 0, 0, 0, 0, 0, 8, 0], + [4, 0, 8, 0, 0, 0, 0, 11, 0], + [0, 8, 0, 7, 0, 4, 0, 0, 2], + [0, 0, 7, 0, 9, 14, 0, 0, 0], + [0, 0, 0, 9, 0, 10, 0, 0, 0], + [0, 0, 4, 14, 10, 0, 2, 0, 0], + [0, 0, 0, 0, 0, 2, 0, 1, 6], + [8, 11, 0, 0, 0, 0, 1, 0, 7], + [0, 0, 2, 0, 0, 0, 6, 7, 0] + ]; + +g.dijkstra(0); \ No newline at end of file diff --git a/Python/email_regex.py b/Python/email_regex.py new file mode 100644 index 000000000..f14256228 --- /dev/null +++ b/Python/email_regex.py @@ -0,0 +1,6 @@ +# cook your dish here +import re +s=input("Write a text to find email addresses from them :\n") +my_list=re.findall("[a-zA-Z0-9\.\_\-]+[@]\w+[.][com|org|in|edu]+",s) +for i,j in enumerate(my_list): + print(f"{i+1} : {j}") diff --git a/Python/factorial.py b/Python/factorial.py new file mode 100644 index 000000000..b8db3ae21 --- /dev/null +++ b/Python/factorial.py @@ -0,0 +1,6 @@ +n=int(input()) +fact=1 +for i in range(1,n+1): + fact = fact*i +print("the factorial of no is :",end="") +print(fact) \ No newline at end of file diff --git a/Python/fibonacci_with_cache.py b/Python/fibonacci_with_cache.py new file mode 100644 index 000000000..a29b1e340 --- /dev/null +++ b/Python/fibonacci_with_cache.py @@ -0,0 +1,8 @@ +cache = {0:0, 1:1} + +def fibonacci(n): + if n in cache: + return cache[n] + else: + cache[n] = fibonacci(n-1) + fibonacci(n-2) + return cache[n] diff --git a/Python/floyd_warshall.py b/Python/floyd_warshall.py new file mode 100644 index 000000000..ef4476c4e --- /dev/null +++ b/Python/floyd_warshall.py @@ -0,0 +1,79 @@ +# Python Program for Floyd Warshall Algorithm + +# Number of vertices in the graph +V = 4 + +# Define infinity as the large enough value. This value will be +# used for vertices not connected to each other +INF = 99999 + +# Solves all pair shortest path via Floyd Warshall Algorithm +def floydWarshall(graph): + + """ dist[][] will be the output matrix that will finally + have the shortest distances between every pair of vertices """ + """ initializing the solution matrix same as input graph matrix + OR we can say that the initial values of shortest distances + are based on shortest paths considering no + intermediate vertices """ + dist = map(lambda i : map(lambda j : j , i) , graph) + + """ Add all vertices one by one to the set of intermediate + vertices. + ---> Before start of an iteration, we have shortest distances + between all pairs of vertices such that the shortest + distances consider only the vertices in the set + {0, 1, 2, .. k-1} as intermediate vertices. + ----> After the end of a iteration, vertex no. k is + added to the set of intermediate vertices and the + set becomes {0, 1, 2, .. k} + """ + for k in range(V): + + # pick all vertices as source one by one + for i in range(V): + + # Pick all vertices as destination for the + # above picked source + for j in range(V): + + # If vertex k is on the shortest path from + # i to j, then update the value of dist[i][j] + dist[i][j] = min(dist[i][j] , + dist[i][k]+ dist[k][j] + ) + printSolution(dist) + + +# A utility function to print the solution +def printSolution(dist): + print "Following matrix shows the shortest distances between every pair of vertices" + for i in range(V): + for j in range(V): + if(dist[i][j] == INF): + print "%7s" %("INF"), + else: + print "%7d\t" %(dist[i][j]), + if j == V-1: + print "" + + + +# Driver program to test the above program +# Let us create the following weighted graph +""" + 10 + (0)------->(3) + | /|\ + 5 | | + | | 1 + \|/ | + (1)------->(2) + 3 """ +graph = [[0,5,INF,10], + [INF,0,3,INF], + [INF, INF, 0, 1], + [INF, INF, INF, 0] + ] +# Print the solution +floydWarshall(graph); \ No newline at end of file diff --git a/Python/for_pattern.py b/Python/for_pattern.py new file mode 100644 index 000000000..e257be059 --- /dev/null +++ b/Python/for_pattern.py @@ -0,0 +1,4 @@ +for i in range (5) : + for j in range (i) : + print(i,end=' ') + print("\n") diff --git a/Python/funny_Hello.py b/Python/funny_Hello.py new file mode 100644 index 000000000..389142be2 --- /dev/null +++ b/Python/funny_Hello.py @@ -0,0 +1,7 @@ +# Join method explained "".join(list) +# String multiplication explained "l"*2 +# String concat explained str + str + +he = ''.join(["H","e","l"*2,"o"]) +wo = ''.join(["W","o","r","l","d"]) +print(he + " " + wo) \ No newline at end of file diff --git a/Python/geometric-cube-dimensions.py b/Python/geometric-cube-dimensions.py new file mode 100644 index 000000000..5a29fa601 --- /dev/null +++ b/Python/geometric-cube-dimensions.py @@ -0,0 +1,49 @@ +# Making Turner Cube Calculations using 2 methods to gather user input then calculate the rest of the parameters + +from math import sqrt + + +class TurnerCube: + + def __init__(self, largest_cube=0.0, layers=0): + self.largest_cube = largest_cube + self.layers = layers + + def layer_count(self, total_layers): + self.layers += total_layers + return self.layers + + +# Input largest cube size +# let ci represent 'cube instance' meaning the cube being defined by the user + +ci = TurnerCube(float(input('What size do you want the largest cube to be:'))) + +# Input the total number of layers +ci.layer_count(int(input('How many total layers do you want:'))) + +# Storing size diff = largest cube/ smallest cube with 3 decimal place rounding float +size_diff = float(("%.3f" % (ci.largest_cube / ci.layers))) +print('The size difference between each cube will be:', size_diff, 'inches') + +# defining equations relying on once the largest_cube, layers and size_diff have been defined +middle_cube = float(("%.3f" % (ci.largest_cube - size_diff))) +smallest_cube = float(("%.3f" % (middle_cube - size_diff))) +print('Cube sizes in descending order:', ci.largest_cube, middle_cube, smallest_cube) + +# Defining the Corner to Corner Cube Distances + +ccd_middle = float("%.3f" % (sqrt(middle_cube ** 2 + middle_cube ** 2))) +ccd_smallest = float("%.3f" % (sqrt(smallest_cube ** 2 + smallest_cube ** 2))) +print("The corner to corner distance has to have the following relationship\n") +print("undercut > corner to corner distance > bore diameter") +print(ccd_middle, ccd_smallest) + +# Defining Bore depth + +print("To find the Depth of the bores take:\n ") +print("((largest cube - (size of cube you are boring to) / 2)") +middlecube_bd = ("%.3f" % ((ci.largest_cube - middle_cube) / 2)) +smallestcube_bd = ("%.3f" % ((ci.largest_cube - smallest_cube) / 2)) + +print(middlecube_bd, smallestcube_bd) diff --git a/Python/gitlherme-hello-world.py b/Python/gitlherme-hello-world.py new file mode 100644 index 000000000..535277476 --- /dev/null +++ b/Python/gitlherme-hello-world.py @@ -0,0 +1 @@ +print("Hello World") diff --git a/Python/greatest_common_divisor.py b/Python/greatest_common_divisor.py new file mode 100644 index 000000000..1fc8ecb32 --- /dev/null +++ b/Python/greatest_common_divisor.py @@ -0,0 +1,9 @@ +def gcd(m, n): + cf = 1 + if m > n: + cf = gcd(n, m) + else: + for i in range(1, m+1): + if m % i == 0 and n % i == 0: + cf = i + return cf \ No newline at end of file diff --git a/Python/guess.py b/Python/guess.py new file mode 100644 index 000000000..14f503999 --- /dev/null +++ b/Python/guess.py @@ -0,0 +1,23 @@ +import random + +ran=random.randint(1,10) +response =None + +while True: + response =int(input("guess a number between 1 and 10")) + if response>ran: + print("too high ,guess again") + elif response maxcount: + maxcount = count + result = char + 1 + else: + count = 0 + startposition = result - maxcount + return startposition, result + + +# parent string +s = 'azbeggaklbeggh' + +# longest substring starting and ending indexes +start, end = longest_substr(s) + +print('Longest substring in alphabetical order is:', + s[start:end + 1]) diff --git a/Python/manav.py b/Python/manav.py new file mode 100644 index 000000000..9a8bfb293 --- /dev/null +++ b/Python/manav.py @@ -0,0 +1,6 @@ +a = 2 +b = 3 + +sum = a + b + +print (sum) diff --git a/Python/nc-responder.py b/Python/nc-responder.py new file mode 100644 index 000000000..9cb34d608 --- /dev/null +++ b/Python/nc-responder.py @@ -0,0 +1,42 @@ +from pwn import * +import re +import binascii +# connect to host +URL = 'ctf.example.com' +r = remote(URL, 1337) +# receive data +data = r.recv() + +def binary_data_to_word(data): + bin_word = get_binary_from_string(data) + # convert 0b110110 (example binary) to word + word = binascii.unhexlify('%x' % int(bin_word, 2)) + return word + +def hex_data_to_word(data): + hex_string = get_hex_from_string(data) + return hex_string.decode('hex') + +def get_binary_from_string(string): + # get all numbers from 3 digits + extracted = re.findall('(\d{3,})', data) + # merge all numbers to string + bin_word = '0b' + ''.join(extracted) + return bin_word + +def get_hex_from_string(string): + # get all numbers from 3 digits + extracted = re.search('the (\w+) '[0], data).group(1) + print('extracted {}', extracted) + return extracted +print(binary_data_to_word('cPlease give me the 01100011 01100001 01101011 01100101 as a word.')) +word = binary_data_to_word(data) +print('[+] Sending {} to the server'.format(word)) +r.send(word + '\n') +response = r.recv() +print('[+] Got response from server {}'.format(word)) +word = hex_data_to_word(response) +print('[+] Sending {} to the server'.format(word)) +r.send(word + '\n') +resporse = r.recv() +print('[+] Got response from server {}'.format(word)) diff --git a/Python/number_guessing.py b/Python/number_guessing.py new file mode 100644 index 000000000..aaea43981 --- /dev/null +++ b/Python/number_guessing.py @@ -0,0 +1,33 @@ +import random + +print("Welcome to the Guessing game!") +print("The computer has generated a number between 1&100 that you must guess.") + + +tries = 1 +randomnumber = random.randrange(0,101) #Generating random number +print("Enter a guess:") +while True: +try: + guess = int(input("")) #Takes user's guess +except ValueError: + print("Try entering a valid number.") + continue + + +if guess == randomnumber: #user gets correct + print("You have correctly guessed the number. It was {} and it took you {} tries.".format(randomnumber, tries)) + + yn = input("Would you like to play again? (yes/no)").lower() #Asks user if they want to reply. + if yn == "yes": + main() + else: + print("Goodbye!") + break + +elif guess > randomnumber: #user's guess is bigger than the generated number + print("Lower\n") + tries = tries+1 +elif guess < randomnumber: #users guess is smaller than the generated number + print("Higher\n") + tries = tries+1 diff --git a/Python/quick_sort.py b/Python/quick_sort.py new file mode 100644 index 000000000..ea1ad6da7 --- /dev/null +++ b/Python/quick_sort.py @@ -0,0 +1,32 @@ +def partition(a, low, high): + piviot = a[high] + i = low - 1 + for j in range(low, high): + if a[j] <= piviot: + i += 1 + a[j], a[i] = a[i], a[j] + + a[i+1], a[high] = a[high], a[i+1] + + return i + 1 + + +def quick_sort(a, low, high): + if low < high: + pi = partition(a, low, high) + quick_sort(a, low, pi-1) + quick_sort(a, pi+1, high) + + +le = int(input("Enter the length of the array:")) +arr = [] + +for p in range(le): + q = int(input()) + arr.append(q) + +quick_sort(arr, 0, le - 1) + +print("sorted array") +for t in range(le): + print(arr[t]) diff --git a/Python/rockpaperscissors.py b/Python/rockpaperscissors.py new file mode 100644 index 000000000..2b53342c2 --- /dev/null +++ b/Python/rockpaperscissors.py @@ -0,0 +1,83 @@ +# Simple console rock paper scissors game, +# If you want to play it you can paste this code to a site like +# https://www.onlinegdb.com/online_python_compiler + +import random +from time import sleep + +choices = [ + 'rock', + 'paper', + 'scissors', +] + +def get_input(): + valid = False + while valid == False: + global player_choice + player_choice = str(input('Rock paper or scissors?: ')).lower() + if player_choice == 'rock' or player_choice == "paper" or player_choice == "scissors": + valid = True + else: + print('Please choose a valid option. Rock, paper and scissors only') + +def again(): + sleep(0.5) + again = str(input("Do you want to play again (y/n) ?: ")) + if again == 'y': + get_result() + elif again == 'n': + return + else: + print("You can only respon with 'y' or 'n'") + +def loss(): + msg = """ + You lost. + The computer chose {} + """ + print(msg.format(computer_choice)) + again() +def win(): + msg = """ + You won! + The computer chose {} + """ + print(msg.format(computer_choice)) + again() +def draw(): + msg = """ + It's a draw. + The computer chose {} + """ + print(msg.format(computer_choice)) + again() + +def get_result(): + get_input() + global computer_choice + computer_choice = random.choice(choices) + if player_choice == 'rock': + if computer_choice == 'rock': + draw() + elif computer_choice == 'paper': + loss() + else: + win() + elif player_choice == 'paper': + if computer_choice == 'rock': + win() + elif computer_choice == 'paper': + draw() + else: + loss() + elif player_choice == 'scissors': + if computer_choice == 'rock': + loss() + elif computer_choice == 'paper': + win() + else: + draw() + +get_result() + diff --git a/Python/rockycamacho.py b/Python/rockycamacho.py new file mode 100644 index 000000000..8e235769c --- /dev/null +++ b/Python/rockycamacho.py @@ -0,0 +1 @@ +print("Hello World") \ No newline at end of file diff --git a/Python/rsa.py b/Python/rsa.py new file mode 100644 index 000000000..aa704e453 --- /dev/null +++ b/Python/rsa.py @@ -0,0 +1,106 @@ +import random + + +def gcd(a, b): + while b != 0: + a, b = b, a % b + return a + +''' +Euclid's extended algorithm for finding the multiplicative inverse of two numbers +''' +def multiplicative_inverse(e, phi): + d = 0 + x1 = 0 + x2 = 1 + y1 = 1 + temp_phi = phi + + while e > 0: + temp1 = temp_phi/e + temp2 = temp_phi - temp1 * e + temp_phi = e + e = temp2 + + x = x2- temp1* x1 + y = d - temp1 * y1 + + x2 = x1 + x1 = x + d = y1 + y1 = y + + if temp_phi == 1: + return d + phi + +''' +Tests to see if a number is prime. +''' +def is_prime(num): + if num == 2: + return True + if num < 2 or num % 2 == 0: + return False + for n in xrange(3, int(num**0.5)+2, 2): + if num % n == 0: + return False + return True +#Generate a RSA keypair with two prime numbers +def generate_keypair(p, q): + if not (is_prime(p) and is_prime(q)): + raise ValueError('Both numbers must be prime.') + elif p == q: + raise ValueError('p and q cannot be equal') + #n = pq + n = p * q + + #Phi is the totient of n + phi = (p-1) * (q-1) + + #Choose an integer e such that e and phi(n) are coprime + e = random.randrange(1, phi) + + #Use Euclid's Algorithm to verify that e and phi(n) are comprime + g = gcd(e, phi) + while g != 1: + e = random.randrange(1, phi) + g = gcd(e, phi) + + #Use Extended Euclid's Algorithm to generate the private key + d = multiplicative_inverse(e, phi) + + #Return public and private keypair + #Public key is (e, n) and private key is (d, n) + return ((e, n), (d, n)) +#Encrypt plain text with private key +def encrypt(privatekey, plaintext): + #Unpack the key into it's components + key, n = privatekey + #Convert each letter in the plaintext to numbers based on the character using a^b mod m + cipher = [(ord(char) ** key) % n for char in plaintext] + #Return the array of bytes + return cipher +#Decrypt ciphered text with public key +def decrypt(publicKey, ciphertext): + #Unpack the key into its components + key, n = publicKey + #Generate the plaintext based on the ciphertext and key using a^b mod m + plain = [chr((char ** key) % n) for char in ciphertext] + #Return the array of bytes as a string + return ''.join(plain) + + +if __name__ == '__main__': + print "RSA Encrypter/ Decrypter" + p = int(raw_input("Enter a prime number (17, 19, 23, etc): ")) + q = int(raw_input("Enter another prime number (Not one you entered above): ")) + print "Generating your public/private keypairs now . . ." + public, private = generate_keypair(p, q) + print "Your public key is ", public ," and your private key is ", private + message = raw_input("Enter a message to encrypt with your private key: ") + encrypted_msg = encrypt(private, message) + print "Your encrypted message is: " + print ''.join(map(lambda x: str(x), encrypted_msg)) + print "Decrypting message with public key ", public ," . . ." + print "Your message is:" + print decrypt(public, encrypted_msg) diff --git a/Python/separating_letters.py b/Python/separating_letters.py new file mode 100644 index 000000000..88bb0a5e6 --- /dev/null +++ b/Python/separating_letters.py @@ -0,0 +1,3 @@ +L1 = [] +L1.extend(input()) +print(L1) \ No newline at end of file diff --git a/Python/shell_sort.py b/Python/shell_sort.py new file mode 100644 index 000000000..9b4e27efd --- /dev/null +++ b/Python/shell_sort.py @@ -0,0 +1,35 @@ + +def shell_sort(arr): + """ + Fuction to sort using Shell Sort + . + :param arr: A list of element to sort + """ + + gap = int((len(arr)/2)) + while gap > 0: + for i in range(gap, len(arr)): + temp = arr[i] + j = i + while j >= gap and arr[j - gap] > temp: + arr[j] = arr[j-gap] + j -= gap + + arr[j] = temp + + gap /= 2 + gap = int(gap) + + return arr + + +def main(): + arr = [15, 12, 36, 63, 96] + sorted_arr = shell_sort(arr) + print('Sorted element using Shell Sort: {}'.format( + ' '.join(map(str, shell_sort(arr))))) + + +if __name__ == '__main__': + main() + diff --git a/Python/sum_prime.py b/Python/sum_prime.py new file mode 100644 index 000000000..85a3bf99b --- /dev/null +++ b/Python/sum_prime.py @@ -0,0 +1,23 @@ +''' +Write a function sumprimes(l) that takes as input a list of integers l and retuns the sum of all the prime numbers in l. + +Here are some examples to show how your function should work. + + >>> sumprimes([3,3,1,13]) + 19 +''' + +def sumprimes(l): + prime_sum = int() + for num in l: + if is_prime(num): + prime_sum = prime_sum + num + return prime_sum + + +def is_prime(n): + factor_list = [] + for num in range(2, n+1): + if n % num == 0: + factor_list = factor_list + [num] + return len(factor_list) == 1 \ No newline at end of file diff --git a/Python/validar_cpf.py b/Python/validar_cpf.py new file mode 100644 index 000000000..8af9edcae --- /dev/null +++ b/Python/validar_cpf.py @@ -0,0 +1,75 @@ +#!/usr/bin/env python + +""" +This program validates the CPF, unique set of 11 numbers used to identify a person in Brasil. This script validate it +Python3 compatibility. +""" +__author__ = "Matheus de Sousa Barros" +__license__ = "MIT" +__maintainer__ = "Matheus de Sousa Barros" +__github__ = "bmatheus91" + +import os + +def DV_maker(v): + if v >= 2: + return 11 - v + return 0 + + +def validate_cpf(): + """ + CPF e um conjunto de 11 digitos que passa pelo seguinte processo de validacao: + + 1 - Multiplica-se os 9 primeiros dígitos pela sequência decrescente de números + de 10 à 2 e soma os resultados. Depois multiplicarmos esse resultado por 10 + e dividirmos por 11. Se ele for igual ao primeiro dígito verificador + (primeiro dígito depois do '-'), a primeira parte da validação está correta. + + Obs: Se o resto da divisão for igual a 10, nós o consideramos como 0 + + 2 - Considera-se os 9 primeiros dígitos, mais o primeiro dígito verificador, e + multiplica-se esses 10 números pela sequencia decrescente de 11 a 2. Depois + multiplicarmos esse resultado por 10 e dividirmos por 11. Verifica-se, se o + resto corresponde ao segundo dígito verificador. + """ + + print('Digite um CPF para validar') + value = str(input()) + + if not value.isdigit(): + print('CPF deve conter apenas números.') + return False + + if len(value) != 11: + print('CPF deve ter 11 números.') + return False + + #Verifica CPFs do tipo 1111111111, 8888888888 + for n in range(0,10): + invalid_cpf = str(n) * 11 + if value == invalid_cpf: + print('Digite um CPF válido.') + return False + + #Primeira Validacao + v1 = sum( [ int(value[i]) * w for i, w in enumerate(range(10,1, -1))]) + mod1 = (v1 * 10) % 11 + dv1 = 0 if mod1 == 10 else mod1 + + if dv1 != int(value[-2]): + print('CPF inválido.', 'invalid') + return False + + #Segunda validacao + v2 = sum( [ int(value[i]) * w for i, w in enumerate(range(11,1, -1))]) + mod2 = (v2 * 10) % 11 + dv2 = 0 if mod2 == 10 else mod2 + + if dv2 != int(value[-1]): + print('CPF inválido.', 'invalid') + return False + + print('CPF Valido') + +validate_cpf() \ No newline at end of file diff --git a/Python/vipassna.py b/Python/vipassna.py new file mode 100644 index 000000000..abb6979aa --- /dev/null +++ b/Python/vipassna.py @@ -0,0 +1,4 @@ +x = 1 +if x == 1: + # indented four spaces + print("x is 1.") diff --git a/QuakeC/hello.qc b/QuakeC/hello.qc new file mode 100644 index 000000000..252202d77 --- /dev/null +++ b/QuakeC/hello.qc @@ -0,0 +1 @@ +bprint("Hello World\n"); diff --git a/QuickBASIC/HelloWorld.bas b/QuickBASIC/HelloWorld.bas new file mode 100644 index 000000000..fdfa918a0 --- /dev/null +++ b/QuickBASIC/HelloWorld.bas @@ -0,0 +1,3 @@ +CLS +PRINT "Hello World!" +END diff --git a/R/Hello-in-R.r b/R/Hello-in-R.r new file mode 100644 index 000000000..0cdd347d8 --- /dev/null +++ b/R/Hello-in-R.r @@ -0,0 +1,3 @@ +#Hello in R language + +print("Hello World") \ No newline at end of file diff --git a/R/HelloWorld b/R/HelloWorld new file mode 100644 index 000000000..52e712248 --- /dev/null +++ b/R/HelloWorld @@ -0,0 +1,4 @@ +a <- c("H", "e", "l", "l", "o") +b <- c("W", "o", "r", "l", "d") +c <- c(a, " ", b) +paste(c,collapse="") diff --git a/R/HelloWorld.R b/R/HelloWorld.R new file mode 100644 index 000000000..f301245e2 --- /dev/null +++ b/R/HelloWorld.R @@ -0,0 +1 @@ +print("Hello World!") diff --git a/R/HelloWorldPrintPaste.r b/R/HelloWorldPrintPaste.r new file mode 100644 index 000000000..867052394 --- /dev/null +++ b/R/HelloWorldPrintPaste.r @@ -0,0 +1,6 @@ +# We can use the print() function +print("Hello World!") +# Quotes can be suppressed in the output +print("Hello World!", quote = FALSE) +# If there are more than 1 item, we can concatenate using paste() +print(paste("Hello","World","!")) diff --git a/README.md b/README.md new file mode 100644 index 000000000..e98051a4a --- /dev/null +++ b/README.md @@ -0,0 +1,38 @@ +# Welcome to Hacktoberfest 2018 Hello-world :clipboard: +> This Project aims to help you to get started with using Github. You can find a tutorial [here](https://guides.github.com/activities/hello-world/) + + +![poster](https://user-images.githubusercontent.com/22680912/46479049-d8a9c400-c80b-11e8-92a1-89fc10701f4a.jpg) + + +# What is Hacktoberfest? +Hacktoberfest is a program by Digital Ocean and Github, where you can easily win a T-Shirt just by making 5 pull requests in the month of October to any open source projects on Github. + +## Steps to follow :scroll: + +### 1. Register for Hacktoberfest +You can register from [here](https://hacktoberfest.digitalocean.com). + +### 2. Fork it :fork_and_knife: + +You can get your own fork/copy of [Hello-world](https://github.com/Hacktoberfest-2018/Hello-world) by using the
Fork button or clicking [this](https://github.com/Hacktoberfest-2018/Hello-world/new/master?readme=1#fork-destination-box). + + [![Fork Button](https://help.github.com/assets/images/help/repository/fork_button.jpg)](https://github.com/Hacktoberfest-2018/Hello-world) + +### 3. Add a Program in any Language you like :rabbit2: +Once you have forked the repo, add your progam in the language folder in +main branch, if there is no language folder, make one, then add into it. + +### 4. Ready, Steady, Go... :turtle: :rabbit2: + +Once you have completed these steps, you are ready to start contributing +by checking our `Help Wanted` issues and creating [pull requests](https://github.com/Hacktoberfest-2018/Hello-world/pulls). + +### 5. Give this Project a Star :star: + +If you liked working on this project, please share this project as much +as you can and star this project to help as many people in opensource as you can. + + +:tada: :confetti_ball: :smiley: _**Happy Contributing**_ :smiley: :confetti_ball: :tada: + diff --git a/Racket/helloworld.rkt b/Racket/helloworld.rkt new file mode 100644 index 000000000..1709fa995 --- /dev/null +++ b/Racket/helloworld.rkt @@ -0,0 +1,2 @@ +#lang racket/base +(print "Hello, World!) \ No newline at end of file diff --git a/React-Native/helloWorld/.babelrc b/React-Native/helloWorld/.babelrc new file mode 100644 index 000000000..d4b74b5be --- /dev/null +++ b/React-Native/helloWorld/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["module:metro-react-native-babel-preset"] +} diff --git a/React-Native/helloWorld/.buckconfig b/React-Native/helloWorld/.buckconfig new file mode 100644 index 000000000..934256cb2 --- /dev/null +++ b/React-Native/helloWorld/.buckconfig @@ -0,0 +1,6 @@ + +[android] + target = Google Inc.:Google APIs:23 + +[maven_repositories] + central = https://repo1.maven.org/maven2 diff --git a/React-Native/helloWorld/.flowconfig b/React-Native/helloWorld/.flowconfig new file mode 100644 index 000000000..1043c82d7 --- /dev/null +++ b/React-Native/helloWorld/.flowconfig @@ -0,0 +1,70 @@ +[ignore] +; We fork some components by platform +.*/*[.]android.js + +; Ignore "BUCK" generated dirs +/\.buckd/ + +; Ignore unexpected extra "@providesModule" +.*/node_modules/.*/node_modules/fbjs/.* + +; Ignore duplicate module providers +; For RN Apps installed via npm, "Libraries" folder is inside +; "node_modules/react-native" but in the source repo it is in the root +.*/Libraries/react-native/React.js + +; Ignore polyfills +.*/Libraries/polyfills/.* + +; Ignore metro +.*/node_modules/metro/.* + +[include] + +[libs] +node_modules/react-native/Libraries/react-native/react-native-interface.js +node_modules/react-native/flow/ +node_modules/react-native/flow-github/ + +[options] +emoji=true + +esproposal.optional_chaining=enable +esproposal.nullish_coalescing=enable + +module.system=haste +module.system.haste.use_name_reducers=true +# get basename +module.system.haste.name_reducers='^.*/\([a-zA-Z0-9$_.-]+\.js\(\.flow\)?\)$' -> '\1' +# strip .js or .js.flow suffix +module.system.haste.name_reducers='^\(.*\)\.js\(\.flow\)?$' -> '\1' +# strip .ios suffix +module.system.haste.name_reducers='^\(.*\)\.ios$' -> '\1' +module.system.haste.name_reducers='^\(.*\)\.android$' -> '\1' +module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1' +module.system.haste.paths.blacklist=.*/__tests__/.* +module.system.haste.paths.blacklist=.*/__mocks__/.* +module.system.haste.paths.blacklist=/node_modules/react-native/Libraries/Animated/src/polyfills/.* +module.system.haste.paths.whitelist=/node_modules/react-native/Libraries/.* + +munge_underscores=true + +module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub' + +module.file_ext=.js +module.file_ext=.jsx +module.file_ext=.json +module.file_ext=.native.js + +suppress_type=$FlowIssue +suppress_type=$FlowFixMe +suppress_type=$FlowFixMeProps +suppress_type=$FlowFixMeState + +suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) +suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ +suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy +suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError + +[version] +^0.78.0 diff --git a/React-Native/helloWorld/.gitattributes b/React-Native/helloWorld/.gitattributes new file mode 100644 index 000000000..d42ff1835 --- /dev/null +++ b/React-Native/helloWorld/.gitattributes @@ -0,0 +1 @@ +*.pbxproj -text diff --git a/React-Native/helloWorld/.gitignore b/React-Native/helloWorld/.gitignore new file mode 100644 index 000000000..5d647565f --- /dev/null +++ b/React-Native/helloWorld/.gitignore @@ -0,0 +1,56 @@ +# OSX +# +.DS_Store + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate +project.xcworkspace + +# Android/IntelliJ +# +build/ +.idea +.gradle +local.properties +*.iml + +# node.js +# +node_modules/ +npm-debug.log +yarn-error.log + +# BUCK +buck-out/ +\.buckd/ +*.keystore + +# fastlane +# +# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the +# screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/ + +*/fastlane/report.xml +*/fastlane/Preview.html +*/fastlane/screenshots + +# Bundle artifact +*.jsbundle diff --git a/React-Native/helloWorld/.watchmanconfig b/React-Native/helloWorld/.watchmanconfig new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/React-Native/helloWorld/.watchmanconfig @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/React-Native/helloWorld/App.js b/React-Native/helloWorld/App.js new file mode 100644 index 000000000..d02e254b3 --- /dev/null +++ b/React-Native/helloWorld/App.js @@ -0,0 +1,47 @@ +/** + * Sample React Native App + * https://github.com/facebook/react-native + * + * @format + * @flow + */ + +import React, {Component} from 'react'; +import {Platform, StyleSheet, Text, View} from 'react-native'; + +const instructions = Platform.select({ + ios: 'Press Cmd+R to reload,\n' + 'Cmd+D or shake for dev menu', + android: + 'Double tap R on your keyboard to reload,\n' + + 'Shake or press menu button for dev menu', +}); + +type Props = {}; +export default class App extends Component { + render() { + return ( + + Hello World + + ); + } +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + justifyContent: 'center', + alignItems: 'center', + backgroundColor: '#F5FCFF', + }, + welcome: { + fontSize: 20, + textAlign: 'center', + margin: 10, + }, + instructions: { + textAlign: 'center', + color: '#333333', + marginBottom: 5, + }, +}); diff --git a/React-Native/helloWorld/android/app/BUCK b/React-Native/helloWorld/android/app/BUCK new file mode 100644 index 000000000..e2f125692 --- /dev/null +++ b/React-Native/helloWorld/android/app/BUCK @@ -0,0 +1,65 @@ +# To learn about Buck see [Docs](https://buckbuild.com/). +# To run your application with Buck: +# - install Buck +# - `npm start` - to start the packager +# - `cd android` +# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"` +# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck +# - `buck install -r android/app` - compile, install and run application +# + +lib_deps = [] + +for jarfile in glob(['libs/*.jar']): + name = 'jars__' + jarfile[jarfile.rindex('/') + 1: jarfile.rindex('.jar')] + lib_deps.append(':' + name) + prebuilt_jar( + name = name, + binary_jar = jarfile, + ) + +for aarfile in glob(['libs/*.aar']): + name = 'aars__' + aarfile[aarfile.rindex('/') + 1: aarfile.rindex('.aar')] + lib_deps.append(':' + name) + android_prebuilt_aar( + name = name, + aar = aarfile, + ) + +android_library( + name = "all-libs", + exported_deps = lib_deps, +) + +android_library( + name = "app-code", + srcs = glob([ + "src/main/java/**/*.java", + ]), + deps = [ + ":all-libs", + ":build_config", + ":res", + ], +) + +android_build_config( + name = "build_config", + package = "com.helloworld", +) + +android_resource( + name = "res", + package = "com.helloworld", + res = "src/main/res", +) + +android_binary( + name = "app", + keystore = "//android/keystores:debug", + manifest = "src/main/AndroidManifest.xml", + package_type = "debug", + deps = [ + ":app-code", + ], +) diff --git a/React-Native/helloWorld/android/app/build.gradle b/React-Native/helloWorld/android/app/build.gradle new file mode 100644 index 000000000..793eae821 --- /dev/null +++ b/React-Native/helloWorld/android/app/build.gradle @@ -0,0 +1,150 @@ +apply plugin: "com.android.application" + +import com.android.build.OutputFile + +/** + * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets + * and bundleReleaseJsAndAssets). + * These basically call `react-native bundle` with the correct arguments during the Android build + * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the + * bundle directly from the development server. Below you can see all the possible configurations + * and their defaults. If you decide to add a configuration block, make sure to add it before the + * `apply from: "../../node_modules/react-native/react.gradle"` line. + * + * project.ext.react = [ + * // the name of the generated asset file containing your JS bundle + * bundleAssetName: "index.android.bundle", + * + * // the entry file for bundle generation + * entryFile: "index.android.js", + * + * // whether to bundle JS and assets in debug mode + * bundleInDebug: false, + * + * // whether to bundle JS and assets in release mode + * bundleInRelease: true, + * + * // whether to bundle JS and assets in another build variant (if configured). + * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants + * // The configuration property can be in the following formats + * // 'bundleIn${productFlavor}${buildType}' + * // 'bundleIn${buildType}' + * // bundleInFreeDebug: true, + * // bundleInPaidRelease: true, + * // bundleInBeta: true, + * + * // whether to disable dev mode in custom build variants (by default only disabled in release) + * // for example: to disable dev mode in the staging build type (if configured) + * devDisabledInStaging: true, + * // The configuration property can be in the following formats + * // 'devDisabledIn${productFlavor}${buildType}' + * // 'devDisabledIn${buildType}' + * + * // the root of your project, i.e. where "package.json" lives + * root: "../../", + * + * // where to put the JS bundle asset in debug mode + * jsBundleDirDebug: "$buildDir/intermediates/assets/debug", + * + * // where to put the JS bundle asset in release mode + * jsBundleDirRelease: "$buildDir/intermediates/assets/release", + * + * // where to put drawable resources / React Native assets, e.g. the ones you use via + * // require('./image.png')), in debug mode + * resourcesDirDebug: "$buildDir/intermediates/res/merged/debug", + * + * // where to put drawable resources / React Native assets, e.g. the ones you use via + * // require('./image.png')), in release mode + * resourcesDirRelease: "$buildDir/intermediates/res/merged/release", + * + * // by default the gradle tasks are skipped if none of the JS files or assets change; this means + * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to + * // date; if you have any other folders that you want to ignore for performance reasons (gradle + * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/ + * // for example, you might want to remove it from here. + * inputExcludes: ["android/**", "ios/**"], + * + * // override which node gets called and with what additional arguments + * nodeExecutableAndArgs: ["node"], + * + * // supply additional arguments to the packager + * extraPackagerArgs: [] + * ] + */ + +project.ext.react = [ + entryFile: "index.js" +] + +apply from: "../../node_modules/react-native/react.gradle" + +/** + * Set this to true to create two separate APKs instead of one: + * - An APK that only works on ARM devices + * - An APK that only works on x86 devices + * The advantage is the size of the APK is reduced by about 4MB. + * Upload all the APKs to the Play Store and people will download + * the correct one based on the CPU architecture of their device. + */ +def enableSeparateBuildPerCPUArchitecture = false + +/** + * Run Proguard to shrink the Java bytecode in release builds. + */ +def enableProguardInReleaseBuilds = false + +android { + compileSdkVersion rootProject.ext.compileSdkVersion + buildToolsVersion rootProject.ext.buildToolsVersion + + defaultConfig { + applicationId "com.helloworld" + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + versionCode 1 + versionName "1.0" + ndk { + abiFilters "armeabi-v7a", "x86" + } + } + splits { + abi { + reset() + enable enableSeparateBuildPerCPUArchitecture + universalApk false // If true, also generate a universal APK + include "armeabi-v7a", "x86" + } + } + buildTypes { + release { + minifyEnabled enableProguardInReleaseBuilds + proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" + } + } + // applicationVariants are e.g. debug, release + applicationVariants.all { variant -> + variant.outputs.each { output -> + // For each separate APK per architecture, set a unique version code as described here: + // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits + def versionCodes = ["armeabi-v7a":1, "x86":2] + def abi = output.getFilter(OutputFile.ABI) + if (abi != null) { // null for the universal-debug, universal-release variants + output.versionCodeOverride = + versionCodes.get(abi) * 1048576 + defaultConfig.versionCode + } + } + } +} + +dependencies { + implementation fileTree(dir: "libs", include: ["*.jar"]) + implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}" + implementation "com.facebook.react:react-native:+" // From node_modules +} + +// Run this once to be able to run the application with BUCK +// puts all compile dependencies into folder libs for BUCK to use +task copyDownloadableDepsToLibs(type: Copy) { + from configurations.compile + into 'libs' +} diff --git a/React-Native/helloWorld/android/app/proguard-rules.pro b/React-Native/helloWorld/android/app/proguard-rules.pro new file mode 100644 index 000000000..a92fa177e --- /dev/null +++ b/React-Native/helloWorld/android/app/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/React-Native/helloWorld/android/app/src/main/AndroidManifest.xml b/React-Native/helloWorld/android/app/src/main/AndroidManifest.xml new file mode 100644 index 000000000..25d166dcc --- /dev/null +++ b/React-Native/helloWorld/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + diff --git a/React-Native/helloWorld/android/app/src/main/java/com/helloworld/MainActivity.java b/React-Native/helloWorld/android/app/src/main/java/com/helloworld/MainActivity.java new file mode 100644 index 000000000..b43df0919 --- /dev/null +++ b/React-Native/helloWorld/android/app/src/main/java/com/helloworld/MainActivity.java @@ -0,0 +1,15 @@ +package com.helloworld; + +import com.facebook.react.ReactActivity; + +public class MainActivity extends ReactActivity { + + /** + * Returns the name of the main component registered from JavaScript. + * This is used to schedule rendering of the component. + */ + @Override + protected String getMainComponentName() { + return "helloWorld"; + } +} diff --git a/React-Native/helloWorld/android/app/src/main/java/com/helloworld/MainApplication.java b/React-Native/helloWorld/android/app/src/main/java/com/helloworld/MainApplication.java new file mode 100644 index 000000000..8b5a7f97b --- /dev/null +++ b/React-Native/helloWorld/android/app/src/main/java/com/helloworld/MainApplication.java @@ -0,0 +1,45 @@ +package com.helloworld; + +import android.app.Application; + +import com.facebook.react.ReactApplication; +import com.facebook.react.ReactNativeHost; +import com.facebook.react.ReactPackage; +import com.facebook.react.shell.MainReactPackage; +import com.facebook.soloader.SoLoader; + +import java.util.Arrays; +import java.util.List; + +public class MainApplication extends Application implements ReactApplication { + + private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { + @Override + public boolean getUseDeveloperSupport() { + return BuildConfig.DEBUG; + } + + @Override + protected List getPackages() { + return Arrays.asList( + new MainReactPackage() + ); + } + + @Override + protected String getJSMainModuleName() { + return "index"; + } + }; + + @Override + public ReactNativeHost getReactNativeHost() { + return mReactNativeHost; + } + + @Override + public void onCreate() { + super.onCreate(); + SoLoader.init(this, /* native exopackage */ false); + } +} diff --git a/React-Native/helloWorld/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/React-Native/helloWorld/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..a2f5908281d070150700378b64a84c7db1f97aa1 GIT binary patch literal 3056 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 axPAxe%7rDusX+w*00006jj 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⁣ zwiG+x#%j}{0gU~J8;<|!B1@-XaB@{KORFwrYg_8rOv({b0EO#DbeQRm;B6_9=mXGf z-x|VL{zd`)#@yN}HkCSJbjbNlE|zL3Wm9Q8HY`sV)}3%pgN>cL^67{Z;PPL(*wT8N zUjXU{@|*hvm}({wsAC=x0^ok0%UAz0;sogW{B!nDqk|JJ5x~4NfTDgP49^zeu`csl?5mY@JdQdISc zFs!E{^grmkLnUk9 zny~m)1vws@5BFI<-0Tuo2JWX(0v`W|t(wg;s--L47WTvTMz-8l#TL^=OJNRS2?_Qj z3AKT+gvbyBi#H*-tJ%tWD|>EV3wy|8qxfzS!5RW;Jpl5*zo&^UBU=fG#2}UvRyNkK zA06Dy9;K1ca@r2T>yThYgI!ont$(G{6q#2QT+00r_x0(b)gsE`lBB?2gr55gq^D3Fi&p%E(p9>U%bv zkg1Jco(RbyTX7FDHOnl7-O@ zI$AaIl?9NJKPm(WiBP`1-#CB1QzU>&hKm)fpa5DKE{2$X0hGz-0uZ?cyTk(YC!Y&| zL=1VrNERSA5NA2jq7FACfX4JfPyj5XXl1yv0>~s;eF7L2$>&oMqeTFT2m$y7FlkON z_yurD1yIOvA;5C6016pyxBznGUt0kJ&k5r#;&>Jow`r)sp9R~PmK~lz$3xH%LT*1U zJdOyABZ3!FvNoR*vN$5ykHS8f`jA4zV+|L}i1C4`B2c{R0;UdYxaU|H)2avz@ z=mEYc|2S<+(B2Tj+FkX+2D+yFI!k9lWMA61DJ{)e;lum$(;O87?vGJJe!KtK04+N_ zI*P~t@dUb>9Xh{dbyl{-ZQ(UMgz7$|QfL5XSPkskt^NgctYC#;4WcZB1@%@wy@2t3 z2z0DI7&%b$*Aw~abe?GxE`ez@+6hOh-6*8fHRV{1os$EL@}uUZeG4h1&Be`98q*7j z=3-v+lhIjfWVo12!<>%V^a6lTgW3+_#W6n|p*~==zOH7z$0{LSZk(Tpd7EaD04hnA zL;#fxS0aD{`5^&D`}>0Uq?byDD-l2=!wm_bLcUl4gc(% za1p|itVANvFF>hghAS07Im1;IK;|b*W)}VDyI;BIp2=K*yu2a)j?B|f<44NI$NbmJ z#dE0>jI$fMr&@>4kN8MLFb4&2O9fEKaQg%(QO$4_1rVQywG^CmBLh#}_7gKW3vd?| z2?1^&KWq8}8I^_S0|)MowU_pw$q@nl@Nkn$z>BQq_KA^9yaR`(R3u{{Ig;cwt z@AJ^{ODQCm^neroM9nKNUAXi9RCK`OsP_LuR0PUR(YZCCX5dNF6VzcoK&=b^r`W?ltt|*F zpkoae%ZT{C1h~EcFui~b7fF`vb<<~j_VquuUA$}QqIKYELPp#;{u?q8Dz}WAG-(3; zjrm$i%7UbyZMM(Y{>!uJ#vNB?R~B{6Htp=>e*<{fQQ5W7V(1coCWlOON!MzZxhum| ztZBQpGR z;~#ur^&PockKdV{Q6R>o`Pl{0x!DEbpZ7y9Y;*ZvE!*gU`V1W3znva{f=?WO5I&>B z&hw6}tjECtaghm5z|C#%M;Yf_*pI^};h}Vl=^r9EN=tVDj86D;C$jIJ?K7VP+00000NkvXXu0mjf D5i!M* literal 0 HcmV?d00001 diff --git a/React-Native/helloWorld/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/React-Native/helloWorld/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..459ca609d3ae0d3943ab44cdc27feef9256dc6d7 GIT binary patch literal 7098 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 literal 0 HcmV?d00001 diff --git a/React-Native/helloWorld/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/React-Native/helloWorld/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..8ca12fe024be86e868d14e91120a6902f8e88ac6 GIT binary patch literal 6464 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 B0*L?s literal 0 HcmV?d00001 diff --git a/React-Native/helloWorld/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/React-Native/helloWorld/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..8e19b410a1b15ff180f3dacac19395fe3046cdec GIT binary patch literal 10676 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 literal 0 HcmV?d00001 diff --git a/React-Native/helloWorld/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/React-Native/helloWorld/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..4c19a13c239cb67b8a2134ddd5f325db1d2d5bee GIT binary patch literal 15523 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 BIP(Ai literal 0 HcmV?d00001 diff --git a/React-Native/helloWorld/android/app/src/main/res/values/strings.xml b/React-Native/helloWorld/android/app/src/main/res/values/strings.xml new file mode 100644 index 000000000..cf965e224 --- /dev/null +++ b/React-Native/helloWorld/android/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + helloWorld + diff --git a/React-Native/helloWorld/android/app/src/main/res/values/styles.xml b/React-Native/helloWorld/android/app/src/main/res/values/styles.xml new file mode 100644 index 000000000..319eb0ca1 --- /dev/null +++ b/React-Native/helloWorld/android/app/src/main/res/values/styles.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/React-Native/helloWorld/android/build.gradle b/React-Native/helloWorld/android/build.gradle new file mode 100644 index 000000000..85d8f2f81 --- /dev/null +++ b/React-Native/helloWorld/android/build.gradle @@ -0,0 +1,39 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + ext { + buildToolsVersion = "27.0.3" + minSdkVersion = 16 + compileSdkVersion = 27 + targetSdkVersion = 26 + supportLibVersion = "27.1.1" + } + repositories { + jcenter() + google() + } + dependencies { + classpath 'com.android.tools.build:gradle:3.1.4' + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + mavenLocal() + jcenter() + maven { + // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm + url "$rootDir/../node_modules/react-native/android" + } + google() + } +} + + +task wrapper(type: Wrapper) { + gradleVersion = '4.4' + distributionUrl = distributionUrl.replace("bin", "all") +} diff --git a/React-Native/helloWorld/android/gradle.properties b/React-Native/helloWorld/android/gradle.properties new file mode 100644 index 000000000..89e0d99e2 --- /dev/null +++ b/React-Native/helloWorld/android/gradle.properties @@ -0,0 +1,18 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx10248m -XX:MaxPermSize=256m +# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true diff --git a/React-Native/helloWorld/android/gradle/wrapper/gradle-wrapper.jar b/React-Native/helloWorld/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..01b8bf6b1f99cad9213fc495b33ad5bbab8efd20 GIT binary patch literal 54329 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

<5G2M1WZP5 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