.:.:.:.:.:.                                                                             ..:.:.:.:.:.
.:.:..:.:...  .  . .  .  . .  .  . .  .  . .  .  . .  .  . .  .  . .  .  . .  .  . .  .  :.:.:.:.:.:
.:.:.:.:.:.    .       .       .  .    .       .       . .   .       .       .       .  ..:.:..:..:.
.:.:.:..:.. .    .  .    .  .   .   .    .  .    .... . ;@8; .  .  .   . .     . .      ...:.:.:.:.:
.:..:.::.::   . .  .  .   .  ..@%8X . .   .  ..  :88; . SXX8...  .   .  . .. .  .  . .. .::.:.:.:.:.
.:.:..XX%S8..  X@SX8   . XXSXS888t.8@.  @XS@X .@%SX ..%XSS. XXSS8:  :8XS@SS@SXX .  S@SX@.:.:.:.:.:
.:.:.tSSXS@%  @%SS8t:...8SSSX%;X;%8.8SX@.8SSXSS8;8%88t@tt88 :%S8%X@; S%SSSS%8%SSS@..;SSXXSt .:..:.:.
.::.t;888%@t ;8;:X;888.88;.%8StX88t8S.:%X8;8;:@t8S8 t@8 @%88;8.88%@t.t88S 88 8S8t8 8%8S:@8S .::..:.:
..:..S::888@.:88St 88;S.88 : .:X8 88 % .X888%X8@8%8;@  .S8t@ 8.8t88S.St%  @XS8t;8:;8@t88S8@t.:.:..:.
.:.:.X;:8:8:%8St8 88:8 @8 X. S S8.:S88%.8X:X;  : X;88  .S8tX:X. @:8:XS88X:8888.@8:%;8;8.  t...:.::.:
.:..:%8:X8.8 @88t88:8% S:88X88 8t8@88 8X@X88SXt;%;8:888.8t8@.8%8@8;8 X%%S.88:8.:88..%88@:88S.:.:..:.
.:.:..8tSX@    .@888   . t8@8t .8X8  8@t..t8%@XS   888X :8S8  @8X8@  :8%X:t8@t S88.. .@@X8t:.:.:.:.:
.:.:.:;:::.              .   .   ..  . .      ..      .  ...  .      ...   . . .     .. .::.:.:.:.:.
.:..:..:...        .           .         . .                            .       .       ..:..:.:.:.:
.:.:.:..:..          . . .  .    .   .  .    .     .  .  .  .  . .   .    .  .    .     ...:.:..:.:.
.:.:.::.:.:     . .           .    .       .   . .           .     .   .   .   .    . .  :.:.:.:.:.: