From 759b23e6b1fba69ec0aecfdc1d70379c03f44133 Mon Sep 17 00:00:00 2001 From: Laurent Date: Wed, 11 Sep 2019 16:58:44 +0200 Subject: [PATCH] Image upload and display --- db.sqlite3 | Bin 176128 -> 180224 bytes news/__pycache__/choices.cpython-37.pyc | Bin 0 -> 178 bytes news/__pycache__/forms.cpython-37.pyc | Bin 0 -> 602 bytes news/__pycache__/models.cpython-37.pyc | Bin 2193 -> 2367 bytes news/__pycache__/urls.cpython-37.pyc | Bin 506 -> 477 bytes news/__pycache__/views.cpython-37.pyc | Bin 2051 -> 2396 bytes news/choices.py | 4 + news/forms.py | 11 + news/migrations/0002_post_style.py | 18 + .../0002_post_style.cpython-37.pyc | Bin 0 -> 543 bytes news/models.py | 6 +- .../74d7e72e-e415-462e-8978-5ef942ff96a4 | Bin 0 -> 47486 bytes .../c0256a8f-14ff-473f-ae1c-2e7f7a83bb18 | Bin 0 -> 65779 bytes news/static/media/test.png | Bin 0 -> 84605 bytes news/static/news/LibreBaskerville-Regular.otf | Bin 0 -> 60016 bytes news/static/news/css/app.css | 65 + news/static/news/css/foundation.css | 3912 ++++++ news/static/news/css/foundation.min.css | 1 + news/static/news/js/app.js | 1 + news/static/news/js/vendor/foundation.js | 219 + news/static/news/js/vendor/foundation.min.js | 1 + news/static/news/js/vendor/jquery.js | 10364 ++++++++++++++++ news/static/news/js/vendor/what-input.js | 480 + news/static/news/style.css | 3 - news/templates/base.html | 48 +- news/templates/news/index.html | 73 +- news/templates/news/post.html | 7 +- news/templates/news/submission.html | 21 +- news/urls.py | 2 +- news/views.py | 54 +- pokercc/__pycache__/settings.cpython-37.pyc | Bin 2264 -> 2338 bytes pokercc/settings.py | 2 + 32 files changed, 15236 insertions(+), 56 deletions(-) create mode 100644 news/__pycache__/choices.cpython-37.pyc create mode 100644 news/__pycache__/forms.cpython-37.pyc create mode 100644 news/choices.py create mode 100644 news/forms.py create mode 100644 news/migrations/0002_post_style.py create mode 100644 news/migrations/__pycache__/0002_post_style.cpython-37.pyc create mode 100644 news/static/media/74d7e72e-e415-462e-8978-5ef942ff96a4 create mode 100644 news/static/media/c0256a8f-14ff-473f-ae1c-2e7f7a83bb18 create mode 100644 news/static/media/test.png create mode 100755 news/static/news/LibreBaskerville-Regular.otf create mode 100644 news/static/news/css/app.css create mode 100644 news/static/news/css/foundation.css create mode 100644 news/static/news/css/foundation.min.css create mode 100644 news/static/news/js/app.js create mode 100644 news/static/news/js/vendor/foundation.js create mode 100644 news/static/news/js/vendor/foundation.min.js create mode 100644 news/static/news/js/vendor/jquery.js create mode 100644 news/static/news/js/vendor/what-input.js delete mode 100644 news/static/news/style.css diff --git a/db.sqlite3 b/db.sqlite3 index 99243fe2fe531616dc0ee221af433b6959b03a7d..e3ed524d4c5d93d26e40c3073b4a74391210bfc8 100644 GIT binary patch delta 2764 zcmb_eO^g#&9G~g5+s?EzueDot0bz%lf`n~5@6C4)NP`Njd>CN85YnBt)7@%2(`{$1 z8$!y4$i<6f51W951WZggsT;E~#6S#k@UkAj#F!w7F+hR|8pVSgeABh-x|A>1w)4x& zo7exxd;kCM_m16UjvWiWzczA!Ac#Ty#PLJo=fKH9kv#Cp$cKQ62IXmgIN=G(voP!r zN+{|hVq3D7*=z`cfO0jv;p7_5WW_`R)RTgqgph|)MpQFMO=+qq$#Ay3_Kdf8hy-`Q z5U7Jo;1qZdjDU~9_1O))09N%N}oqgas5eOI)4jZNh zNY`oGVPyJJI_3sU^tzL|+&^z(B$e*is+LFVhEuk!M)aH@tYPqaAGk$;Kf!(Q3%Cnz zv6HOfesLH(SQC6t-XNxYpp~W9(YuPK!I$hhzwIENzl!Ih%jd_;ou*Z^tvz<0=LdPC zQsJF))#R(TWlr+r5t>-NdRLYnrt{^|QL}C~$IbEP^jUk;-u4b5ltEfbQWQ}WRjH_& zDl(I%1m&cp;E|@QT2eMkx`aw4T`{Cam?qXO7<9~r!`I4%nmvJkuE|#0Bt#ieOv#cW z>qjG|~{NP!>f+(GkuQAyHKS zT{!|S9zCT?sw}H+qN$oS`U*u8iC8*I1KO}`XUwegZsA#W&1^QCsX}GrM80Ofg`HZa zv&5XBWn?iUC@E1yIue@GC+y(_E`tQive^JjBQHgh5f{QP02e41JfGIQ_o$F(cFsRS zilmp?K~BzXHOQ-5c@A78zyt6H_!ayNZi64e4e%Yf2Ij%n;45$$T%3*6WXTY!&4h}7f;{)p`YhM{R9rv0b%YA_a%3lbGSY1 zZT2{OD0Dw`F4T`Z;J09F%Fi)GHZtWKrfG7?HoE<+XAnvuC_`O@@{;a&d>3@7l|x73 zg)!XgW-*@OkHkx5vr=r};h}h|%_H%{M~@!%>}P2l$-1tAKsBXGNY_-TbUNYDMwi$u zgch=6AIi?HIVIJSbV-yTgeysp+8A^rXCLK6(vd7l5K#qYc{HsKc`k$_=@3c^6ju~Y zfnM%qnG;Qy1QklIlh)sa_smC1B?35S@KDZTMpiO{oKld2k4vHw{>LtBDM%7US*8*_ zk6njpLsKM$O8B0z3}PNssf70l%dn0ijmlFkyj5VzxBTQ5vw)f+%lgWW!_)mZ+CEzD zRzXD*Arw~RB|&!0SinV|k);&Eg{5hbVlflG$m}G*Pv8nT4^GU5zaj6vv&fP$;-@=H!1!j?>5it>)9SZ0XA@}LfeA- znQP2z^aXlTzzRVBsUCmu3ch1}>x027hqwFt1_toRG4d62QR^26 zgEQH)p6HxyklV?%gM56U<@vJZm{@oDz55RGdxv-L-aL0|#$1+|GGp?G8 z_67-*U#c9*r~m)} delta 373 zcmZo@;BI)pH9=ZXlYxOj8;D`Rf1-{tqvpnhCH%}n+?kWv1ynaHD%f&w&Xk_ZB9y?u z|C0X-e-ZzF{#pFp{2TZaHVYPb@J~+A_Yemfz`>DNTEff6EYFyiT3#GqkY8NFGO#CjK@C z{@eU*KpU#~C%5H?swy*bGVt>9I&$!G8W|W`>Ka(;8X71VnphbbSecmXnVJ|Im>F*> zVEMqz%V@QoJ%Q1fk)^53jD5RZBI7Z;%`6Z8$WLnEW|aXNE)6vGJ^$qY^{m@jE-?PF z=ivg|_??0O5C3f4|0#)qWXH93)W|_Vuhf#L=quETNj7rlJa~OrUbI)P=DhvQN C$YRt0 diff --git a/news/__pycache__/choices.cpython-37.pyc b/news/__pycache__/choices.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d2e07d7c9397d4e85f607034f8deef878e75de97 GIT binary patch literal 178 zcmZ?b<>g`kg4?W>u~tC(F^B^Lj6jA15EpX*i4=w?h7`tN22CaqdPwDd!ZQ;UlAa}rC7 zQu9jmQ&P+H3-Ys5i;|P|^HR%;^^-I5Gm}$`^$IF)aoFVMr;3~A z`4hguH^iyGzzN&k6=Qic&(HH_?0K0aF)PNyELlPg1J+hfX$XZ*(o9$CW+5H*SIxv(?-H#d5rA)_y@@+5StFhI(pNoerC$&d|CGb z_rFY))YDv)S15GclsARIcGa)HBp2Jh?%Gm3?(wFtkDd^s+2z}F%@_Sn;4)=0G|4)w z)?Hnp(vigLp_T~qG|^E}v}J=uq2r=xIv9kFCq;2Rl;Xfh&!&&2>r&2Y6rg!;Thjhj z2RqFMDfD>iv>lx%i{-oX(_;GS;`Q`&p}Dec=+Ueec$Z%{)jYtTH!>XWN~$|86I%?BFB%z%F(~-T6G_I)F{tt~%GW9Gg4Z bxBuw){{;`xBTGlm56^yK=d7&sght*!BHNm2 literal 0 HcmV?d00001 diff --git a/news/__pycache__/models.cpython-37.pyc b/news/__pycache__/models.cpython-37.pyc index 32131a77caea89559395221733cf86a80ebce0c6..cddbba101513fd02494aace424308d32f4fde395 100644 GIT binary patch delta 568 zcmZ{gK`#SA6vy}N+U@Rk7hSEkC?!Z%72)P2#1)B?hHM(M5z<4J@0N?|Z8eP?p%M*FosCGuGeIC?9t68U zhq$O}7%LdU!*r$`D0gtLFonUTnpcpeu5lAPzFJA{M)i7l7zZMZTUxbNlS@YbY|DwG zqoC6gSt4~jQ*F<`-8DaRqo<{zHFCO$8?~@y?boY&VQ|cAydOt-PQE8{#cq^IBGD5} z@W5$ryHm~QH*E}HRDO0XWb!mdkKhB81}P26DSc$9KysMU7^aqf62+n5MLHOjk4B*| ziIRo{`H>B6va*3s$`2ziU-Sp?<+d?D(uPgbY}=3~e!P5A6U57wP>y2=`e7z=dcje7 w2}wN#jZ7NjIO`HTri{Mt#D5Q#DDZEq#XBUTH<*sh- zia0np_%+0D;J5JJ2yVW|`*Gf%bI$v)@2l39Wyu_k*{7=m@5Ootye%%`H*7dYEaE~6 zgKBKV@+LR1vMHG%a0O4Uk)Yc63=KRfJ;E|dea+9pLiT2b?D*|kVijfoK8LWoV#f*x*)Rrmiaj;VLay}~i2zZliUH?dvj4=Zk={gLiq%kVVImbUQ&;|fHv diff --git a/news/__pycache__/urls.cpython-37.pyc b/news/__pycache__/urls.cpython-37.pyc index 37fa9fe82dfa1fcbdac093ea7a4fa2350a3a7ef0..e3c3a028c7daa03a0ce13d2c111de127710cbe2e 100644 GIT binary patch delta 152 zcmeyxe3x0>iIVGMWMFs<;=lk%#sP?nD<-N3Y4fD8_cEt4rtqdRXK|+R zLV0{Z9#;w6p2=Q}E@HR1ON(*}5=%-_i}H$BG872{ bjVuzJypqvcL;%R-Vd7z8Vd7&1LNEycr=cGY delta 181 zcmcc1{EJ!LiIo zcr~yiV#^BIOE!D~Us79E`2|*-TQf|87cir~b*rkYZrxMo-2SrJtTFt4svSSA!26Rr z|NI;{U*IYKfDugalw~~PnG-pj`cCR*UgTwdQ1rSlU+2b zbL0Arwrd(+Y2DwJWxvQvX)4sigjsxZcw34@VO5)(AT46-1+SvykyNF8#m7;+M@6Yk zJmsgq1@QKytzC;5KarKR+9@pyRd;3==eXx8IBM{wc1TiH@oti$epsS)eM|A<1qTEn1erEp8#>El41 zG%5ATY%ZUdn+affv2mcYwCyXRgsF_-DNV4Kq#Brog+jWW-D5?>0A5J@*#MiVIs1OM z$hCZ-e`9I|{l7lg{H_Ejn`t}%=z3Ggqs@MCC{?$+X+s_*2)xlhHogts#G*2QVSJs3 zT+wm66p4O>ijT*lvJOWx&4*m@mkzRbki8?^p_6cnfJe|e{lk+P8;EkXsTq&lwyS76 zo8=@GwS)mvv7jVEU8ZSDVr*8)qp^8BC0!2V4Q@xK*GAVjy|xBAn&D79VfH}I*2#)J zN>@qXA9uUOARnKp&Btfp_6!%In&!V25G19AgsZpUPoq=hDLlWUGh{tPKXlYDfQj`0 zP|qDXr-1CtJ7?-w?e~IS1*4&^p4H9)9|1Y!y}EGM*wE=TtnXRBX?@@NGkR9H&gRb9 zh@ZN8e(2K9B3NT1)CBaL&Vs1GE)JcurE|uaUe+rj9Pts~VR@kW2(;C!z@{o{L|%(e zeam={9_~CQg~kJYP$=UOXN|8Dol4{F7UI~r1C@d-S-dYT!^hWqvmESZiPln_ELx0h zzbum?pIrJL32)5=nZ(XQ(e0?WVT^zO!Pob8Oqi6Nqd3LI6Y&+@vI)k(8*cy-E8-^3 zQi%B2G`gvbb16DFV65Jy6<5i;NAI{$1J(=@VSKWv9tUwQQrQ{wZMhH~s7act&7y;Z z)GV#@$`}=d*snq|R$<a_%8ofTKEp$28C=ERY4Da4 z@Bkw-Zs4dJcw;Ir;t$mfE3aE{NM6L66|iXJ{CxG)d2tEcanIRZ_H^bH_k89JQHnTw zw*G`Y!Pnqhw#~jrivk3;yU%y8wSD6ieVMBnY-noV+`IeWc4zzH!^Z&kV2~e{#(%C7 zE!&>@gx=tLQC*;%BzdfHdB(SIT}V|?Nu(1_O2s^Kv}02({I3!hUbBQ)GcJ1nslw`% zVz(*sM1h~epCU*VWvamY=#c(q)d4l<(iZReFT`TOtcmP&8pQ(P1l7tK*K-uE3yJTq2(ccT%N1ZrX~*jTfu^vfWU1n*NXsaaLU;^SavE!bap6 zQ}$!>rldn%q%x?8L8j6jf4nZj{~0Fl;wecgj1&9~s@62#UXNO$7w7xMMhOY)?m(B8 z$@T=MKAAhfcU2MN6ai-Ao7u^nmRX;^P^yBd=?ciCw7P(X3n9_5LZw`dPwFnmqP8-v zq{aR|KB?2y_%7{P4yp}`M@4j8;i-gL9asV>x=)+O8#&vL0M&mJ-a_a>DnBQFl~-U| Ve9=m)Wo<|}xS=0bV6UKc{|1afA_)Kh delta 1073 zcmZuw%TLrm7@ujoZFkx2KG+AVh!vu+!N)}}L_Fxl6QF1e7(+^@u3h^eGgA?Q!MJ+x zU<~Qi1020;;@{Hv2YB)3AK>?ORScoc{JzJ0GxI&aH-MO*YP&KwGTE z+CbaPTqV8E!H?HP=15Qap|_O2r!Fm}Kj~V%3U6nI8%NT6DL)h5N*^iL>tmo5I{HN? zsY!V!T{ODsS7r6acy7NH3%TJl-UW%b{y`f#)YV`K4S>)x<=u2qy>ho1dE4TeNH#-X z2tSUlK9gb4qg(+iAb9bKtFqFubrZG)nv!%uy}y5&b;ac#MCiC~oJ6wo?*QeKz`GO= z!-tokYjwV+$bdZ8`BO;;%0LB4lZ8Y5h%n`Y@+#kDYM1QM4FfHi)?G%y%!NX} zQOtQg=Sw+HbAD`(9+r;?C6OsB%ox%)R9dpi%po08s7rB)SHOkzqc*c&^h2lbZ6rL{ zonDI*J4}SMg%^0Pv>kgZ*$jNwk&roC?reFx7Upvy&ybWJ>(w%CWqI`h$9CdafJ`4H zB-0Y%ab8AMLB`D4;pfrDM!0}5jqn&9$u!}-@OS|gSbuH;^psI`PN{aLj~qAyW&&$O zloD-2(f|G>#Z>qlHbDAIpPE0dZpGsm@Rq#Dl=q zh+jfb5%Rcm7iUnk5oQsN<4{L&ptIQXVdzEjM9=Yg*t`r&@zrPkz}0EbvvYh0oSbN1+Swb;_QM!1mcZ> zKt30*q7Wc&SQdX#Ez2T5s;ikTyQ(qHCv^j;-87`ul8|vi*X@!*R&ZcN1boH|fpQ*) z=9tU}AR%6HNLGR}DGca~)DN%Lz3C%q@WuJ@WHQ-Tm8rU_)LyoY>wN6GrAAA%SjPPT z@S$AjE)#?;;8CWmk)8(~KUApUIve^_^>L;ANGYmYXe4{A)YGEWp*DDcEgC>GtvCbybUEO2-ZqbDr_(&J z%KvAW6Tbr$XsMpnUc0nmKVgh6tS}Xclsux-$FDQ#hcGYAtl5M69%GNJPyR#rwYKTK PPY-|D9tQ$0klGYK;8cwJ literal 0 HcmV?d00001 diff --git a/news/models.py b/news/models.py index 3729584..f86e19f 100644 --- a/news/models.py +++ b/news/models.py @@ -15,12 +15,14 @@ class Post(models.Model): url = models.CharField(max_length=200) date = models.DateTimeField('date published') state = models.IntegerField(default=0) + style = models.IntegerField(default=0) image_url = models.CharField(max_length=100) - # state: posted, draft, waiting for submission - # image def __str__(self): return self.title + def top_comments(self): + return self.comment_set.all()[:3] + class Comment(models.Model): author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) post = models.ForeignKey(Post, on_delete=models.CASCADE, null=True) diff --git a/news/static/media/74d7e72e-e415-462e-8978-5ef942ff96a4 b/news/static/media/74d7e72e-e415-462e-8978-5ef942ff96a4 new file mode 100644 index 0000000000000000000000000000000000000000..db5fcb813047c0484b2787cd1752ce4b6a4f27c4 GIT binary patch literal 47486 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 A6951J literal 0 HcmV?d00001 diff --git a/news/static/media/c0256a8f-14ff-473f-ae1c-2e7f7a83bb18 b/news/static/media/c0256a8f-14ff-473f-ae1c-2e7f7a83bb18 new file mode 100644 index 0000000000000000000000000000000000000000..c7f434f9997dbd1466beb867b01c5f10cf86c088 GIT binary patch literal 65779 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

9QyS5 z=+6t7v|5I11bqGf?HlV~{Kid^bp#NBgc=fq3<#5=dZ^ezHrj|WfW+;-$1g)fh(i(t zL%i~4TWF&PNroIH22s6>q$Lt~Fo}E^O7I%7IWe2Ca+^k!PB^ zE@_$uqZAXXa6TjsqlDH)yhO5mg0(r9=ig?vS|JgvF=&KU)6&*8N0SK`s|%i=opF48 z%zQdyS*|JDk~lR42aUFbV#4`i&E@5Sv!~}o=c((Gi;D}+&T6V?sU+j*=mB$;Q@0T$ zklmY5D}}W)7S)=6`n%ucoo7p$s%Eh+smqGB2u^G2*3*_Hty|HANaMOlI1`D=ck$j0 zk$|;=QW58ttek-m$+bnIN@%80kf=}|8dIV%7+qkql%rl&Yobp%-ZK<+OqTp8ib%wY zCe$ri(0HrSJ|{ZGRLya;tlJW0!DTJpX34Vd0tV1ZBa$GU+8D@#MwyYdTsl!)rEpO_ zOs^fr&~0kf%~O$KUiI6Ikll7^;4a+#MJ(>unuswc^FI&#!}0EG1g#Z69m3tXW7qRX zyP=(acDePwhwodjFYP<7-*?k$IbNh5+&dvNma48%%HW)1wOSEQ3QSf|mWd;4om^L9 zYyuwC8e+teO4chnfId-Fb<5?`GZu>lm**ew^{;eZUIO7~yYHP6n^Skz@wE$SM4pzW>H-r;-#2yh+Pe+Yq9?FP=cf&Wn`l@`)W*Ql6? z(HJ3gfPNw=7^P4o(OP24o)ICc1b;;IY#9}IICP5BX3O{)W5jArk>wN}F)N>9?5!k& zT9BC3tewIiBAxy{va8&s-6kIYaW#edDQ+X^80DvWSJ3wU{o;1t#zfX{_vekz-|eqo z4-OIbenZD~EVIoDy8V)Sv3Pvlala2A+~f4*i1(je5M!imTdwLg<-HkYS<<*RS*evG z4#paTkm_TF%%Wq&m<%NM_v>(-l46b zK6}oiM~}FAe!s)`^&_%jHm6Q;cR+S6sQ2h|#~Brfg|LibiXFqz#eQ#}u*V18tXS5=r8ZlI?hV z9ZIy0XxqoU#{~LdQnE$XYLp~bl@L-L?B0&R_4w>TXI2R;F#1%eAchTKVQvlcX~D#1 z)T;-*3#>`%zmJS@qO$rJXR@==LKgMDrHo4hOfG9xVT&pV?

  • $a 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

    }Ck{P6^yJXf!|aEp4BI!n-S8d0 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

    ').addClass('reveal-overlay' + additionalOverlayClasses).appendTo(this.options.appendTo);\n }\n /**\n * Updates position of modal\n * TODO: Figure out if we actually need to cache these values or if it doesn't matter\n * @private\n */\n\n }, {\n key: \"_updatePosition\",\n value: function _updatePosition() {\n var width = this.$element.outerWidth();\n var outerWidth = jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).width();\n var height = this.$element.outerHeight();\n var outerHeight = jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height();\n var left,\n top = null;\n\n if (this.options.hOffset === 'auto') {\n left = parseInt((outerWidth - width) / 2, 10);\n } else {\n left = parseInt(this.options.hOffset, 10);\n }\n\n if (this.options.vOffset === 'auto') {\n if (height > outerHeight) {\n top = parseInt(Math.min(100, outerHeight / 10), 10);\n } else {\n top = parseInt((outerHeight - height) / 4, 10);\n }\n } else if (this.options.vOffset !== null) {\n top = parseInt(this.options.vOffset, 10);\n }\n\n if (top !== null) {\n this.$element.css({\n top: top + 'px'\n });\n } // only worry about left if we don't have an overlay or we have a horizontal offset,\n // otherwise we're perfectly in the middle\n\n\n if (!this.$overlay || this.options.hOffset !== 'auto') {\n this.$element.css({\n left: left + 'px'\n });\n this.$element.css({\n margin: '0px'\n });\n }\n }\n /**\n * Adds event handlers for the modal.\n * @private\n */\n\n }, {\n key: \"_events\",\n value: function _events() {\n var _this3 = this;\n\n var _this = this;\n\n this.$element.on({\n 'open.zf.trigger': this.open.bind(this),\n 'close.zf.trigger': function closeZfTrigger(event, $element) {\n if (event.target === _this.$element[0] || jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parents('[data-closable]')[0] === $element) {\n // only close reveal when it's explicitly called\n return _this3.close.apply(_this3);\n }\n },\n 'toggle.zf.trigger': this.toggle.bind(this),\n 'resizeme.zf.trigger': function resizemeZfTrigger() {\n _this._updatePosition();\n }\n });\n\n if (this.options.closeOnClick && this.options.overlay) {\n this.$overlay.off('.zf.reveal').on('click.zf.reveal', function (e) {\n if (e.target === _this.$element[0] || jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(_this.$element[0], e.target) || !jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(document, e.target)) {\n return;\n }\n\n _this.close();\n });\n }\n\n if (this.options.deepLink) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(\"hashchange.zf.reveal:\".concat(this.id), this._handleState.bind(this));\n }\n }\n /**\n * Handles modal methods on back/forward button clicks or any other event that triggers hashchange.\n * @private\n */\n\n }, {\n key: \"_handleState\",\n value: function _handleState(e) {\n if (window.location.hash === '#' + this.id && !this.isActive) {\n this.open();\n } else {\n this.close();\n }\n }\n /**\n * Disables the scroll when Reveal is shown to prevent the background from shifting\n * @param {number} scrollTop - Scroll to visually apply, window current scroll by default\n */\n\n }, {\n key: \"_disableScroll\",\n value: function _disableScroll(scrollTop) {\n scrollTop = scrollTop || jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).scrollTop();\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).height() > jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height()) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\", -scrollTop);\n }\n }\n /**\n * Reenables the scroll when Reveal closes\n * @param {number} scrollTop - Scroll to restore, html \"top\" property by default (as set by `_disableScroll`)\n */\n\n }, {\n key: \"_enableScroll\",\n value: function _enableScroll(scrollTop) {\n scrollTop = scrollTop || parseInt(jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\"));\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).height() > jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height()) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\", \"\");\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).scrollTop(-scrollTop);\n }\n }\n /**\n * Opens the modal controlled by `this.$anchor`, and closes all others by default.\n * @function\n * @fires Reveal#closeme\n * @fires Reveal#open\n */\n\n }, {\n key: \"open\",\n value: function open() {\n var _this4 = this;\n\n // either update or replace browser history\n var hash = \"#\".concat(this.id);\n\n if (this.options.deepLink && window.location.hash !== hash) {\n if (window.history.pushState) {\n if (this.options.updateHistory) {\n window.history.pushState({}, '', hash);\n } else {\n window.history.replaceState({}, '', hash);\n }\n } else {\n window.location.hash = hash;\n }\n } // Remember anchor that opened it to set focus back later, have general anchors as fallback\n\n\n this.$activeAnchor = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.activeElement).is(this.$anchor) ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.activeElement) : this.$anchor;\n this.isActive = true; // Make elements invisible, but remove display: none so we can get size and positioning\n\n this.$element.css({\n 'visibility': 'hidden'\n }).show().scrollTop(0);\n\n if (this.options.overlay) {\n this.$overlay.css({\n 'visibility': 'hidden'\n }).show();\n }\n\n this._updatePosition();\n\n this.$element.hide().css({\n 'visibility': ''\n });\n\n if (this.$overlay) {\n this.$overlay.css({\n 'visibility': ''\n }).hide();\n\n if (this.$element.hasClass('fast')) {\n this.$overlay.addClass('fast');\n } else if (this.$element.hasClass('slow')) {\n this.$overlay.addClass('slow');\n }\n }\n\n if (!this.options.multipleOpened) {\n /**\n * Fires immediately before the modal opens.\n * Closes any other modals that are currently open\n * @event Reveal#closeme\n */\n this.$element.trigger('closeme.zf.reveal', this.id);\n }\n\n this._disableScroll();\n\n var _this = this; // Motion UI method of reveal\n\n\n if (this.options.animationIn) {\n var afterAnimation = function afterAnimation() {\n _this.$element.attr({\n 'aria-hidden': false,\n 'tabindex': -1\n }).focus();\n\n _this._addGlobalClasses();\n\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].trapFocus(_this.$element);\n };\n\n if (this.options.overlay) {\n _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateIn(this.$overlay, 'fade-in');\n }\n\n _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateIn(this.$element, this.options.animationIn, function () {\n if (_this4.$element) {\n // protect against object having been removed\n _this4.focusableElements = _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].findFocusable(_this4.$element);\n afterAnimation();\n }\n });\n } // jQuery method of reveal\n else {\n if (this.options.overlay) {\n this.$overlay.show(0);\n }\n\n this.$element.show(this.options.showDelay);\n } // handle accessibility\n\n\n this.$element.attr({\n 'aria-hidden': false,\n 'tabindex': -1\n }).focus();\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].trapFocus(this.$element);\n\n this._addGlobalClasses();\n\n this._addGlobalListeners();\n /**\n * Fires when the modal has successfully opened.\n * @event Reveal#open\n */\n\n\n this.$element.trigger('open.zf.reveal');\n }\n /**\n * Adds classes and listeners on document required by open modals.\n *\n * The following classes are added and updated:\n * - `.is-reveal-open` - Prevents the scroll on document\n * - `.zf-has-scroll` - Displays a disabled scrollbar on document if required like if the\n * scroll was not disabled. This prevent a \"shift\" of the page content due\n * the scrollbar disappearing when the modal opens.\n *\n * @private\n */\n\n }, {\n key: \"_addGlobalClasses\",\n value: function _addGlobalClasses() {\n var updateScrollbarClass = function updateScrollbarClass() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').toggleClass('zf-has-scroll', !!(jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).height() > jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height()));\n };\n\n this.$element.on('resizeme.zf.trigger.revealScrollbarListener', function () {\n return updateScrollbarClass();\n });\n updateScrollbarClass();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').addClass('is-reveal-open');\n }\n /**\n * Removes classes and listeners on document that were required by open modals.\n * @private\n */\n\n }, {\n key: \"_removeGlobalClasses\",\n value: function _removeGlobalClasses() {\n this.$element.off('resizeme.zf.trigger.revealScrollbarListener');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').removeClass('is-reveal-open');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').removeClass('zf-has-scroll');\n }\n /**\n * Adds extra event handlers for the body and window if necessary.\n * @private\n */\n\n }, {\n key: \"_addGlobalListeners\",\n value: function _addGlobalListeners() {\n var _this = this;\n\n if (!this.$element) {\n return;\n } // If we're in the middle of cleanup, don't freak out\n\n\n this.focusableElements = _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].findFocusable(this.$element);\n\n if (!this.options.overlay && this.options.closeOnClick && !this.options.fullScreen) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('click.zf.reveal', function (e) {\n if (e.target === _this.$element[0] || jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(_this.$element[0], e.target) || !jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(document, e.target)) {\n return;\n }\n\n _this.close();\n });\n }\n\n if (this.options.closeOnEsc) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('keydown.zf.reveal', function (e) {\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].handleKey(e, 'Reveal', {\n close: function close() {\n if (_this.options.closeOnEsc) {\n _this.close();\n }\n }\n });\n });\n }\n }\n /**\n * Closes the modal.\n * @function\n * @fires Reveal#closed\n */\n\n }, {\n key: \"close\",\n value: function close() {\n if (!this.isActive || !this.$element.is(':visible')) {\n return false;\n }\n\n var _this = this; // Motion UI method of hiding\n\n\n if (this.options.animationOut) {\n if (this.options.overlay) {\n _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateOut(this.$overlay, 'fade-out');\n }\n\n _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateOut(this.$element, this.options.animationOut, finishUp);\n } // jQuery method of hiding\n else {\n this.$element.hide(this.options.hideDelay);\n\n if (this.options.overlay) {\n this.$overlay.hide(0, finishUp);\n } else {\n finishUp();\n }\n } // Conditionals to remove extra event listeners added on open\n\n\n if (this.options.closeOnEsc) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('keydown.zf.reveal');\n }\n\n if (!this.options.overlay && this.options.closeOnClick) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').off('click.zf.reveal');\n }\n\n this.$element.off('keydown.zf.reveal');\n\n function finishUp() {\n // Get the current top before the modal is closed and restore the scroll after.\n // TODO: use component properties instead of HTML properties\n // See https://github.com/zurb/foundation-sites/pull/10786\n var scrollTop = parseInt(jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\"));\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reveal:visible').length === 0) {\n _this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n\n }\n\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].releaseFocus(_this.$element);\n\n _this.$element.attr('aria-hidden', true);\n\n _this._enableScroll(scrollTop);\n /**\n * Fires when the modal is done closing.\n * @event Reveal#closed\n */\n\n\n _this.$element.trigger('closed.zf.reveal');\n }\n /**\n * Resets the modal content\n * This prevents a running video to keep going in the background\n */\n\n\n if (this.options.resetOnClose) {\n this.$element.html(this.$element.html());\n }\n\n this.isActive = false; // If deepLink and we did not switched to an other modal...\n\n if (_this.options.deepLink && window.location.hash === \"#\".concat(this.id)) {\n // Remove the history hash\n if (window.history.replaceState) {\n var urlWithoutHash = window.location.pathname + window.location.search;\n\n if (this.options.updateHistory) {\n window.history.pushState({}, '', urlWithoutHash); // remove the hash\n } else {\n window.history.replaceState('', document.title, urlWithoutHash);\n }\n } else {\n window.location.hash = '';\n }\n }\n\n this.$activeAnchor.focus();\n }\n /**\n * Toggles the open/closed state of a modal.\n * @function\n */\n\n }, {\n key: \"toggle\",\n value: function toggle() {\n if (this.isActive) {\n this.close();\n } else {\n this.open();\n }\n }\n }, {\n key: \"_destroy\",\n\n /**\n * Destroys an instance of a modal.\n * @function\n */\n value: function _destroy() {\n if (this.options.overlay) {\n this.$element.appendTo(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.options.appendTo)); // move $element outside of $overlay to prevent error unregisterPlugin()\n\n this.$overlay.hide().off().remove();\n }\n\n this.$element.hide().off();\n this.$anchor.off('.zf');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(\".zf.reveal:\".concat(this.id));\n if (this.onLoadListener) jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(this.onLoadListener);\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reveal:visible').length === 0) {\n this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n\n }\n }\n }]);\n\n return Reveal;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_5__[\"Plugin\"]);\n\nReveal.defaults = {\n /**\n * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n * @option\n * @type {string}\n * @default ''\n */\n animationIn: '',\n\n /**\n * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n * @option\n * @type {string}\n * @default ''\n */\n animationOut: '',\n\n /**\n * Time, in ms, to delay the opening of a modal after a click if no animation used.\n * @option\n * @type {number}\n * @default 0\n */\n showDelay: 0,\n\n /**\n * Time, in ms, to delay the closing of a modal after a click if no animation used.\n * @option\n * @type {number}\n * @default 0\n */\n hideDelay: 0,\n\n /**\n * Allows a click on the body/overlay to close the modal.\n * @option\n * @type {boolean}\n * @default true\n */\n closeOnClick: true,\n\n /**\n * Allows the modal to close if the user presses the `ESCAPE` key.\n * @option\n * @type {boolean}\n * @default true\n */\n closeOnEsc: true,\n\n /**\n * If true, allows multiple modals to be displayed at once.\n * @option\n * @type {boolean}\n * @default false\n */\n multipleOpened: false,\n\n /**\n * Distance, in pixels, the modal should push down from the top of the screen.\n * @option\n * @type {number|string}\n * @default auto\n */\n vOffset: 'auto',\n\n /**\n * Distance, in pixels, the modal should push in from the side of the screen.\n * @option\n * @type {number|string}\n * @default auto\n */\n hOffset: 'auto',\n\n /**\n * Allows the modal to be fullscreen, completely blocking out the rest of the view. JS checks for this as well.\n * @option\n * @type {boolean}\n * @default false\n */\n fullScreen: false,\n\n /**\n * Allows the modal to generate an overlay div, which will cover the view when modal opens.\n * @option\n * @type {boolean}\n * @default true\n */\n overlay: true,\n\n /**\n * Allows the modal to remove and reinject markup on close. Should be true if using video elements w/o using provider's api, otherwise, videos will continue to play in the background.\n * @option\n * @type {boolean}\n * @default false\n */\n resetOnClose: false,\n\n /**\n * Link the location hash to the modal.\n * Set the location hash when the modal is opened/closed, and open/close the modal when the location changes.\n * @option\n * @type {boolean}\n * @default false\n */\n deepLink: false,\n\n /**\n * If `deepLink` is enabled, update the browser history with the open modal\n * @option\n * @default false\n */\n updateHistory: false,\n\n /**\n * Allows the modal to append to custom div.\n * @option\n * @type {string}\n * @default \"body\"\n */\n appendTo: \"body\",\n\n /**\n * Allows adding additional class names to the reveal overlay.\n * @option\n * @type {string}\n * @default ''\n */\n additionalOverlayClasses: ''\n};\n\n\n//# sourceURL=webpack:///./js/foundation.reveal.js?"); + +/***/ }), + +/***/ "./js/foundation.util.keyboard.js": +/*!****************************************!*\ + !*** ./js/foundation.util.keyboard.js ***! + \****************************************/ +/*! exports provided: Keyboard */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Keyboard\", function() { return Keyboard; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/*******************************************\n * *\n * This util was created by Marius Olbertz *\n * Please thank Marius on GitHub /owlbertz *\n * or the web http://www.mariusolbertz.de/ *\n * *\n ******************************************/\n\n\n\n\nvar keyCodes = {\n 9: 'TAB',\n 13: 'ENTER',\n 27: 'ESCAPE',\n 32: 'SPACE',\n 35: 'END',\n 36: 'HOME',\n 37: 'ARROW_LEFT',\n 38: 'ARROW_UP',\n 39: 'ARROW_RIGHT',\n 40: 'ARROW_DOWN'\n};\nvar commands = {}; // Functions pulled out to be referenceable from internals\n\nfunction findFocusable($element) {\n if (!$element) {\n return false;\n }\n\n return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function () {\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).is(':visible') || jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('tabindex') < 0) {\n return false;\n } //only have visible elements and those that have a tabindex greater or equal 0\n\n\n return true;\n });\n}\n\nfunction parseKey(event) {\n var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase(); // Remove un-printable characters, e.g. for `fromCharCode` calls for CTRL only events\n\n key = key.replace(/\\W+/, '');\n if (event.shiftKey) key = \"SHIFT_\".concat(key);\n if (event.ctrlKey) key = \"CTRL_\".concat(key);\n if (event.altKey) key = \"ALT_\".concat(key); // Remove trailing underscore, in case only modifiers were used (e.g. only `CTRL_ALT`)\n\n key = key.replace(/_$/, '');\n return key;\n}\n\nvar Keyboard = {\n keys: getKeyCodes(keyCodes),\n\n /**\n * Parses the (keyboard) event and returns a String that represents its key\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n * @param {Event} event - the event generated by the event handler\n * @return String key - String that represents the key pressed\n */\n parseKey: parseKey,\n\n /**\n * Handles the given (keyboard) event\n * @param {Event} event - the event generated by the event handler\n * @param {String} component - Foundation component's name, e.g. Slider or Reveal\n * @param {Objects} functions - collection of functions that are to be executed\n */\n handleKey: function handleKey(event, component, functions) {\n var commandList = commands[component],\n keyCode = this.parseKey(event),\n cmds,\n command,\n fn;\n if (!commandList) return console.warn('Component not defined!');\n\n if (typeof commandList.ltr === 'undefined') {\n // this component does not differentiate between ltr and rtl\n cmds = commandList; // use plain list\n } else {\n // merge ltr and rtl: if document is rtl, rtl overwrites ltr and vice versa\n if (Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"rtl\"])()) cmds = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, commandList.ltr, commandList.rtl);else cmds = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, commandList.rtl, commandList.ltr);\n }\n\n command = cmds[keyCode];\n fn = functions[command];\n\n if (fn && typeof fn === 'function') {\n // execute function if exists\n var returnValue = fn.apply();\n\n if (functions.handled || typeof functions.handled === 'function') {\n // execute function when event was handled\n functions.handled(returnValue);\n }\n } else {\n if (functions.unhandled || typeof functions.unhandled === 'function') {\n // execute function when event was not handled\n functions.unhandled();\n }\n }\n },\n\n /**\n * Finds all focusable elements within the given `$element`\n * @param {jQuery} $element - jQuery object to search within\n * @return {jQuery} $focusable - all focusable elements within `$element`\n */\n findFocusable: findFocusable,\n\n /**\n * Returns the component name name\n * @param {Object} component - Foundation component, e.g. Slider or Reveal\n * @return String componentName\n */\n register: function register(componentName, cmds) {\n commands[componentName] = cmds;\n },\n // TODO9438: These references to Keyboard need to not require global. Will 'this' work in this context?\n //\n\n /**\n * Traps the focus in the given element.\n * @param {jQuery} $element jQuery object to trap the foucs into.\n */\n trapFocus: function trapFocus($element) {\n var $focusable = findFocusable($element),\n $firstFocusable = $focusable.eq(0),\n $lastFocusable = $focusable.eq(-1);\n $element.on('keydown.zf.trapfocus', function (event) {\n if (event.target === $lastFocusable[0] && parseKey(event) === 'TAB') {\n event.preventDefault();\n $firstFocusable.focus();\n } else if (event.target === $firstFocusable[0] && parseKey(event) === 'SHIFT_TAB') {\n event.preventDefault();\n $lastFocusable.focus();\n }\n });\n },\n\n /**\n * Releases the trapped focus from the given element.\n * @param {jQuery} $element jQuery object to release the focus for.\n */\n releaseFocus: function releaseFocus($element) {\n $element.off('keydown.zf.trapfocus');\n }\n};\n/*\n * Constants for easier comparing.\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n */\n\nfunction getKeyCodes(kcs) {\n var k = {};\n\n for (var kc in kcs) {\n k[kcs[kc]] = kcs[kc];\n }\n\n return k;\n}\n\n\n\n//# sourceURL=webpack:///./js/foundation.util.keyboard.js?"); + +/***/ }), + +/***/ "./js/foundation.util.mediaQuery.js": +/*!******************************************!*\ + !*** ./js/foundation.util.mediaQuery.js ***! + \******************************************/ +/*! exports provided: MediaQuery */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MediaQuery\", function() { return MediaQuery; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n // Default set of media queries\n\nvar defaultQueries = {\n 'default': 'only screen',\n landscape: 'only screen and (orientation: landscape)',\n portrait: 'only screen and (orientation: portrait)',\n retina: 'only screen and (-webkit-min-device-pixel-ratio: 2),' + 'only screen and (min--moz-device-pixel-ratio: 2),' + 'only screen and (-o-min-device-pixel-ratio: 2/1),' + 'only screen and (min-device-pixel-ratio: 2),' + 'only screen and (min-resolution: 192dpi),' + 'only screen and (min-resolution: 2dppx)'\n}; // matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright(c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n\n/* eslint-disable */\n\nwindow.matchMedia || (window.matchMedia = function () {\n \"use strict\"; // For browsers that support matchMedium api such as IE 9 and webkit\n\n var styleMedia = window.styleMedia || window.media; // For those that don't support matchMedium\n\n if (!styleMedia) {\n var style = document.createElement('style'),\n script = document.getElementsByTagName('script')[0],\n info = null;\n style.type = 'text/css';\n style.id = 'matchmediajs-test';\n\n if (!script) {\n document.head.appendChild(style);\n } else {\n script.parentNode.insertBefore(style, script);\n } // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n\n\n info = 'getComputedStyle' in window && window.getComputedStyle(style, null) || style.currentStyle;\n styleMedia = {\n matchMedium: function matchMedium(media) {\n var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }'; // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n\n if (style.styleSheet) {\n style.styleSheet.cssText = text;\n } else {\n style.textContent = text;\n } // Test if media query is true or false\n\n\n return info.width === '1px';\n }\n };\n }\n\n return function (media) {\n return {\n matches: styleMedia.matchMedium(media || 'all'),\n media: media || 'all'\n };\n };\n}());\n/* eslint-enable */\n\nvar MediaQuery = {\n queries: [],\n current: '',\n\n /**\n * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n * @function\n * @private\n */\n _init: function _init() {\n var self = this;\n var $meta = jquery__WEBPACK_IMPORTED_MODULE_0___default()('meta.foundation-mq');\n\n if (!$meta.length) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('').appendTo(document.head);\n }\n\n var extractedStyles = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.foundation-mq').css('font-family');\n var namedQueries;\n namedQueries = parseStyleToObject(extractedStyles);\n\n for (var key in namedQueries) {\n if (namedQueries.hasOwnProperty(key)) {\n self.queries.push({\n name: key,\n value: \"only screen and (min-width: \".concat(namedQueries[key], \")\")\n });\n }\n }\n\n this.current = this._getCurrentSize();\n\n this._watcher();\n },\n\n /**\n * Checks if the screen is at least as wide as a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n */\n atLeast: function atLeast(size) {\n var query = this.get(size);\n\n if (query) {\n return window.matchMedia(query).matches;\n }\n\n return false;\n },\n\n /**\n * Checks if the screen matches to a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n */\n is: function is(size) {\n size = size.trim().split(' ');\n\n if (size.length > 1 && size[1] === 'only') {\n if (size[0] === this._getCurrentSize()) return true;\n } else {\n return this.atLeast(size[0]);\n }\n\n return false;\n },\n\n /**\n * Gets the media query of a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to get.\n * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n */\n get: function get(size) {\n for (var i in this.queries) {\n if (this.queries.hasOwnProperty(i)) {\n var query = this.queries[i];\n if (size === query.name) return query.value;\n }\n }\n\n return null;\n },\n\n /**\n * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n * @function\n * @private\n * @returns {String} Name of the current breakpoint.\n */\n _getCurrentSize: function _getCurrentSize() {\n var matched;\n\n for (var i = 0; i < this.queries.length; i++) {\n var query = this.queries[i];\n\n if (window.matchMedia(query.value).matches) {\n matched = query;\n }\n }\n\n if (_typeof(matched) === 'object') {\n return matched.name;\n } else {\n return matched;\n }\n },\n\n /**\n * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n * @function\n * @private\n */\n _watcher: function _watcher() {\n var _this = this;\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('resize.zf.mediaquery').on('resize.zf.mediaquery', function () {\n var newSize = _this._getCurrentSize(),\n currentSize = _this.current;\n\n if (newSize !== currentSize) {\n // Change the current media query\n _this.current = newSize; // Broadcast the media query change on the window\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n }\n });\n }\n}; // Thank you: https://github.com/sindresorhus/query-string\n\nfunction parseStyleToObject(str) {\n var styleObject = {};\n\n if (typeof str !== 'string') {\n return styleObject;\n }\n\n str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n if (!str) {\n return styleObject;\n }\n\n styleObject = str.split('&').reduce(function (ret, param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = parts[0];\n var val = parts[1];\n key = decodeURIComponent(key); // missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\n val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n if (!ret.hasOwnProperty(key)) {\n ret[key] = val;\n } else if (Array.isArray(ret[key])) {\n ret[key].push(val);\n } else {\n ret[key] = [ret[key], val];\n }\n\n return ret;\n }, {});\n return styleObject;\n}\n\n\n\n//# sourceURL=webpack:///./js/foundation.util.mediaQuery.js?"); + +/***/ }), + +/***/ "./js/foundation.util.motion.js": +/*!**************************************!*\ + !*** ./js/foundation.util.motion.js ***! + \**************************************/ +/*! exports provided: Move, Motion */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Move\", function() { return Move; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Motion\", function() { return Motion; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n\n\n\n\n/**\n * Motion module.\n * @module foundation.motion\n */\n\nvar initClasses = ['mui-enter', 'mui-leave'];\nvar activeClasses = ['mui-enter-active', 'mui-leave-active'];\nvar Motion = {\n animateIn: function animateIn(element, animation, cb) {\n animate(true, element, animation, cb);\n },\n animateOut: function animateOut(element, animation, cb) {\n animate(false, element, animation, cb);\n }\n};\n\nfunction Move(duration, elem, fn) {\n var anim,\n prog,\n start = null; // console.log('called');\n\n if (duration === 0) {\n fn.apply(elem);\n elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n return;\n }\n\n function move(ts) {\n if (!start) start = ts; // console.log(start, ts);\n\n prog = ts - start;\n fn.apply(elem);\n\n if (prog < duration) {\n anim = window.requestAnimationFrame(move, elem);\n } else {\n window.cancelAnimationFrame(anim);\n elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n }\n }\n\n anim = window.requestAnimationFrame(move);\n}\n/**\n * Animates an element in or out using a CSS transition class.\n * @function\n * @private\n * @param {Boolean} isIn - Defines if the animation is in or out.\n * @param {Object} element - jQuery or HTML object to animate.\n * @param {String} animation - CSS class to use.\n * @param {Function} cb - Callback to run when animation is finished.\n */\n\n\nfunction animate(isIn, element, animation, cb) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).eq(0);\n if (!element.length) return;\n var initClass = isIn ? initClasses[0] : initClasses[1];\n var activeClass = isIn ? activeClasses[0] : activeClasses[1]; // Set up the animation\n\n reset();\n element.addClass(animation).css('transition', 'none');\n requestAnimationFrame(function () {\n element.addClass(initClass);\n if (isIn) element.show();\n }); // Start the animation\n\n requestAnimationFrame(function () {\n element[0].offsetWidth;\n element.css('transition', '').addClass(activeClass);\n }); // Clean up the animation when it finishes\n\n element.one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"transitionend\"])(element), finish); // Hides the element (for out animations), resets the element, and runs a callback\n\n function finish() {\n if (!isIn) element.hide();\n reset();\n if (cb) cb.apply(element);\n } // Resets transitions and removes motion-specific classes\n\n\n function reset() {\n element[0].style.transitionDuration = 0;\n element.removeClass(\"\".concat(initClass, \" \").concat(activeClass, \" \").concat(animation));\n }\n}\n\n\n\n//# sourceURL=webpack:///./js/foundation.util.motion.js?"); + +/***/ }), + +/***/ "./js/foundation.util.triggers.js": +/*!****************************************!*\ + !*** ./js/foundation.util.triggers.js ***! + \****************************************/ +/*! exports provided: Triggers */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Triggers\", function() { return Triggers; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.motion */ \"./js/foundation.util.motion.js\");\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\n\nvar MutationObserver = function () {\n var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n\n for (var i = 0; i < prefixes.length; i++) {\n if (\"\".concat(prefixes[i], \"MutationObserver\") in window) {\n return window[\"\".concat(prefixes[i], \"MutationObserver\")];\n }\n }\n\n return false;\n}();\n\nvar triggers = function triggers(el, type) {\n el.data(type).split(' ').forEach(function (id) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id))[type === 'close' ? 'trigger' : 'triggerHandler'](\"\".concat(type, \".zf.trigger\"), [el]);\n });\n};\n\nvar Triggers = {\n Listeners: {\n Basic: {},\n Global: {}\n },\n Initializers: {}\n};\nTriggers.Listeners.Basic = {\n openListener: function openListener() {\n triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'open');\n },\n closeListener: function closeListener() {\n var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('close');\n\n if (id) {\n triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'close');\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('close.zf.trigger');\n }\n },\n toggleListener: function toggleListener() {\n var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle');\n\n if (id) {\n triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'toggle');\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('toggle.zf.trigger');\n }\n },\n closeableListener: function closeableListener(e) {\n e.stopPropagation();\n var animation = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('closable');\n\n if (animation !== '') {\n _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__[\"Motion\"].animateOut(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), animation, function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('closed.zf');\n });\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).fadeOut().trigger('closed.zf');\n }\n },\n toggleFocusListener: function toggleFocusListener() {\n var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle-focus');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id)).triggerHandler('toggle.zf.trigger', [jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)]);\n }\n}; // Elements with [data-open] will reveal a plugin that supports it when clicked.\n\nTriggers.Initializers.addOpenListener = function ($elem) {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}; // Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\n\n\nTriggers.Initializers.addCloseListener = function ($elem) {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}; // Elements with [data-toggle] will toggle a plugin that supports it when clicked.\n\n\nTriggers.Initializers.addToggleListener = function ($elem) {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}; // Elements with [data-closable] will respond to close.zf.trigger events.\n\n\nTriggers.Initializers.addCloseableListener = function ($elem) {\n $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}; // Elements with [data-toggle-focus] will respond to coming in and out of focus\n\n\nTriggers.Initializers.addToggleFocusListener = function ($elem) {\n $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}; // More Global/complex listeners and triggers\n\n\nTriggers.Listeners.Global = {\n resizeListener: function resizeListener($nodes) {\n if (!MutationObserver) {\n //fallback for IE 9\n $nodes.each(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('resizeme.zf.trigger');\n });\n } //trigger all listening elements and signal a resize event\n\n\n $nodes.attr('data-events', \"resize\");\n },\n scrollListener: function scrollListener($nodes) {\n if (!MutationObserver) {\n //fallback for IE 9\n $nodes.each(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('scrollme.zf.trigger');\n });\n } //trigger all listening elements and signal a scroll event\n\n\n $nodes.attr('data-events', \"scroll\");\n },\n closeMeListener: function closeMeListener(e, pluginId) {\n var plugin = e.namespace.split('.')[0];\n var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-\".concat(plugin, \"]\")).not(\"[data-yeti-box=\\\"\".concat(pluginId, \"\\\"]\"));\n plugins.each(function () {\n var _this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n _this.triggerHandler('close.zf.trigger', [_this]);\n });\n } // Global, parses whole document.\n\n};\n\nTriggers.Initializers.addClosemeListener = function (pluginName) {\n var yetiBoxes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-yeti-box]'),\n plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n if (pluginName) {\n if (typeof pluginName === 'string') {\n plugNames.push(pluginName);\n } else if (_typeof(pluginName) === 'object' && typeof pluginName[0] === 'string') {\n plugNames.concat(pluginName);\n } else {\n console.error('Plugin names must be strings');\n }\n }\n\n if (yetiBoxes.length) {\n var listeners = plugNames.map(function (name) {\n return \"closeme.zf.\".concat(name);\n }).join(' ');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n }\n};\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n var timer,\n args = Array.prototype.slice.call(arguments, 3);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(trigger).on(trigger, function (e) {\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(function () {\n listener.apply(null, args);\n }, debounce || 10); //default time to emit scroll event\n });\n}\n\nTriggers.Initializers.addResizeListener = function (debounce) {\n var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-resize]');\n\n if ($nodes.length) {\n debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n }\n};\n\nTriggers.Initializers.addScrollListener = function (debounce) {\n var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-scroll]');\n\n if ($nodes.length) {\n debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n }\n};\n\nTriggers.Initializers.addMutationEventsListener = function ($elem) {\n if (!MutationObserver) {\n return false;\n }\n\n var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]'); //element callback\n\n var listeningElementsMutation = function listeningElementsMutation(mutationRecordsList) {\n var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(mutationRecordsList[0].target); //trigger the event handler for the element depending on type\n\n switch (mutationRecordsList[0].type) {\n case \"attributes\":\n if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n }\n\n if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('resizeme.zf.trigger', [$target]);\n }\n\n if (mutationRecordsList[0].attributeName === \"style\") {\n $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n }\n\n break;\n\n case \"childList\":\n $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n break;\n\n default:\n return false;\n //nothing\n }\n };\n\n if ($nodes.length) {\n //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n for (var i = 0; i <= $nodes.length - 1; i++) {\n var elementObserver = new MutationObserver(listeningElementsMutation);\n elementObserver.observe($nodes[i], {\n attributes: true,\n childList: true,\n characterData: false,\n subtree: true,\n attributeFilter: [\"data-events\", \"style\"]\n });\n }\n }\n};\n\nTriggers.Initializers.addSimpleListeners = function () {\n var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n Triggers.Initializers.addOpenListener($document);\n Triggers.Initializers.addCloseListener($document);\n Triggers.Initializers.addToggleListener($document);\n Triggers.Initializers.addCloseableListener($document);\n Triggers.Initializers.addToggleFocusListener($document);\n};\n\nTriggers.Initializers.addGlobalListeners = function () {\n var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n Triggers.Initializers.addMutationEventsListener($document);\n Triggers.Initializers.addResizeListener();\n Triggers.Initializers.addScrollListener();\n Triggers.Initializers.addClosemeListener();\n};\n\nTriggers.init = function ($, Foundation) {\n Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])($(window), function () {\n if ($.triggersInitialized !== true) {\n Triggers.Initializers.addSimpleListeners();\n Triggers.Initializers.addGlobalListeners();\n $.triggersInitialized = true;\n }\n });\n\n if (Foundation) {\n Foundation.Triggers = Triggers; // Legacy included to be backwards compatible for now.\n\n Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;\n }\n};\n\n\n\n//# sourceURL=webpack:///./js/foundation.util.triggers.js?"); + +/***/ }), + +/***/ "jquery": +/*!********************************************************************************************!*\ + !*** external {"root":["jQuery"],"amd":"jquery","commonjs":"jquery","commonjs2":"jquery"} ***! + \********************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n//# sourceURL=webpack:///external_%7B%22root%22:%5B%22jQuery%22%5D,%22amd%22:%22jquery%22,%22commonjs%22:%22jquery%22,%22commonjs2%22:%22jquery%22%7D?"); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/news/static/news/js/vendor/foundation.min.js b/news/static/news/js/vendor/foundation.min.js new file mode 100644 index 0000000..66e4317 --- /dev/null +++ b/news/static/news/js/vendor/foundation.min.js @@ -0,0 +1 @@ +!function(e,n){if("object"==typeof exports&&"object"==typeof module)module.exports=n(require("jquery"));else if("function"==typeof define&&define.amd)define(["jquery"],n);else{var t="object"==typeof exports?n(require("jquery")):n(e.jQuery);for(var i in t)("object"==typeof exports?exports:e)[i]=t[i]}}(window,function(__WEBPACK_EXTERNAL_MODULE_jquery__){return function(t){var i={};function o(e){if(i[e])return i[e].exports;var n=i[e]={i:e,l:!1,exports:{}};return t[e].call(n.exports,n,n.exports,o),n.l=!0,n.exports}return o.m=t,o.c=i,o.d=function(e,n,t){o.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:t})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(n,e){if(1&e&&(n=o(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var t=Object.create(null);if(o.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var i in n)o.d(t,i,function(e){return n[e]}.bind(null,i));return t},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="",o(o.s="../../../../../../../../../../private/tmp/foundation-6.5.1.essential/js/vendor/foundation.js")}({"../../../../../../../../../../private/tmp/foundation-6.5.1.essential/js/vendor/foundation.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "jquery");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Users_ncoden_Documents_Documents_Projects_Programmation_Web_2016_Foundation_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./js/foundation.core */ "./js/foundation.core.js");\n/* harmony import */ var _Users_ncoden_Documents_Documents_Projects_Programmation_Web_2016_Foundation_foundation_sites_js_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./js/foundation.util.mediaQuery */ "./js/foundation.util.mediaQuery.js");\n/* harmony import */ var _Users_ncoden_Documents_Documents_Projects_Programmation_Web_2016_Foundation_foundation_sites_js_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./js/foundation.util.triggers */ "./js/foundation.util.triggers.js");\n/* harmony import */ var _Users_ncoden_Documents_Documents_Projects_Programmation_Web_2016_Foundation_foundation_sites_js_foundation_reveal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./js/foundation.reveal */ "./js/foundation.reveal.js");\n\n\n_Users_ncoden_Documents_Documents_Projects_Programmation_Web_2016_Foundation_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__["Foundation"].addToJquery(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n_Users_ncoden_Documents_Documents_Projects_Programmation_Web_2016_Foundation_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__["Foundation"].MediaQuery = _Users_ncoden_Documents_Documents_Projects_Programmation_Web_2016_Foundation_foundation_sites_js_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__["MediaQuery"];\n\n_Users_ncoden_Documents_Documents_Projects_Programmation_Web_2016_Foundation_foundation_sites_js_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__["Triggers"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a, _Users_ncoden_Documents_Documents_Projects_Programmation_Web_2016_Foundation_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__["Foundation"]);\n\n_Users_ncoden_Documents_Documents_Projects_Programmation_Web_2016_Foundation_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__["Foundation"].plugin(_Users_ncoden_Documents_Documents_Projects_Programmation_Web_2016_Foundation_foundation_sites_js_foundation_reveal__WEBPACK_IMPORTED_MODULE_4__["Reveal"], \'Reveal\');\n\n//# sourceURL=webpack:////private/tmp/foundation-6.5.1.essential/js/vendor/foundation.js?')},"./js/foundation.core.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return Foundation; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.mediaQuery */ \"./js/foundation.util.mediaQuery.js\");\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\nvar FOUNDATION_VERSION = '6.5.1'; // Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\n\nvar Foundation = {\n version: FOUNDATION_VERSION,\n\n /**\n * Stores initialized plugins.\n */\n _plugins: {},\n\n /**\n * Stores generated unique ids for plugin instances\n */\n _uuids: [],\n\n /**\n * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n * @param {Object} plugin - The constructor of the plugin.\n */\n plugin: function plugin(_plugin, name) {\n // Object key to use when adding to global Foundation object\n // Examples: Foundation.Reveal, Foundation.OffCanvas\n var className = name || functionName(_plugin); // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n // Examples: data-reveal, data-off-canvas\n\n var attrName = hyphenate(className); // Add to the Foundation object and the plugins list (for reflowing)\n\n this._plugins[attrName] = this[className] = _plugin;\n },\n\n /**\n * @function\n * Populates the _uuids array with pointers to each individual plugin instance.\n * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n * Also fires the initialization event for each plugin, consolidating repetitive code.\n * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n * @param {String} name - the name of the plugin, passed as a camelCased string.\n * @fires Plugin#init\n */\n registerPlugin: function registerPlugin(plugin, name) {\n var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n plugin.uuid = Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"GetYoDigits\"])(6, pluginName);\n\n if (!plugin.$element.attr(\"data-\".concat(pluginName))) {\n plugin.$element.attr(\"data-\".concat(pluginName), plugin.uuid);\n }\n\n if (!plugin.$element.data('zfPlugin')) {\n plugin.$element.data('zfPlugin', plugin);\n }\n /**\n * Fires when the plugin has initialized.\n * @event Plugin#init\n */\n\n\n plugin.$element.trigger(\"init.zf.\".concat(pluginName));\n\n this._uuids.push(plugin.uuid);\n\n return;\n },\n\n /**\n * @function\n * Removes the plugins uuid from the _uuids array.\n * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n * Also fires the destroyed event for the plugin, consolidating repetitive code.\n * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n * @fires Plugin#destroyed\n */\n unregisterPlugin: function unregisterPlugin(plugin) {\n var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n\n plugin.$element.removeAttr(\"data-\".concat(pluginName)).removeData('zfPlugin')\n /**\n * Fires when the plugin has been destroyed.\n * @event Plugin#destroyed\n */\n .trigger(\"destroyed.zf.\".concat(pluginName));\n\n for (var prop in plugin) {\n plugin[prop] = null; //clean up script to prep for garbage collection.\n }\n\n return;\n },\n\n /**\n * @function\n * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n * @default If no argument is passed, reflow all currently active plugins.\n */\n reInit: function reInit(plugins) {\n var isJQ = plugins instanceof jquery__WEBPACK_IMPORTED_MODULE_0___default.a;\n\n try {\n if (isJQ) {\n plugins.each(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('zfPlugin')._init();\n });\n } else {\n var type = _typeof(plugins),\n _this = this,\n fns = {\n 'object': function object(plgs) {\n plgs.forEach(function (p) {\n p = hyphenate(p);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-' + p + ']').foundation('_init');\n });\n },\n 'string': function string() {\n plugins = hyphenate(plugins);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-' + plugins + ']').foundation('_init');\n },\n 'undefined': function undefined() {\n this['object'](Object.keys(_this._plugins));\n }\n };\n\n fns[type](plugins);\n }\n } catch (err) {\n console.error(err);\n } finally {\n return plugins;\n }\n },\n\n /**\n * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n */\n reflow: function reflow(elem, plugins) {\n // If plugins is undefined, just grab everything\n if (typeof plugins === 'undefined') {\n plugins = Object.keys(this._plugins);\n } // If plugins is a string, convert it to an array with one item\n else if (typeof plugins === 'string') {\n plugins = [plugins];\n }\n\n var _this = this; // Iterate through each plugin\n\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default.a.each(plugins, function (i, name) {\n // Get the current plugin\n var plugin = _this._plugins[name]; // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n\n var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(elem).find('[data-' + name + ']').addBack('[data-' + name + ']'); // For each plugin found, initialize it\n\n $elem.each(function () {\n var $el = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n opts = {}; // Don't double-dip on plugins\n\n if ($el.data('zfPlugin')) {\n console.warn(\"Tried to initialize \" + name + \" on an element that already has a Foundation plugin.\");\n return;\n }\n\n if ($el.attr('data-options')) {\n var thing = $el.attr('data-options').split(';').forEach(function (e, i) {\n var opt = e.split(':').map(function (el) {\n return el.trim();\n });\n if (opt[0]) opts[opt[0]] = parseValue(opt[1]);\n });\n }\n\n try {\n $el.data('zfPlugin', new plugin(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), opts));\n } catch (er) {\n console.error(er);\n } finally {\n return;\n }\n });\n });\n },\n getFnName: functionName,\n addToJquery: function addToJquery($) {\n // TODO: consider not making this a jQuery function\n // TODO: need way to reflow vs. re-initialize\n\n /**\n * The Foundation jQuery method.\n * @param {String|Array} method - An action to perform on the current jQuery object.\n */\n var foundation = function foundation(method) {\n var type = _typeof(method),\n $noJS = $('.no-js');\n\n if ($noJS.length) {\n $noJS.removeClass('no-js');\n }\n\n if (type === 'undefined') {\n //needs to initialize the Foundation object, or an individual plugin.\n _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__[\"MediaQuery\"]._init();\n\n Foundation.reflow(this);\n } else if (type === 'string') {\n //an individual method to invoke on a plugin or group of plugins\n var args = Array.prototype.slice.call(arguments, 1); //collect all the arguments, if necessary\n\n var plugClass = this.data('zfPlugin'); //determine the class of plugin\n\n if (typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined') {\n //make sure both the class and method exist\n if (this.length === 1) {\n //if there's only one, call it directly.\n plugClass[method].apply(plugClass, args);\n } else {\n this.each(function (i, el) {\n //otherwise loop through the jQuery collection and invoke the method on each\n plugClass[method].apply($(el).data('zfPlugin'), args);\n });\n }\n } else {\n //error for no class or no method\n throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n }\n } else {\n //error for invalid argument type\n throw new TypeError(\"We're sorry, \".concat(type, \" is not a valid parameter. You must use a string representing the method you wish to invoke.\"));\n }\n\n return this;\n };\n\n $.fn.foundation = foundation;\n return $;\n }\n};\nFoundation.util = {\n /**\n * Function for applying a debounce effect to a function call.\n * @function\n * @param {Function} func - Function to be called at end of timeout.\n * @param {Number} delay - Time in ms to delay the call of `func`.\n * @returns function\n */\n throttle: function throttle(func, delay) {\n var timer = null;\n return function () {\n var context = this,\n args = arguments;\n\n if (timer === null) {\n timer = setTimeout(function () {\n func.apply(context, args);\n timer = null;\n }, delay);\n }\n };\n }\n};\nwindow.Foundation = Foundation; // Polyfill for requestAnimationFrame\n\n(function () {\n if (!Date.now || !window.Date.now) window.Date.now = Date.now = function () {\n return new Date().getTime();\n };\n var vendors = ['webkit', 'moz'];\n\n for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n var vp = vendors[i];\n window.requestAnimationFrame = window[vp + 'RequestAnimationFrame'];\n window.cancelAnimationFrame = window[vp + 'CancelAnimationFrame'] || window[vp + 'CancelRequestAnimationFrame'];\n }\n\n if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent) || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n var lastTime = 0;\n\n window.requestAnimationFrame = function (callback) {\n var now = Date.now();\n var nextTime = Math.max(lastTime + 16, now);\n return setTimeout(function () {\n callback(lastTime = nextTime);\n }, nextTime - now);\n };\n\n window.cancelAnimationFrame = clearTimeout;\n }\n /**\n * Polyfill for performance.now, required by rAF\n */\n\n\n if (!window.performance || !window.performance.now) {\n window.performance = {\n start: Date.now(),\n now: function now() {\n return Date.now() - this.start;\n }\n };\n }\n})();\n\nif (!Function.prototype.bind) {\n Function.prototype.bind = function (oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function fNOP() {},\n fBound = function fBound() {\n return fToBind.apply(this instanceof fNOP ? this : oThis, aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // native functions don't have a prototype\n fNOP.prototype = this.prototype;\n }\n\n fBound.prototype = new fNOP();\n return fBound;\n };\n} // Polyfill to get the name of a function in IE9\n\n\nfunction functionName(fn) {\n if (typeof Function.prototype.name === 'undefined') {\n var funcNameRegex = /function\\s([^(]{1,})\\(/;\n var results = funcNameRegex.exec(fn.toString());\n return results && results.length > 1 ? results[1].trim() : \"\";\n } else if (typeof fn.prototype === 'undefined') {\n return fn.constructor.name;\n } else {\n return fn.prototype.constructor.name;\n }\n}\n\nfunction parseValue(str) {\n if ('true' === str) return true;else if ('false' === str) return false;else if (!isNaN(str * 1)) return parseFloat(str);\n return str;\n} // Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\n\n\nfunction hyphenate(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\n\n\n//# sourceURL=webpack:///./js/foundation.core.js?")},"./js/foundation.core.plugin.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Plugin", function() { return Plugin; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "jquery");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ "./js/foundation.core.utils.js");\n\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n // Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n// {function} _setup (replaces previous constructor),\n// {function} _destroy (replaces previous destroy)\n\nvar Plugin =\n/*#__PURE__*/\nfunction () {\n function Plugin(element, options) {\n _classCallCheck(this, Plugin);\n\n this._setup(element, options);\n\n var pluginName = getPluginName(this);\n this.uuid = Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__["GetYoDigits"])(6, pluginName);\n\n if (!this.$element.attr("data-".concat(pluginName))) {\n this.$element.attr("data-".concat(pluginName), this.uuid);\n }\n\n if (!this.$element.data(\'zfPlugin\')) {\n this.$element.data(\'zfPlugin\', this);\n }\n /**\n * Fires when the plugin has initialized.\n * @event Plugin#init\n */\n\n\n this.$element.trigger("init.zf.".concat(pluginName));\n }\n\n _createClass(Plugin, [{\n key: "destroy",\n value: function destroy() {\n this._destroy();\n\n var pluginName = getPluginName(this);\n this.$element.removeAttr("data-".concat(pluginName)).removeData(\'zfPlugin\')\n /**\n * Fires when the plugin has been destroyed.\n * @event Plugin#destroyed\n */\n .trigger("destroyed.zf.".concat(pluginName));\n\n for (var prop in this) {\n this[prop] = null; //clean up script to prep for garbage collection.\n }\n }\n }]);\n\n return Plugin;\n}(); // Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\n\n\nfunction hyphenate(str) {\n return str.replace(/([a-z])([A-Z])/g, \'$1-$2\').toLowerCase();\n}\n\nfunction getPluginName(obj) {\n if (typeof obj.constructor.name !== \'undefined\') {\n return hyphenate(obj.constructor.name);\n } else {\n return hyphenate(obj.className);\n }\n}\n\n\n\n//# sourceURL=webpack:///./js/foundation.core.plugin.js?')},"./js/foundation.core.utils.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rtl\", function() { return rtl; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GetYoDigits\", function() { return GetYoDigits; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RegExpEscape\", function() { return RegExpEscape; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transitionend\", function() { return transitionend; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onLoad\", function() { return onLoad; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ignoreMousedisappear\", function() { return ignoreMousedisappear; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n\n // Core Foundation Utilities, utilized in a number of places.\n\n/**\n * Returns a boolean for RTL support\n */\n\nfunction rtl() {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').attr('dir') === 'rtl';\n}\n/**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\n\n\nfunction GetYoDigits(length, namespace) {\n length = length || 6;\n return Math.round(Math.pow(36, length + 1) - Math.random() * Math.pow(36, length)).toString(36).slice(1) + (namespace ? \"-\".concat(namespace) : '');\n}\n/**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\n\n\nfunction RegExpEscape(str) {\n return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nfunction transitionend($elem) {\n var transitions = {\n 'transition': 'transitionend',\n 'WebkitTransition': 'webkitTransitionEnd',\n 'MozTransition': 'transitionend',\n 'OTransition': 'otransitionend'\n };\n var elem = document.createElement('div'),\n end;\n\n for (var t in transitions) {\n if (typeof elem.style[t] !== 'undefined') {\n end = transitions[t];\n }\n }\n\n if (end) {\n return end;\n } else {\n end = setTimeout(function () {\n $elem.triggerHandler('transitionend', [$elem]);\n }, 1);\n return 'transitionend';\n }\n}\n/**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\n\n\nfunction onLoad($elem, handler) {\n var didLoad = document.readyState === 'complete';\n var eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n\n var cb = function cb() {\n return $elem.triggerHandler(eventType);\n };\n\n if ($elem) {\n if (handler) $elem.one(eventType, handler);\n if (didLoad) setTimeout(cb);else jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).one('load', cb);\n }\n\n return eventType;\n}\n/**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n * (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n * outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\n\n\nfunction ignoreMousedisappear(handler) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$ignoreLeaveWindo = _ref.ignoreLeaveWindow,\n ignoreLeaveWindow = _ref$ignoreLeaveWindo === void 0 ? false : _ref$ignoreLeaveWindo,\n _ref$ignoreReappear = _ref.ignoreReappear,\n ignoreReappear = _ref$ignoreReappear === void 0 ? false : _ref$ignoreReappear;\n\n return function leaveEventHandler(eLeave) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n var callback = handler.bind.apply(handler, [this, eLeave].concat(rest)); // The mouse left: call the given callback if the mouse entered elsewhere\n\n if (eLeave.relatedTarget !== null) {\n return callback();\n } // Otherwise, check if the mouse actually left the window.\n // In firefox if the user switched between windows, the window sill have the focus by the time\n // the event is triggered. We have to debounce the event to test this case.\n\n\n setTimeout(function leaveEventDebouncer() {\n if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n return callback();\n } // Otherwise, wait for the mouse to reeapear outside of the element,\n\n\n if (!ignoreReappear) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).one('mouseenter', function reenterEventHandler(eReenter) {\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(eLeave.currentTarget).has(eReenter.target).length) {\n // Fill where the mouse finally entered.\n eLeave.relatedTarget = eReenter.target;\n callback();\n }\n });\n }\n }, 0);\n };\n}\n\n\n\n//# sourceURL=webpack:///./js/foundation.core.utils.js?")},"./js/foundation.reveal.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Reveal\", function() { return Reveal; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.keyboard */ \"./js/foundation.util.keyboard.js\");\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.util.mediaQuery */ \"./js/foundation.util.mediaQuery.js\");\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.util.motion */ \"./js/foundation.util.motion.js\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./js/foundation.core.plugin.js\");\n/* harmony import */ var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./foundation.util.triggers */ \"./js/foundation.util.triggers.js\");\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n\n\n/**\n * Reveal module.\n * @module foundation.reveal\n * @requires foundation.util.keyboard\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion if using animations\n */\n\nvar Reveal =\n/*#__PURE__*/\nfunction (_Plugin) {\n _inherits(Reveal, _Plugin);\n\n function Reveal() {\n _classCallCheck(this, Reveal);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Reveal).apply(this, arguments));\n }\n\n _createClass(Reveal, [{\n key: \"_setup\",\n\n /**\n * Creates a new instance of Reveal.\n * @class\n * @name Reveal\n * @param {jQuery} element - jQuery object to use for the modal.\n * @param {Object} options - optional parameters.\n */\n value: function _setup(element, options) {\n this.$element = element;\n this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Reveal.defaults, this.$element.data(), options);\n this.className = 'Reveal'; // ie9 back compat\n\n this._init(); // Triggers init is idempotent, just need to make sure it is initialized\n\n\n _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_6__[\"Triggers\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].register('Reveal', {\n 'ESCAPE': 'close'\n });\n }\n /**\n * Initializes the modal by adding the overlay and close buttons, (if selected).\n * @private\n */\n\n }, {\n key: \"_init\",\n value: function _init() {\n var _this2 = this;\n\n _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__[\"MediaQuery\"]._init();\n\n this.id = this.$element.attr('id');\n this.isActive = false;\n this.cached = {\n mq: _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__[\"MediaQuery\"].current\n };\n this.$anchor = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-open=\\\"\".concat(this.id, \"\\\"]\")).length ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-open=\\\"\".concat(this.id, \"\\\"]\")) : jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-toggle=\\\"\".concat(this.id, \"\\\"]\"));\n this.$anchor.attr({\n 'aria-controls': this.id,\n 'aria-haspopup': true,\n 'tabindex': 0\n });\n\n if (this.options.fullScreen || this.$element.hasClass('full')) {\n this.options.fullScreen = true;\n this.options.overlay = false;\n }\n\n if (this.options.overlay && !this.$overlay) {\n this.$overlay = this._makeOverlay(this.id);\n }\n\n this.$element.attr({\n 'role': 'dialog',\n 'aria-hidden': true,\n 'data-yeti-box': this.id,\n 'data-resize': this.id\n });\n\n if (this.$overlay) {\n this.$element.detach().appendTo(this.$overlay);\n } else {\n this.$element.detach().appendTo(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.options.appendTo));\n this.$element.addClass('without-overlay');\n }\n\n this._events();\n\n if (this.options.deepLink && window.location.hash === \"#\".concat(this.id)) {\n this.onLoadListener = Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n return _this2.open();\n });\n }\n }\n /**\n * Creates an overlay div to display behind the modal.\n * @private\n */\n\n }, {\n key: \"_makeOverlay\",\n value: function _makeOverlay() {\n var additionalOverlayClasses = '';\n\n if (this.options.additionalOverlayClasses) {\n additionalOverlayClasses = ' ' + this.options.additionalOverlayClasses;\n }\n\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()('
    ').addClass('reveal-overlay' + additionalOverlayClasses).appendTo(this.options.appendTo);\n }\n /**\n * Updates position of modal\n * TODO: Figure out if we actually need to cache these values or if it doesn't matter\n * @private\n */\n\n }, {\n key: \"_updatePosition\",\n value: function _updatePosition() {\n var width = this.$element.outerWidth();\n var outerWidth = jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).width();\n var height = this.$element.outerHeight();\n var outerHeight = jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height();\n var left,\n top = null;\n\n if (this.options.hOffset === 'auto') {\n left = parseInt((outerWidth - width) / 2, 10);\n } else {\n left = parseInt(this.options.hOffset, 10);\n }\n\n if (this.options.vOffset === 'auto') {\n if (height > outerHeight) {\n top = parseInt(Math.min(100, outerHeight / 10), 10);\n } else {\n top = parseInt((outerHeight - height) / 4, 10);\n }\n } else if (this.options.vOffset !== null) {\n top = parseInt(this.options.vOffset, 10);\n }\n\n if (top !== null) {\n this.$element.css({\n top: top + 'px'\n });\n } // only worry about left if we don't have an overlay or we have a horizontal offset,\n // otherwise we're perfectly in the middle\n\n\n if (!this.$overlay || this.options.hOffset !== 'auto') {\n this.$element.css({\n left: left + 'px'\n });\n this.$element.css({\n margin: '0px'\n });\n }\n }\n /**\n * Adds event handlers for the modal.\n * @private\n */\n\n }, {\n key: \"_events\",\n value: function _events() {\n var _this3 = this;\n\n var _this = this;\n\n this.$element.on({\n 'open.zf.trigger': this.open.bind(this),\n 'close.zf.trigger': function closeZfTrigger(event, $element) {\n if (event.target === _this.$element[0] || jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parents('[data-closable]')[0] === $element) {\n // only close reveal when it's explicitly called\n return _this3.close.apply(_this3);\n }\n },\n 'toggle.zf.trigger': this.toggle.bind(this),\n 'resizeme.zf.trigger': function resizemeZfTrigger() {\n _this._updatePosition();\n }\n });\n\n if (this.options.closeOnClick && this.options.overlay) {\n this.$overlay.off('.zf.reveal').on('click.zf.reveal', function (e) {\n if (e.target === _this.$element[0] || jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(_this.$element[0], e.target) || !jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(document, e.target)) {\n return;\n }\n\n _this.close();\n });\n }\n\n if (this.options.deepLink) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(\"hashchange.zf.reveal:\".concat(this.id), this._handleState.bind(this));\n }\n }\n /**\n * Handles modal methods on back/forward button clicks or any other event that triggers hashchange.\n * @private\n */\n\n }, {\n key: \"_handleState\",\n value: function _handleState(e) {\n if (window.location.hash === '#' + this.id && !this.isActive) {\n this.open();\n } else {\n this.close();\n }\n }\n /**\n * Disables the scroll when Reveal is shown to prevent the background from shifting\n * @param {number} scrollTop - Scroll to visually apply, window current scroll by default\n */\n\n }, {\n key: \"_disableScroll\",\n value: function _disableScroll(scrollTop) {\n scrollTop = scrollTop || jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).scrollTop();\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).height() > jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height()) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\", -scrollTop);\n }\n }\n /**\n * Reenables the scroll when Reveal closes\n * @param {number} scrollTop - Scroll to restore, html \"top\" property by default (as set by `_disableScroll`)\n */\n\n }, {\n key: \"_enableScroll\",\n value: function _enableScroll(scrollTop) {\n scrollTop = scrollTop || parseInt(jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\"));\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).height() > jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height()) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\", \"\");\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).scrollTop(-scrollTop);\n }\n }\n /**\n * Opens the modal controlled by `this.$anchor`, and closes all others by default.\n * @function\n * @fires Reveal#closeme\n * @fires Reveal#open\n */\n\n }, {\n key: \"open\",\n value: function open() {\n var _this4 = this;\n\n // either update or replace browser history\n var hash = \"#\".concat(this.id);\n\n if (this.options.deepLink && window.location.hash !== hash) {\n if (window.history.pushState) {\n if (this.options.updateHistory) {\n window.history.pushState({}, '', hash);\n } else {\n window.history.replaceState({}, '', hash);\n }\n } else {\n window.location.hash = hash;\n }\n } // Remember anchor that opened it to set focus back later, have general anchors as fallback\n\n\n this.$activeAnchor = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.activeElement).is(this.$anchor) ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.activeElement) : this.$anchor;\n this.isActive = true; // Make elements invisible, but remove display: none so we can get size and positioning\n\n this.$element.css({\n 'visibility': 'hidden'\n }).show().scrollTop(0);\n\n if (this.options.overlay) {\n this.$overlay.css({\n 'visibility': 'hidden'\n }).show();\n }\n\n this._updatePosition();\n\n this.$element.hide().css({\n 'visibility': ''\n });\n\n if (this.$overlay) {\n this.$overlay.css({\n 'visibility': ''\n }).hide();\n\n if (this.$element.hasClass('fast')) {\n this.$overlay.addClass('fast');\n } else if (this.$element.hasClass('slow')) {\n this.$overlay.addClass('slow');\n }\n }\n\n if (!this.options.multipleOpened) {\n /**\n * Fires immediately before the modal opens.\n * Closes any other modals that are currently open\n * @event Reveal#closeme\n */\n this.$element.trigger('closeme.zf.reveal', this.id);\n }\n\n this._disableScroll();\n\n var _this = this; // Motion UI method of reveal\n\n\n if (this.options.animationIn) {\n var afterAnimation = function afterAnimation() {\n _this.$element.attr({\n 'aria-hidden': false,\n 'tabindex': -1\n }).focus();\n\n _this._addGlobalClasses();\n\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].trapFocus(_this.$element);\n };\n\n if (this.options.overlay) {\n _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateIn(this.$overlay, 'fade-in');\n }\n\n _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateIn(this.$element, this.options.animationIn, function () {\n if (_this4.$element) {\n // protect against object having been removed\n _this4.focusableElements = _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].findFocusable(_this4.$element);\n afterAnimation();\n }\n });\n } // jQuery method of reveal\n else {\n if (this.options.overlay) {\n this.$overlay.show(0);\n }\n\n this.$element.show(this.options.showDelay);\n } // handle accessibility\n\n\n this.$element.attr({\n 'aria-hidden': false,\n 'tabindex': -1\n }).focus();\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].trapFocus(this.$element);\n\n this._addGlobalClasses();\n\n this._addGlobalListeners();\n /**\n * Fires when the modal has successfully opened.\n * @event Reveal#open\n */\n\n\n this.$element.trigger('open.zf.reveal');\n }\n /**\n * Adds classes and listeners on document required by open modals.\n *\n * The following classes are added and updated:\n * - `.is-reveal-open` - Prevents the scroll on document\n * - `.zf-has-scroll` - Displays a disabled scrollbar on document if required like if the\n * scroll was not disabled. This prevent a \"shift\" of the page content due\n * the scrollbar disappearing when the modal opens.\n *\n * @private\n */\n\n }, {\n key: \"_addGlobalClasses\",\n value: function _addGlobalClasses() {\n var updateScrollbarClass = function updateScrollbarClass() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').toggleClass('zf-has-scroll', !!(jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).height() > jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height()));\n };\n\n this.$element.on('resizeme.zf.trigger.revealScrollbarListener', function () {\n return updateScrollbarClass();\n });\n updateScrollbarClass();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').addClass('is-reveal-open');\n }\n /**\n * Removes classes and listeners on document that were required by open modals.\n * @private\n */\n\n }, {\n key: \"_removeGlobalClasses\",\n value: function _removeGlobalClasses() {\n this.$element.off('resizeme.zf.trigger.revealScrollbarListener');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').removeClass('is-reveal-open');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').removeClass('zf-has-scroll');\n }\n /**\n * Adds extra event handlers for the body and window if necessary.\n * @private\n */\n\n }, {\n key: \"_addGlobalListeners\",\n value: function _addGlobalListeners() {\n var _this = this;\n\n if (!this.$element) {\n return;\n } // If we're in the middle of cleanup, don't freak out\n\n\n this.focusableElements = _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].findFocusable(this.$element);\n\n if (!this.options.overlay && this.options.closeOnClick && !this.options.fullScreen) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('click.zf.reveal', function (e) {\n if (e.target === _this.$element[0] || jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(_this.$element[0], e.target) || !jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(document, e.target)) {\n return;\n }\n\n _this.close();\n });\n }\n\n if (this.options.closeOnEsc) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('keydown.zf.reveal', function (e) {\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].handleKey(e, 'Reveal', {\n close: function close() {\n if (_this.options.closeOnEsc) {\n _this.close();\n }\n }\n });\n });\n }\n }\n /**\n * Closes the modal.\n * @function\n * @fires Reveal#closed\n */\n\n }, {\n key: \"close\",\n value: function close() {\n if (!this.isActive || !this.$element.is(':visible')) {\n return false;\n }\n\n var _this = this; // Motion UI method of hiding\n\n\n if (this.options.animationOut) {\n if (this.options.overlay) {\n _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateOut(this.$overlay, 'fade-out');\n }\n\n _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateOut(this.$element, this.options.animationOut, finishUp);\n } // jQuery method of hiding\n else {\n this.$element.hide(this.options.hideDelay);\n\n if (this.options.overlay) {\n this.$overlay.hide(0, finishUp);\n } else {\n finishUp();\n }\n } // Conditionals to remove extra event listeners added on open\n\n\n if (this.options.closeOnEsc) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('keydown.zf.reveal');\n }\n\n if (!this.options.overlay && this.options.closeOnClick) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').off('click.zf.reveal');\n }\n\n this.$element.off('keydown.zf.reveal');\n\n function finishUp() {\n // Get the current top before the modal is closed and restore the scroll after.\n // TODO: use component properties instead of HTML properties\n // See https://github.com/zurb/foundation-sites/pull/10786\n var scrollTop = parseInt(jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\"));\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reveal:visible').length === 0) {\n _this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n\n }\n\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].releaseFocus(_this.$element);\n\n _this.$element.attr('aria-hidden', true);\n\n _this._enableScroll(scrollTop);\n /**\n * Fires when the modal is done closing.\n * @event Reveal#closed\n */\n\n\n _this.$element.trigger('closed.zf.reveal');\n }\n /**\n * Resets the modal content\n * This prevents a running video to keep going in the background\n */\n\n\n if (this.options.resetOnClose) {\n this.$element.html(this.$element.html());\n }\n\n this.isActive = false; // If deepLink and we did not switched to an other modal...\n\n if (_this.options.deepLink && window.location.hash === \"#\".concat(this.id)) {\n // Remove the history hash\n if (window.history.replaceState) {\n var urlWithoutHash = window.location.pathname + window.location.search;\n\n if (this.options.updateHistory) {\n window.history.pushState({}, '', urlWithoutHash); // remove the hash\n } else {\n window.history.replaceState('', document.title, urlWithoutHash);\n }\n } else {\n window.location.hash = '';\n }\n }\n\n this.$activeAnchor.focus();\n }\n /**\n * Toggles the open/closed state of a modal.\n * @function\n */\n\n }, {\n key: \"toggle\",\n value: function toggle() {\n if (this.isActive) {\n this.close();\n } else {\n this.open();\n }\n }\n }, {\n key: \"_destroy\",\n\n /**\n * Destroys an instance of a modal.\n * @function\n */\n value: function _destroy() {\n if (this.options.overlay) {\n this.$element.appendTo(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.options.appendTo)); // move $element outside of $overlay to prevent error unregisterPlugin()\n\n this.$overlay.hide().off().remove();\n }\n\n this.$element.hide().off();\n this.$anchor.off('.zf');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(\".zf.reveal:\".concat(this.id));\n if (this.onLoadListener) jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(this.onLoadListener);\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reveal:visible').length === 0) {\n this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n\n }\n }\n }]);\n\n return Reveal;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_5__[\"Plugin\"]);\n\nReveal.defaults = {\n /**\n * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n * @option\n * @type {string}\n * @default ''\n */\n animationIn: '',\n\n /**\n * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n * @option\n * @type {string}\n * @default ''\n */\n animationOut: '',\n\n /**\n * Time, in ms, to delay the opening of a modal after a click if no animation used.\n * @option\n * @type {number}\n * @default 0\n */\n showDelay: 0,\n\n /**\n * Time, in ms, to delay the closing of a modal after a click if no animation used.\n * @option\n * @type {number}\n * @default 0\n */\n hideDelay: 0,\n\n /**\n * Allows a click on the body/overlay to close the modal.\n * @option\n * @type {boolean}\n * @default true\n */\n closeOnClick: true,\n\n /**\n * Allows the modal to close if the user presses the `ESCAPE` key.\n * @option\n * @type {boolean}\n * @default true\n */\n closeOnEsc: true,\n\n /**\n * If true, allows multiple modals to be displayed at once.\n * @option\n * @type {boolean}\n * @default false\n */\n multipleOpened: false,\n\n /**\n * Distance, in pixels, the modal should push down from the top of the screen.\n * @option\n * @type {number|string}\n * @default auto\n */\n vOffset: 'auto',\n\n /**\n * Distance, in pixels, the modal should push in from the side of the screen.\n * @option\n * @type {number|string}\n * @default auto\n */\n hOffset: 'auto',\n\n /**\n * Allows the modal to be fullscreen, completely blocking out the rest of the view. JS checks for this as well.\n * @option\n * @type {boolean}\n * @default false\n */\n fullScreen: false,\n\n /**\n * Allows the modal to generate an overlay div, which will cover the view when modal opens.\n * @option\n * @type {boolean}\n * @default true\n */\n overlay: true,\n\n /**\n * Allows the modal to remove and reinject markup on close. Should be true if using video elements w/o using provider's api, otherwise, videos will continue to play in the background.\n * @option\n * @type {boolean}\n * @default false\n */\n resetOnClose: false,\n\n /**\n * Link the location hash to the modal.\n * Set the location hash when the modal is opened/closed, and open/close the modal when the location changes.\n * @option\n * @type {boolean}\n * @default false\n */\n deepLink: false,\n\n /**\n * If `deepLink` is enabled, update the browser history with the open modal\n * @option\n * @default false\n */\n updateHistory: false,\n\n /**\n * Allows the modal to append to custom div.\n * @option\n * @type {string}\n * @default \"body\"\n */\n appendTo: \"body\",\n\n /**\n * Allows adding additional class names to the reveal overlay.\n * @option\n * @type {string}\n * @default ''\n */\n additionalOverlayClasses: ''\n};\n\n\n//# sourceURL=webpack:///./js/foundation.reveal.js?")},"./js/foundation.util.keyboard.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Keyboard\", function() { return Keyboard; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/*******************************************\n * *\n * This util was created by Marius Olbertz *\n * Please thank Marius on GitHub /owlbertz *\n * or the web http://www.mariusolbertz.de/ *\n * *\n ******************************************/\n\n\n\n\nvar keyCodes = {\n 9: 'TAB',\n 13: 'ENTER',\n 27: 'ESCAPE',\n 32: 'SPACE',\n 35: 'END',\n 36: 'HOME',\n 37: 'ARROW_LEFT',\n 38: 'ARROW_UP',\n 39: 'ARROW_RIGHT',\n 40: 'ARROW_DOWN'\n};\nvar commands = {}; // Functions pulled out to be referenceable from internals\n\nfunction findFocusable($element) {\n if (!$element) {\n return false;\n }\n\n return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function () {\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).is(':visible') || jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('tabindex') < 0) {\n return false;\n } //only have visible elements and those that have a tabindex greater or equal 0\n\n\n return true;\n });\n}\n\nfunction parseKey(event) {\n var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase(); // Remove un-printable characters, e.g. for `fromCharCode` calls for CTRL only events\n\n key = key.replace(/\\W+/, '');\n if (event.shiftKey) key = \"SHIFT_\".concat(key);\n if (event.ctrlKey) key = \"CTRL_\".concat(key);\n if (event.altKey) key = \"ALT_\".concat(key); // Remove trailing underscore, in case only modifiers were used (e.g. only `CTRL_ALT`)\n\n key = key.replace(/_$/, '');\n return key;\n}\n\nvar Keyboard = {\n keys: getKeyCodes(keyCodes),\n\n /**\n * Parses the (keyboard) event and returns a String that represents its key\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n * @param {Event} event - the event generated by the event handler\n * @return String key - String that represents the key pressed\n */\n parseKey: parseKey,\n\n /**\n * Handles the given (keyboard) event\n * @param {Event} event - the event generated by the event handler\n * @param {String} component - Foundation component's name, e.g. Slider or Reveal\n * @param {Objects} functions - collection of functions that are to be executed\n */\n handleKey: function handleKey(event, component, functions) {\n var commandList = commands[component],\n keyCode = this.parseKey(event),\n cmds,\n command,\n fn;\n if (!commandList) return console.warn('Component not defined!');\n\n if (typeof commandList.ltr === 'undefined') {\n // this component does not differentiate between ltr and rtl\n cmds = commandList; // use plain list\n } else {\n // merge ltr and rtl: if document is rtl, rtl overwrites ltr and vice versa\n if (Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"rtl\"])()) cmds = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, commandList.ltr, commandList.rtl);else cmds = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, commandList.rtl, commandList.ltr);\n }\n\n command = cmds[keyCode];\n fn = functions[command];\n\n if (fn && typeof fn === 'function') {\n // execute function if exists\n var returnValue = fn.apply();\n\n if (functions.handled || typeof functions.handled === 'function') {\n // execute function when event was handled\n functions.handled(returnValue);\n }\n } else {\n if (functions.unhandled || typeof functions.unhandled === 'function') {\n // execute function when event was not handled\n functions.unhandled();\n }\n }\n },\n\n /**\n * Finds all focusable elements within the given `$element`\n * @param {jQuery} $element - jQuery object to search within\n * @return {jQuery} $focusable - all focusable elements within `$element`\n */\n findFocusable: findFocusable,\n\n /**\n * Returns the component name name\n * @param {Object} component - Foundation component, e.g. Slider or Reveal\n * @return String componentName\n */\n register: function register(componentName, cmds) {\n commands[componentName] = cmds;\n },\n // TODO9438: These references to Keyboard need to not require global. Will 'this' work in this context?\n //\n\n /**\n * Traps the focus in the given element.\n * @param {jQuery} $element jQuery object to trap the foucs into.\n */\n trapFocus: function trapFocus($element) {\n var $focusable = findFocusable($element),\n $firstFocusable = $focusable.eq(0),\n $lastFocusable = $focusable.eq(-1);\n $element.on('keydown.zf.trapfocus', function (event) {\n if (event.target === $lastFocusable[0] && parseKey(event) === 'TAB') {\n event.preventDefault();\n $firstFocusable.focus();\n } else if (event.target === $firstFocusable[0] && parseKey(event) === 'SHIFT_TAB') {\n event.preventDefault();\n $lastFocusable.focus();\n }\n });\n },\n\n /**\n * Releases the trapped focus from the given element.\n * @param {jQuery} $element jQuery object to release the focus for.\n */\n releaseFocus: function releaseFocus($element) {\n $element.off('keydown.zf.trapfocus');\n }\n};\n/*\n * Constants for easier comparing.\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n */\n\nfunction getKeyCodes(kcs) {\n var k = {};\n\n for (var kc in kcs) {\n k[kcs[kc]] = kcs[kc];\n }\n\n return k;\n}\n\n\n\n//# sourceURL=webpack:///./js/foundation.util.keyboard.js?")},"./js/foundation.util.mediaQuery.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MediaQuery\", function() { return MediaQuery; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n // Default set of media queries\n\nvar defaultQueries = {\n 'default': 'only screen',\n landscape: 'only screen and (orientation: landscape)',\n portrait: 'only screen and (orientation: portrait)',\n retina: 'only screen and (-webkit-min-device-pixel-ratio: 2),' + 'only screen and (min--moz-device-pixel-ratio: 2),' + 'only screen and (-o-min-device-pixel-ratio: 2/1),' + 'only screen and (min-device-pixel-ratio: 2),' + 'only screen and (min-resolution: 192dpi),' + 'only screen and (min-resolution: 2dppx)'\n}; // matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright(c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n\n/* eslint-disable */\n\nwindow.matchMedia || (window.matchMedia = function () {\n \"use strict\"; // For browsers that support matchMedium api such as IE 9 and webkit\n\n var styleMedia = window.styleMedia || window.media; // For those that don't support matchMedium\n\n if (!styleMedia) {\n var style = document.createElement('style'),\n script = document.getElementsByTagName('script')[0],\n info = null;\n style.type = 'text/css';\n style.id = 'matchmediajs-test';\n\n if (!script) {\n document.head.appendChild(style);\n } else {\n script.parentNode.insertBefore(style, script);\n } // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n\n\n info = 'getComputedStyle' in window && window.getComputedStyle(style, null) || style.currentStyle;\n styleMedia = {\n matchMedium: function matchMedium(media) {\n var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }'; // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n\n if (style.styleSheet) {\n style.styleSheet.cssText = text;\n } else {\n style.textContent = text;\n } // Test if media query is true or false\n\n\n return info.width === '1px';\n }\n };\n }\n\n return function (media) {\n return {\n matches: styleMedia.matchMedium(media || 'all'),\n media: media || 'all'\n };\n };\n}());\n/* eslint-enable */\n\nvar MediaQuery = {\n queries: [],\n current: '',\n\n /**\n * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n * @function\n * @private\n */\n _init: function _init() {\n var self = this;\n var $meta = jquery__WEBPACK_IMPORTED_MODULE_0___default()('meta.foundation-mq');\n\n if (!$meta.length) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('').appendTo(document.head);\n }\n\n var extractedStyles = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.foundation-mq').css('font-family');\n var namedQueries;\n namedQueries = parseStyleToObject(extractedStyles);\n\n for (var key in namedQueries) {\n if (namedQueries.hasOwnProperty(key)) {\n self.queries.push({\n name: key,\n value: \"only screen and (min-width: \".concat(namedQueries[key], \")\")\n });\n }\n }\n\n this.current = this._getCurrentSize();\n\n this._watcher();\n },\n\n /**\n * Checks if the screen is at least as wide as a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n */\n atLeast: function atLeast(size) {\n var query = this.get(size);\n\n if (query) {\n return window.matchMedia(query).matches;\n }\n\n return false;\n },\n\n /**\n * Checks if the screen matches to a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n */\n is: function is(size) {\n size = size.trim().split(' ');\n\n if (size.length > 1 && size[1] === 'only') {\n if (size[0] === this._getCurrentSize()) return true;\n } else {\n return this.atLeast(size[0]);\n }\n\n return false;\n },\n\n /**\n * Gets the media query of a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to get.\n * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n */\n get: function get(size) {\n for (var i in this.queries) {\n if (this.queries.hasOwnProperty(i)) {\n var query = this.queries[i];\n if (size === query.name) return query.value;\n }\n }\n\n return null;\n },\n\n /**\n * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n * @function\n * @private\n * @returns {String} Name of the current breakpoint.\n */\n _getCurrentSize: function _getCurrentSize() {\n var matched;\n\n for (var i = 0; i < this.queries.length; i++) {\n var query = this.queries[i];\n\n if (window.matchMedia(query.value).matches) {\n matched = query;\n }\n }\n\n if (_typeof(matched) === 'object') {\n return matched.name;\n } else {\n return matched;\n }\n },\n\n /**\n * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n * @function\n * @private\n */\n _watcher: function _watcher() {\n var _this = this;\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('resize.zf.mediaquery').on('resize.zf.mediaquery', function () {\n var newSize = _this._getCurrentSize(),\n currentSize = _this.current;\n\n if (newSize !== currentSize) {\n // Change the current media query\n _this.current = newSize; // Broadcast the media query change on the window\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n }\n });\n }\n}; // Thank you: https://github.com/sindresorhus/query-string\n\nfunction parseStyleToObject(str) {\n var styleObject = {};\n\n if (typeof str !== 'string') {\n return styleObject;\n }\n\n str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n if (!str) {\n return styleObject;\n }\n\n styleObject = str.split('&').reduce(function (ret, param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = parts[0];\n var val = parts[1];\n key = decodeURIComponent(key); // missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\n val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n if (!ret.hasOwnProperty(key)) {\n ret[key] = val;\n } else if (Array.isArray(ret[key])) {\n ret[key].push(val);\n } else {\n ret[key] = [ret[key], val];\n }\n\n return ret;\n }, {});\n return styleObject;\n}\n\n\n\n//# sourceURL=webpack:///./js/foundation.util.mediaQuery.js?")},"./js/foundation.util.motion.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Move\", function() { return Move; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Motion\", function() { return Motion; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n\n\n\n\n/**\n * Motion module.\n * @module foundation.motion\n */\n\nvar initClasses = ['mui-enter', 'mui-leave'];\nvar activeClasses = ['mui-enter-active', 'mui-leave-active'];\nvar Motion = {\n animateIn: function animateIn(element, animation, cb) {\n animate(true, element, animation, cb);\n },\n animateOut: function animateOut(element, animation, cb) {\n animate(false, element, animation, cb);\n }\n};\n\nfunction Move(duration, elem, fn) {\n var anim,\n prog,\n start = null; // console.log('called');\n\n if (duration === 0) {\n fn.apply(elem);\n elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n return;\n }\n\n function move(ts) {\n if (!start) start = ts; // console.log(start, ts);\n\n prog = ts - start;\n fn.apply(elem);\n\n if (prog < duration) {\n anim = window.requestAnimationFrame(move, elem);\n } else {\n window.cancelAnimationFrame(anim);\n elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n }\n }\n\n anim = window.requestAnimationFrame(move);\n}\n/**\n * Animates an element in or out using a CSS transition class.\n * @function\n * @private\n * @param {Boolean} isIn - Defines if the animation is in or out.\n * @param {Object} element - jQuery or HTML object to animate.\n * @param {String} animation - CSS class to use.\n * @param {Function} cb - Callback to run when animation is finished.\n */\n\n\nfunction animate(isIn, element, animation, cb) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).eq(0);\n if (!element.length) return;\n var initClass = isIn ? initClasses[0] : initClasses[1];\n var activeClass = isIn ? activeClasses[0] : activeClasses[1]; // Set up the animation\n\n reset();\n element.addClass(animation).css('transition', 'none');\n requestAnimationFrame(function () {\n element.addClass(initClass);\n if (isIn) element.show();\n }); // Start the animation\n\n requestAnimationFrame(function () {\n element[0].offsetWidth;\n element.css('transition', '').addClass(activeClass);\n }); // Clean up the animation when it finishes\n\n element.one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"transitionend\"])(element), finish); // Hides the element (for out animations), resets the element, and runs a callback\n\n function finish() {\n if (!isIn) element.hide();\n reset();\n if (cb) cb.apply(element);\n } // Resets transitions and removes motion-specific classes\n\n\n function reset() {\n element[0].style.transitionDuration = 0;\n element.removeClass(\"\".concat(initClass, \" \").concat(activeClass, \" \").concat(animation));\n }\n}\n\n\n\n//# sourceURL=webpack:///./js/foundation.util.motion.js?")},"./js/foundation.util.triggers.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Triggers\", function() { return Triggers; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.motion */ \"./js/foundation.util.motion.js\");\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\n\nvar MutationObserver = function () {\n var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n\n for (var i = 0; i < prefixes.length; i++) {\n if (\"\".concat(prefixes[i], \"MutationObserver\") in window) {\n return window[\"\".concat(prefixes[i], \"MutationObserver\")];\n }\n }\n\n return false;\n}();\n\nvar triggers = function triggers(el, type) {\n el.data(type).split(' ').forEach(function (id) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id))[type === 'close' ? 'trigger' : 'triggerHandler'](\"\".concat(type, \".zf.trigger\"), [el]);\n });\n};\n\nvar Triggers = {\n Listeners: {\n Basic: {},\n Global: {}\n },\n Initializers: {}\n};\nTriggers.Listeners.Basic = {\n openListener: function openListener() {\n triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'open');\n },\n closeListener: function closeListener() {\n var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('close');\n\n if (id) {\n triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'close');\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('close.zf.trigger');\n }\n },\n toggleListener: function toggleListener() {\n var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle');\n\n if (id) {\n triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'toggle');\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('toggle.zf.trigger');\n }\n },\n closeableListener: function closeableListener(e) {\n e.stopPropagation();\n var animation = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('closable');\n\n if (animation !== '') {\n _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__[\"Motion\"].animateOut(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), animation, function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('closed.zf');\n });\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).fadeOut().trigger('closed.zf');\n }\n },\n toggleFocusListener: function toggleFocusListener() {\n var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle-focus');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id)).triggerHandler('toggle.zf.trigger', [jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)]);\n }\n}; // Elements with [data-open] will reveal a plugin that supports it when clicked.\n\nTriggers.Initializers.addOpenListener = function ($elem) {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}; // Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\n\n\nTriggers.Initializers.addCloseListener = function ($elem) {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}; // Elements with [data-toggle] will toggle a plugin that supports it when clicked.\n\n\nTriggers.Initializers.addToggleListener = function ($elem) {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}; // Elements with [data-closable] will respond to close.zf.trigger events.\n\n\nTriggers.Initializers.addCloseableListener = function ($elem) {\n $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}; // Elements with [data-toggle-focus] will respond to coming in and out of focus\n\n\nTriggers.Initializers.addToggleFocusListener = function ($elem) {\n $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}; // More Global/complex listeners and triggers\n\n\nTriggers.Listeners.Global = {\n resizeListener: function resizeListener($nodes) {\n if (!MutationObserver) {\n //fallback for IE 9\n $nodes.each(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('resizeme.zf.trigger');\n });\n } //trigger all listening elements and signal a resize event\n\n\n $nodes.attr('data-events', \"resize\");\n },\n scrollListener: function scrollListener($nodes) {\n if (!MutationObserver) {\n //fallback for IE 9\n $nodes.each(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('scrollme.zf.trigger');\n });\n } //trigger all listening elements and signal a scroll event\n\n\n $nodes.attr('data-events', \"scroll\");\n },\n closeMeListener: function closeMeListener(e, pluginId) {\n var plugin = e.namespace.split('.')[0];\n var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-\".concat(plugin, \"]\")).not(\"[data-yeti-box=\\\"\".concat(pluginId, \"\\\"]\"));\n plugins.each(function () {\n var _this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n _this.triggerHandler('close.zf.trigger', [_this]);\n });\n } // Global, parses whole document.\n\n};\n\nTriggers.Initializers.addClosemeListener = function (pluginName) {\n var yetiBoxes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-yeti-box]'),\n plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n if (pluginName) {\n if (typeof pluginName === 'string') {\n plugNames.push(pluginName);\n } else if (_typeof(pluginName) === 'object' && typeof pluginName[0] === 'string') {\n plugNames.concat(pluginName);\n } else {\n console.error('Plugin names must be strings');\n }\n }\n\n if (yetiBoxes.length) {\n var listeners = plugNames.map(function (name) {\n return \"closeme.zf.\".concat(name);\n }).join(' ');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n }\n};\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n var timer,\n args = Array.prototype.slice.call(arguments, 3);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(trigger).on(trigger, function (e) {\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(function () {\n listener.apply(null, args);\n }, debounce || 10); //default time to emit scroll event\n });\n}\n\nTriggers.Initializers.addResizeListener = function (debounce) {\n var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-resize]');\n\n if ($nodes.length) {\n debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n }\n};\n\nTriggers.Initializers.addScrollListener = function (debounce) {\n var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-scroll]');\n\n if ($nodes.length) {\n debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n }\n};\n\nTriggers.Initializers.addMutationEventsListener = function ($elem) {\n if (!MutationObserver) {\n return false;\n }\n\n var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]'); //element callback\n\n var listeningElementsMutation = function listeningElementsMutation(mutationRecordsList) {\n var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(mutationRecordsList[0].target); //trigger the event handler for the element depending on type\n\n switch (mutationRecordsList[0].type) {\n case \"attributes\":\n if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n }\n\n if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('resizeme.zf.trigger', [$target]);\n }\n\n if (mutationRecordsList[0].attributeName === \"style\") {\n $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n }\n\n break;\n\n case \"childList\":\n $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n break;\n\n default:\n return false;\n //nothing\n }\n };\n\n if ($nodes.length) {\n //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n for (var i = 0; i <= $nodes.length - 1; i++) {\n var elementObserver = new MutationObserver(listeningElementsMutation);\n elementObserver.observe($nodes[i], {\n attributes: true,\n childList: true,\n characterData: false,\n subtree: true,\n attributeFilter: [\"data-events\", \"style\"]\n });\n }\n }\n};\n\nTriggers.Initializers.addSimpleListeners = function () {\n var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n Triggers.Initializers.addOpenListener($document);\n Triggers.Initializers.addCloseListener($document);\n Triggers.Initializers.addToggleListener($document);\n Triggers.Initializers.addCloseableListener($document);\n Triggers.Initializers.addToggleFocusListener($document);\n};\n\nTriggers.Initializers.addGlobalListeners = function () {\n var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n Triggers.Initializers.addMutationEventsListener($document);\n Triggers.Initializers.addResizeListener();\n Triggers.Initializers.addScrollListener();\n Triggers.Initializers.addClosemeListener();\n};\n\nTriggers.init = function ($, Foundation) {\n Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])($(window), function () {\n if ($.triggersInitialized !== true) {\n Triggers.Initializers.addSimpleListeners();\n Triggers.Initializers.addGlobalListeners();\n $.triggersInitialized = true;\n }\n });\n\n if (Foundation) {\n Foundation.Triggers = Triggers; // Legacy included to be backwards compatible for now.\n\n Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;\n }\n};\n\n\n\n//# sourceURL=webpack:///./js/foundation.util.triggers.js?")},jquery:function(module,exports){eval("module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n//# sourceURL=webpack:///external_%7B%22root%22:%5B%22jQuery%22%5D,%22amd%22:%22jquery%22,%22commonjs%22:%22jquery%22,%22commonjs2%22:%22jquery%22%7D?")}})}); \ No newline at end of file diff --git a/news/static/news/js/vendor/jquery.js b/news/static/news/js/vendor/jquery.js new file mode 100644 index 0000000..9b5206b --- /dev/null +++ b/news/static/news/js/vendor/jquery.js @@ -0,0 +1,10364 @@ +/*! + * jQuery JavaScript Library v3.3.1 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2018-01-20T17:24Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var document = window.document; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var concat = arr.concat; + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + +var isFunction = function isFunction( obj ) { + + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + return typeof obj === "function" && typeof obj.nodeType !== "number"; + }; + + +var isWindow = function isWindow( obj ) { + return obj != null && obj === obj.window; + }; + + + + + var preservedScriptAttributes = { + type: true, + src: true, + noModule: true + }; + + function DOMEval( code, doc, node ) { + doc = doc || document; + + var i, + script = doc.createElement( "script" ); + + script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + if ( node[ i ] ) { + script[ i ] = node[ i ]; + } + } + } + doc.head.appendChild( script ).parentNode.removeChild( script ); + } + + +function toType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.3.1", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android <=4.0 only + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + + if ( copyIsArray ) { + copyIsArray = false; + clone = src && Array.isArray( src ) ? src : []; + + } else { + clone = src && jQuery.isPlainObject( src ) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + + /* eslint-disable no-unused-vars */ + // See https://github.com/eslint/eslint/issues/6125 + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + DOMEval( code ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = toType( obj ); + + if ( isFunction( obj ) || isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.3 + * https://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-08-08 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + disabledAncestor = addCombinator( + function( elem ) { + return elem.disabled === true && ("form" in elem || "label" in elem); + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + + // ID selector + if ( (m = match[1]) ) { + + // Document context + if ( nodeType === 9 ) { + if ( (elem = context.getElementById( m )) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && (elem = newContext.getElementById( m )) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( (m = match[3]) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !compilerCache[ selector + " " ] && + (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + + if ( nodeType !== 1 ) { + newContext = context; + newSelector = selector; + + // qSA looks outside Element context, which is not what we want + // Thanks to Andrew Dupont for this workaround technique + // Support: IE <=8 + // Exclude object elements + } else if ( context.nodeName.toLowerCase() !== "object" ) { + + // Capture the context ID, setting it first if necessary + if ( (nid = context.getAttribute( "id" )) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", (nid = expando) ); + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[i] = "#" + nid + " " + toSelector( groups[i] ); + } + newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement("fieldset"); + + try { + return !!fn( el ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + disabledAncestor( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9-11, Edge + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + if ( preferredDoc !== document && + (subWindow = document.defaultView) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert(function( el ) { + el.className = "i"; + return !el.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( el ) { + el.appendChild( document.createComment("") ); + return !el.getElementsByTagName("*").length; + }); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + }); + + // ID filter and find + if ( support.getById ) { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode("id"); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( (elem = elems[i++]) ) { + node = elem.getAttributeNode("id"); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( el ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll("[msallowcapture^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } + }); + + assert(function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement("input"); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll(":enabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll(":disabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( el ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === document ? -1 : + b === document ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + !compilerCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch (e) {} + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return (sel + "").replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + // Use previously-cached element index if available + if ( useCache ) { + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( (oldCache = uniqueCache[ key ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context === document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + if ( !context && elem.ownerDocument !== document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context || document, xml) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( el ) { + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( el ) { + return el.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +}; +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Filtered directly for both simple and complex selectors + return jQuery.filter( qualifier, elements, not ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( nodeName( elem, "iframe" ) ) { + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && toType( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // rejected_handlers.disable + // fulfilled_handlers.disable + tuples[ 3 - i ][ 3 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock, + + // progress_handlers.lock + tuples[ 0 ][ 3 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the master Deferred + master = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + master.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( master.state() === "pending" || + isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return master.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + } + + return master.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( toType( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; + + +// Matches dashed string for camelizing +var rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g; + +// Used by camelCase as callback to replace() +function fcamelCase( all, letter ) { + return letter.toUpperCase(); +} + +// Convert dashed to camelCase; used by the css and data modules +// Support: IE <=9 - 11, Edge 12 - 15 +// Microsoft forgot to hump their vendor prefix (#9572) +function camelCase( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); +} +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( camelCase ); + } else { + key = camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + jQuery.contains( elem.ownerDocument, elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + +var swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, scale, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Support: Firefox <=54 + // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) + initial = initial / 2; + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + while ( maxIterations-- ) { + + // Evaluate and update our best guess (doubling guesses that zero out). + // Finish if the scale equals or crosses 1 (making the old*new product non-positive). + jQuery.style( elem, prop, initialInUnit + unit ); + if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { + maxIterations = 0; + } + initialInUnit = initialInUnit / scale; + + } + + initialInUnit = initialInUnit * 2; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); + +var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); + + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // Support: IE <=9 only + option: [ 1, "" ], + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
    " ], + col: [ 2, "", "
    " ], + tr: [ 2, "", "
    " ], + td: [ 3, "", "
    " ], + + _default: [ 0, "", "" ] +}; + +// Support: IE <=9 only +wrapMap.optgroup = wrapMap.option; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, contains, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( toType( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +} )(); +var documentElement = document.documentElement; + + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 only +// See #13393 for more info +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = {}; + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + // Make a writable jQuery.Event from the native event object + var event = jQuery.event.fix( nativeEvent ); + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or 2) have namespace(s) + // a subset or equal to those in the bound event (both can have no namespace). + if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + this.focus(); + return false; + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || Date.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + + which: function( event ) { + var button = event.button; + + // Add which for key events + if ( event.which == null && rkeyEvent.test( event.type ) ) { + return event.charCode != null ? event.charCode : event.keyCode; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { + if ( button & 1 ) { + return 1; + } + + if ( button & 2 ) { + return 3; + } + + if ( button & 4 ) { + return 2; + } + + return 0; + } + + return event.which; + } +}, jQuery.event.addProp ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + /* eslint-disable max-len */ + + // See https://github.com/eslint/eslint/issues/3229 + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + + /* eslint-enable */ + + // Support: IE <=10 - 11, Edge 12 - 13 only + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( elem ).children( "tbody" )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { + elem.type = elem.type.slice( 5 ); + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.access( src ); + pdataCur = dataPriv.set( dest, pdataOld ); + events = pdataOld.events; + + if ( events ) { + delete pdataCur.handle; + pdataCur.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + valueIsFunction = isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( valueIsFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( valueIsFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html.replace( rxhtmlTag, "<$1>" ); + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = jQuery.contains( elem.ownerDocument, elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + +var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + container.style.cssText = "position:absolute;left:-11111px;width:60px;" + + "margin-top:1px;padding:0;border:0"; + div.style.cssText = + "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + + "margin:auto;border:1px;padding:1px;" + + "width:60%;top:1%"; + documentElement.appendChild( container ).appendChild( div ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; + + // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 + // Some styles come back with percentage values, even though they shouldn't + div.style.right = "60%"; + pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; + + // Support: IE 9 - 11 only + // Detect misreporting of content dimensions for box-sizing:border-box elements + boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; + + // Support: IE 9 only + // Detect overflow:scroll screwiness (gh-3699) + div.style.position = "absolute"; + scrollboxSizeVal = div.offsetWidth === 36 || "absolute"; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + function roundPixelMeasures( measure ) { + return Math.round( parseFloat( measure ) ); + } + + var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, + reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + jQuery.extend( support, { + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelBoxStyles: function() { + computeStyleTests(); + return pixelBoxStylesVal; + }, + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + }, + scrollboxSize: function() { + computeStyleTests(); + return scrollboxSizeVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }, + + cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style; + +// Return a css property mapped to a potentially vendor prefixed property +function vendorPropName( name ) { + + // Shortcut for names that are not vendor prefixed + if ( name in emptyStyle ) { + return name; + } + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a property mapped along what jQuery.cssProps suggests or to +// a vendor prefixed property. +function finalPropName( name ) { + var ret = jQuery.cssProps[ name ]; + if ( !ret ) { + ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name; + } + return ret; +} + +function setPositiveNumber( elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { + var i = dimension === "width" ? 1 : 0, + extra = 0, + delta = 0; + + // Adjustment may not be necessary + if ( box === ( isBorderBox ? "border" : "content" ) ) { + return 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin + if ( box === "margin" ) { + delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); + } + + // If we get here with a content-box, we're seeking "padding" or "border" or "margin" + if ( !isBorderBox ) { + + // Add padding + delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // For "border" or "margin", add border + if ( box !== "padding" ) { + delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + + // But still keep track of it otherwise + } else { + extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + + // If we get here with a border-box (content + padding + border), we're seeking "content" or + // "padding" or "margin" + } else { + + // For "content", subtract padding + if ( box === "content" ) { + delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // For "content" or "padding", subtract border + if ( box !== "margin" ) { + delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + // Account for positive content-box scroll gutter when requested by providing computedVal + if ( !isBorderBox && computedVal >= 0 ) { + + // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border + // Assuming integer scroll gutter, subtract the rest and round down + delta += Math.max( 0, Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + computedVal - + delta - + extra - + 0.5 + ) ); + } + + return delta; +} + +function getWidthOrHeight( elem, dimension, extra ) { + + // Start with computed style + var styles = getStyles( elem ), + val = curCSS( elem, dimension, styles ), + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox; + + // Support: Firefox <=54 + // Return a confounding non-pixel value or feign ignorance, as appropriate. + if ( rnumnonpx.test( val ) ) { + if ( !extra ) { + return val; + } + val = "auto"; + } + + // Check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = valueIsBorderBox && + ( support.boxSizingReliable() || val === elem.style[ dimension ] ); + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + if ( val === "auto" || + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) { + + val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ]; + + // offsetWidth/offsetHeight provide border-box values + valueIsBorderBox = true; + } + + // Normalize "" and auto + val = parseFloat( val ) || 0; + + // Adjust for the element's box model + return ( val + + boxModelAdjustment( + elem, + dimension, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles, + + // Provide the current computed size to request scroll gutter calculation (gh-3589) + val + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: {}, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + if ( type === "number" ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( i, dimension ) { + jQuery.cssHooks[ dimension ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = getStyles( elem ), + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + subtract = extra && boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ); + + // Account for unreliable border-box dimensions by comparing offset* to computed and + // faking a content-box to get border and padding (gh-3699) + if ( isBorderBox && support.scrollboxSize() === styles.position ) { + subtract -= Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + parseFloat( styles[ dimension ] ) - + boxModelAdjustment( elem, dimension, "border", false, styles ) - + 0.5 + ); + } + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ dimension ] = value; + value = jQuery.css( elem, dimension ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( prefix !== "margin" ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && + ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || + jQuery.cssHooks[ tween.prop ] ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = Date.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 15 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY and Edge just mirrors + // the overflowX value there. + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + result.stop.bind( result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = Date.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +function classesToArray( value ) { + if ( Array.isArray( value ) ) { + return value; + } + if ( typeof value === "string" ) { + return value.match( rnothtmlwhite ) || []; + } + return []; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isValidValue = type === "string" || Array.isArray( value ); + + if ( typeof stateVal === "boolean" && isValidValue ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( isValidValue ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = classesToArray( value ); + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, valueIsFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + valueIsFunction = isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( valueIsFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +support.focusin = "onfocusin" in window; + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + stopPropagationCallback = function( e ) { + e.stopPropagation(); + }; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = lastElement = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + lastElement = cur; + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + + if ( event.isPropagationStopped() ) { + lastElement.addEventListener( type, stopPropagationCallback ); + } + + elem[ type ](); + + if ( event.isPropagationStopped() ) { + lastElement.removeEventListener( type, stopPropagationCallback ); + } + + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = Date.now(); + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && toType( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ) + .filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ) + .map( function( i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match == null ? null : match; + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 15 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available and should be processed, append data to url + if ( s.data && ( s.processData || typeof s.data === "string" ) ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + + +jQuery._evalUrl = function( url ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + "throws": true + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var htmlIsFunction = isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.ontimeout = + xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain requests + if ( s.crossDomain ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( "

    -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 M!PyElhHi%c2i?*nlmGw# literal 0 HcmV?d00001 diff --git a/news/static/news/css/app.css b/news/static/news/css/app.css new file mode 100644 index 0000000..2f8c76a --- /dev/null +++ b/news/static/news/css/app.css @@ -0,0 +1,65 @@ +@font-face { + font-family: LibreBaskerville; + src: url("LibreBaskerville-Regular.otf") format("opentype"); +} + +body { + background-color:#fff; + font-size:20px; + margin: 0px; + padding: 0px; +} + +.content { + padding: 16px; +} + +.content h1 { + font-family: 'LibreBaskerville'; + font-size: 28px; + margin: 0px; + padding: 0px; +} + +.post { + margin-bottom: 20px; +} + +.comments { + color: #666; + padding: 0px 10px; + background-color: #efe; + border-radius: 16px; +} + +.info { + text-align: right; + padding: 0px 20px; + margin-top: 10px; + font-size: 14px; +} + +header { + /* width: 100%; */ + text-align: center; +} + +header a { + text-decoration: none; + color: #fff; +} + +header h1 { + margin-bottom: 0; +} + +header { + padding: 8px; + background-color: #333; + color: #fff; + /* font-size: 16px; */ +} + +li a { + color: red; +} diff --git a/news/static/news/css/foundation.css b/news/static/news/css/foundation.css new file mode 100644 index 0000000..39f71a0 --- /dev/null +++ b/news/static/news/css/foundation.css @@ -0,0 +1,3912 @@ +@charset "UTF-8"; +/** + * Foundation for Sites by ZURB + * Version 6.5.1 + * foundation.zurb.com + * Licensed under MIT Open Source + */ +@media print, screen and (min-width: 40em) { + .reveal, .reveal.tiny, .reveal.small, .reveal.large { + right: auto; + left: auto; + margin: 0 auto; } } + +/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */ +html { + line-height: 1.15; + -webkit-text-size-adjust: 100%; } + +body { + margin: 0; } + +h1 { + font-size: 2em; + margin: 0.67em 0; } + +hr { + -webkit-box-sizing: content-box; + box-sizing: content-box; + height: 0; + overflow: visible; } + +pre { + font-family: monospace, monospace; + font-size: 1em; } + +a { + background-color: transparent; } + +abbr[title] { + border-bottom: none; + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; } + +b, +strong { + font-weight: bolder; } + +code, +kbd, +samp { + font-family: monospace, monospace; + font-size: 1em; } + +small { + font-size: 80%; } + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; } + +sub { + bottom: -0.25em; } + +sup { + top: -0.5em; } + +img { + border-style: none; } + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + font-size: 100%; + line-height: 1.15; + margin: 0; } + +button, +input { + overflow: visible; } + +button, +select { + text-transform: none; } + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; } + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; } + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; } + +fieldset { + padding: 0.35em 0.75em 0.625em; } + +legend { + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: inherit; + display: table; + max-width: 100%; + padding: 0; + white-space: normal; } + +progress { + vertical-align: baseline; } + +textarea { + overflow: auto; } + +[type="checkbox"], +[type="radio"] { + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 0; } + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; } + +[type="search"] { + -webkit-appearance: textfield; + outline-offset: -2px; } + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; } + +::-webkit-file-upload-button { + -webkit-appearance: button; + font: inherit; } + +details { + display: block; } + +summary { + display: list-item; } + +template { + display: none; } + +[hidden] { + display: none; } + +.foundation-mq { + font-family: "small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"; } + +html { + -webkit-box-sizing: border-box; + box-sizing: border-box; + font-size: 100%; } + +*, +*::before, +*::after { + -webkit-box-sizing: inherit; + box-sizing: inherit; } + +body { + margin: 0; + padding: 0; + background: #fefefe; + font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; + font-weight: normal; + line-height: 1.5; + color: #0a0a0a; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } + +img { + display: inline-block; + vertical-align: middle; + max-width: 100%; + height: auto; + -ms-interpolation-mode: bicubic; } + +textarea { + height: auto; + min-height: 50px; + border-radius: 0; } + +select { + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + border-radius: 0; } + +.map_canvas img, +.map_canvas embed, +.map_canvas object, +.mqa-display img, +.mqa-display embed, +.mqa-display object { + max-width: none !important; } + +button { + padding: 0; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: 0; + border-radius: 0; + background: transparent; + line-height: 1; + cursor: auto; } + [data-whatinput='mouse'] button { + outline: 0; } + +pre { + overflow: auto; } + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; } + +.is-visible { + display: block !important; } + +.is-hidden { + display: none !important; } + +div, +dl, +dt, +dd, +ul, +ol, +li, +h1, +h2, +h3, +h4, +h5, +h6, +pre, +form, +p, +blockquote, +th, +td { + margin: 0; + padding: 0; } + +p { + margin-bottom: 1rem; + font-size: inherit; + line-height: 1.6; + text-rendering: optimizeLegibility; } + +em, +i { + font-style: italic; + line-height: inherit; } + +strong, +b { + font-weight: bold; + line-height: inherit; } + +small { + font-size: 80%; + line-height: inherit; } + +h1, .h1, +h2, .h2, +h3, .h3, +h4, .h4, +h5, .h5, +h6, .h6 { + font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; + font-style: normal; + font-weight: normal; + color: inherit; + text-rendering: optimizeLegibility; } + h1 small, .h1 small, + h2 small, .h2 small, + h3 small, .h3 small, + h4 small, .h4 small, + h5 small, .h5 small, + h6 small, .h6 small { + line-height: 0; + color: #cacaca; } + +h1, .h1 { + font-size: 1.5rem; + line-height: 1.4; + margin-top: 0; + margin-bottom: 0.5rem; } + +h2, .h2 { + font-size: 1.25rem; + line-height: 1.4; + margin-top: 0; + margin-bottom: 0.5rem; } + +h3, .h3 { + font-size: 1.1875rem; + line-height: 1.4; + margin-top: 0; + margin-bottom: 0.5rem; } + +h4, .h4 { + font-size: 1.125rem; + line-height: 1.4; + margin-top: 0; + margin-bottom: 0.5rem; } + +h5, .h5 { + font-size: 1.0625rem; + line-height: 1.4; + margin-top: 0; + margin-bottom: 0.5rem; } + +h6, .h6 { + font-size: 1rem; + line-height: 1.4; + margin-top: 0; + margin-bottom: 0.5rem; } + +@media print, screen and (min-width: 40em) { + h1, .h1 { + font-size: 3rem; } + h2, .h2 { + font-size: 2.5rem; } + h3, .h3 { + font-size: 1.9375rem; } + h4, .h4 { + font-size: 1.5625rem; } + h5, .h5 { + font-size: 1.25rem; } + h6, .h6 { + font-size: 1rem; } } + +a { + line-height: inherit; + color: #1779ba; + text-decoration: none; + cursor: pointer; } + a:hover, a:focus { + color: #1468a0; } + a img { + border: 0; } + +hr { + clear: both; + max-width: 75rem; + height: 0; + margin: 1.25rem auto; + border-top: 0; + border-right: 0; + border-bottom: 1px solid #cacaca; + border-left: 0; } + +ul, +ol, +dl { + margin-bottom: 1rem; + list-style-position: outside; + line-height: 1.6; } + +li { + font-size: inherit; } + +ul { + margin-left: 1.25rem; + list-style-type: disc; } + +ol { + margin-left: 1.25rem; } + +ul ul, ol ul, ul ol, ol ol { + margin-left: 1.25rem; + margin-bottom: 0; } + +dl { + margin-bottom: 1rem; } + dl dt { + margin-bottom: 0.3rem; + font-weight: bold; } + +blockquote { + margin: 0 0 1rem; + padding: 0.5625rem 1.25rem 0 1.1875rem; + border-left: 1px solid #cacaca; } + blockquote, blockquote p { + line-height: 1.6; + color: #8a8a8a; } + +cite { + display: block; + font-size: 0.8125rem; + color: #8a8a8a; } + cite:before { + content: "— "; } + +abbr, abbr[title] { + border-bottom: 1px dotted #0a0a0a; + cursor: help; + text-decoration: none; } + +figure { + margin: 0; } + +code { + padding: 0.125rem 0.3125rem 0.0625rem; + border: 1px solid #cacaca; + background-color: #e6e6e6; + font-family: Consolas, "Liberation Mono", Courier, monospace; + font-weight: normal; + color: #0a0a0a; } + +kbd { + margin: 0; + padding: 0.125rem 0.25rem 0; + background-color: #e6e6e6; + font-family: Consolas, "Liberation Mono", Courier, monospace; + color: #0a0a0a; } + +.subheader { + margin-top: 0.2rem; + margin-bottom: 0.5rem; + font-weight: normal; + line-height: 1.4; + color: #8a8a8a; } + +.lead { + font-size: 125%; + line-height: 1.6; } + +.stat { + font-size: 2.5rem; + line-height: 1; } + p + .stat { + margin-top: -1rem; } + +ul.no-bullet, ol.no-bullet { + margin-left: 0; + list-style: none; } + +.text-left { + text-align: left; } + +.text-right { + text-align: right; } + +.text-center { + text-align: center; } + +.text-justify { + text-align: justify; } + +@media print, screen and (min-width: 40em) { + .medium-text-left { + text-align: left; } + .medium-text-right { + text-align: right; } + .medium-text-center { + text-align: center; } + .medium-text-justify { + text-align: justify; } } + +@media print, screen and (min-width: 64em) { + .large-text-left { + text-align: left; } + .large-text-right { + text-align: right; } + .large-text-center { + text-align: center; } + .large-text-justify { + text-align: justify; } } + +.show-for-print { + display: none !important; } + +@media print { + * { + background: transparent !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; + color: black !important; + text-shadow: none !important; } + .show-for-print { + display: block !important; } + .hide-for-print { + display: none !important; } + table.show-for-print { + display: table !important; } + thead.show-for-print { + display: table-header-group !important; } + tbody.show-for-print { + display: table-row-group !important; } + tr.show-for-print { + display: table-row !important; } + td.show-for-print { + display: table-cell !important; } + th.show-for-print { + display: table-cell !important; } + a, + a:visited { + text-decoration: underline; } + a[href]:after { + content: " (" attr(href) ")"; } + .ir a:after, + a[href^='javascript:']:after, + a[href^='#']:after { + content: ''; } + abbr[title]:after { + content: " (" attr(title) ")"; } + pre, + blockquote { + border: 1px solid #8a8a8a; + page-break-inside: avoid; } + thead { + display: table-header-group; } + tr, + img { + page-break-inside: avoid; } + img { + max-width: 100% !important; } + @page { + margin: 0.5cm; } + p, + h2, + h3 { + orphans: 3; + widows: 3; } + h2, + h3 { + page-break-after: avoid; } + .print-break-inside { + page-break-inside: auto; } } + +.grid-container { + padding-right: 0.625rem; + padding-left: 0.625rem; + max-width: 75rem; + margin: 0 auto; } + @media print, screen and (min-width: 40em) { + .grid-container { + padding-right: 0.9375rem; + padding-left: 0.9375rem; } } + .grid-container.fluid { + padding-right: 0.625rem; + padding-left: 0.625rem; + max-width: 100%; + margin: 0 auto; } + @media print, screen and (min-width: 40em) { + .grid-container.fluid { + padding-right: 0.9375rem; + padding-left: 0.9375rem; } } + .grid-container.full { + padding-right: 0; + padding-left: 0; + max-width: 100%; + margin: 0 auto; } + +.grid-x { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-flow: row wrap; + -ms-flex-flow: row wrap; + flex-flow: row wrap; } + +.cell { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + min-height: 0px; + min-width: 0px; + width: 100%; } + .cell.auto { + -webkit-box-flex: 1; + -webkit-flex: 1 1 0px; + -ms-flex: 1 1 0px; + flex: 1 1 0px; } + .cell.shrink { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; } + +.grid-x > .auto { + width: auto; } + +.grid-x > .shrink { + width: auto; } + +.grid-x > .small-shrink, .grid-x > .small-full, .grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 { + -webkit-flex-basis: auto; + -ms-flex-preferred-size: auto; + flex-basis: auto; } + +@media print, screen and (min-width: 40em) { + .grid-x > .medium-shrink, .grid-x > .medium-full, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 { + -webkit-flex-basis: auto; + -ms-flex-preferred-size: auto; + flex-basis: auto; } } + +@media print, screen and (min-width: 64em) { + .grid-x > .large-shrink, .grid-x > .large-full, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 { + -webkit-flex-basis: auto; + -ms-flex-preferred-size: auto; + flex-basis: auto; } } + +.grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; } + +.grid-x > .small-1 { + width: 8.33333%; } + +.grid-x > .small-2 { + width: 16.66667%; } + +.grid-x > .small-3 { + width: 25%; } + +.grid-x > .small-4 { + width: 33.33333%; } + +.grid-x > .small-5 { + width: 41.66667%; } + +.grid-x > .small-6 { + width: 50%; } + +.grid-x > .small-7 { + width: 58.33333%; } + +.grid-x > .small-8 { + width: 66.66667%; } + +.grid-x > .small-9 { + width: 75%; } + +.grid-x > .small-10 { + width: 83.33333%; } + +.grid-x > .small-11 { + width: 91.66667%; } + +.grid-x > .small-12 { + width: 100%; } + +@media print, screen and (min-width: 40em) { + .grid-x > .medium-auto { + -webkit-box-flex: 1; + -webkit-flex: 1 1 0px; + -ms-flex: 1 1 0px; + flex: 1 1 0px; + width: auto; } + .grid-x > .medium-shrink, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; } + .grid-x > .medium-shrink { + width: auto; } + .grid-x > .medium-1 { + width: 8.33333%; } + .grid-x > .medium-2 { + width: 16.66667%; } + .grid-x > .medium-3 { + width: 25%; } + .grid-x > .medium-4 { + width: 33.33333%; } + .grid-x > .medium-5 { + width: 41.66667%; } + .grid-x > .medium-6 { + width: 50%; } + .grid-x > .medium-7 { + width: 58.33333%; } + .grid-x > .medium-8 { + width: 66.66667%; } + .grid-x > .medium-9 { + width: 75%; } + .grid-x > .medium-10 { + width: 83.33333%; } + .grid-x > .medium-11 { + width: 91.66667%; } + .grid-x > .medium-12 { + width: 100%; } } + +@media print, screen and (min-width: 64em) { + .grid-x > .large-auto { + -webkit-box-flex: 1; + -webkit-flex: 1 1 0px; + -ms-flex: 1 1 0px; + flex: 1 1 0px; + width: auto; } + .grid-x > .large-shrink, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; } + .grid-x > .large-shrink { + width: auto; } + .grid-x > .large-1 { + width: 8.33333%; } + .grid-x > .large-2 { + width: 16.66667%; } + .grid-x > .large-3 { + width: 25%; } + .grid-x > .large-4 { + width: 33.33333%; } + .grid-x > .large-5 { + width: 41.66667%; } + .grid-x > .large-6 { + width: 50%; } + .grid-x > .large-7 { + width: 58.33333%; } + .grid-x > .large-8 { + width: 66.66667%; } + .grid-x > .large-9 { + width: 75%; } + .grid-x > .large-10 { + width: 83.33333%; } + .grid-x > .large-11 { + width: 91.66667%; } + .grid-x > .large-12 { + width: 100%; } } + +.grid-margin-x:not(.grid-x) > .cell { + width: auto; } + +.grid-margin-y:not(.grid-y) > .cell { + height: auto; } + +.grid-margin-x { + margin-left: -0.625rem; + margin-right: -0.625rem; } + @media print, screen and (min-width: 40em) { + .grid-margin-x { + margin-left: -0.9375rem; + margin-right: -0.9375rem; } } + .grid-margin-x > .cell { + width: calc(100% - 1.25rem); + margin-left: 0.625rem; + margin-right: 0.625rem; } + @media print, screen and (min-width: 40em) { + .grid-margin-x > .cell { + width: calc(100% - 1.875rem); + margin-left: 0.9375rem; + margin-right: 0.9375rem; } } + .grid-margin-x > .auto { + width: auto; } + .grid-margin-x > .shrink { + width: auto; } + .grid-margin-x > .small-1 { + width: calc(8.33333% - 1.25rem); } + .grid-margin-x > .small-2 { + width: calc(16.66667% - 1.25rem); } + .grid-margin-x > .small-3 { + width: calc(25% - 1.25rem); } + .grid-margin-x > .small-4 { + width: calc(33.33333% - 1.25rem); } + .grid-margin-x > .small-5 { + width: calc(41.66667% - 1.25rem); } + .grid-margin-x > .small-6 { + width: calc(50% - 1.25rem); } + .grid-margin-x > .small-7 { + width: calc(58.33333% - 1.25rem); } + .grid-margin-x > .small-8 { + width: calc(66.66667% - 1.25rem); } + .grid-margin-x > .small-9 { + width: calc(75% - 1.25rem); } + .grid-margin-x > .small-10 { + width: calc(83.33333% - 1.25rem); } + .grid-margin-x > .small-11 { + width: calc(91.66667% - 1.25rem); } + .grid-margin-x > .small-12 { + width: calc(100% - 1.25rem); } + @media print, screen and (min-width: 40em) { + .grid-margin-x > .auto { + width: auto; } + .grid-margin-x > .shrink { + width: auto; } + .grid-margin-x > .small-1 { + width: calc(8.33333% - 1.875rem); } + .grid-margin-x > .small-2 { + width: calc(16.66667% - 1.875rem); } + .grid-margin-x > .small-3 { + width: calc(25% - 1.875rem); } + .grid-margin-x > .small-4 { + width: calc(33.33333% - 1.875rem); } + .grid-margin-x > .small-5 { + width: calc(41.66667% - 1.875rem); } + .grid-margin-x > .small-6 { + width: calc(50% - 1.875rem); } + .grid-margin-x > .small-7 { + width: calc(58.33333% - 1.875rem); } + .grid-margin-x > .small-8 { + width: calc(66.66667% - 1.875rem); } + .grid-margin-x > .small-9 { + width: calc(75% - 1.875rem); } + .grid-margin-x > .small-10 { + width: calc(83.33333% - 1.875rem); } + .grid-margin-x > .small-11 { + width: calc(91.66667% - 1.875rem); } + .grid-margin-x > .small-12 { + width: calc(100% - 1.875rem); } + .grid-margin-x > .medium-auto { + width: auto; } + .grid-margin-x > .medium-shrink { + width: auto; } + .grid-margin-x > .medium-1 { + width: calc(8.33333% - 1.875rem); } + .grid-margin-x > .medium-2 { + width: calc(16.66667% - 1.875rem); } + .grid-margin-x > .medium-3 { + width: calc(25% - 1.875rem); } + .grid-margin-x > .medium-4 { + width: calc(33.33333% - 1.875rem); } + .grid-margin-x > .medium-5 { + width: calc(41.66667% - 1.875rem); } + .grid-margin-x > .medium-6 { + width: calc(50% - 1.875rem); } + .grid-margin-x > .medium-7 { + width: calc(58.33333% - 1.875rem); } + .grid-margin-x > .medium-8 { + width: calc(66.66667% - 1.875rem); } + .grid-margin-x > .medium-9 { + width: calc(75% - 1.875rem); } + .grid-margin-x > .medium-10 { + width: calc(83.33333% - 1.875rem); } + .grid-margin-x > .medium-11 { + width: calc(91.66667% - 1.875rem); } + .grid-margin-x > .medium-12 { + width: calc(100% - 1.875rem); } } + @media print, screen and (min-width: 64em) { + .grid-margin-x > .large-auto { + width: auto; } + .grid-margin-x > .large-shrink { + width: auto; } + .grid-margin-x > .large-1 { + width: calc(8.33333% - 1.875rem); } + .grid-margin-x > .large-2 { + width: calc(16.66667% - 1.875rem); } + .grid-margin-x > .large-3 { + width: calc(25% - 1.875rem); } + .grid-margin-x > .large-4 { + width: calc(33.33333% - 1.875rem); } + .grid-margin-x > .large-5 { + width: calc(41.66667% - 1.875rem); } + .grid-margin-x > .large-6 { + width: calc(50% - 1.875rem); } + .grid-margin-x > .large-7 { + width: calc(58.33333% - 1.875rem); } + .grid-margin-x > .large-8 { + width: calc(66.66667% - 1.875rem); } + .grid-margin-x > .large-9 { + width: calc(75% - 1.875rem); } + .grid-margin-x > .large-10 { + width: calc(83.33333% - 1.875rem); } + .grid-margin-x > .large-11 { + width: calc(91.66667% - 1.875rem); } + .grid-margin-x > .large-12 { + width: calc(100% - 1.875rem); } } + +.grid-padding-x .grid-padding-x { + margin-right: -0.625rem; + margin-left: -0.625rem; } + @media print, screen and (min-width: 40em) { + .grid-padding-x .grid-padding-x { + margin-right: -0.9375rem; + margin-left: -0.9375rem; } } + +.grid-container:not(.full) > .grid-padding-x { + margin-right: -0.625rem; + margin-left: -0.625rem; } + @media print, screen and (min-width: 40em) { + .grid-container:not(.full) > .grid-padding-x { + margin-right: -0.9375rem; + margin-left: -0.9375rem; } } + +.grid-padding-x > .cell { + padding-right: 0.625rem; + padding-left: 0.625rem; } + @media print, screen and (min-width: 40em) { + .grid-padding-x > .cell { + padding-right: 0.9375rem; + padding-left: 0.9375rem; } } + +.small-up-1 > .cell { + width: 100%; } + +.small-up-2 > .cell { + width: 50%; } + +.small-up-3 > .cell { + width: 33.33333%; } + +.small-up-4 > .cell { + width: 25%; } + +.small-up-5 > .cell { + width: 20%; } + +.small-up-6 > .cell { + width: 16.66667%; } + +.small-up-7 > .cell { + width: 14.28571%; } + +.small-up-8 > .cell { + width: 12.5%; } + +@media print, screen and (min-width: 40em) { + .medium-up-1 > .cell { + width: 100%; } + .medium-up-2 > .cell { + width: 50%; } + .medium-up-3 > .cell { + width: 33.33333%; } + .medium-up-4 > .cell { + width: 25%; } + .medium-up-5 > .cell { + width: 20%; } + .medium-up-6 > .cell { + width: 16.66667%; } + .medium-up-7 > .cell { + width: 14.28571%; } + .medium-up-8 > .cell { + width: 12.5%; } } + +@media print, screen and (min-width: 64em) { + .large-up-1 > .cell { + width: 100%; } + .large-up-2 > .cell { + width: 50%; } + .large-up-3 > .cell { + width: 33.33333%; } + .large-up-4 > .cell { + width: 25%; } + .large-up-5 > .cell { + width: 20%; } + .large-up-6 > .cell { + width: 16.66667%; } + .large-up-7 > .cell { + width: 14.28571%; } + .large-up-8 > .cell { + width: 12.5%; } } + +.grid-margin-x.small-up-1 > .cell { + width: calc(100% - 1.25rem); } + +.grid-margin-x.small-up-2 > .cell { + width: calc(50% - 1.25rem); } + +.grid-margin-x.small-up-3 > .cell { + width: calc(33.33333% - 1.25rem); } + +.grid-margin-x.small-up-4 > .cell { + width: calc(25% - 1.25rem); } + +.grid-margin-x.small-up-5 > .cell { + width: calc(20% - 1.25rem); } + +.grid-margin-x.small-up-6 > .cell { + width: calc(16.66667% - 1.25rem); } + +.grid-margin-x.small-up-7 > .cell { + width: calc(14.28571% - 1.25rem); } + +.grid-margin-x.small-up-8 > .cell { + width: calc(12.5% - 1.25rem); } + +@media print, screen and (min-width: 40em) { + .grid-margin-x.small-up-1 > .cell { + width: calc(100% - 1.875rem); } + .grid-margin-x.small-up-2 > .cell { + width: calc(50% - 1.875rem); } + .grid-margin-x.small-up-3 > .cell { + width: calc(33.33333% - 1.875rem); } + .grid-margin-x.small-up-4 > .cell { + width: calc(25% - 1.875rem); } + .grid-margin-x.small-up-5 > .cell { + width: calc(20% - 1.875rem); } + .grid-margin-x.small-up-6 > .cell { + width: calc(16.66667% - 1.875rem); } + .grid-margin-x.small-up-7 > .cell { + width: calc(14.28571% - 1.875rem); } + .grid-margin-x.small-up-8 > .cell { + width: calc(12.5% - 1.875rem); } + .grid-margin-x.medium-up-1 > .cell { + width: calc(100% - 1.875rem); } + .grid-margin-x.medium-up-2 > .cell { + width: calc(50% - 1.875rem); } + .grid-margin-x.medium-up-3 > .cell { + width: calc(33.33333% - 1.875rem); } + .grid-margin-x.medium-up-4 > .cell { + width: calc(25% - 1.875rem); } + .grid-margin-x.medium-up-5 > .cell { + width: calc(20% - 1.875rem); } + .grid-margin-x.medium-up-6 > .cell { + width: calc(16.66667% - 1.875rem); } + .grid-margin-x.medium-up-7 > .cell { + width: calc(14.28571% - 1.875rem); } + .grid-margin-x.medium-up-8 > .cell { + width: calc(12.5% - 1.875rem); } } + +@media print, screen and (min-width: 64em) { + .grid-margin-x.large-up-1 > .cell { + width: calc(100% - 1.875rem); } + .grid-margin-x.large-up-2 > .cell { + width: calc(50% - 1.875rem); } + .grid-margin-x.large-up-3 > .cell { + width: calc(33.33333% - 1.875rem); } + .grid-margin-x.large-up-4 > .cell { + width: calc(25% - 1.875rem); } + .grid-margin-x.large-up-5 > .cell { + width: calc(20% - 1.875rem); } + .grid-margin-x.large-up-6 > .cell { + width: calc(16.66667% - 1.875rem); } + .grid-margin-x.large-up-7 > .cell { + width: calc(14.28571% - 1.875rem); } + .grid-margin-x.large-up-8 > .cell { + width: calc(12.5% - 1.875rem); } } + +.small-margin-collapse { + margin-right: 0; + margin-left: 0; } + .small-margin-collapse > .cell { + margin-right: 0; + margin-left: 0; } + .small-margin-collapse > .small-1 { + width: 8.33333%; } + .small-margin-collapse > .small-2 { + width: 16.66667%; } + .small-margin-collapse > .small-3 { + width: 25%; } + .small-margin-collapse > .small-4 { + width: 33.33333%; } + .small-margin-collapse > .small-5 { + width: 41.66667%; } + .small-margin-collapse > .small-6 { + width: 50%; } + .small-margin-collapse > .small-7 { + width: 58.33333%; } + .small-margin-collapse > .small-8 { + width: 66.66667%; } + .small-margin-collapse > .small-9 { + width: 75%; } + .small-margin-collapse > .small-10 { + width: 83.33333%; } + .small-margin-collapse > .small-11 { + width: 91.66667%; } + .small-margin-collapse > .small-12 { + width: 100%; } + @media print, screen and (min-width: 40em) { + .small-margin-collapse > .medium-1 { + width: 8.33333%; } + .small-margin-collapse > .medium-2 { + width: 16.66667%; } + .small-margin-collapse > .medium-3 { + width: 25%; } + .small-margin-collapse > .medium-4 { + width: 33.33333%; } + .small-margin-collapse > .medium-5 { + width: 41.66667%; } + .small-margin-collapse > .medium-6 { + width: 50%; } + .small-margin-collapse > .medium-7 { + width: 58.33333%; } + .small-margin-collapse > .medium-8 { + width: 66.66667%; } + .small-margin-collapse > .medium-9 { + width: 75%; } + .small-margin-collapse > .medium-10 { + width: 83.33333%; } + .small-margin-collapse > .medium-11 { + width: 91.66667%; } + .small-margin-collapse > .medium-12 { + width: 100%; } } + @media print, screen and (min-width: 64em) { + .small-margin-collapse > .large-1 { + width: 8.33333%; } + .small-margin-collapse > .large-2 { + width: 16.66667%; } + .small-margin-collapse > .large-3 { + width: 25%; } + .small-margin-collapse > .large-4 { + width: 33.33333%; } + .small-margin-collapse > .large-5 { + width: 41.66667%; } + .small-margin-collapse > .large-6 { + width: 50%; } + .small-margin-collapse > .large-7 { + width: 58.33333%; } + .small-margin-collapse > .large-8 { + width: 66.66667%; } + .small-margin-collapse > .large-9 { + width: 75%; } + .small-margin-collapse > .large-10 { + width: 83.33333%; } + .small-margin-collapse > .large-11 { + width: 91.66667%; } + .small-margin-collapse > .large-12 { + width: 100%; } } + +.small-padding-collapse { + margin-right: 0; + margin-left: 0; } + .small-padding-collapse > .cell { + padding-right: 0; + padding-left: 0; } + +@media print, screen and (min-width: 40em) { + .medium-margin-collapse { + margin-right: 0; + margin-left: 0; } + .medium-margin-collapse > .cell { + margin-right: 0; + margin-left: 0; } } + +@media print, screen and (min-width: 40em) { + .medium-margin-collapse > .small-1 { + width: 8.33333%; } + .medium-margin-collapse > .small-2 { + width: 16.66667%; } + .medium-margin-collapse > .small-3 { + width: 25%; } + .medium-margin-collapse > .small-4 { + width: 33.33333%; } + .medium-margin-collapse > .small-5 { + width: 41.66667%; } + .medium-margin-collapse > .small-6 { + width: 50%; } + .medium-margin-collapse > .small-7 { + width: 58.33333%; } + .medium-margin-collapse > .small-8 { + width: 66.66667%; } + .medium-margin-collapse > .small-9 { + width: 75%; } + .medium-margin-collapse > .small-10 { + width: 83.33333%; } + .medium-margin-collapse > .small-11 { + width: 91.66667%; } + .medium-margin-collapse > .small-12 { + width: 100%; } } + +@media print, screen and (min-width: 40em) { + .medium-margin-collapse > .medium-1 { + width: 8.33333%; } + .medium-margin-collapse > .medium-2 { + width: 16.66667%; } + .medium-margin-collapse > .medium-3 { + width: 25%; } + .medium-margin-collapse > .medium-4 { + width: 33.33333%; } + .medium-margin-collapse > .medium-5 { + width: 41.66667%; } + .medium-margin-collapse > .medium-6 { + width: 50%; } + .medium-margin-collapse > .medium-7 { + width: 58.33333%; } + .medium-margin-collapse > .medium-8 { + width: 66.66667%; } + .medium-margin-collapse > .medium-9 { + width: 75%; } + .medium-margin-collapse > .medium-10 { + width: 83.33333%; } + .medium-margin-collapse > .medium-11 { + width: 91.66667%; } + .medium-margin-collapse > .medium-12 { + width: 100%; } } + +@media print, screen and (min-width: 64em) { + .medium-margin-collapse > .large-1 { + width: 8.33333%; } + .medium-margin-collapse > .large-2 { + width: 16.66667%; } + .medium-margin-collapse > .large-3 { + width: 25%; } + .medium-margin-collapse > .large-4 { + width: 33.33333%; } + .medium-margin-collapse > .large-5 { + width: 41.66667%; } + .medium-margin-collapse > .large-6 { + width: 50%; } + .medium-margin-collapse > .large-7 { + width: 58.33333%; } + .medium-margin-collapse > .large-8 { + width: 66.66667%; } + .medium-margin-collapse > .large-9 { + width: 75%; } + .medium-margin-collapse > .large-10 { + width: 83.33333%; } + .medium-margin-collapse > .large-11 { + width: 91.66667%; } + .medium-margin-collapse > .large-12 { + width: 100%; } } + +@media print, screen and (min-width: 40em) { + .medium-padding-collapse { + margin-right: 0; + margin-left: 0; } + .medium-padding-collapse > .cell { + padding-right: 0; + padding-left: 0; } } + +@media print, screen and (min-width: 64em) { + .large-margin-collapse { + margin-right: 0; + margin-left: 0; } + .large-margin-collapse > .cell { + margin-right: 0; + margin-left: 0; } } + +@media print, screen and (min-width: 64em) { + .large-margin-collapse > .small-1 { + width: 8.33333%; } + .large-margin-collapse > .small-2 { + width: 16.66667%; } + .large-margin-collapse > .small-3 { + width: 25%; } + .large-margin-collapse > .small-4 { + width: 33.33333%; } + .large-margin-collapse > .small-5 { + width: 41.66667%; } + .large-margin-collapse > .small-6 { + width: 50%; } + .large-margin-collapse > .small-7 { + width: 58.33333%; } + .large-margin-collapse > .small-8 { + width: 66.66667%; } + .large-margin-collapse > .small-9 { + width: 75%; } + .large-margin-collapse > .small-10 { + width: 83.33333%; } + .large-margin-collapse > .small-11 { + width: 91.66667%; } + .large-margin-collapse > .small-12 { + width: 100%; } } + +@media print, screen and (min-width: 64em) { + .large-margin-collapse > .medium-1 { + width: 8.33333%; } + .large-margin-collapse > .medium-2 { + width: 16.66667%; } + .large-margin-collapse > .medium-3 { + width: 25%; } + .large-margin-collapse > .medium-4 { + width: 33.33333%; } + .large-margin-collapse > .medium-5 { + width: 41.66667%; } + .large-margin-collapse > .medium-6 { + width: 50%; } + .large-margin-collapse > .medium-7 { + width: 58.33333%; } + .large-margin-collapse > .medium-8 { + width: 66.66667%; } + .large-margin-collapse > .medium-9 { + width: 75%; } + .large-margin-collapse > .medium-10 { + width: 83.33333%; } + .large-margin-collapse > .medium-11 { + width: 91.66667%; } + .large-margin-collapse > .medium-12 { + width: 100%; } } + +@media print, screen and (min-width: 64em) { + .large-margin-collapse > .large-1 { + width: 8.33333%; } + .large-margin-collapse > .large-2 { + width: 16.66667%; } + .large-margin-collapse > .large-3 { + width: 25%; } + .large-margin-collapse > .large-4 { + width: 33.33333%; } + .large-margin-collapse > .large-5 { + width: 41.66667%; } + .large-margin-collapse > .large-6 { + width: 50%; } + .large-margin-collapse > .large-7 { + width: 58.33333%; } + .large-margin-collapse > .large-8 { + width: 66.66667%; } + .large-margin-collapse > .large-9 { + width: 75%; } + .large-margin-collapse > .large-10 { + width: 83.33333%; } + .large-margin-collapse > .large-11 { + width: 91.66667%; } + .large-margin-collapse > .large-12 { + width: 100%; } } + +@media print, screen and (min-width: 64em) { + .large-padding-collapse { + margin-right: 0; + margin-left: 0; } + .large-padding-collapse > .cell { + padding-right: 0; + padding-left: 0; } } + +.small-offset-0 { + margin-left: 0%; } + +.grid-margin-x > .small-offset-0 { + margin-left: calc(0% + 0.625rem); } + +.small-offset-1 { + margin-left: 8.33333%; } + +.grid-margin-x > .small-offset-1 { + margin-left: calc(8.33333% + 0.625rem); } + +.small-offset-2 { + margin-left: 16.66667%; } + +.grid-margin-x > .small-offset-2 { + margin-left: calc(16.66667% + 0.625rem); } + +.small-offset-3 { + margin-left: 25%; } + +.grid-margin-x > .small-offset-3 { + margin-left: calc(25% + 0.625rem); } + +.small-offset-4 { + margin-left: 33.33333%; } + +.grid-margin-x > .small-offset-4 { + margin-left: calc(33.33333% + 0.625rem); } + +.small-offset-5 { + margin-left: 41.66667%; } + +.grid-margin-x > .small-offset-5 { + margin-left: calc(41.66667% + 0.625rem); } + +.small-offset-6 { + margin-left: 50%; } + +.grid-margin-x > .small-offset-6 { + margin-left: calc(50% + 0.625rem); } + +.small-offset-7 { + margin-left: 58.33333%; } + +.grid-margin-x > .small-offset-7 { + margin-left: calc(58.33333% + 0.625rem); } + +.small-offset-8 { + margin-left: 66.66667%; } + +.grid-margin-x > .small-offset-8 { + margin-left: calc(66.66667% + 0.625rem); } + +.small-offset-9 { + margin-left: 75%; } + +.grid-margin-x > .small-offset-9 { + margin-left: calc(75% + 0.625rem); } + +.small-offset-10 { + margin-left: 83.33333%; } + +.grid-margin-x > .small-offset-10 { + margin-left: calc(83.33333% + 0.625rem); } + +.small-offset-11 { + margin-left: 91.66667%; } + +.grid-margin-x > .small-offset-11 { + margin-left: calc(91.66667% + 0.625rem); } + +@media print, screen and (min-width: 40em) { + .medium-offset-0 { + margin-left: 0%; } + .grid-margin-x > .medium-offset-0 { + margin-left: calc(0% + 0.9375rem); } + .medium-offset-1 { + margin-left: 8.33333%; } + .grid-margin-x > .medium-offset-1 { + margin-left: calc(8.33333% + 0.9375rem); } + .medium-offset-2 { + margin-left: 16.66667%; } + .grid-margin-x > .medium-offset-2 { + margin-left: calc(16.66667% + 0.9375rem); } + .medium-offset-3 { + margin-left: 25%; } + .grid-margin-x > .medium-offset-3 { + margin-left: calc(25% + 0.9375rem); } + .medium-offset-4 { + margin-left: 33.33333%; } + .grid-margin-x > .medium-offset-4 { + margin-left: calc(33.33333% + 0.9375rem); } + .medium-offset-5 { + margin-left: 41.66667%; } + .grid-margin-x > .medium-offset-5 { + margin-left: calc(41.66667% + 0.9375rem); } + .medium-offset-6 { + margin-left: 50%; } + .grid-margin-x > .medium-offset-6 { + margin-left: calc(50% + 0.9375rem); } + .medium-offset-7 { + margin-left: 58.33333%; } + .grid-margin-x > .medium-offset-7 { + margin-left: calc(58.33333% + 0.9375rem); } + .medium-offset-8 { + margin-left: 66.66667%; } + .grid-margin-x > .medium-offset-8 { + margin-left: calc(66.66667% + 0.9375rem); } + .medium-offset-9 { + margin-left: 75%; } + .grid-margin-x > .medium-offset-9 { + margin-left: calc(75% + 0.9375rem); } + .medium-offset-10 { + margin-left: 83.33333%; } + .grid-margin-x > .medium-offset-10 { + margin-left: calc(83.33333% + 0.9375rem); } + .medium-offset-11 { + margin-left: 91.66667%; } + .grid-margin-x > .medium-offset-11 { + margin-left: calc(91.66667% + 0.9375rem); } } + +@media print, screen and (min-width: 64em) { + .large-offset-0 { + margin-left: 0%; } + .grid-margin-x > .large-offset-0 { + margin-left: calc(0% + 0.9375rem); } + .large-offset-1 { + margin-left: 8.33333%; } + .grid-margin-x > .large-offset-1 { + margin-left: calc(8.33333% + 0.9375rem); } + .large-offset-2 { + margin-left: 16.66667%; } + .grid-margin-x > .large-offset-2 { + margin-left: calc(16.66667% + 0.9375rem); } + .large-offset-3 { + margin-left: 25%; } + .grid-margin-x > .large-offset-3 { + margin-left: calc(25% + 0.9375rem); } + .large-offset-4 { + margin-left: 33.33333%; } + .grid-margin-x > .large-offset-4 { + margin-left: calc(33.33333% + 0.9375rem); } + .large-offset-5 { + margin-left: 41.66667%; } + .grid-margin-x > .large-offset-5 { + margin-left: calc(41.66667% + 0.9375rem); } + .large-offset-6 { + margin-left: 50%; } + .grid-margin-x > .large-offset-6 { + margin-left: calc(50% + 0.9375rem); } + .large-offset-7 { + margin-left: 58.33333%; } + .grid-margin-x > .large-offset-7 { + margin-left: calc(58.33333% + 0.9375rem); } + .large-offset-8 { + margin-left: 66.66667%; } + .grid-margin-x > .large-offset-8 { + margin-left: calc(66.66667% + 0.9375rem); } + .large-offset-9 { + margin-left: 75%; } + .grid-margin-x > .large-offset-9 { + margin-left: calc(75% + 0.9375rem); } + .large-offset-10 { + margin-left: 83.33333%; } + .grid-margin-x > .large-offset-10 { + margin-left: calc(83.33333% + 0.9375rem); } + .large-offset-11 { + margin-left: 91.66667%; } + .grid-margin-x > .large-offset-11 { + margin-left: calc(91.66667% + 0.9375rem); } } + +.grid-y { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-flow: column nowrap; + -ms-flex-flow: column nowrap; + flex-flow: column nowrap; } + .grid-y > .cell { + width: auto; + max-width: none; } + .grid-y > .auto { + height: auto; } + .grid-y > .shrink { + height: auto; } + .grid-y > .small-shrink, .grid-y > .small-full, .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 { + -webkit-flex-basis: auto; + -ms-flex-preferred-size: auto; + flex-basis: auto; } + @media print, screen and (min-width: 40em) { + .grid-y > .medium-shrink, .grid-y > .medium-full, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 { + -webkit-flex-basis: auto; + -ms-flex-preferred-size: auto; + flex-basis: auto; } } + @media print, screen and (min-width: 64em) { + .grid-y > .large-shrink, .grid-y > .large-full, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 { + -webkit-flex-basis: auto; + -ms-flex-preferred-size: auto; + flex-basis: auto; } } + .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; } + .grid-y > .small-1 { + height: 8.33333%; } + .grid-y > .small-2 { + height: 16.66667%; } + .grid-y > .small-3 { + height: 25%; } + .grid-y > .small-4 { + height: 33.33333%; } + .grid-y > .small-5 { + height: 41.66667%; } + .grid-y > .small-6 { + height: 50%; } + .grid-y > .small-7 { + height: 58.33333%; } + .grid-y > .small-8 { + height: 66.66667%; } + .grid-y > .small-9 { + height: 75%; } + .grid-y > .small-10 { + height: 83.33333%; } + .grid-y > .small-11 { + height: 91.66667%; } + .grid-y > .small-12 { + height: 100%; } + @media print, screen and (min-width: 40em) { + .grid-y > .medium-auto { + -webkit-box-flex: 1; + -webkit-flex: 1 1 0px; + -ms-flex: 1 1 0px; + flex: 1 1 0px; + height: auto; } + .grid-y > .medium-shrink, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; } + .grid-y > .medium-shrink { + height: auto; } + .grid-y > .medium-1 { + height: 8.33333%; } + .grid-y > .medium-2 { + height: 16.66667%; } + .grid-y > .medium-3 { + height: 25%; } + .grid-y > .medium-4 { + height: 33.33333%; } + .grid-y > .medium-5 { + height: 41.66667%; } + .grid-y > .medium-6 { + height: 50%; } + .grid-y > .medium-7 { + height: 58.33333%; } + .grid-y > .medium-8 { + height: 66.66667%; } + .grid-y > .medium-9 { + height: 75%; } + .grid-y > .medium-10 { + height: 83.33333%; } + .grid-y > .medium-11 { + height: 91.66667%; } + .grid-y > .medium-12 { + height: 100%; } } + @media print, screen and (min-width: 64em) { + .grid-y > .large-auto { + -webkit-box-flex: 1; + -webkit-flex: 1 1 0px; + -ms-flex: 1 1 0px; + flex: 1 1 0px; + height: auto; } + .grid-y > .large-shrink, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; } + .grid-y > .large-shrink { + height: auto; } + .grid-y > .large-1 { + height: 8.33333%; } + .grid-y > .large-2 { + height: 16.66667%; } + .grid-y > .large-3 { + height: 25%; } + .grid-y > .large-4 { + height: 33.33333%; } + .grid-y > .large-5 { + height: 41.66667%; } + .grid-y > .large-6 { + height: 50%; } + .grid-y > .large-7 { + height: 58.33333%; } + .grid-y > .large-8 { + height: 66.66667%; } + .grid-y > .large-9 { + height: 75%; } + .grid-y > .large-10 { + height: 83.33333%; } + .grid-y > .large-11 { + height: 91.66667%; } + .grid-y > .large-12 { + height: 100%; } } + +.grid-padding-y .grid-padding-y { + margin-top: -0.625rem; + margin-bottom: -0.625rem; } + @media print, screen and (min-width: 40em) { + .grid-padding-y .grid-padding-y { + margin-top: -0.9375rem; + margin-bottom: -0.9375rem; } } + +.grid-padding-y > .cell { + padding-top: 0.625rem; + padding-bottom: 0.625rem; } + @media print, screen and (min-width: 40em) { + .grid-padding-y > .cell { + padding-top: 0.9375rem; + padding-bottom: 0.9375rem; } } + +.grid-margin-y { + margin-top: -0.625rem; + margin-bottom: -0.625rem; } + @media print, screen and (min-width: 40em) { + .grid-margin-y { + margin-top: -0.9375rem; + margin-bottom: -0.9375rem; } } + .grid-margin-y > .cell { + height: calc(100% - 1.25rem); + margin-top: 0.625rem; + margin-bottom: 0.625rem; } + @media print, screen and (min-width: 40em) { + .grid-margin-y > .cell { + height: calc(100% - 1.875rem); + margin-top: 0.9375rem; + margin-bottom: 0.9375rem; } } + .grid-margin-y > .auto { + height: auto; } + .grid-margin-y > .shrink { + height: auto; } + .grid-margin-y > .small-1 { + height: calc(8.33333% - 1.25rem); } + .grid-margin-y > .small-2 { + height: calc(16.66667% - 1.25rem); } + .grid-margin-y > .small-3 { + height: calc(25% - 1.25rem); } + .grid-margin-y > .small-4 { + height: calc(33.33333% - 1.25rem); } + .grid-margin-y > .small-5 { + height: calc(41.66667% - 1.25rem); } + .grid-margin-y > .small-6 { + height: calc(50% - 1.25rem); } + .grid-margin-y > .small-7 { + height: calc(58.33333% - 1.25rem); } + .grid-margin-y > .small-8 { + height: calc(66.66667% - 1.25rem); } + .grid-margin-y > .small-9 { + height: calc(75% - 1.25rem); } + .grid-margin-y > .small-10 { + height: calc(83.33333% - 1.25rem); } + .grid-margin-y > .small-11 { + height: calc(91.66667% - 1.25rem); } + .grid-margin-y > .small-12 { + height: calc(100% - 1.25rem); } + @media print, screen and (min-width: 40em) { + .grid-margin-y > .auto { + height: auto; } + .grid-margin-y > .shrink { + height: auto; } + .grid-margin-y > .small-1 { + height: calc(8.33333% - 1.875rem); } + .grid-margin-y > .small-2 { + height: calc(16.66667% - 1.875rem); } + .grid-margin-y > .small-3 { + height: calc(25% - 1.875rem); } + .grid-margin-y > .small-4 { + height: calc(33.33333% - 1.875rem); } + .grid-margin-y > .small-5 { + height: calc(41.66667% - 1.875rem); } + .grid-margin-y > .small-6 { + height: calc(50% - 1.875rem); } + .grid-margin-y > .small-7 { + height: calc(58.33333% - 1.875rem); } + .grid-margin-y > .small-8 { + height: calc(66.66667% - 1.875rem); } + .grid-margin-y > .small-9 { + height: calc(75% - 1.875rem); } + .grid-margin-y > .small-10 { + height: calc(83.33333% - 1.875rem); } + .grid-margin-y > .small-11 { + height: calc(91.66667% - 1.875rem); } + .grid-margin-y > .small-12 { + height: calc(100% - 1.875rem); } + .grid-margin-y > .medium-auto { + height: auto; } + .grid-margin-y > .medium-shrink { + height: auto; } + .grid-margin-y > .medium-1 { + height: calc(8.33333% - 1.875rem); } + .grid-margin-y > .medium-2 { + height: calc(16.66667% - 1.875rem); } + .grid-margin-y > .medium-3 { + height: calc(25% - 1.875rem); } + .grid-margin-y > .medium-4 { + height: calc(33.33333% - 1.875rem); } + .grid-margin-y > .medium-5 { + height: calc(41.66667% - 1.875rem); } + .grid-margin-y > .medium-6 { + height: calc(50% - 1.875rem); } + .grid-margin-y > .medium-7 { + height: calc(58.33333% - 1.875rem); } + .grid-margin-y > .medium-8 { + height: calc(66.66667% - 1.875rem); } + .grid-margin-y > .medium-9 { + height: calc(75% - 1.875rem); } + .grid-margin-y > .medium-10 { + height: calc(83.33333% - 1.875rem); } + .grid-margin-y > .medium-11 { + height: calc(91.66667% - 1.875rem); } + .grid-margin-y > .medium-12 { + height: calc(100% - 1.875rem); } } + @media print, screen and (min-width: 64em) { + .grid-margin-y > .large-auto { + height: auto; } + .grid-margin-y > .large-shrink { + height: auto; } + .grid-margin-y > .large-1 { + height: calc(8.33333% - 1.875rem); } + .grid-margin-y > .large-2 { + height: calc(16.66667% - 1.875rem); } + .grid-margin-y > .large-3 { + height: calc(25% - 1.875rem); } + .grid-margin-y > .large-4 { + height: calc(33.33333% - 1.875rem); } + .grid-margin-y > .large-5 { + height: calc(41.66667% - 1.875rem); } + .grid-margin-y > .large-6 { + height: calc(50% - 1.875rem); } + .grid-margin-y > .large-7 { + height: calc(58.33333% - 1.875rem); } + .grid-margin-y > .large-8 { + height: calc(66.66667% - 1.875rem); } + .grid-margin-y > .large-9 { + height: calc(75% - 1.875rem); } + .grid-margin-y > .large-10 { + height: calc(83.33333% - 1.875rem); } + .grid-margin-y > .large-11 { + height: calc(91.66667% - 1.875rem); } + .grid-margin-y > .large-12 { + height: calc(100% - 1.875rem); } } + +.grid-frame { + overflow: hidden; + position: relative; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; + width: 100vw; } + +.cell .grid-frame { + width: 100%; } + +.cell-block { + overflow-x: auto; + max-width: 100%; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; } + +.cell-block-y { + overflow-y: auto; + max-height: 100%; + min-height: 100%; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; } + +.cell-block-container { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + max-height: 100%; } + .cell-block-container > .grid-x { + max-height: 100%; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; } + +@media print, screen and (min-width: 40em) { + .medium-grid-frame { + overflow: hidden; + position: relative; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; + width: 100vw; } + .cell .medium-grid-frame { + width: 100%; } + .medium-cell-block { + overflow-x: auto; + max-width: 100%; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; } + .medium-cell-block-container { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + max-height: 100%; } + .medium-cell-block-container > .grid-x { + max-height: 100%; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; } + .medium-cell-block-y { + overflow-y: auto; + max-height: 100%; + min-height: 100%; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; } } + +@media print, screen and (min-width: 64em) { + .large-grid-frame { + overflow: hidden; + position: relative; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; + width: 100vw; } + .cell .large-grid-frame { + width: 100%; } + .large-cell-block { + overflow-x: auto; + max-width: 100%; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; } + .large-cell-block-container { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + max-height: 100%; } + .large-cell-block-container > .grid-x { + max-height: 100%; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; } + .large-cell-block-y { + overflow-y: auto; + max-height: 100%; + min-height: 100%; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; } } + +.grid-y.grid-frame { + width: auto; + overflow: hidden; + position: relative; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; + height: 100vh; } + +@media print, screen and (min-width: 40em) { + .grid-y.medium-grid-frame { + width: auto; + overflow: hidden; + position: relative; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; + height: 100vh; } } + +@media print, screen and (min-width: 64em) { + .grid-y.large-grid-frame { + width: auto; + overflow: hidden; + position: relative; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; + height: 100vh; } } + +.cell .grid-y.grid-frame { + height: 100%; } + +@media print, screen and (min-width: 40em) { + .cell .grid-y.medium-grid-frame { + height: 100%; } } + +@media print, screen and (min-width: 64em) { + .cell .grid-y.large-grid-frame { + height: 100%; } } + +.grid-margin-y { + margin-top: -0.625rem; + margin-bottom: -0.625rem; } + @media print, screen and (min-width: 40em) { + .grid-margin-y { + margin-top: -0.9375rem; + margin-bottom: -0.9375rem; } } + .grid-margin-y > .cell { + height: calc(100% - 1.25rem); + margin-top: 0.625rem; + margin-bottom: 0.625rem; } + @media print, screen and (min-width: 40em) { + .grid-margin-y > .cell { + height: calc(100% - 1.875rem); + margin-top: 0.9375rem; + margin-bottom: 0.9375rem; } } + .grid-margin-y > .auto { + height: auto; } + .grid-margin-y > .shrink { + height: auto; } + .grid-margin-y > .small-1 { + height: calc(8.33333% - 1.25rem); } + .grid-margin-y > .small-2 { + height: calc(16.66667% - 1.25rem); } + .grid-margin-y > .small-3 { + height: calc(25% - 1.25rem); } + .grid-margin-y > .small-4 { + height: calc(33.33333% - 1.25rem); } + .grid-margin-y > .small-5 { + height: calc(41.66667% - 1.25rem); } + .grid-margin-y > .small-6 { + height: calc(50% - 1.25rem); } + .grid-margin-y > .small-7 { + height: calc(58.33333% - 1.25rem); } + .grid-margin-y > .small-8 { + height: calc(66.66667% - 1.25rem); } + .grid-margin-y > .small-9 { + height: calc(75% - 1.25rem); } + .grid-margin-y > .small-10 { + height: calc(83.33333% - 1.25rem); } + .grid-margin-y > .small-11 { + height: calc(91.66667% - 1.25rem); } + .grid-margin-y > .small-12 { + height: calc(100% - 1.25rem); } + @media print, screen and (min-width: 40em) { + .grid-margin-y > .auto { + height: auto; } + .grid-margin-y > .shrink { + height: auto; } + .grid-margin-y > .small-1 { + height: calc(8.33333% - 1.875rem); } + .grid-margin-y > .small-2 { + height: calc(16.66667% - 1.875rem); } + .grid-margin-y > .small-3 { + height: calc(25% - 1.875rem); } + .grid-margin-y > .small-4 { + height: calc(33.33333% - 1.875rem); } + .grid-margin-y > .small-5 { + height: calc(41.66667% - 1.875rem); } + .grid-margin-y > .small-6 { + height: calc(50% - 1.875rem); } + .grid-margin-y > .small-7 { + height: calc(58.33333% - 1.875rem); } + .grid-margin-y > .small-8 { + height: calc(66.66667% - 1.875rem); } + .grid-margin-y > .small-9 { + height: calc(75% - 1.875rem); } + .grid-margin-y > .small-10 { + height: calc(83.33333% - 1.875rem); } + .grid-margin-y > .small-11 { + height: calc(91.66667% - 1.875rem); } + .grid-margin-y > .small-12 { + height: calc(100% - 1.875rem); } + .grid-margin-y > .medium-auto { + height: auto; } + .grid-margin-y > .medium-shrink { + height: auto; } + .grid-margin-y > .medium-1 { + height: calc(8.33333% - 1.875rem); } + .grid-margin-y > .medium-2 { + height: calc(16.66667% - 1.875rem); } + .grid-margin-y > .medium-3 { + height: calc(25% - 1.875rem); } + .grid-margin-y > .medium-4 { + height: calc(33.33333% - 1.875rem); } + .grid-margin-y > .medium-5 { + height: calc(41.66667% - 1.875rem); } + .grid-margin-y > .medium-6 { + height: calc(50% - 1.875rem); } + .grid-margin-y > .medium-7 { + height: calc(58.33333% - 1.875rem); } + .grid-margin-y > .medium-8 { + height: calc(66.66667% - 1.875rem); } + .grid-margin-y > .medium-9 { + height: calc(75% - 1.875rem); } + .grid-margin-y > .medium-10 { + height: calc(83.33333% - 1.875rem); } + .grid-margin-y > .medium-11 { + height: calc(91.66667% - 1.875rem); } + .grid-margin-y > .medium-12 { + height: calc(100% - 1.875rem); } } + @media print, screen and (min-width: 64em) { + .grid-margin-y > .large-auto { + height: auto; } + .grid-margin-y > .large-shrink { + height: auto; } + .grid-margin-y > .large-1 { + height: calc(8.33333% - 1.875rem); } + .grid-margin-y > .large-2 { + height: calc(16.66667% - 1.875rem); } + .grid-margin-y > .large-3 { + height: calc(25% - 1.875rem); } + .grid-margin-y > .large-4 { + height: calc(33.33333% - 1.875rem); } + .grid-margin-y > .large-5 { + height: calc(41.66667% - 1.875rem); } + .grid-margin-y > .large-6 { + height: calc(50% - 1.875rem); } + .grid-margin-y > .large-7 { + height: calc(58.33333% - 1.875rem); } + .grid-margin-y > .large-8 { + height: calc(66.66667% - 1.875rem); } + .grid-margin-y > .large-9 { + height: calc(75% - 1.875rem); } + .grid-margin-y > .large-10 { + height: calc(83.33333% - 1.875rem); } + .grid-margin-y > .large-11 { + height: calc(91.66667% - 1.875rem); } + .grid-margin-y > .large-12 { + height: calc(100% - 1.875rem); } } + +.grid-frame.grid-margin-y { + height: calc(100vh + 1.25rem); } + @media print, screen and (min-width: 40em) { + .grid-frame.grid-margin-y { + height: calc(100vh + 1.875rem); } } + @media print, screen and (min-width: 64em) { + .grid-frame.grid-margin-y { + height: calc(100vh + 1.875rem); } } + +@media print, screen and (min-width: 40em) { + .grid-margin-y.medium-grid-frame { + height: calc(100vh + 1.875rem); } } + +@media print, screen and (min-width: 64em) { + .grid-margin-y.large-grid-frame { + height: calc(100vh + 1.875rem); } } + +.align-left { + -webkit-box-pack: start; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; } + +.align-right { + -webkit-box-pack: end; + -webkit-justify-content: flex-end; + -ms-flex-pack: end; + justify-content: flex-end; } + +.align-center { + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; } + +.align-justify { + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; } + +.align-spaced { + -webkit-justify-content: space-around; + -ms-flex-pack: distribute; + justify-content: space-around; } + +.align-left.vertical.menu > li > a { + -webkit-box-pack: start; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; } + +.align-right.vertical.menu > li > a { + -webkit-box-pack: end; + -webkit-justify-content: flex-end; + -ms-flex-pack: end; + justify-content: flex-end; } + +.align-center.vertical.menu > li > a { + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; } + +.align-top { + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; } + +.align-self-top { + -webkit-align-self: flex-start; + -ms-flex-item-align: start; + align-self: flex-start; } + +.align-bottom { + -webkit-box-align: end; + -webkit-align-items: flex-end; + -ms-flex-align: end; + align-items: flex-end; } + +.align-self-bottom { + -webkit-align-self: flex-end; + -ms-flex-item-align: end; + align-self: flex-end; } + +.align-middle { + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; } + +.align-self-middle { + -webkit-align-self: center; + -ms-flex-item-align: center; + align-self: center; } + +.align-stretch { + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; } + +.align-self-stretch { + -webkit-align-self: stretch; + -ms-flex-item-align: stretch; + align-self: stretch; } + +.align-center-middle { + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-align-content: center; + -ms-flex-line-pack: center; + align-content: center; } + +.small-order-1 { + -webkit-box-ordinal-group: 2; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; } + +.small-order-2 { + -webkit-box-ordinal-group: 3; + -webkit-order: 2; + -ms-flex-order: 2; + order: 2; } + +.small-order-3 { + -webkit-box-ordinal-group: 4; + -webkit-order: 3; + -ms-flex-order: 3; + order: 3; } + +.small-order-4 { + -webkit-box-ordinal-group: 5; + -webkit-order: 4; + -ms-flex-order: 4; + order: 4; } + +.small-order-5 { + -webkit-box-ordinal-group: 6; + -webkit-order: 5; + -ms-flex-order: 5; + order: 5; } + +.small-order-6 { + -webkit-box-ordinal-group: 7; + -webkit-order: 6; + -ms-flex-order: 6; + order: 6; } + +@media print, screen and (min-width: 40em) { + .medium-order-1 { + -webkit-box-ordinal-group: 2; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; } + .medium-order-2 { + -webkit-box-ordinal-group: 3; + -webkit-order: 2; + -ms-flex-order: 2; + order: 2; } + .medium-order-3 { + -webkit-box-ordinal-group: 4; + -webkit-order: 3; + -ms-flex-order: 3; + order: 3; } + .medium-order-4 { + -webkit-box-ordinal-group: 5; + -webkit-order: 4; + -ms-flex-order: 4; + order: 4; } + .medium-order-5 { + -webkit-box-ordinal-group: 6; + -webkit-order: 5; + -ms-flex-order: 5; + order: 5; } + .medium-order-6 { + -webkit-box-ordinal-group: 7; + -webkit-order: 6; + -ms-flex-order: 6; + order: 6; } } + +@media print, screen and (min-width: 64em) { + .large-order-1 { + -webkit-box-ordinal-group: 2; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; } + .large-order-2 { + -webkit-box-ordinal-group: 3; + -webkit-order: 2; + -ms-flex-order: 2; + order: 2; } + .large-order-3 { + -webkit-box-ordinal-group: 4; + -webkit-order: 3; + -ms-flex-order: 3; + order: 3; } + .large-order-4 { + -webkit-box-ordinal-group: 5; + -webkit-order: 4; + -ms-flex-order: 4; + order: 4; } + .large-order-5 { + -webkit-box-ordinal-group: 6; + -webkit-order: 5; + -ms-flex-order: 5; + order: 5; } + .large-order-6 { + -webkit-box-ordinal-group: 7; + -webkit-order: 6; + -ms-flex-order: 6; + order: 6; } } + +.flex-container { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + +.flex-child-auto { + -webkit-box-flex: 1; + -webkit-flex: 1 1 auto; + -ms-flex: 1 1 auto; + flex: 1 1 auto; } + +.flex-child-grow { + -webkit-box-flex: 1; + -webkit-flex: 1 0 auto; + -ms-flex: 1 0 auto; + flex: 1 0 auto; } + +.flex-child-shrink { + -webkit-box-flex: 0; + -webkit-flex: 0 1 auto; + -ms-flex: 0 1 auto; + flex: 0 1 auto; } + +.flex-dir-row { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; } + +.flex-dir-row-reverse { + -webkit-box-orient: horizontal; + -webkit-box-direction: reverse; + -webkit-flex-direction: row-reverse; + -ms-flex-direction: row-reverse; + flex-direction: row-reverse; } + +.flex-dir-column { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + +.flex-dir-column-reverse { + -webkit-box-orient: vertical; + -webkit-box-direction: reverse; + -webkit-flex-direction: column-reverse; + -ms-flex-direction: column-reverse; + flex-direction: column-reverse; } + +@media print, screen and (min-width: 40em) { + .medium-flex-container { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + .medium-flex-child-auto { + -webkit-box-flex: 1; + -webkit-flex: 1 1 auto; + -ms-flex: 1 1 auto; + flex: 1 1 auto; } + .medium-flex-child-grow { + -webkit-box-flex: 1; + -webkit-flex: 1 0 auto; + -ms-flex: 1 0 auto; + flex: 1 0 auto; } + .medium-flex-child-shrink { + -webkit-box-flex: 0; + -webkit-flex: 0 1 auto; + -ms-flex: 0 1 auto; + flex: 0 1 auto; } + .medium-flex-dir-row { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; } + .medium-flex-dir-row-reverse { + -webkit-box-orient: horizontal; + -webkit-box-direction: reverse; + -webkit-flex-direction: row-reverse; + -ms-flex-direction: row-reverse; + flex-direction: row-reverse; } + .medium-flex-dir-column { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + .medium-flex-dir-column-reverse { + -webkit-box-orient: vertical; + -webkit-box-direction: reverse; + -webkit-flex-direction: column-reverse; + -ms-flex-direction: column-reverse; + flex-direction: column-reverse; } } + +@media print, screen and (min-width: 64em) { + .large-flex-container { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + .large-flex-child-auto { + -webkit-box-flex: 1; + -webkit-flex: 1 1 auto; + -ms-flex: 1 1 auto; + flex: 1 1 auto; } + .large-flex-child-grow { + -webkit-box-flex: 1; + -webkit-flex: 1 0 auto; + -ms-flex: 1 0 auto; + flex: 1 0 auto; } + .large-flex-child-shrink { + -webkit-box-flex: 0; + -webkit-flex: 0 1 auto; + -ms-flex: 0 1 auto; + flex: 0 1 auto; } + .large-flex-dir-row { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; } + .large-flex-dir-row-reverse { + -webkit-box-orient: horizontal; + -webkit-box-direction: reverse; + -webkit-flex-direction: row-reverse; + -ms-flex-direction: row-reverse; + flex-direction: row-reverse; } + .large-flex-dir-column { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + .large-flex-dir-column-reverse { + -webkit-box-orient: vertical; + -webkit-box-direction: reverse; + -webkit-flex-direction: column-reverse; + -ms-flex-direction: column-reverse; + flex-direction: column-reverse; } } + +[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'], +textarea { + display: block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + height: 2.4375rem; + margin: 0 0 1rem; + padding: 0.5rem; + border: 1px solid #cacaca; + border-radius: 0; + background-color: #fefefe; + -webkit-box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + font-family: inherit; + font-size: 1rem; + font-weight: normal; + line-height: 1.5; + color: #0a0a0a; + -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; + transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; + transition: box-shadow 0.5s, border-color 0.25s ease-in-out; + transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; } + [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus, + textarea:focus { + outline: none; + border: 1px solid #8a8a8a; + background-color: #fefefe; + -webkit-box-shadow: 0 0 5px #cacaca; + box-shadow: 0 0 5px #cacaca; + -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; + transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; + transition: box-shadow 0.5s, border-color 0.25s ease-in-out; + transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; } + +textarea { + max-width: 100%; } + textarea[rows] { + height: auto; } + +input:disabled, input[readonly], +textarea:disabled, +textarea[readonly] { + background-color: #e6e6e6; + cursor: not-allowed; } + +[type='submit'], +[type='button'] { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: 0; } + +input[type='search'] { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + +::-webkit-input-placeholder { + color: #cacaca; } + +:-ms-input-placeholder { + color: #cacaca; } + +::-ms-input-placeholder { + color: #cacaca; } + +::placeholder { + color: #cacaca; } + +[type='file'], +[type='checkbox'], +[type='radio'] { + margin: 0 0 1rem; } + +[type='checkbox'] + label, +[type='radio'] + label { + display: inline-block; + vertical-align: baseline; + margin-left: 0.5rem; + margin-right: 1rem; + margin-bottom: 0; } + [type='checkbox'] + label[for], + [type='radio'] + label[for] { + cursor: pointer; } + +label > [type='checkbox'], +label > [type='radio'] { + margin-right: 0.5rem; } + +[type='file'] { + width: 100%; } + +label { + display: block; + margin: 0; + font-size: 0.875rem; + font-weight: normal; + line-height: 1.8; + color: #0a0a0a; } + label.middle { + margin: 0 0 1rem; + padding: 0.5625rem 0; } + +.help-text { + margin-top: -0.5rem; + font-size: 0.8125rem; + font-style: italic; + color: #0a0a0a; } + +.input-group { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + margin-bottom: 1rem; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; } + .input-group > :first-child, .input-group > :first-child.input-group-button > * { + border-radius: 0 0 0 0; } + .input-group > :last-child, .input-group > :last-child.input-group-button > * { + border-radius: 0 0 0 0; } + +.input-group-label, .input-group-field, .input-group-button, .input-group-button a, +.input-group-button input, +.input-group-button button, +.input-group-button label { + margin: 0; + white-space: nowrap; } + +.input-group-label { + padding: 0 1rem; + border: 1px solid #cacaca; + background: #e6e6e6; + color: #0a0a0a; + text-align: center; + white-space: nowrap; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; } + .input-group-label:first-child { + border-right: 0; } + .input-group-label:last-child { + border-left: 0; } + +.input-group-field { + border-radius: 0; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0px; + -ms-flex: 1 1 0px; + flex: 1 1 0px; + min-width: 0; } + +.input-group-button { + padding-top: 0; + padding-bottom: 0; + text-align: center; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; } + .input-group-button a, + .input-group-button input, + .input-group-button button, + .input-group-button label { + -webkit-align-self: stretch; + -ms-flex-item-align: stretch; + align-self: stretch; + height: auto; + padding-top: 0; + padding-bottom: 0; + font-size: 1rem; } + +fieldset { + margin: 0; + padding: 0; + border: 0; } + +legend { + max-width: 100%; + margin-bottom: 0.5rem; } + +.fieldset { + margin: 1.125rem 0; + padding: 1.25rem; + border: 1px solid #cacaca; } + .fieldset legend { + margin: 0; + margin-left: -0.1875rem; + padding: 0 0.1875rem; } + +select { + height: 2.4375rem; + margin: 0 0 1rem; + padding: 0.5rem; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: 1px solid #cacaca; + border-radius: 0; + background-color: #fefefe; + font-family: inherit; + font-size: 1rem; + font-weight: normal; + line-height: 1.5; + color: #0a0a0a; + background-image: url("data:image/svg+xml;utf8,"); + background-origin: content-box; + background-position: right -1rem center; + background-repeat: no-repeat; + background-size: 9px 6px; + padding-right: 1.5rem; + -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; + transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; + transition: box-shadow 0.5s, border-color 0.25s ease-in-out; + transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; } + @media screen and (min-width: 0\0) { + select { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg=="); } } + select:focus { + outline: none; + border: 1px solid #8a8a8a; + background-color: #fefefe; + -webkit-box-shadow: 0 0 5px #cacaca; + box-shadow: 0 0 5px #cacaca; + -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; + transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; + transition: box-shadow 0.5s, border-color 0.25s ease-in-out; + transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; } + select:disabled { + background-color: #e6e6e6; + cursor: not-allowed; } + select::-ms-expand { + display: none; } + select[multiple] { + height: auto; + background-image: none; } + +.is-invalid-input:not(:focus) { + border-color: #cc4b37; + background-color: #f9ecea; } + .is-invalid-input:not(:focus)::-webkit-input-placeholder { + color: #cc4b37; } + .is-invalid-input:not(:focus):-ms-input-placeholder { + color: #cc4b37; } + .is-invalid-input:not(:focus)::-ms-input-placeholder { + color: #cc4b37; } + .is-invalid-input:not(:focus)::placeholder { + color: #cc4b37; } + +.is-invalid-label { + color: #cc4b37; } + +.form-error { + display: none; + margin-top: -0.5rem; + margin-bottom: 1rem; + font-size: 0.75rem; + font-weight: bold; + color: #cc4b37; } + .form-error.is-visible { + display: block; } + +.button { + display: inline-block; + vertical-align: middle; + margin: 0 0 1rem 0; + padding: 0.85em 1em; + border: 1px solid transparent; + border-radius: 0; + -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out; + transition: background-color 0.25s ease-out, color 0.25s ease-out; + font-family: inherit; + font-size: 0.9rem; + -webkit-appearance: none; + line-height: 1; + text-align: center; + cursor: pointer; + background-color: #1779ba; + color: #fefefe; } + [data-whatinput='mouse'] .button { + outline: 0; } + .button:hover, .button:focus { + background-color: #14679e; + color: #fefefe; } + .button.tiny { + font-size: 0.6rem; } + .button.small { + font-size: 0.75rem; } + .button.large { + font-size: 1.25rem; } + .button.expanded { + display: block; + width: 100%; + margin-right: 0; + margin-left: 0; } + .button.primary { + background-color: #1779ba; + color: #fefefe; } + .button.primary:hover, .button.primary:focus { + background-color: #126195; + color: #fefefe; } + .button.secondary { + background-color: #767676; + color: #fefefe; } + .button.secondary:hover, .button.secondary:focus { + background-color: #5e5e5e; + color: #fefefe; } + .button.success { + background-color: #3adb76; + color: #0a0a0a; } + .button.success:hover, .button.success:focus { + background-color: #22bb5b; + color: #0a0a0a; } + .button.warning { + background-color: #ffae00; + color: #0a0a0a; } + .button.warning:hover, .button.warning:focus { + background-color: #cc8b00; + color: #0a0a0a; } + .button.alert { + background-color: #cc4b37; + color: #fefefe; } + .button.alert:hover, .button.alert:focus { + background-color: #a53b2a; + color: #fefefe; } + .button.disabled, .button[disabled] { + opacity: 0.25; + cursor: not-allowed; } + .button.disabled, .button.disabled:hover, .button.disabled:focus, .button[disabled], .button[disabled]:hover, .button[disabled]:focus { + background-color: #1779ba; + color: #fefefe; } + .button.disabled.primary, .button[disabled].primary { + opacity: 0.25; + cursor: not-allowed; } + .button.disabled.primary, .button.disabled.primary:hover, .button.disabled.primary:focus, .button[disabled].primary, .button[disabled].primary:hover, .button[disabled].primary:focus { + background-color: #1779ba; + color: #fefefe; } + .button.disabled.secondary, .button[disabled].secondary { + opacity: 0.25; + cursor: not-allowed; } + .button.disabled.secondary, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary, .button[disabled].secondary:hover, .button[disabled].secondary:focus { + background-color: #767676; + color: #fefefe; } + .button.disabled.success, .button[disabled].success { + opacity: 0.25; + cursor: not-allowed; } + .button.disabled.success, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success, .button[disabled].success:hover, .button[disabled].success:focus { + background-color: #3adb76; + color: #0a0a0a; } + .button.disabled.warning, .button[disabled].warning { + opacity: 0.25; + cursor: not-allowed; } + .button.disabled.warning, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning, .button[disabled].warning:hover, .button[disabled].warning:focus { + background-color: #ffae00; + color: #0a0a0a; } + .button.disabled.alert, .button[disabled].alert { + opacity: 0.25; + cursor: not-allowed; } + .button.disabled.alert, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert, .button[disabled].alert:hover, .button[disabled].alert:focus { + background-color: #cc4b37; + color: #fefefe; } + .button.hollow { + border: 1px solid #1779ba; + color: #1779ba; } + .button.hollow, .button.hollow:hover, .button.hollow:focus { + background-color: transparent; } + .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus { + background-color: transparent; } + .button.hollow:hover, .button.hollow:focus { + border-color: #0c3d5d; + color: #0c3d5d; } + .button.hollow:hover.disabled, .button.hollow:hover[disabled], .button.hollow:focus.disabled, .button.hollow:focus[disabled] { + border: 1px solid #1779ba; + color: #1779ba; } + .button.hollow.primary { + border: 1px solid #1779ba; + color: #1779ba; } + .button.hollow.primary:hover, .button.hollow.primary:focus { + border-color: #0c3d5d; + color: #0c3d5d; } + .button.hollow.primary:hover.disabled, .button.hollow.primary:hover[disabled], .button.hollow.primary:focus.disabled, .button.hollow.primary:focus[disabled] { + border: 1px solid #1779ba; + color: #1779ba; } + .button.hollow.secondary { + border: 1px solid #767676; + color: #767676; } + .button.hollow.secondary:hover, .button.hollow.secondary:focus { + border-color: #3b3b3b; + color: #3b3b3b; } + .button.hollow.secondary:hover.disabled, .button.hollow.secondary:hover[disabled], .button.hollow.secondary:focus.disabled, .button.hollow.secondary:focus[disabled] { + border: 1px solid #767676; + color: #767676; } + .button.hollow.success { + border: 1px solid #3adb76; + color: #3adb76; } + .button.hollow.success:hover, .button.hollow.success:focus { + border-color: #157539; + color: #157539; } + .button.hollow.success:hover.disabled, .button.hollow.success:hover[disabled], .button.hollow.success:focus.disabled, .button.hollow.success:focus[disabled] { + border: 1px solid #3adb76; + color: #3adb76; } + .button.hollow.warning { + border: 1px solid #ffae00; + color: #ffae00; } + .button.hollow.warning:hover, .button.hollow.warning:focus { + border-color: #805700; + color: #805700; } + .button.hollow.warning:hover.disabled, .button.hollow.warning:hover[disabled], .button.hollow.warning:focus.disabled, .button.hollow.warning:focus[disabled] { + border: 1px solid #ffae00; + color: #ffae00; } + .button.hollow.alert { + border: 1px solid #cc4b37; + color: #cc4b37; } + .button.hollow.alert:hover, .button.hollow.alert:focus { + border-color: #67251a; + color: #67251a; } + .button.hollow.alert:hover.disabled, .button.hollow.alert:hover[disabled], .button.hollow.alert:focus.disabled, .button.hollow.alert:focus[disabled] { + border: 1px solid #cc4b37; + color: #cc4b37; } + .button.clear { + border: 1px solid #1779ba; + color: #1779ba; } + .button.clear, .button.clear:hover, .button.clear:focus { + background-color: transparent; } + .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus { + background-color: transparent; } + .button.clear:hover, .button.clear:focus { + border-color: #0c3d5d; + color: #0c3d5d; } + .button.clear:hover.disabled, .button.clear:hover[disabled], .button.clear:focus.disabled, .button.clear:focus[disabled] { + border: 1px solid #1779ba; + color: #1779ba; } + .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear:hover, .button.clear:hover.disabled, .button.clear:hover[disabled], .button.clear:focus, .button.clear:focus.disabled, .button.clear:focus[disabled] { + border-color: transparent; } + .button.clear.primary { + border: 1px solid #1779ba; + color: #1779ba; } + .button.clear.primary:hover, .button.clear.primary:focus { + border-color: #0c3d5d; + color: #0c3d5d; } + .button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled] { + border: 1px solid #1779ba; + color: #1779ba; } + .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary:hover, .button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .button.clear.primary:focus, .button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled] { + border-color: transparent; } + .button.clear.secondary { + border: 1px solid #767676; + color: #767676; } + .button.clear.secondary:hover, .button.clear.secondary:focus { + border-color: #3b3b3b; + color: #3b3b3b; } + .button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled] { + border: 1px solid #767676; + color: #767676; } + .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary:hover, .button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .button.clear.secondary:focus, .button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled] { + border-color: transparent; } + .button.clear.success { + border: 1px solid #3adb76; + color: #3adb76; } + .button.clear.success:hover, .button.clear.success:focus { + border-color: #157539; + color: #157539; } + .button.clear.success:hover.disabled, .button.clear.success:hover[disabled], .button.clear.success:focus.disabled, .button.clear.success:focus[disabled] { + border: 1px solid #3adb76; + color: #3adb76; } + .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success:hover, .button.clear.success:hover.disabled, .button.clear.success:hover[disabled], .button.clear.success:focus, .button.clear.success:focus.disabled, .button.clear.success:focus[disabled] { + border-color: transparent; } + .button.clear.warning { + border: 1px solid #ffae00; + color: #ffae00; } + .button.clear.warning:hover, .button.clear.warning:focus { + border-color: #805700; + color: #805700; } + .button.clear.warning:hover.disabled, .button.clear.warning:hover[disabled], .button.clear.warning:focus.disabled, .button.clear.warning:focus[disabled] { + border: 1px solid #ffae00; + color: #ffae00; } + .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning:hover, .button.clear.warning:hover.disabled, .button.clear.warning:hover[disabled], .button.clear.warning:focus, .button.clear.warning:focus.disabled, .button.clear.warning:focus[disabled] { + border-color: transparent; } + .button.clear.alert { + border: 1px solid #cc4b37; + color: #cc4b37; } + .button.clear.alert:hover, .button.clear.alert:focus { + border-color: #67251a; + color: #67251a; } + .button.clear.alert:hover.disabled, .button.clear.alert:hover[disabled], .button.clear.alert:focus.disabled, .button.clear.alert:focus[disabled] { + border: 1px solid #cc4b37; + color: #cc4b37; } + .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert:hover, .button.clear.alert:hover.disabled, .button.clear.alert:hover[disabled], .button.clear.alert:focus, .button.clear.alert:focus.disabled, .button.clear.alert:focus[disabled] { + border-color: transparent; } + .button.dropdown::after { + display: block; + width: 0; + height: 0; + border: inset 0.4em; + content: ''; + border-bottom-width: 0; + border-top-style: solid; + border-color: #fefefe transparent transparent; + position: relative; + top: 0.4em; + display: inline-block; + float: right; + margin-left: 1em; } + .button.dropdown.hollow::after, .button.dropdown.clear::after { + border-top-color: #1779ba; } + .button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after { + border-top-color: #1779ba; } + .button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after { + border-top-color: #767676; } + .button.dropdown.hollow.success::after, .button.dropdown.clear.success::after { + border-top-color: #3adb76; } + .button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after { + border-top-color: #ffae00; } + .button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after { + border-top-color: #cc4b37; } + .button.arrow-only::after { + top: -0.1em; + float: none; + margin-left: 0; } + +a.button:hover, a.button:focus { + text-decoration: none; } + +.callout { + position: relative; + margin: 0 0 1rem 0; + padding: 1rem; + border: 1px solid rgba(10, 10, 10, 0.25); + border-radius: 0; + background-color: white; + color: #0a0a0a; } + .callout > :first-child { + margin-top: 0; } + .callout > :last-child { + margin-bottom: 0; } + .callout.primary { + background-color: #d7ecfa; + color: #0a0a0a; } + .callout.secondary { + background-color: #eaeaea; + color: #0a0a0a; } + .callout.success { + background-color: #e1faea; + color: #0a0a0a; } + .callout.warning { + background-color: #fff3d9; + color: #0a0a0a; } + .callout.alert { + background-color: #f7e4e1; + color: #0a0a0a; } + .callout.small { + padding-top: 0.5rem; + padding-right: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 0.5rem; } + .callout.large { + padding-top: 3rem; + padding-right: 3rem; + padding-bottom: 3rem; + padding-left: 3rem; } + +html.is-reveal-open { + position: fixed; + width: 100%; + overflow-y: hidden; } + html.is-reveal-open.zf-has-scroll { + overflow-y: scroll; } + html.is-reveal-open body { + overflow-y: hidden; } + +.reveal-overlay { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1005; + display: none; + background-color: rgba(10, 10, 10, 0.45); + overflow-y: auto; } + +.reveal { + z-index: 1006; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + display: none; + padding: 1rem; + border: 1px solid #cacaca; + border-radius: 0; + background-color: #fefefe; + position: relative; + top: 100px; + margin-right: auto; + margin-left: auto; + overflow-y: auto; } + [data-whatinput='mouse'] .reveal { + outline: 0; } + @media print, screen and (min-width: 40em) { + .reveal { + min-height: 0; } } + .reveal .column { + min-width: 0; } + .reveal > :last-child { + margin-bottom: 0; } + @media print, screen and (min-width: 40em) { + .reveal { + width: 600px; + max-width: 75rem; } } + .reveal.collapse { + padding: 0; } + @media print, screen and (min-width: 40em) { + .reveal.tiny { + width: 30%; + max-width: 75rem; } } + @media print, screen and (min-width: 40em) { + .reveal.small { + width: 50%; + max-width: 75rem; } } + @media print, screen and (min-width: 40em) { + .reveal.large { + width: 90%; + max-width: 75rem; } } + .reveal.full { + top: 0; + right: 0; + bottom: 0; + left: 0; + width: 100%; + max-width: none; + height: 100%; + min-height: 100%; + margin-left: 0; + border: 0; + border-radius: 0; } + @media screen and (max-width: 39.99875em) { + .reveal { + top: 0; + right: 0; + bottom: 0; + left: 0; + width: 100%; + max-width: none; + height: 100%; + min-height: 100%; + margin-left: 0; + border: 0; + border-radius: 0; } } + .reveal.without-overlay { + position: fixed; } + +.slide-in-down.mui-enter { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: translateY(-100%); + -ms-transform: translateY(-100%); + transform: translateY(-100%); + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; } + +.slide-in-down.mui-enter.mui-enter-active { + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); } + +.slide-in-left.mui-enter { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: translateX(-100%); + -ms-transform: translateX(-100%); + transform: translateX(-100%); + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; } + +.slide-in-left.mui-enter.mui-enter-active { + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); } + +.slide-in-up.mui-enter { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: translateY(100%); + -ms-transform: translateY(100%); + transform: translateY(100%); + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; } + +.slide-in-up.mui-enter.mui-enter-active { + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); } + +.slide-in-right.mui-enter { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: translateX(100%); + -ms-transform: translateX(100%); + transform: translateX(100%); + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; } + +.slide-in-right.mui-enter.mui-enter-active { + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); } + +.slide-out-down.mui-leave { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; } + +.slide-out-down.mui-leave.mui-leave-active { + -webkit-transform: translateY(100%); + -ms-transform: translateY(100%); + transform: translateY(100%); } + +.slide-out-right.mui-leave { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; } + +.slide-out-right.mui-leave.mui-leave-active { + -webkit-transform: translateX(100%); + -ms-transform: translateX(100%); + transform: translateX(100%); } + +.slide-out-up.mui-leave { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; } + +.slide-out-up.mui-leave.mui-leave-active { + -webkit-transform: translateY(-100%); + -ms-transform: translateY(-100%); + transform: translateY(-100%); } + +.slide-out-left.mui-leave { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; } + +.slide-out-left.mui-leave.mui-leave-active { + -webkit-transform: translateX(-100%); + -ms-transform: translateX(-100%); + transform: translateX(-100%); } + +.fade-in.mui-enter { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + opacity: 0; + -webkit-transition-property: opacity; + transition-property: opacity; } + +.fade-in.mui-enter.mui-enter-active { + opacity: 1; } + +.fade-out.mui-leave { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + opacity: 1; + -webkit-transition-property: opacity; + transition-property: opacity; } + +.fade-out.mui-leave.mui-leave-active { + opacity: 0; } + +.hinge-in-from-top.mui-enter { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: perspective(2000px) rotateX(-90deg); + transform: perspective(2000px) rotateX(-90deg); + -webkit-transform-origin: top; + -ms-transform-origin: top; + transform-origin: top; + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + opacity: 0; } + +.hinge-in-from-top.mui-enter.mui-enter-active { + -webkit-transform: perspective(2000px) rotate(0deg); + transform: perspective(2000px) rotate(0deg); + opacity: 1; } + +.hinge-in-from-right.mui-enter { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: perspective(2000px) rotateY(-90deg); + transform: perspective(2000px) rotateY(-90deg); + -webkit-transform-origin: right; + -ms-transform-origin: right; + transform-origin: right; + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + opacity: 0; } + +.hinge-in-from-right.mui-enter.mui-enter-active { + -webkit-transform: perspective(2000px) rotate(0deg); + transform: perspective(2000px) rotate(0deg); + opacity: 1; } + +.hinge-in-from-bottom.mui-enter { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: perspective(2000px) rotateX(90deg); + transform: perspective(2000px) rotateX(90deg); + -webkit-transform-origin: bottom; + -ms-transform-origin: bottom; + transform-origin: bottom; + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + opacity: 0; } + +.hinge-in-from-bottom.mui-enter.mui-enter-active { + -webkit-transform: perspective(2000px) rotate(0deg); + transform: perspective(2000px) rotate(0deg); + opacity: 1; } + +.hinge-in-from-left.mui-enter { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: perspective(2000px) rotateY(90deg); + transform: perspective(2000px) rotateY(90deg); + -webkit-transform-origin: left; + -ms-transform-origin: left; + transform-origin: left; + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + opacity: 0; } + +.hinge-in-from-left.mui-enter.mui-enter-active { + -webkit-transform: perspective(2000px) rotate(0deg); + transform: perspective(2000px) rotate(0deg); + opacity: 1; } + +.hinge-in-from-middle-x.mui-enter { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: perspective(2000px) rotateX(-90deg); + transform: perspective(2000px) rotateX(-90deg); + -webkit-transform-origin: center; + -ms-transform-origin: center; + transform-origin: center; + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + opacity: 0; } + +.hinge-in-from-middle-x.mui-enter.mui-enter-active { + -webkit-transform: perspective(2000px) rotate(0deg); + transform: perspective(2000px) rotate(0deg); + opacity: 1; } + +.hinge-in-from-middle-y.mui-enter { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: perspective(2000px) rotateY(-90deg); + transform: perspective(2000px) rotateY(-90deg); + -webkit-transform-origin: center; + -ms-transform-origin: center; + transform-origin: center; + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + opacity: 0; } + +.hinge-in-from-middle-y.mui-enter.mui-enter-active { + -webkit-transform: perspective(2000px) rotate(0deg); + transform: perspective(2000px) rotate(0deg); + opacity: 1; } + +.hinge-out-from-top.mui-leave { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: perspective(2000px) rotate(0deg); + transform: perspective(2000px) rotate(0deg); + -webkit-transform-origin: top; + -ms-transform-origin: top; + transform-origin: top; + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + opacity: 1; } + +.hinge-out-from-top.mui-leave.mui-leave-active { + -webkit-transform: perspective(2000px) rotateX(90deg); + transform: perspective(2000px) rotateX(90deg); + opacity: 0; } + +.hinge-out-from-right.mui-leave { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: perspective(2000px) rotate(0deg); + transform: perspective(2000px) rotate(0deg); + -webkit-transform-origin: right; + -ms-transform-origin: right; + transform-origin: right; + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + opacity: 1; } + +.hinge-out-from-right.mui-leave.mui-leave-active { + -webkit-transform: perspective(2000px) rotateY(90deg); + transform: perspective(2000px) rotateY(90deg); + opacity: 0; } + +.hinge-out-from-bottom.mui-leave { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: perspective(2000px) rotate(0deg); + transform: perspective(2000px) rotate(0deg); + -webkit-transform-origin: bottom; + -ms-transform-origin: bottom; + transform-origin: bottom; + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + opacity: 1; } + +.hinge-out-from-bottom.mui-leave.mui-leave-active { + -webkit-transform: perspective(2000px) rotateX(-90deg); + transform: perspective(2000px) rotateX(-90deg); + opacity: 0; } + +.hinge-out-from-left.mui-leave { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: perspective(2000px) rotate(0deg); + transform: perspective(2000px) rotate(0deg); + -webkit-transform-origin: left; + -ms-transform-origin: left; + transform-origin: left; + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + opacity: 1; } + +.hinge-out-from-left.mui-leave.mui-leave-active { + -webkit-transform: perspective(2000px) rotateY(-90deg); + transform: perspective(2000px) rotateY(-90deg); + opacity: 0; } + +.hinge-out-from-middle-x.mui-leave { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: perspective(2000px) rotate(0deg); + transform: perspective(2000px) rotate(0deg); + -webkit-transform-origin: center; + -ms-transform-origin: center; + transform-origin: center; + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + opacity: 1; } + +.hinge-out-from-middle-x.mui-leave.mui-leave-active { + -webkit-transform: perspective(2000px) rotateX(90deg); + transform: perspective(2000px) rotateX(90deg); + opacity: 0; } + +.hinge-out-from-middle-y.mui-leave { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: perspective(2000px) rotate(0deg); + transform: perspective(2000px) rotate(0deg); + -webkit-transform-origin: center; + -ms-transform-origin: center; + transform-origin: center; + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + opacity: 1; } + +.hinge-out-from-middle-y.mui-leave.mui-leave-active { + -webkit-transform: perspective(2000px) rotateY(90deg); + transform: perspective(2000px) rotateY(90deg); + opacity: 0; } + +.scale-in-up.mui-enter { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: scale(0.5); + -ms-transform: scale(0.5); + transform: scale(0.5); + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + opacity: 0; } + +.scale-in-up.mui-enter.mui-enter-active { + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + opacity: 1; } + +.scale-in-down.mui-enter { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: scale(1.5); + -ms-transform: scale(1.5); + transform: scale(1.5); + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + opacity: 0; } + +.scale-in-down.mui-enter.mui-enter-active { + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + opacity: 1; } + +.scale-out-up.mui-leave { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + opacity: 1; } + +.scale-out-up.mui-leave.mui-leave-active { + -webkit-transform: scale(1.5); + -ms-transform: scale(1.5); + transform: scale(1.5); + opacity: 0; } + +.scale-out-down.mui-leave { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + opacity: 1; } + +.scale-out-down.mui-leave.mui-leave-active { + -webkit-transform: scale(0.5); + -ms-transform: scale(0.5); + transform: scale(0.5); + opacity: 0; } + +.spin-in.mui-enter { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: rotate(-0.75turn); + -ms-transform: rotate(-0.75turn); + transform: rotate(-0.75turn); + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + opacity: 0; } + +.spin-in.mui-enter.mui-enter-active { + -webkit-transform: rotate(0); + -ms-transform: rotate(0); + transform: rotate(0); + opacity: 1; } + +.spin-out.mui-leave { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: rotate(0); + -ms-transform: rotate(0); + transform: rotate(0); + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + opacity: 1; } + +.spin-out.mui-leave.mui-leave-active { + -webkit-transform: rotate(0.75turn); + -ms-transform: rotate(0.75turn); + transform: rotate(0.75turn); + opacity: 0; } + +.spin-in-ccw.mui-enter { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: rotate(0.75turn); + -ms-transform: rotate(0.75turn); + transform: rotate(0.75turn); + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + opacity: 0; } + +.spin-in-ccw.mui-enter.mui-enter-active { + -webkit-transform: rotate(0); + -ms-transform: rotate(0); + transform: rotate(0); + opacity: 1; } + +.spin-out-ccw.mui-leave { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: rotate(0); + -ms-transform: rotate(0); + transform: rotate(0); + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + opacity: 1; } + +.spin-out-ccw.mui-leave.mui-leave-active { + -webkit-transform: rotate(-0.75turn); + -ms-transform: rotate(-0.75turn); + transform: rotate(-0.75turn); + opacity: 0; } + +.slow { + -webkit-transition-duration: 750ms !important; + transition-duration: 750ms !important; } + +.fast { + -webkit-transition-duration: 250ms !important; + transition-duration: 250ms !important; } + +.linear { + -webkit-transition-timing-function: linear !important; + transition-timing-function: linear !important; } + +.ease { + -webkit-transition-timing-function: ease !important; + transition-timing-function: ease !important; } + +.ease-in { + -webkit-transition-timing-function: ease-in !important; + transition-timing-function: ease-in !important; } + +.ease-out { + -webkit-transition-timing-function: ease-out !important; + transition-timing-function: ease-out !important; } + +.ease-in-out { + -webkit-transition-timing-function: ease-in-out !important; + transition-timing-function: ease-in-out !important; } + +.bounce-in { + -webkit-transition-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; + transition-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; } + +.bounce-out { + -webkit-transition-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; + transition-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; } + +.bounce-in-out { + -webkit-transition-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; + transition-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; } + +.short-delay { + -webkit-transition-delay: 300ms !important; + transition-delay: 300ms !important; } + +.long-delay { + -webkit-transition-delay: 700ms !important; + transition-delay: 700ms !important; } + +.shake { + -webkit-animation-name: shake-7; + animation-name: shake-7; } + +@-webkit-keyframes shake-7 { + 0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% { + -webkit-transform: translateX(7%); + transform: translateX(7%); } + 5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% { + -webkit-transform: translateX(-7%); + transform: translateX(-7%); } } + +@keyframes shake-7 { + 0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% { + -webkit-transform: translateX(7%); + transform: translateX(7%); } + 5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% { + -webkit-transform: translateX(-7%); + transform: translateX(-7%); } } + +.spin-cw { + -webkit-animation-name: spin-cw-1turn; + animation-name: spin-cw-1turn; } + +@-webkit-keyframes spin-cw-1turn { + 0% { + -webkit-transform: rotate(-1turn); + transform: rotate(-1turn); } + 100% { + -webkit-transform: rotate(0); + transform: rotate(0); } } + +@keyframes spin-cw-1turn { + 0% { + -webkit-transform: rotate(-1turn); + transform: rotate(-1turn); } + 100% { + -webkit-transform: rotate(0); + transform: rotate(0); } } + +.spin-ccw { + -webkit-animation-name: spin-ccw-1turn; + animation-name: spin-ccw-1turn; } + +@-webkit-keyframes spin-ccw-1turn { + 0% { + -webkit-transform: rotate(0); + transform: rotate(0); } + 100% { + -webkit-transform: rotate(-1turn); + transform: rotate(-1turn); } } + +@keyframes spin-ccw-1turn { + 0% { + -webkit-transform: rotate(0); + transform: rotate(0); } + 100% { + -webkit-transform: rotate(-1turn); + transform: rotate(-1turn); } } + +.wiggle { + -webkit-animation-name: wiggle-7deg; + animation-name: wiggle-7deg; } + +@-webkit-keyframes wiggle-7deg { + 40%, 50%, 60% { + -webkit-transform: rotate(7deg); + transform: rotate(7deg); } + 35%, 45%, 55%, 65% { + -webkit-transform: rotate(-7deg); + transform: rotate(-7deg); } + 0%, 30%, 70%, 100% { + -webkit-transform: rotate(0); + transform: rotate(0); } } + +@keyframes wiggle-7deg { + 40%, 50%, 60% { + -webkit-transform: rotate(7deg); + transform: rotate(7deg); } + 35%, 45%, 55%, 65% { + -webkit-transform: rotate(-7deg); + transform: rotate(-7deg); } + 0%, 30%, 70%, 100% { + -webkit-transform: rotate(0); + transform: rotate(0); } } + +.shake, +.spin-cw, +.spin-ccw, +.wiggle { + -webkit-animation-duration: 500ms; + animation-duration: 500ms; } + +.infinite { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; } + +.slow { + -webkit-animation-duration: 750ms !important; + animation-duration: 750ms !important; } + +.fast { + -webkit-animation-duration: 250ms !important; + animation-duration: 250ms !important; } + +.linear { + -webkit-animation-timing-function: linear !important; + animation-timing-function: linear !important; } + +.ease { + -webkit-animation-timing-function: ease !important; + animation-timing-function: ease !important; } + +.ease-in { + -webkit-animation-timing-function: ease-in !important; + animation-timing-function: ease-in !important; } + +.ease-out { + -webkit-animation-timing-function: ease-out !important; + animation-timing-function: ease-out !important; } + +.ease-in-out { + -webkit-animation-timing-function: ease-in-out !important; + animation-timing-function: ease-in-out !important; } + +.bounce-in { + -webkit-animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; + animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; } + +.bounce-out { + -webkit-animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; + animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; } + +.bounce-in-out { + -webkit-animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; + animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; } + +.short-delay { + -webkit-animation-delay: 300ms !important; + animation-delay: 300ms !important; } + +.long-delay { + -webkit-animation-delay: 700ms !important; + animation-delay: 700ms !important; } diff --git a/news/static/news/css/foundation.min.css b/news/static/news/css/foundation.min.css new file mode 100644 index 0000000..6d467eb --- /dev/null +++ b/news/static/news/css/foundation.min.css @@ -0,0 +1 @@ +@charset "UTF-8";@media print,screen and (min-width:40em){.reveal,.reveal.large,.reveal.small,.reveal.tiny{right:auto;left:auto;margin:0 auto}}/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.foundation-mq{font-family:"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"}html{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:100%}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}body{margin:0;padding:0;background:#fefefe;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle;max-width:100%;height:auto;-ms-interpolation-mode:bicubic}textarea{height:auto;min-height:50px;border-radius:0}select{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;border-radius:0}.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:0;background:0 0;line-height:1;cursor:auto}[data-whatinput=mouse] button{outline:0}pre{overflow:auto}button,input,optgroup,select,textarea{font-family:inherit}.is-visible{display:block!important}.is-hidden{display:none!important}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}p{margin-bottom:1rem;font-size:inherit;line-height:1.6;text-rendering:optimizeLegibility}em,i{font-style:italic;line-height:inherit}b,strong{font-weight:700;line-height:inherit}small{font-size:80%;line-height:inherit}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:400;color:inherit;text-rendering:optimizeLegibility}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{line-height:0;color:#cacaca}.h1,h1{font-size:1.5rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h2,h2{font-size:1.25rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h3,h3{font-size:1.1875rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h4,h4{font-size:1.125rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h5,h5{font-size:1.0625rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h6,h6{font-size:1rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}@media print,screen and (min-width:40em){.h1,h1{font-size:3rem}.h2,h2{font-size:2.5rem}.h3,h3{font-size:1.9375rem}.h4,h4{font-size:1.5625rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}}a{line-height:inherit;color:#1779ba;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#1468a0}a img{border:0}hr{clear:both;max-width:75rem;height:0;margin:1.25rem auto;border-top:0;border-right:0;border-bottom:1px solid #cacaca;border-left:0}dl,ol,ul{margin-bottom:1rem;list-style-position:outside;line-height:1.6}li{font-size:inherit}ul{margin-left:1.25rem;list-style-type:disc}ol{margin-left:1.25rem}ol ol,ol ul,ul ol,ul ul{margin-left:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:.3rem;font-weight:700}blockquote{margin:0 0 1rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}cite{display:block;font-size:.8125rem;color:#8a8a8a}cite:before{content:"— "}abbr,abbr[title]{border-bottom:1px dotted #0a0a0a;cursor:help;text-decoration:none}figure{margin:0}code{padding:.125rem .3125rem .0625rem;border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#0a0a0a}kbd{margin:0;padding:.125rem .25rem 0;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;color:#0a0a0a}.subheader{margin-top:.2rem;margin-bottom:.5rem;font-weight:400;line-height:1.4;color:#8a8a8a}.lead{font-size:125%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}ol.no-bullet,ul.no-bullet{margin-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media print,screen and (min-width:40em){.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}}@media print,screen and (min-width:64em){.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{*{background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important;color:#000!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print{display:table-cell!important}th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}.ir a:after,a[href^='#']:after,a[href^='javascript:']:after{content:''}abbr[title]:after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #8a8a8a;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.print-break-inside{page-break-inside:auto}}.grid-container{padding-right:.625rem;padding-left:.625rem;max-width:75rem;margin:0 auto}@media print,screen and (min-width:40em){.grid-container{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.fluid{padding-right:.625rem;padding-left:.625rem;max-width:100%;margin:0 auto}@media print,screen and (min-width:40em){.grid-container.fluid{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.full{padding-right:0;padding-left:0;max-width:100%;margin:0 auto}.grid-x{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.cell{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;min-height:0;min-width:0;width:100%}.cell.auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.cell.shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.auto{width:auto}.grid-x>.shrink{width:auto}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9,.grid-x>.small-full,.grid-x>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-full,.grid-x>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-full,.grid-x>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.small-1{width:8.33333%}.grid-x>.small-2{width:16.66667%}.grid-x>.small-3{width:25%}.grid-x>.small-4{width:33.33333%}.grid-x>.small-5{width:41.66667%}.grid-x>.small-6{width:50%}.grid-x>.small-7{width:58.33333%}.grid-x>.small-8{width:66.66667%}.grid-x>.small-9{width:75%}.grid-x>.small-10{width:83.33333%}.grid-x>.small-11{width:91.66667%}.grid-x>.small-12{width:100%}@media print,screen and (min-width:40em){.grid-x>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;width:auto}.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.medium-shrink{width:auto}.grid-x>.medium-1{width:8.33333%}.grid-x>.medium-2{width:16.66667%}.grid-x>.medium-3{width:25%}.grid-x>.medium-4{width:33.33333%}.grid-x>.medium-5{width:41.66667%}.grid-x>.medium-6{width:50%}.grid-x>.medium-7{width:58.33333%}.grid-x>.medium-8{width:66.66667%}.grid-x>.medium-9{width:75%}.grid-x>.medium-10{width:83.33333%}.grid-x>.medium-11{width:91.66667%}.grid-x>.medium-12{width:100%}}@media print,screen and (min-width:64em){.grid-x>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;width:auto}.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.large-shrink{width:auto}.grid-x>.large-1{width:8.33333%}.grid-x>.large-2{width:16.66667%}.grid-x>.large-3{width:25%}.grid-x>.large-4{width:33.33333%}.grid-x>.large-5{width:41.66667%}.grid-x>.large-6{width:50%}.grid-x>.large-7{width:58.33333%}.grid-x>.large-8{width:66.66667%}.grid-x>.large-9{width:75%}.grid-x>.large-10{width:83.33333%}.grid-x>.large-11{width:91.66667%}.grid-x>.large-12{width:100%}}.grid-margin-x:not(.grid-x)>.cell{width:auto}.grid-margin-y:not(.grid-y)>.cell{height:auto}.grid-margin-x{margin-left:-.625rem;margin-right:-.625rem}@media print,screen and (min-width:40em){.grid-margin-x{margin-left:-.9375rem;margin-right:-.9375rem}}.grid-margin-x>.cell{width:calc(100% - 1.25rem);margin-left:.625rem;margin-right:.625rem}@media print,screen and (min-width:40em){.grid-margin-x>.cell{width:calc(100% - 1.875rem);margin-left:.9375rem;margin-right:.9375rem}}.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.25rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.25rem)}.grid-margin-x>.small-3{width:calc(25% - 1.25rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.25rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.25rem)}.grid-margin-x>.small-6{width:calc(50% - 1.25rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.25rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.25rem)}.grid-margin-x>.small-9{width:calc(75% - 1.25rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.25rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.25rem)}.grid-margin-x>.small-12{width:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.small-3{width:calc(25% - 1.875rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.small-6{width:calc(50% - 1.875rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.small-9{width:calc(75% - 1.875rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.small-12{width:calc(100% - 1.875rem)}.grid-margin-x>.medium-auto{width:auto}.grid-margin-x>.medium-shrink{width:auto}.grid-margin-x>.medium-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.medium-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.medium-3{width:calc(25% - 1.875rem)}.grid-margin-x>.medium-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.medium-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.medium-6{width:calc(50% - 1.875rem)}.grid-margin-x>.medium-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.medium-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.medium-9{width:calc(75% - 1.875rem)}.grid-margin-x>.medium-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.medium-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.medium-12{width:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x>.large-auto{width:auto}.grid-margin-x>.large-shrink{width:auto}.grid-margin-x>.large-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.large-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.large-3{width:calc(25% - 1.875rem)}.grid-margin-x>.large-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.large-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.large-6{width:calc(50% - 1.875rem)}.grid-margin-x>.large-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.large-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.large-9{width:calc(75% - 1.875rem)}.grid-margin-x>.large-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.large-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.large-12{width:calc(100% - 1.875rem)}}.grid-padding-x .grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-padding-x .grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-container:not(.full)>.grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-container:not(.full)>.grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-padding-x>.cell{padding-right:.625rem;padding-left:.625rem}@media print,screen and (min-width:40em){.grid-padding-x>.cell{padding-right:.9375rem;padding-left:.9375rem}}.small-up-1>.cell{width:100%}.small-up-2>.cell{width:50%}.small-up-3>.cell{width:33.33333%}.small-up-4>.cell{width:25%}.small-up-5>.cell{width:20%}.small-up-6>.cell{width:16.66667%}.small-up-7>.cell{width:14.28571%}.small-up-8>.cell{width:12.5%}@media print,screen and (min-width:40em){.medium-up-1>.cell{width:100%}.medium-up-2>.cell{width:50%}.medium-up-3>.cell{width:33.33333%}.medium-up-4>.cell{width:25%}.medium-up-5>.cell{width:20%}.medium-up-6>.cell{width:16.66667%}.medium-up-7>.cell{width:14.28571%}.medium-up-8>.cell{width:12.5%}}@media print,screen and (min-width:64em){.large-up-1>.cell{width:100%}.large-up-2>.cell{width:50%}.large-up-3>.cell{width:33.33333%}.large-up-4>.cell{width:25%}.large-up-5>.cell{width:20%}.large-up-6>.cell{width:16.66667%}.large-up-7>.cell{width:14.28571%}.large-up-8>.cell{width:12.5%}}.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.25rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.25rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.25rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.25rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.25rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.25rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.25rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.875rem)}.grid-margin-x.medium-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.medium-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.medium-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.medium-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.medium-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.medium-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.medium-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.medium-up-8>.cell{width:calc(12.5% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x.large-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.large-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.large-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.large-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.large-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.large-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.large-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.large-up-8>.cell{width:calc(12.5% - 1.875rem)}}.small-margin-collapse{margin-right:0;margin-left:0}.small-margin-collapse>.cell{margin-right:0;margin-left:0}.small-margin-collapse>.small-1{width:8.33333%}.small-margin-collapse>.small-2{width:16.66667%}.small-margin-collapse>.small-3{width:25%}.small-margin-collapse>.small-4{width:33.33333%}.small-margin-collapse>.small-5{width:41.66667%}.small-margin-collapse>.small-6{width:50%}.small-margin-collapse>.small-7{width:58.33333%}.small-margin-collapse>.small-8{width:66.66667%}.small-margin-collapse>.small-9{width:75%}.small-margin-collapse>.small-10{width:83.33333%}.small-margin-collapse>.small-11{width:91.66667%}.small-margin-collapse>.small-12{width:100%}@media print,screen and (min-width:40em){.small-margin-collapse>.medium-1{width:8.33333%}.small-margin-collapse>.medium-2{width:16.66667%}.small-margin-collapse>.medium-3{width:25%}.small-margin-collapse>.medium-4{width:33.33333%}.small-margin-collapse>.medium-5{width:41.66667%}.small-margin-collapse>.medium-6{width:50%}.small-margin-collapse>.medium-7{width:58.33333%}.small-margin-collapse>.medium-8{width:66.66667%}.small-margin-collapse>.medium-9{width:75%}.small-margin-collapse>.medium-10{width:83.33333%}.small-margin-collapse>.medium-11{width:91.66667%}.small-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.small-margin-collapse>.large-1{width:8.33333%}.small-margin-collapse>.large-2{width:16.66667%}.small-margin-collapse>.large-3{width:25%}.small-margin-collapse>.large-4{width:33.33333%}.small-margin-collapse>.large-5{width:41.66667%}.small-margin-collapse>.large-6{width:50%}.small-margin-collapse>.large-7{width:58.33333%}.small-margin-collapse>.large-8{width:66.66667%}.small-margin-collapse>.large-9{width:75%}.small-margin-collapse>.large-10{width:83.33333%}.small-margin-collapse>.large-11{width:91.66667%}.small-margin-collapse>.large-12{width:100%}}.small-padding-collapse{margin-right:0;margin-left:0}.small-padding-collapse>.cell{padding-right:0;padding-left:0}@media print,screen and (min-width:40em){.medium-margin-collapse{margin-right:0;margin-left:0}.medium-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:40em){.medium-margin-collapse>.small-1{width:8.33333%}.medium-margin-collapse>.small-2{width:16.66667%}.medium-margin-collapse>.small-3{width:25%}.medium-margin-collapse>.small-4{width:33.33333%}.medium-margin-collapse>.small-5{width:41.66667%}.medium-margin-collapse>.small-6{width:50%}.medium-margin-collapse>.small-7{width:58.33333%}.medium-margin-collapse>.small-8{width:66.66667%}.medium-margin-collapse>.small-9{width:75%}.medium-margin-collapse>.small-10{width:83.33333%}.medium-margin-collapse>.small-11{width:91.66667%}.medium-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:40em){.medium-margin-collapse>.medium-1{width:8.33333%}.medium-margin-collapse>.medium-2{width:16.66667%}.medium-margin-collapse>.medium-3{width:25%}.medium-margin-collapse>.medium-4{width:33.33333%}.medium-margin-collapse>.medium-5{width:41.66667%}.medium-margin-collapse>.medium-6{width:50%}.medium-margin-collapse>.medium-7{width:58.33333%}.medium-margin-collapse>.medium-8{width:66.66667%}.medium-margin-collapse>.medium-9{width:75%}.medium-margin-collapse>.medium-10{width:83.33333%}.medium-margin-collapse>.medium-11{width:91.66667%}.medium-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.medium-margin-collapse>.large-1{width:8.33333%}.medium-margin-collapse>.large-2{width:16.66667%}.medium-margin-collapse>.large-3{width:25%}.medium-margin-collapse>.large-4{width:33.33333%}.medium-margin-collapse>.large-5{width:41.66667%}.medium-margin-collapse>.large-6{width:50%}.medium-margin-collapse>.large-7{width:58.33333%}.medium-margin-collapse>.large-8{width:66.66667%}.medium-margin-collapse>.large-9{width:75%}.medium-margin-collapse>.large-10{width:83.33333%}.medium-margin-collapse>.large-11{width:91.66667%}.medium-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:40em){.medium-padding-collapse{margin-right:0;margin-left:0}.medium-padding-collapse>.cell{padding-right:0;padding-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse{margin-right:0;margin-left:0}.large-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse>.small-1{width:8.33333%}.large-margin-collapse>.small-2{width:16.66667%}.large-margin-collapse>.small-3{width:25%}.large-margin-collapse>.small-4{width:33.33333%}.large-margin-collapse>.small-5{width:41.66667%}.large-margin-collapse>.small-6{width:50%}.large-margin-collapse>.small-7{width:58.33333%}.large-margin-collapse>.small-8{width:66.66667%}.large-margin-collapse>.small-9{width:75%}.large-margin-collapse>.small-10{width:83.33333%}.large-margin-collapse>.small-11{width:91.66667%}.large-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.medium-1{width:8.33333%}.large-margin-collapse>.medium-2{width:16.66667%}.large-margin-collapse>.medium-3{width:25%}.large-margin-collapse>.medium-4{width:33.33333%}.large-margin-collapse>.medium-5{width:41.66667%}.large-margin-collapse>.medium-6{width:50%}.large-margin-collapse>.medium-7{width:58.33333%}.large-margin-collapse>.medium-8{width:66.66667%}.large-margin-collapse>.medium-9{width:75%}.large-margin-collapse>.medium-10{width:83.33333%}.large-margin-collapse>.medium-11{width:91.66667%}.large-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.large-1{width:8.33333%}.large-margin-collapse>.large-2{width:16.66667%}.large-margin-collapse>.large-3{width:25%}.large-margin-collapse>.large-4{width:33.33333%}.large-margin-collapse>.large-5{width:41.66667%}.large-margin-collapse>.large-6{width:50%}.large-margin-collapse>.large-7{width:58.33333%}.large-margin-collapse>.large-8{width:66.66667%}.large-margin-collapse>.large-9{width:75%}.large-margin-collapse>.large-10{width:83.33333%}.large-margin-collapse>.large-11{width:91.66667%}.large-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:64em){.large-padding-collapse{margin-right:0;margin-left:0}.large-padding-collapse>.cell{padding-right:0;padding-left:0}}.small-offset-0{margin-left:0}.grid-margin-x>.small-offset-0{margin-left:calc(0% + .625rem)}.small-offset-1{margin-left:8.33333%}.grid-margin-x>.small-offset-1{margin-left:calc(8.33333% + .625rem)}.small-offset-2{margin-left:16.66667%}.grid-margin-x>.small-offset-2{margin-left:calc(16.66667% + .625rem)}.small-offset-3{margin-left:25%}.grid-margin-x>.small-offset-3{margin-left:calc(25% + .625rem)}.small-offset-4{margin-left:33.33333%}.grid-margin-x>.small-offset-4{margin-left:calc(33.33333% + .625rem)}.small-offset-5{margin-left:41.66667%}.grid-margin-x>.small-offset-5{margin-left:calc(41.66667% + .625rem)}.small-offset-6{margin-left:50%}.grid-margin-x>.small-offset-6{margin-left:calc(50% + .625rem)}.small-offset-7{margin-left:58.33333%}.grid-margin-x>.small-offset-7{margin-left:calc(58.33333% + .625rem)}.small-offset-8{margin-left:66.66667%}.grid-margin-x>.small-offset-8{margin-left:calc(66.66667% + .625rem)}.small-offset-9{margin-left:75%}.grid-margin-x>.small-offset-9{margin-left:calc(75% + .625rem)}.small-offset-10{margin-left:83.33333%}.grid-margin-x>.small-offset-10{margin-left:calc(83.33333% + .625rem)}.small-offset-11{margin-left:91.66667%}.grid-margin-x>.small-offset-11{margin-left:calc(91.66667% + .625rem)}@media print,screen and (min-width:40em){.medium-offset-0{margin-left:0}.grid-margin-x>.medium-offset-0{margin-left:calc(0% + .9375rem)}.medium-offset-1{margin-left:8.33333%}.grid-margin-x>.medium-offset-1{margin-left:calc(8.33333% + .9375rem)}.medium-offset-2{margin-left:16.66667%}.grid-margin-x>.medium-offset-2{margin-left:calc(16.66667% + .9375rem)}.medium-offset-3{margin-left:25%}.grid-margin-x>.medium-offset-3{margin-left:calc(25% + .9375rem)}.medium-offset-4{margin-left:33.33333%}.grid-margin-x>.medium-offset-4{margin-left:calc(33.33333% + .9375rem)}.medium-offset-5{margin-left:41.66667%}.grid-margin-x>.medium-offset-5{margin-left:calc(41.66667% + .9375rem)}.medium-offset-6{margin-left:50%}.grid-margin-x>.medium-offset-6{margin-left:calc(50% + .9375rem)}.medium-offset-7{margin-left:58.33333%}.grid-margin-x>.medium-offset-7{margin-left:calc(58.33333% + .9375rem)}.medium-offset-8{margin-left:66.66667%}.grid-margin-x>.medium-offset-8{margin-left:calc(66.66667% + .9375rem)}.medium-offset-9{margin-left:75%}.grid-margin-x>.medium-offset-9{margin-left:calc(75% + .9375rem)}.medium-offset-10{margin-left:83.33333%}.grid-margin-x>.medium-offset-10{margin-left:calc(83.33333% + .9375rem)}.medium-offset-11{margin-left:91.66667%}.grid-margin-x>.medium-offset-11{margin-left:calc(91.66667% + .9375rem)}}@media print,screen and (min-width:64em){.large-offset-0{margin-left:0}.grid-margin-x>.large-offset-0{margin-left:calc(0% + .9375rem)}.large-offset-1{margin-left:8.33333%}.grid-margin-x>.large-offset-1{margin-left:calc(8.33333% + .9375rem)}.large-offset-2{margin-left:16.66667%}.grid-margin-x>.large-offset-2{margin-left:calc(16.66667% + .9375rem)}.large-offset-3{margin-left:25%}.grid-margin-x>.large-offset-3{margin-left:calc(25% + .9375rem)}.large-offset-4{margin-left:33.33333%}.grid-margin-x>.large-offset-4{margin-left:calc(33.33333% + .9375rem)}.large-offset-5{margin-left:41.66667%}.grid-margin-x>.large-offset-5{margin-left:calc(41.66667% + .9375rem)}.large-offset-6{margin-left:50%}.grid-margin-x>.large-offset-6{margin-left:calc(50% + .9375rem)}.large-offset-7{margin-left:58.33333%}.grid-margin-x>.large-offset-7{margin-left:calc(58.33333% + .9375rem)}.large-offset-8{margin-left:66.66667%}.grid-margin-x>.large-offset-8{margin-left:calc(66.66667% + .9375rem)}.large-offset-9{margin-left:75%}.grid-margin-x>.large-offset-9{margin-left:calc(75% + .9375rem)}.large-offset-10{margin-left:83.33333%}.grid-margin-x>.large-offset-10{margin-left:calc(83.33333% + .9375rem)}.large-offset-11{margin-left:91.66667%}.grid-margin-x>.large-offset-11{margin-left:calc(91.66667% + .9375rem)}}.grid-y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.grid-y>.cell{width:auto;max-width:none}.grid-y>.auto{height:auto}.grid-y>.shrink{height:auto}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9,.grid-y>.small-full,.grid-y>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-full,.grid-y>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-full,.grid-y>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.small-1{height:8.33333%}.grid-y>.small-2{height:16.66667%}.grid-y>.small-3{height:25%}.grid-y>.small-4{height:33.33333%}.grid-y>.small-5{height:41.66667%}.grid-y>.small-6{height:50%}.grid-y>.small-7{height:58.33333%}.grid-y>.small-8{height:66.66667%}.grid-y>.small-9{height:75%}.grid-y>.small-10{height:83.33333%}.grid-y>.small-11{height:91.66667%}.grid-y>.small-12{height:100%}@media print,screen and (min-width:40em){.grid-y>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;height:auto}.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.medium-shrink{height:auto}.grid-y>.medium-1{height:8.33333%}.grid-y>.medium-2{height:16.66667%}.grid-y>.medium-3{height:25%}.grid-y>.medium-4{height:33.33333%}.grid-y>.medium-5{height:41.66667%}.grid-y>.medium-6{height:50%}.grid-y>.medium-7{height:58.33333%}.grid-y>.medium-8{height:66.66667%}.grid-y>.medium-9{height:75%}.grid-y>.medium-10{height:83.33333%}.grid-y>.medium-11{height:91.66667%}.grid-y>.medium-12{height:100%}}@media print,screen and (min-width:64em){.grid-y>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;height:auto}.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.large-shrink{height:auto}.grid-y>.large-1{height:8.33333%}.grid-y>.large-2{height:16.66667%}.grid-y>.large-3{height:25%}.grid-y>.large-4{height:33.33333%}.grid-y>.large-5{height:41.66667%}.grid-y>.large-6{height:50%}.grid-y>.large-7{height:58.33333%}.grid-y>.large-8{height:66.66667%}.grid-y>.large-9{height:75%}.grid-y>.large-10{height:83.33333%}.grid-y>.large-11{height:91.66667%}.grid-y>.large-12{height:100%}}.grid-padding-y .grid-padding-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-padding-y .grid-padding-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-padding-y>.cell{padding-top:.625rem;padding-bottom:.625rem}@media print,screen and (min-width:40em){.grid-padding-y>.cell{padding-top:.9375rem;padding-bottom:.9375rem}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .grid-frame{width:100%}.cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}@media print,screen and (min-width:40em){.medium-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .medium-grid-frame{width:100%}.medium-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.medium-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.medium-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.medium-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}@media print,screen and (min-width:64em){.large-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .large-grid-frame{width:100%}.large-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.large-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.large-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.large-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}.grid-y.grid-frame{width:auto;overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh}@media print,screen and (min-width:40em){.grid-y.medium-grid-frame{width:auto;overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh}}@media print,screen and (min-width:64em){.grid-y.large-grid-frame{width:auto;overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh}}.cell .grid-y.grid-frame{height:100%}@media print,screen and (min-width:40em){.cell .grid-y.medium-grid-frame{height:100%}}@media print,screen and (min-width:64em){.cell .grid-y.large-grid-frame{height:100%}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame.grid-margin-y{height:calc(100vh + 1.25rem)}@media print,screen and (min-width:40em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:40em){.grid-margin-y.medium-grid-frame{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y.large-grid-frame{height:calc(100vh + 1.875rem)}}.align-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-right{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.align-spaced{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.align-left.vertical.menu>li>a{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-right.vertical.menu>li>a{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-center.vertical.menu>li>a{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-top{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.align-self-top{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.align-bottom{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.align-self-bottom{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.align-middle{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.align-self-middle{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.align-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.align-self-stretch{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch}.align-center-middle{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center}.small-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.small-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.small-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.small-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.small-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.small-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}@media print,screen and (min-width:40em){.medium-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.medium-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.medium-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.medium-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.medium-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.medium-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}@media print,screen and (min-width:64em){.large-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.large-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.large-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.large-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.large-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.large-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}.flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}@media print,screen and (min-width:40em){.medium-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.medium-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.medium-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.medium-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.medium-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.medium-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.medium-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.medium-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}@media print,screen and (min-width:64em){.large-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.large-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.large-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.large-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.large-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.large-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.large-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.large-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}[type=color],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],textarea{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:2.4375rem;margin:0 0 1rem;padding:.5rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;-webkit-box-shadow:inset 0 1px 2px rgba(10,10,10,.1);box-shadow:inset 0 1px 2px rgba(10,10,10,.1);font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s;-webkit-appearance:none;-moz-appearance:none;appearance:none}[type=color]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=datetime]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,textarea:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}textarea{max-width:100%}textarea[rows]{height:auto}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type=button],[type=submit]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}::-webkit-input-placeholder{color:#cacaca}:-ms-input-placeholder{color:#cacaca}::-ms-input-placeholder{color:#cacaca}::placeholder{color:#cacaca}[type=checkbox],[type=file],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;vertical-align:baseline;margin-left:.5rem;margin-right:1rem;margin-bottom:0}[type=checkbox]+label[for],[type=radio]+label[for]{cursor:pointer}label>[type=checkbox],label>[type=radio]{margin-right:.5rem}[type=file]{width:100%}label{display:block;margin:0;font-size:.875rem;font-weight:400;line-height:1.8;color:#0a0a0a}label.middle{margin:0 0 1rem;padding:.5625rem 0}.help-text{margin-top:-.5rem;font-size:.8125rem;font-style:italic;color:#0a0a0a}.input-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;margin-bottom:1rem;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.input-group>:first-child,.input-group>:first-child.input-group-button>*{border-radius:0}.input-group>:last-child,.input-group>:last-child.input-group-button>*{border-radius:0}.input-group-button,.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label,.input-group-field,.input-group-label{margin:0;white-space:nowrap}.input-group-label{padding:0 1rem;border:1px solid #cacaca;background:#e6e6e6;color:#0a0a0a;text-align:center;white-space:nowrap;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.input-group-field{border-radius:0;-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;min-width:0}.input-group-button{padding-top:0;padding-bottom:0;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;height:auto;padding-top:0;padding-bottom:0;font-size:1rem}fieldset{margin:0;padding:0;border:0}legend{max-width:100%;margin-bottom:.5rem}.fieldset{margin:1.125rem 0;padding:1.25rem;border:1px solid #cacaca}.fieldset legend{margin:0;margin-left:-.1875rem;padding:0 .1875rem}select{height:2.4375rem;margin:0 0 1rem;padding:.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;background-image:url("data:image/svg+xml;utf8,");background-origin:content-box;background-position:right -1rem center;background-repeat:no-repeat;background-size:9px 6px;padding-right:1.5rem;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}@media screen and (min-width:0\0){select{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==)}}select:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{height:auto;background-image:none}.is-invalid-input:not(:focus){border-color:#cc4b37;background-color:#f9ecea}.is-invalid-input:not(:focus)::-webkit-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus):-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::placeholder{color:#cc4b37}.is-invalid-label{color:#cc4b37}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem;font-weight:700;color:#cc4b37}.form-error.is-visible{display:block}.button{display:inline-block;vertical-align:middle;margin:0 0 1rem 0;padding:.85em 1em;border:1px solid transparent;border-radius:0;-webkit-transition:background-color .25s ease-out,color .25s ease-out;transition:background-color .25s ease-out,color .25s ease-out;font-family:inherit;font-size:.9rem;-webkit-appearance:none;line-height:1;text-align:center;cursor:pointer;background-color:#1779ba;color:#fefefe}[data-whatinput=mouse] .button{outline:0}.button:focus,.button:hover{background-color:#14679e;color:#fefefe}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-right:0;margin-left:0}.button.primary{background-color:#1779ba;color:#fefefe}.button.primary:focus,.button.primary:hover{background-color:#126195;color:#fefefe}.button.secondary{background-color:#767676;color:#fefefe}.button.secondary:focus,.button.secondary:hover{background-color:#5e5e5e;color:#fefefe}.button.success{background-color:#3adb76;color:#0a0a0a}.button.success:focus,.button.success:hover{background-color:#22bb5b;color:#0a0a0a}.button.warning{background-color:#ffae00;color:#0a0a0a}.button.warning:focus,.button.warning:hover{background-color:#cc8b00;color:#0a0a0a}.button.alert{background-color:#cc4b37;color:#fefefe}.button.alert:focus,.button.alert:hover{background-color:#a53b2a;color:#fefefe}.button.disabled,.button[disabled]{opacity:.25;cursor:not-allowed}.button.disabled,.button.disabled:focus,.button.disabled:hover,.button[disabled],.button[disabled]:focus,.button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button.disabled.primary,.button[disabled].primary{opacity:.25;cursor:not-allowed}.button.disabled.primary,.button.disabled.primary:focus,.button.disabled.primary:hover,.button[disabled].primary,.button[disabled].primary:focus,.button[disabled].primary:hover{background-color:#1779ba;color:#fefefe}.button.disabled.secondary,.button[disabled].secondary{opacity:.25;cursor:not-allowed}.button.disabled.secondary,.button.disabled.secondary:focus,.button.disabled.secondary:hover,.button[disabled].secondary,.button[disabled].secondary:focus,.button[disabled].secondary:hover{background-color:#767676;color:#fefefe}.button.disabled.success,.button[disabled].success{opacity:.25;cursor:not-allowed}.button.disabled.success,.button.disabled.success:focus,.button.disabled.success:hover,.button[disabled].success,.button[disabled].success:focus,.button[disabled].success:hover{background-color:#3adb76;color:#0a0a0a}.button.disabled.warning,.button[disabled].warning{opacity:.25;cursor:not-allowed}.button.disabled.warning,.button.disabled.warning:focus,.button.disabled.warning:hover,.button[disabled].warning,.button[disabled].warning:focus,.button[disabled].warning:hover{background-color:#ffae00;color:#0a0a0a}.button.disabled.alert,.button[disabled].alert{opacity:.25;cursor:not-allowed}.button.disabled.alert,.button.disabled.alert:focus,.button.disabled.alert:hover,.button[disabled].alert,.button[disabled].alert:focus,.button[disabled].alert:hover{background-color:#cc4b37;color:#fefefe}.button.hollow{border:1px solid #1779ba;color:#1779ba}.button.hollow,.button.hollow:focus,.button.hollow:hover{background-color:transparent}.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{background-color:transparent}.button.hollow:focus,.button.hollow:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow:focus.disabled,.button.hollow:focus[disabled],.button.hollow:hover.disabled,.button.hollow:hover[disabled]{border:1px solid #1779ba;color:#1779ba}.button.hollow.primary{border:1px solid #1779ba;color:#1779ba}.button.hollow.primary:focus,.button.hollow.primary:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.primary:focus.disabled,.button.hollow.primary:focus[disabled],.button.hollow.primary:hover.disabled,.button.hollow.primary:hover[disabled]{border:1px solid #1779ba;color:#1779ba}.button.hollow.secondary{border:1px solid #767676;color:#767676}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#3b3b3b;color:#3b3b3b}.button.hollow.secondary:focus.disabled,.button.hollow.secondary:focus[disabled],.button.hollow.secondary:hover.disabled,.button.hollow.secondary:hover[disabled]{border:1px solid #767676;color:#767676}.button.hollow.success{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#157539;color:#157539}.button.hollow.success:focus.disabled,.button.hollow.success:focus[disabled],.button.hollow.success:hover.disabled,.button.hollow.success:hover[disabled]{border:1px solid #3adb76;color:#3adb76}.button.hollow.warning{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#805700;color:#805700}.button.hollow.warning:focus.disabled,.button.hollow.warning:focus[disabled],.button.hollow.warning:hover.disabled,.button.hollow.warning:hover[disabled]{border:1px solid #ffae00;color:#ffae00}.button.hollow.alert{border:1px solid #cc4b37;color:#cc4b37}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#67251a;color:#67251a}.button.hollow.alert:focus.disabled,.button.hollow.alert:focus[disabled],.button.hollow.alert:hover.disabled,.button.hollow.alert:hover[disabled]{border:1px solid #cc4b37;color:#cc4b37}.button.clear{border:1px solid #1779ba;color:#1779ba}.button.clear,.button.clear:focus,.button.clear:hover{background-color:transparent}.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{background-color:transparent}.button.clear:focus,.button.clear:hover{border-color:#0c3d5d;color:#0c3d5d}.button.clear:focus.disabled,.button.clear:focus[disabled],.button.clear:hover.disabled,.button.clear:hover[disabled]{border:1px solid #1779ba;color:#1779ba}.button.clear,.button.clear.disabled,.button.clear:focus,.button.clear:focus.disabled,.button.clear:focus[disabled],.button.clear:hover,.button.clear:hover.disabled,.button.clear:hover[disabled],.button.clear[disabled]{border-color:transparent}.button.clear.primary{border:1px solid #1779ba;color:#1779ba}.button.clear.primary:focus,.button.clear.primary:hover{border-color:#0c3d5d;color:#0c3d5d}.button.clear.primary:focus.disabled,.button.clear.primary:focus[disabled],.button.clear.primary:hover.disabled,.button.clear.primary:hover[disabled]{border:1px solid #1779ba;color:#1779ba}.button.clear.primary,.button.clear.primary.disabled,.button.clear.primary:focus,.button.clear.primary:focus.disabled,.button.clear.primary:focus[disabled],.button.clear.primary:hover,.button.clear.primary:hover.disabled,.button.clear.primary:hover[disabled],.button.clear.primary[disabled]{border-color:transparent}.button.clear.secondary{border:1px solid #767676;color:#767676}.button.clear.secondary:focus,.button.clear.secondary:hover{border-color:#3b3b3b;color:#3b3b3b}.button.clear.secondary:focus.disabled,.button.clear.secondary:focus[disabled],.button.clear.secondary:hover.disabled,.button.clear.secondary:hover[disabled]{border:1px solid #767676;color:#767676}.button.clear.secondary,.button.clear.secondary.disabled,.button.clear.secondary:focus,.button.clear.secondary:focus.disabled,.button.clear.secondary:focus[disabled],.button.clear.secondary:hover,.button.clear.secondary:hover.disabled,.button.clear.secondary:hover[disabled],.button.clear.secondary[disabled]{border-color:transparent}.button.clear.success{border:1px solid #3adb76;color:#3adb76}.button.clear.success:focus,.button.clear.success:hover{border-color:#157539;color:#157539}.button.clear.success:focus.disabled,.button.clear.success:focus[disabled],.button.clear.success:hover.disabled,.button.clear.success:hover[disabled]{border:1px solid #3adb76;color:#3adb76}.button.clear.success,.button.clear.success.disabled,.button.clear.success:focus,.button.clear.success:focus.disabled,.button.clear.success:focus[disabled],.button.clear.success:hover,.button.clear.success:hover.disabled,.button.clear.success:hover[disabled],.button.clear.success[disabled]{border-color:transparent}.button.clear.warning{border:1px solid #ffae00;color:#ffae00}.button.clear.warning:focus,.button.clear.warning:hover{border-color:#805700;color:#805700}.button.clear.warning:focus.disabled,.button.clear.warning:focus[disabled],.button.clear.warning:hover.disabled,.button.clear.warning:hover[disabled]{border:1px solid #ffae00;color:#ffae00}.button.clear.warning,.button.clear.warning.disabled,.button.clear.warning:focus,.button.clear.warning:focus.disabled,.button.clear.warning:focus[disabled],.button.clear.warning:hover,.button.clear.warning:hover.disabled,.button.clear.warning:hover[disabled],.button.clear.warning[disabled]{border-color:transparent}.button.clear.alert{border:1px solid #cc4b37;color:#cc4b37}.button.clear.alert:focus,.button.clear.alert:hover{border-color:#67251a;color:#67251a}.button.clear.alert:focus.disabled,.button.clear.alert:focus[disabled],.button.clear.alert:hover.disabled,.button.clear.alert:hover[disabled]{border:1px solid #cc4b37;color:#cc4b37}.button.clear.alert,.button.clear.alert.disabled,.button.clear.alert:focus,.button.clear.alert:focus.disabled,.button.clear.alert:focus[disabled],.button.clear.alert:hover,.button.clear.alert:hover.disabled,.button.clear.alert:hover[disabled],.button.clear.alert[disabled]{border-color:transparent}.button.dropdown::after{display:block;width:0;height:0;border:inset .4em;content:'';border-bottom-width:0;border-top-style:solid;border-color:#fefefe transparent transparent;position:relative;top:.4em;display:inline-block;float:right;margin-left:1em}.button.dropdown.clear::after,.button.dropdown.hollow::after{border-top-color:#1779ba}.button.dropdown.clear.primary::after,.button.dropdown.hollow.primary::after{border-top-color:#1779ba}.button.dropdown.clear.secondary::after,.button.dropdown.hollow.secondary::after{border-top-color:#767676}.button.dropdown.clear.success::after,.button.dropdown.hollow.success::after{border-top-color:#3adb76}.button.dropdown.clear.warning::after,.button.dropdown.hollow.warning::after{border-top-color:#ffae00}.button.dropdown.clear.alert::after,.button.dropdown.hollow.alert::after{border-top-color:#cc4b37}.button.arrow-only::after{top:-.1em;float:none;margin-left:0}a.button:focus,a.button:hover{text-decoration:none}.callout{position:relative;margin:0 0 1rem 0;padding:1rem;border:1px solid rgba(10,10,10,.25);border-radius:0;background-color:#fff;color:#0a0a0a}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout.primary{background-color:#d7ecfa;color:#0a0a0a}.callout.secondary{background-color:#eaeaea;color:#0a0a0a}.callout.success{background-color:#e1faea;color:#0a0a0a}.callout.warning{background-color:#fff3d9;color:#0a0a0a}.callout.alert{background-color:#f7e4e1;color:#0a0a0a}.callout.small{padding-top:.5rem;padding-right:.5rem;padding-bottom:.5rem;padding-left:.5rem}.callout.large{padding-top:3rem;padding-right:3rem;padding-bottom:3rem;padding-left:3rem}html.is-reveal-open{position:fixed;width:100%;overflow-y:hidden}html.is-reveal-open.zf-has-scroll{overflow-y:scroll}html.is-reveal-open body{overflow-y:hidden}.reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1005;display:none;background-color:rgba(10,10,10,.45);overflow-y:auto}.reveal{z-index:1006;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none;padding:1rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;position:relative;top:100px;margin-right:auto;margin-left:auto;overflow-y:auto}[data-whatinput=mouse] .reveal{outline:0}@media print,screen and (min-width:40em){.reveal{min-height:0}}.reveal .column{min-width:0}.reveal>:last-child{margin-bottom:0}@media print,screen and (min-width:40em){.reveal{width:600px;max-width:75rem}}.reveal.collapse{padding:0}@media print,screen and (min-width:40em){.reveal.tiny{width:30%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.small{width:50%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.large{width:90%;max-width:75rem}}.reveal.full{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}@media screen and (max-width:39.99875em){.reveal{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}}.reveal.without-overlay{position:fixed}.slide-in-down.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-in-down.mui-enter.mui-enter-active{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.slide-in-left.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-in-left.mui-enter.mui-enter-active{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.slide-in-up.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-in-up.mui-enter.mui-enter-active{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.slide-in-right.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-in-right.mui-enter.mui-enter-active{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.slide-out-down.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-out-down.mui-leave.mui-leave-active{-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.slide-out-right.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-out-right.mui-leave.mui-leave-active{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.slide-out-up.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-out-up.mui-leave.mui-leave-active{-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.slide-out-left.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-out-left.mui-leave.mui-leave-active{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.fade-in.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;opacity:0;-webkit-transition-property:opacity;transition-property:opacity}.fade-in.mui-enter.mui-enter-active{opacity:1}.fade-out.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;opacity:1;-webkit-transition-property:opacity;transition-property:opacity}.fade-out.mui-leave.mui-leave-active{opacity:0}.hinge-in-from-top.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);-webkit-transform-origin:top;-ms-transform-origin:top;transform-origin:top;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:0}.hinge-in-from-top.mui-enter.mui-enter-active{-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);opacity:1}.hinge-in-from-right.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);-webkit-transform-origin:right;-ms-transform-origin:right;transform-origin:right;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:0}.hinge-in-from-right.mui-enter.mui-enter-active{-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);opacity:1}.hinge-in-from-bottom.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotateX(90deg);transform:perspective(2000px) rotateX(90deg);-webkit-transform-origin:bottom;-ms-transform-origin:bottom;transform-origin:bottom;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:0}.hinge-in-from-bottom.mui-enter.mui-enter-active{-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);opacity:1}.hinge-in-from-left.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);-webkit-transform-origin:left;-ms-transform-origin:left;transform-origin:left;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:0}.hinge-in-from-left.mui-enter.mui-enter-active{-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);opacity:1}.hinge-in-from-middle-x.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:0}.hinge-in-from-middle-x.mui-enter.mui-enter-active{-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);opacity:1}.hinge-in-from-middle-y.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:0}.hinge-in-from-middle-y.mui-enter.mui-enter-active{-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);opacity:1}.hinge-out-from-top.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);-webkit-transform-origin:top;-ms-transform-origin:top;transform-origin:top;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:1}.hinge-out-from-top.mui-leave.mui-leave-active{-webkit-transform:perspective(2000px) rotateX(90deg);transform:perspective(2000px) rotateX(90deg);opacity:0}.hinge-out-from-right.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);-webkit-transform-origin:right;-ms-transform-origin:right;transform-origin:right;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:1}.hinge-out-from-right.mui-leave.mui-leave-active{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}.hinge-out-from-bottom.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);-webkit-transform-origin:bottom;-ms-transform-origin:bottom;transform-origin:bottom;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:1}.hinge-out-from-bottom.mui-leave.mui-leave-active{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}.hinge-out-from-left.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);-webkit-transform-origin:left;-ms-transform-origin:left;transform-origin:left;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:1}.hinge-out-from-left.mui-leave.mui-leave-active{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}.hinge-out-from-middle-x.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:1}.hinge-out-from-middle-x.mui-leave.mui-leave-active{-webkit-transform:perspective(2000px) rotateX(90deg);transform:perspective(2000px) rotateX(90deg);opacity:0}.hinge-out-from-middle-y.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:1}.hinge-out-from-middle-y.mui-leave.mui-leave-active{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}.scale-in-up.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:0}.scale-in-up.mui-enter.mui-enter-active{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.scale-in-down.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:scale(1.5);-ms-transform:scale(1.5);transform:scale(1.5);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:0}.scale-in-down.mui-enter.mui-enter-active{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.scale-out-up.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:1}.scale-out-up.mui-leave.mui-leave-active{-webkit-transform:scale(1.5);-ms-transform:scale(1.5);transform:scale(1.5);opacity:0}.scale-out-down.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:1}.scale-out-down.mui-leave.mui-leave-active{-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5);opacity:0}.spin-in.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:rotate(-.75turn);-ms-transform:rotate(-.75turn);transform:rotate(-.75turn);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:0}.spin-in.mui-enter.mui-enter-active{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}.spin-out.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:1}.spin-out.mui-leave.mui-leave-active{-webkit-transform:rotate(.75turn);-ms-transform:rotate(.75turn);transform:rotate(.75turn);opacity:0}.spin-in-ccw.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:rotate(.75turn);-ms-transform:rotate(.75turn);transform:rotate(.75turn);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:0}.spin-in-ccw.mui-enter.mui-enter-active{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}.spin-out-ccw.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:1}.spin-out-ccw.mui-leave.mui-leave-active{-webkit-transform:rotate(-.75turn);-ms-transform:rotate(-.75turn);transform:rotate(-.75turn);opacity:0}.slow{-webkit-transition-duration:750ms!important;transition-duration:750ms!important}.fast{-webkit-transition-duration:250ms!important;transition-duration:250ms!important}.linear{-webkit-transition-timing-function:linear!important;transition-timing-function:linear!important}.ease{-webkit-transition-timing-function:ease!important;transition-timing-function:ease!important}.ease-in{-webkit-transition-timing-function:ease-in!important;transition-timing-function:ease-in!important}.ease-out{-webkit-transition-timing-function:ease-out!important;transition-timing-function:ease-out!important}.ease-in-out{-webkit-transition-timing-function:ease-in-out!important;transition-timing-function:ease-in-out!important}.bounce-in{-webkit-transition-timing-function:cubic-bezier(.485,.155,.24,1.245)!important;transition-timing-function:cubic-bezier(.485,.155,.24,1.245)!important}.bounce-out{-webkit-transition-timing-function:cubic-bezier(.485,.155,.515,.845)!important;transition-timing-function:cubic-bezier(.485,.155,.515,.845)!important}.bounce-in-out{-webkit-transition-timing-function:cubic-bezier(.76,-.245,.24,1.245)!important;transition-timing-function:cubic-bezier(.76,-.245,.24,1.245)!important}.short-delay{-webkit-transition-delay:.3s!important;transition-delay:.3s!important}.long-delay{-webkit-transition-delay:.7s!important;transition-delay:.7s!important}.shake{-webkit-animation-name:shake-7;animation-name:shake-7}@-webkit-keyframes shake-7{0%,10%,20%,30%,40%,50%,60%,70%,80%,90%{-webkit-transform:translateX(7%);transform:translateX(7%)}15%,25%,35%,45%,5%,55%,65%,75%,85%,95%{-webkit-transform:translateX(-7%);transform:translateX(-7%)}}@keyframes shake-7{0%,10%,20%,30%,40%,50%,60%,70%,80%,90%{-webkit-transform:translateX(7%);transform:translateX(7%)}15%,25%,35%,45%,5%,55%,65%,75%,85%,95%{-webkit-transform:translateX(-7%);transform:translateX(-7%)}}.spin-cw{-webkit-animation-name:spin-cw-1turn;animation-name:spin-cw-1turn}@-webkit-keyframes spin-cw-1turn{0%{-webkit-transform:rotate(-1turn);transform:rotate(-1turn)}100%{-webkit-transform:rotate(0);transform:rotate(0)}}@keyframes spin-cw-1turn{0%{-webkit-transform:rotate(-1turn);transform:rotate(-1turn)}100%{-webkit-transform:rotate(0);transform:rotate(0)}}.spin-ccw{-webkit-animation-name:spin-ccw-1turn;animation-name:spin-ccw-1turn}@-webkit-keyframes spin-ccw-1turn{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(-1turn);transform:rotate(-1turn)}}@keyframes spin-ccw-1turn{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(-1turn);transform:rotate(-1turn)}}.wiggle{-webkit-animation-name:wiggle-7deg;animation-name:wiggle-7deg}@-webkit-keyframes wiggle-7deg{40%,50%,60%{-webkit-transform:rotate(7deg);transform:rotate(7deg)}35%,45%,55%,65%{-webkit-transform:rotate(-7deg);transform:rotate(-7deg)}0%,100%,30%,70%{-webkit-transform:rotate(0);transform:rotate(0)}}@keyframes wiggle-7deg{40%,50%,60%{-webkit-transform:rotate(7deg);transform:rotate(7deg)}35%,45%,55%,65%{-webkit-transform:rotate(-7deg);transform:rotate(-7deg)}0%,100%,30%,70%{-webkit-transform:rotate(0);transform:rotate(0)}}.shake,.spin-ccw,.spin-cw,.wiggle{-webkit-animation-duration:.5s;animation-duration:.5s}.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.slow{-webkit-animation-duration:750ms!important;animation-duration:750ms!important}.fast{-webkit-animation-duration:250ms!important;animation-duration:250ms!important}.linear{-webkit-animation-timing-function:linear!important;animation-timing-function:linear!important}.ease{-webkit-animation-timing-function:ease!important;animation-timing-function:ease!important}.ease-in{-webkit-animation-timing-function:ease-in!important;animation-timing-function:ease-in!important}.ease-out{-webkit-animation-timing-function:ease-out!important;animation-timing-function:ease-out!important}.ease-in-out{-webkit-animation-timing-function:ease-in-out!important;animation-timing-function:ease-in-out!important}.bounce-in{-webkit-animation-timing-function:cubic-bezier(.485,.155,.24,1.245)!important;animation-timing-function:cubic-bezier(.485,.155,.24,1.245)!important}.bounce-out{-webkit-animation-timing-function:cubic-bezier(.485,.155,.515,.845)!important;animation-timing-function:cubic-bezier(.485,.155,.515,.845)!important}.bounce-in-out{-webkit-animation-timing-function:cubic-bezier(.76,-.245,.24,1.245)!important;animation-timing-function:cubic-bezier(.76,-.245,.24,1.245)!important}.short-delay{-webkit-animation-delay:.3s!important;animation-delay:.3s!important}.long-delay{-webkit-animation-delay:.7s!important;animation-delay:.7s!important} \ No newline at end of file diff --git a/news/static/news/js/app.js b/news/static/news/js/app.js new file mode 100644 index 0000000..5b80fd1 --- /dev/null +++ b/news/static/news/js/app.js @@ -0,0 +1 @@ +$(document).foundation() diff --git a/news/static/news/js/vendor/foundation.js b/news/static/news/js/vendor/foundation.js new file mode 100644 index 0000000..e48d64f --- /dev/null +++ b/news/static/news/js/vendor/foundation.js @@ -0,0 +1,219 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("jquery")); + else if(typeof define === 'function' && define.amd) + define(["jquery"], factory); + else { + var a = typeof exports === 'object' ? factory(require("jquery")) : factory(root["jQuery"]); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function(__WEBPACK_EXTERNAL_MODULE_jquery__) { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "../../../../../../../../../../private/tmp/foundation-6.5.1.essential/js/vendor/foundation.js"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "../../../../../../../../../../private/tmp/foundation-6.5.1.essential/js/vendor/foundation.js": +/*!***********************************************************************!*\ + !*** /private/tmp/foundation-6.5.1.essential/js/vendor/foundation.js ***! + \***********************************************************************/ +/*! no exports provided */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Users_ncoden_Documents_Documents_Projects_Programmation_Web_2016_Foundation_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./js/foundation.core */ \"./js/foundation.core.js\");\n/* harmony import */ var _Users_ncoden_Documents_Documents_Projects_Programmation_Web_2016_Foundation_foundation_sites_js_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./js/foundation.util.mediaQuery */ \"./js/foundation.util.mediaQuery.js\");\n/* harmony import */ var _Users_ncoden_Documents_Documents_Projects_Programmation_Web_2016_Foundation_foundation_sites_js_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./js/foundation.util.triggers */ \"./js/foundation.util.triggers.js\");\n/* harmony import */ var _Users_ncoden_Documents_Documents_Projects_Programmation_Web_2016_Foundation_foundation_sites_js_foundation_reveal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./js/foundation.reveal */ \"./js/foundation.reveal.js\");\n\n\n_Users_ncoden_Documents_Documents_Projects_Programmation_Web_2016_Foundation_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].addToJquery(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n_Users_ncoden_Documents_Documents_Projects_Programmation_Web_2016_Foundation_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].MediaQuery = _Users_ncoden_Documents_Documents_Projects_Programmation_Web_2016_Foundation_foundation_sites_js_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__[\"MediaQuery\"];\n\n_Users_ncoden_Documents_Documents_Projects_Programmation_Web_2016_Foundation_foundation_sites_js_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__[\"Triggers\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a, _Users_ncoden_Documents_Documents_Projects_Programmation_Web_2016_Foundation_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"]);\n\n_Users_ncoden_Documents_Documents_Projects_Programmation_Web_2016_Foundation_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].plugin(_Users_ncoden_Documents_Documents_Projects_Programmation_Web_2016_Foundation_foundation_sites_js_foundation_reveal__WEBPACK_IMPORTED_MODULE_4__[\"Reveal\"], 'Reveal');\n\n//# sourceURL=webpack:////private/tmp/foundation-6.5.1.essential/js/vendor/foundation.js?"); + +/***/ }), + +/***/ "./js/foundation.core.js": +/*!*******************************!*\ + !*** ./js/foundation.core.js ***! + \*******************************/ +/*! exports provided: Foundation */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return Foundation; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.mediaQuery */ \"./js/foundation.util.mediaQuery.js\");\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\nvar FOUNDATION_VERSION = '6.5.1'; // Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\n\nvar Foundation = {\n version: FOUNDATION_VERSION,\n\n /**\n * Stores initialized plugins.\n */\n _plugins: {},\n\n /**\n * Stores generated unique ids for plugin instances\n */\n _uuids: [],\n\n /**\n * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n * @param {Object} plugin - The constructor of the plugin.\n */\n plugin: function plugin(_plugin, name) {\n // Object key to use when adding to global Foundation object\n // Examples: Foundation.Reveal, Foundation.OffCanvas\n var className = name || functionName(_plugin); // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n // Examples: data-reveal, data-off-canvas\n\n var attrName = hyphenate(className); // Add to the Foundation object and the plugins list (for reflowing)\n\n this._plugins[attrName] = this[className] = _plugin;\n },\n\n /**\n * @function\n * Populates the _uuids array with pointers to each individual plugin instance.\n * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n * Also fires the initialization event for each plugin, consolidating repetitive code.\n * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n * @param {String} name - the name of the plugin, passed as a camelCased string.\n * @fires Plugin#init\n */\n registerPlugin: function registerPlugin(plugin, name) {\n var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n plugin.uuid = Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"GetYoDigits\"])(6, pluginName);\n\n if (!plugin.$element.attr(\"data-\".concat(pluginName))) {\n plugin.$element.attr(\"data-\".concat(pluginName), plugin.uuid);\n }\n\n if (!plugin.$element.data('zfPlugin')) {\n plugin.$element.data('zfPlugin', plugin);\n }\n /**\n * Fires when the plugin has initialized.\n * @event Plugin#init\n */\n\n\n plugin.$element.trigger(\"init.zf.\".concat(pluginName));\n\n this._uuids.push(plugin.uuid);\n\n return;\n },\n\n /**\n * @function\n * Removes the plugins uuid from the _uuids array.\n * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n * Also fires the destroyed event for the plugin, consolidating repetitive code.\n * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n * @fires Plugin#destroyed\n */\n unregisterPlugin: function unregisterPlugin(plugin) {\n var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n\n plugin.$element.removeAttr(\"data-\".concat(pluginName)).removeData('zfPlugin')\n /**\n * Fires when the plugin has been destroyed.\n * @event Plugin#destroyed\n */\n .trigger(\"destroyed.zf.\".concat(pluginName));\n\n for (var prop in plugin) {\n plugin[prop] = null; //clean up script to prep for garbage collection.\n }\n\n return;\n },\n\n /**\n * @function\n * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n * @default If no argument is passed, reflow all currently active plugins.\n */\n reInit: function reInit(plugins) {\n var isJQ = plugins instanceof jquery__WEBPACK_IMPORTED_MODULE_0___default.a;\n\n try {\n if (isJQ) {\n plugins.each(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('zfPlugin')._init();\n });\n } else {\n var type = _typeof(plugins),\n _this = this,\n fns = {\n 'object': function object(plgs) {\n plgs.forEach(function (p) {\n p = hyphenate(p);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-' + p + ']').foundation('_init');\n });\n },\n 'string': function string() {\n plugins = hyphenate(plugins);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-' + plugins + ']').foundation('_init');\n },\n 'undefined': function undefined() {\n this['object'](Object.keys(_this._plugins));\n }\n };\n\n fns[type](plugins);\n }\n } catch (err) {\n console.error(err);\n } finally {\n return plugins;\n }\n },\n\n /**\n * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n */\n reflow: function reflow(elem, plugins) {\n // If plugins is undefined, just grab everything\n if (typeof plugins === 'undefined') {\n plugins = Object.keys(this._plugins);\n } // If plugins is a string, convert it to an array with one item\n else if (typeof plugins === 'string') {\n plugins = [plugins];\n }\n\n var _this = this; // Iterate through each plugin\n\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default.a.each(plugins, function (i, name) {\n // Get the current plugin\n var plugin = _this._plugins[name]; // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n\n var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(elem).find('[data-' + name + ']').addBack('[data-' + name + ']'); // For each plugin found, initialize it\n\n $elem.each(function () {\n var $el = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n opts = {}; // Don't double-dip on plugins\n\n if ($el.data('zfPlugin')) {\n console.warn(\"Tried to initialize \" + name + \" on an element that already has a Foundation plugin.\");\n return;\n }\n\n if ($el.attr('data-options')) {\n var thing = $el.attr('data-options').split(';').forEach(function (e, i) {\n var opt = e.split(':').map(function (el) {\n return el.trim();\n });\n if (opt[0]) opts[opt[0]] = parseValue(opt[1]);\n });\n }\n\n try {\n $el.data('zfPlugin', new plugin(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), opts));\n } catch (er) {\n console.error(er);\n } finally {\n return;\n }\n });\n });\n },\n getFnName: functionName,\n addToJquery: function addToJquery($) {\n // TODO: consider not making this a jQuery function\n // TODO: need way to reflow vs. re-initialize\n\n /**\n * The Foundation jQuery method.\n * @param {String|Array} method - An action to perform on the current jQuery object.\n */\n var foundation = function foundation(method) {\n var type = _typeof(method),\n $noJS = $('.no-js');\n\n if ($noJS.length) {\n $noJS.removeClass('no-js');\n }\n\n if (type === 'undefined') {\n //needs to initialize the Foundation object, or an individual plugin.\n _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__[\"MediaQuery\"]._init();\n\n Foundation.reflow(this);\n } else if (type === 'string') {\n //an individual method to invoke on a plugin or group of plugins\n var args = Array.prototype.slice.call(arguments, 1); //collect all the arguments, if necessary\n\n var plugClass = this.data('zfPlugin'); //determine the class of plugin\n\n if (typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined') {\n //make sure both the class and method exist\n if (this.length === 1) {\n //if there's only one, call it directly.\n plugClass[method].apply(plugClass, args);\n } else {\n this.each(function (i, el) {\n //otherwise loop through the jQuery collection and invoke the method on each\n plugClass[method].apply($(el).data('zfPlugin'), args);\n });\n }\n } else {\n //error for no class or no method\n throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n }\n } else {\n //error for invalid argument type\n throw new TypeError(\"We're sorry, \".concat(type, \" is not a valid parameter. You must use a string representing the method you wish to invoke.\"));\n }\n\n return this;\n };\n\n $.fn.foundation = foundation;\n return $;\n }\n};\nFoundation.util = {\n /**\n * Function for applying a debounce effect to a function call.\n * @function\n * @param {Function} func - Function to be called at end of timeout.\n * @param {Number} delay - Time in ms to delay the call of `func`.\n * @returns function\n */\n throttle: function throttle(func, delay) {\n var timer = null;\n return function () {\n var context = this,\n args = arguments;\n\n if (timer === null) {\n timer = setTimeout(function () {\n func.apply(context, args);\n timer = null;\n }, delay);\n }\n };\n }\n};\nwindow.Foundation = Foundation; // Polyfill for requestAnimationFrame\n\n(function () {\n if (!Date.now || !window.Date.now) window.Date.now = Date.now = function () {\n return new Date().getTime();\n };\n var vendors = ['webkit', 'moz'];\n\n for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n var vp = vendors[i];\n window.requestAnimationFrame = window[vp + 'RequestAnimationFrame'];\n window.cancelAnimationFrame = window[vp + 'CancelAnimationFrame'] || window[vp + 'CancelRequestAnimationFrame'];\n }\n\n if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent) || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n var lastTime = 0;\n\n window.requestAnimationFrame = function (callback) {\n var now = Date.now();\n var nextTime = Math.max(lastTime + 16, now);\n return setTimeout(function () {\n callback(lastTime = nextTime);\n }, nextTime - now);\n };\n\n window.cancelAnimationFrame = clearTimeout;\n }\n /**\n * Polyfill for performance.now, required by rAF\n */\n\n\n if (!window.performance || !window.performance.now) {\n window.performance = {\n start: Date.now(),\n now: function now() {\n return Date.now() - this.start;\n }\n };\n }\n})();\n\nif (!Function.prototype.bind) {\n Function.prototype.bind = function (oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function fNOP() {},\n fBound = function fBound() {\n return fToBind.apply(this instanceof fNOP ? this : oThis, aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // native functions don't have a prototype\n fNOP.prototype = this.prototype;\n }\n\n fBound.prototype = new fNOP();\n return fBound;\n };\n} // Polyfill to get the name of a function in IE9\n\n\nfunction functionName(fn) {\n if (typeof Function.prototype.name === 'undefined') {\n var funcNameRegex = /function\\s([^(]{1,})\\(/;\n var results = funcNameRegex.exec(fn.toString());\n return results && results.length > 1 ? results[1].trim() : \"\";\n } else if (typeof fn.prototype === 'undefined') {\n return fn.constructor.name;\n } else {\n return fn.prototype.constructor.name;\n }\n}\n\nfunction parseValue(str) {\n if ('true' === str) return true;else if ('false' === str) return false;else if (!isNaN(str * 1)) return parseFloat(str);\n return str;\n} // Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\n\n\nfunction hyphenate(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\n\n\n//# sourceURL=webpack:///./js/foundation.core.js?"); + +/***/ }), + +/***/ "./js/foundation.core.plugin.js": +/*!**************************************!*\ + !*** ./js/foundation.core.plugin.js ***! + \**************************************/ +/*! exports provided: Plugin */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Plugin\", function() { return Plugin; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n // Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n// {function} _setup (replaces previous constructor),\n// {function} _destroy (replaces previous destroy)\n\nvar Plugin =\n/*#__PURE__*/\nfunction () {\n function Plugin(element, options) {\n _classCallCheck(this, Plugin);\n\n this._setup(element, options);\n\n var pluginName = getPluginName(this);\n this.uuid = Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"GetYoDigits\"])(6, pluginName);\n\n if (!this.$element.attr(\"data-\".concat(pluginName))) {\n this.$element.attr(\"data-\".concat(pluginName), this.uuid);\n }\n\n if (!this.$element.data('zfPlugin')) {\n this.$element.data('zfPlugin', this);\n }\n /**\n * Fires when the plugin has initialized.\n * @event Plugin#init\n */\n\n\n this.$element.trigger(\"init.zf.\".concat(pluginName));\n }\n\n _createClass(Plugin, [{\n key: \"destroy\",\n value: function destroy() {\n this._destroy();\n\n var pluginName = getPluginName(this);\n this.$element.removeAttr(\"data-\".concat(pluginName)).removeData('zfPlugin')\n /**\n * Fires when the plugin has been destroyed.\n * @event Plugin#destroyed\n */\n .trigger(\"destroyed.zf.\".concat(pluginName));\n\n for (var prop in this) {\n this[prop] = null; //clean up script to prep for garbage collection.\n }\n }\n }]);\n\n return Plugin;\n}(); // Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\n\n\nfunction hyphenate(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction getPluginName(obj) {\n if (typeof obj.constructor.name !== 'undefined') {\n return hyphenate(obj.constructor.name);\n } else {\n return hyphenate(obj.className);\n }\n}\n\n\n\n//# sourceURL=webpack:///./js/foundation.core.plugin.js?"); + +/***/ }), + +/***/ "./js/foundation.core.utils.js": +/*!*************************************!*\ + !*** ./js/foundation.core.utils.js ***! + \*************************************/ +/*! exports provided: rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rtl\", function() { return rtl; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GetYoDigits\", function() { return GetYoDigits; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RegExpEscape\", function() { return RegExpEscape; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transitionend\", function() { return transitionend; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onLoad\", function() { return onLoad; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ignoreMousedisappear\", function() { return ignoreMousedisappear; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n\n // Core Foundation Utilities, utilized in a number of places.\n\n/**\n * Returns a boolean for RTL support\n */\n\nfunction rtl() {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').attr('dir') === 'rtl';\n}\n/**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\n\n\nfunction GetYoDigits(length, namespace) {\n length = length || 6;\n return Math.round(Math.pow(36, length + 1) - Math.random() * Math.pow(36, length)).toString(36).slice(1) + (namespace ? \"-\".concat(namespace) : '');\n}\n/**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\n\n\nfunction RegExpEscape(str) {\n return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nfunction transitionend($elem) {\n var transitions = {\n 'transition': 'transitionend',\n 'WebkitTransition': 'webkitTransitionEnd',\n 'MozTransition': 'transitionend',\n 'OTransition': 'otransitionend'\n };\n var elem = document.createElement('div'),\n end;\n\n for (var t in transitions) {\n if (typeof elem.style[t] !== 'undefined') {\n end = transitions[t];\n }\n }\n\n if (end) {\n return end;\n } else {\n end = setTimeout(function () {\n $elem.triggerHandler('transitionend', [$elem]);\n }, 1);\n return 'transitionend';\n }\n}\n/**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\n\n\nfunction onLoad($elem, handler) {\n var didLoad = document.readyState === 'complete';\n var eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n\n var cb = function cb() {\n return $elem.triggerHandler(eventType);\n };\n\n if ($elem) {\n if (handler) $elem.one(eventType, handler);\n if (didLoad) setTimeout(cb);else jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).one('load', cb);\n }\n\n return eventType;\n}\n/**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n * (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n * outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\n\n\nfunction ignoreMousedisappear(handler) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$ignoreLeaveWindo = _ref.ignoreLeaveWindow,\n ignoreLeaveWindow = _ref$ignoreLeaveWindo === void 0 ? false : _ref$ignoreLeaveWindo,\n _ref$ignoreReappear = _ref.ignoreReappear,\n ignoreReappear = _ref$ignoreReappear === void 0 ? false : _ref$ignoreReappear;\n\n return function leaveEventHandler(eLeave) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n var callback = handler.bind.apply(handler, [this, eLeave].concat(rest)); // The mouse left: call the given callback if the mouse entered elsewhere\n\n if (eLeave.relatedTarget !== null) {\n return callback();\n } // Otherwise, check if the mouse actually left the window.\n // In firefox if the user switched between windows, the window sill have the focus by the time\n // the event is triggered. We have to debounce the event to test this case.\n\n\n setTimeout(function leaveEventDebouncer() {\n if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n return callback();\n } // Otherwise, wait for the mouse to reeapear outside of the element,\n\n\n if (!ignoreReappear) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).one('mouseenter', function reenterEventHandler(eReenter) {\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(eLeave.currentTarget).has(eReenter.target).length) {\n // Fill where the mouse finally entered.\n eLeave.relatedTarget = eReenter.target;\n callback();\n }\n });\n }\n }, 0);\n };\n}\n\n\n\n//# sourceURL=webpack:///./js/foundation.core.utils.js?"); + +/***/ }), + +/***/ "./js/foundation.reveal.js": +/*!*********************************!*\ + !*** ./js/foundation.reveal.js ***! + \*********************************/ +/*! exports provided: Reveal */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Reveal\", function() { return Reveal; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.keyboard */ \"./js/foundation.util.keyboard.js\");\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.util.mediaQuery */ \"./js/foundation.util.mediaQuery.js\");\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.util.motion */ \"./js/foundation.util.motion.js\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./js/foundation.core.plugin.js\");\n/* harmony import */ var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./foundation.util.triggers */ \"./js/foundation.util.triggers.js\");\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n\n\n/**\n * Reveal module.\n * @module foundation.reveal\n * @requires foundation.util.keyboard\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion if using animations\n */\n\nvar Reveal =\n/*#__PURE__*/\nfunction (_Plugin) {\n _inherits(Reveal, _Plugin);\n\n function Reveal() {\n _classCallCheck(this, Reveal);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Reveal).apply(this, arguments));\n }\n\n _createClass(Reveal, [{\n key: \"_setup\",\n\n /**\n * Creates a new instance of Reveal.\n * @class\n * @name Reveal\n * @param {jQuery} element - jQuery object to use for the modal.\n * @param {Object} options - optional parameters.\n */\n value: function _setup(element, options) {\n this.$element = element;\n this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Reveal.defaults, this.$element.data(), options);\n this.className = 'Reveal'; // ie9 back compat\n\n this._init(); // Triggers init is idempotent, just need to make sure it is initialized\n\n\n _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_6__[\"Triggers\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].register('Reveal', {\n 'ESCAPE': 'close'\n });\n }\n /**\n * Initializes the modal by adding the overlay and close buttons, (if selected).\n * @private\n */\n\n }, {\n key: \"_init\",\n value: function _init() {\n var _this2 = this;\n\n _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__[\"MediaQuery\"]._init();\n\n this.id = this.$element.attr('id');\n this.isActive = false;\n this.cached = {\n mq: _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__[\"MediaQuery\"].current\n };\n this.$anchor = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-open=\\\"\".concat(this.id, \"\\\"]\")).length ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-open=\\\"\".concat(this.id, \"\\\"]\")) : jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-toggle=\\\"\".concat(this.id, \"\\\"]\"));\n this.$anchor.attr({\n 'aria-controls': this.id,\n 'aria-haspopup': true,\n 'tabindex': 0\n });\n\n if (this.options.fullScreen || this.$element.hasClass('full')) {\n this.options.fullScreen = true;\n this.options.overlay = false;\n }\n\n if (this.options.overlay && !this.$overlay) {\n this.$overlay = this._makeOverlay(this.id);\n }\n\n this.$element.attr({\n 'role': 'dialog',\n 'aria-hidden': true,\n 'data-yeti-box': this.id,\n 'data-resize': this.id\n });\n\n if (this.$overlay) {\n this.$element.detach().appendTo(this.$overlay);\n } else {\n this.$element.detach().appendTo(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.options.appendTo));\n this.$element.addClass('without-overlay');\n }\n\n this._events();\n\n if (this.options.deepLink && window.location.hash === \"#\".concat(this.id)) {\n this.onLoadListener = Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n return _this2.open();\n });\n }\n }\n /**\n * Creates an overlay div to display behind the modal.\n * @private\n */\n\n }, {\n key: \"_makeOverlay\",\n value: function _makeOverlay() {\n var additionalOverlayClasses = '';\n\n if (this.options.additionalOverlayClasses) {\n additionalOverlayClasses = ' ' + this.options.additionalOverlayClasses;\n }\n\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()('