-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoutput.txt
360 lines (360 loc) · 225 KB
/
output.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
'''' /&&&&&&('' ' ''' ''****' '' (+*+++++***+/(' '' ''''' '' '' ''(*++++++*********&&&&&&*'''&&***&*'''''
'''' /&&&&&&( ' ''''' '(***+ ' /&&*++/++++++++(('' ' '' ''' '''+*+++++*********&&&&&&&( '*&***&&'''''
'''' /%&&&&&/ ' ''''' ''/&**/ ''' '+%&&*+++++/++++++(' ' '' ' '''(*+++++*********&&&&&&%/ '*&***&&('''''
'''' /%&&&&&/ '' ''' ' +&+*/ ''''(+&%&++++++///++*++( ''''''+*+++++********&&&&&&%*''+&&&&&%('''''
''''''/%&&&&&+ '' ''' ' ****/ '' '' (/+*&*++++++///+**/( ''''' ' (**++++********&&&&&&&&('+%&&&&%/''''''
'''' '(%&&&&&* ' '' ''' ' '&**&( '' '' ' '(+*+++/+++////+*/' ' '' '''+*++++********&&*&&&&%+'/%&&&&%+' ''''
''' '(%&&&&&* ' ''''' ''(&**&( '' ' '' ' '(/+++///++//++((/('''''' /**+++********&&&&&&&%*'/%&&%&%+ ''''
''' (%&&&&&* ' ''''' ''/&**&( '' '' '' ''''' ''(+++/+++//+//+*/( ' '''+*++++*******&&&&&&&&%((&&&%&%* ''''
'' '' '''' ' '(&&&&&&&' ''' '' '' ''&&**&( ' ''' ' '' ''''' '''( (**/+++++++///+*+( '''/+*++****&&**&*&&&&&%&+'&%&&&&&' '' ''
' ' ' '' '(&&&&&&&('' ' '' ' '/%&**&( ' ' '' ''' ' ''+*//++/+++++//+*/(''(*+*******&**&&&&&&&&%&(*&&&&&&( '' ''
' ' '/+( '''' '%&&&&&&(' '' '' ' '*%&**&' '' '' '' ''''' '' ' '' (+*++//++/+++//+*+/'(*+**+****&*&&&&&&&&&%%+&&&&&&&( '' '
' (*&/ ''''' '&&&&&&%/ '' '' ' '*&*+&&'' ' ' '' '' ''' '''' ' ' '' '++++++++++++++++*/(+***+****&&&&&&&&&&&&%%%&&&&&%/ '''
'' '/*** '' '' '&&&&&&&+ '''''' ' '(&**+&* ' ' ' ' '' '' ''''' ' ' '' '(/++/++/+++++++**//********&&&&&&&&&&&&&X%&&&&&%/ ' ' '
' '' '/***('' ''''*&&&&&&+ '''''' ' '(****&* ' ' '' ' ' '' (+(''''''''''''' ''/*+++++++/++++*+/*+*******&&&&&&&&&&&&%%&&&&&%+ ' ' '
' ' (***/ ''''' +&&&&&%* '''''' '' '(****%+ ' ' ' /(''' /+&/'' ''' '''' '( '+*+/++/+++++++**&********&&&&&&&&&&&&%%%%&&&%* ' '' '
' ' +*** ''''' /&&&&&%*'' ''''''' (****&/ ' ' ' ' '&+' ' (*&&( ' ' ' '(''(' ' (+++++++++++++**&&****&*&&&&&&&&&&&&&&&&&&&&%&'' ''
'''+**&(' ''' /&&&&&&&' ''''' ' ' (****%/ '' ' '' ' ' ' ''(&*'' (*&**' ' ''(/+*+' ''''' (+*++++++++++***&&&***&&&&&&&&&&&&&&&&&%&&&&&( ''' '
'''/&*&/ ''' +&&&&&&&' ' ''' ' ' (****%( '' ' ' '' '''''' /&%''+*++&+''((+***&+( '''' '( (+*/+++++++*****&&&***&&&&&&&&&&&&&&&&%&&&&&( ' '
'''(&*&+ '''' +&&&&&&%( ' ''' ''' (****&( ' ' ' ''' ' ' '*&*/+&*'/&++*&&&**&+( (' ''' '''(**++++++*******&&&&*&&&&&&&&&&&&&&&&%&&&&%(''' '
''''***&('''' +&&&&&&%( ' ''' ''''/****&' ' ' ' '' ' ' '' '*&&&*&&*&&&&&&*****('' '' '' (/&++*++********&&&&&&&&&&&&&&&&&&&&&%&&&&%/''''''
''''+*+&/ ''' *&&&&&&%/'''''' '' '+***&&' ' /' '' (+++++++&**&***&&&**&*&**&&***++/(((((((''+**++**+********&&&&&&&&&&&&&&&&&&&%%&&&&(' ''
'' /&*&+ ''' *&&&&&&%+'''''' '' '****&* ' ' (*/ '''''''' ''''(+&&&&&&&*&**&&&*&&&&&&**&*&**&&&%&&&&&+'('+************&&&&&&&&&&&&&&&&&&&&&%%&&&&(' '''
' (&*** ''' *&&&&&&%*'''''' '' (****&* ' ' '' /%+ '''' ' '(+*****&***&***&&&&&&&&*&&&&&&*&&&&&/'' ''+&*********&&&&&&&&&&&&&&&&&&&%&&%&&&&&(''''''
'****'''''*&&&&&%%&' '''' '''(&***%+ ' ' '' /%/ ' ''' '' ''((/+&******&*&*&&&&&&&&&&&&*&&*&&&&*/' '''' '+&********&&&&&&&&&&&&&&&&&&&%&&&&&&&&(' ''
'' +&*&/ ''&&&&&&%%%''''' ''''+****%+ ' '' /%+ '' ' ' '' '(/+**++++*******&&&&&&&&&&&&&&&&&&&&&&+''''''('''+&******&&&&&&&&&&&&&&&&&&&&%%%&&&&&%( ' '' '' ' ' ' ' ' ''
' /&**+ (''&&&&&&%%%('''''''''*****%/ ' ''' +%+ '' '''''' '' (/+***++++++*********&&&&&&&&&&&&&&&&&&&&&*/'''' '('/&*****&&&&&&&&&&&&&&&&&&&&%%%%%&&&&%/''''' '' ' ' '' ''' '
' (&***( ''&&&&&&&%%+ '''''''(&***&%/ ' ' ''+%* '' '' ' '' (+****+///++++**********&&&&&&&&&&&&&&&&&&&%&%%&/'''''''*&***&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%+' '''''' ' ' '' ''
' '&**&+ '&&&&&&&&%*''''''''/%***&%( ' ' ''*%* '' ' ' (++***+++////++++********&&&&&&&&&&&&%%&&&&&&&&&%%&%%&/( (''/&***&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%+''''' '' ''''' ''' ' ''''
' +&**&/('&&&&&&%&%%( ''''' +&***%%( ' ' ''*%* '' (++(+**++++++++++++++*********&&&%***++***&&&&&&%%%&&&%%%%+(' '(&***&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%X+ ( '' '' '' '( ' '' ''''
'' /&**%&+/&*&&&&%&&%+'''''''*&**&%&' ' '' ''&%*' '' '+&*' (**++++++///++++**********&&&&&&***+*+****&&&&%%%%%%%%&/( +&*&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%+ ' ''''' ' '' '+( ' (( '' ''
'''(&**%%&*&*&&&&%&%%&( ''''(&***&%&'' ' ''(&%*''' /*%+'' (+*+++++++++++*************&&&&&&*****+++*****&&%%%%%%%&/((&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%*'''' ''' ' ' '(%+ '*+( '' '' '''
''' ***&&&&%***&&%&%%%/''(' /&***&&* ' '' ' (&%*''' '+%&/ ''' (/++++++++***************&&&&&&%%%&************&&%%%%%X&(&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%&( '' ''' ' '(%*( (%%+ ' '/( '''
' '''' ' /&+*&&&%***&&%&%&%& '' '/&**&&%+''''' ' (%&& '''/&&%(' '' '(+*+++++++************&&&&&&&&%%%%%&**++********&&%&*((*%&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%&%/ '' ''' '' ''' +%%( /%%%+' *&( ' '' ''
'''''' ' (&**&&&%&**&&%%%%%&/ (''+***&&%+ '''' ' (%&&/' '*&&&''' ((//+++++++++************&&&&&&&&&%&%%%%&&**************+/*%&&&&&&%&&&&%%%%%%%%%%%%%%%%%%%%%%*''''''' '' '&%%+ +%%%%/ '/+*( (' '
' '''' '''***&%&%**&*&%%&%%%* ('(&***&%&/ '''' ' /%&&*' /%&%*' (/+++++++++++++************&&&&&%%%&&%%%%%%%%&************&&%%&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%( '''''' ' '' /%%%&(*%&%%%/ /&++(' '''''
' '''' '' /&+*&&&****&&%&%&%%(' +&***%%&/' ''''' /%&&&''*&&%+ (+*++++++++++*++**************&&&&%%%%%%%%%%%%%%&&***********&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%+ '''''' ' ' ''+%%%%/&%&%%%%((&**+( '' ''''''
'' '' '(&++*&&****&&%&%&%%* (&****%%&/''''''' +%&&*'(%&&&(''''''(/+++++++++++*********&&&&&&&&&%%%%%%%%%%%%%%%&&*****&*****&&&%%%&&&&%%%%%%%%%%%%%%%%%%%%%%%%&(''''''' ''''(&%%%%&%%%%%%&&(*&**+( '' ''''''''
' ' ''**+*&&****&&%&%%&%%(/&****%&&+''''''' *%&&*(+%&&&' ''''''+++/++++++******&&**&&&%&&&&%%%%%%%%%%%%%%%%%%&&*********&&&&&%%&&%%%%%%%%%%%%%%%%%%%%%%%%%%(''''''' ' ' ' +%%%%%%%%%%%%%&&*&***+(' ''''''''''
' '' /*++&*****&&&&%%&&%+*****&%&&*''''''''*%&%*/&&&%*''''' '(+++//++++++*****&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%&***&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%&%/''''''' ''' '((&%%%%&%%%%%&&%%&%&*&**+('' ''''''''
'''(&++******&&&&%%&&&%&****%%&&*''''''''&&&&*+%&&%/ ''' '/++++++++++++*****&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%XX%&**&&&&&&&&&%&&%%%%%%%%%%%%%%%%%%%%%%%%%%/'''''''' '''' /+(%%%%%%&%%%%%%%&%&&&****+( '''''''''
' '' '''' ''' '' '''' ' '+*++******&&%&%%&&%&****%%&&*'''''' (&&&&&&&&&%( '''(+*/+++++++++++*****&&&&%%&&%%&%%&%%%%%%%%%%%%%%%%%%%%%XX%&*&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%&''''''''' '''''''+&*&%%%%%%%%%%%%%%&&&&******/ ''' '' ' ' '
''''''' '' ' '' '' '''' '' ' '/**+++****&&&&%%&%%&****%%&&&'''''' (&&&&%&&&&*''(/+*+++/+++++++++*+****&&&&&%%%%%%%%&*%%%X%%%%%%%%%%%XX%X%%%XX%&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%&('''''''' ''''' '&%&%%%%%%%%%%%%%%%%&&&*******/ ''''' ''' ' '
'' '' '''' ''' ''' ' '' '' '+*+++*+**&&&&%%&%&*****%&&&&'''' ''(&&&&%&&&%+'(+**++++++++++/+*+******&&&&&%%&%%%%%%***&%%%X%&*&%XXXX%%%XX%XX%&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%/''''''''' ''''' (&%%%%%%%%%%%%%%%%%%&&&&*******+( '' ' ' '' '
'' ' '''''' '' ' '' ''' ''' '' (*+++*+**&&&&%%%%&****&&&&&&'' ' ''(&&&%%&&&%/'/*&**&&**+++*+++*+*******&%%&&%&%%%%%%*+++**&X%&+**&%%%%XXX%%%%%&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+ ''''''''' '''''''+%&%&%%%%%%%%%%%%%%&&&&&*&&******/ '' ('' '
'' ' '' '''(((/////////(''''' ''' '' ''''*+++++***&&&&%%%&****&&&&&%(''''''/&&&%&&&&&' (('//+**++++*++*******&***%%%&%***&%%%%+/+//+*%&+++*&%XX%%%%%X%%%&&%&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%X+ ''''''''' '''''''*%&&%%%%%%%%%%%%%%%&&&&**&&********( ' ' // '
'' ''' '(///////////((//++//''''' ' '''''''+*++++***&&&&&%&*****&&&&&%(''''' +&&%%&%&%* '' ' (**+++**+*******&&&&&%%%%%*++/+*&%*/+////*&//+++*%X%%%XX%%%X%%%%%&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%X+'''''''''' ''''''''(&&&&%%%%%%%%%%%%%%%&%%&&*&&&********/''' /+ ''
' ' ((//((///(((((((((((((((((/+/(' ' ''''''''/*++++***&&&&&&&*****&&&&&%/''''' +&&%&&&&%+''''(''+*+++***********&&&&%&&&%%&+/////+*&*&&**&%**+++/*%XX%%%%XX%%%&%%%&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%/'''''''''' ''''''''/%&&%%%%%%%%%%%%%%%%%%%&&&&&&&&*******+'' /+''
' ' (/*+**+((((((((((((((((((((((/++(' '' '''''(&++++++***&&&&&*****&&&&&%/''''''*%&%&&&&%(' '' '+****+**********&%&&&&%&+&%X+/+/++/&*&**&&&&&%&&%&%%X%XX&&%%%X%&%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%('''''''''' ''''''''*%&&%%%%%%%%%%%%%%%%%%%%&&&&&&&&********' ++/''
' ' '' '' '/*++++++/(/((/((/((((((((((((((//+(' ''''''**++*++**&&&&&&*****&&&&*%+ '''''&&%%&&*&&' ''( (&**++**********+&&%&&%%&*/*X*////++&&&*************&&&%%%%%XXXX%&%%&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%('''' '' ' ' ' '' '' '''' /%&&&%%%%%%%%%%%%%%%%%%%%%&&&&&&&&***+***+'+(+' ''' ' ''
'' '' (+*+++++++++(/((/((/((((((((((((((//*+(' '' '(*+++++**&&*&&&*****&&&%&%*''''''&%%&&&&%*'''' (&*+*************+&%%&%%%%*+/*+/++//+++*&%&&*&************&&&%%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&(' '''' '' ' ' ( ' ' '' ' ''*%&&&%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&*+/+***/+/// ''''''
' ' (+**++++++***/((//((((((((((((//((((//++/'''' ''**++*++**&**&******&&&&&&&(' '( /%%&&*&%/'' (*&+*+*+*******&&**&%%%%%%%&+//+//+++/////++&&&&%&&&*******&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%X%*++' ''' '' '' '''+/''' ' '' (''(&&&&&%%%%%%%%%%%%%%%%%%%%%%&&&%&&&&&*+******+(+( '' ' '
'''' (+*+++++++++***/(/((/(/////////////////(/++( '''/&+++++***********&&&&&&&%('' ''/%%&**&%('' (*&**&**&*******&&*&&%%%%X%X%*++/++/++++++//+*+/+++**&&&%&%%&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%X&&&*&/( '' (' '' /***+( '' ''/( /%&&&%%%%%%%%%%%%%%%%%%%%%%%%&&%%&&&&&&*****&*/+/ ''' '' '
'' '' (+++++++++***++**/(//(////////////////////(/+/'' ''&++++++**********&&&&&&&%('((''*%&&**&%(''(+*+///(/*****&**&&*&&X%%X%X%X&+++++///+++/++*++/+/+**++++*&%&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%X&&&**&*/' '' ' (*+/++/'' '' '*+'+%&&&%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%&&&&********/+'' ' '' '
'' '+*+++*++++********/(/////////////////////////++('''+*+*+++**********&&&&&&&%+' '(/&%&&**%%('''(' ' '(*&****&&&&%&&&XX%XXX&%%+/++++++++/+++*++/+****++//++*&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&*(' '' ''' ''*+/**/*/ '''' *&/&%&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&****&*++(' '' ' '
' ''' '(+**++++++++*********////////////////////////////+/''/&+++++**********&&&&&&&%&/( +&X%****%&('( '(''(/&****&&&&&&&&%XXXXX%*%X&+///++++++//*&+/*&++////////+&&&&&&%&&%%&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&***('' ''' /*(+++++/'' '''' '&&*%%&&&%%%%%%%%XX%%%%%%%%%%%%%%%%%%%&%&&&&&****&&*++' (( '
' ' (/**++*++**************/(//////////////////////////+/''**+++++*********&&&&&&&&X&**%%%&***&%%/''''('''(&*****&&&&&&%&%XXXX%*&%%%*/+++//////+&*++&*+///////+//+&&&&&&&&%%&&&%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&**('''' '''' */(+*+//*( '''''(&&%%%%&&%%%%%%%%XX%%%%%%%%%%%%%%%%%%%%%%&%&&&**&**&**('//''''
' '' /+**+++****************+////////////////////////////*/'/*+++++*********&&&&&&&&%&%&&%%&***&%%+''''''''******&&&&&&&%%%%X%&**%X%X%+/+//++///*&*+&&/////////////+&%%%&&&%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&*&&*/(((('/'''/*+//////+/ ''''' /%&%%%%%&%%%%%%%%XXX%%%%%XX%%%%%%%%%%%%%%%%%%&&&*&&&***'/+' '''' '''
' ' (+****+****************&*+/////////////////////////+//+/+*+++++**********&&&&&&&%&&&&%&&***&%%+'''''( /&****&&&&&&%%%%%X%&**&%%%X%&+/++////*&&&*&+//////////////*&%X%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&*&**++++//*+''+*+/(/++/+/ ''''' +%%%%%%%%%%%%%%%%%XXX%XX%XXXX%%%%%%%%&%%%%%%%&&&&&&&&**+/*'' ((''
' ''+******************&**&*&*////////////////////////////+++*+++++**********&&&&&&&&&&&%%&****&%&*''''''(**&&**&&&&&&%%&XX%&**&%X%%%%X*//++/++&%&&&&///////////////+&%%%%%%&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&**++++/+/+*(/+(((****+(' ''''' *%%%%%%%%%%%%%%XXXXX%%&&&&&*&&&&&%%%%&%%%%%%%%%&&&&&&&&&**/ ' +/'' '
''' ''/+********************&&*&&*/////++//////////////////////+*+++++**********&&&&&&&&%&&%%&****&%&&''''''+&*&&&*&&%%%%%%%%%****%%%%%%%X%+////++&***&*///////////////+&X%%&%%&%&%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&***+////+/++*++((+*+**+ '' ''''''&%%%%%%%%%%%X%XX%&*++++***++*****&&&&&&%%%%%%%%%&&&%&&&&&**'' *+' '' '
''' '(+**+*****************&&&*&&&++//++++/////++//+////////////+*++++**********&&&&&&&&%&&X&*****%%&%('''((&**&X*&&&&&&&&%X&*&**&X%%%%%%%X&+/+++******+////////////////*%%X%%&&&&%%%%%%%%%%%%%%%%%%%%%%%%X%&&&&&***++++/+///+**/(*+**+( ' ''''''(%%%%%%%%%%%%%&*+/++/++******&&&&&&&&&&&&%%%%%%%%%%%%%&&&&*+/ (*+' '
'''' '/+******************&&&&&&&&&&*+++//+/+++++/////////////////*++++**********&&&&&&&&%&%%&****&%&&%+''''+++&%%*&&%&&&%%%%**&*&%%%%%%%%%%X&++**+++*&**++//////////////+%%X%%**&%%%%%%%%%%%%%%%%%%%%%%%%%X%&&&&&***++++//((+//++/***++(''' ''''' /%%%%%%%%%%%&*+//+++//+&*****&&&&&&&&&&&&&&%%%%%%%%%%%%&&&&+*'/*+' '
'''''(+******************&&&&&&&&&&&**+++++++++++//(///////////////*+++++***+**+**&&&&&&&%%%%*****&%&&%&(''(/(&%%&*&&%&&%%%&**&*&%X%%%%%%X%%X%&+///**&&*+////////////////+&%XX&*&%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&*&*++++++/(/+//*+**+/*/ '' ''''' +%%%%%%%%%%%&//+++++/+*&&***&&&&&&&&&&&&&&&&%%%%%%%%%%%%&&&**/+**' ''''
'''''/+*****************&&&&&&&&&&&%&&**+++++++++++(/++/////+//////*+++++++++*****&&&&&&&&%%&***&*&%&&%%((''(*%%%&*&&&&%%&&*****%X%%%%%XX%XX%%%*//++/+///////////////////+&X%X**&%&%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&**+++++++/////+/***+/+/''''' ''''' *%%%%%%%%%%X&+++++++*&&&&&&%%%%%%%%&&&&&&&&&&%%%%%%%%%%%&&&****++' ' '
' ' '' (+*************&***&&&&&&&&&&&&&%&&***++++++++++/++/+//////////+*++++++++*****&&&*&&&&%%&****&%%%&%%/'('&%%%%*&%&&%%&******&XX%%%%%X%X%%%%%%*////////////////////////+*%X%**&%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&**++++++/+//////**++/+*+/''' ' ' ''' ' ''''' *%%%%%%%%%%X*++++*&&&*&&&%&&%%%%%%%%%%%&&&&&&%%%%%%%%%%%%&&&*%*+* ' ' '
'''''' /***************&&&&%%%%%%&&%%%&%%&&****++++++++/+++++/////////+*+++++++++*+****&&&&&&%&*****&%%&&&%+''+%%%%%&%%%%%&**&&**&%X%%%%X%X%XX%%%%%&*///////////////////////**%X&**&%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&*++++/+++//////**+/++*+++ ''' '' '''''''&%%%%%%%%%%%++++***++++*&&&&&%%&&&&&&&&&&&&&&%%%%%%%%%%%%%&&&&++*'' (
''' (+&*************&&%%%%%%%%%&&%%%%%%%%&&***++++++++++++++++///////**++++++++*+****&&&&&%%&****&&%%&&&%&+(&%%%%%&%%%%&******&%X%%X%XXXXX%%X%%%%%&+//////////////////////**&%***&%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&*++++++++++/+/+**++*+*++++( ''' ''' '' ''''''''(&%%%%%%%%%%&++++++++/+*&&&*&&%%%&&&&&&&&&&&&&%%%%%%%%%%X%%&&&*++* ' ''
'' ' (*&***&&*****&&&&%%%%%%%%%%%%%%%%%&%%%&&*&**++++++++++++++++/////+*++++++++++****&&&&&%&*****&&%%&&&%%&*%%%%%%%X%&***&****&XXX%XXX%%%X%%X%%%%%%&+////////////////////+**&&***&%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&*++++++++++++/+***++/*++++*( ''' '''''''' '''(&%%%%%%%%%%&+++++++++**&&&&&&%&&&&&&&&&&&&&&&%X%%%%%%%%%%%%&&*+** ('' '
' ''''+&*******&&&*&&&%%%%%%%&&&%%%%%%%%%%%%%%&&***+++//++++++++++++++/+*+++++++++++****&&&&%*****&&&%%&&&&%%%%%%%%XXX&&*****&*&%XXXXXX%***%XX%%%%%%%%&+///////////////////+**%&***&&%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&*++++//++++++++****+/**++++*/ '''' ''''''''''(&%%%%%%%%%%&+++++++//+****&&%&&&&&&&&&&&&&&&&%X%%%%%%%%%%%%%&&+*//+ '''
' ' '*&*****&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&***+//++++++++++++++/+**++++++++++****&&&%%****&&&&%%&&%&%&&&&&%%%%&*&******&%XXXXX%%&*++&XX%%%%%%%%%*///////////////////+**%****&%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&*+++/(/++++++++****/+**+++++*+'''''''''''''''' (&%%%%%%%%%%&++++++++++***&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%X%%%&&**+&/ '
' ' '/&***&&&&&&&***++++*&&&&&%%%%%%%%%%%%%%%%%%%&&&**+/+++++++++++++++/+*+++++++++++***&&&%&&***&&%&%&%&%%%&&&%%%%%&*******&&%XXXXXX%%****&%%%%%%%%%%%%*/////////////+*+//+*&%****%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&%%&&*++++(/++++++++****/++*+++++*&&/(' ''''''''' '((&%%%%%%%%%%%+++++**&&&&&&&%%&&&&&&&&&&&&&&&&&X%%%%%%%%%%%%%%&&***&'''
' ' (*&*&&&*++/////////+****&&&&&&%%%&%%X%%%%%%%%%&&*&*++++++++++++++++/+*+++++++++++**&&&&&&&&**&&%&%&%&%&%&%%%%%%&&****&&*&%%%XXXXX%X***+*X%%%%%%%%%&%&////////////+*&+//+*%&***&%%&%%%%%%%%%%%%%%%%%%%%%%%%%&&&%%&&***++++++++++++*&&++*+*++++****&&+(' '''' '''(/(&%%%%%%%%%%%***&&%%XXXXXXXXXXXX%%%&&&&&&&&&%%X%%%%%%%%%X%%%%%&**++( ''
' (&&*&*+////////++*++**&**&&&&&&&&&&&%%X%%%%%%%%%%&*&**++++++++++++++/+*++++++++++++*&&&&&&&&&&&&&%%&&%%%&&&%%%%&***&**&**%X%XXXXXX%%%&*&%%%%%%%%%%%%%%*///////////*+*&/++&&****&X&&&%%%%%%%%%%%%%%%X%%%%%X%%%&%%&&&**+++++++++++++*&*+**/*+++*******&&+( ''' '''''&*&%%%%%%%%%%%&&&%%XXXXXXXXXXXXXXXXXXXX%%%&&&&%%X%%%%%%%%%%%%%%&*+++'' ''''
' ' /&&&&*+////++//+**+**&&&&&&&&&&&&&&&%%%%%%%%%%%%%%&*&**+++++++++++++++**+++++++++++**&&&&&&&&&%&&%%%%%&&&%%%%%&&**&****&%%%%XXXXXX%%%%%%XX%%%%%%%%%%%%&+//////(//+**+&//*%&***&%X&**%%%%%%%%%%%%%%XX%%X%%X%%%&%%&&&**+++++++++++++*&&**++**+*******&*&&*+ ' '' ''*&%%%%%%%%%%%%%%%%%%XX%%%%%%%%%%%XXXXXXX%X%%&&%%%%%%%%%%%%%%%%%%&+*/ ''' ''
' *&&&&++++++*+//+**+********&&&&&&&&&&%%%%%%%%%%%%%%&&******+++++++++++**++++++++++++*&&&&&&&&&%%&%%%%&%%%%%%&&******&*&%X%%%XXXXXX%%%%%%%%%%%%%%%%%%&%%*//////+/+*+++*//&%****%%%&**%%%%X%%%%%%%%%XX%%X%XX%%%%%%%&&***++++++++++++*&&**//*********&&***&*( ''(/' +X%%%%%%%%%%%%%%%%%&&**+++++******&%%XXXXXX%&&%%&&&&&&&&&%%%%%%%&&*( '''''
' *&&&*+/++++++//+*&****&&&&&&&&&%%%%&&&%%%%%%%%%%%%%&&*&&&&***+++++++++*&++++++++++++**&&&&&&&&&&&%%%%%%%%%&%&&******&&%X%%%%%XXXXXX%%%%%%%%%%%%%%%%%%%%%*(/////****+&+/+%&****%%&*&&%%%XX%%%%%%%%XXXXXX%XX%%%%%%%%&******+++++++++*&*&*+/*&*****&&&****&/('' /&/'/%%%%%%%%%%%%%%%%*+++++**++*+++**++**&&%XXX%%%%%&&&&&&&&&&&%%%%%&&*'(' '''
' '+%&%*+++++++++**&&&&&&&%%%%%%%%%%%%&&%%%%%%%%%%%%%%&&&&&*&&&&**+++++++*&++++++++++++**&&&&&&&&&&&%%%%%%%%%%&&******&&%X%%%%%%XXXXXX%%%%%%%%%%%%%%%%%%%&%&+/////*+***&//&&***&%%%%&&&%%%XX%%%%%%%%%XXXXX%XX%%%%%%%%&********+++++++*&*&+++*&****&&&&*&*&/' ('''(%&+(&%%%%%%%%%%%%%&*++++++**+*++++++**++++*&%%%&&&&&&&&&&&&&&&&%%%%%&*++( ''
' '/%&%*++++**&**&&&&%&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%&&&*&&&&&&&***+++++*&+++++++++++++*&&&&&&&&&&%%&%%%%%&&&&**&&&&&&%X%&%X%XX%%XXXXX%%%%%%%%%%%%%%%%%&%%%&+/++/*+/*&+/*&**&&%X%&%&&&%%%XX%%%%%%%%%XXXX%%XX%%%%%%%%&********+*++++++&&**+*+&***&&&&**&&+( ' '' *%&+&%%%%%%%%%%%%%&&**+++++++**+***+++**++**%%%%%&&%&&&&&&&&&&&&%%%%&&&*''''''
' ''(&%%*++++**+/+++*&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%&&&&&&&&&&&**+++**&+++++++++++*+**&&&&&&&&&%%%%&&%%%&&&&%%%%%%%%%%&%X%X%%%XXXXXX%%%%%%%%%%%%%%%%&%&%%**+++*+*&*/+&&&&%%%%&*%&&&%%%XX%%%%%%%%XXXXX%%XX%%%%%%%%&**********++**+*&&****+*&&&&&&**&&*' '( '' /%%%%%%%%%%%%%%&+++*&&&**+++++++***+*++**&%%%%%&&&&&&&&&&&&&&&&&&%%%&%%/ ''''
' ' '&%%*+++++*+/++*&%&&&*&&&&&&&&&*&&&%&&%X%%%%%%%%%%%XXX%&&&&&&&&&&**++*&&+++++++++++**+**&&%&&%&&&%%%%%%%%%%%%%%%%%%%X%%%%%X%%%%%XXX%%%%%%%%%%%%%%%%%&%%&%&%&***&++&+/&&&%%%%%&%&*&&&%%%%%%%%%XXXXXXXXXX%XX%%%%%%%%***********++**+*&&&*&*+*&&&&***&&&(''''''' (%&%%%%%%%%%%%&+++*&&&%%&**+++++***++**%%%%%%&*+*&%&&&&&&&&&&&&&&&%%&&&''' '''
''''''&%%*+++++**+++*&&&&&&&&&&&&&&&&&&%&%&%X%%%%%%%%%%%XXXX%%&*&&&&&&**+**&**+*+++++*+++*****&&&&%%&&%&%%%%%%%%%%%%%%%%%%%%%%%%%%X%%%XXXXX%%%%%%%%%%%%%%%%%%%%%%&+++*+*/+%%%%%X%&&%&&&&%%%%%%%%%%%%%XXXXXXXXXX%%%%%%%%************++***&&&*&++*&&&*&*&%&('''( ''''''*%%%%%%%%%%%&++*%%&&&&%&&&*++*++*&+&%%%%%%%%%%&**%%&&&&&&&&&&&&&&&%&%/'' ' ''
'*%%*++++++++/+**&*******&&&&&&&&&&%%&%X%%%%%%%%%%%XXXX%%%&&&*&&&&*&*&&*+*+***+++**+*******&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%X%%%%XXXXX%%%%%%%%%%%&%%%%%%%&&%*++&*+/&%%&%%X&*&%&&&&%%%X%%%X%%%%XXXXXXXXXXX%%%%%%%&******************&&&*+/*%&&&&&&*(('''''''''' +%%%%%%%%%%%*+/*&%%&&&&&*&&*++++**&&&&&%%%%%&%%&&*%%%&&&&&&&&&&&&&%%&( ''''''
' ' ''*%%*++++++++++++*******&&&&&&&&&&&%%&%X%%%%%%%%%%%XXXX%%%%%&&*&&&***&***+*+++***++***********&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%X%%XXXXXX%%%%%%%%%%%%%%%%%%%%%%&+*+/+%%%&%%%&*&%&&&%%%%%%%%X%%%XXXXXXXXXXXX%XXX%%%&&*****************&&&**+*&&&&*&%+'''''''''' ' (%%%%%%%%%%*+//++&+(+&&&&&&&*+*++*&%&*&%%%&++*%%%*&%%&&&&&&&&&&&&&%%*' '' '''
' ' ''+%X%&***&&&&&&&&%%%%%&&&&&%%%&&&&&&&&XX%%%%%%%%%%%XXXX%%%%%%%&&&&&*&&/+&++**+***+*************&%%%%%%%%%%%&%%%%%%%%%%%%%%%%%%%X%%%XXXXXX%%X%%%%%%%%%%%%%%%%&%%&+//&%%%%%%&&&&%&&&%%%%%%%%%&%%XX%XXXXXXXXX%%%%%%%&*****************&&&*****&&&&&%%*/ '' ''''' ' '&%%%%%%%%%+////+*(+/*%%%**&*+++++*&&&%X%%+++/&**++&%%&&&&&&&&&&&&&%/ '' '''
' ' /%%%&&&%%%%%XXXXXXXXX%%%%%%%%%%%%%%%%XXXXXX%%%%%%XXXXX%%%%%%%%%%&&*&*''*&**+***+**************&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%X%%%%%%%XXXXXXX%%%%%%%%%%%%%%%%&%%%+/*%&&%%&%&&&&&%&&X%%%%%%%&&%%XXXXXXXXXXXX%%XX%%%&*&*&***********&&&&&****+&&&&%%%%&/''''''''''' *%%%%%%%%&//+//+&//(+**&**&*++++++&&&&**%+*+/&*/++*%%&&&&&&&&&&&&&*('''' '''
''''' /&%%%%%XXXXXXX%%%%%%%%%%%%XXXXXXX%XXXXXXXXXXXX%XXXXXXXX%%%%%%%%%%&*&/' '*&**++****************&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%X%%%%%%%XX%%XX%XXXXX%%%%&%%%%%%%%%%&&%%%&%&%%*&&&&%&%%%%%%%%&&&%XXXXXXXXXXXXXXXX%%%%&&&&&&********&&&&&%&&*&*+*&&%%%&%%&( (''''' '' +%%%%%%%%*//++//*+/*&+++/++++++++*&*&&*+&&+/+&+++++&%%&&%&&&&&&&&&+ '' '' ''
''''' '+%%%%%%%%%%%%%%%%%%%%%%%XX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%&&((( (+&&**+****************&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXX%%%&&&&%%%%%%%%%%X%%&%%&&%&&&&&&%&%%%%%%%%&&&%XX%XXXXXXXXXXXX%&&&%&&&&&&&&*&**&&&&&&&%&&&&*+*%%%%%%%%X+'''''''''''(&%%%%%%%+//++//++**+/+//++++++++**+*&&**&***++++++*&%&&%&&&&&&&&%+ '' ''''
''' ' '+%%%%%XX%%%%%%%%%%%%&&&&&&&%XXXXXX%%%X%XXXXXXXXXXXXXXXXXX%%%%%%%%%%*' '( '(+&&*****************&%%%%%%%%%%%%%%%%%X%%%%%%%%%%%%%%%%&%XX%%%X%%%%&&&&&%%%%%%%%%%X%%%&&%%&%%&&&&&&%%X%%%%%%&&&%XXXXXXXXXXXXXX%XX%%%X%&&&&&&&&&&&&&&&&&&&&&&**+*%%%&%%%%%*( ''''''''' &%%%%%%&////+++++///+/++++*++++++++++&&+++++++++&++*%%&%&&&&&&&&%+'''' ''''
'''' ' ''/%%&&%%%%X%%&&&&*&***&&&&&%%%%&&&&%%%&&%%%%%%XXXXXXXXXXXXXXX%%%%%%%&''''''''(+&&&**&************%%%%%%%%%%%%%%%%%XX%%%%%%%%%%%%%%%XXXX%%%%&%%%&&&&%%%%%%%%%%%%%%&&&&*&%&&&&&&&%%%%%%X%%&&%XXXXXXXXXXXXXX%XX%XX%%%%%%%&&&&&&&&&&&&&&%&&&**+&%%%%%%%%%%+''''' '' (/%%%%%%*//+//+***+/+/++++&*+++++++++++++++++++***+++&%&%&&&&&&&&%* ''''''
'''' ' ' '*%&&&&&&%X%&*****&&&&&%%%%%********&&&&&&&%&%%&%%%XXXXXXXXX%%%%%%%%(''''''' '(/*&&*&&*********&%%%%%%%%%%%%%%%%%%X%%XXXXXX%%XX%%%%%%%%%%%%%&&&%%%%%%%%%%%%%XX%&**%&&%%*&*&&&%%%%%%XX%&&%%XXXXXXXXXXXXXXXXX%X%%%%%%%%%%%%%&&&&&&&&&%&&*****%%%%%%%%%%&( ''''''' '(&X%%%%*/+*+/////+/+/++++&*++++++++++++++****&&**+*+*%%%%&&&&&&&%* '''''
''''' ' ' /&**&&***%%%&**&*&&%%%%&%%&&&%%%%&&%%&&&&&%&%%&&&&&&%%%XXXXXXXX%%%%( '''''''''''(++&&&&********%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXX%%%%%%%%X%&*&&X%&&&*&&%%%X%%%%XXX%&%%XXXXXXXXXXXXXXXXXX%XX%%%%%%%%%%%%%%%&&&&&&&%&***&*&%%%%%%%%%%/'''''''''' +%%%%%*//++/+++////+/++*&++++++++++++++++++***++**++%%&%&&&&&&&%&' '''''
'' ' '''''''' '' (&&&&%%%%%%%&**&***&%%&&%%XXXXXXXX%%X%&&*&&&%%&&&&&&&&&&%%%XXXXXXX&('''''('''''''''*&*&&****&**&%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&%%%%%%%%%%%XXXXX%XXXX%%%XX%**&%%XX%&&%%%%XXX%%%%X%%&%%XXXXXXXXXXXXXXXXXXXXXX%%X%%%%%%%%%%%%%&&&&&&%%**&&+&%%%%%%%%%%*'''''' '' (%%%%%+//+++**+////+//+&*+++++++++++++++++++++****++*%%%%&%%&&&%&' ''''
'' '''''''''''' ' ''''''''' '''(*&%%%%%XXXXX&*******&%%%%%%%&&&%%&&%%%&***&%%&&&&&&&****&&&%%%XXX+ '''(' '(''''''+%%&*&&&***&%%%%%%%%%%%%%%%%%%%%%%%&&*&&&&&&&&&&%%%%%%XXXXX%XX%%%XXXXX%&**&%XXXXX%%%%%%%X%%%%%%&&%%XXXXX%XXXXXXXXXXXXXX%%X%%%%%%%%%%%%%%%%%&&&&%%%&&&*+*%%%%%%%%%%&( ''''''''' &%%%%*/////++/////+/+*&++++++++++++++++++++++***++++%%%%%%%&&%%&' ''''
' ''''''''''''' '''''''''' '''''''+*&%%&*&%%XX%&*&***&%&&&&%%%*+**%%%%%&****&%%&&&&&&********&&&%%%/''''' (('''''(( +X%%&*&%&***%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&%%%%XXXXXX%%XXX%%%%%%X&&&%XX%X%%%%%%%%%%%%%%%%&&%XXXXXX%%XXXXXXXXXXXXXXX%%X%%%%%%%%%%%%%%%%%%%%%%&&&&*++&%%%%%%%%&%+ ''''''''''&%%%&*/+//////+/+//+**++++++++++++++++++++++++++++*+&%%%%%%%&%%&' '''''
'''' ' '''''''' ''''' '''' '''''''' '' '''''''' ' ''''''''''''''''''+*&%%&*&XX%%%%%%&**&&**&*&&%%&%%%%%%&**&***&%&&&%&&*********&&&&%*+//(((' '''' ((%%%%&*&%%&&%%%%%%%%XX%%%%%%%%%%%&&&&&&&&&&&&&%%%%%%XX%XXXXXXXXX%%%%%%&%%X%&&%%&%%%%%%X%%%%%%&&%%XXXXXX%XXXXXXXXXXXXXXXXXXXX%X%%%%%%%%%%%%%%%%%%%&&&&**+&%%%%%%%%&%* ''''''''''&%%%**/++***+///+/+*&&+++++++++++++++++++++***++++*+*%%%%%%%%%%&' '''''
''('' ' '''''''' '''''' ''''''''''''''''''''' '' '''''''' ''' '''''''''''' '''''****&&&%%%%%%&&&&&******&&**&&&&&&&********&%&&&&&***********&&&&%%*****++/(('''''(%%%%%%&&%X%%X%%%%XXXX%%%%%%%%%%%%&&%%&&&&&&%%%%%XXXXXXXXXXXX%XXXXX%%%%%%&&&%%%%%%%%%%X%%%%%%&%XX%%XX%X%XXXXXXXXXXXXXXXXXXXX%X%%%%%%%%%%%%%%%%%%%&&%****%%%%%%%%%%&* ''''''''''&X%%*+///++//////++&**++++++++*++++++++++++*&&&&&*+++%%%%%%%%%%&' '''''
''/**&*/(' ' ' ' '' '' ''''' ''(/+++/(' '' ' ''' '' ''''' ''' ''' '' ''' '''' ' '''''''''''''''''' ''''' ''+*******&%%%&***&&&************************%%&&&&&***&&********&&&&&******&&&*++('(*X%%%%%%%%X%%XXXX%XXX%%%%%%%%%%%%%%%&&&&&%%XXXX%%%XXXXXXXXXXXX%%%&&***&&*&%%%%%%%%%%X%%%X%&%%X%%%XXX%XXXXXXXXXXXXXXXXX%%%XX%%%%%%%%%%%%%%%%%%%%%&%&*&*&&%%%%%%%%&&&(''''''''''&X%%*+////////////*&*&+++++++*&*+++++++++++++++*+++++*%%%%%%%%%* ' ' '
' ''''+&**&&*/' ' ' ' ' '' ''''' ((/+/(/*+++**+/(' '' '''' '' ''' '''''' ''''''' ''' '(''''''''''' '''''' '''''''''''+&*****&%%%%&******************************%%&&&****&&&*********&&/*%&*&&&&&&&**&&*%%%%X%%%%%XXXX%%%%XXX%%%%%%%%%%%%%%%%&%%XXXXX%XX%%XXXXXXXX%&&&&&&&&&&&**&%%%%%%%%%XXX%%%%%%%X%%%XXXX%XXXXXXXXXXXXXXXXX%%%XX%%%%%%%%%%%%%%%%%%%%%&%&**&&&%%%%%%%%&%&(''''''''''*X%%**////////////**&&+++**+++&+++++++++++++++++++++++%%%%%%%%%* ''' '
(+*/(+****&&*+' ' '' ' ' ' '' '((/+*****+((+*+++****/(' ''' '' '' '''' '''' '''''' ''' ''' ''''''''' '''' ''''' ''''+&*****&&%%%&*********&&*******************%&&&&*+*&&&**********&%((&X%%%%%%%%%%&%%%%%%%%%%%%%%X%%%%XXX%%%%%%%%%%%%%%%%%XXXXXXX%%XX%XXXXX%%&&*&&&&*&&&&&&**&%%%%%%%%XXX%%%%%%%%%%%XXX%XXXXXXXXXXXXXXXXXXX%%XXXXX%%%%%%%%%%%%%XX%%%%%%&**&&&%%%%%%%%&%&/''''''''' *X%%*&//////////+/+*&&+++**+++*+++++++++++++++++++++++*%%%%%%%%/ ''' ''
'+***********&*+' ' ' ' '' '' (/*&&&&*********+***++**&*+////((' ''''' ''''''' ''' '' '' '''' ''' '' '''''' '''(' '''''' ''''''+&****&%%%%X%%%%%&&&***********************%&&&****&%&**********&&''(&X%%%%%%%%%%%%%%%X%%%%%%%%%%%XXXXX%%%%%%%%%%%%%%%%%XXX%%%%%%%%%%%%%&&&&&&%%%&&&&&****&%%%%%%XXXXXX%%XX%%%%%%XXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%X%%%%X%%&&&&&&&%%%%%%%&%%/''''''''''+X%&&&//////////+//++*+++++++++++++++++++++++++++++++++%%%%%%%%( ''' ''
/******&****&**&/ ' ' ' ''(*%%%%&&&&**************++***&&&&&&*+(' '''' '''' ''''''''' '''''''' '((/++***+/(' '''''' ( '' ' '/&****&%XXXX%%%%%%%%%&********************&%&&&***&%&&&********&%*(((+&%%%%%%%%%%%%%%%XX%%%%%X%%%%XXXX%%%%%%%%%%%%%%%%%%%%XXX%%%%%%%%%&&&&%%%%%&&&*******&&%%%%XXXXXXX%%XXX%%%%%XXXXX%XXXXXXXXXXXXXXXXXXXXXXX%%XXXX%%%%%%%%XX%%%%%X%%&&&&&&&%%%%%%%%%%+''''''''''/XX%%%+/////////+++//+++++++++++++++++++++++++++++++++*%%%%%%X%(''''
+*******&***&****( ' '' (*%%%%%&&&&&&****************&&&&&&&&%&*/( ''((((((((''' ' '' ''( '' '(/*%%%%%X%%%X%*/(' '' '' (((///+&**&&%XXXX%%%%%%%%%%%%%&&&***************&%&&&**&&&&&&&***&&&&&%&*%%&&%%%%%%%%%&&&%%%XXXX%%%%%%XXXXXX%X%%XXX%%%%%%%%%%%%%XXXX%%%X%%&&&&%%%&&&&&&&&&&&&&&%%%%XXXXXXXX%%%XX%%%%%XXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%XX%%%%%XX&&&&&&&&%%%%%%%%%%+''''''''' (&XXX&+////////+//+++++++++++++++++++++++++++++++++++*&&%%%%%X%('' ''
+***+**&*+&&****&+' ' ' '' '''*X%%%%&&&&&&&&&&****************&&&&&&&%%&+/+*&&%%%%%%&*+( ' '''' '(' '/+%%%%%%%%%%%%%%%%&+(''''('(&%%%%%&%&&%%XXXXX%%%%%%%%%%%%XXX%%&&************%&&&&*&&&&&&&&&&&%%%%%&&&*&&&%%%%%%%%%X%&&%%XXXXXX%%%%XXXXX%%XXXXXXXXX%%%%%%%%%%%%%%%%XX%%&&&%&&%%%%&&%%%%%%%%%XXXXXXXXXXX%%%X%%%%%%XXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXX%%%XXXX%%&&&&%*%%%%%%%%&%+'''''''''''/%XX&////////////++++++++++++++++++++++++++++++++++*&**%%%XXX* ' '' '
+&++****+'+&******('' '' ( +%%%%%&&&&&&&&&&**++***********&&&&&&%%&&&&&%%%%%%%%%%%%%X%&(' ''''''' '/*%%%%%%%%%%%%%%%%%%%%&/'''''+X%&&&&&%%%%%%XXXX%%%%%%%%%%%%%%%XXXXX%&&&******&%&&&&&&&&&&&%&&&******&*&&&&%&%%%%%%%%%%%%%%%XXXXXX%%XXXXXX%%%%%XXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXX%%%XX%%%%%XXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXX%XX%XXXX%%&&&%%*&%%%%%%%&%+''''''''''''&X%&///////////+/+//+++++++++++++++++++++++++++++*&&*+%X%XX%/ '''' '
' +*+****+*''+&*****/''' ' ''''' (&%%%%%&%&&&&&**+/////+*****&&***&&&&&&&&&&&&&%%%%%%%%%%%%%%%X*/'''''''/&%%%%%%%%%%%%%%%%%%%%%%%%*( '(*%%%&&&%%&&%%%XXX%%%%%%%%%%%%%%%%%%%%%%XXX%%&&&&%%&&%%%%%&&**********&&%%%%%%%%&%%%%%%%%%%%%%XXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXX%%XXX%%%%XXX%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXX%%&&&%&*&X%%%X%%&%+'''''''''' '/%X&/////+/////+///++++++++++++++++++++++++++++*&&&*++&%%XX&(''''' ' ' ' ''' '' '
+***+++/+/''/*****+'' ' ''''' +%%%%%%%&&%&*///////////*&&****&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%X%+('''/*%%%%%%%%%%%%%%%%%%%%%%%%%%%*/''&%%%%%%%%&&&&%XXX%%%%%%%%%%%%%%%%%%%%%%%XXXXXXX%%%%%%XXX%%%&&*****&&&%%%%%%%&&&&&&%%%%%%%%%%%%XXXXXXXXXXXXXX%%XXXXXX%%%XX%%%%%%%%%%%XX%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXX%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXX%%&&&%&*&%%%%%%%%%+'''''''' '' '+X%////////+///++++*+++*+*+*++++++++*&++++++++*&&++++&%XXX* ''''' ' ' ' ' ' '
/***+**/+*/('+*****( ''' '''''''&%%%%&&&&&*+++++++++++///+*&***&&&&&&&&&&&&%%&&&&%%%%%%XXX%%%%&%X*'(*%%%%%%%%%%%%%%XXXXXXXXXXX%%%%%&//%%%%%%XX%&%%&%XXX%%%%%%%%%%%%%%%%%%%%%%%X%%%%%%X%%XXX%XX%&&&%%&&&%%%%%%%%%%&&&&*&&&%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXX%%%%XX%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXX%%%%%%%%%%%XXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXX%%%&%&&&&%%%%%%&%%/'((''''''''' '&%///////*&***&&*++**&&*&&&&&*&&**+&%&+++/++**&*++++&%XXX+ '''''' ' ''
(**+**&+****((*****+'' ' '''' '/%%%%&&&&&*++*****&&&&**+//+*&&&&&&&&&&&&&&&&&%%%%&%%%%%XXXXX%%%%%%%%%%%%%%%%XXXXX%%XXXXXXXXXXXXXX%X%**%%%%%%%X%&&%&%%XX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XX%%XXX%%X%&&&&%%%%%XX%%%%%%%&&&&&&&&&&&&%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXX%%%%%%%%%XXX%%%%%%%%%%%%%%%%%XXX%XXXXX%%%%%XXXXX%XXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXX%%&%&&%%&X%%%%&%%/' ''''((((///*%*++///+**+*+++++/**+/**+++****&&***&&/++++****++++&XXXX/ '''''' ' ' ' ''' '
'***&****+**/'******(' ' '''' '*%%%%&&%&***&&*****+++*&*++//*&&&&&&&&&&&&&&&&%%%%%%%%%%%%XXXXX%%%%%XX%XXXXXXXXXXXXXXXXXXXXXXXX%XXXX%&*&%%%&%%XX%&&&%%XXX%%%%%%%%%%%%%%%%%%%%%%%%XXXXX%XXXXXXXX&&&&&&&&&%%%%%%%%%&&&&&&&&&&&%%%%%%%%%%%%%%%%%%X%XXXXXXXXXXXX%%%%%%%%%%%%XXX%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXX%%%%%X%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%&&&%%&%%%%%%%&/((//+*&&&%&%&&&&&&&&%&&%&&%&*+****(*&*+&++**+/***+*+&++/+*&&*++++*%XXX%'''''''' ' '' ' '(///' '
/**&*+**+***'/*****+' '''' '&%%%&&&&&&&&&+**&*+///+****+/+*&&&&&&&&&&&&&&&&&%%%%%%%%%%XXXXXXX%%%X%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%*+&%%&%%%%%%%&%%XXX%%%%%%%%%%%%%%%%%%%%%XX%%%%%%XXXXXXXXX&&&&&&&&&%%%%%%%&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%XXXXXXXXXX%%%%%%%%%%%%%XXXX%XXXXX%%%X%%%%%%%XX%%%%XX%XXXXXXXX%%X%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%&&&%%&%%%%%%%%**&&&&&&&&&&&&%*****&&&&&&&&&&%%%%&*&&+/+&*+****+*&*&&+++/&&*+++++%XXXX* ''''''' ' ' ''/+++( ''
' (*&&***+****'(&*****( ''''' /%%%&&%&&&&&*+//++++////*****++**&&&&&&&&&&&&&&&&&&%%%%%%%%XXXXXXXX%%%%%%XXXXXXXXXXXXXXXXXXXXXX%XXXXXXX%*+&%%%&&%%%%%%%XXXX%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXX&&&&&&&%%%%%%%&&&&&&&&&&&&&**++++++****+**&%%%%%%%%%%%XXXXXXX%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%&&&%&&%%%%%%&%%%&&&&&&&&&&&&&****&&&&&&&&&&&&&&&&%&%%%&&*//**+/+%&%+++++&*+++++*XXXXX/'''''''' ''//' ' ''+//+/ '
'' *&******+&+'(******/ ' ''''' +X%%&&%&&&&*+/++///+++//*&&*******&&&&&&&&&&&&&&&&&&%%%%%%%%XXXXXXXXX%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%XXXXX&++*%%&%%&%%%%%XXXX%%%%%%%%%%%%%%%%%%%%XX%%XXXXXXXXXXXX%&&&&&&%%%&&%%&&&&&&&&&&&**+++++++***+++++++*&%%%%%%%%%%%%%%%%XXX%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXX%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%&&&%*&&%%%%%&&&&&&&&&&&&&&&&*****&&&&&&&&&&&&&&&&&&&%&&%%%&&*+*&%&+++++*&++++++XXXXX% ''''''' '+**/' ' ''+//+/ ''
''&&*&**///+/' +***//+' '' ' ''&%%%%%&*&&*+++++/++*+///+%&&*&&****&%&&&&&&&&&&&&&&&&&%%%%%%XXXXXXXXXXX%%%%%XXXXXXXXXXXXXXXXXXXX%XX%XX%%%&+/*&%&%%%&&%%XXXXXX%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXX&&&&&&%%%*&%%%&&&&&&&&&&*+++++++****+++++++++++*&%%%%%%%%%%%%%%%%%XXX%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXX%%%%%%%%%%%%%%%%XXXX%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%&%%&&&&%%%%%&&&&&&&&&&&&&&&&&****&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%*+++++*&++++++&XXXXX+ ''''''' /*+/*( ' ' ' (+//+/'' ' ' ' '
(+*&&**///++ /***+/*/ '' ' ' (%X%&&&&&&*+++/++/++**++++&&&&&&&&**&&%%&&&&&&&&&&&&&&&&%%%%XXXXXXXXXXXXXX%%%%%XXXXXXXXXXXXXXXXXXX%%%%%%X%&*+/+&%%%%&&&&%%%XXXX%%%%%%%%%%%%%%%%%%%%%%%%X%XXXXX%&&&&&%%&*&%%%%&&&&&&&&*+++++++++*+++++++++++++++**&%%%%%%%%%%%%%%%%%XXX%%%%%%%%%%%%%%XXXXXXXXXX%%XXXXXXXXXXXXXXXX%%XXXXXX%%%%%%%%%%%%%%%%%%XXXX%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%&&&&%%%%%%&&&&&&&&&&&&&&&&&****&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%X%&*++**+++++*XXXXXX((''''''' (+++/*' ' ' '+//+/''' ' '
''/*&*++/++*('(****+/' ' ' ''' +%%%&%%&**+/*++++++*&*+/++&&&&&&%&**&&&%%&&&&&&&&&&&&&&&&%%%%XXXXXXXXXXXXXX%%%%%%XXXXXXXXXXXXXXXXX%%X%%%%X%&*+++*%%&&%&&&%%X%XXX%%%%%%%%%%%%%%%%%%%%%%%%XXXXXX%&&&&%%**&%%%%%&&&&%%&*++++++++*++++++++++++++++++++*&%%%%%%%%XXXXX%%%%XXX%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%&&&&%%&%%%%&&&&&&&&&&&&&&&&****&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%XXX%%&*++++++&XXXXX* ''''''''' (+++/*+ ' '+//+/' ' ' '' (
' '/&++*+++++ (*****/(' ' ' ''''*%%%%%*+++++*+++++**&*++++&&&&&&%&&&&&&%%%%&&&&&&&&&&&&%&&%%%%%XXXXXXXXXXXXXX%%%%XXXXXXXXXXXXXXX%%%%X%&&%X%&***+++&%%&%&%&%%&%XXXX%%%%%%%%%%%%%%XX%%%XXXXXXXXX&&&%%&**&%X%%%%&&&&&&++++++++++++++++++++++++++++++++*&%%%%%%%%%XX%XXXXX%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%X%%%%%%%XXXXXXX%XXXXXXXXXXXXXXXXXXXXX%%%%&&&%%&&%%%%&&&&&&&&&&&&&&&&****&&&&&&&&&&&&&&&&&&&&&&&&&&%&&%%%%%XXXX%&++++*XXXXX%(' '''''''' ''+/++/&( '' ''+////' ' ' '
''' '****+++/+('****++*(' ' '' ''(&X%&**++++***+++++*&%*****&&&&&%%%&&&&&%%%%%%%&&&&&&&&&&&&&%%%%%%%XXXXXXXXXXXXX%%XXXXX%XXXXXXXXXX%%%%%&*&%%%&***+++*%%&%&&%%&&%%%%%XXX%%%%%%%%%%%%XXXXXXXXXXX%&&%&**&%XXX%%%&&&%%*++++++++*++++++++++++++++++++++*+++&%%%%%%%%%X%XXX%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XX%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%&&%&&&%%X%&&&&&&&&&&&&&&&&****&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%X%%%%XXX&***%XXXXX+''''''''''' '/+++/*+ ' ''+////' ' '' ''
''' /**++//++/'+*****+(' ''' '' /X%*+++++++*&*******&%*****%%%%&&&%%&&&&%%%%%%%%&&&&&&&&&&&%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%&+&%%%&*****++&%&%&%&&*%%%%%%%XXXXXXXXXXX%%XXXXXXXXXXX%%%&**&XXXXX%%&&%%&*+++++++**++++++++++++++++++++++++*++*&X%%%%%%%XXX%%%%%%%%%%%%%%%%%%%%%%XX%%XXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXX%%%%X%%%%%XXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%&*%&%X%&&&&&&&&&&&&&&&&****&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%XXXXXXX%%%%%XX*''''( '''''' ''/+//+/+(' ' ''++//+' ' ''''' ''/+('
' ''(+***++++*(/&****/(' ''' '' +%&+***++***&*******&%*****%%%%%&&&&&&&&%%%%%%%%%%&&&&&&%&%%%%%%%%%%%%%%XXXXXXXXXXXXXXX%%XXXXX%%%%%%%%XX%*+*&%&*&****++*%&%%%&*&%%%%%%%%XXXXXXXXXXXXXXXXXXXXXX%%%&%XXXXXX%%%&%%&&++*+++++**++++++++++++++++++++++*++**+*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXX%%%XX%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%%%%%%&&&%&%%&&&&&&&&&&&&&&&&&****&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%XX%%X%%XXX%%XX&( '' ( '''''' '(+/+////( ' ' ++//+( ' ''''''(/++*''
' '' '/****+/++/(&&**&*+' ''' '' *&++*&&+**&*%&******&%&**&*%%%%%%&&&%&&&%%%%%%%%%%%%%**&%%%%%%%%%%%%%%%%%XXXXXXXXXXXXX%*+***++++++******&&*+**&&&******++&%%%%**%%%%%%%%X%%%%%XXXXXXXXXXXXXXX%&&&&&&&&&%X%%%&%%&+*++++++*+++++++++++++++++++++++++++++***%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXX%%XXX%%%%%XXXX%XXXXXXXXXXXXXXXXXXX%%%&%%&&%%*%%&&&&&&&&&&&&&&&&&****&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%X%%XX%X%%X%XX&( '''' ''''''''' ''++////*/'' '' ++//+( '''''(++//*(
'' ''(****////+(+***+*/' ' ' '''' ' (**++*&&******&******%%&&&&&&%X%%%%&&%%&&%%%%%&%%%%%%%%&%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXX%&********+**+++++++****************%X%**%%&%%&%%%%%%%%%%%XXXXXXXXXXXX%%&%&%&&%%%%%%&&%&++++++++**++++++++++++++++++++++++++******&%%%%%%*&%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXX%&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXX%%XXX%%XX%%&%%&%XXXXXXXXXXXXXXXXX%%%%%&*&%&*%%%&&&&&&&&&&&&&&&&***&&&&&&&&&&&&&&&&&&&&&&&&%%&%%%%%%%XXXXXXX%%%XXXXX%*( '''' ' (' ' ' ' ' '' '''/*////+*( '' '//////' ' ' ' ''////// '
'' '''/***+///+/+******' ' ' ' '' ' '( +&+++++*&*****&&*****&%***&&%XX%%%%&&%%&&%%%%%%%%%%%X%%%%XXXX%%%%%%%%%%%%%%XXXXXXXXXXXXXXX%&&*************++*****************%%&**%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXX%%&%%&%%*++++++++*+++++++++++++++++++++++++++*******&X%%%X%%XX%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXX%&&%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXX%XXXX%%X%%%%%%%XXXXXXXXXXXXXXXXX%%%%%&&%%&&%%%&&&&&&&&&&&&&&&&***&&&&&&&&&&&&&&&&&&&&&&&&%&%%%%%%%%XXXXXXX%%XXXXXXXX%*( '''(' ' ' ''' '' '' '''*/////+/'' ''/+///+''' ' ''/////+( '
''' '***++++++/*****&( ' ' ''' ( ' '+*+++++&&*****&&*****&%&&&&&%XX%%XX%%%%&&%X%%%%%%%%%%%XXXXXXXXXXXX%%%%%%%%%%XXXXXXXXXXXXXX%%&&&**********+*******************&&***%%&%%&X&%%%%XXXXXXXXXXXXXXXXXXXXXXXXX&&&%%%%&*+*+*+++*++++++++++++++++++++++++++********+*%%%%%XXXXX%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXX%%X%&&%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXX%%XXX%%%%%X%%%%%XXXXXXXXXXXXXXX%%%%%%%%%&*&%%&&&&&&&&&&&&&&&&&***&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%XXXXXXXXXXXXXX%XXX%*/'' ' '' ' ' '' ' ' ++//+/+*( ' /+///+'' ' '''/+//(++''
' '''+***++//+/*****&/'''' '''''' '+**+++**&&&**&**&*****&%&**&%XXXXXXXXXX%&%%X%%%%%%%%%%%XXXXXXXXXXXXXXX%%%%%%%XXXXXXXXXXXXXXX%%&&********+++++*********************&&%%%%%%&%%XXXXXXXXXXXXXXXXXXXXXXXXXX%&&%%%%&*++++*++**++++++++++++++++++++++++++**********&%%%%X%%XXX%%%%%%%%%%%%%%%%%XX%%%XXXXXXXXXXXX%X%&&%%&%&&%%%%%%%%%%%%%%%%%%%%%%%%%XX%%%%XXXXXX%XXXX%%%%%%%X%&%XXXXXXXXXXXXXX%%%%%%%%%&*&%%&&&&&&&&&&&&&&&&&***&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%XXXXXXXXXXXX%%%X%%%XX%&/( '''' '' ' '''''' '' '' (*/++/+++''' /+///+''''' '(*////+( ''
' '''(***+////+*****&+'''' ' ''''' ' +****++***&%*****&*****&%&&&&%XXXXXXXXXX%%%%%%&%%%%%XXXXXXXXXXXXXXXXXXXX%%%%%%XXXXXXXXXXXXXXXX%%&&&&***************+*****************%%%&%%&%XXXXXXXXXXXXXXXXXXXXXXXXXX%&&&%%%%&++*++*+***+*++++++++++++++++++++++++++*********%%X%%%XXXXX%%%%%%%%%%%%%%%%%%%%XXXXXXXXXX%%%%%&&%%&&%&&&%%%%%%%%%%%%%%%%%%%%%%%XXX%%%%XXXXXX%XXXXX%%%%%%%%%%XXXXXXXXXXXX%%X%%%%%%%%&%%X%%&&&&&&&&&&&&&&&&***&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%XXXXXXXXXXXXX%%%%XXXXXX%&/ '' ''' ' '/+/(' '''' ' ''*++//++*(' '(+///+('' ' '+////++'''
' ' +*++////+*&*****' '' ' ''''' /**++&******&&***&%&**&&&%%%%%%XXXXXXXXXXXXX%%%%%%%%%XXXXXXXXXXXXXXXXXXXX%%%%%%XXXXXXXXXXXXXXXX%%&&&&******+++++**********************&%%%%%&%XXXXXXXXXXXXXXXXXXXXXXXXX%&*&%%%%&*+**+++*******+++++++***+++++++****++++*********%%%%X%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXX%%%%&&&%&&%&&&&%%%%%%%%%%%%%%%%%%%%%%%XXX%%%%%XXXXX%%XXXXX%%%X%%X%&%XXXXXXXXXXX%%XX%%%%%%%%%%X%%&&&&&&&&&&&&&&&&***&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%XXXXXXXXXXXXXX%%X%%%%%%%XX*' ' '''' ''(+***/'''' ' ' /*+/+//*/' '(+///+/''' '/+(///*( ''
' '' ' /***+/++++******'' ' ' '''' '(&****%%&*&&**&**&&%%&%%%%%%%%%%%%%XXXXXXXXXX%XXXX%%%%XXXXXXXXXXXXXXXXXXXXX%%%%XXXXXXXXXXXX%%%&%&&&&&******+++++++++++******************%%%%&%&XXXXXXXXXXXXXXXXXXXXXXXXX&**&%%%%&++****+*****************+++++++*****************&%%%%%%%&%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXX%%&&&&&&%&&&&&%%%%%%%%%%%%%%%%%%%%%%XXX%%X%%XXXXXXXXXXXXXXXX%%%%%%XXXXXXXXXXX%%XX%%%%%%%%%%X&%&&&&&&&&&&&&&&&&***&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%XXXXXXXXXXXXXXXXX%XXX%%%%%%%'''''''' ''/++++*+'''' ' '(*+++//++( ''+///++''''(+(///++'''
' ' '' '+***+++/+*****&'' ' '''''' *&***&&%&***&%%&&%%%%%%%%&&%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXX%&******************+++++++******************&%X%&%&XXXXXXXXXXXXXXXXXXXXXXXX%**&%%%%%*+**+**+*&***************++++++++++*******+****+**XX%%XX%%%%%%%%%%%%XXXXXXX%%%%%XXXXXXXX%%%%%&&&&&%&&%&&&&%%%%%%%%%%%%%%%%%%%%%%XXXXXX%%XXXXXXXXXXXXXXXXXX%%%%XXXXXXXXX%X%%XX%%%%%&%%%%%&&&&&%&&&&&&&&&&&&***&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%XXXXXXXXXXXXXXXXXX%%%%%%%X%%( '''''' ''/+++/+*+( ' ' ''*+//++/+/'''+////+'' (+/////*( '' '
(****+///*****&( ' ' ' '' ' /%***%%&%%&*%%%%%%%%%%&&&&&&&&%%%%X%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXXX%%&******************************************&%%&%%%XXXXXXXXXXXXXXXXXXXXXX%**&%X%%%%*********&***************+++++++++++++****+**+****&X%%XX%%%%%%%%%XXX%%%%%%%%%%%XXX%X%X%XX%%%%&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%XXXX%X%%XXXX%%%%%%XXXXXXX%%X%%%XX%XXXXXX%%%X%%X%%%%%%%%%%%&%&&&&&&&&&&&&&&***&&&&&&&&&&&&&&&&&&&%&&%%%%%%%%%XXXXXXXXXXXXXXXXXXXX%%%%%%%XX(' '''' ' ' /+++++**/'''' ''(*+/+++///((+////+/('++(///*( '
' '+***+///+****&/ ' ' ' '' '&&**&%&%%%%%%%%%%&&**********&&*&&%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXX%%XX%&******************************************%%*&&%XXXXXXXXXXXXXXXXXXXXX%*&%%XXX%%%********&&****************++++++++++***+**********&%X%XX%%%%%%XX%%%%%%%%%%%%XXXX%&XX%%%X%%%%&*&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%XXXX%X%%XXXX%%%%%&&&%XXXXXX%%%%XXXXXXX%XX%%XX%%%%%%%&*&%&&&&&&&&&&&&&&&&&&***&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXX%%%%%%%*%+ ' '' ' '/*+++++++'' '' (&+++/+++**+*+///+++++///(++( ' '
' (**+++/++**&*&/ ' '' ' '( /%*&&%%%%%%%%%%%%&*+***********&&&*&%%X%%%%%XXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXX%*&&****************++++**********************&&*&&%XXXXXXXXXXXXXXXXXXXXX%%XXXXX%%%&********&&*******************++++++++*****&&*+*****%%%%X%%%%%%%%%%%%%%%%XXXXXXXX%&XX%XXX%%%%&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%XXXXXX%%%X%%%%%&&&&&&&%XXXXX%%%%%XXXX%%X%%%XXX%%%%&&*++&%%%&&&&&&&&&&&&&&&&***&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXX%%%%%%&+%* ''''' ' ' '+*+++++*+''( '+*+++++/**&&*++///+*+(/(/*(' ' '
' '+*+*++//+***&+' ' ''''' ''&**&%%%%%%%%%%%&******************&&*&%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXX&**&****&************++++**************************&&%%XXXXXXXXXXXXXXXXXXXXXXXXXXXX%%&+*******&***&&*********++*******+++++****+*&&******%%&%%%%%%%%%%%%%%XXXXXXXXXXXX%%XXXXXX%%%&*&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%XX%%XX%%&%&&&&&&*****&%XXXXXX%%%%X%%%%%XXXX%%XX%&*++++/*%%%&&&&&&&&&&&&&&&&***&&&&&&&&&&&&&&&&&&&%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXX%%%%%%%%&%* ' '''' ' '' '+*+++++**''(''/*++++++*******+//+////(++' '' '
' '(*****//+***&+'' ' ' ' ' /&*%%%%%%%%%%%%&***********&&%&&&&&&**&&&%%XX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXX%&*****&**********************************************&%&%XXXXXXXXXXXXXXXXXXXXXXXXXXXX%%&********&***&*******+++++++***********+*****&&*****&%%&%%%%%%%%%%XXXXXXXXXXXXXXXXX%XXXXX%%%&*&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%X%%%%XX%%%%&&&&&****+*&%%XXXXX%%%%X%%%%%XX%XXX&*++/////*%%%&%&&&&&&&&&&&&&&***&&&&&&&&&&&&&&&&&%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%*'' ''''' '' '''**+++++**('(''+*+++++*&******++*/////+('''' '
' ''+***+///+***+ ' ' ''''''''' ' ' '*&%%%%%%%%%%%%&*****&&&&&&&*+++++*&&&&&&&&&%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&****&&&&&&*********************************************&&&%XX%XXXXXXXXXXXXXXXXXXXXXXX%%%%&********&***&******+++++++++++***************&&*****%%%%%%%%%XXXXXXXXXXXXXXXXXXXXX%XX%%%X%&&&&&&&&&&&%&&&&%%%%%%%%%%%%%%%%%%%%%X%%&%XX%%X%&&&&&**&&**+*&%XXXX%%%%XX%%%X%%X%%*+/++++++**%%%&&&&&&&&&&&&&&&&***&&&&&&&&&&&&&&&%%%%%%%%%X%%XXXXXXXXXXXXXXXXXXXX%%%%%%%%%&&&&* '''''' ' ' ' '(+**++++**((''(**+++*&*&&&***++*+////+(''' ''
' ' (****+//++**+ ' ' ''''''''''' ' /%&%&%%%%%%%%&*+******++**+++++///++*&&%&&&**&%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%**&&&&&&&*&&&&&&****************************************&&%%%%%XXXXXXXXXXXXXXXXXXXXXXXXX%%&********&&*&******++++++++++**+***************&&&***%%%%X%%XXXXXXXXXXXXXXXXXXXXXXX%XX%X%X%&&&&&&&&&&&%&&&&%%%%%%%%%%%%%%%%%%%%%X%%%%XX%%%&&&&**++**&&*++&%XXXX%%%XX%%%XXXX*//+++++*&&&&%%%%&&&%&&&&&&&&&&&***&&&&&&&&&&&&%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXX%%%%%%%%&&&&&&*' ' '''' ' '' '''+*++*++*+*//+&****&&***&********++/++''' ''
' '' '+*+**+//+**+ ' ''''''''''''' ' '+X%%%%%%X%%%&*****&+/+**+/+++///+++++++*&%&&&&&&%X%%XXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%&&&&&&&&&&*&&**********************************&*****&&&&&&XXXXXXXXXXXXXXXXXXXXXXXXX%%%&*******&&&*&&*&**+++++**+++++******************&&***%%&%XXXXXXXXXXXXXXXXXXXXXXXXX%X%XXX%%%&&&&&&&&&&&%&&&&%%%%%%%%%%%%%%%%%%%%%X%%%%XX%%%&&&******+****/*%XXXXX%%X%%X%XX%*++**+**&&&**&%&%%%&%&&&&%&&&&&&&***&&&&&&&&&&%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXX%%%%%%%&&&&&&&+ ' ''''''' '' ' ( '*&+++++**&%&%&&&&&&*&&&&******&&****''''''
' ''(****+///**+''' ' ''''''''' '%%%%%%%%%%%&****&&+++*+/+*++++++++++++++*&X&&&&&&&%X%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%&&&&&&**&&&&**************************************&&&&*&XXXXXXXXXXXXXXXXXXXXXXXXXX%%&%****&***&*&*&&&*+++**++++++**++*******&********&&&**&%%%XXXXXXXXXXXXXXXXXXXXXX%XXXX%%X%%X&&&&&&&&&&&&%%&&&%%%%&%%%%%%%%%%%%%%%%%%&%%%X%%%%%%%&&&&&**+++++&XX%XXX%%X%%XX%&&**&&&&&&&****%%%&%&%&++&%&&&&&&&***&%&&&&&&%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXX&*X%%%%%%&%%&&&&&&+' ' '''''''' '' ' ' ' ' ' '*&+++++*&&&%&&&&&&&&&&&&&***&&&&+*&(''' '
' ' '''+***+///+*+' ''' ''''''' '' (%%%%%%%%%%&****&&++**+++**+++++++++++++++**&%%&&&&&%X%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&&&&&&&&%%%&&&*&&&**********************************&&&&&&%XXXXXXXXXXXXXXXXXXXXXXXXXX%%%%********&*&*&&++*&&**&******+++******************&***%&%XXXXXXXXXXXXXXXXXXXXXXXX%&XX%%%%%&&&&&&&&&&&%%%%%&&%%%%%%%%%%%%%%%%%%%X%%&&&%X%%%%%%%&&&&&&&&&&*+*XXXXXX%%XXXX%&&*&&&&&&&*&&&**%%%%%%%*++&&&&&&&&%***&&&&&%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXX%('&&&%%%%%&&&&&&&&+' ''''' ''' ''' '' ' ' '' (*&++++**&%%&*&&&&&***&&&&&%&&*&&**/ ''''''
' ' '' (*++*+//+**' ' ' ''''''''''' +%%%%%%%%%%****&*+++*+/+*+++++++++++++***++*++*&%%&&&%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X%&&&&*****&&%%&************************************&&&&&&&%XXXXXXXXXXXXXXXXXXXXXXXXXX%&%%***&***&&*&&&&*&**+*****&&**+**********&&********&&*&%&%XXXXXXXXXXXXXXXXXXXXXXXX&&%X%%%%%&&&&&&&&&&&%%%&%%%%%%%%%%%%%%%%%%%%%%X%&&&&&%X%%%%%%&***&&*&&&&&&XXXXXXX%%X%%&&&&&&&&&&*+*&***%%%%%%%*++&&&&&&&&&&**&%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXX*+%%&%%%&%%%&&%&&&*+++++++++//('''''''' '' '' ' '''(*&/*++&&%&&&&&***++*&&&&&&&**&&*&+ ' ' '''
' ' '' '+****+//**' '' ''''''''''''' *%%%%%%%X%&***&++++*+++*+//++++++++*+++++**++****&%%&&%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&&&%%%&**&&******************************************&&&&&&&%%%XXXXXXXXXXXXXXXXXXXXXXX%&%&&******&&&&&&&*&*++**+***&*************&&*********&&&%%%XXXXXXXXXXXXXXXXXXXXXX%X%%%X%%%%%&&&&&&&&&&&%%%*&%%%%%%%%%%%%%%%%%%%%%X%&&&&&%X%%%%%%&*********&%%X%XXXXXX%X&&&&&&&&**&&+++&&&&%%%%%%%+++&&&&&&&&&&**&%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXX%X%%X%%%%%%&%%%&&*+///((((((//+++++**++++/++( ' '(''(*&+++&&&&&&&*++*+**&&&&*&&*&&****( ' '''''
' ' '' (****+///* ''' ''''''''''' '&%%%%%%%%&****+//+*+/+**//+++/++++++++++*****++*&&&&&&&&%X%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&**&&%%%&&&&***&****&&&&&&&&&&&&&*********************&&**&%%%%%%XXXXXXXXXXXXXXXXXXXX%%&%&&*******&&&&&&**+***+****&&&************&&*****&**&&&X%%XXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%&&&&&&&&&&&%%%*&%%%%%%%%%%%%%%%%%%%%%X%&&&&&%X%%%%%&&&&*****+++*&%XXXXXXX%X&*&&&&***&&&+++&&&&%%%%%%&+++&&&&&&&%%%&&&%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%X%%%%%%%%%%%&*+/((((((/((((((((((((////(/++( '' '' ''' '&*++*&*&***+++++*&&&&&**&*&&***&+ ''''''''''''
'' ' '*****+/+*(' ' '''''''' '' /&%%%%%%%%&*&*+/+++*++**+/++/++++++***&&&&&&**+++*&%%%%&&&%X%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&&&&&&%%%&*&&&***&&%%%%%%%%%%&&&&&********************&&&*&%%%%%%%%XXXXXXXXXXXXXXXXXX%%&%*&&******&%%%%%%&**********&&************&&&********&&X%%XXXXXXXXXXXXXXXXXXXXXXX%X%%&&%%%%&%&%&&&&&&&%%%&&%%%%%%%%%%%%%%%%%%%%XX%&&&&&&%%%&%&&&&&*****++++*%XXXXXXXX%&&&&***&&&&&+*+&&&%&%%%%%*++*%%%%%%%%%%&%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXX%%X%%%%%%%%*/(///////(/(/////((((((/(((/+/' '' '''' '' '&**++*++++++++*&&&&*&&*&&&*&**&*'' '''''''''''
' ' /*****+++/' ' ''''''''' ''*%%%%%%%%&**&+/++++++**+/++/+++++*&&&********+***+*&%%%%%&&X%%XXXXXXXXXXXXXXXXXXXXXXXXXXX%&&&&%%%%%%**&&**&&%%%X%%%%%%%%%&&&********************&&&&&&&%%%%%%%%%%XXXXXXXXXXXXXXXX%%&&**&&*****&%%%%%%%%&*&&*****&&&************&&*****&*&*&%%%XXXXXXXXXXXXXXXXXXXXXX%%X%&&%X%X%&%&%&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%XX%&&&&&&%%%%%&&&&&*****+++**&XXXXXXXX%%&***&&&&*&&+*+&&&%%%%%%%*++*%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXX%%X%%%%%%%&+((/////////////(/////////((/+/'''' ' '''''' ' '&+++++++++*&&&&**&*&&&&&&&&**&&(' ' '''''''''''''''''
' ' ' '**&**+//+('' '''''''''''''&%&%%%%%&**&+++/++/++**+///+++**&&*+++++++++++******&%%%%%&&XX%%XXXXXXXXXXXXXXXXXXXXXXXX%&&%%%%%%%&***&&&&%%%XX%%%XXXXXX%%&&*******************&&&&&*&%%%%%%%%%%%%%XXXXXXXXXXXXXX%%&&***&*****&%%%%%%XX&**&&*****&&&***********&&&*****&**&%%%XXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%X%&%&%&&&&&&%%%%%%%%%%X%%%%%%%%%%%%%%%X%%&&&%%&%%%%%%&&&&***+++++++*XXXXXXXXXX&&&&&***&&&+++&%&X%%%%%%+++*%%%%%%%X%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%X%%%%*/(////////////////////////((/+/''' ' '''' ' '' ' ' (*+*+++++*&&&%*/*&*&%&**&%*&**&+''' '''''''''''''''''
' ' '''' (&***+//+/'' '' '''''' /%%%&%%%%*&&++*/+++++**+//++/+*&*+*+++***&&&******+**+*%%&%%&%XX%%XXXXXXXXXXXXXXXXXXXXX%%&%%%%%%%%%***&&&%%XXXXXXXXXXXXX%%%%%%%&&&*****+*&****&*&&&&&&&%%%%%%%%%%%%%XXXXXXXXXXXXXXX%&&***&&&**&%%%%%%%X%%&**&&*****&&&***********&&********&%&%X%%X%X%X%%%XXXXXXXXXXXXX%%%%%%%%&%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%X%XXXXXXXXXXXXXX%%%%&&*+++/+++%X%XXXXXXX%&&**&&&%%&+*+&%%%%%%%%&++**X%%%%%X%%%%&%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X%%%X%*////////////////////////(//(/+(' '''''''''''' ' ' ' ''''/*+*++***&&&&&/+&&&*&&&%%&*&&*&( '''''' ''''' ''''
'' ' ' '''' (*****+/++( '''' '''''' +%%%&&%%&&*+/+*+*++++&*//+++*&**+*++**&&&&&&&&&&&***+*+*%&%%%&%X%%%XXXXXXXXXXXXXXXXXXXX%%%%%%%%&%%*+&&%%XXX%%XXXXXXXX%%%%%%%%%%%X%%%&*******&&&&&&&&&&%%%%%%%%%%XXXXXXXXXXXXXXXXXXX%&&****&&&*&%%%%%%%%%X&*+*&&*****&&***********&&&***&***&%%%%%%XX%XXXXXXXXXXXXXXXXXXX%%%%%%%&%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%X%%X%%XXXXXXXXXXXXXXX%%%%%%&&&&**+++%XXXXXXXXX%***&%%&&&&+*+&%%%%%%%%*++*&XXX%X%X%%X%%%%%X%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%X&///+////////////////////(//(/+('''' '' '''' ' ' ' ' '''''''+*+++*&&&&&+**++*&*&&&&&&&&*&&/'' ''''''' '''''
'' ' ' '''' +*****/++/ ' '''''''''''&%%%&&%&*&+//+++*+++*&+/+/+**+*++********++****&&&&*++***%%*%&%%X%%%XXXXXXXXXXXXXXXXXXXXXXX%%%%%%*+&%XXX%%XXXXXX%%%%%%%%%%%%%%%%%%X%*+*&**&&&&&&&&&&&%%%%%%%%%XXXXXXXXXXXXXXXXXXXXX%&&******&&&%%%%%%X%%X%&**&&*****&&&***********&&**&&**&&%%%XX%%X%%XXXXXXXXXXXXXXXXXXX%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XX%X%%XXXXXXXXXXXX%%%%X%%%%&&&&&&&*&XX%XXXXXXXX%%%%&&**&&+++*%%%%%%%%*+++%XXX%%%%%%X%%%%X%%XX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%+//++//////////////////////(/*/''' ' ' ' ' '''' ' '''(*+++**&&&&//**++**%%&&*&&&&&&*'''''''''''' '''''''
' '( ''' ''''' /&****++++(''''''''''' (%&&%&%&&&+/+/++*&+++**/+++*&+/+*++**+*************&&&***+&%&&&&%XX%%XXXXXXXXXXXXXXXXXXXXXXXXX%%X&+&XXXXXX%&*******+**&%%%%%%%XXXXX%*+*&&&&&&&&&%%%%&&%%%%%%%%XXXXXXXXXXXXXXXXXXXXXX%&&*******&&%%X%%XX%XX%&*********&&&***********&&**&&***&%%%X%X%X%%%%%%%XXXXXXX%%%%%%%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XX%%%X%**&&&%%%X%&*&&&*&&&&&&&&&&&&&XXXXXXXXXXX%%X%****&%+++*%%%%%%%%++++%%%XXXXXXXX%%%%%&&XX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%*/+++/////////////////////(////+/(' ''' '''/+****/'''''/*++*&%%&**+**+/*&%&&&&&&&&*&%/'''''''''''''''''''
' ' ' ''' ''+&*****++++'''' '''''' +%&&&%%&&*//++*+*&+++&+++*&*+**++*************&***++*&%*+***&%&&&%XX%%%%XXXXXXXXXXXXXXXXXXXXXXXX&*%X%XX%%&*+++++++++*&&&&&&%%%&&&X%*+*&&&&&&%%%%X%X%&%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXX%%&********&&%X%%X%XX%%%**********&&&********&**&&******&%%%&*%%%X%%%%%%XXXXXXX%%%%%%%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%X%XX%%X&********&%%&*++**++++++*&%%%%X%XXXXXXXXXX%%&****&%+++*%%%%%%%&++**%%%XXXXXXX%%%%%&**%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%+/+//++//(/////////////////(///(/++(''' ' '''+++++**+*+/('**++*&%*+&*/+**&%&&&&&&&&&&&&&/''''''''''' '''
'' '((' ' ''' ' +&&&****++*(''' ''''''&%%%%%&**//+++***&++**/++*&*+**+**&&*%&***&*&&**+*++++*%%*+**&&&&&%XX%%%%XXXXXXXXXXXXXXXXXXXXXXX&%XX%X%&&*++++++++**&&&&&&&&&&%%%%*+**&&&&%%XXXX%%%&&%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXX%%%&********&%XX%XXX%&&%***&&******&&********&**&&&*****&%%%*/%%%%%%%%%%%XXXXXXX%%%%%%%%%%%%&%%%%%%%%%%%%%&&%%%%%%%%XX%%%%%%XX%%X*++*******&&&&&*++++++*&&&&&*&XXXXXXXXXXXXXX&****&%++++%%X%%%%*+++*%%%%%%XXXXXXX%%*+*%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%&/++//+///////////////////////((//(/++(''' ' '*///+++++**&++&&**&&&&+&*+&%%+*&&&&&&&&&&&%*+//+++++++++++++//
'' /*&(' '' ' ''' ' *&&&****+++/''''''''' (%&&%%%*&+/++++**&&++**++**+*****&&&&*&&**&&&&%******++++*%&+*&&&&&&%XX%%%XXXXXXXXXXXXXXXXXXXXXX%%XX%XX&***+++/+****&&*&&&&&&&&&%%*+*&&&&%%XXXXXXXX%&%XX%%%%%%%%XXXXXXXXXXXXXXXXXXXXX%%%&******&&&%%%XXX%&**%&**&&&*****&&************&&&****&%%%*/%&&%%%%%%%%%XXXXX%%%%%%%%%%%%X&%%%%%%%%%%%%%**%%%%%%%%XXX%%%%%X%%%%&*&&&&&**&&%&&&&++*++*&%%**++*XX%XXXXXXXXXXX&****&&++++%%X%%%%*+++&%%%%%%%%%XXX%%*+**XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X%%%*/+++////////////////////////////////+*+(''' '''+/+++/++++/+*+**&&&&&&+&&%%*+*+*&&&&&&&&&&&%%&**&&***&**&%%%%%
'' /&&/ '' ' '''' **&&*&**+/+*('''''''' /%&&&%&*&+//+++**&&*+&++*&****&&*&**&**&&&&***&*&&&*+**+*++&&**%&&&&&%XX%%%XXXXXXXXXXXXXXXXXXX%X%%%XX%X&+*++*+/+*&&*&&&*&&&&&&%%%&+*&&&&%XXXXXXXXXX%&X%XX%%%%%%%%XXXXXXXXXXXXXXXXXXXX%%%&&&&&*&&%&&*&%%&***&%&**&&&******&*******&**&*&&***&**%X%*(%%%&&%%%XX%%XXX%%%%%%%%%%%%%%X&%%%%%%%%%%%%%**%%%%%%%%XXX%%%%X%&%%%&XXXXXXXX&&&&*&%*++++*%X&%%%&*%XXXXXXXXXXXXX&*&*&&&++++&%%%%%&++++%%%%%%%%%%%%%&**+*&XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X%%%+++//+/////////////////////////////////+*+('' '' /++/***+++++++**&&&&&&&%%&&&++++*&&&&&&&&&&&&&********&&%%%%%%
'' ' ' '+&&/ ' '' ' ' '' ''''' *&&&&*****+*/ ''''' ' *&&&%&*&&+/++++**%&***++&&**&&+&*******&*****&%&&&&++*****++&%*&&&&&&&%%%%%%XXXXXXXXXXXXXXXXX%%%%X%&%%X**+++++++&%&&&&&&&%&&&&&X&++*&%%%%XXXXXXXXXX&%XXXX%%%%%%%%%XXXXXXXXXXXXXXXXXXX%%%&************&%&***&%***&%&********************&******%%X/(%%&%%&&%%%%XXXX%XX%%%%%%%%%%%X%&%%%%%%%%%%%%**%%%%%%%%XXX%%%%%XXXX%%XXXXX%&%%%&&&%*+++++%%XXX%%%%%XXXXXXX%%XXXX&*&&&&%++++&%%%%%**++*%%%%%%%%%%%%%*+*+*%XXXXXXXXX%%%%XXXXXXXXXXXXXXXXXXXXXXXX%%%%++/+/////////////////////////////////////+*(' ''' ' ''''(/***+++++**&&&&&&&&&&&&&*++++***&&&&&&&&&&****&&%%%%%%%%%
'' ' (**&(' ((' '' ' ''' ''' ''+&*&&***&**+*(' '' ('(&%&%%&*&&//++++*&&&****&&**&&*+&*****************&******+*++*%%&&&&&&%&%%X%%%XXXXXXXXXXXXXXX%%%%%%&%X%%*+++*+++*&&&&&&&&&%&&&%%*++&%%%%&&XXXXXXXXXX%%XXXX%%%%%XX%%%XXXXXXXXXXXXXXXXXX%%%&************&%*****&***&%&******&*************&&*****%X&((%%&&&&&&%%%%%XX%%%%%X%%%%%%%%%%&%%%%%%%%%%%%+*%%%%X%%%XXXX%%%%XXX%&%%X%XX&**&&&&&&*++*+*&%X%X%*%*&XXXXXXX%%XXXX%*&&&&%++++*%%%%%*+++*X%%%%%%%%%%X&**+*%XX%XX%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%%%%%+++////////////////////////////////////////(/+(''(' '' ''' '/*&+++++*&&**&&&&&&&&&***++++**&&&&&&&&%&*&%%%%%%%%%%%%
' ''' /*&+' (/ ''' ''' ' '''' ' +&**&&*&&**+*/'''' ( (%&&%&*&&&//+++++&&&&&+*&&&&&+++**++****+********&&&&%%*******&%%%%&&&&&%%%X%%XXXXXXXXXXXXX%%%%%%%%&%%%%&*+++**&&&%%%%%&&%%%%%%&+*&%%%&&&&XXXXXXXXXX%XXXXX%XX%%XX%%%%XXXXXXXXXXXXXXXXXX%%%***********&%&**&*&****&%&&*****&&************&&*&&**%%/'(&&%&&&&&&&&%%%XX%%%%%%%%%%%%%%%&%%%%%%%%%%X%+&%%%%X%%%XXXXX%%XXXX&+&XX%XX&/+++***++++++&&%X%X&*%**XXXX%XX%%%XXX%&&&&%%*++++%%%%**+*+&X%%%%%%%%%X&+**+&%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%+/+/+///++++/////////////////////////////////+*+(''''' ''''''(*&*+++**&&&*&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%
'''''' ''(&*&(' /* ' ''' ' ' ''''''' +&&**&&****++*((''' +&*%%&*&&&+/+/+++*&&&**&*&&**++*+++*****************&%&**++**+*&%%%%%&&%&&%%X%%XXXXXXXXXXX%%%%%%%%%%%&%&&*++***&&%%%&&&&&%%%%%&**%%%&&&%&%XXXX%XXXXX%XXXXX%XXXXX%XXXXXXXXXX%%XXXXXXXXXX%%%********&**&&&****&****&%&&*****&&************&%**&*&%&''(&&&&&%%&&&&&%%XX%%%%%%%%%%%%XX%%%%%%%%%%%XX&+&&X%%%%%%XXXXX%%%%XX&+*%%%%%*/++++**+++++*&&&XXX*&&+*%XXX%XX%%%XXX%&&&&%%*++++%X%%**+*+&%%%%%%%%%X%+***&%X%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%*/+++//+*&&&*+++///////////////////////////////+&+( ''''''' '''(*&++**&**&&&&&&**&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%
'' '' '***+ '+&('' '' ' '''''' ' +&&&&&&**&**+*/' '( '*%&%&**&***+++++++&&&***+&*+++*+********************&%%&&%&***+*%%%X%&&%&&&%%XX%XXXXXXXXX%%%XX%%%%%%%&%*++****++*&%&&&&&*&%&&&&&%%&&&&&%&%XX%%%XXXXXXXXXXX%XXX%XXXXXXXXXXXX%%XXXXXXXXXXX%%*******&**&&&****&&&***&%&&*&***&&************&%&***&%+'('&%&&%%%&&&&&&%%X%%%%%%%%%%%X%%%%%%%%%%%%%X%&+*&XX%%%%%XXXXXX%%%XX*+*&XX%&&&&*+*&*+++++*&&&&%%**++*%XXXXXXX%%XXXX&&%%%%*+++*%XX%*++++&%%%%%%%%X%***+&%X%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%&///+//*&&&&&****+///////////////////////////////+&*('''' ''' ''(+*+++*&&*&**&&&&&&&&&&&&&&&&&&&&&&&&%X%%%%%%%%%%%
' ' '''' +&**''**( (((( '' ' '''''''' ' +**&&&&**&**++*''(''(&%%%**&&***+++++++&%%&&*+*+++***************************&%&******%%X%%%&&&&&%%XXXXXXXXXXXXXXXX%%%%%%&%%+***++*++&%%&&&&&&&%&&%%%%&&&&**&&%%%%%%XXXXXXXXXXX%XXX%XXXXXXXXXXXXXXXXXXXXXXXXX%%&********&%&***&&&&&*&*&%&**&*&*&&************&%&***&%/'( *%&&%%%&&&&&&%%%%%%%%%%%%%%%&%%&%%%%%%%%%X%&+*&%%%%X%%XXXXXX%%XX%+*++*&&***+*+*&++++++*&&%***&+++&XXXXXXXX%%XXXX%&%%%%*+++&%%%&&+++*%%%%%%%%X%*+*+&%%X%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%&+/++/+&&&****+***+++++++++++/////////////+//////++*&*/' ''' (' ''+*&**&&&&&&&&&&&*&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%
'' (//+/(''/&**/(&&/(/++*+( ' ' '''''''''''++*&&&&&&****+*/'' '(&%%&*&&*****++++***&&&&+++++++******************+******&%X%&***+*&%XXX%&&&&&&%%XXXXXXXXXXXXXX%%%X%%%&%%+*+****++&&&&&%%&&%%%%%%&&&&&&++&%%%%%XXXXXXXXXXXXX%XXXXXXXXX%%%XXXXXXXXXXXXXXXXX%%&*******&&&****&&&***&&&%&**&***&&&***********&&%**&&%/'( +%&&%%&&&&&&&%%%%%%%%%%%%%&&&%%&%%%%%%%%%%X%**&%%%%%%%XXXXXXX%%X&+++*+++++++++**++++++*&&&&++*+++%X%XXXXXXXXXXXX%%%%%%&++*&%%&&&*+*&%X%%%%%%%*+***%X%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%&*++//+&&&&&&&+++++++++++++***+++++++////////+//++/+/+&&/' '' ''' (/+*&%&&%%&&&&&&&&&&&&&&&&&&&&&&%%&&%%%%%%%%%%%
'' '(+*+++++*++**&++**/++(((++' ' ' '''''''''''/+*&&&&&**&&*+++''' (%&%*&&&+**&&*+*&**+*++*++++**+*+***************&*********&%%%&****&%X%%%%&&%&&&%%XXXXXXXXXXXX%%XX%&%%%&******+++*****&&&&&&&%&&&&&&+++*%%X%%%XXXXXXXXXXXXXXXXXXXXXXXX%%%%%%XXXXXXXXXXXXXX%%&&*&**&&&**&*&*&**&**&&%&**&*&*&&&***********&&%*&&%%('''/%&%%%&&&&&&&%%%%%%%%%%%&&&&&%%&%%%%%%%%%%X%&+*%X%%%%%XXXXXXX%%%%++++++++++++**++++++++*&*%*+++++%XXXXXXXXXXXXXXX%%%%%%++&&%%&&%&*&&%X%X%%%%*+***%%X%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%&*+///+&&&&&&&&*******++++*++++++******++//+///++++/++/+&&+(' '''''' ''''((/+++*&&**++*&&&&&&&&&&&&&&&&&%X%%%%%%%%
''' '' '////////++*****&&**++((/(/*+' ' ''' '' '''' ''/%+*&&&%&*&***+*/'' +%%&*&&&+***&&&&%&*+++++++++++************+****&********++&%%%%%&*+&%X%X%%&&%&&&&%XXXXXXXXXXX%%XXX%%%%%&***+*******&&&&%%%&&&&&&**+++++&%%%%%XXXXXXXXXXXXXXXXXXXXXXXXX%%X%%%XXXXXXXXXXXXXX%%*&&&&&&******&&&&*****%&&&**&**&%*************&%**&%&'('((%&%%&&&&&&&%%%%%%%%%%%%&&&&&&%&&%%%%%%%X%%X%++%%%%%%XXXXXXXXX%%%*++++++++++*+++++++++++&+*&++++*X%XXXX%X***%XXX%%X%&%%&&&&&&&&&&&&&&X%%X%%***+*%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%&*+/++****++++++++++//+***+++++/////////+//++*++++****&**&&&/ ''''''''''' '(+&*++*&&&&&&&&&&&&&&&&&&X%%%%%%%
''' ' ''////////++++***&&+*++/((++//+*' ''''' ''' ''' '''''(&/*&&&&&&&*&*+++'''*%&&*&&&++****&&&&*++++++++++************+*++*&*++********&%%%%%%&&*&%X%%%%&&&&&&%%XXXXXXXXXXXXXXX%%%%%%**&&%%%%XX%%%%%%%%%%%%%%%&&&**&%&%%%XXXXX%%XXXXXXXXXXXXXXXXXXX%%X%%XXXXXXXXXXXXXXX%%**&*********&&&&&****&%&&***&**&%************&%%&*&%*'''' *%%&&*&&**&%%%%%%%%%%X%&&&&&&%&&%%%%%%%%%%X%&+&X%%%%XXXXXXXXXX%X*++++++++++++++++++++++&&+&*+++*X%XXXXXX*++*&%XXX%*+&%&&&&&&&&&&&&&&%X%XX%+*+*%X%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXX%%%%%&&**&&**+++/////////////+***++*+///////////+&+////((((((((((' '' ' ''''''''''''''''(&%&*+*&&&&&&&&&&&&&&&&&&%%%%%%%
'''' '///(///+++++*+**&+(*+/(/+&&&+/+/ ' '' ' ' '''''' (&+*&&&*+&*****+*/ '&%&**%%&+***&&&**++++++++++++****************%&+***********%%%%&%%%**&X%%X%&&&&&&&&%XXXXXXXXXXXXX%%%%%%%%%%XXXX%%%%%%%%%%%%%%%%XX%%%%%%%%X%%XXXXXXXXXXXXXXXXXXXXXXXXXX%%%%XXXXXXXXXXXXXXXXX%&**********&&&&&&****&&&*&**&**&%*************&%%&&X/''(('/X%&&&&&*&%%%%%%%%%%%XX%&&&&&%%%%%%%%%%%X%XX%+*X%%%%XXXXXXXXXX%%&++++++++++++++++++++++*&/+*+++*X%%XXXXX*++++****++*&&&&&&&&&&&&&&&&&X%%%&*+*&XX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXX%&*+++//////+++++**&**++/////////+****+**++/////////+*((' ''''' '' ' ''''''''''''''''(%X&&*+*&&&&&&&&&&&&&&&&&%%%%%%%
'' ''//((///++*******&+'/*/(+**++*&*(*+///(' '''''''''''' (%&%&&&*(&*&*&&***'(%%&**&&&****&&*+++++++++++++*************++*%&*+*+++*****+*%%%%%%%%&&*%X%X%&&&&&&&&&%XXXXXXXXXXXX%%%%%%%XXX%%%%%%%%%%%%%%%%%%%%%%X%%XX%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXXXXXXX%%****&***&&&&&&&&&***&&&*&&****&%*************&%%&%%(''''('&%&*&***&%%%%%%%%%%%XX%%&&&&%%%%%%%%%%%XXXXX&*%%%%%XXXXXXXXX%%%%+++++++++++++++++++++++**+*+++&X%%XXXXX&*++++++++*&&&&&&&&&&&&&&&&&&%%&&&**&XXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&*+/+//////////////////+***+/////////+**++**+++///////++*(''''''''''''''' '' ''''''''''''''/%%&%%*+&&&&&&&&&&&&&&&&%&&%X%%%
'' '(+(((/+++++*****&*((+++&*++++/+&&+******+/( '''' ''''''&&&&&%&'+&&&&&&+*(/%&***&&&&*&&*+++++++++++++++**********++**&%%*+*+*********&X%%%%&&%%%&%X%X%%&&&&&&%&&%XXXXXXXXXXX%%%%%%%%X%%%%%%%&&&&&&&&%&&&%%%%%XX%%%XX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXX%*******&&&&*&&&&&*&&&&&*&&****&%&************&%&%%*(''''( &&*****&%%%%%%%%%%%%%%%X%%%%%%&%%%%%%%%XXXXX%*%%%%%XXXXXXXXX&%%%++++++++++++++++++++/+++&+++++&X%%XXX%XX%&+++++++*&&&&&&&&&&&&&&&&&&&%%&%*&XXXXXXXXXXXXXXXXXXXX%%%%%XXXXXXXXXXXXXX%&+/+++++++++++/++///+///////////////////++**++**+++++//+/++*/('''' ' '''' ''''' '' ''' +X%&&%%**&&&&&&&&&&&&&&&&%%&%X%%
' ''*(((//++++*****&*((+++*****+/+++&*/*++++*&&*/(' '''''''(&&&&&%&((&&&&**+++*%&***&&&**&&**+++++++++++++**********+++*&%%*+***+***++**+*%%%%&++%%%%%X%X%%&&&&&&&&%&%%XXXXXXXXX%%%%%&%%%%%%%%%%%%%&&&&&&&&&%%X%%%&&%%%%XXXXXXXXXXXXXXXXXXXXXXXXXX%%XX%%XXXXXXXXXXXXXXXXXXXX&***&&&&&&**&&&&&&&&&&&&&&***&&%&*****&&*****&%%%%/'' ''''&&*****&%%%%%%%%%%%%%%%X%%%%%%&%%%%%%%%XXXXXX%%X%%%XXXXXXXXX**X%*/+++++++/++++++++++++++++++++&X%%XXX%XXX%&*++++*&&&&&&&&&&&&&&&&&&&&%%&%&%XXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%XXXXX%&+++++++++++++++++++////////////////////////+**++***++++++//++*(''''''''' ''' '''' '''''' *X%&&&X%*&&&&&&&&&&&&&%%&%%&&%%%
'/+'(////++******&+(+*/+/&&/(/(////&**&*+++++//*/(' ''' ' '(&&*&&&%('+&&&***++%%***&&&&&***&&*+++++++++*+***********++*&%%%%%XXXX%%%&&*++*&%%%&*+&%%%%%XXX%&&&&%&&%%&&%XXXXXXXXX%X%%&&%XXXXX%%%&%%&*****%%%%%%%&****&***&%XXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXX%&&&&&&&***&&&&&&&&&&**&&****&&%&*****&&&****&%%&&/(/(////%&&&&&&%%%%%%%%%%%%%%&%X%%%%%X&%%%%%%%%XXXXXXX%X%%%XXXXXXXXX&+%%&/++++++//++++++++++++++++++++%X%XXXXXXXXX%&***+*%%%&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%XXXX%*+*+++++++++++++++/+++///+////////////////////+**+*****+++++++++*/' '''' ' '''''''''''&%%&&%XX&&&&&&&&&&&&&%%%%&&%%&&%
'+'((////++******&//+*+*/&+(////////**+&*++++( /*+/(' '''' *&*&&&%/'(&&*&**++%&***&&*&%&&&**+++++++++++********+++***&%%%%%XX%%&&&%%%*+*+*%%%&***X%%%%XXX%&&&&%&%&&&%%&XXXXXXXX%%%%%XX%%%%%%X%&%&&*++++*&&&&&&+*%XXXX%&**&&&&%XXXXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXX%%%&&****&*&&&&&&&&&**&*****&&%&*****&&&***&&%%&%%%%%X%%%XXXXXXXXXXXXXX%%%%%%%&%X%%%%%X%%%%%%%%%XXXXXXXXX%%%XXXXXXXXX&+*X&+/++++////+++++++++++/+&+++++%X%XXXXXXXXXXX%&&%X%&&&&&&&&&&&&&&&&&&&&&%XXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%XXXX%*+****++++++++++++++++++////////////////////////+********+++++++++*('''' ' '' '' ' '''' ' ''(%%%&&%%%X%&&%&&&&&&&%%%%%%%&%%%&
'' (+'(/////+*******&(/*+*++&/+*&**/////+//&*+++/(++++++/('''' *&&*&&%/''+&****&+%&***&&&&*&&&*+++++++++++++**++*****++*&%%%%XX%&&&&****%**+*+&%%%&**&X%%%XXX%&&&&%&&&&&&&&%XXXXXX%%&%&&XX%&&&**&%%&%*++++++&&*&&+*%X%X%X%XX%&&*+**&&%XXXXXXXXXXXXXX&%XX%XXXXXXXXXXXXXXXXXXXXXXXX&*******&&*&&&&&&&**&***&**&%%&****&&&&****&%%%X%%%%%%%%%%X%%%%%%%XXXXXXX%%%%%%%%X%%%X%&%%%%%%%XXXXXXXXX%%%XXXXXXXXX&++%%+++//+//+++///++++++++*&++++*%XXXXXXXXXXXXX%%%%%&&&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%XXXXX&+***+++++++++++++++++++//////////////////////////+*******&*++++++++*('' '' ''''' '' '' '/%%%&&%%%%XX%&&%&&&&%%%%%&%%%%%%%
'' //((/////+******&*(/*+*/+&+*(+&&*+++**///&*++++++++++++/( ''+*&&&&%+''/&**&&*&&*****&&&&&&&+++++++++++++++****+++***+&%%&XX&&%X%%%***%&+++*&%%%&&**%%%%%XX%&&&&&&&&&&&&&&%XXXXX%%%%**%%&&&&***&%&&*++++++*&&&*+&X%&%&%&%%XXX%&**+**&&%XXXXXXXXXXX++*XXXXXXXXXXXXXXXXXXXXXXXXXX%*&******&&&&&&&&&*********&%%&****&&&&&***&%%%X%%%%%%%%%%%%%%%%XX%%XXXXX%%%%%%%%%%%%%%&%%%%%%%XXXXXXXXX%%%XXXXXXXXX&++*%+/+/////++////+++++/+*&*++++*X%XXXXXXXXXXX%&&%%&&%&&&&&&&&&&&&&&&&&&&%XXXX%X%XXXXXXX%%%%%%%%%%%%%%%%%%%XXXXXX&+**++**+++++++++++++++++/////////////////////////++**********++++++**''' '''''' '' ' '/%&%%%%%%%%%X%&&%%%%&&&&&%%%%%%%%
'' +/((////+*******&+//***/+&*//+**&*+*&*+/+&++++++++++++++*(''+&&&&&%* ''+&*&**%&*****&&&&*&&+++++++++++++*+++++**++*&&%&&%%&&X%%%%%&++%*+*++*%%%&&+*%%%%%%X%&&&&&&&&&&&&&&&%XXXX%&%%++&%&&&&&&&%%&&++++++++**&+*X%%&%&&+*&%%%XX&****+**&XXXXXXX%XX*+*%XXXXXXXXXXXXXXXXXXXXXXXXX%***&&***&**&&&&&****&&*&&*&%%&*&*&&&&&&**&&%%%X%%%%%%%%%%%%%%%%%%XXXXXXX%%%%%%%%%%%%%X%%%%%%%XXXXXXXXXX%%%XXXXXXXXX&+++%*//+//++///////++**+*&*+++++&X%XXXXXXXXXXX%&&%%%%&&&&&&&%%%%%%&&&&&&&%X%X%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXX*+***++++**++++++++++++++///////////////////////////*&&****&&**++++++*+'' ''''''' ' '''(%%%%%XX%X%%X%%&%&&&&%%%%%%%%%%%%
'' +(((////+********///*&+/**+/'+**%&***+&/+&/++++++++++++/+*+'/&*&&&&* ( (&*&*&&******&&***&&+++++++++++++*++*++*&&****%&&&%&*&%%X&%%++%++++++%%%&&*&%%%%%%XX%&&&&&&&&&&&&&&&%XXX%&X%+++&%&&&%%&&***++++++++++*+*%%%&%&&*&*%%%%&*********%X%XXX%&X%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXX&*******&&&&%&&**&&**&**&*%%&&*&*&&&&&&**&%%%XX%%%%%%%%%%%%%%%%%%XXXXXXX%%%%%%%%%%X%%X%%%%%%XXXXXXXXXXXX%%XXXXXXXXX%++/&&//+//++///////+/++++*+/++++%%XXXXXXXXXXXX%&&&&%%%%%%%%%%%%%%%&&&&&&&%X%%%&%%XX%%%%%%%%%%%%%%%%%%%%%%XXXXXXXX***&%&&*++++++++++++++++++///////////////////////////*&*****&&&**+++++&+'(' ''''' ''' '' '+X&%%%%XXXX%%%%&&%%%%%&&%%%%%%%%
'' +(((////+********//(*&//&*//(++*&&&*/+&/*&**++++++++++++//**/*&**&&*''''+&**%********&**&*+++++++++++++**++**++*&&&**%%&%%*/*%&&&&%+*&+++*++&%%%%%%%%%%%%XX%&&%&&&&&&&&&&&&%%%X%&X&++/+******+++**+++++++++++++*%%%%&&&&%%%XX&++++*****X%&XXX%&%%%%XX%XXXXXXXXXXXXXXXXXXXXXXXXX%&***&&&&%&&&***&*&**&***&%%&&&&&&&&&&&**&%XXX%%%%%%%%%%%%%%XXXXXXXXXXXX%%%%%%%%%%X%%X%%%%%XXXXXXXXXXX%X%%XXXXXXXXX%/+/+&+/////+////////////++++++/*X%XXXXXXXXXXXX%&&&&%%%%%%%%&&%%%&&&&&&&&%%X%%%%%%X%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXX&*&%%%%%%&*+++++++++++++++///////////////////////////+*&*****&&&**+++/+*/'' ''''' '' '' (%%%%%%%%XXXXX%%&&&&&%%%%%%%%%%%
'' //((////*******&&&++*+/+&+/+&*/**+&+/**/&*+++++++++++++++//*&&*&*&&*( ''(&+&&********&****++++*+++++++****+++++++*&**%&&%*//*%&*&&&+*+*+++++*%%%%%%%XX%%%%X%&&%&&&&&&&&&&%&&&%X%&X*++++++++++++++**+++++++++++++*&%%%%&&%XX%&*********&X&%X%X%%%%%XXXX%XXXXXXXXX%XXXXXXXXXXXXXXX%&&&&%%%%&&&**&&*&**&&**&%%&&&&&&&&&&&&&&%XXX%%%%%%%%%%%XXXXXXXXXXXXXXX%%%%%%%%%%%%%X%%%%XXXXXXXXXXXX%X%%XXXXXXXXX%+++/&+//+//+/////////++++++++++%X%XXXXXXXXXXXX%&&%%%&%%%%%&&&%&&&&&&&&&&%X%%%%%%%%%%X%%%%%%%%%%%%%%%%%%XXXXXXXXXX&*%%&&%%%%&*++++++++++++++++////////////////////////+/+&&***&&&&&**++*++*'''''''' '''' '/X%%%%%%%%%XXX%%%%&&&%%%%%%%%%%
'' //((////********&&&+*+/+&/+&*&*&++*++&++&/(/++++++++++++/++/+&&**&&&( '''+*&*&*****&*&*&*&*+++**&*&&&%%%%&*+++++++++++***+//+&%%%%**+++++++*+%%&&&&&%XXXX%X%%&&&&&&&&&&&%%&&&%X%&X+++++++++++++/+**+++**++++++++++*&%%%%%X&*+**+**+***%%&%%&%&&&%XXX%X%XXXXXXXXX%XXXXXXXXXXXXXXXX%%%%%%%&****&&**&***&*&&%%&&&*&&&&&&&&&%XXXX%%%%%%%%XXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%X%%%%XXXXXXXXXXXX%X%%XXXXXXXXX%+++/**+/+//+////////////++++++*X%XXXXXXXXXXXXX%&&&%&&&%%%%%%%%%%%%&&&&&&%X%X%%%%X%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXX&*&%%%%%&&%%**++++++++++++++///////////////////++///+/+&&&*&&&&&&&**+%&**+''''''' '''''''&%%%%%%%%%%%%XXX%%%%&&%%%%%%%%
'' (+((///++*****++&+&+**/++/***&&&+*+/*&+*%+//*+++++++++++++++++&&*&&&(('''(*&*******&*&*&&%*/+++****&%%%%X%%&*+++++++++++++/**&&**++++++++++++%%&&&**%%%XX%XX%&&&&&&&&&&&%&&%%%%%&%++++++/+++/++++*+/+&%%&+++++++*+++*********+**+*+***%&%X%&X%%%XX%XXX%XXXXXXXX%%XXXXXXXXXXXXXXXX%%%%%&&**&***&**&*+**&&%%%&&&*&&&&&&&&&%XXXX%X%%%%XXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%X%X%XXXXXXXXXXXXX&X%%XXXXXXXXX%+//++*+/+/////////////++++++++%X%XXXXXXXXXXXXXX%&&&&%&%%%%%%%%%%%&&&%&&&%X%X%%%%%&*+++++*&%%%%%%%%%%%XXXXXXXXXXXX&*%%%%%&&%%%%&++++++++++++++///////////////////++////+/+&&*&*&&&&&&*+*&+*&+ ''''' ' '' ''' (%%%%%%%%%%%%%%%XXXX%%%%%%&%%%
'''''' +/(////++**+++*&/*&+&/*/+&&&+&&*&++%&+&&***++++++++++++++++++*&&&&&('''''*&****&***&&**&&+*+/*+*+*%%XX%X%X%%***+++++++++++++++++++++++++++++&%&&%**%%%XXXX%%&&%&&&&&&&%&&%%%&%X%%+++++++++++//+*++++&%%&+++++++++++++++++************%&X%X%%X%XXXXXXXXXXXXXXX%X%XXXXXXXXXXXXXXXXX%%%&&*******&&*&**&**%%%&&*&&&&&&&*&&&%%XXX%%%XXXXXXXXXXXXXXXXXXXXXXX%%%X%%%%%%%%%XX%%XXXXXXXXXXXX%&%X%XXXXXXXXX%++++++++//+//////+++/+/++++++*XX%XXXXXXXXXXXXXX%%%&&&%%%%%%%%%%%%%%%%%&%%XXX%%%%%++*&&*+/+*%X%%%%%%%XXXXXXXXXXXXX&&%%%&%&&%&&&%&*++++++++++++++//////////////////++//++++*&*&&&&&&&&&*+*+(*&/' ' '' '''''' +%%%%%%%%%%%%%%%XXXXXXXXX%%%%
''''' (+((///++++++**&/+&+&*+&&*+*&%&&+**%**&&****++++++++++++++++++*&*&*(''''(*&******&**&**&&*&*++++*%%X%%%%%%%%&%*+++++++++++++++++++++++++++++&%%%%**%%XXXXXX%%&&&&%%&&&&&%%%%%%%%%*+++++++++//++*+///*&&*+++++++++++++++++************%%%X%%XXXXXXXXX%%%XXX%%%%%%XXXXXXXXXX%XXXXXXX%&&&&&&**&&&&&&***&&%%%&&&&&&&&***&&%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%X%%%%%%%%%%%%XXXXXXXXXXXXX%&%X%XXXXXXXXX%+++++++///////+++/////+//+/++&XXXXXXXXXXXXXXXXX%XX%%%%%%%%%%%%%%%%%%&&&&%%X%%%%%%&&%%%%&*+/+%X%%%%XXXXXXXXXXXXXXX&&%%%%%&%%&&%%%&*++++++++++++++/////////////////+*/++//+*&&*&&&&&&&&&&*&('++' ' ''' '''''''+X&%%%%%%%%%%%%XXXXXXXXXXXXX
'''''''/+((/+++++++**&++&**&**%%&&&*&&+*&&*&&&&***+**+*+++++++++++++*&*&*(''''/&*******&**&**&&&&+++++&XX%%%%%%&&&&%&+++++++++++++++++++++***+++++*&&%%**%XXXXXXXX%&&&&%%&&&&%%%%%%%%&%*+++++++++//+++///++*+++++++++++++++++++********+***&&XX&&%XXXXXXX%%%%XXX%*+%X%XXXXXXX%%%%%XXXXXXX&**&&&&&&&&&&*&&*&%%%&&&&&**&&**&&%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%X%%%%%%%%%%%%XXXXXXXXXXXX%&&%X%XXXXXXXXX%+++++++///////////++++*+++/++%X%XXXXXXXXXXXXXX%X%%XX%%%%%%%%%%%%%%%%%&%&&*&%%%%%%%%%%%%%%%+/*%XX%XXXXXXXXXXXXXXXX%&%%%%%&%%&&%%&&&*+++++++++++++//////////////////*+++/+++&%**&&*&*&&&***&''('''' '' '''''' '&%%%%%%%%%%%%%XXXXXXXXXXXXX
''''' '/+/////+++++*&*/*&**&*&*&&**%&&&%*%%&&&***+**++++++++++++++++*&*&/''''+&*********&&&&&&%&+++++%X%&%X%X%&&&&&&+++++++++++++++*++++++++++++++**%&+*%XXXXX%X%%&%&&&&&%%%%XXX%%%%&%*++++++++//++*/+++&%%*+++++++++++++++++++*******+*+**&X%&%XXXXXXXXXXXXXXX%*/&X%XXXXX%%%%%%XXX%XXXX%&*&&&&&&&&&&*&&&&%%%&&*&&&&&**&&%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%X%%%%%%%%%%%%XXXXXXXXXXX%&&&%%XXXXXXXXXX%+++++/+++//////++*******+++/&XX%XXXXXXXXXXXXX%*&XX%%XXXX%%%%%%%%%%%%%%%&&+**&%%%%%%%%%%%%%%*/*%XXXXXXXXXXXXXXXXXX%&%%%%%%%&%%&&&&*&*+++++++++++++/////////////+//++*+++++/*%&&&&&&&&&&&&*&*'''''' '' ''''''' (%%%%%%%%%%%%%XXXXXXXXXXXXX
'''''' ' +*///++++++*&%+/*&&*&&&&&&%%&&&*&&%&&&&***+**+++++++++++++++*&&&+''''&**********&&&&&&&&+++++%%*XX%%%%%&&&&*+++++++//++++++*+++++++++++++++*%*+&%XXXXX%X%%&%&&%%%%%XXXX%%%%%%&*+++++++//++++/+/+&%%*+++++++++++++++++++******++*++*%X*&XXXXXXXXXXXXXXX%%&/*%XXX%%%%%%%XXXXXXXXXX%&&*&&&&&&&&&&**&&%%%&*&&&&&**&&&%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%X%%%%%%%%%%%%%XXXXXXXXX%&&&&&%XXXXXXXXXX%+++++++++/////+*&*++/+/++/++%XXXXXXXXXXXXXXXX*/*%XX%%%XXXXXX%%%%%%%%%%%%&+++***&%%%%%%%%&%%&++%XXXXXXXXXXXXXXXXXX%&%%%%&%%&%%%&*+&%&++++++++++++++////////////+/++/**/+++++&%&&&&&&&*&&&&*&*''''' '' '''''' ' /%%%%%%%%%%%%XXXXXXXXXXXXX
''''''' ''+++/++++++**%&//*&**&&%%&&*&***%+&%&&%***+*&+++++/++**++++++*&&*'('(&****&**&**&&&&&&&&++++&%&*%%&%&&%***&++++++++/+++++++++++++++++++++++*%*+%%%XXXX%%%&&&%%%%%XXXXX%%%%%X%&*+++++++//+++/+//+***+/+++++++++++++++++++*****++*++&X%*&X%XXXXXXXXXXXX%%%%+*%%%%%%%%%%%XXXXXXXXXXX%&*&&&&&&&&&&&&&%%%&&&&&****&%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%X%%%%%%%%%%%%%%XXXXXXXX%&&&&&%XXXXXXXXXXX++++++++/////&**+///+///++/&X%XXXXXXXXXXXXXX%++*+&XX%XXXXXXXXXX%%%%%%%&%&*++++++***&X%%%%%%%**%XXXXXXXXXXXXXXXXXXX&%%%%&%%&%%&+*&&%%&+++++++++++++++/////+++++/++/++*++++++*%&&&&*&&&&*&*&*%/'''''''' '''''''''*%%%%%%%%%%%%XXXXXXXXXXXX
''''' ' ''++++//+++**&%*/+*&&**&&&%&&&*&&+*%&&%&****&**++++++**+*++++*&&&(('+&*******&*&&&&&&&&&++++%%**+%%&%&&+++*+++++++++/++++++++++++++++++++++*%**%%%XXX%%%%%&%%%%XXXXXXX%%%%XX%&*/+++/+++/+++////*&&*+/+++++++++++++++++++******+++*%X*&%XXXXXXXXXXXXXX%&%X%%%%%%%%%%%XXXXXXXXXXXXXX%&&&&&&&&&&&&&%%%%&&&&**&&&%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%X%%%%%%%%%%%%%%%XXXXXX%&&&&&&&XXXXXXX%XXX+++++++//////+++/++//+++++*%XXXXXXXXXXXXXXXX*++++*&%XXXXXXXXXXXXXX%%%%%%%&*++++++++*%%&%%%%%%&%XXXXXXXXXXXXXXXXXXX%%%%%%%%%%&++*%%&&%*+++++++++++++++/++++++++/++/++**+++++*&&&&%&&**&&&&&&&&(' ''''' '''' (' ''&%%%%%%%%%%%XXXXXXXXXXXX
'''''' '''/+/////+++***&%*++*&%%&****&&%%*+&%&&&%&***&&*++++/+**+*+++++&&&+''*&*******&*&&&&&&&&&*++*XX&+/%%&&&++++****++++////+++++++++++++++++++++*&*&X%%XXXXXX%%%XXXXXXXXX%XX%%XX%X%*/+++//++++++//+/&%%&/+++++++++++++++++++++*+++*+++*%%*%XX%%XXXXXXXXXX%&%%%%%%%%%%%%%%XXXXXXXXXXXXXXX%&&&&&&&&&*&%&%%&*****&%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%X%%%%%%%%%%%%%%%%XXXXX&&&&&&&&XXXXXXX%XXX++++++++++++//+++/++++++/+&XXXXXXXXXXXXXXXX%++*/+&**&XXXXXXXXXXXXXXXXXXX%%&*++++/+*%%%%%%%%XX%%XXXXXXXXXXXXXXXXXXX%%%%%%%&%&++/+&&&%&%*++++++++++++++//+++++++++/+/++&++++++*&&*%%&/'*&&&&&&&/('''' '' '' ('''(&X%%%%%%%%%XXXXXXXXXXXX
'' ''' ' ''/+/////+++*++*&&&*****&%%&&%&%%**&%&&&&&&&***%**+*++/*****++++*&&&'(&*********&*&&&*+&%&&+++&%X&//*%*+++++*&*****+////++//+++/++++++++++++++&&%%%%XXXXX%%XXX%%XXXXXXXX%XXXX%XX&++++/+/++/*+/+//+&&*/+++++++++++++++++++++++++*+++*&&*XX%XXXXXXXXXXX%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXX%&&*&&&&&&%%%%%&**&&%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%XX%&&&&&&&&%XXXXXX&XX%+++/+/++++++++++++++++++/*XXXXXXX%XXXXXXXXX++++++*&&&&&%%XXXXXXXXXXXXXXXXX%%&&*&&%%%%%%%%XXXX%%XXXXXXXXXXXXXXXXXXX%%%X%%%%&+++/+*&&&&%&*+++++++++++++++++++++++++++++*&++++*+*%&&%&+/&&&&&&&&*''' ( ''' '''''''''+X%%%%%%%%%%XXXXXXXXXXX
'' ''''' ///////++++******&&******&&&&&&&&%%&&&%&*&&&**&&**++++++***+*++*&&&/+&*******&*&*&&&+*&%&&*++++**+***++++++*******+++++///++/++++/+++++++++++%%XX%%XXXXX%%XXX%XXXXXXX%XXXXXXXX%%++++/+/++/++/////+++/++++++++++++++++++++++++++*+*++*&XX%XX%XXXXXXXX%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXX%%&&&&&&&%%%%%&%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%XXXXXX&XXX*++/+++///++++++++++/++++%XXXXXX%%%XXXXXXX*+++++*&&&&&&&&&&%%X%XXXXXXXXXX%%%XX%%X%%%&%%%%XXXX%%XXXXXXXXXXXXXXXXXXXX%%%%%%&***+++*&%%&%%&*+++++++++++++++++++++++++++++&*+++++*&&&%%&&%%%&&&&*&*'''' ' '''''''''*XX%%%%%%%%%XXXXXXXXXXX
'' ''''(+//////++++******&%&&&%%&%%%&%&&%%&&&%%&**&%&**%&**+*+++*****+++*&&+&&******&&*&&&&&+&&&%%&++++++++++++++++******&*+///++++////++++++++++++++%XXXXXXXXX%XXXXX%XXXXXXX%XXXXXXX%%%*+++++++//+*+/+++///+++++++++++++++++++++++++*+**&*+&XXX%XXXXXXXX%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXX%&&&%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&XXXXX%&%XX&&*++++++++//+++++++++++&X%XXXX%&&%%XXXXX%+++++*&&&&&&&&&&&&&&&%%%%X%%%XX%%%%%%%%%%%%%%XXXXXX%%%%XXXXXXXXXXXXXXXXXX%&%%%%&***+****&&%&&%&+++++++++++++++++++++++++++++&&*+++++*%&&%%%%%%%%%&&&&( ''' '''''''' *XX%%%%%%%%%XXXXXXXXXXX
'''''' '+//////+++++******&&&%%%&&**&&%%%&&**%%&*&**&%**&%*&**+++**&*++++*&&&&*******&&*&&&&&+&*&%&&+++++++++++++/+++*******+/+++//++++++**++/++++++++&X%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%X&+++++++/+/*+//++//++++++++++++++++++++++++++*++*%&*XXX%%XXXXXXX%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXX%XXXXXXXXXX%%%%%%X%%%X%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&%XXXX%&%XX&%&&*+++++++++++++++++++%XXXXXX%&&&&%XXXX%+++**&&&&&&&&&&&%&&&&%&&&%%&&%&*&%%%%%%%%%%XXXXXXXX%%%%%%XXXXXXXXXXXXXXXX%&%%%%****&*+++*&&&&&%&+++++++++++++++++++++++++++/*%**+*+++%%%%%&&&%%%%%%&&&/ '' '''''''''''&%XXX%%%%%%%%XXXXXXXXXX
'''' (+(////+++/+******&***&&&%%%&&&%&&&**%%%&&&*+*&&&*%&&&**+++*&&*+++*&&&&******&&&&&&&&%*&&&%%&+++++++++++++/+++******+++++/++++//+*&&&&+++++++++*X%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%X%++++/++/+/+++//+/+++++++++++++++++++++++++++**+*X%%XX%%XXXXXXX%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%X%&&&&&%XXXX%&%XX&&&%%%*+/+++/++++++++++&XXXXXXX%&&&&&&%XX*++*&&&&&&&&&&&&&&&&&&%&&&%%&%%*+*%XX%%X%%%XXXXXXXXXXXX%%%%%XXXXXXXXXXXXXX%&%%%&***&**+++*&&&&&%%&++++++++++++++++++++++++++++&&*+*+*+&%%%%&%%%&&%%%%&&+ ( ''''''''' ''''''''''''&%XXXX%%%%%%%XXXXXXXXXX
' '' (/(/////+++/+*****&&***&&&&&%%%%&&***&&%&&&*+++*&%**%&&&&*++**&&*+++*%&&****&&&&&&&&&&%&*&&&%&+++++++++/++++++++***+++++/+++++++**&*****++++++++*XX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X++/++++++/++++++/++++++++++++++++++++++++++++*+&XXXX%%%XXXXXXX%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&XXXX%&&XX&&&&&%%%&*+++++++++++++%XXX%%X%&&&&&&&&%%***&&&&&&&&&&&&&&&&&&&&&&&%%%&*+++%X%%%X%%XXXXXXXXXXXXXXX%%%%XXXXXXXXXXXXX%%%%&%*******++/+&*&&&%%&++++++++++++++++++++++++++/*%***+*+*%&&&&%%%%%&&&%&+( ''''''''''' '''''''''''' *%XXXXX%%%%%%XXXXXXXXXX
'' ''//(/////+++++*****&&*****&&&&&&*&****&%%&&*+++++*&&*%&&&&&****&%**++*%&&&***&&&&&&&&&&%%+&&*%&++++++//++++++++++++++++/++++/++***+////*&++++++++*%X%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X*+++++++/+/+/+++++//++++++++++++++++++++++++++*%XXXX%%%XXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%XXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%X%%&&&%XXX%&&%X&&&&&&&&%%%&*+++++++++*XXXX%%X%&&&&&&&*&&%%&&&&&&&&&&&&&&&&&&&&&&&&%%&*++++&X%%%XXXXXXXXXXXXX%%XXXX%%%%XXXXXXXXXXXX%%%&&%&&*****+++++*&%&%X%&*+++++++++++++++++++++++++/&&&**+++&%%%%&&&%%%%%%%* ' ' ''''' ''''''''''''' +%XXXXXXX%%%%%XXXXXXXXX
'' '(/(/////++++++*****&&************&&**&%%&*&*+****+*%&&%&*&%&****%&****&&&&&**&&&&&&&&&&%%*+%&&&*/+++++++/++++/++++++++++++//+*&*+/////+&X*+++++++*%X%XXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXX&/++++++++/+++//++++++++++++++++++++++++++++*+&X%X%X%%%%XXXXXX%&%%&&&&&&&&&&%&&&&%%%&%%XXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&%XXX%&&%X&&&&&&&&&&&%%%&*+++++*%XXXX&XX%&&&&&&&&&*&%%&&&&&&&&&&&&&&&&&&&&&&&%&++*&&*+%%%XXXXXXXXXXX%XXXXXXXXX%&%XXXXXXXXXXX%%X&&&X&****&*++++*&&%XXXX%**++++++++++++++++++++++++/*%***+*+*%&%&&&&%%&&&%&%/'' '''' '''''''''''''/+%%XXXXXX%%%%%XXXXXXXXX
' '' (+(//////+++/+*****&&&************&***&%%*&&&&&****&%%%%&**&%&***&%****&&&&&&&&&&&&&&&&&&%&+*%*&*/+++/++/+++++++++++++++++++*&*+////+*&%%%&++*++++*&XXXXXXXXX%XX%XXXXXXXXXXXXXXXXXXXXX%++++++++++++++++/+++++++++++++++++++++++++++*&%%XX%XX%%XXX%%X&%&%&%&&&&&&&&%%%%%%%%%%%XX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&XXX&&&%X&&&&&&&&&&&%%%%%%%%%%XXXXX&&XX&&&&&&&&&&&&&%%%&&&&&&&&&&&&&&&&&&&&%%*+&%%X%+&XXXXXXXXXXXXXXX%XXXXXXX%%&%XXXXXXXXXX%%%&%&%&**+***+*&%%XXXXX%%%%+*+++++++++++++++++++++++/+%&&&*+++&%&%&&%%%%%&%&%* ''''' ' ' '''''''' +&%%%%%XXXXXXX%%%%XXXXXXXX
( ' (+((/////++/+/+*****&&&************&&**&%&&***++++++*&&%%%&**&%&*&*%&**+&&&&&&&&&&&&&&&&&&%%*+**&&++++++++++++++++++/++++++*&&+//+/*&%%%%%%&+++++++*&%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X%&++++++++/+++/+++++/++++++++++++++++++++++*+&%X%%%%XXX%XXXXXX&&&%%&&&&&&&&&%%%%%%%%%%%XX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXX&&&&X&&&&&&&%%%%%%%%%%%%%%XXXXX&&X%&&&&&&&&&&&&&&&%%&&&&&&&&&&&&&&&&&&&&%&&%%%%%&*XXXXXX%XXX%XX%XXXXXXXXXX%&%XXXXXXXXXX%%&&&%%&******&%%%XXXX%%&&&%%*+++*++++++++++++++++++++/&&*&**++&%%&&&%%%%%&%&%&(''''' ' '''' '''/&%%%%%%XXXXXXXXX%%XXXXXXXX
' '''//(+/////++++++**&*&&%&************&&*&%%*&**++++*****&&%%%***&%&**%%&*+&&&&&&&&&&&&&&&&&&%X%*/+&%*+++++++++++++++++++++++&&+///+*%%%%%%%%%%*++++++*%&%%XXXXXXX%XXX%XXXXXXXXXXXXXXX%%%%X%++++++++++++++//+++++++++++++++++++++++++**&XX%%%%XXXXXXXXXX%%&%%&&&&&&&%%%%%%%%%%%%%XX%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXX&&&&%&&&&&&&&%&&&%%%%%%%%%%XXX%&&X%&&&&&&&&&&&&&&&&%%&&&&&&&&&&&&%&&&&&&%%%%&&%%%+&XX%XXXXXXXXXXXXXXXXXXXX%%%XXXXXXXXXX%%&&&%%%**&&&&%X%%%X%%&&*&&&%&*+*+++++++++++++++++++++/+%*&&**+*%%&%&&%%%%%&%%%/'''''' '''''''''''' '' *%%%XX%%%XXXXXXXXX%XXXXXXXX
' (/((+++////+++++***&*&&&&************%&*&X&**+++++***&&&&**&%&***&%&*&%&&**%&*&&&&&&&&&&&&&&%%X%*++&&+++++++++++++++++++++*&*////*%%%%%%%%%%%%*++++++*%&%%%XXXXXX%XXXXXXXXXXXXXXXXXXX%%%%%X*+++++++++&&*****+++++++++++++++++++++*++*%%X%%%X%XXXXXXXXXX%%&&%&&&&&%%%%%%%%%%%%%%%XX%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXX&&&&&&&&&&&&&&&&%%%%%%%%%%%XXX&&&X%&&&&&&&&&&&&&&&&&%%%&*&&&&&&&&%&&&&&&&%%%&%%%X&+%XXXXX%XXXXXXX%XXXXXXXXX%%%XXXXXXXXXX%&%&&%%&&&&%%%%X%%%%%%&**&&&%&+*+++++++++++++++++++++//&&&&&**+&%&%&%%%%%%&%&%* '''''''''''''''''''''''&%%%XX%%%XXXXXXXXXXXXXXXXXX
' (/(/+/+////++++++**&&*&&&&***********&%&*%X&&*++++++****&&**&%&*+**&%&&%&&**%&&&&&&&&&&&&&&&&%%%X%*//&*+/+++++++++++++++++&*+//+*%%%%%%%%%%%%%X&++++++&%&%%%XXXXXX%XX%XXXXXXXXXXXXXXXXX%X%%%%+++++++++&&*+//*&&*+++++++++++++++++++++&%XX%%XX%XXXXXXXXXX%%%&%&&%%%%%%%%%%%%%%%%%%XXX%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XX%&&*&&&&&&&&&&&&%%%%%%%%%%%XXX&&&%&&&&&&&&&&&&&&&&&&&&%&&&&&&&&&&%&&&&&&&%%%%%%%%%+*&XX%XXXXX%%%XXX%%XXXXXX%%%XXXXXXXXXX%%%%&%%%&%%%%X%%&%&&*&%%&&&&&%&+**++++++++++++++++++++/*%&&&**+&%%%&%%%%%%&&&%&''''''''''''''''''' '''(%%%%%XX%%%XXXXXXXXXXXXXXXXX
'(////'(+///+++++++**&&&&&&&******&*+**&%&*X%**++++++***&&&&&*&&&*++**&%&%%&**%&&&&&&&&&&&&&&&&&%%%X%*/+*+/++++++++++++++/+&*//+*&%%%%%%%%%%%%%%%&++++++&&&XX%%XXXX%XXX%XXXXXXXXXXXXXXXX%%XX%%X*+++++++++*&*++*&%%&*++++++++++++++++++*%&%X%%XXXXXXXXXXXXX%&%&%%%%%%%%%%%%%%%%%%%%%XXX%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XX%%%&&&&&&&&&&&&&%%%%%%%%%%%XXX&&&%&&&&&&&&&&&&&&&&*&&*&%%&&&&&&&&&&&&&&&&%&%%&%%%%&**%XXXXXXXX%&&%XXXXXXXXX%%%XXXXXXXXXX%%%%%%%%%%%X%&&***+++*&&%%&&&&%*+***++++++++++++++++++/+%&&&&&**%%%&%%%%%%%&%%%(' ''''''''''''''''''' /%%%%%XXX%%XXXXXXXXXXXXXXXXX
'//// /+///+++++++**&&&&&%&******&*+**&%&&%&*++++++*&%%%%%%&&*&&+**/*&&&%%%&*&&&&&&&&&&&&&&&&&&%X%%%%*+*++++++++++++++++**//+*&%X%%%%%%%%%%%%&*&*++++++%&&%X%%XXXXXXXXXXXXXXXXXXXXXXXXX%%XX%XX%*++++++++++++++++&&*+++++++++++++++++*%%&%%%%XXXXXXXXXXXXX%*%%%%%%%%%%%%%%%%%%%%%%%XXX%%%%X%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXX%%&&&&&&&&&%%%%%%%%%%%%%%XX&*&&&&&*&&&&&&&&&&&&&**&&&&%&&&&&&&&&&&&&&&%&&%&%%%%%&&&%XX%X%XXX%&&%XXXXXXXX%%%XXXXXXXXXX%%%&%%%%%%%%&*+**++**&&&&&&*&&%&+****+++++++++++++++++//&%&&&&**%%%%%%%%%%%&%%%+''''''''''''''''''''' /%%%%%XXX%%%XXXXXXXXXXXXXXXX
/(' ' '+////+++*+++*&&&&%%%&******&*+**&%&%%&*+++++*%XXXXXX%%&*&&*+++&%&%%%%&*&%&&&&&&&&&&&&&&&&&X%%X%&+**+/++++++++++++&+//+&%%%%%%%%%%%%%%&*+/&*++++++%%&%XX%%XXXXXXXXXXXXXXXXXXXXXXXXXXX%XX%%%++++++++**+++++++++++++++++++++++++*%%&&%%%%XXXXXXXXXXXXX&+%%&&%%%%%%%%%%%%%%%%%%%XXX%%%%X%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXX%X%X&&&&&&&&&%%%%%%%%%%%%%X%&*&&&&&*&&*&&&&&&&&&&&&&%&&&%%&&&&&&&&&&&&&%%%&%&%%X%%&&%%%XXXX%XX%*&%XX%XXXX%%%XXXXXXXXXX%%%&%%%%%%%*++****+*&&%&&&%&*&&%&+***++++++++++++++++++/+%&&&&&*&%%%%%%%%%&&%%%&''''''''''''''''''' ('/X%%%%XXXX%%XXXXXXXXXXXXXXXX
''' (*///+/+++*+**&&&%%%%&*****&&*+**&%%%&*+++++*%%%&*%%%&&&&*&*+++%%%%%%%%&&%&&&&&&&&&&&&&&&&&%X%%%%%**+++++++++++++&*//*%%%%%%%%%%%%%%X%%&&+%+*++++*%&&%%XX%XX%XXXXXXXXXXXXXXXXXXXXX%XX%XX%%%&++++++&%%&*****++++++++++++++++++*&%%*&%%%%XXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%XX%%%%X%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXX%X%%%&&&&%&&*%%%%%%%%%%%%%X%&&&&**&&&&&&&&&&&&&&&&&&&*&&&%&*&&&&&&%%%%%%%%%%%%%%%%%&**&&&%%%XXX%**%XXXXXX%&%XXXXXXXXXXX%%%%%%%%&*++****++**+*&%&&&*&&&&*****+**+++***++++++++++&&&&&&*&%%%%&&%%&&%%%%%(''''''''''''''''' '('/%%%%%XXXXX%%XXXXXXXXXXXXXXX
''''' /+///+++**++**&&%&+*%&*****&&*+**&%%%&+++++**&**++%%%+*&&*&*+++%%%%%%%%&&%&&&&&&&&&&&&&&&&&%%%%%%%%%*/+++++++++/**/+*&%%%%%%%%%%%X%X&&*&*&*++++++&&&&%&XX%%X%XXXXXXXXXXXXXXXXXXXXXXXX%%X%%X%&/++++&%%***&%%*+++++++++++++++++&%%&&&%%%XXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%XX%%%%X%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXX%X%%&&&&%&***%%%%%%%%%%%%%X%&&&****&&&&&&&&&&&&&&*&&&&*&&&&&&%%XX%&&&&***********&&&*******&%%X%*+&XXXXX%&%XXXXXXXXXXXX%%%%%%%%*+**+*++**&&&&%%&&&+**&%&**+**+++++***+++++++++/*%&&&&&&%&%%%%%%%%%%%&%/''''''''''''''''''(' /X%%%%XXXXX%%%XXXXXXXXXXXXXX
'' ' '++///+++**++*&&&%+++&&*****&&*+**%%%&*++++++++/++&%%%++**&&++++%%%%%%%%&&%&&&&&&&&&&&&&&&&&%%%%%%%%X&+++++++++++*+/&%%%%%%%%%%XX%%&&*+*&&*+++++++%&&&%&%X%%XXXXXXXXXXXXXXXXXXXXXXXXXX%XX%%%X%++++++*****&%&++++++++++++++++*&%%&*&%X%%XXXXXXXXXXXXXXXX%%&%%%%%%%%%%%%%%%%%%%%%XX%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXX%X%X&&&&&*++&X%%%%%%%%%%%%%%&&*******&&&&&**&&&&&*%&*&&&%&&&&&%&%%%&&***********************&&%X&+*%XX%%&%XXXXXXXXXXXXX%%%%%%%&+*++**+&%XX%%&&**&&+***&&&*++*++*++****++++++++//&&&&&&&%%%%%%%%%%&%%&X* ''''''' ''''''''''''/&%%%%XXXXXX%%%XXXXXXXXXXXXX
'' ' '*////++******&&%&+&*%&****&&&*+**%%%&++++++++++//*&&&++/*&+++++&%%%%%%%%&%&&&&&&&&&&&&&&&%%%%%%%%%%%%&+/+++/++/&*/+%%%%%%%%%%%%&&**+*&&&&*++++++*%&&&%&%X%%XXXXXXXXXX%XXXXXXXXXXXXXXXXXXX%%%X&/++++++***+*+/+++++++++++++++&X%%%XXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%XXX%&%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXX%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXX%%%X%&&&*+++%X%%%%%%%%%%%%%%%&**********&&*&&&&&&&%&*&&%%&&&&&&*&&&&%%%%&&********************&%&**&%XX%%%XXXXXXXXXXXXX%%%%%%&***+***%X%***++****&*+****&&*+**+*++*****+++++++//*%&&&&&%%%%%%%%%%&%%&%&' '''' ''''''''''' /%X%%%%XXXXXX%%%XXXXXXXXXXXX
'' ' (*///+++******&&%**%&%&****&%&****%%&*++++++++***+&*&*/++*++++++*%%%&%%%%%%&&&&&&&&&&&&&%%%%%%%X%%%%%XX*++++++++&*/*%%%%%%%%%%&&****&&&*&*++++++*&%&&&%&&X%&%XXXXX%%%%XXXXXXXXXXXXXXXXXXXXXXX%%*+++///+++/+/+++//++++**&&%%%XX%%XXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%XX%&%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XX%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXX%%%X&&**+++*X%%X%%%%%%%%%%%%%&*&********&&&&&&&*&%&&&*&%&%&&&&&&%&&&&%%%************************&***&XX%%XXXXXXXXXXXXXX%%%%%&*+*+*+*XX&******+++*&****+**&&*+*++++******+++++++/+%&&&&&&%%%%%%%&%%%%%%%******++/(('' ''''(/*&X%XX%%XXXXXXX%%%XXXXXXXXXXX
'''' /*//++++*&****&%%+%&&%&****&%&****%%&+++++++//+*&*&&&*++++//+/+++%%%%%%%%%%&&&&&&&&&&&&%%%%%%%%X%%%%%%%%*/++++++*&&%%%%%%%%&%&*****&&*++*+++++++&%&&&&%&&%%&%XXXXX%%%%XXXXXXXXXXXXXXXXXXXX%%X%%%+/+++++//+++**&&%%%%%%%%%%%%%&&%XXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%XX%&%%X%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XX%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXX%%%X&*+++++&X%%%%%%%%%%%%%%%%&*&*********&&&&&&&&%&*&&&%%%&&&&*&%%%%&&**********************&*******&&&%%XXXXXXXXXXXXXX%%%%%&*++*+*%X&+++++***********+*+&&*++**********+*+++++//%%%&&&&&%%%%%%%&%%%%%%%%%%%%%%%%%&*+/' /*%%%%%XX%XXXXXXXXXX%XXXXXXXXXXX
''' '++//+++*&&***&&%&+%*&%&****&%&****%%*++++++++///++/++/++/++++/+++*%%%%%%%%%&&&&&&&&&&&%%%%%%%%%%X%%%X%%X&++++++++&X%%%%%%%%**&****&&+++&+++++++*%%&&&&%&&%%&%XXX%%%%%%XXXXXXXXXXXXXXXXXXX%%%XX%X*++++**&&%%%%%%%%&&&&&&&&%%&%%%%XXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%XX%&%&X%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXX%%%%%%%%%%%%%%%%%%%%%%%%XXXXXX%%XX*++++++*XX%%%%%%%%%%%%%%%&***********&&&*&&&%&&*&&%%%&&&&&&%X&**************************************&%XXXXXXXXXXXXXX%%%%&**+++%X*+*+***++++***+*+*+*+*&&**************+*+++//&%%%%&&&&%%%%%%%%%%%%&&&&&&&&&&&&%%%%&&X%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXX
''' '*+//+++*&&***&&%*+&*&%&****&%&****%&+/++++//+/+//++/+++/++++++++/+&%%%%%%X%%&&&&&&&&%%%%%%%%%%%%XX%%%%%XX&++++++++X%%%%%%*+&&**&%&&++*&*++++++*&%&&&&&%*&%%&%XXX%%%%%%%%XXXXXXXXXXXXXXXXXXXX%%X%X&&%%%%%%%&&&&&&&&%&&&%%%%%%%&%XXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%XX%&%&X%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXX%%%%%%%%%%%%%%%%%%%%%%%XXXXXXX%%XX*+++++++&XX%%%%%%%%%%%%%%&************&***&&%*&&*%%%&&&&&&%&*****************************&*************%XXXXXXXXXXXX%%%%&++*+*&&++*+++*++++++++*+****+*&&**+***+******++++++/+%%%%%%%&&%%%%%%%%&&&&&&&&&&&&&&&&&&%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXX
' '''*+/++++*&&**+&&%*+*&&&%***&%&%****&&+++////////////////++++++++++++&%%%%%%%%%&%%%%%%%%%%%%%%%%%%%X%%%%%%X%&+++++++*%%%%X&+&&&&&*+++*&&*+++++++&%&&&&&&%+*%%&%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%&&&&&&&&&&&&&&&&&&&%&&&%%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%XXX&%&%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXX%%%%%%%%%%%%%%%%%%%%XXXXXXXX%%XX*+++++*+*&X%%%%%%%%%%%%%%%************&**&&%&*&&&%%&&&&&%%&*+*******************************************&%XXXXXXXXXXX&%%&*+*++++++++++++++++*++****++*+*%&*+*+**+********+++++%%%%%%X%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&%XX%%%%%XXXXXXXXXXXXXXXXXXXXXXXX
'''''*+/+++*&&&***&&%*+&*&%&***&%%%****&*+/+/////////////////++++++++++++&%%%%X%%%%%%%%%%%%%%%%%%%%%%%XX%%%%%XX%&+++++++*&XX%*/*&**+++**&*++++++++&%&&&&&&&&+*%%&&XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%&&&%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXXX%%%%%%%%%%%%%%%%%%%XXXXXXXX%%XX*+++++++*+&X%%%%%%%%%%%%%%************&&&&%%&*&&&%&&*&%&&*************************************************&%XXXXXXXXX&&%%+++++++++++++++++++*+++***+*+*+*%&*****+*******+*+++/&%%%%%%%%%X%%&&&&&&&&&&&&&&&&&&&&&&&&&%%X%%%%%%XXXXXXXXXXXXXXXXXXXXXXX
''' (*+/+++*&&&*+&&&&*/&*&X&***&%%%****&*+/+////////////////////++++++++/+&%%%X%%%%%%%%%%%%%%%%%%%%%%%%XX%%%%%XXX&*+++++++*&%&****&******++*++*++*%%&&&&&&%&++&%&&XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%&&&&&&&&&&&&&&&&&&&&%&%%%&&%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXXXXX%%%%%%%%%%%%%%%%XXXXXXXXXX%%%*+++++++++*%%%%%X%%%%%%%%%**********&**&*&%&&&*&%&&&%&&&****************************************************%%XXXXXXX%&%%+++++++++++++++++++++++++++++++*&&*****+**********++/*X%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&%%%XX%%%%%XXXXXXXXXXXXXXXXXXXXXXX
''' (*///++*&&&&+&&&%&+*&%%%***&%%%****&&+/+////////////////////+++++++++/+%%X%X%%%%%%%%%%%%%%%%%%%%%%%XXXX%%%%XXX%*++++++++*&&&&&&*++++++++++*+*%&&&&&&&&&*++&%&%X%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%&&&&&&&&&&&&&&&&&&&&&%&&%%&&%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXX%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXXXX%%%%%%%%%%%%%%%%XXXXXXXX%%%%%+++++**++*&*%%%%XX%%%%%%%%&*********&**&*&%**&&&%&&%%&********************************************************&%%%%XX%&%%**+++++++++++++++++++++++++**+++*%%**+***********+++/+%%%%%%%%%%%%X%%&&&&&&&&&&&&&&&&&&&&%%%%XX%%%%%XXXXXXXXXXXXXXXXXXXXXXX
'' /+///+*&&&&&*&&&&%*+*&&%***&%%%&***&&+/+////////////////////+++++++++/+%%%%X%%%%%%%%%%%%%%%%%%%%%%%XXX%XX%%XX%XX%++++++++++++++++++++*++++++&%&*&&&&&&&+++&&&%X%XXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%XXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXX%%%%%%%%%%%%%%XXXXXXXXX%%%X%++++&**&***+&%%%%%%%%%%%%%&************&&%&&*&&%%&%&******&&&&**********************************************&****&%XX%*&X**+++++++++++++++++++++++++++*+++*%%****+**&******++++&X%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&%%%%%XXX%%%%%XXXXXXXXXXXXXXXXXXXXXX
''''++///**&&&&&*&&&&%%*+&&%***&%%%&*&*&&+//////////////////////++++++++/+&%%%%X%%%%%%%%%%%%%%%%%%%%%%%%XX%%XX%XX%%XX%*+++++++++*+++++++++++*++&%&&&&&&&&&&+++&&&%X%XXXXXXXXXXXXXXXXXXXXXXX%XXXX%%%&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%XXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXXXXXXX%%%%%%%%%%XXXXXXXXXX%%XX%+++*&&*&&*+*&%%%%%%%%%%%%%&**********&**&%*&&&&%&%&****&&&&************************************************&*&%%XXXXX%*&X&+++++++++++++++++++++++++++*++**+*%&***++**&&****++++*X%%%%%%%%%%%%%X%%&&&&&&&&&&&&&&&%%%%%%XXX%%%%%XXXXXXXXXXXXXXXXXXXXXX
''''*///+**&&&&&*&&&&&%%**&%&**&%%%&&&*&&+////////////////////////+++++++&X%X%%%%%%%%%%%%%%%%%%%%%%%%%%%XXX%XX%XXX%%XX%&++++++++++++++++++++++*%%*&&*&&&&&&+++%%&&%%%XXXXXXXXXXXXXXXXXXX%XX%%XXX%%%%&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%XXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%XXXXXXX%%%%%%%%%XXXXXXXXXX%XXX%*****&***++**&%X%%%%%%%%%%&*************&&*&&&%%&**&&&&&&&*++**********************************************&%XXXXXXXX%*&%%+++++++++++++++++++++++++++*+***&*&&&******&&&******++&%%%%%%%%%%%%%X%%%%&&&&&&&&&&&&%%%%%%%%XXX%%%%XXXXXXXXXXXXXXXXXXXXXX
''''*//+***&&&&&*&&&%&%%&+%%%&*%%%%&&&*&%+////////////////////////++++++&%X%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXX%XXX%XXXXX%&+++++++++++++++++++*&&&&&&&&&&&&&*+*%%&&%%%%XXXXXXXXXXXXXXXXXX%XX%%XX%%&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%XXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXXXXXXXX%%%%%%%XXXXXXXXXX%X%%X*&&&**&%*+*&&&%X%%X%%%%%%%&************&%&%%%&&&%&&%&&%&&**/+*&**********************************************&%X%XXXXX**&%*+++++++++++++++++++++++++++*&&&+//&&&*****&&&&******+*%%%%%%%%%%%%%%%XX%&&&&&&&&&&&&%%%%%%%%XXX%%%%%XXXXXXXXXXXXXXXXXXXXX
''/*//+**&&&%&&&&&&&&%%%*+%%&*&%%%&*%**&*/+//+/////////////////+/+++++&X%%%%%X%%%&%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXX%XXXXXXX%*++++++++++++++++*%%&&&&&&&&&&&*++&%%&&%%%%%X%XXXXXXXXXXXXXXXX%X%%XX%%%%&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%XXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXX%++++&&&*++*&&%XXX%%X%%%%%%%**********&&&%%%&&&&&&&&%&&&&*&****************************************************&%XXXXXX%*+&++++++++++++++++++*+**++++*&&+//+/+/&%&******%&******++&X%%%%%%%%%%%%%%%%%%&&&%&&&&&%%%%%%%%%XXXX%%%%XXXXXXXXXXXXXXXXXXXXX
( ++/*+&**&&&&&&&&&&&%%%%*&%&*%%%%%*%&*%*+/+/+////////////////////+/++&%X%%%XXX%%%%%&%%%%%%%%%%%%%%%%%%%XXXXXXXXX&XXXXXXXXX%**+++++++++++++%%&&&&&&&&&&&&*+*%%&%%%%%%%XXXXXXXXXXXXXXXXXX%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&%&%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXX%XXXXXX%%%%%%%%%%%%%%%XXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XX%+++++++++*&&%XXXX%%%%%%%%%%************&&&&%%%%%%%%%%&&****&**************************************************&&XXXXX%X%*+*++++++++++++++++++*+++*+**+////+*&&%%&***+*&&%&*&***++*%X%%%%%%%%%%%%%%%%%%&&%&&&&%%%%%%%%%%XXXX%%%%%XXXXXXXXXXXXXXXXXXXX
' '*//***/*&*&&&&&&&&&%%%X&*%%*%%%%%&%%*%*+/+++//////////////////+/+/++%XX%%%%%X%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXX&XXXXXXX%%%%%**+++++++++*&%&&*&&&&&&&&&&++&%%%X%%%%%XXX%XXXXXXXXXXXXXXX%%%%%%%%%%%%&&&&&&&&&&&&&&&&%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%XXXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%++++++**&%%%XX%XXX%%%%%%%%%&***********&*&*&%XXX%%%%%&**********************************************************%XXX%%X%&+**+++++++++++++++++*+++*&+///+*&%%%%%%X&&*****%%***&**++*%X%%%%%X%%%%%%%%%%%&&%%%%%%%%%%%%%%%XXXX%%%%%XXXXXXXXXXXXXXXXXXXX
'(+++**/'**(&&&&&&&&&%%%%%%%%&%%%%%&&&&%*+/++//////////////////++/+/+/&X%%XXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXX&%XXXXXX%&%%%%&*++++++*&%%&&&&&&&&&&&&&&+*X%%X%&**&&&&XXXXXXXXXXXXXXXXXX%%%&&%%%&%%&&&&&&&&&&&&&&&%%%%%%%%%%%%XXXXXXXXXXXXXXXX%%XXXX%%%%%%%%%&%%%%%%%%%%%%%%%%%%XXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&&&&%%%%%%%%X%XXX%%%%%%%%%%&**********&&***&XXXXX%%&****&&******************************************************&%XX%%%%%&*%+++++++++++++++++++*&&+/++*%%%%%%%%%%%******&%%******++*X%%%%%%%%%%%%%%%X%%&%%%%%%%%%%%%%%%XXXX%%%%%XXXXXXXXXXXXXXXXXXXX
''+++**/'(*/ &&&&&&&&&%%%&%%%&%%%%%%&%&%&*+//+//////////////////+++++//*X%%XX%X%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXX&%XXXXXX%&%&*&%%&&**&%%X%&&&&&&&&&&&&&&*&%X%%&++++++++%XXXXXXXXXXXXXXXXX%%%&&&%%&&%&&&&&&&&&&&&&&%%%%%%%%%%%%XXXXXXXXXXXXXXXXX%XX%%%%%&&&&&%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXX%%XX%%%X%%%%%%%XXXXX%&%%%%%%%%%%&*********&&**&XXXX%%%&&*&&&&********************************************************&X%%X%%%%*&*++++++++++++++++++&&//+*%X%%%%&%%%%%X%******%%%&*****++&XX%%X%%%%%%%%XXX%%%%%%%%%%%%%%%%%%XXXXX%%%%XXXXXXXXXXXXXXXXXXXX
(*+*+/' ++''*%&&&&&&&%%%%%%%%%%%%%&%%*%%**///////////////////////+//+*%XXXX%XXXX%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXX&&XXXXXX%*%X&*&&&&&&&&%%%&&&&&&&&&&&&&&*%&*&++++++++++*XX%XX%XXXXXXXXXXX%%%&&&%%%&%%&&&&&&&&&&&&&%%%%%%%%%%%%XXXXXXXXXXXXXXXXX%%%%%&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%X%%%&&%X%%%%%%%%%&********&***%XXXX%%&&&&&&*******************************************************&&*&%X%X%X%&%&&*++++++++++++++++&*//+&%%%%%%%X%%%%%%%&*&**&&%%%******++%X%%X%%%%%%%%XXXX%%%%%%%%%%%%%%%%%XXXXX%%%%XXXXXXXXXXXXXXXXXXXX
'+***( ''/( '*%&&&&&&&&%%%%%%%%%%%%%%%&&%&++////////////////////+/+++*%X%X%XXX%XX%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXX&&%XXXXXX&&%%&&&&&&&&*&*&&**&****&&&&&&%&+/+/++++++++++%XXXXXXXXXXXXXXXXX%&&&&%%%%&%%&&&&&&&&&%%%%%%%%%%%%%%XXXXXXXXXXXXXX%%%%%%%&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%XX%%%%&&&&%%%%&%%%%%&&******&&**&%XXXX%%%&&&&************************************************************&X%%%X%&%&&*+++++++++++++++&*//+&%%%%%%%%%%%%%&+*&&***&*&%%&&***&*+*%%%%%%%%%%%%XXXX%%%%%%%%%%%%%%%%%XXXXX%%%%XXXXXXXXXXXXXXXXXXXX
(**+' '''''' +&&&&&&&&&%%%%%%%%%%%%%%%&+%&/*/+//////////////////+/+**%XXXX%XX*+%X%&%XXXXX%%%%%%XX%%%%%%%%%%%XXXXXX&*%XXXXXXX%&%&&&&&&&&&&&*+++++++++++++&&+/+/+/*++++++++&%XXXXXXXXXXXXXXXX%&&&&&%%%&%%&&&&&&&%%%%%%%%%%%%%%%XXXXXXXXXXXXXX%%%%%%%&&&&&&&&&&&&%%%%%%%%XXXX%%%%%%%%%%%%%%%%%%%%%&%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%X%XX%%X%&**&&&&&%XX%&%%%%%%&******&&**&XXX%%%%%%&&&*&&**&*************************************************&**&**XX%%%%&&%%*++++++++++++++&*+/+*%%%%%%%%%%%%&**&**X**&*&&%%%%&*****+*XX%%%%%%%%XXXXX%%%%%%%%%%%%%%%%%XXXXX%%%%XXXXXXXXXXXXXXXXXXXX
*+(''''''''''(&&&&&&&&%%%%%%&%%%%%%%%%&+*%/++///////////////++//+*&&*X%%%XXXX+'/X%*XXXXXXXXXX%%%%XX%%%%%%%%%%XXXXX%&&XXXXXXXXX%%&&&&&&&&&&*+++++++++/+*%*++//++/**++++++++%XXXXXXXXXXXXXXXX%&&&&&%%%%%%%%&&&&%%%%%%%%%%%%%%%XXXXXXXXXXXXX%%%%%%X%&&&&&&&&&&&&%%%%%%%XXX%XXXX%%%%%%%%%%%%%%%%%%&&%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XX%%%%%%&*+**+*&&*&&&&&X%**%%%%%%&**&**&***XXXX%%X%%%&&&&&**&************&&*&&&*&***&***&***************************&&X%%%%%&%%X*+*++++++++++&&+/+*X%%%%%%%%%%%X&%&&**%%&*&&*%%%%%%&****+&X%X%%%%%%XXXXXX%%%%%%%%%%%%%%%XXXXXXX%%XXXXXXXXXXXXXXXXXXXXX
//' ((//(((((/&&&&&&&%%%%%%&*%%%%%%%%%%++&+++++/////////+/////++&%%*&X%%XXX%X&'(&XXXXXXXXXXXXXXX%%%%XX%%%%%%XXXXXX%&&%XXXXXXXXX%%&&&&&&&&&*++++++/+*+&%&+++/++//++++*++++*XXXXXXXXXXXXXXXXX%&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXX%%%%%%%%&&&&&&&&&&&&&%%%%%%%XXXXXXXX%%%%%%%%%%%%%%%%X%&&%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&&*&&+++*+/+**&&&%&&%%&&%%%%%%%&***&&**&XXXX%%X%%%&&&&*++************&&&&&&&&&*******&********************&*******&%X%%X%%%%%%*+++++++++++&*+++%%%%%%%%%%%%%&&**&/%+%%&*&&*%%%%%%&&*&*+%X%%%%%%%XX%XXX%%%%%%%%%%%%XXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXX
'+*&&&&&***&&&&&&&%%%%%&**&%%%%%%%X%+/**//+///////////////+*%&&&/*XXXXX%XX%' /XXXXXXXXXXXXXXXXXX%%%XX%%%%%XXXXX%&&&%XXXXXXXXXXX%&&&&&&**++****&&&&&&+/++/+*++++++*++++*XXXXXXXXXXXXXXXXXX%&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXX%%%%%%%&&&&&&&&&&&&&&%%%%%XXXXXXXXXXXX%%%%%%%%%%%%%%%%&&%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X%%&******&*//+//*&%%&**%%%%%%%%%%%&**%&**%XXXX%%X%%&&&&&&*************&&&&&&&*&&*******&********************&********&X%%X%%%&&%%*++++++++++&&//*%%%%%%%%%%&*****&*+*+*%%&*&*&%%%%%%&&**+*%XX%%%%%XXXXXX%%%%%%%%%%XXXXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXX
'('(+&&&&&&&&&&&&&&&&&%%%%&***%%%%%%%X%+++*++//+/////////++/+*****+/*X%XXX%XX%('+XXXXXXXXXXXXXXXXXXXX%%%XXX%%%XXXX%&&&&XXXXXXXXXXXXXXXXX%%%%%%%%X%&**&*//+//+&+++++**++++&XXXXXXXXXXXXXXXXXXX%&&&&&%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXX%%%%%%%&&&&&&&&&&&&&&&%%%%%XXXXXXXXXXXX%%%%%%%%%%%%%%%%&%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X%&*++&+/+&*+/+///*%%%*+%%%%%%%%%%%&**%**&XXXXX%%%%%&&&%&&&&***&&&*****&&&&&&&*&&*******&********************&&********%X%XX&%&%&%%*+++++++++*%&*%%%%%X%%%&&*****&&/&**+*%%&*&&%%%%%%%&**&+*XXX%%%XXXXXXX%%%%%%%%%XXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXX
' '*&&&&*&&&&&%%%%%%%%%%%&***%%%%%%%%%+//+++//+/////////++//++/+//+*%%XX%XXX%((%XXXXXXXXXXXXXXXXXXXXXX%%%XXXXXXXX%&%&&%XXXXXXX%&%%XXXXXXXXXXXXX%***+/**////+&*++++**++++&XXXXXXXXXXXXXXXXXXX%%%&&&%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXX%%%%%%%&&&&&&&&&&&&&&&&%%%%%%%%XXXXXXXXXXXXXX%%%%%%%%%XX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%*++*+/+*///*+(/(&&*&**%%%%%%%%%%%%&&&**%XXXXX%%%%&&&%%&*****&&&&****&&&&&&&&*&&******&&********************&&&*****&&&%XXX%%%&&&%%+++++++*++*X%%%%%%&&&&*****&&&+**++++&%%&**&%%%%%%%%*&**&XX%%%XXXXXXX%%%%%%%%XXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXX
'''(*&&*&&&&&&&&&&&%%%%%%%&***&%%%%%%%%*///++/+////////////++//+//**&%XX%%XXXX((XXXXXXXXXXXXXXXXXXXXXXXXX%%%%XXXXX%&&%&&XXXXXXX&&&*&&%%%%%%&&&&%%*++++&*///++&*/+++&*++++%XXXXXXXXXXXXXXXXXXXX%%%&&%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXX%%%%%%%&&&&&&&&&&&&&&&&&%%%%%%%%%%%XXXXXXXXXXXXXXX%%%%%XX%XXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&+*&%*++*/(//(+++**&&&&%%%%%%%%%%%%%%&*&%XXXXX%%%%&%%%%&****&&&&&&**&&%&&&%&&*&&****&*&&**&&****************&&&*&***&&&&XXXX&%&%%%%&+++*++++++&%%%%%&+*&&**&*&&*++**++*++&X%&*&&%%%%%%%%&&**%%X%%XXXXXXX%%%%%%%%XXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXX
'''(*&&&*&*&*&&&&&&&&&%%%%%***&%%%%%%%X&*+/++++/++//////+/+++//+*&%%XXX%%%XXXX(+XXXXXXXXXXXXXXXXXXXXXXXXXX%%%%XXXX%&&&%&%XXXXXX&&*++**&&&&&&&%%%&&*+**%*/+/++&*++++&&++++%XXXXXXXXXXXXXXXXXXXXX%%%%%%X%%%%%%%%%%%%%%%XXXXXXXXXXXXXXX%%%%%%%&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXX%X%X%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/+&***&+/(/(((/***&&%&&%%%%%%%%%%%%%**&XXXXXX%%%%%%%&&&*****&&&&&*&&%%%&&%&*&&&****&&&%&&&&&&**************&&&&&&**&%%&%%XX%&%&%%%X&++++++++++*%%%%**&&**&&&**+*%++++*++*%%%&*&%X%%%%%X%&&*&%X%XXXXXXXX%%%%%%%XXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXX
'''(&&&&*&*&*&&*&&&&&&&&&&%%&**%%%%%%%X%&+++//++++/////++++++++++%XX%X%X%%XXX%(&XXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXX&&*%%&XXXXXX***++++++***&&&&&*/////%*/+/++&+++++&&+++*XXXXXXXXXXXXXXXXXXXXXX%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XX%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X&+**+/*&+///(((/*+&%%&&&%%%%%%%%%%%%%*&%XXXXXX%%%%%%%%&***&&&&&&&&*&%%%%&&%&*&&&***&&&&%&&&&&&**************&&&&&&&*&%%%&%XXX%&%%&%%%&++++++++++*&X&/&&&*&*+++*&*++*++*++*%X%%&*%XX%%%%%%%&&*%XXXXXXXXXX%%%%%%%XXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXX
'' /&&&&&***&&&&&&&&&&&&&&&&&&%%%%%%%%%%&&*++/++/++++++++++++++++*&*XXXXX*%XX%/%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXX&*&&%%%XXXX**+**++//+****&&&&++//+&*+++++&+++++&&++++XXXX%XXXXXXXXXXXXXXXXX%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%&&&&&&&&&&&&&&&&&&&&&%%&%%%%%%%%%%%%%%%%%%%%%%%%&&&&X%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&*%+++*+//*/(((++/+&%%&&%%%%%%%%%%%%%&%XXXXXX%%%%%%%%%%****&&&&&&*&%&%%&%%%&*&&&***&&&&%%*&%&&&&***+********&%&&&&&*&%%%%%%%XX%%%%%%%%&++*+++++++*&&****++++*&*+++++*+++*%%%X%%&&X%X%X%%%%%&&&%XXXXXXXXX%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'' /&&&&*&&&***&&&&&&&&&&&&&&&&&%%%%%%%%&&&*+++//++++++++++++++++/+&XX%%X*%XX%+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%**&&%XXXXX&**+*++/++*&&&&&&%*++++&&+/+++&*++++%&+++*XXXXXXXXXXXXXXX%%XXXXXX%%%%%%XX%XXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%&&&%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&&*+***/(////+++/+/%&&&%%%%%%%%%%%%%%&%XXXXXX%%%%%%%%%&****&&&&&&&&%%%%&%%%&*&&&***&&&%%&*&%&&&&&&*+********&%&&&&&*&%%%%%%%%XX%%%%%X%%&*+++*++++++*&&&&&****++*++++++*&%%%%XX%%&%%XXXXX%%%%%&%XXXXXXXXX%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'' /&&&&*&&&***&&&&&&&&&&&&&&&&&%%%%%%%%&&&&**+/++++++++++++++++++/*%XXXX++XX%*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&+&&%+/%XX&*++*++/+++**&**&%&++++&&+++++&*++++&&++**XXXXXXXXXXXXXXX%%%XXXXX%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&%X%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&&++*%+(/+((//&*+/+%&&&%%X%%%%%%%%%%%%XXXXXXXXXX%%%%%%&**&&&&&%&&&&%%%%&%%%%&&%&**&%&&%%&*&&&%&&&&**********&%&&%&&*&%%%%%X%%%%XX%%%%%%%%&*+++++**+++++**++++++++++++*&X%%%%%XX%%%%%XXXXX%%%%%%%XXXXXXXX%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'' /&&&&&&&*&&&&&&&&&&&&&&&&&&&&%%%%%%%XX%%%%&**++//+++/+++++++++++**&X%X*/XX%&XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%**&&+/%XX&++++*****&&&&&&&%%++++&&++++*&*++*+&****&X%%XXXXXXXXXXXX%%%X%%XXX%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%%%%%%&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&%X%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%+/+*++++/(((+*+*+&*&&&%&%%%%%%%%%XX%%XXXXXXXXXX%%%%%%&**&&&&&%&&%&%%&%&%%&%&%%&*&%%&%%&%&&&&%&&&&&**********%%%%&&&&%%%%%XXX%%XXXXX%%%%XX%*++++++++++++++++++++*++++&XX%%%%%XX%%%%%%XXXXXXX%X%%XXXXXXXX%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'''/&&&&&&*&&&&&&&&&&&&&&&&&&&&&&%%%%%%X%%%%%%%X%&*++++++++++++++/+*&&XXX*'%X&%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&+&&&**&X&**++**&&&&&&&&&%&%*++*&&++++*%&*&&*&**&*%%%%%%XXXXXXXX%%XX%%%%%%XX%%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%%%%%&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%X%&&&%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%+/**/(++//(/*///&&*&&%&&%%%%%%%%%XX%%XXXXXXXXX%%%%%%%&**&&&&%%&%%&%&&%%X%*&&%%&&&%&&%&&%&&&*&%%&&&*******&*&%%%%&&&%%%%%%%%%X%%%XXXX%X%%%XX%*+++++++++++++++++++++*&X%%%%%%XXX%%%X%%XXXXXXXXX%%XXXXXXXX%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'''/&&*&*&&&&&&&&&&&&&&&&&&&&&&&&%%X%%%X%%%%%%%%%%%%%&*++++++++/+/*&X%XXX*/&X*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%*&&*+++&&&****++++**&&&&%&%&++*&&+****%&&&&*%&**&%%%%%%%%%%XXXX%%%%%%%%%%XXX%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%%%%%&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%X%&&%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X%**&+//+(/++++//+*+*&%%&&&%%%%%%%%XX%%XXXXXXXX%%%%%%%%%&&&&&&%&&%%%%&&%%%&+&%%%&&&%&&%**%&&&+*&%%&&&*****&&&&%%%%&&&%%%%%%%%%%%%%%%%%XXX%%%XXX%**++++++++++++++++*&%%%%%%%%%X%%%%%X%%%XXX%XXXX%%XXXXXXXX%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'''/&&*&&&&&&&&&*&&&&&&&&&&&&&&&&&%X%%X%%%%%%%%%%%%%%%%X%%%%&&&*&&%XX%XXXX%XX*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&*&&+*++&&****+//+*&&&&&&&%%+**&&****&%&****%%&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%X%%%%%XXXXXXXXXXXXXXXXXXXXX%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%X%&&%X%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%&////(((*&++/**/+%%%&&&%%%%%%%XX%%%XXXXXXXX%%%%%%%%%&&&&&&%%%%%%&*%%%&*+&%%%&%%%&%%+*&%&&++*&%&&&*****&&&&%%%%&&%%%%%%%%%X%%XX%%%%%%XXX%%%XX%%&*****++++*****&%X%&&%%%%%%%%%%%%XX%%XXX%XXXXX%%XXXXXXX%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'''/&&*&&&&&&&&&+*&&&&&&&&&&&&&&%&%X%%X%%%%%%%%%%%%%%%%%%%%XXXXXXXX%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XX&&&*++++&&*+/+//+*&*&&&&%%%**&&&*&&&&%&*&*&%%XXXX%%%%%%%%%%&&%%%%XX%%%%X%%%%%%%%%XXXXXXXXXXXXXXXXXXX%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%XXXXX%%%%%%%%%%%%%X%%%XXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XX%&%&&+*(((/+++***//+&%&&&&%%%%%%%XX%%XXXXXXXXX%%%%%%%%%&&&&&%%%%%%%**%%%&+*%%%%&%%&&%&++*%&&+*+*&%%&***&&&&&&%%X%&&%%%%%%%%%%%%%%%%%%%%%%XXX%X&&%%&&&&&&&&%%%%%%%%%%%%%%%%%%X%%%%%%X%%XXXXXXXXXXXXXXXXXX%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'' +&*&&&&&&&&&&&&&&&&&&&&&&&&&&%&%%X%%XX%%%%%%%%%%%%%%%%%%%%%XXXXXX%%%XXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X%*&&+++++*&&***+++**&&%%%&&%*&&&&&&*&&&**&&%%%%X%%%%%%%%%%%&&&&&&%%%%%XX%X%%%%%%%%XXXXXXXXXXXXXX%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%XXXXXX%XX%XX%X%X%%X%%%XXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%&&&&&//(++//+&*++*%&&&%%&%%%%%%XX%%XXXXXXXX%%%%%%%%%%&&&&&%%%%%X&+*%X&***&%%%&&X%&%*++*&%&+*++*&%%&***&&&&&%%X%&&%%%%%%X%%%%%%%%%%%%%%%%%XXX%**&%&*&&&&&&&&&&&%%%%%%%%%%%%XX%%%X%%X%%XXXXXXXXXXXXXXXXX%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'''+&*&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%XX%%%%%%%%%%%%%%%%%%%%%XXX%XXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%X%&&*+++*******&&&&&&&&&&&%%&*&&&&&**&%&&%%%%%X%XX%%%%%%%%%&&&&&&&&%%%%%%XXXX%%%%%%XXXXXXXXXXXXX%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%XXXX%%%%%XXXX%XX%XX%%%XXXXXXXXXXXXXXXXX%XXXX%X%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%&&&&*&*++/+/+***+&&&&&%&%%%%%%%XX%%XXXXXXXX%%%%%%%%%%&&&&&%%%%X%***%%*+*+*%X&%%%%%&+**+*%&++**+*&%%**&%&&&%%%X%&&%%%%%%XXXX%%%%%%%%%%%%%%%%XX&++*%%&&&&&&&&&&&&%%%%%%%%%%%XX%%%%%XX%%XXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'''+&*&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%X%%%%%%%%%%%%%%%%%%%%%XXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XX%%*++++*&&*****%&&&****%%%&&&%%%&&&%XX%%%%%%%%%XX%%%%&&%%&&&&&&&&&&&&%%%%%%X%%%%%XXXXXXXXXXXX%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&%%X%%%XXXX%%XXXXX%%%XX%XX%%%XXXXXXXXXXXX%%XXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXX%XX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&&&&***&&+/+*+++*%&&&&%&&%%%%%%X%%%XXXXXXX%%%%%%%%%%%&&&&%%%%%X*+**%&++*+*%X&%%%%%*++++*&&*+++++*%X&+&&&&&%%X%%&&%%%%%%%XXXX%%%%%%%%%%%%%%%%X%&*+*&%%&&&&&&&%%%%%%%%%%%%%%XX%%%%%XX%XXXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'''+&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%X%%%%%%%%%%%%%%%%%%%XXXXXXXXXX*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XX%&++++**&&&***&&*&&&&&%%%%%%X%X%%%XXXX%%%%%%X%%%%%%%%%%&&&&&&&&&&&&&%&%%&%%%XXXXXXXXXXXXXXX%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%X%%%XXXX%%%%%XX%X%%XXX%%%%XXXXXXX%%%XXXXX%XXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&&&%&&&*&%&&***+++&&&%&%&&&&X%%%%X%%XXXXXXXX%XXX%%%%%%%&&&&%%X%X&+*+*&**+**+%%%&&%%&+++*++**+*+*&***%%*&%&&&%%X%%&%%%%%%%%X%XXX%%%%%%%%%%%%%&%%%%%&**%%&&&&&&&&&%%%%%%%%%%%%XX%%%%%XXXXXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'''+&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXX%X%X*/*%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%X%%&++++***&&&**&&*&&&&%%%%X%%%X%%XX%%%%&%&&%%%%%%%%%%%%&&&&&&&&&&&%%%%%&&&%%%%%XXXXXXXXXXXX%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&%&&%%%X%XXX%%X%XX%%XXX%XX%X%%%XXXX%XXXXX%%XXXX%X%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXX%X%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&&&%&&&*&&*&%%*&*%&&&&%%&&&&X%%%%X%%XXXXXXXXXXXX%%%%%%%&&&&%%X%%*+*+**+*++*+&%%**%&*++**++***&%%%*++*&&&X&&&%%%%%&%%%%%%%%%%%XX%%%%%%%%%%%X%&&&%%%X%&&&&&&&&&&&&%%%%%%%%%%%%X%%%%%%XXXXXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'''+&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXX%%X&/++*&XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X%%&+++++*******&*+***%X%%%XX%X%%%XX%%%%%&&&&&%%%%%%%%%%&&&&&&&&&&&&&&%%&*&&%%%%%%XXXXXXXXXX%%%%%%%%%%&&&&&&&&&&&&&&&%&&&&&&&&&&&%&&%%XXXX%%%%%%%XX%%%%%X%%X%%%XXXX%XXXXXXXXX%XXX%%X%XXX%XXXXXXXXXXXX%XXXXXXXX%XXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&&&&&%++**&&%%&&&%&&&&%%&%%&X%%%X%%%XXXXXXXXXXXX%%%%%%%&&&&%%XX&+*+*+*+*++++&%*+&&*+++++*&%%&****&%&**&&%&&%%%%%%%%%%%%%%XX%%X%%%%%%%%%%%%X%%&&&&%XXXX%%&&&&&&&&%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'' /&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%XXXXXX%&%%%+/++++%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X%%&*++++++**&*+*++++&%X%%%%XXX%%%%%%%%%&&&&&&%%%%%%%%%%%%&&&&&&&&&&&%&%&*&%%%%%XXXXXXXXXXXX%%%%%%%%%%&&&&&&&&&&&&&&&%&&&&&&&&&&&%%&%%XXXX%%%%XX%%%%&%%%%%%&*%%X%XX%XXXXXXX%%X%%&%XX%*&XX%XXXXXXXX%XX&*&XX%XXX%*%XXXXX&&%&%*&%**XX%&XXXX&%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&&&&&%++*&&&%*&&%*&&&%&&%%&%X%%%X%%XXXXXXXXXXXXX%%%%%%%&&&&%%X%*+*+*+++*+++*&&++*++++**&%%&*++++*++*&&%%&%&%%%%%%%%%%%%%%XXX%%%%%%%%%%%%%%%%%&&&&%%%%XXXX%%%&%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'' /&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%XXXXXX%&*&X*++++++&XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XX%&++++++++*+*++*++&&X%%%%X%%%%X%%%%%&&&&&&&&&%%%%%%%%%%&&&&&&&&%%%%%%&&&%X%XXXXXXXXXXXXXX%%%%%%%%%&&&&&&&&&&&&&&&&&%%&&&&&&&&&%%&%%XXXX%%%%X%*//('/%%%X%/(%%%%%X%%%%&**+//+X&(*XX%+'%XXXXXXX%XX%XX&'+%%%XXX&'&XXXXX/(+(+'/*'(%X*(+***(/%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%&&&%++*&&%&&&*++&%&&&&&%%XX%%%X%%XXXXXXXXXXXXX%%%%%%%%&&&%%X&+*+*+*+**+++**+***++++&%X%*+++*+++*++++&X*%&%%%%%%%%X%%%%%%XX%%%%%%%%%%%%%%%%X&&%&&XX%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'''/&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXX&*%&++++&*+&XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%X&++*++++++++++*+*&&X%%%%X%%%%%%%%%&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXX%%%X%%XX%%%%%%&&%%&&&&&&&&&&&&&&&&&&%%&&&&&&&%&&%%%%XXX%XX%X%%++((*X%X*%+'**/(*%%+/((/((+/*X&'+%%X+'+*X%XXXXXXX*++/'(('+%&&+'(+XXXX/'* +(/%(/%X* *%%%((XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%&&%++*%%&&&&*++*%&&&&&%XX%X%X%%%XXXXXXXXXXXX%%%%%%%X%&%&%%&*+*+++++++++*++++++*+*%%X&+++++**&&**+*&*X**%%%%%&%%%X%%%%%%XX%XX%%%%%%%%%%%%%%%&&&&%%X%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'''(&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXX&&&++/+*%&+*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X%&*++++++++**+**&&&X%%%XX%%%%XX%%%&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%XX%%%%XXXX%%%%%%%%&&&&%%&&&&&&&&&&&&&&&&&&%%%&&&&&&%&&%%%%XXX%XX%%%X&/+&%*&%+('(/&&(/%X&/+X+*%%+*X&'%*//('(+XXXX%XXX%%*+*'+&&XX+('(**++&%((+'+'(*'/XX*'&XX%((%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&&%%++*%%&&&&*++*%&&&%%%XXXX%X%%%XXXXXXXXXXXXX%%%%%%%%&%&%%&***&&&*&***++++++**&%%%%&*+++**&****&%%%%%**%X%%%&%XX%%%%%%%%XXXXXXX%%%%%%%%%%%%&&&&&%X%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'''(&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXX%&%*+++*&%&*+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XX&*+*++**+**+*&&&%X%%%XX%%%%XX%%%&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%X%XX%%%X%%&%%%%%&&&&&&&&%%&&&&&&&&&&&&&&&&&&%%%%&&&&&&%&%%%%XXX%%X%&&&(((('((&&*+(*XX(+X%XXX&/%&/(+X+/X%%%+(XXX%XXXX%XX%+&*'//(&XX&(&*('(/X/(+ +'/%'/XX* *&&&((XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&%%++*%&&&&&*++*%&&&%%%%%%XXX%%%XXXXXXXXXXXXX%%%%%%%%&%%%%%&&%%%%X%%%%&**+++++*&%&%&++**&&&&%XXXXX%&*++&X%%%&&XX%%%%XX%%XXXXXXXXXX%%%%%%%%X%&&&&%X%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
''''*&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%XXXXXXXXXXXX%%%&&+*&%&**+%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%X%&**++***+**&&&%%X%%%XX%%%%XX%%%&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%X%%%X%%%X%%%%&*%%%%%&&&&&&&%%%&&&&&&&&&&&&&&&&&&&%%%%&&&&&%%%%%%%XX%%XX*'(+/+*%%&%X&'/%%%'+X%%X%*+XX**%X++*%XX*(%XXX%%%XX%X%++/'(**%XX+/X%&%%%X/(*'+((&'/%X*'*&&&((XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXX%&%X+++&*&&&&*++*%&&&%X%%%XXXX%%XXXXXXXXXXXXXX%%%%%%%X%&%X&++*&&**&&&%%%%*++++++&%&%*++*%XXX%%X%%X%%&+++*X%%%&&XX%X%%XXX%XXXXXXXXXXXXXX%%%%X%%&&&%X%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
''' *&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXX%%&&%*&&%&&&+%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X%&***+****%&&&%%XX%%XX%%%%XX%%&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%X%%%%%%%%%%%%%&%%%%%%&&&&%%%%%&&&&&&&&&&&&&&&&&&&%%%%%&&&&&%%%%%%XXX%%XX&%&/%%%XX%*('+%X%'+%X%%X++X%%X%X/'*X%*+(%X%XXXXX%XXXX&&(+XX%%%(*X%%%XX%/'+ /'/*'/XX* &XX%((XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXX%+++&&%&&&*++*%&&&&%%%XXXX%%%XXXXXXXXXXXXXX%%%%%%%X%&%X&+&&*++++***&%%&*+++*+*&&&++&%XX%&&**&%&&X*+++*X%X%%%%%%%%XXXXXXXXXXXXXXXXXXXXXX%%X%&&&&%XX%%%X%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
''' +%&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXX%%%&%&%%%&&&&*%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%X%&&*+***&%&&%%%XX%%XX%%%%XX%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%&&%%%%%%&&%%%%%%%%&&&&%%%%%&&&&&&&&&&&&&&&&&&&&&%%%%%%&&&%%%%%%XXX%%X%%X++XX%%%%/(//%%%'*%%X%X+(&XXXX%+'%%/+/ +%%++%%%XX%%+/(''/*XX+(%&&XXXX%/(*+*'*%(/XX+ *XX%((XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXX&+++&%%&&%+++&%%&++&%X%%XX%%%XXXXXXXXXXXXXXX%%%%%XX%%%%****++**&*&%&&%%%*++++++*&+*%X%****++***&%*++++%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXX%&&&&XX%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
''''/%&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXX&&&%%&%&&++++*&XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X%%&&***&%%&%%%%%X%%XXX%%%XX%%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%%&&%%%&**%%%&%%%%%%%%%%%&&&&%%%%%%&&&&&&&&&&&&&&&&&&&&&%%%%%%%&&%%%%%%XXXX%%XX%& /++&X%&&(/%X%('+%XXX%('(/&XX*'*&+%+''/X&'+XXX%X&+%*'+/'+%(/X&/(+//%%%XX*/&%'/%X*'*%&&((XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X&/++&%&&&%+++&%%&++&XXXX%X%%%XXXXXXXXXXXXXXX%%XX%X%%%%%***++*++**%%%&&&%&*++++**&**&*++++/+*&&&%*++++*%X&%&&&%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%XXX%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%
''''(%&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXX**&&&%&*++++++*%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXX%X%&&&&&&&%&%%%%%X%%XXX%%%XX%%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%&%%&**%%%%%%%%%%%%%%%&%%%%%%%%%&&&&&&&&&&&&**&&&&&&&%%%%%%%&&%%%%%%%XXX%%%X%%*(''&%%X%/*%%X&+%X%XXX%+((&XX%/&X*/(*&+XX/&XX%XX%*///%X&*%(&XX&+///&XXX&/%X+'/XX* *&&&((XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXX%X%/++&%&&&%+++&%&&++&X%%X%XX%%XXXXXXXXXXXXXXXXXXX%X&%X&%*++++*&%%XXXXX%&&%&*++++*+++++++/+++/+%%*+++++*%%*%++*%%%%XX%XXXXXXXXXXXXXXXXXXXXXXXXX%X%XXXXX%%X%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%/
' ('(&&&&&&&&&&&&&&&%%%%%%%%%%%%X%XX%XXXXXXXXXXXXXXXXXXXXXXXX%*&&&&*++++++++*%XXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&&&&&%X%%%%%XX%XXX%%%XXX%%&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%*&&%&%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&%%%%X%%%&%%%%%%%XXX%X%%X%%%%%%%%%X%%%%XXXXX%XXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXX%%%XX%&%XX%&%XXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXX%+++*%%%%&++*&%%*++%X%X%XXX%XXXXXXXXXXXXXXXXXXX%X%&&X%X***&%XX%%X%%X%X%&**&+++++++++*****+**&&*++++*+*X&+&+*%%%%%XXX%XXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/'
'' (*&&&&&%%%%%%%%%%%%%%%%%XXXXX%&%XXXXXXXXXXXXXXXXXXXXXXXXXX%*&*%&*&*+++**++*XXXXXXXX%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%X%XXXXXXXXXXXXXX%%&&&&&%X%%%%%XX%XXX%%%XXX%%&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%**&%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&%%%%%X%%&&%%%%%%XXX%XXXXXX%%%%%%XX%%%%XXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXX%+++*%%%%&++*&X%*++%X%XXXXX%XXXXXXXXXXXXXXXXXXXXXX&&%X%*&%X%&&&*&%%X&&*+++*+++++++++++**&&**+++++++++*%*+**&%%%X%XXX%XXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/((
'' /%&&&%%%%%%%%%%%%%%%%%%%%%%%%%&%XXXXXXXXXXXXXXXXXXXXXXXXXX%&&X&&&&**&%%&*++%XXXXXXX%%%%%%%XXXXXXXXXXXXXXXXXXXXX%&XXX%XXXXXXXXXXXXX%%&%%%XX%%%%%%X%XXXX%%XXX%%&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%&*&%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&%%%%XX%%&%%%%%%XXXXXXXXXXXXX%X%XX%%%%XXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXX%+++*%%%%&++*&X%+++%XXXXXXX%XXXXXXXXXXXXXXXXXXXXXX&%&X%*&&&*****+*&&*&++++*++++++++++++++++++++++++++*&++*&X%%%%%XXX%XXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/' '
''(&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXX%&%&*&&*&&*+++/++XXXXXXX%%%%%%%%XXXXXXXXXXXXXXXXXXXXXX&X%XXXXXXXXXXXXXXXX%%%XXXX%%%%%%XXXXXX%%XXX%%%&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%X&&&%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&%%%%%X%%%%%%%%%%XXX%XXX%%%%XXXXXXX%%%XXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXX%X%+++*%%%%&+**&X&/++%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&%%&+*&*+++/*%&&&*+++++++++++++++++++++++++++++++**++&XX%%%%%XXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+''('
''+%&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%%&&*&%%&+++++++%XXXXXX%%%%%%%%XXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%XXXXXX%%XXX%%%%&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%X%%&%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&%%%%%XX%%%%%%%%%XXXXXXXXXXXX%XXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXXXXXXXXX%%%XX%XX*++*%%%%*+*&&X*++*%%%%XXXXXXXXXXXXXXXX%%XXXXXXXXXX&&%%&++*&&+++/*%&*+/*++++++++++++++++*++++++++++++*++*%%%%%%X%XXXX%%%XXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+'( ''
''&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXX%%%&&%&&*&++++++&XXXXX%%%%%%%%%XXXXXXXXXXXXXXXXXXXX%&&%XX%XXXXXXXXXXXXXXXXXXX%%%%%%%%%XXXXX%%XXX%%%%&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%X%%%%X%%%%%%%%X%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&%%%%XXX%%%%%%%%XXXXXXXXXXXX%X%XXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXX%%%XXXX*+++%%%%*+&&%%++*&XXX%XXXXXXXXXXXXXX%%%%XXXXXXXXXX%&&%*+++*&&&*%&++++++++++++++++++++++++++++++++++++++*X%%%%%X%%XXXX%%%XXXXXXXXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX* '''''
''&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXX%&%&%%**&**+++++*&XXX%%%%%%%%%%XXXXXXXXXXXXXXXXXXX%****%XXXXXXXXXXXXXXXXXXXXX%%%%%%%%%XXXXX%%XXX%%%%%&%&&&&&&&&&&&&&&&&&&%%%%%%%%%X%XX%%%XXXXXXXXX%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&%%%%%XX%%%%%%%%XXXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXX%%%XXXX*+++%%%%**&*%%**&&%%XX%XXXX%XXXXXX%%%%%XXXXXXXXXX%X&&&*+++++++**+*+++++++++++++++++++++++++++++++++++++&X%%%%%X%XXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&'('''('
' *%&&&&&&&&%%%%&&&&%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXX%%%&*&&&&*++**++*XXX%%%%%%%%%%XXXXXXXXXXXXXXXXXXX%*****XXXXXXXXXXXXXXXXX%XXX%%X%%%X%%XXXXX%%XXXX%%%%%%&&&&&&&&&&&&&&&&&&&%%%%%%XXX%XX%%%XXXXXXX%%X%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%XX%%%%%%%XXXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXX%%XX%X*+++%%%%**&*%%&&&*++&XX%XXX%XXXXX%%%%%%X%%XXXXXXX%X%&%*++++++++++++++++++++++++++++++++++++++++++++++++%%%%%%%XXX%XXX%%&%XXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX(( ''' (
''+%&&&&&&%%%%%%%%%&&%%&%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXX%%%%&&&*&&%&&&&&*+&XXX%%%%%%%%%%XXXXXXXXXXXXXXXXXXX%*****%XX%&%X%XXXXXXXXXX%XX%XX%%%%%%XXXXXX%%XXX%%%%%%%%&&&&%%&&&&&&&&&&&&%%%%X%X%XXX%%%XXX%%XXXX%%%%%%%%%%%X%&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%XX%%%%%%XXXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXX%++/+&XX%*&**X&&*&*++&X%%%XX%%XX%%%%%%%%%XXXXXX%XX%XX%%&++++++++++++++++++++++++++++++++++++++++++++++++%XX%X%%XXXXXXX%%%%XXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X/''''''''
''/%&&&&&&%%%%%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXX%%%%&*&&%%%&*&%%*+%XX%%%%%%%%%%%XXXXXXXXXXXXXXXXXXX&*****%XXX%%X%XXXXXXXXXXXX%%%%%%XXX%%XXXXX%%XXX%%%%%%%%&&&&&%%&&&&&&&&&&&%%%%%%XXX%X%%%%XXXXXXX%%%%%%%%%%%%X%&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%XX%%%%%%%XXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XX%++++&%X&*&**%&&*&*++&X%%%%%%%%%%%%%%%%%XXXXXXXXXXXXX%X%*++++++++++++++++++++++++++++++++++++++++++++++*XXXXXXXXXXXXXX%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*(''''''''
''(&%&&&&&&%%%%%%%XX%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXX%%%&&&%&&&*++++++&XX%%%%%%%%%%XXXXXXXXXXXXXXXXXXXX&*****&XXX%XX%XXXXXXXXXXXX%%%%%XXXXXXXXXXX%%XXX%%%%%%%%&&&&&&%%&&&&&&&&&%&&%%%%%%%&%X%%%XXXXXXX%%%%%%%%%%%%X%&&&&&&&&&&&&&&&&&&&&&&&&&%%%%XXXXX%%%%%%XXXXXXXXXXXXXXXXX%%%XXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%X%++++*%X&*&&*%&**&*+/&X%%%%%%%%%%%%XXXX%XXXXXXXXXXXXXXXX*++++++++++++++++++++++++++++++++++++++++++++++&XXXXXXXXXXXXXX%%%%%XXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%( ''''''''
'''&%&&&&&&&&&&&%%%%%%%%&%%%%%%%%%%X%%%%%%%%%%%%%%XXXXXXXXXXXXX%%%%%%&**&*+++++*XX%%%%%%%%%%%&&&%XXXXXXXXXXXXXXX&*****&XXXXXXXXXXXXXXXXXXX%%%%%%%XXXXXXXXXX%%XX%%%%%%%%&&&&&&%%%&&&&&&&&*//*%XX%&&&%X%%%XX%%%%XX%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&%%%XXXXXX%%%%%XXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%X%++++*&%&***&%&**&*+/*X%%%%%%%%%%%%%%XXXXXXXXXXX%%XXXXXX%++++++++++++++++++++++++++++++++++++++++++++++&XXXXXXXXXXXXX%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+''''''''''
(''*&&&&&&&&&&%&%&&&%%%%%%%%%%%%%%XXXX%%%%%%%%%%%%%%XXXXXXXXXXX%&%X%%&&&*++++++&X%%%%%%%%%%%%**+&XXXXXXXXXXXXXXX&*****&XXXXXXXXXXXXXXXXXXX%%%%%%%%XXXXXXXXX%%XX%%%%%%%%%&&&&&&%%%&&&&&&*/(/*&%%&&&%%%%%%%X%X%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%XX%XXX%%%%%XXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%X*++++&%%&**&&***&*+/*X%%%%%%%%%%%%%%%XXXXXXXXX%&%XXXXXXX*+++++++++++++++++++++++++++++++++++++++++++++%XXXXXXXXXXXXX%%%%%%&%XXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&(''''''''''
''(&&&&&&&&&&&%%%%%&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXX%%&%%%%%&&&&&**++%X%%%%%%%%%%%%****XXXXXXXXXXXXXXX&*****&XXXXXXXXXXXXXXXXXXX%%%XXX%%%XXXXXXXX%%XX%%%%%%%%%&&&&&&&%%%&&&&*//+***&%&&%%%%%%%%XXXXXXX%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&%%&%%XX%XXXX%%%%XXXXXXXXXXXXXXXXX%%%X%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXX%%%X*++***&%&&**&***&*+/*X%%%%%%%%%%%%%%%%%XXXXXX%&&%X%%XXXX&++++++++++++++++++++++++++++++++++++++++++++*XXXXX%XXXXXXX%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%/'''''''''''
''/&&&&&&&&&&&&&&&%%%&%%%%%%%%%%%%%%%%%%%%XXXXXXXX%%%%%XXXXXXX%%%%%%%%%&%&%X%++XX%%%%%%%%%%%%+***%XXXXXXXXXXXXXX&****+&XXXXXXXXXXXXXXXXXXX%XX%%X%%%%XXXXXXX%%%XX%%%%%%%%%&&&&&&%%%%&&&+(+***+*&%&%%%%%%%%%%%%%%X%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&%%&%%XXXXXXXX%%%XXXXXXXXXXXXXX%XX%%%X%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&&%XXXX%%%X*++**&&&%&**&&**%*+/*X%%%%%%%%%%%%%%%%%XXXXXX%&&%X%%XXXX%*++++++++++++++++&&*++**++++++++++++++++++++&XXXXXXXXXXXXX%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ '''''''''''
''+%&&&&&&&&&%%&%&&&%%%&&%%%%%%%%%%%%%%%&%%%%XXXXXXXXXXXXXXXXX%%X%&&&&&&*&&&&*+X%%%%%%%%%%%XX****%XXXXXXXXXXXXXX&****+&XXXXXXX%XXXXXXXXXX%%XX&*&X%%%%XXXXXXX%%XX%%%%%%%%%%&&&&&&&%%%%+(/*******&%%&%%%%%%%&&&&%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&%%&%%XXXXXXXX%%%XXXXXXXXXXXXXX%XX%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%++*&XXXXX%X&++&&&**%%**%&**%*++*X%%%%%%%%%%%%%%%%%%XXXX%%&&%X%&XXXXX*++++++++++++++++&%&&&&*++++++++++++++++++++&XXXX%XXXXXXXX%%%%%&%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%'' ''''''''''
'(&&%&&&&&&&&%%%%%%%%%%%%%%%%%%&%%%%%%%%%%%%%%%%XXXXXXXXXXX%XXXXXXX%&*&&&&&%&++X%%%%%%%%%%%XX****&XXXXXXXXXXXXXX*******XXXXXXXXXXXXXXXXXX%%X%**&X%%%%%%XXXXX%%XX%%%%%%%%&%%%&&&&&%%%%*/+&*****+*&%%%%%%%%%%%&&&&%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%XXXXXXXXX%%XXXXXXXXXXXXXXXXXX%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&++**%XXXXX&*+*&&&&*&&*&%&&%*//*X%%X%%%%%%%%%%%%%%%%XXX%&&&%X%&%XXX%%++++++++++++++++*&&&*&*+++++++++++++++++++*XXXXXXXXXXXXX%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX* ' ''''''''''
'/%%&&&&&&&&&&%%%%%%%%%%%%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%XXXX%%%XXXXXX&**&&&&&&**X%%%%%%%%%%%XX*****XXXXXXXXXXXXXX*******XXXXXXXXXXXXXXXXXX%XX***&X%%%%%%XXXXX%%XX%%%%%%%%%%&&%*++/+%&&&***********&%%%%%%%%%%%%&&%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%XXXXXXXXX%%XXXXXXXXXXXXXXXXXX%%%%%%%%%%XXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&+++*%XXXX&*+*&&&&*&&*&&&&%*++*X%%%%%&%%%%%%%%%%%%%XXX%&&&&%&&%XXXXX&+++++++++++++++*&&&&*++++++++++++++++++++%XXXXXXXXXXXXX%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+'' ('''''''''
'*%%&&&%&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%X%%%XXXXXX%&*&&&&&&&&X%%%%%%%%%%%XX*****%XXXXXXXXXXXXX*******XXXXXXXXXXXXXXXXXX%X&+**&X%%%%%%%XXXXX%%XX%%%%%%%%%&&%&+(**&&**&&&***&&****&%%%%%%%%%%%%&&%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%XXXXXXXXXX%XXXXXXXXXXXXXXXXX%%%X%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%*+*+*&XX%&&+*&&&&&&&**&&&%*/+*%%%%%&%%%%%%%%%%%%%%XXX%&&&&&&&%XXXXXX*+++++++++++++++****++++++++++++++++++++&X%XXXXXXXXXXXX%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX('' ('''''''''
(&%&&&&%&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XX%%XXXXXXX%&&&&&&&&&X%%%%%%%%%%%XX&+**+&XXXXXXXXXXXXX*+*****XXXXXXXXXXXXXXXXXXX%+***%X%%%%%%%%XXXXX%XX%%%%%%X%&%%&%&/+&*%&*&&%&**+++*&**&%%%%%%%%&%%%&&%%X%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%X%&%%%%%%%XXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%***+*X%&%&*+*&&&&&&&***&%*+*&XX%%%%%%%%%%%%%%%%%%%XX%%&&&&&&%XXXXXX%+++++++++++++++++++++++++++++++++++++++%XXXXXX%XXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%''''('''''''''
/%%&&%&%&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%X%%%XXXXXXX%%&&&*&&&X%%%%%%%%%%%XX&+*+*&XXXXXXXXXXXXX&******XXXXXXXXXXXXXXXXXX%*****X%%%%%%%%%XXXXX%%XX%%%%%X%%%&&%%*/&&&%&&&&&&&**+(****&%X%&%%%%%%%&&&%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%&&&***&%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%*++*%&&%%&+**&&&&&&&*&*&&**&XX%%&%%%&%%%%%%%%%%%%XX&%%%&&&&%XXXXXXX*+++++++++++++++++++++++++++++++++++++&XXXXXXX%XXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*''''''''''''''
+%&&&%&%&&&&&&&&&&&%%%%%&%%%%%%%&%%%%&&%%%%%%%%%%%%%%%%%%%%X%%%X%XXXXXXX%%%&&*&X%%%%%%%%%%%XX%+++**XXXXXXXXXXXXX&**+*+*XXXXXXXXXXXXXXXXXX*+*++&X%%%%%%%%%XXXXXX%XX%%%%%%%%&&%%&&/+&*%**&&&&&***+/**&**&%%%%%%%%%%&&&&&&%%%%%&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXX%%%X%%&*+//////+*%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&+++&&*&%%*+*&&&&&&&*&*&&**&%%%&&&%&%%%%%%%%%%%%%%%&&%%%&&&%%%%XXXXX+++++++++++++++++++++++++++++++++++++XXXX%XXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/' '''''''''''
&%&&&&&%&&&&&&&&&&&%%%%%%%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXX%%&&%%%%%%%%%%%XXX%*****&XXXXXXXXXXX%&&*****%XXXXXXXXXXXXXXXX&+**+*%%%%%%%%%%%%XXXXX%%XX%%%%%%%%&%%&%*/+&%&*&%&&%&&*//**&***&%%%%%%%%%%&&&&&&&%%%&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXX%%%X&+//+++++++//+&%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%******&&%&***&&&&*&&*&&&&&&%%&&&%%%%%%%XXXXXXX%%%%%&&%%%%&&&%%XXXXX&++++++++++++++++++++++++++++++++++*&XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%(''''''''''''
%%&&&&&%&&&&&&&&&&&%%%%%%%%%%%%%%%&%%%%&%%%%%%%%%%%%%%%%%%%%%%%%X%XXXXXX%%XXX%&%X%%%%%%%%%XXXX****+*XXXXXXXXXXX%&&&**&&XXXXXXXXXXXXXXXXX*+*++%%%%%%%%%%%%%XXXXX%%XX%%%%%X%%&&%%&%+/**&&*&&&&&&&//&*&****&%X%%%%&&%%%%%&&&%%%&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%*/+*&&%%%&&&*+/+&%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X%+*++*&&%%&*+*&&&*&&*&*&&&&%&&&%%%%%%%%%%%%%%XXX%%%&&&&%%%&&%%%XX%XX&++++++++++++*++++++++++++++++++++&XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%XXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%( (''''''''''
%%%&&&&&&&&&&&&&%%&&&%%%%&%%&&%%%%%%%%%%&%%%%%%%%%%%%%%%%%%%%%&%XXXXXXXX%XX%%%%%%%%%%%%%%%XXXX&+***+%XXXX%XX%XX%&&&&&&&%XXXX%XX%%XX%XXX*+*++&XX%%%%%%%%%%%XXXXXX%%XX%%%%XX%&&&&%&*//&*&**&%%%%&***&****&**&%%&&%&&&%%%%%&&%%&&&&&&&&&&&&&&&&&&&&%%%%%%%%&%%XXXXXXXXXXXXXXXXXXXXXXXXX%%X%%%&*&%&&&&&&&&&%*+/+%X%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*+*+*&&&&&&&+*&&&**&*&**&%&%&%%%%%%&%%%%%%%X%XXXXX%&&&&%%%%&%%X%XXXX&*+++++++++&&***&&&*++++++++++++&%%XXXX%XXXXXXXXXXXXXXXXXXXXXXX%%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%('''''''''''
%%&&&&&&&&&&&&&&&&&&&%&&&%%&%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%&%%XXXXXXX%XX%%X%%%%%%%%%%%%XXXX%****+&XXXXXX%%%X%&&&&&&&%X%XXXXXXXXXXX%***+*&%%%%%%%%%%%%%%%XXXXXX%%%%%%%%X%%&&&&%*/+&*&&&&&&&&&&&&&****&***&%%%&&&%&&&&%&&%%&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXX%XX%X%%%&&&%&&&&&&&&&&&*//+%%X%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XX&+***&&&&&&&***&&&&&&*&*%%&&&&&&&&%%%%%%%%%X%XXXXX%%&%%&&%%%%%%%%XXXX&*+++++++++++++++**&&*++++++++&%%%XXX%XXXXXXXXXXXXXXXXXXXXXXXX%%XX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%('''''''''''
%&&&&&&&&&&&%%&&&&%%%%%%%%%&%%&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&%XXXXXXX%XX%%XXX%%%%%%%%%XXXXX%&*+++*&XXXX%%&&%&&&&&&&&%XXXX%XXXX%XX%*++*+&XX%%%%%%%%%%%%%%XXXXXXX%%%%%%%X%%%%%&%*(+&**&&&&&&&&%%&&****&****&%%%&&&%%&&&%%%%&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXX%%%%&%%&&&&&&&&&&&&&&&*//&%&XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%***&&&&&&&&&&**&&&*&*&&%&%&&&&&&&%%%%%%%%%%%XXXXXX%&&%%%%%%%%%%XXXXXX%*++++++++++++++++++++++++++&%&&%%%X%XXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%('''''''''''
&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%&&%XXXXXXX%XX%%%XX%X%%%%%%%XXXXXX%**+++*XX%%%%&&X&&&&&&&&%%%XX%XXXX%XX&**+*&%XX%%%%%%%%%%%%%%%XXXXXX%%XX%%%XX%%%&&&&/*****&&%&&&%%&%%&***&******&%%&&&%%&&%&%&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXX%XX%%&%%&&&&&&&&&&&&&&&&&&&//+%&%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&&&&&&&&&&&&&&&&*&&*%%&&&&&%%%%%%%%%%%%%%XXXXXXXX%&&%%%&%%%%%%XXX%X%%&++++++++++++++++++++++++&X&&&X&&%%XXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%('''''''''''
&&&&&&&&&&%&&&%%%%%%%%%%%&%%%%%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%*&XXXXXXX%%X%%%%%XX%%%%%%%XXXXXX%&&**+*%X%%%&&&X&&&&&&&&%&&%XXX%XXXX&&***&%X%%%%%%%%%%%%%%%%%XXXXXXX%XX%%%%X%%&&&&&/******&%%&&&&&%%%&&&********&%%&&&&%%&&%%&%%%&&&&&&&&&&&&&&&&%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXX%%&&%%&&&&&&&&&&&&&&&&&&&+//&&&%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%&&&&&&&&&&%%&&&&&&&%%&&&&&&%&%%%&%%%%XXXXXX%%%%%X%&&%%%%%%%%%%XXXX%&&&*++++++++++++++++++++*%%&&%%%&%&%XXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%('''''''''''
&&&&&&&&&&&&%%%%%%%&&&&&%&&&&%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&%XXXXXX%%%X%%%%%X%%%%%%%XXXXXXX&&&*++&X%%&&*&%&&&&&&&&%%&&%%XXXXX%&&&&&%XXX%%%%%%%%%%%%%%%%%XXXXXX%%XX%%%X%%%&%%&/+&*****&&&&&&&%&&&&&**********&%%%&&&&&%%%%%%&&&&&&&&&&&&&&&%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXX%&&%X%&&&&&&&&&&&***&&*&&*/(/+***&%XX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%&&&&&&&&&&&&&&&&&%%&&&&&&&&&%%%%%XX%%%%%%%%%%%%X%%&%%%%%&&%%%%XX%&&%%&++++++++++++++++++*%%&&%&%%&%&%%XXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%('''''''''''
&&&&&&&&&&&&%%%&&&&&&%%%&%&%%&*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&*&%XXXXX%%%%%%%%%X%%%%%%%XXXXXXX%&&&*+*X%&&&&&%&&&&&&&&%X%%&%XXXX&&&*&&&XXXX%%%%%%%%%%%%%%%%%%XXXXXX%%XX%%X%%%&&&&++&******&&&&&&%&&&%%&**********&%%%&&&%%%%%%%&&&&&&&&&&&&&&%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXX%&%%%%&&&&%&&&&&&******&&**////((/+*&%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&&&&*&&&&&&**&%%&&%&&&&&%%%%X%%%%%%%%%%%%%%%%%X%%%%%%%%%%%%%%%%X%&&%&*+++++++++++++++*%%&&%&%%%&&%%&XXXXXXXXXXXXXXXXXXXXXX%X%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%('''''''''''
&&&&&&&&&&%%%&&&&&&%%&&&&%&%&/'*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*&%XX%XX%%%%%%%%%X%%%%%%XXXXXX%XX&&&&**%%&&&%%%&&&&&&&&%%&%%%%%X&&&&&&&%XXXX%%X%%%%%%%%%%%%%%%XXXXXX%%XX%XXX%%&&&%*/**&****&&&&&&%%&&&%%&&********+*&%%%&%%%%%%&&&&&&&&&&&&&&%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXX%%%%X%%%&&&%&&&&&&&******&&*+++//////+&%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&&&*&&&&&&&*&%%&%&&&&%%%%%%%%%%%%%%%%%%%%%%%%XX%&&%%%%%%%%%%%%%%X%&&&&*++++++++++++%%%&&&&%X%&%%%&%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%XXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%('''''''''''
&&&&&&&&%%%%&&&&&&&&&&%%%%&%&//&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&*&XXXXX%%%%%%%%X%X%%%%%XXXXXXXXX&&&&&&&X%&%X%%*&&&&&&&&%&&&%XX&&&&&&&%XXXXXX%%%%%%%%%%%%%%%%%XXXXXXX%%XXX%%%%%&%&&/+&*******&%&&%&&&%%%&&&***********&%%%%%%%&&&&&&&&&&&&&%%%%%%%%%%%%%XXXXXXXX%XXXXXXXXXXXXXXX%%%%%%%%&&&%&&&&&&&&********&&&&&**+//+*%&%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&**&&&&&&*&&%&&%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%XX%%%%%%%%%%%%%%%%%%%&&&%&+++++++++&%&&&&&%%X%X&&%&%%XXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXX%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&(''' ' '''''
&&&&&&&%%%%&&&&&&&&&&&%%&%&&%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&*&%XXXX%%%%%%%%X%X%%%%%XXXXXXXXX%&&&&&&%%%%&%%&&&&&&&&&%&&&%%&&&&&&*%XXXXXXX%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXX%%&&%%*/********&&&&%&&&%%%%%&&***********&&%%%%%&&&&&&&&&&&&%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%&&&%&&&&&&&&&*********&&&&&&&+//*%%%%X%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%**&&&&&&*&&%&&&%&%%%%%%%&%%%%%%%%%%%%%%%%%%%%XX%%%%%%%%%%%%%%%%%%%%&&%%&++++*&&%&%&&&%%%%%X&&&&XXXXXX%%%%XXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&''''''''''''
&&&&&&&%%%&&&&&&&&&&&&%%%%&&%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&*&%XXXX%%%%%%%%%%X%%%%%XXXXXXXXXX&&&&&&&&X%&%&&&&&&&&&&%&&&&&&&&&&&%XXXXXXXX%%%%%%%%%%%%%%%XXXXXXXXXXX%XXXXX%%%&&%&+/*&******&&&%&&&%%&&%%&&&&&******+**&%%%&&&&&&&&&&&&&%%&%%%%%%XXXXXXXXXXXXX%&XXXXXXXXXXXXX%&%X%%%%%&&&%&&&&&&&&&&**********&**&&*+//*%&%&X%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%***&&&&&&%%%&&&%%%%%%%%&&%%%%%%%%%%%%%%%%%%%%XXX%%%%%%%%%%%%%%%%%%%%%&&&%&%%%%%&&&&&%%%%&%%&%%%XXXXX%%%%XXXXXXXXXXXXX%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX& ( ''''''''
&&&&&%%%&&&&&&&&&&&&&&%%%&%%%&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&*&XXXX%%%%%%%%%%X%%%%%XXXXXXXXXX%&&&&&&&%%&%&&&&&&&&&&%&&&&&&&&&&&XX%XXXXXX%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXX%%%&&&&&//********&&%&&&%%&&&%%%&&&&&&&&&***&%%&&&&&&&&&&&&&&&&&%%%XXXXXX%%XXXXXXXX//%XXXXXXXXXXXX%&%%%%&&%&&&%&&&&&&&&&&&**********&&**&*/(/*%&&%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%***&&&&&&%%&&&&%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%XXX%%%%%%%%%%%%%%%%%%%X%&&&%%%&&&&&&%%%&&&&%X%XXXX%%%%%%%XXXXXXXXXXXXXX%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&('''' ''''''
&&&&%%%&&&&&&&&&&&&&&&%%%%%%&%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&*&%XXX%%%%%%%%%%X%%%%%XXXXXXXX%%X&&&&&&*&%&&&&&&&&&&&&&&&&&&&&&&%XXXXXXXXXXX%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXX%%%&%&%%&/(++******&%&&&%%&%%%&&&&&&&&&&&&&&%%%&&&&&&&&&&&&&&&&%%%%%%XXXXXXXXXXXXXX*+%XXXXXXXXXXXX%&%%%%&&%&&&&%&&&&&&&&&&&*********&&&*&&+///&%%&%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX***&&&&&&%&&%%&&%%%%&&&%%%%%%%%%%%%%%%%%%%%%%%XXXXX%%%%%%%%%%%%%%%%%%XX%&&&&&&%%%%%%&&&%%XX%%X%%%X%%%XXXXXXXXXXXXXXXX%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&+(''''''''''
&&%%%&&&&&&&&&&&&&&&&&%%%%%&&%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&*&%XXX%%%%%%%%%%X%%%%%XXXXXXXX%%X&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%XX%&XXXXXX%%%%%XXXXXXXXXXXXXXXXXXXXXXXXX%%%%%&%&&%*/(/******&&&&&%%&%&&%%%%%&&&&&&%&%%%&&&&&&&&&&&&&&&&%%%%XX%%XXXXXXXXXXXXXX%XXXXXXXXXXXXX%%%%%%&&%%&&&%&&&&&&&&&&&********&**&**&&*///&%%&%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*+*&&&&&%%&&%%&&%%%&&&%&&%%%%%%%%%%%%%%%%%%%%%%XXXX%%%%%%%&&%%%%X%XX%%XXX%%%%%%%%&&&%%XXXX%%%%%%%%%%XXXXXXXXXXXXXXXX%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX**/''''''''''
&&%%%&&&&&&&&&&&&&&&&&%%&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&XXX%%%%%%%%%%XX%%%%XXXXXX%%%%X%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&X%**XXXXXXX%%%%%%%%%XXXXXXXXXXXXXXXXXXXX%%%%%&%&&&%&+(+******&&&&%%&&&&%%%%%&%%&&&&&%%&&&&&&&&&&&&&&&&%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&%%%%&&%%&&&%&&&&&&&&&&&&&******&**&&**&&*///&%&%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&***&&&&%%&%%%&&%&&&&%%%&%%%%%%%%%%%%%%%%%%%%%%XXXXX%%%%%%&&&&&%%%%%XX%XX%%%%%%%%&%%%X%%%%%%%%%%%%%%XXXXXXXXXXXXXXXX%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*++('' '''''''
%%%&&&&&&&&&&&&&&&&&&&%%%%&&%%%%%%%%%%%%%%%%%%%X%%%%%%%%%%%%%%%%%%&&&XXX%%%%%%%%%%XX%%%%XXXXXX%%%X%X&&&&&&&&%&&&&&&&&&&&&&&&&&&&&&&%XXXXXXXXXXX%%%%%%%%%%%%%%%XXXXXXXXXXXXXXX%%%%%&&&%&&&/+&*****&&&&%%&%%%%%&&&&&%&&&&&%%&&&&&&&&&&&&&&&&%%%XX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&%&&&&%%&&&%&&&&&&&&&&&&&&&&****&***&**&&*//*&%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&**&&%%%%%&&&&&&%%%%&&%%%%%%%%%%%%%%%%%%%%%%%XXXXXX%%%%X%&&&&%%%%%%%%%%XXXXXXXX%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXX%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*+&( ' ''''''
%%&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&*&%XXX%%%%%%X%%XX%%%%XXXXX%%%%X&%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXXXX%XXX%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXX%%%%%&&&&&%+/&*****&*&&&%&&%%&&&&&&&%%&&%%&&&&&&&&&&&&&&&%&%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXX%*&%%%%%&%%&&&%&&&&&&&&&&&&&&&&&&**&*******&&+//&%%&%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&*&%%&&&&&&%%&&&%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXX%%%%&&&&&X%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXX%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*+*+''''''''''''
%&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&*&XXX%%%%%%%X%%%%%%%XXXXX%%%%X&%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%XXXXXXXXXX%%X%%%%%%%%%%%%%%%%XXXXXXXXXXXXXX%%%%%&&&&&&&/+&****&**&%%&&%&&&%&%&&%%&%%%&&&&&&&&&&&&&&&&&%%XXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXX%*&%*+*%&&%&&&%&&&&&&&&&&&&&&&&&&&&&&&****&&&*//*%%&%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&&&&&%%%&&&%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXX%%%%%&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%+*+*('''''''''''
&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%&&&XXXX%%%%%%%%%XX%%%XXXX%%%%%X%%%&%&&&&&&&&&&&&&&&&&&&&&&&%%%&%XXXXXXXXX%&&%%%%%X%%%%%%%%%%%XXXXXXXXXXXXXXX%%%%%&&&&&&+/*&***%&**&%&%&&&&%%%&&&&&%%%&&&&&&&&&&&&%&&&%%%XX%%%%%%%%%%XXXXXXXXXXXXXXXXXXXX%%X%&%%+/+&%%%&&&%&&&&&&&&&&&&&&&&&&&&&&********&//+%%&%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXX%%%%%&&&&%X%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%+*+&/ ''''''''''
&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%X%%%%%%%%%%%%%%%&**&&&%%XX%%%%%%XXXXX%%%XXXXX%%%XXX%&&%%%&&&&&&&&&&&&&&&&&&&&%%%&&%XXXXXXXXXX%%%%%%XXXX%%%%%%%%%%XXXXXXXXXXXXXXX%%%%%&&&&&&//*&**&***&%%%&&%&%&&&&&%%%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXX%%%%XX&*&++%%%&&&%&&&&&&&&&&&&&&&&&&&&&&*****&**%+/+&&&%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%XXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXX%%%%&&&&X%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%XXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&+++**'''''''''''
&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%X%%%%%%%X%%%%%%&++&%&&%X%%%%%%%XX%%%%&&&%%%%%%%%&%%%&&%%%%&&&&&&&&&&&&%%%%%%%%&&&&&XXXXXXXXXXXX%%%XXXXXX%%%%%%%%%%XXXXXXXXXXXXXX%%%%%%&&%&%+(+*&&&***&&&%&&%&%%%&&%%%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXX%%X%XX%%X&+%%%&&&%&&&&&&&&&&&&&&&&&&&&&&&&&*****&//+%&&%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%XXXXX%XX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXX%%%&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXX%%%%%%XXXX%XXXX%%%XXXXXXXXX&*%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&*+*+&( '''''''''
&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%XX%%%%%%X%%%%%%%XX%%%%*/+&&%*&&X%%X%%%XX**++++++*+++++++++*&&&&&%&&&&&&&&&&&%%%%%%X%%&&&&&&XXXXXXXXXXX%%XXXXXXXXXXX%%%%%%%XXXXXXXXXXXXXX%%%%%%%%&%%*+(/+*%&***&*&&%%&&&%%&%&&%%&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXX%%X%X%XXXX*%%%&&%%&&&&&&&&&&&&&&&&&&&&&&&&&&**&&&//+%&&%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%XXXX%%%XX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXX%%%&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXX%%%%%%%%%XXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX**+*+*+ '''''''''
&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%XX%%%%%%%%%%%%%XX%%%&+/&&&&&&&%%%X%%%XX*+++**++*+++++++++&&&&&&&&&&&&&&&&&%%%%%%%%&&&&&&&&XXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%XXXXXXXXXXXXXXX%%%%%%&%&%*////&&***%&&*%%&&&%%%%&&%%&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXX%%XXX%X%%X%%X%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*//*%&&%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%XXX%%%%XX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXX%%&&&&%X%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%XXXXXXXXXXXXX%%&%%%%XX%%XXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%*****/*('''''''''
&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%XXX%%%%%%%%%%%%X%%%%&/+&&&&%&&X%XX%%%XX*++++++++++++++++*&&&&&%%&&&&&&&&&%%%%&&%%%&&&&&&&&%XXXXXXXXXXX%X%%%%%%%%%%XXXX%%%%%XXXXXXXXXXXXXX%%%%%%%&&%&&*+/*&*&*&&++%&%%&&&&%&&%%&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%X%XXXXXXXXXXXXXXXXXXX%%XXX%%X%%%X%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&*++///*%&&%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&/&XXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%XXXXX%%XXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXX%&&&&%X%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%XXXXXXXXXXX%%%%%XXXXXXXXX%XXXXXXX%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%*&**+(*/ ''''''''
&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%XX%%%%%X%%%%XXX%%X%*+&&&&&%&&%%%XX%%%X%&**++++********&&&&&&%X%&&&&&&&%%%&&%&&%%&&&&&&&&&&%XXXXXXXXXX%%%X%%%X%%%%%%%XXX%%%%XXXXXXXXXXXXXXX%%%%%%&&&&%%&%&**&%&++&&&%%&&&%&&%&&&&&&&&&&&&&%%%&&%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXX%%X%XX%%%%X%%%%%%&&&&&&&&&&&&&&&&&&&&&&&*+///////+&%&&%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%/&XXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%XXXXXXX%%%%%XX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXX%&&&&X%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%XXXXXXXXX%&%%%XXX%XXXXXX%XXXXXXXXX%XXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&****++*+''''''''
&&&&&&&&&&&&&&&&&&&&&%&&&%%%%%%%%%%%%%%%%%XXX%%%%X%%%%XX%+*&%*+&&&&&%&&%X%%XX%%XX%%X%%&***&&&&&&&&&&&%%X&&&&&&&%%&&%&&&%%%&&&&&&&&&&&%%XXXXXX%%%%%X%%%%%%%%%%%%%XXX%%%XXXXXXXXXXXXXX%%%%%%%%&&&&&%&**&%&++*&&&%%%&&&%%&&&&&&&&&&&&%%%%&%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXX%%XXX%%%%%%%&&&&&&&&&&&&&&&&&&&+//+*&&&*+//+&%&%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%XXXXXXXX%%%%%XX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXX%%&&&%X%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%XXXXXXXXX%%%XX%%%XX%XXXXXXXXXXXXXXXXX%%XX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&*&***+*&('''''''
&&&&&&&&&&&&&&&&&&&&&%&&%%%%%%%%%%%%%%%%%%XXX%%%%X%%%%XX%+***/+%&&&&%%&%X%%XX%%XXXXXXXXXX%%%%&&&%%&%%%%&&&&&&%%%&&&%&&%X%&&&&&&&&&&&&&&%&%%XXXXXXXX%%X%%%%%%%%%%%%XXX%XXXXXXXXXXXXXXXX%%%%%%%&&&&%&**&%&*/*&&&&&&&%%%%&&&&&&&&&&&%%%%&%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&%%X%&%XX%%%XX%%%%%&&&&&&&&&&&&&&&&+/*&&&&&&&&*+/*%&%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%XXXXXXXXXX%%%%XXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXX%%&%X%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%XXXX%%%%%%XXX%%XXXXXXXXXXXXXXXXXXXX*/&XXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&*****//&/ '''''
&&&&&&&&&&&&&&&&&&&&&&%%&%%%%%%%%%%%%%%%%%%XX%%%%X%%%%XX%**&*/+&&&&&&%&%X%%XX%%%%%%%%XXX%%%XXXXX%%X%%%&&&&&&%%%%&%%&&%%%&&&&&&&&&&&&&&&&**+**&&&&&&**X%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXX%%%%%%%%&&&%%**&&&*(/**&&%%%%&&%&&&&&&&&&&%%%&&%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%*%X%%X%X%%%XX%%%%%%%&&&&&&&&&&&&&&/+&&&&&&*&&&&++%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXX%%X%XXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXX%%XXXXXXXXXXXX%%%%X%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXX%XXX%%%%%%%%%%%%%%%%%%%%%%XX%%%%%%X%%XXXXXXXXXXX%XXXXXXXXXXX*+XX%XX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&&*&**((**' '''''
&&&&&&&&&&&&&&&&&&%&&&&%%%%%%%%%%%%%%%%%%%%XXX%%%%%%%%%%%**%&+*&&&&&&%&%X%%XXX%%%%XXXXX%%%%%%%%%%%%%&&%%%%%%%&%%%%%&%%%&&&&&&&&&&&&&&&&&&*++**+++++++X%%%%%%%%%%XX%%%XXXXXXXXXXXXXXXXXX%%%%%%%%%&&%***&&&+(/+*&&%%&&&%%&&&&&&&&&%%%&&%%%&%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&%%%XX%X%%%XX%%%%%%%%%&&&&&&&&&&&&/+&&&&&&&&*&&*/&%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%X%%%X%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXX%X%XXXXXXXXXXXXXXXXXX%%%X%X%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXX%%XXX%%%%%%%%%%%%%%%%%%%%%%%XXXX%%%XX%%XX%%XXXXXX%XXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&****+/+&( '' '''
&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%XX%%%%%%%%%%X**&&/*&&&&*%&%%XX%%XXX%X%%%%XXX%%%%%%%%%%%%&&%%%%&%&&&%%%&%%%%%&%%&&&&&&&&&&&&&&&*++++*+*++*XX%%%%XXXXXXXX%%%%XXXXXXXXXXXXXXXXX%%%%%%%%%&%&**&&**+((///+*&&%%%&&&&&&&&%%%&&&%%%&%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%*%XXX%XX%%XX%%%%%%%%%%%&&&&&&&&%&//&%&&&&&&&&&&/*%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%X%%%X%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXX%%XXXXXXXXXXXXXXX%%X%XXX%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXX%%%XXX%%%%%%%%%%%%%%%%%%%%%%%XXXXX%%XXXX%%%%%%XXXXXXXXXXXXXXXXXX%XXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%&&*&**++&+''' ' '
&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%XX%%%%%%X%%%**&%++&&&&+%%X%%XX%%XX%%%%XXXX%%%%%%%%%%%%X%&&&%&&&%%&&&&&%%%%%%%%&&%%&&&&&&&&&&&&&&**++*+**%X%%%XXXXXXXXXX%%%%XXXXXXXXXXXXXXXXX%%%%%%%%%%&**&&*&&*++///*%%%%%&&&&&&&%%%&&%%%%%%%%XXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&+&XXXXXX%%XX%%%%%%%%%%%%%&&&&&&&&+/+*&&%&&*&&&&++%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%X%%%X%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&*&&&&&%%%XX%%XXXXXXXXXXXXXX%%X%XXXXXX%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXX%%%XXX%%%%%%%%%%%%%%%%%%%%%%%%%XX%%%%XXX%%%%%%XXXXXXXXXXXXXX%X%%XXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&%&&*&**++**('''' '
&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%XX%%%X%%X%%%*&&%&/&&&&+%%X%%XX%%XX%%%XX%XXX%%%%%%%%%&%X%&&&&%%&&&%&%%%%%%&&%%&&&%%%%&&&&&&&&&&&&&&&&&&%%XX%XXXXXXXXXXXXX%%%%%XXXXXXXXXXXXXXXX%%%%%%%%%&**&&*&*&&*//+&%%%%%&&&&&&&%%%&&%%&%%XXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+*%X%XXXXX%XX%%%%%%%%%%%%%%%&&&&&%&+///*&&&&&&*&++%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%X%%%X%%%%%%%%%%%%%%%%%%%%%%%%%&&***&&*****&%%XXXXXXXXXXXXXXXXXX%%%%XXXXXX%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXX%%%%X%X%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXX%%XXXXX%%XXXX%XXXXXXXXXX%XXX%XXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/&%&&*&***+%('''' '
&&&&&&&&&&&&&&&&&&%%%%&&%%%%%%%%%%%%%%%%%%%%%XX%%%%%X%%%%*&&&&*+*%*+%X%X%%XX%%XX%%X%XXXX%%%%%%%%%&%X%&&&&&&&&&&&&%%%%%%&%%%&&&%%XXX%%%XXX%%%%&&&%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%&***&+***+//+&&&%%%%&&&&&&&%%&%%%&%%X%%XXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+&%%%%XXXXXXXX%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&++%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%XX%%XX%%%%%%%%%%%%%%%%%%%%%%%%*&&&***&&&&&***&&%XX%%XXXXXXXXXXXX%%%%XXXXXXXXX%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%%%X%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXX%%XXXX&XXXXXXXXXXXX%XXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+'/%%&&****+&*'' '''
&&&&&&&&&&&&&&&&%%%%&&&%%&%%%%%%%%%%%%%%%%%%%%X%%%%XX%%%%**&&&&&+++%X%%X%XXX%%XXX%X%XXXX%%%%%%%%%&%X%&&%&&&&&&&&&%%%%%%%%&&%%&%%&%XXXXXXXXXXXXXXXXXXXXXXXX%%%%XXXXXX%%%XXXXXXXXXXXXXXXX%%%%%%%%%%%%%***&/////+*&&%&&%%%&&&&&&%%%&&&%%%XXXXX%%%XXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXX*%%%%%XXXX%XXX%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&+/%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XX%%%XX%%%%%%%%%%%%%%%%%%&%%%&&&&&&&&&******&****&%XX%%%XXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%X%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXX%%X%%X%%XXXXXX%XX%%XX%XXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/'(+%%&***&+*&('''''
&&&&&&&&&&&&&&&&%%%&&&&%%%%%%%XX%%%%%%%%%%%%%%%X%XXXX%%%%**&&&&&&*&X%%XX%XXX%%XXXX%%XXXXX%%%%%%%%%%XX%&%%%%&&&%%%%%%&&&&%%%%%%&&%%XXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXX%%%%%%%%%%%%%&&&*&&*&&&&&&&&&&%%%&&&&&%%%%%&%%XX%%%%XXXX%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX*%%%%%%XXXXXXXX%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&*/&%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XX%%%%%XX%%%%%%%%%%%%%%%%%%%%%&*&&&&&&***++++*******&%XX%X%XXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%X%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XX%XXXXX%%XXXXXXXX%**%XXXXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%('''+%&&****+&/ ' ''
&&&&&&&&&&&&&&%%&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%X%XXXX%%%X*+%&&&&%XX%%XXXXXXX%%XXXX%XXXXXX%%%%%%%%%XXX%&&&&&&&&&&%%%%%%%%%%%%%%%%X%%XXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXX%%%%%%%%%%%%%%&&&&&&&&&&&&&%&%%%%&&&&&%%%%&&&%%%%%XXX%%%&&&&&%%XXXXXXXXXXXXXXXXXXXXXXXXXXX*%%%%%%%XXXXXXX%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&++%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&XX%%%%%%XX%%%%%%%%%%%%%%%%%%%&&&&&&&&**+++++++++**&****&%XXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%X%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%XX%%XX%%%X%XXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&'('''+%&&***+&*'' ''
&&&&&&&&&&&&&&%%&&&&&%&&&%%%%%%%%%%%%%%%%%%%%%%%XXXXX%%%%*+%&&&&%%%%X%%XX%XX%%XXXX%XXXXXX%%%%%%%%XXXX%%&&%%%%%%%&&%&%%%%%%%%&%%%%%%XXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXX%%%%%%%%%%%%&&&&&&&%&&&&&&&&&&&%%%%&&&&&%&&&&%%XXXXX%%&&***&**&&%XXXXXXXXXXXXXXXXXXXXXXXXXX&%%%%%%%XXXXXXX%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&++%%%%%%%%%%%%%%XXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XX&%%%%%XX%%%%%%%%%%%%%%%%X%&&&**&&&**+++++++++++++*&&**&%%XXXXXXXXXX%X%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%X%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%&%%X%%%%%%XX%XXXXXXX%%%XXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+''(''(&%&*****&' ('
&&&&&&&&&&&&%%&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%XXXXXXX%%&+&&&%%XX%%%%XXX%XX%%X%XXXXXXXXXX%%%%%%%XXXXX%%%%%%%%%%%%%%%%%%%%%%%%%X%%XXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%X%%%%%%%%%XXXX%%%%%%%%%%%%%%%&&&%&&&&&&&&&&**&&&&%%%%%%%%%%%%XX%&&&&**&&&&&&&*&&%XXXXXXXXXXXXXXXXXXX%XXXX%%%%%%%X%%XXXXXX%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&+*%%%%%%%%%%%%%%XXXXXXXX%%XXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%X%X%*%%%%XXXX%%%%%%%%%%%%%%%XX%&&&&&&**++++++++++++++++****&%%XXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%X%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%X%%%%%XX%XXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/' ''( (%%&***+&/ ''
&&&&&&&&&&&&%&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXX&+&&&%%%%XX%XX%X%XXX%X%XXXXXXXXXX%%%%%%XXXXXXX%%%%&&&%%%%%XXXXX%%%%%%%%&%XXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXX%%%%%%%%%%%%&%%&+/*%%%&&&&&&%&++*****&&&&&&&&&&&&&&**&&&&&&**&&&&&&&%XXXXXXXXXXXXXXX%%%%XXXX%%%%%%%%%%%%XXX%%%%%%%%%X%%%%%%%%%%%%%%%%%%&&&&+*%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%X%&+%X%%XXXXX%%%%%%%%%%%%%X%X%&&&&*&*++++++++++++++++++++**&&%XXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%&&%%XXXXXXX%XXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%(''''' /X%&**+*+''''
&&&&&&&&&&%%&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXX%+*%%%%XX%%%%%XX%XXX%X%XXXXXXXXXX%%%%%XXXXXXXXXXX%%%%%%XXXX%%%%XXXXXX%&%%XXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXX%%%%%%%%%%%%%%&+////*%%%%%&&&&&+******************&&&%%%%%%%&&&&&&&&&&&%XXXXXXXXXXXX%&&&%XXXX%&%%%%%%%%%%XXX%XX%%%%%%%%%%%%%%%%%%%%%%%%%&&&*/&X%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%X%XXXXX&+%X%XXXXXXX%%%%%%%%%%%XX%%%X&*&&&*++++++++++++++++++++++**%XX%XXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&%%%%%%%%&&%%&%%%%%%%%%%%%%%%%%%%%%%%%%&&%%XXXXX%XXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&''('''' '*X&****&'' '
&&&&&&&&&%%&&&&&&&&&&&&&&%&&%%&%%%%%%%%%%%%%%%%%%%XXXXXXXX**%X%%%X%%XX%XX%%XXX%XXXXXXXXXXX%%&%XXXXXXXXXXXX%XXXXX%%%%X%%%%%%%%%%%%XXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%X%%XX&&&&%XXXXXXX%%%%%%%%%%%%%&*+++/////&%%%%%&%%&**********&&&&&&&&&%%%%%%%%%%%&&&&&&&&&&&&%X%%%%%%&&&&&%&&XXXXX&&X%%%%%%%%%XXX%XXXXX%%%%%%%%%XXX%%%%%%X%%X%&*&%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXX%%%%%%XX%&%+&%XX%XXXXXXX%%%%%%%XX%%%%%X%&&&*++++++++++++++++++++/++++*%XX%XXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXX%%X%%%%&%%%%%%%%&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&%XXX%XX%XXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*''''''(' (%%*&**&/ '
&&&&&&&&%%%&&&&&&&&&&&&&&%%&%&%%%%%%%%%%%%%%%%%%%%XXXXXXXX%&%X%X%%%%%%%XXX%XXXXXX%XXXXXXXX%%%%XXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%XX&&&&***%XX%%%%XXXX%%%%%&**+//////////&%%%%%%%&*+++******&&&&&&&&%%%%%%%%%%%%&&&&&&&&%%&&&&&&&&&&&&%%&&&%XXXXX%*&%%X%%%%%%%%XX%%%X%XX%%%%XX%%%%XXXXXXXX%%%%%X%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXX%%%X%%&%&%&&%%XXXXXXXXX%%%%%X%%%%%%%%%%&&++++++++++++++++++++++++++*%X%XXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXX%XX%%%%&%%%%%%%%&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&%%XX%XX%XXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*(''''' '' /%&*&+*+' '
&&&&&&&&%%&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXX%%X%X%X%%XXXXXX%XXXXXX%XXXXXXXXX%%XXXXXXXXXXXXXX%&%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%XX%&&&*+***&%XX%%%%%%%%%&*+/////////////+&%%%%%X%%&&******&&&&%&&%%%%%%%%%%%%%X&&&&&&&&%XX%&&&&&&&&&&&&&%%%XXXXXX%*&%%%%%%X%%%%%XXX%%%%XX%%XX%&%%%%%%%%%%%&%XXXXXX%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXX%%X%&&&%%%%%%XXXXXXXXXXXXXX%%%%%%%%%X%%*+++++++++++++++++++++++++++&%XXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXX%%X%%&%%&%%%%%%%%&&%%%&%%XX%%%%%%%%%%%%%%%%%%%%%&&&&XXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%*+''''' '' *%*&**&'''
&&&&&&&%%%&&&&&&&&&&&&&&%&&%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXX%%X%%%%%%%XXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%X%&&&*++++++*&%X%%%X%%%*++++++///////////+%%%%%%%%%%%&&&&&%%&&&&&%%%%%%%%%%%%%X&&&&&&&&%XXX%%&&&&&&%%%%%%%XXXXXXXX%%&%%%%%%%%%%%XXXXXX%X%%XX%%%&&&&&&%%%%%%XXX%XXXXXXX%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXXX%%%&&&%XXX%%XXXXXXXXXXXXXX%%%%%%%%%%%%%*+++++++++++++++/+++++++++++%X%XXXXXXXX%%XXXXXXXXXXXXXXXXXXXXX%X%%XX%%&%%&%%%%%%%%%%%%%%%%%%XX%%%%%%%%%%%%%%%%%%X%&&&%XXX%XXXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX&+*(''''(' '''&&+*+&(''
&&&&&&%%%&&&&&&&&&&&&&&&%%&&&%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXX%%XXXXXXXX%XXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%XX%&&*++*++*+++**&%%%X&++++///++///++//////+%%%%%%%%%%%%%%%%%%%&%%%%%%%%%%%%%%%X%&&&&&&&&%XX%%%%%%%%%XXXXXXXXXXXXXXX%%%%%%%&&%%%&**&XX%X%%XX%%&%%%%%%%%%%XXXXXXXXXXXXXXXXX%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXXX&*%&&%%XXXXXXXXXXXXXXXXXX%%%%%%%%%%%%XX%&*++++++++++++++*+++++++++/*%XXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXX%%XX%%&%%%&%%%%%%%%%%%%%%%%%%%XX%%%%%%%%%%%%%%%%%%%&&&&%XX%XXXXXXXXXXXXX%%%XXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX*+*(''''' ''( /&***&+''
&&&&&%%%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%X%%%%%%%%%%%%%XXXXXXX%X%%XXXXXXXXX%XXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%X%&&*+*****+++++++&%%*+++++///////+*+//////+%%%%%%%%%&&&&&%%%%%%%%%%%%%%%%%%%%%X%&&&&&&&%%XXXXXXXXXXXXXXXXXXXXXXXXXX%%X%%%%*/++++/+*%%%%X%%%%&%XXXX%%XXXXXXXX%XXXXXXXXXXXXXXXX%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%XXXXXXXXXXXXX&*%&&%%X%%XXXXXXXXXXXXXX%%%%%%X%%%X%%%%%X%&++++++++++++**+++++++++++*XXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXX%%XX%%&%%%&%%%%%%%&%%%%%%%%X%%XXXX%%%%%%%%%%%%%%%%%%&%&%XXXXXXXXXXXXX%%%%%%%XXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXX%*+*/''''' '' ( +%****'
&&&&&%%%%&&&&&&&&&&&&&&&&%%&%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXX%%%%%%%%XXX%XXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%X%&%&++**+++**++**%%*+++/+///++////+**//////+%%%X%%%%%%&%%%%&&%%%%%%%%%%%%%%%%%%X%&&&&&&&%%XXXXXXXXXXXXXXXXXXXXXXXXXX%%X%%%%*+++++*&&%XXX%%%&&%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%XXXXXXXXXXXX%**%&&%%XXXXXXXXXXXXXXXX%%%%%%%X%%%%%%%%%%%%%&++++++++++**++++++++++++&XXXXXXXXXX%%XXXXXXXXXXXXXXXXXX%%%%%%%&&%%%&%%%%%%%&%%%%%%%%XX%%XXXX%%%%%%%%%%%%%%%%%%&&&%%XXXXXXXXXXX%%%XXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXX%++*+'''''''' ' (&***&(
&&&&%%%%%&&&&&&&&&&&&&&&%%**&%%%%%%%%%%%%%XX%%%%%%%%%%%%XXXXXXXXXXXXXXXXXX%XXXXX%XXX%%XXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%XXX%%&**+++***+**&&X&++++++++++///////**///////&%%%%%%%%&&%%%%%%%%%%%%%%%%%%%%%%%%XX%&&&&&&%XXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%&X%%%%%%%%%%%%%&&&&%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%XXXXXXXXXXX&+&%&&%XXX%XXXXXX%%XXXXXX%%%%%%%XX%%%%%%%%%%%%%++++++++*&+/++++++++++**%XXXXXXXXX%%XXXXXXXXXXXXXXXXXX%%%%%%%&&&%%&%%%%%%%&%%%%%X%%XX%%XXXXX%%%%%%%%%%%%%%%%%&%&&%XXXXXXXXXX%%XXXXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXX&+***'''' '' ''' /&**&/'
&&&&%%%%&&&&&&&&&&&&&&%%%&( +%%%%%%%%%%%%%%XXX%%%%%%%%%%XXXXXXXXXXX%XXXXX%XXX%%%XXX%%%XXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%XXX%%%%&&**&&&&&&%%%*+++++++++**++/+/+/+&+////+/&%X%%X%%%%%%%%&&%%%%X%%%%%%%%%%%%%%XXX%%%&&&%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%XXXXXXXXXXX%+&%%&%%XXXXXXXXX%%XXXXXXX%%%%%%%%%%X%%%%%%%%%%%*++++++&*+++*++++++++**%XXXXXX%XXXXXXXXXXXXXXXXXXXXX%%%%X%%&%%&%&&%%%%%%%%%%%%%XXXXXXXXXXXXXX%%%%%%%%%%%%%%%%&%&&%XX%XXXXXX%%%XXXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX*+*+&( '''''''''' *&***'
&&&%%%%%&&&&&&&&&&&&&&%%%&/'+%%%%%%%%%%%%%%%XXX%%%%%%%%%XXXXXXXXXXX%XXXXX%XXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXX%%%%%%%&%%%%&&%%&+++++++++/++*&++//+//**+/////&%%%%X%X%%%%%%%%%&%%%%%%%%%%%%%%%%XXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XX&&XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%XXXXXXXXX%%+&%&%XXX%%XXXXXXXXXXXXXXX%%%%%X%%%%%%%X%%%%%%%X%**+*&*&%&&%&*++++++++++&%XXXX%%XXXXXXXXXXXXXXXXX%%XXX%%%%%&%%&%&&%%%%%%%%%%%%%XXXXXXXXXXXXXXX%%%%%%%%%%%%%%%&&&&%XXXXXXXXX%%%XXXXXXXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%*+*+&( ''''''''' '(&**&'
&&&%%%%%&&&&&&&&&&&&&&%%&%&*&%%%%%%%%%%%%%%%%XXX%%%%%%%%XXXXXXXXXXX%XXXXXXXXX%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%&%&*+++++++++++/+%*++//+++&*+++++*&&%%%%X%%%%%&%%%&%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%X%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%X%&XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%XXXXXXXXXX%+*%&%XXXXXXXXXXXXXXXXXXXX%%%%%%%X%XX%%%&&&&&&&&%&***&++&*++++++++++++++++*&%XXXXXXXXXXXX%%%%XXXXX%%XX%X%%%&&&&%&&&%%%%%%%%%%%%XXXXXXXXXXXXXXXXX%%%%%%%%%%%X%&&%&%%XXXXXXXXX%%%%XXXX%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&+**+&/ ''''''''''''+&+%/
&&%%%%%%&&&&&&&&&&&&&&%%&%%%%%%%%%%%%%%%%%%%%XXXX%%%%%%%XXXXXXXXXXX%XXXXXXXX%%%%%XXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%&%&%%&*+**++**+++++//*%*++/++/**+****&&&X%%%X%%X%%%&%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%X%%%%%%%%%%%%%%%%%XXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%XXXXXXXXXX%&+&%%%XXXXXXXXXXXX%XXXXXX%%%%%%%X%%X&**+++++++++++++**+*&++++++++++++++++++**&%%%XXX%%***+++**&%XXXX%%X%%%%&&%%&&%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXX%%%%%X%%%%X%%&%&&%XXXXXXXXXX%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX****+*+''''''''''' ''&*&+
&&%%%%%&&&&&&&&&&&&&&%%%%&&&%%%%%%%%%%%%%%%%%%%XXX%%%%%%XXXXXXXXXXXX%X%XX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%&%%*++++**++++++++++&&*+//++*&*****&%&%X%%X%%X%%%%&%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%X%%%%%%%%%%%%%%%&%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%XXXXXXXXX%%%++%X%XXXXXXXXXXXX%XXXXXX%%%%%X%%%%X&+****+++++++++/+&++&++++++++++++++++++++++******+******+++&%XXXXX%%&&%&&%&&&%%%%%&%%%%%%XXXXXXXXXXXXXXXXXXXXX%%%XX%%%%%%&&&%%%%XXXXXXXXXX%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%****+**''''''''''' ' /&**
&%%%%%%&&&&&&&&&&&&&&%%%%&%%%%%%%%%%%%%%%%%%%%%XXXX%XX%%XXXXXXXXXXXX%X%XX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%&%%%%%%+**+++***+++++++++&**+++**&&*****&&&XX%XX%%%&%%%%%&&%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%XXXXXXXXX%%%%*+%XXXXXXXXXXXX%%XX%XXX%%%%%%%%%XX&*++++++++++++++/**+**+++++++++*&%%&*+**++*++++*********+++*&&%%%X%%&&%&&&&&&%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXX%%XXX%%%%X%%&&&&%%%XXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&****+*&( '''''''' ( ''&&&
&%%%%%%&&&&&&&&&&&&&&%%%%%%%&&%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXX%XX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%&++*++++*&**+++++++&&******&%&****&&*%X%XX%%%%%%%%&&&%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%XXXXXXXXXX%%X&+&XXXXXXXXX%XX%XXX%XXX%%%%%X%X%%%&*****+++++++++***++*&*+++++++*&%XXX%&*****+**&&&&****++***++++*&%%%&&%%&&&&&%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXX%%%%X%%%&&&%%%%XXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&*****+&/ '''''''''' '/&&
%%%%%%%&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXX%XX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&%%%%%%&%%&*+++*++*&&++++++**&*****&*&&****&&*%XXXX%%%%%%%&**&%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%XX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%XXXXXXXXX%%%%%X%%%%XXXXX%%XX%XXXXXXX%%%%%%%%%%X%%**+++++++++***&++&&&*+++++**%%%%%%%%%%&&&&&&&&%&**&&&*********&X%%&&&%%&&&&%%%%&%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%&%%&&X%&%XXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%*&****+&+'''''''''' ' '&&
%%%%%%&&&&&&&&&&&&&&%%%%%%%%%%%%%%%&/&%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXX%%%%%%%%%%%%%&*++++++*&&++++***&&***&***&&***&%*%XXXX%%%%%%&&*&&%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%X%%%%%XXXXXXXXX%%%%%XXX%%%XXXXXX%%%XXXXXX%%%%%%%%%%%%%%X%%&****&&&&%%*+&&&&&*++++*&%%%&&%&%%&&&&&&&&&&&%%%&&&&&&&&&&%X%%&&&&&&&%%&%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%+&%%&%%%&%XXXX%X%X%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&*&****+*&''' '' '''''' +&
%%%%%%&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%+&%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%&&**+***&%*++****&%**&**&*&&**&&&&XXXXX%%%%%&&&*&&%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%XX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%XXXXXXXXX%%%%XXXXX%%XXXXXX%%%XXX%X%%XX%%%%%%%%%%%%XX%XXXXXXXX%%%%&&&&&&*+++*&&&%%&%&&%%&&&&&&&&&&%%XXXXX%%%%%%%X%%&&&&&&&%%&%%%&%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%X&+*%%%%&%%XXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&*&******&''''''' ' ' '' /&
%%%%%%&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%&%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%&&&*&&&&&%&**&&**%&**&&**&&&&&&&%X%XX%%%%%%&*&*&&%%%%%%%X%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%&%%%%X%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%XXXXXXXXXX%%%XXXXXX%%XXXX%XXXXXXXXXX%XXX%%%%%%%%%%%%%%%%%%%%%%%&&%%&&&&&&+++*&&&%%%%%&%%&&&&&&&&%%%XXXXXXXXXXXXX%&%&&&&&&&&&%%%%&%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%X%*+++&%%&%XXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&&*&*+*+&(''''''' ' ''*
%%%%%%&&&&&&&&&%&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXX%%XX%XXXXXXX%&**%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%&&&&&*%%&**&&*&%%&***&&%&&%%%XX%XX%&%%%&**&&&&%%XX%%%X%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%XX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%XXXXXXXXXX%%XXXXXXX%%XXXX%XXXXXXXXXX%%XXX%%%%%%%%%XX%%%%%%X%%XX&&%&&&&&&&**+*&&&&%&%%&%X%&&&&&&%%XXXXX%%XX%X%%X%%&%%&&&&&&&&%%%%&%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%XX%&+//%%&&%%XXX%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&*&**&*+*+&+''''''' '''' ' /
%%%%%%&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXX%%XX%%XX%&*++//+&XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%&&&&&&%%&&&&&&%X%&&%&&%%%XXXX%XXX%%%%&&*&&&&%%XXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%XXXXXXXXXXXXXXXXXXXX%%XXXXX%XXXX%%%XX%%%XXX%%%%%%%%%%%%%%%%%%%%%&&%&&&&&&&&&+*&&&&%&&%&&%%%&%&&&%XXXXXXXXX%%X%%X%%%%%%&&&&&&&%%%%&%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%&+&&%%%%%XX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&*&***&++*&*'''''''''''' ' (
%%%%%%&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXX%%%X%XX%&++//+/+**%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%XXXX%&&&&&%%&&*&&%%%%%&&%%XXXXX%XXX%%%%&&&*&&&&%%XXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%&%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%XXXXXXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXX%XXX%%%%%%%%XXXXX%%%%%%%X%%%&&&&&&&&&**&&&&%%%%&&%&&&&&&%%%%XXXXXXX%%XXXX%&%%%%&&&&&%&%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%X%%%%%%&%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&*&&&*&*+**&''''''''' ''' (
%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXX%%%%%%%%%%XXXXXXXXXXXXXXXXXX%%XX%XX&//+*&*++**&%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&&&&&%%&&%XX&%%&XXXXX%XXXXX%%%%&&*&&&&&&%%XXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%XXXXXXXXXXXXXXXXXXXXX%%XXXXXXX%%%XXXXXXX%XX%%%%%%%%%%%%%%%%%X%%XX%&&&&&&&&&%&*&&&%%&&%&&%%&&&&&%%%%XXXXXXXX%XXX%%&%%%%%&&&&%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%X%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&**&*****+*&(' ''' '' '' '
%%%%%&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXX%XXXXXXXXXXX%%%XXXXXXXXXXXXXXXXX%%%%%XX&++&&**&&****&XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&&&%XX%XXXXXXXXXXXXXXXXXXX%%%&&&&&&&&%X%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%XXXXXXXXXXXXXXXXXXXXX%%XXXXXX%%%%%%%XXXX%%X%%%%%%%%X%%%%%%X%X%%%%&&&&&&&&&&&%&&&&%%&&%%%%%&&&&&%%%&&%XXXXXXXXXX%%%%%%%%%&&&%%%%&%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%X%%%%%%%%&&%X%&%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&+*&*&*&*+*&(' '' '' ' '
%%%%%&&&%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XX&++*&&&**%&**&*%XX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&%XXXXXXXXXXXXXXXXXXXXXXXX%**&*&&*&%%X%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%X%%%XXXXXXXXXXXXXXXXXXXXXX%%%XXXXX%&&&%%%XXXXXXX%%%XX%%X%%XX%%%X%X%&*&&&&&&&&&&&&&%&%%%&&%%&%%%&%&%%X%&&&%XXXXXXXX%+++*&%&%%&%&&%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%X%%%%%%%X%&&X%%*&XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%&***&***+*&+''' '' ''' '
%%%%%&&%%%%%%%%%%%%%&&%%&&%%%%%X%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXX%XX%%%X%+//+&++++&%&**&XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&*&&&&&&%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%%%%XXXX%%&&&%%%XXX%X%%%%%%%%%%%%%%%%XX&**&&&&&&&&&&&&&%&%%%&&%&&%&%%%&%%XX%%&%%XXXX%XX&+**++&%%&&%%&%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%X%%%%%%%X%%&X&*+&XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%&**&&**++**''' ''''''
%%%%%&&%%%%%%%%%&%%%%%&&%%%%%X%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXX%X%%%%%*////+&++&***&**XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&*&&&&&%%X%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXXX%%&&&%%XXX%%XXX%XX%%%%%%%%X%&*+*&&&&&&&&&%&&&%&%%&&%%&%%%%%&&%XXXX%&&%XXXXXX%&%&%&++%&%&&%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%X%%%%%%%X%&&X&+*%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%X%&&*&&&*++*&''''''''''
%%X%%&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXX%X%%%X&+++/++&++&+//&&&%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&*&&&&&&%X%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXX%%X%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%XX%%XXXXXXXXXXXXXXXXXXXXXXX%%%XXXXXX%%&&&%%X%%XX%%%%X%%X%%%XX&*+*&&&&&%%&&&&&&&%%%%%&%%&%%%%%&%%XX%X%%&%%XX%%X%&%&&&&+*%%%&&%%&%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%X%%%%%%%%%&&%&*%X%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%X%&***&**+*&(' '''''''
%%X%%%&%%%%%%%%%%%&&%%%%%%X%%%%&%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%%%%%%&++//+*&*+&*+/+&%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&*&&&&&&%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXX%%XX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%XXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%&&&%%%XXX%%%%XX%%%%X&*+*&&&&&%%%&&&&&&%%&%%%&%%&X%%%&%%XX%%%X%%&%%%%%X%&&&&&%*+%%%&%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XX%%%%%%%%%&%X%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%&**&***+&(''''' ''
%%X%%%%%%%%%%%%%%&%%%%%%%%%%%&&%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%X%%X&++//++**&*&**+/+*%*&XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%*&&&&&&&%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXX%%XX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%XXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%&%%%%%XXX%XX%XX%&+++*&&&&%%%&&&&&&&%%&%%%%%%%X%%%%%XX%%XX%X%&&&&&%%&&&&&&&&+%&%%&%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XX%%%%%%%X%%&X%%&%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%&&*&***+&/''''' ''
X%XX%%%%%%%%%%%%&%%%XX%%%%%%&&&%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%XX%&+///++///*%&*&++/+&&&%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&&&&&&&&%X%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%XXXX%XXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&%%%%%XXXXXXXX&+****&&&%%%%&%%&&&&%%&%%%&%&%%&%%XXXX%XXX%X%&%%&%X%&%&&&&%&+%%%%&&%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXX%%%%%%X%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%&&&***+**''''' ''
XXXX%%%%%%%%%%%%%%%%%%%%%%%&&&&&%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXX%X%%+//////////*%******&&%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&*&&&&&&%%X%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%XXX%XXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXX%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&*****&&&%X%&&%%%&%%%%%%%%%%%%X%%%%XXXXX%%%%X%&%%%X%&%&&&&&&&+%%%&%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXX%%%%%X%&&%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%X&&&***+**''' ' ''
XXXXX%%%&%%%&&%%X%%%%%%%%%&&&&%%&%%%%%%%&%%%%XXXXXXXXXXXXXXXXXXXXXXXX%X*/////////+//&%&&&&*&&%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&*&&&&%%XX%%%%%%%%%X%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%XXX%%XXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXX%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&******&&&XX&%&%%&&%&%&%X%%%%%%%%&XXXX%%%%%%X%%%%XX%&&&&&&&&%*+%%%&%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%&&%X%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%&****++&(' '''''
XXXXX%%%%%%%%%%%%%%%%%%%%&&&&&&&%%&&&&%%%%%XXXX%%%%%%%%%%XXXXXXXXXXXXX&+++++//++////+&%&&***&%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&&&%XXXX%%%%%%%%%%X%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%XXXX%XXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXX%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&****+*&&%%X%&&&%%&&%&%%%%%%%%%%%%%XXXX%%%%%%%%%%%XX%&&&&&&&%&+&%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%X%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%&*&**+&(' ''''' '
XXXXX%%%%%%%%%%X%%%%%%%&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXX%%X*+++///+*&*+++/+&&&***&%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXXX%%%%%%%%%%X%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXX%%%%%%%%%XXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&*******&&%XX&&&%%%%&&&%%%%X%%%%%%%%XXXX%%%%%%%XX%XX%&&&&%&&&&++%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXX%%XXXX%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%&*&**+&/' ''''' '
XXXXXX%%%%%%%X%%%%%%%%&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXX%%%+///++++++%&++++*&&***%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%X%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%XXXXXXXXXXXXXXXX%%%%%%%%%%XXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%********&&%XXX&%&%&X%&&%%%%%X%%%%%%%XX%XX%%%%%%%X%%XX%&&&&&%&*+/&%%%%&%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXXXXXXXXXXXXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%****+*+ '''''' '
XXXXXXX%%%%%XX%%%%%%%&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XX%%*////+++///*%&*****&&*&%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%X%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%X%&&%XXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%********&&%XXX%&%&%&XX%&%&%%%X%%%%%%%XX%XX%%%%%%%%%%X%&&&&&&&&*/+%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%XXXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%&*&*+** ' '''' '
XXXXXXXX%%%%%X%%%%%%&&&&&&&&&%%%%%%%%&&&%%%%%%%%%%%%%%%%%%%%%%%%%X%%%+++++//++++/&%&*****%&%%&%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%X%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%X%&&%XXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&********&%XXX%%&*&&&&XX%&&&&%%%%%%%%%%XXXXX%%%%%%%%%X%%&&&&%&&&&+++%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%XXXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%*&*++*'' '''' '
XXXXXXX%XX%%%%%%%%%&&&&&&&%%%%%%%%&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%X%&%&/++/+++++///+&%&****&&%%&%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%X%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%X&&&%XXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&&*+*******%XXX%&%&*&&&&XXX%%%%%%%X%%%%%XXXXXX%%%%%%%%%X%&&&&&%&&%%&+(&%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%&&*++&( '''''
XXXXXX%%%%%%%%%%%%&&&&&&&%%%%%&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%X%&%*++++++++++++++*&&&**&&%%&%&%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%X%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%%&&&%%XXXXXXXX%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%&********+&XXXXX%%%***&&%XXX%&%%&%%X%&%&%XXXXXX%%%%%%%%X%&&&&%&&&&&&%*++%%%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%XXX%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%%%%%*&*+&( '''''