@window-splitter/state 0.2.2

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 (52) hide show
  1. package/.tshy/build.json +8 -0
  2. package/.tshy/commonjs.json +17 -0
  3. package/.tshy/esm.json +16 -0
  4. package/.turbo/turbo-build.log +5 -0
  5. package/.turbo/turbo-lint.log +5 -0
  6. package/.turbo/turbo-test.log +278 -0
  7. package/CHANGELOG.md +191 -0
  8. package/README.md +13 -0
  9. package/coverage/base.css +224 -0
  10. package/coverage/block-navigation.js +87 -0
  11. package/coverage/clover.xml +350 -0
  12. package/coverage/coverage-final.json +2 -0
  13. package/coverage/favicon.png +0 -0
  14. package/coverage/index.html +116 -0
  15. package/coverage/index.ts.html +4627 -0
  16. package/coverage/prettify.css +1 -0
  17. package/coverage/prettify.js +2 -0
  18. package/coverage/sort-arrow-sprite.png +0 -0
  19. package/coverage/sorter.js +196 -0
  20. package/dist/commonjs/index.d.ts +314 -0
  21. package/dist/commonjs/index.d.ts.map +1 -0
  22. package/dist/commonjs/index.js +932 -0
  23. package/dist/commonjs/index.js.map +1 -0
  24. package/dist/commonjs/machine.test.d.ts +5 -0
  25. package/dist/commonjs/machine.test.d.ts.map +1 -0
  26. package/dist/commonjs/machine.test.js +1038 -0
  27. package/dist/commonjs/machine.test.js.map +1 -0
  28. package/dist/commonjs/package.json +3 -0
  29. package/dist/commonjs/utils.test.d.ts +2 -0
  30. package/dist/commonjs/utils.test.d.ts.map +1 -0
  31. package/dist/commonjs/utils.test.js +79 -0
  32. package/dist/commonjs/utils.test.js.map +1 -0
  33. package/dist/esm/index.d.ts +314 -0
  34. package/dist/esm/index.d.ts.map +1 -0
  35. package/dist/esm/index.js +890 -0
  36. package/dist/esm/index.js.map +1 -0
  37. package/dist/esm/machine.test.d.ts +5 -0
  38. package/dist/esm/machine.test.d.ts.map +1 -0
  39. package/dist/esm/machine.test.js +1036 -0
  40. package/dist/esm/machine.test.js.map +1 -0
  41. package/dist/esm/package.json +3 -0
  42. package/dist/esm/utils.test.d.ts +2 -0
  43. package/dist/esm/utils.test.d.ts.map +1 -0
  44. package/dist/esm/utils.test.js +77 -0
  45. package/dist/esm/utils.test.js.map +1 -0
  46. package/eslint.config.js +3 -0
  47. package/package.json +79 -0
  48. package/src/index.ts +1514 -0
  49. package/src/machine.test.ts +1316 -0
  50. package/src/utils.test.ts +104 -0
  51. package/tsconfig.json +3 -0
  52. package/vitest.config.ts +16 -0
@@ -0,0 +1,4627 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for index.ts</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> index.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">98.56% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>344/349</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">96.18% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>277/288</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>71/71</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">98.53% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>336/341</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 type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></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>
348
+ <a name='L283'></a><a href='#L283'>283</a>
349
+ <a name='L284'></a><a href='#L284'>284</a>
350
+ <a name='L285'></a><a href='#L285'>285</a>
351
+ <a name='L286'></a><a href='#L286'>286</a>
352
+ <a name='L287'></a><a href='#L287'>287</a>
353
+ <a name='L288'></a><a href='#L288'>288</a>
354
+ <a name='L289'></a><a href='#L289'>289</a>
355
+ <a name='L290'></a><a href='#L290'>290</a>
356
+ <a name='L291'></a><a href='#L291'>291</a>
357
+ <a name='L292'></a><a href='#L292'>292</a>
358
+ <a name='L293'></a><a href='#L293'>293</a>
359
+ <a name='L294'></a><a href='#L294'>294</a>
360
+ <a name='L295'></a><a href='#L295'>295</a>
361
+ <a name='L296'></a><a href='#L296'>296</a>
362
+ <a name='L297'></a><a href='#L297'>297</a>
363
+ <a name='L298'></a><a href='#L298'>298</a>
364
+ <a name='L299'></a><a href='#L299'>299</a>
365
+ <a name='L300'></a><a href='#L300'>300</a>
366
+ <a name='L301'></a><a href='#L301'>301</a>
367
+ <a name='L302'></a><a href='#L302'>302</a>
368
+ <a name='L303'></a><a href='#L303'>303</a>
369
+ <a name='L304'></a><a href='#L304'>304</a>
370
+ <a name='L305'></a><a href='#L305'>305</a>
371
+ <a name='L306'></a><a href='#L306'>306</a>
372
+ <a name='L307'></a><a href='#L307'>307</a>
373
+ <a name='L308'></a><a href='#L308'>308</a>
374
+ <a name='L309'></a><a href='#L309'>309</a>
375
+ <a name='L310'></a><a href='#L310'>310</a>
376
+ <a name='L311'></a><a href='#L311'>311</a>
377
+ <a name='L312'></a><a href='#L312'>312</a>
378
+ <a name='L313'></a><a href='#L313'>313</a>
379
+ <a name='L314'></a><a href='#L314'>314</a>
380
+ <a name='L315'></a><a href='#L315'>315</a>
381
+ <a name='L316'></a><a href='#L316'>316</a>
382
+ <a name='L317'></a><a href='#L317'>317</a>
383
+ <a name='L318'></a><a href='#L318'>318</a>
384
+ <a name='L319'></a><a href='#L319'>319</a>
385
+ <a name='L320'></a><a href='#L320'>320</a>
386
+ <a name='L321'></a><a href='#L321'>321</a>
387
+ <a name='L322'></a><a href='#L322'>322</a>
388
+ <a name='L323'></a><a href='#L323'>323</a>
389
+ <a name='L324'></a><a href='#L324'>324</a>
390
+ <a name='L325'></a><a href='#L325'>325</a>
391
+ <a name='L326'></a><a href='#L326'>326</a>
392
+ <a name='L327'></a><a href='#L327'>327</a>
393
+ <a name='L328'></a><a href='#L328'>328</a>
394
+ <a name='L329'></a><a href='#L329'>329</a>
395
+ <a name='L330'></a><a href='#L330'>330</a>
396
+ <a name='L331'></a><a href='#L331'>331</a>
397
+ <a name='L332'></a><a href='#L332'>332</a>
398
+ <a name='L333'></a><a href='#L333'>333</a>
399
+ <a name='L334'></a><a href='#L334'>334</a>
400
+ <a name='L335'></a><a href='#L335'>335</a>
401
+ <a name='L336'></a><a href='#L336'>336</a>
402
+ <a name='L337'></a><a href='#L337'>337</a>
403
+ <a name='L338'></a><a href='#L338'>338</a>
404
+ <a name='L339'></a><a href='#L339'>339</a>
405
+ <a name='L340'></a><a href='#L340'>340</a>
406
+ <a name='L341'></a><a href='#L341'>341</a>
407
+ <a name='L342'></a><a href='#L342'>342</a>
408
+ <a name='L343'></a><a href='#L343'>343</a>
409
+ <a name='L344'></a><a href='#L344'>344</a>
410
+ <a name='L345'></a><a href='#L345'>345</a>
411
+ <a name='L346'></a><a href='#L346'>346</a>
412
+ <a name='L347'></a><a href='#L347'>347</a>
413
+ <a name='L348'></a><a href='#L348'>348</a>
414
+ <a name='L349'></a><a href='#L349'>349</a>
415
+ <a name='L350'></a><a href='#L350'>350</a>
416
+ <a name='L351'></a><a href='#L351'>351</a>
417
+ <a name='L352'></a><a href='#L352'>352</a>
418
+ <a name='L353'></a><a href='#L353'>353</a>
419
+ <a name='L354'></a><a href='#L354'>354</a>
420
+ <a name='L355'></a><a href='#L355'>355</a>
421
+ <a name='L356'></a><a href='#L356'>356</a>
422
+ <a name='L357'></a><a href='#L357'>357</a>
423
+ <a name='L358'></a><a href='#L358'>358</a>
424
+ <a name='L359'></a><a href='#L359'>359</a>
425
+ <a name='L360'></a><a href='#L360'>360</a>
426
+ <a name='L361'></a><a href='#L361'>361</a>
427
+ <a name='L362'></a><a href='#L362'>362</a>
428
+ <a name='L363'></a><a href='#L363'>363</a>
429
+ <a name='L364'></a><a href='#L364'>364</a>
430
+ <a name='L365'></a><a href='#L365'>365</a>
431
+ <a name='L366'></a><a href='#L366'>366</a>
432
+ <a name='L367'></a><a href='#L367'>367</a>
433
+ <a name='L368'></a><a href='#L368'>368</a>
434
+ <a name='L369'></a><a href='#L369'>369</a>
435
+ <a name='L370'></a><a href='#L370'>370</a>
436
+ <a name='L371'></a><a href='#L371'>371</a>
437
+ <a name='L372'></a><a href='#L372'>372</a>
438
+ <a name='L373'></a><a href='#L373'>373</a>
439
+ <a name='L374'></a><a href='#L374'>374</a>
440
+ <a name='L375'></a><a href='#L375'>375</a>
441
+ <a name='L376'></a><a href='#L376'>376</a>
442
+ <a name='L377'></a><a href='#L377'>377</a>
443
+ <a name='L378'></a><a href='#L378'>378</a>
444
+ <a name='L379'></a><a href='#L379'>379</a>
445
+ <a name='L380'></a><a href='#L380'>380</a>
446
+ <a name='L381'></a><a href='#L381'>381</a>
447
+ <a name='L382'></a><a href='#L382'>382</a>
448
+ <a name='L383'></a><a href='#L383'>383</a>
449
+ <a name='L384'></a><a href='#L384'>384</a>
450
+ <a name='L385'></a><a href='#L385'>385</a>
451
+ <a name='L386'></a><a href='#L386'>386</a>
452
+ <a name='L387'></a><a href='#L387'>387</a>
453
+ <a name='L388'></a><a href='#L388'>388</a>
454
+ <a name='L389'></a><a href='#L389'>389</a>
455
+ <a name='L390'></a><a href='#L390'>390</a>
456
+ <a name='L391'></a><a href='#L391'>391</a>
457
+ <a name='L392'></a><a href='#L392'>392</a>
458
+ <a name='L393'></a><a href='#L393'>393</a>
459
+ <a name='L394'></a><a href='#L394'>394</a>
460
+ <a name='L395'></a><a href='#L395'>395</a>
461
+ <a name='L396'></a><a href='#L396'>396</a>
462
+ <a name='L397'></a><a href='#L397'>397</a>
463
+ <a name='L398'></a><a href='#L398'>398</a>
464
+ <a name='L399'></a><a href='#L399'>399</a>
465
+ <a name='L400'></a><a href='#L400'>400</a>
466
+ <a name='L401'></a><a href='#L401'>401</a>
467
+ <a name='L402'></a><a href='#L402'>402</a>
468
+ <a name='L403'></a><a href='#L403'>403</a>
469
+ <a name='L404'></a><a href='#L404'>404</a>
470
+ <a name='L405'></a><a href='#L405'>405</a>
471
+ <a name='L406'></a><a href='#L406'>406</a>
472
+ <a name='L407'></a><a href='#L407'>407</a>
473
+ <a name='L408'></a><a href='#L408'>408</a>
474
+ <a name='L409'></a><a href='#L409'>409</a>
475
+ <a name='L410'></a><a href='#L410'>410</a>
476
+ <a name='L411'></a><a href='#L411'>411</a>
477
+ <a name='L412'></a><a href='#L412'>412</a>
478
+ <a name='L413'></a><a href='#L413'>413</a>
479
+ <a name='L414'></a><a href='#L414'>414</a>
480
+ <a name='L415'></a><a href='#L415'>415</a>
481
+ <a name='L416'></a><a href='#L416'>416</a>
482
+ <a name='L417'></a><a href='#L417'>417</a>
483
+ <a name='L418'></a><a href='#L418'>418</a>
484
+ <a name='L419'></a><a href='#L419'>419</a>
485
+ <a name='L420'></a><a href='#L420'>420</a>
486
+ <a name='L421'></a><a href='#L421'>421</a>
487
+ <a name='L422'></a><a href='#L422'>422</a>
488
+ <a name='L423'></a><a href='#L423'>423</a>
489
+ <a name='L424'></a><a href='#L424'>424</a>
490
+ <a name='L425'></a><a href='#L425'>425</a>
491
+ <a name='L426'></a><a href='#L426'>426</a>
492
+ <a name='L427'></a><a href='#L427'>427</a>
493
+ <a name='L428'></a><a href='#L428'>428</a>
494
+ <a name='L429'></a><a href='#L429'>429</a>
495
+ <a name='L430'></a><a href='#L430'>430</a>
496
+ <a name='L431'></a><a href='#L431'>431</a>
497
+ <a name='L432'></a><a href='#L432'>432</a>
498
+ <a name='L433'></a><a href='#L433'>433</a>
499
+ <a name='L434'></a><a href='#L434'>434</a>
500
+ <a name='L435'></a><a href='#L435'>435</a>
501
+ <a name='L436'></a><a href='#L436'>436</a>
502
+ <a name='L437'></a><a href='#L437'>437</a>
503
+ <a name='L438'></a><a href='#L438'>438</a>
504
+ <a name='L439'></a><a href='#L439'>439</a>
505
+ <a name='L440'></a><a href='#L440'>440</a>
506
+ <a name='L441'></a><a href='#L441'>441</a>
507
+ <a name='L442'></a><a href='#L442'>442</a>
508
+ <a name='L443'></a><a href='#L443'>443</a>
509
+ <a name='L444'></a><a href='#L444'>444</a>
510
+ <a name='L445'></a><a href='#L445'>445</a>
511
+ <a name='L446'></a><a href='#L446'>446</a>
512
+ <a name='L447'></a><a href='#L447'>447</a>
513
+ <a name='L448'></a><a href='#L448'>448</a>
514
+ <a name='L449'></a><a href='#L449'>449</a>
515
+ <a name='L450'></a><a href='#L450'>450</a>
516
+ <a name='L451'></a><a href='#L451'>451</a>
517
+ <a name='L452'></a><a href='#L452'>452</a>
518
+ <a name='L453'></a><a href='#L453'>453</a>
519
+ <a name='L454'></a><a href='#L454'>454</a>
520
+ <a name='L455'></a><a href='#L455'>455</a>
521
+ <a name='L456'></a><a href='#L456'>456</a>
522
+ <a name='L457'></a><a href='#L457'>457</a>
523
+ <a name='L458'></a><a href='#L458'>458</a>
524
+ <a name='L459'></a><a href='#L459'>459</a>
525
+ <a name='L460'></a><a href='#L460'>460</a>
526
+ <a name='L461'></a><a href='#L461'>461</a>
527
+ <a name='L462'></a><a href='#L462'>462</a>
528
+ <a name='L463'></a><a href='#L463'>463</a>
529
+ <a name='L464'></a><a href='#L464'>464</a>
530
+ <a name='L465'></a><a href='#L465'>465</a>
531
+ <a name='L466'></a><a href='#L466'>466</a>
532
+ <a name='L467'></a><a href='#L467'>467</a>
533
+ <a name='L468'></a><a href='#L468'>468</a>
534
+ <a name='L469'></a><a href='#L469'>469</a>
535
+ <a name='L470'></a><a href='#L470'>470</a>
536
+ <a name='L471'></a><a href='#L471'>471</a>
537
+ <a name='L472'></a><a href='#L472'>472</a>
538
+ <a name='L473'></a><a href='#L473'>473</a>
539
+ <a name='L474'></a><a href='#L474'>474</a>
540
+ <a name='L475'></a><a href='#L475'>475</a>
541
+ <a name='L476'></a><a href='#L476'>476</a>
542
+ <a name='L477'></a><a href='#L477'>477</a>
543
+ <a name='L478'></a><a href='#L478'>478</a>
544
+ <a name='L479'></a><a href='#L479'>479</a>
545
+ <a name='L480'></a><a href='#L480'>480</a>
546
+ <a name='L481'></a><a href='#L481'>481</a>
547
+ <a name='L482'></a><a href='#L482'>482</a>
548
+ <a name='L483'></a><a href='#L483'>483</a>
549
+ <a name='L484'></a><a href='#L484'>484</a>
550
+ <a name='L485'></a><a href='#L485'>485</a>
551
+ <a name='L486'></a><a href='#L486'>486</a>
552
+ <a name='L487'></a><a href='#L487'>487</a>
553
+ <a name='L488'></a><a href='#L488'>488</a>
554
+ <a name='L489'></a><a href='#L489'>489</a>
555
+ <a name='L490'></a><a href='#L490'>490</a>
556
+ <a name='L491'></a><a href='#L491'>491</a>
557
+ <a name='L492'></a><a href='#L492'>492</a>
558
+ <a name='L493'></a><a href='#L493'>493</a>
559
+ <a name='L494'></a><a href='#L494'>494</a>
560
+ <a name='L495'></a><a href='#L495'>495</a>
561
+ <a name='L496'></a><a href='#L496'>496</a>
562
+ <a name='L497'></a><a href='#L497'>497</a>
563
+ <a name='L498'></a><a href='#L498'>498</a>
564
+ <a name='L499'></a><a href='#L499'>499</a>
565
+ <a name='L500'></a><a href='#L500'>500</a>
566
+ <a name='L501'></a><a href='#L501'>501</a>
567
+ <a name='L502'></a><a href='#L502'>502</a>
568
+ <a name='L503'></a><a href='#L503'>503</a>
569
+ <a name='L504'></a><a href='#L504'>504</a>
570
+ <a name='L505'></a><a href='#L505'>505</a>
571
+ <a name='L506'></a><a href='#L506'>506</a>
572
+ <a name='L507'></a><a href='#L507'>507</a>
573
+ <a name='L508'></a><a href='#L508'>508</a>
574
+ <a name='L509'></a><a href='#L509'>509</a>
575
+ <a name='L510'></a><a href='#L510'>510</a>
576
+ <a name='L511'></a><a href='#L511'>511</a>
577
+ <a name='L512'></a><a href='#L512'>512</a>
578
+ <a name='L513'></a><a href='#L513'>513</a>
579
+ <a name='L514'></a><a href='#L514'>514</a>
580
+ <a name='L515'></a><a href='#L515'>515</a>
581
+ <a name='L516'></a><a href='#L516'>516</a>
582
+ <a name='L517'></a><a href='#L517'>517</a>
583
+ <a name='L518'></a><a href='#L518'>518</a>
584
+ <a name='L519'></a><a href='#L519'>519</a>
585
+ <a name='L520'></a><a href='#L520'>520</a>
586
+ <a name='L521'></a><a href='#L521'>521</a>
587
+ <a name='L522'></a><a href='#L522'>522</a>
588
+ <a name='L523'></a><a href='#L523'>523</a>
589
+ <a name='L524'></a><a href='#L524'>524</a>
590
+ <a name='L525'></a><a href='#L525'>525</a>
591
+ <a name='L526'></a><a href='#L526'>526</a>
592
+ <a name='L527'></a><a href='#L527'>527</a>
593
+ <a name='L528'></a><a href='#L528'>528</a>
594
+ <a name='L529'></a><a href='#L529'>529</a>
595
+ <a name='L530'></a><a href='#L530'>530</a>
596
+ <a name='L531'></a><a href='#L531'>531</a>
597
+ <a name='L532'></a><a href='#L532'>532</a>
598
+ <a name='L533'></a><a href='#L533'>533</a>
599
+ <a name='L534'></a><a href='#L534'>534</a>
600
+ <a name='L535'></a><a href='#L535'>535</a>
601
+ <a name='L536'></a><a href='#L536'>536</a>
602
+ <a name='L537'></a><a href='#L537'>537</a>
603
+ <a name='L538'></a><a href='#L538'>538</a>
604
+ <a name='L539'></a><a href='#L539'>539</a>
605
+ <a name='L540'></a><a href='#L540'>540</a>
606
+ <a name='L541'></a><a href='#L541'>541</a>
607
+ <a name='L542'></a><a href='#L542'>542</a>
608
+ <a name='L543'></a><a href='#L543'>543</a>
609
+ <a name='L544'></a><a href='#L544'>544</a>
610
+ <a name='L545'></a><a href='#L545'>545</a>
611
+ <a name='L546'></a><a href='#L546'>546</a>
612
+ <a name='L547'></a><a href='#L547'>547</a>
613
+ <a name='L548'></a><a href='#L548'>548</a>
614
+ <a name='L549'></a><a href='#L549'>549</a>
615
+ <a name='L550'></a><a href='#L550'>550</a>
616
+ <a name='L551'></a><a href='#L551'>551</a>
617
+ <a name='L552'></a><a href='#L552'>552</a>
618
+ <a name='L553'></a><a href='#L553'>553</a>
619
+ <a name='L554'></a><a href='#L554'>554</a>
620
+ <a name='L555'></a><a href='#L555'>555</a>
621
+ <a name='L556'></a><a href='#L556'>556</a>
622
+ <a name='L557'></a><a href='#L557'>557</a>
623
+ <a name='L558'></a><a href='#L558'>558</a>
624
+ <a name='L559'></a><a href='#L559'>559</a>
625
+ <a name='L560'></a><a href='#L560'>560</a>
626
+ <a name='L561'></a><a href='#L561'>561</a>
627
+ <a name='L562'></a><a href='#L562'>562</a>
628
+ <a name='L563'></a><a href='#L563'>563</a>
629
+ <a name='L564'></a><a href='#L564'>564</a>
630
+ <a name='L565'></a><a href='#L565'>565</a>
631
+ <a name='L566'></a><a href='#L566'>566</a>
632
+ <a name='L567'></a><a href='#L567'>567</a>
633
+ <a name='L568'></a><a href='#L568'>568</a>
634
+ <a name='L569'></a><a href='#L569'>569</a>
635
+ <a name='L570'></a><a href='#L570'>570</a>
636
+ <a name='L571'></a><a href='#L571'>571</a>
637
+ <a name='L572'></a><a href='#L572'>572</a>
638
+ <a name='L573'></a><a href='#L573'>573</a>
639
+ <a name='L574'></a><a href='#L574'>574</a>
640
+ <a name='L575'></a><a href='#L575'>575</a>
641
+ <a name='L576'></a><a href='#L576'>576</a>
642
+ <a name='L577'></a><a href='#L577'>577</a>
643
+ <a name='L578'></a><a href='#L578'>578</a>
644
+ <a name='L579'></a><a href='#L579'>579</a>
645
+ <a name='L580'></a><a href='#L580'>580</a>
646
+ <a name='L581'></a><a href='#L581'>581</a>
647
+ <a name='L582'></a><a href='#L582'>582</a>
648
+ <a name='L583'></a><a href='#L583'>583</a>
649
+ <a name='L584'></a><a href='#L584'>584</a>
650
+ <a name='L585'></a><a href='#L585'>585</a>
651
+ <a name='L586'></a><a href='#L586'>586</a>
652
+ <a name='L587'></a><a href='#L587'>587</a>
653
+ <a name='L588'></a><a href='#L588'>588</a>
654
+ <a name='L589'></a><a href='#L589'>589</a>
655
+ <a name='L590'></a><a href='#L590'>590</a>
656
+ <a name='L591'></a><a href='#L591'>591</a>
657
+ <a name='L592'></a><a href='#L592'>592</a>
658
+ <a name='L593'></a><a href='#L593'>593</a>
659
+ <a name='L594'></a><a href='#L594'>594</a>
660
+ <a name='L595'></a><a href='#L595'>595</a>
661
+ <a name='L596'></a><a href='#L596'>596</a>
662
+ <a name='L597'></a><a href='#L597'>597</a>
663
+ <a name='L598'></a><a href='#L598'>598</a>
664
+ <a name='L599'></a><a href='#L599'>599</a>
665
+ <a name='L600'></a><a href='#L600'>600</a>
666
+ <a name='L601'></a><a href='#L601'>601</a>
667
+ <a name='L602'></a><a href='#L602'>602</a>
668
+ <a name='L603'></a><a href='#L603'>603</a>
669
+ <a name='L604'></a><a href='#L604'>604</a>
670
+ <a name='L605'></a><a href='#L605'>605</a>
671
+ <a name='L606'></a><a href='#L606'>606</a>
672
+ <a name='L607'></a><a href='#L607'>607</a>
673
+ <a name='L608'></a><a href='#L608'>608</a>
674
+ <a name='L609'></a><a href='#L609'>609</a>
675
+ <a name='L610'></a><a href='#L610'>610</a>
676
+ <a name='L611'></a><a href='#L611'>611</a>
677
+ <a name='L612'></a><a href='#L612'>612</a>
678
+ <a name='L613'></a><a href='#L613'>613</a>
679
+ <a name='L614'></a><a href='#L614'>614</a>
680
+ <a name='L615'></a><a href='#L615'>615</a>
681
+ <a name='L616'></a><a href='#L616'>616</a>
682
+ <a name='L617'></a><a href='#L617'>617</a>
683
+ <a name='L618'></a><a href='#L618'>618</a>
684
+ <a name='L619'></a><a href='#L619'>619</a>
685
+ <a name='L620'></a><a href='#L620'>620</a>
686
+ <a name='L621'></a><a href='#L621'>621</a>
687
+ <a name='L622'></a><a href='#L622'>622</a>
688
+ <a name='L623'></a><a href='#L623'>623</a>
689
+ <a name='L624'></a><a href='#L624'>624</a>
690
+ <a name='L625'></a><a href='#L625'>625</a>
691
+ <a name='L626'></a><a href='#L626'>626</a>
692
+ <a name='L627'></a><a href='#L627'>627</a>
693
+ <a name='L628'></a><a href='#L628'>628</a>
694
+ <a name='L629'></a><a href='#L629'>629</a>
695
+ <a name='L630'></a><a href='#L630'>630</a>
696
+ <a name='L631'></a><a href='#L631'>631</a>
697
+ <a name='L632'></a><a href='#L632'>632</a>
698
+ <a name='L633'></a><a href='#L633'>633</a>
699
+ <a name='L634'></a><a href='#L634'>634</a>
700
+ <a name='L635'></a><a href='#L635'>635</a>
701
+ <a name='L636'></a><a href='#L636'>636</a>
702
+ <a name='L637'></a><a href='#L637'>637</a>
703
+ <a name='L638'></a><a href='#L638'>638</a>
704
+ <a name='L639'></a><a href='#L639'>639</a>
705
+ <a name='L640'></a><a href='#L640'>640</a>
706
+ <a name='L641'></a><a href='#L641'>641</a>
707
+ <a name='L642'></a><a href='#L642'>642</a>
708
+ <a name='L643'></a><a href='#L643'>643</a>
709
+ <a name='L644'></a><a href='#L644'>644</a>
710
+ <a name='L645'></a><a href='#L645'>645</a>
711
+ <a name='L646'></a><a href='#L646'>646</a>
712
+ <a name='L647'></a><a href='#L647'>647</a>
713
+ <a name='L648'></a><a href='#L648'>648</a>
714
+ <a name='L649'></a><a href='#L649'>649</a>
715
+ <a name='L650'></a><a href='#L650'>650</a>
716
+ <a name='L651'></a><a href='#L651'>651</a>
717
+ <a name='L652'></a><a href='#L652'>652</a>
718
+ <a name='L653'></a><a href='#L653'>653</a>
719
+ <a name='L654'></a><a href='#L654'>654</a>
720
+ <a name='L655'></a><a href='#L655'>655</a>
721
+ <a name='L656'></a><a href='#L656'>656</a>
722
+ <a name='L657'></a><a href='#L657'>657</a>
723
+ <a name='L658'></a><a href='#L658'>658</a>
724
+ <a name='L659'></a><a href='#L659'>659</a>
725
+ <a name='L660'></a><a href='#L660'>660</a>
726
+ <a name='L661'></a><a href='#L661'>661</a>
727
+ <a name='L662'></a><a href='#L662'>662</a>
728
+ <a name='L663'></a><a href='#L663'>663</a>
729
+ <a name='L664'></a><a href='#L664'>664</a>
730
+ <a name='L665'></a><a href='#L665'>665</a>
731
+ <a name='L666'></a><a href='#L666'>666</a>
732
+ <a name='L667'></a><a href='#L667'>667</a>
733
+ <a name='L668'></a><a href='#L668'>668</a>
734
+ <a name='L669'></a><a href='#L669'>669</a>
735
+ <a name='L670'></a><a href='#L670'>670</a>
736
+ <a name='L671'></a><a href='#L671'>671</a>
737
+ <a name='L672'></a><a href='#L672'>672</a>
738
+ <a name='L673'></a><a href='#L673'>673</a>
739
+ <a name='L674'></a><a href='#L674'>674</a>
740
+ <a name='L675'></a><a href='#L675'>675</a>
741
+ <a name='L676'></a><a href='#L676'>676</a>
742
+ <a name='L677'></a><a href='#L677'>677</a>
743
+ <a name='L678'></a><a href='#L678'>678</a>
744
+ <a name='L679'></a><a href='#L679'>679</a>
745
+ <a name='L680'></a><a href='#L680'>680</a>
746
+ <a name='L681'></a><a href='#L681'>681</a>
747
+ <a name='L682'></a><a href='#L682'>682</a>
748
+ <a name='L683'></a><a href='#L683'>683</a>
749
+ <a name='L684'></a><a href='#L684'>684</a>
750
+ <a name='L685'></a><a href='#L685'>685</a>
751
+ <a name='L686'></a><a href='#L686'>686</a>
752
+ <a name='L687'></a><a href='#L687'>687</a>
753
+ <a name='L688'></a><a href='#L688'>688</a>
754
+ <a name='L689'></a><a href='#L689'>689</a>
755
+ <a name='L690'></a><a href='#L690'>690</a>
756
+ <a name='L691'></a><a href='#L691'>691</a>
757
+ <a name='L692'></a><a href='#L692'>692</a>
758
+ <a name='L693'></a><a href='#L693'>693</a>
759
+ <a name='L694'></a><a href='#L694'>694</a>
760
+ <a name='L695'></a><a href='#L695'>695</a>
761
+ <a name='L696'></a><a href='#L696'>696</a>
762
+ <a name='L697'></a><a href='#L697'>697</a>
763
+ <a name='L698'></a><a href='#L698'>698</a>
764
+ <a name='L699'></a><a href='#L699'>699</a>
765
+ <a name='L700'></a><a href='#L700'>700</a>
766
+ <a name='L701'></a><a href='#L701'>701</a>
767
+ <a name='L702'></a><a href='#L702'>702</a>
768
+ <a name='L703'></a><a href='#L703'>703</a>
769
+ <a name='L704'></a><a href='#L704'>704</a>
770
+ <a name='L705'></a><a href='#L705'>705</a>
771
+ <a name='L706'></a><a href='#L706'>706</a>
772
+ <a name='L707'></a><a href='#L707'>707</a>
773
+ <a name='L708'></a><a href='#L708'>708</a>
774
+ <a name='L709'></a><a href='#L709'>709</a>
775
+ <a name='L710'></a><a href='#L710'>710</a>
776
+ <a name='L711'></a><a href='#L711'>711</a>
777
+ <a name='L712'></a><a href='#L712'>712</a>
778
+ <a name='L713'></a><a href='#L713'>713</a>
779
+ <a name='L714'></a><a href='#L714'>714</a>
780
+ <a name='L715'></a><a href='#L715'>715</a>
781
+ <a name='L716'></a><a href='#L716'>716</a>
782
+ <a name='L717'></a><a href='#L717'>717</a>
783
+ <a name='L718'></a><a href='#L718'>718</a>
784
+ <a name='L719'></a><a href='#L719'>719</a>
785
+ <a name='L720'></a><a href='#L720'>720</a>
786
+ <a name='L721'></a><a href='#L721'>721</a>
787
+ <a name='L722'></a><a href='#L722'>722</a>
788
+ <a name='L723'></a><a href='#L723'>723</a>
789
+ <a name='L724'></a><a href='#L724'>724</a>
790
+ <a name='L725'></a><a href='#L725'>725</a>
791
+ <a name='L726'></a><a href='#L726'>726</a>
792
+ <a name='L727'></a><a href='#L727'>727</a>
793
+ <a name='L728'></a><a href='#L728'>728</a>
794
+ <a name='L729'></a><a href='#L729'>729</a>
795
+ <a name='L730'></a><a href='#L730'>730</a>
796
+ <a name='L731'></a><a href='#L731'>731</a>
797
+ <a name='L732'></a><a href='#L732'>732</a>
798
+ <a name='L733'></a><a href='#L733'>733</a>
799
+ <a name='L734'></a><a href='#L734'>734</a>
800
+ <a name='L735'></a><a href='#L735'>735</a>
801
+ <a name='L736'></a><a href='#L736'>736</a>
802
+ <a name='L737'></a><a href='#L737'>737</a>
803
+ <a name='L738'></a><a href='#L738'>738</a>
804
+ <a name='L739'></a><a href='#L739'>739</a>
805
+ <a name='L740'></a><a href='#L740'>740</a>
806
+ <a name='L741'></a><a href='#L741'>741</a>
807
+ <a name='L742'></a><a href='#L742'>742</a>
808
+ <a name='L743'></a><a href='#L743'>743</a>
809
+ <a name='L744'></a><a href='#L744'>744</a>
810
+ <a name='L745'></a><a href='#L745'>745</a>
811
+ <a name='L746'></a><a href='#L746'>746</a>
812
+ <a name='L747'></a><a href='#L747'>747</a>
813
+ <a name='L748'></a><a href='#L748'>748</a>
814
+ <a name='L749'></a><a href='#L749'>749</a>
815
+ <a name='L750'></a><a href='#L750'>750</a>
816
+ <a name='L751'></a><a href='#L751'>751</a>
817
+ <a name='L752'></a><a href='#L752'>752</a>
818
+ <a name='L753'></a><a href='#L753'>753</a>
819
+ <a name='L754'></a><a href='#L754'>754</a>
820
+ <a name='L755'></a><a href='#L755'>755</a>
821
+ <a name='L756'></a><a href='#L756'>756</a>
822
+ <a name='L757'></a><a href='#L757'>757</a>
823
+ <a name='L758'></a><a href='#L758'>758</a>
824
+ <a name='L759'></a><a href='#L759'>759</a>
825
+ <a name='L760'></a><a href='#L760'>760</a>
826
+ <a name='L761'></a><a href='#L761'>761</a>
827
+ <a name='L762'></a><a href='#L762'>762</a>
828
+ <a name='L763'></a><a href='#L763'>763</a>
829
+ <a name='L764'></a><a href='#L764'>764</a>
830
+ <a name='L765'></a><a href='#L765'>765</a>
831
+ <a name='L766'></a><a href='#L766'>766</a>
832
+ <a name='L767'></a><a href='#L767'>767</a>
833
+ <a name='L768'></a><a href='#L768'>768</a>
834
+ <a name='L769'></a><a href='#L769'>769</a>
835
+ <a name='L770'></a><a href='#L770'>770</a>
836
+ <a name='L771'></a><a href='#L771'>771</a>
837
+ <a name='L772'></a><a href='#L772'>772</a>
838
+ <a name='L773'></a><a href='#L773'>773</a>
839
+ <a name='L774'></a><a href='#L774'>774</a>
840
+ <a name='L775'></a><a href='#L775'>775</a>
841
+ <a name='L776'></a><a href='#L776'>776</a>
842
+ <a name='L777'></a><a href='#L777'>777</a>
843
+ <a name='L778'></a><a href='#L778'>778</a>
844
+ <a name='L779'></a><a href='#L779'>779</a>
845
+ <a name='L780'></a><a href='#L780'>780</a>
846
+ <a name='L781'></a><a href='#L781'>781</a>
847
+ <a name='L782'></a><a href='#L782'>782</a>
848
+ <a name='L783'></a><a href='#L783'>783</a>
849
+ <a name='L784'></a><a href='#L784'>784</a>
850
+ <a name='L785'></a><a href='#L785'>785</a>
851
+ <a name='L786'></a><a href='#L786'>786</a>
852
+ <a name='L787'></a><a href='#L787'>787</a>
853
+ <a name='L788'></a><a href='#L788'>788</a>
854
+ <a name='L789'></a><a href='#L789'>789</a>
855
+ <a name='L790'></a><a href='#L790'>790</a>
856
+ <a name='L791'></a><a href='#L791'>791</a>
857
+ <a name='L792'></a><a href='#L792'>792</a>
858
+ <a name='L793'></a><a href='#L793'>793</a>
859
+ <a name='L794'></a><a href='#L794'>794</a>
860
+ <a name='L795'></a><a href='#L795'>795</a>
861
+ <a name='L796'></a><a href='#L796'>796</a>
862
+ <a name='L797'></a><a href='#L797'>797</a>
863
+ <a name='L798'></a><a href='#L798'>798</a>
864
+ <a name='L799'></a><a href='#L799'>799</a>
865
+ <a name='L800'></a><a href='#L800'>800</a>
866
+ <a name='L801'></a><a href='#L801'>801</a>
867
+ <a name='L802'></a><a href='#L802'>802</a>
868
+ <a name='L803'></a><a href='#L803'>803</a>
869
+ <a name='L804'></a><a href='#L804'>804</a>
870
+ <a name='L805'></a><a href='#L805'>805</a>
871
+ <a name='L806'></a><a href='#L806'>806</a>
872
+ <a name='L807'></a><a href='#L807'>807</a>
873
+ <a name='L808'></a><a href='#L808'>808</a>
874
+ <a name='L809'></a><a href='#L809'>809</a>
875
+ <a name='L810'></a><a href='#L810'>810</a>
876
+ <a name='L811'></a><a href='#L811'>811</a>
877
+ <a name='L812'></a><a href='#L812'>812</a>
878
+ <a name='L813'></a><a href='#L813'>813</a>
879
+ <a name='L814'></a><a href='#L814'>814</a>
880
+ <a name='L815'></a><a href='#L815'>815</a>
881
+ <a name='L816'></a><a href='#L816'>816</a>
882
+ <a name='L817'></a><a href='#L817'>817</a>
883
+ <a name='L818'></a><a href='#L818'>818</a>
884
+ <a name='L819'></a><a href='#L819'>819</a>
885
+ <a name='L820'></a><a href='#L820'>820</a>
886
+ <a name='L821'></a><a href='#L821'>821</a>
887
+ <a name='L822'></a><a href='#L822'>822</a>
888
+ <a name='L823'></a><a href='#L823'>823</a>
889
+ <a name='L824'></a><a href='#L824'>824</a>
890
+ <a name='L825'></a><a href='#L825'>825</a>
891
+ <a name='L826'></a><a href='#L826'>826</a>
892
+ <a name='L827'></a><a href='#L827'>827</a>
893
+ <a name='L828'></a><a href='#L828'>828</a>
894
+ <a name='L829'></a><a href='#L829'>829</a>
895
+ <a name='L830'></a><a href='#L830'>830</a>
896
+ <a name='L831'></a><a href='#L831'>831</a>
897
+ <a name='L832'></a><a href='#L832'>832</a>
898
+ <a name='L833'></a><a href='#L833'>833</a>
899
+ <a name='L834'></a><a href='#L834'>834</a>
900
+ <a name='L835'></a><a href='#L835'>835</a>
901
+ <a name='L836'></a><a href='#L836'>836</a>
902
+ <a name='L837'></a><a href='#L837'>837</a>
903
+ <a name='L838'></a><a href='#L838'>838</a>
904
+ <a name='L839'></a><a href='#L839'>839</a>
905
+ <a name='L840'></a><a href='#L840'>840</a>
906
+ <a name='L841'></a><a href='#L841'>841</a>
907
+ <a name='L842'></a><a href='#L842'>842</a>
908
+ <a name='L843'></a><a href='#L843'>843</a>
909
+ <a name='L844'></a><a href='#L844'>844</a>
910
+ <a name='L845'></a><a href='#L845'>845</a>
911
+ <a name='L846'></a><a href='#L846'>846</a>
912
+ <a name='L847'></a><a href='#L847'>847</a>
913
+ <a name='L848'></a><a href='#L848'>848</a>
914
+ <a name='L849'></a><a href='#L849'>849</a>
915
+ <a name='L850'></a><a href='#L850'>850</a>
916
+ <a name='L851'></a><a href='#L851'>851</a>
917
+ <a name='L852'></a><a href='#L852'>852</a>
918
+ <a name='L853'></a><a href='#L853'>853</a>
919
+ <a name='L854'></a><a href='#L854'>854</a>
920
+ <a name='L855'></a><a href='#L855'>855</a>
921
+ <a name='L856'></a><a href='#L856'>856</a>
922
+ <a name='L857'></a><a href='#L857'>857</a>
923
+ <a name='L858'></a><a href='#L858'>858</a>
924
+ <a name='L859'></a><a href='#L859'>859</a>
925
+ <a name='L860'></a><a href='#L860'>860</a>
926
+ <a name='L861'></a><a href='#L861'>861</a>
927
+ <a name='L862'></a><a href='#L862'>862</a>
928
+ <a name='L863'></a><a href='#L863'>863</a>
929
+ <a name='L864'></a><a href='#L864'>864</a>
930
+ <a name='L865'></a><a href='#L865'>865</a>
931
+ <a name='L866'></a><a href='#L866'>866</a>
932
+ <a name='L867'></a><a href='#L867'>867</a>
933
+ <a name='L868'></a><a href='#L868'>868</a>
934
+ <a name='L869'></a><a href='#L869'>869</a>
935
+ <a name='L870'></a><a href='#L870'>870</a>
936
+ <a name='L871'></a><a href='#L871'>871</a>
937
+ <a name='L872'></a><a href='#L872'>872</a>
938
+ <a name='L873'></a><a href='#L873'>873</a>
939
+ <a name='L874'></a><a href='#L874'>874</a>
940
+ <a name='L875'></a><a href='#L875'>875</a>
941
+ <a name='L876'></a><a href='#L876'>876</a>
942
+ <a name='L877'></a><a href='#L877'>877</a>
943
+ <a name='L878'></a><a href='#L878'>878</a>
944
+ <a name='L879'></a><a href='#L879'>879</a>
945
+ <a name='L880'></a><a href='#L880'>880</a>
946
+ <a name='L881'></a><a href='#L881'>881</a>
947
+ <a name='L882'></a><a href='#L882'>882</a>
948
+ <a name='L883'></a><a href='#L883'>883</a>
949
+ <a name='L884'></a><a href='#L884'>884</a>
950
+ <a name='L885'></a><a href='#L885'>885</a>
951
+ <a name='L886'></a><a href='#L886'>886</a>
952
+ <a name='L887'></a><a href='#L887'>887</a>
953
+ <a name='L888'></a><a href='#L888'>888</a>
954
+ <a name='L889'></a><a href='#L889'>889</a>
955
+ <a name='L890'></a><a href='#L890'>890</a>
956
+ <a name='L891'></a><a href='#L891'>891</a>
957
+ <a name='L892'></a><a href='#L892'>892</a>
958
+ <a name='L893'></a><a href='#L893'>893</a>
959
+ <a name='L894'></a><a href='#L894'>894</a>
960
+ <a name='L895'></a><a href='#L895'>895</a>
961
+ <a name='L896'></a><a href='#L896'>896</a>
962
+ <a name='L897'></a><a href='#L897'>897</a>
963
+ <a name='L898'></a><a href='#L898'>898</a>
964
+ <a name='L899'></a><a href='#L899'>899</a>
965
+ <a name='L900'></a><a href='#L900'>900</a>
966
+ <a name='L901'></a><a href='#L901'>901</a>
967
+ <a name='L902'></a><a href='#L902'>902</a>
968
+ <a name='L903'></a><a href='#L903'>903</a>
969
+ <a name='L904'></a><a href='#L904'>904</a>
970
+ <a name='L905'></a><a href='#L905'>905</a>
971
+ <a name='L906'></a><a href='#L906'>906</a>
972
+ <a name='L907'></a><a href='#L907'>907</a>
973
+ <a name='L908'></a><a href='#L908'>908</a>
974
+ <a name='L909'></a><a href='#L909'>909</a>
975
+ <a name='L910'></a><a href='#L910'>910</a>
976
+ <a name='L911'></a><a href='#L911'>911</a>
977
+ <a name='L912'></a><a href='#L912'>912</a>
978
+ <a name='L913'></a><a href='#L913'>913</a>
979
+ <a name='L914'></a><a href='#L914'>914</a>
980
+ <a name='L915'></a><a href='#L915'>915</a>
981
+ <a name='L916'></a><a href='#L916'>916</a>
982
+ <a name='L917'></a><a href='#L917'>917</a>
983
+ <a name='L918'></a><a href='#L918'>918</a>
984
+ <a name='L919'></a><a href='#L919'>919</a>
985
+ <a name='L920'></a><a href='#L920'>920</a>
986
+ <a name='L921'></a><a href='#L921'>921</a>
987
+ <a name='L922'></a><a href='#L922'>922</a>
988
+ <a name='L923'></a><a href='#L923'>923</a>
989
+ <a name='L924'></a><a href='#L924'>924</a>
990
+ <a name='L925'></a><a href='#L925'>925</a>
991
+ <a name='L926'></a><a href='#L926'>926</a>
992
+ <a name='L927'></a><a href='#L927'>927</a>
993
+ <a name='L928'></a><a href='#L928'>928</a>
994
+ <a name='L929'></a><a href='#L929'>929</a>
995
+ <a name='L930'></a><a href='#L930'>930</a>
996
+ <a name='L931'></a><a href='#L931'>931</a>
997
+ <a name='L932'></a><a href='#L932'>932</a>
998
+ <a name='L933'></a><a href='#L933'>933</a>
999
+ <a name='L934'></a><a href='#L934'>934</a>
1000
+ <a name='L935'></a><a href='#L935'>935</a>
1001
+ <a name='L936'></a><a href='#L936'>936</a>
1002
+ <a name='L937'></a><a href='#L937'>937</a>
1003
+ <a name='L938'></a><a href='#L938'>938</a>
1004
+ <a name='L939'></a><a href='#L939'>939</a>
1005
+ <a name='L940'></a><a href='#L940'>940</a>
1006
+ <a name='L941'></a><a href='#L941'>941</a>
1007
+ <a name='L942'></a><a href='#L942'>942</a>
1008
+ <a name='L943'></a><a href='#L943'>943</a>
1009
+ <a name='L944'></a><a href='#L944'>944</a>
1010
+ <a name='L945'></a><a href='#L945'>945</a>
1011
+ <a name='L946'></a><a href='#L946'>946</a>
1012
+ <a name='L947'></a><a href='#L947'>947</a>
1013
+ <a name='L948'></a><a href='#L948'>948</a>
1014
+ <a name='L949'></a><a href='#L949'>949</a>
1015
+ <a name='L950'></a><a href='#L950'>950</a>
1016
+ <a name='L951'></a><a href='#L951'>951</a>
1017
+ <a name='L952'></a><a href='#L952'>952</a>
1018
+ <a name='L953'></a><a href='#L953'>953</a>
1019
+ <a name='L954'></a><a href='#L954'>954</a>
1020
+ <a name='L955'></a><a href='#L955'>955</a>
1021
+ <a name='L956'></a><a href='#L956'>956</a>
1022
+ <a name='L957'></a><a href='#L957'>957</a>
1023
+ <a name='L958'></a><a href='#L958'>958</a>
1024
+ <a name='L959'></a><a href='#L959'>959</a>
1025
+ <a name='L960'></a><a href='#L960'>960</a>
1026
+ <a name='L961'></a><a href='#L961'>961</a>
1027
+ <a name='L962'></a><a href='#L962'>962</a>
1028
+ <a name='L963'></a><a href='#L963'>963</a>
1029
+ <a name='L964'></a><a href='#L964'>964</a>
1030
+ <a name='L965'></a><a href='#L965'>965</a>
1031
+ <a name='L966'></a><a href='#L966'>966</a>
1032
+ <a name='L967'></a><a href='#L967'>967</a>
1033
+ <a name='L968'></a><a href='#L968'>968</a>
1034
+ <a name='L969'></a><a href='#L969'>969</a>
1035
+ <a name='L970'></a><a href='#L970'>970</a>
1036
+ <a name='L971'></a><a href='#L971'>971</a>
1037
+ <a name='L972'></a><a href='#L972'>972</a>
1038
+ <a name='L973'></a><a href='#L973'>973</a>
1039
+ <a name='L974'></a><a href='#L974'>974</a>
1040
+ <a name='L975'></a><a href='#L975'>975</a>
1041
+ <a name='L976'></a><a href='#L976'>976</a>
1042
+ <a name='L977'></a><a href='#L977'>977</a>
1043
+ <a name='L978'></a><a href='#L978'>978</a>
1044
+ <a name='L979'></a><a href='#L979'>979</a>
1045
+ <a name='L980'></a><a href='#L980'>980</a>
1046
+ <a name='L981'></a><a href='#L981'>981</a>
1047
+ <a name='L982'></a><a href='#L982'>982</a>
1048
+ <a name='L983'></a><a href='#L983'>983</a>
1049
+ <a name='L984'></a><a href='#L984'>984</a>
1050
+ <a name='L985'></a><a href='#L985'>985</a>
1051
+ <a name='L986'></a><a href='#L986'>986</a>
1052
+ <a name='L987'></a><a href='#L987'>987</a>
1053
+ <a name='L988'></a><a href='#L988'>988</a>
1054
+ <a name='L989'></a><a href='#L989'>989</a>
1055
+ <a name='L990'></a><a href='#L990'>990</a>
1056
+ <a name='L991'></a><a href='#L991'>991</a>
1057
+ <a name='L992'></a><a href='#L992'>992</a>
1058
+ <a name='L993'></a><a href='#L993'>993</a>
1059
+ <a name='L994'></a><a href='#L994'>994</a>
1060
+ <a name='L995'></a><a href='#L995'>995</a>
1061
+ <a name='L996'></a><a href='#L996'>996</a>
1062
+ <a name='L997'></a><a href='#L997'>997</a>
1063
+ <a name='L998'></a><a href='#L998'>998</a>
1064
+ <a name='L999'></a><a href='#L999'>999</a>
1065
+ <a name='L1000'></a><a href='#L1000'>1000</a>
1066
+ <a name='L1001'></a><a href='#L1001'>1001</a>
1067
+ <a name='L1002'></a><a href='#L1002'>1002</a>
1068
+ <a name='L1003'></a><a href='#L1003'>1003</a>
1069
+ <a name='L1004'></a><a href='#L1004'>1004</a>
1070
+ <a name='L1005'></a><a href='#L1005'>1005</a>
1071
+ <a name='L1006'></a><a href='#L1006'>1006</a>
1072
+ <a name='L1007'></a><a href='#L1007'>1007</a>
1073
+ <a name='L1008'></a><a href='#L1008'>1008</a>
1074
+ <a name='L1009'></a><a href='#L1009'>1009</a>
1075
+ <a name='L1010'></a><a href='#L1010'>1010</a>
1076
+ <a name='L1011'></a><a href='#L1011'>1011</a>
1077
+ <a name='L1012'></a><a href='#L1012'>1012</a>
1078
+ <a name='L1013'></a><a href='#L1013'>1013</a>
1079
+ <a name='L1014'></a><a href='#L1014'>1014</a>
1080
+ <a name='L1015'></a><a href='#L1015'>1015</a>
1081
+ <a name='L1016'></a><a href='#L1016'>1016</a>
1082
+ <a name='L1017'></a><a href='#L1017'>1017</a>
1083
+ <a name='L1018'></a><a href='#L1018'>1018</a>
1084
+ <a name='L1019'></a><a href='#L1019'>1019</a>
1085
+ <a name='L1020'></a><a href='#L1020'>1020</a>
1086
+ <a name='L1021'></a><a href='#L1021'>1021</a>
1087
+ <a name='L1022'></a><a href='#L1022'>1022</a>
1088
+ <a name='L1023'></a><a href='#L1023'>1023</a>
1089
+ <a name='L1024'></a><a href='#L1024'>1024</a>
1090
+ <a name='L1025'></a><a href='#L1025'>1025</a>
1091
+ <a name='L1026'></a><a href='#L1026'>1026</a>
1092
+ <a name='L1027'></a><a href='#L1027'>1027</a>
1093
+ <a name='L1028'></a><a href='#L1028'>1028</a>
1094
+ <a name='L1029'></a><a href='#L1029'>1029</a>
1095
+ <a name='L1030'></a><a href='#L1030'>1030</a>
1096
+ <a name='L1031'></a><a href='#L1031'>1031</a>
1097
+ <a name='L1032'></a><a href='#L1032'>1032</a>
1098
+ <a name='L1033'></a><a href='#L1033'>1033</a>
1099
+ <a name='L1034'></a><a href='#L1034'>1034</a>
1100
+ <a name='L1035'></a><a href='#L1035'>1035</a>
1101
+ <a name='L1036'></a><a href='#L1036'>1036</a>
1102
+ <a name='L1037'></a><a href='#L1037'>1037</a>
1103
+ <a name='L1038'></a><a href='#L1038'>1038</a>
1104
+ <a name='L1039'></a><a href='#L1039'>1039</a>
1105
+ <a name='L1040'></a><a href='#L1040'>1040</a>
1106
+ <a name='L1041'></a><a href='#L1041'>1041</a>
1107
+ <a name='L1042'></a><a href='#L1042'>1042</a>
1108
+ <a name='L1043'></a><a href='#L1043'>1043</a>
1109
+ <a name='L1044'></a><a href='#L1044'>1044</a>
1110
+ <a name='L1045'></a><a href='#L1045'>1045</a>
1111
+ <a name='L1046'></a><a href='#L1046'>1046</a>
1112
+ <a name='L1047'></a><a href='#L1047'>1047</a>
1113
+ <a name='L1048'></a><a href='#L1048'>1048</a>
1114
+ <a name='L1049'></a><a href='#L1049'>1049</a>
1115
+ <a name='L1050'></a><a href='#L1050'>1050</a>
1116
+ <a name='L1051'></a><a href='#L1051'>1051</a>
1117
+ <a name='L1052'></a><a href='#L1052'>1052</a>
1118
+ <a name='L1053'></a><a href='#L1053'>1053</a>
1119
+ <a name='L1054'></a><a href='#L1054'>1054</a>
1120
+ <a name='L1055'></a><a href='#L1055'>1055</a>
1121
+ <a name='L1056'></a><a href='#L1056'>1056</a>
1122
+ <a name='L1057'></a><a href='#L1057'>1057</a>
1123
+ <a name='L1058'></a><a href='#L1058'>1058</a>
1124
+ <a name='L1059'></a><a href='#L1059'>1059</a>
1125
+ <a name='L1060'></a><a href='#L1060'>1060</a>
1126
+ <a name='L1061'></a><a href='#L1061'>1061</a>
1127
+ <a name='L1062'></a><a href='#L1062'>1062</a>
1128
+ <a name='L1063'></a><a href='#L1063'>1063</a>
1129
+ <a name='L1064'></a><a href='#L1064'>1064</a>
1130
+ <a name='L1065'></a><a href='#L1065'>1065</a>
1131
+ <a name='L1066'></a><a href='#L1066'>1066</a>
1132
+ <a name='L1067'></a><a href='#L1067'>1067</a>
1133
+ <a name='L1068'></a><a href='#L1068'>1068</a>
1134
+ <a name='L1069'></a><a href='#L1069'>1069</a>
1135
+ <a name='L1070'></a><a href='#L1070'>1070</a>
1136
+ <a name='L1071'></a><a href='#L1071'>1071</a>
1137
+ <a name='L1072'></a><a href='#L1072'>1072</a>
1138
+ <a name='L1073'></a><a href='#L1073'>1073</a>
1139
+ <a name='L1074'></a><a href='#L1074'>1074</a>
1140
+ <a name='L1075'></a><a href='#L1075'>1075</a>
1141
+ <a name='L1076'></a><a href='#L1076'>1076</a>
1142
+ <a name='L1077'></a><a href='#L1077'>1077</a>
1143
+ <a name='L1078'></a><a href='#L1078'>1078</a>
1144
+ <a name='L1079'></a><a href='#L1079'>1079</a>
1145
+ <a name='L1080'></a><a href='#L1080'>1080</a>
1146
+ <a name='L1081'></a><a href='#L1081'>1081</a>
1147
+ <a name='L1082'></a><a href='#L1082'>1082</a>
1148
+ <a name='L1083'></a><a href='#L1083'>1083</a>
1149
+ <a name='L1084'></a><a href='#L1084'>1084</a>
1150
+ <a name='L1085'></a><a href='#L1085'>1085</a>
1151
+ <a name='L1086'></a><a href='#L1086'>1086</a>
1152
+ <a name='L1087'></a><a href='#L1087'>1087</a>
1153
+ <a name='L1088'></a><a href='#L1088'>1088</a>
1154
+ <a name='L1089'></a><a href='#L1089'>1089</a>
1155
+ <a name='L1090'></a><a href='#L1090'>1090</a>
1156
+ <a name='L1091'></a><a href='#L1091'>1091</a>
1157
+ <a name='L1092'></a><a href='#L1092'>1092</a>
1158
+ <a name='L1093'></a><a href='#L1093'>1093</a>
1159
+ <a name='L1094'></a><a href='#L1094'>1094</a>
1160
+ <a name='L1095'></a><a href='#L1095'>1095</a>
1161
+ <a name='L1096'></a><a href='#L1096'>1096</a>
1162
+ <a name='L1097'></a><a href='#L1097'>1097</a>
1163
+ <a name='L1098'></a><a href='#L1098'>1098</a>
1164
+ <a name='L1099'></a><a href='#L1099'>1099</a>
1165
+ <a name='L1100'></a><a href='#L1100'>1100</a>
1166
+ <a name='L1101'></a><a href='#L1101'>1101</a>
1167
+ <a name='L1102'></a><a href='#L1102'>1102</a>
1168
+ <a name='L1103'></a><a href='#L1103'>1103</a>
1169
+ <a name='L1104'></a><a href='#L1104'>1104</a>
1170
+ <a name='L1105'></a><a href='#L1105'>1105</a>
1171
+ <a name='L1106'></a><a href='#L1106'>1106</a>
1172
+ <a name='L1107'></a><a href='#L1107'>1107</a>
1173
+ <a name='L1108'></a><a href='#L1108'>1108</a>
1174
+ <a name='L1109'></a><a href='#L1109'>1109</a>
1175
+ <a name='L1110'></a><a href='#L1110'>1110</a>
1176
+ <a name='L1111'></a><a href='#L1111'>1111</a>
1177
+ <a name='L1112'></a><a href='#L1112'>1112</a>
1178
+ <a name='L1113'></a><a href='#L1113'>1113</a>
1179
+ <a name='L1114'></a><a href='#L1114'>1114</a>
1180
+ <a name='L1115'></a><a href='#L1115'>1115</a>
1181
+ <a name='L1116'></a><a href='#L1116'>1116</a>
1182
+ <a name='L1117'></a><a href='#L1117'>1117</a>
1183
+ <a name='L1118'></a><a href='#L1118'>1118</a>
1184
+ <a name='L1119'></a><a href='#L1119'>1119</a>
1185
+ <a name='L1120'></a><a href='#L1120'>1120</a>
1186
+ <a name='L1121'></a><a href='#L1121'>1121</a>
1187
+ <a name='L1122'></a><a href='#L1122'>1122</a>
1188
+ <a name='L1123'></a><a href='#L1123'>1123</a>
1189
+ <a name='L1124'></a><a href='#L1124'>1124</a>
1190
+ <a name='L1125'></a><a href='#L1125'>1125</a>
1191
+ <a name='L1126'></a><a href='#L1126'>1126</a>
1192
+ <a name='L1127'></a><a href='#L1127'>1127</a>
1193
+ <a name='L1128'></a><a href='#L1128'>1128</a>
1194
+ <a name='L1129'></a><a href='#L1129'>1129</a>
1195
+ <a name='L1130'></a><a href='#L1130'>1130</a>
1196
+ <a name='L1131'></a><a href='#L1131'>1131</a>
1197
+ <a name='L1132'></a><a href='#L1132'>1132</a>
1198
+ <a name='L1133'></a><a href='#L1133'>1133</a>
1199
+ <a name='L1134'></a><a href='#L1134'>1134</a>
1200
+ <a name='L1135'></a><a href='#L1135'>1135</a>
1201
+ <a name='L1136'></a><a href='#L1136'>1136</a>
1202
+ <a name='L1137'></a><a href='#L1137'>1137</a>
1203
+ <a name='L1138'></a><a href='#L1138'>1138</a>
1204
+ <a name='L1139'></a><a href='#L1139'>1139</a>
1205
+ <a name='L1140'></a><a href='#L1140'>1140</a>
1206
+ <a name='L1141'></a><a href='#L1141'>1141</a>
1207
+ <a name='L1142'></a><a href='#L1142'>1142</a>
1208
+ <a name='L1143'></a><a href='#L1143'>1143</a>
1209
+ <a name='L1144'></a><a href='#L1144'>1144</a>
1210
+ <a name='L1145'></a><a href='#L1145'>1145</a>
1211
+ <a name='L1146'></a><a href='#L1146'>1146</a>
1212
+ <a name='L1147'></a><a href='#L1147'>1147</a>
1213
+ <a name='L1148'></a><a href='#L1148'>1148</a>
1214
+ <a name='L1149'></a><a href='#L1149'>1149</a>
1215
+ <a name='L1150'></a><a href='#L1150'>1150</a>
1216
+ <a name='L1151'></a><a href='#L1151'>1151</a>
1217
+ <a name='L1152'></a><a href='#L1152'>1152</a>
1218
+ <a name='L1153'></a><a href='#L1153'>1153</a>
1219
+ <a name='L1154'></a><a href='#L1154'>1154</a>
1220
+ <a name='L1155'></a><a href='#L1155'>1155</a>
1221
+ <a name='L1156'></a><a href='#L1156'>1156</a>
1222
+ <a name='L1157'></a><a href='#L1157'>1157</a>
1223
+ <a name='L1158'></a><a href='#L1158'>1158</a>
1224
+ <a name='L1159'></a><a href='#L1159'>1159</a>
1225
+ <a name='L1160'></a><a href='#L1160'>1160</a>
1226
+ <a name='L1161'></a><a href='#L1161'>1161</a>
1227
+ <a name='L1162'></a><a href='#L1162'>1162</a>
1228
+ <a name='L1163'></a><a href='#L1163'>1163</a>
1229
+ <a name='L1164'></a><a href='#L1164'>1164</a>
1230
+ <a name='L1165'></a><a href='#L1165'>1165</a>
1231
+ <a name='L1166'></a><a href='#L1166'>1166</a>
1232
+ <a name='L1167'></a><a href='#L1167'>1167</a>
1233
+ <a name='L1168'></a><a href='#L1168'>1168</a>
1234
+ <a name='L1169'></a><a href='#L1169'>1169</a>
1235
+ <a name='L1170'></a><a href='#L1170'>1170</a>
1236
+ <a name='L1171'></a><a href='#L1171'>1171</a>
1237
+ <a name='L1172'></a><a href='#L1172'>1172</a>
1238
+ <a name='L1173'></a><a href='#L1173'>1173</a>
1239
+ <a name='L1174'></a><a href='#L1174'>1174</a>
1240
+ <a name='L1175'></a><a href='#L1175'>1175</a>
1241
+ <a name='L1176'></a><a href='#L1176'>1176</a>
1242
+ <a name='L1177'></a><a href='#L1177'>1177</a>
1243
+ <a name='L1178'></a><a href='#L1178'>1178</a>
1244
+ <a name='L1179'></a><a href='#L1179'>1179</a>
1245
+ <a name='L1180'></a><a href='#L1180'>1180</a>
1246
+ <a name='L1181'></a><a href='#L1181'>1181</a>
1247
+ <a name='L1182'></a><a href='#L1182'>1182</a>
1248
+ <a name='L1183'></a><a href='#L1183'>1183</a>
1249
+ <a name='L1184'></a><a href='#L1184'>1184</a>
1250
+ <a name='L1185'></a><a href='#L1185'>1185</a>
1251
+ <a name='L1186'></a><a href='#L1186'>1186</a>
1252
+ <a name='L1187'></a><a href='#L1187'>1187</a>
1253
+ <a name='L1188'></a><a href='#L1188'>1188</a>
1254
+ <a name='L1189'></a><a href='#L1189'>1189</a>
1255
+ <a name='L1190'></a><a href='#L1190'>1190</a>
1256
+ <a name='L1191'></a><a href='#L1191'>1191</a>
1257
+ <a name='L1192'></a><a href='#L1192'>1192</a>
1258
+ <a name='L1193'></a><a href='#L1193'>1193</a>
1259
+ <a name='L1194'></a><a href='#L1194'>1194</a>
1260
+ <a name='L1195'></a><a href='#L1195'>1195</a>
1261
+ <a name='L1196'></a><a href='#L1196'>1196</a>
1262
+ <a name='L1197'></a><a href='#L1197'>1197</a>
1263
+ <a name='L1198'></a><a href='#L1198'>1198</a>
1264
+ <a name='L1199'></a><a href='#L1199'>1199</a>
1265
+ <a name='L1200'></a><a href='#L1200'>1200</a>
1266
+ <a name='L1201'></a><a href='#L1201'>1201</a>
1267
+ <a name='L1202'></a><a href='#L1202'>1202</a>
1268
+ <a name='L1203'></a><a href='#L1203'>1203</a>
1269
+ <a name='L1204'></a><a href='#L1204'>1204</a>
1270
+ <a name='L1205'></a><a href='#L1205'>1205</a>
1271
+ <a name='L1206'></a><a href='#L1206'>1206</a>
1272
+ <a name='L1207'></a><a href='#L1207'>1207</a>
1273
+ <a name='L1208'></a><a href='#L1208'>1208</a>
1274
+ <a name='L1209'></a><a href='#L1209'>1209</a>
1275
+ <a name='L1210'></a><a href='#L1210'>1210</a>
1276
+ <a name='L1211'></a><a href='#L1211'>1211</a>
1277
+ <a name='L1212'></a><a href='#L1212'>1212</a>
1278
+ <a name='L1213'></a><a href='#L1213'>1213</a>
1279
+ <a name='L1214'></a><a href='#L1214'>1214</a>
1280
+ <a name='L1215'></a><a href='#L1215'>1215</a>
1281
+ <a name='L1216'></a><a href='#L1216'>1216</a>
1282
+ <a name='L1217'></a><a href='#L1217'>1217</a>
1283
+ <a name='L1218'></a><a href='#L1218'>1218</a>
1284
+ <a name='L1219'></a><a href='#L1219'>1219</a>
1285
+ <a name='L1220'></a><a href='#L1220'>1220</a>
1286
+ <a name='L1221'></a><a href='#L1221'>1221</a>
1287
+ <a name='L1222'></a><a href='#L1222'>1222</a>
1288
+ <a name='L1223'></a><a href='#L1223'>1223</a>
1289
+ <a name='L1224'></a><a href='#L1224'>1224</a>
1290
+ <a name='L1225'></a><a href='#L1225'>1225</a>
1291
+ <a name='L1226'></a><a href='#L1226'>1226</a>
1292
+ <a name='L1227'></a><a href='#L1227'>1227</a>
1293
+ <a name='L1228'></a><a href='#L1228'>1228</a>
1294
+ <a name='L1229'></a><a href='#L1229'>1229</a>
1295
+ <a name='L1230'></a><a href='#L1230'>1230</a>
1296
+ <a name='L1231'></a><a href='#L1231'>1231</a>
1297
+ <a name='L1232'></a><a href='#L1232'>1232</a>
1298
+ <a name='L1233'></a><a href='#L1233'>1233</a>
1299
+ <a name='L1234'></a><a href='#L1234'>1234</a>
1300
+ <a name='L1235'></a><a href='#L1235'>1235</a>
1301
+ <a name='L1236'></a><a href='#L1236'>1236</a>
1302
+ <a name='L1237'></a><a href='#L1237'>1237</a>
1303
+ <a name='L1238'></a><a href='#L1238'>1238</a>
1304
+ <a name='L1239'></a><a href='#L1239'>1239</a>
1305
+ <a name='L1240'></a><a href='#L1240'>1240</a>
1306
+ <a name='L1241'></a><a href='#L1241'>1241</a>
1307
+ <a name='L1242'></a><a href='#L1242'>1242</a>
1308
+ <a name='L1243'></a><a href='#L1243'>1243</a>
1309
+ <a name='L1244'></a><a href='#L1244'>1244</a>
1310
+ <a name='L1245'></a><a href='#L1245'>1245</a>
1311
+ <a name='L1246'></a><a href='#L1246'>1246</a>
1312
+ <a name='L1247'></a><a href='#L1247'>1247</a>
1313
+ <a name='L1248'></a><a href='#L1248'>1248</a>
1314
+ <a name='L1249'></a><a href='#L1249'>1249</a>
1315
+ <a name='L1250'></a><a href='#L1250'>1250</a>
1316
+ <a name='L1251'></a><a href='#L1251'>1251</a>
1317
+ <a name='L1252'></a><a href='#L1252'>1252</a>
1318
+ <a name='L1253'></a><a href='#L1253'>1253</a>
1319
+ <a name='L1254'></a><a href='#L1254'>1254</a>
1320
+ <a name='L1255'></a><a href='#L1255'>1255</a>
1321
+ <a name='L1256'></a><a href='#L1256'>1256</a>
1322
+ <a name='L1257'></a><a href='#L1257'>1257</a>
1323
+ <a name='L1258'></a><a href='#L1258'>1258</a>
1324
+ <a name='L1259'></a><a href='#L1259'>1259</a>
1325
+ <a name='L1260'></a><a href='#L1260'>1260</a>
1326
+ <a name='L1261'></a><a href='#L1261'>1261</a>
1327
+ <a name='L1262'></a><a href='#L1262'>1262</a>
1328
+ <a name='L1263'></a><a href='#L1263'>1263</a>
1329
+ <a name='L1264'></a><a href='#L1264'>1264</a>
1330
+ <a name='L1265'></a><a href='#L1265'>1265</a>
1331
+ <a name='L1266'></a><a href='#L1266'>1266</a>
1332
+ <a name='L1267'></a><a href='#L1267'>1267</a>
1333
+ <a name='L1268'></a><a href='#L1268'>1268</a>
1334
+ <a name='L1269'></a><a href='#L1269'>1269</a>
1335
+ <a name='L1270'></a><a href='#L1270'>1270</a>
1336
+ <a name='L1271'></a><a href='#L1271'>1271</a>
1337
+ <a name='L1272'></a><a href='#L1272'>1272</a>
1338
+ <a name='L1273'></a><a href='#L1273'>1273</a>
1339
+ <a name='L1274'></a><a href='#L1274'>1274</a>
1340
+ <a name='L1275'></a><a href='#L1275'>1275</a>
1341
+ <a name='L1276'></a><a href='#L1276'>1276</a>
1342
+ <a name='L1277'></a><a href='#L1277'>1277</a>
1343
+ <a name='L1278'></a><a href='#L1278'>1278</a>
1344
+ <a name='L1279'></a><a href='#L1279'>1279</a>
1345
+ <a name='L1280'></a><a href='#L1280'>1280</a>
1346
+ <a name='L1281'></a><a href='#L1281'>1281</a>
1347
+ <a name='L1282'></a><a href='#L1282'>1282</a>
1348
+ <a name='L1283'></a><a href='#L1283'>1283</a>
1349
+ <a name='L1284'></a><a href='#L1284'>1284</a>
1350
+ <a name='L1285'></a><a href='#L1285'>1285</a>
1351
+ <a name='L1286'></a><a href='#L1286'>1286</a>
1352
+ <a name='L1287'></a><a href='#L1287'>1287</a>
1353
+ <a name='L1288'></a><a href='#L1288'>1288</a>
1354
+ <a name='L1289'></a><a href='#L1289'>1289</a>
1355
+ <a name='L1290'></a><a href='#L1290'>1290</a>
1356
+ <a name='L1291'></a><a href='#L1291'>1291</a>
1357
+ <a name='L1292'></a><a href='#L1292'>1292</a>
1358
+ <a name='L1293'></a><a href='#L1293'>1293</a>
1359
+ <a name='L1294'></a><a href='#L1294'>1294</a>
1360
+ <a name='L1295'></a><a href='#L1295'>1295</a>
1361
+ <a name='L1296'></a><a href='#L1296'>1296</a>
1362
+ <a name='L1297'></a><a href='#L1297'>1297</a>
1363
+ <a name='L1298'></a><a href='#L1298'>1298</a>
1364
+ <a name='L1299'></a><a href='#L1299'>1299</a>
1365
+ <a name='L1300'></a><a href='#L1300'>1300</a>
1366
+ <a name='L1301'></a><a href='#L1301'>1301</a>
1367
+ <a name='L1302'></a><a href='#L1302'>1302</a>
1368
+ <a name='L1303'></a><a href='#L1303'>1303</a>
1369
+ <a name='L1304'></a><a href='#L1304'>1304</a>
1370
+ <a name='L1305'></a><a href='#L1305'>1305</a>
1371
+ <a name='L1306'></a><a href='#L1306'>1306</a>
1372
+ <a name='L1307'></a><a href='#L1307'>1307</a>
1373
+ <a name='L1308'></a><a href='#L1308'>1308</a>
1374
+ <a name='L1309'></a><a href='#L1309'>1309</a>
1375
+ <a name='L1310'></a><a href='#L1310'>1310</a>
1376
+ <a name='L1311'></a><a href='#L1311'>1311</a>
1377
+ <a name='L1312'></a><a href='#L1312'>1312</a>
1378
+ <a name='L1313'></a><a href='#L1313'>1313</a>
1379
+ <a name='L1314'></a><a href='#L1314'>1314</a>
1380
+ <a name='L1315'></a><a href='#L1315'>1315</a>
1381
+ <a name='L1316'></a><a href='#L1316'>1316</a>
1382
+ <a name='L1317'></a><a href='#L1317'>1317</a>
1383
+ <a name='L1318'></a><a href='#L1318'>1318</a>
1384
+ <a name='L1319'></a><a href='#L1319'>1319</a>
1385
+ <a name='L1320'></a><a href='#L1320'>1320</a>
1386
+ <a name='L1321'></a><a href='#L1321'>1321</a>
1387
+ <a name='L1322'></a><a href='#L1322'>1322</a>
1388
+ <a name='L1323'></a><a href='#L1323'>1323</a>
1389
+ <a name='L1324'></a><a href='#L1324'>1324</a>
1390
+ <a name='L1325'></a><a href='#L1325'>1325</a>
1391
+ <a name='L1326'></a><a href='#L1326'>1326</a>
1392
+ <a name='L1327'></a><a href='#L1327'>1327</a>
1393
+ <a name='L1328'></a><a href='#L1328'>1328</a>
1394
+ <a name='L1329'></a><a href='#L1329'>1329</a>
1395
+ <a name='L1330'></a><a href='#L1330'>1330</a>
1396
+ <a name='L1331'></a><a href='#L1331'>1331</a>
1397
+ <a name='L1332'></a><a href='#L1332'>1332</a>
1398
+ <a name='L1333'></a><a href='#L1333'>1333</a>
1399
+ <a name='L1334'></a><a href='#L1334'>1334</a>
1400
+ <a name='L1335'></a><a href='#L1335'>1335</a>
1401
+ <a name='L1336'></a><a href='#L1336'>1336</a>
1402
+ <a name='L1337'></a><a href='#L1337'>1337</a>
1403
+ <a name='L1338'></a><a href='#L1338'>1338</a>
1404
+ <a name='L1339'></a><a href='#L1339'>1339</a>
1405
+ <a name='L1340'></a><a href='#L1340'>1340</a>
1406
+ <a name='L1341'></a><a href='#L1341'>1341</a>
1407
+ <a name='L1342'></a><a href='#L1342'>1342</a>
1408
+ <a name='L1343'></a><a href='#L1343'>1343</a>
1409
+ <a name='L1344'></a><a href='#L1344'>1344</a>
1410
+ <a name='L1345'></a><a href='#L1345'>1345</a>
1411
+ <a name='L1346'></a><a href='#L1346'>1346</a>
1412
+ <a name='L1347'></a><a href='#L1347'>1347</a>
1413
+ <a name='L1348'></a><a href='#L1348'>1348</a>
1414
+ <a name='L1349'></a><a href='#L1349'>1349</a>
1415
+ <a name='L1350'></a><a href='#L1350'>1350</a>
1416
+ <a name='L1351'></a><a href='#L1351'>1351</a>
1417
+ <a name='L1352'></a><a href='#L1352'>1352</a>
1418
+ <a name='L1353'></a><a href='#L1353'>1353</a>
1419
+ <a name='L1354'></a><a href='#L1354'>1354</a>
1420
+ <a name='L1355'></a><a href='#L1355'>1355</a>
1421
+ <a name='L1356'></a><a href='#L1356'>1356</a>
1422
+ <a name='L1357'></a><a href='#L1357'>1357</a>
1423
+ <a name='L1358'></a><a href='#L1358'>1358</a>
1424
+ <a name='L1359'></a><a href='#L1359'>1359</a>
1425
+ <a name='L1360'></a><a href='#L1360'>1360</a>
1426
+ <a name='L1361'></a><a href='#L1361'>1361</a>
1427
+ <a name='L1362'></a><a href='#L1362'>1362</a>
1428
+ <a name='L1363'></a><a href='#L1363'>1363</a>
1429
+ <a name='L1364'></a><a href='#L1364'>1364</a>
1430
+ <a name='L1365'></a><a href='#L1365'>1365</a>
1431
+ <a name='L1366'></a><a href='#L1366'>1366</a>
1432
+ <a name='L1367'></a><a href='#L1367'>1367</a>
1433
+ <a name='L1368'></a><a href='#L1368'>1368</a>
1434
+ <a name='L1369'></a><a href='#L1369'>1369</a>
1435
+ <a name='L1370'></a><a href='#L1370'>1370</a>
1436
+ <a name='L1371'></a><a href='#L1371'>1371</a>
1437
+ <a name='L1372'></a><a href='#L1372'>1372</a>
1438
+ <a name='L1373'></a><a href='#L1373'>1373</a>
1439
+ <a name='L1374'></a><a href='#L1374'>1374</a>
1440
+ <a name='L1375'></a><a href='#L1375'>1375</a>
1441
+ <a name='L1376'></a><a href='#L1376'>1376</a>
1442
+ <a name='L1377'></a><a href='#L1377'>1377</a>
1443
+ <a name='L1378'></a><a href='#L1378'>1378</a>
1444
+ <a name='L1379'></a><a href='#L1379'>1379</a>
1445
+ <a name='L1380'></a><a href='#L1380'>1380</a>
1446
+ <a name='L1381'></a><a href='#L1381'>1381</a>
1447
+ <a name='L1382'></a><a href='#L1382'>1382</a>
1448
+ <a name='L1383'></a><a href='#L1383'>1383</a>
1449
+ <a name='L1384'></a><a href='#L1384'>1384</a>
1450
+ <a name='L1385'></a><a href='#L1385'>1385</a>
1451
+ <a name='L1386'></a><a href='#L1386'>1386</a>
1452
+ <a name='L1387'></a><a href='#L1387'>1387</a>
1453
+ <a name='L1388'></a><a href='#L1388'>1388</a>
1454
+ <a name='L1389'></a><a href='#L1389'>1389</a>
1455
+ <a name='L1390'></a><a href='#L1390'>1390</a>
1456
+ <a name='L1391'></a><a href='#L1391'>1391</a>
1457
+ <a name='L1392'></a><a href='#L1392'>1392</a>
1458
+ <a name='L1393'></a><a href='#L1393'>1393</a>
1459
+ <a name='L1394'></a><a href='#L1394'>1394</a>
1460
+ <a name='L1395'></a><a href='#L1395'>1395</a>
1461
+ <a name='L1396'></a><a href='#L1396'>1396</a>
1462
+ <a name='L1397'></a><a href='#L1397'>1397</a>
1463
+ <a name='L1398'></a><a href='#L1398'>1398</a>
1464
+ <a name='L1399'></a><a href='#L1399'>1399</a>
1465
+ <a name='L1400'></a><a href='#L1400'>1400</a>
1466
+ <a name='L1401'></a><a href='#L1401'>1401</a>
1467
+ <a name='L1402'></a><a href='#L1402'>1402</a>
1468
+ <a name='L1403'></a><a href='#L1403'>1403</a>
1469
+ <a name='L1404'></a><a href='#L1404'>1404</a>
1470
+ <a name='L1405'></a><a href='#L1405'>1405</a>
1471
+ <a name='L1406'></a><a href='#L1406'>1406</a>
1472
+ <a name='L1407'></a><a href='#L1407'>1407</a>
1473
+ <a name='L1408'></a><a href='#L1408'>1408</a>
1474
+ <a name='L1409'></a><a href='#L1409'>1409</a>
1475
+ <a name='L1410'></a><a href='#L1410'>1410</a>
1476
+ <a name='L1411'></a><a href='#L1411'>1411</a>
1477
+ <a name='L1412'></a><a href='#L1412'>1412</a>
1478
+ <a name='L1413'></a><a href='#L1413'>1413</a>
1479
+ <a name='L1414'></a><a href='#L1414'>1414</a>
1480
+ <a name='L1415'></a><a href='#L1415'>1415</a>
1481
+ <a name='L1416'></a><a href='#L1416'>1416</a>
1482
+ <a name='L1417'></a><a href='#L1417'>1417</a>
1483
+ <a name='L1418'></a><a href='#L1418'>1418</a>
1484
+ <a name='L1419'></a><a href='#L1419'>1419</a>
1485
+ <a name='L1420'></a><a href='#L1420'>1420</a>
1486
+ <a name='L1421'></a><a href='#L1421'>1421</a>
1487
+ <a name='L1422'></a><a href='#L1422'>1422</a>
1488
+ <a name='L1423'></a><a href='#L1423'>1423</a>
1489
+ <a name='L1424'></a><a href='#L1424'>1424</a>
1490
+ <a name='L1425'></a><a href='#L1425'>1425</a>
1491
+ <a name='L1426'></a><a href='#L1426'>1426</a>
1492
+ <a name='L1427'></a><a href='#L1427'>1427</a>
1493
+ <a name='L1428'></a><a href='#L1428'>1428</a>
1494
+ <a name='L1429'></a><a href='#L1429'>1429</a>
1495
+ <a name='L1430'></a><a href='#L1430'>1430</a>
1496
+ <a name='L1431'></a><a href='#L1431'>1431</a>
1497
+ <a name='L1432'></a><a href='#L1432'>1432</a>
1498
+ <a name='L1433'></a><a href='#L1433'>1433</a>
1499
+ <a name='L1434'></a><a href='#L1434'>1434</a>
1500
+ <a name='L1435'></a><a href='#L1435'>1435</a>
1501
+ <a name='L1436'></a><a href='#L1436'>1436</a>
1502
+ <a name='L1437'></a><a href='#L1437'>1437</a>
1503
+ <a name='L1438'></a><a href='#L1438'>1438</a>
1504
+ <a name='L1439'></a><a href='#L1439'>1439</a>
1505
+ <a name='L1440'></a><a href='#L1440'>1440</a>
1506
+ <a name='L1441'></a><a href='#L1441'>1441</a>
1507
+ <a name='L1442'></a><a href='#L1442'>1442</a>
1508
+ <a name='L1443'></a><a href='#L1443'>1443</a>
1509
+ <a name='L1444'></a><a href='#L1444'>1444</a>
1510
+ <a name='L1445'></a><a href='#L1445'>1445</a>
1511
+ <a name='L1446'></a><a href='#L1446'>1446</a>
1512
+ <a name='L1447'></a><a href='#L1447'>1447</a>
1513
+ <a name='L1448'></a><a href='#L1448'>1448</a>
1514
+ <a name='L1449'></a><a href='#L1449'>1449</a>
1515
+ <a name='L1450'></a><a href='#L1450'>1450</a>
1516
+ <a name='L1451'></a><a href='#L1451'>1451</a>
1517
+ <a name='L1452'></a><a href='#L1452'>1452</a>
1518
+ <a name='L1453'></a><a href='#L1453'>1453</a>
1519
+ <a name='L1454'></a><a href='#L1454'>1454</a>
1520
+ <a name='L1455'></a><a href='#L1455'>1455</a>
1521
+ <a name='L1456'></a><a href='#L1456'>1456</a>
1522
+ <a name='L1457'></a><a href='#L1457'>1457</a>
1523
+ <a name='L1458'></a><a href='#L1458'>1458</a>
1524
+ <a name='L1459'></a><a href='#L1459'>1459</a>
1525
+ <a name='L1460'></a><a href='#L1460'>1460</a>
1526
+ <a name='L1461'></a><a href='#L1461'>1461</a>
1527
+ <a name='L1462'></a><a href='#L1462'>1462</a>
1528
+ <a name='L1463'></a><a href='#L1463'>1463</a>
1529
+ <a name='L1464'></a><a href='#L1464'>1464</a>
1530
+ <a name='L1465'></a><a href='#L1465'>1465</a>
1531
+ <a name='L1466'></a><a href='#L1466'>1466</a>
1532
+ <a name='L1467'></a><a href='#L1467'>1467</a>
1533
+ <a name='L1468'></a><a href='#L1468'>1468</a>
1534
+ <a name='L1469'></a><a href='#L1469'>1469</a>
1535
+ <a name='L1470'></a><a href='#L1470'>1470</a>
1536
+ <a name='L1471'></a><a href='#L1471'>1471</a>
1537
+ <a name='L1472'></a><a href='#L1472'>1472</a>
1538
+ <a name='L1473'></a><a href='#L1473'>1473</a>
1539
+ <a name='L1474'></a><a href='#L1474'>1474</a>
1540
+ <a name='L1475'></a><a href='#L1475'>1475</a>
1541
+ <a name='L1476'></a><a href='#L1476'>1476</a>
1542
+ <a name='L1477'></a><a href='#L1477'>1477</a>
1543
+ <a name='L1478'></a><a href='#L1478'>1478</a>
1544
+ <a name='L1479'></a><a href='#L1479'>1479</a>
1545
+ <a name='L1480'></a><a href='#L1480'>1480</a>
1546
+ <a name='L1481'></a><a href='#L1481'>1481</a>
1547
+ <a name='L1482'></a><a href='#L1482'>1482</a>
1548
+ <a name='L1483'></a><a href='#L1483'>1483</a>
1549
+ <a name='L1484'></a><a href='#L1484'>1484</a>
1550
+ <a name='L1485'></a><a href='#L1485'>1485</a>
1551
+ <a name='L1486'></a><a href='#L1486'>1486</a>
1552
+ <a name='L1487'></a><a href='#L1487'>1487</a>
1553
+ <a name='L1488'></a><a href='#L1488'>1488</a>
1554
+ <a name='L1489'></a><a href='#L1489'>1489</a>
1555
+ <a name='L1490'></a><a href='#L1490'>1490</a>
1556
+ <a name='L1491'></a><a href='#L1491'>1491</a>
1557
+ <a name='L1492'></a><a href='#L1492'>1492</a>
1558
+ <a name='L1493'></a><a href='#L1493'>1493</a>
1559
+ <a name='L1494'></a><a href='#L1494'>1494</a>
1560
+ <a name='L1495'></a><a href='#L1495'>1495</a>
1561
+ <a name='L1496'></a><a href='#L1496'>1496</a>
1562
+ <a name='L1497'></a><a href='#L1497'>1497</a>
1563
+ <a name='L1498'></a><a href='#L1498'>1498</a>
1564
+ <a name='L1499'></a><a href='#L1499'>1499</a>
1565
+ <a name='L1500'></a><a href='#L1500'>1500</a>
1566
+ <a name='L1501'></a><a href='#L1501'>1501</a>
1567
+ <a name='L1502'></a><a href='#L1502'>1502</a>
1568
+ <a name='L1503'></a><a href='#L1503'>1503</a>
1569
+ <a name='L1504'></a><a href='#L1504'>1504</a>
1570
+ <a name='L1505'></a><a href='#L1505'>1505</a>
1571
+ <a name='L1506'></a><a href='#L1506'>1506</a>
1572
+ <a name='L1507'></a><a href='#L1507'>1507</a>
1573
+ <a name='L1508'></a><a href='#L1508'>1508</a>
1574
+ <a name='L1509'></a><a href='#L1509'>1509</a>
1575
+ <a name='L1510'></a><a href='#L1510'>1510</a>
1576
+ <a name='L1511'></a><a href='#L1511'>1511</a>
1577
+ <a name='L1512'></a><a href='#L1512'>1512</a>
1578
+ <a name='L1513'></a><a href='#L1513'>1513</a>
1579
+ <a name='L1514'></a><a href='#L1514'>1514</a>
1580
+ <a name='L1515'></a><a href='#L1515'>1515</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
1581
+ <span class="cline-any cline-neutral">&nbsp;</span>
1582
+ <span class="cline-any cline-neutral">&nbsp;</span>
1583
+ <span class="cline-any cline-neutral">&nbsp;</span>
1584
+ <span class="cline-any cline-neutral">&nbsp;</span>
1585
+ <span class="cline-any cline-neutral">&nbsp;</span>
1586
+ <span class="cline-any cline-neutral">&nbsp;</span>
1587
+ <span class="cline-any cline-neutral">&nbsp;</span>
1588
+ <span class="cline-any cline-yes">2x</span>
1589
+ <span class="cline-any cline-neutral">&nbsp;</span>
1590
+ <span class="cline-any cline-neutral">&nbsp;</span>
1591
+ <span class="cline-any cline-neutral">&nbsp;</span>
1592
+ <span class="cline-any cline-neutral">&nbsp;</span>
1593
+ <span class="cline-any cline-neutral">&nbsp;</span>
1594
+ <span class="cline-any cline-neutral">&nbsp;</span>
1595
+ <span class="cline-any cline-neutral">&nbsp;</span>
1596
+ <span class="cline-any cline-neutral">&nbsp;</span>
1597
+ <span class="cline-any cline-neutral">&nbsp;</span>
1598
+ <span class="cline-any cline-neutral">&nbsp;</span>
1599
+ <span class="cline-any cline-neutral">&nbsp;</span>
1600
+ <span class="cline-any cline-neutral">&nbsp;</span>
1601
+ <span class="cline-any cline-neutral">&nbsp;</span>
1602
+ <span class="cline-any cline-neutral">&nbsp;</span>
1603
+ <span class="cline-any cline-neutral">&nbsp;</span>
1604
+ <span class="cline-any cline-neutral">&nbsp;</span>
1605
+ <span class="cline-any cline-neutral">&nbsp;</span>
1606
+ <span class="cline-any cline-neutral">&nbsp;</span>
1607
+ <span class="cline-any cline-neutral">&nbsp;</span>
1608
+ <span class="cline-any cline-neutral">&nbsp;</span>
1609
+ <span class="cline-any cline-neutral">&nbsp;</span>
1610
+ <span class="cline-any cline-neutral">&nbsp;</span>
1611
+ <span class="cline-any cline-neutral">&nbsp;</span>
1612
+ <span class="cline-any cline-yes">3860x</span>
1613
+ <span class="cline-any cline-neutral">&nbsp;</span>
1614
+ <span class="cline-any cline-neutral">&nbsp;</span>
1615
+ <span class="cline-any cline-neutral">&nbsp;</span>
1616
+ <span class="cline-any cline-yes">13044x</span>
1617
+ <span class="cline-any cline-neutral">&nbsp;</span>
1618
+ <span class="cline-any cline-neutral">&nbsp;</span>
1619
+ <span class="cline-any cline-neutral">&nbsp;</span>
1620
+ <span class="cline-any cline-neutral">&nbsp;</span>
1621
+ <span class="cline-any cline-neutral">&nbsp;</span>
1622
+ <span class="cline-any cline-neutral">&nbsp;</span>
1623
+ <span class="cline-any cline-neutral">&nbsp;</span>
1624
+ <span class="cline-any cline-neutral">&nbsp;</span>
1625
+ <span class="cline-any cline-neutral">&nbsp;</span>
1626
+ <span class="cline-any cline-neutral">&nbsp;</span>
1627
+ <span class="cline-any cline-neutral">&nbsp;</span>
1628
+ <span class="cline-any cline-neutral">&nbsp;</span>
1629
+ <span class="cline-any cline-neutral">&nbsp;</span>
1630
+ <span class="cline-any cline-neutral">&nbsp;</span>
1631
+ <span class="cline-any cline-neutral">&nbsp;</span>
1632
+ <span class="cline-any cline-neutral">&nbsp;</span>
1633
+ <span class="cline-any cline-neutral">&nbsp;</span>
1634
+ <span class="cline-any cline-neutral">&nbsp;</span>
1635
+ <span class="cline-any cline-neutral">&nbsp;</span>
1636
+ <span class="cline-any cline-neutral">&nbsp;</span>
1637
+ <span class="cline-any cline-neutral">&nbsp;</span>
1638
+ <span class="cline-any cline-neutral">&nbsp;</span>
1639
+ <span class="cline-any cline-neutral">&nbsp;</span>
1640
+ <span class="cline-any cline-neutral">&nbsp;</span>
1641
+ <span class="cline-any cline-neutral">&nbsp;</span>
1642
+ <span class="cline-any cline-neutral">&nbsp;</span>
1643
+ <span class="cline-any cline-neutral">&nbsp;</span>
1644
+ <span class="cline-any cline-neutral">&nbsp;</span>
1645
+ <span class="cline-any cline-neutral">&nbsp;</span>
1646
+ <span class="cline-any cline-neutral">&nbsp;</span>
1647
+ <span class="cline-any cline-neutral">&nbsp;</span>
1648
+ <span class="cline-any cline-neutral">&nbsp;</span>
1649
+ <span class="cline-any cline-neutral">&nbsp;</span>
1650
+ <span class="cline-any cline-neutral">&nbsp;</span>
1651
+ <span class="cline-any cline-neutral">&nbsp;</span>
1652
+ <span class="cline-any cline-neutral">&nbsp;</span>
1653
+ <span class="cline-any cline-neutral">&nbsp;</span>
1654
+ <span class="cline-any cline-neutral">&nbsp;</span>
1655
+ <span class="cline-any cline-neutral">&nbsp;</span>
1656
+ <span class="cline-any cline-neutral">&nbsp;</span>
1657
+ <span class="cline-any cline-neutral">&nbsp;</span>
1658
+ <span class="cline-any cline-neutral">&nbsp;</span>
1659
+ <span class="cline-any cline-neutral">&nbsp;</span>
1660
+ <span class="cline-any cline-neutral">&nbsp;</span>
1661
+ <span class="cline-any cline-neutral">&nbsp;</span>
1662
+ <span class="cline-any cline-neutral">&nbsp;</span>
1663
+ <span class="cline-any cline-neutral">&nbsp;</span>
1664
+ <span class="cline-any cline-neutral">&nbsp;</span>
1665
+ <span class="cline-any cline-neutral">&nbsp;</span>
1666
+ <span class="cline-any cline-neutral">&nbsp;</span>
1667
+ <span class="cline-any cline-neutral">&nbsp;</span>
1668
+ <span class="cline-any cline-neutral">&nbsp;</span>
1669
+ <span class="cline-any cline-neutral">&nbsp;</span>
1670
+ <span class="cline-any cline-neutral">&nbsp;</span>
1671
+ <span class="cline-any cline-neutral">&nbsp;</span>
1672
+ <span class="cline-any cline-neutral">&nbsp;</span>
1673
+ <span class="cline-any cline-neutral">&nbsp;</span>
1674
+ <span class="cline-any cline-neutral">&nbsp;</span>
1675
+ <span class="cline-any cline-neutral">&nbsp;</span>
1676
+ <span class="cline-any cline-neutral">&nbsp;</span>
1677
+ <span class="cline-any cline-neutral">&nbsp;</span>
1678
+ <span class="cline-any cline-neutral">&nbsp;</span>
1679
+ <span class="cline-any cline-neutral">&nbsp;</span>
1680
+ <span class="cline-any cline-neutral">&nbsp;</span>
1681
+ <span class="cline-any cline-neutral">&nbsp;</span>
1682
+ <span class="cline-any cline-neutral">&nbsp;</span>
1683
+ <span class="cline-any cline-yes">7x</span>
1684
+ <span class="cline-any cline-yes">7x</span>
1685
+ <span class="cline-any cline-neutral">&nbsp;</span>
1686
+ <span class="cline-any cline-yes">7x</span>
1687
+ <span class="cline-any cline-yes">1x</span>
1688
+ <span class="cline-any cline-yes">1x</span>
1689
+ <span class="cline-any cline-no">&nbsp;</span>
1690
+ <span class="cline-any cline-no">&nbsp;</span>
1691
+ <span class="cline-any cline-no">&nbsp;</span>
1692
+ <span class="cline-any cline-neutral">&nbsp;</span>
1693
+ <span class="cline-any cline-neutral">&nbsp;</span>
1694
+ <span class="cline-any cline-neutral">&nbsp;</span>
1695
+ <span class="cline-any cline-neutral">&nbsp;</span>
1696
+ <span class="cline-any cline-neutral">&nbsp;</span>
1697
+ <span class="cline-any cline-neutral">&nbsp;</span>
1698
+ <span class="cline-any cline-yes">7x</span>
1699
+ <span class="cline-any cline-neutral">&nbsp;</span>
1700
+ <span class="cline-any cline-neutral">&nbsp;</span>
1701
+ <span class="cline-any cline-yes">2x</span>
1702
+ <span class="cline-any cline-neutral">&nbsp;</span>
1703
+ <span class="cline-any cline-neutral">&nbsp;</span>
1704
+ <span class="cline-any cline-neutral">&nbsp;</span>
1705
+ <span class="cline-any cline-neutral">&nbsp;</span>
1706
+ <span class="cline-any cline-neutral">&nbsp;</span>
1707
+ <span class="cline-any cline-neutral">&nbsp;</span>
1708
+ <span class="cline-any cline-neutral">&nbsp;</span>
1709
+ <span class="cline-any cline-neutral">&nbsp;</span>
1710
+ <span class="cline-any cline-neutral">&nbsp;</span>
1711
+ <span class="cline-any cline-neutral">&nbsp;</span>
1712
+ <span class="cline-any cline-neutral">&nbsp;</span>
1713
+ <span class="cline-any cline-neutral">&nbsp;</span>
1714
+ <span class="cline-any cline-neutral">&nbsp;</span>
1715
+ <span class="cline-any cline-neutral">&nbsp;</span>
1716
+ <span class="cline-any cline-neutral">&nbsp;</span>
1717
+ <span class="cline-any cline-neutral">&nbsp;</span>
1718
+ <span class="cline-any cline-neutral">&nbsp;</span>
1719
+ <span class="cline-any cline-neutral">&nbsp;</span>
1720
+ <span class="cline-any cline-neutral">&nbsp;</span>
1721
+ <span class="cline-any cline-neutral">&nbsp;</span>
1722
+ <span class="cline-any cline-neutral">&nbsp;</span>
1723
+ <span class="cline-any cline-neutral">&nbsp;</span>
1724
+ <span class="cline-any cline-neutral">&nbsp;</span>
1725
+ <span class="cline-any cline-neutral">&nbsp;</span>
1726
+ <span class="cline-any cline-neutral">&nbsp;</span>
1727
+ <span class="cline-any cline-neutral">&nbsp;</span>
1728
+ <span class="cline-any cline-neutral">&nbsp;</span>
1729
+ <span class="cline-any cline-neutral">&nbsp;</span>
1730
+ <span class="cline-any cline-neutral">&nbsp;</span>
1731
+ <span class="cline-any cline-neutral">&nbsp;</span>
1732
+ <span class="cline-any cline-neutral">&nbsp;</span>
1733
+ <span class="cline-any cline-neutral">&nbsp;</span>
1734
+ <span class="cline-any cline-neutral">&nbsp;</span>
1735
+ <span class="cline-any cline-neutral">&nbsp;</span>
1736
+ <span class="cline-any cline-neutral">&nbsp;</span>
1737
+ <span class="cline-any cline-neutral">&nbsp;</span>
1738
+ <span class="cline-any cline-neutral">&nbsp;</span>
1739
+ <span class="cline-any cline-neutral">&nbsp;</span>
1740
+ <span class="cline-any cline-neutral">&nbsp;</span>
1741
+ <span class="cline-any cline-neutral">&nbsp;</span>
1742
+ <span class="cline-any cline-neutral">&nbsp;</span>
1743
+ <span class="cline-any cline-neutral">&nbsp;</span>
1744
+ <span class="cline-any cline-neutral">&nbsp;</span>
1745
+ <span class="cline-any cline-neutral">&nbsp;</span>
1746
+ <span class="cline-any cline-neutral">&nbsp;</span>
1747
+ <span class="cline-any cline-neutral">&nbsp;</span>
1748
+ <span class="cline-any cline-neutral">&nbsp;</span>
1749
+ <span class="cline-any cline-neutral">&nbsp;</span>
1750
+ <span class="cline-any cline-neutral">&nbsp;</span>
1751
+ <span class="cline-any cline-neutral">&nbsp;</span>
1752
+ <span class="cline-any cline-neutral">&nbsp;</span>
1753
+ <span class="cline-any cline-neutral">&nbsp;</span>
1754
+ <span class="cline-any cline-neutral">&nbsp;</span>
1755
+ <span class="cline-any cline-neutral">&nbsp;</span>
1756
+ <span class="cline-any cline-neutral">&nbsp;</span>
1757
+ <span class="cline-any cline-neutral">&nbsp;</span>
1758
+ <span class="cline-any cline-neutral">&nbsp;</span>
1759
+ <span class="cline-any cline-neutral">&nbsp;</span>
1760
+ <span class="cline-any cline-neutral">&nbsp;</span>
1761
+ <span class="cline-any cline-neutral">&nbsp;</span>
1762
+ <span class="cline-any cline-neutral">&nbsp;</span>
1763
+ <span class="cline-any cline-neutral">&nbsp;</span>
1764
+ <span class="cline-any cline-neutral">&nbsp;</span>
1765
+ <span class="cline-any cline-neutral">&nbsp;</span>
1766
+ <span class="cline-any cline-neutral">&nbsp;</span>
1767
+ <span class="cline-any cline-neutral">&nbsp;</span>
1768
+ <span class="cline-any cline-neutral">&nbsp;</span>
1769
+ <span class="cline-any cline-neutral">&nbsp;</span>
1770
+ <span class="cline-any cline-neutral">&nbsp;</span>
1771
+ <span class="cline-any cline-neutral">&nbsp;</span>
1772
+ <span class="cline-any cline-neutral">&nbsp;</span>
1773
+ <span class="cline-any cline-neutral">&nbsp;</span>
1774
+ <span class="cline-any cline-neutral">&nbsp;</span>
1775
+ <span class="cline-any cline-neutral">&nbsp;</span>
1776
+ <span class="cline-any cline-neutral">&nbsp;</span>
1777
+ <span class="cline-any cline-neutral">&nbsp;</span>
1778
+ <span class="cline-any cline-neutral">&nbsp;</span>
1779
+ <span class="cline-any cline-neutral">&nbsp;</span>
1780
+ <span class="cline-any cline-neutral">&nbsp;</span>
1781
+ <span class="cline-any cline-neutral">&nbsp;</span>
1782
+ <span class="cline-any cline-neutral">&nbsp;</span>
1783
+ <span class="cline-any cline-neutral">&nbsp;</span>
1784
+ <span class="cline-any cline-neutral">&nbsp;</span>
1785
+ <span class="cline-any cline-neutral">&nbsp;</span>
1786
+ <span class="cline-any cline-neutral">&nbsp;</span>
1787
+ <span class="cline-any cline-neutral">&nbsp;</span>
1788
+ <span class="cline-any cline-neutral">&nbsp;</span>
1789
+ <span class="cline-any cline-neutral">&nbsp;</span>
1790
+ <span class="cline-any cline-neutral">&nbsp;</span>
1791
+ <span class="cline-any cline-neutral">&nbsp;</span>
1792
+ <span class="cline-any cline-neutral">&nbsp;</span>
1793
+ <span class="cline-any cline-neutral">&nbsp;</span>
1794
+ <span class="cline-any cline-neutral">&nbsp;</span>
1795
+ <span class="cline-any cline-neutral">&nbsp;</span>
1796
+ <span class="cline-any cline-neutral">&nbsp;</span>
1797
+ <span class="cline-any cline-neutral">&nbsp;</span>
1798
+ <span class="cline-any cline-neutral">&nbsp;</span>
1799
+ <span class="cline-any cline-neutral">&nbsp;</span>
1800
+ <span class="cline-any cline-neutral">&nbsp;</span>
1801
+ <span class="cline-any cline-neutral">&nbsp;</span>
1802
+ <span class="cline-any cline-neutral">&nbsp;</span>
1803
+ <span class="cline-any cline-neutral">&nbsp;</span>
1804
+ <span class="cline-any cline-neutral">&nbsp;</span>
1805
+ <span class="cline-any cline-neutral">&nbsp;</span>
1806
+ <span class="cline-any cline-neutral">&nbsp;</span>
1807
+ <span class="cline-any cline-neutral">&nbsp;</span>
1808
+ <span class="cline-any cline-neutral">&nbsp;</span>
1809
+ <span class="cline-any cline-neutral">&nbsp;</span>
1810
+ <span class="cline-any cline-neutral">&nbsp;</span>
1811
+ <span class="cline-any cline-neutral">&nbsp;</span>
1812
+ <span class="cline-any cline-neutral">&nbsp;</span>
1813
+ <span class="cline-any cline-neutral">&nbsp;</span>
1814
+ <span class="cline-any cline-neutral">&nbsp;</span>
1815
+ <span class="cline-any cline-neutral">&nbsp;</span>
1816
+ <span class="cline-any cline-neutral">&nbsp;</span>
1817
+ <span class="cline-any cline-neutral">&nbsp;</span>
1818
+ <span class="cline-any cline-neutral">&nbsp;</span>
1819
+ <span class="cline-any cline-neutral">&nbsp;</span>
1820
+ <span class="cline-any cline-neutral">&nbsp;</span>
1821
+ <span class="cline-any cline-neutral">&nbsp;</span>
1822
+ <span class="cline-any cline-neutral">&nbsp;</span>
1823
+ <span class="cline-any cline-neutral">&nbsp;</span>
1824
+ <span class="cline-any cline-neutral">&nbsp;</span>
1825
+ <span class="cline-any cline-neutral">&nbsp;</span>
1826
+ <span class="cline-any cline-neutral">&nbsp;</span>
1827
+ <span class="cline-any cline-neutral">&nbsp;</span>
1828
+ <span class="cline-any cline-neutral">&nbsp;</span>
1829
+ <span class="cline-any cline-neutral">&nbsp;</span>
1830
+ <span class="cline-any cline-neutral">&nbsp;</span>
1831
+ <span class="cline-any cline-neutral">&nbsp;</span>
1832
+ <span class="cline-any cline-neutral">&nbsp;</span>
1833
+ <span class="cline-any cline-neutral">&nbsp;</span>
1834
+ <span class="cline-any cline-neutral">&nbsp;</span>
1835
+ <span class="cline-any cline-neutral">&nbsp;</span>
1836
+ <span class="cline-any cline-neutral">&nbsp;</span>
1837
+ <span class="cline-any cline-neutral">&nbsp;</span>
1838
+ <span class="cline-any cline-neutral">&nbsp;</span>
1839
+ <span class="cline-any cline-neutral">&nbsp;</span>
1840
+ <span class="cline-any cline-neutral">&nbsp;</span>
1841
+ <span class="cline-any cline-neutral">&nbsp;</span>
1842
+ <span class="cline-any cline-neutral">&nbsp;</span>
1843
+ <span class="cline-any cline-neutral">&nbsp;</span>
1844
+ <span class="cline-any cline-neutral">&nbsp;</span>
1845
+ <span class="cline-any cline-neutral">&nbsp;</span>
1846
+ <span class="cline-any cline-neutral">&nbsp;</span>
1847
+ <span class="cline-any cline-neutral">&nbsp;</span>
1848
+ <span class="cline-any cline-neutral">&nbsp;</span>
1849
+ <span class="cline-any cline-neutral">&nbsp;</span>
1850
+ <span class="cline-any cline-neutral">&nbsp;</span>
1851
+ <span class="cline-any cline-neutral">&nbsp;</span>
1852
+ <span class="cline-any cline-neutral">&nbsp;</span>
1853
+ <span class="cline-any cline-neutral">&nbsp;</span>
1854
+ <span class="cline-any cline-neutral">&nbsp;</span>
1855
+ <span class="cline-any cline-neutral">&nbsp;</span>
1856
+ <span class="cline-any cline-neutral">&nbsp;</span>
1857
+ <span class="cline-any cline-neutral">&nbsp;</span>
1858
+ <span class="cline-any cline-neutral">&nbsp;</span>
1859
+ <span class="cline-any cline-neutral">&nbsp;</span>
1860
+ <span class="cline-any cline-neutral">&nbsp;</span>
1861
+ <span class="cline-any cline-neutral">&nbsp;</span>
1862
+ <span class="cline-any cline-neutral">&nbsp;</span>
1863
+ <span class="cline-any cline-neutral">&nbsp;</span>
1864
+ <span class="cline-any cline-neutral">&nbsp;</span>
1865
+ <span class="cline-any cline-neutral">&nbsp;</span>
1866
+ <span class="cline-any cline-neutral">&nbsp;</span>
1867
+ <span class="cline-any cline-neutral">&nbsp;</span>
1868
+ <span class="cline-any cline-neutral">&nbsp;</span>
1869
+ <span class="cline-any cline-neutral">&nbsp;</span>
1870
+ <span class="cline-any cline-neutral">&nbsp;</span>
1871
+ <span class="cline-any cline-neutral">&nbsp;</span>
1872
+ <span class="cline-any cline-neutral">&nbsp;</span>
1873
+ <span class="cline-any cline-neutral">&nbsp;</span>
1874
+ <span class="cline-any cline-neutral">&nbsp;</span>
1875
+ <span class="cline-any cline-neutral">&nbsp;</span>
1876
+ <span class="cline-any cline-neutral">&nbsp;</span>
1877
+ <span class="cline-any cline-neutral">&nbsp;</span>
1878
+ <span class="cline-any cline-neutral">&nbsp;</span>
1879
+ <span class="cline-any cline-neutral">&nbsp;</span>
1880
+ <span class="cline-any cline-neutral">&nbsp;</span>
1881
+ <span class="cline-any cline-neutral">&nbsp;</span>
1882
+ <span class="cline-any cline-neutral">&nbsp;</span>
1883
+ <span class="cline-any cline-neutral">&nbsp;</span>
1884
+ <span class="cline-any cline-yes">3192x</span>
1885
+ <span class="cline-any cline-neutral">&nbsp;</span>
1886
+ <span class="cline-any cline-neutral">&nbsp;</span>
1887
+ <span class="cline-any cline-neutral">&nbsp;</span>
1888
+ <span class="cline-any cline-neutral">&nbsp;</span>
1889
+ <span class="cline-any cline-neutral">&nbsp;</span>
1890
+ <span class="cline-any cline-neutral">&nbsp;</span>
1891
+ <span class="cline-any cline-neutral">&nbsp;</span>
1892
+ <span class="cline-any cline-yes">16567x</span>
1893
+ <span class="cline-any cline-neutral">&nbsp;</span>
1894
+ <span class="cline-any cline-neutral">&nbsp;</span>
1895
+ <span class="cline-any cline-neutral">&nbsp;</span>
1896
+ <span class="cline-any cline-neutral">&nbsp;</span>
1897
+ <span class="cline-any cline-neutral">&nbsp;</span>
1898
+ <span class="cline-any cline-neutral">&nbsp;</span>
1899
+ <span class="cline-any cline-neutral">&nbsp;</span>
1900
+ <span class="cline-any cline-neutral">&nbsp;</span>
1901
+ <span class="cline-any cline-neutral">&nbsp;</span>
1902
+ <span class="cline-any cline-yes">4331x</span>
1903
+ <span class="cline-any cline-neutral">&nbsp;</span>
1904
+ <span class="cline-any cline-neutral">&nbsp;</span>
1905
+ <span class="cline-any cline-neutral">&nbsp;</span>
1906
+ <span class="cline-any cline-neutral">&nbsp;</span>
1907
+ <span class="cline-any cline-neutral">&nbsp;</span>
1908
+ <span class="cline-any cline-neutral">&nbsp;</span>
1909
+ <span class="cline-any cline-neutral">&nbsp;</span>
1910
+ <span class="cline-any cline-neutral">&nbsp;</span>
1911
+ <span class="cline-any cline-neutral">&nbsp;</span>
1912
+ <span class="cline-any cline-neutral">&nbsp;</span>
1913
+ <span class="cline-any cline-neutral">&nbsp;</span>
1914
+ <span class="cline-any cline-neutral">&nbsp;</span>
1915
+ <span class="cline-any cline-neutral">&nbsp;</span>
1916
+ <span class="cline-any cline-neutral">&nbsp;</span>
1917
+ <span class="cline-any cline-neutral">&nbsp;</span>
1918
+ <span class="cline-any cline-neutral">&nbsp;</span>
1919
+ <span class="cline-any cline-neutral">&nbsp;</span>
1920
+ <span class="cline-any cline-neutral">&nbsp;</span>
1921
+ <span class="cline-any cline-neutral">&nbsp;</span>
1922
+ <span class="cline-any cline-neutral">&nbsp;</span>
1923
+ <span class="cline-any cline-neutral">&nbsp;</span>
1924
+ <span class="cline-any cline-neutral">&nbsp;</span>
1925
+ <span class="cline-any cline-neutral">&nbsp;</span>
1926
+ <span class="cline-any cline-neutral">&nbsp;</span>
1927
+ <span class="cline-any cline-neutral">&nbsp;</span>
1928
+ <span class="cline-any cline-neutral">&nbsp;</span>
1929
+ <span class="cline-any cline-neutral">&nbsp;</span>
1930
+ <span class="cline-any cline-neutral">&nbsp;</span>
1931
+ <span class="cline-any cline-neutral">&nbsp;</span>
1932
+ <span class="cline-any cline-neutral">&nbsp;</span>
1933
+ <span class="cline-any cline-neutral">&nbsp;</span>
1934
+ <span class="cline-any cline-yes">67x</span>
1935
+ <span class="cline-any cline-neutral">&nbsp;</span>
1936
+ <span class="cline-any cline-neutral">&nbsp;</span>
1937
+ <span class="cline-any cline-neutral">&nbsp;</span>
1938
+ <span class="cline-any cline-neutral">&nbsp;</span>
1939
+ <span class="cline-any cline-neutral">&nbsp;</span>
1940
+ <span class="cline-any cline-neutral">&nbsp;</span>
1941
+ <span class="cline-any cline-neutral">&nbsp;</span>
1942
+ <span class="cline-any cline-neutral">&nbsp;</span>
1943
+ <span class="cline-any cline-neutral">&nbsp;</span>
1944
+ <span class="cline-any cline-neutral">&nbsp;</span>
1945
+ <span class="cline-any cline-neutral">&nbsp;</span>
1946
+ <span class="cline-any cline-neutral">&nbsp;</span>
1947
+ <span class="cline-any cline-neutral">&nbsp;</span>
1948
+ <span class="cline-any cline-neutral">&nbsp;</span>
1949
+ <span class="cline-any cline-neutral">&nbsp;</span>
1950
+ <span class="cline-any cline-neutral">&nbsp;</span>
1951
+ <span class="cline-any cline-yes">66x</span>
1952
+ <span class="cline-any cline-neutral">&nbsp;</span>
1953
+ <span class="cline-any cline-neutral">&nbsp;</span>
1954
+ <span class="cline-any cline-neutral">&nbsp;</span>
1955
+ <span class="cline-any cline-neutral">&nbsp;</span>
1956
+ <span class="cline-any cline-neutral">&nbsp;</span>
1957
+ <span class="cline-any cline-neutral">&nbsp;</span>
1958
+ <span class="cline-any cline-neutral">&nbsp;</span>
1959
+ <span class="cline-any cline-yes">3801x</span>
1960
+ <span class="cline-any cline-yes">3658x</span>
1961
+ <span class="cline-any cline-neutral">&nbsp;</span>
1962
+ <span class="cline-any cline-neutral">&nbsp;</span>
1963
+ <span class="cline-any cline-yes">3801x</span>
1964
+ <span class="cline-any cline-yes">136x</span>
1965
+ <span class="cline-any cline-neutral">&nbsp;</span>
1966
+ <span class="cline-any cline-neutral">&nbsp;</span>
1967
+ <span class="cline-any cline-yes">3665x</span>
1968
+ <span class="cline-any cline-yes">3664x</span>
1969
+ <span class="cline-any cline-neutral">&nbsp;</span>
1970
+ <span class="cline-any cline-neutral">&nbsp;</span>
1971
+ <span class="cline-any cline-yes">1x</span>
1972
+ <span class="cline-any cline-neutral">&nbsp;</span>
1973
+ <span class="cline-any cline-neutral">&nbsp;</span>
1974
+ <span class="cline-any cline-neutral">&nbsp;</span>
1975
+ <span class="cline-any cline-neutral">&nbsp;</span>
1976
+ <span class="cline-any cline-yes">4x</span>
1977
+ <span class="cline-any cline-yes">2x</span>
1978
+ <span class="cline-any cline-neutral">&nbsp;</span>
1979
+ <span class="cline-any cline-neutral">&nbsp;</span>
1980
+ <span class="cline-any cline-yes">2x</span>
1981
+ <span class="cline-any cline-neutral">&nbsp;</span>
1982
+ <span class="cline-any cline-neutral">&nbsp;</span>
1983
+ <span class="cline-any cline-neutral">&nbsp;</span>
1984
+ <span class="cline-any cline-yes">11322x</span>
1985
+ <span class="cline-any cline-neutral">&nbsp;</span>
1986
+ <span class="cline-any cline-neutral">&nbsp;</span>
1987
+ <span class="cline-any cline-neutral">&nbsp;</span>
1988
+ <span class="cline-any cline-neutral">&nbsp;</span>
1989
+ <span class="cline-any cline-neutral">&nbsp;</span>
1990
+ <span class="cline-any cline-neutral">&nbsp;</span>
1991
+ <span class="cline-any cline-neutral">&nbsp;</span>
1992
+ <span class="cline-any cline-neutral">&nbsp;</span>
1993
+ <span class="cline-any cline-neutral">&nbsp;</span>
1994
+ <span class="cline-any cline-yes">14636x</span>
1995
+ <span class="cline-any cline-yes">14636x</span>
1996
+ <span class="cline-any cline-neutral">&nbsp;</span>
1997
+ <span class="cline-any cline-neutral">&nbsp;</span>
1998
+ <span class="cline-any cline-neutral">&nbsp;</span>
1999
+ <span class="cline-any cline-neutral">&nbsp;</span>
2000
+ <span class="cline-any cline-neutral">&nbsp;</span>
2001
+ <span class="cline-any cline-neutral">&nbsp;</span>
2002
+ <span class="cline-any cline-neutral">&nbsp;</span>
2003
+ <span class="cline-any cline-neutral">&nbsp;</span>
2004
+ <span class="cline-any cline-neutral">&nbsp;</span>
2005
+ <span class="cline-any cline-neutral">&nbsp;</span>
2006
+ <span class="cline-any cline-yes">4306x</span>
2007
+ <span class="cline-any cline-neutral">&nbsp;</span>
2008
+ <span class="cline-any cline-neutral">&nbsp;</span>
2009
+ <span class="cline-any cline-neutral">&nbsp;</span>
2010
+ <span class="cline-any cline-neutral">&nbsp;</span>
2011
+ <span class="cline-any cline-neutral">&nbsp;</span>
2012
+ <span class="cline-any cline-neutral">&nbsp;</span>
2013
+ <span class="cline-any cline-neutral">&nbsp;</span>
2014
+ <span class="cline-any cline-neutral">&nbsp;</span>
2015
+ <span class="cline-any cline-neutral">&nbsp;</span>
2016
+ <span class="cline-any cline-neutral">&nbsp;</span>
2017
+ <span class="cline-any cline-yes">87x</span>
2018
+ <span class="cline-any cline-neutral">&nbsp;</span>
2019
+ <span class="cline-any cline-yes">31x</span>
2020
+ <span class="cline-any cline-yes">30x</span>
2021
+ <span class="cline-any cline-neutral">&nbsp;</span>
2022
+ <span class="cline-any cline-neutral">&nbsp;</span>
2023
+ <span class="cline-any cline-yes">1x</span>
2024
+ <span class="cline-any cline-neutral">&nbsp;</span>
2025
+ <span class="cline-any cline-neutral">&nbsp;</span>
2026
+ <span class="cline-any cline-neutral">&nbsp;</span>
2027
+ <span class="cline-any cline-neutral">&nbsp;</span>
2028
+ <span class="cline-any cline-neutral">&nbsp;</span>
2029
+ <span class="cline-any cline-neutral">&nbsp;</span>
2030
+ <span class="cline-any cline-neutral">&nbsp;</span>
2031
+ <span class="cline-any cline-yes">6423x</span>
2032
+ <span class="cline-any cline-neutral">&nbsp;</span>
2033
+ <span class="cline-any cline-yes">3212x</span>
2034
+ <span class="cline-any cline-yes">3211x</span>
2035
+ <span class="cline-any cline-neutral">&nbsp;</span>
2036
+ <span class="cline-any cline-neutral">&nbsp;</span>
2037
+ <span class="cline-any cline-yes">1x</span>
2038
+ <span class="cline-any cline-neutral">&nbsp;</span>
2039
+ <span class="cline-any cline-neutral">&nbsp;</span>
2040
+ <span class="cline-any cline-neutral">&nbsp;</span>
2041
+ <span class="cline-any cline-neutral">&nbsp;</span>
2042
+ <span class="cline-any cline-neutral">&nbsp;</span>
2043
+ <span class="cline-any cline-neutral">&nbsp;</span>
2044
+ <span class="cline-any cline-neutral">&nbsp;</span>
2045
+ <span class="cline-any cline-neutral">&nbsp;</span>
2046
+ <span class="cline-any cline-neutral">&nbsp;</span>
2047
+ <span class="cline-any cline-neutral">&nbsp;</span>
2048
+ <span class="cline-any cline-yes">4x</span>
2049
+ <span class="cline-any cline-yes">1x</span>
2050
+ <span class="cline-any cline-neutral">&nbsp;</span>
2051
+ <span class="cline-any cline-neutral">&nbsp;</span>
2052
+ <span class="cline-any cline-yes">3x</span>
2053
+ <span class="cline-any cline-yes">3x</span>
2054
+ <span class="cline-any cline-yes">3x</span>
2055
+ <span class="cline-any cline-neutral">&nbsp;</span>
2056
+ <span class="cline-any cline-yes">3x</span>
2057
+ <span class="cline-any cline-yes">1x</span>
2058
+ <span class="cline-any cline-neutral">&nbsp;</span>
2059
+ <span class="cline-any cline-neutral">&nbsp;</span>
2060
+ <span class="cline-any cline-yes">2x</span>
2061
+ <span class="cline-any cline-yes">1x</span>
2062
+ <span class="cline-any cline-neutral">&nbsp;</span>
2063
+ <span class="cline-any cline-neutral">&nbsp;</span>
2064
+ <span class="cline-any cline-yes">1x</span>
2065
+ <span class="cline-any cline-neutral">&nbsp;</span>
2066
+ <span class="cline-any cline-neutral">&nbsp;</span>
2067
+ <span class="cline-any cline-neutral">&nbsp;</span>
2068
+ <span class="cline-any cline-neutral">&nbsp;</span>
2069
+ <span class="cline-any cline-neutral">&nbsp;</span>
2070
+ <span class="cline-any cline-neutral">&nbsp;</span>
2071
+ <span class="cline-any cline-neutral">&nbsp;</span>
2072
+ <span class="cline-any cline-neutral">&nbsp;</span>
2073
+ <span class="cline-any cline-neutral">&nbsp;</span>
2074
+ <span class="cline-any cline-neutral">&nbsp;</span>
2075
+ <span class="cline-any cline-yes">29x</span>
2076
+ <span class="cline-any cline-neutral">&nbsp;</span>
2077
+ <span class="cline-any cline-yes">11x</span>
2078
+ <span class="cline-any cline-neutral">&nbsp;</span>
2079
+ <span class="cline-any cline-yes">11x</span>
2080
+ <span class="cline-any cline-neutral">&nbsp;</span>
2081
+ <span class="cline-any cline-yes">11x</span>
2082
+ <span class="cline-any cline-yes">2x</span>
2083
+ <span class="cline-any cline-neutral">&nbsp;</span>
2084
+ <span class="cline-any cline-neutral">&nbsp;</span>
2085
+ <span class="cline-any cline-yes">9x</span>
2086
+ <span class="cline-any cline-neutral">&nbsp;</span>
2087
+ <span class="cline-any cline-yes">9x</span>
2088
+ <span class="cline-any cline-yes">9x</span>
2089
+ <span class="cline-any cline-neutral">&nbsp;</span>
2090
+ <span class="cline-any cline-neutral">&nbsp;</span>
2091
+ <span class="cline-any cline-no">&nbsp;</span>
2092
+ <span class="cline-any cline-neutral">&nbsp;</span>
2093
+ <span class="cline-any cline-neutral">&nbsp;</span>
2094
+ <span class="cline-any cline-neutral">&nbsp;</span>
2095
+ <span class="cline-any cline-neutral">&nbsp;</span>
2096
+ <span class="cline-any cline-yes">73x</span>
2097
+ <span class="cline-any cline-yes">73x</span>
2098
+ <span class="cline-any cline-yes">168x</span>
2099
+ <span class="cline-any cline-yes">168x</span>
2100
+ <span class="cline-any cline-neutral">&nbsp;</span>
2101
+ <span class="cline-any cline-yes">73x</span>
2102
+ <span class="cline-any cline-neutral">&nbsp;</span>
2103
+ <span class="cline-any cline-neutral">&nbsp;</span>
2104
+ <span class="cline-any cline-yes">73x</span>
2105
+ <span class="cline-any cline-yes">168x</span>
2106
+ <span class="cline-any cline-yes">165x</span>
2107
+ <span class="cline-any cline-neutral">&nbsp;</span>
2108
+ <span class="cline-any cline-neutral">&nbsp;</span>
2109
+ <span class="cline-any cline-neutral">&nbsp;</span>
2110
+ <span class="cline-any cline-yes">95x</span>
2111
+ <span class="cline-any cline-neutral">&nbsp;</span>
2112
+ <span class="cline-any cline-neutral">&nbsp;</span>
2113
+ <span class="cline-any cline-yes">165x</span>
2114
+ <span class="cline-any cline-neutral">&nbsp;</span>
2115
+ <span class="cline-any cline-neutral">&nbsp;</span>
2116
+ <span class="cline-any cline-neutral">&nbsp;</span>
2117
+ <span class="cline-any cline-yes">168x</span>
2118
+ <span class="cline-any cline-yes">73x</span>
2119
+ <span class="cline-any cline-yes">168x</span>
2120
+ <span class="cline-any cline-yes">1x</span>
2121
+ <span class="cline-any cline-neutral">&nbsp;</span>
2122
+ <span class="cline-any cline-yes">73x</span>
2123
+ <span class="cline-any cline-neutral">&nbsp;</span>
2124
+ <span class="cline-any cline-yes">3x</span>
2125
+ <span class="cline-any cline-neutral">&nbsp;</span>
2126
+ <span class="cline-any cline-neutral">&nbsp;</span>
2127
+ <span class="cline-any cline-yes">73x</span>
2128
+ <span class="cline-any cline-neutral">&nbsp;</span>
2129
+ <span class="cline-any cline-neutral">&nbsp;</span>
2130
+ <span class="cline-any cline-neutral">&nbsp;</span>
2131
+ <span class="cline-any cline-neutral">&nbsp;</span>
2132
+ <span class="cline-any cline-yes">3277x</span>
2133
+ <span class="cline-any cline-neutral">&nbsp;</span>
2134
+ <span class="cline-any cline-neutral">&nbsp;</span>
2135
+ <span class="cline-any cline-neutral">&nbsp;</span>
2136
+ <span class="cline-any cline-neutral">&nbsp;</span>
2137
+ <span class="cline-any cline-yes">3277x</span>
2138
+ <span class="cline-any cline-yes">867x</span>
2139
+ <span class="cline-any cline-neutral">&nbsp;</span>
2140
+ <span class="cline-any cline-neutral">&nbsp;</span>
2141
+ <span class="cline-any cline-yes">2410x</span>
2142
+ <span class="cline-any cline-neutral">&nbsp;</span>
2143
+ <span class="cline-any cline-neutral">&nbsp;</span>
2144
+ <span class="cline-any cline-neutral">&nbsp;</span>
2145
+ <span class="cline-any cline-neutral">&nbsp;</span>
2146
+ <span class="cline-any cline-neutral">&nbsp;</span>
2147
+ <span class="cline-any cline-neutral">&nbsp;</span>
2148
+ <span class="cline-any cline-neutral">&nbsp;</span>
2149
+ <span class="cline-any cline-neutral">&nbsp;</span>
2150
+ <span class="cline-any cline-neutral">&nbsp;</span>
2151
+ <span class="cline-any cline-neutral">&nbsp;</span>
2152
+ <span class="cline-any cline-neutral">&nbsp;</span>
2153
+ <span class="cline-any cline-yes">3224x</span>
2154
+ <span class="cline-any cline-neutral">&nbsp;</span>
2155
+ <span class="cline-any cline-yes">3224x</span>
2156
+ <span class="cline-any cline-yes">3341x</span>
2157
+ <span class="cline-any cline-yes">64x</span>
2158
+ <span class="cline-any cline-neutral">&nbsp;</span>
2159
+ <span class="cline-any cline-neutral">&nbsp;</span>
2160
+ <span class="cline-any cline-yes">3277x</span>
2161
+ <span class="cline-any cline-neutral">&nbsp;</span>
2162
+ <span class="cline-any cline-neutral">&nbsp;</span>
2163
+ <span class="cline-any cline-neutral">&nbsp;</span>
2164
+ <span class="cline-any cline-yes">3277x</span>
2165
+ <span class="cline-any cline-yes">2747x</span>
2166
+ <span class="cline-any cline-neutral">&nbsp;</span>
2167
+ <span class="cline-any cline-neutral">&nbsp;</span>
2168
+ <span class="cline-any cline-neutral">&nbsp;</span>
2169
+ <span class="cline-any cline-neutral">&nbsp;</span>
2170
+ <span class="cline-any cline-neutral">&nbsp;</span>
2171
+ <span class="cline-any cline-neutral">&nbsp;</span>
2172
+ <span class="cline-any cline-yes">310x</span>
2173
+ <span class="cline-any cline-neutral">&nbsp;</span>
2174
+ <span class="cline-any cline-yes">310x</span>
2175
+ <span class="cline-any cline-yes">990x</span>
2176
+ <span class="cline-any cline-yes">338x</span>
2177
+ <span class="cline-any cline-yes">652x</span>
2178
+ <span class="cline-any cline-neutral">&nbsp;</span>
2179
+ <span class="cline-any cline-neutral">&nbsp;</span>
2180
+ <span class="cline-any cline-neutral">&nbsp;</span>
2181
+ <span class="cline-any cline-neutral">&nbsp;</span>
2182
+ <span class="cline-any cline-yes">64x</span>
2183
+ <span class="cline-any cline-yes">588x</span>
2184
+ <span class="cline-any cline-neutral">&nbsp;</span>
2185
+ <span class="cline-any cline-neutral">&nbsp;</span>
2186
+ <span class="cline-any cline-neutral">&nbsp;</span>
2187
+ <span class="cline-any cline-neutral">&nbsp;</span>
2188
+ <span class="cline-any cline-yes">30x</span>
2189
+ <span class="cline-any cline-neutral">&nbsp;</span>
2190
+ <span class="cline-any cline-neutral">&nbsp;</span>
2191
+ <span class="cline-any cline-neutral">&nbsp;</span>
2192
+ <span class="cline-any cline-yes">310x</span>
2193
+ <span class="cline-any cline-neutral">&nbsp;</span>
2194
+ <span class="cline-any cline-neutral">&nbsp;</span>
2195
+ <span class="cline-any cline-neutral">&nbsp;</span>
2196
+ <span class="cline-any cline-yes">614x</span>
2197
+ <span class="cline-any cline-yes">599x</span>
2198
+ <span class="cline-any cline-neutral">&nbsp;</span>
2199
+ <span class="cline-any cline-neutral">&nbsp;</span>
2200
+ <span class="cline-any cline-yes">15x</span>
2201
+ <span class="cline-any cline-neutral">&nbsp;</span>
2202
+ <span class="cline-any cline-neutral">&nbsp;</span>
2203
+ <span class="cline-any cline-neutral">&nbsp;</span>
2204
+ <span class="cline-any cline-neutral">&nbsp;</span>
2205
+ <span class="cline-any cline-yes">134x</span>
2206
+ <span class="cline-any cline-neutral">&nbsp;</span>
2207
+ <span class="cline-any cline-yes">134x</span>
2208
+ <span class="cline-any cline-neutral">&nbsp;</span>
2209
+ <span class="cline-any cline-yes">416x</span>
2210
+ <span class="cline-any cline-yes">275x</span>
2211
+ <span class="cline-any cline-neutral">&nbsp;</span>
2212
+ <span class="cline-any cline-yes">275x</span>
2213
+ <span class="cline-any cline-neutral">&nbsp;</span>
2214
+ <span class="cline-any cline-neutral">&nbsp;</span>
2215
+ <span class="cline-any cline-neutral">&nbsp;</span>
2216
+ <span class="cline-any cline-yes">180x</span>
2217
+ <span class="cline-any cline-yes">95x</span>
2218
+ <span class="cline-any cline-yes">14x</span>
2219
+ <span class="cline-any cline-yes">14x</span>
2220
+ <span class="cline-any cline-yes">81x</span>
2221
+ <span class="cline-any cline-yes">5x</span>
2222
+ <span class="cline-any cline-yes">76x</span>
2223
+ <span class="cline-any cline-yes">8x</span>
2224
+ <span class="cline-any cline-neutral">&nbsp;</span>
2225
+ <span class="cline-any cline-neutral">&nbsp;</span>
2226
+ <span class="cline-any cline-yes">68x</span>
2227
+ <span class="cline-any cline-yes">68x</span>
2228
+ <span class="cline-any cline-neutral">&nbsp;</span>
2229
+ <span class="cline-any cline-neutral">&nbsp;</span>
2230
+ <span class="cline-any cline-yes">141x</span>
2231
+ <span class="cline-any cline-neutral">&nbsp;</span>
2232
+ <span class="cline-any cline-neutral">&nbsp;</span>
2233
+ <span class="cline-any cline-neutral">&nbsp;</span>
2234
+ <span class="cline-any cline-neutral">&nbsp;</span>
2235
+ <span class="cline-any cline-neutral">&nbsp;</span>
2236
+ <span class="cline-any cline-yes">73x</span>
2237
+ <span class="cline-any cline-neutral">&nbsp;</span>
2238
+ <span class="cline-any cline-yes">96x</span>
2239
+ <span class="cline-any cline-neutral">&nbsp;</span>
2240
+ <span class="cline-any cline-neutral">&nbsp;</span>
2241
+ <span class="cline-any cline-neutral">&nbsp;</span>
2242
+ <span class="cline-any cline-yes">73x</span>
2243
+ <span class="cline-any cline-neutral">&nbsp;</span>
2244
+ <span class="cline-any cline-yes">73x</span>
2245
+ <span class="cline-any cline-yes">1x</span>
2246
+ <span class="cline-any cline-neutral">&nbsp;</span>
2247
+ <span class="cline-any cline-neutral">&nbsp;</span>
2248
+ <span class="cline-any cline-yes">73x</span>
2249
+ <span class="cline-any cline-neutral">&nbsp;</span>
2250
+ <span class="cline-any cline-neutral">&nbsp;</span>
2251
+ <span class="cline-any cline-neutral">&nbsp;</span>
2252
+ <span class="cline-any cline-neutral">&nbsp;</span>
2253
+ <span class="cline-any cline-neutral">&nbsp;</span>
2254
+ <span class="cline-any cline-neutral">&nbsp;</span>
2255
+ <span class="cline-any cline-yes">4318x</span>
2256
+ <span class="cline-any cline-neutral">&nbsp;</span>
2257
+ <span class="cline-any cline-neutral">&nbsp;</span>
2258
+ <span class="cline-any cline-neutral">&nbsp;</span>
2259
+ <span class="cline-any cline-neutral">&nbsp;</span>
2260
+ <span class="cline-any cline-neutral">&nbsp;</span>
2261
+ <span class="cline-any cline-neutral">&nbsp;</span>
2262
+ <span class="cline-any cline-neutral">&nbsp;</span>
2263
+ <span class="cline-any cline-neutral">&nbsp;</span>
2264
+ <span class="cline-any cline-neutral">&nbsp;</span>
2265
+ <span class="cline-any cline-neutral">&nbsp;</span>
2266
+ <span class="cline-any cline-neutral">&nbsp;</span>
2267
+ <span class="cline-any cline-neutral">&nbsp;</span>
2268
+ <span class="cline-any cline-neutral">&nbsp;</span>
2269
+ <span class="cline-any cline-neutral">&nbsp;</span>
2270
+ <span class="cline-any cline-neutral">&nbsp;</span>
2271
+ <span class="cline-any cline-neutral">&nbsp;</span>
2272
+ <span class="cline-any cline-neutral">&nbsp;</span>
2273
+ <span class="cline-any cline-neutral">&nbsp;</span>
2274
+ <span class="cline-any cline-neutral">&nbsp;</span>
2275
+ <span class="cline-any cline-neutral">&nbsp;</span>
2276
+ <span class="cline-any cline-neutral">&nbsp;</span>
2277
+ <span class="cline-any cline-neutral">&nbsp;</span>
2278
+ <span class="cline-any cline-neutral">&nbsp;</span>
2279
+ <span class="cline-any cline-neutral">&nbsp;</span>
2280
+ <span class="cline-any cline-neutral">&nbsp;</span>
2281
+ <span class="cline-any cline-neutral">&nbsp;</span>
2282
+ <span class="cline-any cline-neutral">&nbsp;</span>
2283
+ <span class="cline-any cline-neutral">&nbsp;</span>
2284
+ <span class="cline-any cline-neutral">&nbsp;</span>
2285
+ <span class="cline-any cline-neutral">&nbsp;</span>
2286
+ <span class="cline-any cline-neutral">&nbsp;</span>
2287
+ <span class="cline-any cline-neutral">&nbsp;</span>
2288
+ <span class="cline-any cline-neutral">&nbsp;</span>
2289
+ <span class="cline-any cline-neutral">&nbsp;</span>
2290
+ <span class="cline-any cline-neutral">&nbsp;</span>
2291
+ <span class="cline-any cline-neutral">&nbsp;</span>
2292
+ <span class="cline-any cline-neutral">&nbsp;</span>
2293
+ <span class="cline-any cline-neutral">&nbsp;</span>
2294
+ <span class="cline-any cline-neutral">&nbsp;</span>
2295
+ <span class="cline-any cline-neutral">&nbsp;</span>
2296
+ <span class="cline-any cline-neutral">&nbsp;</span>
2297
+ <span class="cline-any cline-neutral">&nbsp;</span>
2298
+ <span class="cline-any cline-neutral">&nbsp;</span>
2299
+ <span class="cline-any cline-neutral">&nbsp;</span>
2300
+ <span class="cline-any cline-neutral">&nbsp;</span>
2301
+ <span class="cline-any cline-neutral">&nbsp;</span>
2302
+ <span class="cline-any cline-neutral">&nbsp;</span>
2303
+ <span class="cline-any cline-neutral">&nbsp;</span>
2304
+ <span class="cline-any cline-neutral">&nbsp;</span>
2305
+ <span class="cline-any cline-neutral">&nbsp;</span>
2306
+ <span class="cline-any cline-neutral">&nbsp;</span>
2307
+ <span class="cline-any cline-neutral">&nbsp;</span>
2308
+ <span class="cline-any cline-neutral">&nbsp;</span>
2309
+ <span class="cline-any cline-neutral">&nbsp;</span>
2310
+ <span class="cline-any cline-neutral">&nbsp;</span>
2311
+ <span class="cline-any cline-neutral">&nbsp;</span>
2312
+ <span class="cline-any cline-neutral">&nbsp;</span>
2313
+ <span class="cline-any cline-neutral">&nbsp;</span>
2314
+ <span class="cline-any cline-neutral">&nbsp;</span>
2315
+ <span class="cline-any cline-neutral">&nbsp;</span>
2316
+ <span class="cline-any cline-neutral">&nbsp;</span>
2317
+ <span class="cline-any cline-yes">76x</span>
2318
+ <span class="cline-any cline-yes">76x</span>
2319
+ <span class="cline-any cline-neutral">&nbsp;</span>
2320
+ <span class="cline-any cline-yes">76x</span>
2321
+ <span class="cline-any cline-yes">250x</span>
2322
+ <span class="cline-any cline-yes">87x</span>
2323
+ <span class="cline-any cline-neutral">&nbsp;</span>
2324
+ <span class="cline-any cline-neutral">&nbsp;</span>
2325
+ <span class="cline-any cline-yes">163x</span>
2326
+ <span class="cline-any cline-yes">18x</span>
2327
+ <span class="cline-any cline-neutral">&nbsp;</span>
2328
+ <span class="cline-any cline-neutral">&nbsp;</span>
2329
+ <span class="cline-any cline-neutral">&nbsp;</span>
2330
+ <span class="cline-any cline-yes">145x</span>
2331
+ <span class="cline-any cline-neutral">&nbsp;</span>
2332
+ <span class="cline-any cline-neutral">&nbsp;</span>
2333
+ <span class="cline-any cline-neutral">&nbsp;</span>
2334
+ <span class="cline-any cline-neutral">&nbsp;</span>
2335
+ <span class="cline-any cline-neutral">&nbsp;</span>
2336
+ <span class="cline-any cline-neutral">&nbsp;</span>
2337
+ <span class="cline-any cline-yes">76x</span>
2338
+ <span class="cline-any cline-neutral">&nbsp;</span>
2339
+ <span class="cline-any cline-neutral">&nbsp;</span>
2340
+ <span class="cline-any cline-neutral">&nbsp;</span>
2341
+ <span class="cline-any cline-neutral">&nbsp;</span>
2342
+ <span class="cline-any cline-neutral">&nbsp;</span>
2343
+ <span class="cline-any cline-neutral">&nbsp;</span>
2344
+ <span class="cline-any cline-neutral">&nbsp;</span>
2345
+ <span class="cline-any cline-neutral">&nbsp;</span>
2346
+ <span class="cline-any cline-neutral">&nbsp;</span>
2347
+ <span class="cline-any cline-neutral">&nbsp;</span>
2348
+ <span class="cline-any cline-neutral">&nbsp;</span>
2349
+ <span class="cline-any cline-neutral">&nbsp;</span>
2350
+ <span class="cline-any cline-neutral">&nbsp;</span>
2351
+ <span class="cline-any cline-neutral">&nbsp;</span>
2352
+ <span class="cline-any cline-neutral">&nbsp;</span>
2353
+ <span class="cline-any cline-neutral">&nbsp;</span>
2354
+ <span class="cline-any cline-neutral">&nbsp;</span>
2355
+ <span class="cline-any cline-neutral">&nbsp;</span>
2356
+ <span class="cline-any cline-yes">3209x</span>
2357
+ <span class="cline-any cline-yes">3208x</span>
2358
+ <span class="cline-any cline-yes">3208x</span>
2359
+ <span class="cline-any cline-neutral">&nbsp;</span>
2360
+ <span class="cline-any cline-neutral">&nbsp;</span>
2361
+ <span class="cline-any cline-yes">3208x</span>
2362
+ <span class="cline-any cline-neutral">&nbsp;</span>
2363
+ <span class="cline-any cline-neutral">&nbsp;</span>
2364
+ <span class="cline-any cline-neutral">&nbsp;</span>
2365
+ <span class="cline-any cline-yes">3208x</span>
2366
+ <span class="cline-any cline-yes">1x</span>
2367
+ <span class="cline-any cline-neutral">&nbsp;</span>
2368
+ <span class="cline-any cline-neutral">&nbsp;</span>
2369
+ <span class="cline-any cline-yes">3208x</span>
2370
+ <span class="cline-any cline-yes">1x</span>
2371
+ <span class="cline-any cline-neutral">&nbsp;</span>
2372
+ <span class="cline-any cline-neutral">&nbsp;</span>
2373
+ <span class="cline-any cline-yes">3207x</span>
2374
+ <span class="cline-any cline-neutral">&nbsp;</span>
2375
+ <span class="cline-any cline-neutral">&nbsp;</span>
2376
+ <span class="cline-any cline-yes">3207x</span>
2377
+ <span class="cline-any cline-neutral">&nbsp;</span>
2378
+ <span class="cline-any cline-neutral">&nbsp;</span>
2379
+ <span class="cline-any cline-neutral">&nbsp;</span>
2380
+ <span class="cline-any cline-neutral">&nbsp;</span>
2381
+ <span class="cline-any cline-neutral">&nbsp;</span>
2382
+ <span class="cline-any cline-neutral">&nbsp;</span>
2383
+ <span class="cline-any cline-neutral">&nbsp;</span>
2384
+ <span class="cline-any cline-neutral">&nbsp;</span>
2385
+ <span class="cline-any cline-yes">3207x</span>
2386
+ <span class="cline-any cline-yes">470x</span>
2387
+ <span class="cline-any cline-neutral">&nbsp;</span>
2388
+ <span class="cline-any cline-neutral">&nbsp;</span>
2389
+ <span class="cline-any cline-neutral">&nbsp;</span>
2390
+ <span class="cline-any cline-neutral">&nbsp;</span>
2391
+ <span class="cline-any cline-yes">2737x</span>
2392
+ <span class="cline-any cline-neutral">&nbsp;</span>
2393
+ <span class="cline-any cline-yes">2737x</span>
2394
+ <span class="cline-any cline-neutral">&nbsp;</span>
2395
+ <span class="cline-any cline-yes">2737x</span>
2396
+ <span class="cline-any cline-neutral">&nbsp;</span>
2397
+ <span class="cline-any cline-neutral">&nbsp;</span>
2398
+ <span class="cline-any cline-neutral">&nbsp;</span>
2399
+ <span class="cline-any cline-neutral">&nbsp;</span>
2400
+ <span class="cline-any cline-yes">2737x</span>
2401
+ <span class="cline-any cline-neutral">&nbsp;</span>
2402
+ <span class="cline-any cline-neutral">&nbsp;</span>
2403
+ <span class="cline-any cline-yes">2737x</span>
2404
+ <span class="cline-any cline-yes">2713x</span>
2405
+ <span class="cline-any cline-yes">501x</span>
2406
+ <span class="cline-any cline-yes">501x</span>
2407
+ <span class="cline-any cline-yes">501x</span>
2408
+ <span class="cline-any cline-yes">501x</span>
2409
+ <span class="cline-any cline-neutral">&nbsp;</span>
2410
+ <span class="cline-any cline-yes">501x</span>
2411
+ <span class="cline-any cline-neutral">&nbsp;</span>
2412
+ <span class="cline-any cline-yes">501x</span>
2413
+ <span class="cline-any cline-neutral">&nbsp;</span>
2414
+ <span class="cline-any cline-yes">501x</span>
2415
+ <span class="cline-any cline-neutral">&nbsp;</span>
2416
+ <span class="cline-any cline-neutral">&nbsp;</span>
2417
+ <span class="cline-any cline-neutral">&nbsp;</span>
2418
+ <span class="cline-any cline-neutral">&nbsp;</span>
2419
+ <span class="cline-any cline-neutral">&nbsp;</span>
2420
+ <span class="cline-any cline-neutral">&nbsp;</span>
2421
+ <span class="cline-any cline-neutral">&nbsp;</span>
2422
+ <span class="cline-any cline-yes">394x</span>
2423
+ <span class="cline-any cline-neutral">&nbsp;</span>
2424
+ <span class="cline-any cline-yes">2212x</span>
2425
+ <span class="cline-any cline-neutral">&nbsp;</span>
2426
+ <span class="cline-any cline-neutral">&nbsp;</span>
2427
+ <span class="cline-any cline-neutral">&nbsp;</span>
2428
+ <span class="cline-any cline-neutral">&nbsp;</span>
2429
+ <span class="cline-any cline-neutral">&nbsp;</span>
2430
+ <span class="cline-any cline-neutral">&nbsp;</span>
2431
+ <span class="cline-any cline-neutral">&nbsp;</span>
2432
+ <span class="cline-any cline-yes">266x</span>
2433
+ <span class="cline-any cline-neutral">&nbsp;</span>
2434
+ <span class="cline-any cline-yes">266x</span>
2435
+ <span class="cline-any cline-neutral">&nbsp;</span>
2436
+ <span class="cline-any cline-neutral">&nbsp;</span>
2437
+ <span class="cline-any cline-neutral">&nbsp;</span>
2438
+ <span class="cline-any cline-neutral">&nbsp;</span>
2439
+ <span class="cline-any cline-yes">196x</span>
2440
+ <span class="cline-any cline-neutral">&nbsp;</span>
2441
+ <span class="cline-any cline-neutral">&nbsp;</span>
2442
+ <span class="cline-any cline-neutral">&nbsp;</span>
2443
+ <span class="cline-any cline-neutral">&nbsp;</span>
2444
+ <span class="cline-any cline-neutral">&nbsp;</span>
2445
+ <span class="cline-any cline-yes">2147x</span>
2446
+ <span class="cline-any cline-yes">2147x</span>
2447
+ <span class="cline-any cline-neutral">&nbsp;</span>
2448
+ <span class="cline-any cline-yes">2147x</span>
2449
+ <span class="cline-any cline-yes">2147x</span>
2450
+ <span class="cline-any cline-neutral">&nbsp;</span>
2451
+ <span class="cline-any cline-neutral">&nbsp;</span>
2452
+ <span class="cline-any cline-neutral">&nbsp;</span>
2453
+ <span class="cline-any cline-neutral">&nbsp;</span>
2454
+ <span class="cline-any cline-yes">2147x</span>
2455
+ <span class="cline-any cline-yes">2147x</span>
2456
+ <span class="cline-any cline-yes">2147x</span>
2457
+ <span class="cline-any cline-yes">2147x</span>
2458
+ <span class="cline-any cline-yes">2147x</span>
2459
+ <span class="cline-any cline-neutral">&nbsp;</span>
2460
+ <span class="cline-any cline-neutral">&nbsp;</span>
2461
+ <span class="cline-any cline-neutral">&nbsp;</span>
2462
+ <span class="cline-any cline-yes">2147x</span>
2463
+ <span class="cline-any cline-yes">24x</span>
2464
+ <span class="cline-any cline-yes">3x</span>
2465
+ <span class="cline-any cline-neutral">&nbsp;</span>
2466
+ <span class="cline-any cline-yes">2123x</span>
2467
+ <span class="cline-any cline-neutral">&nbsp;</span>
2468
+ <span class="cline-any cline-neutral">&nbsp;</span>
2469
+ <span class="cline-any cline-neutral">&nbsp;</span>
2470
+ <span class="cline-any cline-neutral">&nbsp;</span>
2471
+ <span class="cline-any cline-yes">107x</span>
2472
+ <span class="cline-any cline-neutral">&nbsp;</span>
2473
+ <span class="cline-any cline-neutral">&nbsp;</span>
2474
+ <span class="cline-any cline-neutral">&nbsp;</span>
2475
+ <span class="cline-any cline-neutral">&nbsp;</span>
2476
+ <span class="cline-any cline-yes">101x</span>
2477
+ <span class="cline-any cline-yes">101x</span>
2478
+ <span class="cline-any cline-neutral">&nbsp;</span>
2479
+ <span class="cline-any cline-neutral">&nbsp;</span>
2480
+ <span class="cline-any cline-neutral">&nbsp;</span>
2481
+ <span class="cline-any cline-neutral">&nbsp;</span>
2482
+ <span class="cline-any cline-neutral">&nbsp;</span>
2483
+ <span class="cline-any cline-yes">6x</span>
2484
+ <span class="cline-any cline-neutral">&nbsp;</span>
2485
+ <span class="cline-any cline-neutral">&nbsp;</span>
2486
+ <span class="cline-any cline-neutral">&nbsp;</span>
2487
+ <span class="cline-any cline-neutral">&nbsp;</span>
2488
+ <span class="cline-any cline-neutral">&nbsp;</span>
2489
+ <span class="cline-any cline-neutral">&nbsp;</span>
2490
+ <span class="cline-any cline-neutral">&nbsp;</span>
2491
+ <span class="cline-any cline-yes">6x</span>
2492
+ <span class="cline-any cline-yes">6x</span>
2493
+ <span class="cline-any cline-yes">1x</span>
2494
+ <span class="cline-any cline-neutral">&nbsp;</span>
2495
+ <span class="cline-any cline-yes">6x</span>
2496
+ <span class="cline-any cline-neutral">&nbsp;</span>
2497
+ <span class="cline-any cline-neutral">&nbsp;</span>
2498
+ <span class="cline-any cline-neutral">&nbsp;</span>
2499
+ <span class="cline-any cline-neutral">&nbsp;</span>
2500
+ <span class="cline-any cline-neutral">&nbsp;</span>
2501
+ <span class="cline-any cline-neutral">&nbsp;</span>
2502
+ <span class="cline-any cline-yes">6x</span>
2503
+ <span class="cline-any cline-neutral">&nbsp;</span>
2504
+ <span class="cline-any cline-neutral">&nbsp;</span>
2505
+ <span class="cline-any cline-neutral">&nbsp;</span>
2506
+ <span class="cline-any cline-neutral">&nbsp;</span>
2507
+ <span class="cline-any cline-yes">1x</span>
2508
+ <span class="cline-any cline-neutral">&nbsp;</span>
2509
+ <span class="cline-any cline-neutral">&nbsp;</span>
2510
+ <span class="cline-any cline-neutral">&nbsp;</span>
2511
+ <span class="cline-any cline-neutral">&nbsp;</span>
2512
+ <span class="cline-any cline-yes">2046x</span>
2513
+ <span class="cline-any cline-neutral">&nbsp;</span>
2514
+ <span class="cline-any cline-neutral">&nbsp;</span>
2515
+ <span class="cline-any cline-neutral">&nbsp;</span>
2516
+ <span class="cline-any cline-yes">2046x</span>
2517
+ <span class="cline-any cline-neutral">&nbsp;</span>
2518
+ <span class="cline-any cline-neutral">&nbsp;</span>
2519
+ <span class="cline-any cline-neutral">&nbsp;</span>
2520
+ <span class="cline-any cline-neutral">&nbsp;</span>
2521
+ <span class="cline-any cline-yes">70x</span>
2522
+ <span class="cline-any cline-neutral">&nbsp;</span>
2523
+ <span class="cline-any cline-neutral">&nbsp;</span>
2524
+ <span class="cline-any cline-neutral">&nbsp;</span>
2525
+ <span class="cline-any cline-neutral">&nbsp;</span>
2526
+ <span class="cline-any cline-yes">66x</span>
2527
+ <span class="cline-any cline-yes">66x</span>
2528
+ <span class="cline-any cline-neutral">&nbsp;</span>
2529
+ <span class="cline-any cline-neutral">&nbsp;</span>
2530
+ <span class="cline-any cline-neutral">&nbsp;</span>
2531
+ <span class="cline-any cline-yes">4x</span>
2532
+ <span class="cline-any cline-yes">4x</span>
2533
+ <span class="cline-any cline-neutral">&nbsp;</span>
2534
+ <span class="cline-any cline-yes">4x</span>
2535
+ <span class="cline-any cline-neutral">&nbsp;</span>
2536
+ <span class="cline-any cline-yes">4x</span>
2537
+ <span class="cline-any cline-neutral">&nbsp;</span>
2538
+ <span class="cline-any cline-neutral">&nbsp;</span>
2539
+ <span class="cline-any cline-neutral">&nbsp;</span>
2540
+ <span class="cline-any cline-neutral">&nbsp;</span>
2541
+ <span class="cline-any cline-yes">1x</span>
2542
+ <span class="cline-any cline-neutral">&nbsp;</span>
2543
+ <span class="cline-any cline-neutral">&nbsp;</span>
2544
+ <span class="cline-any cline-neutral">&nbsp;</span>
2545
+ <span class="cline-any cline-yes">1980x</span>
2546
+ <span class="cline-any cline-yes">1980x</span>
2547
+ <span class="cline-any cline-neutral">&nbsp;</span>
2548
+ <span class="cline-any cline-neutral">&nbsp;</span>
2549
+ <span class="cline-any cline-yes">1980x</span>
2550
+ <span class="cline-any cline-neutral">&nbsp;</span>
2551
+ <span class="cline-any cline-neutral">&nbsp;</span>
2552
+ <span class="cline-any cline-yes">6140x</span>
2553
+ <span class="cline-any cline-neutral">&nbsp;</span>
2554
+ <span class="cline-any cline-neutral">&nbsp;</span>
2555
+ <span class="cline-any cline-neutral">&nbsp;</span>
2556
+ <span class="cline-any cline-neutral">&nbsp;</span>
2557
+ <span class="cline-any cline-neutral">&nbsp;</span>
2558
+ <span class="cline-any cline-neutral">&nbsp;</span>
2559
+ <span class="cline-any cline-yes">1980x</span>
2560
+ <span class="cline-any cline-neutral">&nbsp;</span>
2561
+ <span class="cline-any cline-yes">1980x</span>
2562
+ <span class="cline-any cline-neutral">&nbsp;</span>
2563
+ <span class="cline-any cline-neutral">&nbsp;</span>
2564
+ <span class="cline-any cline-neutral">&nbsp;</span>
2565
+ <span class="cline-any cline-neutral">&nbsp;</span>
2566
+ <span class="cline-any cline-yes">100x</span>
2567
+ <span class="cline-any cline-neutral">&nbsp;</span>
2568
+ <span class="cline-any cline-neutral">&nbsp;</span>
2569
+ <span class="cline-any cline-yes">100x</span>
2570
+ <span class="cline-any cline-yes">324x</span>
2571
+ <span class="cline-any cline-yes">110x</span>
2572
+ <span class="cline-any cline-neutral">&nbsp;</span>
2573
+ <span class="cline-any cline-neutral">&nbsp;</span>
2574
+ <span class="cline-any cline-yes">214x</span>
2575
+ <span class="cline-any cline-yes">18x</span>
2576
+ <span class="cline-any cline-neutral">&nbsp;</span>
2577
+ <span class="cline-any cline-neutral">&nbsp;</span>
2578
+ <span class="cline-any cline-neutral">&nbsp;</span>
2579
+ <span class="cline-any cline-neutral">&nbsp;</span>
2580
+ <span class="cline-any cline-neutral">&nbsp;</span>
2581
+ <span class="cline-any cline-neutral">&nbsp;</span>
2582
+ <span class="cline-any cline-yes">100x</span>
2583
+ <span class="cline-any cline-neutral">&nbsp;</span>
2584
+ <span class="cline-any cline-yes">100x</span>
2585
+ <span class="cline-any cline-yes">324x</span>
2586
+ <span class="cline-any cline-yes">128x</span>
2587
+ <span class="cline-any cline-neutral">&nbsp;</span>
2588
+ <span class="cline-any cline-neutral">&nbsp;</span>
2589
+ <span class="cline-any cline-yes">196x</span>
2590
+ <span class="cline-any cline-neutral">&nbsp;</span>
2591
+ <span class="cline-any cline-neutral">&nbsp;</span>
2592
+ <span class="cline-any cline-neutral">&nbsp;</span>
2593
+ <span class="cline-any cline-neutral">&nbsp;</span>
2594
+ <span class="cline-any cline-neutral">&nbsp;</span>
2595
+ <span class="cline-any cline-neutral">&nbsp;</span>
2596
+ <span class="cline-any cline-neutral">&nbsp;</span>
2597
+ <span class="cline-any cline-yes">100x</span>
2598
+ <span class="cline-any cline-neutral">&nbsp;</span>
2599
+ <span class="cline-any cline-neutral">&nbsp;</span>
2600
+ <span class="cline-any cline-neutral">&nbsp;</span>
2601
+ <span class="cline-any cline-neutral">&nbsp;</span>
2602
+ <span class="cline-any cline-neutral">&nbsp;</span>
2603
+ <span class="cline-any cline-neutral">&nbsp;</span>
2604
+ <span class="cline-any cline-neutral">&nbsp;</span>
2605
+ <span class="cline-any cline-neutral">&nbsp;</span>
2606
+ <span class="cline-any cline-neutral">&nbsp;</span>
2607
+ <span class="cline-any cline-neutral">&nbsp;</span>
2608
+ <span class="cline-any cline-neutral">&nbsp;</span>
2609
+ <span class="cline-any cline-yes">3209x</span>
2610
+ <span class="cline-any cline-neutral">&nbsp;</span>
2611
+ <span class="cline-any cline-neutral">&nbsp;</span>
2612
+ <span class="cline-any cline-neutral">&nbsp;</span>
2613
+ <span class="cline-any cline-neutral">&nbsp;</span>
2614
+ <span class="cline-any cline-neutral">&nbsp;</span>
2615
+ <span class="cline-any cline-neutral">&nbsp;</span>
2616
+ <span class="cline-any cline-neutral">&nbsp;</span>
2617
+ <span class="cline-any cline-neutral">&nbsp;</span>
2618
+ <span class="cline-any cline-neutral">&nbsp;</span>
2619
+ <span class="cline-any cline-neutral">&nbsp;</span>
2620
+ <span class="cline-any cline-neutral">&nbsp;</span>
2621
+ <span class="cline-any cline-neutral">&nbsp;</span>
2622
+ <span class="cline-any cline-neutral">&nbsp;</span>
2623
+ <span class="cline-any cline-neutral">&nbsp;</span>
2624
+ <span class="cline-any cline-neutral">&nbsp;</span>
2625
+ <span class="cline-any cline-neutral">&nbsp;</span>
2626
+ <span class="cline-any cline-neutral">&nbsp;</span>
2627
+ <span class="cline-any cline-neutral">&nbsp;</span>
2628
+ <span class="cline-any cline-neutral">&nbsp;</span>
2629
+ <span class="cline-any cline-neutral">&nbsp;</span>
2630
+ <span class="cline-any cline-neutral">&nbsp;</span>
2631
+ <span class="cline-any cline-neutral">&nbsp;</span>
2632
+ <span class="cline-any cline-neutral">&nbsp;</span>
2633
+ <span class="cline-any cline-neutral">&nbsp;</span>
2634
+ <span class="cline-any cline-neutral">&nbsp;</span>
2635
+ <span class="cline-any cline-neutral">&nbsp;</span>
2636
+ <span class="cline-any cline-neutral">&nbsp;</span>
2637
+ <span class="cline-any cline-yes">2x</span>
2638
+ <span class="cline-any cline-neutral">&nbsp;</span>
2639
+ <span class="cline-any cline-yes">2x</span>
2640
+ <span class="cline-any cline-yes">170x</span>
2641
+ <span class="cline-any cline-neutral">&nbsp;</span>
2642
+ <span class="cline-any cline-neutral">&nbsp;</span>
2643
+ <span class="cline-any cline-neutral">&nbsp;</span>
2644
+ <span class="cline-any cline-neutral">&nbsp;</span>
2645
+ <span class="cline-any cline-neutral">&nbsp;</span>
2646
+ <span class="cline-any cline-neutral">&nbsp;</span>
2647
+ <span class="cline-any cline-neutral">&nbsp;</span>
2648
+ <span class="cline-any cline-neutral">&nbsp;</span>
2649
+ <span class="cline-any cline-neutral">&nbsp;</span>
2650
+ <span class="cline-any cline-neutral">&nbsp;</span>
2651
+ <span class="cline-any cline-neutral">&nbsp;</span>
2652
+ <span class="cline-any cline-neutral">&nbsp;</span>
2653
+ <span class="cline-any cline-neutral">&nbsp;</span>
2654
+ <span class="cline-any cline-neutral">&nbsp;</span>
2655
+ <span class="cline-any cline-neutral">&nbsp;</span>
2656
+ <span class="cline-any cline-neutral">&nbsp;</span>
2657
+ <span class="cline-any cline-neutral">&nbsp;</span>
2658
+ <span class="cline-any cline-yes">2x</span>
2659
+ <span class="cline-any cline-neutral">&nbsp;</span>
2660
+ <span class="cline-any cline-neutral">&nbsp;</span>
2661
+ <span class="cline-any cline-neutral">&nbsp;</span>
2662
+ <span class="cline-any cline-neutral">&nbsp;</span>
2663
+ <span class="cline-any cline-neutral">&nbsp;</span>
2664
+ <span class="cline-any cline-neutral">&nbsp;</span>
2665
+ <span class="cline-any cline-neutral">&nbsp;</span>
2666
+ <span class="cline-any cline-neutral">&nbsp;</span>
2667
+ <span class="cline-any cline-yes">12x</span>
2668
+ <span class="cline-any cline-yes">12x</span>
2669
+ <span class="cline-any cline-neutral">&nbsp;</span>
2670
+ <span class="cline-any cline-neutral">&nbsp;</span>
2671
+ <span class="cline-any cline-neutral">&nbsp;</span>
2672
+ <span class="cline-any cline-yes">12x</span>
2673
+ <span class="cline-any cline-yes">17x</span>
2674
+ <span class="cline-any cline-neutral">&nbsp;</span>
2675
+ <span class="cline-any cline-neutral">&nbsp;</span>
2676
+ <span class="cline-any cline-neutral">&nbsp;</span>
2677
+ <span class="cline-any cline-neutral">&nbsp;</span>
2678
+ <span class="cline-any cline-neutral">&nbsp;</span>
2679
+ <span class="cline-any cline-neutral">&nbsp;</span>
2680
+ <span class="cline-any cline-yes">17x</span>
2681
+ <span class="cline-any cline-yes">7x</span>
2682
+ <span class="cline-any cline-no">&nbsp;</span>
2683
+ <span class="cline-any cline-neutral">&nbsp;</span>
2684
+ <span class="cline-any cline-yes">7x</span>
2685
+ <span class="cline-any cline-yes">7x</span>
2686
+ <span class="cline-any cline-yes">7x</span>
2687
+ <span class="cline-any cline-neutral">&nbsp;</span>
2688
+ <span class="cline-any cline-neutral">&nbsp;</span>
2689
+ <span class="cline-any cline-neutral">&nbsp;</span>
2690
+ <span class="cline-any cline-yes">10x</span>
2691
+ <span class="cline-any cline-yes">10x</span>
2692
+ <span class="cline-any cline-neutral">&nbsp;</span>
2693
+ <span class="cline-any cline-yes">10x</span>
2694
+ <span class="cline-any cline-yes">10x</span>
2695
+ <span class="cline-any cline-yes">10x</span>
2696
+ <span class="cline-any cline-neutral">&nbsp;</span>
2697
+ <span class="cline-any cline-neutral">&nbsp;</span>
2698
+ <span class="cline-any cline-neutral">&nbsp;</span>
2699
+ <span class="cline-any cline-neutral">&nbsp;</span>
2700
+ <span class="cline-any cline-neutral">&nbsp;</span>
2701
+ <span class="cline-any cline-neutral">&nbsp;</span>
2702
+ <span class="cline-any cline-neutral">&nbsp;</span>
2703
+ <span class="cline-any cline-neutral">&nbsp;</span>
2704
+ <span class="cline-any cline-neutral">&nbsp;</span>
2705
+ <span class="cline-any cline-neutral">&nbsp;</span>
2706
+ <span class="cline-any cline-neutral">&nbsp;</span>
2707
+ <span class="cline-any cline-neutral">&nbsp;</span>
2708
+ <span class="cline-any cline-neutral">&nbsp;</span>
2709
+ <span class="cline-any cline-neutral">&nbsp;</span>
2710
+ <span class="cline-any cline-neutral">&nbsp;</span>
2711
+ <span class="cline-any cline-neutral">&nbsp;</span>
2712
+ <span class="cline-any cline-neutral">&nbsp;</span>
2713
+ <span class="cline-any cline-neutral">&nbsp;</span>
2714
+ <span class="cline-any cline-yes">2x</span>
2715
+ <span class="cline-any cline-neutral">&nbsp;</span>
2716
+ <span class="cline-any cline-neutral">&nbsp;</span>
2717
+ <span class="cline-any cline-neutral">&nbsp;</span>
2718
+ <span class="cline-any cline-neutral">&nbsp;</span>
2719
+ <span class="cline-any cline-yes">7x</span>
2720
+ <span class="cline-any cline-yes">7x</span>
2721
+ <span class="cline-any cline-yes">7x</span>
2722
+ <span class="cline-any cline-neutral">&nbsp;</span>
2723
+ <span class="cline-any cline-yes">7x</span>
2724
+ <span class="cline-any cline-yes">7x</span>
2725
+ <span class="cline-any cline-neutral">&nbsp;</span>
2726
+ <span class="cline-any cline-yes">7x</span>
2727
+ <span class="cline-any cline-yes">3x</span>
2728
+ <span class="cline-any cline-neutral">&nbsp;</span>
2729
+ <span class="cline-any cline-neutral">&nbsp;</span>
2730
+ <span class="cline-any cline-neutral">&nbsp;</span>
2731
+ <span class="cline-any cline-yes">4x</span>
2732
+ <span class="cline-any cline-neutral">&nbsp;</span>
2733
+ <span class="cline-any cline-yes">4x</span>
2734
+ <span class="cline-any cline-yes">4x</span>
2735
+ <span class="cline-any cline-yes">4x</span>
2736
+ <span class="cline-any cline-neutral">&nbsp;</span>
2737
+ <span class="cline-any cline-neutral">&nbsp;</span>
2738
+ <span class="cline-any cline-yes">7x</span>
2739
+ <span class="cline-any cline-yes">7x</span>
2740
+ <span class="cline-any cline-yes">7x</span>
2741
+ <span class="cline-any cline-neutral">&nbsp;</span>
2742
+ <span class="cline-any cline-neutral">&nbsp;</span>
2743
+ <span class="cline-any cline-yes">7x</span>
2744
+ <span class="cline-any cline-yes">7x</span>
2745
+ <span class="cline-any cline-neutral">&nbsp;</span>
2746
+ <span class="cline-any cline-neutral">&nbsp;</span>
2747
+ <span class="cline-any cline-yes">24x</span>
2748
+ <span class="cline-any cline-yes">24x</span>
2749
+ <span class="cline-any cline-yes">24x</span>
2750
+ <span class="cline-any cline-neutral">&nbsp;</span>
2751
+ <span class="cline-any cline-yes">24x</span>
2752
+ <span class="cline-any cline-yes">24x</span>
2753
+ <span class="cline-any cline-neutral">&nbsp;</span>
2754
+ <span class="cline-any cline-neutral">&nbsp;</span>
2755
+ <span class="cline-any cline-neutral">&nbsp;</span>
2756
+ <span class="cline-any cline-neutral">&nbsp;</span>
2757
+ <span class="cline-any cline-neutral">&nbsp;</span>
2758
+ <span class="cline-any cline-yes">24x</span>
2759
+ <span class="cline-any cline-yes">7x</span>
2760
+ <span class="cline-any cline-yes">7x</span>
2761
+ <span class="cline-any cline-yes">7x</span>
2762
+ <span class="cline-any cline-neutral">&nbsp;</span>
2763
+ <span class="cline-any cline-neutral">&nbsp;</span>
2764
+ <span class="cline-any cline-yes">17x</span>
2765
+ <span class="cline-any cline-neutral">&nbsp;</span>
2766
+ <span class="cline-any cline-neutral">&nbsp;</span>
2767
+ <span class="cline-any cline-yes">7x</span>
2768
+ <span class="cline-any cline-neutral">&nbsp;</span>
2769
+ <span class="cline-any cline-neutral">&nbsp;</span>
2770
+ <span class="cline-any cline-neutral">&nbsp;</span>
2771
+ <span class="cline-any cline-yes">2x</span>
2772
+ <span class="cline-any cline-neutral">&nbsp;</span>
2773
+ <span class="cline-any cline-neutral">&nbsp;</span>
2774
+ <span class="cline-any cline-neutral">&nbsp;</span>
2775
+ <span class="cline-any cline-neutral">&nbsp;</span>
2776
+ <span class="cline-any cline-neutral">&nbsp;</span>
2777
+ <span class="cline-any cline-neutral">&nbsp;</span>
2778
+ <span class="cline-any cline-neutral">&nbsp;</span>
2779
+ <span class="cline-any cline-neutral">&nbsp;</span>
2780
+ <span class="cline-any cline-neutral">&nbsp;</span>
2781
+ <span class="cline-any cline-neutral">&nbsp;</span>
2782
+ <span class="cline-any cline-neutral">&nbsp;</span>
2783
+ <span class="cline-any cline-neutral">&nbsp;</span>
2784
+ <span class="cline-any cline-yes">34x</span>
2785
+ <span class="cline-any cline-neutral">&nbsp;</span>
2786
+ <span class="cline-any cline-neutral">&nbsp;</span>
2787
+ <span class="cline-any cline-neutral">&nbsp;</span>
2788
+ <span class="cline-any cline-neutral">&nbsp;</span>
2789
+ <span class="cline-any cline-neutral">&nbsp;</span>
2790
+ <span class="cline-any cline-neutral">&nbsp;</span>
2791
+ <span class="cline-any cline-neutral">&nbsp;</span>
2792
+ <span class="cline-any cline-neutral">&nbsp;</span>
2793
+ <span class="cline-any cline-neutral">&nbsp;</span>
2794
+ <span class="cline-any cline-neutral">&nbsp;</span>
2795
+ <span class="cline-any cline-neutral">&nbsp;</span>
2796
+ <span class="cline-any cline-neutral">&nbsp;</span>
2797
+ <span class="cline-any cline-neutral">&nbsp;</span>
2798
+ <span class="cline-any cline-neutral">&nbsp;</span>
2799
+ <span class="cline-any cline-neutral">&nbsp;</span>
2800
+ <span class="cline-any cline-neutral">&nbsp;</span>
2801
+ <span class="cline-any cline-neutral">&nbsp;</span>
2802
+ <span class="cline-any cline-neutral">&nbsp;</span>
2803
+ <span class="cline-any cline-neutral">&nbsp;</span>
2804
+ <span class="cline-any cline-neutral">&nbsp;</span>
2805
+ <span class="cline-any cline-neutral">&nbsp;</span>
2806
+ <span class="cline-any cline-neutral">&nbsp;</span>
2807
+ <span class="cline-any cline-neutral">&nbsp;</span>
2808
+ <span class="cline-any cline-neutral">&nbsp;</span>
2809
+ <span class="cline-any cline-neutral">&nbsp;</span>
2810
+ <span class="cline-any cline-neutral">&nbsp;</span>
2811
+ <span class="cline-any cline-neutral">&nbsp;</span>
2812
+ <span class="cline-any cline-neutral">&nbsp;</span>
2813
+ <span class="cline-any cline-neutral">&nbsp;</span>
2814
+ <span class="cline-any cline-neutral">&nbsp;</span>
2815
+ <span class="cline-any cline-neutral">&nbsp;</span>
2816
+ <span class="cline-any cline-neutral">&nbsp;</span>
2817
+ <span class="cline-any cline-neutral">&nbsp;</span>
2818
+ <span class="cline-any cline-neutral">&nbsp;</span>
2819
+ <span class="cline-any cline-neutral">&nbsp;</span>
2820
+ <span class="cline-any cline-neutral">&nbsp;</span>
2821
+ <span class="cline-any cline-neutral">&nbsp;</span>
2822
+ <span class="cline-any cline-neutral">&nbsp;</span>
2823
+ <span class="cline-any cline-neutral">&nbsp;</span>
2824
+ <span class="cline-any cline-neutral">&nbsp;</span>
2825
+ <span class="cline-any cline-neutral">&nbsp;</span>
2826
+ <span class="cline-any cline-neutral">&nbsp;</span>
2827
+ <span class="cline-any cline-neutral">&nbsp;</span>
2828
+ <span class="cline-any cline-neutral">&nbsp;</span>
2829
+ <span class="cline-any cline-neutral">&nbsp;</span>
2830
+ <span class="cline-any cline-neutral">&nbsp;</span>
2831
+ <span class="cline-any cline-neutral">&nbsp;</span>
2832
+ <span class="cline-any cline-neutral">&nbsp;</span>
2833
+ <span class="cline-any cline-neutral">&nbsp;</span>
2834
+ <span class="cline-any cline-neutral">&nbsp;</span>
2835
+ <span class="cline-any cline-neutral">&nbsp;</span>
2836
+ <span class="cline-any cline-yes">7x</span>
2837
+ <span class="cline-any cline-neutral">&nbsp;</span>
2838
+ <span class="cline-any cline-neutral">&nbsp;</span>
2839
+ <span class="cline-any cline-neutral">&nbsp;</span>
2840
+ <span class="cline-any cline-neutral">&nbsp;</span>
2841
+ <span class="cline-any cline-neutral">&nbsp;</span>
2842
+ <span class="cline-any cline-neutral">&nbsp;</span>
2843
+ <span class="cline-any cline-neutral">&nbsp;</span>
2844
+ <span class="cline-any cline-neutral">&nbsp;</span>
2845
+ <span class="cline-any cline-neutral">&nbsp;</span>
2846
+ <span class="cline-any cline-neutral">&nbsp;</span>
2847
+ <span class="cline-any cline-neutral">&nbsp;</span>
2848
+ <span class="cline-any cline-neutral">&nbsp;</span>
2849
+ <span class="cline-any cline-neutral">&nbsp;</span>
2850
+ <span class="cline-any cline-neutral">&nbsp;</span>
2851
+ <span class="cline-any cline-neutral">&nbsp;</span>
2852
+ <span class="cline-any cline-neutral">&nbsp;</span>
2853
+ <span class="cline-any cline-neutral">&nbsp;</span>
2854
+ <span class="cline-any cline-neutral">&nbsp;</span>
2855
+ <span class="cline-any cline-neutral">&nbsp;</span>
2856
+ <span class="cline-any cline-neutral">&nbsp;</span>
2857
+ <span class="cline-any cline-neutral">&nbsp;</span>
2858
+ <span class="cline-any cline-neutral">&nbsp;</span>
2859
+ <span class="cline-any cline-neutral">&nbsp;</span>
2860
+ <span class="cline-any cline-neutral">&nbsp;</span>
2861
+ <span class="cline-any cline-neutral">&nbsp;</span>
2862
+ <span class="cline-any cline-neutral">&nbsp;</span>
2863
+ <span class="cline-any cline-neutral">&nbsp;</span>
2864
+ <span class="cline-any cline-neutral">&nbsp;</span>
2865
+ <span class="cline-any cline-neutral">&nbsp;</span>
2866
+ <span class="cline-any cline-yes">9x</span>
2867
+ <span class="cline-any cline-yes">9x</span>
2868
+ <span class="cline-any cline-yes">9x</span>
2869
+ <span class="cline-any cline-neutral">&nbsp;</span>
2870
+ <span class="cline-any cline-neutral">&nbsp;</span>
2871
+ <span class="cline-any cline-yes">3x</span>
2872
+ <span class="cline-any cline-yes">3x</span>
2873
+ <span class="cline-any cline-yes">3x</span>
2874
+ <span class="cline-any cline-neutral">&nbsp;</span>
2875
+ <span class="cline-any cline-neutral">&nbsp;</span>
2876
+ <span class="cline-any cline-neutral">&nbsp;</span>
2877
+ <span class="cline-any cline-neutral">&nbsp;</span>
2878
+ <span class="cline-any cline-neutral">&nbsp;</span>
2879
+ <span class="cline-any cline-neutral">&nbsp;</span>
2880
+ <span class="cline-any cline-neutral">&nbsp;</span>
2881
+ <span class="cline-any cline-yes">2x</span>
2882
+ <span class="cline-any cline-yes">2x</span>
2883
+ <span class="cline-any cline-yes">2x</span>
2884
+ <span class="cline-any cline-neutral">&nbsp;</span>
2885
+ <span class="cline-any cline-neutral">&nbsp;</span>
2886
+ <span class="cline-any cline-yes">2x</span>
2887
+ <span class="cline-any cline-neutral">&nbsp;</span>
2888
+ <span class="cline-any cline-yes">2x</span>
2889
+ <span class="cline-any cline-neutral">&nbsp;</span>
2890
+ <span class="cline-any cline-neutral">&nbsp;</span>
2891
+ <span class="cline-any cline-neutral">&nbsp;</span>
2892
+ <span class="cline-any cline-yes">2x</span>
2893
+ <span class="cline-any cline-neutral">&nbsp;</span>
2894
+ <span class="cline-any cline-neutral">&nbsp;</span>
2895
+ <span class="cline-any cline-yes">2x</span>
2896
+ <span class="cline-any cline-neutral">&nbsp;</span>
2897
+ <span class="cline-any cline-neutral">&nbsp;</span>
2898
+ <span class="cline-any cline-neutral">&nbsp;</span>
2899
+ <span class="cline-any cline-neutral">&nbsp;</span>
2900
+ <span class="cline-any cline-neutral">&nbsp;</span>
2901
+ <span class="cline-any cline-neutral">&nbsp;</span>
2902
+ <span class="cline-any cline-yes">2x</span>
2903
+ <span class="cline-any cline-neutral">&nbsp;</span>
2904
+ <span class="cline-any cline-neutral">&nbsp;</span>
2905
+ <span class="cline-any cline-neutral">&nbsp;</span>
2906
+ <span class="cline-any cline-neutral">&nbsp;</span>
2907
+ <span class="cline-any cline-yes">7x</span>
2908
+ <span class="cline-any cline-yes">7x</span>
2909
+ <span class="cline-any cline-neutral">&nbsp;</span>
2910
+ <span class="cline-any cline-yes">7x</span>
2911
+ <span class="cline-any cline-yes">7x</span>
2912
+ <span class="cline-any cline-neutral">&nbsp;</span>
2913
+ <span class="cline-any cline-yes">7x</span>
2914
+ <span class="cline-any cline-yes">4x</span>
2915
+ <span class="cline-any cline-neutral">&nbsp;</span>
2916
+ <span class="cline-any cline-neutral">&nbsp;</span>
2917
+ <span class="cline-any cline-yes">7x</span>
2918
+ <span class="cline-any cline-neutral">&nbsp;</span>
2919
+ <span class="cline-any cline-neutral">&nbsp;</span>
2920
+ <span class="cline-any cline-neutral">&nbsp;</span>
2921
+ <span class="cline-any cline-neutral">&nbsp;</span>
2922
+ <span class="cline-any cline-yes">26x</span>
2923
+ <span class="cline-any cline-yes">26x</span>
2924
+ <span class="cline-any cline-neutral">&nbsp;</span>
2925
+ <span class="cline-any cline-neutral">&nbsp;</span>
2926
+ <span class="cline-any cline-neutral">&nbsp;</span>
2927
+ <span class="cline-any cline-neutral">&nbsp;</span>
2928
+ <span class="cline-any cline-yes">26x</span>
2929
+ <span class="cline-any cline-neutral">&nbsp;</span>
2930
+ <span class="cline-any cline-yes">26x</span>
2931
+ <span class="cline-any cline-neutral">&nbsp;</span>
2932
+ <span class="cline-any cline-yes">26x</span>
2933
+ <span class="cline-any cline-yes">165x</span>
2934
+ <span class="cline-any cline-neutral">&nbsp;</span>
2935
+ <span class="cline-any cline-yes">80x</span>
2936
+ <span class="cline-any cline-yes">27x</span>
2937
+ <span class="cline-any cline-neutral">&nbsp;</span>
2938
+ <span class="cline-any cline-neutral">&nbsp;</span>
2939
+ <span class="cline-any cline-yes">53x</span>
2940
+ <span class="cline-any cline-neutral">&nbsp;</span>
2941
+ <span class="cline-any cline-neutral">&nbsp;</span>
2942
+ <span class="cline-any cline-neutral">&nbsp;</span>
2943
+ <span class="cline-any cline-neutral">&nbsp;</span>
2944
+ <span class="cline-any cline-yes">26x</span>
2945
+ <span class="cline-any cline-neutral">&nbsp;</span>
2946
+ <span class="cline-any cline-neutral">&nbsp;</span>
2947
+ <span class="cline-any cline-neutral">&nbsp;</span>
2948
+ <span class="cline-any cline-neutral">&nbsp;</span>
2949
+ <span class="cline-any cline-yes">1x</span>
2950
+ <span class="cline-any cline-yes">1x</span>
2951
+ <span class="cline-any cline-neutral">&nbsp;</span>
2952
+ <span class="cline-any cline-neutral">&nbsp;</span>
2953
+ <span class="cline-any cline-neutral">&nbsp;</span>
2954
+ <span class="cline-any cline-neutral">&nbsp;</span>
2955
+ <span class="cline-any cline-yes">44x</span>
2956
+ <span class="cline-any cline-neutral">&nbsp;</span>
2957
+ <span class="cline-any cline-yes">44x</span>
2958
+ <span class="cline-any cline-neutral">&nbsp;</span>
2959
+ <span class="cline-any cline-neutral">&nbsp;</span>
2960
+ <span class="cline-any cline-neutral">&nbsp;</span>
2961
+ <span class="cline-any cline-neutral">&nbsp;</span>
2962
+ <span class="cline-any cline-neutral">&nbsp;</span>
2963
+ <span class="cline-any cline-neutral">&nbsp;</span>
2964
+ <span class="cline-any cline-neutral">&nbsp;</span>
2965
+ <span class="cline-any cline-neutral">&nbsp;</span>
2966
+ <span class="cline-any cline-yes">4x</span>
2967
+ <span class="cline-any cline-neutral">&nbsp;</span>
2968
+ <span class="cline-any cline-yes">4x</span>
2969
+ <span class="cline-any cline-neutral">&nbsp;</span>
2970
+ <span class="cline-any cline-yes">4x</span>
2971
+ <span class="cline-any cline-neutral">&nbsp;</span>
2972
+ <span class="cline-any cline-neutral">&nbsp;</span>
2973
+ <span class="cline-any cline-neutral">&nbsp;</span>
2974
+ <span class="cline-any cline-neutral">&nbsp;</span>
2975
+ <span class="cline-any cline-yes">1x</span>
2976
+ <span class="cline-any cline-yes">3x</span>
2977
+ <span class="cline-any cline-yes">1x</span>
2978
+ <span class="cline-any cline-neutral">&nbsp;</span>
2979
+ <span class="cline-any cline-yes">2x</span>
2980
+ <span class="cline-any cline-neutral">&nbsp;</span>
2981
+ <span class="cline-any cline-neutral">&nbsp;</span>
2982
+ <span class="cline-any cline-yes">4x</span>
2983
+ <span class="cline-any cline-neutral">&nbsp;</span>
2984
+ <span class="cline-any cline-neutral">&nbsp;</span>
2985
+ <span class="cline-any cline-neutral">&nbsp;</span>
2986
+ <span class="cline-any cline-neutral">&nbsp;</span>
2987
+ <span class="cline-any cline-yes">4x</span>
2988
+ <span class="cline-any cline-yes">18x</span>
2989
+ <span class="cline-any cline-neutral">&nbsp;</span>
2990
+ <span class="cline-any cline-yes">4x</span>
2991
+ <span class="cline-any cline-neutral">&nbsp;</span>
2992
+ <span class="cline-any cline-yes">4x</span>
2993
+ <span class="cline-any cline-yes">16x</span>
2994
+ <span class="cline-any cline-yes">8x</span>
2995
+ <span class="cline-any cline-neutral">&nbsp;</span>
2996
+ <span class="cline-any cline-neutral">&nbsp;</span>
2997
+ <span class="cline-any cline-yes">8x</span>
2998
+ <span class="cline-any cline-neutral">&nbsp;</span>
2999
+ <span class="cline-any cline-neutral">&nbsp;</span>
3000
+ <span class="cline-any cline-yes">4x</span>
3001
+ <span class="cline-any cline-neutral">&nbsp;</span>
3002
+ <span class="cline-any cline-neutral">&nbsp;</span>
3003
+ <span class="cline-any cline-neutral">&nbsp;</span>
3004
+ <span class="cline-any cline-neutral">&nbsp;</span>
3005
+ <span class="cline-any cline-neutral">&nbsp;</span>
3006
+ <span class="cline-any cline-neutral">&nbsp;</span>
3007
+ <span class="cline-any cline-yes">4x</span>
3008
+ <span class="cline-any cline-neutral">&nbsp;</span>
3009
+ <span class="cline-any cline-neutral">&nbsp;</span>
3010
+ <span class="cline-any cline-neutral">&nbsp;</span>
3011
+ <span class="cline-any cline-neutral">&nbsp;</span>
3012
+ <span class="cline-any cline-yes">25x</span>
3013
+ <span class="cline-any cline-neutral">&nbsp;</span>
3014
+ <span class="cline-any cline-yes">25x</span>
3015
+ <span class="cline-any cline-neutral">&nbsp;</span>
3016
+ <span class="cline-any cline-neutral">&nbsp;</span>
3017
+ <span class="cline-any cline-neutral">&nbsp;</span>
3018
+ <span class="cline-any cline-neutral">&nbsp;</span>
3019
+ <span class="cline-any cline-neutral">&nbsp;</span>
3020
+ <span class="cline-any cline-neutral">&nbsp;</span>
3021
+ <span class="cline-any cline-neutral">&nbsp;</span>
3022
+ <span class="cline-any cline-neutral">&nbsp;</span>
3023
+ <span class="cline-any cline-yes">10x</span>
3024
+ <span class="cline-any cline-yes">10x</span>
3025
+ <span class="cline-any cline-yes">34x</span>
3026
+ <span class="cline-any cline-neutral">&nbsp;</span>
3027
+ <span class="cline-any cline-yes">10x</span>
3028
+ <span class="cline-any cline-neutral">&nbsp;</span>
3029
+ <span class="cline-any cline-yes">10x</span>
3030
+ <span class="cline-any cline-yes">2x</span>
3031
+ <span class="cline-any cline-neutral">&nbsp;</span>
3032
+ <span class="cline-any cline-neutral">&nbsp;</span>
3033
+ <span class="cline-any cline-yes">36x</span>
3034
+ <span class="cline-any cline-yes">8x</span>
3035
+ <span class="cline-any cline-neutral">&nbsp;</span>
3036
+ <span class="cline-any cline-neutral">&nbsp;</span>
3037
+ <span class="cline-any cline-neutral">&nbsp;</span>
3038
+ <span class="cline-any cline-yes">8x</span>
3039
+ <span class="cline-any cline-neutral">&nbsp;</span>
3040
+ <span class="cline-any cline-yes">8x</span>
3041
+ <span class="cline-any cline-neutral">&nbsp;</span>
3042
+ <span class="cline-any cline-neutral">&nbsp;</span>
3043
+ <span class="cline-any cline-neutral">&nbsp;</span>
3044
+ <span class="cline-any cline-yes">76x</span>
3045
+ <span class="cline-any cline-neutral">&nbsp;</span>
3046
+ <span class="cline-any cline-neutral">&nbsp;</span>
3047
+ <span class="cline-any cline-yes">3013x</span>
3048
+ <span class="cline-any cline-yes">3013x</span>
3049
+ <span class="cline-any cline-neutral">&nbsp;</span>
3050
+ <span class="cline-any cline-neutral">&nbsp;</span>
3051
+ <span class="cline-any cline-neutral">&nbsp;</span>
3052
+ <span class="cline-any cline-yes">74x</span>
3053
+ <span class="cline-any cline-neutral">&nbsp;</span>
3054
+ <span class="cline-any cline-neutral">&nbsp;</span>
3055
+ <span class="cline-any cline-yes">24x</span>
3056
+ <span class="cline-any cline-yes">24x</span>
3057
+ <span class="cline-any cline-neutral">&nbsp;</span>
3058
+ <span class="cline-any cline-neutral">&nbsp;</span>
3059
+ <span class="cline-any cline-neutral">&nbsp;</span>
3060
+ <span class="cline-any cline-neutral">&nbsp;</span>
3061
+ <span class="cline-any cline-neutral">&nbsp;</span>
3062
+ <span class="cline-any cline-neutral">&nbsp;</span>
3063
+ <span class="cline-any cline-neutral">&nbsp;</span>
3064
+ <span class="cline-any cline-neutral">&nbsp;</span>
3065
+ <span class="cline-any cline-neutral">&nbsp;</span>
3066
+ <span class="cline-any cline-neutral">&nbsp;</span>
3067
+ <span class="cline-any cline-yes">3x</span>
3068
+ <span class="cline-any cline-neutral">&nbsp;</span>
3069
+ <span class="cline-any cline-yes">3x</span>
3070
+ <span class="cline-any cline-yes">2x</span>
3071
+ <span class="cline-any cline-yes">2x</span>
3072
+ <span class="cline-any cline-yes">2x</span>
3073
+ <span class="cline-any cline-neutral">&nbsp;</span>
3074
+ <span class="cline-any cline-neutral">&nbsp;</span>
3075
+ <span class="cline-any cline-neutral">&nbsp;</span>
3076
+ <span class="cline-any cline-neutral">&nbsp;</span>
3077
+ <span class="cline-any cline-yes">2x</span>
3078
+ <span class="cline-any cline-yes">2x</span>
3079
+ <span class="cline-any cline-neutral">&nbsp;</span>
3080
+ <span class="cline-any cline-yes">2x</span>
3081
+ <span class="cline-any cline-neutral">&nbsp;</span>
3082
+ <span class="cline-any cline-neutral">&nbsp;</span>
3083
+ <span class="cline-any cline-neutral">&nbsp;</span>
3084
+ <span class="cline-any cline-neutral">&nbsp;</span>
3085
+ <span class="cline-any cline-neutral">&nbsp;</span>
3086
+ <span class="cline-any cline-neutral">&nbsp;</span>
3087
+ <span class="cline-any cline-neutral">&nbsp;</span>
3088
+ <span class="cline-any cline-neutral">&nbsp;</span>
3089
+ <span class="cline-any cline-neutral">&nbsp;</span>
3090
+ <span class="cline-any cline-neutral">&nbsp;</span>
3091
+ <span class="cline-any cline-neutral">&nbsp;</span>
3092
+ <span class="cline-any cline-neutral">&nbsp;</span>
3093
+ <span class="cline-any cline-neutral">&nbsp;</span>
3094
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { raf } from "@react-spring/rafz";
3095
+ import { createMachine, assign, enqueueActions, fromPromise } from "xstate";
3096
+ import invariant from "invariant";
3097
+ import * as easings from "d3-ease";
3098
+ &nbsp;
3099
+ // #region Constants
3100
+ &nbsp;
3101
+ /** The default amount a user can `dragOvershoot` before the panel collapses */
3102
+ const COLLAPSE_THRESHOLD = 50;
3103
+ &nbsp;
3104
+ // #endregion
3105
+ &nbsp;
3106
+ // #region Types
3107
+ &nbsp;
3108
+ type PixelUnit = `${number}px`;
3109
+ type PercentUnit = `${number}%`;
3110
+ export type Unit = PixelUnit | PercentUnit;
3111
+ type Orientation = "horizontal" | "vertical";
3112
+ &nbsp;
3113
+ interface ParsedPercentUnit {
3114
+ type: "percent";
3115
+ value: number;
3116
+ }
3117
+ &nbsp;
3118
+ interface ParsedPixelUnit {
3119
+ type: "pixel";
3120
+ value: number;
3121
+ }
3122
+ &nbsp;
3123
+ type ParsedUnit = ParsedPercentUnit | ParsedPixelUnit;
3124
+ &nbsp;
3125
+ function makePercentUnit(value: number): ParsedPercentUnit {
3126
+ return { type: "percent", value };
3127
+ }
3128
+ &nbsp;
3129
+ function makePixelUnit(value: number): ParsedPixelUnit {
3130
+ return { type: "pixel", value };
3131
+ }
3132
+ &nbsp;
3133
+ interface MoveMoveEvent {
3134
+ shiftKey: boolean;
3135
+ ctrlKey: boolean;
3136
+ metaKey: boolean;
3137
+ altKey: boolean;
3138
+ deltaX: number;
3139
+ deltaY: number;
3140
+ }
3141
+ &nbsp;
3142
+ export interface Constraints&lt;T extends ParsedUnit | Unit = ParsedUnit&gt; {
3143
+ /** The minimum size of the panel */
3144
+ min?: T;
3145
+ /** The maximum size of the panel */
3146
+ max?: T;
3147
+ /** The default size of the panel */
3148
+ default?: T;
3149
+ /** Whether the panel is collapsible */
3150
+ collapsible?: boolean;
3151
+ /** Whether the panel should initially render as collapsed */
3152
+ defaultCollapsed?: boolean;
3153
+ /** The size of the panel once collapsed */
3154
+ collapsedSize?: T;
3155
+ }
3156
+ &nbsp;
3157
+ interface Order {
3158
+ /**
3159
+ * When dynamically rendering panels/handles you need to add the order prop.
3160
+ * This tells the component what place the items should be in once rendered.
3161
+ */
3162
+ order?: number;
3163
+ }
3164
+ &nbsp;
3165
+ export interface PanelData
3166
+ extends Omit&lt;Constraints, "min" | "max" | "collapsedSize"&gt;,
3167
+ Required&lt;Pick&lt;Constraints, "min" | "collapsedSize"&gt;&gt;,
3168
+ Order {
3169
+ max: ParsedUnit | "1fr";
3170
+ type: "panel";
3171
+ id: string;
3172
+ /** Whether the collapsed state is controlled by the consumer or not */
3173
+ collapseIsControlled?: boolean;
3174
+ /** A ref to the latest "collapseChange" function provided by the user */
3175
+ onCollapseChange?: {
3176
+ current: ((isCollapsed: boolean) =&gt; void) | null | undefined;
3177
+ };
3178
+ /**
3179
+ * The current value for the item in the grid
3180
+ */
3181
+ currentValue: ParsedUnit;
3182
+ /** Whether the panel is currently collapsed */
3183
+ collapsed: boolean | undefined;
3184
+ /**
3185
+ * The size the panel was before being collapsed.
3186
+ * This is used to re-open the panel at the same size.
3187
+ * If the panel starts out collapsed it will use the `min`.
3188
+ */
3189
+ sizeBeforeCollapse: number | undefined;
3190
+ /** Animate the collapse/expand */
3191
+ collapseAnimation?:
3192
+ | CollapseAnimation
3193
+ | { duration: number; easing: CollapseAnimation | ((t: number) =&gt; number) };
3194
+ }
3195
+ &nbsp;
3196
+ function getCollapseAnimation(panel: PanelData) {
3197
+ let easeFn = collapseAnimations.linear;
3198
+ let duration = 300;
3199
+ &nbsp;
3200
+ if (panel.collapseAnimation) {
3201
+ if (typeof panel.collapseAnimation === "string") {
3202
+ easeFn = collapseAnimations[panel.collapseAnimation];
3203
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="else path not taken" >E</span>} else if ("duration" in panel.collapseAnimation) {</span>
3204
+ <span class="cstat-no" title="statement not covered" > duration = panel.collapseAnimation.duration ?? duration;</span>
3205
+ <span class="cstat-no" title="statement not covered" > easeFn =</span>
3206
+ typeof panel.collapseAnimation.easing === "function"
3207
+ ? panel.collapseAnimation.easing
3208
+ : collapseAnimations[panel.collapseAnimation.easing];
3209
+ }
3210
+ }
3211
+ &nbsp;
3212
+ return { ease: easeFn, duration };
3213
+ }
3214
+ &nbsp;
3215
+ const collapseAnimations = {
3216
+ "ease-in-out": easings.easeQuadInOut,
3217
+ bounce: easings.easeBackInOut,
3218
+ linear: easings.easeLinear,
3219
+ };
3220
+ &nbsp;
3221
+ type CollapseAnimation = keyof typeof collapseAnimations;
3222
+ &nbsp;
3223
+ export interface PanelHandleData extends Order {
3224
+ type: "handle";
3225
+ id: string;
3226
+ /**
3227
+ * The size of the panel handle.
3228
+ * Needed to correctly calculate the percentage of modified panels.
3229
+ */
3230
+ size: ParsedPixelUnit;
3231
+ }
3232
+ &nbsp;
3233
+ export type Item = PanelData | PanelHandleData;
3234
+ &nbsp;
3235
+ interface RegisterPanelEvent {
3236
+ /** Register a new panel with the state machine */
3237
+ type: "registerPanel";
3238
+ data: Omit&lt;PanelData, "type" | "currentValue" | "defaultCollapsed"&gt;;
3239
+ }
3240
+ &nbsp;
3241
+ interface RegisterDynamicPanelEvent extends Omit&lt;RegisterPanelEvent, "type"&gt; {
3242
+ /** Register a new panel with the state machine */
3243
+ type: "registerDynamicPanel";
3244
+ }
3245
+ &nbsp;
3246
+ interface UnregisterPanelEvent {
3247
+ /** Remove a panel from the state machine */
3248
+ type: "unregisterPanel";
3249
+ id: string;
3250
+ }
3251
+ &nbsp;
3252
+ export type InitializePanelHandleData = Omit&lt;PanelHandleData, "type"&gt;;
3253
+ &nbsp;
3254
+ interface RegisterPanelHandleEvent {
3255
+ /** Register a new panel handle with the state machine */
3256
+ type: "registerPanelHandle";
3257
+ data: InitializePanelHandleData;
3258
+ }
3259
+ &nbsp;
3260
+ interface UnregisterPanelHandleEvent {
3261
+ /** Remove a panel handle from the state machine */
3262
+ type: "unregisterPanelHandle";
3263
+ id: string;
3264
+ }
3265
+ &nbsp;
3266
+ interface DragHandleStartEvent {
3267
+ /** Start a drag interaction */
3268
+ type: "dragHandleStart";
3269
+ /** The handle being interacted with */
3270
+ handleId: string;
3271
+ }
3272
+ &nbsp;
3273
+ interface DragHandleEvent {
3274
+ /** Update the layout according to how the handle moved */
3275
+ type: "dragHandle";
3276
+ /** The handle being interacted with */
3277
+ handleId: string;
3278
+ value: MoveMoveEvent;
3279
+ }
3280
+ &nbsp;
3281
+ interface DragHandleEndEvent {
3282
+ /** End a drag interaction */
3283
+ type: "dragHandleEnd";
3284
+ /** The handle being interacted with */
3285
+ handleId: string;
3286
+ }
3287
+ &nbsp;
3288
+ export interface Rect {
3289
+ width: number;
3290
+ height: number;
3291
+ }
3292
+ &nbsp;
3293
+ interface SetSizeEvent {
3294
+ /** Set the size of the whole group */
3295
+ type: "setSize";
3296
+ size: Rect;
3297
+ }
3298
+ &nbsp;
3299
+ interface SetActualItemsSizeEvent {
3300
+ /** Set the size of the whole group */
3301
+ type: "setActualItemsSize";
3302
+ childrenSizes: Record&lt;string, Rect&gt;;
3303
+ }
3304
+ &nbsp;
3305
+ interface ApplyDeltaEvent {
3306
+ type: "applyDelta";
3307
+ delta: number;
3308
+ handleId: string;
3309
+ }
3310
+ &nbsp;
3311
+ interface SetOrientationEvent {
3312
+ /** Set the orientation of the group */
3313
+ type: "setOrientation";
3314
+ orientation: Orientation;
3315
+ }
3316
+ &nbsp;
3317
+ interface ControlledCollapseToggle {
3318
+ /**
3319
+ * This is used to react to the controlled panel "collapse" prop updating.
3320
+ * This will force an update to be applied and skip calling the user's `onCollapseChanged`
3321
+ */
3322
+ controlled?: boolean;
3323
+ }
3324
+ &nbsp;
3325
+ interface CollapsePanelEvent extends ControlledCollapseToggle {
3326
+ /** Collapse a panel */
3327
+ type: "collapsePanel";
3328
+ /** The panel to collapse */
3329
+ panelId: string;
3330
+ }
3331
+ &nbsp;
3332
+ interface ExpandPanelEvent extends ControlledCollapseToggle {
3333
+ /** Expand a panel */
3334
+ type: "expandPanel";
3335
+ /** The panel to expand */
3336
+ panelId: string;
3337
+ }
3338
+ &nbsp;
3339
+ interface SetPanelPixelSizeEvent {
3340
+ /**
3341
+ * This event is used by the imperative panel API.
3342
+ * With this the user can set the panel's size to an explicit value.
3343
+ * This is done by faking interaction with the handles so min/max will still
3344
+ * be respected.
3345
+ */
3346
+ type: "setPanelPixelSize";
3347
+ /** The panel to apply the size to */
3348
+ panelId: string;
3349
+ /** The size to apply to the panel */
3350
+ size: Unit;
3351
+ }
3352
+ &nbsp;
3353
+ export interface GroupMachineContextValue {
3354
+ /** The items in the group */
3355
+ items: Array&lt;Item&gt;;
3356
+ /** The available space in the group */
3357
+ size: Rect;
3358
+ /** The orientation of the grid */
3359
+ orientation: Orientation;
3360
+ /** How much the drag has overshot the handle */
3361
+ dragOvershoot: number;
3362
+ /** An id to use for autosaving the layout */
3363
+ autosaveId?: string;
3364
+ groupId: string;
3365
+ }
3366
+ &nbsp;
3367
+ export type GroupMachineEvent =
3368
+ | RegisterPanelEvent
3369
+ | RegisterDynamicPanelEvent
3370
+ | UnregisterPanelEvent
3371
+ | RegisterPanelHandleEvent
3372
+ | UnregisterPanelHandleEvent
3373
+ | DragHandleEvent
3374
+ | SetSizeEvent
3375
+ | SetOrientationEvent
3376
+ | DragHandleStartEvent
3377
+ | DragHandleEndEvent
3378
+ | CollapsePanelEvent
3379
+ | ExpandPanelEvent
3380
+ | SetPanelPixelSizeEvent
3381
+ | ApplyDeltaEvent
3382
+ | SetActualItemsSizeEvent;
3383
+ &nbsp;
3384
+ type EventForType&lt;T extends GroupMachineEvent["type"]&gt; = Extract&lt;
3385
+ GroupMachineEvent,
3386
+ { type: T }
3387
+ &gt;;
3388
+ &nbsp;
3389
+ // #endregion
3390
+ &nbsp;
3391
+ // #region Helpers
3392
+ &nbsp;
3393
+ /** Assert that the provided event is one of the accepted types */
3394
+ function isEvent&lt;T extends GroupMachineEvent["type"]&gt;(
3395
+ event: GroupMachineEvent,
3396
+ eventType: T[]
3397
+ ): asserts event is EventForType&lt;T&gt; {
3398
+ invariant(
3399
+ eventType.includes(event.type as T),
3400
+ `Invalid event type: ${eventType}. Expected: ${eventType.join(" | ")}`
3401
+ );
3402
+ }
3403
+ &nbsp;
3404
+ /** Determine if an item is a panel */
3405
+ export function isPanelData(value: unknown): value is PanelData {
3406
+ return Boolean(
3407
+ value &amp;&amp;
3408
+ typeof value === "object" &amp;&amp;
3409
+ "type" in value &amp;&amp;
3410
+ value.type === "panel"
3411
+ );
3412
+ }
3413
+ &nbsp;
3414
+ /** Determine if an item is a panel handle */
3415
+ export function isPanelHandle(value: unknown): value is PanelHandleData {
3416
+ return Boolean(
3417
+ value &amp;&amp;
3418
+ typeof value === "object" &amp;&amp;
3419
+ "type" in value &amp;&amp;
3420
+ value.type === "handle"
3421
+ );
3422
+ }
3423
+ &nbsp;
3424
+ interface InitializePanelOptions {
3425
+ min?: Unit;
3426
+ max?: Unit;
3427
+ default?: Unit;
3428
+ collapsible?: boolean;
3429
+ collapsed?: boolean;
3430
+ collapsedSize?: Unit;
3431
+ onCollapseChange?: {
3432
+ current: ((isCollapsed: boolean) =&gt; void) | null | undefined;
3433
+ };
3434
+ collapseAnimation?: PanelData["collapseAnimation"];
3435
+ defaultCollapsed?: boolean;
3436
+ id?: string;
3437
+ }
3438
+ &nbsp;
3439
+ type InitializePanelOptionsWithId = InitializePanelOptions &amp; { id: string };
3440
+ &nbsp;
3441
+ export function initializePanel(item: InitializePanelOptionsWithId): PanelData;
3442
+ export function initializePanel(
3443
+ item: InitializePanelOptions
3444
+ ): Omit&lt;PanelData, "id"&gt;;
3445
+ export function initializePanel(
3446
+ item: InitializePanelOptions | InitializePanelOptionsWithId
3447
+ ): PanelData | Omit&lt;PanelData, "id"&gt; {
3448
+ const data = {
3449
+ type: "panel" as const,
3450
+ min: parseUnit(item.min || "0px"),
3451
+ max: item.max ? parseUnit(item.max) : "1fr",
3452
+ collapsed: item.collapsible
3453
+ ? (item.collapsed ?? item.defaultCollapsed ?? false)
3454
+ : undefined,
3455
+ collapsible: item.collapsible,
3456
+ collapsedSize: parseUnit(item.collapsedSize ?? "0px"),
3457
+ onCollapseChange: item.onCollapseChange,
3458
+ collapseIsControlled: typeof item.collapsed !== "undefined",
3459
+ sizeBeforeCollapse: undefined,
3460
+ id: item.id,
3461
+ collapseAnimation: item.collapseAnimation,
3462
+ default: item.default ? parseUnit(item.default) : undefined,
3463
+ } satisfies Omit&lt;PanelData, "id" | "currentValue"&gt; &amp; { id?: string };
3464
+ &nbsp;
3465
+ return { ...data, currentValue: makePixelUnit(-1) } satisfies Omit&lt;
3466
+ PanelData,
3467
+ "id"
3468
+ &gt;;
3469
+ }
3470
+ &nbsp;
3471
+ /** Parse a `Unit` string or `clamp` value */
3472
+ export function parseUnit(unit: Unit | "1fr"): ParsedUnit {
3473
+ if (unit === "1fr") {
3474
+ unit = "100%";
3475
+ }
3476
+ &nbsp;
3477
+ if (unit.endsWith("px")) {
3478
+ return makePixelUnit(parseFloat(unit));
3479
+ }
3480
+ &nbsp;
3481
+ if (unit.endsWith("%")) {
3482
+ return makePercentUnit(parseFloat(unit));
3483
+ }
3484
+ &nbsp;
3485
+ throw new Error(`Invalid unit: ${unit}`);
3486
+ }
3487
+ &nbsp;
3488
+ /** Convert a `Unit` to a percentage of the group size */
3489
+ export function getUnitPercentageValue(groupsSize: number, unit: ParsedUnit) {
3490
+ if (unit.type === "pixel") {
3491
+ return unit.value / groupsSize;
3492
+ }
3493
+ &nbsp;
3494
+ return unit.value;
3495
+ }
3496
+ &nbsp;
3497
+ export function getGroupSize(context: GroupMachineContextValue) {
3498
+ return context.orientation === "horizontal"
3499
+ ? context.size.width
3500
+ : context.size.height;
3501
+ }
3502
+ &nbsp;
3503
+ /** Get the size of a panel in pixels */
3504
+ export function getUnitPixelValue(
3505
+ context: GroupMachineContextValue,
3506
+ unit: ParsedUnit | "1fr"
3507
+ ) {
3508
+ const parsed = unit === "1fr" ? parseUnit(unit) : unit;
3509
+ return parsed.type === "pixel"
3510
+ ? parsed.value
3511
+ : (parsed.value / 100) * getGroupSize(context);
3512
+ }
3513
+ &nbsp;
3514
+ /** Clamp a new `currentValue` given the panel's constraints. */
3515
+ function clampUnit(
3516
+ context: GroupMachineContextValue,
3517
+ item: PanelData,
3518
+ value: number
3519
+ ) {
3520
+ return Math.min(
3521
+ Math.max(value, getUnitPixelValue(context, item.min)),
3522
+ getUnitPixelValue(context, item.max)
3523
+ );
3524
+ }
3525
+ &nbsp;
3526
+ /** Get a panel with a particular ID. */
3527
+ export function getPanelWithId(
3528
+ context: GroupMachineContextValue,
3529
+ panelId: string
3530
+ ) {
3531
+ const item = context.items.find((i) =&gt; i.id === panelId);
3532
+ &nbsp;
3533
+ if (item &amp;&amp; isPanelData(item)) {
3534
+ return item;
3535
+ }
3536
+ &nbsp;
3537
+ throw new Error(`Expected panel with id: ${panelId}`);
3538
+ }
3539
+ &nbsp;
3540
+ /** Get a panel with a particular ID. */
3541
+ function getPanelHandleIndex(
3542
+ context: GroupMachineContextValue,
3543
+ handleId: string
3544
+ ) {
3545
+ const item = context.items.findIndex((i) =&gt; i.id === handleId);
3546
+ &nbsp;
3547
+ if (item !== -1 &amp;&amp; isPanelHandle(context.items[item])) {
3548
+ return item;
3549
+ }
3550
+ &nbsp;
3551
+ throw new Error(`Expected panel handle with id: ${handleId}`);
3552
+ }
3553
+ &nbsp;
3554
+ /**
3555
+ * Get the panel that's collapsible next to a resize handle.
3556
+ * Will first check the left panel then the right.
3557
+ */
3558
+ export function getCollapsiblePanelForHandleId(
3559
+ context: GroupMachineContextValue,
3560
+ handleId: string
3561
+ ) {
3562
+ if (!context.items.length) {
3563
+ throw new Error("No items in group");
3564
+ }
3565
+ &nbsp;
3566
+ const handleIndex = getPanelHandleIndex(context, handleId);
3567
+ const panelBefore = context.items[handleIndex - 1];
3568
+ const panelAfter = context.items[handleIndex + 1];
3569
+ &nbsp;
3570
+ if (panelBefore &amp;&amp; isPanelData(panelBefore) &amp;&amp; panelBefore.collapsible) {
3571
+ return panelBefore;
3572
+ }
3573
+ &nbsp;
3574
+ if (panelAfter &amp;&amp; isPanelData(panelAfter) &amp;&amp; panelAfter.collapsible) {
3575
+ return panelAfter;
3576
+ }
3577
+ &nbsp;
3578
+ throw new Error(`No collapsible panel found for handle: ${handleId}`);
3579
+ }
3580
+ &nbsp;
3581
+ /**
3582
+ * Get the handle closest to the target panel.
3583
+ * This is used to simulate collapse/expand
3584
+ */
3585
+ function getHandleForPanelId(
3586
+ context: GroupMachineContextValue,
3587
+ panelId: string
3588
+ ) {
3589
+ const panelIndex = context.items.findIndex((item) =&gt; item.id === panelId);
3590
+ &nbsp;
3591
+ invariant(panelIndex !== -1, `Expected panel before: ${panelId}`);
3592
+ &nbsp;
3593
+ let item = context.items[panelIndex + 1];
3594
+ &nbsp;
3595
+ if (item &amp;&amp; isPanelHandle(item)) {
3596
+ return { item, direction: 1 as const };
3597
+ }
3598
+ &nbsp;
3599
+ item = context.items[panelIndex - 1];
3600
+ &nbsp;
3601
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (item &amp;&amp; isPanelHandle(item)) {
3602
+ return { item, direction: -1 as const };
3603
+ }
3604
+ &nbsp;
3605
+ <span class="cstat-no" title="statement not covered" > throw new Error(`Cant find handle for panel: ${panelId}`);</span>
3606
+ }
3607
+ &nbsp;
3608
+ /** Given the specified order props and default order of the items, order the items */
3609
+ function sortWithOrder(items: Array&lt;Item&gt;) {
3610
+ const defaultPlacement: Record&lt;string, number&gt; = {};
3611
+ const takenPlacements = items
3612
+ .map((i) =&gt; i.order)
3613
+ .filter((i): i is number =&gt; i !== undefined);
3614
+ &nbsp;
3615
+ let defaultOrder = 0;
3616
+ &nbsp;
3617
+ // Generate default orders for items that don't have it
3618
+ for (const item of items) {
3619
+ if (item.order === undefined) {
3620
+ while (
3621
+ takenPlacements.includes(defaultOrder) ||
3622
+ Object.values(defaultPlacement).includes(defaultOrder)
3623
+ ) {
3624
+ defaultOrder++;
3625
+ }
3626
+ &nbsp;
3627
+ defaultPlacement[item.id] = defaultOrder;
3628
+ }
3629
+ }
3630
+ &nbsp;
3631
+ const withoutOrder = items.filter((i) =&gt; i.order === undefined);
3632
+ const sortedWithOrder = items
3633
+ .filter((i) =&gt; i.order !== undefined)
3634
+ .sort((a, b) =&gt; a.order! - b.order!);
3635
+ &nbsp;
3636
+ for (const item of sortedWithOrder) {
3637
+ // insert item at order index
3638
+ withoutOrder.splice(item.order!, 0, item);
3639
+ }
3640
+ &nbsp;
3641
+ return withoutOrder;
3642
+ }
3643
+ &nbsp;
3644
+ /** Check if the panel has space available to add to */
3645
+ function panelHasSpace(context: GroupMachineContextValue, item: PanelData) {
3646
+ invariant(
3647
+ item.currentValue.type === "pixel",
3648
+ `panelHasSpace only works with number values: ${item.id} ${item.currentValue}`
3649
+ );
3650
+ &nbsp;
3651
+ if (item.collapsible &amp;&amp; !item.collapsed) {
3652
+ return true;
3653
+ }
3654
+ &nbsp;
3655
+ return item.currentValue.value &gt; getUnitPixelValue(context, item.min);
3656
+ }
3657
+ &nbsp;
3658
+ /** Search in a `direction` for a panel that still has space to expand. */
3659
+ function findPanelWithSpace(
3660
+ context: GroupMachineContextValue,
3661
+ items: Array&lt;Item&gt;,
3662
+ start: number,
3663
+ direction: number,
3664
+ disregardCollapseBuffer?: boolean
3665
+ ) {
3666
+ const slice =
3667
+ direction === -1 ? items.slice(0, start + 1).reverse() : items.slice(start);
3668
+ &nbsp;
3669
+ for (const panel of slice) {
3670
+ if (!isPanelData(panel)) {
3671
+ continue;
3672
+ }
3673
+ &nbsp;
3674
+ const targetPanel = disregardCollapseBuffer
3675
+ ? createUnrestrainedPanel(context, panel)
3676
+ : panel;
3677
+ &nbsp;
3678
+ if (panelHasSpace(context, targetPanel)) {
3679
+ return panel;
3680
+ }
3681
+ }
3682
+ }
3683
+ &nbsp;
3684
+ /** Add up all the static values in the layout */
3685
+ function getStaticWidth(context: GroupMachineContextValue) {
3686
+ let width = 0;
3687
+ &nbsp;
3688
+ for (const item of context.items) {
3689
+ if (isPanelHandle(item)) {
3690
+ width += item.size.value;
3691
+ } else if (
3692
+ isPanelData(item) &amp;&amp;
3693
+ item.collapsed &amp;&amp;
3694
+ item.currentValue.type === "pixel"
3695
+ ) {
3696
+ width += item.currentValue.value;
3697
+ } else if (
3698
+ isPanelData(item) &amp;&amp;
3699
+ item.default &amp;&amp;
3700
+ item.default.type === "pixel"
3701
+ ) {
3702
+ width += item.default.value;
3703
+ }
3704
+ }
3705
+ &nbsp;
3706
+ return width;
3707
+ }
3708
+ &nbsp;
3709
+ function formatUnit(unit: ParsedUnit): Unit {
3710
+ if (unit.type === "pixel") {
3711
+ return `${unit.value}px`;
3712
+ }
3713
+ &nbsp;
3714
+ return `${unit.value}%`;
3715
+ }
3716
+ &nbsp;
3717
+ /** Build the grid template from the item values. */
3718
+ export function buildTemplate(context: GroupMachineContextValue) {
3719
+ const staticWidth = getStaticWidth(context);
3720
+ &nbsp;
3721
+ return context.items
3722
+ .map((item) =&gt; {
3723
+ if (item.type === "panel") {
3724
+ const min = formatUnit(item.min);
3725
+ &nbsp;
3726
+ if (
3727
+ item.currentValue.type === "pixel" &amp;&amp;
3728
+ item.currentValue.value !== -1
3729
+ ) {
3730
+ return formatUnit(item.currentValue);
3731
+ } else if (item.currentValue.type === "percent") {
3732
+ const max = item.max === "1fr" ? "100%" : formatUnit(item.max);
3733
+ return `minmax(${min}, min(calc(${item.currentValue.value} * (100% - ${staticWidth}px)), ${max}))`;
3734
+ } else if (item.collapsible &amp;&amp; item.collapsed) {
3735
+ return formatUnit(item.collapsedSize);
3736
+ } else if (item.default) {
3737
+ return formatUnit(item.default);
3738
+ }
3739
+ &nbsp;
3740
+ const max = item.max === "1fr" ? "1fr" : formatUnit(item.max);
3741
+ return `minmax(${min}, ${max})`;
3742
+ }
3743
+ &nbsp;
3744
+ return formatUnit(item.size);
3745
+ })
3746
+ .join(" ");
3747
+ }
3748
+ &nbsp;
3749
+ function addDeDuplicatedItems(items: Array&lt;Item&gt;, newItem: Item) {
3750
+ const currentItemIndex = items.findIndex(
3751
+ (item) =&gt;
3752
+ item.id === newItem.id ||
3753
+ (typeof item.order === "number" &amp;&amp; item.order === newItem.order)
3754
+ );
3755
+ &nbsp;
3756
+ let restItems = items;
3757
+ &nbsp;
3758
+ if (currentItemIndex !== -1) {
3759
+ restItems = items.filter((_, index) =&gt; index !== currentItemIndex);
3760
+ }
3761
+ &nbsp;
3762
+ return sortWithOrder([...restItems, newItem]);
3763
+ }
3764
+ &nbsp;
3765
+ function createUnrestrainedPanel(
3766
+ context: GroupMachineContextValue,
3767
+ data: PanelData
3768
+ ) {
3769
+ return {
3770
+ ...data,
3771
+ min: makePixelUnit(0),
3772
+ max: makePixelUnit(getGroupSize(context)),
3773
+ };
3774
+ }
3775
+ &nbsp;
3776
+ // #endregion
3777
+ &nbsp;
3778
+ // #region Update Logic
3779
+ &nbsp;
3780
+ /**
3781
+ * This is the main meat of the layout logic.
3782
+ * It's responsible for figuring out how to distribute the space
3783
+ * amongst the panels.
3784
+ *
3785
+ * It's built around applying small deltas to panels relative to their
3786
+ * the resize handles.
3787
+ *
3788
+ * As much as possible we try to rely on the browser to do the layout.
3789
+ * During the initial layout we rely on CSS grid and a group might be
3790
+ * defined like this:
3791
+ *
3792
+ * ```css
3793
+ * grid-template-columns: minmax(100px, 1fr) 1px minmax(100px, 300px);
3794
+ * ```
3795
+ *
3796
+ * Without any resizing this is nice and simple and the components don't do much.
3797
+ *
3798
+ * Once the user starts resizing the layout will be more complex.
3799
+ *
3800
+ * It's broken down into 3 phases:
3801
+ *
3802
+ * 1. `prepareItems` - The size of the group has been measure and we
3803
+ * can convert all the panel sizes into pixels. Converting into pixels
3804
+ * makes doing the math for the updates easier.
3805
+ *
3806
+ * ```css
3807
+ * grid-template-columns: 500px 1px 300px;
3808
+ * ```
3809
+ *
3810
+ * 2. `updateLayout` - This is where the actual updates are applied.
3811
+ * This is where the user's drag interactions are applied. We also
3812
+ * use this to collapse/expand panels by simulating a drag interaction.
3813
+ *
3814
+ * ```css
3815
+ * grid-template-columns: 490px 1px 310px;
3816
+ * ```
3817
+ *
3818
+ * 3. `commitLayout` - Once the updates have been applied we convert the
3819
+ * updated sizes back into a format that allows for easy resizing without
3820
+ * lots of updates.
3821
+ *
3822
+ * ```css
3823
+ * grid-template-columns: minmax(100px, min(calc(0.06117 * (100% - 1px)), 100%)) 1px minmax(100px, min(calc(0.0387 * (100% - 1px)), 300px));
3824
+ * ```
3825
+ *
3826
+ * When another update loop is triggered the above template will be converted back to pixels.
3827
+ */
3828
+ &nbsp;
3829
+ /** Converts the items to pixels */
3830
+ export function prepareItems(context: GroupMachineContextValue) {
3831
+ const newItems = [...context.items];
3832
+ const staticWidth = getStaticWidth(context);
3833
+ &nbsp;
3834
+ for (const item of newItems) {
3835
+ if (!item || !isPanelData(item)) {
3836
+ continue;
3837
+ }
3838
+ &nbsp;
3839
+ if (item.currentValue.type === "pixel") {
3840
+ continue;
3841
+ }
3842
+ &nbsp;
3843
+ // TODO: Decimal proposal
3844
+ item.currentValue = makePixelUnit(
3845
+ Math.round(
3846
+ (getGroupSize(context) - staticWidth) * item.currentValue.value
3847
+ )
3848
+ );
3849
+ }
3850
+ &nbsp;
3851
+ return newItems;
3852
+ }
3853
+ &nbsp;
3854
+ /** On every mouse move we distribute the space added */
3855
+ function updateLayout(
3856
+ context: GroupMachineContextValue,
3857
+ dragEvent:
3858
+ | (DragHandleEvent &amp; {
3859
+ controlled?: boolean;
3860
+ disregardCollapseBuffer?: never;
3861
+ })
3862
+ | {
3863
+ type: "collapsePanel";
3864
+ value: MoveMoveEvent;
3865
+ handleId: string;
3866
+ controlled?: boolean;
3867
+ disregardCollapseBuffer?: boolean;
3868
+ }
3869
+ ): Partial&lt;GroupMachineContextValue&gt; {
3870
+ const handleIndex = getPanelHandleIndex(context, dragEvent.handleId);
3871
+ const handle = context.items[handleIndex] as PanelHandleData;
3872
+ const newItems = [...context.items];
3873
+ &nbsp;
3874
+ let moveAmount =
3875
+ context.orientation === "horizontal"
3876
+ ? dragEvent.value.deltaX
3877
+ : dragEvent.value.deltaY;
3878
+ &nbsp;
3879
+ if (dragEvent.value.shiftKey) {
3880
+ moveAmount *= 15;
3881
+ }
3882
+ &nbsp;
3883
+ if (moveAmount === 0) {
3884
+ return {};
3885
+ }
3886
+ &nbsp;
3887
+ const moveDirection = moveAmount / Math.abs(moveAmount);
3888
+ &nbsp;
3889
+ // Go forward into the shrinking panels to find a panel that still has space.
3890
+ const panelBefore = findPanelWithSpace(
3891
+ context,
3892
+ newItems,
3893
+ handleIndex + moveDirection,
3894
+ moveDirection,
3895
+ dragEvent.disregardCollapseBuffer
3896
+ );
3897
+ &nbsp;
3898
+ // No panel with space, just record the drag overshoot
3899
+ if (!panelBefore) {
3900
+ return {
3901
+ dragOvershoot: context.dragOvershoot + moveAmount,
3902
+ };
3903
+ }
3904
+ &nbsp;
3905
+ invariant(isPanelData(panelBefore), `Expected panel before: ${handle.id}`);
3906
+ &nbsp;
3907
+ const panelAfter = newItems[handleIndex - moveDirection];
3908
+ &nbsp;
3909
+ invariant(
3910
+ panelAfter &amp;&amp; isPanelData(panelAfter),
3911
+ `Expected panel after: ${handle.id}`
3912
+ );
3913
+ &nbsp;
3914
+ const newDragOvershoot = context.dragOvershoot + moveAmount;
3915
+ &nbsp;
3916
+ // Don't let the panel expand until the threshold is reached
3917
+ if (!dragEvent.disregardCollapseBuffer) {
3918
+ if (panelAfter.collapsible &amp;&amp; panelAfter.collapsed) {
3919
+ const isInLeftBuffer = newDragOvershoot &lt; 0 &amp;&amp; moveDirection &gt; 0;
3920
+ const isInLeftOvershoot = newDragOvershoot &gt; 0 &amp;&amp; moveDirection &gt; 0;
3921
+ const isInRightBuffer = newDragOvershoot &gt; 0 &amp;&amp; moveDirection &lt; 0;
3922
+ const isInRightOvershoot = newDragOvershoot &lt; 0 &amp;&amp; moveDirection &lt; 0;
3923
+ const potentialNewValue =
3924
+ panelAfter.currentValue.value +
3925
+ newDragOvershoot * (isInRightBuffer ? moveDirection : 1);
3926
+ const min = getUnitPixelValue(context, panelAfter.min);
3927
+ &nbsp;
3928
+ if (
3929
+ (newDragOvershoot === 0 ||
3930
+ isInRightBuffer ||
3931
+ isInLeftBuffer ||
3932
+ ((isInLeftOvershoot || isInRightOvershoot) &amp;&amp;
3933
+ Math.abs(newDragOvershoot) &lt; COLLAPSE_THRESHOLD)) &amp;&amp;
3934
+ potentialNewValue &lt; min
3935
+ ) {
3936
+ return { dragOvershoot: newDragOvershoot };
3937
+ }
3938
+ }
3939
+ // Don't let the panel collapse until the threshold is reached
3940
+ else if (
3941
+ panelBefore.collapsible &amp;&amp;
3942
+ panelBefore.currentValue.value ===
3943
+ getUnitPixelValue(context, panelBefore.min)
3944
+ ) {
3945
+ const potentialNewValue =
3946
+ panelBefore.currentValue.value - Math.abs(newDragOvershoot);
3947
+ &nbsp;
3948
+ if (
3949
+ Math.abs(newDragOvershoot) &lt; COLLAPSE_THRESHOLD &amp;&amp;
3950
+ potentialNewValue &gt;
3951
+ getUnitPixelValue(context, panelBefore.collapsedSize)
3952
+ ) {
3953
+ return { dragOvershoot: newDragOvershoot };
3954
+ }
3955
+ }
3956
+ }
3957
+ &nbsp;
3958
+ // Apply the move amount to the panel before the slider
3959
+ const unrestrainedPanelBefore = createUnrestrainedPanel(context, panelBefore);
3960
+ const panelBeforePreviousValue = panelBefore.currentValue.value;
3961
+ const panelBeforeNewValueRaw =
3962
+ panelBefore.currentValue.value - moveAmount * moveDirection;
3963
+ let panelBeforeNewValue = dragEvent.disregardCollapseBuffer
3964
+ ? clampUnit(context, unrestrainedPanelBefore, panelBeforeNewValueRaw)
3965
+ : clampUnit(context, panelBefore, panelBeforeNewValueRaw);
3966
+ &nbsp;
3967
+ // Also apply the move amount the panel after the slider
3968
+ const unrestrainedPanelAfter = createUnrestrainedPanel(context, panelAfter);
3969
+ const panelAfterPreviousValue = panelAfter.currentValue.value;
3970
+ const applied = panelBeforePreviousValue - panelBeforeNewValue;
3971
+ const panelAfterNewValueRaw = panelAfter.currentValue.value + applied;
3972
+ let panelAfterNewValue = dragEvent.disregardCollapseBuffer
3973
+ ? clampUnit(context, unrestrainedPanelAfter, panelAfterNewValueRaw)
3974
+ : clampUnit(context, panelAfter, panelAfterNewValueRaw);
3975
+ &nbsp;
3976
+ if (dragEvent.disregardCollapseBuffer) {
3977
+ if (panelAfter.collapsible &amp;&amp; panelAfter.collapsed) {
3978
+ panelAfter.collapsed = false;
3979
+ }
3980
+ }
3981
+ // If the panel was collapsed, expand it
3982
+ // We need to re-apply the move amount since the the expansion of the
3983
+ // collapsed panel disregards that.
3984
+ else if (panelAfter.collapsible &amp;&amp; panelAfter.collapsed) {
3985
+ if (
3986
+ panelAfter.onCollapseChange?.current &amp;&amp;
3987
+ panelAfter.collapseIsControlled &amp;&amp;
3988
+ !dragEvent.controlled
3989
+ ) {
3990
+ panelAfter.onCollapseChange.current(false);
3991
+ return { dragOvershoot: newDragOvershoot };
3992
+ }
3993
+ &nbsp;
3994
+ // Calculate the amount "extra" after the minSize the panel should grow
3995
+ const extra =
3996
+ // Take the size it was at
3997
+ getUnitPixelValue(context, panelAfter.collapsedSize) +
3998
+ // Add in the full overshoot so the cursor is near the slider
3999
+ Math.abs(context.dragOvershoot) -
4000
+ // Subtract the min size of the panel
4001
+ panelAfterNewValue +
4002
+ // Then re-add the move amount
4003
+ Math.abs(moveAmount);
4004
+ &nbsp;
4005
+ panelAfter.collapsed = false;
4006
+ if (extra &gt; 0) {
4007
+ panelAfterNewValue += extra;
4008
+ }
4009
+ panelBeforeNewValue -=
4010
+ // Subtract the delta of the after panel's size
4011
+ panelAfterNewValue -
4012
+ panelAfterPreviousValue -
4013
+ // And then re-apply the movement value
4014
+ Math.abs(moveAmount);
4015
+ &nbsp;
4016
+ if (
4017
+ panelAfter.onCollapseChange?.current &amp;&amp;
4018
+ !panelAfter.collapseIsControlled &amp;&amp;
4019
+ !dragEvent.controlled
4020
+ ) {
4021
+ panelAfter.onCollapseChange.current(false);
4022
+ }
4023
+ }
4024
+ &nbsp;
4025
+ const panelBeforeIsAboutToCollapse =
4026
+ panelBefore.currentValue.value ===
4027
+ getUnitPixelValue(context, panelBefore.min);
4028
+ &nbsp;
4029
+ // If the panel was expanded and now is at it's min size, collapse it
4030
+ if (
4031
+ !dragEvent.disregardCollapseBuffer &amp;&amp;
4032
+ panelBefore.collapsible &amp;&amp;
4033
+ panelBeforeIsAboutToCollapse
4034
+ ) {
4035
+ if (
4036
+ panelBefore.onCollapseChange?.current &amp;&amp;
4037
+ panelBefore.collapseIsControlled &amp;&amp;
4038
+ !dragEvent.controlled
4039
+ ) {
4040
+ panelBefore.onCollapseChange.current(true);
4041
+ return { dragOvershoot: newDragOvershoot };
4042
+ }
4043
+ &nbsp;
4044
+ // Make it collapsed
4045
+ panelBefore.collapsed = true;
4046
+ panelBeforeNewValue = getUnitPixelValue(context, panelBefore.collapsedSize);
4047
+ // Add the extra space created to the before panel
4048
+ panelAfterNewValue += panelBeforePreviousValue - panelBeforeNewValue;
4049
+ &nbsp;
4050
+ if (
4051
+ panelBefore.onCollapseChange?.current &amp;&amp;
4052
+ !panelBefore.collapseIsControlled &amp;&amp;
4053
+ !dragEvent.controlled
4054
+ ) {
4055
+ panelBefore.onCollapseChange.current(true);
4056
+ }
4057
+ }
4058
+ &nbsp;
4059
+ panelBefore.currentValue = makePixelUnit(panelBeforeNewValue);
4060
+ panelAfter.currentValue = makePixelUnit(panelAfterNewValue);
4061
+ &nbsp;
4062
+ const leftoverSpace =
4063
+ getGroupSize(context) -
4064
+ newItems.reduce(
4065
+ (acc, b) =&gt;
4066
+ acc +
4067
+ // in updateLayout the panel units will always be numbers
4068
+ (isPanelData(b) ? b.currentValue.value : b.size.value),
4069
+ 0
4070
+ );
4071
+ &nbsp;
4072
+ // TODO: this is wrong?
4073
+ panelBefore.currentValue.value += leftoverSpace;
4074
+ &nbsp;
4075
+ return { items: newItems, dragOvershoot: 0 };
4076
+ }
4077
+ &nbsp;
4078
+ /** Converts the items to percentages */
4079
+ export function commitLayout(context: GroupMachineContextValue) {
4080
+ const newItems = [...context.items];
4081
+ &nbsp;
4082
+ // First set all the static width
4083
+ newItems.forEach((item, index) =&gt; {
4084
+ if (item.type !== "panel") {
4085
+ return;
4086
+ }
4087
+ &nbsp;
4088
+ if (item.collapsed) {
4089
+ newItems[index] = {
4090
+ ...item,
4091
+ currentValue: item.collapsedSize,
4092
+ };
4093
+ }
4094
+ });
4095
+ &nbsp;
4096
+ const staticWidth = getStaticWidth({ ...context, items: newItems });
4097
+ &nbsp;
4098
+ newItems.forEach((item, index) =&gt; {
4099
+ if (item.type !== "panel" || item.collapsed) {
4100
+ return;
4101
+ }
4102
+ &nbsp;
4103
+ newItems[index] = {
4104
+ ...item,
4105
+ currentValue: makePercentUnit(
4106
+ item.currentValue.value / (getGroupSize(context) - staticWidth)
4107
+ ),
4108
+ };
4109
+ });
4110
+ &nbsp;
4111
+ return newItems;
4112
+ }
4113
+ &nbsp;
4114
+ export function dragHandlePayload({
4115
+ delta,
4116
+ orientation,
4117
+ shiftKey = false,
4118
+ }: {
4119
+ delta: number;
4120
+ orientation: Orientation;
4121
+ shiftKey?: boolean;
4122
+ }) {
4123
+ return {
4124
+ type: "move",
4125
+ pointerType: "keyboard",
4126
+ shiftKey,
4127
+ ctrlKey: false,
4128
+ altKey: false,
4129
+ metaKey: false,
4130
+ deltaX: orientation === "horizontal" ? delta : 0,
4131
+ deltaY: orientation === "horizontal" ? 0 : delta,
4132
+ } as const;
4133
+ }
4134
+ &nbsp;
4135
+ /** Iteratively applies a large delta value simulating a user's drag */
4136
+ function iterativelyUpdateLayout({
4137
+ context,
4138
+ handleId,
4139
+ delta,
4140
+ direction,
4141
+ controlled,
4142
+ disregardCollapseBuffer,
4143
+ }: {
4144
+ context: GroupMachineContextValue;
4145
+ handleId: string;
4146
+ delta: number;
4147
+ direction: -1 | 1;
4148
+ controlled?: boolean;
4149
+ disregardCollapseBuffer?: boolean;
4150
+ }) {
4151
+ let newContext: Partial&lt;GroupMachineContextValue&gt; = context;
4152
+ &nbsp;
4153
+ for (let i = 0; i &lt; Math.abs(delta); i++) {
4154
+ newContext = updateLayout(
4155
+ {
4156
+ ...context,
4157
+ ...newContext,
4158
+ },
4159
+ {
4160
+ handleId,
4161
+ type: "collapsePanel",
4162
+ controlled,
4163
+ disregardCollapseBuffer,
4164
+ value: dragHandlePayload({
4165
+ delta: direction,
4166
+ orientation: context.orientation,
4167
+ }),
4168
+ }
4169
+ );
4170
+ }
4171
+ &nbsp;
4172
+ return newContext;
4173
+ }
4174
+ &nbsp;
4175
+ function applyDeltaInBothDirections(
4176
+ context: GroupMachineContextValue,
4177
+ newItems: Array&lt;Item&gt;,
4178
+ itemIndex: number,
4179
+ delta: number
4180
+ ) {
4181
+ let hasTriedBothDirections = false;
4182
+ let direction = 1;
4183
+ &nbsp;
4184
+ // Starting from where the items was removed add space to the panels around it.
4185
+ // This is only needed for conditional rendering.
4186
+ while (delta !== 0) {
4187
+ const targetPanel = findPanelWithSpace(
4188
+ context,
4189
+ newItems,
4190
+ itemIndex + direction,
4191
+ direction
4192
+ );
4193
+ &nbsp;
4194
+ if (!targetPanel) {
4195
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (hasTriedBothDirections) {
4196
+ <span class="cstat-no" title="statement not covered" > break;</span>
4197
+ } else {
4198
+ direction = direction === 1 ? -1 : <span class="branch-1 cbranch-no" title="branch not covered" >1;</span>
4199
+ hasTriedBothDirections = true;
4200
+ continue;
4201
+ }
4202
+ }
4203
+ &nbsp;
4204
+ const oldValue = targetPanel.currentValue.value;
4205
+ const newValue = clampUnit(context, targetPanel, oldValue + delta);
4206
+ &nbsp;
4207
+ targetPanel.currentValue.value = newValue;
4208
+ delta -= newValue - oldValue;
4209
+ direction = direction === 1 ? -1 : 1;
4210
+ }
4211
+ }
4212
+ &nbsp;
4213
+ // #endregion
4214
+ &nbsp;
4215
+ // #region Machine
4216
+ &nbsp;
4217
+ interface AnimationActorInput {
4218
+ context: GroupMachineContextValue;
4219
+ event: CollapsePanelEvent | ExpandPanelEvent;
4220
+ send: (event: GroupMachineEvent) =&gt; void;
4221
+ }
4222
+ &nbsp;
4223
+ interface AnimationActorOutput {
4224
+ panelId: string;
4225
+ action: "expand" | "collapse";
4226
+ }
4227
+ &nbsp;
4228
+ const animationActor = fromPromise&lt;
4229
+ AnimationActorOutput | undefined,
4230
+ AnimationActorInput
4231
+ &gt;(
4232
+ ({ input: { send, context, event } }) =&gt;
4233
+ new Promise&lt;AnimationActorOutput | undefined&gt;((resolve) =&gt; {
4234
+ const panel = getPanelWithId(context, event.panelId);
4235
+ const handle = getHandleForPanelId(context, event.panelId);
4236
+ &nbsp;
4237
+ let direction = handle.direction;
4238
+ let fullDelta = 0;
4239
+ &nbsp;
4240
+ if (event.type === "expandPanel") {
4241
+ fullDelta =
4242
+ (panel.sizeBeforeCollapse ?? getUnitPixelValue(context, panel.min)) -
4243
+ panel.currentValue.value;
4244
+ } else {
4245
+ const collapsedSize = getUnitPixelValue(context, panel.collapsedSize);
4246
+ &nbsp;
4247
+ panel.sizeBeforeCollapse = panel.currentValue.value;
4248
+ direction *= -1 as -1 | 1;
4249
+ fullDelta = panel.currentValue.value - collapsedSize;
4250
+ }
4251
+ &nbsp;
4252
+ const fps = 60;
4253
+ const { duration, ease } = getCollapseAnimation(panel);
4254
+ const totalFrames = Math.ceil(
4255
+ panel.collapseAnimation ? duration / (1000 / fps) : 1
4256
+ );
4257
+ let frame = 0;
4258
+ let appliedDelta = 0;
4259
+ &nbsp;
4260
+ function renderFrame() {
4261
+ const progress = (frame++ + 1) / totalFrames;
4262
+ const e = panel.collapseAnimation ? ease(progress) : 1;
4263
+ const delta = (e * fullDelta - appliedDelta) * direction;
4264
+ &nbsp;
4265
+ send({ type: "applyDelta", handleId: handle.item.id, delta });
4266
+ appliedDelta +=
4267
+ Math.abs(delta) *
4268
+ ((delta &gt; 0 &amp;&amp; direction === -1) || (delta &lt; 0 &amp;&amp; direction === 1)
4269
+ ? <span class="branch-0 cbranch-no" title="branch not covered" >-1</span>
4270
+ : 1);
4271
+ &nbsp;
4272
+ if (e === 1) {
4273
+ const action = event.type === "expandPanel" ? "expand" : "collapse";
4274
+ resolve({ panelId: panel.id, action });
4275
+ return false;
4276
+ }
4277
+ &nbsp;
4278
+ return true;
4279
+ }
4280
+ &nbsp;
4281
+ raf(renderFrame);
4282
+ })
4283
+ );
4284
+ &nbsp;
4285
+ export const groupMachine = createMachine(
4286
+ {
4287
+ initial: "idle",
4288
+ types: {
4289
+ context: {} as GroupMachineContextValue,
4290
+ events: {} as GroupMachineEvent,
4291
+ input: {} as {
4292
+ autosaveId?: string;
4293
+ orientation?: Orientation;
4294
+ groupId: string;
4295
+ initialItems?: Item[];
4296
+ },
4297
+ },
4298
+ context: ({ input }) =&gt; ({
4299
+ size: { width: 0, height: 0 },
4300
+ items: input.initialItems || [],
4301
+ orientation: input.orientation || "horizontal",
4302
+ dragOvershoot: 0,
4303
+ autosaveId: input.autosaveId,
4304
+ groupId: input.groupId,
4305
+ }),
4306
+ states: {
4307
+ idle: {
4308
+ on: {
4309
+ setActualItemsSize: { actions: ["recordActualItemSize"] },
4310
+ dragHandleStart: { target: "dragging" },
4311
+ setPanelPixelSize: {
4312
+ actions: ["prepare", "onSetPanelSize", "commit"],
4313
+ },
4314
+ collapsePanel: [
4315
+ {
4316
+ actions: "notifyCollapseToggle",
4317
+ guard: "shouldNotifyCollapseToggle",
4318
+ },
4319
+ { target: "togglingCollapse" },
4320
+ ],
4321
+ expandPanel: [
4322
+ {
4323
+ actions: "notifyCollapseToggle",
4324
+ guard: "shouldNotifyCollapseToggle",
4325
+ },
4326
+ { target: "togglingCollapse" },
4327
+ ],
4328
+ },
4329
+ },
4330
+ dragging: {
4331
+ entry: ["prepare"],
4332
+ on: {
4333
+ dragHandle: { actions: ["onDragHandle"] },
4334
+ dragHandleEnd: { target: "idle" },
4335
+ collapsePanel: {
4336
+ guard: "shouldCollapseToggle",
4337
+ actions: "runCollapseToggle",
4338
+ },
4339
+ expandPanel: {
4340
+ guard: "shouldCollapseToggle",
4341
+ actions: "runCollapseToggle",
4342
+ },
4343
+ },
4344
+ exit: ["commit", "onAutosave"],
4345
+ },
4346
+ togglingCollapse: {
4347
+ entry: ["prepare"],
4348
+ invoke: {
4349
+ src: "animation",
4350
+ input: (i) =&gt; ({ ...i, send: i.self.send }),
4351
+ onDone: {
4352
+ target: "idle",
4353
+ actions: ["onToggleCollapseComplete", "commit", "onAutosave"],
4354
+ },
4355
+ },
4356
+ on: {
4357
+ applyDelta: { actions: ["onApplyDelta"] },
4358
+ },
4359
+ },
4360
+ },
4361
+ on: {
4362
+ registerPanel: { actions: ["assignPanelData"] },
4363
+ registerDynamicPanel: {
4364
+ actions: ["prepare", "onRegisterDynamicPanel", "commit", "onAutosave"],
4365
+ },
4366
+ unregisterPanel: {
4367
+ actions: ["prepare", "removeItem", "commit", "onAutosave"],
4368
+ },
4369
+ registerPanelHandle: { actions: ["assignPanelHandleData"] },
4370
+ unregisterPanelHandle: {
4371
+ actions: ["prepare", "removeItem", "commit", "onAutosave"],
4372
+ },
4373
+ setSize: { actions: ["updateSize"] },
4374
+ setOrientation: { actions: ["updateOrientation"] },
4375
+ },
4376
+ },
4377
+ {
4378
+ guards: {
4379
+ shouldNotifyCollapseToggle: ({ context, event }) =&gt; {
4380
+ isEvent(event, ["collapsePanel", "expandPanel"]);
4381
+ const panel = getPanelWithId(context, event.panelId);
4382
+ return !event.controlled &amp;&amp; panel.collapseIsControlled === true;
4383
+ },
4384
+ shouldCollapseToggle: ({ context, event }) =&gt; {
4385
+ isEvent(event, ["collapsePanel", "expandPanel"]);
4386
+ const panel = getPanelWithId(context, event.panelId);
4387
+ return panel.collapseIsControlled === true;
4388
+ },
4389
+ },
4390
+ actors: {
4391
+ animation: animationActor,
4392
+ },
4393
+ actions: {
4394
+ notifyCollapseToggle: ({ context, event }) =&gt; {
4395
+ isEvent(event, ["collapsePanel", "expandPanel"]);
4396
+ const panel = getPanelWithId(context, event.panelId);
4397
+ panel.onCollapseChange?.current?.(!panel.collapsed);
4398
+ },
4399
+ runCollapseToggle: enqueueActions(({ context, event, enqueue }) =&gt; {
4400
+ isEvent(event, ["collapsePanel", "expandPanel"]);
4401
+ &nbsp;
4402
+ const handle = getHandleForPanelId(context, event.panelId);
4403
+ // When collapsing a panel it will be in the opposite direction
4404
+ // that handle assumes
4405
+ const delta =
4406
+ event.type === "collapsePanel"
4407
+ ? handle.direction * -1
4408
+ : handle.direction;
4409
+ const newContext = updateLayout(context, {
4410
+ handleId: handle.item.id,
4411
+ type: "dragHandle",
4412
+ controlled: event.controlled,
4413
+ value: dragHandlePayload({ delta, orientation: context.orientation }),
4414
+ });
4415
+ &nbsp;
4416
+ enqueue.assign(newContext);
4417
+ }),
4418
+ onToggleCollapseComplete: assign({
4419
+ items: ({ context, event: e }) =&gt; {
4420
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4421
+ const output = (e as any).output as AnimationActorOutput;
4422
+ invariant(output, "Expected output from animation actor");
4423
+ &nbsp;
4424
+ const panel = getPanelWithId(context, output.panelId);
4425
+ panel.collapsed = output.action === "collapse";
4426
+ &nbsp;
4427
+ if (panel.collapsed) {
4428
+ panel.currentValue = panel.collapsedSize;
4429
+ }
4430
+ &nbsp;
4431
+ return context.items;
4432
+ },
4433
+ }),
4434
+ updateSize: assign({
4435
+ size: ({ event }) =&gt; {
4436
+ isEvent(event, ["setSize"]);
4437
+ return event.size;
4438
+ },
4439
+ }),
4440
+ recordActualItemSize: assign({
4441
+ items: ({ context, event }) =&gt; {
4442
+ isEvent(event, ["setActualItemsSize"]);
4443
+ &nbsp;
4444
+ const orientation = context.orientation;
4445
+ &nbsp;
4446
+ for (const [id, size] of Object.entries(event.childrenSizes)) {
4447
+ const item = context.items.find((i) =&gt; i.id === id);
4448
+ &nbsp;
4449
+ if (!isPanelData(item)) {
4450
+ continue;
4451
+ }
4452
+ &nbsp;
4453
+ item.currentValue = makePixelUnit(
4454
+ orientation === "horizontal" ? size.width : size.height
4455
+ );
4456
+ }
4457
+ &nbsp;
4458
+ return commitLayout(context);
4459
+ },
4460
+ }),
4461
+ updateOrientation: assign({
4462
+ orientation: ({ event }) =&gt; {
4463
+ isEvent(event, ["setOrientation"]);
4464
+ return event.orientation;
4465
+ },
4466
+ }),
4467
+ assignPanelData: assign({
4468
+ items: ({ context, event }) =&gt; {
4469
+ isEvent(event, ["registerPanel"]);
4470
+ &nbsp;
4471
+ return addDeDuplicatedItems(context.items, {
4472
+ type: "panel",
4473
+ currentValue: makePixelUnit(-1),
4474
+ ...event.data,
4475
+ });
4476
+ },
4477
+ }),
4478
+ onRegisterDynamicPanel: assign({
4479
+ items: ({ context, event }) =&gt; {
4480
+ isEvent(event, ["registerDynamicPanel"]);
4481
+ &nbsp;
4482
+ let currentValue: ParsedUnit = makePixelUnit(0);
4483
+ &nbsp;
4484
+ if (
4485
+ event.data.collapsible &amp;&amp;
4486
+ event.data.collapsed &amp;&amp;
4487
+ event.data.collapsedSize
4488
+ ) {
4489
+ currentValue = event.data.collapsedSize;
4490
+ } else if (event.data.default) {
4491
+ currentValue = event.data.default;
4492
+ } else {
4493
+ currentValue = event.data.min;
4494
+ }
4495
+ &nbsp;
4496
+ const newItems = addDeDuplicatedItems(context.items, {
4497
+ type: "panel",
4498
+ ...event.data,
4499
+ currentValue,
4500
+ });
4501
+ const itemIndex = newItems.findIndex(
4502
+ (item) =&gt; item.id === event.data.id
4503
+ );
4504
+ const newContext = { ...context, items: newItems };
4505
+ const overflowDueToHandles =
4506
+ context.items.reduce((acc, i) =&gt; {
4507
+ if (isPanelHandle(i)) {
4508
+ return acc + getUnitPixelValue(context, i.size);
4509
+ }
4510
+ &nbsp;
4511
+ return acc + i.currentValue.value;
4512
+ }, 0) - getGroupSize(context);
4513
+ &nbsp;
4514
+ applyDeltaInBothDirections(
4515
+ newContext,
4516
+ newItems,
4517
+ itemIndex,
4518
+ -1 * (currentValue.value + overflowDueToHandles)
4519
+ );
4520
+ &nbsp;
4521
+ return newItems;
4522
+ },
4523
+ }),
4524
+ assignPanelHandleData: assign({
4525
+ items: ({ context, event }) =&gt; {
4526
+ isEvent(event, ["registerPanelHandle"]);
4527
+ &nbsp;
4528
+ return addDeDuplicatedItems(context.items, {
4529
+ type: "handle",
4530
+ ...event.data,
4531
+ size: event.data.size as ParsedPixelUnit,
4532
+ });
4533
+ },
4534
+ }),
4535
+ removeItem: assign({
4536
+ items: ({ context, event }) =&gt; {
4537
+ isEvent(event, ["unregisterPanel", "unregisterPanelHandle"]);
4538
+ const itemIndex = context.items.findIndex(
4539
+ (item) =&gt; item.id === event.id
4540
+ );
4541
+ const item = context.items[itemIndex];
4542
+ &nbsp;
4543
+ if (!item) {
4544
+ return context.items;
4545
+ }
4546
+ &nbsp;
4547
+ const newItems = context.items.filter((i) =&gt; i.id !== event.id);
4548
+ const removedSize = isPanelData(item)
4549
+ ? item.currentValue.value
4550
+ : item.size.value;
4551
+ &nbsp;
4552
+ applyDeltaInBothDirections(context, newItems, itemIndex, removedSize);
4553
+ &nbsp;
4554
+ return newItems;
4555
+ },
4556
+ }),
4557
+ prepare: assign({
4558
+ items: ({ context }) =&gt; prepareItems(context),
4559
+ }),
4560
+ onDragHandle: enqueueActions(({ context, event, enqueue }) =&gt; {
4561
+ isEvent(event, ["dragHandle"]);
4562
+ enqueue.assign(updateLayout(context, event));
4563
+ }),
4564
+ commit: assign({
4565
+ dragOvershoot: 0,
4566
+ items: ({ context }) =&gt; commitLayout(context),
4567
+ }),
4568
+ onApplyDelta: assign(({ context, event }) =&gt; {
4569
+ isEvent(event, ["applyDelta"]);
4570
+ return updateLayout(context, {
4571
+ handleId: event.handleId,
4572
+ type: "collapsePanel",
4573
+ disregardCollapseBuffer: true,
4574
+ value: dragHandlePayload({
4575
+ delta: event.delta,
4576
+ orientation: context.orientation,
4577
+ }),
4578
+ });
4579
+ }),
4580
+ onSetPanelSize: enqueueActions(({ context, event, enqueue }) =&gt; {
4581
+ isEvent(event, ["setPanelPixelSize"]);
4582
+ &nbsp;
4583
+ const panel = getPanelWithId(context, event.panelId);
4584
+ const handle = getHandleForPanelId(context, event.panelId);
4585
+ const current = panel.currentValue.value;
4586
+ const newSize = clampUnit(
4587
+ context,
4588
+ panel,
4589
+ getUnitPixelValue(context, parseUnit(event.size))
4590
+ );
4591
+ const isBigger = newSize &gt; current;
4592
+ const delta = isBigger ? newSize - current : current - newSize;
4593
+ &nbsp;
4594
+ enqueue.assign(
4595
+ iterativelyUpdateLayout({
4596
+ context,
4597
+ direction: (handle.direction * (isBigger ? 1 : -1)) as -1 | 1,
4598
+ handleId: handle.item.id,
4599
+ delta,
4600
+ })
4601
+ );
4602
+ }),
4603
+ },
4604
+ }
4605
+ );
4606
+ &nbsp;
4607
+ // #endregion
4608
+ &nbsp;</pre></td></tr></table></pre>
4609
+
4610
+ <div class='push'></div><!-- for sticky footer -->
4611
+ </div><!-- /wrapper -->
4612
+ <div class='footer quiet pad2 space-top1 center small'>
4613
+ Code coverage generated by
4614
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
4615
+ at 2024-08-13T16:53:14.774Z
4616
+ </div>
4617
+ <script src="prettify.js"></script>
4618
+ <script>
4619
+ window.onload = function () {
4620
+ prettyPrint();
4621
+ };
4622
+ </script>
4623
+ <script src="sorter.js"></script>
4624
+ <script src="block-navigation.js"></script>
4625
+ </body>
4626
+ </html>
4627
+