├── .gitignore
├── img
├── demo.gif
└── example.png
├── src
├── favicon.ico
├── js
│ ├── ethprice.js
│ ├── scrolling-nav.js
│ ├── jquery.easing.compatibility.js
│ ├── jquery.easing.min.js
│ ├── app.js
│ ├── jquery.easing.js
│ ├── bootstrap.min.js
│ └── bootstrap.bundle.min.js
├── css
│ ├── scrolling-nav.css
│ ├── bootstrap-reboot.min.css
│ ├── bootstrap-reboot.css
│ ├── bootstrap-grid.min.css
│ └── bootstrap-grid.css
└── index.html
├── bs-config.json
├── migrations
├── 2_deploy_contracts.js
└── 1_initial_migration.js
├── .travis.yml
├── contracts
├── Migrations.sol
└── Lottery.sol
├── package.json
├── LICENSE.md
├── truffle.js
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | keystore/
3 | build/contracts/
4 |
--------------------------------------------------------------------------------
/img/demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/njaladan/Etherball/HEAD/img/demo.gif
--------------------------------------------------------------------------------
/img/example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/njaladan/Etherball/HEAD/img/example.png
--------------------------------------------------------------------------------
/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/njaladan/Etherball/HEAD/src/favicon.ico
--------------------------------------------------------------------------------
/bs-config.json:
--------------------------------------------------------------------------------
1 | {
2 | "server": {
3 | "baseDir": ["./src", "./build/contracts"]
4 | },
5 | "ghostMode":false,
6 | "notify":false
7 | }
8 |
--------------------------------------------------------------------------------
/migrations/2_deploy_contracts.js:
--------------------------------------------------------------------------------
1 | var lottery = artifacts.require("Lottery.sol");
2 |
3 | module.exports = function(deployer) {
4 | deployer.deploy(lottery);
5 | }
6 |
--------------------------------------------------------------------------------
/migrations/1_initial_migration.js:
--------------------------------------------------------------------------------
1 | var Migrations = artifacts.require("./Migrations.sol");
2 |
3 | module.exports = function(deployer) {
4 | deployer.deploy(Migrations);
5 | };
6 |
--------------------------------------------------------------------------------
/src/js/ethprice.js:
--------------------------------------------------------------------------------
1 |
2 | $.getJSON(
3 | "https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=USD",
4 | function(json) {
5 | console.log(json['USD']);
6 | $('#poolPrice').text((0.125*json['USD']).toFixed(2));
7 | $('#ticketPrice').text((0.005*json['USD']).toFixed(2));
8 | }
9 | );
10 |
--------------------------------------------------------------------------------
/src/css/scrolling-nav.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Start Bootstrap - Scrolling Nav (https://startbootstrap.com/template-overviews/scrolling-nav)
3 | * Copyright 2013-2017 Start Bootstrap
4 | * Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap-scrolling-nav/blob/master/LICENSE)
5 | */
6 |
7 | header {
8 | padding: 154px 0 100px;
9 | }
10 |
11 | @media (min-width: 992px) {
12 | header {
13 | padding: 156px 0 100px;
14 | }
15 | }
16 |
17 | section {
18 | padding: 150px 0;
19 | }
20 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 |
3 | sudo: required
4 |
5 | node_js:
6 | - "8.9"
7 |
8 | env:
9 | - CXX=g++-4.8
10 |
11 | addons:
12 | apt:
13 | sources:
14 | - ubuntu-toolchain-r-test
15 | packages:
16 | - build-essential
17 | - g++-4.8
18 |
19 | before_install:
20 | - export CXX="g++-4.8"
21 | - npm install -g npm@latest
22 | - npm install -g ethereumjs-testrpc truffle
23 |
24 | install:
25 | - npm install
26 |
27 | script:
28 | - testrpc &
29 | - truffle compile
30 | - truffle migrate
31 |
--------------------------------------------------------------------------------
/contracts/Migrations.sol:
--------------------------------------------------------------------------------
1 | pragma solidity ^0.4.17;
2 |
3 | contract Migrations {
4 | address public owner;
5 | uint public last_completed_migration;
6 |
7 | modifier restricted() {
8 | if (msg.sender == owner) _;
9 | }
10 |
11 | constructor() public {
12 | owner = msg.sender;
13 | }
14 |
15 | function setCompleted(uint completed) public restricted {
16 | last_completed_migration = completed;
17 | }
18 |
19 | function upgrade(address new_address) public restricted {
20 | Migrations upgraded = Migrations(new_address);
21 | upgraded.setCompleted(last_completed_migration);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "lottery",
3 | "version": "1.0.0",
4 | "description": "A simple solidity lottery.",
5 | "main": "truffle.js",
6 | "author": "",
7 | "directories": {
8 | "test": "test"
9 | },
10 | "scripts": {
11 | "start": "lite-server",
12 | "dev": "lite-server",
13 | "test": "echo \"Error: no test specified\" && exit 1"
14 | },
15 | "license": "ISC",
16 | "devDependencies": {
17 | "lite-server": "^2.3.0",
18 | "truffle-hdwallet-provider": "0.0.3"
19 | },
20 | "dependencies": {
21 | "ethereumjs-testrpc": "^6.0.3",
22 | "ethereumjs-wallet": "^0.6.0",
23 | "start": "^5.1.0",
24 | "truffle-wallet-provider": "0.0.5",
25 | "web3": "^1.0.0-beta.34"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/js/scrolling-nav.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 | "use strict"; // Start of use strict
3 |
4 | // Smooth scrolling using jQuery easing
5 | $('a.js-scroll-trigger[href*="#"]:not([href="#"])').click(function() {
6 | if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
7 | var target = $(this.hash);
8 | target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
9 | if (target.length) {
10 | $('html, body').animate({
11 | scrollTop: (target.offset().top - 54)
12 | }, 1000, "easeInOutExpo");
13 | return false;
14 | }
15 | }
16 | });
17 |
18 | // Closes responsive menu when a scroll trigger link is clicked
19 | $('.js-scroll-trigger').click(function() {
20 | $('.navbar-collapse').collapse('hide');
21 | });
22 |
23 | // Activate scrollspy to add active class to navbar items on scroll
24 | $('body').scrollspy({
25 | target: '#mainNav',
26 | offset: 54
27 | });
28 |
29 | })(jQuery); // End of use strict
30 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Nagaganesh Jaladanki
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/truffle.js:
--------------------------------------------------------------------------------
1 | var HDWalletProvider = require("truffle-hdwallet-provider");
2 |
3 | const Web3 = require("web3");
4 | const web3 = new Web3();
5 |
6 | /*
7 | var keystore = require('fs').readFileSync('keystore/eth_keystore.txt').toString();
8 | console.log(keystore);
9 |
10 | var kovanProvider = new HDWalletProvider(keystore, "https://kovan.infura.io/GjyHpPqLZffsizIx6ieH");
11 | var ropstenProvider = new HDWalletProvider(keystore, "https://ropsten.infura.io/GjyHpPqLZffsizIx6ieH");
12 | var rinkebyProvider = new HDWalletProvider(keystore, "https://rinkeby.infura.io/GjyHpPqLZffsizIx6ieH");
13 | */
14 |
15 | module.exports = {
16 | networks: {
17 | development: {
18 | host: "localhost",
19 | port: 8545,
20 | network_id: "*" // Match any network id
21 | }/*,
22 | kovan: {
23 | provider: kovanProvider,
24 | network_id: 3,
25 | gas: 4600000,
26 | gasPrice: web3.toWei("20", "gwei")
27 | },
28 | ropsten: {
29 | provider: ropstenProvider,
30 | network_id: 2,
31 | gas: 4600000,
32 | gasPrice: web3.toWei("120", "gwei")
33 | },
34 | rinkeby: {
35 | provider: rinkebyProvider,
36 | network_id: 1,
37 | gas: 4600000,
38 | gasPrice: web3.toWei("20", "gwei")
39 | }*/
40 | },
41 |
42 | solc: {
43 | optimizer: {
44 | enabled: true,
45 | runs: 200
46 | }
47 | }
48 | };
49 |
--------------------------------------------------------------------------------
/src/js/jquery.easing.compatibility.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Easing Compatibility v1 - http://gsgd.co.uk/sandbox/jquery/easing
3 | *
4 | * Adds compatibility for applications that use the pre 1.2 easing names
5 | *
6 | * Copyright (c) 2007 George Smith
7 | * Licensed under the MIT License:
8 | * http://www.opensource.org/licenses/mit-license.php
9 | */
10 |
11 | (function($){
12 | $.extend( $.easing,
13 | {
14 | easeIn: function (x, t, b, c, d) {
15 | return $.easing.easeInQuad(x, t, b, c, d);
16 | },
17 | easeOut: function (x, t, b, c, d) {
18 | return $.easing.easeOutQuad(x, t, b, c, d);
19 | },
20 | easeInOut: function (x, t, b, c, d) {
21 | return $.easing.easeInOutQuad(x, t, b, c, d);
22 | },
23 | expoin: function(x, t, b, c, d) {
24 | return $.easing.easeInExpo(x, t, b, c, d);
25 | },
26 | expoout: function(x, t, b, c, d) {
27 | return $.easing.easeOutExpo(x, t, b, c, d);
28 | },
29 | expoinout: function(x, t, b, c, d) {
30 | return $.easing.easeInOutExpo(x, t, b, c, d);
31 | },
32 | bouncein: function(x, t, b, c, d) {
33 | return $.easing.easeInBounce(x, t, b, c, d);
34 | },
35 | bounceout: function(x, t, b, c, d) {
36 | return $.easing.easeOutBounce(x, t, b, c, d);
37 | },
38 | bounceinout: function(x, t, b, c, d) {
39 | return $.easing.easeInOutBounce(x, t, b, c, d);
40 | },
41 | elasin: function(x, t, b, c, d) {
42 | return $.easing.easeInElastic(x, t, b, c, d);
43 | },
44 | elasout: function(x, t, b, c, d) {
45 | return $.easing.easeOutElastic(x, t, b, c, d);
46 | },
47 | elasinout: function(x, t, b, c, d) {
48 | return $.easing.easeInOutElastic(x, t, b, c, d);
49 | },
50 | backin: function(x, t, b, c, d) {
51 | return $.easing.easeInBack(x, t, b, c, d);
52 | },
53 | backout: function(x, t, b, c, d) {
54 | return $.easing.easeOutBack(x, t, b, c, d);
55 | },
56 | backinout: function(x, t, b, c, d) {
57 | return $.easing.easeInOutBack(x, t, b, c, d);
58 | }
59 | });})(jQuery);
60 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Etherball 🎟
2 | [](https://travis-ci.org/njaladan/Etherball)
3 |
4 | Etherball is a simple lottery web app with numerical tickets and a fixed jackpot built for the Ethereum blockchain.
5 |
6 |
7 |
8 |
9 |
10 |
11 | ## Features
12 | Etherball features:
13 |
14 | • Easy to purchase ticket interface (and prevention of duplicate tickets)
15 |
16 | • Works with the Metamask wallet and Mist browser
17 |
18 | • A simple but functional front-end built with Bootstrap
19 |
20 | • Integration with all major Ethereum testnets
21 |
22 | • A blockchain-based randomness generator to ensure fairness
23 |
24 | • Real-time ether to USD converter
25 |
26 | ## Technologies Used
27 | • [Truffle](https://github.com/trufflesuite/truffle)
28 |
29 | • [Node.js](https://github.com/nodejs/node)
30 |
31 | • [TestRPC](https://github.com/pipermerriam/eth-testrpc)
32 |
33 | • [Bootstrap](https://github.com/twbs/bootstrap)
34 |
35 | • [Web3](https://github.com/ethereum/web3.js/)
36 |
37 | ## Installation
38 | Installing Etherball to use on your machine is simple. First,
39 |
40 | `git clone`
41 |
42 | the repository. Next, navigate to the cloned directory and install the necessary Node.js modules with
43 |
44 | `npm install`
45 |
46 | Create and place your 12-word mnemonic private key at the location
47 |
48 | `keystore/eth_keystore.txt`
49 |
50 | Initialize a local blockchain with
51 |
52 | `testrpc`
53 |
54 | and deploy the smart contract with
55 |
56 | `truffle migrate`
57 |
58 | Finally, to open the web app,
59 |
60 | `npm run dev`
61 |
62 |
63 | ## Miscellaneous
64 | • The majority of the code powering the app is located in `contracts/Lottery.sol` and `src/js/app.js` - if you'd like to see how the app works in any way, that's probably the place to go.
65 |
66 | • The source of randomness for this lottery system comes from a SHA-256 hash taken from the blockchain timestamp and number.
67 |
68 | • Feel free to submit a pull request if you have any changes or suggestions to make. :)
69 |
70 | ## Licensing
71 |
72 | Etherball is released under the terms of the MIT license. For more information, see https://opensource.org/licenses/MIT.
73 |
--------------------------------------------------------------------------------
/src/js/jquery.easing.min.js:
--------------------------------------------------------------------------------
1 | (function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],function($){return factory($)})}else if(typeof module==="object"&&typeof module.exports==="object"){exports=factory(require("jquery"))}else{factory(jQuery)}})(function($){$.easing.jswing=$.easing.swing;var pow=Math.pow,sqrt=Math.sqrt,sin=Math.sin,cos=Math.cos,PI=Math.PI,c1=1.70158,c2=c1*1.525,c3=c1+1,c4=2*PI/3,c5=2*PI/4.5;function bounceOut(x){var n1=7.5625,d1=2.75;if(x<1/d1){return n1*x*x}else if(x<2/d1){return n1*(x-=1.5/d1)*x+.75}else if(x<2.5/d1){return n1*(x-=2.25/d1)*x+.9375}else{return n1*(x-=2.625/d1)*x+.984375}}$.extend($.easing,{def:"easeOutQuad",swing:function(x){return $.easing[$.easing.def](x)},easeInQuad:function(x){return x*x},easeOutQuad:function(x){return 1-(1-x)*(1-x)},easeInOutQuad:function(x){return x<.5?2*x*x:1-pow(-2*x+2,2)/2},easeInCubic:function(x){return x*x*x},easeOutCubic:function(x){return 1-pow(1-x,3)},easeInOutCubic:function(x){return x<.5?4*x*x*x:1-pow(-2*x+2,3)/2},easeInQuart:function(x){return x*x*x*x},easeOutQuart:function(x){return 1-pow(1-x,4)},easeInOutQuart:function(x){return x<.5?8*x*x*x*x:1-pow(-2*x+2,4)/2},easeInQuint:function(x){return x*x*x*x*x},easeOutQuint:function(x){return 1-pow(1-x,5)},easeInOutQuint:function(x){return x<.5?16*x*x*x*x*x:1-pow(-2*x+2,5)/2},easeInSine:function(x){return 1-cos(x*PI/2)},easeOutSine:function(x){return sin(x*PI/2)},easeInOutSine:function(x){return-(cos(PI*x)-1)/2},easeInExpo:function(x){return x===0?0:pow(2,10*x-10)},easeOutExpo:function(x){return x===1?1:1-pow(2,-10*x)},easeInOutExpo:function(x){return x===0?0:x===1?1:x<.5?pow(2,20*x-10)/2:(2-pow(2,-20*x+10))/2},easeInCirc:function(x){return 1-sqrt(1-pow(x,2))},easeOutCirc:function(x){return sqrt(1-pow(x-1,2))},easeInOutCirc:function(x){return x<.5?(1-sqrt(1-pow(2*x,2)))/2:(sqrt(1-pow(-2*x+2,2))+1)/2},easeInElastic:function(x){return x===0?0:x===1?1:-pow(2,10*x-10)*sin((x*10-10.75)*c4)},easeOutElastic:function(x){return x===0?0:x===1?1:pow(2,-10*x)*sin((x*10-.75)*c4)+1},easeInOutElastic:function(x){return x===0?0:x===1?1:x<.5?-(pow(2,20*x-10)*sin((20*x-11.125)*c5))/2:pow(2,-20*x+10)*sin((20*x-11.125)*c5)/2+1},easeInBack:function(x){return c3*x*x*x-c1*x*x},easeOutBack:function(x){return 1+c3*pow(x-1,3)+c1*pow(x-1,2)},easeInOutBack:function(x){return x<.5?pow(2*x,2)*((c2+1)*2*x-c2)/2:(pow(2*x-2,2)*((c2+1)*(x*2-2)+c2)+2)/2},easeInBounce:function(x){return 1-bounceOut(1-x)},easeOutBounce:bounceOut,easeInOutBounce:function(x){return x<.5?(1-bounceOut(1-2*x))/2:(1+bounceOut(2*x-1))/2}})});
--------------------------------------------------------------------------------
/contracts/Lottery.sol:
--------------------------------------------------------------------------------
1 | pragma solidity ^0.4.17;
2 |
3 | /**
4 | * @title Ethereum-Lottery
5 | * @author Nagaganesh Jaladanki
6 | * @dev Simple lottery smart contract to run on the Ethereum
7 | * chain. Designed to work well with a web3 front-end.
8 | * Source of randomness comes from Ethereum block hashes.
9 | * MIT License.
10 | */
11 |
12 | contract Lottery {
13 |
14 | event LotteryTicketPurchased(address indexed _purchaser, uint256 _ticketID);
15 | event LotteryAmountPaid(address indexed _winner, uint64 _ticketID, uint256 _amount);
16 |
17 | // Note: prone to change
18 | uint64 public ticketPrice = 5 finney;
19 | uint64 public ticketMax = 25;
20 |
21 | // Initialize mapping
22 | address[26] public ticketMapping;
23 | uint256 public ticketsBought = 0;
24 |
25 | // Prevent potential locked funds by checking greater than
26 | modifier allTicketsSold() {
27 | require(ticketsBought >= ticketMax);
28 | _;
29 | }
30 |
31 | /* @dev Tickets may only be purchased through the buyTickets function */
32 | function() payable public {
33 | revert();
34 | }
35 |
36 | /**
37 | * @dev Purchase ticket and send reward if necessary
38 | * @param _ticket Ticket number to purchase
39 | * @return bool Validity of transaction
40 | */
41 | function buyTicket(uint16 _ticket) payable public returns (bool) {
42 | require(msg.value == ticketPrice);
43 | require(_ticket > 0 && _ticket < ticketMax + 1);
44 | require(ticketMapping[_ticket] == address(0));
45 | require(ticketsBought < ticketMax);
46 |
47 | // Avoid reentrancy attacks
48 | address purchaser = msg.sender;
49 | ticketsBought += 1;
50 | ticketMapping[_ticket] = purchaser;
51 | emit LotteryTicketPurchased(purchaser, _ticket);
52 |
53 | /** Placing the "burden" of sendReward() on the last ticket
54 | * buyer is okay, because the refund from destroying the
55 | * arrays decreases net gas cost
56 | */
57 | if (ticketsBought>=ticketMax) {
58 | sendReward();
59 | }
60 |
61 | return true;
62 | }
63 |
64 | /**
65 | * @dev Send lottery winner their reward
66 | * @return address of winner
67 | */
68 | function sendReward() public allTicketsSold returns (address) {
69 | uint64 winningNumber = lotteryPicker();
70 | address winner = ticketMapping[winningNumber];
71 | uint256 totalAmount = ticketMax * ticketPrice;
72 |
73 | // Prevent locked funds by sending to bad address
74 | require(winner != address(0));
75 |
76 | // Prevent reentrancy
77 | reset();
78 | winner.transfer(totalAmount);
79 | emit LotteryAmountPaid(winner, winningNumber, totalAmount);
80 | return winner;
81 | }
82 |
83 | /* @return a random number based off of current block information */
84 | function lotteryPicker() public view allTicketsSold returns (uint64) {
85 | bytes memory entropy = abi.encodePacked(block.timestamp, block.number);
86 | bytes32 hash = sha256(entropy);
87 | return uint64(hash) % ticketMax;
88 | }
89 |
90 | /* @dev Reset lottery mapping once a round is finished */
91 | function reset() private allTicketsSold returns (bool) {
92 | ticketsBought = 0;
93 | for(uint x = 0; x < ticketMax+1; x++) {
94 | delete ticketMapping[x];
95 | }
96 | return true;
97 | }
98 |
99 | /** @dev Returns ticket map array for front-end access.
100 | * Using a getter method is ineffective since it allows
101 | * only element-level access
102 | */
103 | function getTicketsPurchased() public view returns(address[26]) {
104 | return ticketMapping;
105 | }
106 | }
107 |
--------------------------------------------------------------------------------
/src/css/bootstrap-reboot.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v4.0.0-beta.2 (https://getbootstrap.com)
3 | * Copyright 2011-2017 The Bootstrap Authors
4 | * Copyright 2011-2017 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#868e96;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}
8 | /*# sourceMappingURL=bootstrap-reboot.min.css.map */
--------------------------------------------------------------------------------
/src/js/app.js:
--------------------------------------------------------------------------------
1 | App = {
2 | web3Provider: null,
3 | contracts: {},
4 |
5 | init: function() {
6 | return App.initWeb3();
7 | },
8 |
9 | initWeb3: function() {
10 | // Initialize web3 and set the provider to the testRPC.
11 | if (typeof web3 !== 'undefined') {
12 | App.web3Provider = web3.currentProvider;
13 | web3 = new Web3(web3.currentProvider);
14 | } else {
15 | // set the provider you want from Web3.providers
16 | // App.web3Provider = new Web3.providers.HttpProvider('http://127.0.0.1:8545');
17 | App.web3Provider = new Web3.providers.HttpProvider('https://mainnet.infura.io/GjyHpPqLZffsizIx6ieH');
18 | web3 = new Web3(App.web3Provider);
19 | }
20 |
21 | return App.initContract();
22 | },
23 |
24 | initContract: function() {
25 | $.getJSON('Lottery.json', function(data) {
26 | // Get the necessary contract artifact file and instantiate it with truffle-contract.
27 | var LotteryArtifact = data;
28 | App.contracts.Lottery = TruffleContract(LotteryArtifact);
29 |
30 | // Set the provider for our contract.
31 | App.contracts.Lottery.setProvider(App.web3Provider);
32 | return App.getTicketPrice(), App.getTicketMapping(), App.getLotteryAddress();
33 | });
34 | return App.bindEvents();
35 | },
36 |
37 | bindEvents: function() {
38 | for(var i = 1; i <= 25; i++) {
39 | $(document).on('click', '#buyTicket' + i, App.handleBuyTicket(i));
40 | }
41 | },
42 |
43 | handleBuyTicket: function(ticketNumber) {
44 | function buyTicketNumber() {
45 | App.contracts.Lottery.deployed().then(function(instance) {
46 | lottery = instance;
47 | var lotteryContractAddress = lottery.address;
48 | lottery.ticketPrice().then(function(ticketPrice){
49 | var ticketPrice = ticketPrice;
50 | lottery.buyTicket(
51 | ticketNumber,
52 | {
53 | from: web3.eth.coinbase,
54 | to: lotteryContractAddress,
55 | value: 5000000000000000,
56 | gas: 70000
57 | });
58 | })
59 | })
60 | }
61 | return buyTicketNumber
62 | },
63 |
64 | getTicketPrice: function() {
65 | console.log('Getting ticket price...');
66 | App.contracts.Lottery.deployed().then(function(instance) {
67 | lottery = instance;
68 | return lottery.ticketPrice();
69 | }).then(function(result) {
70 | // Result is returned in wei (10^18 per 1 ETH), so divide by 10^18.
71 | EthPrice = Math.round(1000 * result / 500000000000000000) / 1000;
72 | $('#EthPrice').text(EthPrice.toString(10));
73 | }).catch(function(err) {
74 | console.log(err.message);
75 | });
76 | },
77 |
78 | getLotteryAddress: function() {
79 | console.log('Getting lottery address...');
80 | App.contracts.Lottery.deployed().then(function(instance) {
81 | lottery = instance;
82 | return lottery.address;
83 | }).then(function(result){
84 | $('#lotteryAddress').text(result);
85 | }).catch(function(err) {
86 | console.log(err.message);
87 | });
88 | },
89 |
90 | getTicketMapping: function() {
91 | console.log('Getting ticket mapping...');
92 | App.contracts.Lottery.deployed().then(function(instance) {
93 | lottery = instance;
94 | return lottery.getTicketsPurchased();
95 | }).then(function(result){
96 | for(var i = 0; i < result.length; i++){
97 | // Check if a ticket has been purchased
98 | if(result[i] == "0x0000000000000000000000000000000000000000"){
99 | result[i] = 0;
100 | } else {
101 | result[i] = 1;
102 | $("#buyTicket" + String(i)).prop('disabled', true);
103 | }
104 | }
105 | console.log(result);
106 | }).catch(function(err) {
107 | console.log(err.message);
108 | });
109 | },
110 |
111 | };
112 |
113 | $(function() {
114 | $(window).load(function() {
115 | App.init();
116 | });
117 | });
118 |
--------------------------------------------------------------------------------
/src/js/jquery.easing.js:
--------------------------------------------------------------------------------
1 | /*
2 | * jQuery Easing v1.4.1 - http://gsgd.co.uk/sandbox/jquery/easing/
3 | * Open source under the BSD License.
4 | * Copyright © 2008 George McGinley Smith
5 | * All rights reserved.
6 | * https://raw.github.com/gdsmith/jquery-easing/master/LICENSE
7 | */
8 |
9 | (function (factory) {
10 | if (typeof define === "function" && define.amd) {
11 | define(['jquery'], function ($) {
12 | return factory($);
13 | });
14 | } else if (typeof module === "object" && typeof module.exports === "object") {
15 | exports = factory(require('jquery'));
16 | } else {
17 | factory(jQuery);
18 | }
19 | })(function($){
20 |
21 | // Preserve the original jQuery "swing" easing as "jswing"
22 | $.easing.jswing = $.easing.swing;
23 |
24 | var pow = Math.pow,
25 | sqrt = Math.sqrt,
26 | sin = Math.sin,
27 | cos = Math.cos,
28 | PI = Math.PI,
29 | c1 = 1.70158,
30 | c2 = c1 * 1.525,
31 | c3 = c1 + 1,
32 | c4 = ( 2 * PI ) / 3,
33 | c5 = ( 2 * PI ) / 4.5;
34 |
35 | // x is the fraction of animation progress, in the range 0..1
36 | function bounceOut(x) {
37 | var n1 = 7.5625,
38 | d1 = 2.75;
39 | if ( x < 1/d1 ) {
40 | return n1*x*x;
41 | } else if ( x < 2/d1 ) {
42 | return n1*(x-=(1.5/d1))*x + 0.75;
43 | } else if ( x < 2.5/d1 ) {
44 | return n1*(x-=(2.25/d1))*x + 0.9375;
45 | } else {
46 | return n1*(x-=(2.625/d1))*x + 0.984375;
47 | }
48 | }
49 |
50 | $.extend( $.easing,
51 | {
52 | def: 'easeOutQuad',
53 | swing: function (x) {
54 | return $.easing[$.easing.def](x);
55 | },
56 | easeInQuad: function (x) {
57 | return x * x;
58 | },
59 | easeOutQuad: function (x) {
60 | return 1 - ( 1 - x ) * ( 1 - x );
61 | },
62 | easeInOutQuad: function (x) {
63 | return x < 0.5 ?
64 | 2 * x * x :
65 | 1 - pow( -2 * x + 2, 2 ) / 2;
66 | },
67 | easeInCubic: function (x) {
68 | return x * x * x;
69 | },
70 | easeOutCubic: function (x) {
71 | return 1 - pow( 1 - x, 3 );
72 | },
73 | easeInOutCubic: function (x) {
74 | return x < 0.5 ?
75 | 4 * x * x * x :
76 | 1 - pow( -2 * x + 2, 3 ) / 2;
77 | },
78 | easeInQuart: function (x) {
79 | return x * x * x * x;
80 | },
81 | easeOutQuart: function (x) {
82 | return 1 - pow( 1 - x, 4 );
83 | },
84 | easeInOutQuart: function (x) {
85 | return x < 0.5 ?
86 | 8 * x * x * x * x :
87 | 1 - pow( -2 * x + 2, 4 ) / 2;
88 | },
89 | easeInQuint: function (x) {
90 | return x * x * x * x * x;
91 | },
92 | easeOutQuint: function (x) {
93 | return 1 - pow( 1 - x, 5 );
94 | },
95 | easeInOutQuint: function (x) {
96 | return x < 0.5 ?
97 | 16 * x * x * x * x * x :
98 | 1 - pow( -2 * x + 2, 5 ) / 2;
99 | },
100 | easeInSine: function (x) {
101 | return 1 - cos( x * PI/2 );
102 | },
103 | easeOutSine: function (x) {
104 | return sin( x * PI/2 );
105 | },
106 | easeInOutSine: function (x) {
107 | return -( cos( PI * x ) - 1 ) / 2;
108 | },
109 | easeInExpo: function (x) {
110 | return x === 0 ? 0 : pow( 2, 10 * x - 10 );
111 | },
112 | easeOutExpo: function (x) {
113 | return x === 1 ? 1 : 1 - pow( 2, -10 * x );
114 | },
115 | easeInOutExpo: function (x) {
116 | return x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ?
117 | pow( 2, 20 * x - 10 ) / 2 :
118 | ( 2 - pow( 2, -20 * x + 10 ) ) / 2;
119 | },
120 | easeInCirc: function (x) {
121 | return 1 - sqrt( 1 - pow( x, 2 ) );
122 | },
123 | easeOutCirc: function (x) {
124 | return sqrt( 1 - pow( x - 1, 2 ) );
125 | },
126 | easeInOutCirc: function (x) {
127 | return x < 0.5 ?
128 | ( 1 - sqrt( 1 - pow( 2 * x, 2 ) ) ) / 2 :
129 | ( sqrt( 1 - pow( -2 * x + 2, 2 ) ) + 1 ) / 2;
130 | },
131 | easeInElastic: function (x) {
132 | return x === 0 ? 0 : x === 1 ? 1 :
133 | -pow( 2, 10 * x - 10 ) * sin( ( x * 10 - 10.75 ) * c4 );
134 | },
135 | easeOutElastic: function (x) {
136 | return x === 0 ? 0 : x === 1 ? 1 :
137 | pow( 2, -10 * x ) * sin( ( x * 10 - 0.75 ) * c4 ) + 1;
138 | },
139 | easeInOutElastic: function (x) {
140 | return x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ?
141 | -( pow( 2, 20 * x - 10 ) * sin( ( 20 * x - 11.125 ) * c5 )) / 2 :
142 | pow( 2, -20 * x + 10 ) * sin( ( 20 * x - 11.125 ) * c5 ) / 2 + 1;
143 | },
144 | easeInBack: function (x) {
145 | return c3 * x * x * x - c1 * x * x;
146 | },
147 | easeOutBack: function (x) {
148 | return 1 + c3 * pow( x - 1, 3 ) + c1 * pow( x - 1, 2 );
149 | },
150 | easeInOutBack: function (x) {
151 | return x < 0.5 ?
152 | ( pow( 2 * x, 2 ) * ( ( c2 + 1 ) * 2 * x - c2 ) ) / 2 :
153 | ( pow( 2 * x - 2, 2 ) *( ( c2 + 1 ) * ( x * 2 - 2 ) + c2 ) + 2 ) / 2;
154 | },
155 | easeInBounce: function (x) {
156 | return 1 - bounceOut( 1 - x );
157 | },
158 | easeOutBounce: bounceOut,
159 | easeInOutBounce: function (x) {
160 | return x < 0.5 ?
161 | ( 1 - bounceOut( 1 - 2 * x ) ) / 2 :
162 | ( 1 + bounceOut( 2 * x - 1 ) ) / 2;
163 | }
164 | });
165 |
166 | });
167 |
--------------------------------------------------------------------------------
/src/css/bootstrap-reboot.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v4.0.0-beta.2 (https://getbootstrap.com)
3 | * Copyright 2011-2017 The Bootstrap Authors
4 | * Copyright 2011-2017 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */
8 | *,
9 | *::before,
10 | *::after {
11 | box-sizing: border-box;
12 | }
13 |
14 | html {
15 | font-family: sans-serif;
16 | line-height: 1.15;
17 | -webkit-text-size-adjust: 100%;
18 | -ms-text-size-adjust: 100%;
19 | -ms-overflow-style: scrollbar;
20 | -webkit-tap-highlight-color: transparent;
21 | }
22 |
23 | @-ms-viewport {
24 | width: device-width;
25 | }
26 |
27 | article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {
28 | display: block;
29 | }
30 |
31 | body {
32 | margin: 0;
33 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
34 | font-size: 1rem;
35 | font-weight: 400;
36 | line-height: 1.5;
37 | color: #212529;
38 | text-align: left;
39 | background-color: #fff;
40 | }
41 |
42 | [tabindex="-1"]:focus {
43 | outline: none !important;
44 | }
45 |
46 | hr {
47 | box-sizing: content-box;
48 | height: 0;
49 | overflow: visible;
50 | }
51 |
52 | h1, h2, h3, h4, h5, h6 {
53 | margin-top: 0;
54 | margin-bottom: 0.5rem;
55 | }
56 |
57 | p {
58 | margin-top: 0;
59 | margin-bottom: 1rem;
60 | }
61 |
62 | abbr[title],
63 | abbr[data-original-title] {
64 | text-decoration: underline;
65 | -webkit-text-decoration: underline dotted;
66 | text-decoration: underline dotted;
67 | cursor: help;
68 | border-bottom: 0;
69 | }
70 |
71 | address {
72 | margin-bottom: 1rem;
73 | font-style: normal;
74 | line-height: inherit;
75 | }
76 |
77 | ol,
78 | ul,
79 | dl {
80 | margin-top: 0;
81 | margin-bottom: 1rem;
82 | }
83 |
84 | ol ol,
85 | ul ul,
86 | ol ul,
87 | ul ol {
88 | margin-bottom: 0;
89 | }
90 |
91 | dt {
92 | font-weight: 700;
93 | }
94 |
95 | dd {
96 | margin-bottom: .5rem;
97 | margin-left: 0;
98 | }
99 |
100 | blockquote {
101 | margin: 0 0 1rem;
102 | }
103 |
104 | dfn {
105 | font-style: italic;
106 | }
107 |
108 | b,
109 | strong {
110 | font-weight: bolder;
111 | }
112 |
113 | small {
114 | font-size: 80%;
115 | }
116 |
117 | sub,
118 | sup {
119 | position: relative;
120 | font-size: 75%;
121 | line-height: 0;
122 | vertical-align: baseline;
123 | }
124 |
125 | sub {
126 | bottom: -.25em;
127 | }
128 |
129 | sup {
130 | top: -.5em;
131 | }
132 |
133 | a {
134 | color: #007bff;
135 | text-decoration: none;
136 | background-color: transparent;
137 | -webkit-text-decoration-skip: objects;
138 | }
139 |
140 | a:hover {
141 | color: #0056b3;
142 | text-decoration: underline;
143 | }
144 |
145 | a:not([href]):not([tabindex]) {
146 | color: inherit;
147 | text-decoration: none;
148 | }
149 |
150 | a:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {
151 | color: inherit;
152 | text-decoration: none;
153 | }
154 |
155 | a:not([href]):not([tabindex]):focus {
156 | outline: 0;
157 | }
158 |
159 | pre,
160 | code,
161 | kbd,
162 | samp {
163 | font-family: monospace, monospace;
164 | font-size: 1em;
165 | }
166 |
167 | pre {
168 | margin-top: 0;
169 | margin-bottom: 1rem;
170 | overflow: auto;
171 | -ms-overflow-style: scrollbar;
172 | }
173 |
174 | figure {
175 | margin: 0 0 1rem;
176 | }
177 |
178 | img {
179 | vertical-align: middle;
180 | border-style: none;
181 | }
182 |
183 | svg:not(:root) {
184 | overflow: hidden;
185 | }
186 |
187 | a,
188 | area,
189 | button,
190 | [role="button"],
191 | input:not([type="range"]),
192 | label,
193 | select,
194 | summary,
195 | textarea {
196 | -ms-touch-action: manipulation;
197 | touch-action: manipulation;
198 | }
199 |
200 | table {
201 | border-collapse: collapse;
202 | }
203 |
204 | caption {
205 | padding-top: 0.75rem;
206 | padding-bottom: 0.75rem;
207 | color: #868e96;
208 | text-align: left;
209 | caption-side: bottom;
210 | }
211 |
212 | th {
213 | text-align: inherit;
214 | }
215 |
216 | label {
217 | display: inline-block;
218 | margin-bottom: .5rem;
219 | }
220 |
221 | button {
222 | border-radius: 0;
223 | }
224 |
225 | button:focus {
226 | outline: 1px dotted;
227 | outline: 5px auto -webkit-focus-ring-color;
228 | }
229 |
230 | input,
231 | button,
232 | select,
233 | optgroup,
234 | textarea {
235 | margin: 0;
236 | font-family: inherit;
237 | font-size: inherit;
238 | line-height: inherit;
239 | }
240 |
241 | button,
242 | input {
243 | overflow: visible;
244 | }
245 |
246 | button,
247 | select {
248 | text-transform: none;
249 | }
250 |
251 | button,
252 | html [type="button"],
253 | [type="reset"],
254 | [type="submit"] {
255 | -webkit-appearance: button;
256 | }
257 |
258 | button::-moz-focus-inner,
259 | [type="button"]::-moz-focus-inner,
260 | [type="reset"]::-moz-focus-inner,
261 | [type="submit"]::-moz-focus-inner {
262 | padding: 0;
263 | border-style: none;
264 | }
265 |
266 | input[type="radio"],
267 | input[type="checkbox"] {
268 | box-sizing: border-box;
269 | padding: 0;
270 | }
271 |
272 | input[type="date"],
273 | input[type="time"],
274 | input[type="datetime-local"],
275 | input[type="month"] {
276 | -webkit-appearance: listbox;
277 | }
278 |
279 | textarea {
280 | overflow: auto;
281 | resize: vertical;
282 | }
283 |
284 | fieldset {
285 | min-width: 0;
286 | padding: 0;
287 | margin: 0;
288 | border: 0;
289 | }
290 |
291 | legend {
292 | display: block;
293 | width: 100%;
294 | max-width: 100%;
295 | padding: 0;
296 | margin-bottom: .5rem;
297 | font-size: 1.5rem;
298 | line-height: inherit;
299 | color: inherit;
300 | white-space: normal;
301 | }
302 |
303 | progress {
304 | vertical-align: baseline;
305 | }
306 |
307 | [type="number"]::-webkit-inner-spin-button,
308 | [type="number"]::-webkit-outer-spin-button {
309 | height: auto;
310 | }
311 |
312 | [type="search"] {
313 | outline-offset: -2px;
314 | -webkit-appearance: none;
315 | }
316 |
317 | [type="search"]::-webkit-search-cancel-button,
318 | [type="search"]::-webkit-search-decoration {
319 | -webkit-appearance: none;
320 | }
321 |
322 | ::-webkit-file-upload-button {
323 | font: inherit;
324 | -webkit-appearance: button;
325 | }
326 |
327 | output {
328 | display: inline-block;
329 | }
330 |
331 | summary {
332 | display: list-item;
333 | }
334 |
335 | template {
336 | display: none;
337 | }
338 |
339 | [hidden] {
340 | display: none !important;
341 | }
342 | /*# sourceMappingURL=bootstrap-reboot.css.map */
--------------------------------------------------------------------------------
/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | Etherball - Decentralized Lottery
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
46 |
47 |
48 |
49 |
50 |
Play Etherball!
51 |
The current jackpot is 0.125 eth, or ~$ .
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
Buy A Ticket
60 |
Each ticket is only 0.005 eth. At current prices, that's ~$ .
61 |
62 | Ticket 1
63 | Ticket 2
64 | Ticket 3
65 | Ticket 4
66 | Ticket 5
67 | Ticket 6
68 | Ticket 7
69 | Ticket 8
70 | Ticket 9
71 | Ticket 10
72 | Ticket 11
73 | Ticket 12
74 | Ticket 13
75 | Ticket 14
76 | Ticket 15
77 | Ticket 16
78 | Ticket 17
79 | Ticket 18
80 | Ticket 19
81 | Ticket 20
82 | Ticket 21
83 | Ticket 22
84 | Ticket 23
85 | Ticket 24
86 | Ticket 25
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
FAQ
98 |
What is Etherball?
99 |
Etherball is a lottery built on top of the Etherum blockchain. Because of its decentralized nature, Etherball is completely controlled by the blockchain, so payments and ticket-buying is secured with the power of millions of computers around the world.
100 |
Why should I trust it?
101 |
You're free (and encouraged) to check out the source code at (etherscan link here). If you have any questions or concerns feel free to contact me using the links at the bottom of the page.
102 |
How can I use Etherball?
103 |
The easiest way to use Etherball is to download the Metamask wallet here , send your Metamask wallet some ether using an exchange of sorts, and choosing a ticket to buy at the top of the page.
104 |
My transaction isn't going through. Why?
105 |
Try raising your gas limit for the transaction. Don't worry if it seems high; most of the times, the gas limit isn't even reached. Also, it's possible that someone else just bought the ticket that you clicked on and the website or blockchain didn't update yet. Try choosing a different ticket.
106 |
Why so few tickets?
107 |
Fewer tickets equals to faster games, which means less time waiting to see if you've won! The game resets automatically too, so you can play more games quicker.
108 |
What's your share?
109 |
Nothing! All of the ether raised by tickets goes to the winner.
110 |
111 |
112 |
113 |
114 |
115 |
125 |
126 |
127 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
--------------------------------------------------------------------------------
/src/css/bootstrap-grid.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Grid v4.0.0-beta.2 (https://getbootstrap.com)
3 | * Copyright 2011-2017 The Bootstrap Authors
4 | * Copyright 2011-2017 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | */@-ms-viewport{width:device-width}html{box-sizing:border-box;-ms-overflow-style:scrollbar}*,::after,::before{box-sizing:inherit}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}
7 | /*# sourceMappingURL=bootstrap-grid.min.css.map */
--------------------------------------------------------------------------------
/src/js/bootstrap.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.3.7 (http://getbootstrap.com)
3 | * Copyright 2011-2016 Twitter, Inc.
4 | * Licensed under the MIT license
5 | */
6 | if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
--------------------------------------------------------------------------------
/src/css/bootstrap-grid.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Grid v4.0.0-beta.2 (https://getbootstrap.com)
3 | * Copyright 2011-2017 The Bootstrap Authors
4 | * Copyright 2011-2017 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | */
7 | @-ms-viewport {
8 | width: device-width;
9 | }
10 |
11 | html {
12 | box-sizing: border-box;
13 | -ms-overflow-style: scrollbar;
14 | }
15 |
16 | *,
17 | *::before,
18 | *::after {
19 | box-sizing: inherit;
20 | }
21 |
22 | .container {
23 | width: 100%;
24 | padding-right: 15px;
25 | padding-left: 15px;
26 | margin-right: auto;
27 | margin-left: auto;
28 | }
29 |
30 | @media (min-width: 576px) {
31 | .container {
32 | max-width: 540px;
33 | }
34 | }
35 |
36 | @media (min-width: 768px) {
37 | .container {
38 | max-width: 720px;
39 | }
40 | }
41 |
42 | @media (min-width: 992px) {
43 | .container {
44 | max-width: 960px;
45 | }
46 | }
47 |
48 | @media (min-width: 1200px) {
49 | .container {
50 | max-width: 1140px;
51 | }
52 | }
53 |
54 | .container-fluid {
55 | width: 100%;
56 | padding-right: 15px;
57 | padding-left: 15px;
58 | margin-right: auto;
59 | margin-left: auto;
60 | }
61 |
62 | .row {
63 | display: -ms-flexbox;
64 | display: flex;
65 | -ms-flex-wrap: wrap;
66 | flex-wrap: wrap;
67 | margin-right: -15px;
68 | margin-left: -15px;
69 | }
70 |
71 | .no-gutters {
72 | margin-right: 0;
73 | margin-left: 0;
74 | }
75 |
76 | .no-gutters > .col,
77 | .no-gutters > [class*="col-"] {
78 | padding-right: 0;
79 | padding-left: 0;
80 | }
81 |
82 | .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,
83 | .col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,
84 | .col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,
85 | .col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,
86 | .col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,
87 | .col-xl-auto {
88 | position: relative;
89 | width: 100%;
90 | min-height: 1px;
91 | padding-right: 15px;
92 | padding-left: 15px;
93 | }
94 |
95 | .col {
96 | -ms-flex-preferred-size: 0;
97 | flex-basis: 0;
98 | -ms-flex-positive: 1;
99 | flex-grow: 1;
100 | max-width: 100%;
101 | }
102 |
103 | .col-auto {
104 | -ms-flex: 0 0 auto;
105 | flex: 0 0 auto;
106 | width: auto;
107 | max-width: none;
108 | }
109 |
110 | .col-1 {
111 | -ms-flex: 0 0 8.333333%;
112 | flex: 0 0 8.333333%;
113 | max-width: 8.333333%;
114 | }
115 |
116 | .col-2 {
117 | -ms-flex: 0 0 16.666667%;
118 | flex: 0 0 16.666667%;
119 | max-width: 16.666667%;
120 | }
121 |
122 | .col-3 {
123 | -ms-flex: 0 0 25%;
124 | flex: 0 0 25%;
125 | max-width: 25%;
126 | }
127 |
128 | .col-4 {
129 | -ms-flex: 0 0 33.333333%;
130 | flex: 0 0 33.333333%;
131 | max-width: 33.333333%;
132 | }
133 |
134 | .col-5 {
135 | -ms-flex: 0 0 41.666667%;
136 | flex: 0 0 41.666667%;
137 | max-width: 41.666667%;
138 | }
139 |
140 | .col-6 {
141 | -ms-flex: 0 0 50%;
142 | flex: 0 0 50%;
143 | max-width: 50%;
144 | }
145 |
146 | .col-7 {
147 | -ms-flex: 0 0 58.333333%;
148 | flex: 0 0 58.333333%;
149 | max-width: 58.333333%;
150 | }
151 |
152 | .col-8 {
153 | -ms-flex: 0 0 66.666667%;
154 | flex: 0 0 66.666667%;
155 | max-width: 66.666667%;
156 | }
157 |
158 | .col-9 {
159 | -ms-flex: 0 0 75%;
160 | flex: 0 0 75%;
161 | max-width: 75%;
162 | }
163 |
164 | .col-10 {
165 | -ms-flex: 0 0 83.333333%;
166 | flex: 0 0 83.333333%;
167 | max-width: 83.333333%;
168 | }
169 |
170 | .col-11 {
171 | -ms-flex: 0 0 91.666667%;
172 | flex: 0 0 91.666667%;
173 | max-width: 91.666667%;
174 | }
175 |
176 | .col-12 {
177 | -ms-flex: 0 0 100%;
178 | flex: 0 0 100%;
179 | max-width: 100%;
180 | }
181 |
182 | .order-first {
183 | -ms-flex-order: -1;
184 | order: -1;
185 | }
186 |
187 | .order-1 {
188 | -ms-flex-order: 1;
189 | order: 1;
190 | }
191 |
192 | .order-2 {
193 | -ms-flex-order: 2;
194 | order: 2;
195 | }
196 |
197 | .order-3 {
198 | -ms-flex-order: 3;
199 | order: 3;
200 | }
201 |
202 | .order-4 {
203 | -ms-flex-order: 4;
204 | order: 4;
205 | }
206 |
207 | .order-5 {
208 | -ms-flex-order: 5;
209 | order: 5;
210 | }
211 |
212 | .order-6 {
213 | -ms-flex-order: 6;
214 | order: 6;
215 | }
216 |
217 | .order-7 {
218 | -ms-flex-order: 7;
219 | order: 7;
220 | }
221 |
222 | .order-8 {
223 | -ms-flex-order: 8;
224 | order: 8;
225 | }
226 |
227 | .order-9 {
228 | -ms-flex-order: 9;
229 | order: 9;
230 | }
231 |
232 | .order-10 {
233 | -ms-flex-order: 10;
234 | order: 10;
235 | }
236 |
237 | .order-11 {
238 | -ms-flex-order: 11;
239 | order: 11;
240 | }
241 |
242 | .order-12 {
243 | -ms-flex-order: 12;
244 | order: 12;
245 | }
246 |
247 | .offset-1 {
248 | margin-left: 8.333333%;
249 | }
250 |
251 | .offset-2 {
252 | margin-left: 16.666667%;
253 | }
254 |
255 | .offset-3 {
256 | margin-left: 25%;
257 | }
258 |
259 | .offset-4 {
260 | margin-left: 33.333333%;
261 | }
262 |
263 | .offset-5 {
264 | margin-left: 41.666667%;
265 | }
266 |
267 | .offset-6 {
268 | margin-left: 50%;
269 | }
270 |
271 | .offset-7 {
272 | margin-left: 58.333333%;
273 | }
274 |
275 | .offset-8 {
276 | margin-left: 66.666667%;
277 | }
278 |
279 | .offset-9 {
280 | margin-left: 75%;
281 | }
282 |
283 | .offset-10 {
284 | margin-left: 83.333333%;
285 | }
286 |
287 | .offset-11 {
288 | margin-left: 91.666667%;
289 | }
290 |
291 | @media (min-width: 576px) {
292 | .col-sm {
293 | -ms-flex-preferred-size: 0;
294 | flex-basis: 0;
295 | -ms-flex-positive: 1;
296 | flex-grow: 1;
297 | max-width: 100%;
298 | }
299 | .col-sm-auto {
300 | -ms-flex: 0 0 auto;
301 | flex: 0 0 auto;
302 | width: auto;
303 | max-width: none;
304 | }
305 | .col-sm-1 {
306 | -ms-flex: 0 0 8.333333%;
307 | flex: 0 0 8.333333%;
308 | max-width: 8.333333%;
309 | }
310 | .col-sm-2 {
311 | -ms-flex: 0 0 16.666667%;
312 | flex: 0 0 16.666667%;
313 | max-width: 16.666667%;
314 | }
315 | .col-sm-3 {
316 | -ms-flex: 0 0 25%;
317 | flex: 0 0 25%;
318 | max-width: 25%;
319 | }
320 | .col-sm-4 {
321 | -ms-flex: 0 0 33.333333%;
322 | flex: 0 0 33.333333%;
323 | max-width: 33.333333%;
324 | }
325 | .col-sm-5 {
326 | -ms-flex: 0 0 41.666667%;
327 | flex: 0 0 41.666667%;
328 | max-width: 41.666667%;
329 | }
330 | .col-sm-6 {
331 | -ms-flex: 0 0 50%;
332 | flex: 0 0 50%;
333 | max-width: 50%;
334 | }
335 | .col-sm-7 {
336 | -ms-flex: 0 0 58.333333%;
337 | flex: 0 0 58.333333%;
338 | max-width: 58.333333%;
339 | }
340 | .col-sm-8 {
341 | -ms-flex: 0 0 66.666667%;
342 | flex: 0 0 66.666667%;
343 | max-width: 66.666667%;
344 | }
345 | .col-sm-9 {
346 | -ms-flex: 0 0 75%;
347 | flex: 0 0 75%;
348 | max-width: 75%;
349 | }
350 | .col-sm-10 {
351 | -ms-flex: 0 0 83.333333%;
352 | flex: 0 0 83.333333%;
353 | max-width: 83.333333%;
354 | }
355 | .col-sm-11 {
356 | -ms-flex: 0 0 91.666667%;
357 | flex: 0 0 91.666667%;
358 | max-width: 91.666667%;
359 | }
360 | .col-sm-12 {
361 | -ms-flex: 0 0 100%;
362 | flex: 0 0 100%;
363 | max-width: 100%;
364 | }
365 | .order-sm-first {
366 | -ms-flex-order: -1;
367 | order: -1;
368 | }
369 | .order-sm-1 {
370 | -ms-flex-order: 1;
371 | order: 1;
372 | }
373 | .order-sm-2 {
374 | -ms-flex-order: 2;
375 | order: 2;
376 | }
377 | .order-sm-3 {
378 | -ms-flex-order: 3;
379 | order: 3;
380 | }
381 | .order-sm-4 {
382 | -ms-flex-order: 4;
383 | order: 4;
384 | }
385 | .order-sm-5 {
386 | -ms-flex-order: 5;
387 | order: 5;
388 | }
389 | .order-sm-6 {
390 | -ms-flex-order: 6;
391 | order: 6;
392 | }
393 | .order-sm-7 {
394 | -ms-flex-order: 7;
395 | order: 7;
396 | }
397 | .order-sm-8 {
398 | -ms-flex-order: 8;
399 | order: 8;
400 | }
401 | .order-sm-9 {
402 | -ms-flex-order: 9;
403 | order: 9;
404 | }
405 | .order-sm-10 {
406 | -ms-flex-order: 10;
407 | order: 10;
408 | }
409 | .order-sm-11 {
410 | -ms-flex-order: 11;
411 | order: 11;
412 | }
413 | .order-sm-12 {
414 | -ms-flex-order: 12;
415 | order: 12;
416 | }
417 | .offset-sm-0 {
418 | margin-left: 0;
419 | }
420 | .offset-sm-1 {
421 | margin-left: 8.333333%;
422 | }
423 | .offset-sm-2 {
424 | margin-left: 16.666667%;
425 | }
426 | .offset-sm-3 {
427 | margin-left: 25%;
428 | }
429 | .offset-sm-4 {
430 | margin-left: 33.333333%;
431 | }
432 | .offset-sm-5 {
433 | margin-left: 41.666667%;
434 | }
435 | .offset-sm-6 {
436 | margin-left: 50%;
437 | }
438 | .offset-sm-7 {
439 | margin-left: 58.333333%;
440 | }
441 | .offset-sm-8 {
442 | margin-left: 66.666667%;
443 | }
444 | .offset-sm-9 {
445 | margin-left: 75%;
446 | }
447 | .offset-sm-10 {
448 | margin-left: 83.333333%;
449 | }
450 | .offset-sm-11 {
451 | margin-left: 91.666667%;
452 | }
453 | }
454 |
455 | @media (min-width: 768px) {
456 | .col-md {
457 | -ms-flex-preferred-size: 0;
458 | flex-basis: 0;
459 | -ms-flex-positive: 1;
460 | flex-grow: 1;
461 | max-width: 100%;
462 | }
463 | .col-md-auto {
464 | -ms-flex: 0 0 auto;
465 | flex: 0 0 auto;
466 | width: auto;
467 | max-width: none;
468 | }
469 | .col-md-1 {
470 | -ms-flex: 0 0 8.333333%;
471 | flex: 0 0 8.333333%;
472 | max-width: 8.333333%;
473 | }
474 | .col-md-2 {
475 | -ms-flex: 0 0 16.666667%;
476 | flex: 0 0 16.666667%;
477 | max-width: 16.666667%;
478 | }
479 | .col-md-3 {
480 | -ms-flex: 0 0 25%;
481 | flex: 0 0 25%;
482 | max-width: 25%;
483 | }
484 | .col-md-4 {
485 | -ms-flex: 0 0 33.333333%;
486 | flex: 0 0 33.333333%;
487 | max-width: 33.333333%;
488 | }
489 | .col-md-5 {
490 | -ms-flex: 0 0 41.666667%;
491 | flex: 0 0 41.666667%;
492 | max-width: 41.666667%;
493 | }
494 | .col-md-6 {
495 | -ms-flex: 0 0 50%;
496 | flex: 0 0 50%;
497 | max-width: 50%;
498 | }
499 | .col-md-7 {
500 | -ms-flex: 0 0 58.333333%;
501 | flex: 0 0 58.333333%;
502 | max-width: 58.333333%;
503 | }
504 | .col-md-8 {
505 | -ms-flex: 0 0 66.666667%;
506 | flex: 0 0 66.666667%;
507 | max-width: 66.666667%;
508 | }
509 | .col-md-9 {
510 | -ms-flex: 0 0 75%;
511 | flex: 0 0 75%;
512 | max-width: 75%;
513 | }
514 | .col-md-10 {
515 | -ms-flex: 0 0 83.333333%;
516 | flex: 0 0 83.333333%;
517 | max-width: 83.333333%;
518 | }
519 | .col-md-11 {
520 | -ms-flex: 0 0 91.666667%;
521 | flex: 0 0 91.666667%;
522 | max-width: 91.666667%;
523 | }
524 | .col-md-12 {
525 | -ms-flex: 0 0 100%;
526 | flex: 0 0 100%;
527 | max-width: 100%;
528 | }
529 | .order-md-first {
530 | -ms-flex-order: -1;
531 | order: -1;
532 | }
533 | .order-md-1 {
534 | -ms-flex-order: 1;
535 | order: 1;
536 | }
537 | .order-md-2 {
538 | -ms-flex-order: 2;
539 | order: 2;
540 | }
541 | .order-md-3 {
542 | -ms-flex-order: 3;
543 | order: 3;
544 | }
545 | .order-md-4 {
546 | -ms-flex-order: 4;
547 | order: 4;
548 | }
549 | .order-md-5 {
550 | -ms-flex-order: 5;
551 | order: 5;
552 | }
553 | .order-md-6 {
554 | -ms-flex-order: 6;
555 | order: 6;
556 | }
557 | .order-md-7 {
558 | -ms-flex-order: 7;
559 | order: 7;
560 | }
561 | .order-md-8 {
562 | -ms-flex-order: 8;
563 | order: 8;
564 | }
565 | .order-md-9 {
566 | -ms-flex-order: 9;
567 | order: 9;
568 | }
569 | .order-md-10 {
570 | -ms-flex-order: 10;
571 | order: 10;
572 | }
573 | .order-md-11 {
574 | -ms-flex-order: 11;
575 | order: 11;
576 | }
577 | .order-md-12 {
578 | -ms-flex-order: 12;
579 | order: 12;
580 | }
581 | .offset-md-0 {
582 | margin-left: 0;
583 | }
584 | .offset-md-1 {
585 | margin-left: 8.333333%;
586 | }
587 | .offset-md-2 {
588 | margin-left: 16.666667%;
589 | }
590 | .offset-md-3 {
591 | margin-left: 25%;
592 | }
593 | .offset-md-4 {
594 | margin-left: 33.333333%;
595 | }
596 | .offset-md-5 {
597 | margin-left: 41.666667%;
598 | }
599 | .offset-md-6 {
600 | margin-left: 50%;
601 | }
602 | .offset-md-7 {
603 | margin-left: 58.333333%;
604 | }
605 | .offset-md-8 {
606 | margin-left: 66.666667%;
607 | }
608 | .offset-md-9 {
609 | margin-left: 75%;
610 | }
611 | .offset-md-10 {
612 | margin-left: 83.333333%;
613 | }
614 | .offset-md-11 {
615 | margin-left: 91.666667%;
616 | }
617 | }
618 |
619 | @media (min-width: 992px) {
620 | .col-lg {
621 | -ms-flex-preferred-size: 0;
622 | flex-basis: 0;
623 | -ms-flex-positive: 1;
624 | flex-grow: 1;
625 | max-width: 100%;
626 | }
627 | .col-lg-auto {
628 | -ms-flex: 0 0 auto;
629 | flex: 0 0 auto;
630 | width: auto;
631 | max-width: none;
632 | }
633 | .col-lg-1 {
634 | -ms-flex: 0 0 8.333333%;
635 | flex: 0 0 8.333333%;
636 | max-width: 8.333333%;
637 | }
638 | .col-lg-2 {
639 | -ms-flex: 0 0 16.666667%;
640 | flex: 0 0 16.666667%;
641 | max-width: 16.666667%;
642 | }
643 | .col-lg-3 {
644 | -ms-flex: 0 0 25%;
645 | flex: 0 0 25%;
646 | max-width: 25%;
647 | }
648 | .col-lg-4 {
649 | -ms-flex: 0 0 33.333333%;
650 | flex: 0 0 33.333333%;
651 | max-width: 33.333333%;
652 | }
653 | .col-lg-5 {
654 | -ms-flex: 0 0 41.666667%;
655 | flex: 0 0 41.666667%;
656 | max-width: 41.666667%;
657 | }
658 | .col-lg-6 {
659 | -ms-flex: 0 0 50%;
660 | flex: 0 0 50%;
661 | max-width: 50%;
662 | }
663 | .col-lg-7 {
664 | -ms-flex: 0 0 58.333333%;
665 | flex: 0 0 58.333333%;
666 | max-width: 58.333333%;
667 | }
668 | .col-lg-8 {
669 | -ms-flex: 0 0 66.666667%;
670 | flex: 0 0 66.666667%;
671 | max-width: 66.666667%;
672 | }
673 | .col-lg-9 {
674 | -ms-flex: 0 0 75%;
675 | flex: 0 0 75%;
676 | max-width: 75%;
677 | }
678 | .col-lg-10 {
679 | -ms-flex: 0 0 83.333333%;
680 | flex: 0 0 83.333333%;
681 | max-width: 83.333333%;
682 | }
683 | .col-lg-11 {
684 | -ms-flex: 0 0 91.666667%;
685 | flex: 0 0 91.666667%;
686 | max-width: 91.666667%;
687 | }
688 | .col-lg-12 {
689 | -ms-flex: 0 0 100%;
690 | flex: 0 0 100%;
691 | max-width: 100%;
692 | }
693 | .order-lg-first {
694 | -ms-flex-order: -1;
695 | order: -1;
696 | }
697 | .order-lg-1 {
698 | -ms-flex-order: 1;
699 | order: 1;
700 | }
701 | .order-lg-2 {
702 | -ms-flex-order: 2;
703 | order: 2;
704 | }
705 | .order-lg-3 {
706 | -ms-flex-order: 3;
707 | order: 3;
708 | }
709 | .order-lg-4 {
710 | -ms-flex-order: 4;
711 | order: 4;
712 | }
713 | .order-lg-5 {
714 | -ms-flex-order: 5;
715 | order: 5;
716 | }
717 | .order-lg-6 {
718 | -ms-flex-order: 6;
719 | order: 6;
720 | }
721 | .order-lg-7 {
722 | -ms-flex-order: 7;
723 | order: 7;
724 | }
725 | .order-lg-8 {
726 | -ms-flex-order: 8;
727 | order: 8;
728 | }
729 | .order-lg-9 {
730 | -ms-flex-order: 9;
731 | order: 9;
732 | }
733 | .order-lg-10 {
734 | -ms-flex-order: 10;
735 | order: 10;
736 | }
737 | .order-lg-11 {
738 | -ms-flex-order: 11;
739 | order: 11;
740 | }
741 | .order-lg-12 {
742 | -ms-flex-order: 12;
743 | order: 12;
744 | }
745 | .offset-lg-0 {
746 | margin-left: 0;
747 | }
748 | .offset-lg-1 {
749 | margin-left: 8.333333%;
750 | }
751 | .offset-lg-2 {
752 | margin-left: 16.666667%;
753 | }
754 | .offset-lg-3 {
755 | margin-left: 25%;
756 | }
757 | .offset-lg-4 {
758 | margin-left: 33.333333%;
759 | }
760 | .offset-lg-5 {
761 | margin-left: 41.666667%;
762 | }
763 | .offset-lg-6 {
764 | margin-left: 50%;
765 | }
766 | .offset-lg-7 {
767 | margin-left: 58.333333%;
768 | }
769 | .offset-lg-8 {
770 | margin-left: 66.666667%;
771 | }
772 | .offset-lg-9 {
773 | margin-left: 75%;
774 | }
775 | .offset-lg-10 {
776 | margin-left: 83.333333%;
777 | }
778 | .offset-lg-11 {
779 | margin-left: 91.666667%;
780 | }
781 | }
782 |
783 | @media (min-width: 1200px) {
784 | .col-xl {
785 | -ms-flex-preferred-size: 0;
786 | flex-basis: 0;
787 | -ms-flex-positive: 1;
788 | flex-grow: 1;
789 | max-width: 100%;
790 | }
791 | .col-xl-auto {
792 | -ms-flex: 0 0 auto;
793 | flex: 0 0 auto;
794 | width: auto;
795 | max-width: none;
796 | }
797 | .col-xl-1 {
798 | -ms-flex: 0 0 8.333333%;
799 | flex: 0 0 8.333333%;
800 | max-width: 8.333333%;
801 | }
802 | .col-xl-2 {
803 | -ms-flex: 0 0 16.666667%;
804 | flex: 0 0 16.666667%;
805 | max-width: 16.666667%;
806 | }
807 | .col-xl-3 {
808 | -ms-flex: 0 0 25%;
809 | flex: 0 0 25%;
810 | max-width: 25%;
811 | }
812 | .col-xl-4 {
813 | -ms-flex: 0 0 33.333333%;
814 | flex: 0 0 33.333333%;
815 | max-width: 33.333333%;
816 | }
817 | .col-xl-5 {
818 | -ms-flex: 0 0 41.666667%;
819 | flex: 0 0 41.666667%;
820 | max-width: 41.666667%;
821 | }
822 | .col-xl-6 {
823 | -ms-flex: 0 0 50%;
824 | flex: 0 0 50%;
825 | max-width: 50%;
826 | }
827 | .col-xl-7 {
828 | -ms-flex: 0 0 58.333333%;
829 | flex: 0 0 58.333333%;
830 | max-width: 58.333333%;
831 | }
832 | .col-xl-8 {
833 | -ms-flex: 0 0 66.666667%;
834 | flex: 0 0 66.666667%;
835 | max-width: 66.666667%;
836 | }
837 | .col-xl-9 {
838 | -ms-flex: 0 0 75%;
839 | flex: 0 0 75%;
840 | max-width: 75%;
841 | }
842 | .col-xl-10 {
843 | -ms-flex: 0 0 83.333333%;
844 | flex: 0 0 83.333333%;
845 | max-width: 83.333333%;
846 | }
847 | .col-xl-11 {
848 | -ms-flex: 0 0 91.666667%;
849 | flex: 0 0 91.666667%;
850 | max-width: 91.666667%;
851 | }
852 | .col-xl-12 {
853 | -ms-flex: 0 0 100%;
854 | flex: 0 0 100%;
855 | max-width: 100%;
856 | }
857 | .order-xl-first {
858 | -ms-flex-order: -1;
859 | order: -1;
860 | }
861 | .order-xl-1 {
862 | -ms-flex-order: 1;
863 | order: 1;
864 | }
865 | .order-xl-2 {
866 | -ms-flex-order: 2;
867 | order: 2;
868 | }
869 | .order-xl-3 {
870 | -ms-flex-order: 3;
871 | order: 3;
872 | }
873 | .order-xl-4 {
874 | -ms-flex-order: 4;
875 | order: 4;
876 | }
877 | .order-xl-5 {
878 | -ms-flex-order: 5;
879 | order: 5;
880 | }
881 | .order-xl-6 {
882 | -ms-flex-order: 6;
883 | order: 6;
884 | }
885 | .order-xl-7 {
886 | -ms-flex-order: 7;
887 | order: 7;
888 | }
889 | .order-xl-8 {
890 | -ms-flex-order: 8;
891 | order: 8;
892 | }
893 | .order-xl-9 {
894 | -ms-flex-order: 9;
895 | order: 9;
896 | }
897 | .order-xl-10 {
898 | -ms-flex-order: 10;
899 | order: 10;
900 | }
901 | .order-xl-11 {
902 | -ms-flex-order: 11;
903 | order: 11;
904 | }
905 | .order-xl-12 {
906 | -ms-flex-order: 12;
907 | order: 12;
908 | }
909 | .offset-xl-0 {
910 | margin-left: 0;
911 | }
912 | .offset-xl-1 {
913 | margin-left: 8.333333%;
914 | }
915 | .offset-xl-2 {
916 | margin-left: 16.666667%;
917 | }
918 | .offset-xl-3 {
919 | margin-left: 25%;
920 | }
921 | .offset-xl-4 {
922 | margin-left: 33.333333%;
923 | }
924 | .offset-xl-5 {
925 | margin-left: 41.666667%;
926 | }
927 | .offset-xl-6 {
928 | margin-left: 50%;
929 | }
930 | .offset-xl-7 {
931 | margin-left: 58.333333%;
932 | }
933 | .offset-xl-8 {
934 | margin-left: 66.666667%;
935 | }
936 | .offset-xl-9 {
937 | margin-left: 75%;
938 | }
939 | .offset-xl-10 {
940 | margin-left: 83.333333%;
941 | }
942 | .offset-xl-11 {
943 | margin-left: 91.666667%;
944 | }
945 | }
946 |
947 | .flex-row {
948 | -ms-flex-direction: row !important;
949 | flex-direction: row !important;
950 | }
951 |
952 | .flex-column {
953 | -ms-flex-direction: column !important;
954 | flex-direction: column !important;
955 | }
956 |
957 | .flex-row-reverse {
958 | -ms-flex-direction: row-reverse !important;
959 | flex-direction: row-reverse !important;
960 | }
961 |
962 | .flex-column-reverse {
963 | -ms-flex-direction: column-reverse !important;
964 | flex-direction: column-reverse !important;
965 | }
966 |
967 | .flex-wrap {
968 | -ms-flex-wrap: wrap !important;
969 | flex-wrap: wrap !important;
970 | }
971 |
972 | .flex-nowrap {
973 | -ms-flex-wrap: nowrap !important;
974 | flex-wrap: nowrap !important;
975 | }
976 |
977 | .flex-wrap-reverse {
978 | -ms-flex-wrap: wrap-reverse !important;
979 | flex-wrap: wrap-reverse !important;
980 | }
981 |
982 | .justify-content-start {
983 | -ms-flex-pack: start !important;
984 | justify-content: flex-start !important;
985 | }
986 |
987 | .justify-content-end {
988 | -ms-flex-pack: end !important;
989 | justify-content: flex-end !important;
990 | }
991 |
992 | .justify-content-center {
993 | -ms-flex-pack: center !important;
994 | justify-content: center !important;
995 | }
996 |
997 | .justify-content-between {
998 | -ms-flex-pack: justify !important;
999 | justify-content: space-between !important;
1000 | }
1001 |
1002 | .justify-content-around {
1003 | -ms-flex-pack: distribute !important;
1004 | justify-content: space-around !important;
1005 | }
1006 |
1007 | .align-items-start {
1008 | -ms-flex-align: start !important;
1009 | align-items: flex-start !important;
1010 | }
1011 |
1012 | .align-items-end {
1013 | -ms-flex-align: end !important;
1014 | align-items: flex-end !important;
1015 | }
1016 |
1017 | .align-items-center {
1018 | -ms-flex-align: center !important;
1019 | align-items: center !important;
1020 | }
1021 |
1022 | .align-items-baseline {
1023 | -ms-flex-align: baseline !important;
1024 | align-items: baseline !important;
1025 | }
1026 |
1027 | .align-items-stretch {
1028 | -ms-flex-align: stretch !important;
1029 | align-items: stretch !important;
1030 | }
1031 |
1032 | .align-content-start {
1033 | -ms-flex-line-pack: start !important;
1034 | align-content: flex-start !important;
1035 | }
1036 |
1037 | .align-content-end {
1038 | -ms-flex-line-pack: end !important;
1039 | align-content: flex-end !important;
1040 | }
1041 |
1042 | .align-content-center {
1043 | -ms-flex-line-pack: center !important;
1044 | align-content: center !important;
1045 | }
1046 |
1047 | .align-content-between {
1048 | -ms-flex-line-pack: justify !important;
1049 | align-content: space-between !important;
1050 | }
1051 |
1052 | .align-content-around {
1053 | -ms-flex-line-pack: distribute !important;
1054 | align-content: space-around !important;
1055 | }
1056 |
1057 | .align-content-stretch {
1058 | -ms-flex-line-pack: stretch !important;
1059 | align-content: stretch !important;
1060 | }
1061 |
1062 | .align-self-auto {
1063 | -ms-flex-item-align: auto !important;
1064 | align-self: auto !important;
1065 | }
1066 |
1067 | .align-self-start {
1068 | -ms-flex-item-align: start !important;
1069 | align-self: flex-start !important;
1070 | }
1071 |
1072 | .align-self-end {
1073 | -ms-flex-item-align: end !important;
1074 | align-self: flex-end !important;
1075 | }
1076 |
1077 | .align-self-center {
1078 | -ms-flex-item-align: center !important;
1079 | align-self: center !important;
1080 | }
1081 |
1082 | .align-self-baseline {
1083 | -ms-flex-item-align: baseline !important;
1084 | align-self: baseline !important;
1085 | }
1086 |
1087 | .align-self-stretch {
1088 | -ms-flex-item-align: stretch !important;
1089 | align-self: stretch !important;
1090 | }
1091 |
1092 | @media (min-width: 576px) {
1093 | .flex-sm-row {
1094 | -ms-flex-direction: row !important;
1095 | flex-direction: row !important;
1096 | }
1097 | .flex-sm-column {
1098 | -ms-flex-direction: column !important;
1099 | flex-direction: column !important;
1100 | }
1101 | .flex-sm-row-reverse {
1102 | -ms-flex-direction: row-reverse !important;
1103 | flex-direction: row-reverse !important;
1104 | }
1105 | .flex-sm-column-reverse {
1106 | -ms-flex-direction: column-reverse !important;
1107 | flex-direction: column-reverse !important;
1108 | }
1109 | .flex-sm-wrap {
1110 | -ms-flex-wrap: wrap !important;
1111 | flex-wrap: wrap !important;
1112 | }
1113 | .flex-sm-nowrap {
1114 | -ms-flex-wrap: nowrap !important;
1115 | flex-wrap: nowrap !important;
1116 | }
1117 | .flex-sm-wrap-reverse {
1118 | -ms-flex-wrap: wrap-reverse !important;
1119 | flex-wrap: wrap-reverse !important;
1120 | }
1121 | .justify-content-sm-start {
1122 | -ms-flex-pack: start !important;
1123 | justify-content: flex-start !important;
1124 | }
1125 | .justify-content-sm-end {
1126 | -ms-flex-pack: end !important;
1127 | justify-content: flex-end !important;
1128 | }
1129 | .justify-content-sm-center {
1130 | -ms-flex-pack: center !important;
1131 | justify-content: center !important;
1132 | }
1133 | .justify-content-sm-between {
1134 | -ms-flex-pack: justify !important;
1135 | justify-content: space-between !important;
1136 | }
1137 | .justify-content-sm-around {
1138 | -ms-flex-pack: distribute !important;
1139 | justify-content: space-around !important;
1140 | }
1141 | .align-items-sm-start {
1142 | -ms-flex-align: start !important;
1143 | align-items: flex-start !important;
1144 | }
1145 | .align-items-sm-end {
1146 | -ms-flex-align: end !important;
1147 | align-items: flex-end !important;
1148 | }
1149 | .align-items-sm-center {
1150 | -ms-flex-align: center !important;
1151 | align-items: center !important;
1152 | }
1153 | .align-items-sm-baseline {
1154 | -ms-flex-align: baseline !important;
1155 | align-items: baseline !important;
1156 | }
1157 | .align-items-sm-stretch {
1158 | -ms-flex-align: stretch !important;
1159 | align-items: stretch !important;
1160 | }
1161 | .align-content-sm-start {
1162 | -ms-flex-line-pack: start !important;
1163 | align-content: flex-start !important;
1164 | }
1165 | .align-content-sm-end {
1166 | -ms-flex-line-pack: end !important;
1167 | align-content: flex-end !important;
1168 | }
1169 | .align-content-sm-center {
1170 | -ms-flex-line-pack: center !important;
1171 | align-content: center !important;
1172 | }
1173 | .align-content-sm-between {
1174 | -ms-flex-line-pack: justify !important;
1175 | align-content: space-between !important;
1176 | }
1177 | .align-content-sm-around {
1178 | -ms-flex-line-pack: distribute !important;
1179 | align-content: space-around !important;
1180 | }
1181 | .align-content-sm-stretch {
1182 | -ms-flex-line-pack: stretch !important;
1183 | align-content: stretch !important;
1184 | }
1185 | .align-self-sm-auto {
1186 | -ms-flex-item-align: auto !important;
1187 | align-self: auto !important;
1188 | }
1189 | .align-self-sm-start {
1190 | -ms-flex-item-align: start !important;
1191 | align-self: flex-start !important;
1192 | }
1193 | .align-self-sm-end {
1194 | -ms-flex-item-align: end !important;
1195 | align-self: flex-end !important;
1196 | }
1197 | .align-self-sm-center {
1198 | -ms-flex-item-align: center !important;
1199 | align-self: center !important;
1200 | }
1201 | .align-self-sm-baseline {
1202 | -ms-flex-item-align: baseline !important;
1203 | align-self: baseline !important;
1204 | }
1205 | .align-self-sm-stretch {
1206 | -ms-flex-item-align: stretch !important;
1207 | align-self: stretch !important;
1208 | }
1209 | }
1210 |
1211 | @media (min-width: 768px) {
1212 | .flex-md-row {
1213 | -ms-flex-direction: row !important;
1214 | flex-direction: row !important;
1215 | }
1216 | .flex-md-column {
1217 | -ms-flex-direction: column !important;
1218 | flex-direction: column !important;
1219 | }
1220 | .flex-md-row-reverse {
1221 | -ms-flex-direction: row-reverse !important;
1222 | flex-direction: row-reverse !important;
1223 | }
1224 | .flex-md-column-reverse {
1225 | -ms-flex-direction: column-reverse !important;
1226 | flex-direction: column-reverse !important;
1227 | }
1228 | .flex-md-wrap {
1229 | -ms-flex-wrap: wrap !important;
1230 | flex-wrap: wrap !important;
1231 | }
1232 | .flex-md-nowrap {
1233 | -ms-flex-wrap: nowrap !important;
1234 | flex-wrap: nowrap !important;
1235 | }
1236 | .flex-md-wrap-reverse {
1237 | -ms-flex-wrap: wrap-reverse !important;
1238 | flex-wrap: wrap-reverse !important;
1239 | }
1240 | .justify-content-md-start {
1241 | -ms-flex-pack: start !important;
1242 | justify-content: flex-start !important;
1243 | }
1244 | .justify-content-md-end {
1245 | -ms-flex-pack: end !important;
1246 | justify-content: flex-end !important;
1247 | }
1248 | .justify-content-md-center {
1249 | -ms-flex-pack: center !important;
1250 | justify-content: center !important;
1251 | }
1252 | .justify-content-md-between {
1253 | -ms-flex-pack: justify !important;
1254 | justify-content: space-between !important;
1255 | }
1256 | .justify-content-md-around {
1257 | -ms-flex-pack: distribute !important;
1258 | justify-content: space-around !important;
1259 | }
1260 | .align-items-md-start {
1261 | -ms-flex-align: start !important;
1262 | align-items: flex-start !important;
1263 | }
1264 | .align-items-md-end {
1265 | -ms-flex-align: end !important;
1266 | align-items: flex-end !important;
1267 | }
1268 | .align-items-md-center {
1269 | -ms-flex-align: center !important;
1270 | align-items: center !important;
1271 | }
1272 | .align-items-md-baseline {
1273 | -ms-flex-align: baseline !important;
1274 | align-items: baseline !important;
1275 | }
1276 | .align-items-md-stretch {
1277 | -ms-flex-align: stretch !important;
1278 | align-items: stretch !important;
1279 | }
1280 | .align-content-md-start {
1281 | -ms-flex-line-pack: start !important;
1282 | align-content: flex-start !important;
1283 | }
1284 | .align-content-md-end {
1285 | -ms-flex-line-pack: end !important;
1286 | align-content: flex-end !important;
1287 | }
1288 | .align-content-md-center {
1289 | -ms-flex-line-pack: center !important;
1290 | align-content: center !important;
1291 | }
1292 | .align-content-md-between {
1293 | -ms-flex-line-pack: justify !important;
1294 | align-content: space-between !important;
1295 | }
1296 | .align-content-md-around {
1297 | -ms-flex-line-pack: distribute !important;
1298 | align-content: space-around !important;
1299 | }
1300 | .align-content-md-stretch {
1301 | -ms-flex-line-pack: stretch !important;
1302 | align-content: stretch !important;
1303 | }
1304 | .align-self-md-auto {
1305 | -ms-flex-item-align: auto !important;
1306 | align-self: auto !important;
1307 | }
1308 | .align-self-md-start {
1309 | -ms-flex-item-align: start !important;
1310 | align-self: flex-start !important;
1311 | }
1312 | .align-self-md-end {
1313 | -ms-flex-item-align: end !important;
1314 | align-self: flex-end !important;
1315 | }
1316 | .align-self-md-center {
1317 | -ms-flex-item-align: center !important;
1318 | align-self: center !important;
1319 | }
1320 | .align-self-md-baseline {
1321 | -ms-flex-item-align: baseline !important;
1322 | align-self: baseline !important;
1323 | }
1324 | .align-self-md-stretch {
1325 | -ms-flex-item-align: stretch !important;
1326 | align-self: stretch !important;
1327 | }
1328 | }
1329 |
1330 | @media (min-width: 992px) {
1331 | .flex-lg-row {
1332 | -ms-flex-direction: row !important;
1333 | flex-direction: row !important;
1334 | }
1335 | .flex-lg-column {
1336 | -ms-flex-direction: column !important;
1337 | flex-direction: column !important;
1338 | }
1339 | .flex-lg-row-reverse {
1340 | -ms-flex-direction: row-reverse !important;
1341 | flex-direction: row-reverse !important;
1342 | }
1343 | .flex-lg-column-reverse {
1344 | -ms-flex-direction: column-reverse !important;
1345 | flex-direction: column-reverse !important;
1346 | }
1347 | .flex-lg-wrap {
1348 | -ms-flex-wrap: wrap !important;
1349 | flex-wrap: wrap !important;
1350 | }
1351 | .flex-lg-nowrap {
1352 | -ms-flex-wrap: nowrap !important;
1353 | flex-wrap: nowrap !important;
1354 | }
1355 | .flex-lg-wrap-reverse {
1356 | -ms-flex-wrap: wrap-reverse !important;
1357 | flex-wrap: wrap-reverse !important;
1358 | }
1359 | .justify-content-lg-start {
1360 | -ms-flex-pack: start !important;
1361 | justify-content: flex-start !important;
1362 | }
1363 | .justify-content-lg-end {
1364 | -ms-flex-pack: end !important;
1365 | justify-content: flex-end !important;
1366 | }
1367 | .justify-content-lg-center {
1368 | -ms-flex-pack: center !important;
1369 | justify-content: center !important;
1370 | }
1371 | .justify-content-lg-between {
1372 | -ms-flex-pack: justify !important;
1373 | justify-content: space-between !important;
1374 | }
1375 | .justify-content-lg-around {
1376 | -ms-flex-pack: distribute !important;
1377 | justify-content: space-around !important;
1378 | }
1379 | .align-items-lg-start {
1380 | -ms-flex-align: start !important;
1381 | align-items: flex-start !important;
1382 | }
1383 | .align-items-lg-end {
1384 | -ms-flex-align: end !important;
1385 | align-items: flex-end !important;
1386 | }
1387 | .align-items-lg-center {
1388 | -ms-flex-align: center !important;
1389 | align-items: center !important;
1390 | }
1391 | .align-items-lg-baseline {
1392 | -ms-flex-align: baseline !important;
1393 | align-items: baseline !important;
1394 | }
1395 | .align-items-lg-stretch {
1396 | -ms-flex-align: stretch !important;
1397 | align-items: stretch !important;
1398 | }
1399 | .align-content-lg-start {
1400 | -ms-flex-line-pack: start !important;
1401 | align-content: flex-start !important;
1402 | }
1403 | .align-content-lg-end {
1404 | -ms-flex-line-pack: end !important;
1405 | align-content: flex-end !important;
1406 | }
1407 | .align-content-lg-center {
1408 | -ms-flex-line-pack: center !important;
1409 | align-content: center !important;
1410 | }
1411 | .align-content-lg-between {
1412 | -ms-flex-line-pack: justify !important;
1413 | align-content: space-between !important;
1414 | }
1415 | .align-content-lg-around {
1416 | -ms-flex-line-pack: distribute !important;
1417 | align-content: space-around !important;
1418 | }
1419 | .align-content-lg-stretch {
1420 | -ms-flex-line-pack: stretch !important;
1421 | align-content: stretch !important;
1422 | }
1423 | .align-self-lg-auto {
1424 | -ms-flex-item-align: auto !important;
1425 | align-self: auto !important;
1426 | }
1427 | .align-self-lg-start {
1428 | -ms-flex-item-align: start !important;
1429 | align-self: flex-start !important;
1430 | }
1431 | .align-self-lg-end {
1432 | -ms-flex-item-align: end !important;
1433 | align-self: flex-end !important;
1434 | }
1435 | .align-self-lg-center {
1436 | -ms-flex-item-align: center !important;
1437 | align-self: center !important;
1438 | }
1439 | .align-self-lg-baseline {
1440 | -ms-flex-item-align: baseline !important;
1441 | align-self: baseline !important;
1442 | }
1443 | .align-self-lg-stretch {
1444 | -ms-flex-item-align: stretch !important;
1445 | align-self: stretch !important;
1446 | }
1447 | }
1448 |
1449 | @media (min-width: 1200px) {
1450 | .flex-xl-row {
1451 | -ms-flex-direction: row !important;
1452 | flex-direction: row !important;
1453 | }
1454 | .flex-xl-column {
1455 | -ms-flex-direction: column !important;
1456 | flex-direction: column !important;
1457 | }
1458 | .flex-xl-row-reverse {
1459 | -ms-flex-direction: row-reverse !important;
1460 | flex-direction: row-reverse !important;
1461 | }
1462 | .flex-xl-column-reverse {
1463 | -ms-flex-direction: column-reverse !important;
1464 | flex-direction: column-reverse !important;
1465 | }
1466 | .flex-xl-wrap {
1467 | -ms-flex-wrap: wrap !important;
1468 | flex-wrap: wrap !important;
1469 | }
1470 | .flex-xl-nowrap {
1471 | -ms-flex-wrap: nowrap !important;
1472 | flex-wrap: nowrap !important;
1473 | }
1474 | .flex-xl-wrap-reverse {
1475 | -ms-flex-wrap: wrap-reverse !important;
1476 | flex-wrap: wrap-reverse !important;
1477 | }
1478 | .justify-content-xl-start {
1479 | -ms-flex-pack: start !important;
1480 | justify-content: flex-start !important;
1481 | }
1482 | .justify-content-xl-end {
1483 | -ms-flex-pack: end !important;
1484 | justify-content: flex-end !important;
1485 | }
1486 | .justify-content-xl-center {
1487 | -ms-flex-pack: center !important;
1488 | justify-content: center !important;
1489 | }
1490 | .justify-content-xl-between {
1491 | -ms-flex-pack: justify !important;
1492 | justify-content: space-between !important;
1493 | }
1494 | .justify-content-xl-around {
1495 | -ms-flex-pack: distribute !important;
1496 | justify-content: space-around !important;
1497 | }
1498 | .align-items-xl-start {
1499 | -ms-flex-align: start !important;
1500 | align-items: flex-start !important;
1501 | }
1502 | .align-items-xl-end {
1503 | -ms-flex-align: end !important;
1504 | align-items: flex-end !important;
1505 | }
1506 | .align-items-xl-center {
1507 | -ms-flex-align: center !important;
1508 | align-items: center !important;
1509 | }
1510 | .align-items-xl-baseline {
1511 | -ms-flex-align: baseline !important;
1512 | align-items: baseline !important;
1513 | }
1514 | .align-items-xl-stretch {
1515 | -ms-flex-align: stretch !important;
1516 | align-items: stretch !important;
1517 | }
1518 | .align-content-xl-start {
1519 | -ms-flex-line-pack: start !important;
1520 | align-content: flex-start !important;
1521 | }
1522 | .align-content-xl-end {
1523 | -ms-flex-line-pack: end !important;
1524 | align-content: flex-end !important;
1525 | }
1526 | .align-content-xl-center {
1527 | -ms-flex-line-pack: center !important;
1528 | align-content: center !important;
1529 | }
1530 | .align-content-xl-between {
1531 | -ms-flex-line-pack: justify !important;
1532 | align-content: space-between !important;
1533 | }
1534 | .align-content-xl-around {
1535 | -ms-flex-line-pack: distribute !important;
1536 | align-content: space-around !important;
1537 | }
1538 | .align-content-xl-stretch {
1539 | -ms-flex-line-pack: stretch !important;
1540 | align-content: stretch !important;
1541 | }
1542 | .align-self-xl-auto {
1543 | -ms-flex-item-align: auto !important;
1544 | align-self: auto !important;
1545 | }
1546 | .align-self-xl-start {
1547 | -ms-flex-item-align: start !important;
1548 | align-self: flex-start !important;
1549 | }
1550 | .align-self-xl-end {
1551 | -ms-flex-item-align: end !important;
1552 | align-self: flex-end !important;
1553 | }
1554 | .align-self-xl-center {
1555 | -ms-flex-item-align: center !important;
1556 | align-self: center !important;
1557 | }
1558 | .align-self-xl-baseline {
1559 | -ms-flex-item-align: baseline !important;
1560 | align-self: baseline !important;
1561 | }
1562 | .align-self-xl-stretch {
1563 | -ms-flex-item-align: stretch !important;
1564 | align-self: stretch !important;
1565 | }
1566 | }
1567 | /*# sourceMappingURL=bootstrap-grid.css.map */
--------------------------------------------------------------------------------
/src/js/bootstrap.bundle.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v4.0.0-beta.2 (https://getbootstrap.com)
3 | * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 | */
6 | var bootstrap=function(t,e){"use strict";function n(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=t.nodeName;if("BODY"===n||"HTML"===n){var i=window.document.documentElement;return(window.document.scrollingElement||i)[e]}return t[e]}function u(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=h(e,"top"),r=h(e,"left"),o=n?-1:1;return t.top+=i*o,t.bottom+=i*o,t.left+=r*o,t.right+=r*o,t}function d(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return+t["border"+n+"Width"].split("px")[0]+ +t["border"+i+"Width"].split("px")[0]}function p(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],lt()?n["offset"+t]+i["margin"+("Height"===t?"Top":"Left")]+i["margin"+("Height"===t?"Bottom":"Right")]:0)}function g(){var t=window.document.body,e=window.document.documentElement,n=lt()&&window.getComputedStyle(e);return{height:p("Height",t,e,n),width:p("Width",t,e,n)}}function m(t){return ut({},t,{right:t.left+t.width,bottom:t.top+t.height})}function _(t){var e={};if(lt())try{e=t.getBoundingClientRect();var n=h(t,"top"),i=h(t,"left");e.top+=n,e.left+=i,e.bottom+=n,e.right+=i}catch(t){}else e=t.getBoundingClientRect();var o={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},s="HTML"===t.nodeName?g():{},a=s.width||t.clientWidth||o.right-o.left,l=s.height||t.clientHeight||o.bottom-o.top,c=t.offsetWidth-a,f=t.offsetHeight-l;if(c||f){var u=r(t);c-=d(u,"x"),f-=d(u,"y"),o.width-=c,o.height-=f}return m(o)}function v(t,e){var n=lt(),i="HTML"===e.nodeName,o=_(t),a=_(e),l=s(t),c=r(e),f=+c.borderTopWidth.split("px")[0],h=+c.borderLeftWidth.split("px")[0],d=m({top:o.top-a.top-f,left:o.left-a.left-h,width:o.width,height:o.height});if(d.marginTop=0,d.marginLeft=0,!n&&i){var p=+c.marginTop.split("px")[0],g=+c.marginLeft.split("px")[0];d.top-=f-p,d.bottom-=f-p,d.left-=h-g,d.right-=h-g,d.marginTop=p,d.marginLeft=g}return(n?e.contains(l):e===l&&"BODY"!==l.nodeName)&&(d=u(d,e)),d}function E(t){var e=window.document.documentElement,n=v(t,e),i=Math.max(e.clientWidth,window.innerWidth||0),r=Math.max(e.clientHeight,window.innerHeight||0),o=h(e),s=h(e,"left");return m({top:o-n.top+n.marginTop,left:s-n.left+n.marginLeft,width:i,height:r})}function T(t){var e=t.nodeName;return"BODY"!==e&&"HTML"!==e&&("fixed"===r(t,"position")||T(o(t)))}function b(t,e,n,i){var r={top:0,left:0},a=f(t,e);if("viewport"===i)r=E(a);else{var l=void 0;"scrollParent"===i?"BODY"===(l=s(o(t))).nodeName&&(l=window.document.documentElement):l="window"===i?window.document.documentElement:i;var c=v(l,a);if("HTML"!==l.nodeName||T(a))r=c;else{var h=g(),u=h.height,d=h.width;r.top+=c.top-c.marginTop,r.bottom=u+c.top,r.left+=c.left-c.marginLeft,r.right=d+c.left}}return r.left+=n,r.top+=n,r.right-=n,r.bottom-=n,r}function C(t){return t.width*t.height}function A(t,e,n,i,r){var o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var s=b(n,i,o,r),a={top:{width:s.width,height:e.top-s.top},right:{width:s.right-e.right,height:s.height},bottom:{width:s.width,height:s.bottom-e.bottom},left:{width:e.left-s.left,height:s.height}},l=Object.keys(a).map(function(t){return ut({key:t},a[t],{area:C(a[t])})}).sort(function(t,e){return e.area-t.area}),c=l.filter(function(t){var e=t.width,i=t.height;return e>=n.clientWidth&&i>=n.clientHeight}),f=c.length>0?c[0].key:l[0].key,h=t.split("-")[1];return f+(h?"-"+h:"")}function I(t,e,n){return v(n,f(e,n))}function O(t){var e=window.getComputedStyle(t),n=parseFloat(e.marginTop)+parseFloat(e.marginBottom),i=parseFloat(e.marginLeft)+parseFloat(e.marginRight);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}function y(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,function(t){return e[t]})}function D(t,e,n){n=n.split("-")[0];var i=O(t),r={width:i.width,height:i.height},o=-1!==["right","left"].indexOf(n),s=o?"top":"left",a=o?"left":"top",l=o?"height":"width",c=o?"width":"height";return r[s]=e[s]+e[l]/2-i[l]/2,r[a]=n===a?e[a]-i[c]:e[y(a)],r}function S(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function w(t,e,n){if(Array.prototype.findIndex)return t.findIndex(function(t){return t[e]===n});var i=S(t,function(t){return t[e]===n});return t.indexOf(i)}function N(t,e,n){return(void 0===n?t:t.slice(0,w(t,"name",n))).forEach(function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=t.function||t.fn;t.enabled&&i(n)&&(e.offsets.popper=m(e.offsets.popper),e.offsets.reference=m(e.offsets.reference),e=n(e,t))}),e}function L(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=I(this.state,this.popper,this.reference),t.placement=A(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.offsets.popper=D(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position="absolute",t=N(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}function P(t,e){return t.some(function(t){var n=t.name;return t.enabled&&n===e})}function R(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i1&&void 0!==arguments[1]&&arguments[1],n=pt.indexOf(t),i=pt.slice(n+1).concat(pt.slice(0,n));return e?i.reverse():i}function Q(t,e,n,i){var r=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),o=+r[1],s=r[2];if(!o)return t;if(0===s.indexOf("%")){var a=void 0;switch(s){case"%p":a=n;break;case"%":case"%r":default:a=i}return m(a)[e]/100*o}if("vh"===s||"vw"===s){return("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*o}return o}function Y(t,e,n,i){var r=[0,0],o=-1!==["right","left"].indexOf(i),s=t.split(/(\+|\-)/).map(function(t){return t.trim()}),a=s.indexOf(S(s,function(t){return-1!==t.search(/,|\s/)}));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==a?[s.slice(0,a).concat([s[a].split(l)[0]]),[s[a].split(l)[1]].concat(s.slice(a+1))]:[s];return(c=c.map(function(t,i){var r=(1===i?!o:o)?"height":"width",s=!1;return t.reduce(function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,s=!0,t):s?(t[t.length-1]+=e,s=!1,t):t.concat(e)},[]).map(function(t){return Q(t,r,e,n)})})).forEach(function(t,e){t.forEach(function(n,i){V(n)&&(r[e]+=n*("-"===t[i-1]?-1:1))})}),r}e=e&&e.hasOwnProperty("default")?e.default:e;for(var X=function(){function t(t){return{}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function n(){return{bindType:o.end,delegateType:o.end,handle:function(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}}}function i(){if(window.QUnit)return!1;var t=document.createElement("bootstrap");for(var e in s)if("undefined"!=typeof t.style[e])return{end:s[e]};return!1}function r(t){var n=this,i=!1;return e(this).one(a.TRANSITION_END,function(){i=!0}),setTimeout(function(){i||a.triggerTransitionEnd(n)},t),this}var o=!1,s={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},a={TRANSITION_END:"bsTransitionEnd",getUID:function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},getSelectorFromElement:function(t){var n=t.getAttribute("data-target");n&&"#"!==n||(n=t.getAttribute("href")||"");try{return e(document).find(n).length>0?n:null}catch(t){return null}},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){e(t).trigger(o.end)},supportsTransitionEnd:function(){return Boolean(o)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(e,n,i){for(var r in i)if(Object.prototype.hasOwnProperty.call(i,r)){var o=i[r],s=n[r],l=s&&a.isElement(s)?"element":t(s);if(!new RegExp(o).test(l))throw new Error(e.toUpperCase()+': Option "'+r+'" provided type "'+l+'" but expected type "'+o+'".')}}};return o=i(),e.fn.emulateTransitionEnd=r,a.supportsTransitionEnd()&&(e.event.special[a.TRANSITION_END]=n()),a}(),q=function(t,e,i){return e&&n(t.prototype,e),i&&n(t,i),t},z=function(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e},Z=function(){var t="alert",n=e.fn[t],i={CLOSE:"close.bs.alert",CLOSED:"closed.bs.alert",CLICK_DATA_API:"click.bs.alert.data-api"},r={ALERT:"alert",FADE:"fade",SHOW:"show"},o=function(){function t(t){this._element=t}var n=t.prototype;return n.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},n.dispose=function(){e.removeData(this._element,"bs.alert"),this._element=null},n._getRootElement=function(t){var n=X.getSelectorFromElement(t),i=!1;return n&&(i=e(n)[0]),i||(i=e(t).closest("."+r.ALERT)[0]),i},n._triggerCloseEvent=function(t){var n=e.Event(i.CLOSE);return e(t).trigger(n),n},n._removeElement=function(t){var n=this;e(t).removeClass(r.SHOW),X.supportsTransitionEnd()&&e(t).hasClass(r.FADE)?e(t).one(X.TRANSITION_END,function(e){return n._destroyElement(t,e)}).emulateTransitionEnd(150):this._destroyElement(t)},n._destroyElement=function(t){e(t).detach().trigger(i.CLOSED).remove()},t._jQueryInterface=function(n){return this.each(function(){var i=e(this),r=i.data("bs.alert");r||(r=new t(this),i.data("bs.alert",r)),"close"===n&&r[n](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},q(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(i.CLICK_DATA_API,{DISMISS:'[data-dismiss="alert"]'}.DISMISS,o._handleDismiss(new o)),e.fn[t]=o._jQueryInterface,e.fn[t].Constructor=o,e.fn[t].noConflict=function(){return e.fn[t]=n,o._jQueryInterface},o}(),J=function(){var t="button",n=e.fn[t],i={ACTIVE:"active",BUTTON:"btn",FOCUS:"focus"},r={DATA_TOGGLE_CARROT:'[data-toggle^="button"]',DATA_TOGGLE:'[data-toggle="buttons"]',INPUT:"input",ACTIVE:".active",BUTTON:".btn"},o={CLICK_DATA_API:"click.bs.button.data-api",FOCUS_BLUR_DATA_API:"focus.bs.button.data-api blur.bs.button.data-api"},s=function(){function t(t){this._element=t}var n=t.prototype;return n.toggle=function(){var t=!0,n=!0,o=e(this._element).closest(r.DATA_TOGGLE)[0];if(o){var s=e(this._element).find(r.INPUT)[0];if(s){if("radio"===s.type)if(s.checked&&e(this._element).hasClass(i.ACTIVE))t=!1;else{var a=e(o).find(r.ACTIVE)[0];a&&e(a).removeClass(i.ACTIVE)}if(t){if(s.hasAttribute("disabled")||o.hasAttribute("disabled")||s.classList.contains("disabled")||o.classList.contains("disabled"))return;s.checked=!e(this._element).hasClass(i.ACTIVE),e(s).trigger("change")}s.focus(),n=!1}}n&&this._element.setAttribute("aria-pressed",!e(this._element).hasClass(i.ACTIVE)),t&&e(this._element).toggleClass(i.ACTIVE)},n.dispose=function(){e.removeData(this._element,"bs.button"),this._element=null},t._jQueryInterface=function(n){return this.each(function(){var i=e(this).data("bs.button");i||(i=new t(this),e(this).data("bs.button",i)),"toggle"===n&&i[n]()})},q(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(o.CLICK_DATA_API,r.DATA_TOGGLE_CARROT,function(t){t.preventDefault();var n=t.target;e(n).hasClass(i.BUTTON)||(n=e(n).closest(r.BUTTON)),s._jQueryInterface.call(e(n),"toggle")}).on(o.FOCUS_BLUR_DATA_API,r.DATA_TOGGLE_CARROT,function(t){var n=e(t.target).closest(r.BUTTON)[0];e(n).toggleClass(i.FOCUS,/^focus(in)?$/.test(t.type))}),e.fn[t]=s._jQueryInterface,e.fn[t].Constructor=s,e.fn[t].noConflict=function(){return e.fn[t]=n,s._jQueryInterface},s}(),$=function(){var t="carousel",n="bs.carousel",i="."+n,r=e.fn[t],o={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},s={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},a={NEXT:"next",PREV:"prev",LEFT:"left",RIGHT:"right"},l={SLIDE:"slide"+i,SLID:"slid"+i,KEYDOWN:"keydown"+i,MOUSEENTER:"mouseenter"+i,MOUSELEAVE:"mouseleave"+i,TOUCHEND:"touchend"+i,LOAD_DATA_API:"load.bs.carousel.data-api",CLICK_DATA_API:"click.bs.carousel.data-api"},c={CAROUSEL:"carousel",ACTIVE:"active",SLIDE:"slide",RIGHT:"carousel-item-right",LEFT:"carousel-item-left",NEXT:"carousel-item-next",PREV:"carousel-item-prev",ITEM:"carousel-item"},f={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},h=function(){function r(t,n){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(n),this._element=e(t)[0],this._indicatorsElement=e(this._element).find(f.INDICATORS)[0],this._addEventListeners()}var h=r.prototype;return h.next=function(){this._isSliding||this._slide(a.NEXT)},h.nextWhenVisible=function(){!document.hidden&&e(this._element).is(":visible")&&"hidden"!==e(this._element).css("visibility")&&this.next()},h.prev=function(){this._isSliding||this._slide(a.PREV)},h.pause=function(t){t||(this._isPaused=!0),e(this._element).find(f.NEXT_PREV)[0]&&X.supportsTransitionEnd()&&(X.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},h.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},h.to=function(t){var n=this;this._activeElement=e(this._element).find(f.ACTIVE_ITEM)[0];var i=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)e(this._element).one(l.SLID,function(){return n.to(t)});else{if(i===t)return this.pause(),void this.cycle();var r=t>i?a.NEXT:a.PREV;this._slide(r,this._items[t])}},h.dispose=function(){e(this._element).off(i),e.removeData(this._element,n),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},h._getConfig=function(n){return n=e.extend({},o,n),X.typeCheckConfig(t,n,s),n},h._addEventListeners=function(){var t=this;this._config.keyboard&&e(this._element).on(l.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&(e(this._element).on(l.MOUSEENTER,function(e){return t.pause(e)}).on(l.MOUSELEAVE,function(e){return t.cycle(e)}),"ontouchstart"in document.documentElement&&e(this._element).on(l.TOUCHEND,function(){t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval)}))},h._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next();break;default:return}},h._getItemIndex=function(t){return this._items=e.makeArray(e(t).parent().find(f.ITEM)),this._items.indexOf(t)},h._getItemByDirection=function(t,e){var n=t===a.NEXT,i=t===a.PREV,r=this._getItemIndex(e),o=this._items.length-1;if((i&&0===r||n&&r===o)&&!this._config.wrap)return e;var s=(r+(t===a.PREV?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},h._triggerSlideEvent=function(t,n){var i=this._getItemIndex(t),r=this._getItemIndex(e(this._element).find(f.ACTIVE_ITEM)[0]),o=e.Event(l.SLIDE,{relatedTarget:t,direction:n,from:r,to:i});return e(this._element).trigger(o),o},h._setActiveIndicatorElement=function(t){if(this._indicatorsElement){e(this._indicatorsElement).find(f.ACTIVE).removeClass(c.ACTIVE);var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&e(n).addClass(c.ACTIVE)}},h._slide=function(t,n){var i,r,o,s=this,h=e(this._element).find(f.ACTIVE_ITEM)[0],u=this._getItemIndex(h),d=n||h&&this._getItemByDirection(t,h),p=this._getItemIndex(d),g=Boolean(this._interval);if(t===a.NEXT?(i=c.LEFT,r=c.NEXT,o=a.LEFT):(i=c.RIGHT,r=c.PREV,o=a.RIGHT),d&&e(d).hasClass(c.ACTIVE))this._isSliding=!1;else if(!this._triggerSlideEvent(d,o).isDefaultPrevented()&&h&&d){this._isSliding=!0,g&&this.pause(),this._setActiveIndicatorElement(d);var m=e.Event(l.SLID,{relatedTarget:d,direction:o,from:u,to:p});X.supportsTransitionEnd()&&e(this._element).hasClass(c.SLIDE)?(e(d).addClass(r),X.reflow(d),e(h).addClass(i),e(d).addClass(i),e(h).one(X.TRANSITION_END,function(){e(d).removeClass(i+" "+r).addClass(c.ACTIVE),e(h).removeClass(c.ACTIVE+" "+r+" "+i),s._isSliding=!1,setTimeout(function(){return e(s._element).trigger(m)},0)}).emulateTransitionEnd(600)):(e(h).removeClass(c.ACTIVE),e(d).addClass(c.ACTIVE),this._isSliding=!1,e(this._element).trigger(m)),g&&this.cycle()}},r._jQueryInterface=function(t){return this.each(function(){var i=e(this).data(n),s=e.extend({},o,e(this).data());"object"==typeof t&&e.extend(s,t);var a="string"==typeof t?t:s.slide;if(i||(i=new r(this,s),e(this).data(n,i)),"number"==typeof t)i.to(t);else if("string"==typeof a){if("undefined"==typeof i[a])throw new Error('No method named "'+a+'"');i[a]()}else s.interval&&(i.pause(),i.cycle())})},r._dataApiClickHandler=function(t){var i=X.getSelectorFromElement(this);if(i){var o=e(i)[0];if(o&&e(o).hasClass(c.CAROUSEL)){var s=e.extend({},e(o).data(),e(this).data()),a=this.getAttribute("data-slide-to");a&&(s.interval=!1),r._jQueryInterface.call(e(o),s),a&&e(o).data(n).to(a),t.preventDefault()}}},q(r,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return o}}]),r}();return e(document).on(l.CLICK_DATA_API,f.DATA_SLIDE,h._dataApiClickHandler),e(window).on(l.LOAD_DATA_API,function(){e(f.DATA_RIDE).each(function(){var t=e(this);h._jQueryInterface.call(t,t.data())})}),e.fn[t]=h._jQueryInterface,e.fn[t].Constructor=h,e.fn[t].noConflict=function(){return e.fn[t]=r,h._jQueryInterface},h}(),tt=function(){var t="collapse",n="bs.collapse",i=e.fn[t],r={toggle:!0,parent:""},o={toggle:"boolean",parent:"(string|element)"},s={SHOW:"show.bs.collapse",SHOWN:"shown.bs.collapse",HIDE:"hide.bs.collapse",HIDDEN:"hidden.bs.collapse",CLICK_DATA_API:"click.bs.collapse.data-api"},a={SHOW:"show",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed"},l={WIDTH:"width",HEIGHT:"height"},c={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},f=function(){function i(t,n){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(n),this._triggerArray=e.makeArray(e('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var i=e(c.DATA_TOGGLE),r=0;r0&&this._triggerArray.push(o)}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var f=i.prototype;return f.toggle=function(){e(this._element).hasClass(a.SHOW)?this.hide():this.show()},f.show=function(){var t=this;if(!this._isTransitioning&&!e(this._element).hasClass(a.SHOW)){var r,o;if(this._parent&&((r=e.makeArray(e(this._parent).children().children(c.ACTIVES))).length||(r=null)),!(r&&(o=e(r).data(n))&&o._isTransitioning)){var l=e.Event(s.SHOW);if(e(this._element).trigger(l),!l.isDefaultPrevented()){r&&(i._jQueryInterface.call(e(r),"hide"),o||e(r).data(n,null));var f=this._getDimension();e(this._element).removeClass(a.COLLAPSE).addClass(a.COLLAPSING),this._element.style[f]=0,this._triggerArray.length&&e(this._triggerArray).removeClass(a.COLLAPSED).attr("aria-expanded",!0),this.setTransitioning(!0);var h=function(){e(t._element).removeClass(a.COLLAPSING).addClass(a.COLLAPSE).addClass(a.SHOW),t._element.style[f]="",t.setTransitioning(!1),e(t._element).trigger(s.SHOWN)};if(X.supportsTransitionEnd()){var u="scroll"+(f[0].toUpperCase()+f.slice(1));e(this._element).one(X.TRANSITION_END,h).emulateTransitionEnd(600),this._element.style[f]=this._element[u]+"px"}else h()}}}},f.hide=function(){var t=this;if(!this._isTransitioning&&e(this._element).hasClass(a.SHOW)){var n=e.Event(s.HIDE);if(e(this._element).trigger(n),!n.isDefaultPrevented()){var i=this._getDimension();if(this._element.style[i]=this._element.getBoundingClientRect()[i]+"px",X.reflow(this._element),e(this._element).addClass(a.COLLAPSING).removeClass(a.COLLAPSE).removeClass(a.SHOW),this._triggerArray.length)for(var r=0;r=0){rt=1;break}var st=nt&&function(t){return et.some(function(e){return(t||"").toString().indexOf(e)>-1})}(window.MutationObserver)?function(t){var e=!1,n=0,i=document.createElement("span");return new MutationObserver(function(){t(),e=!1}).observe(i,{attributes:!0}),function(){e||(e=!0,i.setAttribute("x-index",n),n+=1)}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},rt))}},at=void 0,lt=function(){return void 0===at&&(at=-1!==navigator.appVersion.indexOf("MSIE 10")),at},ct=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},ft=function(){function t(t,e){for(var n=0;ni[t]&&!e.escapeWithReference&&(r=Math.min(o[n],i[t]-("right"===t?o.width:o.height))),ht({},n,r)}};return r.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";o=ut({},o,s[e](t))}),t.offsets.popper=o,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,r=t.placement.split("-")[0],o=Math.floor,s=-1!==["top","bottom"].indexOf(r),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]o(i[a])&&(t.offsets.popper[l]=o(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){if(!B(t.instance.modifiers,"arrow","keepTogether"))return t;var n=e.element;if("string"==typeof n){if(!(n=t.instance.popper.querySelector(n)))return t}else if(!t.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var i=t.placement.split("-")[0],o=t.offsets,s=o.popper,a=o.reference,l=-1!==["left","right"].indexOf(i),c=l?"height":"width",f=l?"Top":"Left",h=f.toLowerCase(),u=l?"left":"top",d=l?"bottom":"right",p=O(n)[c];a[d]-ps[d]&&(t.offsets.popper[h]+=a[h]+p-s[d]);var g=a[h]+a[c]/2-p/2,_=r(t.instance.popper,"margin"+f).replace("px",""),v=g-m(t.offsets.popper)[h]-_;return v=Math.max(Math.min(s[c]-p,v),0),t.arrowElement=n,t.offsets.arrow={},t.offsets.arrow[h]=Math.round(v),t.offsets.arrow[u]="",t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(P(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=b(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement),i=t.placement.split("-")[0],r=y(i),o=t.placement.split("-")[1]||"",s=[];switch(e.behavior){case gt.FLIP:s=[i,r];break;case gt.CLOCKWISE:s=K(i);break;case gt.COUNTERCLOCKWISE:s=K(i,!0);break;default:s=e.behavior}return s.forEach(function(a,l){if(i!==a||s.length===l+1)return t;i=t.placement.split("-")[0],r=y(i);var c=t.offsets.popper,f=t.offsets.reference,h=Math.floor,u="left"===i&&h(c.right)>h(f.left)||"right"===i&&h(c.left)h(f.top)||"bottom"===i&&h(c.top)h(n.right),g=h(c.top)h(n.bottom),_="left"===i&&d||"right"===i&&p||"top"===i&&g||"bottom"===i&&m,v=-1!==["top","bottom"].indexOf(i),E=!!e.flipVariations&&(v&&"start"===o&&d||v&&"end"===o&&p||!v&&"start"===o&&g||!v&&"end"===o&&m);(u||_||E)&&(t.flipped=!0,(u||_)&&(i=s[l+1]),E&&(o=G(o)),t.placement=i+(o?"-"+o:""),t.offsets.popper=ut({},t.offsets.popper,D(t.instance.popper,t.offsets.reference,t.placement)),t=N(t.instance.modifiers,t,"flip"))}),t},behavior:"flip",padding:5,boundariesElement:"viewport"},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,r=i.popper,o=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return r[s?"left":"top"]=o[n]-(a?r[s?"width":"height"]:0),t.placement=y(e),t.offsets.popper=m(r),t}},hide:{order:800,enabled:!0,fn:function(t){if(!B(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=S(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottomn.right||e.top>n.bottom||e.right2&&void 0!==arguments[2]?arguments[2]:{};ct(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(r.update)},this.update=st(this.update.bind(this)),this.options=ut({},t.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e.jquery?e[0]:e,this.popper=n.jquery?n[0]:n,this.options.modifiers={},Object.keys(ut({},t.Defaults.modifiers,o.modifiers)).forEach(function(e){r.options.modifiers[e]=ut({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return ut({name:t},r.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&i(t.onLoad)&&t.onLoad(r.reference,r.popper,r.options,t,r.state)}),this.update();var s=this.options.eventsEnabled;s&&this.enableEventListeners(),this.state.eventsEnabled=s}return ft(t,[{key:"update",value:function(){return L.call(this)}},{key:"destroy",value:function(){return H.call(this)}},{key:"enableEventListeners",value:function(){return x.call(this)}},{key:"disableEventListeners",value:function(){return U.call(this)}}]),t}();_t.Utils=("undefined"!=typeof window?window:global).PopperUtils,_t.placements=dt,_t.Defaults=mt;var vt=function(){if("undefined"==typeof _t)throw new Error("Bootstrap dropdown require Popper.js (https://popper.js.org)");var t="dropdown",n="bs.dropdown",i="."+n,r=e.fn[t],o=new RegExp("38|40|27"),s={HIDE:"hide"+i,HIDDEN:"hidden"+i,SHOW:"show"+i,SHOWN:"shown"+i,CLICK:"click"+i,CLICK_DATA_API:"click.bs.dropdown.data-api",KEYDOWN_DATA_API:"keydown.bs.dropdown.data-api",KEYUP_DATA_API:"keyup.bs.dropdown.data-api"},a={DISABLED:"disabled",SHOW:"show",DROPUP:"dropup",MENURIGHT:"dropdown-menu-right",MENULEFT:"dropdown-menu-left"},l={DATA_TOGGLE:'[data-toggle="dropdown"]',FORM_CHILD:".dropdown form",MENU:".dropdown-menu",NAVBAR_NAV:".navbar-nav",VISIBLE_ITEMS:".dropdown-menu .dropdown-item:not(.disabled)"},c={TOP:"top-start",TOPEND:"top-end",BOTTOM:"bottom-start",BOTTOMEND:"bottom-end"},f={offset:0,flip:!0},h={offset:"(number|string|function)",flip:"boolean"},u=function(){function r(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var u=r.prototype;return u.toggle=function(){if(!this._element.disabled&&!e(this._element).hasClass(a.DISABLED)){var t=r._getParentFromElement(this._element),n=e(this._menu).hasClass(a.SHOW);if(r._clearMenus(),!n){var i={relatedTarget:this._element},o=e.Event(s.SHOW,i);if(e(t).trigger(o),!o.isDefaultPrevented()){var c=this._element;e(t).hasClass(a.DROPUP)&&(e(this._menu).hasClass(a.MENULEFT)||e(this._menu).hasClass(a.MENURIGHT))&&(c=t),this._popper=new _t(c,this._menu,this._getPopperConfig()),"ontouchstart"in document.documentElement&&!e(t).closest(l.NAVBAR_NAV).length&&e("body").children().on("mouseover",null,e.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),e(this._menu).toggleClass(a.SHOW),e(t).toggleClass(a.SHOW).trigger(e.Event(s.SHOWN,i))}}}},u.dispose=function(){e.removeData(this._element,n),e(this._element).off(i),this._element=null,this._menu=null,null!==this._popper&&this._popper.destroy(),this._popper=null},u.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},u._addEventListeners=function(){var t=this;e(this._element).on(s.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},u._getConfig=function(n){return n=e.extend({},this.constructor.Default,e(this._element).data(),n),X.typeCheckConfig(t,n,this.constructor.DefaultType),n},u._getMenuElement=function(){if(!this._menu){var t=r._getParentFromElement(this._element);this._menu=e(t).find(l.MENU)[0]}return this._menu},u._getPlacement=function(){var t=e(this._element).parent(),n=c.BOTTOM;return t.hasClass(a.DROPUP)?(n=c.TOP,e(this._menu).hasClass(a.MENURIGHT)&&(n=c.TOPEND)):e(this._menu).hasClass(a.MENURIGHT)&&(n=c.BOTTOMEND),n},u._detectNavbar=function(){return e(this._element).closest(".navbar").length>0},u._getPopperConfig=function(){var t=this,n={};"function"==typeof this._config.offset?n.fn=function(n){return n.offsets=e.extend({},n.offsets,t._config.offset(n.offsets)||{}),n}:n.offset=this._config.offset;var i={placement:this._getPlacement(),modifiers:{offset:n,flip:{enabled:this._config.flip}}};return this._inNavbar&&(i.modifiers.applyStyle={enabled:!this._inNavbar}),i},r._jQueryInterface=function(t){return this.each(function(){var i=e(this).data(n),o="object"==typeof t?t:null;if(i||(i=new r(this,o),e(this).data(n,i)),"string"==typeof t){if("undefined"==typeof i[t])throw new Error('No method named "'+t+'"');i[t]()}})},r._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var i=e.makeArray(e(l.DATA_TOGGLE)),o=0;o0&&c--,40===t.which&&cdocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},c._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},c._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip"},l={SHOW:"show",OUT:"out"},c={HIDE:"hide"+n,HIDDEN:"hidden"+n,SHOW:"show"+n,SHOWN:"shown"+n,INSERTED:"inserted"+n,CLICK:"click"+n,FOCUSIN:"focusin"+n,FOCUSOUT:"focusout"+n,MOUSEENTER:"mouseenter"+n,MOUSELEAVE:"mouseleave"+n},f={FADE:"fade",SHOW:"show"},h={TOOLTIP:".tooltip",TOOLTIP_INNER:".tooltip-inner",ARROW:".arrow"},u={HOVER:"hover",FOCUS:"focus",CLICK:"click",MANUAL:"manual"},d=function(){function i(t,e){this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var d=i.prototype;return d.enable=function(){this._isEnabled=!0},d.disable=function(){this._isEnabled=!1},d.toggleEnabled=function(){this._isEnabled=!this._isEnabled},d.toggle=function(t){if(this._isEnabled)if(t){var n=this.constructor.DATA_KEY,i=e(t.currentTarget).data(n);i||(i=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(e(this.getTipElement()).hasClass(f.SHOW))return void this._leave(null,this);this._enter(null,this)}},d.dispose=function(){clearTimeout(this._timeout),e.removeData(this.element,this.constructor.DATA_KEY),e(this.element).off(this.constructor.EVENT_KEY),e(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&e(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},d.show=function(){var t=this;if("none"===e(this.element).css("display"))throw new Error("Please use show on visible elements");var n=e.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){e(this.element).trigger(n);var r=e.contains(this.element.ownerDocument.documentElement,this.element);if(n.isDefaultPrevented()||!r)return;var o=this.getTipElement(),s=X.getUID(this.constructor.NAME);o.setAttribute("id",s),this.element.setAttribute("aria-describedby",s),this.setContent(),this.config.animation&&e(o).addClass(f.FADE);var a="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,c=this._getAttachment(a);this.addAttachmentClass(c);var u=!1===this.config.container?document.body:e(this.config.container);e(o).data(this.constructor.DATA_KEY,this),e.contains(this.element.ownerDocument.documentElement,this.tip)||e(o).appendTo(u),e(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new _t(this.element,o,{placement:c,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:h.ARROW}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){t._handlePopperPlacementChange(e)}}),e(o).addClass(f.SHOW),"ontouchstart"in document.documentElement&&e("body").children().on("mouseover",null,e.noop);var d=function(){t.config.animation&&t._fixTransition();var n=t._hoverState;t._hoverState=null,e(t.element).trigger(t.constructor.Event.SHOWN),n===l.OUT&&t._leave(null,t)};X.supportsTransitionEnd()&&e(this.tip).hasClass(f.FADE)?e(this.tip).one(X.TRANSITION_END,d).emulateTransitionEnd(i._TRANSITION_DURATION):d()}},d.hide=function(t){var n=this,i=this.getTipElement(),r=e.Event(this.constructor.Event.HIDE),o=function(){n._hoverState!==l.SHOW&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),e(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),t&&t()};e(this.element).trigger(r),r.isDefaultPrevented()||(e(i).removeClass(f.SHOW),"ontouchstart"in document.documentElement&&e("body").children().off("mouseover",null,e.noop),this._activeTrigger[u.CLICK]=!1,this._activeTrigger[u.FOCUS]=!1,this._activeTrigger[u.HOVER]=!1,X.supportsTransitionEnd()&&e(this.tip).hasClass(f.FADE)?e(i).one(X.TRANSITION_END,o).emulateTransitionEnd(150):o(),this._hoverState="")},d.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},d.isWithContent=function(){return Boolean(this.getTitle())},d.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-tooltip-"+t)},d.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},d.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(h.TOOLTIP_INNER),this.getTitle()),t.removeClass(f.FADE+" "+f.SHOW)},d.setElementContent=function(t,n){var i=this.config.html;"object"==typeof n&&(n.nodeType||n.jquery)?i?e(n).parent().is(t)||t.empty().append(n):t.text(e(n).text()):t[i?"html":"text"](n)},d.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},d._getAttachment=function(t){return s[t.toUpperCase()]},d._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(n){if("click"===n)e(t.element).on(t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if(n!==u.MANUAL){var i=n===u.HOVER?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,r=n===u.HOVER?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;e(t.element).on(i,t.config.selector,function(e){return t._enter(e)}).on(r,t.config.selector,function(e){return t._leave(e)})}e(t.element).closest(".modal").on("hide.bs.modal",function(){return t.hide()})}),this.config.selector?this.config=e.extend({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},d._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},d._enter=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusin"===t.type?u.FOCUS:u.HOVER]=!0),e(n.getTipElement()).hasClass(f.SHOW)||n._hoverState===l.SHOW?n._hoverState=l.SHOW:(clearTimeout(n._timeout),n._hoverState=l.SHOW,n.config.delay&&n.config.delay.show?n._timeout=setTimeout(function(){n._hoverState===l.SHOW&&n.show()},n.config.delay.show):n.show())},d._leave=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusout"===t.type?u.FOCUS:u.HOVER]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState=l.OUT,n.config.delay&&n.config.delay.hide?n._timeout=setTimeout(function(){n._hoverState===l.OUT&&n.hide()},n.config.delay.hide):n.hide())},d._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},d._getConfig=function(n){return"number"==typeof(n=e.extend({},this.constructor.Default,e(this.element).data(),n)).delay&&(n.delay={show:n.delay,hide:n.delay}),"number"==typeof n.title&&(n.title=n.title.toString()),"number"==typeof n.content&&(n.content=n.content.toString()),X.typeCheckConfig(t,n,this.constructor.DefaultType),n},d._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},d._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(r);null!==n&&n.length>0&&t.removeClass(n.join(""))},d._handlePopperPlacementChange=function(t){this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},d._fixTransition=function(){var t=this.getTipElement(),n=this.config.animation;null===t.getAttribute("x-placement")&&(e(t).removeClass(f.FADE),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},i._jQueryInterface=function(t){return this.each(function(){var n=e(this).data("bs.tooltip"),r="object"==typeof t&&t;if((n||!/dispose|hide/.test(t))&&(n||(n=new i(this,r),e(this).data("bs.tooltip",n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new Error('No method named "'+t+'"');n[t]()}})},q(i,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return a}},{key:"NAME",get:function(){return t}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return c}},{key:"EVENT_KEY",get:function(){return n}},{key:"DefaultType",get:function(){return o}}]),i}();return e.fn[t]=d._jQueryInterface,e.fn[t].Constructor=d,e.fn[t].noConflict=function(){return e.fn[t]=i,d._jQueryInterface},d}(),bt=function(){var t="popover",n=".bs.popover",i=e.fn[t],r=new RegExp("(^|\\s)bs-popover\\S+","g"),o=e.extend({},Tt.Default,{placement:"right",trigger:"click",content:"",template:''}),s=e.extend({},Tt.DefaultType,{content:"(string|element|function)"}),a={FADE:"fade",SHOW:"show"},l={TITLE:".popover-header",CONTENT:".popover-body"},c={HIDE:"hide"+n,HIDDEN:"hidden"+n,SHOW:"show"+n,SHOWN:"shown"+n,INSERTED:"inserted"+n,CLICK:"click"+n,FOCUSIN:"focusin"+n,FOCUSOUT:"focusout"+n,MOUSEENTER:"mouseenter"+n,MOUSELEAVE:"mouseleave"+n},f=function(i){function f(){return i.apply(this,arguments)||this}z(f,i);var h=f.prototype;return h.isWithContent=function(){return this.getTitle()||this._getContent()},h.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-popover-"+t)},h.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},h.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(l.TITLE),this.getTitle()),this.setElementContent(t.find(l.CONTENT),this._getContent()),t.removeClass(a.FADE+" "+a.SHOW)},h._getContent=function(){return this.element.getAttribute("data-content")||("function"==typeof this.config.content?this.config.content.call(this.element):this.config.content)},h._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(r);null!==n&&n.length>0&&t.removeClass(n.join(""))},f._jQueryInterface=function(t){return this.each(function(){var n=e(this).data("bs.popover"),i="object"==typeof t?t:null;if((n||!/destroy|hide/.test(t))&&(n||(n=new f(this,i),e(this).data("bs.popover",n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new Error('No method named "'+t+'"');n[t]()}})},q(f,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return o}},{key:"NAME",get:function(){return t}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return c}},{key:"EVENT_KEY",get:function(){return n}},{key:"DefaultType",get:function(){return s}}]),f}(Tt);return e.fn[t]=f._jQueryInterface,e.fn[t].Constructor=f,e.fn[t].noConflict=function(){return e.fn[t]=i,f._jQueryInterface},f}(),Ct=function(){var t="scrollspy",n=e.fn[t],i={offset:10,method:"auto",target:""},r={offset:"number",method:"string",target:"(string|element)"},o={ACTIVATE:"activate.bs.scrollspy",SCROLL:"scroll.bs.scrollspy",LOAD_DATA_API:"load.bs.scrollspy.data-api"},s={DROPDOWN_ITEM:"dropdown-item",DROPDOWN_MENU:"dropdown-menu",ACTIVE:"active"},a={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},l={OFFSET:"offset",POSITION:"position"},c=function(){function n(t,n){var i=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(n),this._selector=this._config.target+" "+a.NAV_LINKS+","+this._config.target+" "+a.LIST_ITEMS+","+this._config.target+" "+a.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,e(this._scrollElement).on(o.SCROLL,function(t){return i._process(t)}),this.refresh(),this._process()}var c=n.prototype;return c.refresh=function(){var t=this,n=this._scrollElement!==this._scrollElement.window?l.POSITION:l.OFFSET,i="auto"===this._config.method?n:this._config.method,r=i===l.POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),e.makeArray(e(this._selector)).map(function(t){var n,o=X.getSelectorFromElement(t);if(o&&(n=e(o)[0]),n){var s=n.getBoundingClientRect();if(s.width||s.height)return[e(n)[i]().top+r,o]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(e){t._offsets.push(e[0]),t._targets.push(e[1])})},c.dispose=function(){e.removeData(this._element,"bs.scrollspy"),e(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},c._getConfig=function(n){if("string"!=typeof(n=e.extend({},i,n)).target){var o=e(n.target).attr("id");o||(o=X.getUID(t),e(n.target).attr("id",o)),n.target="#"+o}return X.typeCheckConfig(t,n,r),n},c._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},c._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},c._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},c._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(var r=this._offsets.length;r--;)this._activeTarget!==this._targets[r]&&t>=this._offsets[r]&&("undefined"==typeof this._offsets[r+1]||t li > .active",DATA_TOGGLE:'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',DROPDOWN_TOGGLE:".dropdown-toggle",DROPDOWN_ACTIVE_CHILD:"> .dropdown-menu .active"},o=function(){function t(t){this._element=t}var o=t.prototype;return o.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&e(this._element).hasClass(i.ACTIVE)||e(this._element).hasClass(i.DISABLED))){var o,s,a=e(this._element).closest(r.NAV_LIST_GROUP)[0],l=X.getSelectorFromElement(this._element);if(a){var c="UL"===a.nodeName?r.ACTIVE_UL:r.ACTIVE;s=e.makeArray(e(a).find(c)),s=s[s.length-1]}var f=e.Event(n.HIDE,{relatedTarget:this._element}),h=e.Event(n.SHOW,{relatedTarget:s});if(s&&e(s).trigger(f),e(this._element).trigger(h),!h.isDefaultPrevented()&&!f.isDefaultPrevented()){l&&(o=e(l)[0]),this._activate(this._element,a);var u=function(){var i=e.Event(n.HIDDEN,{relatedTarget:t._element}),r=e.Event(n.SHOWN,{relatedTarget:s});e(s).trigger(i),e(t._element).trigger(r)};o?this._activate(o,o.parentNode,u):u()}}},o.dispose=function(){e.removeData(this._element,"bs.tab"),this._element=null},o._activate=function(t,n,o){var s,a=this,l=(s="UL"===n.nodeName?e(n).find(r.ACTIVE_UL):e(n).children(r.ACTIVE))[0],c=o&&X.supportsTransitionEnd()&&l&&e(l).hasClass(i.FADE),f=function(){return a._transitionComplete(t,l,c,o)};l&&c?e(l).one(X.TRANSITION_END,f).emulateTransitionEnd(150):f(),l&&e(l).removeClass(i.SHOW)},o._transitionComplete=function(t,n,o,s){if(n){e(n).removeClass(i.ACTIVE);var a=e(n.parentNode).find(r.DROPDOWN_ACTIVE_CHILD)[0];a&&e(a).removeClass(i.ACTIVE),"tab"===n.getAttribute("role")&&n.setAttribute("aria-selected",!1)}if(e(t).addClass(i.ACTIVE),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),o?(X.reflow(t),e(t).addClass(i.SHOW)):e(t).removeClass(i.FADE),t.parentNode&&e(t.parentNode).hasClass(i.DROPDOWN_MENU)){var l=e(t).closest(r.DROPDOWN)[0];l&&e(l).find(r.DROPDOWN_TOGGLE).addClass(i.ACTIVE),t.setAttribute("aria-expanded",!0)}s&&s()},t._jQueryInterface=function(n){return this.each(function(){var i=e(this),r=i.data("bs.tab");if(r||(r=new t(this),i.data("bs.tab",r)),"string"==typeof n){if("undefined"==typeof r[n])throw new Error('No method named "'+n+'"');r[n]()}})},q(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(n.CLICK_DATA_API,r.DATA_TOGGLE,function(t){t.preventDefault(),o._jQueryInterface.call(e(this),"show")}),e.fn.tab=o._jQueryInterface,e.fn.tab.Constructor=o,e.fn.tab.noConflict=function(){return e.fn.tab=t,o._jQueryInterface},o}();return function(){if("undefined"==typeof e)throw new Error("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||t[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(),t.Util=X,t.Alert=Z,t.Button=J,t.Carousel=$,t.Collapse=tt,t.Dropdown=vt,t.Modal=Et,t.Popover=bt,t.Scrollspy=Ct,t.Tab=At,t.Tooltip=Tt,t}({},$);
7 | //# sourceMappingURL=bootstrap.bundle.min.js.map
--------------------------------------------------------------------------------