@madie/madie-design-system 1.0.0 → 1.0.3

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 (250) hide show
  1. package/.storybook/main.js +3 -0
  2. package/README.md +2 -3
  3. package/components/Accordion/Accordion.stories.js +11 -11
  4. package/components/Accordion/index.jsx +78 -76
  5. package/components/Alert/Alert.stories.js +60 -51
  6. package/components/Alert/index.js +46 -37
  7. package/components/Breadcrumb/Breadcrumb.stories.js +62 -62
  8. package/components/Breadcrumb/index.js +80 -71
  9. package/components/Button/Button.stories.js +92 -86
  10. package/components/Button/index.js +65 -65
  11. package/components/CalloutBox/CalloutBox.stories.js +75 -75
  12. package/components/CalloutBox/index.js +92 -92
  13. package/components/Card/Card.stories.js +135 -135
  14. package/components/Card/index.js +128 -121
  15. package/components/Dropdown/Dropdown.stories.js +73 -73
  16. package/components/Dropdown/index.js +72 -72
  17. package/components/Error/Collapsible.jsx +75 -70
  18. package/components/Error/ErrorUI.jsx +22 -22
  19. package/components/Error/error.js +20 -20
  20. package/components/FlashNotification/FlashNotificationUI.jsx +77 -77
  21. package/components/FlashNotification/index.js +23 -23
  22. package/components/Footer/Footer.stories.js +13 -13
  23. package/components/Footer/FooterUI.jsx +264 -252
  24. package/components/Footer/LegacyFooterUI.jsx +190 -180
  25. package/components/Footer/SocialLinks.jsx +58 -55
  26. package/components/Footer/Subscribe.jsx +29 -29
  27. package/components/Footer/footer.js +21 -21
  28. package/components/FormControlLabel/index.jsx +23 -0
  29. package/components/Header/Header.stories.js +29 -26
  30. package/components/Header/HeaderAccountMenu.jsx +163 -149
  31. package/components/Header/HeaderCancel.jsx +8 -8
  32. package/components/Header/HeaderContainer.jsx +48 -43
  33. package/components/Header/HeaderLogo.jsx +34 -34
  34. package/components/Header/HeaderMenuButton.js +39 -39
  35. package/components/Header/HeaderMenuItem.jsx +252 -205
  36. package/components/Header/HeaderMenuLink.js +37 -37
  37. package/components/Header/HeaderMenuSignOutButton.js +50 -50
  38. package/components/Header/HeaderMobileButton.js +29 -29
  39. package/components/Header/HeaderUI.jsx +164 -147
  40. package/components/Header/HelpIcon.jsx +15 -15
  41. package/components/Header/ImpersonatorBanner.jsx +50 -47
  42. package/components/Header/NavigationButtonIcon.jsx +21 -21
  43. package/components/Header/header.js +36 -34
  44. package/components/Header/hooks.js +42 -35
  45. package/components/Header/utag-helpers.js +8 -8
  46. package/components/Infotip/Infotip.jsx +48 -48
  47. package/components/Infotip/Infotip.stories.js +32 -30
  48. package/components/Infotip/InfotipIcon.jsx +30 -30
  49. package/components/Infotip/index.js +1 -1
  50. package/components/InputLabel/index.jsx +58 -0
  51. package/components/Link/Link.stories.js +65 -64
  52. package/components/Link/index.js +46 -46
  53. package/components/Modal/LegacyModal.jsx +56 -54
  54. package/components/Modal/Modal.jsx +121 -121
  55. package/components/Modal/Modal.stories.js +152 -144
  56. package/components/Modal/index.jsx +11 -11
  57. package/components/NotificationBanner/NotificationBanner.stories.js +16 -16
  58. package/components/NotificationBanner/index.js +239 -225
  59. package/components/Pagination/index.jsx +212 -0
  60. package/components/SanitizedContent/index.jsx +183 -183
  61. package/components/Search/Search.stories.js +14 -14
  62. package/components/Search/index.js +72 -72
  63. package/components/Select/Select.stories.js +168 -0
  64. package/components/Select/index.jsx +103 -0
  65. package/components/SessionDialog/sessionDialog.js +20 -20
  66. package/components/SessionDialogUI.jsx +231 -219
  67. package/components/SideNav/AnimationGroup/AnimationGroup.jsx +19 -17
  68. package/components/SideNav/Chart/ScoreChart.jsx +238 -229
  69. package/components/SideNav/Chart/__tests__/ScoreChart.test.js +15 -15
  70. package/components/SideNav/Chart/index.js +1 -1
  71. package/components/SideNav/Content/LevelOneContent.jsx +194 -190
  72. package/components/SideNav/Content/LevelTwoContent.jsx +208 -195
  73. package/components/SideNav/Content/index.js +2 -2
  74. package/components/SideNav/Details/IndividualDetails.jsx +10 -10
  75. package/components/SideNav/Details/PracticeDetails.jsx +36 -34
  76. package/components/SideNav/Details/index.js +2 -2
  77. package/components/SideNav/Links/CmsSwitchLink.jsx +32 -32
  78. package/components/SideNav/Links/NavItemInline.jsx +44 -44
  79. package/components/SideNav/Links/NavLinkContainer.jsx +27 -25
  80. package/components/SideNav/Links/NavLinkDrawer.jsx +267 -231
  81. package/components/SideNav/Links/NavLinkInline.jsx +94 -92
  82. package/components/SideNav/Links/NavLinkToggle.jsx +25 -25
  83. package/components/SideNav/Links/index.js +10 -10
  84. package/components/SideNav/SideNav.stories.js +320 -288
  85. package/components/SideNav/UI/SideNavUI.jsx +321 -301
  86. package/components/SideNav/UI/index.js +1 -1
  87. package/components/SideNav/helpers.js +33 -33
  88. package/components/SideNav/index.js +46 -46
  89. package/components/Spinner/index.js +6 -6
  90. package/components/Tabs/Tab.js +19 -19
  91. package/components/Tabs/TabPanel.js +31 -24
  92. package/components/Tabs/Tabs.stories.js +118 -108
  93. package/components/Tabs/index.js +84 -79
  94. package/components/TextField/TextField.stories.js +103 -0
  95. package/components/TextField/index.jsx +80 -0
  96. package/components/TextInput/TextInput.stories.js +84 -84
  97. package/components/TextInput/index.js +123 -123
  98. package/components/Tooltip/Tooltip.jsx +57 -57
  99. package/components/Tooltip/Tooltip.stories.js +50 -50
  100. package/components/Tooltip/index.js +1 -1
  101. package/components/Tooltip/position.js +42 -34
  102. package/components/UnwrappedSpinner/index.js +5 -5
  103. package/components/hooks/useGetConfig.js +64 -55
  104. package/components/index.js +129 -119
  105. package/coverage/clover.xml +1333 -0
  106. package/coverage/coverage-final.json +73 -0
  107. package/coverage/lcov-report/InputLabel/index.html +116 -0
  108. package/coverage/lcov-report/InputLabel/index.jsx.html +214 -0
  109. package/coverage/lcov-report/Select/index.html +116 -0
  110. package/coverage/lcov-report/Select/index.jsx.html +391 -0
  111. package/coverage/lcov-report/Textfield/index.html +116 -0
  112. package/coverage/lcov-report/Textfield/index.jsx.html +322 -0
  113. package/coverage/lcov-report/base.css +224 -0
  114. package/coverage/lcov-report/block-navigation.js +87 -0
  115. package/coverage/lcov-report/favicon.png +0 -0
  116. package/coverage/lcov-report/index.html +506 -0
  117. package/coverage/lcov-report/index.jsx.html +688 -0
  118. package/coverage/lcov-report/prettify.css +1 -0
  119. package/coverage/lcov-report/prettify.js +2 -0
  120. package/coverage/lcov-report/react/components/Accordion/index.html +116 -0
  121. package/coverage/lcov-report/react/components/Accordion/index.jsx.html +370 -0
  122. package/coverage/lcov-report/react/components/Button/index.html +116 -0
  123. package/coverage/lcov-report/react/components/Button/index.js.html +355 -0
  124. package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +364 -0
  125. package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +178 -0
  126. package/coverage/lcov-report/react/components/Error/error.js.html +163 -0
  127. package/coverage/lcov-report/react/components/Error/index.html +146 -0
  128. package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +928 -0
  129. package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +697 -0
  130. package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +274 -0
  131. package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +187 -0
  132. package/coverage/lcov-report/react/components/Footer/footer.js.html +175 -0
  133. package/coverage/lcov-report/react/components/Footer/index.html +176 -0
  134. package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +634 -0
  135. package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +133 -0
  136. package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +289 -0
  137. package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +211 -0
  138. package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +235 -0
  139. package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +922 -0
  140. package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +235 -0
  141. package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +271 -0
  142. package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +196 -0
  143. package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +637 -0
  144. package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +181 -0
  145. package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +265 -0
  146. package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +166 -0
  147. package/coverage/lcov-report/react/components/Header/header.js.html +211 -0
  148. package/coverage/lcov-report/react/components/Header/hooks.js.html +262 -0
  149. package/coverage/lcov-report/react/components/Header/index.html +341 -0
  150. package/coverage/lcov-report/react/components/Header/utag-helpers.js.html +112 -0
  151. package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +310 -0
  152. package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +208 -0
  153. package/coverage/lcov-report/react/components/Infotip/index.html +146 -0
  154. package/coverage/lcov-report/react/components/Infotip/index.js.html +94 -0
  155. package/coverage/lcov-report/react/components/InputLabel/index.html +116 -0
  156. package/coverage/lcov-report/react/components/InputLabel/index.jsx.html +214 -0
  157. package/coverage/lcov-report/react/components/Modal/LegacyModal.jsx.html +307 -0
  158. package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +505 -0
  159. package/coverage/lcov-report/react/components/Modal/index.html +146 -0
  160. package/coverage/lcov-report/react/components/Modal/index.jsx.html +151 -0
  161. package/coverage/lcov-report/react/components/NotificationBanner/index.html +116 -0
  162. package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +922 -0
  163. package/coverage/lcov-report/react/components/Pagination/index.html +116 -0
  164. package/coverage/lcov-report/react/components/Pagination/index.jsx.html +721 -0
  165. package/coverage/lcov-report/react/components/SanitizedContent/index.html +116 -0
  166. package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +685 -0
  167. package/coverage/lcov-report/react/components/Select/index.html +116 -0
  168. package/coverage/lcov-report/react/components/Select/index.jsx.html +391 -0
  169. package/coverage/lcov-report/react/components/SessionDialog/index.html +116 -0
  170. package/coverage/lcov-report/react/components/SessionDialog/sessionDialog.js.html +163 -0
  171. package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +904 -0
  172. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +172 -0
  173. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +116 -0
  174. package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +916 -0
  175. package/coverage/lcov-report/react/components/SideNav/Chart/index.html +131 -0
  176. package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +94 -0
  177. package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +721 -0
  178. package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +772 -0
  179. package/coverage/lcov-report/react/components/SideNav/Content/index.html +146 -0
  180. package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +97 -0
  181. package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +139 -0
  182. package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +226 -0
  183. package/coverage/lcov-report/react/components/SideNav/Details/index.html +146 -0
  184. package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +97 -0
  185. package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +208 -0
  186. package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +247 -0
  187. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +205 -0
  188. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +940 -0
  189. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +412 -0
  190. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +187 -0
  191. package/coverage/lcov-report/react/components/SideNav/Links/index.html +206 -0
  192. package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +124 -0
  193. package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +1144 -0
  194. package/coverage/lcov-report/react/components/SideNav/UI/index.html +131 -0
  195. package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +94 -0
  196. package/coverage/lcov-report/react/components/SideNav/helpers.js.html +232 -0
  197. package/coverage/lcov-report/react/components/SideNav/index.html +131 -0
  198. package/coverage/lcov-report/react/components/SideNav/index.js.html +244 -0
  199. package/coverage/lcov-report/react/components/Textfield/index.html +116 -0
  200. package/coverage/lcov-report/react/components/Textfield/index.jsx.html +322 -0
  201. package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +349 -0
  202. package/coverage/lcov-report/react/components/Tooltip/index.html +146 -0
  203. package/coverage/lcov-report/react/components/Tooltip/index.js.html +94 -0
  204. package/coverage/lcov-report/react/components/Tooltip/position.js.html +313 -0
  205. package/coverage/lcov-report/react/components/hooks/index.html +116 -0
  206. package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +334 -0
  207. package/coverage/lcov-report/react/components/index.html +116 -0
  208. package/coverage/lcov-report/react/index.html +116 -0
  209. package/coverage/lcov-report/react/index.js.html +178 -0
  210. package/coverage/lcov-report/react/lib/Chevron.jsx.html +181 -0
  211. package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +1702 -0
  212. package/coverage/lcov-report/react/lib/index.html +146 -0
  213. package/coverage/lcov-report/react/lib/svg-definitions.svg.html +460 -0
  214. package/coverage/lcov-report/react/session/index.html +161 -0
  215. package/coverage/lcov-report/react/session/index.js.html +100 -0
  216. package/coverage/lcov-report/react/session/logout.js.html +280 -0
  217. package/coverage/lcov-report/react/session/refresh.js.html +232 -0
  218. package/coverage/lcov-report/react/session/ttl.js.html +196 -0
  219. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  220. package/coverage/lcov-report/sorter.js +196 -0
  221. package/coverage/lcov.info +3007 -0
  222. package/dist/browser.js +1 -3
  223. package/dist/index.js +1 -3
  224. package/dist/react/index.html +1 -0
  225. package/dist/react/index.js +199 -1
  226. package/dist/react/index.js.LICENSE.txt +37 -1
  227. package/dist/react/index.js.map +1 -1
  228. package/package.json +29 -15
  229. package/storybook-static/favicon.ico +0 -0
  230. package/styles/qppds/components/_button.scss +29 -1
  231. package/test/components/Accordion.test.js +10 -10
  232. package/test/components/ErrorUI.test.js +29 -30
  233. package/test/components/FooterUI.test.js +82 -80
  234. package/test/components/HeaderUI.test.js +42 -38
  235. package/test/components/Infotip.test.js +64 -61
  236. package/test/components/Pagination.test.js +55 -0
  237. package/test/components/Select.test.js +113 -0
  238. package/test/components/SessionDialogUI.test.js +302 -294
  239. package/test/components/SideNavUI.test.js +19 -19
  240. package/test/components/TextField.test.js +50 -0
  241. package/test/components/Tooltip.test.js +133 -133
  242. package/test/index.test.js +6 -6
  243. package/test/session/session.test.js +200 -200
  244. package/test-setup.js +1 -1
  245. package/webpack.config.js +9 -11
  246. package/webpack.config.react.js +7 -2
  247. package/dist/browser.js.LICENSE.txt +0 -54
  248. package/dist/browser.js.map +0 -1
  249. package/dist/index.js.LICENSE.txt +0 -54
  250. package/dist/index.js.map +0 -1
@@ -0,0 +1,928 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for react/components/Footer/FooterUI.jsx</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">react/components/Footer</a> FooterUI.jsx</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">71.42% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>15/21</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">26.31% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>5/19</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">40% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>2/5</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">71.42% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>15/21</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line medium'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a>
282
+ <a name='L217'></a><a href='#L217'>217</a>
283
+ <a name='L218'></a><a href='#L218'>218</a>
284
+ <a name='L219'></a><a href='#L219'>219</a>
285
+ <a name='L220'></a><a href='#L220'>220</a>
286
+ <a name='L221'></a><a href='#L221'>221</a>
287
+ <a name='L222'></a><a href='#L222'>222</a>
288
+ <a name='L223'></a><a href='#L223'>223</a>
289
+ <a name='L224'></a><a href='#L224'>224</a>
290
+ <a name='L225'></a><a href='#L225'>225</a>
291
+ <a name='L226'></a><a href='#L226'>226</a>
292
+ <a name='L227'></a><a href='#L227'>227</a>
293
+ <a name='L228'></a><a href='#L228'>228</a>
294
+ <a name='L229'></a><a href='#L229'>229</a>
295
+ <a name='L230'></a><a href='#L230'>230</a>
296
+ <a name='L231'></a><a href='#L231'>231</a>
297
+ <a name='L232'></a><a href='#L232'>232</a>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a>
300
+ <a name='L235'></a><a href='#L235'>235</a>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a>
303
+ <a name='L238'></a><a href='#L238'>238</a>
304
+ <a name='L239'></a><a href='#L239'>239</a>
305
+ <a name='L240'></a><a href='#L240'>240</a>
306
+ <a name='L241'></a><a href='#L241'>241</a>
307
+ <a name='L242'></a><a href='#L242'>242</a>
308
+ <a name='L243'></a><a href='#L243'>243</a>
309
+ <a name='L244'></a><a href='#L244'>244</a>
310
+ <a name='L245'></a><a href='#L245'>245</a>
311
+ <a name='L246'></a><a href='#L246'>246</a>
312
+ <a name='L247'></a><a href='#L247'>247</a>
313
+ <a name='L248'></a><a href='#L248'>248</a>
314
+ <a name='L249'></a><a href='#L249'>249</a>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a>
317
+ <a name='L252'></a><a href='#L252'>252</a>
318
+ <a name='L253'></a><a href='#L253'>253</a>
319
+ <a name='L254'></a><a href='#L254'>254</a>
320
+ <a name='L255'></a><a href='#L255'>255</a>
321
+ <a name='L256'></a><a href='#L256'>256</a>
322
+ <a name='L257'></a><a href='#L257'>257</a>
323
+ <a name='L258'></a><a href='#L258'>258</a>
324
+ <a name='L259'></a><a href='#L259'>259</a>
325
+ <a name='L260'></a><a href='#L260'>260</a>
326
+ <a name='L261'></a><a href='#L261'>261</a>
327
+ <a name='L262'></a><a href='#L262'>262</a>
328
+ <a name='L263'></a><a href='#L263'>263</a>
329
+ <a name='L264'></a><a href='#L264'>264</a>
330
+ <a name='L265'></a><a href='#L265'>265</a>
331
+ <a name='L266'></a><a href='#L266'>266</a>
332
+ <a name='L267'></a><a href='#L267'>267</a>
333
+ <a name='L268'></a><a href='#L268'>268</a>
334
+ <a name='L269'></a><a href='#L269'>269</a>
335
+ <a name='L270'></a><a href='#L270'>270</a>
336
+ <a name='L271'></a><a href='#L271'>271</a>
337
+ <a name='L272'></a><a href='#L272'>272</a>
338
+ <a name='L273'></a><a href='#L273'>273</a>
339
+ <a name='L274'></a><a href='#L274'>274</a>
340
+ <a name='L275'></a><a href='#L275'>275</a>
341
+ <a name='L276'></a><a href='#L276'>276</a>
342
+ <a name='L277'></a><a href='#L277'>277</a>
343
+ <a name='L278'></a><a href='#L278'>278</a>
344
+ <a name='L279'></a><a href='#L279'>279</a>
345
+ <a name='L280'></a><a href='#L280'>280</a>
346
+ <a name='L281'></a><a href='#L281'>281</a>
347
+ <a name='L282'></a><a href='#L282'>282</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
348
+ <span class="cline-any cline-neutral">&nbsp;</span>
349
+ <span class="cline-any cline-neutral">&nbsp;</span>
350
+ <span class="cline-any cline-neutral">&nbsp;</span>
351
+ <span class="cline-any cline-neutral">&nbsp;</span>
352
+ <span class="cline-any cline-neutral">&nbsp;</span>
353
+ <span class="cline-any cline-neutral">&nbsp;</span>
354
+ <span class="cline-any cline-neutral">&nbsp;</span>
355
+ <span class="cline-any cline-neutral">&nbsp;</span>
356
+ <span class="cline-any cline-neutral">&nbsp;</span>
357
+ <span class="cline-any cline-yes">2x</span>
358
+ <span class="cline-any cline-neutral">&nbsp;</span>
359
+ <span class="cline-any cline-yes">2x</span>
360
+ <span class="cline-any cline-yes">5x</span>
361
+ <span class="cline-any cline-yes">5x</span>
362
+ <span class="cline-any cline-yes">5x</span>
363
+ <span class="cline-any cline-neutral">&nbsp;</span>
364
+ <span class="cline-any cline-neutral">&nbsp;</span>
365
+ <span class="cline-any cline-yes">5x</span>
366
+ <span class="cline-any cline-neutral">&nbsp;</span>
367
+ <span class="cline-any cline-yes">5x</span>
368
+ <span class="cline-any cline-no">&nbsp;</span>
369
+ <span class="cline-any cline-neutral">&nbsp;</span>
370
+ <span class="cline-any cline-neutral">&nbsp;</span>
371
+ <span class="cline-any cline-neutral">&nbsp;</span>
372
+ <span class="cline-any cline-neutral">&nbsp;</span>
373
+ <span class="cline-any cline-neutral">&nbsp;</span>
374
+ <span class="cline-any cline-neutral">&nbsp;</span>
375
+ <span class="cline-any cline-yes">5x</span>
376
+ <span class="cline-any cline-yes">5x</span>
377
+ <span class="cline-any cline-neutral">&nbsp;</span>
378
+ <span class="cline-any cline-neutral">&nbsp;</span>
379
+ <span class="cline-any cline-yes">5x</span>
380
+ <span class="cline-any cline-neutral">&nbsp;</span>
381
+ <span class="cline-any cline-neutral">&nbsp;</span>
382
+ <span class="cline-any cline-neutral">&nbsp;</span>
383
+ <span class="cline-any cline-no">&nbsp;</span>
384
+ <span class="cline-any cline-neutral">&nbsp;</span>
385
+ <span class="cline-any cline-yes">5x</span>
386
+ <span class="cline-any cline-yes">5x</span>
387
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
+ <span class="cline-any cline-neutral">&nbsp;</span>
389
+ <span class="cline-any cline-neutral">&nbsp;</span>
390
+ <span class="cline-any cline-neutral">&nbsp;</span>
391
+ <span class="cline-any cline-neutral">&nbsp;</span>
392
+ <span class="cline-any cline-neutral">&nbsp;</span>
393
+ <span class="cline-any cline-no">&nbsp;</span>
394
+ <span class="cline-any cline-neutral">&nbsp;</span>
395
+ <span class="cline-any cline-neutral">&nbsp;</span>
396
+ <span class="cline-any cline-neutral">&nbsp;</span>
397
+ <span class="cline-any cline-neutral">&nbsp;</span>
398
+ <span class="cline-any cline-neutral">&nbsp;</span>
399
+ <span class="cline-any cline-no">&nbsp;</span>
400
+ <span class="cline-any cline-neutral">&nbsp;</span>
401
+ <span class="cline-any cline-neutral">&nbsp;</span>
402
+ <span class="cline-any cline-no">&nbsp;</span>
403
+ <span class="cline-any cline-neutral">&nbsp;</span>
404
+ <span class="cline-any cline-neutral">&nbsp;</span>
405
+ <span class="cline-any cline-neutral">&nbsp;</span>
406
+ <span class="cline-any cline-yes">5x</span>
407
+ <span class="cline-any cline-no">&nbsp;</span>
408
+ <span class="cline-any cline-neutral">&nbsp;</span>
409
+ <span class="cline-any cline-neutral">&nbsp;</span>
410
+ <span class="cline-any cline-neutral">&nbsp;</span>
411
+ <span class="cline-any cline-neutral">&nbsp;</span>
412
+ <span class="cline-any cline-neutral">&nbsp;</span>
413
+ <span class="cline-any cline-neutral">&nbsp;</span>
414
+ <span class="cline-any cline-neutral">&nbsp;</span>
415
+ <span class="cline-any cline-neutral">&nbsp;</span>
416
+ <span class="cline-any cline-neutral">&nbsp;</span>
417
+ <span class="cline-any cline-neutral">&nbsp;</span>
418
+ <span class="cline-any cline-neutral">&nbsp;</span>
419
+ <span class="cline-any cline-neutral">&nbsp;</span>
420
+ <span class="cline-any cline-neutral">&nbsp;</span>
421
+ <span class="cline-any cline-neutral">&nbsp;</span>
422
+ <span class="cline-any cline-neutral">&nbsp;</span>
423
+ <span class="cline-any cline-neutral">&nbsp;</span>
424
+ <span class="cline-any cline-neutral">&nbsp;</span>
425
+ <span class="cline-any cline-neutral">&nbsp;</span>
426
+ <span class="cline-any cline-neutral">&nbsp;</span>
427
+ <span class="cline-any cline-neutral">&nbsp;</span>
428
+ <span class="cline-any cline-neutral">&nbsp;</span>
429
+ <span class="cline-any cline-neutral">&nbsp;</span>
430
+ <span class="cline-any cline-neutral">&nbsp;</span>
431
+ <span class="cline-any cline-neutral">&nbsp;</span>
432
+ <span class="cline-any cline-neutral">&nbsp;</span>
433
+ <span class="cline-any cline-neutral">&nbsp;</span>
434
+ <span class="cline-any cline-neutral">&nbsp;</span>
435
+ <span class="cline-any cline-neutral">&nbsp;</span>
436
+ <span class="cline-any cline-neutral">&nbsp;</span>
437
+ <span class="cline-any cline-neutral">&nbsp;</span>
438
+ <span class="cline-any cline-neutral">&nbsp;</span>
439
+ <span class="cline-any cline-neutral">&nbsp;</span>
440
+ <span class="cline-any cline-neutral">&nbsp;</span>
441
+ <span class="cline-any cline-neutral">&nbsp;</span>
442
+ <span class="cline-any cline-neutral">&nbsp;</span>
443
+ <span class="cline-any cline-neutral">&nbsp;</span>
444
+ <span class="cline-any cline-neutral">&nbsp;</span>
445
+ <span class="cline-any cline-neutral">&nbsp;</span>
446
+ <span class="cline-any cline-neutral">&nbsp;</span>
447
+ <span class="cline-any cline-neutral">&nbsp;</span>
448
+ <span class="cline-any cline-neutral">&nbsp;</span>
449
+ <span class="cline-any cline-neutral">&nbsp;</span>
450
+ <span class="cline-any cline-neutral">&nbsp;</span>
451
+ <span class="cline-any cline-neutral">&nbsp;</span>
452
+ <span class="cline-any cline-neutral">&nbsp;</span>
453
+ <span class="cline-any cline-neutral">&nbsp;</span>
454
+ <span class="cline-any cline-neutral">&nbsp;</span>
455
+ <span class="cline-any cline-neutral">&nbsp;</span>
456
+ <span class="cline-any cline-neutral">&nbsp;</span>
457
+ <span class="cline-any cline-neutral">&nbsp;</span>
458
+ <span class="cline-any cline-neutral">&nbsp;</span>
459
+ <span class="cline-any cline-neutral">&nbsp;</span>
460
+ <span class="cline-any cline-neutral">&nbsp;</span>
461
+ <span class="cline-any cline-neutral">&nbsp;</span>
462
+ <span class="cline-any cline-neutral">&nbsp;</span>
463
+ <span class="cline-any cline-neutral">&nbsp;</span>
464
+ <span class="cline-any cline-neutral">&nbsp;</span>
465
+ <span class="cline-any cline-neutral">&nbsp;</span>
466
+ <span class="cline-any cline-neutral">&nbsp;</span>
467
+ <span class="cline-any cline-neutral">&nbsp;</span>
468
+ <span class="cline-any cline-neutral">&nbsp;</span>
469
+ <span class="cline-any cline-neutral">&nbsp;</span>
470
+ <span class="cline-any cline-neutral">&nbsp;</span>
471
+ <span class="cline-any cline-neutral">&nbsp;</span>
472
+ <span class="cline-any cline-neutral">&nbsp;</span>
473
+ <span class="cline-any cline-neutral">&nbsp;</span>
474
+ <span class="cline-any cline-neutral">&nbsp;</span>
475
+ <span class="cline-any cline-neutral">&nbsp;</span>
476
+ <span class="cline-any cline-neutral">&nbsp;</span>
477
+ <span class="cline-any cline-neutral">&nbsp;</span>
478
+ <span class="cline-any cline-neutral">&nbsp;</span>
479
+ <span class="cline-any cline-neutral">&nbsp;</span>
480
+ <span class="cline-any cline-neutral">&nbsp;</span>
481
+ <span class="cline-any cline-neutral">&nbsp;</span>
482
+ <span class="cline-any cline-neutral">&nbsp;</span>
483
+ <span class="cline-any cline-neutral">&nbsp;</span>
484
+ <span class="cline-any cline-neutral">&nbsp;</span>
485
+ <span class="cline-any cline-neutral">&nbsp;</span>
486
+ <span class="cline-any cline-neutral">&nbsp;</span>
487
+ <span class="cline-any cline-neutral">&nbsp;</span>
488
+ <span class="cline-any cline-neutral">&nbsp;</span>
489
+ <span class="cline-any cline-neutral">&nbsp;</span>
490
+ <span class="cline-any cline-neutral">&nbsp;</span>
491
+ <span class="cline-any cline-neutral">&nbsp;</span>
492
+ <span class="cline-any cline-neutral">&nbsp;</span>
493
+ <span class="cline-any cline-neutral">&nbsp;</span>
494
+ <span class="cline-any cline-neutral">&nbsp;</span>
495
+ <span class="cline-any cline-neutral">&nbsp;</span>
496
+ <span class="cline-any cline-neutral">&nbsp;</span>
497
+ <span class="cline-any cline-neutral">&nbsp;</span>
498
+ <span class="cline-any cline-neutral">&nbsp;</span>
499
+ <span class="cline-any cline-neutral">&nbsp;</span>
500
+ <span class="cline-any cline-neutral">&nbsp;</span>
501
+ <span class="cline-any cline-neutral">&nbsp;</span>
502
+ <span class="cline-any cline-neutral">&nbsp;</span>
503
+ <span class="cline-any cline-neutral">&nbsp;</span>
504
+ <span class="cline-any cline-neutral">&nbsp;</span>
505
+ <span class="cline-any cline-neutral">&nbsp;</span>
506
+ <span class="cline-any cline-neutral">&nbsp;</span>
507
+ <span class="cline-any cline-neutral">&nbsp;</span>
508
+ <span class="cline-any cline-neutral">&nbsp;</span>
509
+ <span class="cline-any cline-neutral">&nbsp;</span>
510
+ <span class="cline-any cline-neutral">&nbsp;</span>
511
+ <span class="cline-any cline-neutral">&nbsp;</span>
512
+ <span class="cline-any cline-neutral">&nbsp;</span>
513
+ <span class="cline-any cline-neutral">&nbsp;</span>
514
+ <span class="cline-any cline-neutral">&nbsp;</span>
515
+ <span class="cline-any cline-neutral">&nbsp;</span>
516
+ <span class="cline-any cline-neutral">&nbsp;</span>
517
+ <span class="cline-any cline-neutral">&nbsp;</span>
518
+ <span class="cline-any cline-neutral">&nbsp;</span>
519
+ <span class="cline-any cline-neutral">&nbsp;</span>
520
+ <span class="cline-any cline-neutral">&nbsp;</span>
521
+ <span class="cline-any cline-neutral">&nbsp;</span>
522
+ <span class="cline-any cline-neutral">&nbsp;</span>
523
+ <span class="cline-any cline-neutral">&nbsp;</span>
524
+ <span class="cline-any cline-neutral">&nbsp;</span>
525
+ <span class="cline-any cline-neutral">&nbsp;</span>
526
+ <span class="cline-any cline-neutral">&nbsp;</span>
527
+ <span class="cline-any cline-neutral">&nbsp;</span>
528
+ <span class="cline-any cline-neutral">&nbsp;</span>
529
+ <span class="cline-any cline-neutral">&nbsp;</span>
530
+ <span class="cline-any cline-neutral">&nbsp;</span>
531
+ <span class="cline-any cline-neutral">&nbsp;</span>
532
+ <span class="cline-any cline-neutral">&nbsp;</span>
533
+ <span class="cline-any cline-neutral">&nbsp;</span>
534
+ <span class="cline-any cline-neutral">&nbsp;</span>
535
+ <span class="cline-any cline-neutral">&nbsp;</span>
536
+ <span class="cline-any cline-neutral">&nbsp;</span>
537
+ <span class="cline-any cline-neutral">&nbsp;</span>
538
+ <span class="cline-any cline-neutral">&nbsp;</span>
539
+ <span class="cline-any cline-neutral">&nbsp;</span>
540
+ <span class="cline-any cline-neutral">&nbsp;</span>
541
+ <span class="cline-any cline-neutral">&nbsp;</span>
542
+ <span class="cline-any cline-neutral">&nbsp;</span>
543
+ <span class="cline-any cline-neutral">&nbsp;</span>
544
+ <span class="cline-any cline-neutral">&nbsp;</span>
545
+ <span class="cline-any cline-neutral">&nbsp;</span>
546
+ <span class="cline-any cline-neutral">&nbsp;</span>
547
+ <span class="cline-any cline-neutral">&nbsp;</span>
548
+ <span class="cline-any cline-neutral">&nbsp;</span>
549
+ <span class="cline-any cline-neutral">&nbsp;</span>
550
+ <span class="cline-any cline-neutral">&nbsp;</span>
551
+ <span class="cline-any cline-neutral">&nbsp;</span>
552
+ <span class="cline-any cline-neutral">&nbsp;</span>
553
+ <span class="cline-any cline-neutral">&nbsp;</span>
554
+ <span class="cline-any cline-neutral">&nbsp;</span>
555
+ <span class="cline-any cline-neutral">&nbsp;</span>
556
+ <span class="cline-any cline-neutral">&nbsp;</span>
557
+ <span class="cline-any cline-neutral">&nbsp;</span>
558
+ <span class="cline-any cline-neutral">&nbsp;</span>
559
+ <span class="cline-any cline-neutral">&nbsp;</span>
560
+ <span class="cline-any cline-neutral">&nbsp;</span>
561
+ <span class="cline-any cline-neutral">&nbsp;</span>
562
+ <span class="cline-any cline-neutral">&nbsp;</span>
563
+ <span class="cline-any cline-neutral">&nbsp;</span>
564
+ <span class="cline-any cline-neutral">&nbsp;</span>
565
+ <span class="cline-any cline-neutral">&nbsp;</span>
566
+ <span class="cline-any cline-neutral">&nbsp;</span>
567
+ <span class="cline-any cline-neutral">&nbsp;</span>
568
+ <span class="cline-any cline-neutral">&nbsp;</span>
569
+ <span class="cline-any cline-neutral">&nbsp;</span>
570
+ <span class="cline-any cline-neutral">&nbsp;</span>
571
+ <span class="cline-any cline-neutral">&nbsp;</span>
572
+ <span class="cline-any cline-neutral">&nbsp;</span>
573
+ <span class="cline-any cline-neutral">&nbsp;</span>
574
+ <span class="cline-any cline-neutral">&nbsp;</span>
575
+ <span class="cline-any cline-neutral">&nbsp;</span>
576
+ <span class="cline-any cline-neutral">&nbsp;</span>
577
+ <span class="cline-any cline-neutral">&nbsp;</span>
578
+ <span class="cline-any cline-neutral">&nbsp;</span>
579
+ <span class="cline-any cline-neutral">&nbsp;</span>
580
+ <span class="cline-any cline-neutral">&nbsp;</span>
581
+ <span class="cline-any cline-neutral">&nbsp;</span>
582
+ <span class="cline-any cline-neutral">&nbsp;</span>
583
+ <span class="cline-any cline-neutral">&nbsp;</span>
584
+ <span class="cline-any cline-neutral">&nbsp;</span>
585
+ <span class="cline-any cline-neutral">&nbsp;</span>
586
+ <span class="cline-any cline-neutral">&nbsp;</span>
587
+ <span class="cline-any cline-neutral">&nbsp;</span>
588
+ <span class="cline-any cline-neutral">&nbsp;</span>
589
+ <span class="cline-any cline-neutral">&nbsp;</span>
590
+ <span class="cline-any cline-neutral">&nbsp;</span>
591
+ <span class="cline-any cline-neutral">&nbsp;</span>
592
+ <span class="cline-any cline-neutral">&nbsp;</span>
593
+ <span class="cline-any cline-neutral">&nbsp;</span>
594
+ <span class="cline-any cline-neutral">&nbsp;</span>
595
+ <span class="cline-any cline-neutral">&nbsp;</span>
596
+ <span class="cline-any cline-neutral">&nbsp;</span>
597
+ <span class="cline-any cline-neutral">&nbsp;</span>
598
+ <span class="cline-any cline-neutral">&nbsp;</span>
599
+ <span class="cline-any cline-neutral">&nbsp;</span>
600
+ <span class="cline-any cline-neutral">&nbsp;</span>
601
+ <span class="cline-any cline-neutral">&nbsp;</span>
602
+ <span class="cline-any cline-neutral">&nbsp;</span>
603
+ <span class="cline-any cline-neutral">&nbsp;</span>
604
+ <span class="cline-any cline-neutral">&nbsp;</span>
605
+ <span class="cline-any cline-neutral">&nbsp;</span>
606
+ <span class="cline-any cline-neutral">&nbsp;</span>
607
+ <span class="cline-any cline-neutral">&nbsp;</span>
608
+ <span class="cline-any cline-neutral">&nbsp;</span>
609
+ <span class="cline-any cline-neutral">&nbsp;</span>
610
+ <span class="cline-any cline-yes">5x</span>
611
+ <span class="cline-any cline-neutral">&nbsp;</span>
612
+ <span class="cline-any cline-neutral">&nbsp;</span>
613
+ <span class="cline-any cline-neutral">&nbsp;</span>
614
+ <span class="cline-any cline-neutral">&nbsp;</span>
615
+ <span class="cline-any cline-neutral">&nbsp;</span>
616
+ <span class="cline-any cline-neutral">&nbsp;</span>
617
+ <span class="cline-any cline-neutral">&nbsp;</span>
618
+ <span class="cline-any cline-neutral">&nbsp;</span>
619
+ <span class="cline-any cline-yes">2x</span>
620
+ <span class="cline-any cline-neutral">&nbsp;</span>
621
+ <span class="cline-any cline-neutral">&nbsp;</span>
622
+ <span class="cline-any cline-neutral">&nbsp;</span>
623
+ <span class="cline-any cline-neutral">&nbsp;</span>
624
+ <span class="cline-any cline-neutral">&nbsp;</span>
625
+ <span class="cline-any cline-neutral">&nbsp;</span>
626
+ <span class="cline-any cline-neutral">&nbsp;</span>
627
+ <span class="cline-any cline-neutral">&nbsp;</span>
628
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useState, useEffect } from "react";
629
+ import PropTypes from "prop-types";
630
+ import axios from "axios";
631
+ &nbsp;
632
+ import InfoTip from "../Infotip/Infotip";
633
+ import LegacyFooterUI from "./LegacyFooterUI";
634
+ import Subscribe from "./Subscribe";
635
+ import SocialLinks from "./SocialLinks";
636
+ &nbsp;
637
+ const infoTipLabel =
638
+ "When dialing 711, you will automatically be connected to a TRS Communications Assistant who will relay your conversation to the help desk agent with strict confidentiality.";
639
+ &nbsp;
640
+ const FooterUI = (props) =&gt; {
641
+ const isNewFooter = props.isNewFooter;
642
+ const isIESupportPage = props.isIESupportPage;
643
+ const signUpNowLink = props.showHcdResearch
644
+ ? <span class="branch-0 cbranch-no" title="branch not covered" >"/about/hcd-research"</span>
645
+ : "mailto:QPPUserResearch@cms.hhs.gov?subject=Sign up for feedback sessions&amp;body=Please let us know your role and how many Tax Identification Numbers (TINs) you represent. Don’t send us your actual TINs, that is confidential information that should not be shared with this email address. If you do not represent a practice, let us know what work you do in connection to QPP.";
646
+ const [listServ, setListServ] = useState(false);
647
+ &nbsp;
648
+ const setLink = <span class="fstat-no" title="function not covered" >(l</span>ink) =&gt; {
649
+ <span class="cstat-no" title="statement not covered" > return isIESupportPage ? "/" : link;</span>
650
+ };
651
+ &nbsp;
652
+ // The footer content is populated with the following priority order:
653
+ // 1. Use the footer content in localStorage if it's there
654
+ // 2. If not, make a call to get it from the QPPFE endpoint. Hydrate the localStorage item with the response.
655
+ // 3. If the call fails, use the default value
656
+ useEffect(() =&gt; {
657
+ const storageContent = JSON.parse(
658
+ localStorage.getItem("qpp_footer_listServ")
659
+ );
660
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (
661
+ storageContent?.content &amp;&amp;
662
+ <span class="branch-1 cbranch-no" title="branch not covered" > new Date().valueOf() &lt; storageContent.expiration</span>
663
+ ) {
664
+ <span class="cstat-no" title="statement not covered" > setListServ(storageContent.listServ);</span>
665
+ } else {
666
+ const origin = window.location.origin;
667
+ axios
668
+ .get(
669
+ !origin.includes("localhost")
670
+ ? <span class="branch-0 cbranch-no" title="branch not covered" >`${origin}/config/footer`</span>
671
+ : "https://qpp.cms.gov/config/footer"
672
+ )
673
+ .then(<span class="fstat-no" title="function not covered" >({</span> data: { data = <span class="branch-0 cbranch-no" title="branch not covered" >{} </span>} }) =&gt; {
674
+ <span class="cstat-no" title="statement not covered" > localStorage.setItem(</span>
675
+ "qpp_footer_listServ",
676
+ JSON.stringify({
677
+ listServ: data.listServ,
678
+ })
679
+ );
680
+ <span class="cstat-no" title="statement not covered" > setListServ(data.listServ);</span>
681
+ })
682
+ .catch(<span class="fstat-no" title="function not covered" >(e</span>) =&gt; {
683
+ <span class="cstat-no" title="statement not covered" > setListServ(false);</span>
684
+ });
685
+ }
686
+ }, []);
687
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (isNewFooter) {
688
+ <span class="cstat-no" title="statement not covered" > return (</span>
689
+ &lt;&gt;
690
+ {!isIESupportPage &amp;&amp; (
691
+ &lt;div className="feedback-session-sign-up"&gt;
692
+ &lt;div className="responsive-container"&gt;
693
+ &lt;hr /&gt;
694
+ &lt;p&gt;
695
+ &lt;strong&gt;Help shape the future of QPP.&lt;/strong&gt;{" "}
696
+ Participate in a user feedback session.{" "}
697
+ &lt;a
698
+ className="email-note-link"
699
+ href={signUpNowLink}
700
+ &gt;
701
+ Sign up now
702
+ &lt;/a&gt;
703
+ &lt;/p&gt;
704
+ &lt;/div&gt;
705
+ &lt;/div&gt;
706
+ )}
707
+ &lt;footer className="global-footer"&gt;
708
+ &lt;div className="build-version" id="build-version"&gt;
709
+ {props.buildVersion}
710
+ &lt;/div&gt;
711
+ &nbsp;
712
+ &lt;div className="responsive-container"&gt;
713
+ &lt;&gt;
714
+ {!isIESupportPage &amp;&amp; (
715
+ &lt;div className="global-footer-container"&gt;
716
+ &lt;div className="footer-resources"&gt;
717
+ &lt;p className="sub-title"&gt;Resources&lt;/p&gt;
718
+ &lt;ul&gt;
719
+ &lt;li&gt;
720
+ &lt;a
721
+ href="/about/resource-library"
722
+ aria-label="Resource Library"
723
+ data-track-category="FooterNav"
724
+ data-track-action="OpenEducationAndTools"
725
+ data-track-label="Education and Tools"
726
+ &gt;
727
+ Resource Library
728
+ &lt;/a&gt;
729
+ &lt;/li&gt;
730
+ &lt;li&gt;
731
+ &lt;a
732
+ href="/resources/help-and-support"
733
+ aria-label="Help and Support"
734
+ data-track-category="FooterNav"
735
+ data-track-action="OpenHelpAndSupport"
736
+ data-track-label="Help and Support"
737
+ &gt;
738
+ Help and Support
739
+ &lt;/a&gt;
740
+ &lt;/li&gt;
741
+ &lt;li&gt;
742
+ &lt;a
743
+ href="/about/small-underserved-rural-practices"
744
+ aria-label="Support for Small Practices"
745
+ data-track-category="FooterNav"
746
+ data-track-action="OpenSupportSmallPractices"
747
+ data-track-label="Support for Small Practices"
748
+ &gt;
749
+ Support for Small Practices
750
+ &lt;/a&gt;
751
+ &lt;/li&gt;
752
+ &lt;li&gt;
753
+ &lt;a
754
+ href="/developers"
755
+ aria-label="Developer Tools"
756
+ data-track-category="FooterNav"
757
+ data-track-action="OpenDeveloperTools"
758
+ data-track-label="Quality Payment Program"
759
+ &gt;
760
+ Developer Tools
761
+ &lt;/a&gt;
762
+ &lt;/li&gt;
763
+ &lt;li&gt;
764
+ &lt;a
765
+ href="/glossary"
766
+ aria-label="Glossary"
767
+ data-track-category="FooterNav"
768
+ data-track-action="OpenGlossary"
769
+ data-track-label="Glossary"
770
+ &gt;
771
+ Glossary
772
+ &lt;/a&gt;
773
+ &lt;/li&gt;
774
+ &lt;/ul&gt;
775
+ &lt;/div&gt;
776
+ &lt;div className="footer-contact-cms"&gt;
777
+ &lt;p className="sub-title"&gt;Contact CMS&lt;/p&gt;
778
+ &lt;p className="contact-title"&gt;
779
+ By Phone:
780
+ &lt;/p&gt;
781
+ &lt;p&gt;Monday - Friday 8 a.m - 8 p.m ET&lt;/p&gt;
782
+ &lt;p&gt;
783
+ 1-866-288-8292 (TRS: 711)
784
+ &lt;span className="footer-trs-infotip"&gt;
785
+ &lt;InfoTip label={infoTipLabel} /&gt;
786
+ &lt;/span&gt;
787
+ &lt;/p&gt;
788
+ &nbsp;
789
+ &lt;p className="contact-title"&gt;
790
+ By Email:
791
+ &lt;/p&gt;
792
+ &lt;p&gt;
793
+ &lt;a
794
+ aria-label="QPP@cms.hhs.gov"
795
+ href="mailto:QPP@cms.hhs.gov"
796
+ className="email-link"
797
+ &gt;
798
+ QPP@cms.hhs.gov
799
+ &lt;/a&gt;
800
+ &lt;/p&gt;
801
+ &lt;/div&gt;
802
+ &lt;div className="footer-social-newsletter"&gt;
803
+ &lt;p className="sub-title"&gt;
804
+ Stay Connected
805
+ &lt;/p&gt;
806
+ &lt;SocialLinks /&gt;
807
+ &lt;p className="sub-title"&gt;
808
+ {listServ
809
+ ? "Sign Up for the QPP Listserv"
810
+ : "Sign Up for the QPP Newsletter"}
811
+ &lt;/p&gt;
812
+ &lt;Subscribe /&gt;
813
+ &lt;/div&gt;
814
+ &lt;/div&gt;
815
+ )}
816
+ &lt;hr /&gt;
817
+ &lt;/&gt;
818
+ &nbsp;
819
+ &lt;div className="other-links"&gt;
820
+ &lt;ul className="small"&gt;
821
+ &lt;li&gt;
822
+ &lt;a
823
+ href={setLink("/privacy")}
824
+ aria-label="Notice of Privacy and Disclaimer"
825
+ data-track-category="FooterNav"
826
+ data-track-action="OpenPrivacyDisclaimer"
827
+ data-track-label="Notice of Privacy and Disclaimer"
828
+ &gt;
829
+ CMS Privacy Notice
830
+ &lt;/a&gt;
831
+ &lt;/li&gt;
832
+ &lt;li className="divider"&gt;&lt;/li&gt;{" "}
833
+ &lt;li&gt;
834
+ &lt;a
835
+ href={setLink("/accessibility")}
836
+ aria-label="Accessibility"
837
+ data-track-category="FooterNav"
838
+ data-track-action="OpenAccessibility"
839
+ data-track-label="Accessibility"
840
+ &gt;
841
+ Accessibility
842
+ &lt;/a&gt;
843
+ &lt;/li&gt;
844
+ &lt;li className="divider"&gt;&lt;/li&gt;{" "}
845
+ &lt;li&gt;
846
+ &lt;a
847
+ aria-label="Download Adobe Reader"
848
+ className="adobe-link"
849
+ rel="noopener noreferrer"
850
+ target="_blank"
851
+ href={setLink(
852
+ "https://get.adobe.com/reader"
853
+ )}
854
+ data-track-category="FooterNav"
855
+ data-track-action="DownloadAdobeReader"
856
+ data-track-label="AdobeReader"
857
+ &gt;
858
+ Download Adobe Reader
859
+ &lt;/a&gt;
860
+ &lt;/li&gt;
861
+ &lt;/ul&gt;
862
+ &lt;hr /&gt;
863
+ &lt;/div&gt;
864
+ &lt;div className="qpp-hhs-logo-container"&gt;
865
+ &lt;div className="qpp-logo-container"&gt;
866
+ &lt;img
867
+ className="qpp-logo"
868
+ src="/images/qpp_logo_rgb_color.png"
869
+ alt="qpp logo"
870
+ /&gt;
871
+ &lt;/div&gt;
872
+ &lt;div className="hhs-logo-container"&gt;
873
+ &lt;img
874
+ className="hhs-logo"
875
+ alt="Department of Health &amp;amp; Human Services USA"
876
+ src="/images/hhs-logo-black.svg"
877
+ /&gt;
878
+ &lt;p&gt;
879
+ A federal government website managed and
880
+ paid for by the U.S Centers for Medicare
881
+ &amp;amp; Medicaid Services. 7500 Security
882
+ Boulevard, Baltimore MD 21244
883
+ &lt;/p&gt;
884
+ &lt;/div&gt;
885
+ &lt;/div&gt;
886
+ &lt;/div&gt;
887
+ &lt;/footer&gt;
888
+ &lt;/&gt;
889
+ );
890
+ }
891
+ return (
892
+ &lt;LegacyFooterUI
893
+ buildVersion={props.buildVersion}
894
+ isFullWidth={props.isFullWidth}
895
+ signUpNowLink={signUpNowLink}
896
+ /&gt;
897
+ );
898
+ };
899
+ &nbsp;
900
+ FooterUI.propTypes = {
901
+ buildVersion: PropTypes.string,
902
+ isFullWidth: PropTypes.bool,
903
+ isNewFooter: PropTypes.bool,
904
+ isIESupportPage: PropTypes.bool,
905
+ showHcdResearch: PropTypes.bool,
906
+ };
907
+ &nbsp;
908
+ export default FooterUI;
909
+ &nbsp;</pre></td></tr></table></pre>
910
+
911
+ <div class='push'></div><!-- for sticky footer -->
912
+ </div><!-- /wrapper -->
913
+ <div class='footer quiet pad2 space-top1 center small'>
914
+ Code coverage generated by
915
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
916
+ at Thu Mar 24 2022 11:31:04 GMT-0700 (Pacific Daylight Time)
917
+ </div>
918
+ <script src="../../../prettify.js"></script>
919
+ <script>
920
+ window.onload = function () {
921
+ prettyPrint();
922
+ };
923
+ </script>
924
+ <script src="../../../sorter.js"></script>
925
+ <script src="../../../block-navigation.js"></script>
926
+ </body>
927
+ </html>
928
+