flask-appbuilder 3.2.1__py3-none-any.whl → 5.0.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. flask_appbuilder/__init__.py +2 -3
  2. flask_appbuilder/_compat.py +0 -1
  3. flask_appbuilder/actions.py +14 -14
  4. flask_appbuilder/api/__init__.py +741 -527
  5. flask_appbuilder/api/convert.py +104 -98
  6. flask_appbuilder/api/manager.py +14 -8
  7. flask_appbuilder/api/schemas.py +12 -1
  8. flask_appbuilder/babel/manager.py +12 -16
  9. flask_appbuilder/base.py +353 -280
  10. flask_appbuilder/basemanager.py +1 -1
  11. flask_appbuilder/baseviews.py +241 -164
  12. flask_appbuilder/charts/jsontools.py +10 -10
  13. flask_appbuilder/charts/views.py +56 -60
  14. flask_appbuilder/cli.py +115 -70
  15. flask_appbuilder/const.py +52 -52
  16. flask_appbuilder/exceptions.py +67 -5
  17. flask_appbuilder/fields.py +32 -23
  18. flask_appbuilder/fieldwidgets.py +34 -27
  19. flask_appbuilder/filemanager.py +33 -45
  20. flask_appbuilder/filters.py +11 -13
  21. flask_appbuilder/forms.py +31 -35
  22. flask_appbuilder/hooks.py +90 -0
  23. flask_appbuilder/menu.py +35 -10
  24. flask_appbuilder/models/base.py +47 -57
  25. flask_appbuilder/models/decorators.py +13 -13
  26. flask_appbuilder/models/filters.py +42 -38
  27. flask_appbuilder/models/generic/__init__.py +29 -29
  28. flask_appbuilder/models/generic/filters.py +11 -3
  29. flask_appbuilder/models/generic/interface.py +1 -3
  30. flask_appbuilder/models/group.py +37 -39
  31. flask_appbuilder/models/mixins.py +22 -18
  32. flask_appbuilder/models/sqla/__init__.py +19 -72
  33. flask_appbuilder/models/sqla/base.py +24 -0
  34. flask_appbuilder/models/sqla/base_legacy.py +132 -0
  35. flask_appbuilder/models/sqla/filters.py +132 -19
  36. flask_appbuilder/models/sqla/interface.py +390 -276
  37. flask_appbuilder/security/api.py +31 -35
  38. flask_appbuilder/security/decorators.py +181 -83
  39. flask_appbuilder/security/forms.py +20 -31
  40. flask_appbuilder/security/manager.py +715 -489
  41. flask_appbuilder/security/registerviews.py +29 -112
  42. flask_appbuilder/security/schemas.py +43 -0
  43. flask_appbuilder/security/sqla/apis/__init__.py +8 -0
  44. flask_appbuilder/security/sqla/apis/group/__init__.py +1 -0
  45. flask_appbuilder/security/sqla/apis/group/api.py +227 -0
  46. flask_appbuilder/security/sqla/apis/group/schema.py +73 -0
  47. flask_appbuilder/security/sqla/apis/permission/__init__.py +1 -0
  48. flask_appbuilder/security/sqla/apis/permission/api.py +19 -0
  49. flask_appbuilder/security/sqla/apis/permission_view_menu/__init__.py +1 -0
  50. flask_appbuilder/security/sqla/apis/permission_view_menu/api.py +16 -0
  51. flask_appbuilder/security/sqla/apis/role/__init__.py +1 -0
  52. flask_appbuilder/security/sqla/apis/role/api.py +306 -0
  53. flask_appbuilder/security/sqla/apis/role/schema.py +27 -0
  54. flask_appbuilder/security/sqla/apis/user/__init__.py +1 -0
  55. flask_appbuilder/security/sqla/apis/user/api.py +292 -0
  56. flask_appbuilder/security/sqla/apis/user/schema.py +97 -0
  57. flask_appbuilder/security/sqla/apis/user/validator.py +27 -0
  58. flask_appbuilder/security/sqla/apis/view_menu/__init__.py +1 -0
  59. flask_appbuilder/security/sqla/apis/view_menu/api.py +18 -0
  60. flask_appbuilder/security/sqla/manager.py +421 -203
  61. flask_appbuilder/security/sqla/models.py +192 -57
  62. flask_appbuilder/security/utils.py +9 -0
  63. flask_appbuilder/security/views.py +232 -229
  64. flask_appbuilder/static/.DS_Store +0 -0
  65. flask_appbuilder/static/appbuilder/css/ab.css +20 -12
  66. flask_appbuilder/static/appbuilder/css/bootstrap-datepicker/bootstrap-datepicker3.min.css +7 -0
  67. flask_appbuilder/static/appbuilder/css/bootstrap.min.css.map +1 -0
  68. flask_appbuilder/static/appbuilder/css/flags/flags16.css +249 -245
  69. flask_appbuilder/static/appbuilder/css/fontawesome/all.min.css +6 -0
  70. flask_appbuilder/static/appbuilder/css/fontawesome/brands.min.css +6 -0
  71. flask_appbuilder/static/appbuilder/css/fontawesome/fontawesome.min.css +6 -0
  72. flask_appbuilder/static/appbuilder/css/fontawesome/regular.min.css +6 -0
  73. flask_appbuilder/static/appbuilder/css/fontawesome/solid.min.css +6 -0
  74. flask_appbuilder/static/appbuilder/css/fontawesome/svg-with-js.min.css +6 -0
  75. flask_appbuilder/static/appbuilder/css/fontawesome/v4-font-face.min.css +6 -0
  76. flask_appbuilder/static/appbuilder/css/fontawesome/v4-shims.min.css +6 -0
  77. flask_appbuilder/static/appbuilder/css/fontawesome/v5-font-face.min.css +6 -0
  78. flask_appbuilder/static/appbuilder/css/images/flags16.png +0 -0
  79. flask_appbuilder/static/appbuilder/css/select2/select2-bootstrap.min.css +7 -0
  80. flask_appbuilder/static/appbuilder/css/select2/select2.min.css +1 -0
  81. flask_appbuilder/static/appbuilder/css/swagger/swagger-ui.css +3 -0
  82. flask_appbuilder/static/appbuilder/css/webfonts/fa-brands-400.ttf +0 -0
  83. flask_appbuilder/static/appbuilder/css/webfonts/fa-brands-400.woff2 +0 -0
  84. flask_appbuilder/static/appbuilder/css/webfonts/fa-regular-400.ttf +0 -0
  85. flask_appbuilder/static/appbuilder/css/webfonts/fa-regular-400.woff2 +0 -0
  86. flask_appbuilder/static/appbuilder/css/webfonts/fa-solid-900.ttf +0 -0
  87. flask_appbuilder/static/appbuilder/css/webfonts/fa-solid-900.woff2 +0 -0
  88. flask_appbuilder/static/appbuilder/css/webfonts/fa-v4compatibility.ttf +0 -0
  89. flask_appbuilder/static/appbuilder/css/webfonts/fa-v4compatibility.woff2 +0 -0
  90. flask_appbuilder/static/appbuilder/js/ab.js +33 -23
  91. flask_appbuilder/static/appbuilder/js/ab_filters.js +91 -84
  92. flask_appbuilder/static/appbuilder/js/bootstrap-datepicker/bootstrap-datepicker.min.js +8 -0
  93. flask_appbuilder/static/appbuilder/js/jquery-latest.js +2 -2
  94. flask_appbuilder/static/appbuilder/js/select2/select2.min.js +2 -0
  95. flask_appbuilder/static/appbuilder/js/swagger-ui-bundle.js +3 -0
  96. flask_appbuilder/templates/appbuilder/baselib.html +9 -3
  97. flask_appbuilder/templates/appbuilder/general/lib.html +60 -34
  98. flask_appbuilder/templates/appbuilder/general/model/edit.html +1 -1
  99. flask_appbuilder/templates/appbuilder/general/model/edit_cascade.html +1 -1
  100. flask_appbuilder/templates/appbuilder/general/model/search.html +3 -2
  101. flask_appbuilder/templates/appbuilder/general/model/show.html +1 -1
  102. flask_appbuilder/templates/appbuilder/general/model/show_cascade.html +1 -1
  103. flask_appbuilder/templates/appbuilder/general/security/login_db.html +7 -7
  104. flask_appbuilder/templates/appbuilder/general/security/login_ldap.html +5 -5
  105. flask_appbuilder/templates/appbuilder/general/security/login_oauth.html +24 -49
  106. flask_appbuilder/templates/appbuilder/general/widgets/base_list.html +2 -1
  107. flask_appbuilder/templates/appbuilder/general/widgets/chart.html +4 -2
  108. flask_appbuilder/templates/appbuilder/general/widgets/direct_chart.html +4 -3
  109. flask_appbuilder/templates/appbuilder/general/widgets/multiple_chart.html +3 -2
  110. flask_appbuilder/templates/appbuilder/general/widgets/search.html +11 -10
  111. flask_appbuilder/templates/appbuilder/init.html +37 -43
  112. flask_appbuilder/templates/appbuilder/navbar_menu.html +1 -1
  113. flask_appbuilder/templates/appbuilder/navbar_right.html +2 -2
  114. flask_appbuilder/templates/appbuilder/swagger/swagger.html +22 -19
  115. flask_appbuilder/translations/de/LC_MESSAGES/messages.mo +0 -0
  116. flask_appbuilder/translations/de/LC_MESSAGES/messages.po +305 -161
  117. flask_appbuilder/translations/fa/LC_MESSAGES/messages.mo +0 -0
  118. flask_appbuilder/translations/fa/LC_MESSAGES/messages.po +802 -0
  119. flask_appbuilder/translations/fr/LC_MESSAGES/messages.po +461 -319
  120. flask_appbuilder/translations/pt_BR/LC_MESSAGES/messages.po +650 -650
  121. flask_appbuilder/translations/ru/LC_MESSAGES/messages.po +1 -1
  122. flask_appbuilder/translations/sl/LC_MESSAGES/messages.mo +0 -0
  123. flask_appbuilder/translations/sl/LC_MESSAGES/messages.po +690 -0
  124. flask_appbuilder/translations/tr/LC_MESSAGES/messages.mo +0 -0
  125. flask_appbuilder/translations/tr/LC_MESSAGES/messages.po +1015 -0
  126. flask_appbuilder/upload.py +20 -22
  127. flask_appbuilder/urltools.py +39 -19
  128. flask_appbuilder/utils/base.py +76 -0
  129. flask_appbuilder/utils/legacy.py +33 -0
  130. flask_appbuilder/utils/limit.py +20 -0
  131. flask_appbuilder/validators.py +73 -14
  132. flask_appbuilder/views.py +75 -424
  133. flask_appbuilder/widgets.py +50 -51
  134. {Flask_AppBuilder-3.2.1.dist-info → flask_appbuilder-5.0.2.dist-info}/METADATA +36 -76
  135. flask_appbuilder-5.0.2.dist-info/RECORD +240 -0
  136. {Flask_AppBuilder-3.2.1.dist-info → flask_appbuilder-5.0.2.dist-info}/WHEEL +1 -1
  137. flask_appbuilder-5.0.2.dist-info/entry_points.txt +2 -0
  138. Flask_AppBuilder-3.2.1.dist-info/RECORD +0 -270
  139. Flask_AppBuilder-3.2.1.dist-info/entry_points.txt +0 -6
  140. flask_appbuilder/console.py +0 -426
  141. flask_appbuilder/models/mongoengine/__init__.py +0 -0
  142. flask_appbuilder/models/mongoengine/fields.py +0 -65
  143. flask_appbuilder/models/mongoengine/filters.py +0 -145
  144. flask_appbuilder/models/mongoengine/interface.py +0 -328
  145. flask_appbuilder/security/mongoengine/__init__.py +0 -0
  146. flask_appbuilder/security/mongoengine/manager.py +0 -402
  147. flask_appbuilder/security/mongoengine/models.py +0 -120
  148. flask_appbuilder/static/appbuilder/css/font-awesome.min.css +0 -4
  149. flask_appbuilder/static/appbuilder/datepicker/bootstrap-datepicker.css +0 -9
  150. flask_appbuilder/static/appbuilder/datepicker/bootstrap-datepicker.js +0 -28
  151. flask_appbuilder/static/appbuilder/fonts/FontAwesome.otf +0 -0
  152. flask_appbuilder/static/appbuilder/fonts/fontawesome-webfont.eot +0 -0
  153. flask_appbuilder/static/appbuilder/fonts/fontawesome-webfont.svg +0 -2671
  154. flask_appbuilder/static/appbuilder/fonts/fontawesome-webfont.ttf +0 -0
  155. flask_appbuilder/static/appbuilder/fonts/fontawesome-webfont.woff +0 -0
  156. flask_appbuilder/static/appbuilder/fonts/fontawesome-webfont.woff2 +0 -0
  157. flask_appbuilder/static/appbuilder/img/aol.png +0 -0
  158. flask_appbuilder/static/appbuilder/img/flags/flags16.png +0 -0
  159. flask_appbuilder/static/appbuilder/img/flickr.png +0 -0
  160. flask_appbuilder/static/appbuilder/img/google.png +0 -0
  161. flask_appbuilder/static/appbuilder/img/myopenid.png +0 -0
  162. flask_appbuilder/static/appbuilder/img/yahoo.png +0 -0
  163. flask_appbuilder/static/appbuilder/js/_google_charts.js +0 -39
  164. flask_appbuilder/static/appbuilder/js/html5shiv.js +0 -8
  165. flask_appbuilder/static/appbuilder/js/respond.min.js +0 -6
  166. flask_appbuilder/static/appbuilder/select2/select2-spinner.gif +0 -0
  167. flask_appbuilder/static/appbuilder/select2/select2.css +0 -1205
  168. flask_appbuilder/static/appbuilder/select2/select2.js +0 -23
  169. flask_appbuilder/static/appbuilder/select2/select2.png +0 -0
  170. flask_appbuilder/static/appbuilder/select2/select2x2.png +0 -0
  171. flask_appbuilder/templates/appbuilder/general/security/login_oid.html +0 -129
  172. flask_appbuilder/templates/appbuilder/general/security/resetpassword.html +0 -29
  173. flask_appbuilder/tests/__init__.py +0 -0
  174. flask_appbuilder/tests/__pycache__/__init__.cpython-36.pyc +0 -0
  175. flask_appbuilder/tests/__pycache__/__init__.cpython-37.pyc +0 -0
  176. flask_appbuilder/tests/__pycache__/_test_auth_ldap.cpython-37.pyc +0 -0
  177. flask_appbuilder/tests/__pycache__/_test_auth_oauth.cpython-37.pyc +0 -0
  178. flask_appbuilder/tests/__pycache__/_test_ldapsearch.cpython-36.pyc +0 -0
  179. flask_appbuilder/tests/__pycache__/_test_oauth_registration_role.cpython-36.pyc +0 -0
  180. flask_appbuilder/tests/__pycache__/base.cpython-36.pyc +0 -0
  181. flask_appbuilder/tests/__pycache__/base.cpython-37.pyc +0 -0
  182. flask_appbuilder/tests/__pycache__/config_api.cpython-36.pyc +0 -0
  183. flask_appbuilder/tests/__pycache__/config_api.cpython-37.pyc +0 -0
  184. flask_appbuilder/tests/__pycache__/const.cpython-36.pyc +0 -0
  185. flask_appbuilder/tests/__pycache__/const.cpython-37.pyc +0 -0
  186. flask_appbuilder/tests/__pycache__/test_0_fixture.cpython-36.pyc +0 -0
  187. flask_appbuilder/tests/__pycache__/test_0_fixture.cpython-37.pyc +0 -0
  188. flask_appbuilder/tests/__pycache__/test_api.cpython-36.pyc +0 -0
  189. flask_appbuilder/tests/__pycache__/test_api.cpython-37.pyc +0 -0
  190. flask_appbuilder/tests/__pycache__/test_fab_cli.cpython-36.pyc +0 -0
  191. flask_appbuilder/tests/__pycache__/test_fab_cli.cpython-37.pyc +0 -0
  192. flask_appbuilder/tests/__pycache__/test_menu.cpython-36.pyc +0 -0
  193. flask_appbuilder/tests/__pycache__/test_menu.cpython-37.pyc +0 -0
  194. flask_appbuilder/tests/__pycache__/test_mongoengine.cpython-36.pyc +0 -0
  195. flask_appbuilder/tests/__pycache__/test_mvc.cpython-36.pyc +0 -0
  196. flask_appbuilder/tests/__pycache__/test_mvc.cpython-37.pyc +0 -0
  197. flask_appbuilder/tests/__pycache__/test_sqlalchemy.cpython-36.pyc +0 -0
  198. flask_appbuilder/tests/__pycache__/test_sqlalchemy.cpython-37.pyc +0 -0
  199. flask_appbuilder/tests/_test_auth_ldap.py +0 -1045
  200. flask_appbuilder/tests/_test_auth_oauth.py +0 -419
  201. flask_appbuilder/tests/_test_ldapsearch.py +0 -135
  202. flask_appbuilder/tests/_test_oauth_registration_role.py +0 -59
  203. flask_appbuilder/tests/app.db +0 -0
  204. flask_appbuilder/tests/base.py +0 -90
  205. flask_appbuilder/tests/config_api.py +0 -21
  206. flask_appbuilder/tests/const.py +0 -9
  207. flask_appbuilder/tests/mongoengine/__init__.py +0 -0
  208. flask_appbuilder/tests/mongoengine/__pycache__/__init__.cpython-36.pyc +0 -0
  209. flask_appbuilder/tests/mongoengine/__pycache__/__init__.cpython-37.pyc +0 -0
  210. flask_appbuilder/tests/mongoengine/__pycache__/models.cpython-36.pyc +0 -0
  211. flask_appbuilder/tests/mongoengine/models.py +0 -41
  212. flask_appbuilder/tests/sqla/__init__.py +0 -0
  213. flask_appbuilder/tests/sqla/__pycache__/__init__.cpython-36.pyc +0 -0
  214. flask_appbuilder/tests/sqla/__pycache__/__init__.cpython-37.pyc +0 -0
  215. flask_appbuilder/tests/sqla/__pycache__/models.cpython-36.pyc +0 -0
  216. flask_appbuilder/tests/sqla/__pycache__/models.cpython-37.pyc +0 -0
  217. flask_appbuilder/tests/sqla/models.py +0 -340
  218. flask_appbuilder/tests/test_0_fixture.py +0 -39
  219. flask_appbuilder/tests/test_api.py +0 -2790
  220. flask_appbuilder/tests/test_fab_cli.py +0 -72
  221. flask_appbuilder/tests/test_menu.py +0 -122
  222. flask_appbuilder/tests/test_mongoengine.py +0 -572
  223. flask_appbuilder/tests/test_mvc.py +0 -1710
  224. flask_appbuilder/tests/test_sqlalchemy.py +0 -24
  225. flask_appbuilder/translations/__pycache__/__init__.cpython-36.pyc +0 -0
  226. flask_appbuilder/translations/es/LC_MESSAGES/messages.po~ +0 -582
  227. {Flask_AppBuilder-3.2.1.dist-info → flask_appbuilder-5.0.2.dist-info}/LICENSE +0 -0
  228. {Flask_AppBuilder-3.2.1.dist-info → flask_appbuilder-5.0.2.dist-info}/top_level.txt +0 -0
@@ -1,245 +1,249 @@
1
- .f16 .flag{display:inline-block;height:16px;width:16px;vertical-align:text-top;line-height:16px;background:url(../../img/flags/flags16.png) no-repeat;}
2
- .f16 ._African_Union(OAS){background-position:0 -16px;}
3
- .f16 ._Arab_League{background-position:0 -32px;}
4
- .f16 ._ASEAN{background-position:0 -48px;}
5
- .f16 ._CARICOM{background-position:0 -64px;}
6
- .f16 ._CIS{background-position:0 -80px;}
7
- .f16 ._Commonwealth{background-position:0 -96px;}
8
- .f16 ._England{background-position:0 -112px;}
9
- .f16 ._European_Union{background-position:0 -128px;}
10
- .f16 ._Islamic_Conference{background-position:0 -144px;}
11
- .f16 ._Kosovo{background-position:0 -160px;}
12
- .f16 ._NATO{background-position:0 -176px;}
13
- .f16 ._Northern_Cyprus{background-position:0 -192px;}
14
- .f16 ._Northern_Ireland{background-position:0 -208px;}
15
- .f16 ._Olimpic_Movement{background-position:0 -224px;}
16
- .f16 ._OPEC{background-position:0 -240px;}
17
- .f16 ._Red_Cross{background-position:0 -256px;}
18
- .f16 ._Scotland{background-position:0 -272px;}
19
- .f16 ._Somaliland{background-position:0 -288px;}
20
- .f16 ._Tibet{background-position:0 -304px;}
21
- .f16 ._United_Nations{background-position:0 -320px;}
22
- .f16 ._Wales{background-position:0 -336px;}
23
- .f16 .ad{background-position:0 -352px;}
24
- .f16 .ae{background-position:0 -368px;}
25
- .f16 .af{background-position:0 -384px;}
26
- .f16 .ag{background-position:0 -400px;}
27
- .f16 .ai{background-position:0 -416px;}
28
- .f16 .al{background-position:0 -432px;}
29
- .f16 .am{background-position:0 -448px;}
30
- .f16 .an{background-position:0 -464px;}
31
- .f16 .ao{background-position:0 -480px;}
32
- .f16 .aq{background-position:0 -496px;}
33
- .f16 .ar{background-position:0 -512px;}
34
- .f16 .as{background-position:0 -528px;}
35
- .f16 .at{background-position:0 -544px;}
36
- .f16 .au{background-position:0 -560px;}
37
- .f16 .aw{background-position:0 -576px;}
38
- .f16 .az{background-position:0 -592px;}
39
- .f16 .ba{background-position:0 -608px;}
40
- .f16 .bb{background-position:0 -624px;}
41
- .f16 .bd{background-position:0 -640px;}
42
- .f16 .be{background-position:0 -656px;}
43
- .f16 .bf{background-position:0 -672px;}
44
- .f16 .bg{background-position:0 -688px;}
45
- .f16 .bh{background-position:0 -704px;}
46
- .f16 .bi{background-position:0 -720px;}
47
- .f16 .bj{background-position:0 -736px;}
48
- .f16 .bm{background-position:0 -752px;}
49
- .f16 .bn{background-position:0 -768px;}
50
- .f16 .bo{background-position:0 -784px;}
51
- .f16 .br{background-position:0 -800px;}
52
- .f16 .bs{background-position:0 -816px;}
53
- .f16 .bt{background-position:0 -832px;}
54
- .f16 .bw{background-position:0 -848px;}
55
- .f16 .by{background-position:0 -864px;}
56
- .f16 .bz{background-position:0 -880px;}
57
- .f16 .ca{background-position:0 -896px;}
58
- .f16 .cg{background-position:0 -912px;}
59
- .f16 .cf{background-position:0 -928px;}
60
- .f16 .cd{background-position:0 -944px;}
61
- .f16 .ch{background-position:0 -960px;}
62
- .f16 .ci{background-position:0 -976px;}
63
- .f16 .ck{background-position:0 -992px;}
64
- .f16 .cl{background-position:0 -1008px;}
65
- .f16 .cm{background-position:0 -1024px;}
66
- .f16 .cn{background-position:0 -1040px;}
67
- .f16 .co{background-position:0 -1056px;}
68
- .f16 .cr{background-position:0 -1072px;}
69
- .f16 .cu{background-position:0 -1088px;}
70
- .f16 .cv{background-position:0 -1104px;}
71
- .f16 .cy{background-position:0 -1120px;}
72
- .f16 .cz{background-position:0 -1136px;}
73
- .f16 .de{background-position:0 -1152px;}
74
- .f16 .dj{background-position:0 -1168px;}
75
- .f16 .dk{background-position:0 -1184px;}
76
- .f16 .dm{background-position:0 -1200px;}
77
- .f16 .do{background-position:0 -1216px;}
78
- .f16 .dz{background-position:0 -1232px;}
79
- .f16 .ec{background-position:0 -1248px;}
80
- .f16 .ee{background-position:0 -1264px;}
81
- .f16 .eg{background-position:0 -1280px;}
82
- .f16 .eh{background-position:0 -1296px;}
83
- .f16 .er{background-position:0 -1312px;}
84
- .f16 .es{background-position:0 -1328px;}
85
- .f16 .et{background-position:0 -1344px;}
86
- .f16 .fi{background-position:0 -1360px;}
87
- .f16 .fj{background-position:0 -1376px;}
88
- .f16 .fm{background-position:0 -1392px;}
89
- .f16 .fo{background-position:0 -1408px;}
90
- .f16 .fr{background-position:0 -1424px;}
91
- .f16 .ga{background-position:0 -1440px;}
92
- .f16 .gb{background-position:0 -1456px;}
93
- .f16 .gd{background-position:0 -1472px;}
94
- .f16 .ge{background-position:0 -1488px;}
95
- .f16 .gg{background-position:0 -1504px;}
96
- .f16 .gh{background-position:0 -1520px;}
97
- .f16 .gi{background-position:0 -1536px;}
98
- .f16 .gl{background-position:0 -1552px;}
99
- .f16 .gm{background-position:0 -1568px;}
100
- .f16 .gn{background-position:0 -1584px;}
101
- .f16 .gp{background-position:0 -1600px;}
102
- .f16 .gq{background-position:0 -1616px;}
103
- .f16 .gr{background-position:0 -1632px;}
104
- .f16 .gt{background-position:0 -1648px;}
105
- .f16 .gu{background-position:0 -1664px;}
106
- .f16 .gw{background-position:0 -1680px;}
107
- .f16 .gy{background-position:0 -1696px;}
108
- .f16 .hk{background-position:0 -1712px;}
109
- .f16 .hn{background-position:0 -1728px;}
110
- .f16 .hr{background-position:0 -1744px;}
111
- .f16 .ht{background-position:0 -1760px;}
112
- .f16 .hu{background-position:0 -1776px;}
113
- .f16 .id{background-position:0 -1792px;}
114
- .f16 .mc{background-position:0 -1792px;}
115
- .f16 .ie{background-position:0 -1808px;}
116
- .f16 .il{background-position:0 -1824px;}
117
- .f16 .im{background-position:0 -1840px;}
118
- .f16 .in{background-position:0 -1856px;}
119
- .f16 .iq{background-position:0 -1872px;}
120
- .f16 .ir{background-position:0 -1888px;}
121
- .f16 .is{background-position:0 -1904px;}
122
- .f16 .it{background-position:0 -1920px;}
123
- .f16 .je{background-position:0 -1936px;}
124
- .f16 .jm{background-position:0 -1952px;}
125
- .f16 .jo{background-position:0 -1968px;}
126
- .f16 .jp{background-position:0 -1984px;}
127
- .f16 .ke{background-position:0 -2000px;}
128
- .f16 .kg{background-position:0 -2016px;}
129
- .f16 .kh{background-position:0 -2032px;}
130
- .f16 .ki{background-position:0 -2048px;}
131
- .f16 .km{background-position:0 -2064px;}
132
- .f16 .kn{background-position:0 -2080px;}
133
- .f16 .kp{background-position:0 -2096px;}
134
- .f16 .kr{background-position:0 -2112px;}
135
- .f16 .kw{background-position:0 -2128px;}
136
- .f16 .ky{background-position:0 -2144px;}
137
- .f16 .kz{background-position:0 -2160px;}
138
- .f16 .la{background-position:0 -2176px;}
139
- .f16 .lb{background-position:0 -2192px;}
140
- .f16 .lc{background-position:0 -2208px;}
141
- .f16 .li{background-position:0 -2224px;}
142
- .f16 .lk{background-position:0 -2240px;}
143
- .f16 .lr{background-position:0 -2256px;}
144
- .f16 .ls{background-position:0 -2272px;}
145
- .f16 .lt{background-position:0 -2288px;}
146
- .f16 .lu{background-position:0 -2304px;}
147
- .f16 .lv{background-position:0 -2320px;}
148
- .f16 .ly{background-position:0 -2336px;}
149
- .f16 .ma{background-position:0 -2352px;}
150
- .f16 .md{background-position:0 -2368px;}
151
- .f16 .me{background-position:0 -2384px;}
152
- .f16 .mg{background-position:0 -2400px;}
153
- .f16 .mh{background-position:0 -2416px;}
154
- .f16 .mk{background-position:0 -2432px;}
155
- .f16 .ml{background-position:0 -2448px;}
156
- .f16 .mm{background-position:0 -2464px;}
157
- .f16 .mn{background-position:0 -2480px;}
158
- .f16 .mo{background-position:0 -2496px;}
159
- .f16 .mq{background-position:0 -2512px;}
160
- .f16 .mr{background-position:0 -2528px;}
161
- .f16 .ms{background-position:0 -2544px;}
162
- .f16 .mt{background-position:0 -2560px;}
163
- .f16 .mu{background-position:0 -2576px;}
164
- .f16 .mv{background-position:0 -2592px;}
165
- .f16 .mw{background-position:0 -2608px;}
166
- .f16 .mx{background-position:0 -2624px;}
167
- .f16 .my{background-position:0 -2640px;}
168
- .f16 .mz{background-position:0 -2656px;}
169
- .f16 .na{background-position:0 -2672px;}
170
- .f16 .nc{background-position:0 -2688px;}
171
- .f16 .ne{background-position:0 -2704px;}
172
- .f16 .ng{background-position:0 -2720px;}
173
- .f16 .ni{background-position:0 -2736px;}
174
- .f16 .nl{background-position:0 -2752px;}
175
- .f16 .no{background-position:0 -2768px;}
176
- .f16 .np{background-position:0 -2784px;}
177
- .f16 .nr{background-position:0 -2800px;}
178
- .f16 .nz{background-position:0 -2816px;}
179
- .f16 .om{background-position:0 -2832px;}
180
- .f16 .pa{background-position:0 -2848px;}
181
- .f16 .pe{background-position:0 -2864px;}
182
- .f16 .pf{background-position:0 -2880px;}
183
- .f16 .pg{background-position:0 -2896px;}
184
- .f16 .ph{background-position:0 -2912px;}
185
- .f16 .pk{background-position:0 -2928px;}
186
- .f16 .pl{background-position:0 -2944px;}
187
- .f16 .pr{background-position:0 -2960px;}
188
- .f16 .ps{background-position:0 -2976px;}
189
- .f16 .pt{background-position:0 -2992px;}
190
- .f16 .pw{background-position:0 -3008px;}
191
- .f16 .py{background-position:0 -3024px;}
192
- .f16 .qa{background-position:0 -3040px;}
193
- .f16 .re{background-position:0 -3056px;}
194
- .f16 .ro{background-position:0 -3072px;}
195
- .f16 .rs{background-position:0 -3088px;}
196
- .f16 .ru{background-position:0 -3104px;}
197
- .f16 .rw{background-position:0 -3120px;}
198
- .f16 .sa{background-position:0 -3136px;}
199
- .f16 .sb{background-position:0 -3152px;}
200
- .f16 .sc{background-position:0 -3168px;}
201
- .f16 .sd{background-position:0 -3184px;}
202
- .f16 .se{background-position:0 -3200px;}
203
- .f16 .sg{background-position:0 -3216px;}
204
- .f16 .si{background-position:0 -3232px;}
205
- .f16 .sk{background-position:0 -3248px;}
206
- .f16 .sl{background-position:0 -3264px;}
207
- .f16 .sm{background-position:0 -3280px;}
208
- .f16 .sn{background-position:0 -3296px;}
209
- .f16 .so{background-position:0 -3312px;}
210
- .f16 .sr{background-position:0 -3328px;}
211
- .f16 .st{background-position:0 -3344px;}
212
- .f16 .sv{background-position:0 -3360px;}
213
- .f16 .sy{background-position:0 -3376px;}
214
- .f16 .sz{background-position:0 -3392px;}
215
- .f16 .tc{background-position:0 -3408px;}
216
- .f16 .td{background-position:0 -3424px;}
217
- .f16 .tg{background-position:0 -3440px;}
218
- .f16 .th{background-position:0 -3456px;}
219
- .f16 .tj{background-position:0 -3472px;}
220
- .f16 .tl{background-position:0 -3488px;}
221
- .f16 .tm{background-position:0 -3504px;}
222
- .f16 .tn{background-position:0 -3520px;}
223
- .f16 .to{background-position:0 -3536px;}
224
- .f16 .tr{background-position:0 -3552px;}
225
- .f16 .tt{background-position:0 -3568px;}
226
- .f16 .tv{background-position:0 -3584px;}
227
- .f16 .tw{background-position:0 -3600px;}
228
- .f16 .tz{background-position:0 -3616px;}
229
- .f16 .ua{background-position:0 -3632px;}
230
- .f16 .ug{background-position:0 -3648px;}
231
- .f16 .us{background-position:0 -3664px;}
232
- .f16 .uy{background-position:0 -3680px;}
233
- .f16 .uz{background-position:0 -3696px;}
234
- .f16 .va{background-position:0 -3712px;}
235
- .f16 .vc{background-position:0 -3728px;}
236
- .f16 .ve{background-position:0 -3744px;}
237
- .f16 .vg{background-position:0 -3760px;}
238
- .f16 .vi{background-position:0 -3776px;}
239
- .f16 .vn{background-position:0 -3792px;}
240
- .f16 .vu{background-position:0 -3808px;}
241
- .f16 .ws{background-position:0 -3824px;}
242
- .f16 .ye{background-position:0 -3840px;}
243
- .f16 .za{background-position:0 -3856px;}
244
- .f16 .zm{background-position:0 -3872px;}
245
- .f16 .zw{background-position:0 -3872px;}
1
+ .f16 .flag{display:inline-block;height:16px;width:16px;vertical-align:text-top;line-height:16px;background:url(../images/flags16.png) no-repeat;}
2
+ .f16 ._African_Union{background-position:0 -16px;}
3
+ .f16 ._Arab_League{background-position:0 -32px;}
4
+ .f16 ._ASEAN{background-position:0 -48px;}
5
+ .f16 ._CARICOM{background-position:0 -64px;}
6
+ .f16 ._CIS{background-position:0 -80px;}
7
+ .f16 ._Commonwealth{background-position:0 -96px;}
8
+ .f16 ._England{background-position:0 -112px;}
9
+ .f16 ._European_Union, .f16 .eu{background-position:0 -128px;}
10
+ .f16 ._Islamic_Conference{background-position:0 -144px;}
11
+ .f16 ._Kosovo{background-position:0 -160px;}
12
+ .f16 ._NATO{background-position:0 -176px;}
13
+ .f16 ._Northern_Cyprus{background-position:0 -192px;}
14
+ .f16 ._Northern_Ireland{background-position:0 -208px;}
15
+ .f16 ._Olimpic_Movement{background-position:0 -224px;}
16
+ .f16 ._OPEC{background-position:0 -240px;}
17
+ .f16 ._Red_Cross{background-position:0 -256px;}
18
+ .f16 ._Scotland{background-position:0 -272px;}
19
+ .f16 ._Somaliland{background-position:0 -288px;}
20
+ .f16 ._Tibet{background-position:0 -304px;}
21
+ .f16 ._United_Nations{background-position:0 -320px;}
22
+ .f16 ._Wales{background-position:0 -336px;}
23
+ .f16 .ad{background-position:0 -352px;}
24
+ .f16 .ae{background-position:0 -368px;}
25
+ .f16 .af{background-position:0 -384px;}
26
+ .f16 .ag{background-position:0 -400px;}
27
+ .f16 .ai{background-position:0 -416px;}
28
+ .f16 .al{background-position:0 -432px;}
29
+ .f16 .am{background-position:0 -448px;}
30
+ .f16 .ao{background-position:0 -464px;}
31
+ .f16 .aq{background-position:0 -480px;}
32
+ .f16 .ar{background-position:0 -496px;}
33
+ .f16 .as{background-position:0 -512px;}
34
+ .f16 .at{background-position:0 -528px;}
35
+ .f16 .au{background-position:0 -544px;}
36
+ .f16 .aw{background-position:0 -560px;}
37
+ .f16 .ax{background-position:0 -576px;}
38
+ .f16 .az{background-position:0 -592px;}
39
+ .f16 .ba{background-position:0 -608px;}
40
+ .f16 .bb{background-position:0 -624px;}
41
+ .f16 .bd{background-position:0 -640px;}
42
+ .f16 .be{background-position:0 -656px;}
43
+ .f16 .bf{background-position:0 -672px;}
44
+ .f16 .bg{background-position:0 -688px;}
45
+ .f16 .bh{background-position:0 -704px;}
46
+ .f16 .bi{background-position:0 -720px;}
47
+ .f16 .bj{background-position:0 -736px;}
48
+ .f16 .bm{background-position:0 -752px;}
49
+ .f16 .bn{background-position:0 -768px;}
50
+ .f16 .bo{background-position:0 -784px;}
51
+ .f16 .br{background-position:0 -800px;}
52
+ .f16 .bs{background-position:0 -816px;}
53
+ .f16 .bt{background-position:0 -832px;}
54
+ .f16 .bw{background-position:0 -848px;}
55
+ .f16 .by{background-position:0 -864px;}
56
+ .f16 .bz{background-position:0 -880px;}
57
+ .f16 .ca{background-position:0 -896px;}
58
+ .f16 .cg{background-position:0 -912px;}
59
+ .f16 .cf{background-position:0 -928px;}
60
+ .f16 .cd{background-position:0 -944px;}
61
+ .f16 .ch{background-position:0 -960px;}
62
+ .f16 .ci{background-position:0 -976px;}
63
+ .f16 .ck{background-position:0 -992px;}
64
+ .f16 .cl{background-position:0 -1008px;}
65
+ .f16 .cm{background-position:0 -1024px;}
66
+ .f16 .cn{background-position:0 -1040px;}
67
+ .f16 .co{background-position:0 -1056px;}
68
+ .f16 .cr{background-position:0 -1072px;}
69
+ .f16 .cu{background-position:0 -1088px;}
70
+ .f16 .cv{background-position:0 -1104px;}
71
+ .f16 .cy{background-position:0 -1120px;}
72
+ .f16 .cz{background-position:0 -1136px;}
73
+ .f16 .de{background-position:0 -1152px;}
74
+ .f16 .dj{background-position:0 -1168px;}
75
+ .f16 .dk{background-position:0 -1184px;}
76
+ .f16 .dm{background-position:0 -1200px;}
77
+ .f16 .do{background-position:0 -1216px;}
78
+ .f16 .dz{background-position:0 -1232px;}
79
+ .f16 .ec{background-position:0 -1248px;}
80
+ .f16 .ee{background-position:0 -1264px;}
81
+ .f16 .eg{background-position:0 -1280px;}
82
+ .f16 .eh{background-position:0 -1296px;}
83
+ .f16 .er{background-position:0 -1312px;}
84
+ .f16 .es{background-position:0 -1328px;}
85
+ .f16 .et{background-position:0 -1344px;}
86
+ .f16 .fi{background-position:0 -1360px;}
87
+ .f16 .fj{background-position:0 -1376px;}
88
+ .f16 .fm{background-position:0 -1392px;}
89
+ .f16 .fo{background-position:0 -1408px;}
90
+ .f16 .fr{background-position:0 -1424px;} .f16 .bl, .f16 .cp, .f16 .mf, .f16 .yt{background-position:0 -1424px;}
91
+ .f16 .ga{background-position:0 -1440px;}
92
+ .f16 .gb{background-position:0 -1456px;} .f16 .sh{background-position:0 -1456px;}
93
+ .f16 .gd{background-position:0 -1472px;}
94
+ .f16 .ge{background-position:0 -1488px;}
95
+ .f16 .gg{background-position:0 -1504px;}
96
+ .f16 .gh{background-position:0 -1520px;}
97
+ .f16 .gi{background-position:0 -1536px;}
98
+ .f16 .gl{background-position:0 -1552px;}
99
+ .f16 .gm{background-position:0 -1568px;}
100
+ .f16 .gn{background-position:0 -1584px;}
101
+ .f16 .gp{background-position:0 -1600px;}
102
+ .f16 .gq{background-position:0 -1616px;}
103
+ .f16 .gr{background-position:0 -1632px;}
104
+ .f16 .gt{background-position:0 -1648px;}
105
+ .f16 .gu{background-position:0 -1664px;}
106
+ .f16 .gw{background-position:0 -1680px;}
107
+ .f16 .gy{background-position:0 -1696px;}
108
+ .f16 .hk{background-position:0 -1712px;}
109
+ .f16 .hn{background-position:0 -1728px;}
110
+ .f16 .hr{background-position:0 -1744px;}
111
+ .f16 .ht{background-position:0 -1760px;}
112
+ .f16 .hu{background-position:0 -1776px;}
113
+ .f16 .id{background-position:0 -1792px;}
114
+ .f16 .mc{background-position:0 -1792px;}
115
+ .f16 .ie{background-position:0 -1808px;}
116
+ .f16 .il{background-position:0 -1824px;}
117
+ .f16 .im{background-position:0 -1840px;}
118
+ .f16 .in{background-position:0 -1856px;}
119
+ .f16 .iq{background-position:0 -1872px;}
120
+ .f16 .ir{background-position:0 -1888px;}
121
+ .f16 .is{background-position:0 -1904px;}
122
+ .f16 .it{background-position:0 -1920px;}
123
+ .f16 .je{background-position:0 -1936px;}
124
+ .f16 .jm{background-position:0 -1952px;}
125
+ .f16 .jo{background-position:0 -1968px;}
126
+ .f16 .jp{background-position:0 -1984px;}
127
+ .f16 .ke{background-position:0 -2000px;}
128
+ .f16 .kg{background-position:0 -2016px;}
129
+ .f16 .kh{background-position:0 -2032px;}
130
+ .f16 .ki{background-position:0 -2048px;}
131
+ .f16 .km{background-position:0 -2064px;}
132
+ .f16 .kn{background-position:0 -2080px;}
133
+ .f16 .kp{background-position:0 -2096px;}
134
+ .f16 .kr{background-position:0 -2112px;}
135
+ .f16 .kw{background-position:0 -2128px;}
136
+ .f16 .ky{background-position:0 -2144px;}
137
+ .f16 .kz{background-position:0 -2160px;}
138
+ .f16 .la{background-position:0 -2176px;}
139
+ .f16 .lb{background-position:0 -2192px;}
140
+ .f16 .lc{background-position:0 -2208px;}
141
+ .f16 .li{background-position:0 -2224px;}
142
+ .f16 .lk{background-position:0 -2240px;}
143
+ .f16 .lr{background-position:0 -2256px;}
144
+ .f16 .ls{background-position:0 -2272px;}
145
+ .f16 .lt{background-position:0 -2288px;}
146
+ .f16 .lu{background-position:0 -2304px;}
147
+ .f16 .lv{background-position:0 -2320px;}
148
+ .f16 .ly{background-position:0 -2336px;}
149
+ .f16 .ma{background-position:0 -2352px;}
150
+ .f16 .md{background-position:0 -2368px;}
151
+ .f16 .me{background-position:0 -2384px;}
152
+ .f16 .mg{background-position:0 -2400px;}
153
+ .f16 .mh{background-position:0 -2416px;}
154
+ .f16 .mk{background-position:0 -2432px;}
155
+ .f16 .ml{background-position:0 -2448px;}
156
+ .f16 .mm{background-position:0 -2464px;}
157
+ .f16 .mn{background-position:0 -2480px;}
158
+ .f16 .mo{background-position:0 -2496px;}
159
+ .f16 .mq{background-position:0 -2512px;}
160
+ .f16 .mr{background-position:0 -2528px;}
161
+ .f16 .ms{background-position:0 -2544px;}
162
+ .f16 .mt{background-position:0 -2560px;}
163
+ .f16 .mu{background-position:0 -2576px;}
164
+ .f16 .mv{background-position:0 -2592px;}
165
+ .f16 .mw{background-position:0 -2608px;}
166
+ .f16 .mx{background-position:0 -2624px;}
167
+ .f16 .my{background-position:0 -2640px;}
168
+ .f16 .mz{background-position:0 -2656px;}
169
+ .f16 .na{background-position:0 -2672px;}
170
+ .f16 .nc{background-position:0 -2688px;}
171
+ .f16 .ne{background-position:0 -2704px;}
172
+ .f16 .ng{background-position:0 -2720px;}
173
+ .f16 .ni{background-position:0 -2736px;}
174
+ .f16 .nl{background-position:0 -2752px;} .f16 .bq{background-position:0 -2752px;}
175
+ .f16 .no{background-position:0 -2768px;} .f16 .bv, .f16 .nq, .f16 .sj{background-position:0 -2768px;}
176
+ .f16 .np{background-position:0 -2784px;}
177
+ .f16 .nr{background-position:0 -2800px;}
178
+ .f16 .nz{background-position:0 -2816px;}
179
+ .f16 .om{background-position:0 -2832px;}
180
+ .f16 .pa{background-position:0 -2848px;}
181
+ .f16 .pe{background-position:0 -2864px;}
182
+ .f16 .pf{background-position:0 -2880px;}
183
+ .f16 .pg{background-position:0 -2896px;}
184
+ .f16 .ph{background-position:0 -2912px;}
185
+ .f16 .pk{background-position:0 -2928px;}
186
+ .f16 .pl{background-position:0 -2944px;}
187
+ .f16 .pr{background-position:0 -2960px;}
188
+ .f16 .ps{background-position:0 -2976px;}
189
+ .f16 .pt{background-position:0 -2992px;}
190
+ .f16 .pw{background-position:0 -3008px;}
191
+ .f16 .py{background-position:0 -3024px;}
192
+ .f16 .qa{background-position:0 -3040px;}
193
+ .f16 .re{background-position:0 -3056px;}
194
+ .f16 .ro{background-position:0 -3072px;}
195
+ .f16 .rs{background-position:0 -3088px;}
196
+ .f16 .ru{background-position:0 -3104px;}
197
+ .f16 .rw{background-position:0 -3120px;}
198
+ .f16 .sa{background-position:0 -3136px;}
199
+ .f16 .sb{background-position:0 -3152px;}
200
+ .f16 .sc{background-position:0 -3168px;}
201
+ .f16 .sd{background-position:0 -3184px;}
202
+ .f16 .se{background-position:0 -3200px;}
203
+ .f16 .sg{background-position:0 -3216px;}
204
+ .f16 .si{background-position:0 -3232px;}
205
+ .f16 .sk{background-position:0 -3248px;}
206
+ .f16 .sl{background-position:0 -3264px;}
207
+ .f16 .sm{background-position:0 -3280px;}
208
+ .f16 .sn{background-position:0 -3296px;}
209
+ .f16 .so{background-position:0 -3312px;}
210
+ .f16 .sr{background-position:0 -3328px;}
211
+ .f16 .st{background-position:0 -3344px;}
212
+ .f16 .sv{background-position:0 -3360px;}
213
+ .f16 .sy{background-position:0 -3376px;}
214
+ .f16 .sz{background-position:0 -3392px;}
215
+ .f16 .tc{background-position:0 -3408px;}
216
+ .f16 .td{background-position:0 -3424px;}
217
+ .f16 .tg{background-position:0 -3440px;}
218
+ .f16 .th{background-position:0 -3456px;}
219
+ .f16 .tj{background-position:0 -3472px;}
220
+ .f16 .tl{background-position:0 -3488px;}
221
+ .f16 .tm{background-position:0 -3504px;}
222
+ .f16 .tn{background-position:0 -3520px;}
223
+ .f16 .to{background-position:0 -3536px;}
224
+ .f16 .tr{background-position:0 -3552px;}
225
+ .f16 .tt{background-position:0 -3568px;}
226
+ .f16 .tv{background-position:0 -3584px;}
227
+ .f16 .tw{background-position:0 -3600px;}
228
+ .f16 .tz{background-position:0 -3616px;}
229
+ .f16 .ua{background-position:0 -3632px;}
230
+ .f16 .ug{background-position:0 -3648px;}
231
+ .f16 .us{background-position:0 -3664px;}
232
+ .f16 .uy{background-position:0 -3680px;}
233
+ .f16 .uz{background-position:0 -3696px;}
234
+ .f16 .va{background-position:0 -3712px;}
235
+ .f16 .vc{background-position:0 -3728px;}
236
+ .f16 .ve{background-position:0 -3744px;}
237
+ .f16 .vg{background-position:0 -3760px;}
238
+ .f16 .vi{background-position:0 -3776px;}
239
+ .f16 .vn{background-position:0 -3792px;}
240
+ .f16 .vu{background-position:0 -3808px;}
241
+ .f16 .ws{background-position:0 -3824px;}
242
+ .f16 .ye{background-position:0 -3840px;}
243
+ .f16 .za{background-position:0 -3856px;}
244
+ .f16 .zm{background-position:0 -3872px;}
245
+ .f16 .zw{background-position:0 -3888px;}
246
+ .f16 .sx{background-position:0 -3904px;}
247
+ .f16 .cw{background-position:0 -3920px;}
248
+ .f16 .ss{background-position:0 -3936px;}
249
+ .f16 .nu{background-position:0 -3952px;}