From a34a261f84f8a559054713b8a4f61ebc25b3a777 Mon Sep 17 00:00:00 2001 From: Vivek Rao Date: Tue, 14 May 2024 11:27:41 -0400 Subject: [PATCH] Updates --- asset-manifest.json | 12 ++++++------ index.html | 2 +- static/css/main.32a41540.css.map | 1 - static/css/{main.32a41540.css => main.430210fe.css} | 4 ++-- static/css/main.430210fe.css.map | 1 + static/js/main.4755c9a2.js | 3 +++ ...f.js.LICENSE.txt => main.4755c9a2.js.LICENSE.txt} | 0 static/js/main.4755c9a2.js.map | 1 + static/js/main.ee69372f.js | 3 --- static/js/main.ee69372f.js.map | 1 - 10 files changed, 14 insertions(+), 14 deletions(-) delete mode 100644 static/css/main.32a41540.css.map rename static/css/{main.32a41540.css => main.430210fe.css} (73%) create mode 100644 static/css/main.430210fe.css.map create mode 100644 static/js/main.4755c9a2.js rename static/js/{main.ee69372f.js.LICENSE.txt => main.4755c9a2.js.LICENSE.txt} (100%) create mode 100644 static/js/main.4755c9a2.js.map delete mode 100644 static/js/main.ee69372f.js delete mode 100644 static/js/main.ee69372f.js.map diff --git a/asset-manifest.json b/asset-manifest.json index 7f835a7..0b32806 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -1,16 +1,16 @@ { "files": { - "main.css": "/nyt-sudoku/static/css/main.32a41540.css", - "main.js": "/nyt-sudoku/static/js/main.ee69372f.js", + "main.css": "/nyt-sudoku/static/css/main.430210fe.css", + "main.js": "/nyt-sudoku/static/js/main.4755c9a2.js", "static/media/garland__times.csv": "/nyt-sudoku/static/media/garland__times.9808f2935f8e3fe4e5e5.csv", "index.html": "/nyt-sudoku/index.html", "static/media/times.csv": "/nyt-sudoku/static/media/times.2439d07155bf5854ef62.csv", "static/media/firstPlayFrequency.csv": "/nyt-sudoku/static/media/firstPlayFrequency.e355282834ded16644a8.csv", - "main.32a41540.css.map": "/nyt-sudoku/static/css/main.32a41540.css.map", - "main.ee69372f.js.map": "/nyt-sudoku/static/js/main.ee69372f.js.map" + "main.430210fe.css.map": "/nyt-sudoku/static/css/main.430210fe.css.map", + "main.4755c9a2.js.map": "/nyt-sudoku/static/js/main.4755c9a2.js.map" }, "entrypoints": [ - "static/css/main.32a41540.css", - "static/js/main.ee69372f.js" + "static/css/main.430210fe.css", + "static/js/main.4755c9a2.js" ] } \ No newline at end of file diff --git a/index.html b/index.html index 8706761..0f62f0e 100644 --- a/index.html +++ b/index.html @@ -1,2 +1,2 @@ Here's to the next 100 sudokus

Here's to the next 100 sudokus

Last updated Sep. 1, 2024

I’ve always loved doing the sudoku.

It started in the summer of 2015. I was a senior in high school and had just started the college application process. Like many teenagers, I signed up for the SAT. Like many teenagers, I compiled a list of safety and target schools. And, like many teenagers, I was beginning to panic about acceptances.

One particular afternoon, I found myself down a rabbit hole full of self doubt and insecurity. I felt like I wasn’t smart enough, or my grades would pull down my application, or that my essays wouldn’t stand out.

I needed to challenge this voice in my head. I knew I was smart and capable (or so I thought). I looked around for a way to prove it and saw the Sunday newspaper on the coffee table in front of me, open to the puzzles page. I told myself if I could solve that day’s sudoku, I could prove to myself that I had what it takes to get acceptances. I solved that sudoku and haven’t stopped doing it since.

I loved that I could take things one puzzle at a time, and every puzzle, one cell at a time. The puzzle served as a constant to the ups and downs of everyday life.

I got so into the puzzle in high school, I completed 100 sudokus in 100 consecutive days. I’d take our newspaper’s puzzles page to school and solve it during class. A classmate once said while most students had their phones out under their desks, I had the sudoku. When I moved to the US for college, I bought a book full of puzzles. I was crazy about it.

And then I stopped doing it just as quickly as I had started.

In October 2020, a girl I liked texted me: “Do u wanna have a sudoku race 👉🥺👈”

We solved that day’s New York Times’ easy puzzle and hundreds of sudokus since then to see who could complete it first.

We even started a spreadsheet to track our times. Our competitive natures pushed us to challenge each other almost daily. Like in high school, I was constantly thinking about how to get faster.

Then, in January 2023, I made a breakthrough. I started tracking what grids I fill out and how I fill them out1. And in the weeks since, I started to analyze my performance to look for patterns and ways I could speed up. As a throwback to my high school self, I decided to analyze from 100 Easy sudokus to see what I could learn. This essay has a few insights I’ve found.

Let's start with my strategy

When I first see a sudoku grid, my instinct is to look for naked singles. Naked singles are cells where there can be only one possible value. They're the slam dunks. No-brainers. Easy pickings. (They’re also called sole candidates, but why would you call them that when you could say naked singles? I digress.)

An animating GIF of a sudoku grid with a cell highlighted. As different values are entered in that cell, the grid lights up to indicate that that value is incorrect.

In the NYTimes grid above, only the number 9 can be played in the highlighted cell.

Using the process of elimination, I identify naked singles and solve those cells. I only ever fill in a value when it’s a naked single, i.e., I never guess. So when I fill out the grid, I almost never redo cells once I fill them. This is a tradition I’ve digitized — high school me would fill out grids with a pen.

As you solve each cell in the sudoku, you eliminate possible values throughout the grid. For example, putting a 5 in one cell means you can’t play a 5 anywhere else in that row, column, or section. In the process of filling out cells, you create more naked singles.

Essentially, by getting the numbers of these naked singles, you're introduced to their other naked single friends.

And this is a great way to analyze my performance.

Based on the analysis above, I quickly solve cells that are towards the top, then take longer to fill out cells that are in the middle and bottom.

Why do I tend to take longer in these areas? I think it has something to do with how the cells come prefilled. Let's talk about that.

Patterns

Like Jeopardy! and its daily doubles, the Times’ sudoku grids tend to have the same cells prefilled. On average, the easy sudoku comes with xx values prefilled.

Data above is from xxx Times sudokus. Hover over each cell above to see how often it came prefilled.

From the grid above, we see that the typical NYT easy sudoku has more prefilled cells towards the top. This makes it easier to start from the top. In fact, of the 100 sudokus I've collected data for, my first move is in the top three rows in xx of them.

The higher density of cells also makes it easier for my next strategy: slicing and dicing. Slicing and dicing is a common maneuver where, once you find a blank cell, you quickly scan its row and its column to see what numbers that cell can't be. In fact, in the primer on naked singles above, you could solve the empty cell by slicing and dicing, rather than cycling through all nine numbers.

Maybe an animation/image of slicing and dicing.

Taken together, slicing and dicing and looking for naked singles are my primary strategy when solving the sudoku. I also look for something called hidden singles, but those are much harder to analyze. If you’re curious about them, read up here.

We've talked about my strategy and the how the grids tend to come prefilled. When you add those two together, how do I tend to move through the grid? Let's take a look at the way I move through the puzzle.

Speed within a puzzle2

Once I identify a naked single, how long do I last before I finish, i.e., solve that cell? Let’s visualize every cell again, this time coloring based on how long it took me to fill them out.

In the graphic below, each column is one puzzle I’ve solved, and each cell within that column represents a cell I’ve filled out for that puzzle. Some puzzles have more cells filled out because:

  1. I made mistakes, or
  2. the puzzle came prefilled with fewer cells.

The chart above reinforces our insight from above: I tend to start off strong, and then slow down towards the middle.

But wait. According to the chart above, there's more nuance. The lower half represents the final steps of solving a puzzle. And just before I finish each puzzle, it looks like I speed through the remaining cells. This would make sense since there are fewer candidates towards the end.

In a future article, it could be interesting to segment and cluster puzzles based on my speed throughout them. For example, group together puzzles where I’m slow at the start, fast towards the middle, and slow at the end. This could reveal similarities between puzzles and their difficulties.

Do I stick to some numbers more than others?

Even though there are 10 basic digits that all numbers are made of, they’re not always uniform. Benford’s Law, for example, says that leading digit in numbers is typically small.

From the chart above, I tend to start with the number “1” most of the time. While it isn't close to Benford's Law, it's still skewed towards smaller numbers. In fact, in the 84 sudokus I have data for3, I started with the number “1” for 32 of them.

Is it because the first three rows typically have the number 1 prefilled? Not really. 1s are no less often to be prefilled than 8s. Or 3s, for that matter. Then why do I always start with the number 1?

Upon reflection, I feel like smaller numbers are easier to remember. When I solve the grid, sometimes I think “This cell can be a 5 or 6. Let me come back to this later.” I’ve noticed that when the numbers tend to be larger, it’s harder for me to remember them, despite still being under 10. I can’t explain why this is, but I’d be surprised if other people felt this way too.

This could be an interesting way for me to get faster. For future puzzles, I can write down potential candidates in the cell. The Times website allows players to play in Candidate mode — maybe I should use this feature more.

It might even be worth diversifying my opening move. I overwhelmingly start solving the grid by playing the number 1 in the first three rows.

An image of the Duolingo owl saying “Let's review your mistakes!”

Mistakes

Is there a pattern with when I make mistakes? Let’s highlight all my mistakes, i.e., cells that I filled out more than once.

It looks like I’m more likely to make mistakes when I’m almost done solving a puzzle. This is most likely because I get impatient. Sometimes I also guess because it’s faster than slicing and dicing.

I made a mistake in 65% of the puzzles I solved. It’s not only important to make fewer mistakes, but also reduce the amount of time it takes to correct them. When I make a mistake, on average, it sets me back 5.1 seconds. Here’s a distribution of how long I spent correcting mistakes.

Crazy as it may sound, I’m not as into the sudoku now as much as when I was a teenager. While I still try to solve the puzzle once a day, teenage me would always have a grid on his person.

While it’s cool to track and analyze your data as you solve the sudoku, it’s also important to be present as you solve the puzzle. And something the data doesn’t show is that since my first puzzle, the main message has remained the same: whatever life throws at you, take it one puzzle at a time, and one cell at a time.

Methodology

I wrote a JavaScript browser extension to track how I filled out the Times’ easy sudoku grid and then send this data to a server running on my Raspberry Pi. I used Jupyter notebooks to analyze my performance, and React + D3 to visualize the data on this page.

Check out my work on this project here or my portfolio here. Feel free to use the extension to analyze your performance — it only works on the NYT website, but can be edited to work on other websites too.

Lastly, please reach out if you have tips on getting faster!

Notes on data collection

1Desktop: To standardize data collection, I only filled out the sudoku from my laptop and not on my phone. Hence, this sample of data may not be wholly representative of my sudoku solving abilities.

2Speed: Throughout this project, I reference the time it took me to solve a cell. To calculate this, I measured how long it took me to enter a value in that cell since the last filled cell. A limitation of this is if I’m looking at solving one cell, but end up solving another.

3Puzzle data: Because of the occasional tech glitch, I don’t have grid data for every puzzle I filled out. Therefore, the chart showing my first play is only for 84 puzzles, instead of 100.

\ No newline at end of file + the puzzle."/>Here's to the next 100 sudokus

Here's to the next 100 sudokus

Last updated Sep. 1, 2024

I’ve always loved doing the sudoku.

It started in the summer of 2015. I was a senior in high school and had just started the college application process. Like many teenagers, I signed up for the SAT. Like many teenagers, I compiled a list of safety and target schools. And, like many teenagers, I was beginning to panic about acceptances.

One particular afternoon, I found myself down a rabbit hole full of self doubt and insecurity. I felt like I wasn’t smart enough, or my grades would pull down my application, or that my essays wouldn’t stand out.

I needed to challenge this voice in my head. I knew I was smart and capable (or so I thought). I looked around for a way to prove it and saw the Sunday newspaper on the coffee table in front of me, open to the puzzles page. I told myself if I could solve that day’s sudoku, I could prove to myself that I had what it takes to get acceptances. I solved that sudoku and haven’t stopped doing it since.

I loved that I could take things one puzzle at a time, and every puzzle, one cell at a time. The puzzle served as a constant to the ups and downs of everyday life.

I got so into the puzzle in high school, I completed 100 sudokus in 100 consecutive days. I’d take our newspaper’s puzzles page to school and solve it during class. A classmate once said while most students had their phones out under their desks, I had the sudoku. When I moved to the US for college, I bought a book full of puzzles. I was crazy about it.

And then I stopped doing it just as quickly as I had started.

In October 2020, a friend texted me: “Do u wanna have a sudoku race 👉🥺👈”

We solved that day’s New York Times’ easy puzzle and hundreds of sudokus since then to see who could complete it first.

We even started a spreadsheet to track our times. Our competitive natures pushed us to challenge each other almost daily. Like in high school, I was constantly thinking about how to get faster.

Then, in January 2023, I made a breakthrough. I started tracking what grids I fill out and how I fill them out1. And in the weeks since, I started to analyze my performance to look for patterns and ways I could speed up. As a throwback to my high school self, I decided to analyze from 100 Easy sudokus to see what I could learn. This essay has a few insights I’ve found.

Let's start with my strategy

When I first see a sudoku grid, my instinct is to look for naked singles. Naked singles are cells where there can be only one possible value. They're the slam dunks. No-brainers. Easy pickings. (They’re also called sole candidates, but why would you call them that when you could say naked singles? I digress.)

An animating GIF of a sudoku grid with a cell highlighted. As different values are entered in that cell, the grid lights up to indicate that that value is incorrect.

In the NYTimes grid above, only the number 9 can be played in the highlighted cell.

Using the process of elimination, I identify naked singles and solve those cells. I only ever fill in a value when it’s a naked single, i.e., I never guess. So when I fill out the grid, I almost never redo cells once I fill them. This is a tradition I’ve digitized — high school me would fill out grids with a pen.

As you solve each cell in the sudoku, you eliminate possible values throughout the grid. For example, putting a 5 in one cell means you can’t play a 5 anywhere else in that row, column, or section. In the process of filling out cells, you create more naked singles.

Essentially, by getting the numbers of these naked singles, you're introduced to their other naked single friends.

And this is a great way to analyze my performance.

Based on the analysis above, I quickly solve cells that are towards the top, then take longer to fill out cells that are in the middle and bottom.

Why do I tend to take longer in these areas? I think it has something to do with how the cells come prefilled. Let's talk about that.

Patterns

Like Jeopardy! and its daily doubles, the Times’ sudoku grids tend to have the same cells prefilled. On average, the easy sudoku comes with xx values prefilled.

Data above is from xxx Times sudokus. Hover over each cell above to see how often it came prefilled.

From the grid above, we see that the typical NYT easy sudoku has more prefilled cells towards the top. This makes it easier to start from the top. In fact, of the 100 sudokus I've collected data for, my first move is in the top three rows in xx of them.

The higher density of cells also makes it easier for my next strategy: slicing and dicing. Slicing and dicing is a common maneuver where, once you find a blank cell, you quickly scan its row and its column to see what numbers that cell can't be. In fact, in the primer on naked singles above, you could solve the empty cell by slicing and dicing, rather than cycling through all nine numbers.

Maybe an animation/image of slicing and dicing.

Taken together, slicing and dicing and looking for naked singles are my primary strategy when solving the sudoku. I also look for something called hidden singles, but those are much harder to analyze. If you’re curious about them, read up here.

We've talked about my strategy and the how the grids tend to come prefilled. When you add those two together, how do I tend to move through the grid? Let's take a look at the way I move through the puzzle.

Speed within a puzzle2

Once I identify a naked single, how long do I last before I finish, i.e., solve that cell? Let’s visualize every cell again, this time coloring based on how long it took me to fill them out.

In the graphic below, each column is one puzzle I’ve solved, and each cell within that column represents a cell I’ve filled out for that puzzle. Some puzzles have more cells filled out because:

  1. I made mistakes, or
  2. the puzzle came prefilled with fewer cells.

The chart above reinforces our insight from above: I tend to start off strong, and then slow down towards the middle.

But wait. According to the chart above, there's more nuance. The lower half represents the final steps of solving a puzzle. And just before I finish each puzzle, it looks like I speed through the remaining cells. This would make sense since there are fewer candidates towards the end.

In a future article, it could be interesting to segment and cluster puzzles based on my speed throughout them. For example, group together puzzles where I’m slow at the start, fast towards the middle, and slow at the end. This could reveal similarities between puzzles and their difficulties.

Do I stick to some numbers more than others?

Even though there are 10 basic digits that all numbers are made of, they’re not always uniform. Benford’s Law, for example, says that leading digit in numbers is typically small.

From the chart above, I tend to start with the number “1” most of the time. While it isn't close to Benford's Law, it's still skewed towards smaller numbers. In fact, in the 84 sudokus I have data for3, I started with the number “1” for 32 of them.

Is it because the first three rows typically have the number 1 prefilled? Not really. 1s are no less often to be prefilled than 8s. Or 3s, for that matter. Then why do I always start with the number 1?

Upon reflection, I feel like smaller numbers are easier to remember. When I solve the grid, sometimes I think “This cell can be a 5 or 6. Let me come back to this later.” I’ve noticed that when the numbers tend to be larger, it’s harder for me to remember them, despite still being under 10. I can’t explain why this is, but I’d be surprised if other people felt this way too.

This could be an interesting way for me to get faster. For future puzzles, I can write down potential candidates in the cell. The Times website allows players to play in Candidate mode — maybe I should use this feature more.

It might even be worth diversifying my opening move. I overwhelmingly start solving the grid by playing the number 1 in the first three rows.

An image of the Duolingo owl saying “Let's review your mistakes!”

Mistakes

Is there a pattern with when I make mistakes? Let’s highlight all my mistakes, i.e., cells that I filled out more than once.

It looks like I’m more likely to make mistakes when I’m almost done solving a puzzle. This is most likely because I get impatient. Sometimes I also guess because it’s faster than slicing and dicing.

I made a mistake in 65% of the puzzles I solved. It’s not only important to make fewer mistakes, but also reduce the amount of time it takes to correct them. When I make a mistake, on average, it sets me back 5.1 seconds. Here’s a distribution of how long I spent correcting mistakes.

Crazy as it may sound, I’m not as into the sudoku now as much as when I was a teenager. While I still try to solve the puzzle once a day, teenage me would always have a grid on his person.

While it’s cool to track and analyze your data as you solve the sudoku, it’s also important to be present as you solve the puzzle. And something the data doesn’t show is that since my first puzzle, the main message has remained the same: whatever life throws at you, take it one puzzle at a time, and one cell at a time.

Methodology

I wrote a JavaScript browser extension to track how I filled out the Times’ easy sudoku grid and then send this data to a server running on my Raspberry Pi. I used Jupyter notebooks to analyze my performance, and React + D3 to visualize the data on this page.

Check out my work on this project here or my portfolio here. Feel free to use the extension to analyze your performance — it only works on the NYT website, but can be edited to work on other websites too.

Lastly, please reach out if you have tips on getting faster!

Notes on data collection

1Desktop: To standardize data collection, I only filled out the sudoku from my laptop and not on my phone. Hence, this sample of data may not be wholly representative of my sudoku solving abilities.

2Speed: Throughout this project, I reference the time it took me to solve a cell. To calculate this, I measured how long it took me to enter a value in that cell since the last filled cell. A limitation of this is if I’m looking at solving one cell, but end up solving another.

3Puzzle data: Because of the occasional tech glitch, I don’t have grid data for every puzzle I filled out. Therefore, the chart showing my first play is only for 84 puzzles, instead of 100.

\ No newline at end of file diff --git a/static/css/main.32a41540.css.map b/static/css/main.32a41540.css.map deleted file mode 100644 index 1e09e19..0000000 --- a/static/css/main.32a41540.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/css/main.32a41540.css","mappings":"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","sources":["index.css","components/Histogram/Histogram.module.css","components/SectionBreak/SectionBreak.module.css","components/Grid/Grid.module.css","components/Legend/Legend.module.css","components/ScrollySingles/ScrollySingles.module.css","components/RadioToggles/RadioToggles.module.css","components/StringOfPearls/StringOfPearls.module.css","components/FirstPlayBarChart/FirstPlayBarChart.module.css"],"sourcesContent":["/* import fonts — copied from portfolio CSS */\n@import url('https://fonts.googleapis.com/css2?family=PT+Sans:wght@400;700&family=PT+Serif:ital,wght@0,400;0,700;1,700&display=swap');\n\n/* import styles from portfolio */\n@import url('https://vivrao9.github.io/style.css');\n\n:root {\n /* first add lemon yellow */\n --lemon_-2: #FFF3B0;\n --lemon_-1: #FFEB75;\n --lemon_: #FFDA00;\n --lemon_1: #C5A900;\n --lemon_2: #9B8500;\n\n /* next, sky blue */\n --sky_-2: #A5E1F8;\n --sky_-1: #7ED2F2;\n --sky_: #40C6F9;\n --sky_1: #1C9ACA;\n --sky_2: #08759E;\n\n /* then green */\n --green_-2: #D5EBA8;\n --green_-1: #BEDA85;\n --green_: #A0C35A;\n --green_1: #83AA35;\n --green_2: #648D13;\n\n /* next, purple */\n --purple_-2: #EEAFF5;\n --purple_-1: #F37FFF;\n --purple_: #E40EFA;\n --purple_1: #B206C4;\n --purple_2: #8A0497;\n\n /* next, orange */\n --orange_-2: #FBC990;\n --orange_-1: #FFAA4C;\n --orange_: #FA8400;\n --orange_1: #C56800;\n --orange_2: #854B0A;\n\n /* lastly, the neutrals */\n --black: #000000;\n --white: #FFFFFF;\n --light_gray_: #D9D9D9;\n --dark_gray_: #959595;\n --default-text: #333333;\n}\n\n::moz-selection {\n color: var(--default-text);\n background: var(--orange_-2);\n}\n\n::selection {\n color: var(--default-text);\n background: var(--orange_-2);\n}\n\np a {\n border-bottom: 2px solid black;\n color: black;\n text-decoration: none;\n}\n\na:hover {\n text-decoration: none;\n}\n\nh1 {\n font-family: 'PT Serif', 'serif';\n font-size: 2.25rem;\n font-weight: 700;\n color: var(--default-text);\n}\n\nh2 {\n font-family: 'PT Serif', 'serif';\n font-size: 2rem;\n color: var(--default-text);\n}\n\nh3 {\n font-family: 'PT Sans', 'sans-serif';\n font-weight: 700;\n font-size: 1.8rem;\n color: var(--default-text);\n}\n\nh4 {\n font-family: 'PT Sans', 'sans-serif';\n font-weight: 600;\n font-size: 1.6rem;\n color: var(--default-text);\n}\n\nh5 {\n font-family: 'PT Sans', 'sans-serif';\n font-weight: 600;\n font-size: 1.25rem;\n color: var(--default-text);\n}\n\nh6 {\n font-family: 'PT Sans', 'sans-serif';\n font-weight: 800;\n font-size: 1rem;\n color: var(--default-text);\n}\n\nimg {\n width: 100%;\n margin: auto;\n display: block;\n}\n\n.caption {\n font-family: 'Courier New', Courier, monospace;\n font-size: 0.9rem;\n}\n\nbody {\n margin: 0;\n font-family: 'PT Sans', sans-serif;\n font-size: 1rem;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: Consolas, source-code-pro, Menlo, Monaco, 'Courier New',\n monospace;\n}\n\n.hedline {\n text-align: center;\n padding: 10px;\n margin-bottom: 2rem;\n orphans: 2;\n}\n\n.hedline a {\n border-bottom: 2px solid black;\n color: black;\n text-decoration: none;\n}\n\n.hedline a:hover {\n text-decoration: none;\n}\n\n.mobile-spacer {\n margin-top: 2rem;\n}\n\n#beeswarm {\n margin-bottom: 2rem;\n}\n\n.oldDoks {\n position: absolute;\n max-width: 35%;\n}\n\n.footnotes {\n border: 2px solid var(--light_gray_);\n padding: 1rem;\n color: #4e4e4e;\n margin-bottom: 1rem;\n}\n\n.footnotes ul {\n margin-bottom: 0px;\n}\n\n.footnotesTitle {\n font-family: 'PT Sans', sans-serif;\n font-size: 1.25rem;\n font-weight: 600;\n color: var(--default-text);\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.footnotes sup {\n margin-right: 0.4rem;\n}\n\n@media (max-width: 768px) {\n .oldDoks {\n display: none;\n }\n}\n\n@media (min-width: 768px) {\n .mobile-spacer {\n margin-top: 0rem;\n }\n}",".annotation {\r\n font-family: 'PT Sans';\r\n font-size: 0.7rem;\r\n}",".section_break {\r\n gap: 2rem;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 4rem;\r\n}\r\n\r\n.small_square {\r\n border: 1.75px solid #999999;\r\n transform: rotate(45deg);\r\n width: 1rem;\r\n height: 1rem;\r\n transition: transform .7s ease-in-out;\r\n}\r\n\r\n.big_square {\r\n border: 1.5px solid #999999;\r\n transform: rotate(45deg);\r\n width: 2rem;\r\n height: 2rem;\r\n display: grid;\r\n grid-template-columns: 1fr 1fr;\r\n grid-template-rows: 1fr 1fr;\r\n transition: transform .7s ease-in-out;\r\n\r\n div {\r\n border: 1px solid #999999;\r\n }\r\n}\r\n\r\n.big_square:hover {\r\n transform: rotate(405deg);\r\n}\r\n\r\n.small_square:hover {\r\n transform: rotate(405deg);\r\n}",".doks_grid {\r\n outline: 2px solid black;\r\n min-width: 80%;\r\n min-height: 80%;\r\n display: grid;\r\n grid-template-columns: repeat(9, 1fr);\r\n grid-template-rows: repeat(9, 1fr);\r\n margin-bottom: 2rem;\r\n justify-content: left;\r\n /* flex-wrap: wrap;\r\n flex-direction: row;\r\n align-content: flex-start; */\r\n}\r\n\r\n@media (min-width: 768px) {\r\n .doks_grid {\r\n max-width: 70%;\r\n max-height: 70%;\r\n }\r\n}\r\n\r\n.grid__cell {\r\n position: relative;\r\n display: flex;\r\n width: 100%;\r\n margin: auto;\r\n flex-wrap: wrap;\r\n border: 1px solid #9c9c9c;\r\n border-right: none;\r\n border-bottom: none;\r\n aspect-ratio: 1/1;\r\n /* width: calc(100% / 3 - 1px);\r\n height: calc(100% / 3 - 1px); */\r\n text-align: center;\r\n vertical-align: middle;\r\n font-size: 0.8em;\r\n font-family: monospace;\r\n}\r\n\r\n.grid__cell > p {\r\n display: none;\r\n}\r\n\r\n.grid__cell > p.active {\r\n /* display: flex; */\r\n width: 100%;\r\n align-items: center;\r\n justify-content: center;\r\n margin: auto;\r\n}\r\n\r\n.grid__cell > p.neighbor {\r\n display: flex;\r\n color: #9c9c9c;\r\n}\r\n\r\n.grid__cell:nth-child(3n) {\r\n border-right: 2px solid black;\r\n }\r\n\r\n/* left border of first column */\r\n.grid__cell:nth-child(9n+1) {\r\n border-left: 2px solid black;\r\n}\r\n\r\n/* top row */\r\n.grid__cell:nth-child(-n+9) {\r\n border-top: 2px solid black;\r\n}\r\n\r\n/* bottom border of every 3rd row */\r\n.grid__cell:nth-child(n + 19):nth-child(-n + 27),\r\n.grid__cell:nth-child(n + 46):nth-child(-n + 54),\r\n.grid__cell:nth-child(n + 73):nth-child(-n + 81) {\r\n border-bottom: 2px solid black;\r\n}\r\n\r\n.gridViz {\r\n display: contents;\r\n}\r\n\r\n.gridViz > svg {\r\n height: 50px;\r\n}",".legend {\r\n max-width: min(275px, 70%);\r\n display: flex;\r\n flex-direction: column;\r\n flex-basis: 0;\r\n flex-grow: 1;\r\n margin-bottom: 12px;\r\n}\r\n\r\n.legendInstructions {\r\n display: flex;\r\n flex-direction: row;\r\n width: 100%;\r\n font-size: 0.8rem;\r\n color: var(--default-text);\r\n margin-bottom: -12px;\r\n}\r\n\r\n.legendBlocks {\r\n display: flex;\r\n flex-direction: row;\r\n width: 100%;\r\n}\r\n\r\n.legendItem {\r\n display: block;\r\n margin-top: 18px;\r\n margin-right: 0px;\r\n width: 100%;\r\n min-width: 48px;\r\n}\r\n\r\n.legendColor {\r\n width: 100%;\r\n height: 12px;\r\n border-right: 1.75px solid var(--black);\r\n}\r\n\r\n.legendLabel {\r\n font-family: 'Courier New', Courier, monospace;\r\n font-size: 0.85rem;\r\n text-align: right;\r\n transform: translate(12px);\r\n}\r\n\r\n.legendLabelLeft {\r\n float: left;\r\n text-align: left;\r\n min-width: 50%;\r\n flex: 1;\r\n}\r\n\r\n.legendLabelRight {\r\n float: right;\r\n text-align: right;\r\n min-width: 0%;\r\n max-width: 50%;\r\n}",".entireScrolly {\r\n display: flex;\r\n align-items: flex-start;\r\n justify-content: space-between;\r\n margin: 5vh 0 0 0;\r\n padding-top: 2rem;\r\n}\r\n\r\nfigure {\r\n display: block;\r\n flex-basis: 60%;\r\n position: -webkit-sticky;\r\n position: sticky;\r\n top: 0;\r\n width: 100%;\r\n margin: 0;\r\n padding-top: 1rem;\r\n padding-left: 1rem;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\narticle {\r\n flex-basis: 40%;\r\n}\r\n\r\n.scrollyCard {\r\n background-color: rgba(255, 255, 255, 0.8);\r\n color: var(--default-text);\r\n opacity: 1;\r\n margin-bottom: 75%;\r\n margin-top: 40%;\r\n z-index: 1;\r\n padding: 1rem;\r\n}\r\n\r\n@media screen and (max-width: 768px) {\r\n figure {\r\n /* display: block; */\r\n flex-basis: 100%;\r\n }\r\n\r\n article {\r\n position: relative;\r\n flex-basis: 85%;\r\n }\r\n\r\n .entireScrolly {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n}",".radioToggles {\r\n position: relative;\r\n display: flex;\r\n background: var(--lemon_-2);\r\n color: var(--lemon_2);\r\n border: 1px solid lightgrey;\r\n justify-content: right;\r\n margin: 20px 0px;\r\n width: fit-content;\r\n overflow: hidden;\r\n}\r\n\r\ninput[type=\"radio\"] {\r\n display: none;\r\n}\r\n\r\ninput[type=\"radio\"]:checked + label {\r\n color: var(--lemon_-2);\r\n background-color: var(--lemon_2);\r\n font-weight: bold;\r\n}\r\n\r\nlabel {\r\n cursor: pointer;\r\n padding: 5px 20px;\r\n margin: 0px;\r\n text-align: center;\r\n width: auto;\r\n /* z-index: 2; */\r\n}\r\n\r\nfigure {\r\n width: 80%;\r\n}\r\n\r\n@media screen and (max-width: 768px) {\r\n figure {\r\n width: 100%;\r\n }\r\n}",".pearlsWrapper {\r\n width: auto;\r\n /* overflow: scroll; */\r\n}\r\n\r\nsvg {\r\n display: block;\r\n}\r\n\r\n.mobileScroll {\r\n display: none;\r\n}\r\n\r\n.puzzleIndices {\r\n font-size: 0.9rem;\r\n font-family:'Courier New', Courier, monospace;\r\n color: #959595;\r\n}\r\n\r\n.annotationText {\r\n font-size: 0.9rem;\r\n color: #959595;\r\n}\r\n\r\n.pearlsHeader {\r\n display: flex;\r\n justify-content: space-between;\r\n}\r\n\r\n@media (max-width: 768px) {\r\n .pearlsWrapper {\r\n width: 100%;\r\n overflow: auto;\r\n }\r\n\r\n #stringOfTimesSVG {\r\n width: 975px;\r\n height: 580px;\r\n min-width: 100%;\r\n }\r\n\r\n .mobileScroll {\r\n display: block;\r\n position: absolute;\r\n left: 5px;\r\n bottom: 5px;\r\n width: 96px;\r\n opacity: .5;\r\n }\r\n\r\n .pearlsHeader {\r\n display:block;\r\n }\r\n}",".annotation {\r\n font-family: 'PT Sans';\r\n font-size: 0.9rem;\r\n}\r\n\r\n.gridlines {\r\n stroke: #d9d9d9;\r\n stroke-width: 1px;\r\n transform: translate(-8,0);\r\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/css/main.32a41540.css b/static/css/main.430210fe.css similarity index 73% rename from static/css/main.32a41540.css rename to static/css/main.430210fe.css index b959451..22b8628 100644 --- a/static/css/main.32a41540.css +++ b/static/css/main.430210fe.css @@ -1,2 +1,2 @@ -@import url(https://fonts.googleapis.com/css2?family=PT+Sans:wght@400;700&family=PT+Serif:ital,wght@0,400;0,700;1,700&display=swap);@import url(https://vivrao9.github.io/style.css);:root{--lemon_-2:#fff3b0;--lemon_-1:#ffeb75;--lemon_:#ffda00;--lemon_1:#c5a900;--lemon_2:#9b8500;--sky_-2:#a5e1f8;--sky_-1:#7ed2f2;--sky_:#40c6f9;--sky_1:#1c9aca;--sky_2:#08759e;--green_-2:#d5eba8;--green_-1:#beda85;--green_:#a0c35a;--green_1:#83aa35;--green_2:#648d13;--purple_-2:#eeaff5;--purple_-1:#f37fff;--purple_:#e40efa;--purple_1:#b206c4;--purple_2:#8a0497;--orange_-2:#fbc990;--orange_-1:#ffaa4c;--orange_:#fa8400;--orange_1:#c56800;--orange_2:#854b0a;--black:#000;--white:#fff;--light_gray_:#d9d9d9;--dark_gray_:#959595;--default-text:#333}::moz-selection{background:#fbc990;background:var(--orange_-2);color:#333;color:var(--default-text)}::selection{background:#fbc990;background:var(--orange_-2);color:#333;color:var(--default-text)}p a{border-bottom:2px solid #000;color:#000}a:hover,p a{text-decoration:none}h1{font-size:2.25rem;font-weight:700}h1,h2{color:#333;color:var(--default-text);font-family:"PT Serif","serif"}h2{font-size:2rem}h3{color:#333;color:var(--default-text);font-family:PT Sans,"sans-serif";font-size:1.8rem;font-weight:700}h4{font-size:1.6rem}h4,h5{color:#333;color:var(--default-text);font-family:PT Sans,"sans-serif";font-weight:600}h5{font-size:1.25rem}h6{color:#333;color:var(--default-text);font-family:PT Sans,"sans-serif";font-size:1rem;font-weight:800}img{display:block;margin:auto;width:100%}.caption{font-family:Courier New,Courier,monospace;font-size:.9rem}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:PT Sans,sans-serif;font-size:1rem;margin:0}code{font-family:Consolas,source-code-pro,Menlo,Monaco,Courier New,monospace}.hedline{margin-bottom:2rem;orphans:2;padding:10px;text-align:center}.hedline a{border-bottom:2px solid #000;color:#000}.hedline a,.hedline a:hover{text-decoration:none}.mobile-spacer{margin-top:2rem}#beeswarm{margin-bottom:2rem}.oldDoks{max-width:35%;position:absolute}.footnotes{border:2px solid #d9d9d9;border:2px solid var(--light_gray_);color:#4e4e4e;margin-bottom:1rem;padding:1rem}.footnotes ul{margin-bottom:0}.footnotesTitle{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#333;color:var(--default-text);font-family:PT Sans,sans-serif;font-size:1.25rem;font-weight:600}.footnotes sup{margin-right:.4rem}@media (max-width:768px){.oldDoks{display:none}}@media (min-width:768px){.mobile-spacer{margin-top:0}}.Histogram_annotation__EMOYK{font-family:PT Sans;font-size:.7rem}.SectionBreak_section_break__uTycT{align-items:center;display:flex;gap:2rem;justify-content:center;margin:4rem}.SectionBreak_small_square__GkNkF{border:1.75px solid #999;height:1rem;width:1rem}.SectionBreak_big_square__WAS29,.SectionBreak_small_square__GkNkF{-webkit-transform:rotate(45deg);transform:rotate(45deg);transition:-webkit-transform .7s ease-in-out;transition:transform .7s ease-in-out;transition:transform .7s ease-in-out,-webkit-transform .7s ease-in-out}.SectionBreak_big_square__WAS29{border:1.5px solid #999;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;height:2rem;width:2rem;div{border:1px solid #999}}.SectionBreak_big_square__WAS29:hover,.SectionBreak_small_square__GkNkF:hover{-webkit-transform:rotate(405deg);transform:rotate(405deg)}.Grid_doks_grid__aRPEo{display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);justify-content:left;margin-bottom:2rem;min-height:80%;min-width:80%;outline:2px solid #000}@media (min-width:768px){.Grid_doks_grid__aRPEo{max-height:70%;max-width:70%}}.Grid_grid__cell__y7aNp{aspect-ratio:1/1;border:1px solid #9c9c9c;border-bottom:none;border-right:none;display:flex;flex-wrap:wrap;font-family:monospace;font-size:.8em;margin:auto;position:relative;text-align:center;vertical-align:middle;width:100%}.Grid_grid__cell__y7aNp>p{display:none}.Grid_grid__cell__y7aNp>p.Grid_active__BZimY{align-items:center;justify-content:center;margin:auto;width:100%}.Grid_grid__cell__y7aNp>p.Grid_neighbor__ehq1C{color:#9c9c9c;display:flex}.Grid_grid__cell__y7aNp:nth-child(3n){border-right:2px solid #000}.Grid_grid__cell__y7aNp:nth-child(9n+1){border-left:2px solid #000}.Grid_grid__cell__y7aNp:nth-child(-n+9){border-top:2px solid #000}.Grid_grid__cell__y7aNp:nth-child(n+19):nth-child(-n+27),.Grid_grid__cell__y7aNp:nth-child(n+46):nth-child(-n+54),.Grid_grid__cell__y7aNp:nth-child(n+73):nth-child(-n+81){border-bottom:2px solid #000}.Grid_gridViz__vrgFI{display:contents}.Grid_gridViz__vrgFI>svg{height:50px}.Legend_legend__Q4Gm9{display:flex;flex-basis:0;flex-direction:column;flex-grow:1;margin-bottom:12px;max-width:min(275px,70%)}.Legend_legendInstructions__oO\+ay{color:var(--default-text);font-size:.8rem;margin-bottom:-12px}.Legend_legendBlocks__zmTI0,.Legend_legendInstructions__oO\+ay{display:flex;flex-direction:row;width:100%}.Legend_legendItem__YNMSB{display:block;margin-right:0;margin-top:18px;min-width:48px;width:100%}.Legend_legendColor__Mxq7r{border-right:1.75px solid var(--black);height:12px;width:100%}.Legend_legendLabel__wW3lc{font-family:Courier New,Courier,monospace;font-size:.85rem;text-align:right;-webkit-transform:translate(12px);transform:translate(12px)}.Legend_legendLabelLeft__F8fAr{flex:1 1;float:left;min-width:50%;text-align:left}.Legend_legendLabelRight__47a-A{float:right;max-width:50%;min-width:0;text-align:right}.ScrollySingles_entireScrolly__i\+S4-{align-items:flex-start;display:flex;justify-content:space-between;margin:5vh 0 0;padding-top:2rem}figure{align-items:center;display:block;flex-basis:60%;justify-content:center;margin:0;padding-left:1rem;padding-top:1rem;position:-webkit-sticky;position:sticky;top:0;width:100%}article{flex-basis:40%}.ScrollySingles_scrollyCard__hDIva{background-color:hsla(0,0%,100%,.8);color:var(--default-text);margin-bottom:75%;margin-top:40%;opacity:1;padding:1rem;z-index:1}@media screen and (max-width:768px){figure{flex-basis:100%}article{flex-basis:85%;position:relative}.ScrollySingles_entireScrolly__i\+S4-{display:flex;flex-direction:column}}.RadioToggles_radioToggles__y8m0w{background:var(--lemon_-2);border:1px solid #d3d3d3;color:var(--lemon_2);display:flex;justify-content:right;margin:20px 0;overflow:hidden;position:relative;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}input[type=radio]{display:none}input[type=radio]:checked+label{background-color:var(--lemon_2);color:var(--lemon_-2);font-weight:700}label{cursor:pointer;margin:0;padding:5px 20px;text-align:center;width:auto}figure{width:80%}@media screen and (max-width:768px){figure{width:100%}}.StringOfPearls_pearlsWrapper__2EuVC{width:auto}svg{display:block}.StringOfPearls_mobileScroll__kQY\+B{display:none}.StringOfPearls_puzzleIndices__i-Lld{color:#959595;font-family:Courier New,Courier,monospace;font-size:.9rem}.StringOfPearls_annotationText__UnXL3{color:#959595;font-size:.9rem}.StringOfPearls_pearlsHeader__2Le1o{display:flex;justify-content:space-between}@media (max-width:768px){.StringOfPearls_pearlsWrapper__2EuVC{overflow:auto;width:100%}#StringOfPearls_stringOfTimesSVG__C4CJi{height:580px;min-width:100%;width:975px}.StringOfPearls_mobileScroll__kQY\+B{bottom:5px;display:block;left:5px;opacity:.5;position:absolute;width:96px}.StringOfPearls_pearlsHeader__2Le1o{display:block}}.FirstPlayBarChart_annotation__cpDNq{font-family:PT Sans;font-size:.9rem}.FirstPlayBarChart_gridlines__Yhd-3{stroke:#d9d9d9;stroke-width:1px;-webkit-transform:translate(-8);transform:translate(-8)} -/*# sourceMappingURL=main.32a41540.css.map*/ \ No newline at end of file +@import url(https://fonts.googleapis.com/css2?family=PT+Sans:wght@400;700&family=PT+Serif:ital,wght@0,400;0,700;1,700&display=swap);@import url(https://vivrao9.github.io/style.css);:root{--lemon_-2:#fff3b0;--lemon_-1:#ffeb75;--lemon_:#ffda00;--lemon_1:#c5a900;--lemon_2:#9b8500;--sky_-2:#a5e1f8;--sky_-1:#7ed2f2;--sky_:#40c6f9;--sky_1:#1c9aca;--sky_2:#08759e;--green_-2:#d5eba8;--green_-1:#beda85;--green_:#a0c35a;--green_1:#83aa35;--green_2:#648d13;--purple_-2:#eeaff5;--purple_-1:#f37fff;--purple_:#e40efa;--purple_1:#b206c4;--purple_2:#8a0497;--orange_-2:#fbc990;--orange_-1:#ffaa4c;--orange_:#fa8400;--orange_1:#c56800;--orange_2:#854b0a;--black:#000;--white:#fff;--light_gray_:#d9d9d9;--dark_gray_:#959595;--default-text:#333}::moz-selection{background:#fbc990;background:var(--orange_-2);color:#333;color:var(--default-text)}::selection{background:#fbc990;background:var(--orange_-2);color:#333;color:var(--default-text)}p a{border-bottom:2px solid #000;color:#000}a:hover,p a{text-decoration:none}h1{font-size:2.25rem;font-weight:700}h1,h2{color:#333;color:var(--default-text);font-family:"PT Serif","serif"}h2{font-size:2rem}h3{color:#333;color:var(--default-text);font-family:PT Sans,"sans-serif";font-size:1.8rem;font-weight:700}h4{font-size:1.6rem}h4,h5{color:#333;color:var(--default-text);font-family:PT Sans,"sans-serif";font-weight:600}h5{font-size:1.25rem}h6{color:#333;color:var(--default-text);font-family:PT Sans,"sans-serif";font-size:1rem;font-weight:800}img{display:block;margin:auto;width:100%}.caption{font-family:Courier New,Courier,monospace;font-size:.9rem}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:PT Sans,sans-serif;font-size:1rem;margin:0}code{font-family:Consolas,source-code-pro,Menlo,Monaco,Courier New,monospace}.hedline{margin-bottom:2rem;orphans:2;padding:10px;text-align:center}.hedline a{border-bottom:2px solid #000;color:#000}.hedline a,.hedline a:hover{text-decoration:none}.mobile-spacer{margin-top:2rem}#beeswarm{margin-bottom:2rem}.oldDoks{max-width:35%;position:absolute}.footnotes{border:2px solid #d9d9d9;border:2px solid var(--light_gray_);color:#4e4e4e;margin-bottom:1rem;padding:1rem}.footnotes ul{margin-bottom:0}.footnotesTitle{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#333;color:var(--default-text);font-family:PT Sans,sans-serif;font-size:1.25rem;font-weight:600}.footnotes sup{margin-right:.4rem}@media (max-width:768px){.oldDoks{display:none}}@media (min-width:768px){.mobile-spacer{margin-top:0}}.Histogram_annotation__EMOYK{font-family:PT Sans;font-size:.7rem}.SectionBreak_section_break__uTycT{align-items:center;display:flex;gap:2rem;justify-content:center;margin:4rem}.SectionBreak_small_square__GkNkF{border:1.75px solid #999;height:1rem;width:1rem}.SectionBreak_big_square__WAS29,.SectionBreak_small_square__GkNkF{-webkit-transform:rotate(45deg);transform:rotate(45deg);transition:-webkit-transform .7s ease-in-out;transition:transform .7s ease-in-out;transition:transform .7s ease-in-out,-webkit-transform .7s ease-in-out}.SectionBreak_big_square__WAS29{border:1.5px solid #999;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;height:2rem;width:2rem;div{border:1px solid #999}}.SectionBreak_big_square__WAS29:hover,.SectionBreak_small_square__GkNkF:hover{-webkit-transform:rotate(405deg);transform:rotate(405deg)}.Grid_doks_grid__aRPEo{display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);justify-content:left;margin-bottom:2rem;min-height:80%;min-width:80%;outline:2px solid #000}@media (min-width:768px){.Grid_doks_grid__aRPEo{max-height:70%;max-width:70%}}.Grid_grid__cell__y7aNp{aspect-ratio:1/1;border:1px solid #9c9c9c;border-bottom:none;border-right:none;display:flex;flex-wrap:wrap;font-family:monospace;font-size:.8em;margin:auto;position:relative;text-align:center;vertical-align:middle;width:100%}.Grid_grid__cell__y7aNp>p{display:none}.Grid_grid__cell__y7aNp>p.Grid_active__BZimY{align-items:center;justify-content:center;margin:auto;width:100%}.Grid_grid__cell__y7aNp>p.Grid_neighbor__ehq1C{color:#9c9c9c;display:flex}.Grid_grid__cell__y7aNp:nth-child(3n){border-right:2px solid #000}.Grid_grid__cell__y7aNp:nth-child(9n+1){border-left:2px solid #000}.Grid_grid__cell__y7aNp:nth-child(-n+9){border-top:2px solid #000}.Grid_grid__cell__y7aNp:nth-child(n+19):nth-child(-n+27),.Grid_grid__cell__y7aNp:nth-child(n+46):nth-child(-n+54),.Grid_grid__cell__y7aNp:nth-child(n+73):nth-child(-n+81){border-bottom:2px solid #000}.Grid_gridViz__vrgFI{display:contents}.Grid_gridViz__vrgFI>svg{height:50px}.Legend_legend__Q4Gm9{display:flex;flex-basis:0;flex-direction:column;flex-grow:1;margin-bottom:12px;max-width:min(275px,70%)}.Legend_legendInstructions__oO\+ay{color:var(--default-text);font-size:.8rem;margin-bottom:-12px}.Legend_legendBlocks__zmTI0,.Legend_legendInstructions__oO\+ay{display:flex;flex-direction:row;width:100%}.Legend_legendItem__YNMSB{display:block;margin-right:0;margin-top:18px;min-width:48px;width:100%}.Legend_legendColor__Mxq7r{border-right:1.75px solid var(--black);height:12px;width:100%}.Legend_legendLabel__wW3lc{font-family:Courier New,Courier,monospace;font-size:.85rem;text-align:right;-webkit-transform:translate(12px);transform:translate(12px)}.Legend_legendLabelLeft__F8fAr{flex:1 1;float:left;min-width:50%;text-align:left}.Legend_legendLabelRight__47a-A{float:right;max-width:50%;min-width:0;text-align:right}.ScrollySingles_entireScrolly__i\+S4-{align-items:flex-start;display:flex;justify-content:space-between;margin:5vh 0 0;padding-top:2rem}figure{align-items:center;display:block;flex-basis:60%;justify-content:center;margin:0;padding-left:1rem;padding-top:1rem;position:-webkit-sticky;position:sticky;top:0;width:100%}article{flex-basis:40%}.ScrollySingles_scrollyCard__hDIva{background-color:hsla(0,0%,100%,.8);color:var(--default-text);margin-bottom:75%;margin-top:40%;opacity:1;padding:1rem;z-index:1}@media screen and (max-width:768px){figure{flex-basis:100%}article{flex-basis:85%;position:relative}.ScrollySingles_entireScrolly__i\+S4-{display:flex;flex-direction:column}}.RadioToggles_radioToggles__y8m0w{background:var(--lemon_-2);border:1px solid #d3d3d3;color:var(--lemon_2);display:flex;justify-content:right;margin:20px 0;overflow:hidden;position:relative;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}input[type=radio]{display:none}input[type=radio]:checked+label{background-color:var(--lemon_2);color:var(--lemon_-2);font-weight:700}label{cursor:pointer;margin:0;padding:5px 20px;text-align:center;width:auto}figure{width:80%}@media screen and (max-width:768px){figure{width:100%}}.StringOfPearls_pearlsWrapper__2EuVC{width:auto}svg{display:block}.StringOfPearls_mobileScroll__kQY\+B{display:none}.StringOfPearls_puzzleIndices__i-Lld{color:#959595;font-family:Courier New,Courier,monospace;font-size:.9rem}.StringOfPearls_annotationText__UnXL3{color:#959595;font-size:.9rem}.StringOfPearls_pearlsHeader__2Le1o{display:flex;justify-content:space-between}.StringOfPearls_currentView__vPXsU,.StringOfPearls_sidewaysPreview__N4-v-{display:none}@media (max-width:768px){.StringOfPearls_pearlsWrapper__2EuVC{overflow:auto;width:100%}#StringOfPearls_stringOfTimesSVG__C4CJi{height:580px;min-width:100%;width:975px}.StringOfPearls_mobileScroll__kQY\+B{bottom:5px;display:none;left:5px;opacity:.5;position:absolute;width:96px}.StringOfPearls_pearlsHeader__2Le1o{display:block}.StringOfPearls_sidewaysPreview__N4-v-{background-color:#000;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAATkAAAC7CAYAAAAe7umWAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAPYSURBVHgB7dxhTuJQGEDRzsQFuASW4tLdBv9YAjtwgommcUTQ8qBcz0lMTEQprVzfV6h/ttvtywQQ9XcCCBM5IE3kgDSRA9JEDkgTOSBN5IA0kQPSRA5IEzkgTeSANJED0kQOSBM5IE3kgDSRA9JEDkgTOSBN5IA0kQPSHqYF9vv96wfAKJvNZlpiceR2u90EMMrSyBlXgTSRA9JEDkgTOSBN5IA0kQPSRA5IEzkgTeSANJED0kQOSBM5IE3kgDSRA9JEDkgTOSBN5IA0kQPSRA5IEzkgTeSANJED0kQOSBM5IE3kgDSRA9JEDkgTOSBN5IA0kQPSRA5IEzkgTeSANJED0kQOSBM5IE3kgDSRA9JEDkgTOSBN5IA0kQPSRA5IEzkgTeSANJED0kQOSBM5IE3kgDSRA9JEDkgTOSBN5IA0kQPSRA5IEzkgTeSANJED0kQOSBM5IE3kgDSRA9JEDkgTOSBN5IA0kQPSRA5IEzkgTeSANJED0kQOSBM5IE3kgDSRA9JEDkgTOSBN5IA0kQPSRA5IEzkgTeSANJED0kQOSBM5IE3kgDSRA9JEDkgTOSBN5IA0kQPSRA5IEzkgTeSANJED0kQOSBM5IE3kgDSRA9JEDkgTOSBN5IA0kQPSRA5IEzkgTeSANJED0kQOSBM5IE3kgDSRA9JEDkgTOSBN5IA0kQPSRA5IEzkgTeSANJED0h4m4Oo2m83757vdbmKcRZE7HKj5wTo4HLC3gzb/+vPz85c/6+npaVpqfh+nft58O0dtx2f759ht5875vp849pjn5o//nNuPcsnjd8vHccy9Re7jfj31fF4T4yqQdvFx9fHx8f2v1OHzU7c9dZtR5tv5W8eFU6vF+T66NCPa/46t4H86Ba1xBXvMJSaoY4ZE7txwjXwSnXPfb9spcp8b+Ufomvv8u+P/NU8hMJ5xFUi72qurI5ejS+/jGtu2BmtajXy2z+/pZPYljTq9c2pS2u/3rx/zbTg4Z5V97u/R/D5uxVtI4MbODcZ3T++ciuIhZqMjN7+PWzGuAmlWcjf2W0Zl7lPh99NKDkizkuPueWsHXxE57p7IXVbtFIpxFUizkoOV8+LUMiLHanznyewyq/swP063upbWuAqkWckNcO5lOsB4IjeAMQrWw7gKpFnJwQdvK/E1/AcNlrOSgw/eXhF0TrVB5IA04ypwFbd6z5yVHJAmckCacRWOqF869lsujfuz3W5fJoAo4yqQJnJAmsgBaSIHpIkckCZyQJrIAWkiB6SJHJAmckCayAFpIgekiRyQJnJAmsgBaSIHpIkckCZyQNo/89+qffFoT5EAAAAASUVORK5CYII=);background-size:contain;bottom:25px;display:block;height:75px;left:150px;opacity:.75;position:absolute;width:125px}.StringOfPearls_currentView__vPXsU{border:2px solid #4e4e4e;display:block;height:75px;position:relative;width:45px}}.FirstPlayBarChart_annotation__cpDNq{font-family:PT Sans;font-size:.9rem}.FirstPlayBarChart_gridlines__Yhd-3{stroke:#d9d9d9;stroke-width:1px;-webkit-transform:translate(-8);transform:translate(-8)} +/*# sourceMappingURL=main.430210fe.css.map*/ \ No newline at end of file diff --git a/static/css/main.430210fe.css.map b/static/css/main.430210fe.css.map new file mode 100644 index 0000000..cf7e8a1 --- /dev/null +++ b/static/css/main.430210fe.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/main.430210fe.css","mappings":"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","sources":["index.css","components/Histogram/Histogram.module.css","components/SectionBreak/SectionBreak.module.css","components/Grid/Grid.module.css","components/Legend/Legend.module.css","components/ScrollySingles/ScrollySingles.module.css","components/RadioToggles/RadioToggles.module.css","components/StringOfPearls/StringOfPearls.module.css","components/FirstPlayBarChart/FirstPlayBarChart.module.css"],"sourcesContent":["/* import fonts — copied from portfolio CSS */\n@import url('https://fonts.googleapis.com/css2?family=PT+Sans:wght@400;700&family=PT+Serif:ital,wght@0,400;0,700;1,700&display=swap');\n\n/* import styles from portfolio */\n@import url('https://vivrao9.github.io/style.css');\n\n:root {\n /* first add lemon yellow */\n --lemon_-2: #FFF3B0;\n --lemon_-1: #FFEB75;\n --lemon_: #FFDA00;\n --lemon_1: #C5A900;\n --lemon_2: #9B8500;\n\n /* next, sky blue */\n --sky_-2: #A5E1F8;\n --sky_-1: #7ED2F2;\n --sky_: #40C6F9;\n --sky_1: #1C9ACA;\n --sky_2: #08759E;\n\n /* then green */\n --green_-2: #D5EBA8;\n --green_-1: #BEDA85;\n --green_: #A0C35A;\n --green_1: #83AA35;\n --green_2: #648D13;\n\n /* next, purple */\n --purple_-2: #EEAFF5;\n --purple_-1: #F37FFF;\n --purple_: #E40EFA;\n --purple_1: #B206C4;\n --purple_2: #8A0497;\n\n /* next, orange */\n --orange_-2: #FBC990;\n --orange_-1: #FFAA4C;\n --orange_: #FA8400;\n --orange_1: #C56800;\n --orange_2: #854B0A;\n\n /* lastly, the neutrals */\n --black: #000000;\n --white: #FFFFFF;\n --light_gray_: #D9D9D9;\n --dark_gray_: #959595;\n --default-text: #333333;\n}\n\n::moz-selection {\n color: var(--default-text);\n background: var(--orange_-2);\n}\n\n::selection {\n color: var(--default-text);\n background: var(--orange_-2);\n}\n\np a {\n border-bottom: 2px solid black;\n color: black;\n text-decoration: none;\n}\n\na:hover {\n text-decoration: none;\n}\n\nh1 {\n font-family: 'PT Serif', 'serif';\n font-size: 2.25rem;\n font-weight: 700;\n color: var(--default-text);\n}\n\nh2 {\n font-family: 'PT Serif', 'serif';\n font-size: 2rem;\n color: var(--default-text);\n}\n\nh3 {\n font-family: 'PT Sans', 'sans-serif';\n font-weight: 700;\n font-size: 1.8rem;\n color: var(--default-text);\n}\n\nh4 {\n font-family: 'PT Sans', 'sans-serif';\n font-weight: 600;\n font-size: 1.6rem;\n color: var(--default-text);\n}\n\nh5 {\n font-family: 'PT Sans', 'sans-serif';\n font-weight: 600;\n font-size: 1.25rem;\n color: var(--default-text);\n}\n\nh6 {\n font-family: 'PT Sans', 'sans-serif';\n font-weight: 800;\n font-size: 1rem;\n color: var(--default-text);\n}\n\nimg {\n width: 100%;\n margin: auto;\n display: block;\n}\n\n.caption {\n font-family: 'Courier New', Courier, monospace;\n font-size: 0.9rem;\n}\n\nbody {\n margin: 0;\n font-family: 'PT Sans', sans-serif;\n font-size: 1rem;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: Consolas, source-code-pro, Menlo, Monaco, 'Courier New',\n monospace;\n}\n\n.hedline {\n text-align: center;\n padding: 10px;\n margin-bottom: 2rem;\n orphans: 2;\n}\n\n.hedline a {\n border-bottom: 2px solid black;\n color: black;\n text-decoration: none;\n}\n\n.hedline a:hover {\n text-decoration: none;\n}\n\n.mobile-spacer {\n margin-top: 2rem;\n}\n\n#beeswarm {\n margin-bottom: 2rem;\n}\n\n.oldDoks {\n position: absolute;\n max-width: 35%;\n}\n\n.footnotes {\n border: 2px solid var(--light_gray_);\n padding: 1rem;\n color: #4e4e4e;\n margin-bottom: 1rem;\n}\n\n.footnotes ul {\n margin-bottom: 0px;\n}\n\n.footnotesTitle {\n font-family: 'PT Sans', sans-serif;\n font-size: 1.25rem;\n font-weight: 600;\n color: var(--default-text);\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.footnotes sup {\n margin-right: 0.4rem;\n}\n\n@media (max-width: 768px) {\n .oldDoks {\n display: none;\n }\n}\n\n@media (min-width: 768px) {\n .mobile-spacer {\n margin-top: 0rem;\n }\n}",".annotation {\r\n font-family: 'PT Sans';\r\n font-size: 0.7rem;\r\n}",".section_break {\r\n gap: 2rem;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 4rem;\r\n}\r\n\r\n.small_square {\r\n border: 1.75px solid #999999;\r\n transform: rotate(45deg);\r\n width: 1rem;\r\n height: 1rem;\r\n transition: transform .7s ease-in-out;\r\n}\r\n\r\n.big_square {\r\n border: 1.5px solid #999999;\r\n transform: rotate(45deg);\r\n width: 2rem;\r\n height: 2rem;\r\n display: grid;\r\n grid-template-columns: 1fr 1fr;\r\n grid-template-rows: 1fr 1fr;\r\n transition: transform .7s ease-in-out;\r\n\r\n div {\r\n border: 1px solid #999999;\r\n }\r\n}\r\n\r\n.big_square:hover {\r\n transform: rotate(405deg);\r\n}\r\n\r\n.small_square:hover {\r\n transform: rotate(405deg);\r\n}",".doks_grid {\r\n outline: 2px solid black;\r\n min-width: 80%;\r\n min-height: 80%;\r\n display: grid;\r\n grid-template-columns: repeat(9, 1fr);\r\n grid-template-rows: repeat(9, 1fr);\r\n margin-bottom: 2rem;\r\n justify-content: left;\r\n /* flex-wrap: wrap;\r\n flex-direction: row;\r\n align-content: flex-start; */\r\n}\r\n\r\n@media (min-width: 768px) {\r\n .doks_grid {\r\n max-width: 70%;\r\n max-height: 70%;\r\n }\r\n}\r\n\r\n.grid__cell {\r\n position: relative;\r\n display: flex;\r\n width: 100%;\r\n margin: auto;\r\n flex-wrap: wrap;\r\n border: 1px solid #9c9c9c;\r\n border-right: none;\r\n border-bottom: none;\r\n aspect-ratio: 1/1;\r\n /* width: calc(100% / 3 - 1px);\r\n height: calc(100% / 3 - 1px); */\r\n text-align: center;\r\n vertical-align: middle;\r\n font-size: 0.8em;\r\n font-family: monospace;\r\n}\r\n\r\n.grid__cell > p {\r\n display: none;\r\n}\r\n\r\n.grid__cell > p.active {\r\n /* display: flex; */\r\n width: 100%;\r\n align-items: center;\r\n justify-content: center;\r\n margin: auto;\r\n}\r\n\r\n.grid__cell > p.neighbor {\r\n display: flex;\r\n color: #9c9c9c;\r\n}\r\n\r\n.grid__cell:nth-child(3n) {\r\n border-right: 2px solid black;\r\n }\r\n\r\n/* left border of first column */\r\n.grid__cell:nth-child(9n+1) {\r\n border-left: 2px solid black;\r\n}\r\n\r\n/* top row */\r\n.grid__cell:nth-child(-n+9) {\r\n border-top: 2px solid black;\r\n}\r\n\r\n/* bottom border of every 3rd row */\r\n.grid__cell:nth-child(n + 19):nth-child(-n + 27),\r\n.grid__cell:nth-child(n + 46):nth-child(-n + 54),\r\n.grid__cell:nth-child(n + 73):nth-child(-n + 81) {\r\n border-bottom: 2px solid black;\r\n}\r\n\r\n.gridViz {\r\n display: contents;\r\n}\r\n\r\n.gridViz > svg {\r\n height: 50px;\r\n}",".legend {\r\n max-width: min(275px, 70%);\r\n display: flex;\r\n flex-direction: column;\r\n flex-basis: 0;\r\n flex-grow: 1;\r\n margin-bottom: 12px;\r\n}\r\n\r\n.legendInstructions {\r\n display: flex;\r\n flex-direction: row;\r\n width: 100%;\r\n font-size: 0.8rem;\r\n color: var(--default-text);\r\n margin-bottom: -12px;\r\n}\r\n\r\n.legendBlocks {\r\n display: flex;\r\n flex-direction: row;\r\n width: 100%;\r\n}\r\n\r\n.legendItem {\r\n display: block;\r\n margin-top: 18px;\r\n margin-right: 0px;\r\n width: 100%;\r\n min-width: 48px;\r\n}\r\n\r\n.legendColor {\r\n width: 100%;\r\n height: 12px;\r\n border-right: 1.75px solid var(--black);\r\n}\r\n\r\n.legendLabel {\r\n font-family: 'Courier New', Courier, monospace;\r\n font-size: 0.85rem;\r\n text-align: right;\r\n transform: translate(12px);\r\n}\r\n\r\n.legendLabelLeft {\r\n float: left;\r\n text-align: left;\r\n min-width: 50%;\r\n flex: 1;\r\n}\r\n\r\n.legendLabelRight {\r\n float: right;\r\n text-align: right;\r\n min-width: 0%;\r\n max-width: 50%;\r\n}",".entireScrolly {\r\n display: flex;\r\n align-items: flex-start;\r\n justify-content: space-between;\r\n margin: 5vh 0 0 0;\r\n padding-top: 2rem;\r\n}\r\n\r\nfigure {\r\n display: block;\r\n flex-basis: 60%;\r\n position: -webkit-sticky;\r\n position: sticky;\r\n top: 0;\r\n width: 100%;\r\n margin: 0;\r\n padding-top: 1rem;\r\n padding-left: 1rem;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\narticle {\r\n flex-basis: 40%;\r\n}\r\n\r\n.scrollyCard {\r\n background-color: rgba(255, 255, 255, 0.8);\r\n color: var(--default-text);\r\n opacity: 1;\r\n margin-bottom: 75%;\r\n margin-top: 40%;\r\n z-index: 1;\r\n padding: 1rem;\r\n}\r\n\r\n@media screen and (max-width: 768px) {\r\n figure {\r\n /* display: block; */\r\n flex-basis: 100%;\r\n }\r\n\r\n article {\r\n position: relative;\r\n flex-basis: 85%;\r\n }\r\n\r\n .entireScrolly {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n}",".radioToggles {\r\n position: relative;\r\n display: flex;\r\n background: var(--lemon_-2);\r\n color: var(--lemon_2);\r\n border: 1px solid lightgrey;\r\n justify-content: right;\r\n margin: 20px 0px;\r\n width: fit-content;\r\n overflow: hidden;\r\n}\r\n\r\ninput[type=\"radio\"] {\r\n display: none;\r\n}\r\n\r\ninput[type=\"radio\"]:checked + label {\r\n color: var(--lemon_-2);\r\n background-color: var(--lemon_2);\r\n font-weight: bold;\r\n}\r\n\r\nlabel {\r\n cursor: pointer;\r\n padding: 5px 20px;\r\n margin: 0px;\r\n text-align: center;\r\n width: auto;\r\n /* z-index: 2; */\r\n}\r\n\r\nfigure {\r\n width: 80%;\r\n}\r\n\r\n@media screen and (max-width: 768px) {\r\n figure {\r\n width: 100%;\r\n }\r\n}",".pearlsWrapper {\r\n width: auto;\r\n /* overflow: scroll; */\r\n}\r\n\r\nsvg {\r\n display: block;\r\n}\r\n\r\n.mobileScroll {\r\n display: none;\r\n}\r\n\r\n.puzzleIndices {\r\n font-size: 0.9rem;\r\n font-family:'Courier New', Courier, monospace;\r\n color: #959595;\r\n}\r\n\r\n.annotationText {\r\n font-size: 0.9rem;\r\n color: #959595;\r\n}\r\n\r\n.pearlsHeader {\r\n display: flex;\r\n justify-content: space-between;\r\n}\r\n\r\n.sidewaysPreview {\r\n display: none;\r\n}\r\n\r\n.currentView {\r\n display: none;\r\n}\r\n\r\n@media (max-width: 768px) {\r\n .pearlsWrapper {\r\n width: 100%;\r\n overflow: auto;\r\n }\r\n\r\n #stringOfTimesSVG {\r\n width: 975px;\r\n height: 580px;\r\n min-width: 100%;\r\n }\r\n\r\n .mobileScroll {\r\n display: none;\r\n position: absolute;\r\n left: 5px;\r\n bottom: 5px;\r\n width: 96px;\r\n opacity: .5;\r\n }\r\n\r\n .pearlsHeader {\r\n display:block;\r\n }\r\n\r\n .sidewaysPreview {\r\n display: block;\r\n position: absolute;\r\n background-color: black;\r\n background-image: url('../../data/sidewaysPreview.png');\r\n background-size: contain;\r\n left: 150px;\r\n bottom: 25px;\r\n width: 125px;\r\n height: 75px;\r\n opacity: .75;\r\n }\r\n\r\n .currentView {\r\n display: block;\r\n position: relative;\r\n border: 2px #4e4e4e solid;\r\n width: 45px;\r\n height: 75px;\r\n }\r\n}",".annotation {\r\n font-family: 'PT Sans';\r\n font-size: 0.9rem;\r\n}\r\n\r\n.gridlines {\r\n stroke: #d9d9d9;\r\n stroke-width: 1px;\r\n transform: translate(-8,0);\r\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/main.4755c9a2.js b/static/js/main.4755c9a2.js new file mode 100644 index 0000000..95ea12b --- /dev/null +++ b/static/js/main.4755c9a2.js @@ -0,0 +1,3 @@ +/*! For license information please see main.4755c9a2.js.LICENSE.txt */ +!function(){var e={426:function(e,t,n){(e=n.nmd(e)).exports=function(){"use strict";var t,n;function r(){return t.apply(null,arguments)}function a(e){t=e}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function o(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function l(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function u(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(l(e,t))return!1;return!0}function s(e){return void 0===e}function c(e){return"number"===typeof e||"[object Number]"===Object.prototype.toString.call(e)}function f(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function d(e,t){var n,r=[],a=e.length;for(n=0;n>>0;for(t=0;t0)for(n=0;n=0?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+r}var R=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Y=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,z={},j={};function I(e,t,n,r){var a=r;"string"===typeof r&&(a=function(){return this[r]()}),e&&(j[e]=a),t&&(j[t[0]]=function(){return F(a.apply(this,arguments),t[1],t[2])}),n&&(j[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),e)})}function U(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function H(e){var t,n,r=e.match(R);for(t=0,n=r.length;t=0&&Y.test(e);)e=e.replace(Y,r),Y.lastIndex=0,n-=1;return e}var B={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function $(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(R).map((function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e})).join(""),this._longDateFormat[e])}var q="Invalid date";function G(){return this._invalidDate}var Q="%d",Z=/\d{1,2}/;function X(e){return this._ordinal.replace("%d",e)}var K={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function J(e,t,n,r){var a=this._relativeTime[n];return D(a)?a(e,t,n,r):a.replace(/%d/i,e)}function ee(e,t){var n=this._relativeTime[e>0?"future":"past"];return D(n)?n(t):n.replace(/%s/i,t)}var te={};function ne(e,t){var n=e.toLowerCase();te[n]=te[n+"s"]=te[t]=e}function re(e){return"string"===typeof e?te[e]||te[e.toLowerCase()]:void 0}function ae(e){var t,n,r={};for(n in e)l(e,n)&&(t=re(n))&&(r[t]=e[n]);return r}var ie={};function oe(e,t){ie[e]=t}function le(e){var t,n=[];for(t in e)l(e,t)&&n.push({unit:t,priority:ie[t]});return n.sort((function(e,t){return e.priority-t.priority})),n}function ue(e){return e%4===0&&e%100!==0||e%400===0}function se(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function ce(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=se(t)),n}function fe(e,t){return function(n){return null!=n?(he(this,e,n),r.updateOffset(this,t),this):de(this,e)}}function de(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function he(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&ue(e.year())&&1===e.month()&&29===e.date()?(n=ce(n),e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),Je(n,e.month()))):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function pe(e){return D(this[e=re(e)])?this[e]():this}function me(e,t){if("object"===typeof e){var n,r=le(e=ae(e)),a=r.length;for(n=0;n68?1900:2e3)};var gt=fe("FullYear",!0);function yt(){return ue(this.year())}function vt(e,t,n,r,a,i,o){var l;return e<100&&e>=0?(l=new Date(e+400,t,n,r,a,i,o),isFinite(l.getFullYear())&&l.setFullYear(e)):l=new Date(e,t,n,r,a,i,o),l}function bt(e){var t,n;return e<100&&e>=0?((n=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function wt(e,t,n){var r=7+t-n;return-(7+bt(e,0,r).getUTCDay()-t)%7+r-1}function _t(e,t,n,r,a){var i,o,l=1+7*(t-1)+(7+n-r)%7+wt(e,r,a);return l<=0?o=mt(i=e-1)+l:l>mt(e)?(i=e+1,o=l-mt(e)):(i=e,o=l),{year:i,dayOfYear:o}}function kt(e,t,n){var r,a,i=wt(e.year(),t,n),o=Math.floor((e.dayOfYear()-i-1)/7)+1;return o<1?r=o+xt(a=e.year()-1,t,n):o>xt(e.year(),t,n)?(r=o-xt(e.year(),t,n),a=e.year()+1):(a=e.year(),r=o),{week:r,year:a}}function xt(e,t,n){var r=wt(e,t,n),a=wt(e+1,t,n);return(mt(e)-r+a)/7}function St(e){return kt(e,this._week.dow,this._week.doy).week}I("w",["ww",2],"wo","week"),I("W",["WW",2],"Wo","isoWeek"),ne("week","w"),ne("isoWeek","W"),oe("week",5),oe("isoWeek",5),Ae("w",ke),Ae("ww",ke,ve),Ae("W",ke),Ae("WW",ke,ve),Ie(["w","ww","W","WW"],(function(e,t,n,r){t[r.substr(0,1)]=ce(e)}));var Mt={dow:0,doy:6};function Nt(){return this._week.dow}function Et(){return this._week.doy}function Ct(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function Dt(e){var t=kt(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function Tt(e,t){return"string"!==typeof e?e:isNaN(e)?"number"===typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}function Ot(e,t){return"string"===typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Pt(e,t){return e.slice(t,7).concat(e.slice(0,t))}I("d",0,"do","day"),I("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),I("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),I("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),I("e",0,0,"weekday"),I("E",0,0,"isoWeekday"),ne("day","d"),ne("weekday","e"),ne("isoWeekday","E"),oe("day",11),oe("weekday",11),oe("isoWeekday",11),Ae("d",ke),Ae("e",ke),Ae("E",ke),Ae("dd",(function(e,t){return t.weekdaysMinRegex(e)})),Ae("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),Ae("dddd",(function(e,t){return t.weekdaysRegex(e)})),Ie(["dd","ddd","dddd"],(function(e,t,n,r){var a=n._locale.weekdaysParse(e,r,n._strict);null!=a?t.d=a:g(n).invalidWeekday=e})),Ie(["d","e","E"],(function(e,t,n,r){t[r]=ce(e)}));var Lt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),At="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ft="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Rt=Le,Yt=Le,zt=Le;function jt(e,t){var n=i(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Pt(n,this._week.dow):e?n[e.day()]:n}function It(e){return!0===e?Pt(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}function Ut(e){return!0===e?Pt(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function Ht(e,t,n){var r,a,i,o=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)i=p([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(i,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(i,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(i,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(a=He.call(this._weekdaysParse,o))?a:null:"ddd"===t?-1!==(a=He.call(this._shortWeekdaysParse,o))?a:null:-1!==(a=He.call(this._minWeekdaysParse,o))?a:null:"dddd"===t?-1!==(a=He.call(this._weekdaysParse,o))||-1!==(a=He.call(this._shortWeekdaysParse,o))||-1!==(a=He.call(this._minWeekdaysParse,o))?a:null:"ddd"===t?-1!==(a=He.call(this._shortWeekdaysParse,o))||-1!==(a=He.call(this._weekdaysParse,o))||-1!==(a=He.call(this._minWeekdaysParse,o))?a:null:-1!==(a=He.call(this._minWeekdaysParse,o))||-1!==(a=He.call(this._weekdaysParse,o))||-1!==(a=He.call(this._shortWeekdaysParse,o))?a:null}function Vt(e,t,n){var r,a,i;if(this._weekdaysParseExact)return Ht.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(a=p([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(a,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(a,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(a,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(i="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[r]=new RegExp(i.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}}function Wt(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=Tt(e,this.localeData()),this.add(e-t,"d")):t}function Bt(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function $t(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=Ot(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7}function qt(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Zt.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(l(this,"_weekdaysRegex")||(this._weekdaysRegex=Rt),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function Gt(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Zt.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(l(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Yt),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Qt(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Zt.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(l(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=zt),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Zt(){function e(e,t){return t.length-e.length}var t,n,r,a,i,o=[],l=[],u=[],s=[];for(t=0;t<7;t++)n=p([2e3,1]).day(t),r=Ye(this.weekdaysMin(n,"")),a=Ye(this.weekdaysShort(n,"")),i=Ye(this.weekdays(n,"")),o.push(r),l.push(a),u.push(i),s.push(r),s.push(a),s.push(i);o.sort(e),l.sort(e),u.sort(e),s.sort(e),this._weekdaysRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function Xt(){return this.hours()%12||12}function Kt(){return this.hours()||24}function Jt(e,t){I(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function en(e,t){return t._meridiemParse}function tn(e){return"p"===(e+"").toLowerCase().charAt(0)}I("H",["HH",2],0,"hour"),I("h",["hh",2],0,Xt),I("k",["kk",2],0,Kt),I("hmm",0,0,(function(){return""+Xt.apply(this)+F(this.minutes(),2)})),I("hmmss",0,0,(function(){return""+Xt.apply(this)+F(this.minutes(),2)+F(this.seconds(),2)})),I("Hmm",0,0,(function(){return""+this.hours()+F(this.minutes(),2)})),I("Hmmss",0,0,(function(){return""+this.hours()+F(this.minutes(),2)+F(this.seconds(),2)})),Jt("a",!0),Jt("A",!1),ne("hour","h"),oe("hour",13),Ae("a",en),Ae("A",en),Ae("H",ke),Ae("h",ke),Ae("k",ke),Ae("HH",ke,ve),Ae("hh",ke,ve),Ae("kk",ke,ve),Ae("hmm",xe),Ae("hmmss",Se),Ae("Hmm",xe),Ae("Hmmss",Se),je(["H","HH"],$e),je(["k","kk"],(function(e,t,n){var r=ce(e);t[$e]=24===r?0:r})),je(["a","A"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),je(["h","hh"],(function(e,t,n){t[$e]=ce(e),g(n).bigHour=!0})),je("hmm",(function(e,t,n){var r=e.length-2;t[$e]=ce(e.substr(0,r)),t[qe]=ce(e.substr(r)),g(n).bigHour=!0})),je("hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[$e]=ce(e.substr(0,r)),t[qe]=ce(e.substr(r,2)),t[Ge]=ce(e.substr(a)),g(n).bigHour=!0})),je("Hmm",(function(e,t,n){var r=e.length-2;t[$e]=ce(e.substr(0,r)),t[qe]=ce(e.substr(r))})),je("Hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[$e]=ce(e.substr(0,r)),t[qe]=ce(e.substr(r,2)),t[Ge]=ce(e.substr(a))}));var nn=/[ap]\.?m?\.?/i,rn=fe("Hours",!0);function an(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}var on,ln={calendar:L,longDateFormat:B,invalidDate:q,ordinal:Q,dayOfMonthOrdinalParse:Z,relativeTime:K,months:et,monthsShort:tt,week:Mt,weekdays:Lt,weekdaysMin:Ft,weekdaysShort:At,meridiemParse:nn},un={},sn={};function cn(e,t){var n,r=Math.min(e.length,t.length);for(n=0;n0;){if(r=pn(a.slice(0,t).join("-")))return r;if(n&&n.length>=t&&cn(a,n)>=t-1)break;t--}i++}return on}function hn(e){return null!=e.match("^[^/\\\\]*$")}function pn(t){var n=null;if(void 0===un[t]&&e&&e.exports&&hn(t))try{n=on._abbr,Object(function(){var e=new Error("Cannot find module 'undefined'");throw e.code="MODULE_NOT_FOUND",e}()),mn(n)}catch(r){un[t]=null}return un[t]}function mn(e,t){var n;return e&&((n=s(t)?vn(e):gn(e,t))?on=n:"undefined"!==typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),on._abbr}function gn(e,t){if(null!==t){var n,r=ln;if(t.abbr=e,null!=un[e])C("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=un[e]._config;else if(null!=t.parentLocale)if(null!=un[t.parentLocale])r=un[t.parentLocale]._config;else{if(null==(n=pn(t.parentLocale)))return sn[t.parentLocale]||(sn[t.parentLocale]=[]),sn[t.parentLocale].push({name:e,config:t}),null;r=n._config}return un[e]=new P(O(r,t)),sn[e]&&sn[e].forEach((function(e){gn(e.name,e.config)})),mn(e),un[e]}return delete un[e],null}function yn(e,t){if(null!=t){var n,r,a=ln;null!=un[e]&&null!=un[e].parentLocale?un[e].set(O(un[e]._config,t)):(null!=(r=pn(e))&&(a=r._config),t=O(a,t),null==r&&(t.abbr=e),(n=new P(t)).parentLocale=un[e],un[e]=n),mn(e)}else null!=un[e]&&(null!=un[e].parentLocale?(un[e]=un[e].parentLocale,e===mn()&&mn(e)):null!=un[e]&&delete un[e]);return un[e]}function vn(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return on;if(!i(e)){if(t=pn(e))return t;e=[e]}return dn(e)}function bn(){return N(un)}function wn(e){var t,n=e._a;return n&&-2===g(e).overflow&&(t=n[We]<0||n[We]>11?We:n[Be]<1||n[Be]>Je(n[Ve],n[We])?Be:n[$e]<0||n[$e]>24||24===n[$e]&&(0!==n[qe]||0!==n[Ge]||0!==n[Qe])?$e:n[qe]<0||n[qe]>59?qe:n[Ge]<0||n[Ge]>59?Ge:n[Qe]<0||n[Qe]>999?Qe:-1,g(e)._overflowDayOfYear&&(tBe)&&(t=Be),g(e)._overflowWeeks&&-1===t&&(t=Ze),g(e)._overflowWeekday&&-1===t&&(t=Xe),g(e).overflow=t),e}var _n=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,kn=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,xn=/Z|[+-]\d\d(?::?\d\d)?/,Sn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],Mn=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Nn=/^\/?Date\((-?\d+)/i,En=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Cn={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Dn(e){var t,n,r,a,i,o,l=e._i,u=_n.exec(l)||kn.exec(l),s=Sn.length,c=Mn.length;if(u){for(g(e).iso=!0,t=0,n=s;tmt(i)||0===e._dayOfYear)&&(g(e)._overflowDayOfYear=!0),n=bt(i,0,e._dayOfYear),e._a[We]=n.getUTCMonth(),e._a[Be]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=o[t]=r[t];for(;t<7;t++)e._a[t]=o[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[$e]&&0===e._a[qe]&&0===e._a[Ge]&&0===e._a[Qe]&&(e._nextDay=!0,e._a[$e]=0),e._d=(e._useUTC?bt:vt).apply(null,o),a=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[$e]=24),e._w&&"undefined"!==typeof e._w.d&&e._w.d!==a&&(g(e).weekdayMismatch=!0)}}function In(e){var t,n,r,a,i,o,l,u,s;null!=(t=e._w).GG||null!=t.W||null!=t.E?(i=1,o=4,n=Yn(t.GG,e._a[Ve],kt(Qn(),1,4).year),r=Yn(t.W,1),((a=Yn(t.E,1))<1||a>7)&&(u=!0)):(i=e._locale._week.dow,o=e._locale._week.doy,s=kt(Qn(),i,o),n=Yn(t.gg,e._a[Ve],s.year),r=Yn(t.w,s.week),null!=t.d?((a=t.d)<0||a>6)&&(u=!0):null!=t.e?(a=t.e+i,(t.e<0||t.e>6)&&(u=!0)):a=i),r<1||r>xt(n,i,o)?g(e)._overflowWeeks=!0:null!=u?g(e)._overflowWeekday=!0:(l=_t(n,r,a,i,o),e._a[Ve]=l.year,e._dayOfYear=l.dayOfYear)}function Un(e){if(e._f!==r.ISO_8601)if(e._f!==r.RFC_2822){e._a=[],g(e).empty=!0;var t,n,a,i,o,l,u,s=""+e._i,c=s.length,f=0;for(u=(a=W(e._f,e._locale).match(R)||[]).length,t=0;t0&&g(e).unusedInput.push(o),s=s.slice(s.indexOf(n)+n.length),f+=n.length),j[i]?(n?g(e).empty=!1:g(e).unusedTokens.push(i),Ue(i,n,e)):e._strict&&!n&&g(e).unusedTokens.push(i);g(e).charsLeftOver=c-f,s.length>0&&g(e).unusedInput.push(s),e._a[$e]<=12&&!0===g(e).bigHour&&e._a[$e]>0&&(g(e).bigHour=void 0),g(e).parsedDateParts=e._a.slice(0),g(e).meridiem=e._meridiem,e._a[$e]=Hn(e._locale,e._a[$e],e._meridiem),null!==(l=g(e).era)&&(e._a[Ve]=e._locale.erasConvertYear(l,e._a[Ve])),jn(e),wn(e)}else Fn(e);else Dn(e)}function Hn(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((r=e.isPM(n))&&t<12&&(t+=12),r||12!==t||(t=0),t):t}function Vn(e){var t,n,r,a,i,o,l=!1,u=e._f.length;if(0===u)return g(e).invalidFormat=!0,void(e._d=new Date(NaN));for(a=0;athis?this:e:v()}));function Kn(e,t){var n,r;if(1===t.length&&i(t[0])&&(t=t[0]),!t.length)return Qn();for(n=t[0],r=1;rthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function kr(){if(!s(this._isDSTShifted))return this._isDSTShifted;var e,t={};return _(t,this),(t=$n(t))._a?(e=t._isUTC?p(t._a):Qn(t._a),this._isDSTShifted=this.isValid()&&sr(t._a,e.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function xr(){return!!this.isValid()&&!this._isUTC}function Sr(){return!!this.isValid()&&this._isUTC}function Mr(){return!!this.isValid()&&this._isUTC&&0===this._offset}r.updateOffset=function(){};var Nr=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,Er=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Cr(e,t){var n,r,a,i=e,o=null;return lr(e)?i={ms:e._milliseconds,d:e._days,M:e._months}:c(e)||!isNaN(+e)?(i={},t?i[t]=+e:i.milliseconds=+e):(o=Nr.exec(e))?(n="-"===o[1]?-1:1,i={y:0,d:ce(o[Be])*n,h:ce(o[$e])*n,m:ce(o[qe])*n,s:ce(o[Ge])*n,ms:ce(ur(1e3*o[Qe]))*n}):(o=Er.exec(e))?(n="-"===o[1]?-1:1,i={y:Dr(o[2],n),M:Dr(o[3],n),w:Dr(o[4],n),d:Dr(o[5],n),h:Dr(o[6],n),m:Dr(o[7],n),s:Dr(o[8],n)}):null==i?i={}:"object"===typeof i&&("from"in i||"to"in i)&&(a=Or(Qn(i.from),Qn(i.to)),(i={}).ms=a.milliseconds,i.M=a.months),r=new or(i),lr(e)&&l(e,"_locale")&&(r._locale=e._locale),lr(e)&&l(e,"_isValid")&&(r._isValid=e._isValid),r}function Dr(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Tr(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Or(e,t){var n;return e.isValid()&&t.isValid()?(t=hr(t,e),e.isBefore(t)?n=Tr(e,t):((n=Tr(t,e)).milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function Pr(e,t){return function(n,r){var a;return null===r||isNaN(+r)||(C(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),a=n,n=r,r=a),Lr(this,Cr(n,r),e),this}}function Lr(e,t,n,a){var i=t._milliseconds,o=ur(t._days),l=ur(t._months);e.isValid()&&(a=null==a||a,l&&st(e,de(e,"Month")+l*n),o&&he(e,"Date",de(e,"Date")+o*n),i&&e._d.setTime(e._d.valueOf()+i*n),a&&r.updateOffset(e,o||l))}Cr.fn=or.prototype,Cr.invalid=ir;var Ar=Pr(1,"add"),Fr=Pr(-1,"subtract");function Rr(e){return"string"===typeof e||e instanceof String}function Yr(e){return x(e)||f(e)||Rr(e)||c(e)||jr(e)||zr(e)||null===e||void 0===e}function zr(e){var t,n,r=o(e)&&!u(e),a=!1,i=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],s=i.length;for(t=0;tn.valueOf():n.valueOf()9999?V(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):D(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",V(n,"Z")):V(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function ea(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e,t,n,r,a="moment",i="";return this.isLocal()||(a=0===this.utcOffset()?"moment.utc":"moment.parseZone",i="Z"),e="["+a+'("]',t=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n="-MM-DD[T]HH:mm:ss.SSS",r=i+'[")]',this.format(e+t+n+r)}function ta(e){e||(e=this.isUtc()?r.defaultFormatUtc:r.defaultFormat);var t=V(this,e);return this.localeData().postformat(t)}function na(e,t){return this.isValid()&&(x(e)&&e.isValid()||Qn(e).isValid())?Cr({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function ra(e){return this.from(Qn(),e)}function aa(e,t){return this.isValid()&&(x(e)&&e.isValid()||Qn(e).isValid())?Cr({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function ia(e){return this.to(Qn(),e)}function oa(e){var t;return void 0===e?this._locale._abbr:(null!=(t=vn(e))&&(this._locale=t),this)}r.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",r.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var la=M("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(e){return void 0===e?this.localeData():this.locale(e)}));function ua(){return this._locale}var sa=1e3,ca=60*sa,fa=60*ca,da=3506328*fa;function ha(e,t){return(e%t+t)%t}function pa(e,t,n){return e<100&&e>=0?new Date(e+400,t,n)-da:new Date(e,t,n).valueOf()}function ma(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-da:Date.UTC(e,t,n)}function ga(e){var t,n;if(void 0===(e=re(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?ma:pa,e){case"year":t=n(this.year(),0,1);break;case"quarter":t=n(this.year(),this.month()-this.month()%3,1);break;case"month":t=n(this.year(),this.month(),1);break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=n(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=ha(t+(this._isUTC?0:this.utcOffset()*ca),fa);break;case"minute":t=this._d.valueOf(),t-=ha(t,ca);break;case"second":t=this._d.valueOf(),t-=ha(t,sa)}return this._d.setTime(t),r.updateOffset(this,!0),this}function ya(e){var t,n;if(void 0===(e=re(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?ma:pa,e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=fa-ha(t+(this._isUTC?0:this.utcOffset()*ca),fa)-1;break;case"minute":t=this._d.valueOf(),t+=ca-ha(t,ca)-1;break;case"second":t=this._d.valueOf(),t+=sa-ha(t,sa)-1}return this._d.setTime(t),r.updateOffset(this,!0),this}function va(){return this._d.valueOf()-6e4*(this._offset||0)}function ba(){return Math.floor(this.valueOf()/1e3)}function wa(){return new Date(this.valueOf())}function _a(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function ka(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function xa(){return this.isValid()?this.toISOString():null}function Sa(){return y(this)}function Ma(){return h({},g(this))}function Na(){return g(this).overflow}function Ea(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Ca(e,t){var n,a,i,o=this._eras||vn("en")._eras;for(n=0,a=o.length;n=0)return u[r]}function Ta(e,t){var n=e.since<=e.until?1:-1;return void 0===t?r(e.since).year():r(e.since).year()+(t-e.offset)*n}function Oa(){var e,t,n,r=this.localeData().eras();for(e=0,t=r.length;e(i=xt(e,r,a))&&(t=i),Xa.call(this,e,t,n,r,a))}function Xa(e,t,n,r,a){var i=_t(e,t,n,r,a),o=bt(i.year,0,i.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}function Ka(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}I("N",0,0,"eraAbbr"),I("NN",0,0,"eraAbbr"),I("NNN",0,0,"eraAbbr"),I("NNNN",0,0,"eraName"),I("NNNNN",0,0,"eraNarrow"),I("y",["y",1],"yo","eraYear"),I("y",["yy",2],0,"eraYear"),I("y",["yyy",3],0,"eraYear"),I("y",["yyyy",4],0,"eraYear"),Ae("N",za),Ae("NN",za),Ae("NNN",za),Ae("NNNN",ja),Ae("NNNNN",Ia),je(["N","NN","NNN","NNNN","NNNNN"],(function(e,t,n,r){var a=n._locale.erasParse(e,r,n._strict);a?g(n).era=a:g(n).invalidEra=e})),Ae("y",Ce),Ae("yy",Ce),Ae("yyy",Ce),Ae("yyyy",Ce),Ae("yo",Ua),je(["y","yy","yyy","yyyy"],Ve),je(["yo"],(function(e,t,n,r){var a;n._locale._eraYearOrdinalRegex&&(a=e.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?t[Ve]=n._locale.eraYearOrdinalParse(e,a):t[Ve]=parseInt(e,10)})),I(0,["gg",2],0,(function(){return this.weekYear()%100})),I(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),Va("gggg","weekYear"),Va("ggggg","weekYear"),Va("GGGG","isoWeekYear"),Va("GGGGG","isoWeekYear"),ne("weekYear","gg"),ne("isoWeekYear","GG"),oe("weekYear",1),oe("isoWeekYear",1),Ae("G",De),Ae("g",De),Ae("GG",ke,ve),Ae("gg",ke,ve),Ae("GGGG",Ne,we),Ae("gggg",Ne,we),Ae("GGGGG",Ee,_e),Ae("ggggg",Ee,_e),Ie(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,n,r){t[r.substr(0,2)]=ce(e)})),Ie(["gg","GG"],(function(e,t,n,a){t[a]=r.parseTwoDigitYear(e)})),I("Q",0,"Qo","quarter"),ne("quarter","Q"),oe("quarter",7),Ae("Q",ye),je("Q",(function(e,t){t[We]=3*(ce(e)-1)})),I("D",["DD",2],"Do","date"),ne("date","D"),oe("date",9),Ae("D",ke),Ae("DD",ke,ve),Ae("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),je(["D","DD"],Be),je("Do",(function(e,t){t[Be]=ce(e.match(ke)[0])}));var Ja=fe("Date",!0);function ei(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}I("DDD",["DDDD",3],"DDDo","dayOfYear"),ne("dayOfYear","DDD"),oe("dayOfYear",4),Ae("DDD",Me),Ae("DDDD",be),je(["DDD","DDDD"],(function(e,t,n){n._dayOfYear=ce(e)})),I("m",["mm",2],0,"minute"),ne("minute","m"),oe("minute",14),Ae("m",ke),Ae("mm",ke,ve),je(["m","mm"],qe);var ti=fe("Minutes",!1);I("s",["ss",2],0,"second"),ne("second","s"),oe("second",15),Ae("s",ke),Ae("ss",ke,ve),je(["s","ss"],Ge);var ni,ri,ai=fe("Seconds",!1);for(I("S",0,0,(function(){return~~(this.millisecond()/100)})),I(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),I(0,["SSS",3],0,"millisecond"),I(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),I(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),I(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),I(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),I(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),I(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),ne("millisecond","ms"),oe("millisecond",16),Ae("S",Me,ye),Ae("SS",Me,ve),Ae("SSS",Me,be),ni="SSSS";ni.length<=9;ni+="S")Ae(ni,Ce);function ii(e,t){t[Qe]=ce(1e3*("0."+e))}for(ni="S";ni.length<=9;ni+="S")je(ni,ii);function oi(){return this._isUTC?"UTC":""}function li(){return this._isUTC?"Coordinated Universal Time":""}ri=fe("Milliseconds",!1),I("z",0,0,"zoneAbbr"),I("zz",0,0,"zoneName");var ui=k.prototype;function si(e){return Qn(1e3*e)}function ci(){return Qn.apply(null,arguments).parseZone()}function fi(e){return e}ui.add=Ar,ui.calendar=Hr,ui.clone=Vr,ui.diff=Zr,ui.endOf=ya,ui.format=ta,ui.from=na,ui.fromNow=ra,ui.to=aa,ui.toNow=ia,ui.get=pe,ui.invalidAt=Na,ui.isAfter=Wr,ui.isBefore=Br,ui.isBetween=$r,ui.isSame=qr,ui.isSameOrAfter=Gr,ui.isSameOrBefore=Qr,ui.isValid=Sa,ui.lang=la,ui.locale=oa,ui.localeData=ua,ui.max=Xn,ui.min=Zn,ui.parsingFlags=Ma,ui.set=me,ui.startOf=ga,ui.subtract=Fr,ui.toArray=_a,ui.toObject=ka,ui.toDate=wa,ui.toISOString=Jr,ui.inspect=ea,"undefined"!==typeof Symbol&&null!=Symbol.for&&(ui[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),ui.toJSON=xa,ui.toString=Kr,ui.unix=ba,ui.valueOf=va,ui.creationData=Ea,ui.eraName=Oa,ui.eraNarrow=Pa,ui.eraAbbr=La,ui.eraYear=Aa,ui.year=gt,ui.isLeapYear=yt,ui.weekYear=Wa,ui.isoWeekYear=Ba,ui.quarter=ui.quarters=Ka,ui.month=ct,ui.daysInMonth=ft,ui.week=ui.weeks=Ct,ui.isoWeek=ui.isoWeeks=Dt,ui.weeksInYear=Ga,ui.weeksInWeekYear=Qa,ui.isoWeeksInYear=$a,ui.isoWeeksInISOWeekYear=qa,ui.date=Ja,ui.day=ui.days=Wt,ui.weekday=Bt,ui.isoWeekday=$t,ui.dayOfYear=ei,ui.hour=ui.hours=rn,ui.minute=ui.minutes=ti,ui.second=ui.seconds=ai,ui.millisecond=ui.milliseconds=ri,ui.utcOffset=mr,ui.utc=yr,ui.local=vr,ui.parseZone=br,ui.hasAlignedHourOffset=wr,ui.isDST=_r,ui.isLocal=xr,ui.isUtcOffset=Sr,ui.isUtc=Mr,ui.isUTC=Mr,ui.zoneAbbr=oi,ui.zoneName=li,ui.dates=M("dates accessor is deprecated. Use date instead.",Ja),ui.months=M("months accessor is deprecated. Use month instead",ct),ui.years=M("years accessor is deprecated. Use year instead",gt),ui.zone=M("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",gr),ui.isDSTShifted=M("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",kr);var di=P.prototype;function hi(e,t,n,r){var a=vn(),i=p().set(r,t);return a[n](i,e)}function pi(e,t,n){if(c(e)&&(t=e,e=void 0),e=e||"",null!=t)return hi(e,t,n,"month");var r,a=[];for(r=0;r<12;r++)a[r]=hi(e,r,n,"month");return a}function mi(e,t,n,r){"boolean"===typeof e?(c(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,c(t)&&(n=t,t=void 0),t=t||"");var a,i=vn(),o=e?i._week.dow:0,l=[];if(null!=n)return hi(t,(n+o)%7,r,"day");for(a=0;a<7;a++)l[a]=hi(t,(a+o)%7,r,"day");return l}function gi(e,t){return pi(e,t,"months")}function yi(e,t){return pi(e,t,"monthsShort")}function vi(e,t,n){return mi(e,t,n,"weekdays")}function bi(e,t,n){return mi(e,t,n,"weekdaysShort")}function wi(e,t,n){return mi(e,t,n,"weekdaysMin")}di.calendar=A,di.longDateFormat=$,di.invalidDate=G,di.ordinal=X,di.preparse=fi,di.postformat=fi,di.relativeTime=J,di.pastFuture=ee,di.set=T,di.eras=Ca,di.erasParse=Da,di.erasConvertYear=Ta,di.erasAbbrRegex=Ra,di.erasNameRegex=Fa,di.erasNarrowRegex=Ya,di.months=it,di.monthsShort=ot,di.monthsParse=ut,di.monthsRegex=ht,di.monthsShortRegex=dt,di.week=St,di.firstDayOfYear=Et,di.firstDayOfWeek=Nt,di.weekdays=jt,di.weekdaysMin=Ut,di.weekdaysShort=It,di.weekdaysParse=Vt,di.weekdaysRegex=qt,di.weekdaysShortRegex=Gt,di.weekdaysMinRegex=Qt,di.isPM=tn,di.meridiem=an,mn("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===ce(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),r.lang=M("moment.lang is deprecated. Use moment.locale instead.",mn),r.langData=M("moment.langData is deprecated. Use moment.localeData instead.",vn);var _i=Math.abs;function ki(){var e=this._data;return this._milliseconds=_i(this._milliseconds),this._days=_i(this._days),this._months=_i(this._months),e.milliseconds=_i(e.milliseconds),e.seconds=_i(e.seconds),e.minutes=_i(e.minutes),e.hours=_i(e.hours),e.months=_i(e.months),e.years=_i(e.years),this}function xi(e,t,n,r){var a=Cr(t,n);return e._milliseconds+=r*a._milliseconds,e._days+=r*a._days,e._months+=r*a._months,e._bubble()}function Si(e,t){return xi(this,e,t,1)}function Mi(e,t){return xi(this,e,t,-1)}function Ni(e){return e<0?Math.floor(e):Math.ceil(e)}function Ei(){var e,t,n,r,a,i=this._milliseconds,o=this._days,l=this._months,u=this._data;return i>=0&&o>=0&&l>=0||i<=0&&o<=0&&l<=0||(i+=864e5*Ni(Di(l)+o),o=0,l=0),u.milliseconds=i%1e3,e=se(i/1e3),u.seconds=e%60,t=se(e/60),u.minutes=t%60,n=se(t/60),u.hours=n%24,o+=se(n/24),l+=a=se(Ci(o)),o-=Ni(Di(a)),r=se(l/12),l%=12,u.days=o,u.months=l,u.years=r,this}function Ci(e){return 4800*e/146097}function Di(e){return 146097*e/4800}function Ti(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if("month"===(e=re(e))||"quarter"===e||"year"===e)switch(t=this._days+r/864e5,n=this._months+Ci(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(Di(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}}function Oi(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*ce(this._months/12):NaN}function Pi(e){return function(){return this.as(e)}}var Li=Pi("ms"),Ai=Pi("s"),Fi=Pi("m"),Ri=Pi("h"),Yi=Pi("d"),zi=Pi("w"),ji=Pi("M"),Ii=Pi("Q"),Ui=Pi("y");function Hi(){return Cr(this)}function Vi(e){return e=re(e),this.isValid()?this[e+"s"]():NaN}function Wi(e){return function(){return this.isValid()?this._data[e]:NaN}}var Bi=Wi("milliseconds"),$i=Wi("seconds"),qi=Wi("minutes"),Gi=Wi("hours"),Qi=Wi("days"),Zi=Wi("months"),Xi=Wi("years");function Ki(){return se(this.days()/7)}var Ji=Math.round,eo={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function to(e,t,n,r,a){return a.relativeTime(t||1,!!n,e,r)}function no(e,t,n,r){var a=Cr(e).abs(),i=Ji(a.as("s")),o=Ji(a.as("m")),l=Ji(a.as("h")),u=Ji(a.as("d")),s=Ji(a.as("M")),c=Ji(a.as("w")),f=Ji(a.as("y")),d=i<=n.ss&&["s",i]||i0,d[4]=r,to.apply(null,d)}function ro(e){return void 0===e?Ji:"function"===typeof e&&(Ji=e,!0)}function ao(e,t){return void 0!==eo[e]&&(void 0===t?eo[e]:(eo[e]=t,"s"===e&&(eo.ss=t-1),!0))}function io(e,t){if(!this.isValid())return this.localeData().invalidDate();var n,r,a=!1,i=eo;return"object"===typeof e&&(t=e,e=!1),"boolean"===typeof e&&(a=e),"object"===typeof t&&(i=Object.assign({},eo,t),null!=t.s&&null==t.ss&&(i.ss=t.s-1)),r=no(this,!a,i,n=this.localeData()),a&&(r=n.pastFuture(+this,r)),n.postformat(r)}var oo=Math.abs;function lo(e){return(e>0)-(e<0)||+e}function uo(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,r,a,i,o,l,u=oo(this._milliseconds)/1e3,s=oo(this._days),c=oo(this._months),f=this.asSeconds();return f?(e=se(u/60),t=se(e/60),u%=60,e%=60,n=se(c/12),c%=12,r=u?u.toFixed(3).replace(/\.?0+$/,""):"",a=f<0?"-":"",i=lo(this._months)!==lo(f)?"-":"",o=lo(this._days)!==lo(f)?"-":"",l=lo(this._milliseconds)!==lo(f)?"-":"",a+"P"+(n?i+n+"Y":"")+(c?i+c+"M":"")+(s?o+s+"D":"")+(t||e||u?"T":"")+(t?l+t+"H":"")+(e?l+e+"M":"")+(u?l+r+"S":"")):"P0D"}var so=or.prototype;return so.isValid=ar,so.abs=ki,so.add=Si,so.subtract=Mi,so.as=Ti,so.asMilliseconds=Li,so.asSeconds=Ai,so.asMinutes=Fi,so.asHours=Ri,so.asDays=Yi,so.asWeeks=zi,so.asMonths=ji,so.asQuarters=Ii,so.asYears=Ui,so.valueOf=Oi,so._bubble=Ei,so.clone=Hi,so.get=Vi,so.milliseconds=Bi,so.seconds=$i,so.minutes=qi,so.hours=Gi,so.days=Qi,so.weeks=Ki,so.months=Zi,so.years=Xi,so.humanize=io,so.toISOString=uo,so.toString=uo,so.toJSON=uo,so.locale=oa,so.localeData=ua,so.toIsoString=M("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",uo),so.lang=la,I("X",0,0,"unix"),I("x",0,0,"valueOf"),Ae("x",De),Ae("X",Pe),je("X",(function(e,t,n){n._d=new Date(1e3*parseFloat(e))})),je("x",(function(e,t,n){n._d=new Date(ce(e))})),r.version="2.29.4",a(Qn),r.fn=ui,r.min=Jn,r.max=er,r.now=tr,r.utc=p,r.unix=si,r.months=gi,r.isDate=f,r.locale=mn,r.invalid=v,r.duration=Cr,r.isMoment=x,r.weekdays=vi,r.parseZone=ci,r.localeData=vn,r.isDuration=lr,r.monthsShort=yi,r.weekdaysMin=wi,r.defineLocale=gn,r.updateLocale=yn,r.locales=bn,r.weekdaysShort=bi,r.normalizeUnits=re,r.relativeTimeRounding=ro,r.relativeTimeThreshold=ao,r.calendarFormat=Ur,r.prototype=ui,r.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},r}()},463:function(e,t,n){"use strict";var r=n(791),a=n(296);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n