├── .gitignore
├── README.md
├── assets
├── ce.png
├── clear_keywords_bar.png
├── keywords_bar.png
├── neurips2021.db
├── oral_url_list_2021-11-13-01-38-UTC.txt
├── poster_url_list_2021-11-13-01-43-UTC.txt
├── spotlight_url_list_2021-11-13-01-38-UTC.txt
└── stats_bar.png
├── database.py
├── neurips2021_consistency_experiments.html
├── neurips2021_consistency_experiments_template.html
├── neurips2021_statistics.html
├── neurips2021_submissions.html
├── neurips2021_submissions_template.html
├── parse_data.ipynb
├── plot.ipynb
└── web_src
├── fontawesome-5.15.4
├── css
│ ├── all.css
│ ├── all.min.css
│ ├── brands.css
│ ├── brands.min.css
│ ├── fontawesome.css
│ ├── fontawesome.min.css
│ ├── regular.css
│ ├── regular.min.css
│ ├── solid.css
│ ├── solid.min.css
│ ├── svg-with-js.css
│ ├── svg-with-js.min.css
│ ├── v4-shims.css
│ └── v4-shims.min.css
└── webfonts
│ ├── fa-brands-400.eot
│ ├── fa-brands-400.svg
│ ├── fa-brands-400.ttf
│ ├── fa-brands-400.woff
│ ├── fa-brands-400.woff2
│ ├── fa-regular-400.eot
│ ├── fa-regular-400.svg
│ ├── fa-regular-400.ttf
│ ├── fa-regular-400.woff
│ ├── fa-regular-400.woff2
│ ├── fa-solid-900.eot
│ ├── fa-solid-900.svg
│ ├── fa-solid-900.ttf
│ ├── fa-solid-900.woff
│ └── fa-solid-900.woff2
├── noto_sans.css
├── stats.js
├── style.css
└── tablesort.min.js
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea/
2 | .ipynb_checkpoints/
3 | chromedriver_win32/
4 | *.zip
5 | !/assets/data.zip
6 | __pycache__/
7 | /assets/data/
8 | .DS_Store
9 | external/
10 | assets/back_neurips2021.db
11 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # NeurIPS2021 Statistics
2 |
3 | - __More detailed data is available [online](https://guoqiangwei.xyz/neurips2021_stats/neurips2021_submissions.html).__
4 | - ICLR 2022 [statistics](https://github.com/weigq/iclr2022_stats).
5 |
6 | ## __Note__
7 |
8 | - The statistics are collected __only from finally accepted submissions in main conference__.
9 | - __Finally rejected submissions are excluded__, most of these are not available in public.
10 | - __Workshop and Track submissions are excluded__.
11 |
12 | ### All submissions
13 |
14 | - `2334` submissions are finally accepted.
15 | - `298(13%)` submissions received two set of reviews.
16 | - `2632(=2334+298)` set of reviews in total.
17 | - `6.36` average rating of all `2632` ratings.
18 | -
19 | |Decision|#|rating avg.|rating max|rating min|
20 | |---|---|---|---|---|
21 | |Oral|56|7.56|8.75|6.33|
22 | |Spotlight|282|7.01|8.33|5.50|
23 | |Poster|2095|6.36|8.00|4.67|
24 | |Reject|199|5.19|7.33|3.75|
25 | |Total|2632|6.36|8.75|3.75|
26 | - Ratings distribution
27 | 
28 | - Top `40` original keywords
29 | 
30 | - Top `30` keywords after merging some redundancies
31 | 
32 |
33 | ### Consistency experiment
34 |
35 | - `298` submissions received two set of reviews.
36 | - `221(74%)` submissions received two disagreed decisions.
37 | - `77(26%)` submissions received two agreed decisions.
38 | - `199(67%)` submissions received one `Reject` decision.
39 | - [Details](https://guoqiangwei.xyz/neurips2021_stats/neurips2021_consistency_experiments.html) (the two decisions are ordered.)
40 |
41 | 
42 |
43 | ## Acknowledgement
44 |
45 | Some code is motivated by [ICLR2019-OpenReviewData](https://github.com/shaohua0116/ICLR2019-OpenReviewData) and [iclr2022_stats](https://github.com/weigq/iclr2022_stats).
46 |
--------------------------------------------------------------------------------
/assets/ce.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/assets/ce.png
--------------------------------------------------------------------------------
/assets/clear_keywords_bar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/assets/clear_keywords_bar.png
--------------------------------------------------------------------------------
/assets/keywords_bar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/assets/keywords_bar.png
--------------------------------------------------------------------------------
/assets/neurips2021.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/assets/neurips2021.db
--------------------------------------------------------------------------------
/assets/oral_url_list_2021-11-13-01-38-UTC.txt:
--------------------------------------------------------------------------------
1 | https://openreview.net/forum?id=IVV1putQ90
2 | https://openreview.net/forum?id=an8FSGbuCw
3 | https://openreview.net/forum?id=AzmEMstdf3o
4 | https://openreview.net/forum?id=GlEWs-V9boR
5 | https://openreview.net/forum?id=kwN2xvZ2XZ9
6 | https://openreview.net/forum?id=5JvnsAdf6Vz
7 | https://openreview.net/forum?id=Tqx7nJp7PR
8 | https://openreview.net/forum?id=9DlCh34E1bN
9 | https://openreview.net/forum?id=uqv8-U4lKBe
10 | https://openreview.net/forum?id=S9ZyhWC17wJ
11 | https://openreview.net/forum?id=z71OSKqTFh7
12 | https://openreview.net/forum?id=o-RYNVOlxA8
13 | https://openreview.net/forum?id=-oUhJJILWHb
14 | https://openreview.net/forum?id=z5-chidgZU3
15 | https://openreview.net/forum?id=n11B-1GmTJl
16 | https://openreview.net/forum?id=Kvb0482Ysaf
17 | https://openreview.net/forum?id=o6-k168bBD8
18 | https://openreview.net/forum?id=8ygF02Zm51q
19 | https://openreview.net/forum?id=dfyjet3BMKA
20 | https://openreview.net/forum?id=YIyYkoJX2eA
21 | https://openreview.net/forum?id=knKJgksd7kA
22 | https://openreview.net/forum?id=e8WWUBeafM
23 | https://openreview.net/forum?id=9SD2Rb3NiWu
24 | https://openreview.net/forum?id=WnJXcebN7hX
25 | https://openreview.net/forum?id=UVQNdLIELSU
26 | https://openreview.net/forum?id=VXeoK3fJZhW
27 | https://openreview.net/forum?id=XeeTWJvAQl
28 | https://openreview.net/forum?id=kB8eks2Edt8
29 | https://openreview.net/forum?id=3qYgdGj9Svt
30 | https://openreview.net/forum?id=ZBfUo_dr4H
31 | https://openreview.net/forum?id=qGvMv3undNJ
32 | https://openreview.net/forum?id=mjyMGFL8N2
33 | https://openreview.net/forum?id=6vaActvpcp3
34 | https://openreview.net/forum?id=kt_s_ZbYvtP
35 | https://openreview.net/forum?id=wfJCeMS-jH
36 | https://openreview.net/forum?id=lHmhW2zmVN
37 | https://openreview.net/forum?id=WKxmP7bcFvt
38 | https://openreview.net/forum?id=ZRPRjfAF3yd
39 | https://openreview.net/forum?id=yaxePRTOhqk
40 | https://openreview.net/forum?id=N5hQI_RowVA
41 | https://openreview.net/forum?id=et2st4Jqhc
42 | https://openreview.net/forum?id=FyOhThdDBM
43 | https://openreview.net/forum?id=aMZJBOiOOPg
44 | https://openreview.net/forum?id=026hEw26i3-
45 | https://openreview.net/forum?id=uJGObgFU0lU
46 | https://openreview.net/forum?id=gEXbJVhVK5_
47 | https://openreview.net/forum?id=cVwc7IHWEWi
48 | https://openreview.net/forum?id=napaTaDQ0lY
49 | https://openreview.net/forum?id=0CDKgyYaxC8
50 | https://openreview.net/forum?id=QkljT4mrfs
51 | https://openreview.net/forum?id=mfQxdSMWOF
52 | https://openreview.net/forum?id=QT9ulkiN-LX
53 | https://openreview.net/forum?id=Ecuu521mPpG
54 | https://openreview.net/forum?id=bGfDnD7xo-v
55 | https://openreview.net/forum?id=CRFSrgYtV7m
56 | https://openreview.net/forum?id=vY2HsMWG2b_
57 | https://openreview.net/forum?id=bYi_2708mKK
58 | https://openreview.net/forum?id=-zALR_-372y
59 | https://openreview.net/forum?id=Owggnutk6lE
60 | https://openreview.net/forum?id=QmxFsofRvW9
--------------------------------------------------------------------------------
/assets/spotlight_url_list_2021-11-13-01-38-UTC.txt:
--------------------------------------------------------------------------------
1 | https://openreview.net/forum?id=2zCRcTafea
2 | https://openreview.net/forum?id=wgeK563QgSw
3 | https://openreview.net/forum?id=68B1ezcffDc
4 | https://openreview.net/forum?id=XL9DWRG7mJn
5 | https://openreview.net/forum?id=tMFTT3BDEK9
6 | https://openreview.net/forum?id=kLJjmSrRB3S
7 | https://openreview.net/forum?id=iX0TSH45eOd
8 | https://openreview.net/forum?id=9rphbXqgmqM
9 | https://openreview.net/forum?id=9BnCwiXB0ty
10 | https://openreview.net/forum?id=Dzy8YEm5dX
11 | https://openreview.net/forum?id=r6cNUjS8cm0
12 | https://openreview.net/forum?id=OItvP2-i9j
13 | https://openreview.net/forum?id=yaksQCYcRs
14 | https://openreview.net/forum?id=lVmIjQiJJSr
15 | https://openreview.net/forum?id=YqYt54gU-XV
16 | https://openreview.net/forum?id=rndqBJsGoKh
17 | https://openreview.net/forum?id=NvXnBQQw0Jb
18 | https://openreview.net/forum?id=DPHsCQ8OpA
19 | https://openreview.net/forum?id=5-GXHFNbq_U
20 | https://openreview.net/forum?id=OkFPq7ZtsQ
21 | https://openreview.net/forum?id=_vypaVMDs51
22 | https://openreview.net/forum?id=jlchsFOLfeF
23 | https://openreview.net/forum?id=sf2BxJNXC3K
24 | https://openreview.net/forum?id=T6m9bNI7C__
25 | https://openreview.net/forum?id=NtivXxYNhjc
26 | https://openreview.net/forum?id=fpQojkIV5q8
27 | https://openreview.net/forum?id=4h4oqp-ATxb
28 | https://openreview.net/forum?id=fzwx-pzQGxe
29 | https://openreview.net/forum?id=SJHRf5nW93
30 | https://openreview.net/forum?id=XwetFe0U63c
31 | https://openreview.net/forum?id=1bBF5Zq1YHz
32 | https://openreview.net/forum?id=wZrOOO9XBn
33 | https://openreview.net/forum?id=ALvt7nXa2q
34 | https://openreview.net/forum?id=az0BBDjDvwD
35 | https://openreview.net/forum?id=vGjTOxss-Dl
36 | https://openreview.net/forum?id=hzioAx8g9x
37 | https://openreview.net/forum?id=BdKxQp0iBi8
38 | https://openreview.net/forum?id=s-NI4H4e3Rf
39 | https://openreview.net/forum?id=pbfAgoc_l2w
40 | https://openreview.net/forum?id=0vaPiltED1N
41 | https://openreview.net/forum?id=8RnRLP4SHe0
42 | https://openreview.net/forum?id=Jyxmk4wUoQV
43 | https://openreview.net/forum?id=LBhruMnhgIB
44 | https://openreview.net/forum?id=yNzF41lHYV
45 | https://openreview.net/forum?id=6tM849_6RF9
46 | https://openreview.net/forum?id=IaM7U4J-w3c
47 | https://openreview.net/forum?id=8AgtfqiHUhs
48 | https://openreview.net/forum?id=rxud5HYKX55
49 | https://openreview.net/forum?id=3GpcwM1slH8
50 | https://openreview.net/forum?id=bJz3cFePTna
51 | https://openreview.net/forum?id=sNKpWhzEDWS
52 | https://openreview.net/forum?id=usxt30HpW66
53 | https://openreview.net/forum?id=q0h6av9Vi8
54 | https://openreview.net/forum?id=o2mbl-Hmfgd
55 | https://openreview.net/forum?id=MDMV2SxCboX
56 | https://openreview.net/forum?id=rm0I5y2zkG8
57 | https://openreview.net/forum?id=W2rRWbI4CTW
58 | https://openreview.net/forum?id=RQfcckT1M_4
59 | https://openreview.net/forum?id=Aeo-xqtb5p
60 | https://openreview.net/forum?id=_8vCV7AxPZ
61 | https://openreview.net/forum?id=fIn4wLS2XzU
62 | https://openreview.net/forum?id=mPTfR3Upe0o
63 | https://openreview.net/forum?id=aohkNJxjYJX
64 | https://openreview.net/forum?id=9J2wV5E1Aq_
65 | https://openreview.net/forum?id=L5vbEVIePyb
66 | https://openreview.net/forum?id=aVKRtX-0rdW
67 | https://openreview.net/forum?id=ELndVeVA-TR
68 | https://openreview.net/forum?id=CLCVcl1rSPP
69 | https://openreview.net/forum?id=Wkq4hKpGxWv
70 | https://openreview.net/forum?id=AnJUTpZiiWD
71 | https://openreview.net/forum?id=Gl3ADZLz9ir
72 | https://openreview.net/forum?id=oAxm0Wz7Bv
73 | https://openreview.net/forum?id=NE0YlkgRo9x
74 | https://openreview.net/forum?id=mSuBvrUJFsF
75 | https://openreview.net/forum?id=877bJocr-w
76 | https://openreview.net/forum?id=ZAOrF0mYSYU
77 | https://openreview.net/forum?id=uw4mcO8nz3n
78 | https://openreview.net/forum?id=af_hng9tuNj
79 | https://openreview.net/forum?id=FHQBDiMwvK
80 | https://openreview.net/forum?id=RQUl8gZnN7O
81 | https://openreview.net/forum?id=VJ7u6SbqorK
82 | https://openreview.net/forum?id=GPwmbxtG9Ow
83 | https://openreview.net/forum?id=-S1V_oEOE52
84 | https://openreview.net/forum?id=_1HETTYd7Wr
85 | https://openreview.net/forum?id=wvylaMP20_b
86 | https://openreview.net/forum?id=8V2hZW0d2aS
87 | https://openreview.net/forum?id=4c1EiEvivpx
88 | https://openreview.net/forum?id=QwNLVId9Df
89 | https://openreview.net/forum?id=43fmQ-db-yJ
90 | https://openreview.net/forum?id=o4t543Oon5G
91 | https://openreview.net/forum?id=zAuDbrHC6fq
92 | https://openreview.net/forum?id=YscYPF8bU13
93 | https://openreview.net/forum?id=tjdHCnPqoo
94 | https://openreview.net/forum?id=GEm4o9A6Jfb
95 | https://openreview.net/forum?id=16r0qOLv_2i
96 | https://openreview.net/forum?id=X4_aAfxsOoE
97 | https://openreview.net/forum?id=YFysbLCFdIe
98 | https://openreview.net/forum?id=jNq-i1zd0t9
99 | https://openreview.net/forum?id=bXTxva_xx6r
100 | https://openreview.net/forum?id=wdIDt--oLmV
101 | https://openreview.net/forum?id=JpDlWGTBHB
102 | https://openreview.net/forum?id=TgDTMyA9Nk
103 | https://openreview.net/forum?id=fpvUKdqcPV
104 | https://openreview.net/forum?id=WlkzLjxpYe
105 | https://openreview.net/forum?id=UDe_F-4EeHd
106 | https://openreview.net/forum?id=_MQBBpJzoZd
107 | https://openreview.net/forum?id=Ghk0AJ8XtVx
108 | https://openreview.net/forum?id=cx2q4cOBnne
109 | https://openreview.net/forum?id=SFLSOd_hv-4
110 | https://openreview.net/forum?id=cCQAzuT5q4
111 | https://openreview.net/forum?id=aXbuWbta0V8
112 | https://openreview.net/forum?id=U68DvXABbJ3
113 | https://openreview.net/forum?id=_OPHJ7nkZoC
114 | https://openreview.net/forum?id=SEz-FQltAYN
115 | https://openreview.net/forum?id=sri2nuQC4Y
116 | https://openreview.net/forum?id=oErdeq9ajjX
117 | https://openreview.net/forum?id=zcrC_XDUFd
118 | https://openreview.net/forum?id=RX6PrcpXP-
119 | https://openreview.net/forum?id=Yt89iqqswiM
120 | https://openreview.net/forum?id=fOaks7LY5R
121 | https://openreview.net/forum?id=LAKplpLMbP8
122 | https://openreview.net/forum?id=LzwfcoEiB5O
123 | https://openreview.net/forum?id=l4DQWgjbZg
124 | https://openreview.net/forum?id=hJOLFJIJ_zy
125 | https://openreview.net/forum?id=lZJHxMxUhV_
126 | https://openreview.net/forum?id=MQQeeDiO5vv
127 | https://openreview.net/forum?id=-t9LPHRYKmi
128 | https://openreview.net/forum?id=e2gqGkFjDHg
129 | https://openreview.net/forum?id=xB4lGVLvXDz
130 | https://openreview.net/forum?id=HbViCqfbd7
131 | https://openreview.net/forum?id=cc_AXK6rWPJ
132 | https://openreview.net/forum?id=rMKTq-ca0qu
133 | https://openreview.net/forum?id=vPVTsuJtGky
134 | https://openreview.net/forum?id=AvVDR8R-kQX
135 | https://openreview.net/forum?id=rxAS126OC-A
136 | https://openreview.net/forum?id=iFadi3f5V5I
137 | https://openreview.net/forum?id=cSVl6MtPIEX
138 | https://openreview.net/forum?id=REXvo_lsQS9
139 | https://openreview.net/forum?id=79zWncwO2p
140 | https://openreview.net/forum?id=1Kof-nkmQB8
141 | https://openreview.net/forum?id=TZPidZS3r_z
142 | https://openreview.net/forum?id=WYrC0Aentah
143 | https://openreview.net/forum?id=D7bPRxNt_AP
144 | https://openreview.net/forum?id=-mGv2KxQ43D
145 | https://openreview.net/forum?id=73OmmrCfSyy
146 | https://openreview.net/forum?id=GEKTIKvslP
147 | https://openreview.net/forum?id=lMgDDWb1ULW
148 | https://openreview.net/forum?id=UoVpP8R2Vn
149 | https://openreview.net/forum?id=B9yXBaZDUxp
150 | https://openreview.net/forum?id=6fmgB38rLI1
151 | https://openreview.net/forum?id=ebIORrYImx
152 | https://openreview.net/forum?id=dkw9OQMn1t
153 | https://openreview.net/forum?id=DTA7Bgrai-Q
154 | https://openreview.net/forum?id=oumDUrf2dAB
155 | https://openreview.net/forum?id=YAv9enSDW-a
156 | https://openreview.net/forum?id=sNw3VBPL7rg
157 | https://openreview.net/forum?id=1yeYYtLqq7K
158 | https://openreview.net/forum?id=WBVbl8POq8v
159 | https://openreview.net/forum?id=10anajdGZm
160 | https://openreview.net/forum?id=iKYO63MOWwi
161 | https://openreview.net/forum?id=Bl0GlLmNGLV
162 | https://openreview.net/forum?id=-JJy-Hw8TFB
163 | https://openreview.net/forum?id=neRSyESg1GU
164 | https://openreview.net/forum?id=7pU_P1IbePx
165 | https://openreview.net/forum?id=5ga5mfbGsRM
166 | https://openreview.net/forum?id=Xhj3PdCf4q9
167 | https://openreview.net/forum?id=Nfbe1usrgx4
168 | https://openreview.net/forum?id=S2-j0ZegyrE
169 | https://openreview.net/forum?id=xwGeq7I4Opv
170 | https://openreview.net/forum?id=we8d1FjibAc
171 | https://openreview.net/forum?id=-1rrzmJCp4
172 | https://openreview.net/forum?id=KRODJAa6pzE
173 | https://openreview.net/forum?id=StbpmmlJbH
174 | https://openreview.net/forum?id=fNKwtwJHjx
175 | https://openreview.net/forum?id=ehzq1YQrucI
176 | https://openreview.net/forum?id=J-pFhOiGVn7
177 | https://openreview.net/forum?id=vrkQ07gp0kq
178 | https://openreview.net/forum?id=t1czgrQOrwW
179 | https://openreview.net/forum?id=INBO6h9gtG
180 | https://openreview.net/forum?id=ST1P270dwOE
181 | https://openreview.net/forum?id=ejmqyWW0MK6
182 | https://openreview.net/forum?id=CU8qQMhB3dh
183 | https://openreview.net/forum?id=U0k2DVAED5
184 | https://openreview.net/forum?id=ekKaTdleJVq
185 | https://openreview.net/forum?id=CEkbBN_-Ja8
186 | https://openreview.net/forum?id=iQICgKcrGpE
187 | https://openreview.net/forum?id=qxKh67NNJ2I
188 | https://openreview.net/forum?id=W9oywyjO8VN
189 | https://openreview.net/forum?id=s6MWPKgL5XB
190 | https://openreview.net/forum?id=OSLVL-tIBei
191 | https://openreview.net/forum?id=e_yvNqkJKAW
192 | https://openreview.net/forum?id=4fLr7H5D_eT
193 | https://openreview.net/forum?id=pZHGKM9mAp
194 | https://openreview.net/forum?id=_RSgXL8gNnx
195 | https://openreview.net/forum?id=LAwuz_L9U9j
196 | https://openreview.net/forum?id=I2pS-Lg7Xl
197 | https://openreview.net/forum?id=ThbM9_6DNU
198 | https://openreview.net/forum?id=prVxS4W_ds
199 | https://openreview.net/forum?id=rC3zu-OqnII
200 | https://openreview.net/forum?id=KpKWDyXq17d
201 | https://openreview.net/forum?id=1H6zA8wIhKk
202 | https://openreview.net/forum?id=j3eGyNMPvh
203 | https://openreview.net/forum?id=c34cJa9uZn
204 | https://openreview.net/forum?id=-16dlERMZkO
205 | https://openreview.net/forum?id=B83B16bWvuI
206 | https://openreview.net/forum?id=kpTMw7ZMJB
207 | https://openreview.net/forum?id=Q32U7dzWXpc
208 | https://openreview.net/forum?id=8kk8a_zvWua
209 | https://openreview.net/forum?id=4bKbEP9b65v
210 | https://openreview.net/forum?id=GSXEx6iYd0
211 | https://openreview.net/forum?id=6p-zJaheTW
212 | https://openreview.net/forum?id=b8Kl8mcK6tb
213 | https://openreview.net/forum?id=QCPY2eMXYs
214 | https://openreview.net/forum?id=YV3uoawS5KK
215 | https://openreview.net/forum?id=UQsbDkuGM0N
216 | https://openreview.net/forum?id=qb0qTdxPWzY
217 | https://openreview.net/forum?id=jar9C-V8GH
218 | https://openreview.net/forum?id=QpRufbD4xdn
219 | https://openreview.net/forum?id=b83ibRX55T
220 | https://openreview.net/forum?id=P9_gOq5w7Eb
221 | https://openreview.net/forum?id=HWshP75OfKR
222 | https://openreview.net/forum?id=l-0rLXvctI
223 | https://openreview.net/forum?id=w6iVxEdh6bi
224 | https://openreview.net/forum?id=LU687itn08w
225 | https://openreview.net/forum?id=vLPqnPf9k0
226 | https://openreview.net/forum?id=hqDb8d65Vfh
227 | https://openreview.net/forum?id=9FREJhzo1q
228 | https://openreview.net/forum?id=85BzB3WP-qj
229 | https://openreview.net/forum?id=7_M2f2DEIEK
230 | https://openreview.net/forum?id=eIdzV1-Jdwv
231 | https://openreview.net/forum?id=yAvCV6NwWQ
232 | https://openreview.net/forum?id=PIcuKeiWvj-
233 | https://openreview.net/forum?id=0lz69oI5iZP
234 | https://openreview.net/forum?id=uSQQH7Fj5U
235 | https://openreview.net/forum?id=HKtsGW-lNbw
236 | https://openreview.net/forum?id=R6nFQy2vwQq
237 | https://openreview.net/forum?id=oE5lMpPRm0
238 | https://openreview.net/forum?id=7rYDxRb1eSa
239 | https://openreview.net/forum?id=EvhsTX6GMyM
240 | https://openreview.net/forum?id=mIki_kyHpLb
241 | https://openreview.net/forum?id=9PBxTCg0F6m
242 | https://openreview.net/forum?id=ake1XpIrDKN
243 | https://openreview.net/forum?id=gKyyBfMM4Y
244 | https://openreview.net/forum?id=9uXILaIam0
245 | https://openreview.net/forum?id=BuoTowxp-9
246 | https://openreview.net/forum?id=ii5mGEbRo93
247 | https://openreview.net/forum?id=C0GmZH2RnVR
248 | https://openreview.net/forum?id=X0ein5pH4YJ
249 | https://openreview.net/forum?id=AklttWFnxS9
250 | https://openreview.net/forum?id=4JHdr4lgpVT
251 | https://openreview.net/forum?id=GvU4RvMwlGo
252 | https://openreview.net/forum?id=f2Llmm_z5Sm
253 | https://openreview.net/forum?id=P84bifNCpFQ
254 | https://openreview.net/forum?id=dsmxf7FKiaY
255 | https://openreview.net/forum?id=wHkKTW2wrmm
256 | https://openreview.net/forum?id=5Re03X8Iigi
257 | https://openreview.net/forum?id=5CGPY2VeEGb
258 | https://openreview.net/forum?id=hg0s8od-jd
259 | https://openreview.net/forum?id=LZDiWaC9CGL
260 | https://openreview.net/forum?id=bXehDYUjjXi
261 | https://openreview.net/forum?id=k-ghaB9VZBw
262 | https://openreview.net/forum?id=8PA2nX9v_r2
263 | https://openreview.net/forum?id=HnLDt9v6Q-j
264 | https://openreview.net/forum?id=5fPBtLSGk21
265 | https://openreview.net/forum?id=27qon5Ut4PSl
266 | https://openreview.net/forum?id=SvrYl-FDq2
267 | https://openreview.net/forum?id=OU98jZWS3x_
268 | https://openreview.net/forum?id=AAWuCvzaVt
269 | https://openreview.net/forum?id=te8iyHjbPQd
270 | https://openreview.net/forum?id=aUuTEEcyY_
271 | https://openreview.net/forum?id=Re_VXFOyyO
272 | https://openreview.net/forum?id=MxE7xFzv0N8
273 | https://openreview.net/forum?id=MgsSQPOYNx1
274 | https://openreview.net/forum?id=YA0wIYi-yM3
275 | https://openreview.net/forum?id=_tQns0wUl_3
276 | https://openreview.net/forum?id=vMWHOumNj5
277 | https://openreview.net/forum?id=K5YKjaMjbja
278 | https://openreview.net/forum?id=syIj5ggwCYJ
279 | https://openreview.net/forum?id=l7-DBWawSZH
280 | https://openreview.net/forum?id=bc-f0ZBNker
281 | https://openreview.net/forum?id=9XAxGtK5cdN
282 | https://openreview.net/forum?id=ClwfZc4ooKM
283 | https://openreview.net/forum?id=wtLW-Amuds
284 | https://openreview.net/forum?id=OJLaKwiXSbx
285 | https://openreview.net/forum?id=RcbphT7qjTq
--------------------------------------------------------------------------------
/assets/stats_bar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/assets/stats_bar.png
--------------------------------------------------------------------------------
/database.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 |
4 | import os
5 | import json
6 | import operator
7 | from tqdm import tqdm
8 | import sqlite3
9 |
10 |
11 | class DataBase:
12 | def __init__(self, db_path: str):
13 | self.db_path = db_path
14 | self.database = None
15 | self.cursor = None
16 |
17 |
18 | def initialize(self, create: bool = False):
19 | self.database = sqlite3.connect(self.db_path, check_same_thread=False)
20 | self.cursor = self.database.cursor()
21 |
22 | if create:
23 | _cmd = f"CREATE TABLE submissions " \
24 | f"(id int, url text, title text, keywords text, authors text, " \
25 | f"num_decision int, final_decision text, now_decision text, " \
26 | f"num_rating int, rating_avg float, rating_std float, ratings text)"
27 | self.cursor.execute(_cmd)
28 |
29 | def write_item(self,
30 | _id: int, url: str, title: str,
31 | keywords: list, authors: str,
32 | num_decision: int, final_decision: str, now_decision: str,
33 | ratings: list):
34 | title = title.replace('\\', '').replace("\"", "'")
35 | num_rating = len(ratings)
36 | rating_avg = np.mean(ratings).item()
37 | rating_std = np.std(ratings).item()
38 | ratings = ', '.join(map(str, ratings))
39 | _cmd = f"insert into submissions values ( " \
40 | f"'{_id}', \"{url}\", \"{title}\", \"{keywords}\", \"{authors}\", " \
41 | f"'{num_decision}', \"{final_decision}\", \"{now_decision}\", " \
42 | f"'{num_rating}', '{rating_avg}', " \
43 | f"'{rating_std}', '{ratings}'" \
44 | f" )"
45 | self.cursor.execute(_cmd)
46 | self.database.commit()
47 |
48 |
49 | def close(self):
50 | self.cursor.close()
51 | self.database.close()
52 |
--------------------------------------------------------------------------------
/neurips2021_consistency_experiments_template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | NeurIPS2021 Statistics
6 |
7 |
8 |
9 |
10 |
11 |
12 |
15 |
16 |
17 | Fork me on
18 |
19 |
20 |
21 |
22 |
23 | -
24 | The finally rejected submissions are excluded in this list.
25 |
26 | -
27 | All Submissions: all finally accepted submissions, including submissions with two sets of reviewers.
28 |
29 | -
30 | Rating: average rating
31 |
32 | -
33 | std: rating std
34 |
35 | -
36 | 👍👍: final decision
37 |
38 | -
39 | 👍: decision for this set reviewers, which may be different with the final decision
40 |
41 | -
42 | CE: Consistency Experiment
43 |
44 |
45 |
46 |
47 |
58 |
59 |
60 |
61 |
62 | # |
63 | Title |
64 | Rating |
65 | std |
66 | Ratings |
67 | 👍👍 |
68 | 👍 |
69 | CE |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
--------------------------------------------------------------------------------
/neurips2021_statistics.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | NeurIPS2021 Statistics
6 |
7 |
8 |
9 |
10 |
11 |
12 |
15 |
16 |
17 | Fork me on
18 |
19 |
20 |
21 |
32 |
33 |
34 |
35 | -
36 | This data is collected from only finally accepted submissions in main conference.
37 |
38 | -
39 | Finally rejected and Workshop/Track submissions are excluded. Not all rejected submissions are available in public.
40 |
41 |
42 | All submissions
43 | -
44 | 2334 submissions are finally accepted.
45 |
46 | -
47 | 298 (13%) submissions received two set of reviews.
48 |
49 | -
50 | 2632 (=2334+298) set of reviews in total.
51 |
52 | -
53 | 6.36 average rating of all 2632 ratings.
54 |
55 | - Rating details:
56 |
57 | Decision | # | rating avg. | rating max | rating min |
58 | Oral | 56 | 7.56 | 8.75 | 6.33 |
59 | Spotlight | 282 | 7.01 | 8.33 | 5.50 |
60 | Poster | 2095 | 6.36 | 8.00 | 4.67 |
61 | Reject | 199 | 5.19 | 7.33 | 3.75 |
62 | Total | 2632 | 6.36 | 8.75 | 3.75 |
63 |
64 |
65 | -
66 | Rating distribution:
67 |
68 |
69 | -
70 | Top 40 original keywords:
71 |
72 |
73 | -
74 | Top 30 keywords after merging redundancies:
75 |
76 |
77 |
78 | Consistency experiment
79 | -
80 | 298 submissions (finally accepted) received two set of reviews.
81 |
82 | -
83 | 221 (74%) submissions received two disagreed decisions.
84 |
85 | -
86 | 77 (26%) submissions received two agreed decisions.
87 |
88 | -
89 | 199 (67%) submissions received one Reject decision.
90 |
91 | - Details (the two decisions are ordered):
92 |
93 | Final | Decision 1 | Decision 2 | # |
94 | Oral | Oral | Poster | 5 |
95 | Spotlight | Oral | Poster | 1 |
96 | Spotlight | Spotlight | Spotlight | 3 |
97 | Spotlight | Spotlight | Poster | 12 |
98 | Spotlight | Spotlight | Reject | 9 |
99 | Poster | Spotlight | Poster | 4 |
100 | Poster | Spotlight | Reject | 16 |
101 | Poster | Poster | Poster | 74 |
102 | Poster | Poster | Reject | 174 |
103 | Total | 298 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
--------------------------------------------------------------------------------
/neurips2021_submissions_template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | NeurIPS2021 Statistics
6 |
7 |
8 |
9 |
10 |
11 |
12 |
15 |
16 |
17 | Fork me on
18 |
19 |
20 |
21 |
22 |
23 | -
24 | The finally rejected submissions are excluded in this list.
25 |
26 | -
27 | All Submissions: all finally accepted submissions, including submissions with two sets of reviewers.
28 |
29 | -
30 | Rating: average rating
31 |
32 | -
33 | std: rating std
34 |
35 | -
36 | 👍👍: final decision
37 |
38 | -
39 | 👍: decision for this set reviewers, which may be different with the final decision
40 |
41 | -
42 | CE: Consistency Experiment
43 |
44 |
45 |
46 |
47 |
58 |
59 |
60 |
61 |
62 | # |
63 | Title |
64 | Rating |
65 | std |
66 | Ratings |
67 | 👍👍 |
68 | 👍 |
69 | CE |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
--------------------------------------------------------------------------------
/parse_data.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": null,
6 | "id": "b15b9499",
7 | "metadata": {},
8 | "outputs": [],
9 | "source": [
10 | "%load_ext autoreload\n",
11 | "%autoreload 2\n",
12 | "\n",
13 | "import re\n",
14 | "import os\n",
15 | "import json\n",
16 | "import time\n",
17 | "import sqlite3\n",
18 | "import datetime\n",
19 | "import operator\n",
20 | "import numpy as np\n",
21 | "from tqdm.notebook import tqdm, trange\n",
22 | "\n",
23 | "from selenium import webdriver\n",
24 | "from selenium.webdriver.chrome.service import Service\n",
25 | "from selenium.webdriver.chrome.options import Options\n",
26 | "from selenium.webdriver.common.by import By\n",
27 | "from selenium.common.exceptions import TimeoutException\n",
28 | "from selenium.webdriver.support.ui import WebDriverWait\n",
29 | "from selenium.webdriver.support import expected_conditions as EC\n",
30 | "\n",
31 | "# from src import DataBase"
32 | ]
33 | },
34 | {
35 | "cell_type": "markdown",
36 | "id": "d9030e10",
37 | "metadata": {},
38 | "source": [
39 | "## Get submission list\n",
40 | "\n",
41 | "Save urls to txt file"
42 | ]
43 | },
44 | {
45 | "cell_type": "code",
46 | "execution_count": null,
47 | "id": "5b107c8e",
48 | "metadata": {},
49 | "outputs": [],
50 | "source": [
51 | "def get_item_url(panel, url_list, page_id):\n",
52 | " # find all items in current page\n",
53 | " item_list = panel.find_elements(By.CLASS_NAME, \"note\")\n",
54 | " item_list_len = len(item_list)\n",
55 | " for i in trange(item_list_len, desc=f\"->{page_id}\"):\n",
56 | " # the fist is the paper title and url\n",
57 | " item = item_list[i].find_element(By.TAG_NAME, 'a')\n",
58 | " url_list.append(item.get_attribute('href').strip()) \n",
59 | " \n",
60 | " \n",
61 | "def get_url_list_for_tab(panel, tab_name):\n",
62 | " # get totoal page number\n",
63 | " _right_arrow = panel.find_elements(By.CLASS_NAME, 'right-arrow')[-1]\n",
64 | " total_pages = int(_right_arrow.get_attribute('data-page-number'))\n",
65 | " \n",
66 | " # loop all pages\n",
67 | " url_list = []\n",
68 | " for page_id in trange(total_pages, desc=tab_name):\n",
69 | " get_item_url(panel, url_list, page_id)\n",
70 | " \n",
71 | " if page_id == total_pages - 1:\n",
72 | " continue\n",
73 | " \n",
74 | " # the first item\n",
75 | " flag = panel.find_element(By.CLASS_NAME, \"note\").text\n",
76 | " \n",
77 | " time.sleep(1.5)\n",
78 | " \n",
79 | " # click to jump to next page\n",
80 | " next_page_btn = panel.find_element(By.CSS_SELECTOR, \"li[class=' right-arrow']\")\n",
81 | " next_page_btn.find_element(By.TAG_NAME, 'a').click()\n",
82 | " \n",
83 | " # jump to next page\n",
84 | " jumped = False\n",
85 | " num_try = 0\n",
86 | " while not jumped:\n",
87 | " time.sleep(1)\n",
88 | " _flag = panel.find_element(By.CLASS_NAME, \"note\").text\n",
89 | " if _flag != flag:\n",
90 | " jumped = True\n",
91 | " num_try += 1\n",
92 | " if num_try > 1000:\n",
93 | " break\n",
94 | " \n",
95 | " return url_list\n",
96 | " "
97 | ]
98 | },
99 | {
100 | "cell_type": "code",
101 | "execution_count": null,
102 | "id": "f4ac0d39",
103 | "metadata": {},
104 | "outputs": [],
105 | "source": [
106 | "s = Service('/opt/homebrew/bin/chromedriver')\n",
107 | "op = Options()\n",
108 | "op.add_argument('headless')\n",
109 | "for tab_name in ['oral', 'spotlight', 'poster']:\n",
110 | " # driver = webdriver.Chrome(service=s, options=op)\n",
111 | " driver = webdriver.Chrome(service=s)\n",
112 | " driver.get(f'https://openreview.net/group?id=NeurIPS.cc/2021/Conference#{tab_name}-presentations')\n",
113 | " time.sleep(2)\n",
114 | " tabpanel = driver.find_element(By.ID, f'{tab_name}-presentations')\n",
115 | " url_list = get_url_list_for_tab(tabpanel, tab_name)\n",
116 | " \n",
117 | " # save to file\n",
118 | " save_path = f\"assets/{tab_name}_url_list_\" \\\n",
119 | " f\"{datetime.datetime.now():%Y-%m-%d-%H:%M-UTC}.txt\"\n",
120 | " with open(save_path, 'w') as f:\n",
121 | " f.write('\\n'.join(url_list)) \n",
122 | " \n",
123 | " # quit\n",
124 | " driver.quit()\n"
125 | ]
126 | },
127 | {
128 | "cell_type": "markdown",
129 | "id": "0d0d75c2",
130 | "metadata": {},
131 | "source": [
132 | "## Parse each item"
133 | ]
134 | },
135 | {
136 | "cell_type": "code",
137 | "execution_count": null,
138 | "id": "79d3d0c7",
139 | "metadata": {},
140 | "outputs": [],
141 | "source": [
142 | "# read url list\n",
143 | "url_dict = {}\n",
144 | "text_files = os.listdir('assets/')\n",
145 | "for text_file in text_files:\n",
146 | " if text_file.endswith('.txt'):\n",
147 | " cat = text_file.split('_')[0]\n",
148 | " with open(os.path.join('assets', text_file), 'r') as f:\n",
149 | " _urls = f.readlines()\n",
150 | " for _url in _urls:\n",
151 | " if len(_url.strip()) > 0:\n",
152 | " url_dict.update({_url: cat})\n",
153 | "num_items = len(url_dict)\n",
154 | "print(f'Total {num_items} items')"
155 | ]
156 | },
157 | {
158 | "cell_type": "code",
159 | "execution_count": null,
160 | "id": "751bf949",
161 | "metadata": {},
162 | "outputs": [],
163 | "source": [
164 | "class DataBase:\n",
165 | " def __init__(self, db_path: str):\n",
166 | " self.db_path = db_path\n",
167 | " self.database = None\n",
168 | " self.cursor = None\n",
169 | " \n",
170 | "\n",
171 | " def initialize(self, create: bool = False):\n",
172 | " self.database = sqlite3.connect(self.db_path, check_same_thread=False)\n",
173 | " self.cursor = self.database.cursor()\n",
174 | " \n",
175 | " if create:\n",
176 | " _cmd = f\"CREATE TABLE submissions \" \\\n",
177 | " f\"(id int, url text, title text, keywords text, authors text, \" \\\n",
178 | " f\"num_decision int, final_decision text, now_decision text, \" \\\n",
179 | " f\"num_rating int, rating_avg float, rating_std float, ratings text)\"\n",
180 | " self.cursor.execute(_cmd)\n",
181 | " \n",
182 | " def write_item(self, \n",
183 | " _id: int, url: str, title: str, \n",
184 | " keywords: list, authors: str, \n",
185 | " num_decision: int, final_decision: str, now_decision: str, \n",
186 | " ratings: list):\n",
187 | " title = title.replace('\\\\', '').replace(\"\\\"\", \"'\")\n",
188 | " num_rating = len(ratings)\n",
189 | " rating_avg = np.mean(ratings).item()\n",
190 | " rating_std = np.std(ratings).item()\n",
191 | " ratings = ', '.join(map(str, ratings))\n",
192 | " _cmd = f\"insert into submissions values ( \" \\\n",
193 | " f\"'{_id}', \\\"{url}\\\", \\\"{title}\\\", \\\"{keywords}\\\", \\\"{authors}\\\", \" \\\n",
194 | " f\"'{num_decision}', \\\"{final_decision}\\\", \\\"{now_decision}\\\", \" \\\n",
195 | " f\"'{num_rating}', '{rating_avg}', \" \\\n",
196 | " f\"'{rating_std}', '{ratings}'\" \\\n",
197 | " f\" )\"\n",
198 | "# print(_cmd)\n",
199 | " self.cursor.execute(_cmd)\n",
200 | " self.database.commit()\n",
201 | " \n",
202 | "\n",
203 | " def close(self):\n",
204 | " self.cursor.close()\n",
205 | " self.database.close()"
206 | ]
207 | },
208 | {
209 | "cell_type": "code",
210 | "execution_count": null,
211 | "id": "3a548800",
212 | "metadata": {},
213 | "outputs": [],
214 | "source": [
215 | "db = DataBase('assets/neurips2021.db')\n",
216 | "# db.initialize(create=True)\n",
217 | "db.initialize(create=False)"
218 | ]
219 | },
220 | {
221 | "cell_type": "code",
222 | "execution_count": null,
223 | "id": "b27c541d",
224 | "metadata": {},
225 | "outputs": [],
226 | "source": [
227 | "s = Service('/opt/homebrew/bin/chromedriver')\n",
228 | "op = Options()\n",
229 | "op.add_argument('headless')\n",
230 | "driver = webdriver.Chrome(service=s, options=op)"
231 | ]
232 | },
233 | {
234 | "cell_type": "code",
235 | "execution_count": null,
236 | "id": "fe8651f8",
237 | "metadata": {},
238 | "outputs": [],
239 | "source": [
240 | "url_list = list(url_dict.keys())\n",
241 | "for i in trange(num_items):\n",
242 | " url = url_list[i].strip()\n",
243 | " item_id = url.split('id=')[-1]\n",
244 | " cat = url_dict[url_list[i]]\n",
245 | " driver.get(url)\n",
246 | " time.sleep(1)\n",
247 | " loaded = False\n",
248 | " num_try = 0\n",
249 | " while not loaded: \n",
250 | " # comments\n",
251 | " _comments = driver.find_element(By.ID, 'note_children')\n",
252 | " comments = _comments.find_elements(By.XPATH, \"div[@class='note_with_children comment-level-odd']\")\n",
253 | " \n",
254 | " if len(comments) > 0:\n",
255 | " loaded = True\n",
256 | " else:\n",
257 | " time.sleep(.5)\n",
258 | " assert num_try < 10000, f'Failed to load {url} | tried: {num_try}'\n",
259 | " num_try += 1\n",
260 | " \n",
261 | " item = driver.find_element(By.ID, f'note_{item_id}')\n",
262 | "\n",
263 | " # title\n",
264 | " title_el = item.find_element(\n",
265 | " By.CSS_SELECTOR, \"div[class='title_pdf_row clearfix']\"\n",
266 | " ).find_element(By.CLASS_NAME, 'note_content_title').find_element(By.TAG_NAME, 'a')\n",
267 | " item_title = title_el.text.strip()\n",
268 | "\n",
269 | " # authors\n",
270 | " author_el = item.find_element(\n",
271 | " By.CSS_SELECTOR, \"div[class='meta_row']\"\n",
272 | " ).find_element(By.TAG_NAME, 'span').find_elements(By.TAG_NAME, 'a')\n",
273 | " item_authors = \", \".join([a.text for a in author_el])\n",
274 | "\n",
275 | " # keywords\n",
276 | " key_el = item.find_element(By.CLASS_NAME, 'note_contents').find_elements(By.TAG_NAME, 'span')\n",
277 | " assert key_el[0].text == 'Keywords:', f'{url}: Keywords not found!'\n",
278 | " item_keywords = key_el[1].text\n",
279 | " \n",
280 | " # comments\n",
281 | " _comments = driver.find_element(By.ID, 'note_children')\n",
282 | " comments = _comments.find_elements(By.XPATH, \"div[@class='note_with_children comment-level-odd']\")\n",
283 | " \n",
284 | " item_ratings = []\n",
285 | " two_decision = False\n",
286 | " for comment in comments:\n",
287 | " keys = comment.find_elements(By.CLASS_NAME, 'note_content_field')\n",
288 | " values = comment.find_elements(By.CLASS_NAME, 'note_content_value')\n",
289 | " assert len(keys) == len(values), 'key not match with value for {url}'\n",
290 | " \n",
291 | " # paper decision box\n",
292 | " if 'Decision:' in [k.text for k in keys]:\n",
293 | " for _k in range(len(keys)):\n",
294 | " if keys[_k].text == 'Decision:': # decesion\n",
295 | " item_final_decision = values[_k].text\n",
296 | " _item_final_decision = item_final_decision.split(' ')[-1].strip('(').strip(')')\n",
297 | " assert _item_final_decision.lower() == cat, f'final decision not match for {url}'\n",
298 | " if keys[_k].text == 'Consistency Experiment:': # \n",
299 | " two_decision = True\n",
300 | " _value = values[_k].text\n",
301 | " _value_re = re.findall(r'.*This copy’s committee reached the following decision: (.*)', _value)\n",
302 | " if len(_value_re) > 0: \n",
303 | " item_decision = _value_re[0]\n",
304 | " else: # both \n",
305 | " _value_re = re.findall(r'.*Both committees reached the same decision: (.*)', _value)\n",
306 | " item_decision = _value_re[0]\n",
307 | " \n",
308 | " # comemnt box\n",
309 | " elif 'Rating:' in [k.text for k in keys]:\n",
310 | " for _k in range(len(keys)):\n",
311 | " if keys[_k].text == 'Rating:':\n",
312 | " _rating = int(values[_k].text.split(':')[0])\n",
313 | " item_ratings.append(_rating)\n",
314 | " if two_decision:\n",
315 | " num_decision = 2\n",
316 | " else:\n",
317 | " num_decision = 1\n",
318 | " item_decision = item_final_decision\n",
319 | " # print(i, url, item_title, item_keywords, item_authors, item_final_decision, item_decision, item_ratings)\n",
320 | " db.write_item(i, url, item_title, item_keywords, item_authors, num_decision, item_final_decision, item_decision, item_ratings)\n",
321 | "\n",
322 | " "
323 | ]
324 | },
325 | {
326 | "cell_type": "code",
327 | "execution_count": null,
328 | "id": "93c5e45f",
329 | "metadata": {},
330 | "outputs": [],
331 | "source": [
332 | "db.close()"
333 | ]
334 | },
335 | {
336 | "cell_type": "code",
337 | "execution_count": null,
338 | "id": "08f86ccb",
339 | "metadata": {},
340 | "outputs": [],
341 | "source": [
342 | "driver.quit()"
343 | ]
344 | }
345 | ],
346 | "metadata": {
347 | "kernelspec": {
348 | "display_name": "Python 3 (ipykernel)",
349 | "language": "python",
350 | "name": "python3"
351 | },
352 | "language_info": {
353 | "codemirror_mode": {
354 | "name": "ipython",
355 | "version": 3
356 | },
357 | "file_extension": ".py",
358 | "mimetype": "text/x-python",
359 | "name": "python",
360 | "nbconvert_exporter": "python",
361 | "pygments_lexer": "ipython3",
362 | "version": "3.8.10"
363 | }
364 | },
365 | "nbformat": 4,
366 | "nbformat_minor": 5
367 | }
368 |
--------------------------------------------------------------------------------
/plot.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": null,
6 | "id": "131805a1",
7 | "metadata": {
8 | "id": "131805a1"
9 | },
10 | "outputs": [],
11 | "source": [
12 | "%matplotlib inline\n",
13 | "%load_ext autoreload\n",
14 | "%autoreload 2\n",
15 | "\n",
16 | "import os\n",
17 | "from tqdm import trange\n",
18 | "from operator import itemgetter\n",
19 | "import numpy as np\n",
20 | "from pprint import pprint\n",
21 | "\n",
22 | "import matplotlib.pyplot as plt\n",
23 | "from matplotlib import rc\n",
24 | "gridc = (1., 1., 1)\n",
25 | "plt.rcParams['grid.color'] = gridc\n",
26 | "plt.rcParams[\"axes.edgecolor\"] = (0.898, 0.925, 0.965, 1)\n",
27 | "plt.rc('xtick', labelsize=12)\n",
28 | "plt.rc('ytick', labelsize=12)\n",
29 | "\n",
30 | "from database import DataBase"
31 | ]
32 | },
33 | {
34 | "cell_type": "code",
35 | "execution_count": null,
36 | "id": "5b328575",
37 | "metadata": {
38 | "id": "5b328575"
39 | },
40 | "outputs": [],
41 | "source": [
42 | "db = DataBase('assets/neurips2021.db')\n",
43 | "db.initialize()"
44 | ]
45 | },
46 | {
47 | "cell_type": "markdown",
48 | "id": "a02d46bb",
49 | "metadata": {
50 | "id": "a02d46bb"
51 | },
52 | "source": [
53 | "### key words"
54 | ]
55 | },
56 | {
57 | "cell_type": "code",
58 | "execution_count": null,
59 | "id": "b7d7661c",
60 | "metadata": {
61 | "id": "b7d7661c"
62 | },
63 | "outputs": [],
64 | "source": [
65 | "# all submissions \n",
66 | "_cmd = \"SELECT keywords FROM submissions;\"\n",
67 | "db.cursor.execute(_cmd)\n",
68 | "data = db.cursor.fetchall()\n",
69 | "keywords = {}\n",
70 | "for i in trange(len(data)):\n",
71 | " _kw = data[i][0].split(', ')\n",
72 | " _kw = [_k.lower().strip() for _k in _kw]\n",
73 | " for _k in _kw:\n",
74 | " if _k in keywords.keys():\n",
75 | " keywords[_k] += 1\n",
76 | " else:\n",
77 | " keywords[_k] = 1\n",
78 | "# sort values\n",
79 | "keywords = {k: v for k, v in sorted(keywords.items(), key=lambda item: item[1])[::-1]}"
80 | ]
81 | },
82 | {
83 | "cell_type": "code",
84 | "execution_count": null,
85 | "id": "7fcf1f2a",
86 | "metadata": {
87 | "id": "7fcf1f2a"
88 | },
89 | "outputs": [],
90 | "source": [
91 | "# merge some redundant keywords\n",
92 | "clear_keywords = keywords.copy()\n",
93 | "# transformer\n",
94 | "clear_keywords.update({'transformer(s)': 0})\n",
95 | "pops = []\n",
96 | "for k, v in clear_keywords.items():\n",
97 | " if 'transformer' in k and k != 'transformer(s)':\n",
98 | " clear_keywords['transformer(s)'] += v\n",
99 | " pops.append(k)\n",
100 | "# graph NN\n",
101 | "clear_keywords.update({'graph neural network(s)': 0})\n",
102 | "for k, v in keywords.items():\n",
103 | " if 'graph neural network' in k and k != 'graph neural network(s)':\n",
104 | " clear_keywords['graph neural network(s)'] += v\n",
105 | " pops.append(k)\n",
106 | "# RL\n",
107 | "clear_keywords.update({'(deep) reinforcement learning': 0})\n",
108 | "for k, v in keywords.items():\n",
109 | " if 'reinforcement learning' in k and k != '(deep) reinforcement learning':\n",
110 | " clear_keywords['(deep) reinforcement learning'] += v\n",
111 | " pops.append(k)\n",
112 | "# generative model\n",
113 | "clear_keywords.update({'generative model(s)': 0})\n",
114 | "for k, v in keywords.items():\n",
115 | " if 'generative model' in k and k != 'generative model(s)':\n",
116 | " clear_keywords['generative model(s)'] += v\n",
117 | " pops.append(k)\n",
118 | "# representation learning\n",
119 | "clear_keywords.update({'representation learning(s)': 0})\n",
120 | "for k, v in keywords.items():\n",
121 | " if 'representation learning' in k and k != 'representation learning(s)':\n",
122 | " clear_keywords['representation learning(s)'] += v\n",
123 | " pops.append(k)\n",
124 | "# self-supervised\n",
125 | "clear_keywords.update({'self-supervised(s)': 0})\n",
126 | "for k, v in keywords.items():\n",
127 | " if 'self-supervised' in k and k != 'self-supervised(s)':\n",
128 | " clear_keywords['self-supervised(s)'] += v\n",
129 | " pops.append(k)\n",
130 | "# unsupervised\n",
131 | "clear_keywords.update({'unsupervised(s)': 0})\n",
132 | "for k, v in keywords.items():\n",
133 | " if 'unsupervised' in k and k != 'unsupervised(s)':\n",
134 | " clear_keywords['unsupervised(s)'] += v\n",
135 | " pops.append(k)\n",
136 | "# contrastive learning\n",
137 | "clear_keywords.update({'contrastive learning(s)': 0})\n",
138 | "for k, v in keywords.items():\n",
139 | " if 'contrastive learning' in k and k != 'contrastive learning(s)':\n",
140 | " clear_keywords['contrastive learning(s)'] += v\n",
141 | " pops.append(k)\n",
142 | "# deep learning\n",
143 | "clear_keywords.update({'deep learning(s)': 0})\n",
144 | "for k, v in keywords.items():\n",
145 | " if 'deep learning' in k and k != 'deep learning(s)':\n",
146 | " clear_keywords['deep learning(s)'] += v\n",
147 | " pops.append(k)\n",
148 | "# optimization\n",
149 | "clear_keywords.update({'optimization(s)': 0})\n",
150 | "for k, v in keywords.items():\n",
151 | " if 'optimization' in k and k != 'optimization(s)':\n",
152 | " clear_keywords['optimization(s)'] += v\n",
153 | " pops.append(k)\n",
154 | "# adversaial robustness\n",
155 | "clear_keywords.update({'(adversaial) robustness': 0})\n",
156 | "for k, v in keywords.items():\n",
157 | " if 'robustness' in k and k != '(adversaial) robustness':\n",
158 | " clear_keywords['(adversaial) robustness'] += v\n",
159 | " pops.append(k)\n",
160 | "# attention\n",
161 | "clear_keywords.update({'attention(s)': 0})\n",
162 | "for k, v in keywords.items():\n",
163 | " if 'attention' in k and k != 'attention(s)':\n",
164 | " clear_keywords['attention(s)'] += v\n",
165 | " pops.append(k)\n",
166 | "# learning theory\n",
167 | "clear_keywords.update({'learning theory(-ies)': 0})\n",
168 | "for k, v in keywords.items():\n",
169 | " if 'learning theory' in k and k != 'learning theory(-ies)':\n",
170 | " clear_keywords['learning theory(-ies)'] += v\n",
171 | " pops.append(k)\n",
172 | "# generalization\n",
173 | "clear_keywords.update({'generalization(s)': 0})\n",
174 | "for k, v in clear_keywords.items():\n",
175 | " if 'generalization' in k and k != 'generalization(s)':\n",
176 | " clear_keywords['generalization(s)'] += v\n",
177 | " pops.append(k)\n",
178 | "# meta-learning\n",
179 | "clear_keywords.update({'meta-learning(s)': 0})\n",
180 | "for k, v in clear_keywords.items():\n",
181 | " if ('meta-learning' in k or 'meta learning' in k) and k != 'meta-learning(s)':\n",
182 | " clear_keywords['meta-learning(s)'] += v\n",
183 | " pops.append(k)\n",
184 | "# online learning\n",
185 | "clear_keywords.update({'online learning(s)': 0})\n",
186 | "for k, v in keywords.items():\n",
187 | " if 'online learning' in k and k != 'online learning(s)':\n",
188 | " clear_keywords['online learning(s)'] += v\n",
189 | " pops.append(k)\n",
190 | "# differential privacy\n",
191 | "clear_keywords.update({'differential privacy(-ies)': 0})\n",
192 | "for k, v in keywords.items():\n",
193 | " if 'differential privacy' in k and k != 'differential privacy(-ies)':\n",
194 | " clear_keywords['differential privacy(-ies)'] += v\n",
195 | " pops.append(k)\n",
196 | "# computer vision\n",
197 | "clear_keywords.update({'computer vision(s)': 0})\n",
198 | "for k, v in keywords.items():\n",
199 | " if 'computer vision' in k and k != 'computer vision(s)':\n",
200 | " clear_keywords['computer vision(s)'] += v\n",
201 | " pops.append(k)\n",
202 | "# neural networks\n",
203 | "clear_keywords.update({'neural network(s)': 0})\n",
204 | "for k, v in clear_keywords.items():\n",
205 | " if ('neural network' in k and 'graph neural network' not in k) and k != 'neural network(s)':\n",
206 | " clear_keywords['neural network(s)'] += v\n",
207 | " pops.append(k)\n",
208 | "# transfer learning\n",
209 | "clear_keywords.update({'transfer learning(s)': 0})\n",
210 | "for k, v in keywords.items():\n",
211 | " if 'transfer learning' in k and k != 'transfer learning(s)':\n",
212 | " clear_keywords['transfer learning(s)'] += v\n",
213 | " pops.append(k)\n",
214 | "# federated learning\n",
215 | "clear_keywords.update({'federated learning(s)': 0})\n",
216 | "for k, v in keywords.items():\n",
217 | " if 'federated learning' in k and k != 'federated learning(s)':\n",
218 | " clear_keywords['federated learning(s)'] += v\n",
219 | " pops.append(k)\n",
220 | "# variational inference\n",
221 | "clear_keywords.update({'variational inference(s)': 0})\n",
222 | "for k, v in clear_keywords.items():\n",
223 | " if 'variational inference' in k and k != 'variational inference(s)':\n",
224 | " clear_keywords['variational inference(s)'] += v\n",
225 | " pops.append(k)\n",
226 | "# 3d\n",
227 | "clear_keywords.update({'3d(s)': 0})\n",
228 | "for k, v in clear_keywords.items():\n",
229 | " if '3d' in k and k != '3d(s)':\n",
230 | " clear_keywords['3d(s)'] += v\n",
231 | " pops.append(k)\n",
232 | "# language\n",
233 | "clear_keywords.update({'language(s)': 0})\n",
234 | "for k, v in clear_keywords.items():\n",
235 | " if 'language' in k and k != 'language(s)':\n",
236 | " clear_keywords['language(s)'] += v\n",
237 | " pops.append(k)\n",
238 | "# machine learning\n",
239 | "clear_keywords.update({'machine learning(s)': 0})\n",
240 | "for k, v in keywords.items():\n",
241 | " if 'machine learning' in k and k != 'machine learning(s)':\n",
242 | " clear_keywords['machine learning(s)'] += v\n",
243 | " pops.append(k)\n",
244 | "# few-shot learning\n",
245 | "clear_keywords.update({'few-shot learning(s)': 0})\n",
246 | "for k, v in keywords.items():\n",
247 | " if 'few-shot learning' in k and k != 'few-shot learning(s)':\n",
248 | " clear_keywords['few-shot learning(s)'] += v\n",
249 | " pops.append(k)\n",
250 | "# domain adaptation(s)\n",
251 | "clear_keywords.update({'domain adaptation(s)': 0})\n",
252 | "for k, v in clear_keywords.items():\n",
253 | " if 'domain adaptation' in k and k != 'domain adaptation(s)':\n",
254 | " clear_keywords['domain adaptation(s)'] += v\n",
255 | " pops.append(k)\n",
256 | "# fairness\n",
257 | "clear_keywords.update({'fairness(s)': 0})\n",
258 | "for k, v in clear_keywords.items():\n",
259 | " if 'fairness' in k and k != 'fairness(s)':\n",
260 | " clear_keywords['fairness(s)'] += v\n",
261 | " pops.append(k)\n",
262 | "# interpretability\n",
263 | "clear_keywords.update({'interpretability(-ies)': 0})\n",
264 | "for k, v in clear_keywords.items():\n",
265 | " if 'interpretability' in k and k != 'interpretability(-ies)':\n",
266 | " clear_keywords['interpretability(-ies)'] += v\n",
267 | " pops.append(k)\n",
268 | "# gaussian process\n",
269 | "clear_keywords.update({'gaussian process(s)': 0})\n",
270 | "for k, v in clear_keywords.items():\n",
271 | " if 'gaussian process' in k and k != 'gaussian process(s)':\n",
272 | " clear_keywords['gaussian process(s)'] += v\n",
273 | " pops.append(k)\n",
274 | "for pop in set(pops):\n",
275 | " print(pop)\n",
276 | " clear_keywords.pop(pop)\n",
277 | "clear_keywords = {k: v for k, v in sorted(clear_keywords.items(), key=lambda item: item[1])[::-1]}"
278 | ]
279 | },
280 | {
281 | "cell_type": "code",
282 | "execution_count": null,
283 | "id": "jmdMkKwQhKDX",
284 | "metadata": {
285 | "id": "jmdMkKwQhKDX"
286 | },
287 | "outputs": [],
288 | "source": [
289 | "words = {}\n",
290 | "for keyword, cnt in keywords.items():\n",
291 | " _words = keyword.split(' ')\n",
292 | " for word in _words:\n",
293 | " word = word[:-1] if word.endswith('s') else word\n",
294 | " if word in ['learning', 'neural', 'network', 'optimization', 'model',\n",
295 | " 'theory', 'inference', 'method', 'algorithm', 'data', 'gradient',\n",
296 | " 'estimation', 'image', 'machine', 'analysi', 'of', 'system',\n",
297 | " 'dynamic', 'approximation', 'function']:\n",
298 | " continue\n",
299 | " if word not in words:\n",
300 | " words[word] = 0\n",
301 | " words[word] += cnt\n",
302 | "\n",
303 | "words = dict(sorted(words.items(), key=lambda item: item[1], reverse=True))\n",
304 | "\n",
305 | "clear_keywords = {}\n",
306 | "for word, cnt in words.items():\n",
307 | " for keyword in keywords:\n",
308 | " if word in keyword:\n",
309 | " if keyword not in clear_keywords:\n",
310 | " clear_keywords[keyword] = 0\n",
311 | " clear_keywords[keyword] += cnt\n",
312 | " break\n",
313 | "clear_keywords = dict(sorted(clear_keywords.items(), key=lambda item: item[1], reverse=True))"
314 | ]
315 | },
316 | {
317 | "cell_type": "code",
318 | "execution_count": null,
319 | "id": "2189926b",
320 | "metadata": {
321 | "id": "2189926b"
322 | },
323 | "outputs": [],
324 | "source": [
325 | "# original keywords\n",
326 | "ttl = 40\n",
327 | "kws = list(keywords.keys())[:ttl]\n",
328 | "freqs = list(keywords.values())[:ttl]\n",
329 | "\n",
330 | "\n",
331 | "width = 0.5\n",
332 | "fig = plt.figure(figsize=[18, 6])\n",
333 | "\n",
334 | "ax = fig.add_subplot(1, 1, 1)\n",
335 | "ax.set_facecolor((0.898, 0.925, 0.965, 0.5))\n",
336 | "ax.spines['left'].set_color('w')\n",
337 | "ax.spines['bottom'].set_color('w')\n",
338 | "ax.spines['right'].set_color('w')\n",
339 | "ax.spines['top'].set_color('w')\n",
340 | "\n",
341 | "colors = ['#789BFF', '#FE8671'] * (ttl // 2)\n",
342 | "\n",
343 | "# all keywords\n",
344 | "ax.bar(np.arange(ttl), freqs, width=width, alpha=0.95, \n",
345 | " color=colors, capsize=4)\n",
346 | "for i, v in zip(np.arange(ttl), freqs):\n",
347 | " ax.text(i - 0.5 if v >= 100 else i - 0.3, v + 4.0, str(v), color=colors[i], fontsize=12)\n",
348 | "\n",
349 | "plt.ylim(0, 215)\n",
350 | "plt.xticks(ticks=np.arange(ttl), rotation=45,\n",
351 | " labels=[d for d in kws], ha='right')\n",
352 | "for ticklabel, tickcolor in zip(plt.gca().get_xticklabels(), colors):\n",
353 | " ticklabel.set_color(tickcolor)\n",
354 | "ax.set_ylabel(r\"#\", fontsize=14)\n",
355 | "ax.set_axisbelow(True)\n",
356 | "ax.grid()\n",
357 | "plt.savefig('assets/keywords_bar.png', bbox_inches='tight', dpi=150)"
358 | ]
359 | },
360 | {
361 | "cell_type": "code",
362 | "execution_count": null,
363 | "id": "cd772820",
364 | "metadata": {
365 | "id": "cd772820"
366 | },
367 | "outputs": [],
368 | "source": [
369 | "# clear keywords\n",
370 | "ttl = 30\n",
371 | "kws = list(clear_keywords.keys())[:ttl]\n",
372 | "freqs = list(clear_keywords.values())[:ttl]\n",
373 | "\n",
374 | "\n",
375 | "width = 0.5\n",
376 | "fig = plt.figure(figsize=[16, 6])\n",
377 | "\n",
378 | "ax = fig.add_subplot(1, 1, 1)\n",
379 | "ax.set_facecolor((0.898, 0.925, 0.965, 0.5))\n",
380 | "ax.spines['left'].set_color('w')\n",
381 | "ax.spines['bottom'].set_color('w')\n",
382 | "ax.spines['right'].set_color('w')\n",
383 | "ax.spines['top'].set_color('w')\n",
384 | "\n",
385 | "colors = ['#789BFF', '#FE8671'] * (ttl // 2)\n",
386 | "\n",
387 | "# all keywords\n",
388 | "ax.bar(np.arange(ttl), freqs, width=width, alpha=0.95, \n",
389 | " color=colors, capsize=4)\n",
390 | "for i, v in zip(np.arange(ttl), freqs):\n",
391 | " ax.text(i - 0.25 if v >= 100 else i - 0.2, v + 4.0, str(v), color=colors[i], fontsize=12)\n",
392 | "\n",
393 | "plt.ylim(0, 400)\n",
394 | "plt.xticks(ticks=np.arange(ttl), rotation=45,\n",
395 | " labels=[d for d in kws], ha='right')\n",
396 | "for ticklabel, tickcolor in zip(plt.gca().get_xticklabels(), colors):\n",
397 | " ticklabel.set_color(tickcolor)\n",
398 | "ax.set_ylabel(r\"#\", fontsize=14)\n",
399 | "ax.set_axisbelow(True)\n",
400 | "ax.grid()\n",
401 | "plt.savefig('assets/clear_keywords_bar.png', bbox_inches='tight', dpi=150)"
402 | ]
403 | },
404 | {
405 | "cell_type": "markdown",
406 | "id": "dcd75c52",
407 | "metadata": {
408 | "id": "dcd75c52"
409 | },
410 | "source": [
411 | "### statistics bar"
412 | ]
413 | },
414 | {
415 | "cell_type": "code",
416 | "execution_count": null,
417 | "id": "a0d9b636",
418 | "metadata": {
419 | "id": "a0d9b636"
420 | },
421 | "outputs": [],
422 | "source": [
423 | "# all decisions\n",
424 | "_cmd = \"SELECT rating_avg FROM submissions;\"\n",
425 | "db.cursor.execute(_cmd)\n",
426 | "data = db.cursor.fetchall()\n",
427 | "rating_avgs = np.array(data)\n",
428 | "print(\"> Total submissions (including CE): {}\".format(len(data)))\n",
429 | "print(f\" Average ratings: {rating_avgs.mean():.2f}\")\n",
430 | "print(f\" Max ratings: {rating_avgs.max():.2f}\")\n",
431 | "print(f\" Min ratings: {rating_avgs.min():.2f}\")\n",
432 | "\n",
433 | "# oral\n",
434 | "_cmd = \"SELECT rating_avg FROM submissions WHERE now_decision LIKE '%Oral%';\"\n",
435 | "db.cursor.execute(_cmd)\n",
436 | "data = db.cursor.fetchall()\n",
437 | "oral_avgs = np.array(data)\n",
438 | "print(\"> Oral submissions (including CE): {}\".format(oral_avgs.shape[0]))\n",
439 | "print(f\" Average ratings: {oral_avgs.mean():.2f}\")\n",
440 | "print(f\" Max ratings: {oral_avgs.max():.2f}\")\n",
441 | "print(f\" Min ratings: {oral_avgs.min():.2f}\")\n",
442 | "\n",
443 | "# spotlight\n",
444 | "_cmd = \"SELECT rating_avg FROM submissions WHERE now_decision LIKE '%Spotlight%';\"\n",
445 | "db.cursor.execute(_cmd)\n",
446 | "data = db.cursor.fetchall()\n",
447 | "spotlight_avgs = np.array(data)\n",
448 | "print(\"> Soitlight submissions (including CE): {}\".format(spotlight_avgs.shape[0]))\n",
449 | "print(f\" Average ratings: {spotlight_avgs.mean():.2f}\")\n",
450 | "print(f\" Max ratings: {spotlight_avgs.max():.2f}\")\n",
451 | "print(f\" Min ratings: {spotlight_avgs.min():.2f}\")\n",
452 | "\n",
453 | "# poster\n",
454 | "_cmd = \"SELECT rating_avg FROM submissions WHERE now_decision LIKE '%Poster%';\"\n",
455 | "db.cursor.execute(_cmd)\n",
456 | "data = db.cursor.fetchall()\n",
457 | "poster_avgs = np.array(data)\n",
458 | "print(\"> Poster submissions (including CE): {}\".format(poster_avgs.shape[0]))\n",
459 | "print(f\" Average ratings: {poster_avgs.mean():.2f}\")\n",
460 | "print(f\" Max ratings: {poster_avgs.max():.2f}\")\n",
461 | "print(f\" Min ratings: {poster_avgs.min():.2f}\")\n",
462 | "\n",
463 | "# reject\n",
464 | "_cmd = \"SELECT rating_avg FROM submissions WHERE now_decision LIKE '%Reject%';\"\n",
465 | "db.cursor.execute(_cmd)\n",
466 | "data = db.cursor.fetchall()\n",
467 | "reject_avgs = np.array(data)\n",
468 | "print(\"> Reject submissions (including CE): {}\".format(reject_avgs.shape[0]))\n",
469 | "print(f\" Average ratings: {reject_avgs.mean():.2f}\")\n",
470 | "print(f\" Max ratings: {reject_avgs.max():.2f}\")\n",
471 | "print(f\" Min ratings: {reject_avgs.min():.2f}\")"
472 | ]
473 | },
474 | {
475 | "cell_type": "code",
476 | "execution_count": null,
477 | "id": "09f9d3bb",
478 | "metadata": {
479 | "id": "09f9d3bb"
480 | },
481 | "outputs": [],
482 | "source": [
483 | "_min, _max = rating_avgs.min(), rating_avgs.max()\n",
484 | "\n",
485 | "width = 0.16\n",
486 | "fig = plt.figure(figsize=[16, 6])\n",
487 | "\n",
488 | "ax = fig.add_subplot(1, 1, 1)\n",
489 | "ax.set_facecolor((0.898, 0.925, 0.965, 0.5))\n",
490 | "ax.spines['left'].set_color('w')\n",
491 | "ax.spines['bottom'].set_color('w')\n",
492 | "ax.spines['right'].set_color('w')\n",
493 | "ax.spines['top'].set_color('w')\n",
494 | "\n",
495 | "# all submissions\n",
496 | "hist, bin_edges = np.histogram(rating_avgs, bins=20, range=(_min, _max))\n",
497 | "# ax.bar(np.linspace(_min, _max, len(hist)), hist, width=width, alpha=0.95, \n",
498 | "# color='#789BFF', capsize=4)\n",
499 | "for i, v in zip(np.linspace(_min, _max, len(hist)), hist):\n",
500 | " ax.text(i - 0.1 if v >= 100 else i - 0.05, v + 6.0, str(v), color='#1f59ff', fontsize=16)\n",
501 | "\n",
502 | "# reject\n",
503 | "hist_reject, _ = np.histogram(reject_avgs, bins=20, range=(_min, _max))\n",
504 | "ax.bar(np.linspace(_min, _max, len(hist)), hist_reject, width=width, alpha=0.95, \n",
505 | " color='#E3E7FF', capsize=4, label='Reject')\n",
506 | "\n",
507 | "# poster\n",
508 | "hist_poster, _ = np.histogram(poster_avgs, bins=20, range=(_min, _max))\n",
509 | "ax.bar(np.linspace(_min, _max, len(hist)), hist_poster, bottom=hist_reject, width=width, alpha=0.95, \n",
510 | " color='#A0B5FF', capsize=4, label='Poster')\n",
511 | "\n",
512 | "# spotlight\n",
513 | "hist_spotlight, _ = np.histogram(spotlight_avgs, bins=20, range=(_min, _max))\n",
514 | "ax.bar(np.linspace(_min, _max, len(hist)), hist_spotlight, bottom=hist_poster + hist_reject, \n",
515 | " width=width, alpha=0.95, \n",
516 | " color='#7879FF', capsize=4, label='Spotlight')\n",
517 | "\n",
518 | "# oral\n",
519 | "hist_oral, _ = np.histogram(oral_avgs, bins=20, range=(_min, _max))\n",
520 | "ax.bar(np.linspace(_min, _max, len(hist)), hist_oral, bottom=hist_poster + hist_reject + hist_spotlight, \n",
521 | " width=width, alpha=0.95, \n",
522 | " color='#FF435B', capsize=4, label='Oral')\n",
523 | "\n",
524 | "plt.ylim(0, 550)\n",
525 | "plt.xticks(ticks=np.linspace(_min, _max, len(hist)), \n",
526 | " rotation=40, \n",
527 | " labels=[f\"{d:.2f}\" for d in np.linspace(_min, _max, len(hist))])\n",
528 | "ax.set_ylabel(r\"# submissions\", fontsize=14)\n",
529 | "ax.set_xlabel(\"Rating\", fontsize=14)\n",
530 | "ax.set_axisbelow(True)\n",
531 | "ax.grid()\n",
532 | "handles, labels = ax.get_legend_handles_labels()\n",
533 | "ax.legend(handles[::-1], labels[::-1], loc=2, fontsize=14)\n",
534 | "plt.savefig('assets/stats_bar.png')"
535 | ]
536 | },
537 | {
538 | "cell_type": "code",
539 | "execution_count": null,
540 | "id": "0011116b",
541 | "metadata": {
542 | "id": "0011116b"
543 | },
544 | "outputs": [],
545 | "source": [
546 | "# consistency experiment statistics\n",
547 | "_cmd = \"SELECT * FROM submissions WHERE num_decision == 2 ORDER BY title;\"\n",
548 | "db.cursor.execute(_cmd)\n",
549 | "data = db.cursor.fetchall()\n",
550 | "print(\"> Total submissions with CE: {}\".format(len(data) // 2))\n",
551 | "num_comflict = 0\n",
552 | "num_consist = 0\n",
553 | "ces = {}\n",
554 | "for i in range(0, len(data), 2): \n",
555 | " dcs = data[i][6].split(' ')[-1].strip('()')\n",
556 | " dcs_0 = data[i][7].split(' ')[-1].strip('()')\n",
557 | " dcs_1 = data[i + 1][7].split(' ')[-1].strip('()') \n",
558 | " _key = \", \".join(sorted([dcs_0, dcs_1]))\n",
559 | " _key = dcs + ', ' + _key\n",
560 | " if _key in ces.keys():\n",
561 | " ces[_key] += 1\n",
562 | " else:\n",
563 | " ces.update({_key: 1})\n",
564 | " assert data[i][2] == data[i + 1][2], f'not match for {i}'\n",
565 | " if dcs_0 != dcs_1:\n",
566 | " num_comflict += 1\n",
567 | " else:\n",
568 | " num_consist += 1\n",
569 | "print(f\"> Decision conflict: {num_comflict}\")\n",
570 | "print(f\"> Decision consist: {num_consist}\")\n",
571 | "pprint(ces)"
572 | ]
573 | },
574 | {
575 | "cell_type": "markdown",
576 | "id": "2cbc2868",
577 | "metadata": {
578 | "id": "2cbc2868"
579 | },
580 | "source": [
581 | "### write consistency experiment"
582 | ]
583 | },
584 | {
585 | "cell_type": "code",
586 | "execution_count": null,
587 | "id": "e3f885a0",
588 | "metadata": {
589 | "id": "e3f885a0"
590 | },
591 | "outputs": [],
592 | "source": [
593 | "check = '✔'\n",
594 | "maps = {\n",
595 | " 'Oral': 'a',\n",
596 | " 'Spotlight': 'b',\n",
597 | " 'Poster': 'c',\n",
598 | " 'Reject': 'd'\n",
599 | "}"
600 | ]
601 | },
602 | {
603 | "cell_type": "code",
604 | "execution_count": null,
605 | "id": "248fd137",
606 | "metadata": {
607 | "id": "248fd137"
608 | },
609 | "outputs": [],
610 | "source": [
611 | "_cmd = \"SELECT * FROM submissions WHERE num_decision == 2 \" \\\n",
612 | " \"ORDER BY CASE final_decision WHEN 'Accept (oral)' \" \\\n",
613 | " \"THEN 'a' WHEN 'Accept (Spotlight)' THEN 'b' WHEN 'Accept (Poster)' \" \\\n",
614 | " \"THEN 'c' WHEN 'Reject' THEN 'd' END, title DESC;\"\n",
615 | "db.cursor.execute(_cmd)\n",
616 | "data = db.cursor.fetchall()\n",
617 | "\n",
618 | "# read template \n",
619 | "with open('neurips2021_consistency_experiments_template.html', 'r') as f:\n",
620 | " html_temp = f.readlines()\n",
621 | "# find insert index\n",
622 | "idx = html_temp.index(' \\n') + 1\n",
623 | "\n",
624 | "# write data\n",
625 | "for i in trange(len(data)):\n",
626 | " _data = data[i]\n",
627 | " final_d = _data[6].split(' ')[-1].strip('()')\n",
628 | " now_d = _data[7].split(' ')[-1].strip('()')\n",
629 | " _str = f\"{i + 1} | {_data[2]} | \" \\\n",
630 | " f\"{_data[9]:.2f} | {_data[10]:.2f} | {_data[11]} | \" \\\n",
631 | " f\"{final_d} | \" \\\n",
632 | " f\"{now_d} | \" \\\n",
633 | " f\"{check} |
\\n\"\n",
634 | " html_temp.insert(idx + i, _str)\n",
635 | "\n",
636 | "with open('neurips2021_consistency_experiments.html' ,'w') as f:\n",
637 | " f.write(\"\".join(html_temp))"
638 | ]
639 | },
640 | {
641 | "cell_type": "markdown",
642 | "id": "4ab7f63c",
643 | "metadata": {
644 | "id": "4ab7f63c"
645 | },
646 | "source": [
647 | "### write all submissions"
648 | ]
649 | },
650 | {
651 | "cell_type": "code",
652 | "execution_count": null,
653 | "id": "5d31242d",
654 | "metadata": {
655 | "id": "5d31242d"
656 | },
657 | "outputs": [],
658 | "source": [
659 | "_cmd = \"SELECT * FROM submissions ORDER BY rating_avg DESC;\"\n",
660 | "db.cursor.execute(_cmd)\n",
661 | "data = db.cursor.fetchall()\n",
662 | "\n",
663 | "# read template \n",
664 | "with open('neurips2021_submissions_template.html', 'r') as f:\n",
665 | " html_temp = f.readlines()\n",
666 | "# find insert index\n",
667 | "idx = html_temp.index(' \\n') + 1\n",
668 | "\n",
669 | "# write data\n",
670 | "for i in trange(len(data)):\n",
671 | " _data = data[i]\n",
672 | " final_d = _data[6].split(' ')[-1].strip('()')\n",
673 | " now_d = _data[7].split(' ')[-1].strip('()')\n",
674 | " _str = f\"{i + 1} | {_data[2]} | \" \\\n",
675 | " f\"{_data[9]:.2f} | {_data[10]:.2f} | {_data[11]} | \" \\\n",
676 | " f\"{final_d} | \" \\\n",
677 | " f\"{now_d} | \" \\\n",
678 | " f\"{check if _data[5] == 2 else ''} |
\\n\"\n",
679 | " html_temp.insert(idx + i, _str)\n",
680 | "\n",
681 | "with open('neurips2021_submissions.html' ,'w') as f:\n",
682 | " f.write(\"\".join(html_temp))"
683 | ]
684 | },
685 | {
686 | "cell_type": "code",
687 | "execution_count": null,
688 | "id": "b4ca6f1e",
689 | "metadata": {
690 | "id": "b4ca6f1e"
691 | },
692 | "outputs": [],
693 | "source": [
694 | "db.close()"
695 | ]
696 | }
697 | ],
698 | "metadata": {
699 | "colab": {
700 | "name": "plot.ipynb",
701 | "provenance": []
702 | },
703 | "kernelspec": {
704 | "display_name": "Python 3 (ipykernel)",
705 | "language": "python",
706 | "name": "python3"
707 | },
708 | "language_info": {
709 | "codemirror_mode": {
710 | "name": "ipython",
711 | "version": 3
712 | },
713 | "file_extension": ".py",
714 | "mimetype": "text/x-python",
715 | "name": "python",
716 | "nbconvert_exporter": "python",
717 | "pygments_lexer": "ipython3",
718 | "version": "3.7.11"
719 | }
720 | },
721 | "nbformat": 4,
722 | "nbformat_minor": 5
723 | }
724 |
--------------------------------------------------------------------------------
/web_src/fontawesome-5.15.4/css/brands.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com
3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4 | */
5 | @font-face {
6 | font-family: 'Font Awesome 5 Brands';
7 | font-style: normal;
8 | font-weight: 400;
9 | font-display: block;
10 | src: url("../webfonts/fa-brands-400.eot");
11 | src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
12 |
13 | .fab {
14 | font-family: 'Font Awesome 5 Brands';
15 | font-weight: 400; }
16 |
--------------------------------------------------------------------------------
/web_src/fontawesome-5.15.4/css/brands.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com
3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4 | */
5 | @font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands";font-weight:400}
--------------------------------------------------------------------------------
/web_src/fontawesome-5.15.4/css/regular.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com
3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4 | */
5 | @font-face {
6 | font-family: 'Font Awesome 5 Free';
7 | font-style: normal;
8 | font-weight: 400;
9 | font-display: block;
10 | src: url("../webfonts/fa-regular-400.eot");
11 | src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }
12 |
13 | .far {
14 | font-family: 'Font Awesome 5 Free';
15 | font-weight: 400; }
16 |
--------------------------------------------------------------------------------
/web_src/fontawesome-5.15.4/css/regular.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com
3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4 | */
5 | @font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Free";font-weight:400}
--------------------------------------------------------------------------------
/web_src/fontawesome-5.15.4/css/solid.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com
3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4 | */
5 | @font-face {
6 | font-family: 'Font Awesome 5 Free';
7 | font-style: normal;
8 | font-weight: 900;
9 | font-display: block;
10 | src: url("../webfonts/fa-solid-900.eot");
11 | src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }
12 |
13 | .fa,
14 | .fas {
15 | font-family: 'Font Awesome 5 Free';
16 | font-weight: 900; }
17 |
--------------------------------------------------------------------------------
/web_src/fontawesome-5.15.4/css/solid.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com
3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4 | */
5 | @font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900}
--------------------------------------------------------------------------------
/web_src/fontawesome-5.15.4/css/svg-with-js.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com
3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4 | */
5 | svg:not(:root).svg-inline--fa {
6 | overflow: visible; }
7 |
8 | .svg-inline--fa {
9 | display: inline-block;
10 | font-size: inherit;
11 | height: 1em;
12 | overflow: visible;
13 | vertical-align: -.125em; }
14 | .svg-inline--fa.fa-lg {
15 | vertical-align: -.225em; }
16 | .svg-inline--fa.fa-w-1 {
17 | width: 0.0625em; }
18 | .svg-inline--fa.fa-w-2 {
19 | width: 0.125em; }
20 | .svg-inline--fa.fa-w-3 {
21 | width: 0.1875em; }
22 | .svg-inline--fa.fa-w-4 {
23 | width: 0.25em; }
24 | .svg-inline--fa.fa-w-5 {
25 | width: 0.3125em; }
26 | .svg-inline--fa.fa-w-6 {
27 | width: 0.375em; }
28 | .svg-inline--fa.fa-w-7 {
29 | width: 0.4375em; }
30 | .svg-inline--fa.fa-w-8 {
31 | width: 0.5em; }
32 | .svg-inline--fa.fa-w-9 {
33 | width: 0.5625em; }
34 | .svg-inline--fa.fa-w-10 {
35 | width: 0.625em; }
36 | .svg-inline--fa.fa-w-11 {
37 | width: 0.6875em; }
38 | .svg-inline--fa.fa-w-12 {
39 | width: 0.75em; }
40 | .svg-inline--fa.fa-w-13 {
41 | width: 0.8125em; }
42 | .svg-inline--fa.fa-w-14 {
43 | width: 0.875em; }
44 | .svg-inline--fa.fa-w-15 {
45 | width: 0.9375em; }
46 | .svg-inline--fa.fa-w-16 {
47 | width: 1em; }
48 | .svg-inline--fa.fa-w-17 {
49 | width: 1.0625em; }
50 | .svg-inline--fa.fa-w-18 {
51 | width: 1.125em; }
52 | .svg-inline--fa.fa-w-19 {
53 | width: 1.1875em; }
54 | .svg-inline--fa.fa-w-20 {
55 | width: 1.25em; }
56 | .svg-inline--fa.fa-pull-left {
57 | margin-right: .3em;
58 | width: auto; }
59 | .svg-inline--fa.fa-pull-right {
60 | margin-left: .3em;
61 | width: auto; }
62 | .svg-inline--fa.fa-border {
63 | height: 1.5em; }
64 | .svg-inline--fa.fa-li {
65 | width: 2em; }
66 | .svg-inline--fa.fa-fw {
67 | width: 1.25em; }
68 |
69 | .fa-layers svg.svg-inline--fa {
70 | bottom: 0;
71 | left: 0;
72 | margin: auto;
73 | position: absolute;
74 | right: 0;
75 | top: 0; }
76 |
77 | .fa-layers {
78 | display: inline-block;
79 | height: 1em;
80 | position: relative;
81 | text-align: center;
82 | vertical-align: -.125em;
83 | width: 1em; }
84 | .fa-layers svg.svg-inline--fa {
85 | -webkit-transform-origin: center center;
86 | transform-origin: center center; }
87 |
88 | .fa-layers-text, .fa-layers-counter {
89 | display: inline-block;
90 | position: absolute;
91 | text-align: center; }
92 |
93 | .fa-layers-text {
94 | left: 50%;
95 | top: 50%;
96 | -webkit-transform: translate(-50%, -50%);
97 | transform: translate(-50%, -50%);
98 | -webkit-transform-origin: center center;
99 | transform-origin: center center; }
100 |
101 | .fa-layers-counter {
102 | background-color: #ff253a;
103 | border-radius: 1em;
104 | -webkit-box-sizing: border-box;
105 | box-sizing: border-box;
106 | color: #fff;
107 | height: 1.5em;
108 | line-height: 1;
109 | max-width: 5em;
110 | min-width: 1.5em;
111 | overflow: hidden;
112 | padding: .25em;
113 | right: 0;
114 | text-overflow: ellipsis;
115 | top: 0;
116 | -webkit-transform: scale(0.25);
117 | transform: scale(0.25);
118 | -webkit-transform-origin: top right;
119 | transform-origin: top right; }
120 |
121 | .fa-layers-bottom-right {
122 | bottom: 0;
123 | right: 0;
124 | top: auto;
125 | -webkit-transform: scale(0.25);
126 | transform: scale(0.25);
127 | -webkit-transform-origin: bottom right;
128 | transform-origin: bottom right; }
129 |
130 | .fa-layers-bottom-left {
131 | bottom: 0;
132 | left: 0;
133 | right: auto;
134 | top: auto;
135 | -webkit-transform: scale(0.25);
136 | transform: scale(0.25);
137 | -webkit-transform-origin: bottom left;
138 | transform-origin: bottom left; }
139 |
140 | .fa-layers-top-right {
141 | right: 0;
142 | top: 0;
143 | -webkit-transform: scale(0.25);
144 | transform: scale(0.25);
145 | -webkit-transform-origin: top right;
146 | transform-origin: top right; }
147 |
148 | .fa-layers-top-left {
149 | left: 0;
150 | right: auto;
151 | top: 0;
152 | -webkit-transform: scale(0.25);
153 | transform: scale(0.25);
154 | -webkit-transform-origin: top left;
155 | transform-origin: top left; }
156 |
157 | .fa-lg {
158 | font-size: 1.33333em;
159 | line-height: 0.75em;
160 | vertical-align: -.0667em; }
161 |
162 | .fa-xs {
163 | font-size: .75em; }
164 |
165 | .fa-sm {
166 | font-size: .875em; }
167 |
168 | .fa-1x {
169 | font-size: 1em; }
170 |
171 | .fa-2x {
172 | font-size: 2em; }
173 |
174 | .fa-3x {
175 | font-size: 3em; }
176 |
177 | .fa-4x {
178 | font-size: 4em; }
179 |
180 | .fa-5x {
181 | font-size: 5em; }
182 |
183 | .fa-6x {
184 | font-size: 6em; }
185 |
186 | .fa-7x {
187 | font-size: 7em; }
188 |
189 | .fa-8x {
190 | font-size: 8em; }
191 |
192 | .fa-9x {
193 | font-size: 9em; }
194 |
195 | .fa-10x {
196 | font-size: 10em; }
197 |
198 | .fa-fw {
199 | text-align: center;
200 | width: 1.25em; }
201 |
202 | .fa-ul {
203 | list-style-type: none;
204 | margin-left: 2.5em;
205 | padding-left: 0; }
206 | .fa-ul > li {
207 | position: relative; }
208 |
209 | .fa-li {
210 | left: -2em;
211 | position: absolute;
212 | text-align: center;
213 | width: 2em;
214 | line-height: inherit; }
215 |
216 | .fa-border {
217 | border: solid 0.08em #eee;
218 | border-radius: .1em;
219 | padding: .2em .25em .15em; }
220 |
221 | .fa-pull-left {
222 | float: left; }
223 |
224 | .fa-pull-right {
225 | float: right; }
226 |
227 | .fa.fa-pull-left,
228 | .fas.fa-pull-left,
229 | .far.fa-pull-left,
230 | .fal.fa-pull-left,
231 | .fab.fa-pull-left {
232 | margin-right: .3em; }
233 |
234 | .fa.fa-pull-right,
235 | .fas.fa-pull-right,
236 | .far.fa-pull-right,
237 | .fal.fa-pull-right,
238 | .fab.fa-pull-right {
239 | margin-left: .3em; }
240 |
241 | .fa-spin {
242 | -webkit-animation: fa-spin 2s infinite linear;
243 | animation: fa-spin 2s infinite linear; }
244 |
245 | .fa-pulse {
246 | -webkit-animation: fa-spin 1s infinite steps(8);
247 | animation: fa-spin 1s infinite steps(8); }
248 |
249 | @-webkit-keyframes fa-spin {
250 | 0% {
251 | -webkit-transform: rotate(0deg);
252 | transform: rotate(0deg); }
253 | 100% {
254 | -webkit-transform: rotate(360deg);
255 | transform: rotate(360deg); } }
256 |
257 | @keyframes fa-spin {
258 | 0% {
259 | -webkit-transform: rotate(0deg);
260 | transform: rotate(0deg); }
261 | 100% {
262 | -webkit-transform: rotate(360deg);
263 | transform: rotate(360deg); } }
264 |
265 | .fa-rotate-90 {
266 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
267 | -webkit-transform: rotate(90deg);
268 | transform: rotate(90deg); }
269 |
270 | .fa-rotate-180 {
271 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
272 | -webkit-transform: rotate(180deg);
273 | transform: rotate(180deg); }
274 |
275 | .fa-rotate-270 {
276 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
277 | -webkit-transform: rotate(270deg);
278 | transform: rotate(270deg); }
279 |
280 | .fa-flip-horizontal {
281 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
282 | -webkit-transform: scale(-1, 1);
283 | transform: scale(-1, 1); }
284 |
285 | .fa-flip-vertical {
286 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
287 | -webkit-transform: scale(1, -1);
288 | transform: scale(1, -1); }
289 |
290 | .fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {
291 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
292 | -webkit-transform: scale(-1, -1);
293 | transform: scale(-1, -1); }
294 |
295 | :root .fa-rotate-90,
296 | :root .fa-rotate-180,
297 | :root .fa-rotate-270,
298 | :root .fa-flip-horizontal,
299 | :root .fa-flip-vertical,
300 | :root .fa-flip-both {
301 | -webkit-filter: none;
302 | filter: none; }
303 |
304 | .fa-stack {
305 | display: inline-block;
306 | height: 2em;
307 | position: relative;
308 | width: 2.5em; }
309 |
310 | .fa-stack-1x,
311 | .fa-stack-2x {
312 | bottom: 0;
313 | left: 0;
314 | margin: auto;
315 | position: absolute;
316 | right: 0;
317 | top: 0; }
318 |
319 | .svg-inline--fa.fa-stack-1x {
320 | height: 1em;
321 | width: 1.25em; }
322 |
323 | .svg-inline--fa.fa-stack-2x {
324 | height: 2em;
325 | width: 2.5em; }
326 |
327 | .fa-inverse {
328 | color: #fff; }
329 |
330 | .sr-only {
331 | border: 0;
332 | clip: rect(0, 0, 0, 0);
333 | height: 1px;
334 | margin: -1px;
335 | overflow: hidden;
336 | padding: 0;
337 | position: absolute;
338 | width: 1px; }
339 |
340 | .sr-only-focusable:active, .sr-only-focusable:focus {
341 | clip: auto;
342 | height: auto;
343 | margin: 0;
344 | overflow: visible;
345 | position: static;
346 | width: auto; }
347 |
348 | .svg-inline--fa .fa-primary {
349 | fill: var(--fa-primary-color, currentColor);
350 | opacity: 1;
351 | opacity: var(--fa-primary-opacity, 1); }
352 |
353 | .svg-inline--fa .fa-secondary {
354 | fill: var(--fa-secondary-color, currentColor);
355 | opacity: 0.4;
356 | opacity: var(--fa-secondary-opacity, 0.4); }
357 |
358 | .svg-inline--fa.fa-swap-opacity .fa-primary {
359 | opacity: 0.4;
360 | opacity: var(--fa-secondary-opacity, 0.4); }
361 |
362 | .svg-inline--fa.fa-swap-opacity .fa-secondary {
363 | opacity: 1;
364 | opacity: var(--fa-primary-opacity, 1); }
365 |
366 | .svg-inline--fa mask .fa-primary,
367 | .svg-inline--fa mask .fa-secondary {
368 | fill: black; }
369 |
370 | .fad.fa-inverse {
371 | color: #fff; }
372 |
--------------------------------------------------------------------------------
/web_src/fontawesome-5.15.4/css/svg-with-js.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com
3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4 | */
5 | .svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top left;transform-origin:top left}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor)}.svg-inline--fa .fa-secondary,.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fad.fa-inverse{color:#fff}
--------------------------------------------------------------------------------
/web_src/fontawesome-5.15.4/css/v4-shims.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com
3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4 | */
5 | .fa.fa-glass:before {
6 | content: "\f000"; }
7 |
8 | .fa.fa-meetup {
9 | font-family: 'Font Awesome 5 Brands';
10 | font-weight: 400; }
11 |
12 | .fa.fa-star-o {
13 | font-family: 'Font Awesome 5 Free';
14 | font-weight: 400; }
15 |
16 | .fa.fa-star-o:before {
17 | content: "\f005"; }
18 |
19 | .fa.fa-remove:before {
20 | content: "\f00d"; }
21 |
22 | .fa.fa-close:before {
23 | content: "\f00d"; }
24 |
25 | .fa.fa-gear:before {
26 | content: "\f013"; }
27 |
28 | .fa.fa-trash-o {
29 | font-family: 'Font Awesome 5 Free';
30 | font-weight: 400; }
31 |
32 | .fa.fa-trash-o:before {
33 | content: "\f2ed"; }
34 |
35 | .fa.fa-file-o {
36 | font-family: 'Font Awesome 5 Free';
37 | font-weight: 400; }
38 |
39 | .fa.fa-file-o:before {
40 | content: "\f15b"; }
41 |
42 | .fa.fa-clock-o {
43 | font-family: 'Font Awesome 5 Free';
44 | font-weight: 400; }
45 |
46 | .fa.fa-clock-o:before {
47 | content: "\f017"; }
48 |
49 | .fa.fa-arrow-circle-o-down {
50 | font-family: 'Font Awesome 5 Free';
51 | font-weight: 400; }
52 |
53 | .fa.fa-arrow-circle-o-down:before {
54 | content: "\f358"; }
55 |
56 | .fa.fa-arrow-circle-o-up {
57 | font-family: 'Font Awesome 5 Free';
58 | font-weight: 400; }
59 |
60 | .fa.fa-arrow-circle-o-up:before {
61 | content: "\f35b"; }
62 |
63 | .fa.fa-play-circle-o {
64 | font-family: 'Font Awesome 5 Free';
65 | font-weight: 400; }
66 |
67 | .fa.fa-play-circle-o:before {
68 | content: "\f144"; }
69 |
70 | .fa.fa-repeat:before {
71 | content: "\f01e"; }
72 |
73 | .fa.fa-rotate-right:before {
74 | content: "\f01e"; }
75 |
76 | .fa.fa-refresh:before {
77 | content: "\f021"; }
78 |
79 | .fa.fa-list-alt {
80 | font-family: 'Font Awesome 5 Free';
81 | font-weight: 400; }
82 |
83 | .fa.fa-dedent:before {
84 | content: "\f03b"; }
85 |
86 | .fa.fa-video-camera:before {
87 | content: "\f03d"; }
88 |
89 | .fa.fa-picture-o {
90 | font-family: 'Font Awesome 5 Free';
91 | font-weight: 400; }
92 |
93 | .fa.fa-picture-o:before {
94 | content: "\f03e"; }
95 |
96 | .fa.fa-photo {
97 | font-family: 'Font Awesome 5 Free';
98 | font-weight: 400; }
99 |
100 | .fa.fa-photo:before {
101 | content: "\f03e"; }
102 |
103 | .fa.fa-image {
104 | font-family: 'Font Awesome 5 Free';
105 | font-weight: 400; }
106 |
107 | .fa.fa-image:before {
108 | content: "\f03e"; }
109 |
110 | .fa.fa-pencil:before {
111 | content: "\f303"; }
112 |
113 | .fa.fa-map-marker:before {
114 | content: "\f3c5"; }
115 |
116 | .fa.fa-pencil-square-o {
117 | font-family: 'Font Awesome 5 Free';
118 | font-weight: 400; }
119 |
120 | .fa.fa-pencil-square-o:before {
121 | content: "\f044"; }
122 |
123 | .fa.fa-share-square-o {
124 | font-family: 'Font Awesome 5 Free';
125 | font-weight: 400; }
126 |
127 | .fa.fa-share-square-o:before {
128 | content: "\f14d"; }
129 |
130 | .fa.fa-check-square-o {
131 | font-family: 'Font Awesome 5 Free';
132 | font-weight: 400; }
133 |
134 | .fa.fa-check-square-o:before {
135 | content: "\f14a"; }
136 |
137 | .fa.fa-arrows:before {
138 | content: "\f0b2"; }
139 |
140 | .fa.fa-times-circle-o {
141 | font-family: 'Font Awesome 5 Free';
142 | font-weight: 400; }
143 |
144 | .fa.fa-times-circle-o:before {
145 | content: "\f057"; }
146 |
147 | .fa.fa-check-circle-o {
148 | font-family: 'Font Awesome 5 Free';
149 | font-weight: 400; }
150 |
151 | .fa.fa-check-circle-o:before {
152 | content: "\f058"; }
153 |
154 | .fa.fa-mail-forward:before {
155 | content: "\f064"; }
156 |
157 | .fa.fa-expand:before {
158 | content: "\f424"; }
159 |
160 | .fa.fa-compress:before {
161 | content: "\f422"; }
162 |
163 | .fa.fa-eye {
164 | font-family: 'Font Awesome 5 Free';
165 | font-weight: 400; }
166 |
167 | .fa.fa-eye-slash {
168 | font-family: 'Font Awesome 5 Free';
169 | font-weight: 400; }
170 |
171 | .fa.fa-warning:before {
172 | content: "\f071"; }
173 |
174 | .fa.fa-calendar:before {
175 | content: "\f073"; }
176 |
177 | .fa.fa-arrows-v:before {
178 | content: "\f338"; }
179 |
180 | .fa.fa-arrows-h:before {
181 | content: "\f337"; }
182 |
183 | .fa.fa-bar-chart {
184 | font-family: 'Font Awesome 5 Free';
185 | font-weight: 400; }
186 |
187 | .fa.fa-bar-chart:before {
188 | content: "\f080"; }
189 |
190 | .fa.fa-bar-chart-o {
191 | font-family: 'Font Awesome 5 Free';
192 | font-weight: 400; }
193 |
194 | .fa.fa-bar-chart-o:before {
195 | content: "\f080"; }
196 |
197 | .fa.fa-twitter-square {
198 | font-family: 'Font Awesome 5 Brands';
199 | font-weight: 400; }
200 |
201 | .fa.fa-facebook-square {
202 | font-family: 'Font Awesome 5 Brands';
203 | font-weight: 400; }
204 |
205 | .fa.fa-gears:before {
206 | content: "\f085"; }
207 |
208 | .fa.fa-thumbs-o-up {
209 | font-family: 'Font Awesome 5 Free';
210 | font-weight: 400; }
211 |
212 | .fa.fa-thumbs-o-up:before {
213 | content: "\f164"; }
214 |
215 | .fa.fa-thumbs-o-down {
216 | font-family: 'Font Awesome 5 Free';
217 | font-weight: 400; }
218 |
219 | .fa.fa-thumbs-o-down:before {
220 | content: "\f165"; }
221 |
222 | .fa.fa-heart-o {
223 | font-family: 'Font Awesome 5 Free';
224 | font-weight: 400; }
225 |
226 | .fa.fa-heart-o:before {
227 | content: "\f004"; }
228 |
229 | .fa.fa-sign-out:before {
230 | content: "\f2f5"; }
231 |
232 | .fa.fa-linkedin-square {
233 | font-family: 'Font Awesome 5 Brands';
234 | font-weight: 400; }
235 |
236 | .fa.fa-linkedin-square:before {
237 | content: "\f08c"; }
238 |
239 | .fa.fa-thumb-tack:before {
240 | content: "\f08d"; }
241 |
242 | .fa.fa-external-link:before {
243 | content: "\f35d"; }
244 |
245 | .fa.fa-sign-in:before {
246 | content: "\f2f6"; }
247 |
248 | .fa.fa-github-square {
249 | font-family: 'Font Awesome 5 Brands';
250 | font-weight: 400; }
251 |
252 | .fa.fa-lemon-o {
253 | font-family: 'Font Awesome 5 Free';
254 | font-weight: 400; }
255 |
256 | .fa.fa-lemon-o:before {
257 | content: "\f094"; }
258 |
259 | .fa.fa-square-o {
260 | font-family: 'Font Awesome 5 Free';
261 | font-weight: 400; }
262 |
263 | .fa.fa-square-o:before {
264 | content: "\f0c8"; }
265 |
266 | .fa.fa-bookmark-o {
267 | font-family: 'Font Awesome 5 Free';
268 | font-weight: 400; }
269 |
270 | .fa.fa-bookmark-o:before {
271 | content: "\f02e"; }
272 |
273 | .fa.fa-twitter {
274 | font-family: 'Font Awesome 5 Brands';
275 | font-weight: 400; }
276 |
277 | .fa.fa-facebook {
278 | font-family: 'Font Awesome 5 Brands';
279 | font-weight: 400; }
280 |
281 | .fa.fa-facebook:before {
282 | content: "\f39e"; }
283 |
284 | .fa.fa-facebook-f {
285 | font-family: 'Font Awesome 5 Brands';
286 | font-weight: 400; }
287 |
288 | .fa.fa-facebook-f:before {
289 | content: "\f39e"; }
290 |
291 | .fa.fa-github {
292 | font-family: 'Font Awesome 5 Brands';
293 | font-weight: 400; }
294 |
295 | .fa.fa-credit-card {
296 | font-family: 'Font Awesome 5 Free';
297 | font-weight: 400; }
298 |
299 | .fa.fa-feed:before {
300 | content: "\f09e"; }
301 |
302 | .fa.fa-hdd-o {
303 | font-family: 'Font Awesome 5 Free';
304 | font-weight: 400; }
305 |
306 | .fa.fa-hdd-o:before {
307 | content: "\f0a0"; }
308 |
309 | .fa.fa-hand-o-right {
310 | font-family: 'Font Awesome 5 Free';
311 | font-weight: 400; }
312 |
313 | .fa.fa-hand-o-right:before {
314 | content: "\f0a4"; }
315 |
316 | .fa.fa-hand-o-left {
317 | font-family: 'Font Awesome 5 Free';
318 | font-weight: 400; }
319 |
320 | .fa.fa-hand-o-left:before {
321 | content: "\f0a5"; }
322 |
323 | .fa.fa-hand-o-up {
324 | font-family: 'Font Awesome 5 Free';
325 | font-weight: 400; }
326 |
327 | .fa.fa-hand-o-up:before {
328 | content: "\f0a6"; }
329 |
330 | .fa.fa-hand-o-down {
331 | font-family: 'Font Awesome 5 Free';
332 | font-weight: 400; }
333 |
334 | .fa.fa-hand-o-down:before {
335 | content: "\f0a7"; }
336 |
337 | .fa.fa-arrows-alt:before {
338 | content: "\f31e"; }
339 |
340 | .fa.fa-group:before {
341 | content: "\f0c0"; }
342 |
343 | .fa.fa-chain:before {
344 | content: "\f0c1"; }
345 |
346 | .fa.fa-scissors:before {
347 | content: "\f0c4"; }
348 |
349 | .fa.fa-files-o {
350 | font-family: 'Font Awesome 5 Free';
351 | font-weight: 400; }
352 |
353 | .fa.fa-files-o:before {
354 | content: "\f0c5"; }
355 |
356 | .fa.fa-floppy-o {
357 | font-family: 'Font Awesome 5 Free';
358 | font-weight: 400; }
359 |
360 | .fa.fa-floppy-o:before {
361 | content: "\f0c7"; }
362 |
363 | .fa.fa-navicon:before {
364 | content: "\f0c9"; }
365 |
366 | .fa.fa-reorder:before {
367 | content: "\f0c9"; }
368 |
369 | .fa.fa-pinterest {
370 | font-family: 'Font Awesome 5 Brands';
371 | font-weight: 400; }
372 |
373 | .fa.fa-pinterest-square {
374 | font-family: 'Font Awesome 5 Brands';
375 | font-weight: 400; }
376 |
377 | .fa.fa-google-plus-square {
378 | font-family: 'Font Awesome 5 Brands';
379 | font-weight: 400; }
380 |
381 | .fa.fa-google-plus {
382 | font-family: 'Font Awesome 5 Brands';
383 | font-weight: 400; }
384 |
385 | .fa.fa-google-plus:before {
386 | content: "\f0d5"; }
387 |
388 | .fa.fa-money {
389 | font-family: 'Font Awesome 5 Free';
390 | font-weight: 400; }
391 |
392 | .fa.fa-money:before {
393 | content: "\f3d1"; }
394 |
395 | .fa.fa-unsorted:before {
396 | content: "\f0dc"; }
397 |
398 | .fa.fa-sort-desc:before {
399 | content: "\f0dd"; }
400 |
401 | .fa.fa-sort-asc:before {
402 | content: "\f0de"; }
403 |
404 | .fa.fa-linkedin {
405 | font-family: 'Font Awesome 5 Brands';
406 | font-weight: 400; }
407 |
408 | .fa.fa-linkedin:before {
409 | content: "\f0e1"; }
410 |
411 | .fa.fa-rotate-left:before {
412 | content: "\f0e2"; }
413 |
414 | .fa.fa-legal:before {
415 | content: "\f0e3"; }
416 |
417 | .fa.fa-tachometer:before {
418 | content: "\f3fd"; }
419 |
420 | .fa.fa-dashboard:before {
421 | content: "\f3fd"; }
422 |
423 | .fa.fa-comment-o {
424 | font-family: 'Font Awesome 5 Free';
425 | font-weight: 400; }
426 |
427 | .fa.fa-comment-o:before {
428 | content: "\f075"; }
429 |
430 | .fa.fa-comments-o {
431 | font-family: 'Font Awesome 5 Free';
432 | font-weight: 400; }
433 |
434 | .fa.fa-comments-o:before {
435 | content: "\f086"; }
436 |
437 | .fa.fa-flash:before {
438 | content: "\f0e7"; }
439 |
440 | .fa.fa-clipboard {
441 | font-family: 'Font Awesome 5 Free';
442 | font-weight: 400; }
443 |
444 | .fa.fa-paste {
445 | font-family: 'Font Awesome 5 Free';
446 | font-weight: 400; }
447 |
448 | .fa.fa-paste:before {
449 | content: "\f328"; }
450 |
451 | .fa.fa-lightbulb-o {
452 | font-family: 'Font Awesome 5 Free';
453 | font-weight: 400; }
454 |
455 | .fa.fa-lightbulb-o:before {
456 | content: "\f0eb"; }
457 |
458 | .fa.fa-exchange:before {
459 | content: "\f362"; }
460 |
461 | .fa.fa-cloud-download:before {
462 | content: "\f381"; }
463 |
464 | .fa.fa-cloud-upload:before {
465 | content: "\f382"; }
466 |
467 | .fa.fa-bell-o {
468 | font-family: 'Font Awesome 5 Free';
469 | font-weight: 400; }
470 |
471 | .fa.fa-bell-o:before {
472 | content: "\f0f3"; }
473 |
474 | .fa.fa-cutlery:before {
475 | content: "\f2e7"; }
476 |
477 | .fa.fa-file-text-o {
478 | font-family: 'Font Awesome 5 Free';
479 | font-weight: 400; }
480 |
481 | .fa.fa-file-text-o:before {
482 | content: "\f15c"; }
483 |
484 | .fa.fa-building-o {
485 | font-family: 'Font Awesome 5 Free';
486 | font-weight: 400; }
487 |
488 | .fa.fa-building-o:before {
489 | content: "\f1ad"; }
490 |
491 | .fa.fa-hospital-o {
492 | font-family: 'Font Awesome 5 Free';
493 | font-weight: 400; }
494 |
495 | .fa.fa-hospital-o:before {
496 | content: "\f0f8"; }
497 |
498 | .fa.fa-tablet:before {
499 | content: "\f3fa"; }
500 |
501 | .fa.fa-mobile:before {
502 | content: "\f3cd"; }
503 |
504 | .fa.fa-mobile-phone:before {
505 | content: "\f3cd"; }
506 |
507 | .fa.fa-circle-o {
508 | font-family: 'Font Awesome 5 Free';
509 | font-weight: 400; }
510 |
511 | .fa.fa-circle-o:before {
512 | content: "\f111"; }
513 |
514 | .fa.fa-mail-reply:before {
515 | content: "\f3e5"; }
516 |
517 | .fa.fa-github-alt {
518 | font-family: 'Font Awesome 5 Brands';
519 | font-weight: 400; }
520 |
521 | .fa.fa-folder-o {
522 | font-family: 'Font Awesome 5 Free';
523 | font-weight: 400; }
524 |
525 | .fa.fa-folder-o:before {
526 | content: "\f07b"; }
527 |
528 | .fa.fa-folder-open-o {
529 | font-family: 'Font Awesome 5 Free';
530 | font-weight: 400; }
531 |
532 | .fa.fa-folder-open-o:before {
533 | content: "\f07c"; }
534 |
535 | .fa.fa-smile-o {
536 | font-family: 'Font Awesome 5 Free';
537 | font-weight: 400; }
538 |
539 | .fa.fa-smile-o:before {
540 | content: "\f118"; }
541 |
542 | .fa.fa-frown-o {
543 | font-family: 'Font Awesome 5 Free';
544 | font-weight: 400; }
545 |
546 | .fa.fa-frown-o:before {
547 | content: "\f119"; }
548 |
549 | .fa.fa-meh-o {
550 | font-family: 'Font Awesome 5 Free';
551 | font-weight: 400; }
552 |
553 | .fa.fa-meh-o:before {
554 | content: "\f11a"; }
555 |
556 | .fa.fa-keyboard-o {
557 | font-family: 'Font Awesome 5 Free';
558 | font-weight: 400; }
559 |
560 | .fa.fa-keyboard-o:before {
561 | content: "\f11c"; }
562 |
563 | .fa.fa-flag-o {
564 | font-family: 'Font Awesome 5 Free';
565 | font-weight: 400; }
566 |
567 | .fa.fa-flag-o:before {
568 | content: "\f024"; }
569 |
570 | .fa.fa-mail-reply-all:before {
571 | content: "\f122"; }
572 |
573 | .fa.fa-star-half-o {
574 | font-family: 'Font Awesome 5 Free';
575 | font-weight: 400; }
576 |
577 | .fa.fa-star-half-o:before {
578 | content: "\f089"; }
579 |
580 | .fa.fa-star-half-empty {
581 | font-family: 'Font Awesome 5 Free';
582 | font-weight: 400; }
583 |
584 | .fa.fa-star-half-empty:before {
585 | content: "\f089"; }
586 |
587 | .fa.fa-star-half-full {
588 | font-family: 'Font Awesome 5 Free';
589 | font-weight: 400; }
590 |
591 | .fa.fa-star-half-full:before {
592 | content: "\f089"; }
593 |
594 | .fa.fa-code-fork:before {
595 | content: "\f126"; }
596 |
597 | .fa.fa-chain-broken:before {
598 | content: "\f127"; }
599 |
600 | .fa.fa-shield:before {
601 | content: "\f3ed"; }
602 |
603 | .fa.fa-calendar-o {
604 | font-family: 'Font Awesome 5 Free';
605 | font-weight: 400; }
606 |
607 | .fa.fa-calendar-o:before {
608 | content: "\f133"; }
609 |
610 | .fa.fa-maxcdn {
611 | font-family: 'Font Awesome 5 Brands';
612 | font-weight: 400; }
613 |
614 | .fa.fa-html5 {
615 | font-family: 'Font Awesome 5 Brands';
616 | font-weight: 400; }
617 |
618 | .fa.fa-css3 {
619 | font-family: 'Font Awesome 5 Brands';
620 | font-weight: 400; }
621 |
622 | .fa.fa-ticket:before {
623 | content: "\f3ff"; }
624 |
625 | .fa.fa-minus-square-o {
626 | font-family: 'Font Awesome 5 Free';
627 | font-weight: 400; }
628 |
629 | .fa.fa-minus-square-o:before {
630 | content: "\f146"; }
631 |
632 | .fa.fa-level-up:before {
633 | content: "\f3bf"; }
634 |
635 | .fa.fa-level-down:before {
636 | content: "\f3be"; }
637 |
638 | .fa.fa-pencil-square:before {
639 | content: "\f14b"; }
640 |
641 | .fa.fa-external-link-square:before {
642 | content: "\f360"; }
643 |
644 | .fa.fa-compass {
645 | font-family: 'Font Awesome 5 Free';
646 | font-weight: 400; }
647 |
648 | .fa.fa-caret-square-o-down {
649 | font-family: 'Font Awesome 5 Free';
650 | font-weight: 400; }
651 |
652 | .fa.fa-caret-square-o-down:before {
653 | content: "\f150"; }
654 |
655 | .fa.fa-toggle-down {
656 | font-family: 'Font Awesome 5 Free';
657 | font-weight: 400; }
658 |
659 | .fa.fa-toggle-down:before {
660 | content: "\f150"; }
661 |
662 | .fa.fa-caret-square-o-up {
663 | font-family: 'Font Awesome 5 Free';
664 | font-weight: 400; }
665 |
666 | .fa.fa-caret-square-o-up:before {
667 | content: "\f151"; }
668 |
669 | .fa.fa-toggle-up {
670 | font-family: 'Font Awesome 5 Free';
671 | font-weight: 400; }
672 |
673 | .fa.fa-toggle-up:before {
674 | content: "\f151"; }
675 |
676 | .fa.fa-caret-square-o-right {
677 | font-family: 'Font Awesome 5 Free';
678 | font-weight: 400; }
679 |
680 | .fa.fa-caret-square-o-right:before {
681 | content: "\f152"; }
682 |
683 | .fa.fa-toggle-right {
684 | font-family: 'Font Awesome 5 Free';
685 | font-weight: 400; }
686 |
687 | .fa.fa-toggle-right:before {
688 | content: "\f152"; }
689 |
690 | .fa.fa-eur:before {
691 | content: "\f153"; }
692 |
693 | .fa.fa-euro:before {
694 | content: "\f153"; }
695 |
696 | .fa.fa-gbp:before {
697 | content: "\f154"; }
698 |
699 | .fa.fa-usd:before {
700 | content: "\f155"; }
701 |
702 | .fa.fa-dollar:before {
703 | content: "\f155"; }
704 |
705 | .fa.fa-inr:before {
706 | content: "\f156"; }
707 |
708 | .fa.fa-rupee:before {
709 | content: "\f156"; }
710 |
711 | .fa.fa-jpy:before {
712 | content: "\f157"; }
713 |
714 | .fa.fa-cny:before {
715 | content: "\f157"; }
716 |
717 | .fa.fa-rmb:before {
718 | content: "\f157"; }
719 |
720 | .fa.fa-yen:before {
721 | content: "\f157"; }
722 |
723 | .fa.fa-rub:before {
724 | content: "\f158"; }
725 |
726 | .fa.fa-ruble:before {
727 | content: "\f158"; }
728 |
729 | .fa.fa-rouble:before {
730 | content: "\f158"; }
731 |
732 | .fa.fa-krw:before {
733 | content: "\f159"; }
734 |
735 | .fa.fa-won:before {
736 | content: "\f159"; }
737 |
738 | .fa.fa-btc {
739 | font-family: 'Font Awesome 5 Brands';
740 | font-weight: 400; }
741 |
742 | .fa.fa-bitcoin {
743 | font-family: 'Font Awesome 5 Brands';
744 | font-weight: 400; }
745 |
746 | .fa.fa-bitcoin:before {
747 | content: "\f15a"; }
748 |
749 | .fa.fa-file-text:before {
750 | content: "\f15c"; }
751 |
752 | .fa.fa-sort-alpha-asc:before {
753 | content: "\f15d"; }
754 |
755 | .fa.fa-sort-alpha-desc:before {
756 | content: "\f881"; }
757 |
758 | .fa.fa-sort-amount-asc:before {
759 | content: "\f160"; }
760 |
761 | .fa.fa-sort-amount-desc:before {
762 | content: "\f884"; }
763 |
764 | .fa.fa-sort-numeric-asc:before {
765 | content: "\f162"; }
766 |
767 | .fa.fa-sort-numeric-desc:before {
768 | content: "\f886"; }
769 |
770 | .fa.fa-youtube-square {
771 | font-family: 'Font Awesome 5 Brands';
772 | font-weight: 400; }
773 |
774 | .fa.fa-youtube {
775 | font-family: 'Font Awesome 5 Brands';
776 | font-weight: 400; }
777 |
778 | .fa.fa-xing {
779 | font-family: 'Font Awesome 5 Brands';
780 | font-weight: 400; }
781 |
782 | .fa.fa-xing-square {
783 | font-family: 'Font Awesome 5 Brands';
784 | font-weight: 400; }
785 |
786 | .fa.fa-youtube-play {
787 | font-family: 'Font Awesome 5 Brands';
788 | font-weight: 400; }
789 |
790 | .fa.fa-youtube-play:before {
791 | content: "\f167"; }
792 |
793 | .fa.fa-dropbox {
794 | font-family: 'Font Awesome 5 Brands';
795 | font-weight: 400; }
796 |
797 | .fa.fa-stack-overflow {
798 | font-family: 'Font Awesome 5 Brands';
799 | font-weight: 400; }
800 |
801 | .fa.fa-instagram {
802 | font-family: 'Font Awesome 5 Brands';
803 | font-weight: 400; }
804 |
805 | .fa.fa-flickr {
806 | font-family: 'Font Awesome 5 Brands';
807 | font-weight: 400; }
808 |
809 | .fa.fa-adn {
810 | font-family: 'Font Awesome 5 Brands';
811 | font-weight: 400; }
812 |
813 | .fa.fa-bitbucket {
814 | font-family: 'Font Awesome 5 Brands';
815 | font-weight: 400; }
816 |
817 | .fa.fa-bitbucket-square {
818 | font-family: 'Font Awesome 5 Brands';
819 | font-weight: 400; }
820 |
821 | .fa.fa-bitbucket-square:before {
822 | content: "\f171"; }
823 |
824 | .fa.fa-tumblr {
825 | font-family: 'Font Awesome 5 Brands';
826 | font-weight: 400; }
827 |
828 | .fa.fa-tumblr-square {
829 | font-family: 'Font Awesome 5 Brands';
830 | font-weight: 400; }
831 |
832 | .fa.fa-long-arrow-down:before {
833 | content: "\f309"; }
834 |
835 | .fa.fa-long-arrow-up:before {
836 | content: "\f30c"; }
837 |
838 | .fa.fa-long-arrow-left:before {
839 | content: "\f30a"; }
840 |
841 | .fa.fa-long-arrow-right:before {
842 | content: "\f30b"; }
843 |
844 | .fa.fa-apple {
845 | font-family: 'Font Awesome 5 Brands';
846 | font-weight: 400; }
847 |
848 | .fa.fa-windows {
849 | font-family: 'Font Awesome 5 Brands';
850 | font-weight: 400; }
851 |
852 | .fa.fa-android {
853 | font-family: 'Font Awesome 5 Brands';
854 | font-weight: 400; }
855 |
856 | .fa.fa-linux {
857 | font-family: 'Font Awesome 5 Brands';
858 | font-weight: 400; }
859 |
860 | .fa.fa-dribbble {
861 | font-family: 'Font Awesome 5 Brands';
862 | font-weight: 400; }
863 |
864 | .fa.fa-skype {
865 | font-family: 'Font Awesome 5 Brands';
866 | font-weight: 400; }
867 |
868 | .fa.fa-foursquare {
869 | font-family: 'Font Awesome 5 Brands';
870 | font-weight: 400; }
871 |
872 | .fa.fa-trello {
873 | font-family: 'Font Awesome 5 Brands';
874 | font-weight: 400; }
875 |
876 | .fa.fa-gratipay {
877 | font-family: 'Font Awesome 5 Brands';
878 | font-weight: 400; }
879 |
880 | .fa.fa-gittip {
881 | font-family: 'Font Awesome 5 Brands';
882 | font-weight: 400; }
883 |
884 | .fa.fa-gittip:before {
885 | content: "\f184"; }
886 |
887 | .fa.fa-sun-o {
888 | font-family: 'Font Awesome 5 Free';
889 | font-weight: 400; }
890 |
891 | .fa.fa-sun-o:before {
892 | content: "\f185"; }
893 |
894 | .fa.fa-moon-o {
895 | font-family: 'Font Awesome 5 Free';
896 | font-weight: 400; }
897 |
898 | .fa.fa-moon-o:before {
899 | content: "\f186"; }
900 |
901 | .fa.fa-vk {
902 | font-family: 'Font Awesome 5 Brands';
903 | font-weight: 400; }
904 |
905 | .fa.fa-weibo {
906 | font-family: 'Font Awesome 5 Brands';
907 | font-weight: 400; }
908 |
909 | .fa.fa-renren {
910 | font-family: 'Font Awesome 5 Brands';
911 | font-weight: 400; }
912 |
913 | .fa.fa-pagelines {
914 | font-family: 'Font Awesome 5 Brands';
915 | font-weight: 400; }
916 |
917 | .fa.fa-stack-exchange {
918 | font-family: 'Font Awesome 5 Brands';
919 | font-weight: 400; }
920 |
921 | .fa.fa-arrow-circle-o-right {
922 | font-family: 'Font Awesome 5 Free';
923 | font-weight: 400; }
924 |
925 | .fa.fa-arrow-circle-o-right:before {
926 | content: "\f35a"; }
927 |
928 | .fa.fa-arrow-circle-o-left {
929 | font-family: 'Font Awesome 5 Free';
930 | font-weight: 400; }
931 |
932 | .fa.fa-arrow-circle-o-left:before {
933 | content: "\f359"; }
934 |
935 | .fa.fa-caret-square-o-left {
936 | font-family: 'Font Awesome 5 Free';
937 | font-weight: 400; }
938 |
939 | .fa.fa-caret-square-o-left:before {
940 | content: "\f191"; }
941 |
942 | .fa.fa-toggle-left {
943 | font-family: 'Font Awesome 5 Free';
944 | font-weight: 400; }
945 |
946 | .fa.fa-toggle-left:before {
947 | content: "\f191"; }
948 |
949 | .fa.fa-dot-circle-o {
950 | font-family: 'Font Awesome 5 Free';
951 | font-weight: 400; }
952 |
953 | .fa.fa-dot-circle-o:before {
954 | content: "\f192"; }
955 |
956 | .fa.fa-vimeo-square {
957 | font-family: 'Font Awesome 5 Brands';
958 | font-weight: 400; }
959 |
960 | .fa.fa-try:before {
961 | content: "\f195"; }
962 |
963 | .fa.fa-turkish-lira:before {
964 | content: "\f195"; }
965 |
966 | .fa.fa-plus-square-o {
967 | font-family: 'Font Awesome 5 Free';
968 | font-weight: 400; }
969 |
970 | .fa.fa-plus-square-o:before {
971 | content: "\f0fe"; }
972 |
973 | .fa.fa-slack {
974 | font-family: 'Font Awesome 5 Brands';
975 | font-weight: 400; }
976 |
977 | .fa.fa-wordpress {
978 | font-family: 'Font Awesome 5 Brands';
979 | font-weight: 400; }
980 |
981 | .fa.fa-openid {
982 | font-family: 'Font Awesome 5 Brands';
983 | font-weight: 400; }
984 |
985 | .fa.fa-institution:before {
986 | content: "\f19c"; }
987 |
988 | .fa.fa-bank:before {
989 | content: "\f19c"; }
990 |
991 | .fa.fa-mortar-board:before {
992 | content: "\f19d"; }
993 |
994 | .fa.fa-yahoo {
995 | font-family: 'Font Awesome 5 Brands';
996 | font-weight: 400; }
997 |
998 | .fa.fa-google {
999 | font-family: 'Font Awesome 5 Brands';
1000 | font-weight: 400; }
1001 |
1002 | .fa.fa-reddit {
1003 | font-family: 'Font Awesome 5 Brands';
1004 | font-weight: 400; }
1005 |
1006 | .fa.fa-reddit-square {
1007 | font-family: 'Font Awesome 5 Brands';
1008 | font-weight: 400; }
1009 |
1010 | .fa.fa-stumbleupon-circle {
1011 | font-family: 'Font Awesome 5 Brands';
1012 | font-weight: 400; }
1013 |
1014 | .fa.fa-stumbleupon {
1015 | font-family: 'Font Awesome 5 Brands';
1016 | font-weight: 400; }
1017 |
1018 | .fa.fa-delicious {
1019 | font-family: 'Font Awesome 5 Brands';
1020 | font-weight: 400; }
1021 |
1022 | .fa.fa-digg {
1023 | font-family: 'Font Awesome 5 Brands';
1024 | font-weight: 400; }
1025 |
1026 | .fa.fa-pied-piper-pp {
1027 | font-family: 'Font Awesome 5 Brands';
1028 | font-weight: 400; }
1029 |
1030 | .fa.fa-pied-piper-alt {
1031 | font-family: 'Font Awesome 5 Brands';
1032 | font-weight: 400; }
1033 |
1034 | .fa.fa-drupal {
1035 | font-family: 'Font Awesome 5 Brands';
1036 | font-weight: 400; }
1037 |
1038 | .fa.fa-joomla {
1039 | font-family: 'Font Awesome 5 Brands';
1040 | font-weight: 400; }
1041 |
1042 | .fa.fa-spoon:before {
1043 | content: "\f2e5"; }
1044 |
1045 | .fa.fa-behance {
1046 | font-family: 'Font Awesome 5 Brands';
1047 | font-weight: 400; }
1048 |
1049 | .fa.fa-behance-square {
1050 | font-family: 'Font Awesome 5 Brands';
1051 | font-weight: 400; }
1052 |
1053 | .fa.fa-steam {
1054 | font-family: 'Font Awesome 5 Brands';
1055 | font-weight: 400; }
1056 |
1057 | .fa.fa-steam-square {
1058 | font-family: 'Font Awesome 5 Brands';
1059 | font-weight: 400; }
1060 |
1061 | .fa.fa-automobile:before {
1062 | content: "\f1b9"; }
1063 |
1064 | .fa.fa-envelope-o {
1065 | font-family: 'Font Awesome 5 Free';
1066 | font-weight: 400; }
1067 |
1068 | .fa.fa-envelope-o:before {
1069 | content: "\f0e0"; }
1070 |
1071 | .fa.fa-spotify {
1072 | font-family: 'Font Awesome 5 Brands';
1073 | font-weight: 400; }
1074 |
1075 | .fa.fa-deviantart {
1076 | font-family: 'Font Awesome 5 Brands';
1077 | font-weight: 400; }
1078 |
1079 | .fa.fa-soundcloud {
1080 | font-family: 'Font Awesome 5 Brands';
1081 | font-weight: 400; }
1082 |
1083 | .fa.fa-file-pdf-o {
1084 | font-family: 'Font Awesome 5 Free';
1085 | font-weight: 400; }
1086 |
1087 | .fa.fa-file-pdf-o:before {
1088 | content: "\f1c1"; }
1089 |
1090 | .fa.fa-file-word-o {
1091 | font-family: 'Font Awesome 5 Free';
1092 | font-weight: 400; }
1093 |
1094 | .fa.fa-file-word-o:before {
1095 | content: "\f1c2"; }
1096 |
1097 | .fa.fa-file-excel-o {
1098 | font-family: 'Font Awesome 5 Free';
1099 | font-weight: 400; }
1100 |
1101 | .fa.fa-file-excel-o:before {
1102 | content: "\f1c3"; }
1103 |
1104 | .fa.fa-file-powerpoint-o {
1105 | font-family: 'Font Awesome 5 Free';
1106 | font-weight: 400; }
1107 |
1108 | .fa.fa-file-powerpoint-o:before {
1109 | content: "\f1c4"; }
1110 |
1111 | .fa.fa-file-image-o {
1112 | font-family: 'Font Awesome 5 Free';
1113 | font-weight: 400; }
1114 |
1115 | .fa.fa-file-image-o:before {
1116 | content: "\f1c5"; }
1117 |
1118 | .fa.fa-file-photo-o {
1119 | font-family: 'Font Awesome 5 Free';
1120 | font-weight: 400; }
1121 |
1122 | .fa.fa-file-photo-o:before {
1123 | content: "\f1c5"; }
1124 |
1125 | .fa.fa-file-picture-o {
1126 | font-family: 'Font Awesome 5 Free';
1127 | font-weight: 400; }
1128 |
1129 | .fa.fa-file-picture-o:before {
1130 | content: "\f1c5"; }
1131 |
1132 | .fa.fa-file-archive-o {
1133 | font-family: 'Font Awesome 5 Free';
1134 | font-weight: 400; }
1135 |
1136 | .fa.fa-file-archive-o:before {
1137 | content: "\f1c6"; }
1138 |
1139 | .fa.fa-file-zip-o {
1140 | font-family: 'Font Awesome 5 Free';
1141 | font-weight: 400; }
1142 |
1143 | .fa.fa-file-zip-o:before {
1144 | content: "\f1c6"; }
1145 |
1146 | .fa.fa-file-audio-o {
1147 | font-family: 'Font Awesome 5 Free';
1148 | font-weight: 400; }
1149 |
1150 | .fa.fa-file-audio-o:before {
1151 | content: "\f1c7"; }
1152 |
1153 | .fa.fa-file-sound-o {
1154 | font-family: 'Font Awesome 5 Free';
1155 | font-weight: 400; }
1156 |
1157 | .fa.fa-file-sound-o:before {
1158 | content: "\f1c7"; }
1159 |
1160 | .fa.fa-file-video-o {
1161 | font-family: 'Font Awesome 5 Free';
1162 | font-weight: 400; }
1163 |
1164 | .fa.fa-file-video-o:before {
1165 | content: "\f1c8"; }
1166 |
1167 | .fa.fa-file-movie-o {
1168 | font-family: 'Font Awesome 5 Free';
1169 | font-weight: 400; }
1170 |
1171 | .fa.fa-file-movie-o:before {
1172 | content: "\f1c8"; }
1173 |
1174 | .fa.fa-file-code-o {
1175 | font-family: 'Font Awesome 5 Free';
1176 | font-weight: 400; }
1177 |
1178 | .fa.fa-file-code-o:before {
1179 | content: "\f1c9"; }
1180 |
1181 | .fa.fa-vine {
1182 | font-family: 'Font Awesome 5 Brands';
1183 | font-weight: 400; }
1184 |
1185 | .fa.fa-codepen {
1186 | font-family: 'Font Awesome 5 Brands';
1187 | font-weight: 400; }
1188 |
1189 | .fa.fa-jsfiddle {
1190 | font-family: 'Font Awesome 5 Brands';
1191 | font-weight: 400; }
1192 |
1193 | .fa.fa-life-ring {
1194 | font-family: 'Font Awesome 5 Free';
1195 | font-weight: 400; }
1196 |
1197 | .fa.fa-life-bouy {
1198 | font-family: 'Font Awesome 5 Free';
1199 | font-weight: 400; }
1200 |
1201 | .fa.fa-life-bouy:before {
1202 | content: "\f1cd"; }
1203 |
1204 | .fa.fa-life-buoy {
1205 | font-family: 'Font Awesome 5 Free';
1206 | font-weight: 400; }
1207 |
1208 | .fa.fa-life-buoy:before {
1209 | content: "\f1cd"; }
1210 |
1211 | .fa.fa-life-saver {
1212 | font-family: 'Font Awesome 5 Free';
1213 | font-weight: 400; }
1214 |
1215 | .fa.fa-life-saver:before {
1216 | content: "\f1cd"; }
1217 |
1218 | .fa.fa-support {
1219 | font-family: 'Font Awesome 5 Free';
1220 | font-weight: 400; }
1221 |
1222 | .fa.fa-support:before {
1223 | content: "\f1cd"; }
1224 |
1225 | .fa.fa-circle-o-notch:before {
1226 | content: "\f1ce"; }
1227 |
1228 | .fa.fa-rebel {
1229 | font-family: 'Font Awesome 5 Brands';
1230 | font-weight: 400; }
1231 |
1232 | .fa.fa-ra {
1233 | font-family: 'Font Awesome 5 Brands';
1234 | font-weight: 400; }
1235 |
1236 | .fa.fa-ra:before {
1237 | content: "\f1d0"; }
1238 |
1239 | .fa.fa-resistance {
1240 | font-family: 'Font Awesome 5 Brands';
1241 | font-weight: 400; }
1242 |
1243 | .fa.fa-resistance:before {
1244 | content: "\f1d0"; }
1245 |
1246 | .fa.fa-empire {
1247 | font-family: 'Font Awesome 5 Brands';
1248 | font-weight: 400; }
1249 |
1250 | .fa.fa-ge {
1251 | font-family: 'Font Awesome 5 Brands';
1252 | font-weight: 400; }
1253 |
1254 | .fa.fa-ge:before {
1255 | content: "\f1d1"; }
1256 |
1257 | .fa.fa-git-square {
1258 | font-family: 'Font Awesome 5 Brands';
1259 | font-weight: 400; }
1260 |
1261 | .fa.fa-git {
1262 | font-family: 'Font Awesome 5 Brands';
1263 | font-weight: 400; }
1264 |
1265 | .fa.fa-hacker-news {
1266 | font-family: 'Font Awesome 5 Brands';
1267 | font-weight: 400; }
1268 |
1269 | .fa.fa-y-combinator-square {
1270 | font-family: 'Font Awesome 5 Brands';
1271 | font-weight: 400; }
1272 |
1273 | .fa.fa-y-combinator-square:before {
1274 | content: "\f1d4"; }
1275 |
1276 | .fa.fa-yc-square {
1277 | font-family: 'Font Awesome 5 Brands';
1278 | font-weight: 400; }
1279 |
1280 | .fa.fa-yc-square:before {
1281 | content: "\f1d4"; }
1282 |
1283 | .fa.fa-tencent-weibo {
1284 | font-family: 'Font Awesome 5 Brands';
1285 | font-weight: 400; }
1286 |
1287 | .fa.fa-qq {
1288 | font-family: 'Font Awesome 5 Brands';
1289 | font-weight: 400; }
1290 |
1291 | .fa.fa-weixin {
1292 | font-family: 'Font Awesome 5 Brands';
1293 | font-weight: 400; }
1294 |
1295 | .fa.fa-wechat {
1296 | font-family: 'Font Awesome 5 Brands';
1297 | font-weight: 400; }
1298 |
1299 | .fa.fa-wechat:before {
1300 | content: "\f1d7"; }
1301 |
1302 | .fa.fa-send:before {
1303 | content: "\f1d8"; }
1304 |
1305 | .fa.fa-paper-plane-o {
1306 | font-family: 'Font Awesome 5 Free';
1307 | font-weight: 400; }
1308 |
1309 | .fa.fa-paper-plane-o:before {
1310 | content: "\f1d8"; }
1311 |
1312 | .fa.fa-send-o {
1313 | font-family: 'Font Awesome 5 Free';
1314 | font-weight: 400; }
1315 |
1316 | .fa.fa-send-o:before {
1317 | content: "\f1d8"; }
1318 |
1319 | .fa.fa-circle-thin {
1320 | font-family: 'Font Awesome 5 Free';
1321 | font-weight: 400; }
1322 |
1323 | .fa.fa-circle-thin:before {
1324 | content: "\f111"; }
1325 |
1326 | .fa.fa-header:before {
1327 | content: "\f1dc"; }
1328 |
1329 | .fa.fa-sliders:before {
1330 | content: "\f1de"; }
1331 |
1332 | .fa.fa-futbol-o {
1333 | font-family: 'Font Awesome 5 Free';
1334 | font-weight: 400; }
1335 |
1336 | .fa.fa-futbol-o:before {
1337 | content: "\f1e3"; }
1338 |
1339 | .fa.fa-soccer-ball-o {
1340 | font-family: 'Font Awesome 5 Free';
1341 | font-weight: 400; }
1342 |
1343 | .fa.fa-soccer-ball-o:before {
1344 | content: "\f1e3"; }
1345 |
1346 | .fa.fa-slideshare {
1347 | font-family: 'Font Awesome 5 Brands';
1348 | font-weight: 400; }
1349 |
1350 | .fa.fa-twitch {
1351 | font-family: 'Font Awesome 5 Brands';
1352 | font-weight: 400; }
1353 |
1354 | .fa.fa-yelp {
1355 | font-family: 'Font Awesome 5 Brands';
1356 | font-weight: 400; }
1357 |
1358 | .fa.fa-newspaper-o {
1359 | font-family: 'Font Awesome 5 Free';
1360 | font-weight: 400; }
1361 |
1362 | .fa.fa-newspaper-o:before {
1363 | content: "\f1ea"; }
1364 |
1365 | .fa.fa-paypal {
1366 | font-family: 'Font Awesome 5 Brands';
1367 | font-weight: 400; }
1368 |
1369 | .fa.fa-google-wallet {
1370 | font-family: 'Font Awesome 5 Brands';
1371 | font-weight: 400; }
1372 |
1373 | .fa.fa-cc-visa {
1374 | font-family: 'Font Awesome 5 Brands';
1375 | font-weight: 400; }
1376 |
1377 | .fa.fa-cc-mastercard {
1378 | font-family: 'Font Awesome 5 Brands';
1379 | font-weight: 400; }
1380 |
1381 | .fa.fa-cc-discover {
1382 | font-family: 'Font Awesome 5 Brands';
1383 | font-weight: 400; }
1384 |
1385 | .fa.fa-cc-amex {
1386 | font-family: 'Font Awesome 5 Brands';
1387 | font-weight: 400; }
1388 |
1389 | .fa.fa-cc-paypal {
1390 | font-family: 'Font Awesome 5 Brands';
1391 | font-weight: 400; }
1392 |
1393 | .fa.fa-cc-stripe {
1394 | font-family: 'Font Awesome 5 Brands';
1395 | font-weight: 400; }
1396 |
1397 | .fa.fa-bell-slash-o {
1398 | font-family: 'Font Awesome 5 Free';
1399 | font-weight: 400; }
1400 |
1401 | .fa.fa-bell-slash-o:before {
1402 | content: "\f1f6"; }
1403 |
1404 | .fa.fa-trash:before {
1405 | content: "\f2ed"; }
1406 |
1407 | .fa.fa-copyright {
1408 | font-family: 'Font Awesome 5 Free';
1409 | font-weight: 400; }
1410 |
1411 | .fa.fa-eyedropper:before {
1412 | content: "\f1fb"; }
1413 |
1414 | .fa.fa-area-chart:before {
1415 | content: "\f1fe"; }
1416 |
1417 | .fa.fa-pie-chart:before {
1418 | content: "\f200"; }
1419 |
1420 | .fa.fa-line-chart:before {
1421 | content: "\f201"; }
1422 |
1423 | .fa.fa-lastfm {
1424 | font-family: 'Font Awesome 5 Brands';
1425 | font-weight: 400; }
1426 |
1427 | .fa.fa-lastfm-square {
1428 | font-family: 'Font Awesome 5 Brands';
1429 | font-weight: 400; }
1430 |
1431 | .fa.fa-ioxhost {
1432 | font-family: 'Font Awesome 5 Brands';
1433 | font-weight: 400; }
1434 |
1435 | .fa.fa-angellist {
1436 | font-family: 'Font Awesome 5 Brands';
1437 | font-weight: 400; }
1438 |
1439 | .fa.fa-cc {
1440 | font-family: 'Font Awesome 5 Free';
1441 | font-weight: 400; }
1442 |
1443 | .fa.fa-cc:before {
1444 | content: "\f20a"; }
1445 |
1446 | .fa.fa-ils:before {
1447 | content: "\f20b"; }
1448 |
1449 | .fa.fa-shekel:before {
1450 | content: "\f20b"; }
1451 |
1452 | .fa.fa-sheqel:before {
1453 | content: "\f20b"; }
1454 |
1455 | .fa.fa-meanpath {
1456 | font-family: 'Font Awesome 5 Brands';
1457 | font-weight: 400; }
1458 |
1459 | .fa.fa-meanpath:before {
1460 | content: "\f2b4"; }
1461 |
1462 | .fa.fa-buysellads {
1463 | font-family: 'Font Awesome 5 Brands';
1464 | font-weight: 400; }
1465 |
1466 | .fa.fa-connectdevelop {
1467 | font-family: 'Font Awesome 5 Brands';
1468 | font-weight: 400; }
1469 |
1470 | .fa.fa-dashcube {
1471 | font-family: 'Font Awesome 5 Brands';
1472 | font-weight: 400; }
1473 |
1474 | .fa.fa-forumbee {
1475 | font-family: 'Font Awesome 5 Brands';
1476 | font-weight: 400; }
1477 |
1478 | .fa.fa-leanpub {
1479 | font-family: 'Font Awesome 5 Brands';
1480 | font-weight: 400; }
1481 |
1482 | .fa.fa-sellsy {
1483 | font-family: 'Font Awesome 5 Brands';
1484 | font-weight: 400; }
1485 |
1486 | .fa.fa-shirtsinbulk {
1487 | font-family: 'Font Awesome 5 Brands';
1488 | font-weight: 400; }
1489 |
1490 | .fa.fa-simplybuilt {
1491 | font-family: 'Font Awesome 5 Brands';
1492 | font-weight: 400; }
1493 |
1494 | .fa.fa-skyatlas {
1495 | font-family: 'Font Awesome 5 Brands';
1496 | font-weight: 400; }
1497 |
1498 | .fa.fa-diamond {
1499 | font-family: 'Font Awesome 5 Free';
1500 | font-weight: 400; }
1501 |
1502 | .fa.fa-diamond:before {
1503 | content: "\f3a5"; }
1504 |
1505 | .fa.fa-intersex:before {
1506 | content: "\f224"; }
1507 |
1508 | .fa.fa-facebook-official {
1509 | font-family: 'Font Awesome 5 Brands';
1510 | font-weight: 400; }
1511 |
1512 | .fa.fa-facebook-official:before {
1513 | content: "\f09a"; }
1514 |
1515 | .fa.fa-pinterest-p {
1516 | font-family: 'Font Awesome 5 Brands';
1517 | font-weight: 400; }
1518 |
1519 | .fa.fa-whatsapp {
1520 | font-family: 'Font Awesome 5 Brands';
1521 | font-weight: 400; }
1522 |
1523 | .fa.fa-hotel:before {
1524 | content: "\f236"; }
1525 |
1526 | .fa.fa-viacoin {
1527 | font-family: 'Font Awesome 5 Brands';
1528 | font-weight: 400; }
1529 |
1530 | .fa.fa-medium {
1531 | font-family: 'Font Awesome 5 Brands';
1532 | font-weight: 400; }
1533 |
1534 | .fa.fa-y-combinator {
1535 | font-family: 'Font Awesome 5 Brands';
1536 | font-weight: 400; }
1537 |
1538 | .fa.fa-yc {
1539 | font-family: 'Font Awesome 5 Brands';
1540 | font-weight: 400; }
1541 |
1542 | .fa.fa-yc:before {
1543 | content: "\f23b"; }
1544 |
1545 | .fa.fa-optin-monster {
1546 | font-family: 'Font Awesome 5 Brands';
1547 | font-weight: 400; }
1548 |
1549 | .fa.fa-opencart {
1550 | font-family: 'Font Awesome 5 Brands';
1551 | font-weight: 400; }
1552 |
1553 | .fa.fa-expeditedssl {
1554 | font-family: 'Font Awesome 5 Brands';
1555 | font-weight: 400; }
1556 |
1557 | .fa.fa-battery-4:before {
1558 | content: "\f240"; }
1559 |
1560 | .fa.fa-battery:before {
1561 | content: "\f240"; }
1562 |
1563 | .fa.fa-battery-3:before {
1564 | content: "\f241"; }
1565 |
1566 | .fa.fa-battery-2:before {
1567 | content: "\f242"; }
1568 |
1569 | .fa.fa-battery-1:before {
1570 | content: "\f243"; }
1571 |
1572 | .fa.fa-battery-0:before {
1573 | content: "\f244"; }
1574 |
1575 | .fa.fa-object-group {
1576 | font-family: 'Font Awesome 5 Free';
1577 | font-weight: 400; }
1578 |
1579 | .fa.fa-object-ungroup {
1580 | font-family: 'Font Awesome 5 Free';
1581 | font-weight: 400; }
1582 |
1583 | .fa.fa-sticky-note-o {
1584 | font-family: 'Font Awesome 5 Free';
1585 | font-weight: 400; }
1586 |
1587 | .fa.fa-sticky-note-o:before {
1588 | content: "\f249"; }
1589 |
1590 | .fa.fa-cc-jcb {
1591 | font-family: 'Font Awesome 5 Brands';
1592 | font-weight: 400; }
1593 |
1594 | .fa.fa-cc-diners-club {
1595 | font-family: 'Font Awesome 5 Brands';
1596 | font-weight: 400; }
1597 |
1598 | .fa.fa-clone {
1599 | font-family: 'Font Awesome 5 Free';
1600 | font-weight: 400; }
1601 |
1602 | .fa.fa-hourglass-o {
1603 | font-family: 'Font Awesome 5 Free';
1604 | font-weight: 400; }
1605 |
1606 | .fa.fa-hourglass-o:before {
1607 | content: "\f254"; }
1608 |
1609 | .fa.fa-hourglass-1:before {
1610 | content: "\f251"; }
1611 |
1612 | .fa.fa-hourglass-2:before {
1613 | content: "\f252"; }
1614 |
1615 | .fa.fa-hourglass-3:before {
1616 | content: "\f253"; }
1617 |
1618 | .fa.fa-hand-rock-o {
1619 | font-family: 'Font Awesome 5 Free';
1620 | font-weight: 400; }
1621 |
1622 | .fa.fa-hand-rock-o:before {
1623 | content: "\f255"; }
1624 |
1625 | .fa.fa-hand-grab-o {
1626 | font-family: 'Font Awesome 5 Free';
1627 | font-weight: 400; }
1628 |
1629 | .fa.fa-hand-grab-o:before {
1630 | content: "\f255"; }
1631 |
1632 | .fa.fa-hand-paper-o {
1633 | font-family: 'Font Awesome 5 Free';
1634 | font-weight: 400; }
1635 |
1636 | .fa.fa-hand-paper-o:before {
1637 | content: "\f256"; }
1638 |
1639 | .fa.fa-hand-stop-o {
1640 | font-family: 'Font Awesome 5 Free';
1641 | font-weight: 400; }
1642 |
1643 | .fa.fa-hand-stop-o:before {
1644 | content: "\f256"; }
1645 |
1646 | .fa.fa-hand-scissors-o {
1647 | font-family: 'Font Awesome 5 Free';
1648 | font-weight: 400; }
1649 |
1650 | .fa.fa-hand-scissors-o:before {
1651 | content: "\f257"; }
1652 |
1653 | .fa.fa-hand-lizard-o {
1654 | font-family: 'Font Awesome 5 Free';
1655 | font-weight: 400; }
1656 |
1657 | .fa.fa-hand-lizard-o:before {
1658 | content: "\f258"; }
1659 |
1660 | .fa.fa-hand-spock-o {
1661 | font-family: 'Font Awesome 5 Free';
1662 | font-weight: 400; }
1663 |
1664 | .fa.fa-hand-spock-o:before {
1665 | content: "\f259"; }
1666 |
1667 | .fa.fa-hand-pointer-o {
1668 | font-family: 'Font Awesome 5 Free';
1669 | font-weight: 400; }
1670 |
1671 | .fa.fa-hand-pointer-o:before {
1672 | content: "\f25a"; }
1673 |
1674 | .fa.fa-hand-peace-o {
1675 | font-family: 'Font Awesome 5 Free';
1676 | font-weight: 400; }
1677 |
1678 | .fa.fa-hand-peace-o:before {
1679 | content: "\f25b"; }
1680 |
1681 | .fa.fa-registered {
1682 | font-family: 'Font Awesome 5 Free';
1683 | font-weight: 400; }
1684 |
1685 | .fa.fa-creative-commons {
1686 | font-family: 'Font Awesome 5 Brands';
1687 | font-weight: 400; }
1688 |
1689 | .fa.fa-gg {
1690 | font-family: 'Font Awesome 5 Brands';
1691 | font-weight: 400; }
1692 |
1693 | .fa.fa-gg-circle {
1694 | font-family: 'Font Awesome 5 Brands';
1695 | font-weight: 400; }
1696 |
1697 | .fa.fa-tripadvisor {
1698 | font-family: 'Font Awesome 5 Brands';
1699 | font-weight: 400; }
1700 |
1701 | .fa.fa-odnoklassniki {
1702 | font-family: 'Font Awesome 5 Brands';
1703 | font-weight: 400; }
1704 |
1705 | .fa.fa-odnoklassniki-square {
1706 | font-family: 'Font Awesome 5 Brands';
1707 | font-weight: 400; }
1708 |
1709 | .fa.fa-get-pocket {
1710 | font-family: 'Font Awesome 5 Brands';
1711 | font-weight: 400; }
1712 |
1713 | .fa.fa-wikipedia-w {
1714 | font-family: 'Font Awesome 5 Brands';
1715 | font-weight: 400; }
1716 |
1717 | .fa.fa-safari {
1718 | font-family: 'Font Awesome 5 Brands';
1719 | font-weight: 400; }
1720 |
1721 | .fa.fa-chrome {
1722 | font-family: 'Font Awesome 5 Brands';
1723 | font-weight: 400; }
1724 |
1725 | .fa.fa-firefox {
1726 | font-family: 'Font Awesome 5 Brands';
1727 | font-weight: 400; }
1728 |
1729 | .fa.fa-opera {
1730 | font-family: 'Font Awesome 5 Brands';
1731 | font-weight: 400; }
1732 |
1733 | .fa.fa-internet-explorer {
1734 | font-family: 'Font Awesome 5 Brands';
1735 | font-weight: 400; }
1736 |
1737 | .fa.fa-television:before {
1738 | content: "\f26c"; }
1739 |
1740 | .fa.fa-contao {
1741 | font-family: 'Font Awesome 5 Brands';
1742 | font-weight: 400; }
1743 |
1744 | .fa.fa-500px {
1745 | font-family: 'Font Awesome 5 Brands';
1746 | font-weight: 400; }
1747 |
1748 | .fa.fa-amazon {
1749 | font-family: 'Font Awesome 5 Brands';
1750 | font-weight: 400; }
1751 |
1752 | .fa.fa-calendar-plus-o {
1753 | font-family: 'Font Awesome 5 Free';
1754 | font-weight: 400; }
1755 |
1756 | .fa.fa-calendar-plus-o:before {
1757 | content: "\f271"; }
1758 |
1759 | .fa.fa-calendar-minus-o {
1760 | font-family: 'Font Awesome 5 Free';
1761 | font-weight: 400; }
1762 |
1763 | .fa.fa-calendar-minus-o:before {
1764 | content: "\f272"; }
1765 |
1766 | .fa.fa-calendar-times-o {
1767 | font-family: 'Font Awesome 5 Free';
1768 | font-weight: 400; }
1769 |
1770 | .fa.fa-calendar-times-o:before {
1771 | content: "\f273"; }
1772 |
1773 | .fa.fa-calendar-check-o {
1774 | font-family: 'Font Awesome 5 Free';
1775 | font-weight: 400; }
1776 |
1777 | .fa.fa-calendar-check-o:before {
1778 | content: "\f274"; }
1779 |
1780 | .fa.fa-map-o {
1781 | font-family: 'Font Awesome 5 Free';
1782 | font-weight: 400; }
1783 |
1784 | .fa.fa-map-o:before {
1785 | content: "\f279"; }
1786 |
1787 | .fa.fa-commenting:before {
1788 | content: "\f4ad"; }
1789 |
1790 | .fa.fa-commenting-o {
1791 | font-family: 'Font Awesome 5 Free';
1792 | font-weight: 400; }
1793 |
1794 | .fa.fa-commenting-o:before {
1795 | content: "\f4ad"; }
1796 |
1797 | .fa.fa-houzz {
1798 | font-family: 'Font Awesome 5 Brands';
1799 | font-weight: 400; }
1800 |
1801 | .fa.fa-vimeo {
1802 | font-family: 'Font Awesome 5 Brands';
1803 | font-weight: 400; }
1804 |
1805 | .fa.fa-vimeo:before {
1806 | content: "\f27d"; }
1807 |
1808 | .fa.fa-black-tie {
1809 | font-family: 'Font Awesome 5 Brands';
1810 | font-weight: 400; }
1811 |
1812 | .fa.fa-fonticons {
1813 | font-family: 'Font Awesome 5 Brands';
1814 | font-weight: 400; }
1815 |
1816 | .fa.fa-reddit-alien {
1817 | font-family: 'Font Awesome 5 Brands';
1818 | font-weight: 400; }
1819 |
1820 | .fa.fa-edge {
1821 | font-family: 'Font Awesome 5 Brands';
1822 | font-weight: 400; }
1823 |
1824 | .fa.fa-credit-card-alt:before {
1825 | content: "\f09d"; }
1826 |
1827 | .fa.fa-codiepie {
1828 | font-family: 'Font Awesome 5 Brands';
1829 | font-weight: 400; }
1830 |
1831 | .fa.fa-modx {
1832 | font-family: 'Font Awesome 5 Brands';
1833 | font-weight: 400; }
1834 |
1835 | .fa.fa-fort-awesome {
1836 | font-family: 'Font Awesome 5 Brands';
1837 | font-weight: 400; }
1838 |
1839 | .fa.fa-usb {
1840 | font-family: 'Font Awesome 5 Brands';
1841 | font-weight: 400; }
1842 |
1843 | .fa.fa-product-hunt {
1844 | font-family: 'Font Awesome 5 Brands';
1845 | font-weight: 400; }
1846 |
1847 | .fa.fa-mixcloud {
1848 | font-family: 'Font Awesome 5 Brands';
1849 | font-weight: 400; }
1850 |
1851 | .fa.fa-scribd {
1852 | font-family: 'Font Awesome 5 Brands';
1853 | font-weight: 400; }
1854 |
1855 | .fa.fa-pause-circle-o {
1856 | font-family: 'Font Awesome 5 Free';
1857 | font-weight: 400; }
1858 |
1859 | .fa.fa-pause-circle-o:before {
1860 | content: "\f28b"; }
1861 |
1862 | .fa.fa-stop-circle-o {
1863 | font-family: 'Font Awesome 5 Free';
1864 | font-weight: 400; }
1865 |
1866 | .fa.fa-stop-circle-o:before {
1867 | content: "\f28d"; }
1868 |
1869 | .fa.fa-bluetooth {
1870 | font-family: 'Font Awesome 5 Brands';
1871 | font-weight: 400; }
1872 |
1873 | .fa.fa-bluetooth-b {
1874 | font-family: 'Font Awesome 5 Brands';
1875 | font-weight: 400; }
1876 |
1877 | .fa.fa-gitlab {
1878 | font-family: 'Font Awesome 5 Brands';
1879 | font-weight: 400; }
1880 |
1881 | .fa.fa-wpbeginner {
1882 | font-family: 'Font Awesome 5 Brands';
1883 | font-weight: 400; }
1884 |
1885 | .fa.fa-wpforms {
1886 | font-family: 'Font Awesome 5 Brands';
1887 | font-weight: 400; }
1888 |
1889 | .fa.fa-envira {
1890 | font-family: 'Font Awesome 5 Brands';
1891 | font-weight: 400; }
1892 |
1893 | .fa.fa-wheelchair-alt {
1894 | font-family: 'Font Awesome 5 Brands';
1895 | font-weight: 400; }
1896 |
1897 | .fa.fa-wheelchair-alt:before {
1898 | content: "\f368"; }
1899 |
1900 | .fa.fa-question-circle-o {
1901 | font-family: 'Font Awesome 5 Free';
1902 | font-weight: 400; }
1903 |
1904 | .fa.fa-question-circle-o:before {
1905 | content: "\f059"; }
1906 |
1907 | .fa.fa-volume-control-phone:before {
1908 | content: "\f2a0"; }
1909 |
1910 | .fa.fa-asl-interpreting:before {
1911 | content: "\f2a3"; }
1912 |
1913 | .fa.fa-deafness:before {
1914 | content: "\f2a4"; }
1915 |
1916 | .fa.fa-hard-of-hearing:before {
1917 | content: "\f2a4"; }
1918 |
1919 | .fa.fa-glide {
1920 | font-family: 'Font Awesome 5 Brands';
1921 | font-weight: 400; }
1922 |
1923 | .fa.fa-glide-g {
1924 | font-family: 'Font Awesome 5 Brands';
1925 | font-weight: 400; }
1926 |
1927 | .fa.fa-signing:before {
1928 | content: "\f2a7"; }
1929 |
1930 | .fa.fa-viadeo {
1931 | font-family: 'Font Awesome 5 Brands';
1932 | font-weight: 400; }
1933 |
1934 | .fa.fa-viadeo-square {
1935 | font-family: 'Font Awesome 5 Brands';
1936 | font-weight: 400; }
1937 |
1938 | .fa.fa-snapchat {
1939 | font-family: 'Font Awesome 5 Brands';
1940 | font-weight: 400; }
1941 |
1942 | .fa.fa-snapchat-ghost {
1943 | font-family: 'Font Awesome 5 Brands';
1944 | font-weight: 400; }
1945 |
1946 | .fa.fa-snapchat-square {
1947 | font-family: 'Font Awesome 5 Brands';
1948 | font-weight: 400; }
1949 |
1950 | .fa.fa-pied-piper {
1951 | font-family: 'Font Awesome 5 Brands';
1952 | font-weight: 400; }
1953 |
1954 | .fa.fa-first-order {
1955 | font-family: 'Font Awesome 5 Brands';
1956 | font-weight: 400; }
1957 |
1958 | .fa.fa-yoast {
1959 | font-family: 'Font Awesome 5 Brands';
1960 | font-weight: 400; }
1961 |
1962 | .fa.fa-themeisle {
1963 | font-family: 'Font Awesome 5 Brands';
1964 | font-weight: 400; }
1965 |
1966 | .fa.fa-google-plus-official {
1967 | font-family: 'Font Awesome 5 Brands';
1968 | font-weight: 400; }
1969 |
1970 | .fa.fa-google-plus-official:before {
1971 | content: "\f2b3"; }
1972 |
1973 | .fa.fa-google-plus-circle {
1974 | font-family: 'Font Awesome 5 Brands';
1975 | font-weight: 400; }
1976 |
1977 | .fa.fa-google-plus-circle:before {
1978 | content: "\f2b3"; }
1979 |
1980 | .fa.fa-font-awesome {
1981 | font-family: 'Font Awesome 5 Brands';
1982 | font-weight: 400; }
1983 |
1984 | .fa.fa-fa {
1985 | font-family: 'Font Awesome 5 Brands';
1986 | font-weight: 400; }
1987 |
1988 | .fa.fa-fa:before {
1989 | content: "\f2b4"; }
1990 |
1991 | .fa.fa-handshake-o {
1992 | font-family: 'Font Awesome 5 Free';
1993 | font-weight: 400; }
1994 |
1995 | .fa.fa-handshake-o:before {
1996 | content: "\f2b5"; }
1997 |
1998 | .fa.fa-envelope-open-o {
1999 | font-family: 'Font Awesome 5 Free';
2000 | font-weight: 400; }
2001 |
2002 | .fa.fa-envelope-open-o:before {
2003 | content: "\f2b6"; }
2004 |
2005 | .fa.fa-linode {
2006 | font-family: 'Font Awesome 5 Brands';
2007 | font-weight: 400; }
2008 |
2009 | .fa.fa-address-book-o {
2010 | font-family: 'Font Awesome 5 Free';
2011 | font-weight: 400; }
2012 |
2013 | .fa.fa-address-book-o:before {
2014 | content: "\f2b9"; }
2015 |
2016 | .fa.fa-vcard:before {
2017 | content: "\f2bb"; }
2018 |
2019 | .fa.fa-address-card-o {
2020 | font-family: 'Font Awesome 5 Free';
2021 | font-weight: 400; }
2022 |
2023 | .fa.fa-address-card-o:before {
2024 | content: "\f2bb"; }
2025 |
2026 | .fa.fa-vcard-o {
2027 | font-family: 'Font Awesome 5 Free';
2028 | font-weight: 400; }
2029 |
2030 | .fa.fa-vcard-o:before {
2031 | content: "\f2bb"; }
2032 |
2033 | .fa.fa-user-circle-o {
2034 | font-family: 'Font Awesome 5 Free';
2035 | font-weight: 400; }
2036 |
2037 | .fa.fa-user-circle-o:before {
2038 | content: "\f2bd"; }
2039 |
2040 | .fa.fa-user-o {
2041 | font-family: 'Font Awesome 5 Free';
2042 | font-weight: 400; }
2043 |
2044 | .fa.fa-user-o:before {
2045 | content: "\f007"; }
2046 |
2047 | .fa.fa-id-badge {
2048 | font-family: 'Font Awesome 5 Free';
2049 | font-weight: 400; }
2050 |
2051 | .fa.fa-drivers-license:before {
2052 | content: "\f2c2"; }
2053 |
2054 | .fa.fa-id-card-o {
2055 | font-family: 'Font Awesome 5 Free';
2056 | font-weight: 400; }
2057 |
2058 | .fa.fa-id-card-o:before {
2059 | content: "\f2c2"; }
2060 |
2061 | .fa.fa-drivers-license-o {
2062 | font-family: 'Font Awesome 5 Free';
2063 | font-weight: 400; }
2064 |
2065 | .fa.fa-drivers-license-o:before {
2066 | content: "\f2c2"; }
2067 |
2068 | .fa.fa-quora {
2069 | font-family: 'Font Awesome 5 Brands';
2070 | font-weight: 400; }
2071 |
2072 | .fa.fa-free-code-camp {
2073 | font-family: 'Font Awesome 5 Brands';
2074 | font-weight: 400; }
2075 |
2076 | .fa.fa-telegram {
2077 | font-family: 'Font Awesome 5 Brands';
2078 | font-weight: 400; }
2079 |
2080 | .fa.fa-thermometer-4:before {
2081 | content: "\f2c7"; }
2082 |
2083 | .fa.fa-thermometer:before {
2084 | content: "\f2c7"; }
2085 |
2086 | .fa.fa-thermometer-3:before {
2087 | content: "\f2c8"; }
2088 |
2089 | .fa.fa-thermometer-2:before {
2090 | content: "\f2c9"; }
2091 |
2092 | .fa.fa-thermometer-1:before {
2093 | content: "\f2ca"; }
2094 |
2095 | .fa.fa-thermometer-0:before {
2096 | content: "\f2cb"; }
2097 |
2098 | .fa.fa-bathtub:before {
2099 | content: "\f2cd"; }
2100 |
2101 | .fa.fa-s15:before {
2102 | content: "\f2cd"; }
2103 |
2104 | .fa.fa-window-maximize {
2105 | font-family: 'Font Awesome 5 Free';
2106 | font-weight: 400; }
2107 |
2108 | .fa.fa-window-restore {
2109 | font-family: 'Font Awesome 5 Free';
2110 | font-weight: 400; }
2111 |
2112 | .fa.fa-times-rectangle:before {
2113 | content: "\f410"; }
2114 |
2115 | .fa.fa-window-close-o {
2116 | font-family: 'Font Awesome 5 Free';
2117 | font-weight: 400; }
2118 |
2119 | .fa.fa-window-close-o:before {
2120 | content: "\f410"; }
2121 |
2122 | .fa.fa-times-rectangle-o {
2123 | font-family: 'Font Awesome 5 Free';
2124 | font-weight: 400; }
2125 |
2126 | .fa.fa-times-rectangle-o:before {
2127 | content: "\f410"; }
2128 |
2129 | .fa.fa-bandcamp {
2130 | font-family: 'Font Awesome 5 Brands';
2131 | font-weight: 400; }
2132 |
2133 | .fa.fa-grav {
2134 | font-family: 'Font Awesome 5 Brands';
2135 | font-weight: 400; }
2136 |
2137 | .fa.fa-etsy {
2138 | font-family: 'Font Awesome 5 Brands';
2139 | font-weight: 400; }
2140 |
2141 | .fa.fa-imdb {
2142 | font-family: 'Font Awesome 5 Brands';
2143 | font-weight: 400; }
2144 |
2145 | .fa.fa-ravelry {
2146 | font-family: 'Font Awesome 5 Brands';
2147 | font-weight: 400; }
2148 |
2149 | .fa.fa-eercast {
2150 | font-family: 'Font Awesome 5 Brands';
2151 | font-weight: 400; }
2152 |
2153 | .fa.fa-eercast:before {
2154 | content: "\f2da"; }
2155 |
2156 | .fa.fa-snowflake-o {
2157 | font-family: 'Font Awesome 5 Free';
2158 | font-weight: 400; }
2159 |
2160 | .fa.fa-snowflake-o:before {
2161 | content: "\f2dc"; }
2162 |
2163 | .fa.fa-superpowers {
2164 | font-family: 'Font Awesome 5 Brands';
2165 | font-weight: 400; }
2166 |
2167 | .fa.fa-wpexplorer {
2168 | font-family: 'Font Awesome 5 Brands';
2169 | font-weight: 400; }
2170 |
2171 | .fa.fa-cab:before {
2172 | content: "\f1ba"; }
2173 |
--------------------------------------------------------------------------------
/web_src/fontawesome-5.15.4/css/v4-shims.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com
3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4 | */
5 | .fa.fa-glass:before{content:"\f000"}.fa.fa-meetup{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-star-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-close:before,.fa.fa-remove:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-file-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before,.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-pencil:before{content:"\f303"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-share-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-expand:before{content:"\f424"}.fa.fa-compress:before{content:"\f422"}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart:before{content:"\f080"}.fa.fa-bar-chart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart-o:before{content:"\f080"}.fa.fa-facebook-square,.fa.fa-twitter-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-lemon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-facebook,.fa.fa-twitter{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-scissors:before{content:"\f0c4"}.fa.fa-files-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-navicon:before,.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-google-plus,.fa.fa-google-plus-square,.fa.fa-pinterest,.fa.fa-pinterest-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-dashboard:before,.fa.fa-tachometer:before{content:"\f3fd"}.fa.fa-comment-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard,.fa.fa-paste{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paste:before{content:"\f328"}.fa.fa-lightbulb-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f381"}.fa.fa-cloud-upload:before{content:"\f382"}.fa.fa-bell-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile-phone:before,.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-folder-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-o:before{content:"\f089"}.fa.fa-star-half-empty{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-empty:before{content:"\f089"}.fa.fa-star-half-full{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-full:before{content:"\f089"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before{content:"\f127"}.fa.fa-shield:before{content:"\f3ed"}.fa.fa-calendar-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-css3,.fa.fa-html5,.fa.fa-maxcdn{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ticket:before{content:"\f3ff"}.fa.fa-minus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before,.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-dollar:before,.fa.fa-usd:before{content:"\f155"}.fa.fa-inr:before,.fa.fa-rupee:before{content:"\f156"}.fa.fa-cny:before,.fa.fa-jpy:before,.fa.fa-rmb:before,.fa.fa-yen:before{content:"\f157"}.fa.fa-rouble:before,.fa.fa-rub:before,.fa.fa-ruble:before{content:"\f158"}.fa.fa-krw:before,.fa.fa-won:before{content:"\f159"}.fa.fa-bitcoin,.fa.fa-btc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f881"}.fa.fa-sort-amount-asc:before{content:"\f160"}.fa.fa-sort-amount-desc:before{content:"\f884"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f886"}.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube,.fa.fa-youtube-play,.fa.fa-youtube-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-adn,.fa.fa-bitbucket,.fa.fa-bitbucket-square,.fa.fa-dropbox,.fa.fa-flickr,.fa.fa-instagram,.fa.fa-stack-overflow{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-android,.fa.fa-apple,.fa.fa-dribbble,.fa.fa-foursquare,.fa.fa-gittip,.fa.fa-gratipay,.fa.fa-linux,.fa.fa-skype,.fa.fa-trello,.fa.fa-windows{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-pagelines,.fa.fa-renren,.fa.fa-stack-exchange,.fa.fa-vk,.fa.fa-weibo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-try:before,.fa.fa-turkish-lira:before{content:"\f195"}.fa.fa-plus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-openid,.fa.fa-slack,.fa.fa-wordpress{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bank:before,.fa.fa-institution:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-delicious,.fa.fa-digg,.fa.fa-drupal,.fa.fa-google,.fa.fa-joomla,.fa.fa-pied-piper-alt,.fa.fa-pied-piper-pp,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-stumbleupon,.fa.fa-stumbleupon-circle,.fa.fa-yahoo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-spoon:before{content:"\f2e5"}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-envelope-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-deviantart,.fa.fa-soundcloud,.fa.fa-spotify{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-file-pdf-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-codepen,.fa.fa-jsfiddle,.fa.fa-vine{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-life-bouy,.fa.fa-life-ring{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-bouy:before{content:"\f1cd"}.fa.fa-life-buoy{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-buoy:before{content:"\f1cd"}.fa.fa-life-saver{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-saver:before{content:"\f1cd"}.fa.fa-support{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-ra,.fa.fa-rebel{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire,.fa.fa-ge{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git,.fa.fa-git-square,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-qq,.fa.fa-tencent-weibo,.fa.fa-wechat,.fa.fa-weixin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-sliders:before{content:"\f1de"}.fa.fa-futbol-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare,.fa.fa-twitch,.fa.fa-yelp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-cc-amex,.fa.fa-cc-discover,.fa.fa-cc-mastercard,.fa.fa-cc-paypal,.fa.fa-cc-stripe,.fa.fa-cc-visa,.fa.fa-google-wallet,.fa.fa-paypal{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-angellist,.fa.fa-ioxhost,.fa.fa-lastfm,.fa.fa-lastfm-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before,.fa.fa-shekel:before,.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-meanpath{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-meanpath:before{content:"\f2b4"}.fa.fa-buysellads,.fa.fa-connectdevelop,.fa.fa-dashcube,.fa.fa-forumbee,.fa.fa-leanpub,.fa.fa-sellsy,.fa.fa-shirtsinbulk,.fa.fa-simplybuilt,.fa.fa-skyatlas{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before{content:"\f224"}.fa.fa-facebook-official{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-medium,.fa.fa-viacoin,.fa.fa-y-combinator,.fa.fa-yc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-expeditedssl,.fa.fa-opencart,.fa.fa-optin-monster{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-battery-4:before,.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group,.fa.fa-object-ungroup,.fa.fa-sticky-note-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-diners-club,.fa.fa-cc-jcb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-clone,.fa.fa-hourglass-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-chrome,.fa.fa-creative-commons,.fa.fa-firefox,.fa.fa-get-pocket,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-internet-explorer,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square,.fa.fa-opera,.fa.fa-safari,.fa.fa-tripadvisor,.fa.fa-wikipedia-w{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-500px,.fa.fa-amazon,.fa.fa-contao{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-calendar-plus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie,.fa.fa-edge,.fa.fa-fonticons,.fa.fa-reddit-alien{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie,.fa.fa-fort-awesome,.fa.fa-mixcloud,.fa.fa-modx,.fa.fa-product-hunt,.fa.fa-scribd,.fa.fa-usb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-pause-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth,.fa.fa-bluetooth-b,.fa.fa-envira,.fa.fa-gitlab,.fa.fa-wheelchair-alt,.fa.fa-wpbeginner,.fa.fa-wpforms{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before,.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide,.fa.fa-glide-g{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-first-order,.fa.fa-google-plus-official,.fa.fa-pied-piper,.fa.fa-snapchat,.fa.fa-snapchat-ghost,.fa.fa-snapchat-square,.fa.fa-themeisle,.fa.fa-viadeo,.fa.fa-viadeo-square,.fa.fa-yoast{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-fa,.fa.fa-font-awesome{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-free-code-camp,.fa.fa-quora,.fa.fa-telegram{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-thermometer-4:before,.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before,.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize,.fa.fa-window-restore{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp,.fa.fa-eercast,.fa.fa-etsy,.fa.fa-grav,.fa.fa-imdb,.fa.fa-ravelry{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-cab:before{content:"\f1ba"}
--------------------------------------------------------------------------------
/web_src/fontawesome-5.15.4/webfonts/fa-brands-400.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-brands-400.eot
--------------------------------------------------------------------------------
/web_src/fontawesome-5.15.4/webfonts/fa-brands-400.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-brands-400.ttf
--------------------------------------------------------------------------------
/web_src/fontawesome-5.15.4/webfonts/fa-brands-400.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-brands-400.woff
--------------------------------------------------------------------------------
/web_src/fontawesome-5.15.4/webfonts/fa-brands-400.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-brands-400.woff2
--------------------------------------------------------------------------------
/web_src/fontawesome-5.15.4/webfonts/fa-regular-400.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-regular-400.eot
--------------------------------------------------------------------------------
/web_src/fontawesome-5.15.4/webfonts/fa-regular-400.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-regular-400.ttf
--------------------------------------------------------------------------------
/web_src/fontawesome-5.15.4/webfonts/fa-regular-400.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-regular-400.woff
--------------------------------------------------------------------------------
/web_src/fontawesome-5.15.4/webfonts/fa-regular-400.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-regular-400.woff2
--------------------------------------------------------------------------------
/web_src/fontawesome-5.15.4/webfonts/fa-solid-900.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-solid-900.eot
--------------------------------------------------------------------------------
/web_src/fontawesome-5.15.4/webfonts/fa-solid-900.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-solid-900.ttf
--------------------------------------------------------------------------------
/web_src/fontawesome-5.15.4/webfonts/fa-solid-900.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-solid-900.woff
--------------------------------------------------------------------------------
/web_src/fontawesome-5.15.4/webfonts/fa-solid-900.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/weigq/neurips2021_stats/4fdacc089d234ef21b75dc10d4a374244ac1fd17/web_src/fontawesome-5.15.4/webfonts/fa-solid-900.woff2
--------------------------------------------------------------------------------
/web_src/noto_sans.css:
--------------------------------------------------------------------------------
1 | /* from: https://fonts.googleapis.com/css?family=Noto Sans */
2 | /* cyrillic-ext */
3 | @font-face {
4 | font-family: 'Noto Sans';
5 | font-style: normal;
6 | font-weight: 400;
7 | src: url(https://fonts.gstatic.com/s/notosans/v21/o-0IIpQlx3QUlC5A4PNr6DRAW_0.woff2) format('woff2');
8 | unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
9 | }
10 | /* cyrillic */
11 | @font-face {
12 | font-family: 'Noto Sans';
13 | font-style: normal;
14 | font-weight: 400;
15 | src: url(https://fonts.gstatic.com/s/notosans/v21/o-0IIpQlx3QUlC5A4PNr4TRAW_0.woff2) format('woff2');
16 | unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
17 | }
18 | /* devanagari */
19 | @font-face {
20 | font-family: 'Noto Sans';
21 | font-style: normal;
22 | font-weight: 400;
23 | src: url(https://fonts.gstatic.com/s/notosans/v21/o-0IIpQlx3QUlC5A4PNr5DRAW_0.woff2) format('woff2');
24 | unicode-range: U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200C-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB;
25 | }
26 | /* greek-ext */
27 | @font-face {
28 | font-family: 'Noto Sans';
29 | font-style: normal;
30 | font-weight: 400;
31 | src: url(https://fonts.gstatic.com/s/notosans/v21/o-0IIpQlx3QUlC5A4PNr6TRAW_0.woff2) format('woff2');
32 | unicode-range: U+1F00-1FFF;
33 | }
34 | /* greek */
35 | @font-face {
36 | font-family: 'Noto Sans';
37 | font-style: normal;
38 | font-weight: 400;
39 | src: url(https://fonts.gstatic.com/s/notosans/v21/o-0IIpQlx3QUlC5A4PNr5jRAW_0.woff2) format('woff2');
40 | unicode-range: U+0370-03FF;
41 | }
42 | /* vietnamese */
43 | @font-face {
44 | font-family: 'Noto Sans';
45 | font-style: normal;
46 | font-weight: 400;
47 | src: url(https://fonts.gstatic.com/s/notosans/v21/o-0IIpQlx3QUlC5A4PNr6jRAW_0.woff2) format('woff2');
48 | unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
49 | }
50 | /* latin-ext */
51 | @font-face {
52 | font-family: 'Noto Sans';
53 | font-style: normal;
54 | font-weight: 400;
55 | src: url(https://fonts.gstatic.com/s/notosans/v21/o-0IIpQlx3QUlC5A4PNr6zRAW_0.woff2) format('woff2');
56 | unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
57 | }
58 | /* latin */
59 | @font-face {
60 | font-family: 'Noto Sans';
61 | font-style: normal;
62 | font-weight: 400;
63 | src: url(https://fonts.gstatic.com/s/notosans/v21/o-0IIpQlx3QUlC5A4PNr5TRA.woff2) format('woff2');
64 | unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
65 | }
66 |
--------------------------------------------------------------------------------
/web_src/stats.js:
--------------------------------------------------------------------------------
1 |
2 | new Tablesort(document.getElementById('all-subs'));
3 |
--------------------------------------------------------------------------------
/web_src/style.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --my-bg: #f4f4f4;
3 | --my-blue: #4f70f6;
4 | --my-orange: #ee9470;
5 | --nips-red: #80261b;
6 | --nips-bg: #fffdfa;
7 | --nips-blue: #597f91;
8 | --nips-blue2: #496876;
9 | --nips-bg2: #eeece4;
10 | --nips-bg-menu: #f0f0ed;
11 | --nips-bg-menu-hover: rgba(244, 196, 178, 0.53);
12 | --nips-font-black: #2f3a49;
13 | --nips-gray-line: #dddddd;
14 | }
15 |
16 | body {
17 | background-color: white;
18 | font-size: 18px;
19 | font-family: 'Noto Sans', sans-serif;
20 | width: 100%;
21 | margin: 0;
22 | color: var(--nips-font-black);
23 | margin-bottom: 30px;
24 | }
25 |
26 | table {
27 | border-collapse: collapse;
28 | border-spacing: 0;
29 | margin: auto;
30 | width: 90%;
31 | /*margin-left: 5%;*/
32 | color: var(--nips-font-black);
33 | table-layout: fixed;
34 | }
35 |
36 | thead:after {
37 | content: "";
38 | display: block;
39 | height: 8px;
40 | width: 100%;
41 | background: var(--my-bg);
42 | }
43 |
44 | thead tr:first-child th:last-child {
45 | border-top-right-radius: 6px;
46 | border-bottom-right-radius: 6px;
47 | }
48 |
49 | thead tr:first-child th:first-child {
50 | border-top-left-radius: 6px;
51 | border-bottom-left-radius: 6px;
52 | }
53 |
54 | td {
55 | border: 1px solid #d7d7d7;
56 | overflow: hidden;
57 | }
58 |
59 | th {
60 | height: 36px;
61 | background-color: #dedede;
62 | text-align: center;
63 | border: 1px solid #ebebeb;
64 | }
65 |
66 | th:last-child {
67 | border-right: none;
68 | border-top: none;
69 | }
70 |
71 | th:first-child {
72 | border-left: none;
73 | border-top: none;
74 | }
75 |
76 | th[role=columnheader]:not(.no-sort) {
77 | cursor: pointer;
78 | }
79 |
80 | th[role=columnheader]:not(.no-sort):after {
81 | content: '';
82 | float: right;
83 | margin-top: 10px;
84 | margin-right: 6px;
85 | /*margin-left: 4px;*/
86 | border-width: 0 6px 6px;
87 | border-style: solid;
88 | border-color: var(--my-blue) transparent;
89 | /*visibility: hidden;*/
90 | opacity: .2;
91 | -ms-user-select: none;
92 | -webkit-user-select: none;
93 | -moz-user-select: none;
94 | user-select: none;
95 | }
96 |
97 | th[aria-sort=descending]:not(.no-sort):after {
98 | border-bottom: none;
99 | border-width: 6px 6px 0;
100 | }
101 |
102 | th[aria-sort]:not(.no-sort):after {
103 | visibility: visible;
104 | opacity: .8;
105 | }
106 |
107 | th[role=columnheader]:not(.no-sort):hover:after {
108 | visibility: visible;
109 | opacity: 1;
110 | }
111 |
112 | .header {
113 | width: 100%;
114 | /*background-color: var(--nips-red);*/
115 | /*color: white;*/
116 | height: 50px;
117 | line-height: 50px;
118 | font-size: 26px;
119 | text-align: center;
120 | margin: 16px 0 8px 0;
121 | }
122 |
123 | .note {
124 | background-color: rgba(240, 240, 240, 0.47);
125 | border-radius: 6px;
126 | /*padding: 1px 0;*/
127 | width: 90%;
128 | margin-left: 5%;
129 | margin-bottom: 16px;
130 | display: inline-table;
131 | /*height: 60px;*/
132 | }
133 |
134 | .note li {
135 | list-style: none;
136 | line-height: 150%;
137 | }
138 |
139 | .note li::before {
140 | content: "\1F449";
141 | color: var(--nips-font-black);
142 | font-weight: bolder;
143 | width: 20px;
144 | margin-left: -20px;
145 | margin-right: 6px;
146 | }
147 |
148 | .note hr {
149 | width: 100%;
150 | margin-left: -20px;
151 | border-color: rgba(239, 239, 239, 0.47);
152 | }
153 |
154 | .note h3 {
155 | margin-left: -20px;
156 | }
157 |
158 | .note span:not(.bg) {
159 | color: var(--my-orange);
160 | }
161 |
162 | .note span:is(.bg) {
163 | background-color: #d5d5d5;
164 | padding: 0 4px;
165 | border-radius: 4px;
166 | }
167 |
168 | th:is(.th-rank) {
169 | width: 55px;
170 | }
171 |
172 | th:is(.th-rat) {
173 | width: 100px;
174 | }
175 |
176 | th:is(.th-title) {
177 | width: 600px;
178 | }
179 |
180 | th:is(.th-rats) {
181 | width: 150px;
182 | }
183 |
184 | th:is(.th-var) {
185 | width: 100px;
186 | }
187 |
188 | th:is(.th-d) {
189 | width: 90px;
190 | }
191 |
192 | td:not(.td-left) {
193 | text-align: center;
194 | }
195 |
196 | td:is(.total) {
197 | background-color: #dedede;
198 | }
199 |
200 | td:is(.oral) {
201 | background-color: #fb7b8f;
202 | }
203 |
204 | td:is(.spotlight) {
205 | background-color: rgba(251, 123, 143, 0.6);
206 | }
207 |
208 | td:is(.poster) {
209 | background-color: rgba(251, 123, 143, 0.19);
210 | }
211 |
212 | .note img {
213 | cursor: pointer;
214 | }
215 |
216 | td span {
217 | font-size: 14px;
218 | color: rgba(79, 112, 246, 0.73);
219 | }
220 |
221 | tbody tr {
222 | height: 46px;
223 | }
224 |
225 | .note tr {
226 | height: 36px;
227 | }
228 |
229 | .note table {
230 | width: 600px;
231 | margin-left: 18px;
232 | }
233 |
234 | tr:hover {
235 | background-color: #e5e5e5;
236 | }
237 |
238 | a {
239 | color: var(--my-blue);
240 | text-decoration: none;
241 | }
242 |
243 | a:hover,
244 | a:visited,
245 | a:active {
246 | color: var(--my-orange);
247 | }
248 |
249 | .sub-menu a {
250 | color: var(--nips-font-black);
251 | }
252 |
253 | .menu {
254 | width: 90%;
255 | height: 50px;
256 | margin-left: 5%;
257 | margin-bottom: 20px;
258 | display: flex;
259 | border-bottom: 1px solid var(--nips-gray-line);
260 | }
261 |
262 | .sub-menu {
263 | height: 49px;
264 | line-height: 49px;
265 | font-size: 20px;
266 | font-weight: bold;
267 | margin-left: 10px;
268 | margin-right: 10px;
269 | padding: 0 10px;
270 | background-color: var(--nips-bg-menu);
271 | border-top: 1px solid var(--nips-gray-line);
272 | border-left: 1px solid var(--nips-gray-line);
273 | border-right: 1px solid var(--nips-gray-line);
274 | border-top-left-radius: 6px;
275 | border-top-right-radius: 6px;
276 | cursor: pointer;
277 | }
278 |
279 | .sub-menu:is(.act) {
280 | border-bottom: 1px solid white;
281 | cursor: default;
282 | background-color: white;
283 | }
284 |
285 | .sub-menu:not(.act):hover {
286 | cursor: pointer;
287 | background-color: var(--nips-bg-menu-hover);
288 | }
289 |
290 | /* source from https://codepo8.github.io/css-fork-on-github-ribbon/*/
291 | #forkongithub a{
292 | background: #e0e0e0;
293 | color: var(--nips-font-black);
294 | text-decoration: none;
295 | text-align: center;
296 | padding: 5px 40px;
297 | font-size: 1rem;
298 | line-height: 1.6rem;
299 | position: relative;
300 | transition: 0.2s;
301 | }
302 |
303 | #forkongithub a:hover{
304 | background: var(--nips-bg-menu-hover);
305 | }
306 |
307 | @media screen and (min-width:800px){
308 | #forkongithub{
309 | position: absolute;
310 | display: block;
311 | top: 0;
312 | right: 0;
313 | width: 200px;
314 | overflow: hidden;
315 | height: 200px;
316 | z-index: 9999;
317 | }
318 | #forkongithub a{
319 | width: 170px;
320 | position: absolute;
321 | top: 40px;
322 | right: -60px;
323 | transform: rotate(45deg);
324 | -webkit-transform: rotate(45deg);
325 | -ms-transform: rotate(45deg);
326 | -moz-transform: rotate(45deg);
327 | -o-transform: rotate(45deg);
328 | box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.25);
329 | }
330 | }
331 |
332 |
333 |
334 |
--------------------------------------------------------------------------------
/web_src/tablesort.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * tablesort v5.2.1 (2021-10-30)
3 | * http://tristen.ca/tablesort/demo/
4 | * Copyright (c) 2021 ; Licensed MIT
5 | */
6 | /*
7 | * + first column never change
8 | */
9 | !function () {
10 | function a(b, c) {
11 | if (!(this instanceof a)) return new a(b, c);
12 | if (!b || "TABLE" !== b.tagName) throw new Error("Element must be a table");
13 | this.init(b, c || {})
14 | }
15 |
16 | var b = [], c = function (a) {
17 | var b;
18 | return window.CustomEvent && "function" == typeof window.CustomEvent ? b = new CustomEvent(a) : (b = document.createEvent("CustomEvent"), b.initCustomEvent(a, !1, !1, void 0)), b
19 | }, d = function (a, b) {
20 | return a.getAttribute(b.sortAttribute || "data-sort") || a.textContent || a.innerText || ""
21 | }, e = function (a, b) {
22 | return a = a.trim().toLowerCase(), b = b.trim().toLowerCase(), a === b ? 0 : a < b ? 1 : -1
23 | }, f = function (a, b) {
24 | return [].slice.call(a).find(function (a) {
25 | return a.getAttribute("data-sort-column-key") === b
26 | })
27 | }, g = function (a, b) {
28 | return function (c, d) {
29 | var e = a(c.td, d.td);
30 | return 0 === e ? b ? d.index - c.index : c.index - d.index : e
31 | }
32 | };
33 | a.extend = function (a, c, d) {
34 | if ("function" != typeof c || "function" != typeof d) throw new Error("Pattern and sort must be a function");
35 | b.push({name: a, pattern: c, sort: d})
36 | }, a.prototype = {
37 | init: function (a, b) {
38 | var c, d, e, f, g = this;
39 | if (g.table = a, g.thead = !1, g.options = b, a.rows && a.rows.length > 0) if (a.tHead && a.tHead.rows.length > 0) {
40 | for (e = 0; e < a.tHead.rows.length; e++) if ("thead" === a.tHead.rows[e].getAttribute("data-sort-method")) {
41 | c = a.tHead.rows[e];
42 | break
43 | }
44 | c || (c = a.tHead.rows[a.tHead.rows.length - 1]), g.thead = !0
45 | } else c = a.rows[0];
46 | if (c) {
47 | var h = function () {
48 | g.current && g.current !== this && g.current.removeAttribute("aria-sort"), g.current = this, g.sortTable(this)
49 | };
50 | for (e = 0; e < c.cells.length; e++) f = c.cells[e], f.setAttribute("role", "columnheader"), "none" !== f.getAttribute("data-sort-method") && (f.tabindex = 0, f.addEventListener("click", h, !1), null !== f.getAttribute("data-sort-default") && (d = f));
51 | d && (g.current = d, g.sortTable(d))
52 | }
53 | }, sortTable: function (a, h) {
54 | var i = this, j = a.getAttribute("data-sort-column-key"), k = a.cellIndex, l = e, m = "", n = [],
55 | o = i.thead ? 0 : 1, p = a.getAttribute("data-sort-method"), q = a.getAttribute("aria-sort");
56 | if (i.table.dispatchEvent(c("beforeSort")), h || (q = "ascending" === q ? "descending" : "descending" === q ? "ascending" : i.options.descending ? "descending" : "ascending", a.setAttribute("aria-sort", q)), !(i.table.rows.length < 2)) {
57 | if (!p) {
58 | for (var r; n.length < 3 && o < i.table.tBodies[0].rows.length;) r = j ? f(i.table.tBodies[0].rows[o].cells, j) : i.table.tBodies[0].rows[o].cells[k], m = r ? d(r, i.options) : "", m = m.trim(), m.length > 0 && n.push(m), o++;
59 | if (!n) return
60 | }
61 | for (o = 0; o < b.length; o++) if (m = b[o], p) {
62 | if (m.name === p) {
63 | l = m.sort;
64 | break
65 | }
66 | } else if (n.every(m.pattern)) {
67 | l = m.sort;
68 | break
69 | }
70 | for (i.col = k, o = 0; o < i.table.tBodies.length; o++) {
71 | var s, t = [], u = {}, v = 0, w = 0;
72 | var ot = [];
73 | if (!(i.table.tBodies[o].rows.length < 2)) {
74 | for (s = 0; s < i.table.tBodies[o].rows.length; s++) { // loop rows
75 | var r;
76 | m = i.table.tBodies[o].rows[s],
77 | "none" === m.getAttribute("data-sort-method") ? u[v] = m : (
78 | r = j ? f(m.cells, j) : m.cells[i.col],
79 | t.push({
80 | tr: m,
81 | td: r ? d(r, i.options) : "",
82 | index: v
83 | }),
84 | ot.push({tdInner: m.cells[0].innerHTML})
85 | ),
86 | v++
87 | }
88 | for ("descending" === q ? t.sort(g(l, !0)) : (t.sort(g(l, !1)), t.reverse()), s = 0; s < v; s++)
89 | u[s] ? (m = u[s], w++) : m = t[s - w].tr,
90 | m.cells[0].innerHTML = ot[s].tdInner,
91 | i.table.tBodies[o].appendChild(m)
92 | }
93 | }
94 | i.table.dispatchEvent(c("afterSort"))
95 | }
96 | }, refresh: function () {
97 | void 0 !== this.current && this.sortTable(this.current, !0)
98 | }
99 | }, "undefined" != typeof module && module.exports ? module.exports = a : window.Tablesort = a
100 | }();
101 |
--------------------------------------------------------------------------------