diff --git a/.gitignore b/.gitignore index 038ce756d79..aa5bc9d68a7 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,7 @@ lib64 __pycache__ # Python3 pyvenv +env venv sbase sbase* @@ -74,9 +75,6 @@ archived_logs geckodriver.log pytestdebug.log -# Presentations -presentations_saved - # Reports latest_report report_archives @@ -85,6 +83,10 @@ html_report.html report.html report.xml +# Presentations +presentations_saved +saved_presentations + # Tours tours_exported diff --git a/examples/presenter/ReadMe.md b/examples/presenter/ReadMe.md index 8b1409e5df3..ddc9fdfcde5 100755 --- a/examples/presenter/ReadMe.md +++ b/examples/presenter/ReadMe.md @@ -2,12 +2,12 @@ # 📰 Presenter 📰 -SeleniumBase Presenter allows you to create an HTML presentation with only a few lines of Python. +SeleniumBase Presenter allows you to create HTML presentations with Python. The Reveal-JS library is used for running the presentations. -**Here's a sample slide:** +**Here's a sample presentation:** -
+
Slides can include HTML, code, images, and iframes. @@ -21,11 +21,15 @@ pytest my_presentation.py ### Creating a new presentation: ```python -self.create_presentation(name=None, show_notes=True) +self.create_presentation(name=None, theme="serif", show_notes=True) """ Creates a Reveal-JS presentation that you can add slides to. @Params name - If creating multiple presentations at the same time, use this to specify the name of the current presentation. + theme - Set a theme with a unique style for the presentation. + Valid themes: "serif" (default), "sky", "white", "black", + "simple", "league", "moon", "night", + "beige", "blood", and "solarized". show_notes - When set to True, the Notes feature becomes enabled, which allows presenters to see notes next to slides. """ @@ -40,7 +44,7 @@ Notes are enabled by default unless you specify: ```python self.add_slide(content=None, image=None, code=None, iframe=None, - notes=None, name=None) + content2=None, notes=None, name=None) """ Allows the user to add slides to a presentation. @Params content - The HTML content to display on the presentation slide. @@ -48,6 +52,7 @@ self.add_slide(content=None, image=None, code=None, iframe=None, code - Attach code of any programming language to the slide. Language-detection will be used to add syntax formatting. iframe - Attach an iFrame (from a URL link) to the slide. + content2 - HTML content to display after adding an image or code. notes - Additional notes to include with the slide. ONLY SEEN if show_notes is set for the presentation. name - If creating multiple presentations at the same time, @@ -59,11 +64,19 @@ self.add_slide(content=None, image=None, code=None, iframe=None, ### Running a presentation: ```python -self.begin_presentation(filename="my_presentation.html", name=None) -""" Begin a Reveal-JS Presentation in the web browser. """ +self.begin_presentation(filename="my_presentation.html", interval=0) +""" Begin a Reveal-JS Presentation in the web browser. + @Params + name - If creating multiple presentations at the same time, + use this to select the one you wish to add slides to. + filename - The name of the HTML file that you wish to + save the presentation to. (filename must end in ".html") + interval - The delay time between autoplaying slides. (in seconds) + If set to 0 (default), autoplay is disabled. +""" ``` -Before the presentation is run, the full HTML is saved to the ``presentations_saved/`` folder. +Before the presentation is run, the full HTML is saved to the ``saved_presentations/`` folder. All methods have the optional ``name`` argument, which is only needed if you're creating multiple presentations at once. @@ -77,22 +90,44 @@ from seleniumbase import BaseCase class MyPresenterClass(BaseCase): def test_presenter(self): - self.create_presentation() + self.create_presentation(theme="serif") + self.add_slide( + '

Welcome


\n' + '

Press the Right Arrow

') self.add_slide( - "

Welcome!

" - "

Enjoy the Presentation!

") + '

SeleniumBase Presenter


\n' + '' + '' + '' + '

\n

Create presentations with Python

') self.add_slide( - '

SeleniumBase "Presenter"

' - '' - '

A tool for creating presentations

') + '

Make slides using HTML:


\n' + '' + '\n\n' + '\n' + '' + '\n' + '\n' + '\n' + '
Row ABCRow XYZ
Value ONEValue TWO
Value THREEValue FOUR

\n

(HTML table example)

') self.add_slide( - '

You can add HTML to any slide:


' - '' - '' - '
Row 1Row 2
Value 1Value 2

' - '

(HTML table example)

') + '

Keyboard Shortcuts:

\n' + '\n' + '\n' + '\n' + '' + '\n\n' + '\n' + '\n' + '\n' + '
KeyAction
=>Next Slide (N also works)
<=Previous Slide (P also works)
FFull Screen Mode
OOverview Mode Toggle
escExit Full Screen / Overview Mode
.Pause/Resume Toggle
spaceNext Slide (alternative)
' + ) self.add_slide( - "

You can display code:

", + '

Add images to slides:

', + image="https://seleniumbase.io/other/seagulls.jpg") + self.add_slide( + '

Add code to slides:

', code=( 'from seleniumbase import BaseCase\n\n' 'class MyTestClass(BaseCase):\n\n' @@ -107,26 +142,60 @@ class MyPresenterClass(BaseCase): ' self.assert_text("free to copy and reuse")\n' ' self.go_back()\n' ' self.click_link_text("About")\n' - ' self.assert_exact_text("xkcd.com", "h2")\n')) + ' self.assert_exact_text("xkcd.com", "h2")')) self.add_slide( - "

You can highlight code:

", + "

Highlight code in slides:

", code=( 'from seleniumbase import BaseCase\n\n' 'class MyTestClass(BaseCase):\n\n' ' def test_basic(self):\n' ' self.open("https://store.xkcd.com/search")\n' - ' self.type(\'input[name="q"]\', "xkcd book\\n")\n')) + ' self.type(\'input[name="q"]\', "xkcd book\\n")\n' + ' self.assert_text("xkcd: volume 0", "h3")')) self.add_slide( - "

You can add notes to slides:

", - notes="

") + '

Add iFrames to slides:

', + iframe="https://seleniumbase.io/demo_page") self.add_slide( - "

You can add images to slides:

", - image="https://seleniumbase.io/img/sb_logo_10.png") + '

Getting started is easy:

', + code=( + 'from seleniumbase import BaseCase\n\n' + 'class MyPresenterClass(BaseCase):\n\n' + ' def test_presenter(self):\n' + ' self.create_presentation()\n' + ' self.add_slide("Welcome to Presenter!")\n' + ' self.add_slide(\n' + ' "Add code to slides:",\n' + ' code=(\n' + ' "from seleniumbase import BaseCase\\n\\n"\n' + ' "class MyPresenterClass(BaseCase):\\n\\n"\n' + ' " def test_presenter(self):\\n"\n' + ' " self.create_presentation()\\n"))\n' + ' self.begin_presentation(filename="demo.html")')) self.add_slide( - "

You can add iframes to slides:

", - iframe="https://seleniumbase.io/demo_page") - self.add_slide("

The End

") - self.begin_presentation() + '

Include notes with slides:


', + code=('self.add_slide("[Your HTML goes here]",\n' + ' code="[Your software code goes here]",\n' + ' content2="[Additional HTML goes here]",\n' + ' notes="[Attached speaker notes go here]"\n' + ' "[Note A! -- Note B! -- Note C! ]")'), + notes='

', + content2="

(Notes can include HTML tags)

") + self.add_slide( + '

Multiple themes available:

', + code=( + 'self.create_presentation(theme="serif")\n\n' + 'self.create_presentation(theme="sky")\n\n' + 'self.create_presentation(theme="simple")\n\n' + 'self.create_presentation(theme="white")\n\n' + 'self.create_presentation(theme="moon")\n\n' + 'self.create_presentation(theme="black")\n\n' + 'self.create_presentation(theme="night")\n\n' + 'self.create_presentation(theme="beige")\n\n' + 'self.create_presentation(theme="league")')) + self.add_slide( + '

The End

', + image="https://seleniumbase.io/img/sb_logo_10.png") + self.begin_presentation(filename="presenter.html", interval=0) ``` #### This example is from [my_presentation.py](https://github.com/seleniumbase/SeleniumBase/blob/master/examples/presenter/my_presentation.py), which you can run from the ``examples/presenter`` folder with the following command: @@ -140,7 +209,7 @@ pytest my_presentation.py If you want to save the presentation you created as an HTML file, use: ```python -self.save_presentation(filename="my_presentation.html", name=None) +self.save_presentation(filename="my_presentation.html") ``` Presentations automatically get saved when calling: diff --git a/examples/presenter/my_presentation.py b/examples/presenter/my_presentation.py index 2a646f1b908..a7ec2d643e6 100755 --- a/examples/presenter/my_presentation.py +++ b/examples/presenter/my_presentation.py @@ -4,22 +4,44 @@ class MyPresenterClass(BaseCase): def test_presenter(self): - self.create_presentation() + self.create_presentation(theme="serif") self.add_slide( - "

Welcome!

" - "

Enjoy the Presentation!

") + '

Welcome


\n' + '

Press the Right Arrow

') self.add_slide( - '

SeleniumBase "Presenter"

' - '' - '

A tool for creating presentations

') + '

SeleniumBase Presenter


\n' + '' + '' + '' + '

\n

Create presentations with Python

') self.add_slide( - '

You can add HTML to any slide:


' - '' - '' - '
Row 1Row 2
Value 1Value 2

' - '

(HTML table example)

') + '

Make slides using HTML:


\n' + '' + '\n\n' + '\n' + '' + '\n' + '\n' + '\n' + '
Row ABCRow XYZ
Value ONEValue TWO
Value THREEValue FOUR

\n

(HTML table example)

') self.add_slide( - "

You can display code:

", + '

Keyboard Shortcuts:

\n' + '\n' + '\n' + '\n' + '' + '\n\n' + '\n' + '\n' + '\n' + '
KeyAction
=>Next Slide (N also works)
<=Previous Slide (P also works)
FFull Screen Mode
OOverview Mode Toggle
escExit Full Screen / Overview Mode
.Pause/Resume Toggle
spaceNext Slide (alternative)
' + ) + self.add_slide( + '

Add images to slides:

', + image="https://seleniumbase.io/other/seagulls.jpg") + self.add_slide( + '

Add code to slides:

', code=( 'from seleniumbase import BaseCase\n\n' 'class MyTestClass(BaseCase):\n\n' @@ -34,23 +56,57 @@ def test_presenter(self): ' self.assert_text("free to copy and reuse")\n' ' self.go_back()\n' ' self.click_link_text("About")\n' - ' self.assert_exact_text("xkcd.com", "h2")\n')) + ' self.assert_exact_text("xkcd.com", "h2")')) self.add_slide( - "

You can highlight code:

", + "

Highlight code in slides:

", code=( 'from seleniumbase import BaseCase\n\n' 'class MyTestClass(BaseCase):\n\n' ' def test_basic(self):\n' ' self.open("https://store.xkcd.com/search")\n' - ' self.type(\'input[name="q"]\', "xkcd book\\n")\n')) + ' self.type(\'input[name="q"]\', "xkcd book\\n")\n' + ' self.assert_text("xkcd: volume 0", "h3")')) self.add_slide( - "

You can add notes to slides:

", - notes="

  • Note A!
  • Note B!
  • Note C!
  • Note D!

") + '

Add iFrames to slides:

', + iframe="https://seleniumbase.io/demo_page") self.add_slide( - "

You can add images to slides:

", - image="https://seleniumbase.io/img/sb_logo_10.png") + '

Getting started is easy:

', + code=( + 'from seleniumbase import BaseCase\n\n' + 'class MyPresenterClass(BaseCase):\n\n' + ' def test_presenter(self):\n' + ' self.create_presentation()\n' + ' self.add_slide("Welcome to Presenter!")\n' + ' self.add_slide(\n' + ' "Add code to slides:",\n' + ' code=(\n' + ' "from seleniumbase import BaseCase\\n\\n"\n' + ' "class MyPresenterClass(BaseCase):\\n\\n"\n' + ' " def test_presenter(self):\\n"\n' + ' " self.create_presentation()\\n"))\n' + ' self.begin_presentation(filename="demo.html")')) self.add_slide( - "

You can add iframes to slides:

", - iframe="https://seleniumbase.io/demo_page") - self.add_slide("

The End

") - self.begin_presentation() + '

Include notes with slides:


', + code=('self.add_slide("[Your HTML goes here]",\n' + ' code="[Your software code goes here]",\n' + ' content2="[Additional HTML goes here]",\n' + ' notes="[Attached speaker notes go here]"\n' + ' "[Note A! -- Note B! -- Note C! ]")'), + notes='

  • Note A!
  • Note B!
  • Note C!
  • Note D!

', + content2="

(Notes can include HTML tags)

") + self.add_slide( + '

Multiple themes available:

', + code=( + 'self.create_presentation(theme="serif")\n\n' + 'self.create_presentation(theme="sky")\n\n' + 'self.create_presentation(theme="simple")\n\n' + 'self.create_presentation(theme="white")\n\n' + 'self.create_presentation(theme="moon")\n\n' + 'self.create_presentation(theme="black")\n\n' + 'self.create_presentation(theme="night")\n\n' + 'self.create_presentation(theme="beige")\n\n' + 'self.create_presentation(theme="league")')) + self.add_slide( + '

The End

', + image="https://seleniumbase.io/img/sb_logo_10.png") + self.begin_presentation(filename="presenter.html", interval=0) diff --git a/examples/test_demo_site.py b/examples/test_demo_site.py index daf2502ba3b..f7faaa46776 100755 --- a/examples/test_demo_site.py +++ b/examples/test_demo_site.py @@ -94,8 +94,8 @@ def test_demo_site(self): # Assert exact text self.assert_exact_text("Demo Page", "h1") - # Assert no broken links - self.assert_no_404_errors() + # Assert no broken links (Can be slow if many links) + # self.assert_no_404_errors() - # Assert no JavaScript errors + # Assert no JavaScript errors (Can also detect 404s) self.assert_no_js_errors() diff --git a/help_docs/method_summary.md b/help_docs/method_summary.md index 33730b71b2f..0bedfe99214 100755 --- a/help_docs/method_summary.md +++ b/help_docs/method_summary.md @@ -356,13 +356,14 @@ self.add_meta_tag(http_equiv=None, content=None) ############ -self.create_presentation(name=None, show_notes=True) +self.create_presentation(name=None, theme="default", show_notes=True) -self.add_slide(content=None, image=None, code=None, iframe=None, notes=None, name=None) +self.add_slide(content=None, image=None, code=None, iframe=None, + content2=None, notes=None, name=None) -self.save_presentation(filename="my_presentation.html", name=None) +self.save_presentation(name=None, filename=None, interval=0) -self.begin_presentation(filename="my_presentation.html", name=None) +self.begin_presentation(name=None, filename=None, interval=0) ############ diff --git a/requirements.txt b/requirements.txt index 4a663531853..96b8d92fb76 100755 --- a/requirements.txt +++ b/requirements.txt @@ -7,7 +7,7 @@ wheel>=0.34.2 six==1.15.0 nose==1.3.7 ipdb==0.13.3 -idna==2.9 +idna==2.10 chardet==3.0.4 urllib3==1.25.9 requests==2.24.0 @@ -42,7 +42,7 @@ coverage==5.1 pyotp==2.3.0 boto==2.49.0 cffi==1.14.0 -rich==2.2.6;python_version>="3.6" and python_version<"4.0" +rich==3.0.0;python_version>="3.6" and python_version<"4.0" flake8==3.7.9;python_version<"3.5" flake8==3.8.3;python_version>="3.5" pyflakes==2.1.1;python_version<"3.5" diff --git a/seleniumbase/fixtures/base_case.py b/seleniumbase/fixtures/base_case.py index ccbdab00da6..bb72e2fd775 100755 --- a/seleniumbase/fixtures/base_case.py +++ b/seleniumbase/fixtures/base_case.py @@ -3151,40 +3151,79 @@ def add_meta_tag(self, http_equiv=None, content=None): ############ - def create_presentation(self, name=None, show_notes=True): + def create_presentation(self, name=None, theme="default", show_notes=True): """ Creates a Reveal-JS presentation that you can add slides to. @Params name - If creating multiple presentations at the same time, use this to specify the name of the current presentation. + theme - Set a theme with a unique style for the presentation. + Valid themes: "serif" (default), "sky", "white", "black", + "simple", "league", "moon", "night", + "beige", "blood", and "solarized". show_notes - When set to True, the Notes feature becomes enabled, which allows presenters to see notes next to slides. """ if not name: name = "default" + if not theme or theme == "default": + theme = "serif" + valid_themes = (["serif", "white", "black", "beige", "simple", "sky", + "league", "moon", "night", "blood", "solarized"]) + theme = theme.lower() + if theme not in valid_themes: + raise Exception( + "Theme {%s} not found! Valid themes: %s" + "" % (theme, valid_themes)) + + reveal_theme_css = None + if theme == "serif": + reveal_theme_css = constants.Reveal.SERIF_MIN_CSS + elif theme == "sky": + reveal_theme_css = constants.Reveal.SKY_MIN_CSS + elif theme == "white": + reveal_theme_css = constants.Reveal.WHITE_MIN_CSS + elif theme == "black": + reveal_theme_css = constants.Reveal.BLACK_MIN_CSS + elif theme == "simple": + reveal_theme_css = constants.Reveal.SIMPLE_MIN_CSS + elif theme == "league": + reveal_theme_css = constants.Reveal.LEAGUE_MIN_CSS + elif theme == "moon": + reveal_theme_css = constants.Reveal.MOON_MIN_CSS + elif theme == "night": + reveal_theme_css = constants.Reveal.NIGHT_MIN_CSS + elif theme == "beige": + reveal_theme_css = constants.Reveal.BEIGE_MIN_CSS + elif theme == "blood": + reveal_theme_css = constants.Reveal.BLOOD_MIN_CSS + elif theme == "solarized": + reveal_theme_css = constants.Reveal.SOLARIZED_MIN_CSS + else: + # Use the default if unable to determine the theme + reveal_theme_css = constants.Reveal.SERIF_MIN_CSS new_presentation = ( - """ - - - - - - - -
-
- """ % (constants.Reveal.MIN_CSS, constants.Reveal.WHITE_MIN_CSS)) + '\n' + '\n' + '\n' + '\n' + '\n' + '\n\n' + '\n' + '
\n' + '
\n' + '' % (constants.Reveal.MIN_CSS, reveal_theme_css)) self._presentation_slides[name] = [] self._presentation_slides[name].append(new_presentation) def add_slide(self, content=None, image=None, code=None, iframe=None, - notes=None, name=None): + content2=None, notes=None, name=None): """ Allows the user to add slides to a presentation. @Params content - The HTML content to display on the presentation slide. @@ -3192,6 +3231,7 @@ def add_slide(self, content=None, image=None, code=None, iframe=None, code - Attach code of any programming language to the slide. Language-detection will be used to add syntax formatting. iframe - Attach an iFrame (from a URL link) to the slide. + content2 - HTML content to display after adding an image or code. notes - Additional notes to include with the slide. ONLY SEEN if show_notes is set for the presentation. name - If creating multiple presentations at the same time, @@ -3205,53 +3245,79 @@ def add_slide(self, content=None, image=None, code=None, iframe=None, self.create_presentation(name=name, show_notes=True) if not content: content = "" + if not content2: + content2 = "" if not notes: notes = "" - html = ('
%s' % content) + add_line = "" + if content.startswith("<"): + add_line = "\n" + html = ('\n
%s%s' % (add_line, content)) if image: - html += '
' % image + html += '\n
' % image if code: - html += '
' - html += '
%s
' % code + html += '\n
' + html += '\n
\n%s
' % code if iframe: - html += ('
' - '' % iframe) - html += '' % notes - html += '
' + add_line = "" + if content2.startswith("<"): + add_line = "\n" + if content2: + html += '%s%s' % (add_line, content2) + html += '\n' % notes + html += '\n
\n' self._presentation_slides[name].append(html) - def save_presentation(self, filename="my_presentation.html", name=None): - """ Saves a Reveal-JS Presentation to a folder for later use. """ + def save_presentation(self, name=None, filename=None, interval=0): + """ Saves a Reveal-JS Presentation to a file for later use. + @Params + name - If creating multiple presentations at the same time, + use this to select the one you wish to add slides to. + filename - The name of the HTML file that you wish to + save the presentation to. (filename must end in ".html") + interval - The delay time between autoplaying slides. (in seconds) + If set to 0 (default), autoplay is disabled. + """ if not name: name = "default" + if not filename: + filename = "my_presentation.html" if name not in self._presentation_slides: raise Exception("Presentation {%s} does not exist!" % name) if not filename.endswith('.html'): raise Exception('Presentation file must end in ".html"!') + if not interval: + interval = 0 + if not type(interval) is int and not type(interval) is float: + raise Exception('Expecting a numeric value for "interval"!') + if interval < 0: + raise Exception('The "interval" cannot be a negative number!') + interval_ms = float(interval) * 1000.0 the_html = "" for slide in self._presentation_slides[name]: the_html += slide the_html += ( - """ -
-
- - - - - - - """ % (constants.Reveal.MIN_JS, - constants.Reveal.MARKED_JS, - constants.PrettifyJS.RUN_PRETTIFY_JS)) + '\n
\n' + '
\n' + '\n' + '\n' + '\n' + '\n' + '\n' + '' % (constants.Reveal.MIN_JS, + constants.PrettifyJS.RUN_PRETTIFY_JS, + interval_ms)) saved_presentations_folder = constants.Presentations.SAVED_FOLDER if saved_presentations_folder.endswith("/"): @@ -3268,32 +3334,53 @@ def save_presentation(self, filename="my_presentation.html", name=None): print('\n>>> [%s] was saved!\n' % file_path) return file_path - def begin_presentation(self, filename="my_presentation.html", name=None): - """ Begin a Reveal-JS Presentation in the web browser. """ - + def begin_presentation(self, name=None, filename=None, interval=0): + """ Begin a Reveal-JS Presentation in the web browser. + @Params + name - If creating multiple presentations at the same time, + use this to select the one you wish to add slides to. + filename - The name of the HTML file that you wish to + save the presentation to. (filename must end in ".html") + interval - The delay time between autoplaying slides. (in seconds) + If set to 0 (default), autoplay is disabled. + """ if self.headless: return # Presentations should not run in headless mode. if not name: name = "default" + if not filename: + filename = "my_presentation.html" if name not in self._presentation_slides: raise Exception("Presentation {%s} does not exist!" % name) if not filename.endswith('.html'): raise Exception('Presentation file must end in ".html"!') + if not interval: + interval = 0 + if not type(interval) is int and not type(interval) is float: + raise Exception('Expecting a numeric value for "interval"!') + if interval < 0: + raise Exception('The "interval" cannot be a negative number!') end_slide = ( - '
' - '

') + '\n
\n' + '

\n
\n') self._presentation_slides[name].append(end_slide) - file_path = self.save_presentation(name=name, filename=filename) + file_path = self.save_presentation( + name=name, filename=filename, interval=interval) self._presentation_slides[name].pop() self.open_html_file(file_path) presentation_folder = constants.Presentations.SAVED_FOLDER - while (len(self.driver.window_handles) > 0 and ( - presentation_folder in self.get_current_url())): - time.sleep(0.1) - if self.is_element_visible("p.End_Presentation_Now"): - break + try: + while (len(self.driver.window_handles) > 0 and ( + presentation_folder in self.get_current_url())): + time.sleep(0.05) + if self.is_element_visible( + "section.present p.End_Presentation_Now"): + break + time.sleep(0.05) + except Exception: + pass ############ @@ -3761,7 +3848,7 @@ def play_tour(self, name=None, interval=0): @Params name - If creating multiple tours at the same time, use this to select the tour you wish to add steps to. - interval - The delay time between autoplaying tour steps. + interval - The delay time between autoplaying tour steps. (Seconds) If set to 0 (default), the tour is fully manual control. """ if self.headless: diff --git a/seleniumbase/fixtures/constants.py b/seleniumbase/fixtures/constants.py index 509bc5b4afd..0b8898e41d5 100755 --- a/seleniumbase/fixtures/constants.py +++ b/seleniumbase/fixtures/constants.py @@ -20,7 +20,7 @@ class Files: class Presentations: - SAVED_FOLDER = "presentations_saved" + SAVED_FOLDER = "saved_presentations" class SavedCookies: @@ -97,14 +97,30 @@ class Reveal: VER = "3.8.0" MIN_CSS = ("https://cdnjs.cloudflare.com/ajax/libs/" "reveal.js/%s/css/reveal.min.css" % VER) + SERIF_MIN_CSS = ("https://cdnjs.cloudflare.com/ajax/libs/" + "reveal.js/%s/css/theme/serif.min.css" % VER) WHITE_MIN_CSS = ("https://cdnjs.cloudflare.com/ajax/libs/" "reveal.js/%s/css/theme/white.min.css" % VER) + BLACK_MIN_CSS = ("https://cdnjs.cloudflare.com/ajax/libs/" + "reveal.js/%s/css/theme/black.min.css" % VER) + SKY_MIN_CSS = ("https://cdnjs.cloudflare.com/ajax/libs/" + "reveal.js/%s/css/theme/sky.min.css" % VER) + MOON_MIN_CSS = ("https://cdnjs.cloudflare.com/ajax/libs/" + "reveal.js/%s/css/theme/moon.min.css" % VER) + NIGHT_MIN_CSS = ("https://cdnjs.cloudflare.com/ajax/libs/" + "reveal.js/%s/css/theme/night.min.css" % VER) + LEAGUE_MIN_CSS = ("https://cdnjs.cloudflare.com/ajax/libs/" + "reveal.js/%s/css/theme/league.min.css" % VER) + BEIGE_MIN_CSS = ("https://cdnjs.cloudflare.com/ajax/libs/" + "reveal.js/%s/css/theme/beige.min.css" % VER) + BLOOD_MIN_CSS = ("https://cdnjs.cloudflare.com/ajax/libs/" + "reveal.js/%s/css/theme/blood.min.css" % VER) + SIMPLE_MIN_CSS = ("https://cdnjs.cloudflare.com/ajax/libs/" + "reveal.js/%s/css/theme/simple.min.css" % VER) + SOLARIZED_MIN_CSS = ("https://cdnjs.cloudflare.com/ajax/libs/" + "reveal.js/%s/css/theme/solarized.min.css" % VER) MIN_JS = ("https://cdnjs.cloudflare.com/ajax/libs/" "reveal.js/%s/js/reveal.min.js" % VER) - MARKED_JS = ("https://cdnjs.cloudflare.com/ajax/libs/" - "reveal.js/%s/plugin/markdown/marked.js" % VER) - MARKDOWN_MIN_JS = ("https://cdnjs.cloudflare.com/ajax/libs/" - "reveal.js/%s/plugin/markdown/markdown.min.js" % VER) class BootstrapTour: diff --git a/seleniumbase/resources/prettify/run_prettify.js b/seleniumbase/resources/prettify/run_prettify.js new file mode 100644 index 00000000000..8fc3e48451b --- /dev/null +++ b/seleniumbase/resources/prettify/run_prettify.js @@ -0,0 +1,64 @@ +!function(){/* + + Copyright (C) 2013 Google Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + Copyright (C) 2006 Google Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +(function(){function aa(g){function r(){try{L.doScroll("left")}catch(ba){k.setTimeout(r,50);return}x("poll")}function x(r){if("readystatechange"!=r.type||"complete"==z.readyState)("load"==r.type?k:z)[B](n+r.type,x,!1),!l&&(l=!0)&&g.call(k,r.type||r)}var X=z.addEventListener,l=!1,E=!0,v=X?"addEventListener":"attachEvent",B=X?"removeEventListener":"detachEvent",n=X?"":"on";if("complete"==z.readyState)g.call(k,"lazy");else{if(z.createEventObject&&L.doScroll){try{E=!k.frameElement}catch(ba){}E&&r()}z[v](n+ +"DOMContentLoaded",x,!1);z[v](n+"readystatechange",x,!1);k[v](n+"load",x,!1)}}function T(){U&&aa(function(){var g=M.length;ca(g?function(){for(var r=0;r=c?parseInt(e.substring(1),8):"u"===c||"x"===c?parseInt(e.substring(2),16):e.charCodeAt(1)}function f(e){if(32>e)return(16>e?"\\x0":"\\x")+e.toString(16);e=String.fromCharCode(e); +return"\\"===e||"-"===e||"]"===e||"^"===e?"\\"+e:e}function c(e){var c=e.substring(1,e.length-1).match(RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));e=[];var a="^"===c[0],b=["["];a&&b.push("^");for(var a=a?1:0,h=c.length;ap||122p||90p||122m[0]&&(m[1]+1>m[0]&&b.push("-"),b.push(f(m[1])));b.push("]");return b.join("")}function g(e){for(var a=e.source.match(RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)", +"g")),b=a.length,d=[],h=0,m=0;h/,null])):d.push(["com",/^#[^\r\n]*/,null,"#"]));a.cStyleComments&&(f.push(["com",/^\/\/[^\r\n]*/,null]),f.push(["com",/^\/\*[\s\S]*?(?:\*\/|$)/, +null]));if(c=a.regexLiterals){var g=(c=1|\\/=?|::?|<>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*("+("/(?=[^/*"+c+"])(?:[^/\\x5B\\x5C"+c+"]|\\x5C"+g+"|\\x5B(?:[^\\x5C\\x5D"+c+"]|\\x5C"+g+")*(?:\\x5D|$))+/")+")")])}(c=a.types)&&f.push(["typ",c]);c=(""+a.keywords).replace(/^ | $/g,"");c.length&&f.push(["kwd", +new RegExp("^(?:"+c.replace(/[\s,]+/g,"|")+")\\b"),null]);d.push(["pln",/^\s+/,null," \r\n\t\u00a0"]);c="^.[^\\s\\w.$@'\"`/\\\\]*";a.regexLiterals&&(c+="(?!s*/)");f.push(["lit",/^@[a-z_$][a-z_$@0-9]*/i,null],["typ",/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],["pln",/^[a-z_$][a-z_$@0-9]*/i,null],["lit",/^(?:0x[a-f0-9]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+\-]?\d+)?)[a-z]*/i,null,"0123456789"],["pln",/^\\[\s\S]?/,null],["pun",new RegExp(c),null]);return E(d,f)}function B(a,d,f){function c(a){var b= +a.nodeType;if(1==b&&!r.test(a.className))if("br"===a.nodeName.toLowerCase())g(a),a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)c(a);else if((3==b||4==b)&&f){var e=a.nodeValue,d=e.match(n);d&&(b=e.substring(0,d.index),a.nodeValue=b,(e=e.substring(d.index+d[0].length))&&a.parentNode.insertBefore(q.createTextNode(e),a.nextSibling),g(a),b||a.parentNode.removeChild(a))}}function g(a){function c(a,b){var e=b?a.cloneNode(!1):a,p=a.parentNode;if(p){var p=c(p,1),d=a.nextSibling; +p.appendChild(e);for(var f=d;f;f=d)d=f.nextSibling,p.appendChild(f)}return e}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;a=c(a.nextSibling,0);for(var e;(e=a.parentNode)&&1===e.nodeType;)a=e;b.push(a)}for(var r=/(?:^|\s)nocode(?:\s|$)/,n=/\r\n?|\n/,q=a.ownerDocument,k=q.createElement("li");a.firstChild;)k.appendChild(a.firstChild);for(var b=[k],t=0;t=+g[1],d=/\n/g,r=a.a,k=r.length,f=0,q=a.c,n=q.length,c=0,b=a.g,t=b.length,v=0;b[t]=k;var u,e;for(e=u=0;e=m&&(c+=2);f>=p&&(v+=2)}}finally{h&&(h.style.display=a)}}catch(y){Q.console&&console.log(y&&y.stack||y)}}var Q="undefined"!==typeof window?window:{},J=["break,continue,do,else,for,if,return,while"],K=[[J,"auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,restrict,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], +"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],R=[K,"alignas,alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,noexcept,noreturn,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],L=[K,"abstract,assert,boolean,byte,extends,finally,final,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"], +M=[K,"abstract,add,alias,as,ascending,async,await,base,bool,by,byte,checked,decimal,delegate,descending,dynamic,event,finally,fixed,foreach,from,get,global,group,implicit,in,interface,internal,into,is,join,let,lock,null,object,out,override,orderby,params,partial,readonly,ref,remove,sbyte,sealed,select,set,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,value,var,virtual,where,yield"],K=[K,"abstract,async,await,constructor,debugger,enum,eval,export,from,function,get,import,implements,instanceof,interface,let,null,of,set,undefined,var,with,yield,Infinity,NaN"], +N=[J,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],O=[J,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],J=[J,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],P=/^(DIR|FILE|array|vector|(de|priority_)?queue|(forward_)?list|stack|(const_)?(reverse_)?iterator|(unordered_)?(multi)?(set|map)|bitset|u?(int|float)\d*)\b/, +S=/\S/,T=v({keywords:[R,M,L,K,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",N,O,J],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),V={};n(T,["default-code"]);n(E([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-", +/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),"default-markup htm html mxml xhtml xml xsl".split(" "));n(E([["pln",/^[\s]+/,null," \t\r\n"],["atv",/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/], +["pun",/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);n(E([],[["atv",/^[\s\S]+/]]),["uq.val"]);n(v({keywords:R,hashComments:!0,cStyleComments:!0,types:P}),"c cc cpp cxx cyc m".split(" "));n(v({keywords:"null,true,false"}),["json"]);n(v({keywords:M,hashComments:!0,cStyleComments:!0, +verbatimStrings:!0,types:P}),["cs"]);n(v({keywords:L,cStyleComments:!0}),["java"]);n(v({keywords:J,hashComments:!0,multiLineStrings:!0}),["bash","bsh","csh","sh"]);n(v({keywords:N,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py","python"]);n(v({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:2}), +["perl","pl","pm"]);n(v({keywords:O,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb","ruby"]);n(v({keywords:K,cStyleComments:!0,regexLiterals:!0}),["javascript","js","ts","typescript"]);n(v({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);n(E([],[["str",/^[\s\S]+/]]), +["regex"]);var U=Q.PR={createSimpleLexer:E,registerLangHandler:n,sourceDecorator:v,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ",prettyPrintOne:function(a,d,f){f=f||!1;d=d||null;var c=document.createElement("div");c.innerHTML="
"+a+"
";c=c.firstChild;f&&B(c,f,!0);H({j:d,m:f,h:c,l:1,a:null,i:null,c:null,g:null}); +return c.innerHTML},prettyPrint:g=function(a,d){function f(){for(var c=Q.PR_SHOULD_USE_CONTINUATION?b.now()+250:Infinity;tsection{-webkit-perspective:600px;perspective:600px}.reveal .slides>section,.reveal .slides>section>section{display:none;position:absolute;width:100%;padding:20px 0;pointer-events:auto;z-index:10;-webkit-transform-style:flat;transform-style:flat;transition:-webkit-transform-origin .8s cubic-bezier(.26,.86,.44,.985),-webkit-transform .8s cubic-bezier(.26,.86,.44,.985),visibility .8s cubic-bezier(.26,.86,.44,.985),opacity .8s cubic-bezier(.26,.86,.44,.985);transition:transform-origin .8s cubic-bezier(.26,.86,.44,.985),transform .8s cubic-bezier(.26,.86,.44,.985),visibility .8s cubic-bezier(.26,.86,.44,.985),opacity .8s cubic-bezier(.26,.86,.44,.985)}.reveal[data-transition-speed=fast] .slides section{transition-duration:.4s}.reveal[data-transition-speed=slow] .slides section{transition-duration:1.2s}.reveal .slides section[data-transition-speed=fast]{transition-duration:.4s}.reveal .slides section[data-transition-speed=slow]{transition-duration:1.2s}.reveal .slides>section.stack{padding-top:0;padding-bottom:0;pointer-events:none;height:100%}.reveal .slides>section.present,.reveal .slides>section>section.present{display:block;z-index:11;opacity:1}.reveal .slides>section:empty,.reveal .slides>section>section:empty,.reveal .slides>section>section[data-background-interactive],.reveal .slides>section[data-background-interactive]{pointer-events:none}.reveal.center,.reveal.center .slides,.reveal.center .slides section{min-height:0!important}.reveal .slides>section.future,.reveal .slides>section.past,.reveal .slides>section>section.future,.reveal .slides>section>section.past{pointer-events:none}.reveal.overview .slides>section,.reveal.overview .slides>section>section{pointer-events:auto}.reveal .slides>section.future,.reveal .slides>section.past,.reveal .slides>section>section.future,.reveal .slides>section>section.past{opacity:0}.reveal.slide section{-webkit-backface-visibility:hidden;backface-visibility:hidden}.reveal .slides>section[data-transition=slide].past,.reveal .slides>section[data-transition~=slide-out].past,.reveal.slide .slides>section:not([data-transition]).past{-webkit-transform:translate(-150%,0);transform:translate(-150%,0)}.reveal .slides>section[data-transition=slide].future,.reveal .slides>section[data-transition~=slide-in].future,.reveal.slide .slides>section:not([data-transition]).future{-webkit-transform:translate(150%,0);transform:translate(150%,0)}.reveal .slides>section>section[data-transition=slide].past,.reveal .slides>section>section[data-transition~=slide-out].past,.reveal.slide .slides>section>section:not([data-transition]).past{-webkit-transform:translate(0,-150%);transform:translate(0,-150%)}.reveal .slides>section>section[data-transition=slide].future,.reveal .slides>section>section[data-transition~=slide-in].future,.reveal.slide .slides>section>section:not([data-transition]).future{-webkit-transform:translate(0,150%);transform:translate(0,150%)}.reveal.linear section{-webkit-backface-visibility:hidden;backface-visibility:hidden}.reveal .slides>section[data-transition=linear].past,.reveal .slides>section[data-transition~=linear-out].past,.reveal.linear .slides>section:not([data-transition]).past{-webkit-transform:translate(-150%,0);transform:translate(-150%,0)}.reveal .slides>section[data-transition=linear].future,.reveal .slides>section[data-transition~=linear-in].future,.reveal.linear .slides>section:not([data-transition]).future{-webkit-transform:translate(150%,0);transform:translate(150%,0)}.reveal .slides>section>section[data-transition=linear].past,.reveal .slides>section>section[data-transition~=linear-out].past,.reveal.linear .slides>section>section:not([data-transition]).past{-webkit-transform:translate(0,-150%);transform:translate(0,-150%)}.reveal .slides>section>section[data-transition=linear].future,.reveal .slides>section>section[data-transition~=linear-in].future,.reveal.linear .slides>section>section:not([data-transition]).future{-webkit-transform:translate(0,150%);transform:translate(0,150%)}.reveal .slides section[data-transition=default].stack,.reveal.default .slides section.stack{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.reveal .slides>section[data-transition=default].past,.reveal .slides>section[data-transition~=default-out].past,.reveal.default .slides>section:not([data-transition]).past{-webkit-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=default].future,.reveal .slides>section[data-transition~=default-in].future,.reveal.default .slides>section:not([data-transition]).future{-webkit-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=default].past,.reveal .slides>section>section[data-transition~=default-out].past,.reveal.default .slides>section>section:not([data-transition]).past{-webkit-transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0);transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0)}.reveal .slides>section>section[data-transition=default].future,.reveal .slides>section>section[data-transition~=default-in].future,.reveal.default .slides>section>section:not([data-transition]).future{-webkit-transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0);transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0)}.reveal .slides section[data-transition=convex].stack,.reveal.convex .slides section.stack{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.reveal .slides>section[data-transition=convex].past,.reveal .slides>section[data-transition~=convex-out].past,.reveal.convex .slides>section:not([data-transition]).past{-webkit-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=convex].future,.reveal .slides>section[data-transition~=convex-in].future,.reveal.convex .slides>section:not([data-transition]).future{-webkit-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=convex].past,.reveal .slides>section>section[data-transition~=convex-out].past,.reveal.convex .slides>section>section:not([data-transition]).past{-webkit-transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0);transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0)}.reveal .slides>section>section[data-transition=convex].future,.reveal .slides>section>section[data-transition~=convex-in].future,.reveal.convex .slides>section>section:not([data-transition]).future{-webkit-transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0);transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0)}.reveal .slides section[data-transition=concave].stack,.reveal.concave .slides section.stack{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.reveal .slides>section[data-transition=concave].past,.reveal .slides>section[data-transition~=concave-out].past,.reveal.concave .slides>section:not([data-transition]).past{-webkit-transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0);transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=concave].future,.reveal .slides>section[data-transition~=concave-in].future,.reveal.concave .slides>section:not([data-transition]).future{-webkit-transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0);transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=concave].past,.reveal .slides>section>section[data-transition~=concave-out].past,.reveal.concave .slides>section>section:not([data-transition]).past{-webkit-transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0);transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0)}.reveal .slides>section>section[data-transition=concave].future,.reveal .slides>section>section[data-transition~=concave-in].future,.reveal.concave .slides>section>section:not([data-transition]).future{-webkit-transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0);transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0)}.reveal .slides section[data-transition=zoom],.reveal.zoom .slides section:not([data-transition]){transition-timing-function:ease}.reveal .slides>section[data-transition=zoom].past,.reveal .slides>section[data-transition~=zoom-out].past,.reveal.zoom .slides>section:not([data-transition]).past{visibility:hidden;-webkit-transform:scale(16);transform:scale(16)}.reveal .slides>section[data-transition=zoom].future,.reveal .slides>section[data-transition~=zoom-in].future,.reveal.zoom .slides>section:not([data-transition]).future{visibility:hidden;-webkit-transform:scale(.2);transform:scale(.2)}.reveal .slides>section>section[data-transition=zoom].past,.reveal .slides>section>section[data-transition~=zoom-out].past,.reveal.zoom .slides>section>section:not([data-transition]).past{-webkit-transform:scale(16);transform:scale(16)}.reveal .slides>section>section[data-transition=zoom].future,.reveal .slides>section>section[data-transition~=zoom-in].future,.reveal.zoom .slides>section>section:not([data-transition]).future{-webkit-transform:scale(.2);transform:scale(.2)}.reveal.cube .slides{-webkit-perspective:1300px;perspective:1300px}.reveal.cube .slides section{padding:30px;min-height:700px;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.reveal.center.cube .slides section{min-height:0}.reveal.cube .slides section:not(.stack):before{content:'';position:absolute;display:block;width:100%;height:100%;left:0;top:0;background:rgba(0,0,0,.1);border-radius:4px;-webkit-transform:translateZ(-20px);transform:translateZ(-20px)}.reveal.cube .slides section:not(.stack):after{content:'';position:absolute;display:block;width:90%;height:30px;left:5%;bottom:0;background:0 0;z-index:1;border-radius:4px;box-shadow:0 95px 25px rgba(0,0,0,.2);-webkit-transform:translateZ(-90px) rotateX(65deg);transform:translateZ(-90px) rotateX(65deg)}.reveal.cube .slides>section.stack{padding:0;background:0 0}.reveal.cube .slides>section.past{-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:translate3d(-100%,0,0) rotateY(-90deg);transform:translate3d(-100%,0,0) rotateY(-90deg)}.reveal.cube .slides>section.future{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(100%,0,0) rotateY(90deg);transform:translate3d(100%,0,0) rotateY(90deg)}.reveal.cube .slides>section>section.past{-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:translate3d(0,-100%,0) rotateX(90deg);transform:translate3d(0,-100%,0) rotateX(90deg)}.reveal.cube .slides>section>section.future{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(0,100%,0) rotateX(-90deg);transform:translate3d(0,100%,0) rotateX(-90deg)}.reveal.page .slides{-webkit-perspective-origin:0 50%;perspective-origin:0 50%;-webkit-perspective:3000px;perspective:3000px}.reveal.page .slides section{padding:30px;min-height:700px;box-sizing:border-box;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.reveal.page .slides section.past{z-index:12}.reveal.page .slides section:not(.stack):before{content:'';position:absolute;display:block;width:100%;height:100%;left:0;top:0;background:rgba(0,0,0,.1);-webkit-transform:translateZ(-20px);transform:translateZ(-20px)}.reveal.page .slides section:not(.stack):after{content:'';position:absolute;display:block;width:90%;height:30px;left:5%;bottom:0;background:0 0;z-index:1;border-radius:4px;box-shadow:0 95px 25px rgba(0,0,0,.2);-webkit-transform:translateZ(-90px) rotateX(65deg)}.reveal.page .slides>section.stack{padding:0;background:0 0}.reveal.page .slides>section.past{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(-40%,0,0) rotateY(-80deg);transform:translate3d(-40%,0,0) rotateY(-80deg)}.reveal.page .slides>section.future{-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.reveal.page .slides>section>section.past{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(0,-40%,0) rotateX(80deg);transform:translate3d(0,-40%,0) rotateX(80deg)}.reveal.page .slides>section>section.future{-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.reveal .slides section[data-transition=fade],.reveal.fade .slides section:not([data-transition]),.reveal.fade .slides>section>section:not([data-transition]){-webkit-transform:none;transform:none;transition:opacity .5s}.reveal.fade.overview .slides section,.reveal.fade.overview .slides>section>section{transition:none}.reveal .slides section[data-transition=none],.reveal.none .slides section:not([data-transition]){-webkit-transform:none;transform:none;transition:none}.reveal .pause-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;visibility:hidden;opacity:0;z-index:100;transition:all 1s ease}.reveal .pause-overlay .resume-button{position:absolute;bottom:20px;right:20px;color:#ccc;border-radius:2px;padding:6px 14px;border:2px solid #ccc;font-size:16px;background:0 0;cursor:pointer}.reveal .pause-overlay .resume-button:hover{color:#fff;border-color:#fff}.reveal.paused .pause-overlay{visibility:visible;opacity:1}.no-transforms{overflow-y:auto}.no-transforms .reveal{overflow:visible}.no-transforms .reveal .slides{position:relative;width:80%;max-width:1280px;height:auto;top:0;margin:0 auto;text-align:center}.no-transforms .reveal .controls,.no-transforms .reveal .progress{display:none}.no-transforms .reveal .slides section{display:block;opacity:1;position:relative;height:auto;min-height:0;top:0;left:0;margin:10vh 0;margin:70px 0;-webkit-transform:none;transform:none}.reveal .no-transition,.reveal .no-transition *{transition:none!important}.reveal .backgrounds{position:absolute;width:100%;height:100%;top:0;left:0;-webkit-perspective:600px;perspective:600px}.reveal .slide-background{display:none;position:absolute;width:100%;height:100%;opacity:0;visibility:hidden;overflow:hidden;background-color:rgba(0,0,0,0);transition:all .8s cubic-bezier(.26,.86,.44,.985)}.reveal .slide-background-content{position:absolute;width:100%;height:100%;background-position:50% 50%;background-repeat:no-repeat;background-size:cover}.reveal .slide-background.stack{display:block}.reveal .slide-background.present{opacity:1;visibility:visible;z-index:2}.print-pdf .reveal .slide-background{opacity:1!important;visibility:visible!important}.reveal .slide-background video{position:absolute;width:100%;height:100%;max-width:none;max-height:none;top:0;left:0;-o-object-fit:cover;object-fit:cover}.reveal .slide-background[data-background-size=contain] video{-o-object-fit:contain;object-fit:contain}.reveal>.backgrounds .slide-background[data-background-transition=none],.reveal[data-background-transition=none]>.backgrounds .slide-background{transition:none}.reveal>.backgrounds .slide-background[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background{opacity:1;-webkit-backface-visibility:hidden;backface-visibility:hidden}.reveal>.backgrounds .slide-background.past[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background.past{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}.reveal>.backgrounds .slide-background.future[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background.future{-webkit-transform:translate(100%,0);transform:translate(100%,0)}.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.past{-webkit-transform:translate(0,-100%);transform:translate(0,-100%)}.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.future{-webkit-transform:translate(0,100%);transform:translate(0,100%)}.reveal>.backgrounds .slide-background.past[data-background-transition=convex],.reveal[data-background-transition=convex]>.backgrounds .slide-background.past{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal>.backgrounds .slide-background.future[data-background-transition=convex],.reveal[data-background-transition=convex]>.backgrounds .slide-background.future{opacity:0;-webkit-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=convex],.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.past{opacity:0;-webkit-transform:translate3d(0,-100%,0) rotateX(90deg) translate3d(0,-100%,0);transform:translate3d(0,-100%,0) rotateX(90deg) translate3d(0,-100%,0)}.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=convex],.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.future{opacity:0;-webkit-transform:translate3d(0,100%,0) rotateX(-90deg) translate3d(0,100%,0);transform:translate3d(0,100%,0) rotateX(-90deg) translate3d(0,100%,0)}.reveal>.backgrounds .slide-background.past[data-background-transition=concave],.reveal[data-background-transition=concave]>.backgrounds .slide-background.past{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0);transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0)}.reveal>.backgrounds .slide-background.future[data-background-transition=concave],.reveal[data-background-transition=concave]>.backgrounds .slide-background.future{opacity:0;-webkit-transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0);transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0)}.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=concave],.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.past{opacity:0;-webkit-transform:translate3d(0,-100%,0) rotateX(-90deg) translate3d(0,-100%,0);transform:translate3d(0,-100%,0) rotateX(-90deg) translate3d(0,-100%,0)}.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=concave],.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.future{opacity:0;-webkit-transform:translate3d(0,100%,0) rotateX(90deg) translate3d(0,100%,0);transform:translate3d(0,100%,0) rotateX(90deg) translate3d(0,100%,0)}.reveal>.backgrounds .slide-background[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background{transition-timing-function:ease}.reveal>.backgrounds .slide-background.past[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background.past{opacity:0;visibility:hidden;-webkit-transform:scale(16);transform:scale(16)}.reveal>.backgrounds .slide-background.future[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background.future{opacity:0;visibility:hidden;-webkit-transform:scale(.2);transform:scale(.2)}.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.past{opacity:0;visibility:hidden;-webkit-transform:scale(16);transform:scale(16)}.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.future{opacity:0;visibility:hidden;-webkit-transform:scale(.2);transform:scale(.2)}.reveal[data-transition-speed=fast]>.backgrounds .slide-background{transition-duration:.4s}.reveal[data-transition-speed=slow]>.backgrounds .slide-background{transition-duration:1.2s}.reveal.overview{-webkit-perspective-origin:50% 50%;perspective-origin:50% 50%;-webkit-perspective:700px;perspective:700px}.reveal.overview .slides{-moz-transform-style:preserve-3d}.reveal.overview .slides section{height:100%;top:0!important;opacity:1!important;overflow:hidden;visibility:visible!important;cursor:pointer;box-sizing:border-box}.reveal.overview .slides section.present,.reveal.overview .slides section:hover{outline:10px solid rgba(150,150,150,.4);outline-offset:10px}.reveal.overview .slides section .fragment{opacity:1;transition:none}.reveal.overview .slides section:after,.reveal.overview .slides section:before{display:none!important}.reveal.overview .slides>section.stack{padding:0;top:0!important;background:0 0;outline:0;overflow:visible}.reveal.overview .backgrounds{-webkit-perspective:inherit;perspective:inherit;-moz-transform-style:preserve-3d}.reveal.overview .backgrounds .slide-background{opacity:1;visibility:visible;outline:10px solid rgba(150,150,150,.1);outline-offset:10px}.reveal.overview .backgrounds .slide-background.stack{overflow:visible}.reveal.overview .slides section,.reveal.overview-deactivating .slides section{transition:none}.reveal.overview .backgrounds .slide-background,.reveal.overview-deactivating .backgrounds .slide-background{transition:none}.reveal.rtl .slides,.reveal.rtl .slides h1,.reveal.rtl .slides h2,.reveal.rtl .slides h3,.reveal.rtl .slides h4,.reveal.rtl .slides h5,.reveal.rtl .slides h6{direction:rtl;font-family:sans-serif}.reveal.rtl code,.reveal.rtl pre{direction:ltr}.reveal.rtl ol,.reveal.rtl ul{text-align:right}.reveal.rtl .progress span{float:right}.reveal.has-parallax-background .backgrounds{transition:all .8s ease}.reveal.has-parallax-background[data-transition-speed=fast] .backgrounds{transition-duration:.4s}.reveal.has-parallax-background[data-transition-speed=slow] .backgrounds{transition-duration:1.2s}.reveal>.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000;background:rgba(0,0,0,.9);opacity:0;visibility:hidden;transition:all .3s ease}.reveal>.overlay.visible{opacity:1;visibility:visible}.reveal>.overlay .spinner{position:absolute;display:block;top:50%;left:50%;width:32px;height:32px;margin:-16px 0 0 -16px;z-index:10;background-image:url(data:image/gif;base64,R0lGODlhIAAgAPMAAJmZmf%2F%2F%2F6%2Bvr8nJybW1tcDAwOjo6Nvb26ioqKOjo7Ozs%2FLy8vz8%2FAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ%2FV%2FnmOM82XiHRLYKhKP1oZmADdEAAAh%2BQQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY%2FCZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB%2BA4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6%2BHo7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq%2BB6QDtuetcaBPnW6%2BO7wDHpIiK9SaVK5GgV543tzjgGcghAgAh%2BQQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK%2B%2BG%2Bw48edZPK%2BM6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE%2BG%2BcD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm%2BFNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk%2BaV%2BoJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0%2FVNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc%2BXiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30%2FiI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE%2FjiuL04RGEBgwWhShRgQExHBAAh%2BQQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR%2BipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY%2BYip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd%2BMFCN6HAAIKgNggY0KtEBAAh%2BQQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1%2BvsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d%2BjYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg%2BygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0%2Bbm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h%2BKr0SJ8MFihpNbx%2B4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX%2BBP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA%3D%3D);visibility:visible;opacity:.6;transition:all .3s ease}.reveal>.overlay header{position:absolute;left:0;top:0;width:100%;height:40px;z-index:2;border-bottom:1px solid #222}.reveal>.overlay header a{display:inline-block;width:40px;height:40px;line-height:36px;padding:0 10px;float:right;opacity:.6;box-sizing:border-box}.reveal>.overlay header a:hover{opacity:1}.reveal>.overlay header a .icon{display:inline-block;width:20px;height:20px;background-position:50% 50%;background-size:100%;background-repeat:no-repeat}.reveal>.overlay header a.close .icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABkklEQVRYR8WX4VHDMAxG6wnoJrABZQPYBCaBTWAD2g1gE5gg6OOsXuxIlr40d81dfrSJ9V4c2VLK7spHuTJ/5wpM07QXuXc5X0opX2tEJcadjHuV80li/FgxTIEK/5QBCICBD6xEhSMGHgQPgBgLiYVAB1dpSqKDawxTohFw4JSEA3clzgIBPCURwE2JucBR7rhPJJv5OpJwDX+SfDjgx1wACQeJG1aChP9K/IMmdZ8DtESV1WyP3Bt4MwM6sj4NMxMYiqUWHQu4KYA/SYkIjOsm3BXYWMKFDwU2khjCQ4ELJUJ4SmClRArOCmSXGuKma0fYD5CbzHxFpCSGAhfAVSSUGDUk2BWZaff2g6GE15BsBQ9nwmpIGDiyHQddwNTMKkbZaf9fajXQca1EX44puJZUsnY0ObGmITE3GVLCbEhQUjGVt146j6oasWN+49Vph2w1pZ5EansNZqKBm1txbU57iRRcZ86RWMDdWtBJUHBHwoQPi1GV+JCbntmvok7iTX4/Up9mgyTc/FJYDTcndgH/AA5A/CHsyEkVAAAAAElFTkSuQmCC)}.reveal>.overlay header a.external .icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAcElEQVRYR+2WSQoAIQwEzf8f7XiOMkUQxUPlGkM3hVmiQfQR9GYnH1SsAQlI4DiBqkCMoNb9y2e90IAEJPAcgdznU9+engMaeJ7Azh5Y1U67gAho4DqBqmB1buAf0MB1AlVBek83ZPkmJMGc1wAR+AAqod/B97TRpQAAAABJRU5ErkJggg==)}.reveal>.overlay .viewport{position:absolute;display:-webkit-box;display:-ms-flexbox;display:flex;top:40px;right:0;bottom:0;left:0}.reveal>.overlay.overlay-preview .viewport iframe{width:100%;height:100%;max-width:100%;max-height:100%;border:0;opacity:0;visibility:hidden;transition:all .3s ease}.reveal>.overlay.overlay-preview.loaded .viewport iframe{opacity:1;visibility:visible}.reveal>.overlay.overlay-preview.loaded .viewport-inner{position:absolute;z-index:-1;left:0;top:45%;width:100%;text-align:center;letter-spacing:normal}.reveal>.overlay.overlay-preview .x-frame-error{opacity:0;transition:opacity .3s ease .3s}.reveal>.overlay.overlay-preview.loaded .x-frame-error{opacity:1}.reveal>.overlay.overlay-preview.loaded .spinner{opacity:0;visibility:hidden;-webkit-transform:scale(.2);transform:scale(.2)}.reveal>.overlay.overlay-help .viewport{overflow:auto;color:#fff}.reveal>.overlay.overlay-help .viewport .viewport-inner{width:600px;margin:auto;padding:20px 20px 80px 20px;text-align:center;letter-spacing:normal}.reveal>.overlay.overlay-help .viewport .viewport-inner .title{font-size:20px}.reveal>.overlay.overlay-help .viewport .viewport-inner table{border:1px solid #fff;border-collapse:collapse;font-size:16px}.reveal>.overlay.overlay-help .viewport .viewport-inner table td,.reveal>.overlay.overlay-help .viewport .viewport-inner table th{width:200px;padding:14px;border:1px solid #fff;vertical-align:middle}.reveal>.overlay.overlay-help .viewport .viewport-inner table th{padding-top:20px;padding-bottom:20px}.reveal .playback{position:absolute;left:15px;bottom:20px;z-index:30;cursor:pointer;transition:all .4s ease;-webkit-tap-highlight-color:transparent}.reveal.overview .playback{opacity:0;visibility:hidden}.reveal .hljs table{margin:initial}.reveal .hljs-ln-code,.reveal .hljs-ln-numbers{padding:0;border:0}.reveal .hljs-ln-numbers{opacity:.6;padding-right:.75em;text-align:right;vertical-align:top}.reveal .hljs[data-line-numbers]:not([data-line-numbers=""]) tr:not(.highlight-line){opacity:.4}.reveal .roll{display:inline-block;line-height:1.2;overflow:hidden;vertical-align:top;-webkit-perspective:400px;perspective:400px;-webkit-perspective-origin:50% 50%;perspective-origin:50% 50%}.reveal .roll:hover{background:0 0;text-shadow:none}.reveal .roll span{display:block;position:relative;padding:0 2px;pointer-events:none;transition:all .4s ease;-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden}.reveal .roll:hover span{background:rgba(0,0,0,.5);-webkit-transform:translate3d(0,0,-45px) rotateX(90deg);transform:translate3d(0,0,-45px) rotateX(90deg)}.reveal .roll span:after{content:attr(data-title);display:block;position:absolute;left:0;top:0;padding:0 2px;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform:translate3d(0,110%,0) rotateX(-90deg);transform:translate3d(0,110%,0) rotateX(-90deg)}.reveal aside.notes{display:none}.reveal .speaker-notes{display:none;position:absolute;width:33.3333333333%;height:100%;top:0;left:100%;padding:14px 18px 14px 18px;z-index:1;font-size:18px;line-height:1.4;border:1px solid rgba(0,0,0,.05);color:#222;background-color:#f5f5f5;overflow:auto;box-sizing:border-box;text-align:left;font-family:Helvetica,sans-serif;-webkit-overflow-scrolling:touch}.reveal .speaker-notes .notes-placeholder{color:#ccc;font-style:italic}.reveal .speaker-notes:focus{outline:0}.reveal .speaker-notes:before{content:'Speaker notes';display:block;margin-bottom:10px;opacity:.5}.reveal.show-notes{max-width:75%;overflow:visible}.reveal.show-notes .speaker-notes{display:block}@media screen and (min-width:1600px){.reveal .speaker-notes{font-size:20px}}@media screen and (max-width:1024px){.reveal.show-notes{border-left:0;max-width:none;max-height:70%;max-height:70vh;overflow:visible}.reveal.show-notes .speaker-notes{top:100%;left:0;width:100%;height:42.8571428571%;height:30vh;border:0}}@media screen and (max-width:600px){.reveal.show-notes{max-height:60%;max-height:60vh}.reveal.show-notes .speaker-notes{top:100%;height:66.6666666667%;height:40vh}.reveal .speaker-notes{font-size:14px}}.zoomed .reveal *,.zoomed .reveal :after,.zoomed .reveal :before{-webkit-backface-visibility:visible!important;backface-visibility:visible!important}.zoomed .reveal .controls,.zoomed .reveal .progress{opacity:0}.zoomed .reveal .roll span{background:0 0}.zoomed .reveal .roll span:after{visibility:hidden} +/*# sourceMappingURL=reveal.min.css.map */ \ No newline at end of file diff --git a/seleniumbase/resources/reveal/reveal.min.js b/seleniumbase/resources/reveal/reveal.min.js new file mode 100644 index 00000000000..c03d9de675b --- /dev/null +++ b/seleniumbase/resources/reveal/reveal.min.js @@ -0,0 +1 @@ +!function(e,t){"function"==typeof define&&define.amd?define(function(){return e.Reveal=t(),e.Reveal}):"object"==typeof exports?module.exports=t():e.Reveal=t()}(this,function(){"use strict";var m,h,v,g,b,l,u,d,a,o=".slides section",y=".slides>section",w=".slides>section.present>section",k=".slides>section:first-of-type",p=navigator.userAgent,A={width:960,height:700,margin:.04,minScale:.2,maxScale:2,controls:!0,controlsTutorial:!0,controlsLayout:"bottom-right",controlsBackArrows:"faded",progress:!0,slideNumber:!1,showSlideNumber:"all",hashOneBasedIndex:!1,hash:!1,history:!1,keyboard:!0,keyboardCondition:null,overview:!0,disableLayout:!1,center:!0,touch:!0,loop:!1,rtl:!1,navigationMode:"default",shuffle:!1,fragments:!0,fragmentInURL:!1,embedded:!1,help:!0,pause:!0,showNotes:!1,autoPlayMedia:null,preloadIframes:null,autoSlide:0,autoSlideStoppable:!0,autoSlideMethod:null,defaultTiming:null,mouseWheel:!1,rollingLinks:!1,hideAddressBar:!0,previewLinks:!1,postMessage:!0,postMessageEvents:!1,focusBodyOnPageVisibilityChange:!0,transition:"slide",transitionSpeed:"default",backgroundTransition:"fade",parallaxBackgroundImage:"",parallaxBackgroundSize:"",parallaxBackgroundRepeat:"",parallaxBackgroundPosition:"",parallaxBackgroundHorizontal:null,parallaxBackgroundVertical:null,pdfMaxPagesPerSlide:Number.POSITIVE_INFINITY,pdfSeparateFragments:!0,pdfPageHeightOffset:-1,viewDistance:3,display:"block",hideInactiveCursor:!0,hideCursorTime:5e3,dependencies:[]},f=!1,i=!1,t=!1,n=null,s=null,r=!1,c=!1,L=[],E=1,S={layout:"",overview:""},x={},q={},M=[],N={},I=0,T=0,e=!1,P=0,C=!1,R=0,H=0,B=-1,z=!1,D={startX:0,startY:0,startCount:0,captured:!1,threshold:40},O={},W={};function F(){var e=Object.keys(q).length;if(0===e)U();else{var t=function(){0==--e&&U()};for(var r in q){var n=q[r];if("function"==typeof n.init){var a=n.init();a&&"function"==typeof a.then?a.then(t):t()}else t()}}}function U(){var e;M.length&&M.forEach(function(e){K(e.src,e.callback)}),i=!0,x.slides.classList.add("no-transition"),u?x.wrapper.classList.add("no-hover"):x.wrapper.classList.remove("no-hover"),/iphone/gi.test(p)?x.wrapper.classList.add("ua-iphone"):x.wrapper.classList.remove("ua-iphone"),x.background=Y(x.wrapper,"div","backgrounds",null),x.progress=Y(x.wrapper,"div","progress",""),x.progressbar=x.progress.querySelector("span"),x.controls=Y(x.wrapper,"aside","controls",''),x.slideNumber=Y(x.wrapper,"div","slide-number",""),x.speakerNotes=Y(x.wrapper,"div","speaker-notes",null),x.speakerNotes.setAttribute("data-prevent-swipe",""),x.speakerNotes.setAttribute("tabindex","0"),x.pauseOverlay=Y(x.wrapper,"div","pause-overlay",A.controls?'':null),x.wrapper.setAttribute("role","application"),x.controlsLeft=G(document.querySelectorAll(".navigate-left")),x.controlsRight=G(document.querySelectorAll(".navigate-right")),x.controlsUp=G(document.querySelectorAll(".navigate-up")),x.controlsDown=G(document.querySelectorAll(".navigate-down")),x.controlsPrev=G(document.querySelectorAll(".navigate-prev")),x.controlsNext=G(document.querySelectorAll(".navigate-next")),x.controlsRightArrow=x.controls.querySelector(".navigate-right"),x.controlsDownArrow=x.controls.querySelector(".navigate-down"),x.statusDiv=((e=document.getElementById("aria-status-div"))||((e=document.createElement("div")).style.position="absolute",e.style.height="1px",e.style.width="1px",e.style.overflow="hidden",e.style.clip="rect( 1px, 1px, 1px, 1px )",e.setAttribute("id","aria-status-div"),e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),x.wrapper.appendChild(e)),e),A.postMessage&&window.addEventListener("message",function(e){var t=e.data;"string"==typeof t&&"{"===t.charAt(0)&&"}"===t.charAt(t.length-1)&&(t=JSON.parse(t)).method&&"function"==typeof m[t.method]&&m[t.method].apply(m,t.args)},!1),setInterval(function(){0===x.wrapper.scrollTop&&0===x.wrapper.scrollLeft||(x.wrapper.scrollTop=0,x.wrapper.scrollLeft=0)},1e3),G(x.wrapper.querySelectorAll(y)).forEach(function(e){var t=G(e.querySelectorAll("section"));t.forEach(function(e,t){0img, .reveal section>video, .reveal section>iframe{max-width: "+m+"px; max-height:"+b+"px}"),document.body.classList.add("print-pdf"),document.body.style.width=v+"px",document.body.style.height=g+"px",ve(m,b),G(x.wrapper.querySelectorAll(y)).forEach(function(e,r){e.setAttribute("data-index-h",r),e.classList.contains("stack")&&G(e.querySelectorAll("section")).forEach(function(e,t){e.setAttribute("data-index-h",r),e.setAttribute("data-index-v",t)})}),G(x.wrapper.querySelectorAll(o)).forEach(function(e){if(!1===e.classList.contains("stack")){var t=(v-m)/2,r=(g-b)/2,n=e.scrollHeight,a=Math.max(Math.ceil(n/g),1);(1===(a=Math.min(a,A.pdfMaxPagesPerSlide))&&A.center||e.classList.contains("center"))&&(r=Math.max((g-n)/2,0));var i=document.createElement("div");if(i.className="pdf-page",i.style.height=(g+A.pdfPageHeightOffset)*a+"px",e.parentNode.insertBefore(i,e),i.appendChild(e),e.style.left=t+"px",e.style.top=r+"px",e.style.width=m+"px",e.slideBackgroundElement&&i.insertBefore(e.slideBackgroundElement,e),A.showNotes){var o=ut(e);if(o){var s="string"==typeof A.showNotes?A.showNotes:"inline",l=document.createElement("div");l.classList.add("speaker-notes"),l.classList.add("speaker-notes-pdf"),l.setAttribute("data-layout",s),l.innerHTML=o,"separate-page"===s?i.parentNode.insertBefore(l,i.nextSibling):(l.style.left="8px",l.style.bottom="8px",l.style.width=v-16+"px",i.appendChild(l))}}if(A.slideNumber&&/all|print/i.test(A.showSlideNumber)){var c=parseInt(e.getAttribute("data-index-h"),10)+1,d=parseInt(e.getAttribute("data-index-v"),10)+1,u=document.createElement("div");u.classList.add("slide-number"),u.classList.add("slide-number-pdf"),u.innerHTML=Ke(c,".",d),i.appendChild(u)}if(A.pdfSeparateFragments){var p,f,h=ft(i.querySelectorAll(".fragment"),!0);h.forEach(function(e){p&&p.forEach(function(e){e.classList.remove("current-fragment")}),e.forEach(function(e){e.classList.add("visible","current-fragment")});var t=i.cloneNode(!0);i.parentNode.insertBefore(t,(f||i).nextSibling),p=e,f=t}),h.forEach(function(e){e.forEach(function(e){e.classList.remove("visible","current-fragment")})})}else G(i.querySelectorAll(".fragment:not(.fade-out)")).forEach(function(e){e.classList.add("visible")})}}),le("pdf-ready")}function Y(e,t,r,n){for(var a=e.querySelectorAll("."+r),i=0;i"+O[t]+"";for(var r in W)W[r].key&&W[r].description&&(e+=""+W[r].key+""+W[r].description+"");e+="",x.overlay.innerHTML=["
",'',"
",'
','
'+e+"
","
"].join(""),x.overlay.querySelector(".close").addEventListener("click",function(e){fe(),e.preventDefault()},!1),setTimeout(function(){x.overlay.classList.add("visible")},1)}}function fe(){x.overlay&&(x.overlay.parentNode.removeChild(x.overlay),x.overlay=null)}function he(){if(x.wrapper&&!oe()){if(!A.disableLayout){u&&document.documentElement.style.setProperty("--vh",.01*window.innerHeight+"px");var e=ge(),t=E;ve(A.width,A.height),x.slides.style.width=e.width+"px",x.slides.style.height=e.height+"px",E=Math.min(e.presentationWidth/e.width,e.presentationHeight/e.height),E=Math.max(E,A.minScale),1===(E=Math.min(E,A.maxScale))?(x.slides.style.zoom="",x.slides.style.left="",x.slides.style.top="",x.slides.style.bottom="",re({layout:x.slides.style.right=""})):1 .stretch")).forEach(function(e){var t=function(e,t){if(t=t||0,e){var r,n=e.style.height;return e.style.height="0px",e.parentNode.style.height="auto",r=t-e.parentNode.offsetHeight,e.style.height=n+"px",e.parentNode.style.removeProperty("height"),r}return t}(e,o);if(/(img|video)/gi.test(e.nodeName)){var r=e.naturalWidth||e.videoWidth,n=e.naturalHeight||e.videoHeight,a=Math.min(i/r,t/n);e.style.width=r*a+"px",e.style.height=n*a+"px"}else e.style.width=i+"px",e.style.height=t+"px"})}function ge(e,t){var r={width:A.width,height:A.height,presentationWidth:e||x.wrapper.offsetWidth,presentationHeight:t||x.wrapper.offsetHeight};return r.presentationWidth-=r.presentationWidth*A.margin,r.presentationHeight-=r.presentationHeight*A.margin,"string"==typeof r.width&&/%$/.test(r.width)&&(r.width=parseInt(r.width,10)/100*r.presentationWidth),"string"==typeof r.height&&/%$/.test(r.height)&&(r.height=parseInt(r.height,10)/100*r.presentationHeight),r}function me(e,t){"object"==typeof e&&"function"==typeof e.setAttribute&&e.setAttribute("data-previous-indexv",t||0)}function be(e){if("object"==typeof e&&"function"==typeof e.setAttribute&&e.classList.contains("stack")){var t=e.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(e.getAttribute(t)||0,10)}return 0}function ye(){if(A.overview&&!Ee()){t=!0,x.wrapper.classList.add("overview"),x.wrapper.classList.remove("overview-deactivating"),N.overviewTransitions&&setTimeout(function(){x.wrapper.classList.add("overview-animated")},1),yt(),x.slides.appendChild(x.background),G(x.wrapper.querySelectorAll(o)).forEach(function(e){e.classList.contains("stack")||e.addEventListener("click",Jt,!0)});var e=ge();n=e.width+70,s=e.height+70,A.rtl&&(n=-n),Oe(),we(),ke(),he(),le("overviewshown",{indexh:h,indexv:v,currentSlide:b})}}function we(){G(x.wrapper.querySelectorAll(y)).forEach(function(e,r){e.setAttribute("data-index-h",r),te(e,"translate3d("+r*n+"px, 0, 0)"),e.classList.contains("stack")&&G(e.querySelectorAll("section")).forEach(function(e,t){e.setAttribute("data-index-h",r),e.setAttribute("data-index-v",t),te(e,"translate3d(0, "+t*s+"px, 0)")})}),G(x.background.childNodes).forEach(function(e,t){te(e,"translate3d("+t*n+"px, 0, 0)"),G(e.querySelectorAll(".slide-background")).forEach(function(e,t){te(e,"translate3d(0, "+t*s+"px, 0)")})})}function ke(){var e=Math.min(window.innerWidth,window.innerHeight);re({overview:["scale("+Math.max(e/5,150)/e+")","translateX("+-h*n+"px)","translateY("+-v*s+"px)"].join(" ")})}function Ae(){A.overview&&(t=!1,x.wrapper.classList.remove("overview"),x.wrapper.classList.remove("overview-animated"),x.wrapper.classList.add("overview-deactivating"),setTimeout(function(){x.wrapper.classList.remove("overview-deactivating")},1),x.wrapper.appendChild(x.background),G(x.wrapper.querySelectorAll(o)).forEach(function(e){te(e,""),e.removeEventListener("click",Jt,!0)}),G(x.background.querySelectorAll(".slide-background")).forEach(function(e){te(e,"")}),re({overview:""}),Re(h,v),he(),bt(),le("overviewhidden",{indexh:h,indexv:v,currentSlide:b}))}function Le(e){"boolean"==typeof e?e?ye():Ae():Ee()?Ae():ye()}function Ee(){return t}function Se(){var e,t="/",r=b?b.getAttribute("id"):null;if(r&&(r=encodeURIComponent(r)),A.fragmentInURL&&(e=ot().f),"string"==typeof r&&r.length&&void 0===e)t="/"+r;else{var n=A.hashOneBasedIndex?1:0;(0section>section").length?x.wrapper.classList.add("has-vertical-slides"):x.wrapper.classList.remove("has-vertical-slides"),1section").length?x.wrapper.classList.add("has-horizontal-slides"):x.wrapper.classList.remove("has-horizontal-slides")}}function We(){A.showNotes&&x.speakerNotes&&b&&!oe()&&(x.speakerNotes.innerHTML=ut()||'No notes on this slide.')}function Fe(){A.progress&&x.progressbar&&(x.progressbar.style.width=rt()*x.wrapper.offsetWidth+"px")}function Ue(){if(A.slideNumber&&x.slideNumber){var e,t="h.v";if("function"==typeof A.slideNumber)e=A.slideNumber();else switch("string"==typeof A.slideNumber&&(t=A.slideNumber),/c/.test(t)||1!==x.wrapper.querySelectorAll(y).length||(t="c"),e=[],t){case"c":e.push(tt()+1);break;case"c/t":e.push(tt()+1,"/",lt());break;case"h/v":e.push(h+1),xe()&&e.push("/",v+1);break;default:e.push(h+1),xe()&&e.push(".",v+1)}x.slideNumber.innerHTML=Ke(e[0],e[1],e[2])}}function Ke(e,t,r){var n="#"+Se();return"number"!=typeof r||isNaN(r)?''+e+"":''+e+''+t+''+r+""}function Ve(){var e=$e(),t=Je();x.controlsLeft.concat(x.controlsRight).concat(x.controlsUp).concat(x.controlsDown).concat(x.controlsPrev).concat(x.controlsNext).forEach(function(e){e.classList.remove("enabled"),e.classList.remove("fragmented"),e.setAttribute("disabled","disabled")}),e.left&&x.controlsLeft.forEach(function(e){e.classList.add("enabled"),e.removeAttribute("disabled")}),e.right&&x.controlsRight.forEach(function(e){e.classList.add("enabled"),e.removeAttribute("disabled")}),e.up&&x.controlsUp.forEach(function(e){e.classList.add("enabled"),e.removeAttribute("disabled")}),e.down&&x.controlsDown.forEach(function(e){e.classList.add("enabled"),e.removeAttribute("disabled")}),(e.left||e.up)&&x.controlsPrev.forEach(function(e){e.classList.add("enabled"),e.removeAttribute("disabled")}),(e.right||e.down)&&x.controlsNext.forEach(function(e){e.classList.add("enabled"),e.removeAttribute("disabled")}),b&&(t.prev&&x.controlsPrev.forEach(function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),t.next&&x.controlsNext.forEach(function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),xe(b)?(t.prev&&x.controlsUp.forEach(function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),t.next&&x.controlsDown.forEach(function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})):(t.prev&&x.controlsLeft.forEach(function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),t.next&&x.controlsRight.forEach(function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}))),A.controlsTutorial&&(!c&&e.down?x.controlsDownArrow.classList.add("highlight"):(x.controlsDownArrow.classList.remove("highlight"),!r&&e.right&&0===v?x.controlsRightArrow.classList.add("highlight"):x.controlsRightArrow.classList.remove("highlight")))}function je(t){var n=null,a=A.rtl?"future":"past",i=A.rtl?"past":"future";if(G(x.background.childNodes).forEach(function(e,r){e.classList.remove("past"),e.classList.remove("present"),e.classList.remove("future"),r'}),n.appendChild(c)}else if(l&&!0!==t.excludeIframes){var d=document.createElement("iframe");d.setAttribute("allowfullscreen",""),d.setAttribute("mozallowfullscreen",""),d.setAttribute("webkitallowfullscreen",""),/autoplay=(1|true|yes)/gi.test(l)?d.setAttribute("data-src",l):d.setAttribute("src",l),d.style.width="100%",d.style.height="100%",d.style.maxHeight="100%",d.style.maxWidth="100%",n.appendChild(d)}}}}function _e(e){e.style.display="none";var t=dt(e);t&&(t.style.display="none"),G(e.querySelectorAll("video[data-lazy-loaded][src], audio[data-lazy-loaded][src], iframe[data-lazy-loaded][src]")).forEach(function(e){e.setAttribute("data-src",e.getAttribute("src")),e.removeAttribute("src")}),G(e.querySelectorAll("video[data-lazy-loaded] source[src], audio source[src]")).forEach(function(e){e.setAttribute("data-src",e.getAttribute("src")),e.removeAttribute("src")})}function $e(){var e=x.wrapper.querySelectorAll(y),t=x.wrapper.querySelectorAll(w),r={left:0R&&(R=1e3*e.duration/e.playbackRate+1e3)}),!R||z||Pe()||Ee()||m.isLastSlide()&&!Je().next&&!0!==A.loop||(H=setTimeout(function(){"function"==typeof A.autoSlideMethod?A.autoSlideMethod():qt(),bt()},R),B=Date.now()),a&&a.setPlaying(-1!==H)}}function yt(){clearTimeout(H),H=-1}function wt(){R&&!z&&(z=!0,le("autoslidepaused"),clearTimeout(H),a&&a.setPlaying(!1))}function kt(){R&&z&&(z=!1,le("autoslideresumed"),bt())}function At(){A.rtl?(Ee()||!1===gt())&&$e().left&&Re(h+1,"grid"===A.navigationMode?v:void 0):(Ee()||!1===mt())&&$e().left&&Re(h-1,"grid"===A.navigationMode?v:void 0)}function Lt(){r=!0,A.rtl?(Ee()||!1===mt())&&$e().right&&Re(h-1,"grid"===A.navigationMode?v:void 0):(Ee()||!1===gt())&&$e().right&&Re(h+1,"grid"===A.navigationMode?v:void 0)}function Et(){(Ee()||!1===mt())&&$e().up&&Re(h,v-1)}function St(){c=!0,(Ee()||!1===gt())&&$e().down&&Re(h,v+1)}function xt(){var e;if(!1===mt())if($e().up)Et();else if(e=A.rtl?G(x.wrapper.querySelectorAll(y+".future")).pop():G(x.wrapper.querySelectorAll(y+".past")).pop()){var t=e.querySelectorAll("section").length-1||void 0;Re(h-1,t)}}function qt(){if(!(c=r=!0)===gt()){var e=$e();e.down&&e.right&&A.loop&&m.isLastVerticalSlide(b)&&(e.down=!1),e.down?St():A.rtl?At():Lt()}}function Mt(e){for(;e&&"function"==typeof e.hasAttribute;){if(e.hasAttribute("data-prevent-swipe"))return!0;e=e.parentNode}return!1}function Nt(e){A.autoSlideStoppable&&wt()}function It(e){qe(),clearTimeout(P),P=setTimeout(Me,A.hideCursorTime)}function Tt(e){e.shiftKey&&63===e.charCode&&ue()}function Pt(e){if("function"==typeof A.keyboardCondition&&!1===A.keyboardCondition(e))return!0;var t=e.keyCode,r=z;Nt();var n=document.activeElement&&"inherit"!==document.activeElement.contentEditable,a=document.activeElement&&document.activeElement.tagName&&/input|textarea/i.test(document.activeElement.tagName),i=document.activeElement&&document.activeElement.className&&/speaker-notes/i.test(document.activeElement.className),o=e.shiftKey&&32===e.keyCode,s=(e.metaKey||e.ctrlKey)&&37===t,l=(e.metaKey||e.ctrlKey)&&39===t,c=!o&&!s&&!l&&(e.shiftKey||e.altKey||e.ctrlKey||e.metaKey);if(!(n||a||i||c)){var d,u=[66,86,190,191];if("object"==typeof A.keyboard)for(d in A.keyboard)"togglePause"===A.keyboard[d]&&u.push(parseInt(d,10));if(Pe()&&-1===u.indexOf(t))return!1;var p,f,h=!1;if("object"==typeof A.keyboard)for(d in A.keyboard)if(parseInt(d,10)===t){var v=A.keyboard[d];"function"==typeof v?v.apply(null,[e]):"string"==typeof v&&"function"==typeof m[v]&&m[v].call(),h=!0}if(!1===h)for(d in W)if(parseInt(d,10)===t){var g=W[d].callback;"function"==typeof g?g.apply(null,[e]):"string"==typeof g&&"function"==typeof m[g]&&m[g].call(),h=!0}!1===h&&(h=!0,80===t||33===t?xt():78===t||34===t?qt():72===t||37===t?s?Re(0):Ee()||"linear"!==A.navigationMode?At():xt():76===t||39===t?l?Re(Number.MAX_VALUE):Ee()||"linear"!==A.navigationMode?Lt():qt():75===t||38===t?Ee()||"linear"!==A.navigationMode?Et():xt():74===t||40===t?Ee()||"linear"!==A.navigationMode?St():qt():36===t?Re(0):35===t?Re(Number.MAX_VALUE):32===t?(Ee()&&Ae(),e.shiftKey?xt():qt()):58===t||59===t||66===t||86===t||190===t||191===t?Te():70===t?(p=document.documentElement,(f=p.requestFullscreen||p.webkitRequestFullscreen||p.webkitRequestFullScreen||p.mozRequestFullScreen||p.msRequestFullscreen)&&f.apply(p)):65===t?A.autoSlideStoppable&&Ce(r):h=!1),h?e.preventDefault&&e.preventDefault():27!==t&&79!==t||!N.transforms3d||(x.overlay?fe():Le(),e.preventDefault&&e.preventDefault()),bt()}}function Ct(e){if(Mt(e.target))return!0;D.startX=e.touches[0].clientX,D.startY=e.touches[0].clientY,D.startCount=e.touches.length}function Rt(e){if(Mt(e.target))return!0;if(D.captured)p.match(/android/gi)&&e.preventDefault();else{Nt();var t=e.touches[0].clientX,r=e.touches[0].clientY;if(1===e.touches.length&&2!==D.startCount){var n=t-D.startX,a=r-D.startY;n>D.threshold&&Math.abs(n)>Math.abs(a)?(D.captured=!0,At()):n<-D.threshold&&Math.abs(n)>Math.abs(a)?(D.captured=!0,Lt()):a>D.threshold?(D.captured=!0,Et()):a<-D.threshold&&(D.captured=!0,St()),A.embedded?(D.captured||xe(b))&&e.preventDefault():e.preventDefault()}}}function Ht(e){D.captured=!1}function Bt(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],Ct(e))}function zt(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],Rt(e))}function Dt(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],Ht())}function Ot(e){if(600",'','',"",'
','
','','','Unable to load iframe. This is likely due to the site\'s policy (x-frame-options).',"","
"].join(""),x.overlay.querySelector("iframe").addEventListener("load",function(e){x.overlay.classList.add("loaded")},!1),x.overlay.querySelector(".close").addEventListener("click",function(e){fe(),e.preventDefault()},!1),x.overlay.querySelector(".external").addEventListener("click",function(e){fe()},!1),setTimeout(function(){x.overlay.classList.add("visible")},1),e.preventDefault())}var r}function Zt(e){m.isLastSlide()&&!1===A.loop?(Re(0,0),kt()):z?kt():wt()}function Gt(e,t){this.diameter=100,this.diameter2=this.diameter/2,this.thickness=6,this.playing=!1,this.progress=0,this.progressOffset=1,this.container=e,this.progressCheck=t,this.canvas=document.createElement("canvas"),this.canvas.className="playback",this.canvas.width=this.diameter,this.canvas.height=this.diameter,this.canvas.style.width=this.diameter2+"px",this.canvas.style.height=this.diameter2+"px",this.context=this.canvas.getContext("2d"),this.container.appendChild(this.canvas),this.render()}return Gt.prototype.setPlaying=function(e){var t=this.playing;this.playing=e,!t&&this.playing?this.animate():this.render()},Gt.prototype.animate=function(){var e=this.progress;this.progress=this.progressCheck(),.8section{line-height:1.3;font-weight:inherit}.reveal h1,.reveal h2,.reveal h3,.reveal h4,.reveal h5,.reveal h6{margin:0 0 20px 0;color:#383d3d;font-family:"Palatino Linotype","Book Antiqua",Palatino,FreeSerif,serif;font-weight:400;line-height:1.2;letter-spacing:normal;text-transform:none;text-shadow:none;word-wrap:break-word}.reveal h1{font-size:3.77em}.reveal h2{font-size:2.11em}.reveal h3{font-size:1.55em}.reveal h4{font-size:1em}.reveal h1{text-shadow:none}.reveal p{margin:20px 0;line-height:1.3}.reveal iframe,.reveal img,.reveal video{max-width:95%;max-height:95%}.reveal b,.reveal strong{font-weight:700}.reveal em{font-style:italic}.reveal dl,.reveal ol,.reveal ul{display:inline-block;text-align:left;margin:0 0 0 1em}.reveal ol{list-style-type:decimal}.reveal ul{list-style-type:disc}.reveal ul ul{list-style-type:square}.reveal ul ul ul{list-style-type:circle}.reveal ol ol,.reveal ol ul,.reveal ul ol,.reveal ul ul{display:block;margin-left:40px}.reveal dt{font-weight:700}.reveal dd{margin-left:40px}.reveal blockquote{display:block;position:relative;width:70%;margin:20px auto;padding:5px;font-style:italic;background:rgba(255,255,255,.05);box-shadow:0 0 2px rgba(0,0,0,.2)}.reveal blockquote p:first-child,.reveal blockquote p:last-child{display:inline-block}.reveal q{font-style:italic}.reveal pre{display:block;position:relative;width:90%;margin:20px auto;text-align:left;font-size:.55em;font-family:monospace;line-height:1.2em;word-wrap:break-word;box-shadow:0 5px 15px rgba(0,0,0,.15)}.reveal code{font-family:monospace;text-transform:none}.reveal pre code{display:block;padding:5px;overflow:auto;max-height:400px;word-wrap:normal}.reveal table{margin:auto;border-collapse:collapse;border-spacing:0}.reveal table th{font-weight:700}.reveal table td,.reveal table th{text-align:left;padding:.2em .5em .2em .5em;border-bottom:1px solid}.reveal table td[align=center],.reveal table th[align=center]{text-align:center}.reveal table td[align=right],.reveal table th[align=right]{text-align:right}.reveal table tbody tr:last-child td,.reveal table tbody tr:last-child th{border-bottom:none}.reveal sup{vertical-align:super;font-size:smaller}.reveal sub{vertical-align:sub;font-size:smaller}.reveal small{display:inline-block;font-size:.6em;line-height:1.2em;vertical-align:top}.reveal small *{vertical-align:top}.reveal a{color:#51483d;text-decoration:none;-webkit-transition:color .15s ease;-moz-transition:color .15s ease;transition:color .15s ease}.reveal a:hover{color:#8b7c69;text-shadow:none;border:none}.reveal .roll span:after{color:#fff;background:#25211c}.reveal section img{margin:15px 0;background:rgba(255,255,255,.12);border:4px solid #000;box-shadow:0 0 10px rgba(0,0,0,.15)}.reveal section img.plain{border:0;box-shadow:none}.reveal a img{-webkit-transition:all .15s linear;-moz-transition:all .15s linear;transition:all .15s linear}.reveal a:hover img{background:rgba(255,255,255,.2);border-color:#51483d;box-shadow:0 0 20px rgba(0,0,0,.55)}.reveal .controls{color:#51483d}.reveal .progress{background:rgba(0,0,0,.2);color:#51483d}.reveal .progress span{-webkit-transition:width .8s cubic-bezier(.26,.86,.44,.985);-moz-transition:width .8s cubic-bezier(.26,.86,.44,.985);transition:width .8s cubic-bezier(.26,.86,.44,.985)}@media print{.backgrounds{background-color:#f0f1eb}} +/*# sourceMappingURL=serif.min.css.map */ \ No newline at end of file diff --git a/seleniumbase/resources/reveal/simple.min.css b/seleniumbase/resources/reveal/simple.min.css new file mode 100644 index 00000000000..79cb38d1a06 --- /dev/null +++ b/seleniumbase/resources/reveal/simple.min.css @@ -0,0 +1,2 @@ +@import url(https://fonts.googleapis.com/css?family=News+Cycle:400,700);@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);section.has-dark-background,section.has-dark-background h1,section.has-dark-background h2,section.has-dark-background h3,section.has-dark-background h4,section.has-dark-background h5,section.has-dark-background h6{color:#fff}body{background:#fff;background-color:#fff}.reveal{font-family:Lato,sans-serif;font-size:40px;font-weight:400;color:#000}::selection{color:#fff;background:rgba(0,0,0,.99);text-shadow:none}::-moz-selection{color:#fff;background:rgba(0,0,0,.99);text-shadow:none}.reveal .slides section,.reveal .slides section>section{line-height:1.3;font-weight:inherit}.reveal h1,.reveal h2,.reveal h3,.reveal h4,.reveal h5,.reveal h6{margin:0 0 20px 0;color:#000;font-family:"News Cycle",Impact,sans-serif;font-weight:400;line-height:1.2;letter-spacing:normal;text-transform:none;text-shadow:none;word-wrap:break-word}.reveal h1{font-size:3.77em}.reveal h2{font-size:2.11em}.reveal h3{font-size:1.55em}.reveal h4{font-size:1em}.reveal h1{text-shadow:none}.reveal p{margin:20px 0;line-height:1.3}.reveal iframe,.reveal img,.reveal video{max-width:95%;max-height:95%}.reveal b,.reveal strong{font-weight:700}.reveal em{font-style:italic}.reveal dl,.reveal ol,.reveal ul{display:inline-block;text-align:left;margin:0 0 0 1em}.reveal ol{list-style-type:decimal}.reveal ul{list-style-type:disc}.reveal ul ul{list-style-type:square}.reveal ul ul ul{list-style-type:circle}.reveal ol ol,.reveal ol ul,.reveal ul ol,.reveal ul ul{display:block;margin-left:40px}.reveal dt{font-weight:700}.reveal dd{margin-left:40px}.reveal blockquote{display:block;position:relative;width:70%;margin:20px auto;padding:5px;font-style:italic;background:rgba(255,255,255,.05);box-shadow:0 0 2px rgba(0,0,0,.2)}.reveal blockquote p:first-child,.reveal blockquote p:last-child{display:inline-block}.reveal q{font-style:italic}.reveal pre{display:block;position:relative;width:90%;margin:20px auto;text-align:left;font-size:.55em;font-family:monospace;line-height:1.2em;word-wrap:break-word;box-shadow:0 5px 15px rgba(0,0,0,.15)}.reveal code{font-family:monospace;text-transform:none}.reveal pre code{display:block;padding:5px;overflow:auto;max-height:400px;word-wrap:normal}.reveal table{margin:auto;border-collapse:collapse;border-spacing:0}.reveal table th{font-weight:700}.reveal table td,.reveal table th{text-align:left;padding:.2em .5em .2em .5em;border-bottom:1px solid}.reveal table td[align=center],.reveal table th[align=center]{text-align:center}.reveal table td[align=right],.reveal table th[align=right]{text-align:right}.reveal table tbody tr:last-child td,.reveal table tbody tr:last-child th{border-bottom:none}.reveal sup{vertical-align:super;font-size:smaller}.reveal sub{vertical-align:sub;font-size:smaller}.reveal small{display:inline-block;font-size:.6em;line-height:1.2em;vertical-align:top}.reveal small *{vertical-align:top}.reveal a{color:#00008b;text-decoration:none;-webkit-transition:color .15s ease;-moz-transition:color .15s ease;transition:color .15s ease}.reveal a:hover{color:#0000f1;text-shadow:none;border:none}.reveal .roll span:after{color:#fff;background:#00003f}.reveal section img{margin:15px 0;background:rgba(255,255,255,.12);border:4px solid #000;box-shadow:0 0 10px rgba(0,0,0,.15)}.reveal section img.plain{border:0;box-shadow:none}.reveal a img{-webkit-transition:all .15s linear;-moz-transition:all .15s linear;transition:all .15s linear}.reveal a:hover img{background:rgba(255,255,255,.2);border-color:#00008b;box-shadow:0 0 20px rgba(0,0,0,.55)}.reveal .controls{color:#00008b}.reveal .progress{background:rgba(0,0,0,.2);color:#00008b}.reveal .progress span{-webkit-transition:width .8s cubic-bezier(.26,.86,.44,.985);-moz-transition:width .8s cubic-bezier(.26,.86,.44,.985);transition:width .8s cubic-bezier(.26,.86,.44,.985)}@media print{.backgrounds{background-color:#fff}} +/*# sourceMappingURL=simple.min.css.map */ \ No newline at end of file diff --git a/seleniumbase/resources/reveal/sky.min.css b/seleniumbase/resources/reveal/sky.min.css new file mode 100644 index 00000000000..239202e1f42 --- /dev/null +++ b/seleniumbase/resources/reveal/sky.min.css @@ -0,0 +1,2 @@ +@import url(https://fonts.googleapis.com/css?family=Quicksand:400,700,400italic,700italic);@import url(https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700);.reveal a{line-height:1.3em}body{background:#add9e4;background:-moz-radial-gradient(center,circle cover,#f7fbfc 0,#add9e4 100%);background:-webkit-gradient(radial,center center,0,center center,100%,color-stop(0,#f7fbfc),color-stop(100%,#add9e4));background:-webkit-radial-gradient(center,circle cover,#f7fbfc 0,#add9e4 100%);background:-o-radial-gradient(center,circle cover,#f7fbfc 0,#add9e4 100%);background:-ms-radial-gradient(center,circle cover,#f7fbfc 0,#add9e4 100%);background:radial-gradient(center,circle cover,#f7fbfc 0,#add9e4 100%);background-color:#f7fbfc}.reveal{font-family:"Open Sans",sans-serif;font-size:40px;font-weight:400;color:#333}::selection{color:#fff;background:#134674;text-shadow:none}::-moz-selection{color:#fff;background:#134674;text-shadow:none}.reveal .slides section,.reveal .slides section>section{line-height:1.3;font-weight:inherit}.reveal h1,.reveal h2,.reveal h3,.reveal h4,.reveal h5,.reveal h6{margin:0 0 20px 0;color:#333;font-family:Quicksand,sans-serif;font-weight:400;line-height:1.2;letter-spacing:-.08em;text-transform:uppercase;text-shadow:none;word-wrap:break-word}.reveal h1{font-size:3.77em}.reveal h2{font-size:2.11em}.reveal h3{font-size:1.55em}.reveal h4{font-size:1em}.reveal h1{text-shadow:none}.reveal p{margin:20px 0;line-height:1.3}.reveal iframe,.reveal img,.reveal video{max-width:95%;max-height:95%}.reveal b,.reveal strong{font-weight:700}.reveal em{font-style:italic}.reveal dl,.reveal ol,.reveal ul{display:inline-block;text-align:left;margin:0 0 0 1em}.reveal ol{list-style-type:decimal}.reveal ul{list-style-type:disc}.reveal ul ul{list-style-type:square}.reveal ul ul ul{list-style-type:circle}.reveal ol ol,.reveal ol ul,.reveal ul ol,.reveal ul ul{display:block;margin-left:40px}.reveal dt{font-weight:700}.reveal dd{margin-left:40px}.reveal blockquote{display:block;position:relative;width:70%;margin:20px auto;padding:5px;font-style:italic;background:rgba(255,255,255,.05);box-shadow:0 0 2px rgba(0,0,0,.2)}.reveal blockquote p:first-child,.reveal blockquote p:last-child{display:inline-block}.reveal q{font-style:italic}.reveal pre{display:block;position:relative;width:90%;margin:20px auto;text-align:left;font-size:.55em;font-family:monospace;line-height:1.2em;word-wrap:break-word;box-shadow:0 5px 15px rgba(0,0,0,.15)}.reveal code{font-family:monospace;text-transform:none}.reveal pre code{display:block;padding:5px;overflow:auto;max-height:400px;word-wrap:normal}.reveal table{margin:auto;border-collapse:collapse;border-spacing:0}.reveal table th{font-weight:700}.reveal table td,.reveal table th{text-align:left;padding:.2em .5em .2em .5em;border-bottom:1px solid}.reveal table td[align=center],.reveal table th[align=center]{text-align:center}.reveal table td[align=right],.reveal table th[align=right]{text-align:right}.reveal table tbody tr:last-child td,.reveal table tbody tr:last-child th{border-bottom:none}.reveal sup{vertical-align:super;font-size:smaller}.reveal sub{vertical-align:sub;font-size:smaller}.reveal small{display:inline-block;font-size:.6em;line-height:1.2em;vertical-align:top}.reveal small *{vertical-align:top}.reveal a{color:#3b759e;text-decoration:none;-webkit-transition:color .15s ease;-moz-transition:color .15s ease;transition:color .15s ease}.reveal a:hover{color:#74a7cb;text-shadow:none;border:none}.reveal .roll span:after{color:#fff;background:#264c66}.reveal section img{margin:15px 0;background:rgba(255,255,255,.12);border:4px solid #333;box-shadow:0 0 10px rgba(0,0,0,.15)}.reveal section img.plain{border:0;box-shadow:none}.reveal a img{-webkit-transition:all .15s linear;-moz-transition:all .15s linear;transition:all .15s linear}.reveal a:hover img{background:rgba(255,255,255,.2);border-color:#3b759e;box-shadow:0 0 20px rgba(0,0,0,.55)}.reveal .controls{color:#3b759e}.reveal .progress{background:rgba(0,0,0,.2);color:#3b759e}.reveal .progress span{-webkit-transition:width .8s cubic-bezier(.26,.86,.44,.985);-moz-transition:width .8s cubic-bezier(.26,.86,.44,.985);transition:width .8s cubic-bezier(.26,.86,.44,.985)}@media print{.backgrounds{background-color:#f7fbfc}} +/*# sourceMappingURL=sky.min.css.map */ \ No newline at end of file diff --git a/seleniumbase/resources/reveal/white.min.css b/seleniumbase/resources/reveal/white.min.css new file mode 100644 index 00000000000..47f564230b5 --- /dev/null +++ b/seleniumbase/resources/reveal/white.min.css @@ -0,0 +1,2 @@ +@font-face{font-family:'Source Sans Pro';src:url(../../lib/font/source-sans-pro/source-sans-pro-regular.eot);src:url(../../lib/font/source-sans-pro/source-sans-pro-regular.eot?#iefix) format('embedded-opentype'),url(../../lib/font/source-sans-pro/source-sans-pro-regular.woff) format('woff'),url(../../lib/font/source-sans-pro/source-sans-pro-regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:'Source Sans Pro';src:url(../../lib/font/source-sans-pro/source-sans-pro-italic.eot);src:url(../../lib/font/source-sans-pro/source-sans-pro-italic.eot?#iefix) format('embedded-opentype'),url(../../lib/font/source-sans-pro/source-sans-pro-italic.woff) format('woff'),url(../../lib/font/source-sans-pro/source-sans-pro-italic.ttf) format('truetype');font-weight:400;font-style:italic}@font-face{font-family:'Source Sans Pro';src:url(../../lib/font/source-sans-pro/source-sans-pro-semibold.eot);src:url(../../lib/font/source-sans-pro/source-sans-pro-semibold.eot?#iefix) format('embedded-opentype'),url(../../lib/font/source-sans-pro/source-sans-pro-semibold.woff) format('woff'),url(../../lib/font/source-sans-pro/source-sans-pro-semibold.ttf) format('truetype');font-weight:600;font-style:normal}@font-face{font-family:'Source Sans Pro';src:url(../../lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot);src:url(../../lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot?#iefix) format('embedded-opentype'),url(../../lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff) format('woff'),url(../../lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf) format('truetype');font-weight:600;font-style:italic}section.has-dark-background,section.has-dark-background h1,section.has-dark-background h2,section.has-dark-background h3,section.has-dark-background h4,section.has-dark-background h5,section.has-dark-background h6{color:#fff}body{background:#fff;background-color:#fff}.reveal{font-family:"Source Sans Pro",Helvetica,sans-serif;font-size:42px;font-weight:400;color:#222}::selection{color:#fff;background:#98bdef;text-shadow:none}::-moz-selection{color:#fff;background:#98bdef;text-shadow:none}.reveal .slides section,.reveal .slides section>section{line-height:1.3;font-weight:inherit}.reveal h1,.reveal h2,.reveal h3,.reveal h4,.reveal h5,.reveal h6{margin:0 0 20px 0;color:#222;font-family:"Source Sans Pro",Helvetica,sans-serif;font-weight:600;line-height:1.2;letter-spacing:normal;text-transform:uppercase;text-shadow:none;word-wrap:break-word}.reveal h1{font-size:2.5em}.reveal h2{font-size:1.6em}.reveal h3{font-size:1.3em}.reveal h4{font-size:1em}.reveal h1{text-shadow:none}.reveal p{margin:20px 0;line-height:1.3}.reveal iframe,.reveal img,.reveal video{max-width:95%;max-height:95%}.reveal b,.reveal strong{font-weight:700}.reveal em{font-style:italic}.reveal dl,.reveal ol,.reveal ul{display:inline-block;text-align:left;margin:0 0 0 1em}.reveal ol{list-style-type:decimal}.reveal ul{list-style-type:disc}.reveal ul ul{list-style-type:square}.reveal ul ul ul{list-style-type:circle}.reveal ol ol,.reveal ol ul,.reveal ul ol,.reveal ul ul{display:block;margin-left:40px}.reveal dt{font-weight:700}.reveal dd{margin-left:40px}.reveal blockquote{display:block;position:relative;width:70%;margin:20px auto;padding:5px;font-style:italic;background:rgba(255,255,255,.05);box-shadow:0 0 2px rgba(0,0,0,.2)}.reveal blockquote p:first-child,.reveal blockquote p:last-child{display:inline-block}.reveal q{font-style:italic}.reveal pre{display:block;position:relative;width:90%;margin:20px auto;text-align:left;font-size:.55em;font-family:monospace;line-height:1.2em;word-wrap:break-word;box-shadow:0 5px 15px rgba(0,0,0,.15)}.reveal code{font-family:monospace;text-transform:none}.reveal pre code{display:block;padding:5px;overflow:auto;max-height:400px;word-wrap:normal}.reveal table{margin:auto;border-collapse:collapse;border-spacing:0}.reveal table th{font-weight:700}.reveal table td,.reveal table th{text-align:left;padding:.2em .5em .2em .5em;border-bottom:1px solid}.reveal table td[align=center],.reveal table th[align=center]{text-align:center}.reveal table td[align=right],.reveal table th[align=right]{text-align:right}.reveal table tbody tr:last-child td,.reveal table tbody tr:last-child th{border-bottom:none}.reveal sup{vertical-align:super;font-size:smaller}.reveal sub{vertical-align:sub;font-size:smaller}.reveal small{display:inline-block;font-size:.6em;line-height:1.2em;vertical-align:top}.reveal small *{vertical-align:top}.reveal a{color:#2a76dd;text-decoration:none;-webkit-transition:color .15s ease;-moz-transition:color .15s ease;transition:color .15s ease}.reveal a:hover{color:#6ca0e8;text-shadow:none;border:none}.reveal .roll span:after{color:#fff;background:#1a53a1}.reveal section img{margin:15px 0;background:rgba(255,255,255,.12);border:4px solid #222;box-shadow:0 0 10px rgba(0,0,0,.15)}.reveal section img.plain{border:0;box-shadow:none}.reveal a img{-webkit-transition:all .15s linear;-moz-transition:all .15s linear;transition:all .15s linear}.reveal a:hover img{background:rgba(255,255,255,.2);border-color:#2a76dd;box-shadow:0 0 20px rgba(0,0,0,.55)}.reveal .controls{color:#2a76dd}.reveal .progress{background:rgba(0,0,0,.2);color:#2a76dd}.reveal .progress span{-webkit-transition:width .8s cubic-bezier(.26,.86,.44,.985);-moz-transition:width .8s cubic-bezier(.26,.86,.44,.985);transition:width .8s cubic-bezier(.26,.86,.44,.985)}@media print{.backgrounds{background-color:#fff}} +/*# sourceMappingURL=white.min.css.map */ \ No newline at end of file diff --git a/setup.py b/setup.py index 6fce97ad0e4..f3c801f53a0 100755 --- a/setup.py +++ b/setup.py @@ -44,7 +44,7 @@ print("\n*** Installing twine: *** (Required for PyPI uploads)\n") os.system("python -m pip install 'twine>=1.15.0'") print("\n*** Installing tqdm: *** (Required for PyPI uploads)\n") - os.system("python -m pip install 'tqdm>=4.46.1'") + os.system("python -m pip install 'tqdm>=4.47.0'") print("\n*** Publishing The Release to PyPI: ***\n") os.system('python -m twine upload dist/*') # Requires ~/.pypirc Keys print("\n*** The Release was PUBLISHED SUCCESSFULLY to PyPI! :) ***\n") @@ -54,7 +54,7 @@ setup( name='seleniumbase', - version='1.41.0', + version='1.42.0', description='Fast, Easy, and Reliable Browser Automation & Testing.', long_description=long_description, long_description_content_type='text/markdown', @@ -99,7 +99,7 @@ 'six', 'nose', 'ipdb', - 'idna==2.9', # Must stay in sync with "requests" + 'idna==2.10', # Must stay in sync with "requests" 'chardet==3.0.4', # Must stay in sync with "requests" 'urllib3==1.25.9', # Must stay in sync with "requests" 'requests==2.24.0', @@ -134,7 +134,7 @@ 'pyotp==2.3.0', 'boto==2.49.0', 'cffi==1.14.0', - 'rich==2.2.6;python_version>="3.6" and python_version<"4.0"', + 'rich==3.0.0;python_version>="3.6" and python_version<"4.0"', 'flake8==3.7.9;python_version<"3.5"', 'flake8==3.8.3;python_version>="3.5"', 'pyflakes==2.1.1;python_version<"3.5"',