@basementuniverse/kanbn 1.1.0 → 2.0.0
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.
- package/README.md +2 -0
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/coverage-summary.json +31 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +146 -0
- package/coverage/kanbn/index.html +116 -0
- package/coverage/kanbn/index.js.html +217 -0
- package/coverage/kanbn/src/board.js.html +646 -0
- package/coverage/kanbn/src/controller/add.js.html +1729 -0
- package/coverage/kanbn/src/controller/archive.js.html +277 -0
- package/coverage/kanbn/src/controller/board.js.html +217 -0
- package/coverage/kanbn/src/controller/burndown.js.html +607 -0
- package/coverage/kanbn/src/controller/comment.js.html +397 -0
- package/coverage/kanbn/src/controller/edit.js.html +2920 -0
- package/coverage/kanbn/src/controller/find.js.html +1597 -0
- package/coverage/kanbn/src/controller/gantt.js.html +1342 -0
- package/coverage/kanbn/src/controller/help.js.html +115 -0
- package/coverage/kanbn/src/controller/history.js.html +400 -0
- package/coverage/kanbn/src/controller/index.html +431 -0
- package/coverage/kanbn/src/controller/init.js.html +511 -0
- package/coverage/kanbn/src/controller/move.js.html +514 -0
- package/coverage/kanbn/src/controller/remove-all.js.html +226 -0
- package/coverage/kanbn/src/controller/remove.js.html +307 -0
- package/coverage/kanbn/src/controller/rename.js.html +397 -0
- package/coverage/kanbn/src/controller/restore.js.html +268 -0
- package/coverage/kanbn/src/controller/sort.js.html +1318 -0
- package/coverage/kanbn/src/controller/sprint.js.html +361 -0
- package/coverage/kanbn/src/controller/status.js.html +310 -0
- package/coverage/kanbn/src/controller/task.js.html +244 -0
- package/coverage/kanbn/src/controller/validate.js.html +367 -0
- package/coverage/kanbn/src/controller/version.js.html +100 -0
- package/coverage/kanbn/src/index.html +191 -0
- package/coverage/kanbn/src/main.js.html +9787 -0
- package/coverage/kanbn/src/parse-index.js.html +1063 -0
- package/coverage/kanbn/src/parse-markdown.js.html +202 -0
- package/coverage/kanbn/src/parse-task.js.html +2191 -0
- package/coverage/kanbn/src/utility.js.html +616 -0
- package/coverage/lcov.info +11837 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +210 -0
- package/coverage/tmp/coverage-214292-1787777191526-0.json +1 -0
- package/coverage/tmp/coverage-214293-1787777184569-0.json +1 -0
- package/docs/advanced-configuration.md +2 -0
- package/docs/commands/add.txt +10 -0
- package/docs/commands/board.txt +3 -1
- package/docs/commands/burndown.txt +2 -4
- package/docs/commands/edit.txt +22 -0
- package/docs/commands/find.txt +45 -1
- package/docs/commands/help.txt +1 -0
- package/docs/commands/move.txt +1 -1
- package/docs/commands/sort.txt +13 -2
- package/docs/commands/validate.txt +12 -0
- package/docs/filtering-and-sorting.md +218 -0
- package/docs/index-structure.md +68 -19
- package/docs/index.md +26 -2
- package/docs/migration-2.0.md +92 -0
- package/docs/quick-start.md +37 -1
- package/docs/task-structure.md +12 -3
- package/docs/views.md +229 -0
- package/example/README.md +70 -0
- package/example/advanced/.kanbn/index.md +26 -0
- package/example/advanced/.kanbn/tasks/add-rate-limiting.md +18 -0
- package/example/advanced/.kanbn/tasks/add-sso-support.md +15 -0
- package/example/advanced/.kanbn/tasks/migrate-to-new-cdn.md +14 -0
- package/example/advanced/.kanbn/tasks/refresh-marketing-site.md +14 -0
- package/example/advanced/.kanbn/tasks/rotate-api-keys.md +15 -0
- package/example/advanced/.kanbn/tasks/split-billing-service.md +17 -0
- package/example/advanced/.kanbn/tasks/upgrade-node-runtime.md +19 -0
- package/example/advanced/kanbn.yml +59 -0
- package/example/views/.kanbn/index.md +140 -0
- package/example/views/.kanbn/tasks/add-audit-log-export.md +18 -0
- package/example/views/.kanbn/tasks/add-dark-mode-toggle.md +16 -0
- package/example/views/.kanbn/tasks/build-webhook-retry-queue.md +15 -0
- package/example/views/.kanbn/tasks/fix-avatar-upload-crash.md +13 -0
- package/example/views/.kanbn/tasks/fix-expired-session-redirect.md +15 -0
- package/example/views/.kanbn/tasks/investigate-offline-mode.md +12 -0
- package/example/views/.kanbn/tasks/rewrite-search-indexer.md +12 -0
- package/example/views/.kanbn/tasks/tidy-up-settings-copy.md +12 -0
- package/package.json +4 -3
- package/routes/edit.json +2 -1
- package/routes/validate.json +4 -2
- package/skills/kanbn-plan/references/index-structure.md +1 -0
- package/skills/kanbn-plan/references/task-structure.md +2 -0
- package/src/board.js +1 -0
- package/src/controller/board.js +6 -0
- package/src/controller/edit.js +65 -12
- package/src/controller/gantt.js +46 -1
- package/src/controller/status.js +12 -0
- package/src/controller/task.js +1 -1
- package/src/controller/validate.js +78 -15
- package/src/main.js +324 -152
- package/src/parse-index.js +3 -0
- package/src/parse-markdown.js +3 -1
- package/src/parse-task.js +28 -1
- package/src/utility.js +26 -1
- /package/example/{.kanbn → basic/.kanbn}/index.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/add-basic-activity-feed.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/add-passwordless-login-option.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/add-usage-alert-email-thresholds.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/build-email-template-system.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/build-invoice-download-endpoint.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/build-tenant-settings-page.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/create-organization-switcher.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/create-sandbox-environment-provisioner.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/create-self-serve-cancellation-flow.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/define-product-pricing-strategy.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/design-onboarding-checklist.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/design-team-invite-expiry-flow.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/implement-data-retention-policy-jobs.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/implement-feature-flags-foundation.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/implement-project-creation-wizard.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/implement-stripe-webhook-signature-check.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/implement-team-permissions-ui.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/implement-user-signup-and-login.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/integrate-crm-lead-sync.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/legal-review-terms-and-privacy.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/migrate-legacy-events-to-new-schema.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/optimize-dashboard-first-load.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/prototype-report-export-scheduler.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/publish-internal-qa-checklist.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/setup-ci-pipeline.md +0 -0
|
@@ -0,0 +1,2920 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for kanbn/src/controller/edit.js</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../../../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../../../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../../../index.html">All files</a> / <a href="index.html">kanbn/src/controller</a> edit.js</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">89.41% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>845/945</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">83.15% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>153/184</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">92.85% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>26/28</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">89.41% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>845/945</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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
|
|
1012
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1013
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1014
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1015
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1016
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1017
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1018
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1019
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1020
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1021
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1022
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1023
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1024
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1025
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1026
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1027
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1028
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1029
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1030
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1031
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1032
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1033
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1034
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1035
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1036
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1037
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1038
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1039
|
+
<span class="cline-any cline-no"> </span>
|
|
1040
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1041
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1042
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1043
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1044
|
+
<span class="cline-any cline-no"> </span>
|
|
1045
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1046
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1047
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1048
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1049
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1050
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1051
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1052
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1053
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1054
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1055
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1056
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1057
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1058
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1059
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1060
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1061
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1062
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1063
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1064
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1065
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1066
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1067
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1068
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1069
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1070
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1071
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1072
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1073
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1074
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1075
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1076
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1077
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1078
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1079
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1080
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1081
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1082
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1083
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1084
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1085
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1086
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1087
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1088
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1089
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1090
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1091
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1092
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1093
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1094
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1095
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1096
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1097
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1098
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1099
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1100
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1101
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1102
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1103
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1104
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1105
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1106
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1107
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1108
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1109
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1110
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1111
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1112
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1113
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1114
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1115
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1116
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1117
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1118
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1119
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1120
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1121
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1122
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1123
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1124
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1125
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1126
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1127
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1128
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1129
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1130
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1131
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1132
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1133
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1134
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1135
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1136
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1137
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1138
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1139
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1140
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1141
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1142
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1143
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1144
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1145
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1146
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1147
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1148
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1149
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1150
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1151
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1152
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1153
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1154
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1155
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1156
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1157
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1158
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1159
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1160
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1161
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1162
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1163
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1164
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1165
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1166
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1167
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1168
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1169
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1170
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1171
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1172
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1173
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1174
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1175
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1176
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1177
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1178
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1179
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1180
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1181
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1182
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1183
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1184
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1185
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1186
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1187
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1188
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1189
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1190
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1191
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1192
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1193
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1194
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1195
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1196
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1197
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1198
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1199
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1200
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1201
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1202
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1203
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1204
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1205
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1206
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1207
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1208
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1209
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1210
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1211
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1212
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1213
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1214
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1215
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1216
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1217
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1218
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1219
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1220
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1221
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1222
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1223
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1224
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1225
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1226
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1227
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1228
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1229
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1230
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1231
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1232
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1233
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1234
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1235
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1236
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1237
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1238
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1239
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1240
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1241
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1242
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1243
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1244
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1245
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1246
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1247
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1248
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1249
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1250
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1251
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1252
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1253
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1254
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1255
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1256
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1257
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1258
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1259
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1260
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1261
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1262
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1263
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1264
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1265
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1266
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1267
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1268
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1269
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1270
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1271
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1272
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1273
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1274
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1275
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1276
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1277
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1278
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1279
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1280
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1281
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1282
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1283
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1284
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1285
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1286
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1287
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1288
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1289
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1290
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1291
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1292
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1293
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1294
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1295
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1296
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1297
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1298
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1299
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1300
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1301
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1302
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1303
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1304
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1305
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1306
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1307
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1308
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1309
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1310
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1311
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1312
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1313
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1314
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1315
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1316
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1317
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1318
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1319
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1320
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1321
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1322
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1323
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1324
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1325
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1326
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1327
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1328
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1329
|
+
<span class="cline-any cline-no"> </span>
|
|
1330
|
+
<span class="cline-any cline-no"> </span>
|
|
1331
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1332
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1333
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1334
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1335
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1336
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1337
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1338
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1339
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1340
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1341
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1342
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1343
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1344
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1345
|
+
<span class="cline-any cline-yes">19x</span>
|
|
1346
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1347
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1348
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1349
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1350
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1351
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1352
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1353
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1354
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1355
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1356
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1357
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1358
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1359
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1360
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1361
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1362
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1363
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1364
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1365
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1366
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1367
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1368
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1369
|
+
<span class="cline-any cline-no"> </span>
|
|
1370
|
+
<span class="cline-any cline-no"> </span>
|
|
1371
|
+
<span class="cline-any cline-no"> </span>
|
|
1372
|
+
<span class="cline-any cline-no"> </span>
|
|
1373
|
+
<span class="cline-any cline-no"> </span>
|
|
1374
|
+
<span class="cline-any cline-no"> </span>
|
|
1375
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1376
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1377
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1378
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1379
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1380
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1381
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1382
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1383
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1384
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1385
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1386
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1387
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1388
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1389
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1390
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1391
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1392
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1393
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1394
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1395
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1396
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1397
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1398
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1399
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1400
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1401
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1402
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1403
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1404
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1405
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1406
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1407
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1408
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1409
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1410
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1411
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1412
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1413
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1414
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1415
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1416
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1417
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1418
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1419
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1420
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1421
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1422
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1423
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1424
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1425
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1426
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1427
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1428
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1429
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1430
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1431
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1432
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1433
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1434
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1435
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1436
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1437
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1438
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1439
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1440
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1441
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1442
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1443
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1444
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1445
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1446
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1447
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1448
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1449
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1450
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1451
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1452
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1453
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1454
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1455
|
+
<span class="cline-any cline-yes">36x</span>
|
|
1456
|
+
<span class="cline-any cline-yes">36x</span>
|
|
1457
|
+
<span class="cline-any cline-yes">36x</span>
|
|
1458
|
+
<span class="cline-any cline-yes">36x</span>
|
|
1459
|
+
<span class="cline-any cline-yes">36x</span>
|
|
1460
|
+
<span class="cline-any cline-yes">36x</span>
|
|
1461
|
+
<span class="cline-any cline-yes">36x</span>
|
|
1462
|
+
<span class="cline-any cline-no"> </span>
|
|
1463
|
+
<span class="cline-any cline-yes">36x</span>
|
|
1464
|
+
<span class="cline-any cline-yes">36x</span>
|
|
1465
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1466
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1467
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1468
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1469
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1470
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1471
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1472
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1473
|
+
<span class="cline-any cline-yes">50x</span>
|
|
1474
|
+
<span class="cline-any cline-yes">50x</span>
|
|
1475
|
+
<span class="cline-any cline-yes">50x</span>
|
|
1476
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1477
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1478
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1479
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1480
|
+
<span class="cline-any cline-yes">49x</span>
|
|
1481
|
+
<span class="cline-any cline-yes">49x</span>
|
|
1482
|
+
<span class="cline-any cline-yes">49x</span>
|
|
1483
|
+
<span class="cline-any cline-yes">49x</span>
|
|
1484
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1485
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1486
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1487
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1488
|
+
<span class="cline-any cline-yes">48x</span>
|
|
1489
|
+
<span class="cline-any cline-yes">48x</span>
|
|
1490
|
+
<span class="cline-any cline-yes">48x</span>
|
|
1491
|
+
<span class="cline-any cline-yes">48x</span>
|
|
1492
|
+
<span class="cline-any cline-yes">48x</span>
|
|
1493
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1494
|
+
<span class="cline-any cline-no"> </span>
|
|
1495
|
+
<span class="cline-any cline-no"> </span>
|
|
1496
|
+
<span class="cline-any cline-no"> </span>
|
|
1497
|
+
<span class="cline-any cline-yes">48x</span>
|
|
1498
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1499
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1500
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1501
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1502
|
+
<span class="cline-any cline-yes">47x</span>
|
|
1503
|
+
<span class="cline-any cline-yes">47x</span>
|
|
1504
|
+
<span class="cline-any cline-yes">47x</span>
|
|
1505
|
+
<span class="cline-any cline-yes">47x</span>
|
|
1506
|
+
<span class="cline-any cline-yes">47x</span>
|
|
1507
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1508
|
+
<span class="cline-any cline-no"> </span>
|
|
1509
|
+
<span class="cline-any cline-no"> </span>
|
|
1510
|
+
<span class="cline-any cline-no"> </span>
|
|
1511
|
+
<span class="cline-any cline-yes">47x</span>
|
|
1512
|
+
<span class="cline-any cline-yes">47x</span>
|
|
1513
|
+
<span class="cline-any cline-yes">47x</span>
|
|
1514
|
+
<span class="cline-any cline-yes">47x</span>
|
|
1515
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1516
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1517
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1518
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1519
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1520
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1521
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1522
|
+
<span class="cline-any cline-yes">46x</span>
|
|
1523
|
+
<span class="cline-any cline-yes">46x</span>
|
|
1524
|
+
<span class="cline-any cline-yes">46x</span>
|
|
1525
|
+
<span class="cline-any cline-yes">46x</span>
|
|
1526
|
+
<span class="cline-any cline-yes">46x</span>
|
|
1527
|
+
<span class="cline-any cline-yes">46x</span>
|
|
1528
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1529
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1530
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1531
|
+
<span class="cline-any cline-yes">46x</span>
|
|
1532
|
+
<span class="cline-any cline-yes">46x</span>
|
|
1533
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1534
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1535
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1536
|
+
<span class="cline-any cline-yes">46x</span>
|
|
1537
|
+
<span class="cline-any cline-yes">46x</span>
|
|
1538
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1539
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1540
|
+
<span class="cline-any cline-no"> </span>
|
|
1541
|
+
<span class="cline-any cline-no"> </span>
|
|
1542
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1543
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1544
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1545
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1546
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1547
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1548
|
+
<span class="cline-any cline-yes">45x</span>
|
|
1549
|
+
<span class="cline-any cline-yes">45x</span>
|
|
1550
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1551
|
+
<span class="cline-any cline-no"> </span>
|
|
1552
|
+
<span class="cline-any cline-no"> </span>
|
|
1553
|
+
<span class="cline-any cline-no"> </span>
|
|
1554
|
+
<span class="cline-any cline-no"> </span>
|
|
1555
|
+
<span class="cline-any cline-no"> </span>
|
|
1556
|
+
<span class="cline-any cline-no"> </span>
|
|
1557
|
+
<span class="cline-any cline-no"> </span>
|
|
1558
|
+
<span class="cline-any cline-no"> </span>
|
|
1559
|
+
<span class="cline-any cline-no"> </span>
|
|
1560
|
+
<span class="cline-any cline-yes">45x</span>
|
|
1561
|
+
<span class="cline-any cline-yes">45x</span>
|
|
1562
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1563
|
+
<span class="cline-any cline-no"> </span>
|
|
1564
|
+
<span class="cline-any cline-no"> </span>
|
|
1565
|
+
<span class="cline-any cline-no"> </span>
|
|
1566
|
+
<span class="cline-any cline-no"> </span>
|
|
1567
|
+
<span class="cline-any cline-no"> </span>
|
|
1568
|
+
<span class="cline-any cline-no"> </span>
|
|
1569
|
+
<span class="cline-any cline-no"> </span>
|
|
1570
|
+
<span class="cline-any cline-no"> </span>
|
|
1571
|
+
<span class="cline-any cline-no"> </span>
|
|
1572
|
+
<span class="cline-any cline-yes">45x</span>
|
|
1573
|
+
<span class="cline-any cline-yes">45x</span>
|
|
1574
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1575
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1576
|
+
<span class="cline-any cline-no"> </span>
|
|
1577
|
+
<span class="cline-any cline-no"> </span>
|
|
1578
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1579
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1580
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1581
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1582
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1583
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1584
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1585
|
+
<span class="cline-any cline-yes">44x</span>
|
|
1586
|
+
<span class="cline-any cline-yes">44x</span>
|
|
1587
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1588
|
+
<span class="cline-any cline-no"> </span>
|
|
1589
|
+
<span class="cline-any cline-no"> </span>
|
|
1590
|
+
<span class="cline-any cline-no"> </span>
|
|
1591
|
+
<span class="cline-any cline-no"> </span>
|
|
1592
|
+
<span class="cline-any cline-no"> </span>
|
|
1593
|
+
<span class="cline-any cline-no"> </span>
|
|
1594
|
+
<span class="cline-any cline-no"> </span>
|
|
1595
|
+
<span class="cline-any cline-no"> </span>
|
|
1596
|
+
<span class="cline-any cline-no"> </span>
|
|
1597
|
+
<span class="cline-any cline-no"> </span>
|
|
1598
|
+
<span class="cline-any cline-no"> </span>
|
|
1599
|
+
<span class="cline-any cline-no"> </span>
|
|
1600
|
+
<span class="cline-any cline-yes">44x</span>
|
|
1601
|
+
<span class="cline-any cline-yes">44x</span>
|
|
1602
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1603
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1604
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1605
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1606
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1607
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1608
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1609
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1610
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1611
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1612
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1613
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1614
|
+
<span class="cline-any cline-yes">43x</span>
|
|
1615
|
+
<span class="cline-any cline-yes">43x</span>
|
|
1616
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1617
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1618
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1619
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1620
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1621
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1622
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1623
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1624
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1625
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1626
|
+
<span class="cline-any cline-no"> </span>
|
|
1627
|
+
<span class="cline-any cline-no"> </span>
|
|
1628
|
+
<span class="cline-any cline-no"> </span>
|
|
1629
|
+
<span class="cline-any cline-no"> </span>
|
|
1630
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1631
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1632
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1633
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1634
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1635
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1636
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1637
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1638
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1639
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1640
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1641
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1642
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1643
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1644
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1645
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1646
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1647
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1648
|
+
<span class="cline-any cline-yes">43x</span>
|
|
1649
|
+
<span class="cline-any cline-yes">43x</span>
|
|
1650
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1651
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1652
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1653
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1654
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1655
|
+
<span class="cline-any cline-no"> </span>
|
|
1656
|
+
<span class="cline-any cline-no"> </span>
|
|
1657
|
+
<span class="cline-any cline-no"> </span>
|
|
1658
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1659
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1660
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1661
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1662
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1663
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1664
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1665
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1666
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1667
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1668
|
+
<span class="cline-any cline-yes">42x</span>
|
|
1669
|
+
<span class="cline-any cline-yes">42x</span>
|
|
1670
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1671
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1672
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1673
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1674
|
+
<span class="cline-any cline-yes">42x</span>
|
|
1675
|
+
<span class="cline-any cline-yes">42x</span>
|
|
1676
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1677
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1678
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1679
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1680
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1681
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1682
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1683
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1684
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1685
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1686
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1687
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1688
|
+
<span class="cline-any cline-yes">41x</span>
|
|
1689
|
+
<span class="cline-any cline-yes">41x</span>
|
|
1690
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1691
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1692
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1693
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1694
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1695
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1696
|
+
<span class="cline-any cline-no"> </span>
|
|
1697
|
+
<span class="cline-any cline-no"> </span>
|
|
1698
|
+
<span class="cline-any cline-no"> </span>
|
|
1699
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1700
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1701
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1702
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1703
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1704
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1705
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1706
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1707
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1708
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1709
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1710
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1711
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1712
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1713
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1714
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1715
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1716
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1717
|
+
<span class="cline-any cline-no"> </span>
|
|
1718
|
+
<span class="cline-any cline-no"> </span>
|
|
1719
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1720
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1721
|
+
<span class="cline-any cline-yes">41x</span>
|
|
1722
|
+
<span class="cline-any cline-yes">41x</span>
|
|
1723
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1724
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1725
|
+
<span class="cline-any cline-no"> </span>
|
|
1726
|
+
<span class="cline-any cline-no"> </span>
|
|
1727
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1728
|
+
<span class="cline-any cline-yes">12x</span>
|
|
1729
|
+
<span class="cline-any cline-yes">12x</span>
|
|
1730
|
+
<span class="cline-any cline-yes">12x</span>
|
|
1731
|
+
<span class="cline-any cline-yes">12x</span>
|
|
1732
|
+
<span class="cline-any cline-no"> </span>
|
|
1733
|
+
<span class="cline-any cline-no"> </span>
|
|
1734
|
+
<span class="cline-any cline-no"> </span>
|
|
1735
|
+
<span class="cline-any cline-no"> </span>
|
|
1736
|
+
<span class="cline-any cline-yes">12x</span>
|
|
1737
|
+
<span class="cline-any cline-yes">12x</span>
|
|
1738
|
+
<span class="cline-any cline-yes">12x</span>
|
|
1739
|
+
<span class="cline-any cline-yes">12x</span>
|
|
1740
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1741
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1742
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1743
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1744
|
+
<span class="cline-any cline-no"> </span>
|
|
1745
|
+
<span class="cline-any cline-no"> </span>
|
|
1746
|
+
<span class="cline-any cline-no"> </span>
|
|
1747
|
+
<span class="cline-any cline-no"> </span>
|
|
1748
|
+
<span class="cline-any cline-no"> </span>
|
|
1749
|
+
<span class="cline-any cline-no"> </span>
|
|
1750
|
+
<span class="cline-any cline-no"> </span>
|
|
1751
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1752
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1753
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1754
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1755
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1756
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1757
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1758
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1759
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1760
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1761
|
+
<span class="cline-any cline-no"> </span>
|
|
1762
|
+
<span class="cline-any cline-no"> </span>
|
|
1763
|
+
<span class="cline-any cline-no"> </span>
|
|
1764
|
+
<span class="cline-any cline-no"> </span>
|
|
1765
|
+
<span class="cline-any cline-no"> </span>
|
|
1766
|
+
<span class="cline-any cline-no"> </span>
|
|
1767
|
+
<span class="cline-any cline-no"> </span>
|
|
1768
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1769
|
+
<span class="cline-any cline-no"> </span>
|
|
1770
|
+
<span class="cline-any cline-no"> </span>
|
|
1771
|
+
<span class="cline-any cline-no"> </span>
|
|
1772
|
+
<span class="cline-any cline-no"> </span>
|
|
1773
|
+
<span class="cline-any cline-no"> </span>
|
|
1774
|
+
<span class="cline-any cline-no"> </span>
|
|
1775
|
+
<span class="cline-any cline-no"> </span>
|
|
1776
|
+
<span class="cline-any cline-no"> </span>
|
|
1777
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1778
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1779
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1780
|
+
<span class="cline-any cline-yes">12x</span>
|
|
1781
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1782
|
+
<span class="cline-any cline-yes">40x</span>
|
|
1783
|
+
<span class="cline-any cline-yes">40x</span>
|
|
1784
|
+
<span class="cline-any cline-yes">40x</span>
|
|
1785
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1786
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1787
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1788
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1789
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1790
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1791
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1792
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1793
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1794
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1795
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1796
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1797
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1798
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1799
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1800
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1801
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1802
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1803
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1804
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1805
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1806
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1807
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1808
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1809
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1810
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1811
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1812
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1813
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1814
|
+
<span class="cline-any cline-yes">5x</span>
|
|
1815
|
+
<span class="cline-any cline-yes">5x</span>
|
|
1816
|
+
<span class="cline-any cline-yes">5x</span>
|
|
1817
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1818
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1819
|
+
<span class="cline-any cline-yes">38x</span>
|
|
1820
|
+
<span class="cline-any cline-yes">38x</span>
|
|
1821
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1822
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1823
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1824
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1825
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1826
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1827
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1828
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1829
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1830
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1831
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1832
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1833
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1834
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1835
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1836
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1837
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1838
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1839
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1840
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1841
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1842
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1843
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1844
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1845
|
+
<span class="cline-any cline-no"> </span>
|
|
1846
|
+
<span class="cline-any cline-no"> </span>
|
|
1847
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1848
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1849
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1850
|
+
<span class="cline-any cline-no"> </span>
|
|
1851
|
+
<span class="cline-any cline-no"> </span>
|
|
1852
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1853
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1854
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1855
|
+
<span class="cline-any cline-no"> </span>
|
|
1856
|
+
<span class="cline-any cline-no"> </span>
|
|
1857
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1858
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1859
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1860
|
+
<span class="cline-any cline-no"> </span>
|
|
1861
|
+
<span class="cline-any cline-no"> </span>
|
|
1862
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1863
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1864
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1865
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1866
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1867
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1868
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1869
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1870
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1871
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1872
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1873
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1874
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1875
|
+
<span class="cline-any cline-yes">19x</span>
|
|
1876
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1877
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1878
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1879
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1880
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1881
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1882
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1883
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1884
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1885
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1886
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1887
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1888
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1889
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1890
|
+
<span class="cline-any cline-yes">19x</span>
|
|
1891
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1892
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1893
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1894
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1895
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1896
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1897
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1898
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1899
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1900
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1901
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1902
|
+
<span class="cline-any cline-yes">19x</span>
|
|
1903
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1904
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1905
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1906
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1907
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1908
|
+
<span class="cline-any cline-yes">19x</span>
|
|
1909
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1910
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1911
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1912
|
+
<span class="cline-any cline-yes">19x</span>
|
|
1913
|
+
<span class="cline-any cline-yes">19x</span>
|
|
1914
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1915
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1916
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1917
|
+
<span class="cline-any cline-yes">19x</span>
|
|
1918
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1919
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1920
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1921
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1922
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1923
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1924
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1925
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1926
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1927
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1928
|
+
<span class="cline-any cline-no"> </span>
|
|
1929
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1930
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1931
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1932
|
+
<span class="cline-any cline-yes">19x</span>
|
|
1933
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1934
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1935
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1936
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1937
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1938
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1939
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1940
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1941
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1942
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1943
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1944
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1945
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1946
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1947
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1948
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1949
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1950
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1951
|
+
<span class="cline-any cline-yes">51x</span>
|
|
1952
|
+
<span class="cline-any cline-yes">16x</span>
|
|
1953
|
+
<span class="cline-any cline-yes">16x</span>
|
|
1954
|
+
<span class="cline-any cline-yes">16x</span>
|
|
1955
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1956
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const kanbn = require('../main');
|
|
1957
|
+
const utility = require('../utility');
|
|
1958
|
+
const inquirer = require('inquirer');
|
|
1959
|
+
const fuzzy = require('fuzzy');
|
|
1960
|
+
const chrono = require('chrono-node');
|
|
1961
|
+
const getGitUsername = require('git-user-name');
|
|
1962
|
+
|
|
1963
|
+
inquirer.registerPrompt('datepicker', require('inquirer-datepicker'));
|
|
1964
|
+
inquirer.registerPrompt('recursive', require('inquirer-recursive'));
|
|
1965
|
+
inquirer.registerPrompt('autocomplete', require('inquirer-autocomplete-prompt'));
|
|
1966
|
+
|
|
1967
|
+
/**
|
|
1968
|
+
* Update a task interactively
|
|
1969
|
+
* @param {object} taskData
|
|
1970
|
+
* @param {string[]} taskIds
|
|
1971
|
+
* @param {string} columnName
|
|
1972
|
+
* @param {string[]} columnNames
|
|
1973
|
+
* @return {Promise<any>}
|
|
1974
|
+
*/
|
|
1975
|
+
async function interactive(taskData, taskIds, columnName, columnNames) {
|
|
1976
|
+
const dueDateExists = (
|
|
1977
|
+
'metadata' in taskData &&
|
|
1978
|
+
'due' in taskData.metadata &&
|
|
1979
|
+
taskData.metadata.due != null
|
|
1980
|
+
);
|
|
1981
|
+
const plannedStartDateExists = (
|
|
1982
|
+
'metadata' in taskData &&
|
|
1983
|
+
'plannedStart' in taskData.metadata <span class="branch-0 cbranch-no" title="branch not covered" >&&</span>
|
|
1984
|
+
<span class="cstat-no" title="statement not covered" > taskData.metadata.plannedStart != null</span>
|
|
1985
|
+
);
|
|
1986
|
+
const plannedFinishDateExists = (
|
|
1987
|
+
'metadata' in taskData &&
|
|
1988
|
+
'plannedFinish' in taskData.metadata <span class="branch-0 cbranch-no" title="branch not covered" >&&</span>
|
|
1989
|
+
<span class="cstat-no" title="statement not covered" > taskData.metadata.plannedFinish != null</span>
|
|
1990
|
+
);
|
|
1991
|
+
const assignedExists = (
|
|
1992
|
+
'metadata' in taskData &&
|
|
1993
|
+
'assigned' in taskData.metadata &&
|
|
1994
|
+
taskData.metadata.assigned != null
|
|
1995
|
+
);
|
|
1996
|
+
return await inquirer.prompt([
|
|
1997
|
+
{
|
|
1998
|
+
type: 'input',
|
|
1999
|
+
name: 'name',
|
|
2000
|
+
message: 'Task name:',
|
|
2001
|
+
default: taskData.name <span class="branch-0 cbranch-no" title="branch not covered" >|| '',</span>
|
|
2002
|
+
validate: async value => {
|
|
2003
|
+
if (!value) {
|
|
2004
|
+
return 'Task name cannot be empty';
|
|
2005
|
+
}
|
|
2006
|
+
return true;
|
|
2007
|
+
}
|
|
2008
|
+
},
|
|
2009
|
+
{
|
|
2010
|
+
type: 'confirm',
|
|
2011
|
+
name: 'editDescription',
|
|
2012
|
+
message: 'Edit description?',
|
|
2013
|
+
default: false
|
|
2014
|
+
},
|
|
2015
|
+
{
|
|
2016
|
+
type: 'editor',
|
|
2017
|
+
name: 'description',
|
|
2018
|
+
message: 'Task description:',
|
|
2019
|
+
default: taskData.description,
|
|
2020
|
+
when: answers => answers.editDescription
|
|
2021
|
+
},
|
|
2022
|
+
{
|
|
2023
|
+
type: 'list',
|
|
2024
|
+
name: 'column',
|
|
2025
|
+
message: 'Column:',
|
|
2026
|
+
default: columnName,
|
|
2027
|
+
choices: columnNames
|
|
2028
|
+
},
|
|
2029
|
+
{
|
|
2030
|
+
type: 'expand',
|
|
2031
|
+
name: 'editDue',
|
|
2032
|
+
message: 'Edit or remove due date?',
|
|
2033
|
+
default: 'none',
|
|
2034
|
+
when: answers => dueDateExists,
|
|
2035
|
+
choices: [
|
|
2036
|
+
{
|
|
2037
|
+
key: 'e',
|
|
2038
|
+
name: 'Edit',
|
|
2039
|
+
value: 'edit'
|
|
2040
|
+
},
|
|
2041
|
+
{
|
|
2042
|
+
key: 'r',
|
|
2043
|
+
name: 'Remove',
|
|
2044
|
+
value: 'remove'
|
|
2045
|
+
},
|
|
2046
|
+
new inquirer.Separator(),
|
|
2047
|
+
{
|
|
2048
|
+
key: 'n',
|
|
2049
|
+
name: 'Do nothing',
|
|
2050
|
+
value: 'none'
|
|
2051
|
+
}
|
|
2052
|
+
]
|
|
2053
|
+
},
|
|
2054
|
+
{
|
|
2055
|
+
type: 'confirm',
|
|
2056
|
+
name: 'setDue',
|
|
2057
|
+
message: 'Set a due date?',
|
|
2058
|
+
default: false,
|
|
2059
|
+
when: answers => !dueDateExists
|
|
2060
|
+
},
|
|
2061
|
+
{
|
|
2062
|
+
type: 'datepicker',
|
|
2063
|
+
name: 'due',
|
|
2064
|
+
message: 'Due date:',
|
|
2065
|
+
default: dueDateExists ? taskData.metadata.due : new Date(),
|
|
2066
|
+
format: ['Y', '/', 'MM', '/', 'DD'],
|
|
2067
|
+
when: answers => answers.setDue || answers.editDue === 'edit'
|
|
2068
|
+
},
|
|
2069
|
+
{
|
|
2070
|
+
type: 'expand',
|
|
2071
|
+
name: 'editPlannedStart',
|
|
2072
|
+
message: 'Edit or remove planned start date?',
|
|
2073
|
+
default: 'none',
|
|
2074
|
+
when: answers => plannedStartDateExists,
|
|
2075
|
+
choices: [
|
|
2076
|
+
{
|
|
2077
|
+
key: 'e',
|
|
2078
|
+
name: 'Edit',
|
|
2079
|
+
value: 'edit'
|
|
2080
|
+
},
|
|
2081
|
+
{
|
|
2082
|
+
key: 'r',
|
|
2083
|
+
name: 'Remove',
|
|
2084
|
+
value: 'remove'
|
|
2085
|
+
},
|
|
2086
|
+
new inquirer.Separator(),
|
|
2087
|
+
{
|
|
2088
|
+
key: 'n',
|
|
2089
|
+
name: 'Do nothing',
|
|
2090
|
+
value: 'none'
|
|
2091
|
+
}
|
|
2092
|
+
]
|
|
2093
|
+
},
|
|
2094
|
+
{
|
|
2095
|
+
type: 'confirm',
|
|
2096
|
+
name: 'setPlannedStart',
|
|
2097
|
+
message: 'Set a planned start date?',
|
|
2098
|
+
default: false,
|
|
2099
|
+
when: answers => !plannedStartDateExists
|
|
2100
|
+
},
|
|
2101
|
+
{
|
|
2102
|
+
type: 'datepicker',
|
|
2103
|
+
name: 'plannedStart',
|
|
2104
|
+
message: 'Planned start date:',
|
|
2105
|
+
default: plannedStartDateExists <span class="branch-0 cbranch-no" title="branch not covered" >? taskData.metadata.plannedStart </span>: new Date(),
|
|
2106
|
+
format: ['Y', '/', 'MM', '/', 'DD'],
|
|
2107
|
+
when: answers => answers.setPlannedStart || answers.editPlannedStart === 'edit'
|
|
2108
|
+
},
|
|
2109
|
+
{
|
|
2110
|
+
type: 'expand',
|
|
2111
|
+
name: 'editPlannedFinish',
|
|
2112
|
+
message: 'Edit or remove planned finish date?',
|
|
2113
|
+
default: 'none',
|
|
2114
|
+
when: answers => plannedFinishDateExists,
|
|
2115
|
+
choices: [
|
|
2116
|
+
{
|
|
2117
|
+
key: 'e',
|
|
2118
|
+
name: 'Edit',
|
|
2119
|
+
value: 'edit'
|
|
2120
|
+
},
|
|
2121
|
+
{
|
|
2122
|
+
key: 'r',
|
|
2123
|
+
name: 'Remove',
|
|
2124
|
+
value: 'remove'
|
|
2125
|
+
},
|
|
2126
|
+
new inquirer.Separator(),
|
|
2127
|
+
{
|
|
2128
|
+
key: 'n',
|
|
2129
|
+
name: 'Do nothing',
|
|
2130
|
+
value: 'none'
|
|
2131
|
+
}
|
|
2132
|
+
]
|
|
2133
|
+
},
|
|
2134
|
+
{
|
|
2135
|
+
type: 'confirm',
|
|
2136
|
+
name: 'setPlannedFinish',
|
|
2137
|
+
message: 'Set a planned finish date?',
|
|
2138
|
+
default: false,
|
|
2139
|
+
when: answers => !plannedFinishDateExists
|
|
2140
|
+
},
|
|
2141
|
+
{
|
|
2142
|
+
type: 'datepicker',
|
|
2143
|
+
name: 'plannedFinish',
|
|
2144
|
+
message: 'Planned finish date:',
|
|
2145
|
+
default: plannedFinishDateExists <span class="branch-0 cbranch-no" title="branch not covered" >? taskData.metadata.plannedFinish </span>: new Date(),
|
|
2146
|
+
format: ['Y', '/', 'MM', '/', 'DD'],
|
|
2147
|
+
when: answers => answers.setPlannedFinish || answers.editPlannedFinish === 'edit'
|
|
2148
|
+
},
|
|
2149
|
+
{
|
|
2150
|
+
type: 'expand',
|
|
2151
|
+
name: 'editAssigned',
|
|
2152
|
+
message: 'Edit or remove assigned user?',
|
|
2153
|
+
default: 'none',
|
|
2154
|
+
when: answers => assignedExists,
|
|
2155
|
+
choices: [
|
|
2156
|
+
{
|
|
2157
|
+
key: 'e',
|
|
2158
|
+
name: 'Edit',
|
|
2159
|
+
value: 'edit'
|
|
2160
|
+
},
|
|
2161
|
+
{
|
|
2162
|
+
key: 'r',
|
|
2163
|
+
name: 'Remove',
|
|
2164
|
+
value: 'remove'
|
|
2165
|
+
},
|
|
2166
|
+
new inquirer.Separator(),
|
|
2167
|
+
{
|
|
2168
|
+
key: 'n',
|
|
2169
|
+
name: 'Do nothing',
|
|
2170
|
+
value: 'none'
|
|
2171
|
+
}
|
|
2172
|
+
]
|
|
2173
|
+
},
|
|
2174
|
+
{
|
|
2175
|
+
type: 'confirm',
|
|
2176
|
+
name: 'setAssigned',
|
|
2177
|
+
message: 'Assign this task?',
|
|
2178
|
+
default: false,
|
|
2179
|
+
when: answers => !assignedExists
|
|
2180
|
+
},
|
|
2181
|
+
{
|
|
2182
|
+
type: 'input',
|
|
2183
|
+
name: 'assigned',
|
|
2184
|
+
message: 'Assigned to:',
|
|
2185
|
+
default: assignedExists ? taskData.metadata.assigned : getGitUsername(),
|
|
2186
|
+
when: answers => answers.setAssigned || answers.editAssigned === 'edit'
|
|
2187
|
+
},
|
|
2188
|
+
{
|
|
2189
|
+
type: 'recursive',
|
|
2190
|
+
name: 'addSubTasks',
|
|
2191
|
+
initialMessage: 'Add a sub-task?',
|
|
2192
|
+
message: 'Add another sub-task?',
|
|
2193
|
+
default: false,
|
|
2194
|
+
prompts: [
|
|
2195
|
+
{
|
|
2196
|
+
type: 'input',
|
|
2197
|
+
name: 'text',
|
|
2198
|
+
message: 'Sub-task text:',
|
|
2199
|
+
validate: value => {
|
|
2200
|
+
if (!value) {
|
|
2201
|
+
return 'Sub-task text cannot be empty';
|
|
2202
|
+
}
|
|
2203
|
+
return true;
|
|
2204
|
+
}
|
|
2205
|
+
},
|
|
2206
|
+
{
|
|
2207
|
+
type: 'confirm',
|
|
2208
|
+
name: 'completed',
|
|
2209
|
+
message: 'Sub-task completed?',
|
|
2210
|
+
default: false
|
|
2211
|
+
}
|
|
2212
|
+
]
|
|
2213
|
+
},
|
|
2214
|
+
{
|
|
2215
|
+
type: 'recursive',
|
|
2216
|
+
name: 'editSubTasks',
|
|
2217
|
+
initialMessage: 'Update or remove a sub-task?',
|
|
2218
|
+
message: 'Update or remove another sub-task?',
|
|
2219
|
+
default: false,
|
|
2220
|
+
when: answers => taskData.subTasks.length > 0,
|
|
2221
|
+
prompts: [
|
|
2222
|
+
{
|
|
2223
|
+
type: 'list',
|
|
2224
|
+
name: 'selectSubTask',
|
|
2225
|
+
message: 'Which sub-task do you want to update or remove?',
|
|
2226
|
+
choices: taskData.subTasks.map(subTask => subTask.text)
|
|
2227
|
+
},
|
|
2228
|
+
{
|
|
2229
|
+
type: 'expand',
|
|
2230
|
+
name: 'editSubTask',
|
|
2231
|
+
message: 'Edit completion status or remove sub-task?',
|
|
2232
|
+
default: 'none',
|
|
2233
|
+
choices: [
|
|
2234
|
+
{
|
|
2235
|
+
key: 'e',
|
|
2236
|
+
name: 'Edit completion status',
|
|
2237
|
+
value: 'edit'
|
|
2238
|
+
},
|
|
2239
|
+
{
|
|
2240
|
+
key: 'r',
|
|
2241
|
+
name: 'Remove',
|
|
2242
|
+
value: 'remove'
|
|
2243
|
+
},
|
|
2244
|
+
new inquirer.Separator(),
|
|
2245
|
+
{
|
|
2246
|
+
key: 'n',
|
|
2247
|
+
name: 'Do nothing',
|
|
2248
|
+
value: 'none'
|
|
2249
|
+
}
|
|
2250
|
+
]
|
|
2251
|
+
},
|
|
2252
|
+
{
|
|
2253
|
+
type: 'confirm',
|
|
2254
|
+
name: 'completed',
|
|
2255
|
+
message: 'Sub-task completed?',
|
|
2256
|
+
default: <span class="fstat-no" title="function not covered" >answers => taskData.subTasks.find(subTask => subTask.text === answers.selectSubTask).completed,</span>
|
|
2257
|
+
when: answers => answers.editSubTask === 'edit'
|
|
2258
|
+
}
|
|
2259
|
+
]
|
|
2260
|
+
},
|
|
2261
|
+
{
|
|
2262
|
+
type: 'recursive',
|
|
2263
|
+
name: 'addTags',
|
|
2264
|
+
initialMessage: 'Add a tag?',
|
|
2265
|
+
message: 'Add another tag?',
|
|
2266
|
+
default: false,
|
|
2267
|
+
prompts: [
|
|
2268
|
+
{
|
|
2269
|
+
type: 'input',
|
|
2270
|
+
name: 'name',
|
|
2271
|
+
message: 'Tag name:',
|
|
2272
|
+
validate: value => {
|
|
2273
|
+
if (!value) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2274
|
+
<span class="cstat-no" title="statement not covered" > return 'Tag name cannot be empty';</span>
|
|
2275
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2276
|
+
return true;
|
|
2277
|
+
}
|
|
2278
|
+
}
|
|
2279
|
+
]
|
|
2280
|
+
},
|
|
2281
|
+
{
|
|
2282
|
+
type: 'recursive',
|
|
2283
|
+
name: 'removeTags',
|
|
2284
|
+
initialMessage: 'Remove a tag?',
|
|
2285
|
+
message: 'Remove another tag?',
|
|
2286
|
+
default: false,
|
|
2287
|
+
when: answers => (
|
|
2288
|
+
'metadata' in taskData &&
|
|
2289
|
+
'tags' in taskData.metadata &&
|
|
2290
|
+
taskData.metadata.tags.length > 0
|
|
2291
|
+
),
|
|
2292
|
+
prompts: [
|
|
2293
|
+
{
|
|
2294
|
+
type: 'list',
|
|
2295
|
+
name: 'selectTag',
|
|
2296
|
+
message: 'Which tag do you want to remove?',
|
|
2297
|
+
choices: taskData.metadata.tags
|
|
2298
|
+
}
|
|
2299
|
+
]
|
|
2300
|
+
},
|
|
2301
|
+
{
|
|
2302
|
+
type: 'recursive',
|
|
2303
|
+
name: 'addRelations',
|
|
2304
|
+
initialMessage: 'Add a relation?',
|
|
2305
|
+
message: 'Add another relation?',
|
|
2306
|
+
default: false,
|
|
2307
|
+
when: answers => taskIds.length > 0,
|
|
2308
|
+
prompts: [
|
|
2309
|
+
{
|
|
2310
|
+
type: 'autocomplete',
|
|
2311
|
+
name: 'task',
|
|
2312
|
+
message: 'Related task id:',
|
|
2313
|
+
source: <span class="fstat-no" title="function not covered" >(answers, input) => {</span>
|
|
2314
|
+
<span class="cstat-no" title="statement not covered" > input = input || '';</span>
|
|
2315
|
+
<span class="cstat-no" title="statement not covered" > const result = fuzzy.filter(input, taskIds);</span>
|
|
2316
|
+
<span class="cstat-no" title="statement not covered" > return new Promise(resolve => {</span>
|
|
2317
|
+
<span class="cstat-no" title="statement not covered" > resolve(result.map(result => result.string));</span>
|
|
2318
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
2319
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2320
|
+
},
|
|
2321
|
+
{
|
|
2322
|
+
type: 'input',
|
|
2323
|
+
name: 'type',
|
|
2324
|
+
message: 'Relation type:'
|
|
2325
|
+
}
|
|
2326
|
+
]
|
|
2327
|
+
},
|
|
2328
|
+
{
|
|
2329
|
+
type: 'recursive',
|
|
2330
|
+
name: 'editRelations',
|
|
2331
|
+
initialMessage: 'Update or remove a relation?',
|
|
2332
|
+
message: 'Update or remove another relation?',
|
|
2333
|
+
default: false,
|
|
2334
|
+
when: answers => taskData.relations.length > 0,
|
|
2335
|
+
prompts: [
|
|
2336
|
+
{
|
|
2337
|
+
type: 'list',
|
|
2338
|
+
name: 'selectRelation',
|
|
2339
|
+
message: 'Which relation do you want to update or remove?',
|
|
2340
|
+
choices: taskData.relations.map(relation => relation.task)
|
|
2341
|
+
},
|
|
2342
|
+
{
|
|
2343
|
+
type: 'expand',
|
|
2344
|
+
name: 'editRelation',
|
|
2345
|
+
message: 'Edit relation type or remove relation?',
|
|
2346
|
+
default: 'none',
|
|
2347
|
+
choices: [
|
|
2348
|
+
{
|
|
2349
|
+
key: 'e',
|
|
2350
|
+
name: 'Edit relation type',
|
|
2351
|
+
value: 'edit'
|
|
2352
|
+
},
|
|
2353
|
+
{
|
|
2354
|
+
key: 'r',
|
|
2355
|
+
name: 'Remove',
|
|
2356
|
+
value: 'remove'
|
|
2357
|
+
},
|
|
2358
|
+
new inquirer.Separator(),
|
|
2359
|
+
{
|
|
2360
|
+
key: 'n',
|
|
2361
|
+
name: 'Do nothing',
|
|
2362
|
+
value: 'none'
|
|
2363
|
+
}
|
|
2364
|
+
]
|
|
2365
|
+
},
|
|
2366
|
+
{
|
|
2367
|
+
type: 'input',
|
|
2368
|
+
name: 'type',
|
|
2369
|
+
message: 'Relation type:',
|
|
2370
|
+
default: answers => taskData.relations.find(relation => relation.task === answers.selectRelation).type,
|
|
2371
|
+
when: answers => answers.editRelation === 'edit'
|
|
2372
|
+
}
|
|
2373
|
+
]
|
|
2374
|
+
}
|
|
2375
|
+
]);
|
|
2376
|
+
}
|
|
2377
|
+
|
|
2378
|
+
/**
|
|
2379
|
+
* Metadata fields that can be cleared with --unset, in addition to any custom fields defined in
|
|
2380
|
+
* the index options
|
|
2381
|
+
*/
|
|
2382
|
+
const UNSETTABLE_FIELDS = [
|
|
2383
|
+
'started',
|
|
2384
|
+
'completed',
|
|
2385
|
+
'due',
|
|
2386
|
+
'plannedStart',
|
|
2387
|
+
'plannedFinish',
|
|
2388
|
+
'assigned',
|
|
2389
|
+
'progress',
|
|
2390
|
+
'tags'
|
|
2391
|
+
];
|
|
2392
|
+
|
|
2393
|
+
/**
|
|
2394
|
+
* Update a task
|
|
2395
|
+
* @param {string} taskId
|
|
2396
|
+
* @param {object} taskData
|
|
2397
|
+
* @param {?string} columnName
|
|
2398
|
+
* @param {string[]} [unsetFields=[]]
|
|
2399
|
+
*/
|
|
2400
|
+
function updateTask(taskId, taskData, columnName, unsetFields = []) {
|
|
2401
|
+
kanbn
|
|
2402
|
+
.updateTask(taskId, taskData, columnName, unsetFields)
|
|
2403
|
+
.then(taskId => {
|
|
2404
|
+
console.log(`Updated task "${taskId}"`);
|
|
2405
|
+
})
|
|
2406
|
+
.catch(error => {
|
|
2407
|
+
<span class="cstat-no" title="statement not covered" > utility.error(error);</span>
|
|
2408
|
+
});
|
|
2409
|
+
}
|
|
2410
|
+
|
|
2411
|
+
module.exports = async args => {
|
|
2412
|
+
|
|
2413
|
+
// Make sure kanbn has been initialised
|
|
2414
|
+
if (!await kanbn.initialised()) {
|
|
2415
|
+
utility.error('Kanbn has not been initialised in this folder\nTry running: {b}kanbn init{b}');
|
|
2416
|
+
return;
|
|
2417
|
+
}
|
|
2418
|
+
|
|
2419
|
+
// Get the task that we're editing
|
|
2420
|
+
const taskId = args._[1];
|
|
2421
|
+
if (!taskId) {
|
|
2422
|
+
utility.error('No task id specified\nTry running {b}kanbn edit "task id"{b}');
|
|
2423
|
+
return;
|
|
2424
|
+
}
|
|
2425
|
+
|
|
2426
|
+
// Make sure the task exists
|
|
2427
|
+
try {
|
|
2428
|
+
await kanbn.taskExists(taskId);
|
|
2429
|
+
} catch (error) {
|
|
2430
|
+
utility.error(error);
|
|
2431
|
+
return;
|
|
2432
|
+
}
|
|
2433
|
+
|
|
2434
|
+
// Get the index and make sure it has some columns
|
|
2435
|
+
let index;
|
|
2436
|
+
try {
|
|
2437
|
+
index = await kanbn.getIndex();
|
|
2438
|
+
} <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
|
|
2439
|
+
<span class="cstat-no" title="statement not covered" > utility.error(error);</span>
|
|
2440
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
2441
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2442
|
+
const columnNames = Object.keys(index.columns);
|
|
2443
|
+
if (!columnNames.length) {
|
|
2444
|
+
utility.error('No columns defined in the index\nTry running {b}kanbn init -c "column name"{b}');
|
|
2445
|
+
return;
|
|
2446
|
+
}
|
|
2447
|
+
|
|
2448
|
+
// Get the current task data
|
|
2449
|
+
let taskData;
|
|
2450
|
+
try {
|
|
2451
|
+
taskData = await kanbn.getTask(taskId);
|
|
2452
|
+
} <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
|
|
2453
|
+
<span class="cstat-no" title="statement not covered" > utility.error(error);</span>
|
|
2454
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
2455
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2456
|
+
|
|
2457
|
+
// Get column name if specified
|
|
2458
|
+
let currentColumnName = await kanbn.findTaskColumn(taskId);
|
|
2459
|
+
let columnName = currentColumnName;
|
|
2460
|
+
if (args.column) {
|
|
2461
|
+
columnName = utility.strArg(args.column);
|
|
2462
|
+
if (columnNames.indexOf(columnName) === -1) {
|
|
2463
|
+
utility.error(`Column "${columnName}" doesn't exist`);
|
|
2464
|
+
return;
|
|
2465
|
+
}
|
|
2466
|
+
}
|
|
2467
|
+
|
|
2468
|
+
// Get a list of existing task ids
|
|
2469
|
+
const taskIds = [...await kanbn.findTrackedTasks()];
|
|
2470
|
+
|
|
2471
|
+
// Get task settings from arguments
|
|
2472
|
+
// Name
|
|
2473
|
+
if (args.name) {
|
|
2474
|
+
taskData.name = utility.strArg(args.name);
|
|
2475
|
+
}
|
|
2476
|
+
|
|
2477
|
+
// Description
|
|
2478
|
+
if (args.description) {
|
|
2479
|
+
taskData.description = utility.strArg(args.description);
|
|
2480
|
+
}
|
|
2481
|
+
|
|
2482
|
+
// Due date
|
|
2483
|
+
if (args.due) {
|
|
2484
|
+
if (!('metadata' in taskData)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2485
|
+
<span class="cstat-no" title="statement not covered" > taskData.metadata = {};</span>
|
|
2486
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2487
|
+
taskData.metadata.due = chrono.parseDate(utility.strArg(args.due));
|
|
2488
|
+
if (taskData.metadata.due === null) {
|
|
2489
|
+
utility.error('Unable to parse due date');
|
|
2490
|
+
return;
|
|
2491
|
+
}
|
|
2492
|
+
}
|
|
2493
|
+
|
|
2494
|
+
// Planned start date
|
|
2495
|
+
if (args.plannedStart) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2496
|
+
<span class="cstat-no" title="statement not covered" > if (!('metadata' in taskData)) {</span>
|
|
2497
|
+
<span class="cstat-no" title="statement not covered" > taskData.metadata = {};</span>
|
|
2498
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2499
|
+
<span class="cstat-no" title="statement not covered" > taskData.metadata.plannedStart = chrono.parseDate(utility.strArg(args.plannedStart));</span>
|
|
2500
|
+
<span class="cstat-no" title="statement not covered" > if (taskData.metadata.plannedStart === null) {</span>
|
|
2501
|
+
<span class="cstat-no" title="statement not covered" > utility.error('Unable to parse plannedStart date');</span>
|
|
2502
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
2503
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2504
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2505
|
+
|
|
2506
|
+
// Planned finish date
|
|
2507
|
+
if (args.plannedFinish) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2508
|
+
<span class="cstat-no" title="statement not covered" > if (!('metadata' in taskData)) {</span>
|
|
2509
|
+
<span class="cstat-no" title="statement not covered" > taskData.metadata = {};</span>
|
|
2510
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2511
|
+
<span class="cstat-no" title="statement not covered" > taskData.metadata.plannedFinish = chrono.parseDate(utility.strArg(args.plannedFinish));</span>
|
|
2512
|
+
<span class="cstat-no" title="statement not covered" > if (taskData.metadata.plannedFinish === null) {</span>
|
|
2513
|
+
<span class="cstat-no" title="statement not covered" > utility.error('Unable to parse plannedFinish date');</span>
|
|
2514
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
2515
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2516
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2517
|
+
|
|
2518
|
+
// Progress
|
|
2519
|
+
if (args.progress) {
|
|
2520
|
+
if (!('metadata' in taskData)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2521
|
+
<span class="cstat-no" title="statement not covered" > taskData.metadata = {};</span>
|
|
2522
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2523
|
+
const progressValue = parseFloat(utility.strArg(args.progress));
|
|
2524
|
+
if (isNaN(progressValue)) {
|
|
2525
|
+
utility.error('Progress value is not a number');
|
|
2526
|
+
return;
|
|
2527
|
+
}
|
|
2528
|
+
taskData.metadata.progress = progressValue;
|
|
2529
|
+
}
|
|
2530
|
+
|
|
2531
|
+
// Assigned
|
|
2532
|
+
if (args.assigned) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2533
|
+
<span class="cstat-no" title="statement not covered" > if (!('metadata' in taskData)) {</span>
|
|
2534
|
+
<span class="cstat-no" title="statement not covered" > taskData.metadata = {};</span>
|
|
2535
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2536
|
+
<span class="cstat-no" title="statement not covered" > const gitUsername = getGitUsername();</span>
|
|
2537
|
+
<span class="cstat-no" title="statement not covered" > if (args.assigned === true) {</span>
|
|
2538
|
+
<span class="cstat-no" title="statement not covered" > if (gitUsername) {</span>
|
|
2539
|
+
<span class="cstat-no" title="statement not covered" > taskData.metadata.assigned = gitUsername;</span>
|
|
2540
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2541
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
2542
|
+
<span class="cstat-no" title="statement not covered" > taskData.metadata.assigned = utility.strArg(args.assigned);</span>
|
|
2543
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2544
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2545
|
+
|
|
2546
|
+
// Remove sub-tasks
|
|
2547
|
+
if (args['remove-sub-task']) {
|
|
2548
|
+
const removedSubTasks = utility.arrayArg(args['remove-sub-task']);
|
|
2549
|
+
|
|
2550
|
+
// Check that the sub-tasks being removed currently exist
|
|
2551
|
+
for (let removedSubTask of removedSubTasks) {
|
|
2552
|
+
if (taskData.subTasks.find(subTask => subTask.text === removedSubTask) === undefined) {
|
|
2553
|
+
utility.error(`Sub-task "${removedSubTask}" doesn't exist`);
|
|
2554
|
+
return;
|
|
2555
|
+
}
|
|
2556
|
+
}
|
|
2557
|
+
taskData.subTasks = taskData.subTasks.filter(subTask => removedSubTasks.indexOf(subTask.text) === -1);
|
|
2558
|
+
}
|
|
2559
|
+
|
|
2560
|
+
// Add or update sub-tasks
|
|
2561
|
+
if (args['sub-task']) {
|
|
2562
|
+
const newSubTaskInputs = utility.arrayArg(args['sub-task']);
|
|
2563
|
+
const newSubTasks = newSubTaskInputs.map(subTask => {
|
|
2564
|
+
const match = subTask.match(/^\[([x ])\] (.*)/);
|
|
2565
|
+
if (match !== null) {
|
|
2566
|
+
return {
|
|
2567
|
+
completed: match[1] === 'x',
|
|
2568
|
+
text: match[2]
|
|
2569
|
+
};
|
|
2570
|
+
}
|
|
2571
|
+
<span class="cstat-no" title="statement not covered" ><span class="branch-0 cbranch-no" title="branch not covered" > return {</span></span>
|
|
2572
|
+
<span class="cstat-no" title="statement not covered" > completed: false,</span>
|
|
2573
|
+
<span class="cstat-no" title="statement not covered" > text: subTask</span>
|
|
2574
|
+
<span class="cstat-no" title="statement not covered" > };</span>
|
|
2575
|
+
});
|
|
2576
|
+
|
|
2577
|
+
// Add or update
|
|
2578
|
+
for (let newSubTask of newSubTasks) {
|
|
2579
|
+
|
|
2580
|
+
// Check if a sub-task already exists in the task with matching text
|
|
2581
|
+
const foundSubTask = taskData.subTasks.find(subTask => subTask.text === newSubTask.text);
|
|
2582
|
+
if (foundSubTask === undefined) {
|
|
2583
|
+
|
|
2584
|
+
// The sub-task doesn't already exist
|
|
2585
|
+
taskData.subTasks.push(newSubTask);
|
|
2586
|
+
|
|
2587
|
+
// Otherwise, the sub-task already exists so update its completed status
|
|
2588
|
+
} else {
|
|
2589
|
+
foundSubTask.completed = newSubTask.completed;
|
|
2590
|
+
}
|
|
2591
|
+
}
|
|
2592
|
+
}
|
|
2593
|
+
|
|
2594
|
+
// Remove tags
|
|
2595
|
+
if (args['remove-tag']) {
|
|
2596
|
+
const removedTags = utility.arrayArg(args['remove-tag']);
|
|
2597
|
+
|
|
2598
|
+
// Check that the task has metadata
|
|
2599
|
+
if (!('metadata' in taskData) || !('tags' in taskData.metadata) || !Array.isArray(taskData.metadata.tags)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2600
|
+
<span class="cstat-no" title="statement not covered" > utility.error('Task has no tags to remove');</span>
|
|
2601
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
2602
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2603
|
+
|
|
2604
|
+
// Check that the tags being removed currently exist
|
|
2605
|
+
for (let removedTag of removedTags) {
|
|
2606
|
+
if (taskData.metadata.tags.indexOf(removedTag) === -1) {
|
|
2607
|
+
utility.error(`Tag "${removedTag}" doesn't exist`);
|
|
2608
|
+
return;
|
|
2609
|
+
}
|
|
2610
|
+
}
|
|
2611
|
+
taskData.metadata.tags = taskData.metadata.tags.filter(tag => removedTags.indexOf(tag) === -1);
|
|
2612
|
+
}
|
|
2613
|
+
|
|
2614
|
+
// Add tags and overwrite existing tags
|
|
2615
|
+
if (args.tag) {
|
|
2616
|
+
const newTags = utility.arrayArg(args.tag);
|
|
2617
|
+
taskData.metadata.tags = [...new Set([...taskData.metadata.tags <span class="branch-0 cbranch-no" title="branch not covered" >|| [],</span> ...newTags])];
|
|
2618
|
+
}
|
|
2619
|
+
|
|
2620
|
+
// Remove relations
|
|
2621
|
+
if (args['remove-relation']) {
|
|
2622
|
+
const removedRelations = utility.arrayArg(args['remove-relation']);
|
|
2623
|
+
|
|
2624
|
+
// Check that the relations being removed currently exist
|
|
2625
|
+
for (let removedRelation of removedRelations) {
|
|
2626
|
+
if (taskData.relations.find(relation => relation.task === removedRelation) === undefined) {
|
|
2627
|
+
utility.error(`Relation "${removedRelation}" doesn't exist`);
|
|
2628
|
+
return;
|
|
2629
|
+
}
|
|
2630
|
+
}
|
|
2631
|
+
taskData.relations = taskData.relations.filter(relation => removedRelations.indexOf(relation.task) === -1);
|
|
2632
|
+
}
|
|
2633
|
+
|
|
2634
|
+
// Add or update relations
|
|
2635
|
+
if (args.relation) {
|
|
2636
|
+
const newRelationInputs = utility.arrayArg(args.relation);
|
|
2637
|
+
const newRelations = newRelationInputs.map(relation => {
|
|
2638
|
+
const parts = relation.split(' ');
|
|
2639
|
+
return parts.length === 1
|
|
2640
|
+
<span class="branch-0 cbranch-no" title="branch not covered" > ? {</span>
|
|
2641
|
+
<span class="cstat-no" title="statement not covered" > type: '',</span>
|
|
2642
|
+
<span class="cstat-no" title="statement not covered" > task: parts[0].trim()</span>
|
|
2643
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2644
|
+
: {
|
|
2645
|
+
type: parts[0].trim(),
|
|
2646
|
+
task: parts[1].trim()
|
|
2647
|
+
};
|
|
2648
|
+
});
|
|
2649
|
+
|
|
2650
|
+
// Add or update
|
|
2651
|
+
for (let newRelation of newRelations) {
|
|
2652
|
+
|
|
2653
|
+
// Check if a relation already exists in the task with matching task id
|
|
2654
|
+
const foundRelation = taskData.relations.find(relation => relation.task === newRelation.task);
|
|
2655
|
+
if (foundRelation === undefined) {
|
|
2656
|
+
|
|
2657
|
+
// The relation doesn't already exist
|
|
2658
|
+
taskData.relations.push(newRelation);
|
|
2659
|
+
|
|
2660
|
+
// Otherwise, the relation already exists so update its relation type
|
|
2661
|
+
}<span class="branch-0 cbranch-no" title="branch not covered" > else {</span>
|
|
2662
|
+
<span class="cstat-no" title="statement not covered" > foundRelation.type = newRelation.type;</span>
|
|
2663
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2664
|
+
}
|
|
2665
|
+
}
|
|
2666
|
+
|
|
2667
|
+
// Check custom field types
|
|
2668
|
+
if ('customFields' in index.options) {
|
|
2669
|
+
if (!('metadata' in taskData)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2670
|
+
<span class="cstat-no" title="statement not covered" > taskData.metadata = {};</span>
|
|
2671
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2672
|
+
for (let arg of Object.keys(args)) {
|
|
2673
|
+
|
|
2674
|
+
// Check if we're removing a custom field
|
|
2675
|
+
const removeCustomField = index.options.customFields.find(p => `remove-${p.name}` === arg);
|
|
2676
|
+
if (removeCustomField !== undefined) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2677
|
+
<span class="cstat-no" title="statement not covered" > if (removeCustomField.name in taskData.metadata) {</span>
|
|
2678
|
+
<span class="cstat-no" title="statement not covered" > delete taskData.metadata[removeCustomField.name];</span>
|
|
2679
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2680
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2681
|
+
|
|
2682
|
+
// Check if we're adding or modifying a custom field
|
|
2683
|
+
const customField = index.options.customFields.find(p => p.name === arg);
|
|
2684
|
+
if (customField !== undefined) {
|
|
2685
|
+
|
|
2686
|
+
// Check value type
|
|
2687
|
+
switch (customField.type) {
|
|
2688
|
+
<span class="branch-0 cbranch-no" title="branch not covered" > case 'boolean':</span>
|
|
2689
|
+
<span class="cstat-no" title="statement not covered" > if (typeof args[arg] === 'boolean') {</span>
|
|
2690
|
+
<span class="cstat-no" title="statement not covered" > taskData.metadata[arg] = args[arg];</span>
|
|
2691
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
2692
|
+
<span class="cstat-no" title="statement not covered" > utility.error(`Custom field "${arg}" value is not a boolean`);</span>
|
|
2693
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
2694
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2695
|
+
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
2696
|
+
case 'number':
|
|
2697
|
+
const numberValue = parseFloat(args[arg]);
|
|
2698
|
+
if (!isNaN(numberValue)) {
|
|
2699
|
+
taskData.metadata[arg] = numberValue;
|
|
2700
|
+
} else {
|
|
2701
|
+
utility.error(`Custom field "${arg}" value is not a number`);
|
|
2702
|
+
return;
|
|
2703
|
+
}
|
|
2704
|
+
break;
|
|
2705
|
+
<span class="branch-0 cbranch-no" title="branch not covered" > case 'string':</span>
|
|
2706
|
+
<span class="cstat-no" title="statement not covered" > if (typeof args[arg] === 'string') {</span>
|
|
2707
|
+
<span class="cstat-no" title="statement not covered" > taskData.metadata[arg] = args[arg];</span>
|
|
2708
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
2709
|
+
<span class="cstat-no" title="statement not covered" > utility.error(`Custom field "${fieldName}" value is not a string`);</span>
|
|
2710
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
2711
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2712
|
+
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
2713
|
+
<span class="branch-0 cbranch-no" title="branch not covered" > case 'date':</span>
|
|
2714
|
+
<span class="cstat-no" title="statement not covered" > const dateValue = chrono.parseDate(args[arg]);</span>
|
|
2715
|
+
<span class="cstat-no" title="statement not covered" > if (dateValue instanceof Date) {</span>
|
|
2716
|
+
<span class="cstat-no" title="statement not covered" > taskData.metadata[arg] = dateValue;</span>
|
|
2717
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
2718
|
+
<span class="cstat-no" title="statement not covered" > utility.error(`Unable to parse date for custom field "${arg}"`);</span>
|
|
2719
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
2720
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2721
|
+
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
2722
|
+
<span class="branch-0 cbranch-no" title="branch not covered" > default: break;</span>
|
|
2723
|
+
}
|
|
2724
|
+
}
|
|
2725
|
+
}
|
|
2726
|
+
}
|
|
2727
|
+
|
|
2728
|
+
// Unset metadata fields
|
|
2729
|
+
const unsetFields = [];
|
|
2730
|
+
if (args.unset) {
|
|
2731
|
+
const customFieldNames = 'customFields' in index.options
|
|
2732
|
+
? index.options.customFields.map(customField => customField.name)
|
|
2733
|
+
: [];
|
|
2734
|
+
const unsettableFields = [...UNSETTABLE_FIELDS, ...customFieldNames];
|
|
2735
|
+
|
|
2736
|
+
// Arguments that set the value of a metadata field, so that setting and unsetting the same
|
|
2737
|
+
// field in one command can be rejected instead of silently resolving one way or the other
|
|
2738
|
+
const settingArgs = {
|
|
2739
|
+
due: args.due,
|
|
2740
|
+
plannedStart: args.plannedStart,
|
|
2741
|
+
plannedFinish: args.plannedFinish,
|
|
2742
|
+
progress: args.progress,
|
|
2743
|
+
assigned: args.assigned,
|
|
2744
|
+
tags: args.tag,
|
|
2745
|
+
...Object.fromEntries(customFieldNames.map(name => [name, args[name]]))
|
|
2746
|
+
};
|
|
2747
|
+
|
|
2748
|
+
for (let field of utility.arrayArg(args.unset)) {
|
|
2749
|
+
if (unsettableFields.indexOf(field) === -1) {
|
|
2750
|
+
utility.error(
|
|
2751
|
+
`Cannot unset "${field}"\nAvailable fields: ${unsettableFields.join(', ')}`
|
|
2752
|
+
);
|
|
2753
|
+
return;
|
|
2754
|
+
}
|
|
2755
|
+
if (settingArgs[field] !== undefined) {
|
|
2756
|
+
utility.error(`Cannot set and unset "${field}" in the same command`);
|
|
2757
|
+
return;
|
|
2758
|
+
}
|
|
2759
|
+
if (unsetFields.indexOf(field) === -1) {
|
|
2760
|
+
unsetFields.push(field);
|
|
2761
|
+
}
|
|
2762
|
+
}
|
|
2763
|
+
}
|
|
2764
|
+
|
|
2765
|
+
// Update task interactively
|
|
2766
|
+
if (args.interactive) {
|
|
2767
|
+
interactive(taskData, taskIds, columnName, columnNames)
|
|
2768
|
+
.then(answers => {
|
|
2769
|
+
|
|
2770
|
+
// Name
|
|
2771
|
+
taskData.name = answers.name;
|
|
2772
|
+
|
|
2773
|
+
// Description
|
|
2774
|
+
if ('description' in answers) {
|
|
2775
|
+
taskData.description = answers.description;
|
|
2776
|
+
}
|
|
2777
|
+
|
|
2778
|
+
// Remove due date
|
|
2779
|
+
if ('editDue' in answers && answers.editDue === 'remove') {
|
|
2780
|
+
delete taskData.metadata.due;
|
|
2781
|
+
}
|
|
2782
|
+
|
|
2783
|
+
// Due date
|
|
2784
|
+
if ('due' in answers) {
|
|
2785
|
+
taskData.metadata.due = answers.due;
|
|
2786
|
+
}
|
|
2787
|
+
|
|
2788
|
+
// Remove planned start date
|
|
2789
|
+
if ('editPlannedStart' in answers <span class="branch-0 cbranch-no" title="branch not covered" >&& answers.editPlannedStart === 'remove')</span> <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2790
|
+
<span class="cstat-no" title="statement not covered" > delete taskData.metadata.plannedStart;</span>
|
|
2791
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2792
|
+
|
|
2793
|
+
// Planned start date
|
|
2794
|
+
if ('plannedStart' in answers) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2795
|
+
<span class="cstat-no" title="statement not covered" > taskData.metadata.plannedStart = answers.plannedStart;</span>
|
|
2796
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2797
|
+
|
|
2798
|
+
// Remove planned finish date
|
|
2799
|
+
if ('editPlannedFinish' in answers <span class="branch-0 cbranch-no" title="branch not covered" >&& answers.editPlannedFinish === 'remove')</span> <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2800
|
+
<span class="cstat-no" title="statement not covered" > delete taskData.metadata.plannedFinish;</span>
|
|
2801
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2802
|
+
|
|
2803
|
+
// Planned finish date
|
|
2804
|
+
if ('plannedFinish' in answers) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2805
|
+
<span class="cstat-no" title="statement not covered" > taskData.metadata.plannedFinish = answers.plannedFinish;</span>
|
|
2806
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2807
|
+
|
|
2808
|
+
// Remove assigned
|
|
2809
|
+
if ('editAssigned' in answers && answers.editAssigned === 'remove') {
|
|
2810
|
+
delete taskData.metadata.assigned;
|
|
2811
|
+
}
|
|
2812
|
+
|
|
2813
|
+
// Assigned
|
|
2814
|
+
if ('assigned' in answers) {
|
|
2815
|
+
taskData.metadata.assigned = answers.assigned;
|
|
2816
|
+
}
|
|
2817
|
+
|
|
2818
|
+
// Edit or remove sub-tasks
|
|
2819
|
+
if ('editSubTasks' in answers) {
|
|
2820
|
+
for (editSubTask of answers.editSubTasks) {
|
|
2821
|
+
const i = taskData.subTasks.findIndex(subTask => subTask.text === editSubTask.selectSubTask);
|
|
2822
|
+
if (i !== -1) {
|
|
2823
|
+
switch (editSubTask.editSubTask) {
|
|
2824
|
+
case 'remove':
|
|
2825
|
+
taskData.subTasks.splice(i, 1);
|
|
2826
|
+
break;
|
|
2827
|
+
case 'edit':
|
|
2828
|
+
taskData.subTasks[i].completed = editSubTask.completed;
|
|
2829
|
+
break;
|
|
2830
|
+
default:
|
|
2831
|
+
break;
|
|
2832
|
+
}
|
|
2833
|
+
}
|
|
2834
|
+
}
|
|
2835
|
+
}
|
|
2836
|
+
|
|
2837
|
+
// Add sub-tasks
|
|
2838
|
+
if ('addSubTasks' in answers) {
|
|
2839
|
+
taskData.subTasks.push(...answers.addSubTasks.map(addSubTask => ({
|
|
2840
|
+
text: addSubTask.text,
|
|
2841
|
+
completed: addSubTask.completed
|
|
2842
|
+
})));
|
|
2843
|
+
}
|
|
2844
|
+
|
|
2845
|
+
// Remove tags
|
|
2846
|
+
if ('removeTags' in answers && 'metadata' in taskData && 'tags' in taskData.metadata) {
|
|
2847
|
+
for (removeTag of answers.removeTags) {
|
|
2848
|
+
const i = taskData.metadata.tags.indexOf(removeTag.selectTag);
|
|
2849
|
+
if (i !== -1) {
|
|
2850
|
+
taskData.metadata.tags.splice(i, 1);
|
|
2851
|
+
}
|
|
2852
|
+
}
|
|
2853
|
+
}
|
|
2854
|
+
|
|
2855
|
+
// Add tags
|
|
2856
|
+
if ('addTags' in answers && 'metadata' in taskData && 'tags' in taskData.metadata) {
|
|
2857
|
+
taskData.metadata.tags.push(...answers.addTags.map(tag => tag.name));
|
|
2858
|
+
}
|
|
2859
|
+
|
|
2860
|
+
// Edit or remove relations
|
|
2861
|
+
if ('editRelations' in answers) {
|
|
2862
|
+
for (editRelation of answers.editRelations) {
|
|
2863
|
+
const i = taskData.relations.findIndex(relation => relation.task === editRelation.selectRelation);
|
|
2864
|
+
if (i !== -1) {
|
|
2865
|
+
switch (editRelation.editRelation) {
|
|
2866
|
+
case 'remove':
|
|
2867
|
+
taskData.relations.splice(i, 1);
|
|
2868
|
+
break;
|
|
2869
|
+
case 'edit':
|
|
2870
|
+
taskData.relations[i].type = editRelation.type;
|
|
2871
|
+
break;
|
|
2872
|
+
<span class="branch-0 cbranch-no" title="branch not covered" > default:</span>
|
|
2873
|
+
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
2874
|
+
}
|
|
2875
|
+
}
|
|
2876
|
+
}
|
|
2877
|
+
}
|
|
2878
|
+
|
|
2879
|
+
// Add relations
|
|
2880
|
+
if ('addRelations' in answers) {
|
|
2881
|
+
taskData.relations.push(...answers.addRelations.map(addRelation => ({
|
|
2882
|
+
task: addRelation.task,
|
|
2883
|
+
type: addRelation.type
|
|
2884
|
+
})));
|
|
2885
|
+
}
|
|
2886
|
+
|
|
2887
|
+
// Update task
|
|
2888
|
+
columnName = answers.column !== currentColumnName ? answers.column : null;
|
|
2889
|
+
updateTask(taskId, taskData, columnName, unsetFields);
|
|
2890
|
+
})
|
|
2891
|
+
.catch(error => {
|
|
2892
|
+
utility.error(error);
|
|
2893
|
+
});
|
|
2894
|
+
|
|
2895
|
+
// Otherwise edit task non-interactively
|
|
2896
|
+
} else {
|
|
2897
|
+
columnName = columnName !== currentColumnName ? columnName : null;
|
|
2898
|
+
updateTask(taskId, taskData, columnName, unsetFields);
|
|
2899
|
+
}
|
|
2900
|
+
};
|
|
2901
|
+
</pre></td></tr></table></pre>
|
|
2902
|
+
|
|
2903
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
2904
|
+
</div><!-- /wrapper -->
|
|
2905
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
2906
|
+
Code coverage generated by
|
|
2907
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
2908
|
+
at 2026-08-26T20:46:31.702Z
|
|
2909
|
+
</div>
|
|
2910
|
+
<script src="../../../prettify.js"></script>
|
|
2911
|
+
<script>
|
|
2912
|
+
window.onload = function () {
|
|
2913
|
+
prettyPrint();
|
|
2914
|
+
};
|
|
2915
|
+
</script>
|
|
2916
|
+
<script src="../../../sorter.js"></script>
|
|
2917
|
+
<script src="../../../block-navigation.js"></script>
|
|
2918
|
+
</body>
|
|
2919
|
+
</html>
|
|
2920
|
+
|