Rocksolid Light

Welcome to Rocksolid Light

mail  files  register  newsreader  groups  login

Message-ID:  

Space tells matter how to move and matter tells space how to curve. -- Wheeler


devel / sci.crypt / Re: base26 Encoder/Decoder

SubjectAuthor
* base26 Encoder/DecoderStefan Claas
`* Re: base26 Encoder/DecoderCri-Cri
 +* Re: base26 Encoder/DecoderStefan Claas
 |`* Re: base26 Encoder/DecoderCri-Cri
 | `- Re: base26 Encoder/DecoderStefan Claas
 `* Re: base26 Encoder/DecoderStefan Claas
  `* Re: base26 Encoder/DecoderStefan Claas
   +* Re: base26 Encoder/DecoderStefan Claas
   |`* Re: base26 Encoder/DecoderStefan Claas
   | `- Re: base26 Encoder/DecoderStefan Claas
   `* Re: base26 Encoder/DecoderCri-Cri
    `* Re: base26 Encoder/DecoderStefan Claas
     `* Re: base26 Encoder/DecoderCri-Cri
      `* Re: base26 Encoder/DecoderStefan Claas
       +- Re: base26 Encoder/DecoderStefan Claas
       `* Re: base26 Encoder/DecoderHerbert Kleebauer
        `* Re: base26 Encoder/DecoderStefan Claas
         +- Re: base26 Encoder/DecoderStefan Claas
         `* Re: base26 Encoder/DecoderHerbert Kleebauer
          +- Re: base26 Encoder/DecoderStefan Claas
          `* Re: base26 Encoder/DecoderStefan Claas
           `* Re: base26 Encoder/DecoderStefan Claas
            `* Re: az - Telefax/OCR Test (was: base26 Encoder/Decoder)Stefan Claas
             `* Re: az - Telefax/OCR TestHerbert Kleebauer
              `* Re: az - Telefax/OCR TestStefan Claas
               `* Re: az - Telefax/OCR TestHerbert Kleebauer
                `* Re: az - Telefax/OCR TestStefan Claas
                 `* Re: az - Telefax/OCR TestStefan Claas
                  `* Re: az - Telefax/OCR TestStefan Claas
                   `- Re: az - Telefax/OCR TestStefan Claas

Pages:12
base26 Encoder/Decoder

<uoekm1$3rhsc$1@i2pn2.org>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=739&group=sci.crypt#739

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!.POSTED!not-for-mail
From: stefan@mailchuck.com (Stefan Claas)
Newsgroups: sci.crypt
Subject: base26 Encoder/Decoder
Date: Fri, 19 Jan 2024 21:05:20 +0100
Organization: i2pn2 (i2pn.org)
Message-ID: <uoekm1$3rhsc$1@i2pn2.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 19 Jan 2024 20:05:21 -0000 (UTC)
Injection-Info: i2pn2.org;
logging-data="4048780"; mail-complaints-to="usenet@i2pn2.org";
posting-account="uWi4uQdALkj7ETOfPbhNXfz0+Ra/gM5z6/Fa40dJi9U";
X-age: age1yubikey1qdf6fmuk6qqzlzhz69yw5y6eqzhxdkvk3qdcnz77hf8qtqrwpptm5tfyp06
X-Ed25519: 43e6681c5cf3cdc2f9ccf975f8a01b18c5e84bf0ba00605faba9cc0f8757a117
X-Spam-Checker-Version: SpamAssassin 4.0.0
 by: Stefan Claas - Fri, 19 Jan 2024 20:05 UTC

Hi all,

if you like the Diana Cryptosystem and want to
use it with a foreign language, on an offline
Computer, you may find my base26 Encoder/Decoder
useful.

https://github.com/stefanclaas/base26

Regards
Stefan
--
----Ed25519 Signature----
473619917a3d41e3151526e8cec73798239329fddcfb6c6c45298dde70497d1d
d3a4ab324a690e10856c4d52024daa849e100f0a1604dbc8dd46f69f169db305

Re: base26 Encoder/Decoder

<g74JN.751237$mUo.609280@fx08.ams4>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=869&group=sci.crypt#869

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!i2pn.org!usenet.goja.nl.eu.org!3.eu.feeder.erje.net!feeder.erje.net!npeer.as286.net!npeer-ng0.as286.net!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!fx08.ams4.POSTED!not-for-mail
From: cri@cri.cri.invalid (Cri-Cri)
Subject: Re: base26 Encoder/Decoder
Newsgroups: sci.crypt
References: <uoekm1$3rhsc$1@i2pn2.org>
MIME-Version: 1.0
x-hc-9: yes
x-no-archive: yes
User-Agent: Pan/0.155 (Kherson; fc5a80b8)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Lines: 19
Message-ID: <g74JN.751237$mUo.609280@fx08.ams4>
X-Complaints-To: abuse@easynews.com
Organization: Easynews - www.easynews.com
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will be unable to process your complaint properly.
Date: Fri, 15 Mar 2024 22:40:12 GMT
X-Received-Bytes: 1170
 by: Cri-Cri - Fri, 15 Mar 2024 22:40 UTC

On Fri, 19 Jan 2024 21:05:20 +0100, Stefan Claas wrote:

> if you like the Diana Cryptosystem and want to use it with a foreign
> language, on an offline Computer, you may find my base26 Encoder/Decoder
> useful.

Found a Python version:
https://pypi.org/project/base26/#files

Example:

>>> import base26
>>> base26.encode(b'test')
'EWJILIG'
>>> base26.decode('EWJILIG')
b'test'

--
Cri-Cri

Re: base26 Encoder/Decoder

<ut46u4$22l08$1@i2pn2.org>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=871&group=sci.crypt#871

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!.POSTED!not-for-mail
From: pollux@tilde.club (Stefan Claas)
Newsgroups: sci.crypt
Subject: Re: base26 Encoder/Decoder
Date: Sat, 16 Mar 2024 14:30:45 +0100
Organization: i2pn2 (i2pn.org)
Message-ID: <ut46u4$22l08$1@i2pn2.org>
References: <uoekm1$3rhsc$1@i2pn2.org>
<g74JN.751237$mUo.609280@fx08.ams4>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 16 Mar 2024 13:30:45 -0000 (UTC)
Injection-Info: i2pn2.org;
logging-data="2184200"; mail-complaints-to="usenet@i2pn2.org";
posting-account="uWi4uQdALkj7ETOfPbhNXfz0+Ra/gM5z6/Fa40dJi9U";
Gemini: tilde.club/~pollux/
X-Spam-Checker-Version: SpamAssassin 4.0.0
 by: Stefan Claas - Sat, 16 Mar 2024 13:30 UTC

Cri-Cri wrote:

> On Fri, 19 Jan 2024 21:05:20 +0100, Stefan Claas wrote:
>
> > if you like the Diana Cryptosystem and want to use it with a foreign
> > language, on an offline Computer, you may find my base26
> > Encoder/Decoder useful.
>
> Found a Python version:
> https://pypi.org/project/base26/#files
>
> Example:
>
> >>> import base26
> >>> base26.encode(b'test')
> 'EWJILIG'
> >>> base26.decode('EWJILIG')
> b'test'
>

Interesting, but the output differs from mine.

$ echo -n 'test' | base26
MEXDLEME

I guess there is no defined standard (RFC) for
base26, maybe I am wrong.

Regards
Stefan
--
----Ed25519 Signature----
6c34fa71ca251de62392a9753b6f7481817f7c89dcca433cd9f6e5a9211d233a
5a08cbd84d9a99b018f2705416ebac3dde33bf38bd35ca106c8a71cee9e45e0e

Re: base26 Encoder/Decoder

<QHmJN.911191$UNd9.751352@fx07.ams4>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=872&group=sci.crypt#872

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!peer03.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!fx07.ams4.POSTED!not-for-mail
From: cri@cri.cri.invalid (Cri-Cri)
Subject: Re: base26 Encoder/Decoder
Newsgroups: sci.crypt
References: <uoekm1$3rhsc$1@i2pn2.org> <g74JN.751237$mUo.609280@fx08.ams4>
<ut46u4$22l08$1@i2pn2.org>
MIME-Version: 1.0
x-hc-9: yes
x-no-archive: yes
User-Agent: Pan/0.155 (Kherson; fc5a80b8)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Lines: 37
Message-ID: <QHmJN.911191$UNd9.751352@fx07.ams4>
X-Complaints-To: abuse@easynews.com
Organization: Easynews - www.easynews.com
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will be unable to process your complaint properly.
Date: Sat, 16 Mar 2024 19:48:00 GMT
X-Received-Bytes: 2134
 by: Cri-Cri - Sat, 16 Mar 2024 19:48 UTC

On Sat, 16 Mar 2024 14:30:45 +0100, Stefan Claas wrote:

> $ echo -n 'test' | base26 MEXDLEME
>
> I guess there is no defined standard (RFC) for base26, maybe I am wrong.

There ought to be. But, of course, maybe none of the math heads thinking
these things through have returned with the verdict from their round table
meeting yet? ;)

Not sure what either of you guys used, but this page:
https://www.dcode.fr/base-26-cipher
....claims there are two ways to start: A=0 or A=1

Maybe that?

He has a "machine" on his site you can compare things with. But it returns
the result in numeric Base26, not as encoded letters:

this here is a test
338902 126182 226 0 337135

Also, Python starts its arrays/lists with 0 for the first item where some
other languages use 1. I have no idea what "Go" (was it?) uses.

If I get a little free time I'll probably check the Python module against
that page (linked above). It was fairly short.

I've been fiddling with the HC-9 cipher that came out of that handy little
machine the Swedish military used up until around 1995-ish. I've got some
info about that coding from that site, it is very informative. So I'm
currently all "ciphered out" and I want to spend some time with some other
things for a while. :)

--
Cri-Cri

Re: base26 Encoder/Decoder

<ut4ugf$23pnb$1@i2pn2.org>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=873&group=sci.crypt#873

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!.POSTED!not-for-mail
From: pollux@tilde.club (Stefan Claas)
Newsgroups: sci.crypt
Subject: Re: base26 Encoder/Decoder
Date: Sat, 16 Mar 2024 21:13:03 +0100
Organization: Chiffrepunks
Message-ID: <ut4ugf$23pnb$1@i2pn2.org>
References: <uoekm1$3rhsc$1@i2pn2.org>
<g74JN.751237$mUo.609280@fx08.ams4>
<ut46u4$22l08$1@i2pn2.org>
<QHmJN.911191$UNd9.751352@fx07.ams4>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 16 Mar 2024 20:13:03 -0000 (UTC)
Injection-Info: i2pn2.org;
logging-data="2221803"; mail-complaints-to="usenet@i2pn2.org";
posting-account="uWi4uQdALkj7ETOfPbhNXfz0+Ra/gM5z6/Fa40dJi9U";
X-Spam-Checker-Version: SpamAssassin 4.0.0
Gemini: tilde.club/~pollux/
 by: Stefan Claas - Sat, 16 Mar 2024 20:13 UTC

Cri-Cri wrote:

> On Sat, 16 Mar 2024 14:30:45 +0100, Stefan Claas wrote:
>
> > $ echo -n 'test' | base26 MEXDLEME
> >
> > I guess there is no defined standard (RFC) for base26, maybe I am
> > wrong.
>
> There ought to be. But, of course, maybe none of the math heads
> thinking these things through have returned with the verdict from
> their round table meeting yet? ;)
>
> Not sure what either of you guys used, but this page:
> https://www.dcode.fr/base-26-cipher
> ...claims there are two ways to start: A=0 or A=1
>
> Maybe that?
>
> He has a "machine" on his site you can compare things with. But it
> returns the result in numeric Base26, not as encoded letters:
>
> this here is a test
> 338902 126182 226 0 337135

I saw that french page and ys it uses digits as output, which I don not
want, because of using my output (from Unicode chars) for the Diana
Cryptosystem.
> Also, Python starts its arrays/lists with 0 for the first item where
> some other languages use 1. I have no idea what "Go" (was it?) uses.

Yes, it is Go Code and starts at 0.
> If I get a little free time I'll probably check the Python module
> against that page (linked above). It was fairly short.
>
>
> I've been fiddling with the HC-9 cipher that came out of that handy
> little machine the Swedish military used up until around 1995-ish.
> I've got some info about that coding from that site, it is very
> informative. So I'm currently all "ciphered out" and I want to spend
> some time with some other things for a while. :)

HC-9, must admit, never heart of it but sounds interesting. I have to
read about it.

--
Stefan

Re: base26 Encoder/Decoder

<v0dtc5$276id$1@i2pn2.org>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=909&group=sci.crypt#909

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!.POSTED!not-for-mail
From: pollux@tilde.club (Stefan Claas)
Newsgroups: sci.crypt
Subject: Re: base26 Encoder/Decoder
Date: Thu, 25 Apr 2024 17:37:40 +0200
Organization: i2pn2 (i2pn.org)
Message-ID: <v0dtc5$276id$1@i2pn2.org>
References: <uoekm1$3rhsc$1@i2pn2.org>
<g74JN.751237$mUo.609280@fx08.ams4>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 25 Apr 2024 15:37:41 -0000 (UTC)
Injection-Info: i2pn2.org;
logging-data="2333261"; mail-complaints-to="usenet@i2pn2.org";
posting-account="uWi4uQdALkj7ETOfPbhNXfz0+Ra/gM5z6/Fa40dJi9U";
X-Spam-Checker-Version: SpamAssassin 4.0.0
Finger: tilde.club/~pollux/
 by: Stefan Claas - Thu, 25 Apr 2024 15:37 UTC

Cri-Cri wrote:

> On Fri, 19 Jan 2024 21:05:20 +0100, Stefan Claas wrote:
>
> > if you like the Diana Cryptosystem and want to use it with a foreign
> > language, on an offline Computer, you may find my base26 Encoder/Decoder
> > useful.
>
> Found a Python version:
> https://pypi.org/project/base26/#files
>
> Example:
>
> >>> import base26
> >>> base26.encode(b'test')
> 'EWJILIG'
> >>> base26.decode('EWJILIG')
> b'test'
>

I now have a Rust Version, derived from the Python library and
it encodes 'test' with the same result, but when encoding with
Rust, the Python code can not decode properly, while decoding
from Python with Rust works. Oh, well ... :-(
(Wish I was a Programmer!)

--
Regards
Stefan

Re: base26 Encoder/Decoder

<v0dup1$276id$2@i2pn2.org>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=910&group=sci.crypt#910

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!.POSTED!not-for-mail
From: pollux@tilde.club (Stefan Claas)
Newsgroups: sci.crypt
Subject: Re: base26 Encoder/Decoder
Date: Thu, 25 Apr 2024 18:01:36 +0200
Organization: i2pn2 (i2pn.org)
Message-ID: <v0dup1$276id$2@i2pn2.org>
References: <uoekm1$3rhsc$1@i2pn2.org>
<g74JN.751237$mUo.609280@fx08.ams4>
<v0dtc5$276id$1@i2pn2.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 25 Apr 2024 16:01:37 -0000 (UTC)
Injection-Info: i2pn2.org;
logging-data="2333261"; mail-complaints-to="usenet@i2pn2.org";
posting-account="uWi4uQdALkj7ETOfPbhNXfz0+Ra/gM5z6/Fa40dJi9U";
X-Spam-Checker-Version: SpamAssassin 4.0.0
Finger: tilde.club/~pollux/
 by: Stefan Claas - Thu, 25 Apr 2024 16:01 UTC

Stefan Claas wrote:

> Cri-Cri wrote:
>
> > On Fri, 19 Jan 2024 21:05:20 +0100, Stefan Claas wrote:
> >
> > > if you like the Diana Cryptosystem and want to use it with a foreign
> > > language, on an offline Computer, you may find my base26 Encoder/Decoder
> > > useful.
> >
> > Found a Python version:
> > https://pypi.org/project/base26/#files
> >
> > Example:
> >
> > >>> import base26
> > >>> base26.encode(b'test')
> > 'EWJILIG'
> > >>> base26.decode('EWJILIG')
> > b'test'
> >
>
> I now have a Rust Version, derived from the Python library and
> it encodes 'test' with the same result, but when encoding with
> Rust, the Python code can not decode properly, while decoding
> from Python with Rust works. Oh, well ... :-(
> (Wish I was a Programmer!)

Ok, I figured out that my Python3 code example is bad. So the
Rust Version works the same as the library. :-)

$ python3
Python 3.9.2 (default, Feb 28 2021, 17:03:44)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import base26
>>> base26.encode(b'The quick brown fox jumps over the lazy dog.')
'AAZCESYRPSBENRDWLUQLYETYZZJCPAHHAVEIPLIONRSBHYUEHANMAUZZQCSOGOXJEBILDQVWRGD'
>>>
$ echo -n 'AAZCESYRPSBENRDWLUQLYETYZZJCPAHHAVEIPLIONRSBHYUEHANMAUZZQCSOGOXJEBILDQVWRGD' | b26 -d
The quick brown fox jumps over the lazy dog.
$ echo -n 'Hello sci.crypt' | b26
UQZGYLNMDHTUDTGJYKJRQGDKOC

$ python3
Python 3.9.2 (default, Feb 28 2021, 17:03:44)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import base26
>>> base26.decode('UQZGYLNMDHTUDTGJYKJRQGDKOC')
b'Hello sci.crypt'
>>>

Ok. everything is fine. :-)

--
Regards
Stefan

Re: base26 Encoder/Decoder

<v0e01k$27aev$1@i2pn2.org>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=911&group=sci.crypt#911

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!.POSTED!not-for-mail
From: pollux@tilde.club (Stefan Claas)
Newsgroups: sci.crypt
Subject: Re: base26 Encoder/Decoder
Date: Thu, 25 Apr 2024 18:23:15 +0200
Organization: i2pn2 (i2pn.org)
Message-ID: <v0e01k$27aev$1@i2pn2.org>
References: <uoekm1$3rhsc$1@i2pn2.org>
<g74JN.751237$mUo.609280@fx08.ams4>
<v0dtc5$276id$1@i2pn2.org>
<v0dup1$276id$2@i2pn2.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 25 Apr 2024 16:23:16 -0000 (UTC)
Injection-Info: i2pn2.org;
logging-data="2337247"; mail-complaints-to="usenet@i2pn2.org";
posting-account="uWi4uQdALkj7ETOfPbhNXfz0+Ra/gM5z6/Fa40dJi9U";
Finger: tilde.club/~pollux/
X-Spam-Checker-Version: SpamAssassin 4.0.0
 by: Stefan Claas - Thu, 25 Apr 2024 16:23 UTC

Stefan Claas wrote:

[...]

> Ok. everything is fine. :-)

Example Unicode text encoded, with -l Parameter for line-length:

SASHXTRHYGJXHJBMKMWLUPZPTINOBPKNFSPZNFBWWXLWUNFRSGZHPACWHNFRFTGR
PRSLUVEMZDVQNMVIQPSEVCTOULWNLUQQPWABOAWITQCANZDPJFCOHIYYWGXIHYAJ
YUTARJTNKTIUHXZKPOYVLAGCYADOPLMURTBEIXITHYGFGLZKHYKXAOUPPBNVOUKZ
QVPRQZQJBUJIGCECDRBCPAFBKRUNNXEKDWVAMIYFBCTWJXKERSEVXJISBCXXQBTA
BCDZAHZQKWKGZDKDWRZAFBCSONEJWUNJJBOHHYOWAVRJMQBADSJYSPUVUSSSWYNN
MNXQDZIEMPOPJHQEMPPGKUOHSRCJTUVPFQVVBQLUHYIDHDAKCOVSDCLFJZDSYYRQ
DPMPIWYDOWSGCPCYOAWNWEBGAIQXCRJTLEKGWILWYQYYSMFDJMOWMTBYPYNWLNZO
VETGXKERDLPZIDWIUYFXBWSMMYPYZDMSKABBGMPZVIRUVBZXOBPLJWHMVWRBCULR
GNCRPNMLBNXLLIXYYETJQHADJGHJAONAIJFBKEEVPWHHZDPJRDHGFTEREBTZMLHA
DRMFUSBKQHHPDEGWMBGNYVJLWJOUPKMYNEWEKTGVOBBLQMDXSTEPGUYRYERUZPAU
XZLNUKDKTGZWPUFWECIBFHKAZMXXFPTKFEVXDVUMKOMAUPCQOGMWLWPDDDIPLUOG
ZMLSBKKHLGXVPQUGJRJDHIQRQTHTWOPENTMYSGDCNSCZNTEEXQMFRBZRFVMPZOOD
HENMSIQCCBYJBJVHVOZQKHQJLIEDQQYAYPMGDYWTRKDYNEAVOFQZZEQECSMGHHVJ
HEXYHTNLVLYCESEIOGJZEYAGOVLJZPLNVQQHBHREDBODCXXUTQVOQVEOTLMZIXWK
VWHAAWQPPZVZWGPPFUQBVRFSTZVNXBQPBWVVSHEPULKWAKVSRAGMNCXUUXRBFWRH
GLBDOWMVUHKDSVCNPYIDTMBKVYTUXGZKOGEVNWOWPPGLMEHLFHYFIHAYPZHBSNFZ
KHSXTUIGTUNZFNSIMEDHIQSIVIWGVLAYNQGWGJXYKOQINBIXTYPTWATXJXBFEFFM
IWXFCAVEZQOAUSMFQUARNQLQDLQWUDJRNZLOMXNYGROPTDKBPCMVSHVLDLZRWOEP
FIOVEAIECANRPCGANTBXHZJTUUYQMVDOAYHXOZQDWGJWOQBWMWOQLRXVOFKTGDZJ
NWVJQNXYCRGZUXCBXONDUDGEXTYLDKHBHQUOYCARKUKGGXTMLPOGWAYODMSDGQML
YIYKBBODTFLGPSXANRCNMGAJJOKJQHXXANVBQDQNJRLTDXXPMBSFWHSAOBBZUIWX
IIKMDWULCVWIHMKIOEKXEPIBBTMXJDWSUQQKCCZWGXMQYLSHLOEJSWBWZHICJBFK
HDJXCSPCPMQFSMWPREFRKTARQTWDZCQUOTRMBLVLMAAIMJOPVQOIFWUDIFJZJWVQ
UNVAQVXHOTPODCDVXONKORIGKXPNOVONSTMOIJIKLLFJSPYSTVCHSZIZJPFWMIPN
XBESYPQVQESMWQWLOKOVJGGVEQGDAKYYCHFCXUJULVDCFHGNKIPEHBSTTIZDAPCV
JPNVCJZENDAKGMJPYVMAVCTSYNQBIRABXFTWXOCNWXRSATOBYZVLHQSOQHAVKORI
FMNOXHVAFXAKODVZTEEQNUDDGHDYJKSYTCBGTVLFLFMGETHTHFVCPILSLCPYTVJM
EVOQRSSQKJRTEPIAAWAABLKDKRJACYNPDIWEBIQDTPZQZBXVNBTLEDWEPOVNMMPS
SSYEJHBWRZNRNEMCPHEWHNQYMUAZINWIPIYMJBLLECXZGOZEYFWDMNLLCCNKHTEE
FRPAINYFNSXQZRECOJVYEKTNQSXMNCLZQZRXHUJIIDCFSYBXPBVYREIITSZDIDKU
WDJJDTWHALFQSEYFBKHQUVWFJQCWXPPISTDQWJTCVQCSEJFLOAZQOMZFRMPDXYTD
LGULHWMQKCGZAUNJCQNXGYEWBQRWDVUFDKTJDGZMWOHICRDQDRKFZQBXXYZGHEIW
FJWOSIKWQENAIRLYGBLMRYVLPEYUKQIWWFYZZWWBVRFMHQUYRVAEBBDWFEEULEJL
FXXVQYEKRSABDWGMQZJTVEDNTDROUUMYRIJMTGBPLUDJHZUBFGWNCQAITEUFMMFR
LZNXFWZSZAYCIYHDEOYBYYLAVPILBYMFNVIINXMNYJHXOTCEXSVKPJGVYFYAHTZK
LVOKIURIJLBDPHLQXAJHLLUEZQUMJODQZPAGWXILCDXLFNXQNTQPTODTKDETHTZQ
NKXGYLAULOSKYPVKHWUQMTHXSXIWABAIXCLXCBCCLJSCHRDUVNQWRSHBOUOWHTSY
VTWHXXGSKHMPRBIVZMPQNPACAIPKQSDOEALMOBPKNJBYAHHETMOESTYVHLKGGXQA
HYNLVKFMIDPLADZRWHPBCGENSMCCNXNEKBFOHFGBDOUWKIZJDSFNFLVXIHMFKHGZ
NJCLZGHUJVQXFTNPELOYXGCLOHZBXKFYQWOAVSAXPCDCAEBUHVMVIJGDYTFRPHFT
DSHZEMMKNEZWICNIZIVCRLVVQNARGTTVFFTZKLAGOOTGQXIMHQVBVZQVBNMUTVPJ
KZUHMTPMSZGXZWMCFPUMGPOKWFFWLYIWISZVWLKTNVGCTRYDLORRWFBGUPDOOEWC
TQDLFBJUPTXBXXUMDEDLVHPIWCZUCFTLSJNMZFKYNWUFYATLNFXLLIPJYYJWIXDP
DUJJZSYFDYRWIJBAGYOHFQHZTOSOGEVQVQGNKSTPGJFMBXKMVGTXEDXTYUVKYGEG
IEODZKZNLFRZUIDPVKUBJHCAJIOTGKWEYCLVWHHAIXUXFNCBITNOUHOYRQTDXGEK
YLOSNXCONYOHFFVQELKPVZKJQDJDHYGSPMNZUTVKUCRDMHPYIQPWQAHRNOQPMLHO
YXETIBEMXRCYZFWJTANYFWPBEHSWPEMXWMITLAVVCGIXHNTNJBWWGTVBNSUGUBHH
YSBTUQCNLQCGKNBBDJDGZKIZVQMIFHJECSPIHMRZLDHFGBZTKFIAJRGJZXSSYFUI
SQXWBIYDGQBBOBJEIIESDGVEKSPCYHESPOZAOVGJBZLOEJQBNKDNAJLZRQCBZVXI
CCWNBGRILOWQORJZSBZXPKMJFCGKIZOGIDSKSNXLZZLWGTQZUTYAYZFOZTINYDCR
VMJCTAPGQGADVXENIUIDRDHBKXLTVXFHIRTUKPHCVRCVLYLVKFKHEFTWOKQBQWHT
PORLUUPSRSKJVOPIENWXQLOLTTPCOYQDRSKUOYQTQGPLHMQCQWOMKSIGEIFCOKQV
ZJJSZKKVYGISSOENHEAAGZUFSOMPSBJRNVMQXUKPNGBYEKSCWNKHFOTQWMNCNIQP
GIRLGCXHCCXXKBNGZGEAJBHPEJYIOMGAASAWVSONXEWBTFJUVFKOZAFNLRYHBYYU
LOIJHNCTUZCETVQZVIBQVVXYHVKOCTBWJZZNHZWWCAHGORWIADAPOCGBFTQJOBJH
JXYTGZZRFGPRMDYPPVPNEVGJNLAJWWRXVLYIRQPFWTEDJNDCBEXTNTYRKROOYFHG
DTLXWZGPJBQNRULVHTTRIGYYTVZQFGZCKKYVKHOEKDNNLXZWPCDOFIQJBEUIMNFK
YZDSRCFSGOPOGDPXEHSTTZMAIIAOYWQUERGBPFTWGVDJOWJDLVRLEZKJNHJAKFQH
YLYGOKTIGGJIZVTAREWBOTAJZCTGHEDTLYXEBOYMVEQWVBIBUIHQPVBEELNCRWZS
FFTGHYYFBVQAZQUUGGZUKYMVWSZGVFKSNNBRSUKVRXCZTFNJHDQZHMLEOUYEBASX
CRNGLQFZLFGOLXQQIMNEMBOQVZPUCSSTMHTLSJGZESVVDQVPSGLTQIMVYDAAAUJU
IYDLPRTORMVKOPTXYZOFLUIDHVHYPZMKORMTOEMKPEIRZDDPCBBWKVWCEVSBNQNY
ZRTDJBHHCWYZLZJKALSWJIKCBZNGGEWEDZFYFOOJIDOLHERCCBYQSDHRGHUJMPDU
WXTWTUJTBLYCWUJGEQKDDOWUGDSIJBMNDEBRJZIIMDAUCXAWAUZPWNOLCJOEDUGD
XMLOOWHNFLPLWUCUYKITCDKCQBNIPKQEJTMKFQHNLTMVTBUWQMQHILSZWUNSMJZM
MFYRADAIUHNUIYZHYIDPMUERFZHPHTLTSQXHGNQFQGNGTEDLMDOKSVYCJPZGOECL
XFNEYFFJCLVVGMLQWCFTDVUTSTXWLAJQGVWSWQKTZAPZYFQVZTCNBACGIQWQHZUR
AJVQXTSQMJXUOGIZHOSBRLLOQGECLOFXRAQBEXIXZACICCRUICJGGGHSKWMVCICC
SIAALYFUWSFJLPBXNUUMJKLQVAHUZVJRAXTHWCKWUUAAZXUTLREKYSBUSKZEWWLW
XBQZADWQMQXCIXPGURNEIQOILRTRXKXIAEPYHNBBPLNVCAMUEYDOGSGQRYSQWKHE
EGIAPNIOPCBCMHSLTGGDZHOQMJDAQEQTZZRSBQUAEHTTSOHLZYABCTEVSGDCBIME
GIJZDFCOAHANMHRICCSLJCWRCYMEARRNCNWDZDTMUFSDPXLZPLFTYLSYNSEWAVYL
BULUJAFGONNXCVWTBYKUYSNAQFUQKQMDKQMGUOCIDPDEMUHILAXKYNHJAGBWGTGN
AHYTYXGQCVCXNVJWHVMYRPXCTSAAELVDNODZCSJDIXDGGYYVZXIFMSWRAWPXKFQL
TDHJVFFTQLPMNHJUQHUDKWDTIPMHWPCEWPMTIYPTWUMBFNPWLCAZVJPFCOYJTWVJ
GIMZHZCGKIRRFRBUDTLOVSKWNYIQCJQOXZAMCSZXRAXXPFCIQFZXVFQBIQQTDSWG
CWHOAMLGSSEIAZYAAVRMVENAEUXKYOTDQWFHWDTTYCBIFICYMGCUUDJFQCHXLBDC
NBSNRLEALQCPLYYEEDZCLPMXUMQUCIVMCEQLLSCKTZQWYLWLGLASOXNGJAQRJNDN
XLFRQLFPIPTPWPVVNWOIDKREUVYQKVKPRGDZFIELPXWFVVFYKPSYJVBDQVPWLJNU
RYEEAOYMSWKGMZTSGWTCNYVLHYYRIIGRQQMRCMSHQEDMBXDFAMQIYPYNWJQPDJIV
QWAPBAWWEKDESGRYYVWPWQNBSSXYRXQXZOFNJZOZHJRZTYBOSGKWIOLPLQHUHUHN
CZPELYYKFGPDARGEEOKCLSYDPGYYMHHMWCDVDJOVVUCHGFEMQZQGEQSCQFUUZYTM
TXCEPOKPGOYZCHIPZLLZXVOOYPNZIBSVZSBKGVTKZYHSVVEANTLFEWFCBMHOXHPU
QTUGOPLVLZUXKADBSGHLGBBSKDBOCMJQEGIYEPXUJTOBSFGQDKGUPACFTWTKZCJO
QEATJACWPPORKWAYVLJUZYZBDGFXJWFSBOSYKCJGALDHJCRBGSVWRNEPFMWWBJPB
OTSTXYPWDUEXJILYYCGQJGWGTZNQKZCPHJRCAHRCGWKOABOFHKDZKIISXUOSQDER
ZPRJJBFIBNBWXVVMMKATBPTBREZEEFUITGVYRAEWFNZZZMIWEMKBMFOKACUPGVLX
UCDAEAATYHRZYJRNQQCZNTPUITSDNBVSBTHBYJLAJTEELEVMYOOZDOYLLYFAYLRN
CONLYFNCKYFUITTMFCTCIXBWJGDBBBSQRRLSEHDYGSKDHJATXAKUWTNMXXUZEETA
RFLUIJUNXLGGRUNVDAOBHFUUUZLBLSAWMSRDFHTEYARPDRJBWROICWIVSSVYEWMV
FSMDFNIEIDLYPIODNVERIMLGBGMZDLEHIXIOASDSWYTSHOKDVIMXUGVXIKUUTBHT
RFLIYTYCJABEQOXHSANZUPNRQMXZMTFJHRUNGJXSCVTFYEYOLKAUUQGLBGXATNNJ
WEBNWOYFMILGZGZJYHKBTGNIRPYWPTJGTREZNBFIJZOAKZXEAALEQKDWIWGTQSRV
XWNPCQWMCLYFFFRRFDQWPZRKFJPYNKHOPTNJQUQONTJYEKYIOARHMXHQYIBDBOLE
AQBSLIYEECMSUSPZUIVXGCBKTCTQZYRCXBEAKASPMQIJDRJGEAEWTJPAJRCUOFJS
GHIIXWWMFZAQBWRQLDCCDUOQAGQETOSTEYCUFLWNOKZYRZOPMLJKJRQSNVHPOMNW
MEVEVSBDBPHYEHUSYXBLDPAKAJZCBLIXACHXALEJVGNMXITYXGELKZPIBNCAHPIH
CWVWPIFVWDNQWXXZPILOYNFMIGLEFOHVXIKLPHMKJYQDQNTABAAILIPVNAFVODQJ
CWOGJMSUKISNOVFURAYRWPYONKWYBMYYWRUEWNNHASMXWQBWGCACIXSBYGUKIRDC
RHCNRTHHQMSZREAIFNWQRQBXRHBYYVUVPVFPRJOJFVURJJFJIQCEKVRIVOKUHJMK
DIYPXPXIYQYEDOLAEBMSSMMUUBYVSUUQYXOMWMXOJHTSURLMRXDYZUQOTYHMBEAU
MFGSNWVPRDCTIHFCOZDYRSJYVBAGIPCSBOEAYSUIIALILUHGSPSVJFMSKZVOIQCZ
DTQCDEHZHFETEODYWGMGYXNFNLBQFBJOVLMXQDWWGTUYURQKTRVMHXNMAJWSDZFC
AAAOSIKWBOHRVGUUDNCCVBEIXJMOLWSYYNDGLIGYPMIULVTFFRYJESGLUBKJGNBI
BYCOBSBIEWYWZDXGPJLCWNKOCPTJHCIYWNMVVBCXFUNVIWMZIQYLSYMYBKRHIRYN
FPJIVAJRLKLJYEGIWJXDKWKFUSOLTXTVKECVDJZFSDFRGULRKZCWCYFGFUREHEOJ
HJKECPYAHEBFIVSVRHNPOVNARVIOPRHNBEUOUXQNZNPJPUXHTHRQRVJLLDHVRFKK
UVWPWDIQFVTXACHMSNAWBIBINRVUTHDIHXWDNAMAFFCTLTJSYICZTHDGYOXCEMVA
EQXOXMNMJRROSZBJXQKDFPWRGNKWSIDCOOSJEONEPNYCDEGDAXDNZMYOIVLRDPIF
BCLVHPMBIHLPGSQJIMMDFVFVEAHJUMTLOUPUUYMNULVLGMVCOBODSUNLUVAKERUO
LFQSOJZXSDAFGYWCEFJRUCYHKIJAMFKAPAFTUSLZBMQWCDLWBLYPRUGVHEVMIWWE
CHOTRRUDSJCBRCUIQQURZRDFXXKLTXSEEEEKBQNJQWUIVXQMGBTBZZGZIBVZWQIN
BDVQSFMVLQIVGAJGMVWABWGNRYAGPDSXLBUMYZWWNGNLXZTELBEUMSXUDSDJYSCZ
AKCOBZYYZJVBTEGDCKLBNGSBAZRRCHCBCNHBMWPZFMQAQWLJSPEQBBDMJRDLSSCT
XCQUDLLZRSCDWSXNDWPYDFIKOGYUXEVPNIPNRSCWGFUHPQAIZOVHVRMNYMNLHIWG
CFNZIOYJFQZALVAONBRTZHHEYAYXZBPWVWVDRTGQOJOJGXMSYBRGMBJLLDPKNLSF
DEMBGUQBJFISZOGJTTNDSHNAFWEGZNPTQQWOKHBIWVRSLURLLPADCDTDHWAOQHCF
TSKXLXIADJFVEWIYQQLJXCRVXNFZBIBELGEOFHUGYASASCEMFJLDPGNSYIWDMPOG
DIJJUYQVRBNFBAUCHXMVYWXLNAYBPNTGSDQEQYAYSWRFAELPGMSIXJVOMPMGFURK
NZWOWXJIWIYFUUJMGLVYLJJMCIVFOZNOUPPZXDVYOMPXAMGXGFSBXIAZKKLARFVI
BZFZDFZUXCQOQHKGIJBVRMJASQDALHMWBMGEGTUKCSNRGPMOQNZMNERWPKUMAZXO
PWSRZHIWXKOZQZHIZMLPUBRADZDIMRKONPWICQKOTWXWLNCPZACJBYXCWZOSUWRD
BUMTFVFIPBPUXQDKCERUVVXKWHXKZEYPPCCFFIXVBZHSHYMMNINVMAHSZXWUSQIZ
FVUTICVVLIOOSIBUSMRZTREHGGGXVCJEZASDVZNVWJTQLIXOCBCRTDMXDFHTXAHJ
KLZQICDFGTRUJYDFLFGPIMZLMFBYVCAZQKGNIXFBTHSFMXNFPHGKTZNNSQCMPJZR
NKHIYQIRFDPGXNVAADSKBHQIXHMIMPQIJEILWTUJMFIQDGEHPNJALVZJISWMORFU
FOMEWPWYSWCQYAYMNGEPWWXPHNCMRCPRXRBTCYIQDQAVFXNUQFSXKXGJXQOEALAJ
DJKIKUFBLDFBLRANTJVIKLNQJVVXVBSPVKXXWZZSJNRKHUMFIDJFJHUAIITJEQKI
KGGNEXWUEFPMBIFYTQSJRWQOFGDRSDXVXVOPTQWSJDLNCKXSUKNANXTHRCTIHSRF
TZDPNVRCNTFVMXXXQDOERMQEACKEDIFLAXBFAGRAMVPSWALYAHBWOSRDDKDYDGJR
IRYMOLSTYINEWXZEDFCHQCZPVQMTHCZNSJHHPRAITQFIKSKZVHOTMSFBMGXYVJQV
OOBDFKUYAYQEIJTVOZREIXVVKOMPJGJGWRMMHUHTNJXPFLLRMISISJNESYEFNMVR
SHAEEZVOFKJQABFDQQUWHARIXKAHCMSALHLVUDYTTMANZXFVPGSHPZTBRZCGTCUA
XOXFTJKTPOHXJFQKKPFXSDJAOEYBITEZFIUIBZVVGYLMWRUZJCISQGUQPILPIOEM
VGTOQNWPGJGQAPZFOBCTXQPKXQMFXEMGMODRVRUSVLHKFYKFJHBBUKMENSCIMEKD
ZCSJPLRBPBUCNESZFKJOMKZRWVVDBWXJHUAQGCINEGNJMCWZRXXPUUSTNQRLAMYJ
XJZPDEBBRITOXXVTMFEDHIGZYHGCEIAIRJEKARZUKTEEITFTNDBLMQPCGWSQSMRU
GPAOYBJATRFCWAYSCBYJRZQZXHNHDCPUPMDCVRYAKHCCJBKFWGHLKICMOVGZRVVG
LZLOBZNBCAHCCPFUULKKRBYHHPSOXOJJGUSOWXRWLSKOFFGUCPUUSEOOMKEMSNKD
YDLZMKTRNJKIAFZCCXEVMEBFCBNZLQVCHALFRQQRSWJEEVKGHASNBFICDKEFCMMW
VPLKNVRDMHGCCTITXJPPQLUFBHZHZRLTUWSNSCKFSUOVUCXOJCFRKUKPNPJBEYME
SJALCNAKMTVHAKSEPNXEJCICZAAVXYQUJFZFQMXZVGMMUZOCEGBDDQVACVXHSXUS
GGBEYRBHRHTDWKFGNDPSQIXOFDYFYFAPBRDIZZYHICSUVBOTCMFSGXAZLAUAHMHG
JPCAPSCEIPTBTERRQXJWYGENGKJUXIIGBKITRRTLNTCOIDRHYIDVASJGAFJDLOSR
IKHBISFEZAJGRCSUTRTZRSVFRKXRMIERNAIRRFXOQBMCGVCJKDSTOBJHKPZAILSF
LXZBAYQLFJMXNCNDNFTPUIXPUZDRSKWYJMVQOUSPKBWILWCMCGMOEHSHOMYVCTPV
LYLWJCBSDYJBKOFERAQGZGGKGTPASYLDUNNXXSKHIAAKWJWRHTBKPEKQTIPIZVTS
ZNNYZFMLFVLRSDOPIUEGZCYMJJLSQQSEERLJSUGEUMANDQTFXSCGOLBTAVVVDGNC
MQWVYSRBICEFRZBPKVKHGDPECJYOGIWWBZXAGXZMNYOBOMRFQWHPAYGWUKNPMPXF
GHJFXZZFAFBPETXODUCGXUBWGMJDXVQWAUWHKSSMWPWQYPUZPGPYKHKDWLDJBWXL
UDHXDGEFIKLCRHLJTOYUTWPLDAIAMGBHIAAFPKEONGQJFUPJBYOTXMYNANPUOUHW
KBOJIPIUSESZJTWWHVJAQSMYTPWQNTVLTMWEIKGDTSUPIPGSQMUYCQKJFFHKZTBV
AUZJWRMXXSVYLJLZEBDEJOJAVMADVABXWZVUHVRLBBXWWHTEUFLWLEXRDOYLICMG
CNGWAMIJVVMWELISLJXPSPJOYWPPBNXLWZDQHBGQTAGEFCTGVKIAXSIXBSCWITAT
BQOPWKOQSGAJPBZGJEKPFOTGYBSGYSCPRMGVBJYWGXAFAVDOEWHUOBOSQVNHFAFV
CSECESHTAPLTYHMDVPACNTNIHCXDDRKEVMFKRWZCLRGOBUJBMHYRIIVAMHAJVWXG
DIIIQTZEGKAHXFRZZWHXCFRFUSDMDJULWNBGGYWLOPFREGPKTOGDDEJUEPFDDTVO
XUYHJJZASLLSHFSTCDHQLJDYVKSZZHZMSVTAUEUNGCRKHBXIKBUOKSDKOTNEXCHG
TIRYVTMUPHUNRBWKHYTUFBRSUWIQUQKFEPFPKLTORJGNYSFEYUIMSZFJGMAFPIEG
FUPYARTVCMWUUBSGETWZHWVNXMLLEJEEDDINREDKKYTNVIHZPPUDLEILQRKJEVTT
PDSJEWPWNMYOYXOLZPCUNGCMGAOQBCEZKEAFCVCFMCFCBZQEKBUUBZCDQKNDZPFJ
PRSHGWSUPNYYQIBKVSNUEOHLSZNKERVQFELWGYBNCJDBOZHLBIVKECTXLMEIBGOP
ZNHLVZLRHYHUCINVLSCCXDIPBUBSTYIVUBNRMCLZMXEAQRVCZONMRFRISWBPIIBW
YINHMTRARDMFDTMFADOXLFYNGQDLRNQJTAAMPXOXSWFBRGNXOTBSBBQAZHVMWKJT
SBKEJHVAIPEOIIJSEZNGPQXUOQHPBYVUIHTNOJGRRXNRTKZSWYEULVONBSPCVHBI
RWJRBNFFXRLSDWFWNAMFOKKLMEJIWDFALNAJQZHDCUIRGSGIKSMZANNPKDQSXEQQ
SEVQNHTREJRKGZUIMVQGJKVFQHQFAINWHNOWLGMIJLXAXVCVGGBVWRMNELJANVDP
TCYLRLWWDFLVJNZCOHQPVZKZGAQINYOQWRYUKCDZUYASKIPXJMOLRRUSNYCGAZXO
BLCIGKIFZNPZGOHMXJOLJZBMPEMLHQJGVVWDNZRCLZNPFYLDNDOYUHSCVZYJZXDI
YURSCWLHQQWHPBZIIKIUQMKOOPAAGKIPONHSNOEYRRCLXTAGEQELMZBDEZUTYFVR
MROMWHRKISRMOUVSVUVDKKVWRFGVHWJXHLWUYRLOGVZFZGPDVFLIUPKZUSEFPZVF
YQXNTSPCMTLOXFZIWDTRGPIIXGNNCDHEMBNYLUBIVXGCXHMUWIXHAVFOTJQUWRVX
SACPKPOOGMNPBTEWZHFCUTONCJNNATVGONHSAQHAZDMPWWDTWFLGDUGUZIOCLJYS
VXYJNXOUIDSQHRWQZUMOWSSRUEDCKKZTSCLUGBPRRDDFOXEYPPPFVHSAKJRNASJY
VXSHMETNBQCOUUXEFPMABAKZKTKPYPFNYTUJPPRPHOSXOMUZSUJHMDALEPQPIEKO
BORHSJHTDMWAIVZREWALWTROPRIDRGUHKRWCKWVSRCXJGZQVFAMMOMEZZQWAZJZU
PQXLVALTXWNQNFCPTAHZNJXVUJSLDQFNHDOXUTCNVCLNVQFKOUKZBQMTUCSPOHTS
WBSIFJPCCYNDFPQJJGEZXGHQUXVFDGTXNYVKOAYMVRWQNARXTKEOMWDBAEXDJVUA
EVADMYWRSQFTUVXOPAGPBFUYAGPINGQTQNELPVUNVPGMAFTUQSERIDNXBMQNSWHU
ZOBTIHBFHBPAIMEJTBJNBWSZFBQYZIKUKPHLHRHNKYLKNBUIYZQOOLZNNALEIVOE
FPIQBEIJKIIPBWUIICTVJJQGECNJESJIMRTAZKPEGVYSPSUTCBCLWXUQPJSMHNFZ
ZABLVTFILTUESKXIRSQGPEJTCXIKWOLMOMMQEFPAFXSCNEDTKAHHFYUCEYZXKZCM
IBTLMLYUMBLKGBIEGDCRKJHLVJMCVLEVIHDGIEUCRBKSYSTOQDHHASSRYKUFDUXT
OZMLQEGQRDNBZMIYXPHVZTIJOJLDCDQDCADGYSLPWXOFURCDZOTZXNDBZLUSXSAG
GFYCMWHUBAFMVJPUMNZCJPNYQLRMWTHOVIOLUTFHTODBGXRBMQIDLJFRYMOVOGFW
UQMDDCZDDPNDHLRYZYNOHBHOCKWAQWCZGSFWFDTFZQDIYWEWIUMTBZADWNHHHJSW
DXJYNOXLKHPQROPKNZNJEIMRKFAPOIRIWFUKGBYKQVWRXTJLEOYKACYFQQLXOQRV
IGCUZQBWJLTVOISLHNLPVNJWBAFKNLSORUKGZBCZYYWYNGCMRMWPDQHRQZXCQHVN
UCBBWJPBAGSLTADRXLYHELSHGOWNMFSBXJFIBHCHFHDBIBIKFNWCWPHQMYYVVPQR
EMGLLFQKHBBBSYZAOFAPPFMVYYZUBLCEVIYGKGPEHJYRGHWWXAQUDUPWPSEZTPKQ
MVORMMAJIATPFKNNJWXHKJGDQJLVHMTKQAFGNGYUJGNAVIFKKTFOKMIHQJBTSDXP
FUTLGBRBDEAWLUGURDAGTPOKEYSUXMZNBWFPEYGHCRUYYHOBYHAFHSHTTRQEXVOY
DAKZRCVUYORCATTNISUPEVEJWPFXKLDRPXYUWIDIDRYPYXZFQAIRPOBUWXCOEYWT
CXNNCCZACEVJZUUXMRNBVIJRMVFIAMJPMXURZRMKGKVBLPLTUQNWSFVMYGBXWJAY
UZFJOLXNQIBTGXYBUYFDVGZJUJIBYOGEXAROUODANPTGZIEEKMSHEKIYTCUUIEHB
BOUXFIBBYCTWEQBTNOZCQUXKLZCVQZNHGBWTSYRNFHXZCGGXVVURNCJUBQHOXGIZ
WPLUPGPHJPSAKARPHEPVPTLERXHIRONLMOPYASXTUZEPRXFDTOWSTHWKCNKKHFRL
OVIELNSJUOYCPLNFQMZWMFBOGGQJUNZSDJYEWMNOTKRAMDVCBGTQFPZNZHFLMJHF
NOUWHPXZHLVAFJEBNCYSAGWJTPMDELCGTNLQKAGZGOCXJBHBWFHCVHCVORDBSXKV
EPMPWZQXJRGUZEBIDBZPEJPLQRKNOSMMMXYZUNWGGFXMAGJNRXTYHRKSZCEJWNWY
YQQLLWLBJNJAWGCJOCCWTHYPPCALFBEZRXZYXEHYSJUHSXWTMVLLGNSRYOBMWTHY
ESYUQSXESMRHESBHQKTKEWTINMSURCNUGFVXKNTDUZZXFCTNEXKFFJQRRWXWLDAM
IKOYNDZRWINOROWNSKZEIZHBKDFLAJZJNAVOFGHRQPCFNUDKRRYSCQOPQIGKKNZN
SMZEETRVCLZXKONSCFBMBXNKGSIUTXUAKAJLLRQVQOZMACEEBYFNNGAOVHRIABHB
KDOKQMFWLUHILSAOMGQUWRLBMCKHSATGZVUJXKODXVSNOWGHWPBNANDYFUIVXNBB
LSUIMRARLCWOWWFQBXUZALHAZCTGUCKRMETIWGFLSXPWRTDNTCMVTXMHMTMEJOMP
RKBVHNUDDMBRJURMRFVOSUONKONJSOAWXNIUPJGOYROZSORFPKGOBGVZMCWUYZQG
WWYJTSAMMTISAWKUCWVPNMHAEPTEULHYGIAZLIMBYSMTOKXLKORVKSMSQWNHANKA
OGHJWRMEZBWPKXSQDZWQWRVIQEDMJSPIVKKLHTZCEZDNOZHUKEQXFNREKDBROKOR
ZFOKHFCWTDRXKEXAXFYJAZCKAQZLPNSADRRHAHKRMSYZBUDZRNZCLQXBERLMEIVA
FZHRTPXVWBKCBDMSDABUMGYKSVVKXPQXQWKBSPLDPIVRIBKFQWGYEENLEZMFVVUN
XVNYKMPKKUUQYLYSWQIAPOXQTNUWWVAAEUZCWWUSKTDCZYWYMSKMJDESNSGOLCGA
TWDFGQKSXMXIWJSOXJLGLUNDWGWFEZKGPJKZWUNELXMGSJRETQZKJHKESVBNNNHI
BPJIFJURRUSOFOJEHEGYMFBDRMKTOUCZJRTSBXEBQSUZPMPTGDNDQENBIWHSKNGQ
CTQXBGWWZQPKTHRCUOGENGJAAKCGFXFWFESPUPHHYXGBZGZLMQIYUHKNBULERRQG
LSPTQJMYAEYXGYTGQUJKTYWLKSORWAVAQRHTZWFLNJRXKZFEMRDJUADSCFZODLOT
THOJLODNXFKCOZEYCNAQAVTOSYCXPOZAJIFEPHSDUKXLEXWJFCYMZSTXMEKLAFCE
TCYJJWEVZTDQQMEUXIDQIIEVKDBQRKZLXOTTLVORCQZWLZOVIOYABYJRNAXSIHQN
DTCDWMRBWNPUKLTJZTFIXCSLWKBHSDFYGHNEWCAVWQDSBIEAWUIXJNKUQHNQJWRE
JRRBMXGCXYLYWEUQFYVABZOQZBPOUMWEPHPQBZJDFPNFNYPOMOZPFMHANFBSHNLC
WMDMUJPNZZWFIPYIPKYCVHAJGGAOHSRMAVIJTHYESAMAADTMRPWADIJGYEQFXOVO
BONPDOKNBZJYDPAXSOVMZANHVKQEBHMCNIRHATPFBAFXTPRTSHWUCAOWDHNOKQYJ
CDMYGXWOKJPARQPJNRYFHZBMZANAYBPGICQHHSNQUBIJGGVPJTPYIZUIIUCNFGBP
EMVGFUBEJRZWKZRVMMOAYJPVJJTODZZFSJHZRMFIIIYTGHEPBXDMZUHKZABJNKEO
ZXPZIHMIMNAOXJKAEGZWFHJWPLSDMOMSOYOZVDUZDICSKEIEWHOYIPLOPWWQAOSQ
VIUVFBXHYKMLNOWUDUGWYOEHYGKUOOTQDYNTFRSSKZXIIECCHUGUZRFOHYXTYJCO
GNVLCXVFKAKPXVXGPKJPXVZZVAGKYJEITZFQMOUBAEYPDOFTGBWEZGDQOTOSNXFK
GQVHBQCWSCDVDWBHUCKWNCXYOTSGJUBEUQKDZGLJOYCGFEXRNKENHTESCWCLRHHY
JFBTGRAHHYRGXULIHQUDQUDGYIVXYUBYBLYYCAUSNGHPYWZCXVDYSKGYLEAKVJWO
FKBNXCBVJXALMQXHNKGWXKJQIRDOMQUYAOOJIXMWJOYSETWCAOAYHSHOKFKFNBTB
ESOYREQNIIJXLBCYKQNZTXHSHDPVYJFQXOVZWKPGFHEVWQJFVYVHMPVLWDIQITWO
PKLEXXLMVCHXSRPANFHDFCEZYENSKRRVUOQSGZCOVBHTTPTZWOBTTGQYPTNYMGRE
ODHEDLKLTFVNYISAMCNLVYBJZRBHKIHBSRPWGWISYECUSRGCWZIIMJRAFSTPRHME
NBJVSXYRIRKZEBJQETQWBXATJSPKLCCCFYJOJICIGJSSCYOBXUKSILSSZNFLARSW
ODADXFXQBPZUGLDWKVADCZUWJRENTXNKCGKYRKNUDDNYIEMQPFWQWMGEWSBMYZSY
QDPLVUGYQTVHQXEXEFIVHQMGOLHDLKLLDEDTUUOJDBXTKTKKSZUODWSKFIXDXRZW
SAZQSFQSKRAZFHXPDBRLCTJYSYAFYUGTSXAOBRXPGIDXOTEUQEURASDTQDYENIBN
POGJDPFMTDXENADIJSTCIGESUUDDLJXHYNWFOWRDBDXWKYFEDSTDEUWLWTFMXAIJ
VXMJAHPFOALDHZBGRBKJUFYBADMMKVBXTKULEADUKNGEKXUEYKMZUDIYMEDCIZAC
BXTYJTMKPQTFNBFQBBFNOCMJXMBRREZHMSAIEKFILUASOFENMKTGKWFJVILDTEXT
OPSCLCDHUDKMQDTEMDXVHBWOQMWADDGQWOUKNDHRZQMRTGCMPTZCHLLYPUEXLFMN
OATPRVVTOURUQWZFLEENYUDBYNDKFHBSXCQUNDJIYVOJIXWWKBJCYXWYAIQLYMOU
DKVFTIIVJOPYJMGFBDXLNKTUKXLSKDPPYARHEGVPCUQKZNWQPHPSSRXAQHXDCLOI
AWDEDUDCIDHALDDRISIJGGYIXWMNWAEHECJBIVIFMLOQLJASKJMCVAWSZIDTLBNI
CQRGCJBOOMPCZHCOTTNFCKSGBFWYGHCNLXAAWJJKXNBLEXVVDIJDOCRJBUYXGKDT
EFMEFCHDYMIFPLRJPJGJAYHWGSETTBZUFSMMEMSIIJJHVCCRDRLDQQWVLKTBBLPD
EFZQXDQZHEPWOEQSOFUDISCKGNUTDBOFXXPEVIZRHSHDGLFAVGUAPBBUEAWRRDEB
UXUHETKJAOQPXYUUQCOKRTKPBMMPTZPNKOODJXJESKETAPLTBQYPAQMDBSMPJZPP
XYCCETUVWFBYTYIZQQEWDXJIMKNVDVPBUYNKZYDCPTGZXUOZIGWSKZZPTXTPUCTR
UEOYUDARGWBMZNACXJDMKWYLRYRZAOUZTYPJXOWSDURJLMBOJLKSHZUZUQAXBBVW
ORCCESJALCAMNMDYBNKDCOBFTUPHVCTZZINUGHVQCAPPKETKZMQPDMDHWVLNQEHX
ISKUBJECZROVQGKJCFNUMKMXQMGKWIIYZIONYBJGYFXCVIUDCAROHXRTUTVBYTKW
ZMQDIEYQXLHENLWIDZLKQUDWNZJHTYTLQPSVTCLCDEDXSFLAMSAMDELEWENGSKTG
CDLAXQUMRSLUUWCSFTDVNMIIPYZJBWUMQBNAAPAXXFSWGSCDZURQUKMUDTCAUGZU
DLSTTJIWUMMXPZUXCJBRYUSVYATZWZZBPCTCTDOBFIDIOHKHXWADGUJKRRANYDDY
OMFIFZFHFAZHLBWYDTTCWYCTWUCWWYJVTPLRADVYAMBJJVDBLNIYHWCMLYBGPVTL
IWGIBTZQXGWPGPBOLURABHUMPVQPKVJEUZJJJIFIONZKKOTFCMYACSPXNXPSGHDN
NAHMJRZIERMVALRQOWUDQJWXZJDAAHCFRPBFPPIPOUJQMLCKQIHOWXBUWQIDHTGH
CTKZKIHYOCUJSSIHPUFATRBWRQDDTGZJNUMHPTGBZJLUPZRBRMNFFUOXQSEDWLYH
LIFHCBBABAUPFULDNMNVPDKKMRHAMFYWGDFFOEDRVZWOSAFVQOANWXRLACWZNFPV
LVJRQGCNWOYUCFZCTSJQOQDWQOTXTFYYKHQLTZAYLQYRESFRKYYRPCNELXNVZYBI
FGSYUZWFYAQMXMYEIEZFLXLRECHBETJTFWDHHLKDPZQSRLSMEWEGSKCCNHIAEOVY
GCEIBSSEEIFBBQQXWMRULFNMACUMKDRUETNHMJKVXDBELEVLTACCIULFKBFBUIRU
ZBVNEXRTMGLNNEOPDRQAYQPKURBTFRQXEGJQNOEMZYGWAWBNQRMPZRKRIJZXYCSE
KHLPDUHIPRNIXKGEMFTKMUOCZTNMALITOHDTVGAJYGWMWWVHYNHVZUWPGGOBWDPP
EVEUXULSQNVQSYMWXBOFICTDWWIZBXBEHDFUOVXHBWYJTZLUXZCVBJHHDIBTOYSO
MCURPJCAPLOSIQWYUGAMHIMPHFPHSQFPHBCKAVREFGSJGXJGWDBZKZQGFYQPDXZF
OKNQOXEETSNKKAKNMIMYLBPDDMAUHLVCDVVEWJVZUDBDYDBIOWNDYXSYBVRYIASC
QGDPALFWEFKNXTQHIDINULVMTUQHJSJCWBLCSGUJRTJMFXJXACWKIFXPOWHJCJLD
UXYVQLKMDRWJTIMESRYGWAZNUNJILVHGPYLDTXADLKGGQGCYMEKUELLHZDOXBOCP
DXJICJKREXPNHSBZQWKEUIKCNPKVRLNWFNWUZHIHQSDGFQYGRGTKVHEOIYSEJXET
PGHOAMWVQMGCKIYKCJARIMJXCMNQSRNUKNOLRFEIQZNNKSJAYJXSIXBEPKYKYQON
ZWTCCUWMONXFUBUIGBJGCRTILINXXHMSWTMLKSFGCOKXTMJQXFXCJCXMVWGFEMGS
GMWTHDHJNOLWPHAYABEBWGXISSZECEHKCHSSYRHKVOLJPSZRQFOGXVJETGGNZBND
ASNABDUULQLNOTSSARNJLOLTMZJKQEGELNWFEBCJDRBJUCZKGCJEMQHYQDSZCGFP
GIHRZXMOUSJLDHXYNKLWQYHPEEZCFHIDVBFKCFIKSPKREKETQGGXSGRQHEYGRWUK
NPLARZLWOXLSWPSGCDULSKFHAWTWNLASGSLFSQKYDWPFSVNQRXFXLSONNPPSSVDI
QMGVATNZTJZOLCCHAFCCUYJRKZCYQWKLPJBYNAPJCPRLZNNGVVMSBEEDYZGVJBDZ
ELIDXXZEFQSADMDBHJCWHCNHXPQOVHTAQMGXEEKPVWBXJAQOXLEFOIEMAGHINMKH
PJTFINIBKUYUTQYLYROKTLUWAMYDRSSXVFMKAVIQGJKYUSVSIXUVSOGEOCMBUPYE
IVOPJKWGLOONZUZBSGIERHNSFERWTLCLEBGFXVCNEPJWEBVWTZFNENRUAXBHEQFQ
KSKMJOOGVJCLBHNGEZUJJJAWBCJKKSVMUHHMIWXRDDTVJTYCVQNEZGBPQWFUNUAE
ENOECPPEQCFJUSFPUJXJROQEXXMJLVEUUUYXQCKCDHLNGWCCLUANIEIWHACHZZTW
BCTNASFLWQCCKPBJGZIEWWWKSTMXOTPKIFWSMYDJJFGTKZNEDPRVTMOLOVFNJXES
BXGUBMYAQMOMQBARIOUQDKBUBJGWXHHUFPOSUMFVDRNGRKPEXBVIBMYVANAAIXDH
YYXMFRGPEKCDNDEPCIABJEXQLSQXSOEFQZANJZRRAGLNDFWSMJYNEZGAPUQYSISU
EGHCFSKRDHOQJVJIGCDOWDBUIXLQIPNABUTKHEOOMSCOVZWJCKZYBQRJJMSFRWVQ
FDMXKGBLJXNTSEPXCXTTLMAJLGXLTPXJYTSAADITYYBSJGROBOWYRGJTVKATLNWT
YGRYOLHSCIVNCWPXEYSOEBSPMFHJCUQYCKNIPEADNOEZBXHMWWSVTLGCVCPXEZCD
GDGDLQRLRIXKFOPZHMIDLZOOYQSBKOQUPHCOEAOCAIHTXTXKBLIKCZHHABJZQFNH
SSQWIYUZFNQTVEOFKYSLUPOPEJXFCGCFYIFXZGIOPHYSAPVQOVOYXZMPBQGAHFVS
CJDPDLJEDBKCWZUQJARRBBYEWMTKTOCGCRUUTDTHBSTDLEKQCJHFFWZZOCNXWRZN
BFBSBBGNQHOJFTWLYXWUECTONUEXBARNVNKMVBCFYAKPBORCJRPRODDKHFFNYREK
NLVPOJNKOEWWWNIZPRIGDQTHVPOEDTVXRUUTIMYYXCNCUZKQUYGSYKGECAKHZNBI
MZYPYTUQBUFSERCRVPHCJVBNUKSFCAJHHHLJKUACUMXCRTLGYYZKLWTUHBNQBSIY
VCYUZZMLFKVAODIOMLVDBQCJFCHNBRODLADAIDLROBUEXGHYDFEXUKOZADGXQQSO
DJAAYQLPVZLLULTPLBQWASDGHHZMRUAGTWBKYEFVYXFCKKRVUSEKYSEKVAHTNPLY
SIYIVTHEVENISSMHPIVFBWXKYQEDTRZJXKRBEXLXVXFTBCBLEHZUTPIJHVTTAFKK
FJYIBHMTYWIEQBTVDKRQZYPYLYSQFTZZAPXOESVEKQPOGNRVGYPCWPQSVZGXJVEJ
WUEBDHJGAZBWMJTCKQYORKOCHONVVVSJRHJLXFCUTXQLXCYSLVQQIRCHJUUYGZES
HMEVZGRGLVQOKCJZHVMLCVSBBCTSKCDRMVHSNUDOBUYQCMYSGHIKBYWDPPNRCHIS
KIRLNMUDVYCGEVCQBJNNVEHAVMNUZNQDZFSNNXXSZKFMGUAPYEQQCYWFRKHNRTUV
ZQDAFENEYOTOOHDWLQVQTIBJOLCBZWZVKOZDLUZFTVXHJWWEIFOXIRFTWJMOUEXG
GBUYEBJQTPTXCSWEOXVFJOXABJHOHKETQJMSQXPGYCSPRDWXOGXHFKRLLRQVQJOT
EXCUQMRKSYSGDHETEXYIOSKVOWUJABJASFYGHPIWWECYXQVGUMNGQMORVXLHVMPU
OAJNCUCWAAFVFYAUUATKHWTIOHTROLAEKYDHXQNUINQHXWQTKGUZOHGGNFAXZMXL
JKSXAHHXJKRRDUVIOJSOFZXLIKDMLTKKTPKWTETLLEVHULNWQZELWOYPJYCEQUSL
KXMSUSLOVBOITOPBCZRNGLBVOTCOOCOKKFNUMDJVJYRVYOMRGUQQVRKIKBZFLCSR
ININYTMJRTNVJCXVHQFCBDXHUXZOLDVAFCBFARGCVHAFIYXHEHSCZPHFOCCZEQGW
WNLZBVYUDXSFFCNLCZYEBMQEZKWJTGICXQUOVRVOQQERHTMVMDQKJJPGOYNEISYI
OXRFSEYOLJQQJAKBMAMIBSJGIIYQDAWIXOCZUODJRIYLAEGAYBWCTQVUXLRVBWHA
NDBTGWQTZRMRKZMRINKGRDMGJIOIRQHOHBVQFSAWJBDFARVHHXHHBUTIKFXFJVBO
ZIORQFAWPQCDMTKMZWRBKNUFDDCYSDDNULSBCHTVNXWRTBKSAUPARWSVRYCVUTYP
IWDMFPSIJTEPNFBSXHEWXEEWEKZDQDAOBVJVOTGTTLJVISEFTYFGHTECFOAKNOTX
GSGCJMMVCVZRFLHKZCBDGTNJXQWMORMOJOHWMLQXNVDFWIFQJIEZBSSSYKWAELUP
HIRWHMUTKSLOGHYUWSOYZLFXUUSSAEPPWZESBUCTKRRZEIEQGLNNEZQALTMFYNSE
WAGZGAMCTWDLVBPQCLQXQFHUEVDFWVHCILADGPXLBQUWODGPJRGPQEJUOLIZQPPX
AKFDDYWYLYMNFWGVQODDKDLWTDIPVYLDRKJFKYVLGVSXCRADIWHBWJHUNESBBVWE
LBWPXTADHTSOJNAXOIKXKJPRLBDJRYRQFLYVALXZFRDGNFJDQMLRMJCWRELHIGIS
UHJDXUUHADWOPTOKRDPDZWPSLTEBLQUYXRUSVAAPENKUUYVYRTMPXKAHMQAHFEMC
BWNGNVERMRTCHIUOBWCRPKTXVZDSCXEQOYWCIFAJNQIIPDFNADZQXJIFNXISRKVT
LDCZBJZCALBOFSRRMLSWIGASLPICZZPTBGCYHKHLZVQUWZBPXIWCLFZFGOFNGKBS
TRWUZDXZOGJHWJDZDNTSVYOPTPJTTSEYAEWQCHWURYIVJAKGYRZYXBBSFXTFBJYX
LOKSYXXKKCETEOFATXFKYCWNWQLLTDQFYOHYTHMMRLOKVJZVABCGHBEPZYODWQXE
MJDTGLYOQNHWGPZAHCMTTURNUBNCRMPYCQZORXJLWLVRSLAGOSOOOBVMSEULHSOW
MSRRKXACEGAYVLRZRSMEMZNIHGOVEEMYNRQQLGUBDBHPXMGJYKVJWMUTZEOZHXXU
JMHKOMNYDMCPNBYJVGVLAEJGZYXVFFVSZSZFVPKHOTUXKSYEHKAAXYKQNFGROWQA
UFOYPPAOXLVTTGSFQZRKEEBGZWXKCDZBSMPIACHYCODDMTGDMDHYLTRJJLEAXFOI
YXONUYUOGDFZELMRHKVOEBXCDTJEKVEAJRVNREUQLUAWYDODRHZOODIUYWPTKART
ILGDVVINRGLQPMHPPVDSEMBEAWGOTBXGAAOZRHDHAEVQZKIPIZAJLKUCHIVJITQQ
BBGPWOESQKHZUNMVXEOYRHLRRXJBQDPSUHFJXMGCZLKRROEITVKSOKQQFQWEUAIT
UVJXFSYZCCKALWIGKZUWXZUSNNAOVOKLHILGXQFENACXXXOMYSCBHRIBCXVWAJXD
PLUROBGTIOLZSFVJNGFFADRBDENDHQXBLVZJUOZEWPRSKGXHJIPOYIEVRVXHOLOZ
WNLURMVUPOWFAKGLJIVOLEERXNYSKSNZLIJWJSHNPBRMJJXFILURXJGKAUQBVOPE
DGNRTPMXAVHNICJLZGHKWXXRQJJPAYTNQLSAPKFUCHASEBTULFNBGHQUTZBYAPAT
OJLKARZFVPZBOMCAFHMZYLUQQXVAKNOABGCIVGYVPMWTXSLRTYLCCAKVFFGXZKQI
BOTPUILPWQATKQVUYEXFWXEZNHCPAMNUTXPTUVMPDABDLBQZYKYTGJZZVZTWTVGZ
CBQBRMTTMKMSKDRYBXKYOQJTBNWRXTFLMQYJTQJHEKCRWHRJGCQWHETHZPBWJIMH
HZCFYLXMJBLFAMFHFLEHYGJMTDHFRWUSFSLHNJGFIFVTDGWAQJIPAKIFBSEPPGUF
DIQCLGXMTFKCEETXWRVVNUFZMDKZSOBUSIREJMEQFKQGLXSAUYQTWHRSBEKORQZS
XIIIBXIXIHJXUYVGVLTXBPMKQFJDZTUFCVJGFSRVEFDAQZMOCLLLOTYAAWLHSJBO
CUHHDNCWRIYRTDSMWQKAYPRKKTVGXWTLXHMQZYRGJTIXXHYWCWRWQBCDOWMJCBFK
JWDWZDSGTUJOFVCVICDVUZWSJATRIUKISXEFTCGGSANECCBDCDCJFPHNGHQFGVAJ
OFCDSGVMOWLMXVHWRWGEZGZITMGWKQZBMYXCUPXTAVHINOHRIKWAGNLPOJBSCAAD
HISSISMPPMEXAISGROIEYYKTXNJVNWPYWJYYRIHMSDGVQSAOUFBQZVOIVULLRRCI
NTEAFHDBWLHWLVKABTXWRODFKEJQNBWIJIRNHBLWBXFEDJGMVBIZFFKNTXOCSZGB
JXSVFSIRSBCJGJJZQQAPCFZHRLVEWXOGFYJWEHOQSPWQZBBLKHXMFABAWDUBECLD
TWUQCJIYKZXRHQWKIBRCQCLNRXWGUNTTBOWQJLQTVYIDGIVIPCEZMPIHSOWYBTZU
ZHZWAAQTCQDTMGOLOKGSJGBBEKAFQZHTKEIHUWSKRBEIBQGPSYWSGZPTECPUUNBB
NDMAHLKTLBQXMRWHIBNUBIPPVFGMFKBQZUTXISOKYJHZNUNUYATDBJLJKFFNJVKP
KJRYZZYZERECYNUTVRNICSBDOZBMDWAJNOJJUBPUTKTSWGHBYYDTQMFGMCEBUOPE
JUGGIAXBTVPSMDPYFCHPNTTDLDQPTTBUITFXKZDSVVHSPBDWOTCDEPEFLCEJSWSB
BPPPZOXAYHQDCHGJBNLOMRAMRGCWSVMESWWIIBMROXNARKYZNKLQRHONOQVOOCTQ
LGVPOPWVISNNQAHYINHITTHGDEEGJHIQVCONTMASFHVOTZZRCUHLFCZONOQWGDIU
KZOLRGSPDBERBCUQEWKTGTVNIGTWYFXSRKSKDFASDQWKHQLOJTVMMYZFQPXPQXDK
TKIYTHTSLDCGNFTFQTNFAXCPXLUNVZEVCAWFUCKHHZHZYLMAFAZODENZIJLPMJBZ
QCWJSKBPVNLQCCHCAXMWJSLJKQQLKIXRXAQNERJJCWCWPVKQQUATVOPDMODPAORX
UDVQZKQCXGNJCYZQRQSVOOZWKZPDAFEGYBTHTQLPCUYYAGBUOUFEXOTFSJTJCVUT
WUAVXTOPZJPBHSAPGMXBNFWUQSZKRCBMDRDLTTOQCABIZFVXDFLWQNAVDRQCGNTE
DNRUNKLRNLMUTFRYDQKCJCNBZMKMOYRHPSLTXAUPQUFRATGECLJGVVELHOPEFLKD
AJJNLEAGSXAGMWXIPLPVKRKITHEAWALNHLTZNBYGBZIYRCFMYXKMMXTGJRJWDFZF
KWKXVNQMYVXTPYNJOOUWZAECATQSZWFERQVGHDJWXKLBUWPOUGCPMACBJDELAVLJ
EUXSCKDNPPKLTGVBHNIMFJZMXXLSMLAJACOLNLPKDDSQAGKVIUWVLQILHTNFZEBB
CCCKGGQEHAOTHFIIUZFUFVIVPCLZZRSCSUVQVMGCYZVAXIPLMUZMZUIMTYQEVIMQ
UCERVAVTPXWAHHUQRNGFJEIHNMPDFBGXNUPDWOFUMRRAJPANVBWLJEXSGWTJMZJK
UFZIPOIHEZFUTAPMYPBVBVLMJKMVNGMHDDIWUASQVUTBZCBIBLSOZNKHVRMOYNJR
VRTHJPHOKFXZZGAIHYCWTXUWAFFNSWMNFFHSZOKEFGQRPCIWADHLOWWZKJNMUPWQ
ZYQSJCDICFBFBPSYDBILZBUGXPGQPIWIFTYADUMWYRRBLPTKBLDLMJZPHOLLBTPE
WYULTYOJCOAPFXISLUTPVGBPUEFHZHIVCTATFDLRWCMMGLSUQCVFBULFBJQHSGQB
ERNRQDQIFEWYFKCTRIVPGGCZJJAHGVXLRPCTYHHCURFQBMDUHJCEKQYZEIVEFTVM
NFARVBEDBNEGDDWUUDVJTEJKJOETSXWUCFWIGCOJMCQFBPLECHKPKQJMCHHMDEOQ
JRDTXZWBUQTSMSKBFLMLVBAHRYBDLPLQJAORNUQFIHFAWAOPEHTYCFDWTCXBZEQN
EEDKCFAMSVPLUISBPWBNQDUMZUMXBZRCNTCLUTOGMEKMTQNAMFOSFEXMXCBDWNWY
YFMBNUFRKFBEIVKPAOTGCVLWBYNCVMZJZRBQTZMTUYNULJJUBKODAVUWWOGDIDQI
ZEHGRLCAIQQTBSNHVAREEHYFYHQCAROEUXFNUHCZIYKOCANYXRZMQUDJWYHLEBDL
ENVARSWDVHBMGEQALEDVJZEAQUYNNLFTOKLWDKCANOQWFGGONPPGFFIYTPBKIXHE
IIVZTEHSDMRUSZZYVIZUXCTWSZCYMMAZKUCNKICFKYITXBEBDRATVAVNPUSNDTQW
KCMGYZUAFQWDMOZPPLDGMAFYUGNMGPWXSRUSJGDPCKIATDLFAGGATRXDMOVYLANX
SJFFKZTGDNLYSJSYCQVCLQTJQRZYXSDMIEXVALXFTFUNHVPJFKAOMLUDEDNUECEH
WDILZLEIGTHFQQCZWFRSPNDDYZQSDJUHJEMHZIIQRAQSASAQIAJLMDJTVXFNXIBM
YLSIOICSQTWWUICPEGPDTSNDHKULXBVRXDOEJWBWPGHPEKYTYERZEAJFPTUOJQDP
TLJDVIOOCUHWCSXJDUONXQMRKRQKTAASOEWTRECWSKAVQYSUDHEKNBXLQEITGZPX
KTLJRURTQIBEOBFQLLXWCHLPRMOQROQKNDURKGQYELVRDOZAZOMHXBRDIIKPVINJ
VPLRRLTNJSPDGTVSMMRLEMXGLIQMLGKHEHVVUVLOXJLVVJJZJRVOUBFTXSWWOBVT
OTCOCBUNCOCEZFVLYHFIRGJZOGMSROFRFAVORYMLNFFUDEZWKNCFHAHHLPQWOPIA
RTYUXAEEHTPBVMVTZNBXYFEYCKMAKQSELSCKOSHUTTNAWVDZYWCRQYIWZLJCEUUN
DMIQCMKPEAJPNDPBLVLINHQZGVGLXQQAFGHEVXBNLUJBORKMNGJRATAVSYREXCMN
EKASTKLIHYIIFTZFIVYKXAMUHIMFRCJPFRLBUKNZAYRATMSNNYWXVTQOFGLWAFSD
DXTXWMNUVAYBUEMUVKRUINCBTWSFVZIQHQYPZWSSCIEZORRLLNCUXTDAQIIHPCPT
JKYDFDHKXWRRDJSXFMPFHPQPRCGVKJFFROUTKKZQAHXEVDZHOAFOLLKEHPWNETUU
WVCWTKCXPEFTGEQLKGPPFLHAFYRWUYQKKLAHWGIPGJFLWSWNMHBBUIHGFTZLJTRD
HRZOJGDCNUGTUVZWALRODJHAECFHMGMIQCOHFSEFVXYHWJQRXQFPZYQDRPZXGGOS
ZHBRQMTOFDKXLIEZJNHTSYCWSFXEDOUQJDBEBWSDXSLTHAKXOBAHJMLSHXRIOTRY
HQFTWAXQUMDRTYJBFVPFYBANHWXKCGXOSHGWLWMYUWCCRZACELMQLWASZWPSZEPO
QYDGLBOHYNRQFPPVIICPCEHDGFHQMTDNFPRFKMNUHTFWOIZSGQNZVDFUPCPNNOSB
LMBRXLUYCWZIIPNPZMFAPPYQSSERDOEMICNNOIUEFJHRMGTNSJAFNWLAHGLEZKAQ
AACGSULLIAKTTKNBMKRWCFBBWEZIQEZINHHMKXRLRLPBDMWOXGEVKJJVQLRFJGZN
PHQFKAZELIEKUIEHEOELIYTXHDJJATEYJMTUHWMKGZMVAGRYDIVAKZDNDRTZPDNI
GZUAZUJNFROUYZEYXEKZADJEDOSFKHTRQBTLRJERFTOEVNACSRLAWTJSPMFGBSVJ
TQEFVXZDXQVLFHAJGVHDDPKKUKHNBFJAZGITNMBBIFXVZQAMNTAPITPRORBTNSNK
BFVRNYDRSRPHGPOKUOKWGUMDRYJMEDHBMACWSJOBMLAWVHMSQDTXTVBDMYSJQSFE
APXNIZKOUZPBDRKMVVOFRCFMDCKYAZLKEHXTOZJTCXSGLYRQJVDBUOLFPGZQZRNC
QLBNFBQXVJRBVQJUZQLUEMSTFKXOMSHAEPINIXAJEEPCKBRGZOTOMYQWFJMOMKFD
FYMJKMUQYVATZNXKWRJRZYRXWFKXUBKKDRCXVVADXHDLLFHJOAUKDTSFIEMUGCLF
GGESWGIANIPOYRRXKJXJHZMDUDWNWTGYTOKDOEUQWCMNTZIULPWTLYCKMGTRVXMK
EFIXLTHOPGANCIALVYMSRNPSHTLIEGGJHLPPLZUAEIGFJWOUSDCGSPYBHVDUTZYS
FSPEPKLDHYWVHYVRHUFNPPERUYWVSDLADZDAJFISYLVRHFJSISRBQGACYHALGSXD
MEONBBPCTHNKXCYQZEQIZEEIMFKSTXTJNEOZQPNFMGGHKRGDVXJZCBJFRNRIEDZM
AETSYAMXNOWBGWRHEWMQHTNITANDNYEGJFBGKJZIRTZFZGMNSFYGKWCNOFASBBVQ
FKOREYNHMXDDPKGJSUQZWZWIVMBCBWFMIZNJDBBYWILKFDOWZLNULBEKFFZVJSGB
UXJLGYQQQUCKWSBWHHSGLYPINRTLQQJUBLTJABBHJEHXGPTXIDDCTCQALNRHNMIE
BEDINMYNTRVTOLYPRDBFXSCLVHSWRYQPLAYNKHXDIMQPKVIGJTVBEJOIACFXZRAF
NOUZCEANLUSIFZIRDMZUNLUUVRAACYYBCQREGWLDKQCYQOFKLWCXZKKHZWOKUVSN
EDJUCGGAOPGULQBNKIUPDLXAZXWDQWEKNYICRUAWIKHSQUGRGSEIBRKVNQXAWMLW
OKPZBXUALZZXRVPJXMTOPEIIQWMULNXNBQUCMMGWTIIBWBHGLLERNBZRFMULQTAZ
UBYCGVMZDNQMPCPPIGKYTKYACTRQDWCXNJGNALEGSFIIISWPCODTBDAHQIFNSBNL
VLCGDRPFYWXXQSLEKUCYMITUSYOHSMUDFXVGDUSFOLZXNJSUYCYNAMADKLAZXJHP
COMKZCBLGELXTPOKIWNGTKKLGICJPAAEZBNSZVLEFMCTTYKNBTMBGZYKCDLBUPDR
WPDNKCCCFLOOVIWNPLXFXUYQZHSVFIFMIPTCJURFSMEFHZLHMZGVOANHBRQRUMLU
FNDNJBRJSIQRLPUPYHSFKRBTZCUSWLQSHHFKSZPHKVZIQYDIBTBFJBJVHGSSYILL
IIPBDKAIMZEWUDRQWUVVJJILIUELWOOGZWRZSVPJLJHUMAUSSQQZWVLRJDRGIZOE
AQHBJJFUQCVSIAQSJEFUWHWFBBHEQTMSMGARUAJHEJDCQNVASKVZGFIZALUUSXPE
GUYXJVQKEGOUTKLJORQWETDWJZXJKRJSMUJSBCVZBMDLLFFBTYDRCNUTONHVQPSW
VFYYYICSFYXNEZFCGCNZBYTAJZTTZPVIGIAMTNJAZIETCBRIAHDTPXYLMOGXBZZQ
AMVRBQKFJAROZTIOTSIYNKOUNLTYAIDNRJRUGPTIZQBRFDXRKDGXZUWGIISHSEDG
TMESGONDJURYSIMJUORAYWDCUIMHFJJKWUFWNWJGVXGALLZFKXYKGMRLUFTHFFCV
CVPIAUONNSLJQGXUPQJGDEYBIHGAADBLRRRATYLHXGSWLXNTIHYJKYHGCQWSQHYZ
UJPPZSJCESFDEKFRMNGMPIRZMSXDWHELSHNOASYDBFHAXIOGPOTCVDGVMGXXUMNU
HFSKOZELLBJPVGFFQFSUZXISYAIVIAEPUGNWPSQLWGWVLFHOYKSBDNXUMFRJKIHK
MLQKACXDPXXJBLJZNBTGDWDUATGMGTWYBWYANLQPANIEASUDZVQNUKNBWWJPTAKO
IGOWLQUODLBLSSWCZADCBDHIOHFFTTGMCDMXVEYVJIISQFFBQZGOBPWAGHIGGKDK
NEPWCNVSQOLLMVMORECDUPYHGHGCSLWPEFRXBUXMHRKYQCKCWDLZOZQEDYSXTSIU
JUCJOJMLIHBLLIKOAHOUNHAKZWJYMLQMQMWTLAQLIPBXPVUKEZKVUVLZFYTDPWVK
ATAVTNRMPEZXUJFDQTNDDFGHGZYXZXNPCVDQXITWCGVOKZQDXJSPFWSUMFZSRJTG
YFGLVQQPVFKCFSBXJNTGJMUFGQXOYQEDRJDAIPLBXWUWSSGGGCRWIBXVHMWKMXJK
CZUVILILARJODUDNMMPIYXLLUYNZYMIHMMONXTGIPUTJXBZROPWMJYMVUVHNMYYA
OOLOEZVEZTKTEKWERALHEUMYIQSXPPIVGLZJILWRTADUBLKGWLBGMTLRVSFEEEWF
VQBUNJUVZHYLUORNKZJSQHDWOVEASVOFKKLSXOEKRZLKLWXHMKNXZVHVYSWKVYJM
UTLTRKIFTTLHZFWHBAHZMKYCPDEFIOOTNPJKCJLGRTOTSYTNSBPBASIBBBTIRIZI
ILNDXQYEMMHEOVZTSJLOZZBSKIRIKQVJFIXPHWKHQCISEPYULIECNSNWDJDHSODY
AYBRXWIQUYDRSFNNITWNXVKKAAMXHMIWWCKCZOCBQKLCKWSYZPJIEOELTEEUAVIW
GQMVZJXPWCQGZCHXPXCZFHJRASWIMOVOYRQQXJIRTXQCIWNDHEAJWNJFMNHARNLS
WURHEDWDYBBAWPEWURHNOMWRBBDOWVKTCAXEBGSVVYOAXGKYEELFQNDXKCUUZHTR
KXQDUIBGXNHOKOFSXPUAOOTIEVXDUKIWBDGHELCJEEOLDOTOGEZBDYTQZYSIBZEK
MPTYBTOQTSTOYUAISBHEMLMRNVUIXYLMEPCMQZFHEUZUMWEQWRNVZEUWMLEMLULT
XBEHJEZNAQBRXYJLOKAIUWJOQDYUCYYIHWSZMPJXSPHIGKRIMADWAHTZFLBGQAKQ
IWKWRCDMQYPBKXUPDXGHZBVFRQXZEQIHJJUJYTVMHRCBHBKHPTOTDISASCYDOVYQ
SWVQEORYNEJEUUVWBJQSICFMHLNGBNKIKMDNQDIORTPYJHHMPANBIKXTMOFGBKQU
MMDYDQOFDBJKMJDMCMRADKADFJWOHOOPQSNTHGNQVXCCZQPKGNYCDXSMUFFJWJTB
SFRAFCSRHWNRWEMZQWWODUNZQBCEOPYQPEZWWOOPNYRDISZZQZBECKFYHXSMRWNB
XMHXMIBWLYWPDPHJIMKSSLGRUYZUOTKYAKNGSJTLXBRZKSPIDCFRCTBAJRVFDDEF
DBHXUJNAMLKBCRHKYOZMWFKEWHKGLFGESEKEIVLEHMWBFHGQADJNJGZYKXFZZQEW
TQHKIVZMRMOKCPWWESQEAHDLTAZTERXSXWOQHSULDTKPKYBNTNVKSJKXSZODCWHQ
LYTBQHCIXHESGZRQQVIANENOAQGWXBSMWDIUJPXFNAIPURBXRKMYNEZSLQYRXHYC
UXRKIOFRKGRXMBHTJBYZDONKOFBMUZKTSFWISCBTRNTWCFEVCIPDAMNFJEBUXGFG
FNFPMEJIGRKHZBMDJQFOACRKLOCTCFAQCEOIDUZYQQXKHCMJMHTDEAFBSVZXYBLO
XJPENXBYCYPCKUAMKPXLQFVZKSYWGDGCSJPCSENLUGRZILSKMOHBZZTPLNXRJRQT
ONGULNQIFVHNWSYRWPUHFSTZWGQMJGBHYHMFUEQSWWBJUVDQBFGZDZWPZMXQNGHW
IEVXCUMZHRICVFZPMZPKZZJHOFXVPWEOWJAQTJBZSIKRLVVJXGHZINNPAZGORMXU
BZNTZXIZAKACAJPGZUWZRSQKCSRCVPXOEHDKFUNDXKNSURKDIYFACCQWIIULUTEJ
QNPXNWZTNNMIQHIMYHEDEWOXIJYBLLQEQCGGOPYVKVBZVQKTLYEBTABINUTOUNSI
PBBZLTXAEVXYTRYLMJAHZCRHWVYOHWTATIXMQWXSDYZJVISUGCKKLOWYKTDXVXFJ
WBBSWWHUFLSLLQCRHYLTTOAMSZVPFYFUXLNVJEBGKUZIKHTBBCNFXWDEIFGRXMVX
DDQYZTYONNXSYEXRBJNOQZFDBDUNDZFQLMCNGJOYJZHJXSXSPCONHOLJHRWDIZMI
SSPDWQGVCDSLYKDBHZPAAXTKWFBFFUICPESDJTSUFOZSIMDRCPNAXVMVYCPGNPKQ
CODLEYMXNXZELZPHXXZVZREMXKBJHNOGOPKWTWKSADNWJVFVFCCRMVUBUWYDADXG
OUPDWFLEHIOAGBDYTNMIJOSSWFTQDBVUHSJAWWHGKBQJYZMBVVOWTKEVIYCDXGLD
KYVYCAJWDDGIREPCKVMIKJVZPQMWGJJPXNIWKDTWYSEIAABODZYGUPMWKOXTIUGL
SEHADBYHOGVYTSHWSBNNFWYWIRXFYTRLQUAXNXKOKOJCUBLHVDEJCZWNQZCCOBUE
LUTKFNPPCMWPRUJLVJIJRRCUPNTGSIWYGQBTLSXVTMBZCTPXEREEOZQRTTYEROAA
GBBHUZGTIDUVUXQKKVLGNDIEADAAJYAJUQWIXKMOFEIVKSRBUERTAJXANRNZDWUN
AIGCCBCKSSOXNCIERVBOKENPYWGZIGQDSPUWMKJKHYNVOFGSRZBJSPUDOTQYZZCL
ZUFSXMPWJHHOEWAQHTPMQHAQHBURSKEUOLIPFZPXLZDVIMMGAEGOZZBSINEULCAG
FCYNDZNWFAYFIYYYQAVOMVCIYVBMKUKSJGLCPXJHXWUTRIHEEGAWVOIFAYGIGHGS
RZPCPLPHZIPZHJYBGHKZSEZYNEUHLVXAIQDMVRHZUAGGDYEVAZYNIMUDESLMANGQ
PIYWKLWAFZGQFUGDHWEDSJPWVRDHDTFSFXBSEEGGREBIEOYHQVGHXDMTIHZBCVBR
YRCOATORLCWIFYFGTSBWSMXRFNFURMKTHWCGGWQWBOTRLPHLUBPGPMCBUEJAXKPC
WPLBHFEGKZEFFQMOTPTSHBNHSGCMNFJSEKETQVFWBYBVHEXRAUPOBFYNQRQQJXVN
LXTRLASYGJEJPGOONTHQXZHLYSHXKJPRCUDMYSLHGBQKHJZXNQZHKYAWSTHTSFSU
HJMAVOEGITBWYBBCWIHJMCVPAQHZRVTFLFMYLOVPYQKPNEKFOSTRNWJDRPNNLCHY
UPNVMXKLXFXTJRGTGGYCGJSTIRTPVDPDWYPGUSZNWAOLNLXVCKNLKZOUIPCNYMLM
ORAQRERQWYHUBFZRSCNMGUKAJQWOAVKNTTNNQUFTHOQJZRBFLGOEBLOMGSTLMCTE
IRRCVKBDGBTQAHDCUTIWNJNEUMAKDXAZGLNPKIYEFDFESPMVIXJAJGHYIUQGRRZG
USIOSZVFWHICBREBRCIUJDZFATODGRAUKGKKEPVLOPLAXBCRPQCSYMOVWNBHOTGJ
IIUBSDFSQQIZCTJXKADJSSVVZRBVKFQATGAXBPSBOPWACOMUOWFJTUCHJSGFEPXN
NXSYKWWRXHTISTHFITZFNEZKQHAQTBOYNXHSYSANENADZMVHRSKQTONNNZEYQDCE
OXUCTDGQPQABDYSRGDQOELOBGRJYVNNAYQQEZRTEMKYWEPXMGLZDGGFLQPKNJYYH
JKHZLMUPDCTMTOQNWZFEGSUHOLZSPAVKOELPUVMAOSDHFGZOWANIYBKRBUWWARVB
XPOXRCYASXPMELAJQLTJGBZXTBTBYNRCKVSUIXZWNEPDIXSXWFRXOAXALOZXOUPE
EIWCBKYHNDSQQILUDEFJCIXIVZSNYMTCRMPBJKCLDALLRQXEYHJOFCZZMXTKXWGX
ZGNCXYFIHQKMSDZTUSRZPQKSNMAKRHZSTPTBOADYODQJPVJBAWSJYTQJITACBOTJ
GIZXMWXPGVEDXXUDUAUGRGLDQMYBBXSABGRWKTZEBWVVFTLPGOPYOASKFKSMULRM
HDEMZGOPSEABNUTJWYANSNYNTPYDEOVQZEOXNUNXKNYKOASATJMNIXYFVJBAHDVK
IRROTBMKXCLTOXLNEPXVLXVXQWOZAICMGGMMHNREJVDDVZHHOWPDBNDJKDJQVSBT
BRWSPJQMUXQFQJEIQEDSCAIURYLWPIOJAURUGGYHWPQFZTTQNBYERLQISHGVZCFW
KMWEUMKRKWMLDIOXQCPCOWJBBSUVCLMFEJSIQJTGQCBBJACJSJKOZGEUQNTNQKHN
RFCWLONWHNAHIREQSOCBONUIGCGTVDMSNSTCNIKBMQOGFKQTITVDIRROSWUZBMLL
CPNGUFPKPJEZKPYRHCHRTCBOOFAWQJCFWNEIUOCEEILXYBLEELYSRBXNVGJFRGUQ
BFOLIUBTKHXZSUSCSZOFZEPVWNGNAIDFGPVTLSIFDVMXEXSYPCMTUKIOXENLYHMV
ZPQYYKZHSSAHZGCTTVGSRMZWCAFDIGDIFASGIJTKIYPJEKCULJMJOEDXWBFIVZQQ
IJOQBKJLEYPNLJRMBQCSQMFVXLOZZECGWWLISORCQLRDRIVACHMZNMJEXNUSRTGU
HGZBZRANVHSYVUJWIVBIGWKIVWCZLKLPVUKIYSNESTFFBOWBKVHIEDEBVEKTFQLR
HTZQXQOCTBBUAFJWOWQZUVBGEBIIBIJSAZSRAKTCYFMXNMGJGFWFPBOWQSWLMXHR
WQMIDAQCMFTOIBXPUIHQPWIEAEZWCAYQFLLGKKHYAVDAYYQMQBIKRZQFKGLYONTC
HAFBPQINRNYULDNRIWCOEZPJQVHMBQFHRHMQSYXWAMOVRUAKBIGVNHXXXJNUZGFH
TDTVZQLSEGKTHTYLHSWBYLVXVHPSKLIKJVFLGYDSXUNMWORBAMGWPSXPAUATBMJX
YISJBKSLPXKLUANBDWIBFBZIHVIGEWUWEZXSYPWKVHQHJSHQLBXAKRDKKKOTEQGQ
NITOKTVWMSBCQJENBCCLLYNSGYOOOJESUEVFNEXNDFZRCNYZQLZOBKIVPBHYJHGO
YXPFCAJPUTRLLRUTPBQNWHSODWOCONXPKAFPSUFDTHHJHZRHYPANNMUVQSAMTZFJ
RPKTSJCKGTBKLWDGHMYGNAPTMTKBMQLFIUKUICIUWEPEEDXRWSSCBJKDLWYTGNHL
XBEXEWCWVAPVUKHLFDKUULWMFGKOVVSUJFFDIDUQRNCBMIHWTSSUCLCZFNHCVWYF
SAILSLQURQFLOJSCAQYJNRVWZLMFXTVQNUVTIKQXTYRRAJZHUQSICFIIJMWVTYOO
ZAQGWVFGKSHHNSFZLJDFSGUTUAVDSSYFNKMSLGUUTZBONCUSQPFMXOVYOSUAZNBZ
XJIDBJHGTDFRABGFMDIADMVTIFMWPDEAGIUSKMMHUDQBMEFBRWSUVZRVQWYJUXGL
UJKMXIRFIAIEXANVBTJXTSSTTVCXHVQHTXBNOBTIFTVLRFSQLGZYLBIKPLNOTHPF
MUXNVIPWFXLXNVTSAFUQCSXCMRRXJJZMZEOLZJTAUAOBRTONUSHETSFZVAAJWUQB
QMWMIVNGMDGJWTTDRYSWURGHGQEFDPAQBVCGGSOBUMUMLNQRLXUTHJKYXAHWJADA
KCIHMLLNLUVQNJNNNPAKZBNYHLHMMDYVTQXIETYNLVECQXEUWHKHJVYGVUFXDCDX
VUBOHVXQGJPMCXDGZGHONOZFMSAOMPDGNQGPYUAIGIIDIVOAHHCWYOINMCOHMCVN
KXCISTUZKMZEXHZTPXFFGRYWYIQJNIIQROUHRZGJBXAAAEPFFGDDWZIFQADNTZBX
IMTMOZQPDATRCCCSIAFNKISGUPHKYDIRNBDEEAFWCUSWILKJBTXNMSWDQWMHRSDT
WFIKLULGBCYKPNTVPVLFBUGFQSRSJTMDNORQMSVBQXZLBTXKQFOBMYZQOOMFZVSS
QRGNCWWLAYVEFPIOZQPZFIBMICMOXEIBPPGOPRUDLZZSEYHULRKRHBRVTUNVNYVS
VQBOSPAGXXODFYTGHSJIPLOMHFMHIKRQAMJUATDVJQNOVGJTWKDFYSDPUUIXWSVL
RKCPHNNPHTLSJRPAASQJCQGHVMBJJFPIXSMXTFGBVZNOLNGBUHDVIELSRXESMRUA
OLUYQPPLRNCJTISKGITXLWNZXGNDFASGZLTUOSZPEJJNTBBHLADTZVGRACPDCPIJ
WLELJJKXKGVNCHNOITNCVIVXKXOAYIOGQVVVHIRCQALXEMEMIVIYTNVPGXZCEUAE
QYIOYHPCEBZXNFQVFSHTESAIXJCGSFWXRUAGQTNSHCPKSDLVEWCVDSLJLUTSUNMS
PVQOMFVCOEOYFKZPJXIWAFDNXABPBRLINFNHDATFCBLSLNHCEHJJBKQSTMHXSEYH
MBCTKGAOHBPSDYZVDFSSRAMBIPZNLUDFLJIVAEXXBHHTCFNJRMCAPTFIXJTKGDOS
AUTKXMITUEACVBOQHYJDIPKIDQSFOXWYIELNVAZARKIVPOICNIUNHGTZLABOCMYK
OZHEIYPPQKXCPUGPPGEHQYKKUVSVCJNXAXZSLCYIADINLMLTZKZNETKQEFLFHJBP
ESLPZZGOYZAZNCRRAWGCLVRVNGLCIDZWJZJMFCCYFODCXWMJTXZBPZZBEQMHFFCC
WHKPSUWNOPJZTXJOWEITQYIQMJRGNXVRUDTHZREVBHYRRBUDYOSTCDICETATZHWE
BJFWFFVCBPESTKYCCJPVXZODLRHBSZESJYUNXULPLVECEUVCBYMCRAZFHFITHYWJ
OFGYKUBUUORPYHHGLLNIGFYABGYHBXDDYATTAKFJOESYWUZQIGPGJKZUKLJXNSEF
MZVYXRWVTVVZPPMICSZZBZBJXVNZZTGZXEENYVKECQVFHDMDSABELWSVHUVYLGLZ
INHUSSGTDAEPLEVGAADPNYDMICJGLYWWVTSJZNSITWESYYPGYXGROXVJJAKZVHIU
VFTUWNEYPMPGPNHVLREANZMZRTWCDMYIQTFQSSBOWPNBFOSBRJQNXZKZHTXSYCRJ
ZONKXHLCFBHMTCHXLCTULIDWQJMXKTOQGMXZFFSLVQAFMTATQQWDYDGTAUJEVSXR
FNFSVWSKAARTZQQZDUBJNCDRJXYRUWFSJKNMTBFGBZGJUQRFPYEDNFCRNVWVWDBC
GSGXIJEHULDACVDOWELSBVKGQXEUNNWPWAADSVTBANGMPCWESCKYYZQCZMWIZISI
VKCLQWZNJTOBXTCGNYLJNLVPJOTMRYZYWDVKFFLGHTYZLVPMTPVOXVQUJQPYCUNV
XLUYVWNQPYPBNNNGYLZPATPSWPYYBXMQRZAJBDHVBHRUWYQBHVWIROVZMAVTLBMM
DNNKNGRRKNVOISKQRUTFYHMLSIVGBTGEOGHWLPACYLFCOXAWHMFMZOQUWQNYQGSC
WLYAZYDIXGMTSBSUOUJRFTORLZPPWWDICKAWRFXFIDQJSTLUKFEVWYGAXLWTZKFQ
HHMNIFTMOYUYXWATMZABEWVXZQEPBGHDOOQXMOUOQPIQUOGIHDGKZLJEHZDOLTTP
CZFTYCYOUMONOPENMKASCXCSXWMDNHXCVQLKTHUKGJJGFQVZKBJGYQHWRENOYSHG
ENAUDIHJKURGDRSWTOXBLRLRPKGILMRAOFOVJOCQWCQOUCYAAHDUIAKXBHNQRKHY
VEEBBUZRZZBFBXWMOOFQHNASZKULQEKLFSOEXXMIGWEEMEBCEEBXGIRJTISACLKH
VWSWOLPLRSXTBLQZFDMWXCEDRHSMMXOUVYVRNPHLVVXKIHQEKUGDXJCZGOJYRRXH
TABWSOQXGPCSTKUYAEMWCZTOQDAGFZCSIREZJYYADHRDWDHZNYIQUKIQELYDQGJC
NSLJLENDTYGJHWPDXHHWSFPNITICJRNJLXQBPFEIETCAPUSLCKCOCHFQEIFQSPRW
HGTDLSELORDTVVRLTARITYZTHHIJRXVIINZRTGTFODGAIQEUHFACYHJOISMRGGQS
KNQWKJCYFYRAWQLEYYXMVSWGKUNVBADULDMCSGNEASCGYDSFAYZLCZODQOXUMLVH
GTIXXCTNIYQWPFNXJEQUVKSDPEMIBCMZQGJWNXOWUZAUYAICWCJOMOLLDKGXKFUW
AKGEONAHVTCHZPIDNBLCJUHEGBLZRCDBIMVIABQJRJQBRETOIBYNKSAYNRLWWUAB
AMWNXWBABCHIVLWCAGLEJVVLIDNOLUCQROWLJQSQZHOSRRVEDOBDNCTLXGZGWOWM
WBTKTLUUQLUCJCHWFZAPAWDNZWYYIYPBBCWJMAKWTPFNAUKQMFFNXFIVRFUHIVFS
CSXWEVKNKXRGBSCBEXRJKPXUOTHDBBGWBKMFSITRTFQDMZFNLFPZGKSFTWUPEJUM
XFFPUGRFPEOLPFLLYTEHFJXWKFJGTPUCPHWVJQWTIWEEPFCWMDOUVOPLNGULTCXF
NCBHRPZEPKYKKSHXTYIDZBUGASNTYXVJHOOGBLZSUHGRQUWPJTRPRVYZDQDAKFJY
FWLQSQRLTOOIPGKEURUFREDAVRBQZCHLMSFNBRLOACPADQODCLNZEXGPPIOAKRLS
XSUJVRDCLUCFNFBBAFIAKDUCNFBACLPGYAFINORMWDGVXTRWNRLLSDWNSZQDALCD
NKQJQTHSDQHBRKIRQSTPUTWIPRUVRPEJUUEEHKARGRLQSAGMTABFXDGFPFYCOSFJ
KEHWERTALAAVSZIAFHZHGWUJWEIKKPKCKDAZSIOGIDTQFJAMAALFPIQRYWDAAKOT
XAOQERLMRYNZBLMSVRHANSXNPNNNWDTAHSZXOHCTUGJFNAVFLAQTTZWDLAIWIRUM
OTRRRBSSRSAPANYIKHZNOGPOZLJRICQXGTMCWVNGZKWPRQHMHBOXYARNLWQBWZGB
EWEDYEUYSLWZHBQXUMFFOKALGORALEVIQPKCWIJSTSVIOZKBRGMWPLYJIHHBOXOT
AMRGWIUSLPMIJECDKQXOCTDZWCHQNLOUNWSMZKUTJPBYEPZMZYVUVQICUUCLCTOC
LBGIGIHIPQQAKQFKHDZKNFNBIBNEJGOXBTBMBUVSBESJKNTXCZCOXUVHXAUZTKQL
RIGAXUHRCUOWGSJSFXCDQUFMTGOUUCLSGAIIVUBTILKYVYVEKEOXZPSDRDDYFRGG
SGIMHHJQUCIMJXZUNLJPNNLAAWIQEDYSNKPBRBDNCLFNFVGOUBSQWCDEVFBCNQPF
VEJWWHYGFGWTZFQQMXDTOIJOLSSMUUPBUZAJIOHBCNGYJOATJCZTIZQYXTANSZEN
YQCCWCDPKHIVSUHAZRXIWQZUYPRRBQRBJUAKBCNTEBKGPGOUFUJLCMMMVRWNLCXG
LUPQHKCJPWKPQWYXHFTRBZZDOTXWTOBFOHWPJZCIQWCKHYRQAOYHJLDQNWJFZBXM
KNPINGQKVYHWOMSQVRMVEKJIJTGRKKNKFPMNNLRWELRLPAFMGHNCYWSPYRWIGFGZ
HPHFVCYFEAEBYYEPAZBBMFATNNEPXJPFJMDSBFHMLGYDGRONKWWXYNNHVHWSVPWP
PPHLKWZQGADGGXCZAXDTSPJVZOVCECDVHBWDLHLKNSAQYQTRMUGICFFWNAREBMMU
ZOKZQNUTFAFEDTZINHCQLJOAGLPGCSHELWEAUKMQYUWHKJZNVNAXNRWVMPMYQXWF
ERBEWQJHJXBOJLSRZPIRFOPJMPEGOQTBQZIMFKLHINQENGXIDKVUPMYCDZWEXDSC
JTJAEEZRGNEPPFTRTBUEEQEFTMSHLNYBVEDSOULYMBNCJYGOUIHHAQHVEUPSYHJC
HAQPFLTGBOPCFLQEPPCMEXSMDNNQBQTZPRKGPCGYQUYWMPFTHUKUKYUTWJVRGYOS
VTVUYIIWOZTDBOLQZLUOJZUFUILRSIRUCVHWXAVJROZMXZZZUWTQAEPQSHFPJBIV
BFFFGLSVZNMGYNCLOHYTTBOAIMYVEMDBA


Click here to read the complete article
Re: base26 Encoder/Decoder

<v0gkkj$2afqc$1@i2pn2.org>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=912&group=sci.crypt#912

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!.POSTED!not-for-mail
From: pollux@tilde.club (Stefan Claas)
Newsgroups: sci.crypt
Subject: Re: base26 Encoder/Decoder
Date: Fri, 26 Apr 2024 18:26:57 +0200
Organization: i2pn2 (i2pn.org)
Message-ID: <v0gkkj$2afqc$1@i2pn2.org>
References: <uoekm1$3rhsc$1@i2pn2.org>
<g74JN.751237$mUo.609280@fx08.ams4>
<v0dtc5$276id$1@i2pn2.org>
<v0dup1$276id$2@i2pn2.org>
<v0e01k$27aev$1@i2pn2.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 26 Apr 2024 16:26:59 -0000 (UTC)
Injection-Info: i2pn2.org;
logging-data="2441036"; mail-complaints-to="usenet@i2pn2.org";
posting-account="uWi4uQdALkj7ETOfPbhNXfz0+Ra/gM5z6/Fa40dJi9U";
X-Spam-Checker-Version: SpamAssassin 4.0.0
Finger: tilde.club/~pollux/
 by: Stefan Claas - Fri, 26 Apr 2024 16:26 UTC

Stefan Claas wrote:

> Stefan Claas wrote:
>
> [...]
>
> > Ok. everything is fine. :-)
>
> Example Unicode text encoded, with -l Parameter for line-length:
>
> SASHXTRHYGJXHJBMKMWLUPZPTINOBPKNFSPZNFBWWXLWUNFRSGZHPACWHNFRFTGR

Another example, an encrypted SMS message, done with Adiantum (FPE)
and base26 encoded and grouped in five letter groups.

JFMLM THPBQ RDZJD KTZEJ MOGKY BPCIY LTHNL FNSBA

This allows one to create SMS messages on a little offline notebook
and type it in an old mobile phone, or use, for example, Modem-Manager-GUI
under Linux, to send encrypted SMS messages.

P.S. Looks now like a Diana Cryptosystem message. ;-)

--
Regards
Stefan

Re: base26 Encoder/Decoder

<v0h02v$2aujl$1@i2pn2.org>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=913&group=sci.crypt#913

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!.POSTED!not-for-mail
From: pollux@tilde.club (Stefan Claas)
Newsgroups: sci.crypt
Subject: Re: base26 Encoder/Decoder
Date: Fri, 26 Apr 2024 21:42:23 +0200
Organization: i2pn2 (i2pn.org)
Message-ID: <v0h02v$2aujl$1@i2pn2.org>
References: <uoekm1$3rhsc$1@i2pn2.org>
<g74JN.751237$mUo.609280@fx08.ams4>
<v0dtc5$276id$1@i2pn2.org>
<v0dup1$276id$2@i2pn2.org>
<v0e01k$27aev$1@i2pn2.org>
<v0gkkj$2afqc$1@i2pn2.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 26 Apr 2024 19:42:23 -0000 (UTC)
Injection-Info: i2pn2.org;
logging-data="2456181"; mail-complaints-to="usenet@i2pn2.org";
posting-account="uWi4uQdALkj7ETOfPbhNXfz0+Ra/gM5z6/Fa40dJi9U";
X-Spam-Checker-Version: SpamAssassin 4.0.0
Finger: tilde.club/~pollux/
 by: Stefan Claas - Fri, 26 Apr 2024 19:42 UTC

Stefan Claas wrote:

> Stefan Claas wrote:
>
> > Stefan Claas wrote:
> >
> > [...]
> >
> > > Ok. everything is fine. :-)
> >
> > Example Unicode text encoded, with -l Parameter for line-length:
> >
> > SASHXTRHYGJXHJBMKMWLUPZPTINOBPKNFSPZNFBWWXLWUNFRSGZHPACWHNFRFTGR
>
> Another example, an encrypted SMS message, done with Adiantum (FPE)
> and base26 encoded and grouped in five letter groups.
>
> JFMLM THPBQ RDZJD KTZEJ MOGKY BPCIY LTHNL FNSBA
>
> This allows one to create SMS messages on a little offline notebook
> and type it in an old mobile phone, or use, for example, Modem-Manager-GUI
> under Linux, to send encrypted SMS messages.
>
> P.S. Looks now like a Diana Cryptosystem message. ;-)
>

Added Windows Release.

https://github.com/stefanclaas/base26

--
Regards
Stefan

Re: base26 Encoder/Decoder

<7P6XN.610386$oD2.194358@fx11.ams4>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=915&group=sci.crypt#915

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!i2pn.org!usenet.goja.nl.eu.org!3.eu.feeder.erje.net!feeder.erje.net!npeer.as286.net!npeer-ng0.as286.net!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!fx11.ams4.POSTED!not-for-mail
From: cri@cri.cri.invalid (Cri-Cri)
Subject: Re: base26 Encoder/Decoder
Newsgroups: sci.crypt
References: <uoekm1$3rhsc$1@i2pn2.org> <g74JN.751237$mUo.609280@fx08.ams4>
<v0dtc5$276id$1@i2pn2.org> <v0dup1$276id$2@i2pn2.org>
MIME-Version: 1.0
x-hc-9: yes
x-no-archive: yes
User-Agent: Pan/0.155 (Kherson; fc5a80b8)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Lines: 75
Message-ID: <7P6XN.610386$oD2.194358@fx11.ams4>
X-Complaints-To: abuse@easynews.com
Organization: Easynews - www.easynews.com
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will be unable to process your complaint properly.
Date: Sat, 27 Apr 2024 13:10:27 GMT
X-Received-Bytes: 2684
 by: Cri-Cri - Sat, 27 Apr 2024 13:10 UTC

On Thu, 25 Apr 2024 18:01:36 +0200, Stefan Claas wrote:

> Ok, I figured out that my Python3 code example is bad.

I took the example that French site had and made this, a very naive
approach to see what all the fuss is about. I used all strings and
converted to an fro integer where needed:

#---copy from here---------------------------
"""
1. get input string
2. convert this to base 10, where A=0
3. length of input string, gives you the exponent to use for each step
"""

# STEP #1
s = input('text: ').upper()
print(s)

# STEP #2
i = []
for c in s:
i.append(str(ord(c)-65).zfill(2))

# STEP #3
i.reverse()
r = []
for e in range(len(s)):
r.append(str(int(i[e])*26**e).zfill(2))
print(sum([int(t) for t in r]))
#---copy to here---------------------------

Example output:

$ python test_b26.py
text: dcode
DCODE
1415626 <<

That number can then be encoded into text, simplest is using one digit for
each letter:

''.join([chr(int(c)+65) for c in str(result)]) -> BEBFGCG

Whether or not this is the "correct" way of doing it, well, ...

"""
https://www.dcode.fr/base-26-cipher
To code DCODE, written in base 26, convert it to base 10:
D=3, C=2, O=14, D=3, E=4 which means that:
3×26⁴+2×26³+14×26²+3×26¹+4×26⁰=1415626 <<
"""

What I fail to understand in the original Base26 Python module is, why the
need for the things at the top:

NOM = 851
DENOM = 500

Looks like magic numbers to me.

The 'A' becoming zero problem my short example code handles such:

$ python test_b26.py
text: ape
APE
394
DJE

That French site said "0394". So, some corrections have to be added to my
naive code, I suppose it should have been ADJE as output, but I'll leave
that part as en exercise for my readers. ;)

--
Cri-Cri

Re: base26 Encoder/Decoder

<v0j5oi$2ddq4$1@i2pn2.org>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=916&group=sci.crypt#916

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!.POSTED!not-for-mail
From: pollux@tilde.club (Stefan Claas)
Newsgroups: sci.crypt
Subject: Re: base26 Encoder/Decoder
Date: Sat, 27 Apr 2024 17:31:29 +0200
Organization: i2pn2 (i2pn.org)
Message-ID: <v0j5oi$2ddq4$1@i2pn2.org>
References: <uoekm1$3rhsc$1@i2pn2.org>
<g74JN.751237$mUo.609280@fx08.ams4>
<v0dtc5$276id$1@i2pn2.org>
<v0dup1$276id$2@i2pn2.org>
<7P6XN.610386$oD2.194358@fx11.ams4>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 27 Apr 2024 15:31:30 -0000 (UTC)
Injection-Info: i2pn2.org;
logging-data="2537284"; mail-complaints-to="usenet@i2pn2.org";
posting-account="uWi4uQdALkj7ETOfPbhNXfz0+Ra/gM5z6/Fa40dJi9U";
Finger: tilde.club/~pollux/
X-Spam-Checker-Version: SpamAssassin 4.0.0
 by: Stefan Claas - Sat, 27 Apr 2024 15:31 UTC

Cri-Cri wrote:
> What I fail to understand in the original Base26 Python module is, why the
> need for the things at the top:
>
> NOM = 851
> DENOM = 500
>
> Looks like magic numbers to me.

I asked that myself and the answer, from AI, is:

In this code, NOM and DENOM stand for “numerator” and “denominator”. They are used to calculate the length of the output when the input is being encoded or decoded.

These calculations ensure that the length of the output is correctly rounded. The values of NOM and DENOM are chosen to reflect the ratio between the length of the input and the length of the output in the Base26 encoding.

In this case, NOM = 851 and DENOM = 500, which means that the length of the output is about 85.1% of the length of the input when the input is being encoded, and about 58.8%
of the length of the input when the input is being decoded.

--
Regards
Stefan

Re: base26 Encoder/Decoder

<oknXN.41708$XrN3.19814@fx01.ams4>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=918&group=sci.crypt#918

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!i2pn.org!nntp.comgw.net!peer02.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!fx01.ams4.POSTED!not-for-mail
From: cri@cri.cri.invalid (Cri-Cri)
Subject: Re: base26 Encoder/Decoder
Newsgroups: sci.crypt
References: <uoekm1$3rhsc$1@i2pn2.org> <g74JN.751237$mUo.609280@fx08.ams4>
<v0dtc5$276id$1@i2pn2.org> <v0dup1$276id$2@i2pn2.org>
<7P6XN.610386$oD2.194358@fx11.ams4> <v0j5oi$2ddq4$1@i2pn2.org>
MIME-Version: 1.0
x-hc-9: yes
x-no-archive: yes
User-Agent: Pan/0.155 (Kherson; fc5a80b8)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Lines: 22
Message-ID: <oknXN.41708$XrN3.19814@fx01.ams4>
X-Complaints-To: abuse@easynews.com
Organization: Easynews - www.easynews.com
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will be unable to process your complaint properly.
Date: Sun, 28 Apr 2024 07:58:12 GMT
X-Received-Bytes: 1693
 by: Cri-Cri - Sun, 28 Apr 2024 07:58 UTC

On Sat, 27 Apr 2024 17:31:29 +0200, Stefan Claas wrote:

> In this case, NOM = 851 and DENOM = 500, which means that the length of
> the output is about 85.1% of the length of the input when the input is
> being encoded, and about 58.8%
> of the length of the input when the input is being decoded.

Yeah, magic numbers. I don't like the concept of "about" here, since there
is nothing "about" about it. ;)

I suspect the concept of "about" is what is wrong with the implementation,
since it isn't the same as what you got with your code. Or both are flawed
and it should be something different altogether.

Why didn't you ask your friend to write the encoder/decoder for you from
scratch?

If you used this approach with your Rust code, you should be able to use
the same description to get it in whatever language you wanted.

--
Cri-Cri

Re: base26 Encoder/Decoder

<v0l0e2$2ff66$1@i2pn2.org>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=919&group=sci.crypt#919

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!.POSTED!not-for-mail
From: pollux@tilde.club (Stefan Claas)
Newsgroups: sci.crypt
Subject: Re: base26 Encoder/Decoder
Date: Sun, 28 Apr 2024 10:12:49 +0200
Organization: i2pn2 (i2pn.org)
Message-ID: <v0l0e2$2ff66$1@i2pn2.org>
References: <uoekm1$3rhsc$1@i2pn2.org>
<g74JN.751237$mUo.609280@fx08.ams4>
<v0dtc5$276id$1@i2pn2.org>
<v0dup1$276id$2@i2pn2.org>
<7P6XN.610386$oD2.194358@fx11.ams4>
<v0j5oi$2ddq4$1@i2pn2.org>
<oknXN.41708$XrN3.19814@fx01.ams4>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 28 Apr 2024 08:12:50 -0000 (UTC)
Injection-Info: i2pn2.org;
logging-data="2604230"; mail-complaints-to="usenet@i2pn2.org";
posting-account="uWi4uQdALkj7ETOfPbhNXfz0+Ra/gM5z6/Fa40dJi9U";
X-Spam-Checker-Version: SpamAssassin 4.0.0
Finger: tilde.club/~pollux/
 by: Stefan Claas - Sun, 28 Apr 2024 08:12 UTC

Cri-Cri wrote:

> On Sat, 27 Apr 2024 17:31:29 +0200, Stefan Claas wrote:
>
> > In this case, NOM = 851 and DENOM = 500, which means that the length of
> > the output is about 85.1% of the length of the input when the input is
> > being encoded, and about 58.8%
> > of the length of the input when the input is being decoded.
>
> Yeah, magic numbers. I don't like the concept of "about" here, since there
> is nothing "about" about it. ;)
>
> I suspect the concept of "about" is what is wrong with the implementation,
> since it isn't the same as what you got with your code. Or both are flawed
> and it should be something different altogether.
>
> Why didn't you ask your friend to write the encoder/decoder for you from
> scratch?
>
> If you used this approach with your Rust code, you should be able to use
> the same description to get it in whatever language you wanted.
>

My Rust version works 100% the same as the Python3 implementation from the PyPI
site and I needed an encoder/decoder that works with letters and not with digits,
like the French site does.

So, in the end people are free to choose which base26 approach they like to use,
because there is no standard, like an RFC, available.

If you use other base n encoders you will see, like in base64, base32, base58,
base85, base91 etc. the base n system relies always on letters (and some digits and special characters).

So I really see no problem here.

--
Regards
Stefan

Re: base26 Encoder/Decoder

<v0l10o$2ff66$2@i2pn2.org>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=920&group=sci.crypt#920

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!.POSTED!not-for-mail
From: pollux@tilde.club (Stefan Claas)
Newsgroups: sci.crypt
Subject: Re: base26 Encoder/Decoder
Date: Sun, 28 Apr 2024 10:22:46 +0200
Organization: i2pn2 (i2pn.org)
Message-ID: <v0l10o$2ff66$2@i2pn2.org>
References: <uoekm1$3rhsc$1@i2pn2.org>
<g74JN.751237$mUo.609280@fx08.ams4>
<v0dtc5$276id$1@i2pn2.org>
<v0dup1$276id$2@i2pn2.org>
<7P6XN.610386$oD2.194358@fx11.ams4>
<v0j5oi$2ddq4$1@i2pn2.org>
<oknXN.41708$XrN3.19814@fx01.ams4>
<v0l0e2$2ff66$1@i2pn2.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 28 Apr 2024 08:22:48 -0000 (UTC)
Injection-Info: i2pn2.org;
logging-data="2604230"; mail-complaints-to="usenet@i2pn2.org";
posting-account="uWi4uQdALkj7ETOfPbhNXfz0+Ra/gM5z6/Fa40dJi9U";
Finger: tilde.club/~pollux/
X-Spam-Checker-Version: SpamAssassin 4.0.0
 by: Stefan Claas - Sun, 28 Apr 2024 08:22 UTC

Stefan Claas wrote:

> If you use other base n encoders you will see, like in base64, base32, base58,
> base85, base91 etc. the base n system relies always on letters (and some digits and special characters).

I mean base encoders/decoders and not the base n system.

--
Regards
Stefan

Re: base26 Encoder/Decoder

<v0l9lf$10knh$1@dont-email.me>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=922&group=sci.crypt#922

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: klee@unibwm.de (Herbert Kleebauer)
Newsgroups: sci.crypt
Subject: Re: base26 Encoder/Decoder
Date: Sun, 28 Apr 2024 12:50:21 +0200
Organization: A noiseless patient Spider
Lines: 24
Message-ID: <v0l9lf$10knh$1@dont-email.me>
References: <uoekm1$3rhsc$1@i2pn2.org> <g74JN.751237$mUo.609280@fx08.ams4>
<v0dtc5$276id$1@i2pn2.org> <v0dup1$276id$2@i2pn2.org>
<7P6XN.610386$oD2.194358@fx11.ams4> <v0j5oi$2ddq4$1@i2pn2.org>
<oknXN.41708$XrN3.19814@fx01.ams4> <v0l0e2$2ff66$1@i2pn2.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 28 Apr 2024 12:50:23 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="869158275ee9a96dce983a1ad2f127e4";
logging-data="1069809"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX188x716jktVPx+27KyNdHq4gHnxbTOIulU="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:T7qGkDMD5/wRn4Yxnsy2ERx0aYM=
In-Reply-To: <v0l0e2$2ff66$1@i2pn2.org>
Content-Language: de-DE, en-US
 by: Herbert Kleebauer - Sun, 28 Apr 2024 10:50 UTC

On 28.04.2024 10:12, Stefan Claas wrote:

> So, in the end people are free to choose which base26 approach they like to use,
> because there is no standard, like an RFC, available.

But base26 doesn't make much sense. How big are the chunks of the
data input stream you encode in base26? If you encode each byte,
you need 2 digits for the byte, which is the same as base16 (hex format).
The same is true for 2 and 3 byte chunks (4 and 6 digits). Starting
with 4 byte chunks you can save one digit (7 instead of 8 for hex).
The next step is at 7 byte chunks (12 instead of 14 digits for hex).
But this is also the biggest size which you can handle with 64 bit
arithmetic. Starting with 11 byte chunks you can save 3 digits (19
instead of 22 for hex), but this already requires long number
arithmetic.

So, if you can't use base32 at least, better stay at base16 (hex format)
instead of base26. There is only a small advantage in size, but a big
disadvantage in computing time and you have to cope with padding if the
message length is not a multiple of the chunk length.

Re: base26 Encoder/Decoder

<v0lc45$2ft6v$1@i2pn2.org>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=923&group=sci.crypt#923

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!.POSTED!not-for-mail
From: pollux@tilde.club (Stefan Claas)
Newsgroups: sci.crypt
Subject: Re: base26 Encoder/Decoder
Date: Sun, 28 Apr 2024 13:32:20 +0200
Organization: i2pn2 (i2pn.org)
Message-ID: <v0lc45$2ft6v$1@i2pn2.org>
References: <uoekm1$3rhsc$1@i2pn2.org>
<g74JN.751237$mUo.609280@fx08.ams4>
<v0dtc5$276id$1@i2pn2.org>
<v0dup1$276id$2@i2pn2.org>
<7P6XN.610386$oD2.194358@fx11.ams4>
<v0j5oi$2ddq4$1@i2pn2.org>
<oknXN.41708$XrN3.19814@fx01.ams4>
<v0l0e2$2ff66$1@i2pn2.org>
<v0l9lf$10knh$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 28 Apr 2024 11:32:21 -0000 (UTC)
Injection-Info: i2pn2.org;
logging-data="2618591"; mail-complaints-to="usenet@i2pn2.org";
posting-account="uWi4uQdALkj7ETOfPbhNXfz0+Ra/gM5z6/Fa40dJi9U";
Finger: tilde.club/~pollux/
X-Spam-Checker-Version: SpamAssassin 4.0.0
 by: Stefan Claas - Sun, 28 Apr 2024 11:32 UTC

Herbert Kleebauer wrote:

> On 28.04.2024 10:12, Stefan Claas wrote:
>
> > So, in the end people are free to choose which base26 approach they like to use,
> > because there is no standard, like an RFC, available.
>
> But base26 doesn't make much sense. How big are the chunks of the
> data input stream you encode in base26? If you encode each byte,
> you need 2 digits for the byte, which is the same as base16 (hex format).
> The same is true for 2 and 3 byte chunks (4 and 6 digits). Starting
> with 4 byte chunks you can save one digit (7 instead of 8 for hex).
> The next step is at 7 byte chunks (12 instead of 14 digits for hex).
> But this is also the biggest size which you can handle with 64 bit
> arithmetic. Starting with 11 byte chunks you can save 3 digits (19
> instead of 22 for hex), but this already requires long number
> arithmetic.
>
> So, if you can't use base32 at least, better stay at base16 (hex format)
> instead of base26. There is only a small advantage in size, but a big
> disadvantage in computing time and you have to cope with padding if the
> message length is not a multiple of the chunk length.
>

Thanks for your reply, much appreciated!

Well, the reason why I like this base26 implementation is I can use it
for the Diana Cryptosystem or the Dein Star straddling checkerboard,
when using foreign languages or transmitting small binary blobs.

The second reason, I can use this also for typing in small encrypted messages
more easily, when using Format Preserving Encryption (FPE), in an old feature
phone, for sending text messages (SMS), when grouping the string as five letter
groups, to avoid typos.

Example:

$ echo -n 'Hello sci.crypt! :-)' | base16
48656c6c6f207363692e637279707421203a2d29

$ echo -n 'Hello sci.crypt! :-)' | base32
JBSWY3DPEBZWG2JOMNZHS4DUEEQDULJJ

$ echo -n 'Hello sci.crypt! :-)' | cbase32
91JPRV3F41SP6T9ECDS7JW3M44G3MB99

$ echo -n 'Hello sci.crypt! :-)' | base26 | ug -g
GNUKB WRRLQ QCISN UJYEH SKYLR PJHKG YPTEA

Hope this makes sense!

--
Regards
Stefan

Re: base26 Encoder/Decoder

<v0lcqi$2ft6v$2@i2pn2.org>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=924&group=sci.crypt#924

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!.POSTED!not-for-mail
From: pollux@tilde.club (Stefan Claas)
Newsgroups: sci.crypt
Subject: Re: base26 Encoder/Decoder
Date: Sun, 28 Apr 2024 13:44:17 +0200
Organization: i2pn2 (i2pn.org)
Message-ID: <v0lcqi$2ft6v$2@i2pn2.org>
References: <uoekm1$3rhsc$1@i2pn2.org>
<g74JN.751237$mUo.609280@fx08.ams4>
<v0dtc5$276id$1@i2pn2.org>
<v0dup1$276id$2@i2pn2.org>
<7P6XN.610386$oD2.194358@fx11.ams4>
<v0j5oi$2ddq4$1@i2pn2.org>
<oknXN.41708$XrN3.19814@fx01.ams4>
<v0l0e2$2ff66$1@i2pn2.org>
<v0l9lf$10knh$1@dont-email.me>
<v0lc45$2ft6v$1@i2pn2.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 28 Apr 2024 11:44:18 -0000 (UTC)
Injection-Info: i2pn2.org;
logging-data="2618591"; mail-complaints-to="usenet@i2pn2.org";
posting-account="uWi4uQdALkj7ETOfPbhNXfz0+Ra/gM5z6/Fa40dJi9U";
Finger: tilde.club/~pollux/
X-Spam-Checker-Version: SpamAssassin 4.0.0
 by: Stefan Claas - Sun, 28 Apr 2024 11:44 UTC

Stefan Claas wrote:

> Example:
>
> $ echo -n 'Hello sci.crypt! :-)' | base16
> 48656c6c6f207363692e637279707421203a2d29
>
> $ echo -n 'Hello sci.crypt! :-)' | base32
> JBSWY3DPEBZWG2JOMNZHS4DUEEQDULJJ
>
> $ echo -n 'Hello sci.crypt! :-)' | cbase32
> 91JPRV3F41SP6T9ECDS7JW3M44G3MB99
>
> $ echo -n 'Hello sci.crypt! :-)' | base26 | ug -g
> GNUKB WRRLQ QCISN UJYEH SKYLR PJHKG YPTEA
>
> Hope this makes sense!
>

P.S I tested this yesterday also with my Telefax machine and
freely available OCR software and had no errors, with base26.

--
Regards
Stefan

Re: base26 Encoder/Decoder

<v0lgs1$125o7$1@dont-email.me>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=925&group=sci.crypt#925

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: klee@unibwm.de (Herbert Kleebauer)
Newsgroups: sci.crypt
Subject: Re: base26 Encoder/Decoder
Date: Sun, 28 Apr 2024 14:53:19 +0200
Organization: A noiseless patient Spider
Lines: 67
Message-ID: <v0lgs1$125o7$1@dont-email.me>
References: <uoekm1$3rhsc$1@i2pn2.org> <g74JN.751237$mUo.609280@fx08.ams4>
<v0dtc5$276id$1@i2pn2.org> <v0dup1$276id$2@i2pn2.org>
<7P6XN.610386$oD2.194358@fx11.ams4> <v0j5oi$2ddq4$1@i2pn2.org>
<oknXN.41708$XrN3.19814@fx01.ams4> <v0l0e2$2ff66$1@i2pn2.org>
<v0l9lf$10knh$1@dont-email.me> <v0lc45$2ft6v$1@i2pn2.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 28 Apr 2024 14:53:21 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="869158275ee9a96dce983a1ad2f127e4";
logging-data="1120007"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX193/z+EtLtAZD9dNvDS1nqlbJSy9NccQ0w="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:9eygK48Uv8XAalliepShiVZnYbA=
Content-Language: de-DE, en-US
In-Reply-To: <v0lc45$2ft6v$1@i2pn2.org>
 by: Herbert Kleebauer - Sun, 28 Apr 2024 12:53 UTC

On 28.04.2024 13:32, Stefan Claas wrote:

> $ echo -n 'Hello sci.crypt! :-)' | base16
> 48656c6c6f207363692e637279707421203a2d29

> $ echo -n 'Hello sci.crypt! :-)' | base26 | ug -g
> GNUKB WRRLQ QCISN UJYEH SKYLR PJHKG YPTEA

I still don't understand it. In this example you have
a 20 byte String: Hello sci.crypt! :-)

The base16 (hex) conversion is trivial: you take a
single byte of the input string and replace it by
2 hex characters. No padding necessary, because the
chunk length is 1 byte and so the string length is
always a multiple of the chunk length.

But how does your base26 coding work. Take you four bytes
of the input string and then convert this 32 bit number
to base26 resulting in a 7 digit base26 number? There
are 5 of this 4 byte chunks which gives a total of 35
base26 digits. But how do you handle padding if the
input string length is not a multiple of 4?

Or do you treat the complete string as a single number
0x48656c6c6f207363692e637279707421203a2d29 and convert
this 160 bit number to a single base26 number? This would
also result in a 35 digit base26 number, but would
require long number arithmetic and consume a lot of
computing power (suppose the input string is 1 MByte or
even 1 GByte). In this case you don't have a problem
with padding but with leading zeroes.

But I still don't understand the advantage over base16.
If you only can use A-Z as transferable digits, you can
use an alternative to the standard hex encoding:

0 A or Q
1 B or R
2 C or S
3 D or T
4 E or U
5 F or V
6 G or W
7 H or X
8 I or Y
9 J or Z
10 K
11 L
12 M
13 N
14 O
15 P

Because there are two ways to encode 0-9, you
can use this to send a second data stream. If
A-J is used a 0 bit transferred and if Q-Z is used
a 1 bit is transferred on this second channel. You
can use this for example for a check sum or an
error correcting code.

Re: base26 Encoder/Decoder

<v0ljtg$2g491$1@i2pn2.org>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=926&group=sci.crypt#926

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!.POSTED!not-for-mail
From: pollux@tilde.club (Stefan Claas)
Newsgroups: sci.crypt
Subject: Re: base26 Encoder/Decoder
Date: Sun, 28 Apr 2024 15:45:19 +0200
Organization: i2pn2 (i2pn.org)
Message-ID: <v0ljtg$2g491$1@i2pn2.org>
References: <uoekm1$3rhsc$1@i2pn2.org>
<g74JN.751237$mUo.609280@fx08.ams4>
<v0dtc5$276id$1@i2pn2.org>
<v0dup1$276id$2@i2pn2.org>
<7P6XN.610386$oD2.194358@fx11.ams4>
<v0j5oi$2ddq4$1@i2pn2.org>
<oknXN.41708$XrN3.19814@fx01.ams4>
<v0l0e2$2ff66$1@i2pn2.org>
<v0l9lf$10knh$1@dont-email.me>
<v0lc45$2ft6v$1@i2pn2.org>
<v0lgs1$125o7$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 28 Apr 2024 13:45:20 -0000 (UTC)
Injection-Info: i2pn2.org;
logging-data="2625825"; mail-complaints-to="usenet@i2pn2.org";
posting-account="uWi4uQdALkj7ETOfPbhNXfz0+Ra/gM5z6/Fa40dJi9U";
Finger: tilde.club/~pollux/
X-Spam-Checker-Version: SpamAssassin 4.0.0
 by: Stefan Claas - Sun, 28 Apr 2024 13:45 UTC

Herbert Kleebauer wrote:

> But how does your base26 coding work. Take you four bytes
> of the input string and then convert this 32 bit number
> to base26 resulting in a 7 digit base26 number? There
> are 5 of this 4 byte chunks which gives a total of 35
> base26 digits. But how do you handle padding if the
> input string length is not a multiple of 4?
>
> Or do you treat the complete string as a single number
> 0x48656c6c6f207363692e637279707421203a2d29 and convert
> this 160 bit number to a single base26 number? This would
> also result in a 35 digit base26 number, but would
> require long number arithmetic and consume a lot of
> computing power (suppose the input string is 1 MByte or
> even 1 GByte). In this case you don't have a problem
> with padding but with leading zeroes.

Sorry (I get a red face ...) The Rust code is derived
from the Python3 library without thinking to much about
the logic behind it, so I can't answer your questions
correctly!

For me it was sufficient that the code works, as expected
for small payloads, when comparing the output with the
Python3 library. The program is not intended for encoding
large (binary) payloads and only meant as a helper program
for the Diana Cryptosystem or Dein Star etc.

I am no programmer like you guys are but always appreciate
the comments! And I was in need for a binary program solution,
instead of using Python scripts, which I do not like.

> But I still don't understand the advantage over base16.
> If you only can use A-Z as transferable digits, you can
> use an alternative to the standard hex encoding:
>
> 0 A or Q
> 1 B or R
> 2 C or S
> 3 D or T
> 4 E or U
> 5 F or V
> 6 G or W
> 7 H or X
> 8 I or Y
> 9 J or Z
> 10 K
> 11 L
> 12 M
> 13 N
> 14 O
> 15 P
>
> Because there are two ways to encode 0-9, you
> can use this to send a second data stream. If
> A-J is used a 0 bit transferred and if Q-Z is used
> a 1 bit is transferred on this second channel. You
> can use this for example for a check sum or an
> error correcting code.

Thank you for explaining!

--
Regards
Stefan

Re: base26 Encoder/Decoder

<v0lo29$2gbvu$1@i2pn2.org>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=928&group=sci.crypt#928

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!.POSTED!not-for-mail
From: pollux@tilde.club (Stefan Claas)
Newsgroups: sci.crypt
Subject: Re: base26 Encoder/Decoder
Date: Sun, 28 Apr 2024 16:56:08 +0200
Organization: i2pn2 (i2pn.org)
Message-ID: <v0lo29$2gbvu$1@i2pn2.org>
References: <uoekm1$3rhsc$1@i2pn2.org>
<g74JN.751237$mUo.609280@fx08.ams4>
<v0dtc5$276id$1@i2pn2.org>
<v0dup1$276id$2@i2pn2.org>
<7P6XN.610386$oD2.194358@fx11.ams4>
<v0j5oi$2ddq4$1@i2pn2.org>
<oknXN.41708$XrN3.19814@fx01.ams4>
<v0l0e2$2ff66$1@i2pn2.org>
<v0l9lf$10knh$1@dont-email.me>
<v0lc45$2ft6v$1@i2pn2.org>
<v0lgs1$125o7$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 28 Apr 2024 14:56:09 -0000 (UTC)
Injection-Info: i2pn2.org;
logging-data="2633726"; mail-complaints-to="usenet@i2pn2.org";
posting-account="uWi4uQdALkj7ETOfPbhNXfz0+Ra/gM5z6/Fa40dJi9U";
Finger: tilde.club/~pollux/
X-Spam-Checker-Version: SpamAssassin 4.0.0
 by: Stefan Claas - Sun, 28 Apr 2024 14:56 UTC

Herbert Kleebauer wrote:

> If you only can use A-Z as transferable digits, you can
> use an alternative to the standard hex encoding:
>
> 0 A or Q
> 1 B or R
> 2 C or S
> 3 D or T
> 4 E or U
> 5 F or V
> 6 G or W
> 7 H or X
> 8 I or Y
> 9 J or Z
> 10 K
> 11 L
> 12 M
> 13 N
> 14 O
> 15 P
>
> Because there are two ways to encode 0-9, you
> can use this to send a second data stream. If
> A-J is used a 0 bit transferred and if Q-Z is used
> a 1 bit is transferred on this second channel. You
> can use this for example for a check sum or an
> error correcting code.

Would this be the correct output for A-Z encoding?

$ echo -n 'sci.crypt is cool! :-)' | ./az
XDGTWJCOWDHSXJHQXECQWJHTSAGTWPGPWMCRSADKSNCZ

$ echo -n 'sci.crypt is cool! :-)' | base16
7363692e637279707420697320636f6f6c21203a2d29

--
Regards
Stefan

Re: base26 Encoder/Decoder

<v0om6r$2juq5$1@i2pn2.org>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=931&group=sci.crypt#931

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!.POSTED!not-for-mail
From: pollux@tilde.club (Stefan Claas)
Newsgroups: sci.crypt
Subject: Re: base26 Encoder/Decoder
Date: Mon, 29 Apr 2024 19:42:50 +0200
Organization: i2pn2 (i2pn.org)
Message-ID: <v0om6r$2juq5$1@i2pn2.org>
References: <uoekm1$3rhsc$1@i2pn2.org>
<g74JN.751237$mUo.609280@fx08.ams4>
<v0dtc5$276id$1@i2pn2.org>
<v0dup1$276id$2@i2pn2.org>
<7P6XN.610386$oD2.194358@fx11.ams4>
<v0j5oi$2ddq4$1@i2pn2.org>
<oknXN.41708$XrN3.19814@fx01.ams4>
<v0l0e2$2ff66$1@i2pn2.org>
<v0l9lf$10knh$1@dont-email.me>
<v0lc45$2ft6v$1@i2pn2.org>
<v0lgs1$125o7$1@dont-email.me>
<v0lo29$2gbvu$1@i2pn2.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 29 Apr 2024 17:42:52 -0000 (UTC)
Injection-Info: i2pn2.org;
logging-data="2751301"; mail-complaints-to="usenet@i2pn2.org";
posting-account="uWi4uQdALkj7ETOfPbhNXfz0+Ra/gM5z6/Fa40dJi9U";
Finger: tilde.club/~pollux/
X-Spam-Checker-Version: SpamAssassin 4.0.0
 by: Stefan Claas - Mon, 29 Apr 2024 17:42 UTC

Stefan Claas wrote:

> Herbert Kleebauer wrote:
>
> > If you only can use A-Z as transferable digits, you can
> > use an alternative to the standard hex encoding:
> >
> > 0 A or Q
> > 1 B or R
> > 2 C or S
> > 3 D or T
> > 4 E or U
> > 5 F or V
> > 6 G or W
> > 7 H or X
> > 8 I or Y
> > 9 J or Z
> > 10 K
> > 11 L
> > 12 M
> > 13 N
> > 14 O
> > 15 P
> >
> > Because there are two ways to encode 0-9, you
> > can use this to send a second data stream. If
> > A-J is used a 0 bit transferred and if Q-Z is used
> > a 1 bit is transferred on this second channel. You
> > can use this for example for a check sum or an
> > error correcting code.
>
> Would this be the correct output for A-Z encoding?
>
> $ echo -n 'sci.crypt is cool! :-)' | ./az
> XDGTWJCOWDHSXJHQXECQWJHTSAGTWPGPWMCRSADKSNCZ
>
> $ echo -n 'sci.crypt is cool! :-)' | base16
> 7363692e637279707420697320636f6f6c21203a2d29

I would say yes, because the table matches the hex
values and the encoder/decoder is also fast enough
to handle 1 GB of data, for example.

Well, a new tool to play with, thanks to Herbert's
suggestion. :-)

--
Regards
Stefan

Re: az - Telefax/OCR Test (was: base26 Encoder/Decoder)

<v0r02u$2mfpi$1@i2pn2.org>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=937&group=sci.crypt#937

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!.POSTED!not-for-mail
From: pollux@tilde.club (Stefan Claas)
Newsgroups: sci.crypt
Subject: Re: az - Telefax/OCR Test (was: base26 Encoder/Decoder)
Date: Tue, 30 Apr 2024 16:43:42 +0200
Organization: i2pn2 (i2pn.org)
Message-ID: <v0r02u$2mfpi$1@i2pn2.org>
References: <uoekm1$3rhsc$1@i2pn2.org>
<g74JN.751237$mUo.609280@fx08.ams4>
<v0dtc5$276id$1@i2pn2.org>
<v0dup1$276id$2@i2pn2.org>
<7P6XN.610386$oD2.194358@fx11.ams4>
<v0j5oi$2ddq4$1@i2pn2.org>
<oknXN.41708$XrN3.19814@fx01.ams4>
<v0l0e2$2ff66$1@i2pn2.org>
<v0l9lf$10knh$1@dont-email.me>
<v0lc45$2ft6v$1@i2pn2.org>
<v0lgs1$125o7$1@dont-email.me>
<v0lo29$2gbvu$1@i2pn2.org>
<v0om6r$2juq5$1@i2pn2.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 30 Apr 2024 14:43:42 -0000 (UTC)
Injection-Info: i2pn2.org;
logging-data="2834226"; mail-complaints-to="usenet@i2pn2.org";
posting-account="uWi4uQdALkj7ETOfPbhNXfz0+Ra/gM5z6/Fa40dJi9U";
X-Spam-Checker-Version: SpamAssassin 4.0.0
Finger: tilde.club/~pollux/
 by: Stefan Claas - Tue, 30 Apr 2024 14:43 UTC

Stefan Claas wrote:
> Well, a new tool to play with, thanks to Herbert's
> suggestion. :-)

Ok. I created 1000 random bytes with OpenSSL, converted
them with az, with a line length of 50 characters set.

Then the file was opened in LibreOffice, with the settings
of 16 pt, Liberation Mono font and saved as .pdf. With
these settings, 2000 characters fit exactly in an A4 page.

To send a Telefax to my Fax machine I used an online
service, where I have a paid account.

Once the Fax was received I scanned it with 200 dpi and
saved it as .png. For OCR translation I used Boxsoft Free
OCR, for Windows, because Tesseract gave me more errors
in the past. I only had one error in one line, which showed
at the beginning a dot and space, which I removed manually.

Again I used az to decode the file and a diff showed no
differences in the binaries.

Here is a URL with the files, in case someone likes to look
at them:

<https://1drv.ms/f/s!Agn0bI_1Rm5ehnT1oJLYw5HafvGB?e=R6i09c>

--
Regards
Stefan

Re: az - Telefax/OCR Test

<v0rgfd$2l2q1$1@dont-email.me>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=938&group=sci.crypt#938

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: klee@unibwm.de (Herbert Kleebauer)
Newsgroups: sci.crypt
Subject: Re: az - Telefax/OCR Test
Date: Tue, 30 Apr 2024 21:24:54 +0200
Organization: A noiseless patient Spider
Lines: 43
Message-ID: <v0rgfd$2l2q1$1@dont-email.me>
References: <uoekm1$3rhsc$1@i2pn2.org> <g74JN.751237$mUo.609280@fx08.ams4>
<v0dtc5$276id$1@i2pn2.org> <v0dup1$276id$2@i2pn2.org>
<7P6XN.610386$oD2.194358@fx11.ams4> <v0j5oi$2ddq4$1@i2pn2.org>
<oknXN.41708$XrN3.19814@fx01.ams4> <v0l0e2$2ff66$1@i2pn2.org>
<v0l9lf$10knh$1@dont-email.me> <v0lc45$2ft6v$1@i2pn2.org>
<v0lgs1$125o7$1@dont-email.me> <v0lo29$2gbvu$1@i2pn2.org>
<v0om6r$2juq5$1@i2pn2.org> <v0r02u$2mfpi$1@i2pn2.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 30 Apr 2024 21:23:25 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="5a2c0034ca102422213d9880f7eee2c6";
logging-data="2788161"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/nLBocr/aXeIjVjuu1uxBz9Q0nUMVyzIM="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:9jRJMUwBXWanD27StNAKY9sTqlM=
Content-Language: en-US
In-Reply-To: <v0r02u$2mfpi$1@i2pn2.org>
 by: Herbert Kleebauer - Tue, 30 Apr 2024 19:24 UTC

On 30.04.2024 16:43, Stefan Claas wrote:

> Ok. I created 1000 random bytes with OpenSSL, converted
> them with az, with a line length of 50 characters set.
>
> Then the file was opened in LibreOffice, with the settings
> of 16 pt, Liberation Mono font and saved as .pdf. With
> these settings, 2000 characters fit exactly in an A4 page.

But QR code exists since a long time. This is also
a pdf with one A4 page, but if you decode it, you get
a 10 kByte jpg, which is 10x the amount of data of your
text page.

http://onlib.de/temp/demo.pdf

And if you have more data to transfer, use a QR code
video, for example:

http://onlib.de/temp/qr.mp4

You can upload your video to youtube, so anybody can
download and decode it.

If you decode the QR code video, you will get a zip file
with some pictures. The password for the pictures is:
"The quick brown fox jump"

And if you want to encrypt or hide the video, take a
look at:

http://onlib.de/pub/pfv/

For example, the video:

http://onlib.de/pub/pfv/demo.mp4

has one unencrypted video (so you can just click the
above link and watch the unencrypted video) and two
encrypted videos and one zip file which you can only
access if you download the file and enter the correct
password.

Re: az - Telefax/OCR Test

<v0suh6$2opr6$1@i2pn2.org>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=939&group=sci.crypt#939

  copy link   Newsgroups: sci.crypt
Path: i2pn2.org!.POSTED!not-for-mail
From: pollux@tilde.club (Stefan Claas)
Newsgroups: sci.crypt
Subject: Re: az - Telefax/OCR Test
Date: Wed, 1 May 2024 10:29:26 +0200
Organization: i2pn2 (i2pn.org)
Message-ID: <v0suh6$2opr6$1@i2pn2.org>
References: <uoekm1$3rhsc$1@i2pn2.org>
<g74JN.751237$mUo.609280@fx08.ams4>
<v0dtc5$276id$1@i2pn2.org>
<v0dup1$276id$2@i2pn2.org>
<7P6XN.610386$oD2.194358@fx11.ams4>
<v0j5oi$2ddq4$1@i2pn2.org>
<oknXN.41708$XrN3.19814@fx01.ams4>
<v0l0e2$2ff66$1@i2pn2.org>
<v0l9lf$10knh$1@dont-email.me>
<v0lc45$2ft6v$1@i2pn2.org>
<v0lgs1$125o7$1@dont-email.me>
<v0lo29$2gbvu$1@i2pn2.org>
<v0om6r$2juq5$1@i2pn2.org>
<v0r02u$2mfpi$1@i2pn2.org>
<v0rgfd$2l2q1$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 1 May 2024 08:29:26 -0000 (UTC)
Injection-Info: i2pn2.org;
logging-data="2910054"; mail-complaints-to="usenet@i2pn2.org";
posting-account="uWi4uQdALkj7ETOfPbhNXfz0+Ra/gM5z6/Fa40dJi9U";
Finger: tilde.club/~pollux/
X-Spam-Checker-Version: SpamAssassin 4.0.0
 by: Stefan Claas - Wed, 1 May 2024 08:29 UTC

Herbert Kleebauer wrote:

> On 30.04.2024 16:43, Stefan Claas wrote:
>
> > Ok. I created 1000 random bytes with OpenSSL, converted
> > them with az, with a line length of 50 characters set.
> >
> > Then the file was opened in LibreOffice, with the settings
> > of 16 pt, Liberation Mono font and saved as .pdf. With
> > these settings, 2000 characters fit exactly in an A4 page.
>
> But QR code exists since a long time. This is also
> a pdf with one A4 page, but if you decode it, you get
> a 10 kByte jpg, which is 10x the amount of data of your
> text page.
>
> http://onlib.de/temp/demo.pdf
>
> And if you have more data to transfer, use a QR code
> video, for example:
>
> http://onlib.de/temp/qr.mp4
>
> You can upload your video to youtube, so anybody can
> download and decode it.
>
> If you decode the QR code video, you will get a zip file
> with some pictures. The password for the pictures is:
> "The quick brown fox jump"
>

I decoded the image and had one error in the certutil file
(one byte missing in one line at the end). The video was
also a certutil file, but with to many errors, so it wrote
a bad .mp4, which I could not decode.

How did you manage to precisely insert 12 QR-Codes nicely on
an A4 page?

--
Regards
Stefan


devel / sci.crypt / Re: base26 Encoder/Decoder

Pages:12
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor