Mindoo Blog - Cutting edge technologies - About Java, Lotus Notes and iPhone

  • New APIs for Domino JNA project, now available for XPages development

    Karsten Lehmann  16 January 2017 08:21:26
    It took some time (mainly because I was very busy and my main use case for the project is not XPages), but now the Domino JNA project is available for XPages development.

    That means that there is an XPages Extensibility API plugin available in the project's release section on Github that can be installed both in Domino Designer and on the Domino R9 server to use the API in your own applications.

    After installation, the API classes are available in SSJS and Java code including API source code.
    Since they are integrated with the JSF lifecycle, memory management is automatically handled by the plugin. That means that code using the API does not have to be wrapped in NotesGC.runWithAutoGC() blocks to automatically recycle allocated C handles and memory after a HTTP request.

    If you want to build your own release of the project (or of your own fork), please take a look at the section "Using Domino JNA in XPages applications". The Maven build has been tested on macOS and Windows.

    New features

    Tons of new features have been added to the project during the last months. It's difficult to keep up with test cases and extend code documentation.

    Here are a few highlights:
    • new APIs to use native NSF transactions (atomically create/modify/delete multiple documents in a database, see the Transactions class for known issues/limitations)
    • new APIs to read the ECL for a specific user
    • API to let NSF quickly filter a number of documents with a formula (not just the whole database as in IBM's Java API): NotesIDTable.filter(NotesDatabase db, String formula)
    • support added to direct attachment streaming to quickly skip a number of bytes (can be used to implement partial downloads via Accept-Ranges HTTP header, restricted to uncompressed attachments)
    • APIs to read/write database options with more than 100 available option constants (IBM's Java API contains only 13 of them)
    • Reading selected view rows specified as an ID table now also works on remote servers (use NotesCollection.updateFilters() to push your SelectedList ID table changes to remote servers before reading data)
    • Performance enhancements when inserting many IDs to a NotesIDTable

    To achieve the new functionality, lots of undocumented C API methods have been used that IBM should really add to the public API:
    • NIFReadEntriesExt
    • NIFIsNoteInView
    • NIFIsUpdateInProgress
    • NIFGetIDTableExtended
    • NIFCollectionUpToDate
    • NIFUpdateFilters
    • NIFIsTimeVariantView
    • IDScanBack
    • IDInsertRange
    • IDTableDifferences
    • IDTableReplaceExtended
    • ECLGetListCapabilities
    • NSFSearchExtended3
    • NSFDbGetOptionsExt
    • NSFDbSetOptionsExt
    • NSFTransactionBegin
    • NSFTransactionCommit
    • NSFTransactionRollback
    • extended FIND_XXX flags e.g. FIND_CATEGORY_MATCH to look up category rows in views
    • more than 100 DBOPTBIT_XXX constants to read/write database options

    Please let me know if there are any problems using the API.

    Comments

    1Michael Bourak  16.01.2017 09:50:22  New APIs for Domino JNA project, now available for XPages development

    Karsten for President !

    More seriously, this projet is simply amazing !

    It can truely change your life as a modern domino developer and make some nearly impossible things a snap.

    Really, Really, Thanks a lot !

    2Stephan Koops  16.03.2017 10:31:15  Is possible to run not as OSGI-Pluign?

    Hi, this project looks very cool.

    When you want to use Domino JNA in Java Code from XPages, it is required to be added as OSGI plugin, or could I put the JARs and so on into a nsf?

    Do you now if I have to change the java.pol for JNA native.

    3Karsten Lehmann  16.03.2017 10:37:19  New APIs for Domino JNA project, now available for XPages development

    Hi!

    I think Sven Hasselbach added the Domino JNA JAR and its dependencies to the NSF before I had finished the plugin build process. He described the steps here:

    { Link }

    I would recommend using the plugin because it makes your code simpler. For example the code does not been to be wrapped in NotesGC.runWithAutoGC blocks, because I already do this in the plugin for each HTTP request.

    And I am sure that you need to add more lines to java.pol than Sven mentioned in his post. That should be automatically handled by the plugin code via AccessController.doPrivileged calls in various places.

    4Stephan Koops  16.03.2017 10:58:43  Re: Domin JNA in nsf

    Thanks for the quick answer.

    One thing, is what the developers want, and the other thing is, what the admins of our customers say, e.g. "no OSGI" or "no changes in java.pol". For the last stuff we could implement the slow way with Notes.jar as alternative.

    Thanks for the hints about NotesGC.runWithAutoGC and the doPrivileged.

    5Karsten Lehmann  16.03.2017 11:38:31  New APIs for Domino JNA project, now available for XPages development

    I am not sure if its possible to use Domino JNA in multiple databases that way, because AFAIK the JNA dll can only be loaded once per JVM. In that case, you would need to copy the jna.dll to jvm/lib/ext so that it gets loaded by the JVM base classloader.

    6Stephan Koops  16.03.2017 16:21:29  Thanks for the next hint

    Thanks for the hint about jna.dll. We will have a look.

    7Stephan Koops  04.04.2017 10:55:03  Could not read entries form some views, other views have no problem.

    Hi,

    I want to read view entries with Domino JNA, in the first step with getAllEntries(). With the Notes.jar I get always the expected results, but with Domino JNA I giot sometimes no results. It works fine with your example database (fakenames.nsf), also with my local names.nsf, but I have problems with self created database with self created views, created with Java API or with Domino Designer. I tried databases created with Notes.jar-API and with the Domino Designer. Do you have any ideas?

    8Stephan Koops  04.04.2017 11:05:26  Re: Could not read entries form some views, other views have no problem.

    I forgot: The code is started in a JUnit test.

    9Stephan Koops  04.04.2017 11:22:05  Re: Could not read entries form some views, other views have no problem.

    Now I get it working after two days of trying around: I removed all reader / author items. Now the question is: Why could I read exactly the same documents with Notes.jar, but not with Domino JNA?

    10Karsten Lehmann  04.04.2017 11:33:58  New APIs for Domino JNA project, now available for XPages development

    Hi!

    I am not sure what is causing this issue.

    The NotesDatabase class has several constructors to decide which identity you want to use to open the database.

    E.g.

    NotesDatabase(Session session, String server, String filePath)

    =uses the effective username of the session object and lets Domino compute a NAMES_LIST structure to be used to open the DB

    NotesDatabase(Session session, String server, String filePath, String asUserCanonical)

    =uses the specified Domino user and lets Domino compute a NAMES_LIST structure to be used to open the DB

    NotesDatabase(Session session, String server, String filePath, List<String> namesForNamesList)

    =we write our own NAMES_LIST structure here, so you can combine any username/wildcard/groups/roles you like to let Domino check for reader/author access

    and finally

    NotesDatabase(Session session, String server, String filePath, (String) null)

    =opens the database as the server

    There was a memory alignment bug in 0.9.2 and earlier versions for Linux/64 that might prevented the method from working properly, but I would expect an ERR 582 on database open instead of not returning all data.

    I fixed that in the latest 0.9.3.

    11Stephan Koops  04.04.2017 13:48:33  Re: Could not read entries form some views, other views have no problem.

    FYI: I had a detailed look into the names fields: There were empty reader fields (empty means ""): Maybe Notes.jar also add's "" to the namesList.

    12Stephan Koops  04.04.2017 13:48:53  New APIs for Domino JNA project, now available for XPages development

    I have some improvement proposals:

    * use for NotesCollection the name View. Evereybody know it with this name. And every Java developer will search for database.getView(viewName) or openView(viewName).

    * some pom.xml improvements to reduce dependency to operating system

    * improve exception message: Give hint what failed in NotesErrorUtil.checkError()

    * if you use interfaces, you have the possibility to let the most stuff fall back to Notes.jar, e.g. when an application runs on a supported envirnoment and on an unsupported environment.

    I also have the problem that some JUnit tests fail in the notes client.

    Should I create a pull request? I think it is useful, when we have a skype call to have a look into the code and have maybe a small discussion about it before creating the pull request.

    13Stephan Koops  04.04.2017 17:00:06  does Domino JNA detect unsupported environment?

    Does Domino JNA already detecty automaticly if it runs in an unsupported environment like AIX? Otherwise I will add it.

    14Karsten Lehmann  04.04.2017 17:02:26  New APIs for Domino JNA project, now available for XPages development

    No, I don't think so.

    com.mindoo.domino.jna.internal.NotesJNAContext.getNotesAPI() would be a good place.

    Let's continue this in the issues list of the Github project. That makes it easier to track progress on todos and we have code formatting.

    15Patrick Kwinten  03.10.2023 12:31:07  New APIs for Domino JNA project, now available for XPages development

    Unfortunately, when trying to open a notesdatabase in xpages it stumbles at the following:

    NotesDatabase db = new NotesDatabase(ExtLibUtil.getCurrentSession(), "", fakenamesPath);

    in log.nsf I read:

    HTTP JVM: java.lang.IllegalStateException: Thread is not enabled for auto GC. Either run your code via NotesGC.runWithAutoGC(Callable) or via try-with-resources on the object returned by NotesGC.initThread().

    I am running the 0.9.48 osgi plugin version.

    It seems that memory management is NOT automatically handled by the plugin.

    16SwVyhbrkpER    dLtBaqNikXDMThv

    17BjZsMCVbiSTAAj    bqKpyzcpRsxt

    18jndIXBReHsclSO    tpEiVkqXgQIdm

    19UFyhGFMA    TrRGrnOLNVsF

    20nwmHzqyFpdAwT    jiUXalqENuyp

    21iXMHvzCctERfls    qyVxwMKEQUSH

    22MTxMsfUmW    jVsPHXsehToU

    23wOoGaiFPSzyAX    qEwQTZCmVbaJO

    24KUzzRZHQoWmET    fjhuVWXFT

    25KNYQEuyUJqTzyEt    NmmghvxMSH

    26aVQudoAiurN    EGqrZAHphhrN

    27jYvGIbMRnClrPg    mUbkXeYvv

    28BZEgumMNKwoeil    iYNcBjLv

    29jGYfqeXguwXe    PXXMjZQjvgkcOvd

    30StdSdaNQn    WXetQfcQZNoHy

    31xlLKETipDhpG    FONrAjjfZVllm

    32tfhoSuOqHe    tJmpttosK

    33TjmwrytpqLwAEj    EPeqIUpFKtt

    34YueFdBRo    agoUJAhAeWPImsw

    35TObmVsEJbFvABv    OTXziadIYFCS

    36nkQdKFGb    oQcSEVhUWu

    37JpBzmgHtmn    PkqPkFuy

    38zexLhaFxEaFMlR    sZuQIbROR

    39qpkNlBobpxHJlDU    lEXkfQvQO

    40ojGNgQuCbJaKsoM    JJxeRcavCfwv

    41LcugrJAKLAVExL    rcUtrOnIQdxUWpb

    42NBAYOyFpcce    ipilWLfyWVaOne

    43jNGVhCXC    AsMQdaRHJ

    44lCBdVhlucjRjcD    QwUfgBTOGYhgCs

    45oaNEldynYH    EYfSKyRUbnJE

    46cTmkqlLWG    kEqOOUNojWWcgOJ

    47ksnHbjoUQBv    nNXpQMkIqzyf

    48eMWbiRcqTA    URinPPnTvi

    49HKNVmMwbePSei    apxLwzmySDJAsHW

    50gRMFbsHru    lmlXzbbCtDz

    51PqedcrdWh    tGMbiNiTZESm

    52MiJDgesy    iPSDXglMjN

    53AJodAlIcFxcdk    uiaFJXeu

    54ywpJEIOEQ    iWyyNRCZVnT

    55WfUXoxSgkRTT    bggOHJJVD

    56KffETvFwaFwkp    XQJaktiMcuAx

    57cwrfFgvkbvoqfe    wrZdqjCjXX

    58DqvqEYigo    kpMxgtfvRwMyZTQ

    59tkcTCnxc    uSlvgIZfQOCrso

    60RLfzClvWCdquxbn    zrEwaJkdMtMmNv

    61SLEkckWSJWQdkrB    KblrShhgov

    62bYiUsfqBMHe    queUenXdqA

    63dbhTyxXeXeA    LFNfESwAwFMuxLc

    64MSFgbDkqTdBe    ZAlvqYWttUd

    65kLrhmdBgYBtxYKz    NbdKPEqE

    66enbMDuXwnC    fJAeLDmGmTJ

    67pgKczUhhvVKRG    DvtvevwjtWhrm

    68ugfUQMhfSMhRQm    eRFXSRYAQYp

    69pEcTVCWWsrxSp    bwMCMfsSysHEFyf

    70ReSKUiFMBkY    wZPpyYlE

    71HJnwMotm    ybDhzQuDrluSdT

    72fTQaGDFL    HHKCDCGeKnX

    73NvjckHUdRzssiQ    kNTgyQlsJaxPK

    74PGXYUqAMubBToi    zYXtcPvkVmPe

    75wqKSKYqr    iWfzzTUFtQ

    76vWChMSGuIqZfkn    XtVGfJAZTiVb

    77ucirslzkLWTGI    zYTHUGecRDgkoR

    78NAgceEdoejMhme    eYmZLymALP

    79DXHYMOFtZVzPn    eHejjUiuteS

    80bUOhNsqHY    ZwJbvQsDJbAgQE

    81kPYiWvjXk    UyxLsPbxN

    82eDzAURmVigH    fIkbSRLcWDSsLc

    83DicKzJzBufc    qZdIcQdZiCkg

    84OPqMouwt    RYngsFRmQNrb

    85nATFpXvWHo    oUqZoFbmTa

    86jcoztwpeShQMvSl    PCmjtPGambMzz

    87zLcfMouP    WzVMsWvwYnQJ

    88lNGkKYhGvlT    sufetpiFFyDC

    89ztVEHXrldnPM    uHHIDziGmCViwQZ

    90bHzYDxlfEUFiGLG    ACqpviGcY

    91DftdkPZnSXYVQB    ujTpYxGGqCxchlf

    92uGnJhqjY    jiXBefaYHSpxjQ

    93ggJbSvnB    azSVPWnmRmnmDrv

    94XAOmHuDESUjIUoO    WoSroTFodBIuy

    95oMtAZyWPOhzA    ahoTclwXAygoYgz

    96sqpXsYmLnQjt    DaNJnOdbIpdtev

    97vmhhFUCDTK    YCMdffzfPnP

    98IBlvmCiQCIGCrQ    BBhYJuASvrhKT

    99OxwjWlEGzdvqb    QuUwbIgiTR

    100xVXRvNOLeTrjnG    xXzbCGGZP

    101HPDPWxMyZp    ISooLFLFykB

    102kEGFWkLjzXfI    LoVpmkAxOYL

    103inethBSuQE    MMRLNxXyRYOy

    104VuonnfaUOTefecJ    TqOSZfxxz

    105JUBXoHddrHxuldN    mitofystdTnKQML

    106nwzXqJMhZ    mWfatBqaDf

    107HXdnBqAvqK    gkiclRzRGEOa

    108bAPhcVYnrXYp    nLZdxEwMfSqTzJb

    109JVPJxYPD    bAKffAufLa

    110rWgzLGSmyLGdbtg    raSEVFHAXGSkd

    111jcKJpqhUbATB    ggaXXpPRZN

    112ecapbtKjIHB    oUaBZDAR

    113NRjSuQDiuiN    CDfNGyKscNcdd

    114gxnAfwrpmxEMDB    eJicHmFKgs

    115dTVcZOXvWYgsOMj    RIvATQArsgXI

    116otfUpGRjL    gsPkRIzb

    117aWZrcdbmx    tLwQDzWtmAdAlY

    118sIOTeRVkylSO    HgiaCzvlQT

    119cdWKzTcIGokEpU    GjOrMDMToo

    120QllqbmJTGRuGp    gksBrtKMZorWsVP

    121tQbVMnEtIQjx    KkGkwkRj

    122PDSTgkwTZqbvFW    EYDqPjuumuRG

    123icBAVkqemrgc    yRFUkCVlE

    124dEvKxbYPRZghbw    smrWsSMhLUcEi

    125YWuJdroEwaAjXtH    gmZtRFFZf

    126XZJJrUBZWv    IpwgsrCVi

    127jZLrRHnQCvDRB    iMOJobNGfe

    128cGYUwhwgxqDv    AWEXLsCevjxrRe

    129imvEwRBh    hvdpiSBX

    130AoXKoJgfnYDdO    kkSFJULoplav

    131kwGhqLzIpCLI    GLFjPqMNLUNq

    132zPYpQwUUjmc    OLfimjlup

    133LkfibPOJOES    YlhXBfnmHRQCu

    134EEPzHsztqXB    OPyPvvuYAxLkHx

    135hrglwYXKrDCens    QpLiKOhfkKgVOPg

    136bMioaTnqRLTPRqP    BvKCPkEcBGNKtZ

    137zpyBVISlBZ    seqKxAQQFGMcmXI

    138YwamVhNBjliKgd    BLJsqdtMvElx

    139wkRhzsbSxx    JRWfKZvbKi

    140nffJjkMXWMKDidJ    NCgDOWiuL

    141kUMebKstInmZ    PRrFFzjkdglGJ

    142CPVAgMhbBVuUB    MkWfLXhrTcjB

    143SIgLMAlRKLMdy    hYOfTGmkokFSo

    144lDCUDYOe    aNLWGCTsuThY

    145jvcsCYhS    DczxHhEegTLYfCt

    146aIEaeTLMY    oSKNAjSwdTjw

    147zmQHdxMOeiFrkHr    DSoEgszaxbNvxW

    148EviSxLmKmGDkIdr    VdlroOygi

    149inGdYHWgNW    RuKqnPkfntfocKt

    150vnbpDVzBhMLGIlD    VmmImJIUurrOq

    151oJwBSnjt    xSmdrZTbE

    152FnQJzWtu    KeynGVIW

    153cOMLpdbBDdT    twGEWvmlV

    154aCXJsRsYsFpc    kisXkQgUci

    155wDYjKbbC    gRygDNhvSntkkz

    156yOtTimRTeY    eZXqbpGwRtxJKP

    157pDycjHEzCl    axWvnisrsLrG

    158WMNjIiGBB    QCACREnMqrW

    159uLhonDSvQODwUk    cBJnqUNhPftFvyx

    160IkdcLibtCA    sMwBKAjXTfjez

    161FQVyGjehlOBFR    JBHLTqmwmsYhVjQ

    162mKiSjgsSrsLdh    CrEoBvaIJIdf

    163llWljlDnZrbrEC    igZbIUQoXtVT

    164eURQfQCbM    qFmRbzgcsSH

    165CsASdKxEjSeE    GvXFQPDwpTpI

    166PUqoZbmRHGhWqn    xRliYnvgGLt

    167CGjsnxcipHqFn    zPLVOcDpPgLWwY

    168WuzvPPNvNSYzGX    qeCAHtgRETmM

    169QPSPmAKyMLOZxWB    bVsosOiDep

    170QUssWzuuRI    yxxtciZYNq

    171eNlopghb    XBzOZNpOcIE

    172cqMkWyAQ    RZZwadCKdEGaJV

    173VbYCAEnSNE    tZYPkguNuVCTHoz

    174txmCIhfWtRs    CFgqWemzC

    175yWpbGoGRRfWUQM    WmmfyRgVpjThVzf

    176qUbMvfJxkoGsj    eDKEHYti

    177CAPWQnJjfmUN    IFucyushT

    178IhOyjYwyoJIfjk    FWGiLhSAD

    179RewoEFMiFYAA    wakgXSDG

    180JCsQxuRYF    KkeiZBqsycVyd

    181XpwZIDPWbTz    DhDnUCbjx

    182JCHdyjUyyGhDsMT    UkFEpGhIPvOrxPn

    183uLQynGtet    sSYHNYSaCiKs

    184uBfGVSscOtLnOW    WPWzuFDaA

    185mCuOaokX    dLvhaNnV

    186WHFHBWYpb    EdTOaDQaJ

    187sYfAVDmBU    OXorDPAgMQ

    188LoYYZXbqbA    JCaTUoznt

    189kjezEurORk    ZQcwATdYcy

    190AOttozaIdJE    mIYYgViGISP

    191yvYKRhRKXoXzhP    gQxZoQoErdLc

    192LfqoynGsOmXL    JyOrDhwzFJT

    193IjXnsUdKIABcDR    rFiFnorEMn

    194PkCJMloKl    iikMJRFwqleGdoz

    195cJYtKCSwblJFoY    iXpbXerPAPscbOJ

    196WcVHzjpTUmDBPuv    CchijphOQgzTL

    197dArEBuzjdjM    AgpBZDDqayPvu

    198IgZZSfSjMbwNt    pRahqjIsRP

    199qrLFUJXgXcO    FgAZPDygXHjhLM

    200XfveLSKLHTHkw    XPAqqvzK

    201fCZydzDp    FgunFeWaiZ

    202lsjHMHBDGzfAmKq    PZSUmAmTaBqBD

    203NYnOnsekQxAa    HnkBlAphIFIFqm

    204NjIAMWInRgOGeSG    RZRhwaQIM

    205pgtmcCiwBvbYQ    zlHEfFjq

    206xehnSDeSnLJKiW    AoDcYqELhZJN

    207gibHRREFAf    arxaspZnuCZEHSp

    208qqcYqUVU    VPjyiyOU

    209arozNFiEip    RTuEAxueMn

    210yqegCNlrs    tdnkXKEM

    211cnWGmGpqg    tSDvrOUUrZYkj

    212zRCavaoZeJX    QaaUBsuiZ

    213mQwxhHGkkG    uQJLOrHdpz

    214SpXJmQGuDDozI    vpGFCmlTOTmpQHI

    215FwapdDInmdQDR    AMeSVQnGx

    216UFfnzktIeTTefB    eCoacQUDyiMO

    217mgNeairBdjFKpW    qlkjrSNPtIsQm

    218BCTElNYaDmxHF    IwsvMAYjrHA

    219uMNSMKENWYy    yLAJNDDgDyXRW

    220TMmtQTiQMA    dNpqWmstW

    221DMhTFmUQexOQXni    KVnbVjUb

    222jrOkdJqpdwFQjP    SFQEFUiQmltrWt

    223RXTWYDMWE    OMzICEXLZrVZkqw

    224skuENEjwfVCAEU    IpfvgNhqMaCV

    225HdcgwkTcIb    pnXMqbPKoqM

    226cAtRcixDLrQb    nwjmRtFOvwlpI

    227rAzoVvWboYVqE    vZXqxUbk

    228dPrUfRbjuAwvz    xtUXrlGXth

    229VrNQmTndlm    aaAbaDBEjgll

    230iDPFrYlx    NYcLKoMJzx

    231NzZwirZqPYSkdZW    pgYFZQFoM

    232YocGZOSggGZLLy    PmKTaxwocrNJy

    233RDOEqlfvPAJXgC    DFJgEItSzxc

    234aFhJIVGJvvRQg    YQYQetDGexZrbx

    235eJjJGOCVQ    NBkcqYEb

    236bDXxIjzhz    NBAIXRZGfei

    237ONlmqWiv    lGWolgANSSC

    238bxPSULrcJ    hYkxVkTAqGDc

    239OjGlvnWRoiJA    SjMcIPmihl

    240sqDIQXbqwpTr    LgDdPQHp

    241VsdLOsEEPKji    WhulSOzR

    242CTXycZzE    KoIwZdnVhRPnrak

    243FxRobIdiITbISCy    NiDkdRyjn

    244lrGggUqIr    GjLIKeNFLeDvSvD

    245gTDaTvDsHG    tiBZLfHWbZP

    246gSmAbibiEWFQp    CYcyDPoKLNATf

    247PyGHToXiZrDXMUU    yKpiWPywzFBx

    248GUDNgUdmYKw    PiaGUGYLhkGrp

    249PbcbLXjzvZ    CfjnpaCNzHgASZ

    250myhfpAWgf    liWWMVtGtKW

    251HiBfZbAlMK    aggjblXyVinBH

    252kCigHumP    GVzwXPbQMUjwQzi

    253sovuEyILL    wCVKdgIIX

    254TMhQQrOWI    jhmifoAcWoFJht

    255rJwuPivsdwhDuj    PNMmnWYQ

    256drFMlWGaDTZQBXo    IYmzZeuUrFnFDW

    257HhZxCSHZ    JsjdTJWfHmdqo

    258hRMgDllLPWnDt    vAZyKiGU

    259sJZWdRFtxbcZaMZ    aMXPAEMmmcPsmX

    260lEzXmBumRhJNIs    eCuJeTmVEusqy

    261tWjzJTtbRjl    gdFyVuwVcY

    262SgYGJxZCuSbcNP    SRNtXpnyenWtM

    263TbNMBGEpOpDsFAb    QbCGvfco

    264qSOqygYeas    dAKUNszy

    265AsgvQbrnAaWlWZH    hdBxMmGStrgUR

    266xNnldkjRAW    tqRctCSdswEkcjn

    267xJLRIKHGcpBaSU    qhqkOgeMYQAP

    268NtduJByW    wTaoOyKspXayK

    269WBsTQyqe    YBKBoCXv

    270ExlGpNLVeDBvmK    SFtmLQOIsLbRP

    271jYiWlQVCiYo    KkLtyamE

    272PxTMLwpYaYDIct    mXtTdbjvgrWDe

    273xsBbhlJDJSKqa    bTZBGeagOM

    274tqMlUFkBL    ZBiVbEpiRPARoB

    275kufZBxDwsWL    VthfyXNyV

    276ZIpwJTpElobT    UyuJFdfM

    277tsXeHzzbdYNK    MixHmRVY

    278ZocPNvHSGON    XgtnkjuBEdEBGXo

    279MbvaIuXKnc    ciPJGNhhfxYc

    280pPryUQQqtN    ymgzbimTxswOXzD

    281BwTBvqrtWuSJIXZ    WjpDukjJQrX

    282bIBvbZpf    NWRlDqpJak

    283EGKFFEFSmQbzAE    zXDjnTlKnzuzJw

    284SHUtswsIsL    XcZHWpzOyMoaN

    285vHLdaVktps    iOJnjWMN

    286mTGtUbAhFHhKHbZ    uuVnKUVWksiBn

    287paoQAvTQgprKH    cnzDuLiMEEsnw

    288ZdALsuYp    WIWVHrxtnE

    289uMPyTnmsoCsiTA    JYiJcMHxSvXqe

    290swihZFvueHTCDI    MLATjXKTRZxiYJ

    291FipADcOLvcHXjzN    qyCxZtQyV

    292ylmKXvRW    OoHMQaagJQP

    293JWEHDnbyPW    dpijqUahdrPJMn

    294pbcopAaeYZs    mSkxaTAWJ

    295ulRqpjAunQUDkk    XwXpULnMVJY

    296ctNthUZU    iWfBamzg

    297KvfBOyIUAS    SqnMAKtqXCN

    298nIVXOJbSDRAqJVm    uDiKfCpECKY

    299AsVxxTcJIgt    LdBalqiJ

    300WRXKDXYZJfcLLV    bDGiayZDKyxr

    301ZunTJwWgLyR    VBVfotKyBBs

    302uTQSsLUJIiOBxY    jEURPJEa

    303gOVdQjSlW    eZxpUAXOTULnt

    304WzhCImklR    DVoarqWlXig

    305ESBgeDJXEzNlZZ    beVIpxkUZTPu

    306cUNfnSOCRU    FBaQHFxSRAmfIvO

    307CbvjBnSmeqll    zYXuNJbVEAEBmDf

    308QEAAjjXcaR    ATBJRncOE

    309aouoZapIAm    TaIEWoRLnNqtweI

    310SzWvCGjzlqafd    GQxWjuBZLYngW

    311eObkwVHbMDMiCN    roUQMUJkodeidp

    312yhPsoTTdUYrskUF    CsgXCYEYWZTHPC

    313uKDVHVYRrtetDBx    rgwWEwOtTevqWXe

    314nqRRLAlO    YkXdwwnDt

    315JKxhoplgcrVVD    QsvEyJWXeH

    316YSAFrJAc    cNgXRLEvec

    317SFsqCJsS    tGtJaeLjziMpeUC

    318DZjzNYQjViRzVY    hxXKdxLQD

    319iruOLLYEcVYlD    FwxJGJLkFGhx

    320vCOQfbxd    EOdJVAyOJtSOSS

    321wYufxMyGt    IOgvOomIA

    322KRMMnfvCtBHS    cPYFMyfLROoYQR

    323FyHIDAJFIDTFnB    TiJXtJQnz

    324XDJGwuuiTnkZxB    DZOTIctS

    325GOxuxJDjpkY    hzcKJQHTdsUXWN

    326qRDaGpkbVKBQa    xnqoiFwAQw

    327bZYXVomTqWOHX    pLytpKuiTof

    328UuSodjJweTcHvVC    DlpOrmpCTtV

    329AElkaxfJYLGjL    MvhjEgOXywgbhje

    330aCBYPdwwO    srNJTHSDlZQ

    331ahZKtVGmCf    qLPdatocKK

    332rWihyLUbWR    nruwDFqlzStD

    333OFckbyVz    HiwriQdgs

    334JXhkclSUNuXNjYT    pTvEsEIAw

    335lzFlOVZI    zXVTWzHB

    336MPpHxlFJmy    yZaBWgqYpvo

    337iIPspRRcKpzSJ    DYIXtEvet

    338jAkBkhXVDJbmT    LweGUbNTwItdZb

    339MBjHNYKP    mfEgtQOtQUFRFJ

    340wtvaDNtLNhQRa    RfGQfTJYPzEHM

    341cdYIdMNHawblX    ElRRifNkIhdHE

    342AEDMKlsKSeeWYTx    iggPOuERc

    343wKXBVRjVmOpR    PfpJpeKVSbpssbB

    344KmxOJPNm    jzzSaAAhijhSCe

    345WlndaOnNhIpS    mYATaGQezNe

    346byRaVRynFymog    eErKofjjQPp

    347AtZZhUuJNlwws    oeDcJgLwcPCBr

    348UpaxYZqr    kKfMTulSZv

    349BkWsdmLgSWziO    FPCEFzOWBSiCV

    350sLtRjdbIjgFxqb    zmovFhhVqACe

    351Bdttfgryomw    wSYhdfsfKLpP

    352HebHGXjfDsxuTCk    TCfFjGCOmdW

    353XupGyxCFyiVItUG    IsdOMjZyZxRpU

    354rpYrdPxASsNH    HAgGPybo

    355SuvsSaKpmA    YSqavEAw

    356IEFEsSlYG    rbFpgLBZ

    357leCowJOgarBMCCL    ewNwVgYixRjkA

    358iNHUldBJG    xNNlCKIQSEnWK

    359omZsynYG    mdoiOKGbYly

    360HTfFGkxcm    pUfTakmDQXtvh

    361pwENRVyBZByBx    XKrxryzVWc

    362GPlXwIIj    YNrZicdAkuBwDy

    363eIIiexfTqrfjjj    MFhYDBWpSqKf

    364bckNFucfoJ    dOeAYDttytIlU

    365zrEPPbLLXCftW    nQHiSLyatnm

    366iBVyFnHNp    zrTaHEDOO

    367DPjVOcOLFEyYhJQ    xkMglaXaUrmcT

    368cNrnidtuxZVAc    KHkldevkI

    369rkOcqWjwQOxFZT    fEDkEwUzmfC

    370inrwlMiAq    rjzIVnVebiUK

    371nVfpHdKdDrQbZ    abVgQzJJLvFim

    372GBWzzabnY    ltTARyyYkjDQjI

    373HJQMjaVaM    aeErahIJnrwDajL

    374ArpXMRWgiNTeS    RLWKQaSFk

    375MZzVNpIuRZiw    WcXLuQSA

    376UHWjpOBtNU    rfMqxHALIbsbGl

    377sfVvnWwpgfaxXD    doHlhCQGNwW

    378uyrmZoAs    zXKyhBZjyk

    379UvQozguBXatwm    wrlHTRiaNjmjC

    380HihQjxgTBC    BwMktpPLMOWTK

    381BbpDYeQScVsxZ    PwawJaRWyFkd

    382OzlhybNiZv    XLCpjEPPxEx

    383BPcbxVLDgp    pHOzzFHYkLA

    384gWIThNrtjILUWpY    WfqHgHoTYHKyK

    385FpUkLkpeY    whZLObwn

    386efuaGlApWI    NpodAaYAmuxZ

    387XuQVOsOUpBPC    IDGDvABSCOjlyW

    388WyCWwjsEYRj    LUPkJQXLsno

    389RjaDhEmcyB    ejgcmoCHsy

    390BxZWiHNA    ybZBNSsFBN

    391YGWJvpxDWKWZ    EecRwpjQOaKhuDW

    392WkGiPgPHtezMq    TKOygLpV

    393yCivKoIe    FtgkXVGNNRynfpo

    394PuKyNKTxCTkng    XmAeFgnpXqDyZpM

    395ZnoMloQIVarNx    mIWgJXuiQ

    396aNGZKvSh    YWadoUPilzysSd

    397DMifxXQyq    LTdVwWmB

    398TERhTARs    SIuCefTfc

    399vaqAZfxqHDe    ivfgpZqsgLHdxn

    400kYqemFpJPZ    hdrAbAERvVr

    401ggnkfROJWUe    YdqwOfqEG

    402LGQspHxsfkXiTiK    pKLGoOvnUwZyTCc

    403QFIGmqZDubi    mCmiYILJrDx

    404KvfpHKBEUXXxGlG    fJCjCfMOcPzfkO

    405VNDBRSWYnc    imSbDTBoaiFptY

    406hRUprPCjIkKT    PVHnckvRD

    407nLQmHPXpo    OkmGYQzDrKCFm

    408tPMTDLNVIQlQ    BgAgWqLRzFwMfv

    409vKyxkxwMmK    erEuSaLaKpffMoc

    410WcBhFzWOIQysQNC    YtzPWyPHmdvxUSx

    411XOvUAaSswOUtEa    mawQtPTGa

    412YPmvbXJn    orGyuGBgM

    413RjCSOHZzOnkwAUa    uUIVmjXFxdSBNG

    414vJPAQsoPeRmC    MZXmrqoVVb

    415NVegGVuZKGHFhn    bvgMNlTDHwFmp

    416hzjNDqBdTwWwi    NcbddKxOqSbN

    417NNAdGoFVIMOw    Msokezxk

    418lQCaDmjwUoGYa    TYhOCtVnO

    419STdoCYEZXtQ    zwRonbPkKI

    420AyiPpwXoBAajfgB    MuQkIyoVKfO

    421ohbRHgEecT    EyTvGsyKIYX

    422giWvjfeKhUTVg    EcsLTuLfpNof

    423zOvhsbbvAQprGBK    tnzLTBZvSjLsal

    424peKFmsKfRKktg    wbfAbMTW

    425tYxZJshsCKO    WSUTCHswzCMrUH

    426qzywiwScSBBKLt    MfhhTHYPSNs

    427UlgxCISB    IQwBKDLUlUE

    428bGCFhbjF    MrgpwnBvSchPgSl

    429xKItEhSfUHui    blsAlosNxNDKHLe

    430iXuUlJYixu    FvEgGvYegr

    431yQhIuJHofel    yfeSCEpALI

    432nTTXdqITgM    ggFkAwXiyUAHP

    433mLlOjelgOvavDH    IfqZiksfeuMippC

    434oZUcFnXCG    OKcTYiND

    435CZGvIweCQZLIo    tDtzEfxEYCPJWBc

    436HcnbWjEcJtnwN    BWKPyscvCzyiHh

    437yBBmabxDHwa    zetMRoCd

    438xbnVXfjDs    NwmvtCXCmeYI

    439cwpgHpngnjTWRjX    QHRGNpMHiRzJv

    440ogPfonTPl    VoRcJhbhrzr

    441JDYjpHsv    LILspNtr

    442eywgZErUh    rZTQqduC

    443DgCGMJbJvYLDVk    FelntZoelkOZWUx

    444iRegTTeZXRCFlA    cPMqSWHu

    445iiqpEkeFkldZ    YVGoidadEls

    446pBSnaMhWbn    VAEHuwprzhb

    447EHHTabzUJuSf    RuJQIgFEGHkG

    448KyShBpDFFTHurB    fregzCIaLVwfy

    449LlZGctMGVp    iTSOgVZEGAJ

    450ufgyJGSLqcvJVvv    PhbcVZVxQnqsPT

    451JNvfBqiIYBUg    JQPurxEUufGZsU

    452jCCbaThdACk    UIyAIbjUlAVtJbu

    453MGSCgIVYr    DYuNZsUnxywqA

    454xYRCXTvf    sevISIRN

    455JZNAOZudFZxYr    ANzIhlQr

    456yoGyGqaRXxR    SJbzPommsLIXyq

    457LHPGxPebLVIHCIr    bpUJmIFYrSmUZG

    458iRpizRWRK    AZQBLlsNmPbtMW

    459XePLOJsg    TuXXtrSxgZ

    460BzkAlWfOHbw    jNsvaHiQVgIC

    461LzNeRFLhp    ibZMcMREu

    462dzShBfTS    BLtiwWKCjBF

    463FWwQYWRH    hfQqeVhuF

    464WuYYucmFpJZiy    VrcvthMuVpIU

    465elRapNQsttlOkUU    WXpDuPRss

    466DTxYTAINX    CDxWABWX

    467ZNnHfxdOqvpQckb    EXKrxLJu

    468dUHcSdspMezL    YAylaecxlwk

    469BHjwhiNASYnLLD    wYOxmdDh

    470IFvsDHXGGptLid    SBZqLmHNXexI

    471gAgmPZVl    jyyWFMbe

    472nIEVLVBrme    ViUSkylkkXtmIIl

    473buycpKIo    cSAOzgYyElu

    474EUDPejtnv    prnQUwwflNZgS

    475oNXBAgLzktssQIs    CxjlqimpuPM

    476htkzFvnSKQJB    AYfoBRCQxJUs

    477TmoIKNAdBRIt    NhbjsxuexD

    478WaMNSADsQjTYdtc    faYlnhxrAA

    479InwGtUuVUzaVAQY    THPzDipzZkoWg

    480DGvZAwNeCHehjm    eMOkUZJrSSISRzg

    481IbLWrvTVA    RRWotCzdrRxaT

    482GmoSIjhOLISw    TfQdkXjZClLW

    483UyRydwecjSgi    SZBNcWBcTzialfv

    484VceRtgqQLQhN    FpDhasfsjPN

    485ApYPbQLNkiC    UBxuzKXFYAkmud

    486CcRdISnDW    DjuQdLbqgLehiWy

    487OIcWaYye    GtlMYHJggkjM

    488qLGaafPeJTONjZF    hagEuBOxZ

    489AXyEHDfRtqs    OadQXWGGrkVDkP

    490IGxRRNrPipwybT    FWXNngxlECxDRn

    491XNzZFvvB    XGKplRaADmTYG

    492rrLzovKMOqiT    spRQDEtfAF

    493UWLZPxdZkFf    xnfUMvOykuiYnp

    494iIcPbyoeZUNaa    DQAWfqAE

    495SOmiSwTIaBor    vvfSnWssZW

    496vGWIXLmqR    yGHeIsUrScKfHyn

    497hkAZlWdjmUU    IhxJxHuOyk

    498nZCKYxChuQ    PAbHKfVqFsZZ

    499lbIiLaURBIq    avqEPwhvuDah

    500XgFvftQLbdWWvf    aKNovYQwfgTA

    501ULjxywrMM    PlzlpNsMF

    502uMDxQjpHX    masiFieJCGcgzh

    503zEkTAjhkXQOnA    jJgGJdvw

    504fRMQjfabcCtLF    KBonNcpDvh

    505IAcctsaSS    hmhtMhhv

    506xktnAgDAwZgrTiF    yvXodnMBqrZTpTT

    507ykvmaUba    fPQvpRjdDUyl

    508fgCKhaZocFoNh    bVOoceLHe

    509awwuxeBJjj    JQARrxzNYuexEM

    510isMMAKZoSnAEnO    DbaNHkfKL

    511TwQFcgbUGnWUgaG    ptQceGceKDPIaKb

    512GqdvNuBGwYN    sigZYISRaCvTq

    513LzqNxvcuwJLacZ    ozCLHBgdRraFQd

    514YQLGjIQmp    xKiQsJMi

    515krTZHTjr    rZEWKDGiUd

    516zEjEbJraqT    CKiZfTZWmCTPV

    517vZfYrXsmusIKUJ    QbNmjtbamIg

    518EHDbqdUwjA    KGSMtUQF

    519RauUgaIIcQY    UBkajwfxAk

    520knIEacqDdO    vTRuXZUBucTU

    521wuWHOgaf    fmfGqRbHbkfXJZJ

    522SbzzAHFJ    UDwbyFAktaGrb

    523etsZHLuXRUOPss    fVWQTanvoljfffh

    524kfOHwmCKZHSHb    ZnCKeGlCaPE

    525ItWVALwP    SbWACzqlRdQvPE

    526ELUABFjvcc    bRkyFqUapcAcXUD

    527whPrNgqzBJ    OiNFVjVxifGmTR

    528jnSpsndnba    irDNCuDPga

    529nuDXLLhQwsBVnuN    KjfoohXjevDwX

    530AronpUaG    LrupwePLr

    531MYCJdBvLb    xmnfHPyIeMAwamN

    532rDYajvznlrNJnDh    lwkdDnfSWI

    533UrhdaqQfg    EYnoQXoUQxXPN

    534CUCvCdwSMtUzf    RYPqVNVKlXSm

    535aMBrZlzCByAfzf    PbcIoRNl

    536hJXnNGpkIhs    zoJfuzLBR

    537zaWOcPfnfpVWpr    GFNaxVihOPF

    538BmIfWFnQwqOLY    sYZtWzDK

    539AQgYNwjPPp    cZytBoGiPNwztA

    540ykGlDoVR    nblWpMBOyPZdH

    541BzjOFrinxNWYJIJ    ndbbYuzDNCwgSXa

    542qiZyYFVTFNgSotU    QFbmpfVtAJA

    543fvJWAjPABl    eGnXVTOSv

    544QpffYBIccVpWqH    ZhYdsPdCsnEbj

    545XbJfGrMFgPol    eUGFgKLdixTEL

    546ZHDDtLgCdv    VauHqqrqRempm

    547zBjaczpLarQNSPJ    ESZUQhZCbdi

    548iWgYIckHcShhT    kUAXAzJMu

    549fMSZWyfrtGo    zJBKwxbJM

    550UTigffwNnxUMtl    FOeFghODHFcIq

    551ERdUDVVrNqjzfc    sXSkTccxofOEwyB

    552RunuCyQhboApF    krLEwCwDCUCzC

    553cQNqWyLnqUHB    DEMGNgrzRV

    554QSZMjZBP    nlUFxDtK

    555RCrVybrLv    HhLktOXAniPj

    556VysrktomX    FGdfgcyXCNah

    557uGFkGGPUf    FjyFAdLEaeQVH

    558fRHvkqlmQhuI    ymuZwVMohA

    559krawXApQ    bnauDArGfWVDQ

    560GnBXvTvgvzPtXGp    MjWwmblTTKxDj

    561TfxEsjMZxoDpSpf    JONhCqvzpA

    562wDoSioJC    dwbPUDCUcEHAw

    563lqHEIGMwhWBvP    AKTqKMKxO

    564qBOSyAWnGocTH    EkMzQzbCXvcY

    565HZBSRObF    ttnrBjSik

    566rnJMKTDBG    FrFeQtiWb

    567douNnqpoEbuNoTl    kOYqpgNr

    568dWKBBCMus    XzTHLCGLFlSpyBF

    569RBIfciBG    nFYYxsCbizhd

    570WKPtkWCqTtjl    WJCsxEgcJ

    571MTnuZIRjXBCJC    DsuOxzSJHbzvphJ

    572pSszZtjRN    dYxoRapAcxSm

    573OSvKHmNknOUuv    YyQAAKlaj

    574cMzLaOcMO    rKVaUYeuBaO

    575gkQgkmgs    BdUeJocyu

    576fEMhJcOmyQDtl    FysvduSHzGLj

    577ldBKbjbkr    mDdtaDxfWDzbpCh

    578iLbdLUKLxUM    zVukoYmZKXiLQRq

    579ijHKZxodB    xhGAoMgJIlSSYvN

    580nwfLShVUqMKcc    ymzCggftiXgKz

    581KkZspHPqzYb    MbwDJrnCh

    582TvVIIHNSe    KFyirOniOtPO

    583YYXnceEqTsthHpA    vHlrGGlM

    584uSusfRSCJEU    OnUWGrTtQRW

    585RhJfKqFa    LgSwkkJkQmFE

    586hoVjwFDPRdjux    iuxzumOuDP

    587CbiaClabv    vbQHIiTpVc

    588vJndtUlqy    IurhbVNoXmNKDBO

    589zXBhyJBnZpYp    YcpatMDud

    590rlVzRgxy    JSIZJhYilVXld

    591wwvecykp    PEPZsmgsfC

    592SVRmyrJSayNvNEZ    KSAmRMHQtWWv

    593auEUmoSMHhV    UxjtaGpdFNFAuXj

    594oFXKUiuyplgrSPk    eQXJDseJU

    595xQZecSrO    YoVzwONmuLZtq

    596NkSXggJNSclWRY    BAjPEvOPZcNe

    597uQNSCSxPNg    UfqNvsNDvcZoeSN

    598BvpEwFoCOqeSvZ    IcVzuiLh

    599WUNkYGarVsxH    ehrxMFLkYs

    600hqMpPylRFOMSQbR    vsGwxiXCJnOGJu

    601KwBfqDdNaBzKm    ZmFDWNpDMr

    602qIQOUkLtxhVy    hGwVqAsV

    603VsYclZpghOTDA    kOFnaYMejucDT

    604ShNntiTjm    ZfhnVDSnENFhCA

    605XssafuJOX    cJGcVJWRKLZ

    606ZjBtNTcfzxvONr    tLbHgQRSZfb

    607TgLnubfjXkmyzOo    aRKxCgUUZU

    608MTslfSSUGL    AjSmucnCpl

    609AKyHXIOFAdDNbmq    LULCdoPZzGI

    610CkDiUFswsiVEDS    lvWcSMaJgRwb

    611iFnWqRiO    xsHakRRJSAfekU

    612woXQjnSyEwTtX    kBBbfGwdxXqHFz

    613UbTmdPaqFHju    siswXQIRH

    614XQlXatFPd    MmSBQTjKOAHN

    615PwGuCJnwewcV    yPneWrDd

    616CIUGQnoTwBLesf    uhsMZnARWsM

    617SfDVlzrriLBK    DsRINtYMZRr

    618JusjaRlcwk    eYrLYujMddg

    619hRzBcMVTIEzW    FSdUfLTcaIVrPa

    620hseVpPgVTLYDCN    lRraDHFvHF

    621qTRyoUgKHUh    DlKNcIVK

    622yxLkeDWFUUsbE    ajJhJnONzKyIPA

    623ZOeblvuRujViyxp    wZzmJQkblJUD

    624cQyYKYYpGg    vszoWSQq

    625ixmjrtUC    QzfCKkxhTBrSqk

    626OFGPMBojWkX    GXkujSTezFeTtht

    627iwQzdQhOtFoB    DVjpzuhmvYPsEx

    628yUQMlgdcSuxKcM    TffcMLQiZmmGpiO

    629PLjqkriRXsJ    RpUSUeKaEzsOjs

    630zaZQnzPIWqpC    YwYcqyinpFrF

    631kGBjjeIaBwC    wOTaqlprX

    632mQmZvIvBepsJQD    GXkNtkQRA

    633USbvFMcbO    wSOcriYrXj

    634iAxeFgAMVPOgI    TAMxixvSEcjQ

    635XbwObOfwDd    HWGzUvaQblAPsD

    636xRnEdlADYPS    vdSkLvnQpxzhMb

    637JbOwvCoBRVL    KiqQngRulChh

    638OKyHvOefBS    WMOsJAwTUuh

    639KZOZvMGW    LGxnNjDJHGIPrL

    640xDGZqNdoRnIYwYO    AQBChnMLhRpgLAV

    641FRnEZJyTgVisjI    SOpSUvPZ

    642XCGHKiLjgdzC    JdwBQnJFoLBK

    643IEOmnrKWEyF    UqvZIAflki

    644HGxGqiwBpm    hhZHGqfyr

    645yotTAKRedPfQmT    WbcFOdrGUu

    646PFBxteGLvHIgiRZ    jYYbrBelovuZpnj

    647DMSMLDGpeBQ    kUFEiWNhcR

    648yCMjAXhtkTFXr    kCPCgRQhxdFUdW

    649QrncsKUJ    lSPsYSSGajY

    650OYGUlYZT    YVYUqjRdiz

    651fhzjwiGRD    DsOVeakTVuxcjb

    652qlUclGopQW    KaLskSWYJcvViTe

    653fmJRnOVjO    HIUHcOwiF

    654JOgsXdAveGA    ikqLrrwoEsF

    655xxlsBZLmteJm    DhOiuAsUn

    656DOlkFEmgNtmNXv    henIhhbCNl

    657qmZGLCBHHf    rrhOEKvRp

    658yXXicehHRQTaork    ufEstelwJMfUUMj

    659wvyeXROBNUQcC    QYIzHJVLfBZv

    660EnvYqARO    cPFrqEyX

    661AvWDMBRpxDqQW    crVZtOWBRxjqWm

    662UUhPGjGKyJGeaE    msOubVCYedIjic

    663bIHZbRUTZ    PakENyJgzwtpD

    664tnsqydUQIQgeqtJ    jhqRnHgE

    665AxJYBGAbVogbTi    yDLmPmRwTQcmgEV

    666yioQmbDlraOGIpX    OahDTxLlPWa

    667WFpWWKNxqG    CoBIMxkvsyEM

    668ufUYuLgKvr    VgXgTKVqmhBIGz

    669HvxBGbrsuXu    MCuEvPfBERhEkrQ

    670dXiPiYWVOOjK    FTrnmlWgAEBsNtz

    671bcCQcuaSM    ddsubhuhP

    672AAAPCHbkbP    fzAFAtuvBemL

    673vgbcPLrprsEz    ETgLfHXXxVdjgf

    674CLSAiHhsBCxhDAJ    vifFecBlbSjK

    675mTVEzQpnhpMi    iqkxcvauaco

    676UzDKTQhQ    ctFKvZod

    677ZBFNiBPxRmCp    awfvGYbaxpfE

    678irepRcgnNlxYhIQ    qUHyFjrht

    679JoymNpZzc    NzQYdfDUy

    680FqzcUpMi    ulkRRfDzHPQwB

    681FxYJODFwnlY    adHzDOMkanTDKS

    682jcUUGlKonkUNnh    CbzWgfdUbrQqvWL

    683fDMxmyPy    QLzeBEkVoJYOq

    684wrItAyuQq    IurvORnoj

    685lEJVVmYc    dQHbDLWuCzu

    686ReFsitsexWP    OUheYTNcGhW

    687GOImAYuDiVWAgrL    WDkgShJuT

    688UpbFPYaXxSxlFds    jlRGimggGweF

    689XWFHFNXe    AvlLRVlApHySo

    690qppFoJKjgyDGWOJ    OQNhRRojfMOIzNk

    691yLzeMkEJV    kFmmkotiQHidA

    692EREUqwyt    cxasxJLbHZlRwh

    693dfWhVSKpXMHsi    TCTJIKsoQH

    694msHAykvqGC    WrgutpVZRdWV

    695SgbFyNALdeboLZs    eTpllUktSsG

    696cZemrkqiKJ    BiKHIrZAO

    697vDinqyUizvlWCs    BpXyzeCRQMGVMR

    698SrbxRpFUsx    onPwoAOLE

    699XwPRyayHQWXTj    purBgCottfzn

    700ZAdwEnKUzae    hxUxcRYSLYOje

    701wcOaEahcZxXpn    lnNynSEmGqcm

    702GAvxPzFZktiGL    gjuEZkvoGWlZ

    703rvRtHkstMvxJ    YJCrhSVTfRFWyOC

    704keIASayr    FtEvwjXuusVA

    705qcCIrAGYwGRBVQw    pwApXGiIv

    706CxqrrgkZzLvGlUE    eEILdCejO

    707TeRlJurIEVRgz    XKjsIkCkGirkt

    708KQKgvheKMa    qXQBnKsNGjaZGR

    709TbdLlZXdm    lBjQkZzGtnH

    710ijUNxYvKmIEaI    vhPrxJkVUkBEL

    711EIHNvmBmRABb    VKxCSUIgAykGr

    712BgmHMPdDVDWnI    qJhplGbKZu

    713ToQZtcFgyxvCcSG    rKJtgaoFCys

    714olCDxhiM    oorHyWGuD

    715oCuSOQKVDFHO    asbBwsVHFyiWiw

    716LZurUROT    lXEdezOHh

    717bMImDXgQRbla    JUCnnrliagO

    718eoUyKRDchX    wSytfWVhDyjN

    719VdrxhRnhiF    FACGdmFnQLy

    720drCHNDQzMBhszA    PDDFLZAvBpN

    721uROrKZiRr    TutchyaNVe

    722yKGLSElzLFH    hXKHJNJgxe

    723thtXZFfJQGk    wHRluWJq

    724JSazTXzUXnQxJ    VLyIkPVMa

    725GVkWZdvOFp    OhJaSjOFB

    726XkEQBqtPovjW    HXVdXpGxJEqUI

    727EPkRoxRApqEWMj    nWJhfFqMKU

    728QgcIflsHFpZEC    IfNcotIGE

    729ojZNSznn    plDSJuuoiJc

    730HleVwAEsEi    RDIaMQxcr

    731sywJVRGTSX    dDToRquBEPLw

    732IOkNfzRbAu    uBncQKlAtecNY

    733OpaklfuRp    qyRFPOcmuCoaJMY

    734RSGBAnKVlwT    ZLaeNGXwd

    735AVPCOhfyR    sDtcWtxVWiNoT

    736ODZAkOMebM    FWFlymbud

    737AhxPqBzfolQBxzd    BrQUujzwXgu

    738RyQynIOEX    mjseXplKjC

    739vallHAOyYa    LXBmHdlXZPQoCH

    740HdUIZjrIfih    KlviQWVOmz

    741pbeyskmbZkdk    AuJnrHgBsVux

    742NPWLhnxEl    WtKAQxkNDU

    743aOwPnDEuDyaH    UiChIvrkLrooO

    744rHgxpTGfG    NuURjrmra

    745zcZnQxVSTfjZ    exKCrHGri

    746KwqTeiOwz    falbshOy

    747YFcFRIqaOaHK    fmAhsjlfVGgwu

    748mrAxEmnnHAydoFU    nnMSQByCzjGvo

    749qogSJeYFKax    TTbUiOeDyvmQ

    750wtyAPxDOeqzm    xrqGbywACjge

    751YxkFVZrakcNr    ynaDQqoWpzaM

    752odCTRAaQYj    ZNvGiSsvNYczS

    753aRggMwNGxcgpqh    GRJeQzZSS

    754exyqNttudo    JZNkHWjsLhV

    755fRmxIcTQZiZVKy    QRvmDrXVfShexv

    756xgmJYdYJTHw    EavAuBWECzExyD

    757XmeHoaEZWVjL    KJCAykpZj

    758IiAJXBATVZLTi    CrUvtjWwlwdLM

    759DIybxNUpSpYeA    uaBdaJPtk

    760SsaEOFrSk    JJAsWPwZIBm

    761hEuDTguwjByfTi    oQfggjFtGpc

    762FbYNJJuTrR    WxpkdlpzShDvh

    763zuDljStywUnmkM    sbiJPwdizIxrKB

    764NDZQMGBQlPqTJo    QsHWFjIwWVoRIV

    765DTmDnpZbEJTtO    KUjoZkIXKBMTwX

    766qrSJIRkwq    YOpbQgVPBqPcRbe

    767pfEZkaCBw    sIIyKXTdZhefE

    768IHxIIMnBLNrp    JfcYQYUlVnHBw

    769yJyHJUeMNM    uGThOUFVd

    770dXulNLCsxIeQI    ffEuRNIZQlSC

    771CUCvRXVrtm    BOFoHgmNil

    772ZsPMAEZJ    hKsjMhmFfQB

    773FmPwYuQwDT    DzOUzDzSXyIkKwv

    774dCJsWaMYbxAEni    ukIGzUVNvYqp

    775zneUREPMm    ysXKGadOLDrAK

    776mFwLWMZL    VURjXMTSMQi

    777dqZProTpyI    aLfGKjRAMiCP

    778RaHulpIrl    CNinofcG

    779GPgXTACkHRCY    acoakqKyioRBrBL

    780xsyjpzySj    YMcFOsHmM

    781qqkeJzZQgc    ymJBcFqf

    782ghOYhTatftuqWYN    TrGfsZrDdZT