From bnbowman@gmail.com Sun Nov 16 04:18:06 2014 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XpqLg-001XpN-Rf>; Sun, 16 Nov 2014 04:18:00 +0100 Received: from mail-yh0-f41.google.com ([209.85.213.41]) by relay1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1XpqLg-001eSp-MO>; Sun, 16 Nov 2014 04:18:00 +0100 Received: by mail-yh0-f41.google.com with SMTP id a41so139295yho.28 for ; Sat, 15 Nov 2014 19:17:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=5LS3WxaRTYInqs1PMhHa+zdtgymSN+FqKmyRs3C8hvs=; b=TfwtbgccmDP+JggwcMb6ABquE4EEChrpP0ZFgqtfcMvpxzgc1gUMHmXYMo/rPjRN/6 x3pdRKHFkrtKJA3VLiZWjMzYvGY6fXclBu5CZ026lPnbMTULpNHdXbNFjdJh3k55UtMx LRZtMC8F8lSBWa8aVJ2A6t+biXjJCLUC4UjnjpONRZ+SLqcDAeuM1rjet9S0r9pt4pAI EOTShpW5RlDAe4kTdeSchbBl9ZmswvDouLw3bNH5jLoFDdE9SQNxHOmzmQfVarSPOTiU YRJrHE8sl8FvweKBj1/Ibkeqs1u+oH8GLMACEM7OUfHkLx27UXnaw8kbv2Bg+5OOipSr PvCQ== MIME-Version: 1.0 X-Received: by 10.236.70.229 with SMTP id p65mr18715yhd.86.1416107878025; Sat, 15 Nov 2014 19:17:58 -0800 (PST) Received: by 10.170.110.19 with HTTP; Sat, 15 Nov 2014 19:17:57 -0800 (PST) Date: Sat, 15 Nov 2014 19:17:57 -0800 Message-ID: From: Brett Bowman To: seqan-dev@lists.fu-berlin.de Content-Type: multipart/alternative; boundary=001a11c1c6360890c20507f14fe6 X-Originating-IP: 209.85.213.41 X-ZEDAT-Hint: A X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1416107880-00067E64-9D0DB3DB/0/0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.223667, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, HTML_IMAGE_ONLY_20,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,T_DKIM_INVALID,T_REMOTE_IMAGE X-Spam-Checker-Version: SpamAssassin 3.4.0 on Gabun.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: [Seqan-dev] Fatal Error in Banded Chain Alignment Traceback X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Nov 2014 03:18:06 -0000 --001a11c1c6360890c20507f14fe6 Content-Type: text/plain; charset=UTF-8 I'm trying to build a tool with SeqAn to quickly align some PacBio data, using "bandedChainAlignment", but I'm consistently getting a crash during the trace-back step. The generation of the Seeds (SuffixArray) and the finding of the base SeedChain works fine, but the final step of turning that into an alignment doesn't appear to work. Suggestions? Error Log: """ bbowman@localhost:~/git/SRSLI$ ./src/C++/srsli test/data/query/ecoli_5p_sample.fastq test/data/reference/ecoliK12_5p_assembly.fasta Query 0 Finished finding seeds Finishing chaining seeds Starting alignment of sequences /usr/include/seqan/seeds/banded_chain_alignment_traceback.h:195 Assertion failed : isGlued == true was: 0 != 1 (Fatal error while trying to connect trace backs: No glue point available!) Aborted (core dumped) """ -Brett --001a11c1c6360890c20507f14fe6 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I'm trying to build a tool with=C2=A0S= eqAn=C2= =A0to quickly align some PacBio data, using "bandedChainAlignment"= ;, but I'm consistently getting a crash during the trace-back step.=C2= =A0 The generation of the Seeds (SuffixArray) and the finding of the base S= eedChain works fine, but the final step of turning that into an alignment d= oesn't appear to work. =C2=A0

Suggestions?

Error Log:
&quo= t;""
bbowman@localhost:~/git/SRSLI$ ./src/C++/srsl= i test/data/query/ecoli_5p_sample.fastq test/data/reference/ecoliK12_5p_ass= embly.fasta=C2=A0
Query 0
Finished finding seeds
<= div>Finishing chaining seeds
Starting alignment of sequences
/usr/include/s= eqan/seeds/banded_chain_alignment_traceback.h:195 Assertion failed := isGlued =3D=3D true was: 0 !=3D 1 (Fatal error while trying to connect tra= ce backs: No glue point available!)
Aborted (core dumped)
"""

-Brett
--001a11c1c6360890c20507f14fe6-- From rene.maerker@fu-berlin.de Sun Nov 16 11:58:01 2014 Received: from outpost9.zedat.fu-berlin.de ([130.133.4.95]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XpxWp-001vuL-TI>; Sun, 16 Nov 2014 11:58:00 +0100 Received: from relay2.zedat.fu-berlin.de ([130.133.4.80]) by outpost.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XpxWp-0035xV-Rv>; Sun, 16 Nov 2014 11:57:59 +0100 Received: from cas2.campus.fu-berlin.de ([130.133.170.202]) by relay2.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1XpxWp-003jgL-II>; Sun, 16 Nov 2014 11:57:59 +0100 Received: from EX03A.campus.fu-berlin.de ([130.133.170.134]) by CAS2.campus.fu-berlin.de ([130.133.170.202]) with mapi id 14.03.0210.002; Sun, 16 Nov 2014 11:57:58 +0100 From: =?utf-8?B?UmFobiwgUmVuw6k=?= To: SeqAn Development Thread-Topic: [Seqan-dev] Fatal Error in Banded Chain Alignment Traceback Thread-Index: AQHQAUv6+3oy1rxx+U+pRGZ4bmK1QpxjBQCA Message-ID: <50D46377-BAED-47B3-8091-6DF539B7C9E8@fritz.box> References: In-Reply-To: Accept-Language: de-DE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Content-Type: multipart/alternative; boundary="_000_50D46377BAED47B380916DF539B7C9E8fritzbox_" MIME-Version: 1.0 Date: Sun, 16 Nov 2014 11:57:57 +0100 X-Original-Date: Sun, 16 Nov 2014 10:57:57 +0000 X-Originating-IP: 130.133.170.202 X-ZEDAT-Hint: XA X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1416135479-00067E64-443D454A/0/0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=-50.0 required=5.0 tests=ALL_TRUSTED,HTML_MESSAGE X-Spam-Checker-Version: SpamAssassin 3.4.0 on Dschibuti.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [Seqan-dev] Fatal Error in Banded Chain Alignment Traceback X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Nov 2014 10:58:01 -0000 --_000_50D46377BAED47B380916DF539B7C9E8fritzbox_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGV5IEJyZXR0LA0KDQpJdCBjb3VsZCBoYXZlIG11bHRpcGxlIHJlYXNvbnMuDQpJbiBnZW5lcmFs LCBpdCBtZWFucyB0aGF0IHRoZXJlIHdhcyBhIHRyYWNlYmFjayBwYXRoIGZyb20gYSBzZWVkIG9y IGEgZ2FwLCB0aGF0IGNvdWxkbuKAmXQgYmUgY29ubmVjdGVkIHdpdGggb25lIG9mIHRoZSBzbyBm YXIgZ2VuZXJhdGVkIHRyYWNlYmFjayBwYXRocy4gTm90ZSwgdGhhdCB0aGUgdHJhY2ViYWNrIGlz IGNvbXB1dGVkIGluY3JlbWVudGFsbHkgdG8gcmVkdWNlIHRoZSBzcGFjZSByZXF1aXJlbWVudHMu DQpJZiB5b3UgY291bGQgc2VuZCBtZSBhIHNpbXBsZSB0ZXh0IGZpbGUgY29udGFpbmluZyB0aGUg c2VlZHMgb2YgdGhlIHNlZWQgY2hhaW4gKG9uZSBzZWVkIHBlciByb3cgdXNpbmcgdGhlIDw8LW9w ZXJhdG9yKSwgdGhhdCBpcyBpbnB1dCB0byB0aGUgYmFuZGVkIGNoYWluIGFsaWdubWVudCBmdW5j dGlvbiwgSSBjb3VsZCBoYXZlIGEgbG9vayBhdCBpdCBhbmQgZml4IHRoZSBwcm9ibGVtLg0KQWxz bywgSSBvcGVuZWQgYW4gaXNzdWUgaW4gZ2l0aHViOiBodHRwczovL2dpdGh1Yi5jb20vc2VxYW4v c2VxYW4vaXNzdWVzLzY5OSwgZm9yIHRyYWNraW5nIHRoZSBpc3N1ZS4NCg0KDQpLaW5kIHJlZ2Fy ZHMsDQoNClJlbsOpIFJhaG4NCg0KT24gMTYgTm92IDIwMTQsIGF0IDA0OjE3LCBCcmV0dCBCb3dt YW4gPGJuYm93bWFuQGdtYWlsLmNvbTxtYWlsdG86Ym5ib3dtYW5AZ21haWwuY29tPj4gd3JvdGU6 DQoNCkknbSB0cnlpbmcgdG8gYnVpbGQgYSB0b29sIHdpdGggU2VxQW4gdG8gcXVpY2tseSBhbGln biBzb21lIFBhY0JpbyBkYXRhLCB1c2luZyAiYmFuZGVkQ2hhaW5BbGlnbm1lbnQiLCBidXQgSSdt IGNvbnNpc3RlbnRseSBnZXR0aW5nIGEgY3Jhc2ggZHVyaW5nIHRoZSB0cmFjZS1iYWNrIHN0ZXAu ICBUaGUgZ2VuZXJhdGlvbiBvZiB0aGUgU2VlZHMgKFN1ZmZpeEFycmF5KSBhbmQgdGhlIGZpbmRp bmcgb2YgdGhlIGJhc2UgU2VlZENoYWluIHdvcmtzIGZpbmUsIGJ1dCB0aGUgZmluYWwgc3RlcCBv ZiB0dXJuaW5nIHRoYXQgaW50byBhbiBhbGlnbm1lbnQgZG9lc24ndCBhcHBlYXIgdG8gd29yay4N Cg0KU3VnZ2VzdGlvbnM/DQoNCkVycm9yIExvZzoNCiIiIg0KYmJvd21hbkBsb2NhbGhvc3Q6fi9n aXQvU1JTTEkkIC4vc3JjL0MrKy9zcnNsaSB0ZXN0L2RhdGEvcXVlcnkvZWNvbGlfNXBfc2FtcGxl LmZhc3RxIHRlc3QvZGF0YS9yZWZlcmVuY2UvZWNvbGlLMTJfNXBfYXNzZW1ibHkuZmFzdGENClF1 ZXJ5IDANCkZpbmlzaGVkIGZpbmRpbmcgc2VlZHMNCkZpbmlzaGluZyBjaGFpbmluZyBzZWVkcw0K U3RhcnRpbmcgYWxpZ25tZW50IG9mIHNlcXVlbmNlcw0KL3Vzci9pbmNsdWRlL3NlcWFuL3NlZWRz L2JhbmRlZF9jaGFpbl9hbGlnbm1lbnRfdHJhY2ViYWNrLmg6MTk1IEFzc2VydGlvbiBmYWlsZWQg OiBpc0dsdWVkID09IHRydWUgd2FzOiAwICE9IDEgKEZhdGFsIGVycm9yIHdoaWxlIHRyeWluZyB0 byBjb25uZWN0IHRyYWNlIGJhY2tzOiBObyBnbHVlIHBvaW50IGF2YWlsYWJsZSEpDQpBYm9ydGVk IChjb3JlIGR1bXBlZCkNCiIiIg0KW2h0dHBzOi8vc3NsLmdzdGF0aWMuY29tL3VpL3YxL2ljb25z L21haWwvaW1hZ2VzL2NsZWFyZG90LmdpZl0NCg0KLUJyZXR0DQpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXw0Kc2VxYW4tZGV2IG1haWxpbmcgbGlzdA0Kc2Vx YW4tZGV2QGxpc3RzLmZ1LWJlcmxpbi5kZTxtYWlsdG86c2VxYW4tZGV2QGxpc3RzLmZ1LWJlcmxp bi5kZT4NCmh0dHBzOi8vbGlzdHMuZnUtYmVybGluLmRlL2xpc3RpbmZvL3NlcWFuLWRldg0KDQot LS0NCg0KUmVuw6kgUmFobg0KUGguRC4gU3R1ZGVudA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NClRlbDogICgrNDkpIDMwIDgzOCA3NTI3Nw0KTWFpbDogcmVuZS5yYWhuQGZ1LWJl cmxpbi5kZTxtYWlsdG86cmVuZS5yYWhuQGZ1LWJlcmxpbi5kZT4NCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQpJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZQ0KQWxnb3JpdGht aWMgQmlvaW5mb3JtYXRpY3MgKEFCSSkNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQpGcmVpZSBVbml2ZXJzaXTDpHQgQmVybGluDQpUYWt1c3RyYcOfZSA5DQoxNDE5NSBCZXJsaW4N Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCg== --_000_50D46377BAED47B380916DF539B7C9E8fritzbox_ Content-Type: text/html; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IHN0eWxlPSJ3b3JkLXdy YXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJy ZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPg0KSGV5IEJyZXR0LCZuYnNwOw0KPGRp diBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+SXQgY291bGQg aGF2ZSBtdWx0aXBsZSByZWFzb25zLiZuYnNwOzwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5JbiBnZW5l cmFsLCBpdCBtZWFucyB0aGF0IHRoZXJlIHdhcyBhIHRyYWNlYmFjayBwYXRoIGZyb20gYSBzZWVk IG9yIGEgZ2FwLCB0aGF0IGNvdWxkbuKAmXQgYmUgY29ubmVjdGVkIHdpdGggb25lIG9mIHRoZSBz byBmYXIgZ2VuZXJhdGVkIHRyYWNlYmFjayBwYXRocy4gTm90ZSwgdGhhdCB0aGUgdHJhY2ViYWNr IGlzIGNvbXB1dGVkIGluY3JlbWVudGFsbHkgdG8gcmVkdWNlIHRoZSBzcGFjZSByZXF1aXJlbWVu dHMuJm5ic3A7PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPklmIHlvdSBjb3VsZCBzZW5kIG1lIGEgc2lt cGxlIHRleHQgZmlsZSBjb250YWluaW5nIHRoZSBzZWVkcyBvZiB0aGUgc2VlZCBjaGFpbiAob25l IHNlZWQgcGVyIHJvdyB1c2luZyB0aGUgJmx0OyZsdDstb3BlcmF0b3IpLCB0aGF0IGlzIGlucHV0 IHRvIHRoZSBiYW5kZWQgY2hhaW4gYWxpZ25tZW50IGZ1bmN0aW9uLCBJIGNvdWxkIGhhdmUgYSBs b29rIGF0IGl0IGFuZCBmaXggdGhlIHByb2JsZW0uJm5ic3A7PC9kaXY+DQo8ZGl2IGNsYXNzPSIi PkFsc28sIEkgb3BlbmVkIGFuIGlzc3VlIGluIGdpdGh1YjombmJzcDs8YSBocmVmPSJodHRwczov L2dpdGh1Yi5jb20vc2VxYW4vc2VxYW4vaXNzdWVzLzY5OSIgY2xhc3M9IiI+aHR0cHM6Ly9naXRo dWIuY29tL3NlcWFuL3NlcWFuL2lzc3Vlcy82OTk8L2E+LCBmb3IgdHJhY2tpbmcgdGhlIGlzc3Vl LjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9 IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPktpbmQgcmVnYXJkcywmbmJz cDs8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNz PSIiPlJlbsOpIFJhaG48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPGRpdj4N CjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiIGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj5PbiAxNiBO b3YgMjAxNCwgYXQgMDQ6MTcsIEJyZXR0IEJvd21hbiAmbHQ7PGEgaHJlZj0ibWFpbHRvOmJuYm93 bWFuQGdtYWlsLmNvbSIgY2xhc3M9IiI+Ym5ib3dtYW5AZ21haWwuY29tPC9hPiZndDsgd3JvdGU6 PC9kaXY+DQo8YnIgY2xhc3M9IkFwcGxlLWludGVyY2hhbmdlLW5ld2xpbmUiPg0KPGRpdiBjbGFz cz0iIj4NCjxkaXYgZGlyPSJsdHIiIGNsYXNzPSIiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTph cmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxM3B4IiBjbGFzcz0iIj5JJ20gdHJ5aW5nIHRvIGJ1 aWxkIGEgdG9vbCB3aXRoJm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPSIiIHN0eWxlPSJmb250LWZh bWlseTphcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxM3B4O2JhY2tncm91bmQ6cmdiKDI1NSwy NTUsMjA0KSI+U2VxQW48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OmFyaWFsLHNhbnMt c2VyaWY7Zm9udC1zaXplOjEzcHgiIGNsYXNzPSIiPiZuYnNwO3RvDQogcXVpY2tseSBhbGlnbiBz b21lIFBhY0JpbyBkYXRhLCB1c2luZyAmcXVvdDtiYW5kZWRDaGFpbkFsaWdubWVudCZxdW90Oywg YnV0IEknbSBjb25zaXN0ZW50bHkgZ2V0dGluZyBhIGNyYXNoIGR1cmluZyB0aGUgdHJhY2UtYmFj ayBzdGVwLiZuYnNwOyBUaGUgZ2VuZXJhdGlvbiBvZiB0aGUgU2VlZHMgKFN1ZmZpeEFycmF5KSBh bmQgdGhlIGZpbmRpbmcgb2YgdGhlIGJhc2UgU2VlZENoYWluIHdvcmtzIGZpbmUsIGJ1dCB0aGUg ZmluYWwgc3RlcCBvZiB0dXJuaW5nIHRoYXQgaW50bw0KIGFuIGFsaWdubWVudCBkb2Vzbid0IGFw cGVhciB0byB3b3JrLiAmbmJzcDs8L3NwYW4+DQo8ZGl2IHN0eWxlPSJmb250LWZhbWlseTphcmlh bCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxM3B4IiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rp dj4NCjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OmFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEz cHgiIGNsYXNzPSIiPlN1Z2dlc3Rpb25zPw0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8 L2Rpdj4NCjxkaXYgY2xhc3M9IiI+RXJyb3IgTG9nOjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4mcXVv dDsmcXVvdDsmcXVvdDs8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPmJib3dt YW5AbG9jYWxob3N0On4vZ2l0L1NSU0xJJCAuL3NyYy9DJiM0MzsmIzQzOy9zcnNsaSB0ZXN0L2Rh dGEvcXVlcnkvZWNvbGlfNXBfc2FtcGxlLmZhc3RxIHRlc3QvZGF0YS9yZWZlcmVuY2UvZWNvbGlL MTJfNXBfYXNzZW1ibHkuZmFzdGEmbmJzcDs8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+UXVlcnkgMDwv ZGl2Pg0KPGRpdiBjbGFzcz0iIj5GaW5pc2hlZCBmaW5kaW5nIHNlZWRzPC9kaXY+DQo8ZGl2IGNs YXNzPSIiPkZpbmlzaGluZyBjaGFpbmluZyBzZWVkczwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5TdGFy dGluZyBhbGlnbm1lbnQgb2Ygc2VxdWVuY2VzPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPi91c3IvaW5j bHVkZS88c3BhbiBjbGFzcz0iIiBzdHlsZT0iYmFja2dyb3VuZDpyZ2IoMjU1LDI1NSwyMDQpIj5z ZXFhbjwvc3Bhbj4vc2VlZHMvYmFuZGVkX2NoYWluX2FsaWdubWVudF90cmFjZWJhY2suaDoxOTUg QXNzZXJ0aW9uIGZhaWxlZCA6IGlzR2x1ZWQgPT0gdHJ1ZSB3YXM6IDAgIT0gMSAoRmF0YWwgZXJy b3Igd2hpbGUgdHJ5aW5nIHRvIGNvbm5lY3QgdHJhY2UgYmFja3M6IE5vIGdsdWUgcG9pbnQgYXZh aWxhYmxlISk8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+QWJvcnRlZCAoY29yZSBkdW1wZWQpPC9kaXY+ DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+JnF1b3Q7JnF1b3Q7JnF1b3Q7PC9kaXY+DQo8ZGl2IGNs YXNzPSIiPg0KPGRpdiBpZD0iOjE4NiIgY2xhc3M9IiIgdGFiaW5kZXg9IjAiPjxpbWcgY2xhc3M9 IiIgc3JjPSJodHRwczovL3NzbC5nc3RhdGljLmNvbS91aS92MS9pY29ucy9tYWlsL2ltYWdlcy9j bGVhcmRvdC5naWYiPjwvZGl2Pg0KPC9kaXY+DQo8c3BhbiBjbGFzcz0iIj48Zm9udCBjb2xvcj0i Izg4ODg4OCIgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0K PGRpdiBjbGFzcz0iIj4tQnJldHQ8L2Rpdj4NCjwvZm9udD48L3NwYW4+PC9kaXY+DQo8L2Rpdj4N Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyIGNsYXNz PSIiPg0Kc2VxYW4tZGV2IG1haWxpbmcgbGlzdDxiciBjbGFzcz0iIj4NCjxhIGhyZWY9Im1haWx0 bzpzZXFhbi1kZXZAbGlzdHMuZnUtYmVybGluLmRlIiBjbGFzcz0iIj5zZXFhbi1kZXZAbGlzdHMu ZnUtYmVybGluLmRlPC9hPjxiciBjbGFzcz0iIj4NCmh0dHBzOi8vbGlzdHMuZnUtYmVybGluLmRl L2xpc3RpbmZvL3NlcWFuLWRldjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0K PC9kaXY+DQo8YnIgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj4NCjxk aXYgc3R5bGU9Im9ycGhhbnM6IDI7IHdpZG93czogMjsiIGNsYXNzPSIiPjxmb250IGZhY2U9IkNv dXJpZXIgTmV3IiBjbGFzcz0iIj4tLS08L2ZvbnQ+PC9kaXY+DQo8ZGl2IHN0eWxlPSJvcnBoYW5z OiAyOyB3aWRvd3M6IDI7IiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyIgY2xhc3M9 IiI+PGJyIGNsYXNzPSIiPg0KPC9mb250PjwvZGl2Pg0KPGRpdiBzdHlsZT0ib3JwaGFuczogMjsg d2lkb3dzOiAyOyIgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIiPlJl bsOpIFJhaG48L2ZvbnQ+PC9kaXY+DQo8ZGl2IHN0eWxlPSJvcnBoYW5zOiAyOyB3aWRvd3M6IDI7 IiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+UGguRC4gU3R1ZGVu dDwvZm9udD48L2Rpdj4NCjxkaXYgc3R5bGU9Im9ycGhhbnM6IDI7IHdpZG93czogMjsiIGNsYXNz PSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj4tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLTwvZm9udD48L2Rpdj4NCjxkaXYgc3R5bGU9Im9ycGhhbnM6IDI7IHdpZG93 czogMjsiIGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyIg Y2xhc3M9IiI+VGVsOiAmbmJzcDsoJiM0Mzs0OSkgMzAgODM4IDc1Mjc3PC9mb250PjwvZGl2Pg0K PGRpdiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+TWFpbDombmJz cDs8YSBocmVmPSJtYWlsdG86cmVuZS5yYWhuQGZ1LWJlcmxpbi5kZSIgY2xhc3M9IiI+cmVuZS5y YWhuQGZ1LWJlcmxpbi5kZTwvYT48L2ZvbnQ+PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxmb250IGZh Y2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LTwvZm9udD48L2Rpdj4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ib3JwaGFuczogMjsgd2lkb3dzOiAy OyIgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIiPkluc3RpdHV0ZSBv ZiBDb21wdXRlciBTY2llbmNlPC9mb250PjwvZGl2Pg0KPGRpdiBzdHlsZT0ib3JwaGFuczogMjsg d2lkb3dzOiAyOyIgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIiPkFs Z29yaXRobWljIEJpb2luZm9ybWF0aWNzIChBQkkpPC9mb250PjwvZGl2Pg0KPGRpdiBzdHlsZT0i b3JwaGFuczogMjsgd2lkb3dzOiAyOyIgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXci IGNsYXNzPSIiPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPC9mb250PjwvZGl2Pg0K PGRpdiBzdHlsZT0ib3JwaGFuczogMjsgd2lkb3dzOiAyOyIgY2xhc3M9IiI+PGZvbnQgZmFjZT0i Q291cmllciBOZXciIGNsYXNzPSIiPkZyZWllIFVuaXZlcnNpdMOkdCBCZXJsaW48L2ZvbnQ+PC9k aXY+DQo8ZGl2IHN0eWxlPSJvcnBoYW5zOiAyOyB3aWRvd3M6IDI7IiBjbGFzcz0iIj48Zm9udCBm YWNlPSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+VGFrdXN0cmHDn2UgOTwvZm9udD48L2Rpdj4NCjxk aXYgc3R5bGU9Im9ycGhhbnM6IDI7IHdpZG93czogMjsiIGNsYXNzPSIiPjxmb250IGZhY2U9IkNv dXJpZXIgTmV3IiBjbGFzcz0iIj4xNDE5NSBCZXJsaW48L2ZvbnQ+PC9kaXY+DQo8ZGl2IHN0eWxl PSJvcnBoYW5zOiAyOyB3aWRvd3M6IDI7IiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3VyaWVyIE5l dyIgY2xhc3M9IiI+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08L2ZvbnQ+PC9kaXY+ DQo8L2Rpdj4NCjwvZGl2Pg0KPGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+ DQo= --_000_50D46377BAED47B380916DF539B7C9E8fritzbox_-- From anto.trande@gmail.com Sun Nov 16 22:14:48 2014 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1Xq79i-002T2K-LG>; Sun, 16 Nov 2014 22:14:46 +0100 Received: from mail-wg0-f48.google.com ([74.125.82.48]) by relay1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1Xq79i-003qhG-J5>; Sun, 16 Nov 2014 22:14:46 +0100 Received: by mail-wg0-f48.google.com with SMTP id y19so1151884wgg.21 for ; Sun, 16 Nov 2014 13:14:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject :content-type:content-transfer-encoding; bh=wgB7kNQyCmf0e3zZkouwCoOeqj0Ek/eF+zDQemJ69Jc=; b=yzlz4sjhPEumNRFiNxJRnfQ57NdbbBSNOgj9F18pmL/rHlmCe+aLnG7t2p6kufV8np AT2jS3N0KQEucyZKzbgfO2ySkaKKxfbV3iQV1kvCp+SywjwebsnWF5PWhaLBc6qqNGMt S6x2xKCx9bRriBlAH9xz9h7HPN6SCVda0VDQypAcnUXqAx10kQOjhGGHfq5IcqUIRAtn cYa3HLNKSbxJSFSzCnDuruV6QkceCZLwvXMKr+E2kMEv7w9J52f10rwaXzNzqOyVjFFY lCQ68lLI5LZWeYo4UDNqr/STMBcRC/KAQQIa+TEWjvEEBTI45241G+IqMIEnGPuADU7W YXaQ== X-Received: by 10.180.21.210 with SMTP id x18mr26027989wie.19.1416172485273; Sun, 16 Nov 2014 13:14:45 -0800 (PST) Received: from localhost.localdomain ([46.227.4.49]) by mx.google.com with ESMTPSA id cu9sm48885491wjb.0.2014.11.16.13.14.43 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 16 Nov 2014 13:14:44 -0800 (PST) Message-ID: <546913C0.3060606@gmail.com> Date: Sun, 16 Nov 2014 22:14:40 +0100 From: Antonio Trande User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 MIME-Version: 1.0 To: seqan-dev@lists.fu-berlin.de Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: 74.125.82.48 X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1416172486-00067E64-6A8E080D/0/0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.016304, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=-0.7 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,T_DKIM_INVALID X-Spam-Checker-Version: SpamAssassin 3.4.0 on Burundi.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: [Seqan-dev] [seqan-1.4.2] breakpoint_calculator errors X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Nov 2014 21:14:48 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi all. I need your help with these errors during SeqAn compilation on Fedora 21. Here the full log: https://kojipkgs.fedoraproject.org//work/tasks/2027/8162027/build.log - -- Antonio Trande mailto: sagitter 'at' fedoraproject 'dot' org http://fedoraos.wordpress.com/ https://fedoraproject.org/wiki/User:Sagitter GPG Key: 0x66E15D00 Check on https://keys.fedoraproject.org/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJUaRPAAAoJEFyovWBm4V0A3+cQAJJQgQuBXdj9hsH0PKcuZ+r3 EyrZK0OoUdVJvtF1TUUpDPnJHVL1ZbvJN0ks4C2hGT0McMMKTy+zXHdIYlGqliXW Lxhl0pJFTQwFj2p7xnbY7D+31vBOfCLqaClId9ZLwij7sUu0zYsD8d7up99JkmrE TmblYcJmE8lechG6dmz7tW25gobcdY+Y7M7e435aCrLDHrntkE3H1YtXJOB5l11y 4otH4hd0Vo4bap//NvOZKtDSoyC46WS2ZAEOKghNwzOjdETDbubWsdsDwqK5Td98 DUfFTjCFk/AoGLxeoBCGzpVDDqr5zrbXCAaOvXwbXp8D97c3tYCnjqII9l/i570k oYdJTCmvZFbx5YkG+u2pLq5DBmtC0ikQC+/f0bBlwAsoEoN8OymcIIyw+fjPLJ4t gMXzqJcKCci5pAqevKDrz49lvAfeWLg52Ud7eQUpwe6eWcDA08gvggphboAzsiMS GNkxEhvQKW1Tk5KkuRLz+VeuNOC8JNPRNDHiKNHA76wdtb+NJPQlvr2/3Qz87g+i zIkO4Svz/pzltc/RUwIQaDQxRe5Cadfnv5NWKOWA5iZ3xYBJqU8t7+um79XyY4sb 3NoZ9z/vBkmm8J5FOtsLusdWzGo0UcX0j1OAmd6mqmh//bJZ1Bb0WhgTjgERMr83 VOKNsl2dzVuYbvofCIQs =ngAX -----END PGP SIGNATURE----- From bnbowman@gmail.com Mon Nov 17 06:39:48 2014 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XqF2Q-00356a-5W>; Mon, 17 Nov 2014 06:39:46 +0100 Received: from mail-yk0-f169.google.com ([209.85.160.169]) by relay1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1XqF2P-000XtX-Ne>; Mon, 17 Nov 2014 06:39:46 +0100 Received: by mail-yk0-f169.google.com with SMTP id 79so2050633ykr.14 for ; Sun, 16 Nov 2014 21:39:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=8jHIWa1PDeSRODZA8eTIQdE9fs+iszpovTNtKMjZZ1E=; b=TIfP5pjcX1VRLbz7wewTrPOpNvsimsG+ffdyX7BnpZ+N6/ufDrIl/3OL/BxCI22DsY PpT05zFtyya/3OqS0ecit053EY9qU3GT4iwEkNNg0ij1JJhuJelCOOd/4jL7DbcvfIcG pC/KY14LEuhzuMr1sEc2MjQcJwybvx3klu87JqJ/RSzw9qTTJJrvJGamSjOrroUjFmCu XA98UbiIqRpouZpGYqA4XFhxZfHz2VYhJ4RJCpaeo+Jk1miQWThnm1CZVR8uAEeJ1ucR /ZpCp4LG+zp6BIXhYjVAQWzN5H+2jR4w25Qr58lEWxT/0Moxt93VuuO/+oFLqzO47ujR ENQQ== MIME-Version: 1.0 X-Received: by 10.236.199.3 with SMTP id w3mr23280394yhn.20.1416202781809; Sun, 16 Nov 2014 21:39:41 -0800 (PST) Received: by 10.170.110.19 with HTTP; Sun, 16 Nov 2014 21:39:41 -0800 (PST) In-Reply-To: <50D46377-BAED-47B3-8091-6DF539B7C9E8@fritz.box> References: <50D46377-BAED-47B3-8091-6DF539B7C9E8@fritz.box> Date: Sun, 16 Nov 2014 21:39:41 -0800 Message-ID: From: Brett Bowman To: SeqAn Development Content-Type: multipart/mixed; boundary=089e0160b074bd7b600508076746 X-Originating-IP: 209.85.160.169 X-ZEDAT-Hint: A X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1416202786-00067E64-6C2CC6E6/0/0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.426887, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=-0.7 required=5.0 tests=FREEMAIL_FROM,HTML_MESSAGE, RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,T_DKIM_INVALID X-Spam-Checker-Version: SpamAssassin 3.4.0 on Benin.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [Seqan-dev] Fatal Error in Banded Chain Alignment Traceback X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Nov 2014 05:39:48 -0000 --089e0160b074bd7b600508076746 Content-Type: multipart/alternative; boundary=089e0160b074bd7b540508076744 --089e0160b074bd7b540508076744 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Thanks Rene, My query, reference, and canonical alignment from BLASR (the PacBio-specific aligner) attached. I also noticed that the seeds it's chaining with chainGlobalAlignment() are way off the diagonal, which may be related - details below: """ Query #1 - m130404_014004_sidney_c100506902550000001823076808221337_s1_p0/5779/0_10397 Finished finding seeds Seeds: 1939 Finishing chaining seeds Chain: 44 Seed(7688, 57, 7706, 75, lower diag =3D 7631, upper diag = =3D 7631) Length: 18 Seed(7707, 94, 7722, 109, lower diag =3D 7613, upper diag = =3D 7613) Length: 15 Seed(7933, 111, 7946, 124, lower diag =3D 7822, upper diag= =3D 7822) Length: 13 Seed(7949, 130, 7965, 146, lower diag =3D 7819, upper diag= =3D 7819) Length: 16 Seed(8065, 299, 8078, 312, lower diag =3D 7766, upper diag= =3D 7766) Length: 13 Seed(8109, 314, 8126, 331, lower diag =3D 7795, upper diag= =3D 7795) Length: 17 Seed(8169, 363, 8181, 375, lower diag =3D 7806, upper diag= =3D 7806) Length: 12 Seed(8208, 381, 8222, 395, lower diag =3D 7827, upper diag= =3D 7827) Length: 14 Seed(8222, 402, 8234, 414, lower diag =3D 7820, upper diag= =3D 7820) Length: 12 Seed(8287, 446, 8304, 463, lower diag =3D 7841, upper diag= =3D 7841) Length: 17 Seed(8304, 466, 8316, 478, lower diag =3D 7838, upper diag= =3D 7838) Length: 12 Seed(8326, 748, 8338, 760, lower diag =3D 7578, upper diag= =3D 7578) Length: 12 Seed(8354, 761, 8366, 773, lower diag =3D 7593, upper diag= =3D 7593) Length: 12 Seed(8426, 801, 8438, 813, lower diag =3D 7625, upper diag= =3D 7625) Length: 12 Seed(8702, 2291, 8721, 2310, lower diag =3D 6411, upper di= ag =3D 6411) Length: 19 Seed(8769, 2314, 8781, 2326, lower diag =3D 6455, upper di= ag =3D 6455) Length: 12 Seed(8794, 2387, 8806, 2399, lower diag =3D 6407, upper di= ag =3D 6407) Length: 12 Seed(8835, 2400, 8847, 2412, lower diag =3D 6435, upper di= ag =3D 6435) Length: 12 Seed(9162, 2650, 9174, 2662, lower diag =3D 6512, upper di= ag =3D 6512) Length: 12 Seed(9184, 2676, 9196, 2688, lower diag =3D 6508, upper di= ag =3D 6508) Length: 12 Seed(9196, 2736, 9208, 2748, lower diag =3D 6460, upper di= ag =3D 6460) Length: 12 Seed(9223, 2818, 9235, 2830, lower diag =3D 6405, upper di= ag =3D 6405) Length: 12 Seed(9251, 2844, 9267, 2860, lower diag =3D 6407, upper di= ag =3D 6407) Length: 16 Seed(9294, 2871, 9308, 2885, lower diag =3D 6423, upper di= ag =3D 6423) Length: 14 Seed(9314, 2891, 9327, 2904, lower diag =3D 6423, upper di= ag =3D 6423) Length: 13 Seed(9432, 2976, 9447, 2991, lower diag =3D 6456, upper di= ag =3D 6456) Length: 15 Seed(9515, 2992, 9527, 3004, lower diag =3D 6523, upper di= ag =3D 6523) Length: 12 Seed(9675, 3385, 9701, 3411, lower diag =3D 6290, upper di= ag =3D 6290) Length: 26 Seed(9724, 3414, 9736, 3426, lower diag =3D 6310, upper di= ag =3D 6310) Length: 12 Seed(9791, 3571, 9804, 3584, lower diag =3D 6220, upper di= ag =3D 6220) Length: 13 Seed(9805, 3596, 9817, 3608, lower diag =3D 6209, upper di= ag =3D 6209) Length: 12 Seed(9818, 4915, 9830, 4927, lower diag =3D 4903, upper di= ag =3D 4903) Length: 12 Seed(9842, 4939, 9854, 4951, lower diag =3D 4903, upper di= ag =3D 4903) Length: 12 Seed(9873, 5045, 9885, 5057, lower diag =3D 4828, upper di= ag =3D 4828) Length: 12 Seed(9886, 5077, 9898, 5089, lower diag =3D 4809, upper di= ag =3D 4809) Length: 12 Seed(9943, 5242, 9955, 5254, lower diag =3D 4701, upper di= ag =3D 4701) Length: 12 Seed(9957, 5385, 9969, 5397, lower diag =3D 4572, upper di= ag =3D 4572) Length: 12 Seed(9994, 5423, 10006, 5435, lower diag =3D 4571, upper diag =3D 4571) Length: 12 Seed(10062, 7096, 10074, 7108, lower diag =3D 2966, upper diag =3D 2966) Length: 12 Seed(10102, 7109, 10114, 7121, lower diag =3D 2993, upper diag =3D 2993) Length: 12 Seed(10156, 7131, 10178, 7153, lower diag =3D 3025, upper diag =3D 3025) Length: 22 Seed(10277, 7354, 10299, 7376, lower diag =3D 2923, upper diag =3D 2923) Length: 22 Seed(10299, 7378, 10313, 7392, lower diag =3D 2921, upper diag =3D 2921) Length: 14 Seed(10371, 7400, 10385, 7414, lower diag =3D 2971, upper diag =3D 2971) Length: 14 """ -Brett On Sun, Nov 16, 2014 at 2:57 AM, Rahn, Ren=C3=A9 wrote: > Hey Brett, > > It could have multiple reasons. > In general, it means that there was a traceback path from a seed or a gap= , > that couldn=E2=80=99t be connected with one of the so far generated trace= back > paths. Note, that the traceback is computed incrementally to reduce the > space requirements. > If you could send me a simple text file containing the seeds of the seed > chain (one seed per row using the <<-operator), that is input to the band= ed > chain alignment function, I could have a look at it and fix the problem. > Also, I opened an issue in github: > https://github.com/seqan/seqan/issues/699, for tracking the issue. > > > Kind regards, > > Ren=C3=A9 Rahn > > On 16 Nov 2014, at 04:17, Brett Bowman wrote: > > I'm trying to build a tool with SeqAn to quickly align some PacBio data, > using "bandedChainAlignment", but I'm consistently getting a crash during > the trace-back step. The generation of the Seeds (SuffixArray) and the > finding of the base SeedChain works fine, but the final step of turning > that into an alignment doesn't appear to work. > > Suggestions? > > Error Log: > """ > bbowman@localhost:~/git/SRSLI$ ./src/C++/srsli > test/data/query/ecoli_5p_sample.fastq > test/data/reference/ecoliK12_5p_assembly.fasta > Query 0 > Finished finding seeds > Finishing chaining seeds > Starting alignment of sequences > /usr/include/seqan/seeds/banded_chain_alignment_traceback.h:195 Assertion > failed : isGlued =3D=3D true was: 0 !=3D 1 (Fatal error while trying to c= onnect > trace backs: No glue point available!) > Aborted (core dumped) > """ > > -Brett > _______________________________________________ > seqan-dev mailing list > seqan-dev@lists.fu-berlin.de > https://lists.fu-berlin.de/listinfo/seqan-dev > > > --- > > Ren=C3=A9 Rahn > Ph.D. Student > -------------------------------- > Tel: (+49) 30 838 75277 > Mail: rene.rahn@fu-berlin.de > -------------------------------- > Institute of Computer Science > Algorithmic Bioinformatics (ABI) > -------------------------------- > Freie Universit=C3=A4t Berlin > Takustra=C3=9Fe 9 > 14195 Berlin > -------------------------------- > > > _______________________________________________ > seqan-dev mailing list > seqan-dev@lists.fu-berlin.de > https://lists.fu-berlin.de/listinfo/seqan-dev > > --089e0160b074bd7b540508076744 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Thanks Rene,

My query, reference,= and canonical alignment from BLASR (the PacBio-specific aligner) attached.=

I also noticed that the seeds it's chaining with ch= ainGlobalAlignment() are way off the diagonal, which may be related - detai= ls below:=C2=A0

"""
Qu= ery #1 - m130404_014004_sidney_c100506902550000001823076808221337_s1_p0/577= 9/0_10397
Finished finding seeds
Seeds: 1939
= Finishing chaining seeds
Chain: 44
Seed<Simple, TCon= fig>(7688, 57, 7706, 75, lower diag =3D 7631, upper diag =3D 7631) Lengt= h: 18
Seed<Simple, TConfig>(7707, 94, 7722, 109, lower diag= =3D 7613, upper diag =3D 7613) Length: 15
Seed<Simple, TConfi= g>(7933, 111, 7946, 124, lower diag =3D 7822, upper diag =3D 7822) Lengt= h: 13
Seed<Simple, TConfig>(7949, 130, 7965, 146, lower dia= g =3D 7819, upper diag =3D 7819) Length: 16
Seed<Simple, TConf= ig>(8065, 299, 8078, 312, lower diag =3D 7766, upper diag =3D 7766) Leng= th: 13
Seed<Simple, TConfig>(8109, 314, 8126, 331, lower di= ag =3D 7795, upper diag =3D 7795) Length: 17
Seed<Simple, TCon= fig>(8169, 363, 8181, 375, lower diag =3D 7806, upper diag =3D 7806) Len= gth: 12
Seed<Simple, TConfig>(8208, 381, 8222, 395, lower d= iag =3D 7827, upper diag =3D 7827) Length: 14
Seed<Simple, TCo= nfig>(8222, 402, 8234, 414, lower diag =3D 7820, upper diag =3D 7820) Le= ngth: 12
Seed<Simple, TConfig>(8287, 446, 8304, 463, lower = diag =3D 7841, upper diag =3D 7841) Length: 17
Seed<Simple, TC= onfig>(8304, 466, 8316, 478, lower diag =3D 7838, upper diag =3D 7838) L= ength: 12
Seed<Simple, TConfig>(8326, 748, 8338, 760, lower= diag =3D 7578, upper diag =3D 7578) Length: 12
Seed<Simple, T= Config>(8354, 761, 8366, 773, lower diag =3D 7593, upper diag =3D 7593) = Length: 12
Seed<Simple, TConfig>(8426, 801, 8438, 813, lowe= r diag =3D 7625, upper diag =3D 7625) Length: 12
Seed<Simple, = TConfig>(8702, 2291, 8721, 2310, lower diag =3D 6411, upper diag =3D 641= 1) Length: 19
Seed<Simple, TConfig>(8769, 2314, 8781, 2326,= lower diag =3D 6455, upper diag =3D 6455) Length: 12
Seed<Sim= ple, TConfig>(8794, 2387, 8806, 2399, lower diag =3D 6407, upper diag = =3D 6407) Length: 12
Seed<Simple, TConfig>(8835, 2400, 8847= , 2412, lower diag =3D 6435, upper diag =3D 6435) Length: 12
Seed= <Simple, TConfig>(9162, 2650, 9174, 2662, lower diag =3D 6512, upper = diag =3D 6512) Length: 12
Seed<Simple, TConfig>(9184, 2676,= 9196, 2688, lower diag =3D 6508, upper diag =3D 6508) Length: 12
Seed<Simple, TConfig>(9196, 2736, 9208, 2748, lower diag =3D 6460, u= pper diag =3D 6460) Length: 12
Seed<Simple, TConfig>(9223, = 2818, 9235, 2830, lower diag =3D 6405, upper diag =3D 6405) Length: 12
Seed<Simple, TConfig>(9251, 2844, 9267, 2860, lower diag =3D 64= 07, upper diag =3D 6407) Length: 16
Seed<Simple, TConfig>(9= 294, 2871, 9308, 2885, lower diag =3D 6423, upper diag =3D 6423) Length: 14=
Seed<Simple, TConfig>(9314, 2891, 9327, 2904, lower diag = =3D 6423, upper diag =3D 6423) Length: 13
Seed<Simple, TConfig= >(9432, 2976, 9447, 2991, lower diag =3D 6456, upper diag =3D 6456) Leng= th: 15
Seed<Simple, TConfig>(9515, 2992, 9527, 3004, lower = diag =3D 6523, upper diag =3D 6523) Length: 12
Seed<Simple, TC= onfig>(9675, 3385, 9701, 3411, lower diag =3D 6290, upper diag =3D 6290)= Length: 26
Seed<Simple, TConfig>(9724, 3414, 9736, 3426, l= ower diag =3D 6310, upper diag =3D 6310) Length: 12
Seed<Simpl= e, TConfig>(9791, 3571, 9804, 3584, lower diag =3D 6220, upper diag =3D = 6220) Length: 13
Seed<Simple, TConfig>(9805, 3596, 9817, 36= 08, lower diag =3D 6209, upper diag =3D 6209) Length: 12
Seed<= Simple, TConfig>(9818, 4915, 9830, 4927, lower diag =3D 4903, upper diag= =3D 4903) Length: 12
Seed<Simple, TConfig>(9842, 4939, 985= 4, 4951, lower diag =3D 4903, upper diag =3D 4903) Length: 12
See= d<Simple, TConfig>(9873, 5045, 9885, 5057, lower diag =3D 4828, upper= diag =3D 4828) Length: 12
Seed<Simple, TConfig>(9886, 5077= , 9898, 5089, lower diag =3D 4809, upper diag =3D 4809) Length: 12
Seed<Simple, TConfig>(9943, 5242, 9955, 5254, lower diag =3D 4701, = upper diag =3D 4701) Length: 12
Seed<Simple, TConfig>(9957,= 5385, 9969, 5397, lower diag =3D 4572, upper diag =3D 4572) Length: 12
Seed<Simple, TConfig>(9994, 5423, 10006, 5435, lower diag =3D = 4571, upper diag =3D 4571) Length: 12
Seed<Simple, TConfig>= (10062, 7096, 10074, 7108, lower diag =3D 2966, upper diag =3D 2966) Length= : 12
Seed<Simple, TConfig>(10102, 7109, 10114, 7121, lower = diag =3D 2993, upper diag =3D 2993) Length: 12
Seed<Simple, TC= onfig>(10156, 7131, 10178, 7153, lower diag =3D 3025, upper diag =3D 302= 5) Length: 22
Seed<Simple, TConfig>(10277, 7354, 10299, 737= 6, lower diag =3D 2923, upper diag =3D 2923) Length: 22
Seed<S= imple, TConfig>(10299, 7378, 10313, 7392, lower diag =3D 2921, upper dia= g =3D 2921) Length: 14
Seed<Simple, TConfig>(10371, 7400, 1= 0385, 7414, lower diag =3D 2971, upper diag =3D 2971) Length: 14
"""

-Brett

= On Sun, Nov 16, 2014 at 2:57 AM, Rahn, Ren=C3=A9 <rene.maerker@fu-= berlin.de> wrote:
Hey Brett,=C2=A0

It could have multiple reasons.=C2=A0
In general, it means that there was a traceback path from a seed or a = gap, that couldn=E2=80=99t be connected with one of the so far generated tr= aceback paths. Note, that the traceback is computed incrementally to reduce= the space requirements.=C2=A0
If you could send me a simple text file containing the seeds of the se= ed chain (one seed per row using the <<-operator), that is input to t= he banded chain alignment function, I could have a look at it and fix the p= roblem.=C2=A0
Also, I opened an issue in github:=C2=A0https://github.com/seqan/seqan/is= sues/699, for tracking the issue.


Kind regards,=C2=A0

Ren=C3=A9 Rahn

On 16 Nov 2014, at 04:17, Brett Bowman <bnbowman@gmail.com> wrote:

I'm trying to build a tool with=C2=A0SeqAn= =C2=A0to quickly align some PacBio data, using "bandedChainAlignment", bu= t I'm consistently getting a crash during the trace-back step.=C2=A0 Th= e generation of the Seeds (SuffixArray) and the finding of the base SeedCha= in works fine, but the final step of turning that into an alignment doesn't appear to work. =C2=A0

Suggestions?

Error Log:
"""
bbowman@localhost:~/git/SRSLI$ ./src/C++/srsli test/data/query/ecoli_5= p_sample.fastq test/data/reference/ecoliK12_5p_assembly.fasta=C2=A0
Query 0
Finished finding seeds
Finishing chaining seeds
Starting alignment of sequences
/usr/include/seqan/= seeds/banded_chain_alignment_traceback.h:195 Assertion failed : isGlued =3D= =3D true was: 0 !=3D 1 (Fatal error while trying to connect trace backs: No= glue point available!)
Aborted (core dumped)
"""

-Brett
_______________________________________________
seqan-dev mailing list
seqan-dev= @lists.fu-berlin.de
https://lists.fu-berlin.de/listinfo/seqan-dev

---

Ren=C3=A9 Rahn
Ph.D. Student
--------------------------------
--------------------------------
Institute of Computer Science
Algorithmic Bioinformatics (ABI)
--------------------------------
Freie Universit=C3=A4t Berlin
Takustra=C3=9Fe 9
14195 Berlin
--------------------------------


_______________________________________________
seqan-dev mailing list
seqan-dev@lists.fu-berlin.d= e
https://lists.fu-berlin.de/listinfo/seqan-dev


--089e0160b074bd7b540508076744-- --089e0160b074bd7b600508076746 Content-Type: application/octet-stream; name="ref.fasta" Content-Disposition: attachment; filename="ref.fasta" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i2lechmw0 PnNjZjcxODAwMDAwMDAwMDJ8cXVpdmVyCkdUR0NDQ0dUQ0FUQUFUR0NDQUdUQUFUQUdDVFRHQUFB R0FUQVRUR0NDR0FHQ1RHR1RHQ0NHVFRUR0NDQwpBVENHVFRBVEdHVEdDQUFBQUFUVFRUQ0dUQ0FD R0NUVEFBQ0FDQ0FUVFRUR0NBVEdBVEdBVEdBR0NUR0cKQUFDQ0NHQ0dDQUFDR0dDVEdBVFRBQ1RH QUNDVENUQUNDQUdBQ0NHR1RHVENHQVRHQ0dDVEdBVFRHVFRDCkFHR0FUQVRHR0dHQVRUQ1RHR0FB Q1RUR0FUQVRUQ0NHQ0NHQVRUR0FBQ1RHQ0FDR0NDQUdUQUNHQ0FHVApHQ0dBQ0FUVENHVEFDQUdU VEdBQUFBQUdDR0FBR1RUQ0NUQ1RDVEdBVEdUVEdHQ1RUQ0FDR0NBR0FUVEcKVEdDVEdHQ0dDR0FH QUdDVEdBQVRDVFRHQVRDQUdBVENDR0NHQ0dBVFRDQUNDQUdHQ1RBQ0dHQUNHQ0dBCkNDQVRUR0FB VFRDVFRUQVRUQ0FUR0dHR0NBQ1RHVEdDR1RHR0NDVEFUVENHR0dUQ0FHVEdDVEFDQVRUVApDVENB VEdDR0NBQUFDQUdHR0NHVEFHQ0dDQ0FBQ0NHVEdHQ0dBVFRHQ1RDR0NBR0dDR1RHQ0NHVFRUR0MK Q0FUQUNBQ0FUVEdBQUFHQUNHQVRDQUdHR0dDR0dHVEdHVFRUQ0NUQVRHQUFBQUFDQVRDVEdDVEdU Q0dBClRHQUFBR0FUQUFDR0FUQ0FHQUNUR0NDQUFDQ1RDR0dDR0NHQ1RHQVRUR0FUR0NUR0dUR1RB Q0dDVENDVApUQ0FBR0FUVEdBQUdHR0NHVFRBQ0FBQUdBVEFUR0FHQ1RBQ0dUR0FBR0FBVEFUQ0FD Q0dDQ0NBVFRBVEMKR0NDQUdBVEdDVFRHQVRHQ0NBVFRBVFRHQUFHQUFDR1RHR0NHQVRDVEdHQ0dD R0NHQ1RUQ0FUQ0FHR1RDCkdUQUNUR0FBQ0FUVFRDVFRUR1RUQ0NBVENHQUNHR0FBQUFHQUNUVFRD Q0FDQ0dUR0dUQUdDQUNBR0FUVApBVFRUVEdUR0FBVEdDQ0NHVEFBQUdHQ0dBVEFUVEdHQ0dDR1RU Q0dBVFRDR0NDR0FBQVRUVEFUQ0dHQ0MKVEdDQ0dHVEFHR0NHQUFHVEFHVEdBQUFHVEdHQ0dBQUFH QVRDQVRDVENHQVRHVFRHQ0NHVFRBQ0NHQUdDCkNBQ1RHR0NBQUFUR0dDR0FUR0dDQ1RHQUFDR1RH VFRHQVRUQUFBQ0dUR0FBR1RDR1RDR0dUVFRUQ0dURwpDQ0FBVEFDR0dUQ0dBR0FBQUFDQ0dHQUdB QUFBVENBR1RBQ0NHQ0dUQ1RHR0NDQ0FBVEdBQUFUR0NDQUcKQ0FHQVRUVEdDQUNBQUFBVFRDR1RD Q0FDQVRDQUNDQ0FDVEFBQUNDR1RBQVRDVFRHQVRDQVRBQUNUR0dDCkFHQ0FHR0NBQ1RHQUNBQUFB QUNDVENDQUdDR0FBQ0dUQ0dHR1RHR0NHR1RBR0FDQVRUR0FBQ1RHR0dDRwpHQ1RHR0NBR0dBQUNB QUNUR0FUVENUR0FDQ0NUQ0FDQ0FHVEdBQUdBR0dHVEdUQ0FHQ0FUQ0FDR0NBVEEKQ0dDVEdHQUNH R0dDQUdUVENHQUNHQUFHQ0NBQVRBQUNHQ0NHQUFBQUFHQ0FBVEdBQUNBQVRDVEdBQUdHCkFUR0dU Q1RHR0NBQUFBQ1RHR0dHQ0FBQUNDQ1RDVEFUVEFDR0NDQ0dDR0FUR1RHQ0FBQVRUQUFUVFRHQwpD R0dHR0dDR0NUR1RUVEdUQUNDQUFBQ0FHVENUR1RUQUFBQ0NBR1RUQ0NHQ0NHVEdBQUdDVEdDVEdB Q0EKVEdDVEdHQVRHQ1RHQ0dDR1RDVFRHQ0NBR1RUQUNDQUdDR0NHR0NBR0NDR1RBQUFDQ0dHVFRH Q1RHQVRDCkNUR0NHQ0NHR1RUVEFUQ0NHQ0FBQUNHQ0FUQ1RHQUdUVFRDQ1RDR0NHQUFDR1RBVEFD QUFDQ0FHQUFBRwpDR0NHVEdBQVRUVFRBVENBVENHQ1RBVEdHVEdUR0NBR0NUR0FUVEdBQ0dDR0dD R1RBVEdBQUdDQUNBVEcKQUFHQUdBQUdHR0NHQUFHVENDQ0dHVEdBVEdBVENBQ0NBQUdDQVRUR1RD VEdDR0NUVFRHQ0NUVFRBQVRDClRHVEdDQ0NHQUFBQ0FHR0NHQUFBR0dDQUFUQVRDQUFBQUdDVEdH QUFHR0NHQUNHQ0NBQVRHQ0FBQ1RHRwpUVEFBQ0dHQ0dBVEdBQUdUQVRUQUFDR0NUQUFBR1RUVEdB VFRHQ0NHQ0NDQVRHQ0dBR0FUR0NBQ0dUQ0EKVFRHR0NBQUFBVENBQUFBQVRDQUNBVEFDVEdBQUFB VEdDQ0dUVEFDQ0dHR0FBR0NHVEFHVEdHQ0FUQ0NHClRBQUdUQ0NHR0FUR0FHQ1RHQ1RHQUFBQUNB VFRHQ0NHQUFHQ0dBQUFBR0dHVEFBQUFDR0NDQUdUVFRUQwpUR0dUVEFDVENBQ0FBQ1RUQVRUR0FB VENUR0NBVEdBVEFUVEdDQ1RHQ0NHR0dUQUFHR0NHVFRBQ0dDQ0cKQ0FUQ0NHR0NBVENBQUFUR0FD VENBQUNHVFRHVENDQ0dDVFRDVEdHVFRUR0NHQ0dBVFRUVFRHQ0NBR1RBCkFBQUFUR0NUQ0dDR0NB QUFDQ1RUQ0NHQ0NHQUNUQ1RUQ0NHQ0NBQ0FHQ0FDR0NBQVRUQ0FUQ0dDVEdUQwpDR0NUVENBVEdB Q0dDQUdDVEdBVEdBVENDQUNBVFRDVFRUQUNDQ0FDQUNBQUFUVENBVEdUQ0NUVFRHVEcKQ0NDVEdD Q0FUR0FHVFRHVENDVEdBQUFBQ0FHQUdDQUNBQ0dUVEFBVEFBR0FDQUFDQ0dBVEFBQ0dDQ1RUCkNH VEFBQUNBVENDVEdDQ0FDQ1RUVFRUQ1RUQUNDVFRUVEdDQ0dDVEFUR0FUR0NDR0FUQ0dUVFRDVFRH QQpHR1RUQVRUQVRUQ0FHVFRUVEdDQUFBVFRBR0NHQ0FBQUdBQUFUVENUR0dBQVRDVFRDQ1RUQ0NU R0FUVFQKVEdDQVRUR0NBVFRDVEdDQ0dUVEdDR0dDR0FUVFRBR1RHQ1RBVFRUVENHQUdDQUFBVFRB Q0FDQUNHR0FHCkdUQUFBQ0FDVEFBVEdUVFRBQ1RUVEdUVEdBVEFUQUNUQ0FHQ0dHQ0FHR0dBR0dD R0FUR1RHQUFBQ0FBQQpHQ0dBR1RUQ0FHQUNHVFRHR0NUQ0dBQVRDVENBR0dHQ0dUQ0dBVEdUQUdD R0FBVEdHQ0FHQ0FBQ0NBVFQKVEdBQUFDVENBR0dUVFRDQVRHR0dBR0dDR0NBR1RHVENBVEdDQ0dD R1RDQUNDQ0NUR0NHQVRHQUdBVFRBCkFBR0FBQ0NBVFRHQ0dUQUFBR0NBQVRDQ1RHQUFBQ0FBQ1RD R0dUVFRHQUdUVEFBVENHQ0NBQVRUQUFBQQpBR0dUVEFBVEdBQ0FUR0NHQUdBR0FDQUdUQ0dBQUFU VEFUR0NHVFRBVENDQ0dUQ0FDVENUVEFDQUNDQ0cKQ0dDQ0dHQUFHR0NHR1RUQVRBVEdHVFRUQ1RU VFRHVEdHQVRBVENDQ1RHQUFHQ0dUVEdBQ0NDQUdHR0NHCkFBQUNUR1RDR0NUR0FBR0NHQVRHR0FB R0NHR0NBQUFBR0FUR0NUVFRBQ1RHQUNDR0NBVFRUR0FUVFRUVApBVFRUVEdBQUdBVEFBQ0dBR0NU VEFUQ0NDVFRUQUNDVFRDR0NDQVRUQUFBVEFHVENBQ0dBVENBQ1RUVEEKVFRHQUFHVEFDQ1RUVEdB R0NHVENHQ0NUQ1RBQUdHVEFUVEdDVEdUVEFBQVRHQ1RUVFRUVEFDQUdUQ0FHCkFBQVRDQUNUQ0FH Q0FBR0FHVFRBR0NDQUdHQ0dBQVRUR0dDQUFBQ0NUQUFBQ0FHR0FHQVRUQUNUQ0dDQwpUQVRUVEFB Q1RUR0NBVENBVEdDR0FDQUFBQUFUQ0dBQ0dDQ0dUQ0NBR0NUQ0dDR0dDQUFBR0dDR0NUVEcKR0NB QUFHQUdUVEFUQ0dDVEdHVEdBVEdHVFRUQUFUVEFDQUdUVEFBQ0dBQUFBR1RUR1RDQVRUVFRUQUFD CkFBQ1RHQVRBVEFHQUNUR0NDR0FBVENBVENUR0NBQ0FUQUFUVEFDR0FUVENHQVRBQVRHQUFBQUFB VEFDQwpBR0NBR0NUVEdDQUdBQUNBQVRUQUNHQ0dBR0NBR0FUVEdDR1RDR0dHVEFUQ1RHR0NBQUND Q0dHQ0dBVEMKR1RUVEdDQ1RUQ0dUVEdDR1RHQUNDQUdHVEdHQ0dDVFRUQ0FHR0NBVEdBR0NUVFRB VEdBQ1RHVENBR0NDCkFUR0NDVEFUQ0FHVFRHQ1RDR0FBQUdUQ0FHR0dBVEFUQVRUQVRDR0NBQ0dB Q0NHQ0FHVENHR0dUVEFUVApBQ0dUVEdDR0NDQUNBR0dDQUFUQUFBQUFUR0NDR0FBQUdDR0NDQUdU Q0FUVENDQUdUQ0FDVENHQUdBVEcKQUFHQ0FHVENHQVRBVENBQUNBQ1RUQVRBVFRUVFRHQVRBVEdU VEdDQUdHQ0NBR1RDR0NHQVRDQ0dUQ0dHClRDR1RUQ0NHVFRUR0NDVENHR0NDVFRUQ0NDR0FDQ0NH Q0dBQ1RUVFRDQ0NDQ1RDQ0FBQ0FBQ1RBQUFDQwpHQ1RDR0NUR0dDR0NBR0dUQUFHQ0FBQUFDQ0dD Q0FDQUdDR0FUR0FHQ0dUR0FUVEdBQUFBQ1RUQUNDR0MKQ0FHR0FBQUNHQ0FHQUFDVEdDR1RDQUdH Q1RBVFRHQ1RDR1RDR0NUQVRHQ0NUVEFDQUdHR0NBVENBQ0NBClRUVENUQ0NUR0FUR0FBQVRUR1RD QVRUQUNUR0NDR0dHR0NHVFRBR0FHR0NBVFRBQUFDQ1RDQUdUVFRHQwpBQUdDR0dUQUFDVEdBQUND R0dHQ0dBVFRHR0dUR0FUQUdUQUdBR0FBVENDVFRHVFRUQ1RBQ0dHVEdDR1QKVEdDQUdHQ0dDVEdH QUdDR0dDVEFDR0dDVEdBQUdHQ0dUVEFUQ0dHVEdHQ0dBQ0dHQVRHVFRBQUFHQUFHCkdHQVRBR0FU Q1RUQ0FHR0NHQ1RHR0FBQ1RHR0NHVFRHQ0FHR0FHVEFUQ0NHR1RHQUFBR0NHVEdDVEdHQwpUR0FU R0FDVEFBVEFHQ0NBR0FBVENDQUNUQ0dHQVRUVEFDQ1RUQUFDR0NDR0NBQUFBQUFBQUdDQUNBQUMK VEdHVEdHQ0dUVEdDVENBQVRDQUdUQUNBQUNHVEFBQ0dDVEdBVFRHQUFHQVRHQUNHVFRUQUNBR0NH QUFDClRUVEFUVFRUR0dBQ0dHR0FBQUFBQ0NHQ1RHQ0NUR0NHQUFBR0NHVEdHR0FUQ0dDQ0FDR0FU R0dDR1RUVApUR0NBVFRHQ1RDVFRDR1RUVFRDR0FBQVRHVENUR0dUR0NDVEdHVFRUVENHVEFUVEdH VFRHR0dUQ0dDQ0cKQ0NHR0FBQUFDQVRHQ0FDR1RBQUFBVFRDQUFDR0NUVEdDQUdUVEdBVEdBR1RB Q0dDVFRUQ0NBQ0NBR0NUCkNBQ0NHQVRHQ0FBQ1RUR0NHQ1RHR1RHR0FUVEFDQ1RUVENDQUNHQ0dD Q0dBVEFDR0FDR0NDQ0FUQ1RUQwpHVENHQ0NUR0NHVENHQ0NBR0NUVEdDR0dBQUNHVEFBQUNBQUNH VEdDQ1RHR0NBR0dDQUNUR0NUR0NHVFQKQVRDVEdDQ1RHQ0dHQUFHVEdBQUFBVFRDQVRDQVRBQVRH QUNBR1RHR1RUQUNUVFRDVENUR0dUVEdHQUdDClRDQ0NDR0FHQ0NHVFRBR0FUR0NDR0dDR0FBVFRB QUdDQ1RHR0NHR0NBQ1RHQUNHQ0FUQ0FUQVRDQUdUQQpUVEdDR0NDR0dHVEFBQUFUR1RUVFRDVEFD Q0dHVEdBQUFBQ1RHR1RDQUNHVFRUVFRUQ0NHVFRUVEFBVEEKQ0NHQ0dUR0dDQUdUR0dHR0FHQUdD R1RHQUFHQUFDQUdHQ0dHVEFBQUFDQUFUVEFHR0NBQUFDVFRBVFRDCkFBR0FBQ0dHQ1RHVEFBVEFH Q0dUVFRBQVRUVEFBVFRDQ1RDVFRBR0FUVEdHR1RBQVRBVEdBQVRUVENHQQpBVEFHQ0FHVENBVEFU VFRDQ1RBQUNUQ0NUVEdBQ1RBVEFDVENDQUdBQUdBVEFBQ0NUVEFDQUdBQ0dHQ0EKVEFBVEdDR0NH R1RBR0NUQ0FDQUFDQ1RHQUFUQUFBVFRUVENUQ0FHR0dHQ0dBQUdHVEdUR0NDVEdDQUFHCkNDR0ND R1RDVEFUR0dUVEFBQUNBQUdHQUdBVEFUVFRUVEFDR0dDQUNHR0NHR0NUR0FBQ0FBVFRBQVRUQQpD R0FDQUdHQUdUQUFHQUNDVFRBVEdBR0NBQUdBQ0FUVFRHQ0NDR0NBR0NBR0NDVEdUR1RHQ0dDVENB R0MKQVRHQUNBQVRBQVRHQUNDR0NUQ0FDR0NDR0NDR0FBQ0NHQ0NUQUNDQUFUVFRBR0FUQUFBQ0NH R0FBR0dHCkNHQUNUR0dBVEFUVEFUQ0dDQ1RHR0NDR0dHQVRBQ0FUQ0dBQUNHQ0dHQUNBQUFDVEdB VEFBQUNBQVRBQwpHQUNUR0dHVEFBQ0dDQUdUVENHQUFBQUFHQUdBQ0FHR0NUR0NHQ0dHVEdBQVRH VEdBQUFBQ0NHQ0NHQ0cKQUNUVENDR0FUR0FBQVRHR1RDQUdUQ1RHQVRHQUNDQUFBR0dHR0dUVEFD R0FUQ1RHR1RUQUNHR0NBVENDCkdHQ0dBVEdDQ1RDR0NUR0NHVFRUR0FUVEFUR0dHVEFBQUNHQ0dU R0NBR0NDR0FUVEFBVEFDQ0dDQVRURwpBVFRDQ0NBQUNUR0dBQUFBQ0dDVENHQVRDQ0dDR0NHVEdH VFRBQUFHR0NHQUNUR0dUVFRBQVRHVFRHR0MKR0dDQUFBR1RUVEFDR0dDQUNBQ0NUVEFDQ0FBVEdH R0dHQ0NHQUFDQ1RHQ1RHQVRHVEFDQUFDQUNUQUFBCkFDQ1RUQ0NDR0FDR0NDR0NDR0dBVEFHQ1RH R0NBQUdUR0dUVFRUVEdUVEdBR0NBQUFBVENUR0NDR0dBQwpHR0NBQUdBR0NBQVRBQUFHR0NDR0NH VFRDQUdHQ1RUQVRHQVRHR0NDQ1RBVENUQVRBVFRHQ0dHQUNHQ1QKR0NHVFRHVFRDR1RUQUFBR0ND QUNUQ0FHQ0NHQ0FHVFRHR0dDQVRDQUdDR0FUQ0NHVEFUQ0FBQ1RDQUNDCkdBQUdBQUNBR1RBQ0NB R0dDR0dUR0NUR0FBQUdUR0NUR0NHQ0dDVENBQUNBQ0FHVFRUR0FUQ0NBVENHQwpUQUNUR0dDQVRH QUNBQ1RBQ0NHVEdDQUFBVEdBR0NHQVRUVENBQUFBQUNHQUdHR1RHVEdHVFRHQ1RUQ0MKQUdUR0ND VEdHQ0NDVEFUQ0FHR0NDQUFDR0NDQ1RHQUFBR0NDR0FBR0dDQ0FHQ0NUR1RUR0NUQUNDR1RUClRU Q0NDR0FBR0dBR0dHVEdUVEFDQ0dHVFRHR0dDVEdBVEFDQ0FDQ0FUR0NUR0NBVEFHQ0dBQUdDR0FB QQpDQVRDQ0dHVFRUR0NHQ0NUQUNBQUFUR0dBVEdBQUNUR0dUQ0FUVEFBQ0dDQ0FBQUFHVEdDQUdH R0NHQVQKR1RHR0NHR0NDVEdHVFRUR0dDVENHVFRBQ0NHR1RBR1RHQ0NHR0FBR0dHVEdUQUFBR0ND QUdUQ0NHVFRBClRUQUdHQ0dBQUFBQUdHVFRHVEdBQUFDQ0FBQ0dHVFRUVEFBQ1RBVFRUQ0dBQ0FB QUFUQ0dDQ1RUQ1RHRwpBQUFBQ0dDQ1RBVEFHQ0FHQUFHR0dHR0NBQUdUVFRHVFRDQ0NUQUNBR1RD R0NUR0dBQ0dDQUdHQVRUQUMKQVRUR0NDQVRUQVRHR0dDR0dUQ0dDVEFBQ1RUQ0dDVEdHR0dUR0NU VFRBVEdBQ0dUQUNHQ0FHVEdHQUdUClRUR0FDQUFDR1RDVENHQ0dHVFRHVEFDR0dUR0FDR1RHQ0dD R0NBR1RBR0FUR0dDR1RDQUdUQVRUR0NHQQpUQUFBQUdBVEdHVEdBR1RUQ1RUQ1RDVEFUR0NUR0dH R0NDR1RDQ0dHQ1RDQ0dHQ0FBQUFDQ0FDQ1RHQ0MKVEdDR0NDVEdBVFRHQ1RHR0NUVENHQUFDQUdD VFRUQ0NHR0NHR0dHQ1RBVENUQ1RBVENUVFRHR1RBQUFDCkNDR0NDQUdDQUFUQ1RHQ0NBQ0NHVEdH R0FHQ0dHR0FDR1RHQUFUQUNUR1RDVFRUQ0FHR0FDVEFDR0NHQwpUQVRUVENDR0NBVEFUR1RDR0FU VENUVEdBQ0FBVEdUQ0dDQ1RBVEdHR0NUR0FUR0dUQ0FBQUdHQ0dUR0EKQVRBQUFBQUdDQUdDR0dD QUNHQ0FBVEdHQ0dDQUFHQUdHQ0dDVEdHQUdBQUFHVEdHQ0dUVEdHR0dUVFRHClRBQ0FUQ0FBQ0dU QUFBQ0NHVENBQ0FBQ1RUVENUR0dUR0dUQ0FHQ0dDQ0FHQ0dHR1RUR0NUQVRDR0NDQQpHQUdDQVRU R0dUR0FBVEdBQUNDR0NHQ0dUQVRUR0NUR1RUR0dBVEdBQUNDR0NUQ0dHQ0dDQUNUR0dBVEMKVENB QUFUVEdDR1RHQUdDQUdBVEdDQUdDVEdHQUFDVEdBQUFBQUFDVEdDQUFDQUdUQ1RDVENHR1RBVENB CkNUVFRUQVRDVFRDR1RUQUNDQ0FDR0FUQ0FHR0dDR0FBR0NHVFRBVENHQVRHVENDR0FUQ0dUR1RH R0NHRwpUVFRUQ0FBVEFBVEdHQUNHQ0FUVEdBR0NBR0dUQ0dBVFRDQ0NDR0NHQ0dBVENUQ1RBVEFU R0NHQ0NDR0MKR0NBQ0dDQ0dUVFRHVFRHQ0NHR0dUVENHVFRHR1RBQ0FUQ0dBQVRHVFRUVFRHQVRH R0FDVEdBVEdHQ0FHCkFHQUFBQ1RUVEdUR0dDQVRHQUNHR0dBQUdDVFRDR0NDQ1RHQ0dBQ0NHR0FB Q0FUQVRDQ0dDQ1RDQUFDQQpDQ0NDVEdHVEdBQUNUR0NBR0dDQ0FBVEdHQ0FDR0FUQ0NBR0dDR0dU R0NBQVRBVENBR0dHQ0dDR0dDQUEKQ1RDR1RUVFRHQUFDVEdBQUFUVEdBQUNHR0NHR1RHQUFBQUFD VEdDVFRHVEdBR1RDQUdHQ0NBQVRBVEdBCkNBR0dDR0FBR0FBQ1RHQ0NUR0NDQUNHQ1RDQUNHQ0ND R0dBQ0FBQ0FHR1RHQVRHR1RUVENDVEdHVENHQwpHVEdBVEdUR0FUR0dUR0NDR0NUR0dUVEdBR0dB R0FHR1RHQUFUR0dDR0FUR0FBVEdUQVRUR0NBQVRDQUMKQ1RUQ0FDR1RDQ0FHR1RDVEdHR1RBQUdH VEdUQ0NHR1RUVENUVENUR0dDQVRBQVRDQ0dHR0dDVEdHR0dDClRHVFRUVFRBQ1RHQ1RHQ1RUR0dD Q0NHQ1RBQVRHVEdHVFRUR0dDQVRUR1RDVEFUVFRDR0dDVENHQ1RHQwpUR0FDQUNUR1RUQVRHR0NB R0dHQVRUVFRBVEFDVFRUVEdBQ0dBVFRUQ0FDQ0FUR1RDR0dUQUFDR0NDR0cKQUFDVEdBQ0dDVEdH Q0dBQVRBVENDR1RHQ0dDVEdUVFRBQVRDQ0dHQ0dBQVRUQUNHQUNBVENBVFRDVENDCkdDQUNHQ1RH QUNUQVRHR0NUR1RHR0NBR1RDQUNUQVRDR0NDQUdDR0NDQVRUQ1RHR0NUVFRUQ0NBQVRHRwpDR1RH R1RBVEFUR0dDR0NHQ1RBVEFDQ0FHQ0dHR0FBQUFUR0FBQUdDR1RUVFRUVFRBVEFUVEdDR0dUQUEK VEdUVEdDQ0dBVEdUR0dHQ0dBR0NUQUNBVFRHVFRBQUFHQ0NUQVRHQ0NUR0dBQ0dUVEFUVEdDVEdH Q0FBCkFBR0FUR0dDR1RHR0NUQ0FHVEdHVFRUVFRBQ0FBQ0FUQ1RUR0dHQ1RHR0FBQ0NBQ1RHQ1RH QUNUR0NHVApUQ0NUVEFDQVRUQUNDVEdDR0dUR0dHQ0dHQUFBVEFDR0NUR1RDQUFDVFRDQ0dHR0NU R0dHR0NHQ1RUVEMKVEdHVEdUVFRDVENUQVRBVENUR0dUVEdDQ0dUVENBVEdBVENDVEdDQ0NHVFRD QUdHQ0dHQ0dDVFRHQUdDCkdUVFRHQ0NHQ0NHVENBVFRHVFRHQ0FHR0NHVENHR0NUR0FUQ1RDR0dD R0NBQ0dUQ0NBQ0dBQ0FBQUNDVApUVENHQ1RBVEdUR0dUR0NUR0NDR0NUR0dDQUFUQ0NDR0dHVEFU VEdDQ0dDVEdHQ1RDVEFUQ1RUVEFDQ1QKVENUQ0FDVENBQ0FDVEdHR0NHQVRUVFRBVENHVENDQ0dD QUdDVEdHVFRHR1RDQ1RDQ0FHR0FUQVRUVFRBClRDR0dDQUFUQVRHR1RUVEFUVENDQ0FHQ0FHR0dH R0NHQVRUR0dDQUFUQVRHQ0NHQVRHR0NHR0NHR0NBVApUQ0FDQ0NUR0dUR0NDR0FUVEFUVENUQ0FU Q0dDQUNUR1RBQ0NUR0dDR1RUQ0dUR0FBQUNHVENUR0dHQUcKQ0dUVENHQVRHQ0FDVENUR0FBQ0dD R0NBQ0NHVFRUVFRDQ1RDQUFBQ1RHR0NHR0NDVEdHR0dDR0dDR1RUCkdUVFRUQ0NUQUNBVFRUVEND Q0FUQ0NUR0FUQUFUQ0dDQ0dDQ1RBVEdDR1RUVEFBQ0FDVEdBQUdBVEdDRwpHQ0dUVFRBR1RUVFRD Q0FDQ0dDQUdHR0NDVEdBQ0dDVEdDR0NUR0dUVFRBR0NHVEdHQ0FHQ0FDQUdDR1QKQUdUR0FUQVRU Q1RUR0FUR0NDR1RHQUNBQ1RHVENBQ1RUQUFBR1RHR0NHR0NHQ1RHR0NHQUNBVFRBQVRUCkdDR0NU R0dUR1RUQUdHR0FDR0NUR0dDQUdDVEdDQ0dDR0NUR1RHR0NHQUNHQUdBQ1RUVFRUQ0dHQ0FBQQpB QUNHQ0NBVFRUQ0dDVEdUVEFDVEdDVEdDVEdDQ0NBVFRHQ0dDVEdDQ0dHR0NBVFRHVENBQ1RHR1RD VEcKR0NHVFRBVFRBQUNDR0NDVFRUQUFBQUNDQVRDQUFUQ1RHR0FHQ0NHR0dBVFRUVFRDQUNDQVRD R1RHR1RDCkdHVENBVEdDR0FDVFRUVFRHVEdUQUdUVEdUR0dUR1RUVEFBQ0FBVEdUQ0FUQ0dDQ0NH VFRUVENHQ0NHQwpBQ0NUQ0NUR0dBR1RDVEdHVFRHQUdHQ0dUQ0FBVEdHQVRDVFRHR0dHQ0NBQVRH R0NUR0dDQUFBQ0NUVEMKQ0dDVEFDR1RBR1RHVFRHQ0NHQUFUQ1RDQUdUVENHR0NHVFRBQ1RHR0NB R0dBR0dBQVRHQ1RHR0NHVFRUCkdDQ1RUR1RDR1RUQ0dBVEdBQUFUQ0FUQ0dUVEFDR0FDQ1RUVEFD R0dDQUdHVENBVEdBQUNHQUFDR1RUQQpDQ0dUVEdUR0dUVEdDVENBQVRDQUdDVFRHR0dDR0FDQ0dD R1RHQVRHVEFDQ0dHVEFBQ1RBQUNHVEdHVEcKR0NBQ1RHQ1RHR1RUQVRHVFRHR1RBQUNBQUNDVFRH Q0NHQVRDQ1RHR0dHR0NDVEdHVEdHQ1RBQUNDQ0dDCkdBQUdHQ0dBQ0FBVEdHVENBQVRBQUNDQUNU R0FUQUNBR0dBQVRBVEdDVEFUR0NBQUNBVEFBR1RUQUNURwpBVFRBQUNHR0FHQUFDVEdHVFRBR0NH R0NHQUFHR0dHQUFBQUFDQUdDQ1RHVENUQVRBQVRDQ0dHQ0FBQ0cKR0dHR0FDR1RUVFRBQ1RHR0FB QVRUR0NDR0FHR0NBVENDR0NBR0FHQ0FHR1RDR0FUR0NUR0NUR1RHQ0dDCkdDR0dDQUdBVEdDQUdD QVRUVEdDQ0dBQVRHR0dHR0NBQUFDQ0FDR0NDR0FBQUdUR0NHVEdDR0dBQVRHVApDVEdDVEdBQUFD VEdHQ1RHQVRHVFRBVENHQUFHQUFBQVRHR1RDQUdHVFRUVFRHQ0NHQUFDVEdHQUdUQ0MKQ0dUQUFU VEdUR0dDQUFBQ0NHQ1RHQ0FUQUdUR0NHVFRDQUFUR0FUR0FBQVRDQ0NHR0NHQVRUR1RDR0FUCkdU VFRUVENHQ1RUVFRUQ0dDR0dHVEdDR0dDR0NHQ1RHVENUR0FBVEdHVENUR0dDR0dDQUdHVEdBQVRB VApDVFRHQUFHR1RDQVRBQ1RUQ0dBVEdBVENDR1RDR0NHQVRDQ0dUVEdHR0dHVENHVEdHQ1RUQ1RB VENHQ0EKQ0NHVEdHQUFUVEFUQ0NHQ1RHQVRHQVRHR0NDR0NHVEdHQUFBQ1RUR0NUQ0NHR0NHQ1RH R0NHR0NBR0dHCkFBQ1RHQ0dUQUdUR0NUVEFBQUNDQVRDQUdBQUFUVEFDQ0NDR0NUR0FDQ0dDR1RU R0FBR1RUR0dDQUdBRwpDVEdHQ0dBQUFHQVRBVENUVENDQ0dHQ0FHR0NHVEdBVFRBQUNBVEFDVEdU VFRHR0NBR0FHR0NBQUFBQ0cKR1RHR0dUR0FUQ0NHQ1RHQUNDR0dUQ0FUQ0NDQUFBR1RHQ0dHQVRH R1RHVENHQ1RHQUNHR0dDVENUQVRDCkdDQ0FDQ0dHQ0dBR0NBQ0FUQ0FUQ0FHQ0NBVEFDQ0dDR1RD R1RDQ0FUVEFBR0NHVEFDVENBVEFUR0dBQQpDVFRHR1RHR0NBQUFHQ0dDQ0FHVEdBVFRHVFRUVFRH QVRHQVRHQ0dHQVRBVFRHQUFHQ0FHVEdHVENHQUEKR0dUR1RBQ0dUQUNBVFRUR0dDVEFUVEFDQUFU R0NUR0dBQ0FHR0FUVEdUQUNUR0NHR0NUVEdUQ0dHQVRDClRBQ0dDR0NBQUFBQUdHQ0FUVFRBQ0dB VEFDR0NUR0dUR0dBQUFBQUNUR0dHVEdDVEdDR0dUR0dDQUFDRwpUVEFBQUFUQ1RHR1RHQ0dDQ0FH QVRHQUNHQUdUQ1RBQ0dHQUdDVFRHR0FDQ1RUVEFBR0NUQ0dDVEdHQ0cKQ0FUQ1RDR0FBQ0dDR1RD R0dDQUFHR0NBR1RBR0FBR0FHR0NHQUFBR0NHQUNBR0dHQ0FDQVRDQUFBR1RHCkFUQ0FDVEdHQ0dH VEdBQUFBR0NHQ0FBR0dHVEFBVEdHQ1RBVFRBQ1RBVEdDR0NDR0FDR0NUR0NUR0dDVApHR0NHQ0FU VEFDQUdHQUNHQVRHQwo= --089e0160b074bd7b600508076746 Content-Type: application/octet-stream; name="q.fasta" Content-Disposition: attachment; filename="q.fasta" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i2lecwfm1 Pm0xMzA0MDRfMDE0MDA0X3NpZG5leV9jMTAwNTA2OTAyNTUwMDAwMDAxODIzMDc2ODA4MjIxMzM3 X3MxX3AwLzU3NzkvMF8xMDM5NwpBQUFHQUdBR0FHQVRBVEdDQ0FHVEFBVEFDVFRHQUFBR0FUQVRU R0NDR0FHQ1RHR1RHQ0NHVFRUR0NDQ0EKVENHVFRBVEdHVEdDQUFBQUFUVFRDR1RDQUNHQ1RUQUFD QUNDQVRUVFRHQ0FUR0FUR0FUR0FHQ1RHR0FBCkNDQ0dDR0NBQ0dHQ1RHQVRUQUNUR0FDQ1RDVEFD Q0FHQUNDR0dUR1RDR0FUR0NHQ1RHQVRUR1RUQUdHQQpUQVRHR0dHQVRUQ1RHR0FBQUNDVFRHQVRB VFRDR0NHQ0dDR0FUVEdBQUNUR0dDQUNHQ0NBR1RBQ0NHQ0EKR1RHQ0dBQ0FUVENHVEFDQUdUVEdB QUFBQUdDR0FBR1RUQ0NUQ0NDVENDQ1RHQVRHVFRHR0NUVENBQ0dDCkFHQVRUR1RHQ1RHR0NHQ0dB R0FHQ1RHQUFUQ1RUR0FUQ0FHQVRDQ0dDR0NDR0FUVENBQ0NBR0dDQ1RBRwpDR0dBQ0dDR0FDQ0FU VEdBQVRUQ1RUVEFBVFRDQVRHR0dDQUNUR1RHQ0dUR0dDR0NUQVRUQ0dHR1RDQUcKVEdDVEFDQVRU VFRDQUFUQ0dDR0NDQUFBQ0FHR0dDR1RBQUdDR0NDQUFDQ0dUR0dDR0FUVEdDVENHQ0dBCkdHQ0dU R0NDR1RUVEdDQ0FUQUNBQ0FBVFRHQUFBR0FDR0FUQ0FHR0dHQ0NHR0dUR0dUVFRDQ0NUQVRHQQpB QUFBQ0FUQ0NUR0NUR1RDQ0dBVEdBQUFHQVRBQUFDQ0dBVENBR0FDVEdDQ0FBQ0NUQ0NHR0NHQ0dD VEcKQVRUVEdBVEdHQ1RHR1RHVEFDR0NUR0NDVFRDQUdBVFRUR0FBR0dHQ0dUVEFBQ0FBQUdBVFRH QUdDVEFDCkNDR1RHQVRBR0FBVEFUQ0FBQ0NHQ0NBVFRBQVRBQUFHQ0FHQVRHQ1RUR0FUR0NDQVRU QVRUR0FBR0FBQwpHVEdHQ0dBVENDVEdHQ0dHQ0dDR0NUVENDQVRDQUdUVFRDR1RBQ1RHQUFHQ0FU VFRDVFRUR1RUQ0NBVEMKR0FDR0dBQUFBR0FDVFRUQ0NBQ0NHVEdHVEFHQ0NBR0FUVEFUVFRUVFRH VEdBVEdDQ0NHVEFBQUdHQ0dBClRBVFRHR0NHR0NHQ0dUVENHQUFUVENHQ0NHR0FBQVRUVEFUQ0dH Q0NUR0FBQ0dDR1RBQUdHR0NHQUFHVApBR1RHQUFBR1RUR0dDQ0NHQUFHQVRDQVRDQ1RBQUdBVEdU VEdDR0dUVEFDR0NHQUdDQ0FDVEdHQ0NBQUEKVEdHQ0dBVEdHQ0NUR0FBQ0dUR1RUVEdBVFRBQUFD R1RHQUFHVENDR1RDR0dUVFRUQ0dUR0NDQUFUQUNHCkdUQ0dBR0FBQUFDR0dBR0FBQUFUQ0FHVEFH Q0NHQ0dUQ1RHR0NDQUFUR0FBQVRHQ0NBR0dDQUFHQVRUVApUR0NBR0NDQUFBQVRUQ0dUQ0NBQ0FU Q0dBQ0dDQ0NBQ1RBQUdBQ0NHR1RBQVRUVEdBVFRUQ0FUQUNUR0cKQ0FBQUdDQUdHQ0FBQ0NUR0FD QUFBQUFBQ0NUQ0NBR0NDR0FBQ0FHVENHR0dUR0dDR0dUQUdBQ0FUVEdBCkFUR0dHQ0NDR0dDVEdH Q0FHR0NBQUNBQUNDVEdBVFRDR0FDR0NDVENBQ0NDQUdHQUFHQUdHR1RHVFRDQQpHQ0FUR0NBQ0dD QVRBQ0dDVEdBQUNHR0dDQ0FHVFRDR0FDR0FBR0NDQUFUQUFDR0dDQ0dBQUFBQUFHR0MKQUFUR0FB Q0FBVENUR0FBQUdHQVRHR1RDVEdHQ0FBQUFDVEdHR0dDQ0FBQUNDQ1RDVEFUVENBQ0dHQ0NDCkND R0FUR1RHR0NBQUFUVEFBVFRUR0NHQ0dHR0dDR0NHR0NUR1RUR1RUQUNDQUFBQ0FHVENUR1RUQUFB QwpHQ0FHVFRDQ0dDR1RHQUFHQ1RHQ1RHQUNBVEdDVEdHQVRHQ0dDR0NHVENUVEdDQ0FHVFRBQ0dD QUdDR0MKR0dDQUdDQ0dUVEFBQUNDR0dUVEdDVEdBVENDVEdHQ0dDQ0dHVFRUQVRDQ0dDQUFBQ0dD QVRDQ1RHQUdUClRUQ0NDVENHQ0dBQUFDQ0dUQVRBQ0NBQUNDQUdBQUFHQ0dDR1RHQUFUVFRUQVRH Q0FUQ0dDVFRHVFRHVApHQ0NBR0NUR0FUVEdBQ0dDR0dDR1RBVEdBQUdDQUFDQVRHQUFHQUdBQUdH R0NHQUFHVENDR0NHR1RHQVQKR0FDVFRDQUNDQ0FBQ0FUVEdUQ1RHQ0dDVFRUR0NDVFRUQUFUQ1RH VEdDQ0NHQUFBQ0dHQ0dBQUFBQUFBCkFHR0dHQ0FBVEFDQUFBQUdDVFRHR0FBR0dDR0dDR0NDQUFU R0NBQUNUR0dUVEFBQ0dHQ0dBVEdBQUFHVApBVFRBQUNHQ1RBQUFBR1RUVEdBVFRHQ0NHQ0NDQVRD R0NHQUdBVEdDQUNHVENBVFRHR0NBQUFBVENBQUEKQUFUQ0FDQVRBQ1RHQUNBQUFUR0NDR1RUQUND R0dHQUFHQ0dUQUdUR0dDQVRDQ0NHQUFHR1RDR0NHR0FUCkdBR0NUR0NUR0FBQUFDQVRUR0NDR0FB R0NHQUFBQ0FHR0dUQUFBQUNHR0NDQUdUVFRUQ1RHR1RUQUNUQwpDQUFDVFRBVFRHQUFUQ1RHQ0FU R0FUQVRUR0NDR1RHQ0NHR1RBQUdDR1RUQUNHQ0NHQ0NBVENDR0dDQVQKR0FBQ0FBQVRHQUNUQ0FB QUNHVFRHVENDR0NUVENUR0dUVFRDR0NDR0FUVFRUVFRDR0NBR1RBQUFBQVRHCkNUQ0dDR0NBQUFD VFRDQ0dDQ0dBQ1RDQ1RUQ0NHQ0NBQ0NBR0NBQ0dDQUFUVENBVENHQ1RHVENDR0NUVApDQ0NBQVRH QUNHQ0FHQ1RHQVRHQVRDQ0FDQVRUQ1RUVEFDQ0NBQ0FBQUFBQVRUQ0FUR1RDQ1RUVEdUR0MKQ0ND VEdDQ0FUR0FHVFRUVEdUQ0NUR0FBQUFDQUdBR0NBQ0FDR1RUQUFUQUFHQUNDQUFDQ0dBVEFBQ0dD CkNDVFRDR1RBQUFDQ0FUQ0NUR0NDQUNDVFRUVENUVEFDQ0NDQVRUVFRHR0dDQ0dDVEFHQVRHQ0NH QVRDRwpUR1RUQ1RUR0FHR1RUQVRUQVRDVENBR1RUVEdDQUFBQVRBR0NHQ0FBQUdBQUFUQ1RDVFRH R0FBQVRUVEMKQ0NUVENDVEdBVFRUVFRHQ0FUVEdDVFRDVEdDQ0dUVEdDR0dDR0FUVFRBQUdUR0NU QVRUVFRDR0FHQ0FBCkFUVEFDQUFDQUNHR0FHR1RBVEFHQ0FDVEFBVEdUVFRBQ1RUVEdUVEdHQVRB VEFDVENBR0NHR0NBR0dHQQpHR0NDR0FUR1RHQUFBQ0FBQUdDR0FHVFRDQUdBQ0NDQ0dUVEdDVEND Q0dBQVRDQ1RDQUFHR0dDR1RDR0EKVEdUQUdDR0FBVEdHQ0FHQ0FBQ0NHQ0FUVFRUR0FBQUNUQ0FH R0dUVFRDQVRHR0dBQUdHQ0dDQUdUR1RDCkFUR0NHQ0dUQ0FDQ0NDVEdDR0FUR0FHQVRUQUFHQUND QVRBVEdDR1RBQUFHQ0FBVENDVEdBQUFBQUNBQQpBQ1RDQ0dHVFRUR0FHVFRBQVRDR0NDQUFUVEFB QUFBR0dUVEFBVEdBQUFBR1RHQ0dBR0FHQUNBR1RDR0EKQUFUVEFBVEdDR1RBVENDQ0dUQ0FDVENU VEFDQUNHQ0NHQ0FHQ0NHQUFHQUFBR0dDR0dUVEFUQVRHR1RUClRUVFRUR1RHR0FUQVRDQ0NUR0FB R0NHVFRHQUNDQ0NBR0dHQ0dBQUNDVEdUQ0dDVEdBR0NHQVRHR0FBQQpHQ0dHQ0FBQUFBQUdBVEdH Q1RUVEFDVEdBQ0NHQ0FUVFRHQVRUVFRBQVRUVFRHVEFBR0FBQUNHQUFHQ0MKVFRUQ0FUQ0NDQ1RU VEFDQ0NUVENHR0NDQVRUQUFBVEFHVENBR0FUVENBQ1RUVEFUVEdBQUdUQUNDVFRUClRHQUdDR1RD Q0dDQ1RDVEFBR0dUQVRUR0NUR1RUQUFBVEdDVFRUVFRUQUFBVEFDQUdUQ0FHQUFBVENDQQpDVENB R0NBQUdBR1RUQUdDQ0FHR0NHQUFUVEdHQ0FBQUNDVEFBQUNDQUdHQUdBVFRUQUNDR0NDVEFUVFQK QUFDVFRUR0NUQ0FBQVRHQ0NHQUNBQUFBQVRDR0FDQ0dDQ0dUQ0NBR0NUQ0dDR0dDQUFBR0dDR0NU VEdHCkNBQUdBR1RUQUFUQ0dDVEdHVEdBQVRHR1RUVEFBQVRUQUNBR1RUQUFDR0FBQUFHVFRHVENB VFRUVFRBQQpDQUFBQ1RHQVRBVEFHQUNDVEdDR0FBVENBVENUR0NBQ0FUQUFUVEFDVEdBVFRUQ0dB VEFBQVRHQUFBQUEKQVRBQ0NBQUdDQ0FBR0NUVENBR0FBQ0FBQVRDVEFDR0NHQUdDQUdBVFRHQ0dU VENDR0dHVEFUVENUR0dDCkFBQ0dDQ0dHQ0dBVENHVFRUVEdDVFRDR1RUR0NHVEdBQ0NBR0dUR0NH Q1RUVENBQUdHQ0FBQVRHQUdDVApUVEFUR0FBQ1RHVENBQUFHQ0NBVEdDQ1RUQVRDQUdUVEdDQ1RD R0FBQUFHVFRDQUdHR0FUQUFUVEFUR0MKQUNHQUNHQ0dDQUFHVENHR0dUVEFUVEFDR1RUR0NHQ0NB Q0FHR0NDQUFUQUFBQUFUR0NDR0FBQUdDR0NDCkNDQ0FBR1RDQ0FUVENDQUdUQ0FDQ1RDR0FHQVRH QUNDQ0FHVENHQVRBVFRDQ0FBQ0FDVEdUQVRBVFRUVApUR0FUQVRHVFRHQ0FHR0NDQUdUQ0dDR0FU Q0dUQ0dHVENHVFRDR1RUVEdDQ1RDR0NUVFRBVENDQ0dBQUMKQ0NHQ0dBQ0NUVFRUQ0NDQ0NDQ1RD Q0FBQ0FBQ0NUVEFBQUNDR0NUQ0dDQ1RHR0NHQ0FHR1RBQUdDQUFDCkFBQ0NHQ0FDQ0FHQ0dBVEdB R0NHVEdBVFRUR0FBQUFDVFRBQ0NHQ0NBR0dBQUFBQ0dDQUdBQUFDVFRHQwpHVENBR0dDVEFUR0NU VENHVENHQ1RBVEdDQ0NDVFRBQ0FHR0dDQVRDQUNDQVRUVENUQ0NUR0FUR0FBQVQKVEdUQ0FUVEFD VEdDQ0dHR0dDR1RUQUdBQUdHQ0FUVEFBQUFDVENDQ0FHVFRUR0NBQUdDR0dUQUFDVEdBCkFDQ0dH R0NDR0FBVFRHR0dUR0FUQUdUQUFBR0FHQUFUQ0NUR1RUQ1RDQUNDR0dUR0NHVFRHQ0FHR0NHQwpU VEdHR0NHQ1RBQ0dHQ1RHR0FBR0dDR1RUQVRDR0dUR0dDR0FBQ0dHQVRHVFRUVFRBQUFHQUFHR0dB VEEKR0FUQ1RUQ0FHR0NHQ1RHR0FBQ1RHR0NHVFRUR0NBR0NHR0FBR1RBQVRDQ0NDR0dUR0FBQUdD R1RHQ1RHCkdDVFRUR0FBVEdBQ1RBQVRBR0NDQUdBQVRDQ0FBQ1RDR0dBVFRUVEFDQ1RUQUFHQ0NH Q0FBQUFBQUFBRwpDQUFBQUFDVEdHR1RUR0dDQ0dUVEdDVENBQVRDQUdUQUNBQUNHVEFBQUNHQ1RH QVRUR0FBR0FUR0FBQ0cKVFRUQUNBR0NHQUFDVFRBVFRUR1RDR0dHQUFBQUFBQ0NDR0NUR0NDVEdD R0FBQUdDR1RHR0dHQVRDR0NDCkFDR0FUR0dDR1RUVFRHQ0FUVEdDVENUVENDR1RUVFRDR0FBQVRH VENUR1RUR0NUR0dUVFRUVENDR1RBVApUR0dUVEdHR0dUQ0dDQ0NDR0NDR0dBQUFBQUNBVENBQUNH VEFBQUFUVENDVFRUVFRUVENBQUNHQ1RUVEcKQ0FBR1RUR0FUR0FHVEFDR0NUVFRDQ0NBQ0NBR0NU Q0FDQ0dBQUFUR0NBQUNUVEdDQ0NHQ1RHR1RHR0FHClRUQUNDVFRUQ0dBQ0dDR0NHQVRBQ0dBQ0dD Q0NBVENDVENUQ0dDR0NDVEdDR1RDQ0dDQ0FHVFRUVEdDRwpHR0FBQUNHVEFBQUNBQUNHVEdDQ1RH R0dDQUdHQ0FBVENUVEdDVEdDR1RUQVRDQ1RHQ0NUR0NHR0FBR1QKR0FBQUFBVFRUQ0FUQ0FUQUFU Q0dHQUNBQUFHVEdHVFRBQ1RUVENUQ0NUR0dUVEdHQUdDVENDQ0NHQUdDCkNDR0dUVEFHQUNUR0FD Q0dHQ0dBQVRUQUFBR0NDVEdHQ0dHQ0FBQ1RHQUNDQ0FUQ0FUQVRDQUdUQVRUVApHQ0NHQ0NHR0dH VEFBQUFBVEdUVFRDVEFDQ0dHVEdBQUFBQUNUR0dUQ0FDR1RUVFRUQ0NHVFRUVEFBVEEKQ0NHQ0dU R0dDQ0NBQUdUR0dHR0FBR0FBR0NHVEdBQUdBQUNBQUdHQ0dHQVRBQUFBQUFBVFRBR0dDQUFBCkNU VFRBVFRDQUdBQUNHR0NUR1RBQVRBQ0NDR1RUQUFUVFRBQVRUQ0NUR0NUVEFHQVRUVEdHR1RBVEFB VApHQUFUVFRDQ0dBQUFUQUdDQUdDQVRDQVRUVENDVEFBQ1RDQ1RUVEdBQ1RUQUNUQ0NBR0FBQUdB VEFBQ0MKVFRBQ0FHQUNHR0NBVEFBQVRHQ0dDR0dHVEFHQ1RDQUFDQUFDQ1RUVEdBQVRBQUFUVFRU VENUQ0FBQUdHCkdHQ0dBQUdHVEdHVEdDQ1RHQ0NDQUFHQ0NDR0NDR1RDQ1RBVEdHVFRBQUNBQUdB QUFUQVRHQVRUVFRBQwpHQ0FDR0dDR0dDVEdBQUNBQVRUQUFBVFRBQUNHQUNBR0dBR1RBQUdBQ0NU VEFUR0FHQ0FBQUdBQ0FUVFQKR0NDQ0dDQUdDQUFHQ0NUR1RHVEdHR0NHQ1RUQ0FHQ0FUR0FBQUNB QVRBQVRHQUFDR1RUQUNHQ0NHQ0NHCkFBQUNDR0NDQ1RBQ0NBQUFUVFRBR0FBVEFBQ0FDQ0dHQUFH R0dHQ0dBQ1RHR0FBVEFBVFRBVENHQ0NURwpHQ0NHR0dUVEFDQVRDR0FBQUFDR0NHR0FBQ0FBQUND VEdBQVRUQUFBQUNBQVRBQ0dBQ1RHR0dUQUFDR0MKQUdUVFRDR0FBQUFBR0FHQUNBR0NUR0NDR0NH R1RHQUFUR1RHQUFBQUNDR0NDR0NHQUNUVFRDQ0dBQVRHCkFBVEdHVENBQUdUQ0NUVFRHQVRHQUNB QUFBR0dHR0dUVEFUQ0dBVENUR0dUVEFBQ0dHQ0FBVENDR0dDRwpBVEdDQ1RDR0NUR0NHR1RUVEdB VFRBVEdUQUFBQ0dDR1RHQ0FHQ0NHQVRUQUFUQUNDQ0FUVEdBVFRDQ0MKQUNDQ1RHR0FBQUFDR0NU Q0NHQVRDQ0dDR0NHVEdHR1RUQUFBR0dDR0FDVEdHVFRBVEdUVEdDR0dDQUFBCkdUVFRBQ0dHQ0FB Q0FDQ1RUQUNDQUFUR0dHR0dDQ0dBQUNUR0NUR0FUR1RBQ0FBQUNBQUNUQUFBQUNDVApUVFRDQ0dB Q0dDQ0dDQ0dBVEFHQ1RHR0NBQUdUR0dUVFRUVFRHVFRHQUdDQUFBQVRDVEdDQ0NHR0FDR0cKR0NB R0FBR0FHQ0FBVEFBR0dDQ0dDR1RUQ0FHR0NDVFRBVEdBQVRHR0dDVEFUQ1RBVEFUVEdDR0dBQ0dD ClRHQ0dUVFRUR1RUQ0dUVEFBQUdDQ0NBQ0FUVENBQUdDQ0dDQUdUVEdHR0NBVENBQ0FHQ0FUQ0NH VEFUQwpBQUNUQ0NBQ0NDR0FBR0FBQ0FHVEFDQ0FUQUdHQUdHR1RHQ1RHQUFBR1RHQ1RHQ0dDR0NU Q0FBQUNBR1QKVFRHQVRDQ0FUQ0NHQ1RBQ1RHQUFBVEdBQ0FDVEFDQ0dUR0NBQUFDQVRHQUFBR0NH QVRUQ0FBQUFBQ0dBCkdHR1RHVEdHR1RDVEdDVFRDQ0dUR0NDVEdHQ0NDVEFUQ0FHR0NDQUFDQ0dD Q0NUVEFBQUFHQ0NHQUFHRwpDQ0FHQ0NUR1RUR0NUQUNDR1RUVFRDVENDQ0dBQUdHQUdHVEdUVFRD Q0dHVFRHR0dDVEdBVEFDQ0FDQVQKR0NUR0NBVEFHQ0dBQUFHQ0dBQUFDQVRDQ0dUVFRUR0NDR0ND VEFDQUFBQUdUR0dBVEdBQUFDVEdUQ0FUClRBQUNHQ0NBQUFBR1RHQ0FHR0dDR0FUR1RHR0NHQ0NU R0dUVEdHQ1RDR1RUQUNDR1RBVEdDQ0dHQUFHRwpUR1RBQUFBR0NDQUdUQ0NHVFRBVEFHR0NHQUFB QUFBR0dUVFRDVEdBQUFBQ0FBQUNHR0dUVFRUVEFBQ1QKQVRUVENHQUNBQUFBVENHR0NDVFRDVEdH R0FBQUNHQ0NUQVRBQUdDQUdBQUdHR0dHQ0FBR1RUR1RUQ0NDCkNUQUNDR1RDR0NUVEdBQ0dDQUFH R0FBVFRBQ0FUVFRHQ0NBVENUQVRHR0NHVENHQ1RBQUFDVFRDR0NURwpHR1RHQ1RUVEFUR0FDR1RB Q0dDQUdUR0dBR1RUVEdBQUNBQUNHVENUQ0dDR0dUR1RUR1RBQ0dHVEdBQUMKR1RUR0NHQ0dDQUdU QUFBVEdDR1RDQUdUQVRHQ0dHQVRBQUFBR0FUR0dUR0FHVFRUQ1RUQ1RDVEFUR0NDClRHR0dDQ0dU Q0NHR0NUQ0NDR0dDQUFBQUNDQUNDQ1RHQ0NUR0NHQ0NUR0FBQVRUR0NUR0NUVFRDR0FBQwpBR0ND VFRUQ0NHR0NHR0dHQ1RBQVRDVENUQVRDVFRHVEdHR1RBQUFBQ0NDR0NDQUdDQUFBVENDVEdDQ0EK QUNDQ0dUR0dHQUdDR0dHQUFHVEdHQUFUQUFDVEdUQ0NUVFRDQUFHR0FDQ0FDR0NHQ1RBVFRUQ0ND R0NBClRBVEdUQ0dBVFRDVFRHQUFDQUFUR1RDR0NDQ0NUQVRHR0dDVEdBVEdHVENBQUFBR0dDR1RH QUFUQUFBQQpBR0NDQUdDR0dDQUNHQ0FBVEdHQ0dDQUFHQUdHQ0dDVEdHQUFBQUdUR0dDR1RUR0dH VFRUVEdUQUNBVEMKQVRBR1RBQUFBQ0NHVENBQ0FBQ1RUQ1RHR1RUR0dUQ0NBR0NHQ0FHQ0dHR1RU R0NUQVRDQ0dDQ0FHQUFHCkNBVFRHR1RHQUFBVEdBQUNDR0NHQ0dUQUFBVFRHQ1RHVFRHR0FDVEdB QUFDQ0dDVFRDQ0dHQ0dDQUNURwpHQVRDVENBQUFBVFRHQ0dUR0NBQUdHQ0FHQVRDQUdDVEdHQUFB Q1RUR0FBQUFBQUFDVEdDQ0FBQ0FHVEMKQ1RDVENHR1RBVENDQUNUVFRUQVRDVFRDR1RUQUNDQUFD R0FDQ0NUQ0FHR0dDR0FBR0NHVEFUQ0dBVEdUCkNDR0FUQ0NHVEdUR0dDR0dUVFRUQ0FBQVRBQVRH R0FDR0NBVFRHR0FHQ0FHR1RDQ0dBVFRUQ0NDQ0dDRwpDR0FUQ1RDVEFBVEFUR0NHQ0NDQ0dDR0ND VEFDR0NDR1RUVFRHVFRHQ0NHR0dUVFRDR1RUR0dUVEFBVEcKQ0dBQVRHVFRUVFRUR0FUR0dBQ1RH R0FUR0dDQUFHQUdBQUNUVFRHVFRUR0dDQVRHQUNHR0FBR0dDVFRDCkdDQ0NUR0dDQ0dBQ0NDR0dB Q0FUQVRBQ0NHR0NDVENBQUNBQ0NDQ1RHR1RHQUFDVEdDQUdHQ0NBQVRHQwpBQ0dBVENDQUdHQ0dH VEdDQUFUQVRDQUdHR0NDR0NHR0NBQUdUQ0NHVFRUR0FBQ1RHQUFBVFRHQUFDR0cKQ0dHVEdBQUFB QUNUR0NUVEdUR0FHVENBR0dDQ0FBVEFHQUNBR0dDR0FBR0FBQ1RHQ0NUR0NDQUNHQ1RDCkFDR0dD Q0NHR0FDQUFDQUdHVFRHQVRHR0dUVFRDQ1RHR1RDR0NHVEdBVEdUR0FUR0dUR0NDQ0dDVEdUVApH QUdHQUdBR0dUR0FBQVRHR0NHQVRHQUFUR1RBVFRHQ0FUQ0FDQ1RUQ0FDR1RDQ0FBR0dUQ1RHR0dB QUcKR1RHVFRDR0dUVENUVENBVEdHR0NBVEFBVENDR0dHR0NUR0dHR0NUR1RUVFRUQUNUR0NUR0NB VFRHR0NDCkNHQ1RBQVRHVEdHVFRHR0NBVENUR1RDQ1RUVEFUVFRDR0dUQ0dDVEdDVEdBQUNBQ1RH VFRUVEFUR0dDQQpHR0dBVFRUVEFUQUNUVFRUR0FDR0FUVFRDQ0FDQ0FBVEdUQ0NHR1RUQUFDR0ND R0dBQUNUR0FDR0NUR0cKQ0NHQUFBQVRBVENDR1RHQ0dDVFRHR1RUVEFBVENHR0NHR0FBQVRUQUFD R0FDQUFUQ0FUVENDVFRDQ0NHCkNBQUNHQ0NUR0FDVEFUR0dDVFRUR1RHR0NDQUdUQ0FDVEFUQ0NH Q0NBR0NHQ0NBQUFBVFRHQ1RHR0NUVApUQ0NBQVRHR0NHVEdHVEFUQVRHR0dDR0NUQVRBQ0NBR0NH R0dBR0FBVEdBQUFBR0NHVENUVFRUVFRBVEEKVFRHQ0dBQVRHVFRHQ0NDQ0NHQVRHR0dHQ0dBR0NU QUNBVFRHVFRUQUFBR0NUQVRHQ0NUR0dBQ0dUVEFUClRHQ1RHQ0FBQUFBR0FUR0dDR1RHR0dDVENB QUdUR0dUVFRUVFRUQUNBQUNBVENUVEdHR0NUR0dHQUFBQwpDQUNUR0NDVEdBQ0NUR0NHVFRUQ0NU VEFDQVRUVEFDQ1RHQ0dHVEdHR0NHR0FBQVRBQ0dDVEdUQ0FBQUMKVFRDQ0dHR0NUVFRHR0dHQ0NH Q1RUVENDQ1RHR1RHVFRDVFRBVEFUQ1RHR1RUR0NDQ0dUVENBQVRHQUFBClRDQ1RHQ0NDQUdUVENB R0dDR0NDR0NUVEdBQUdUVFRHQ0NHQ0NHVENBQVRUR1RUR0NBR0NHVENHR0NURwpBQVRDVENHR0NH Q0FBQ0dUQ0NDQUNHQUNDQUFBQ0NUVFRUR0NUQVRHVEdHVEdDR0NDR0NUR0dDQUFBVEMKQ0NHR0dU QVRDVEdDQ0NHQ1RHQ1RDQ1RBVENUVEFDQ1RUQ1RDQ0FDVENBQ0FDVEdHR0NHQUFUVFRUQVRHClRD Q0NHQ0NDQUdDVEdHVFRHR1RDQ1RUQ0NBR0dBVEFUVFRUVEFUQ0dHQ0FBVEFUR0dUVFRUVFRBVFRD QwpDQUdDQUdHR0dHQ0dBVFRHR0NBQUFUQVRHQ0NDR0FUR0dDQ0dHQ0dHQ0FBQVRDQUNDQ1RHR0dU R0NDR0EKVEFUVFRDVENBVENHR0dDQUFDVEdUQUFDQ1RHQ0dUVENDR1RHQUFBQUNHVENUR0dHQUdD R1RUQ0dBVFRHCkNBQUNUQ1RHQUFDR0NHQ0FBQ0dBQ0dHVFRUVFRDQ1RDQUFBQUNUR0dDR0dDVEdH Q0dHQ0dHVFRHVFRUQwpUQUNBVFRUVENDQUFUQ0NUVEdBQVRBQVRDR0NHQ0NDVEFUR0NHVFRUVEFB Q0FDVEdBQUdBR0NHR0NHVFQKVEFHVFRUVFRDQ0FDQ0dDQUFHR0dDQ1RHQUFDQ0dDVFRHQ0dDVEdH VFRUVEFHQ0NHVEdHQ0FHQ0FDQUdDCkdUQUdUR0FUQUFUVENUVFRHQVRHQ0NDQ0dUR0FDQUNUR1RU Q0FDVFRBQUFHVEdHQ0dHQ0dDQVRUR0dDRwpBQ0FUVFRBQVRHQ0NHQ1RHR1RHVFRUQUdHR0FHQ1RH R0NBR0NUR0NDQ0dDR0dDVEdUVEdHQ0dBQ0dBR0EKQ1RUVFRUVENHR0dDQUFBQUFBQUNHQ0NBVFRU VENHQ1RHVFRBQ0FUR0NUR0NUR0NDQ0FUVEdDR0NUR0NHCkdHQ0FDVFRHVENBQ1RUR0dUQ1RHR0NH VFRBVFRBQUNDR0NDVFRUQUFBQUFDQ0FUQ0FUQ1RHR0FHQ0NHRwpHQVRUVFRUQ0FDQ0NBVENHVEdH VENHVENBVEdDR0dBQUNUVFRUVEdUR1RHVFRHVEdHVEdUVFRBQUNBQVQKR1RDQVRDR0NDQ1RUVENH Q0NHQ0FBQUNDVENUR0dBR1RDVEdHVFRBR0dDR1RDQUFBVEdHVENUR0dHR0NDCkFBQVRHQ1RDR0dD QUFBQ0NUVFRDQ0dDQ1RBQ0dUQUdUR1RUR0NDR0FBQUFUQ1RDQUdUVFRDR0dDR1RUQQpDVEdDQ0FH R0FHR0FBVEdDVFRHR0NHVFRUR0NDVFRHVFRDR1RUQ0NHQVRHQUFBVENBVENHVFRBQ0dHQUMKQ1RU VEFDR0dDQUdHVENBVEdBQUFDR0FBQ0dUVFRBQ0dUVEdUR0dUVENDVENBQVRDR0NUVFRHR0dDQ0dB CkNHQ0dDR1RHQVRHVEFDQ0dHQUFDVEFBQ0dUR0dUR0dDQ1RUR0NUR0dUVEFUR1RUVEdHVEFBQ0FB Q0NUVApBR0NDR0FUQ0NUR0dHR0NDVEdHVEdHQ1RBQUNDQ0dDR0FBQUdHQ0dBQ0FBQVRHR1RUQ0FB QVRBQUNDQ0EKQUNUR0FBQVRBQ0FHR0FBVEFUR0NUQVRHQ0FBQ0FUQUFBR1RUQUNUR1RUQUFDR0dB R0FBQ1RUVEdHVFRBCkdDR0dDR0FBR0dHR0FBQUFBQ0FHQ0NUR1RDVEFUQUFUQ0dUQ0FBQUNHR0dH R0FDR1RUVFRBQ0NUR0dHQQpBQUFUR0NDR0dDQUFUQ0NHQ0FBR0FHQ0FHR1RDR0FUR0NUQ0NUR1RH Q0dDR0NDR0dDR0FBVFRHQ0FHQ0EKQ1RUR0NDR0FBVEdHR0dHQ0FBQUNDQUFDR0NDR0FBQUdUVEdD R1RHQ0dHQUFBVEdUQ1RHQ1RHQUFBQ1RHCkdDVFRHQVRHVFRBQVRHQ0dBQUdBQUFBVEdHVENBR0dU VFRUVEdDQ0dHQUFDVEdHR0FHVENDR1RBVFRHVApHR0NBQUFBQ0NHQ1RUR0NBVEFBR1RHQ0dUQ0FB VEdBVEdBQUFUQ0NDQ0dHQ0dBVFRHVENHQUdUVFRUVEMKR0dDVFRUVENHQ0dHR1RHQ0dHR0NHQ0NH Q0NUR1RDVFRHQVRHR1RDVEdDQ1RHR0NHR0NDQUdHVEdBQVRBClRDVFRHQUFHR1RDQ0FUQUNUVFRD R0FUR0FUQ0NHVFRDR0NHQVRDQ0NHVFRHR0dHR1RDR1RHR0NUVEdUQwpUQVRDR0NBQUNDR1RHR0FU VEFUVENDR0NUR0FUR0FUR0dDQ0dDR1RHR0FBQUFDVFRHQ1RDQ0dHQ0dDVEcKR0NHR0NBQUdHR0FB Q0NUR0NHVEFHVEdDVFRBQUFDQ0FUQ0FHQ0FBQUFBQVRUQUNDQ0NHQ1RHQUNDR0NHClRUVEdBQUFH VFRHR0NBQUdHVEdHQ0dBQUFHQVRBVENUVFRDQ0NHR0NDQUdHQ0NHVEdBVFRBQUNDQUFUQQpDVEdU VFRHR0NBR0FHR0NBQUFBQ0dHVEdHR0dUR0FBVENDR0NUVEdBQ0NHR1RDQVRDQ0NBQUFHVEdDQ0cK R0FUR0dUR1RDR0NUVEdBQ0dHR0NUQ1RBVENHQ0NBQ0NHR0NDR0FHQ0FDQVRDQVRDQUdDQ1RBQ0NH Q0dUCkNHVENDQVRUQUFHQ0dUQUNUQ0NDQUFUQVRHQUNUVFRHR1RHR0NBQUFDR0NDQUdUR0FUVEdU VFRUVEdBQQpUR0FUR0NHR0FUQVRUR0FBR0NBR1RHR1RDQ0NHQUFHR1RHR1RBQ0dUQUNBVFRUVEdH Q1RBVFRBQ0FBVEcKQ1RHR0FDQUdHQVRUVEdUVEFDVEdDQ0dDR0dDQ1RUVFRHVENHR0FBQVRDQ1RB Q1RBQ0dDR0NHQUFBQUdHCkNBVFRUQUNHQVRBQ0dDVEdHVEdBQUFBQUFBQ1RHR0dHVEdDVFRUR0dD R0dUR0dDQUFBQUNHVFRBQUFBVApDQ1RHR1RHQ0dDQ0NBR0FUR0NBQ0NHQVRDVEFDR0dBR0NUVEdH QUFBQ0NUVEFBQUdDVENHQ1RHR0NHQ0MKQVRDVENDR0FBQ0dDR1RDQ0dHQ0FBR0dDQUdUQUdBQUdB R0dDR0FBR0NHQUNBR0dDQUNBVENBQUFHVEdBClRDQUNUR0dHQ0dUR0FBQUFDCg== --089e0160b074bd7b600508076746 Content-Type: application/octet-stream; name="q.m1" Content-Disposition: attachment; filename="q.m1" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i2led4952 cU5hbWUgdE5hbWUgcVN0cmFuZCB0U3RyYW5kIHNjb3JlIHBlcmNlbnRTaW1pbGFyaXR5IHRTdGFy dCB0RW5kIHRMZW5ndGggcVN0YXJ0IHFFbmQgcUxlbmd0aCBuQ2VsbHMKbTEzMDQwNF8wMTQwMDRf c2lkbmV5X2MxMDA1MDY5MDI1NTAwMDAwMDE4MjMwNzY4MDgyMjEzMzdfczFfcDAvNTc3OS8wXzEw Mzk3IHNjZjcxODAwMDAwMDAwMDJ8cXVpdmVyIDAgMCAtNDE1NDUgODkuMzE1MSAxMiA5NzM3IDk4 MDAgMTIgMTAzOTYgMTAzOTcgMjIyNjM3Cg== --089e0160b074bd7b600508076746-- From bnbowman@gmail.com Mon Nov 17 08:52:11 2014 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XqH6X-003DFG-8f>; Mon, 17 Nov 2014 08:52:09 +0100 Received: from mail-yk0-f178.google.com ([209.85.160.178]) by relay1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1XqH6W-000qwR-UP>; Mon, 17 Nov 2014 08:52:09 +0100 Received: by mail-yk0-f178.google.com with SMTP id 20so2696209yks.37 for ; Sun, 16 Nov 2014 23:52:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=dGqT9d1odCRFa0KezdZ7VoSHhLV6aVwNTUsWjDc5GnI=; b=Dk+ZDAZb8jf8ZuOGFpVhTb2/TWEwUoiz6iAzwE4fmFoe2akNNO+quFj+xU3A8kRzq7 QTc/G6hPb41gvyIyb9lEjdHkCk17kKt30s454YHTMAbY7PittyfyHd5J8WT1ClZmAk1T LMl6hm29qFnUSfliLQm7yLqNc5OBtRAdBT4jAS39VlqtlmSM+d3A1hT5Pg19ktUnXmty HJQdSxkjg7tUqEGH9gZHOd4kcLkKSM2Yv+bytYn8axH/kN5dJYX5LNmjKou4X8ve8Qfs bzkG3mvng4ptvzRxUhHiLJvKPM5iz9/CM4RpWIJrUXMxh8Ivn0iAWnMdoLsiGQRaa+0Z ACsQ== MIME-Version: 1.0 X-Received: by 10.170.98.84 with SMTP id p81mr965564yka.40.1416210726514; Sun, 16 Nov 2014 23:52:06 -0800 (PST) Received: by 10.170.110.19 with HTTP; Sun, 16 Nov 2014 23:52:06 -0800 (PST) In-Reply-To: References: <50D46377-BAED-47B3-8091-6DF539B7C9E8@fritz.box> Date: Sun, 16 Nov 2014 23:52:06 -0800 Message-ID: From: Brett Bowman To: SeqAn Development Content-Type: multipart/alternative; boundary=001a113aae4447f6f7050809416a X-Originating-IP: 209.85.160.178 X-ZEDAT-Hint: A X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1416210729-00067E64-AF3E4510/0/0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.086188, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=-0.7 required=5.0 tests=FREEMAIL_FROM,HTML_MESSAGE, RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,T_DKIM_INVALID X-Spam-Checker-Version: SpamAssassin 3.4.0 on Dschibuti.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [Seqan-dev] Fatal Error in Banded Chain Alignment Traceback X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Nov 2014 07:52:11 -0000 --001a113aae4447f6f7050809416a Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable I've gotten a rudimentary alignment out, but I had to tweak a few things: """ 0 . : . : . : . : . : AAAGAG--AGAGAT-ATGCCAGTAATA-CTTGAAAGATATTGCCGAGCTG | | | || |||||||||||| |||||||||||||||||||||| ---GTGCCCGTCATAATGCCAGTAATAGCTTGAAAGATATTGCCGAGCTG 50 . : . : . : . : . : GTGCCGTTTGCCCATCGTTATGGTGCAAAAA-TTTCGTCACGCTTAACAC ||||||||||||||||||||||||||||||| |||||||||||||||||| GTGCCGTTTGCCCATCGTTATGGTGCAAAAATTTTCGTCACGCTTAACAC 100 . : . : . : . : . : CATTTTGCATGATGATGAGCTGGAACCCGCGC-ACGGCTGATTACTGACC |||||||||||||||||||||||||||||||| ||||||||||||||||| CATTTTGCATGATGATGAGCTGGAACCCGCGCAACGGCTGATTACTGACC 150 . : . : . : . : . : TCTACCAGACCGGTGTCGATGCGCTGATTGTT-AGGATATGGGGATTCTG |||||||||||||||||||||||||||||||| ||||||||||||||||| TCTACCAGACCGGTGTCGATGCGCTGATTGTTCAGGATATGGGGATTCTG 200 . : . : . : . : . : GAAACCTTGATATTCGCGCGCGATTGAACTGGCACGCCAGTACCGCAGTG | || |||||||||| ||| |||||||||| ||||||||||| ||||||| G-AA-CTTGATATTC-CGC-CGATTGAACT-GCACGCCAGTA-CGCAGTG """ The scoring scheme had to be changed from: Score scoringScheme(4, -13, -7); // Determined empirically to work well on PacBio data with my home-brewed aligner to: Score scoringScheme(2, -1, -2); // Scoring scheme recommended/tested by SeqAn docs The initial Seed-set had to be set by hand with the reference-alignment's start position: SeedSet seeds2; addSeed(seeds2, TSeed( 12, 12, 100), seqan::Single()); addSeed(seeds2, TSeed( 120, 120, 100), seqan::Single()); So it appears that there are at least two issues at play here: -The value-type used for the bandedChainAlignment isn't large enough to handle multi-kb alignments with moderate-sized penalties -The default chaining algorithm doesn't handle large numbers of seeds with small indel gaps well. -Brett On Sun, Nov 16, 2014 at 9:39 PM, Brett Bowman wrote: > Thanks Rene, > > My query, reference, and canonical alignment from BLASR (the > PacBio-specific aligner) attached. > > I also noticed that the seeds it's chaining with chainGlobalAlignment() > are way off the diagonal, which may be related - details below: > > """ > Query #1 - > m130404_014004_sidney_c100506902550000001823076808221337_s1_p0/5779/0_103= 97 > Finished finding seeds > Seeds: 1939 > Finishing chaining seeds > Chain: 44 > Seed(7688, 57, 7706, 75, lower diag =3D 7631, upper diag= =3D > 7631) Length: 18 > Seed(7707, 94, 7722, 109, lower diag =3D 7613, upper dia= g =3D > 7613) Length: 15 > Seed(7933, 111, 7946, 124, lower diag =3D 7822, upper di= ag > =3D 7822) Length: 13 > Seed(7949, 130, 7965, 146, lower diag =3D 7819, upper di= ag > =3D 7819) Length: 16 > Seed(8065, 299, 8078, 312, lower diag =3D 7766, upper di= ag > =3D 7766) Length: 13 > Seed(8109, 314, 8126, 331, lower diag =3D 7795, upper di= ag > =3D 7795) Length: 17 > Seed(8169, 363, 8181, 375, lower diag =3D 7806, upper di= ag > =3D 7806) Length: 12 > Seed(8208, 381, 8222, 395, lower diag =3D 7827, upper di= ag > =3D 7827) Length: 14 > Seed(8222, 402, 8234, 414, lower diag =3D 7820, upper di= ag > =3D 7820) Length: 12 > Seed(8287, 446, 8304, 463, lower diag =3D 7841, upper di= ag > =3D 7841) Length: 17 > Seed(8304, 466, 8316, 478, lower diag =3D 7838, upper di= ag > =3D 7838) Length: 12 > Seed(8326, 748, 8338, 760, lower diag =3D 7578, upper di= ag > =3D 7578) Length: 12 > Seed(8354, 761, 8366, 773, lower diag =3D 7593, upper di= ag > =3D 7593) Length: 12 > Seed(8426, 801, 8438, 813, lower diag =3D 7625, upper di= ag > =3D 7625) Length: 12 > Seed(8702, 2291, 8721, 2310, lower diag =3D 6411, upper > diag =3D 6411) Length: 19 > Seed(8769, 2314, 8781, 2326, lower diag =3D 6455, upper > diag =3D 6455) Length: 12 > Seed(8794, 2387, 8806, 2399, lower diag =3D 6407, upper > diag =3D 6407) Length: 12 > Seed(8835, 2400, 8847, 2412, lower diag =3D 6435, upper > diag =3D 6435) Length: 12 > Seed(9162, 2650, 9174, 2662, lower diag =3D 6512, upper > diag =3D 6512) Length: 12 > Seed(9184, 2676, 9196, 2688, lower diag =3D 6508, upper > diag =3D 6508) Length: 12 > Seed(9196, 2736, 9208, 2748, lower diag =3D 6460, upper > diag =3D 6460) Length: 12 > Seed(9223, 2818, 9235, 2830, lower diag =3D 6405, upper > diag =3D 6405) Length: 12 > Seed(9251, 2844, 9267, 2860, lower diag =3D 6407, upper > diag =3D 6407) Length: 16 > Seed(9294, 2871, 9308, 2885, lower diag =3D 6423, upper > diag =3D 6423) Length: 14 > Seed(9314, 2891, 9327, 2904, lower diag =3D 6423, upper > diag =3D 6423) Length: 13 > Seed(9432, 2976, 9447, 2991, lower diag =3D 6456, upper > diag =3D 6456) Length: 15 > Seed(9515, 2992, 9527, 3004, lower diag =3D 6523, upper > diag =3D 6523) Length: 12 > Seed(9675, 3385, 9701, 3411, lower diag =3D 6290, upper > diag =3D 6290) Length: 26 > Seed(9724, 3414, 9736, 3426, lower diag =3D 6310, upper > diag =3D 6310) Length: 12 > Seed(9791, 3571, 9804, 3584, lower diag =3D 6220, upper > diag =3D 6220) Length: 13 > Seed(9805, 3596, 9817, 3608, lower diag =3D 6209, upper > diag =3D 6209) Length: 12 > Seed(9818, 4915, 9830, 4927, lower diag =3D 4903, upper > diag =3D 4903) Length: 12 > Seed(9842, 4939, 9854, 4951, lower diag =3D 4903, upper > diag =3D 4903) Length: 12 > Seed(9873, 5045, 9885, 5057, lower diag =3D 4828, upper > diag =3D 4828) Length: 12 > Seed(9886, 5077, 9898, 5089, lower diag =3D 4809, upper > diag =3D 4809) Length: 12 > Seed(9943, 5242, 9955, 5254, lower diag =3D 4701, upper > diag =3D 4701) Length: 12 > Seed(9957, 5385, 9969, 5397, lower diag =3D 4572, upper > diag =3D 4572) Length: 12 > Seed(9994, 5423, 10006, 5435, lower diag =3D 4571, upper > diag =3D 4571) Length: 12 > Seed(10062, 7096, 10074, 7108, lower diag =3D 2966, uppe= r > diag =3D 2966) Length: 12 > Seed(10102, 7109, 10114, 7121, lower diag =3D 2993, uppe= r > diag =3D 2993) Length: 12 > Seed(10156, 7131, 10178, 7153, lower diag =3D 3025, uppe= r > diag =3D 3025) Length: 22 > Seed(10277, 7354, 10299, 7376, lower diag =3D 2923, uppe= r > diag =3D 2923) Length: 22 > Seed(10299, 7378, 10313, 7392, lower diag =3D 2921, uppe= r > diag =3D 2921) Length: 14 > Seed(10371, 7400, 10385, 7414, lower diag =3D 2971, uppe= r > diag =3D 2971) Length: 14 > """ > > -Brett > > On Sun, Nov 16, 2014 at 2:57 AM, Rahn, Ren=C3=A9 > wrote: > >> Hey Brett, >> >> It could have multiple reasons. >> In general, it means that there was a traceback path from a seed or a >> gap, that couldn=E2=80=99t be connected with one of the so far generated= traceback >> paths. Note, that the traceback is computed incrementally to reduce the >> space requirements. >> If you could send me a simple text file containing the seeds of the seed >> chain (one seed per row using the <<-operator), that is input to the ban= ded >> chain alignment function, I could have a look at it and fix the problem. >> Also, I opened an issue in github: >> https://github.com/seqan/seqan/issues/699, for tracking the issue. >> >> >> Kind regards, >> >> Ren=C3=A9 Rahn >> >> On 16 Nov 2014, at 04:17, Brett Bowman wrote: >> >> I'm trying to build a tool with SeqAn to quickly align some PacBio >> data, using "bandedChainAlignment", but I'm consistently getting a crash >> during the trace-back step. The generation of the Seeds (SuffixArray) a= nd >> the finding of the base SeedChain works fine, but the final step of turn= ing >> that into an alignment doesn't appear to work. >> >> Suggestions? >> >> Error Log: >> """ >> bbowman@localhost:~/git/SRSLI$ ./src/C++/srsli >> test/data/query/ecoli_5p_sample.fastq >> test/data/reference/ecoliK12_5p_assembly.fasta >> Query 0 >> Finished finding seeds >> Finishing chaining seeds >> Starting alignment of sequences >> /usr/include/seqan/seeds/banded_chain_alignment_traceback.h:195 >> Assertion failed : isGlued =3D=3D true was: 0 !=3D 1 (Fatal error while = trying to >> connect trace backs: No glue point available!) >> Aborted (core dumped) >> """ >> >> -Brett >> _______________________________________________ >> seqan-dev mailing list >> seqan-dev@lists.fu-berlin.de >> https://lists.fu-berlin.de/listinfo/seqan-dev >> >> >> --- >> >> Ren=C3=A9 Rahn >> Ph.D. Student >> -------------------------------- >> Tel: (+49) 30 838 75277 >> Mail: rene.rahn@fu-berlin.de >> -------------------------------- >> Institute of Computer Science >> Algorithmic Bioinformatics (ABI) >> -------------------------------- >> Freie Universit=C3=A4t Berlin >> Takustra=C3=9Fe 9 >> 14195 Berlin >> -------------------------------- >> >> >> _______________________________________________ >> seqan-dev mailing list >> seqan-dev@lists.fu-berlin.de >> https://lists.fu-berlin.de/listinfo/seqan-dev >> >> > --001a113aae4447f6f7050809416a Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I've gotten a rudimentary alignment out, but I ha= d to tweak a few things:

"""
<= div>
=C2=A0 =C2=A0 =C2=A0 0 =C2=A0 =C2=A0 . =C2=A0 =C2=A0: =C2=A0 =C2= =A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2= =A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0:=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 AAAGAG--AGAGAT-ATGCCAGTAATA-CTTGAAAGATATTGCCGAGCTG
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| | =C2=A0 | =C2=A0|| |||||||||||| |||||||||= |||||||||||||
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ---GTGCCCGTCATAATGCCAGT= AATAGCTTGAAAGATATTGCCGAGCTG

=C2=A0 =C2=A0 =C2=A050= =C2=A0 =C2=A0 . =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0= . =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0= :=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 GTGCCGTTTGCCCATCGTTATGGTGCAAA= AA-TTTCGTCACGCTTAACAC
=C2=A0 =C2=A0 =C2=A0 =C2=A0 |||||||||||||||= |||||||||||||||| ||||||||||||||||||
=C2=A0 =C2=A0 =C2=A0 =C2=A0 G= TGCCGTTTGCCCATCGTTATGGTGCAAAAATTTTCGTCACGCTTAACAC

= =C2=A0 =C2=A0 100 =C2=A0 =C2=A0 . =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2= =A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2= =A0. =C2=A0 =C2=A0:=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 CATTTTGCATG= ATGATGAGCTGGAACCCGCGC-ACGGCTGATTACTGACC
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 |||||||||||||||||||||||||||||||| |||||||||||||||||
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 CATTTTGCATGATGATGAGCTGGAACCCGCGCAACGGCTGATTACTGACC
<= div>
=C2=A0 =C2=A0 150 =C2=A0 =C2=A0 . =C2=A0 =C2=A0: =C2=A0 = =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 = =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0:=C2=A0
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 TCTACCAGACCGGTGTCGATGCGCTGATTGTT-AGGATATGGGGATTCTG
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 |||||||||||||||||||||||||||||||| |||||||||||||||||
=C2=A0 =C2=A0 =C2=A0 =C2=A0 TCTACCAGACCGGTGTCGATGCGCTGATTGTTCAGGATAT= GGGGATTCTG

=C2=A0 =C2=A0 200 =C2=A0 =C2=A0 . =C2= =A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2= =A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0:=C2=A0
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 GAAACCTTGATATTCGCGCGCGATTGAACTGGCACGCCAGTACCGCA= GTG
=C2=A0 =C2=A0 =C2=A0 =C2=A0 | || |||||||||| ||| |||||||||| ||= ||||||||| |||||||
=C2=A0 =C2=A0 =C2=A0 =C2=A0 G-AA-CTTGATATTC-CGC= -CGATTGAACT-GCACGCCAGTA-CGCAGTG
"""

The scoring scheme had to be changed from:
= Score<short, Simple> scoringScheme(4, -13, -7); =C2=A0 // Determined = empirically to work well on PacBio data with my home-brewed aligner
to:
Score<short, Simple> scoringScheme(2, -1, -2); =C2= =A0 =C2=A0 // Scoring scheme recommended/tested by SeqAn docs

The initial Seed-set had to be set by hand with the refer= ence-alignment's start position:
SeedSet<Simple> s= eeds2;
addSeed(seeds2, TSeed( =C2=A012, =C2=A0 12, 100), seqan::S= ingle());
addSeed(seeds2, TSeed( 120, =C2=A0120, 100), seqan::Sin= gle());

So it appears that there are at leas= t two issues at play here:
-The value-type used for the bandedCha= inAlignment isn't large enough to handle multi-kb alignments with moder= ate-sized penalties
-The default chaining algorithm doesn't h= andle large numbers of seeds with small indel gaps well.

-Brett

On Sun, Nov 16, 2014 at 9:39 PM, Brett Bowman <= ;bnbowman@gmail.com= > wrote:
<= div>Thanks Rene,

My query, reference, and canonical ali= gnment from BLASR (the PacBio-specific aligner) attached.

I also noticed that the seeds it's chaining with chainGlobalAlignment= () are way off the diagonal, which may be related - details below:=C2=A0

"""
Query #1 - m130404_0= 14004_sidney_c100506902550000001823076808221337_s1_p0/5779/0_10397
Finished finding seeds
Seeds: 1939
Finishing chaining= seeds
Chain: 44
Seed<Simple, TConfig>(7688, 57, = 7706, 75, lower diag =3D 7631, upper diag =3D 7631) Length: 18
Se= ed<Simple, TConfig>(7707, 94, 7722, 109, lower diag =3D 7613, upper d= iag =3D 7613) Length: 15
Seed<Simple, TConfig>(7933, 111, 7= 946, 124, lower diag =3D 7822, upper diag =3D 7822) Length: 13
Se= ed<Simple, TConfig>(7949, 130, 7965, 146, lower diag =3D 7819, upper = diag =3D 7819) Length: 16
Seed<Simple, TConfig>(8065, 299, = 8078, 312, lower diag =3D 7766, upper diag =3D 7766) Length: 13
S= eed<Simple, TConfig>(8109, 314, 8126, 331, lower diag =3D 7795, upper= diag =3D 7795) Length: 17
Seed<Simple, TConfig>(8169, 363,= 8181, 375, lower diag =3D 7806, upper diag =3D 7806) Length: 12
= Seed<Simple, TConfig>(8208, 381, 8222, 395, lower diag =3D 7827, uppe= r diag =3D 7827) Length: 14
Seed<Simple, TConfig>(8222, 402= , 8234, 414, lower diag =3D 7820, upper diag =3D 7820) Length: 12
Seed<Simple, TConfig>(8287, 446, 8304, 463, lower diag =3D 7841, upp= er diag =3D 7841) Length: 17
Seed<Simple, TConfig>(8304, 46= 6, 8316, 478, lower diag =3D 7838, upper diag =3D 7838) Length: 12
Seed<Simple, TConfig>(8326, 748, 8338, 760, lower diag =3D 7578, up= per diag =3D 7578) Length: 12
Seed<Simple, TConfig>(8354, 7= 61, 8366, 773, lower diag =3D 7593, upper diag =3D 7593) Length: 12
Seed<Simple, TConfig>(8426, 801, 8438, 813, lower diag =3D 7625, u= pper diag =3D 7625) Length: 12
Seed<Simple, TConfig>(8702, = 2291, 8721, 2310, lower diag =3D 6411, upper diag =3D 6411) Length: 19
Seed<Simple, TConfig>(8769, 2314, 8781, 2326, lower diag =3D 64= 55, upper diag =3D 6455) Length: 12
Seed<Simple, TConfig>(8= 794, 2387, 8806, 2399, lower diag =3D 6407, upper diag =3D 6407) Length: 12=
Seed<Simple, TConfig>(8835, 2400, 8847, 2412, lower diag = =3D 6435, upper diag =3D 6435) Length: 12
Seed<Simple, TConfig= >(9162, 2650, 9174, 2662, lower diag =3D 6512, upper diag =3D 6512) Leng= th: 12
Seed<Simple, TConfig>(9184, 2676, 9196, 2688, lower = diag =3D 6508, upper diag =3D 6508) Length: 12
Seed<Simple, TC= onfig>(9196, 2736, 9208, 2748, lower diag =3D 6460, upper diag =3D 6460)= Length: 12
Seed<Simple, TConfig>(9223, 2818, 9235, 2830, l= ower diag =3D 6405, upper diag =3D 6405) Length: 12
Seed<Simpl= e, TConfig>(9251, 2844, 9267, 2860, lower diag =3D 6407, upper diag =3D = 6407) Length: 16
Seed<Simple, TConfig>(9294, 2871, 9308, 28= 85, lower diag =3D 6423, upper diag =3D 6423) Length: 14
Seed<= Simple, TConfig>(9314, 2891, 9327, 2904, lower diag =3D 6423, upper diag= =3D 6423) Length: 13
Seed<Simple, TConfig>(9432, 2976, 944= 7, 2991, lower diag =3D 6456, upper diag =3D 6456) Length: 15
See= d<Simple, TConfig>(9515, 2992, 9527, 3004, lower diag =3D 6523, upper= diag =3D 6523) Length: 12
Seed<Simple, TConfig>(9675, 3385= , 9701, 3411, lower diag =3D 6290, upper diag =3D 6290) Length: 26
Seed<Simple, TConfig>(9724, 3414, 9736, 3426, lower diag =3D 6310, = upper diag =3D 6310) Length: 12
Seed<Simple, TConfig>(9791,= 3571, 9804, 3584, lower diag =3D 6220, upper diag =3D 6220) Length: 13
Seed<Simple, TConfig>(9805, 3596, 9817, 3608, lower diag =3D 6= 209, upper diag =3D 6209) Length: 12
Seed<Simple, TConfig>(= 9818, 4915, 9830, 4927, lower diag =3D 4903, upper diag =3D 4903) Length: 1= 2
Seed<Simple, TConfig>(9842, 4939, 9854, 4951, lower diag = =3D 4903, upper diag =3D 4903) Length: 12
Seed<Simple, TConfig= >(9873, 5045, 9885, 5057, lower diag =3D 4828, upper diag =3D 4828) Leng= th: 12
Seed<Simple, TConfig>(9886, 5077, 9898, 5089, lower = diag =3D 4809, upper diag =3D 4809) Length: 12
Seed<Simple, TC= onfig>(9943, 5242, 9955, 5254, lower diag =3D 4701, upper diag =3D 4701)= Length: 12
Seed<Simple, TConfig>(9957, 5385, 9969, 5397, l= ower diag =3D 4572, upper diag =3D 4572) Length: 12
Seed<Simpl= e, TConfig>(9994, 5423, 10006, 5435, lower diag =3D 4571, upper diag =3D= 4571) Length: 12
Seed<Simple, TConfig>(10062, 7096, 10074,= 7108, lower diag =3D 2966, upper diag =3D 2966) Length: 12
Seed&= lt;Simple, TConfig>(10102, 7109, 10114, 7121, lower diag =3D 2993, upper= diag =3D 2993) Length: 12
Seed<Simple, TConfig>(10156, 713= 1, 10178, 7153, lower diag =3D 3025, upper diag =3D 3025) Length: 22
<= div>Seed<Simple, TConfig>(10277, 7354, 10299, 7376, lower diag =3D 29= 23, upper diag =3D 2923) Length: 22
Seed<Simple, TConfig>(1= 0299, 7378, 10313, 7392, lower diag =3D 2921, upper diag =3D 2921) Length: = 14
Seed<Simple, TConfig>(10371, 7400, 10385, 7414, lower di= ag =3D 2971, upper diag =3D 2971) Length: 14
""&q= uot;

-Brett

On = Sun, Nov 16, 2014 at 2:57 AM, Rahn, Ren=C3=A9 <rene.maerker@fu-ber= lin.de> wrote:
Hey Brett,=C2=A0

It could have multiple reasons.=C2=A0
In general, it means that there was a traceback path from a seed or a = gap, that couldn=E2=80=99t be connected with one of the so far generated tr= aceback paths. Note, that the traceback is computed incrementally to reduce= the space requirements.=C2=A0
If you could send me a simple text file containing the seeds of the se= ed chain (one seed per row using the <<-operator), that is input to t= he banded chain alignment function, I could have a look at it and fix the p= roblem.=C2=A0
Also, I opened an issue in github:=C2=A0https://github.com/seqan/seqan/is= sues/699, for tracking the issue.


Kind regards,=C2=A0

Ren=C3=A9 Rahn

On 16 Nov 2014, at 04:17, Brett Bowman <bnbowman@gmail.com> wrote:

I'm trying to build a tool with=C2=A0SeqAn= =C2=A0to quickly align some PacBio data, using "bandedChainAlignment", bu= t I'm consistently getting a crash during the trace-back step.=C2=A0 Th= e generation of the Seeds (SuffixArray) and the finding of the base SeedCha= in works fine, but the final step of turning that into an alignment doesn't appear to work. =C2=A0

Suggestions?

Error Log:
"""
bbowman@localhost:~/git/SRSLI$ ./src/C++/srsli test/data/query/ecoli_5= p_sample.fastq test/data/reference/ecoliK12_5p_assembly.fasta=C2=A0
Query 0
Finished finding seeds
Finishing chaining seeds
Starting alignment of sequences
/usr/include/seqan/= seeds/banded_chain_alignment_traceback.h:195 Assertion failed : isGlued =3D= =3D true was: 0 !=3D 1 (Fatal error while trying to connect trace backs: No= glue point available!)
Aborted (core dumped)
"""

-Brett
_______________________________________________
seqan-dev mailing list
seqan-dev= @lists.fu-berlin.de
https://lists.fu-berlin.de/listinfo/seqan-dev

---

Ren=C3=A9 Rahn
Ph.D. Student
--------------------------------
--------------------------------
Institute of Computer Science
Algorithmic Bioinformatics (ABI)
--------------------------------
Freie Universit=C3=A4t Berlin
Takustra=C3=9Fe 9
14195 Berlin
--------------------------------


_______________________________________________
seqan-dev mailing list
seqan-dev= @lists.fu-berlin.de
https://lists.fu-berlin.de/listinfo/seqan-dev



--001a113aae4447f6f7050809416a-- From bnbowman@gmail.com Tue Nov 18 02:17:14 2014 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XqXPn-0002nE-Kb>; Tue, 18 Nov 2014 02:17:07 +0100 Received: from mail-yh0-f51.google.com ([209.85.213.51]) by relay1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1XqXPn-003z2y-9d>; Tue, 18 Nov 2014 02:17:07 +0100 Received: by mail-yh0-f51.google.com with SMTP id a41so1589633yho.38 for ; Mon, 17 Nov 2014 17:17:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=a3wv8lEkMxYOwzPf5sM93zJj+I5LqacMBu/1ZFXFME8=; b=Q/e6zuuFv49Kg++2gccrPxEerhTofH7lao+T9/aC9AoHjGxQqan9q6J5YPa/bQVNse T0/ouwrWhk7tMsr9IkGQzg3E6PPqc2rBfTTsyvZQES+fPWe7sdkzVzU5tnaY/M9HIMiv fDpyDAe+HWSSEhZDE7N87EeR5/6vbYavh71wO2tAJYyhhhj9T/iwn2DuzW79rU0TypAo rjRF8coNMMowEvR2L8vwIYXtNSNKfoeBWjLkJzLawIRXv966Vf+VdhlyG/+/3mVXp6uw Dycrx1RR93h5TcguaHsbbv1XfU5P+n8iNPW+iJvp1zqDFWzgDxu0fnTAOb94o/YkTbxt Ju4g== MIME-Version: 1.0 X-Received: by 10.236.231.173 with SMTP id l43mr201583yhq.152.1416273424424; Mon, 17 Nov 2014 17:17:04 -0800 (PST) Received: by 10.170.110.19 with HTTP; Mon, 17 Nov 2014 17:17:04 -0800 (PST) In-Reply-To: References: <50D46377-BAED-47B3-8091-6DF539B7C9E8@fritz.box> Date: Mon, 17 Nov 2014 17:17:04 -0800 Message-ID: From: Brett Bowman To: SeqAn Development Content-Type: multipart/alternative; boundary=001a11c1d3105e29ab050817dab0 X-Originating-IP: 209.85.213.51 X-ZEDAT-Hint: A X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1416273427-00067E64-DE26200F/0/0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.068562, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=-0.7 required=5.0 tests=FREEMAIL_FROM,HTML_MESSAGE, RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,T_DKIM_INVALID X-Spam-Checker-Version: SpamAssassin 3.4.0 on Gabun.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [Seqan-dev] Fatal Error in Banded Chain Alignment Traceback X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Nov 2014 01:17:14 -0000 --001a11c1d3105e29ab050817dab0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Opps, I just noticed a mistake in my previous e-mail. I wrote: """ The scoring scheme had to be changed from: Score scoringScheme(4, -13, -7); // Determined empirically to work well on PacBio data with my home-brewed aligner to: Score scoringScheme(2, -1, -2); // Scoring scheme recommended/tested by SeqAn docs """ but what I meant was (changes in CAPITAL): """ The scoring scheme had to be changed from: Score scoringScheme(4, -13, -7); // Determined empirically to work well on PacBio data with my home-brewed aligner to: Score scoringScheme(2, -1, -2); // Scoring scheme recommended/tested by SeqAn docs """ I was not surprised when regular shorts were not large enough given that we're dealing with ~10kb alignments, but I was surprised that unsigned shorts did not work. They are preferable given their smaller size, and used by some of my home-brewed aligners. -Brett On Sun, Nov 16, 2014 at 11:52 PM, Brett Bowman wrote: > I've gotten a rudimentary alignment out, but I had to tweak a few things: > > """ > 0 . : . : . : . : . : > AAAGAG--AGAGAT-ATGCCAGTAATA-CTTGAAAGATATTGCCGAGCTG > | | | || |||||||||||| |||||||||||||||||||||| > ---GTGCCCGTCATAATGCCAGTAATAGCTTGAAAGATATTGCCGAGCTG > > 50 . : . : . : . : . : > GTGCCGTTTGCCCATCGTTATGGTGCAAAAA-TTTCGTCACGCTTAACAC > ||||||||||||||||||||||||||||||| |||||||||||||||||| > GTGCCGTTTGCCCATCGTTATGGTGCAAAAATTTTCGTCACGCTTAACAC > > 100 . : . : . : . : . : > CATTTTGCATGATGATGAGCTGGAACCCGCGC-ACGGCTGATTACTGACC > |||||||||||||||||||||||||||||||| ||||||||||||||||| > CATTTTGCATGATGATGAGCTGGAACCCGCGCAACGGCTGATTACTGACC > > 150 . : . : . : . : . : > TCTACCAGACCGGTGTCGATGCGCTGATTGTT-AGGATATGGGGATTCTG > |||||||||||||||||||||||||||||||| ||||||||||||||||| > TCTACCAGACCGGTGTCGATGCGCTGATTGTTCAGGATATGGGGATTCTG > > 200 . : . : . : . : . : > GAAACCTTGATATTCGCGCGCGATTGAACTGGCACGCCAGTACCGCAGTG > | || |||||||||| ||| |||||||||| ||||||||||| ||||||| > G-AA-CTTGATATTC-CGC-CGATTGAACT-GCACGCCAGTA-CGCAGTG > """ > > The scoring scheme had to be changed from: > Score scoringScheme(4, -13, -7); // Determined > empirically to work well on PacBio data with my home-brewed aligner > to: > Score scoringScheme(2, -1, -2); // Scoring scheme > recommended/tested by SeqAn docs > > The initial Seed-set had to be set by hand with the reference-alignment's > start position: > SeedSet seeds2; > addSeed(seeds2, TSeed( 12, 12, 100), seqan::Single()); > addSeed(seeds2, TSeed( 120, 120, 100), seqan::Single()); > > So it appears that there are at least two issues at play here: > -The value-type used for the bandedChainAlignment isn't large enough to > handle multi-kb alignments with moderate-sized penalties > -The default chaining algorithm doesn't handle large numbers of seeds wit= h > small indel gaps well. > > -Brett > > On Sun, Nov 16, 2014 at 9:39 PM, Brett Bowman wrote: > >> Thanks Rene, >> >> My query, reference, and canonical alignment from BLASR (the >> PacBio-specific aligner) attached. >> >> I also noticed that the seeds it's chaining with chainGlobalAlignment() >> are way off the diagonal, which may be related - details below: >> >> """ >> Query #1 - >> m130404_014004_sidney_c100506902550000001823076808221337_s1_p0/5779/0_10= 397 >> Finished finding seeds >> Seeds: 1939 >> Finishing chaining seeds >> Chain: 44 >> Seed(7688, 57, 7706, 75, lower diag =3D 7631, upper dia= g =3D >> 7631) Length: 18 >> Seed(7707, 94, 7722, 109, lower diag =3D 7613, upper di= ag >> =3D 7613) Length: 15 >> Seed(7933, 111, 7946, 124, lower diag =3D 7822, upper d= iag >> =3D 7822) Length: 13 >> Seed(7949, 130, 7965, 146, lower diag =3D 7819, upper d= iag >> =3D 7819) Length: 16 >> Seed(8065, 299, 8078, 312, lower diag =3D 7766, upper d= iag >> =3D 7766) Length: 13 >> Seed(8109, 314, 8126, 331, lower diag =3D 7795, upper d= iag >> =3D 7795) Length: 17 >> Seed(8169, 363, 8181, 375, lower diag =3D 7806, upper d= iag >> =3D 7806) Length: 12 >> Seed(8208, 381, 8222, 395, lower diag =3D 7827, upper d= iag >> =3D 7827) Length: 14 >> Seed(8222, 402, 8234, 414, lower diag =3D 7820, upper d= iag >> =3D 7820) Length: 12 >> Seed(8287, 446, 8304, 463, lower diag =3D 7841, upper d= iag >> =3D 7841) Length: 17 >> Seed(8304, 466, 8316, 478, lower diag =3D 7838, upper d= iag >> =3D 7838) Length: 12 >> Seed(8326, 748, 8338, 760, lower diag =3D 7578, upper d= iag >> =3D 7578) Length: 12 >> Seed(8354, 761, 8366, 773, lower diag =3D 7593, upper d= iag >> =3D 7593) Length: 12 >> Seed(8426, 801, 8438, 813, lower diag =3D 7625, upper d= iag >> =3D 7625) Length: 12 >> Seed(8702, 2291, 8721, 2310, lower diag =3D 6411, upper >> diag =3D 6411) Length: 19 >> Seed(8769, 2314, 8781, 2326, lower diag =3D 6455, upper >> diag =3D 6455) Length: 12 >> Seed(8794, 2387, 8806, 2399, lower diag =3D 6407, upper >> diag =3D 6407) Length: 12 >> Seed(8835, 2400, 8847, 2412, lower diag =3D 6435, upper >> diag =3D 6435) Length: 12 >> Seed(9162, 2650, 9174, 2662, lower diag =3D 6512, upper >> diag =3D 6512) Length: 12 >> Seed(9184, 2676, 9196, 2688, lower diag =3D 6508, upper >> diag =3D 6508) Length: 12 >> Seed(9196, 2736, 9208, 2748, lower diag =3D 6460, upper >> diag =3D 6460) Length: 12 >> Seed(9223, 2818, 9235, 2830, lower diag =3D 6405, upper >> diag =3D 6405) Length: 12 >> Seed(9251, 2844, 9267, 2860, lower diag =3D 6407, upper >> diag =3D 6407) Length: 16 >> Seed(9294, 2871, 9308, 2885, lower diag =3D 6423, upper >> diag =3D 6423) Length: 14 >> Seed(9314, 2891, 9327, 2904, lower diag =3D 6423, upper >> diag =3D 6423) Length: 13 >> Seed(9432, 2976, 9447, 2991, lower diag =3D 6456, upper >> diag =3D 6456) Length: 15 >> Seed(9515, 2992, 9527, 3004, lower diag =3D 6523, upper >> diag =3D 6523) Length: 12 >> Seed(9675, 3385, 9701, 3411, lower diag =3D 6290, upper >> diag =3D 6290) Length: 26 >> Seed(9724, 3414, 9736, 3426, lower diag =3D 6310, upper >> diag =3D 6310) Length: 12 >> Seed(9791, 3571, 9804, 3584, lower diag =3D 6220, upper >> diag =3D 6220) Length: 13 >> Seed(9805, 3596, 9817, 3608, lower diag =3D 6209, upper >> diag =3D 6209) Length: 12 >> Seed(9818, 4915, 9830, 4927, lower diag =3D 4903, upper >> diag =3D 4903) Length: 12 >> Seed(9842, 4939, 9854, 4951, lower diag =3D 4903, upper >> diag =3D 4903) Length: 12 >> Seed(9873, 5045, 9885, 5057, lower diag =3D 4828, upper >> diag =3D 4828) Length: 12 >> Seed(9886, 5077, 9898, 5089, lower diag =3D 4809, upper >> diag =3D 4809) Length: 12 >> Seed(9943, 5242, 9955, 5254, lower diag =3D 4701, upper >> diag =3D 4701) Length: 12 >> Seed(9957, 5385, 9969, 5397, lower diag =3D 4572, upper >> diag =3D 4572) Length: 12 >> Seed(9994, 5423, 10006, 5435, lower diag =3D 4571, uppe= r >> diag =3D 4571) Length: 12 >> Seed(10062, 7096, 10074, 7108, lower diag =3D 2966, upp= er >> diag =3D 2966) Length: 12 >> Seed(10102, 7109, 10114, 7121, lower diag =3D 2993, upp= er >> diag =3D 2993) Length: 12 >> Seed(10156, 7131, 10178, 7153, lower diag =3D 3025, upp= er >> diag =3D 3025) Length: 22 >> Seed(10277, 7354, 10299, 7376, lower diag =3D 2923, upp= er >> diag =3D 2923) Length: 22 >> Seed(10299, 7378, 10313, 7392, lower diag =3D 2921, upp= er >> diag =3D 2921) Length: 14 >> Seed(10371, 7400, 10385, 7414, lower diag =3D 2971, upp= er >> diag =3D 2971) Length: 14 >> """ >> >> -Brett >> >> On Sun, Nov 16, 2014 at 2:57 AM, Rahn, Ren=C3=A9 >> wrote: >> >>> Hey Brett, >>> >>> It could have multiple reasons. >>> In general, it means that there was a traceback path from a seed or a >>> gap, that couldn=E2=80=99t be connected with one of the so far generate= d traceback >>> paths. Note, that the traceback is computed incrementally to reduce the >>> space requirements. >>> If you could send me a simple text file containing the seeds of the see= d >>> chain (one seed per row using the <<-operator), that is input to the ba= nded >>> chain alignment function, I could have a look at it and fix the problem= . >>> Also, I opened an issue in github: >>> https://github.com/seqan/seqan/issues/699, for tracking the issue. >>> >>> >>> Kind regards, >>> >>> Ren=C3=A9 Rahn >>> >>> On 16 Nov 2014, at 04:17, Brett Bowman wrote: >>> >>> I'm trying to build a tool with SeqAn to quickly align some PacBio >>> data, using "bandedChainAlignment", but I'm consistently getting a cras= h >>> during the trace-back step. The generation of the Seeds (SuffixArray) = and >>> the finding of the base SeedChain works fine, but the final step of tur= ning >>> that into an alignment doesn't appear to work. >>> >>> Suggestions? >>> >>> Error Log: >>> """ >>> bbowman@localhost:~/git/SRSLI$ ./src/C++/srsli >>> test/data/query/ecoli_5p_sample.fastq >>> test/data/reference/ecoliK12_5p_assembly.fasta >>> Query 0 >>> Finished finding seeds >>> Finishing chaining seeds >>> Starting alignment of sequences >>> /usr/include/seqan/seeds/banded_chain_alignment_traceback.h:195 >>> Assertion failed : isGlued =3D=3D true was: 0 !=3D 1 (Fatal error while= trying to >>> connect trace backs: No glue point available!) >>> Aborted (core dumped) >>> """ >>> >>> -Brett >>> _______________________________________________ >>> seqan-dev mailing list >>> seqan-dev@lists.fu-berlin.de >>> https://lists.fu-berlin.de/listinfo/seqan-dev >>> >>> >>> --- >>> >>> Ren=C3=A9 Rahn >>> Ph.D. Student >>> -------------------------------- >>> Tel: (+49) 30 838 75277 >>> Mail: rene.rahn@fu-berlin.de >>> -------------------------------- >>> Institute of Computer Science >>> Algorithmic Bioinformatics (ABI) >>> -------------------------------- >>> Freie Universit=C3=A4t Berlin >>> Takustra=C3=9Fe 9 >>> 14195 Berlin >>> -------------------------------- >>> >>> >>> _______________________________________________ >>> seqan-dev mailing list >>> seqan-dev@lists.fu-berlin.de >>> https://lists.fu-berlin.de/listinfo/seqan-dev >>> >>> >> > --001a11c1d3105e29ab050817dab0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Opps, I just noticed a mistake in my previous e-mail.=C2=A0 I wrote:
=

"""
The scoring sc= heme had to be changed from:
Score<short, Simple> scoringScheme(4, -13, -7)= ; =C2=A0 // Determined empirically to work well on PacBio data with my home= -brewed aligner
to:
Score<short, Simple> scoringS= cheme(2, -1, -2); =C2=A0 =C2=A0 // Scoring scheme recommended/tested by=C2= =A0SeqAn=C2=A0docs
"""

but what I meant was (changes in CAPITAL):
= """
The scoring scheme had to be changed from= :
Score<UNSIGNED short, Simple> scoringScheme(4, -13, = -7); =C2=A0 // Determined empirically to work well on PacBio data with my h= ome-brewed aligner
to:
Score<UNSIGNED short, Simple&= gt; scoringScheme(2, -1, -2); =C2=A0 =C2=A0 // Scoring scheme recommended/t= ested by=C2=A0SeqAn=C2=A0docs
"""

I was not surprised when regul= ar shorts were not large enough given that we're dealing with ~10kb ali= gnments, but I was surprised that unsigned shorts did not work.=C2=A0 They = are preferable given their smaller size, and used by some of my home-brewed= aligners.=C2=A0

-Brett

On Sun, Nov 16, 2014 at 11= :52 PM, Brett Bowman <bnbowman@gmail.com> wrote:
I've gotten a rudimentary= alignment out, but I had to tweak a few things:

&= quot;""
=C2=A0 =C2=A0 =C2=A0 0 =C2=A0 =C2=A0 . =C2= =A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2= =A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0:=C2=A0
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 AAAGAG--AGAGAT-ATGCCAGTAATA-CTTGAAAGATATTGCCGAG= CTG
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| | =C2=A0 | =C2=A0|= | |||||||||||| ||||||||||||||||||||||
=C2=A0 =C2=A0 =C2=A0 =C2=A0= ---GTGCCCGTCATAATGCCAGTAATAGCTTGAAAGATATTGCCGAGCTG

=C2=A0 =C2=A0 =C2=A050 =C2=A0 =C2=A0 . =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2= =A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2= =A0 =C2=A0. =C2=A0 =C2=A0:=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 GTGC= CGTTTGCCCATCGTTATGGTGCAAAAA-TTTCGTCACGCTTAACAC
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 ||||||||||||||||||||||||||||||| ||||||||||||||||||
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 GTGCCGTTTGCCCATCGTTATGGTGCAAAAATTTTCGTCACGCTTAACAC=

=C2=A0 =C2=A0 100 =C2=A0 =C2=A0 . =C2=A0 =C2=A0: = =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0. = =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0:=C2=A0
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 CATTTTGCATGATGATGAGCTGGAACCCGCGC-ACGGCTGATTACTGACC
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 |||||||||||||||||||||||||||||||| ||||||||||||||= |||
=C2=A0 =C2=A0 =C2=A0 =C2=A0 CATTTTGCATGATGATGAGCTGGAACCCGCGCA= ACGGCTGATTACTGACC

=C2=A0 =C2=A0 150 =C2=A0 =C2=A0 = . =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0= : =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0:=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 TCTACCAGACCGGTGTCGATGCGCTGATTGTT-AGGATATGGGG= ATTCTG
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ||||||||||||||||||||||||||||||= || |||||||||||||||||
=C2=A0 =C2=A0 =C2=A0 =C2=A0 TCTACCAGACCGGTGT= CGATGCGCTGATTGTTCAGGATATGGGGATTCTG

=C2=A0 =C2=A0 2= 00 =C2=A0 =C2=A0 . =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2= =A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2= =A0:=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 GAAACCTTGATATTCGCGCGCGATTG= AACTGGCACGCCAGTACCGCAGTG
=C2=A0 =C2=A0 =C2=A0 =C2=A0 | || |||||||= ||| ||| |||||||||| ||||||||||| |||||||
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 G-AA-CTTGATATTC-CGC-CGATTGAACT-GCACGCCAGTA-CGCAGTG
&quo= t;""

The scoring scheme had to be change= d from:
Score<short, Simple> scoringScheme(4, -13, -7)= ; =C2=A0 // Determined empirically to work well on PacBio data with my home= -brewed aligner
to:
Score<short, Simple> scoringS= cheme(2, -1, -2); =C2=A0 =C2=A0 // Scoring scheme recommended/tested by Seq= An docs

The initial Seed-set had to be set b= y hand with the reference-alignment's start position:
Se= edSet<Simple> seeds2;
addSeed(seeds2, TSeed( =C2=A012, =C2= =A0 12, 100), seqan::Single());
addSeed(seeds2, TSeed( 120, =C2= =A0120, 100), seqan::Single());

So it appear= s that there are at least two issues at play here:
-The value-typ= e used for the bandedChainAlignment isn't large enough to handle multi-= kb alignments with moderate-sized penalties
-The default chaining= algorithm doesn't handle large numbers of seeds with small indel gaps = well.

-Brett
=

On Sun, Nov 16, 2= 014 at 9:39 PM, Brett Bowman <bnbowman@gmail.com> wrote:
Thanks Rene,

My query, reference, and canonical alignment from BLASR (the Pa= cBio-specific aligner) attached.

I also noticed that the= seeds it's chaining with chainGlobalAlignment() are way off the diagon= al, which may be related - details below:=C2=A0

&quo= t;""
Query #1 - m130404_014004_sidney_c10050690255= 0000001823076808221337_s1_p0/5779/0_10397
Finished finding seeds<= /div>
Seeds: 1939
Finishing chaining seeds
Chain: 4= 4
Seed<Simple, TConfig>(7688, 57, 7706, 75, lower diag =3D = 7631, upper diag =3D 7631) Length: 18
Seed<Simple, TConfig>= (7707, 94, 7722, 109, lower diag =3D 7613, upper diag =3D 7613) Length: 15<= /div>
Seed<Simple, TConfig>(7933, 111, 7946, 124, lower diag =3D = 7822, upper diag =3D 7822) Length: 13
Seed<Simple, TConfig>= (7949, 130, 7965, 146, lower diag =3D 7819, upper diag =3D 7819) Length: 16=
Seed<Simple, TConfig>(8065, 299, 8078, 312, lower diag =3D= 7766, upper diag =3D 7766) Length: 13
Seed<Simple, TConfig>= ;(8109, 314, 8126, 331, lower diag =3D 7795, upper diag =3D 7795) Length: 1= 7
Seed<Simple, TConfig>(8169, 363, 8181, 375, lower diag = =3D 7806, upper diag =3D 7806) Length: 12
Seed<Simple, TConfig= >(8208, 381, 8222, 395, lower diag =3D 7827, upper diag =3D 7827) Length= : 14
Seed<Simple, TConfig>(8222, 402, 8234, 414, lower diag= =3D 7820, upper diag =3D 7820) Length: 12
Seed<Simple, TConfi= g>(8287, 446, 8304, 463, lower diag =3D 7841, upper diag =3D 7841) Lengt= h: 17
Seed<Simple, TConfig>(8304, 466, 8316, 478, lower dia= g =3D 7838, upper diag =3D 7838) Length: 12
Seed<Simple, TConf= ig>(8326, 748, 8338, 760, lower diag =3D 7578, upper diag =3D 7578) Leng= th: 12
Seed<Simple, TConfig>(8354, 761, 8366, 773, lower di= ag =3D 7593, upper diag =3D 7593) Length: 12
Seed<Simple, TCon= fig>(8426, 801, 8438, 813, lower diag =3D 7625, upper diag =3D 7625) Len= gth: 12
Seed<Simple, TConfig>(8702, 2291, 8721, 2310, lower= diag =3D 6411, upper diag =3D 6411) Length: 19
Seed<Simple, T= Config>(8769, 2314, 8781, 2326, lower diag =3D 6455, upper diag =3D 6455= ) Length: 12
Seed<Simple, TConfig>(8794, 2387, 8806, 2399, = lower diag =3D 6407, upper diag =3D 6407) Length: 12
Seed<Simp= le, TConfig>(8835, 2400, 8847, 2412, lower diag =3D 6435, upper diag =3D= 6435) Length: 12
Seed<Simple, TConfig>(9162, 2650, 9174, 2= 662, lower diag =3D 6512, upper diag =3D 6512) Length: 12
Seed<= ;Simple, TConfig>(9184, 2676, 9196, 2688, lower diag =3D 6508, upper dia= g =3D 6508) Length: 12
Seed<Simple, TConfig>(9196, 2736, 92= 08, 2748, lower diag =3D 6460, upper diag =3D 6460) Length: 12
Se= ed<Simple, TConfig>(9223, 2818, 9235, 2830, lower diag =3D 6405, uppe= r diag =3D 6405) Length: 12
Seed<Simple, TConfig>(9251, 284= 4, 9267, 2860, lower diag =3D 6407, upper diag =3D 6407) Length: 16
Seed<Simple, TConfig>(9294, 2871, 9308, 2885, lower diag =3D 6423,= upper diag =3D 6423) Length: 14
Seed<Simple, TConfig>(9314= , 2891, 9327, 2904, lower diag =3D 6423, upper diag =3D 6423) Length: 13
Seed<Simple, TConfig>(9432, 2976, 9447, 2991, lower diag =3D = 6456, upper diag =3D 6456) Length: 15
Seed<Simple, TConfig>= (9515, 2992, 9527, 3004, lower diag =3D 6523, upper diag =3D 6523) Length: = 12
Seed<Simple, TConfig>(9675, 3385, 9701, 3411, lower diag= =3D 6290, upper diag =3D 6290) Length: 26
Seed<Simple, TConfi= g>(9724, 3414, 9736, 3426, lower diag =3D 6310, upper diag =3D 6310) Len= gth: 12
Seed<Simple, TConfig>(9791, 3571, 9804, 3584, lower= diag =3D 6220, upper diag =3D 6220) Length: 13
Seed<Simple, T= Config>(9805, 3596, 9817, 3608, lower diag =3D 6209, upper diag =3D 6209= ) Length: 12
Seed<Simple, TConfig>(9818, 4915, 9830, 4927, = lower diag =3D 4903, upper diag =3D 4903) Length: 12
Seed<Simp= le, TConfig>(9842, 4939, 9854, 4951, lower diag =3D 4903, upper diag =3D= 4903) Length: 12
Seed<Simple, TConfig>(9873, 5045, 9885, 5= 057, lower diag =3D 4828, upper diag =3D 4828) Length: 12
Seed<= ;Simple, TConfig>(9886, 5077, 9898, 5089, lower diag =3D 4809, upper dia= g =3D 4809) Length: 12
Seed<Simple, TConfig>(9943, 5242, 99= 55, 5254, lower diag =3D 4701, upper diag =3D 4701) Length: 12
Se= ed<Simple, TConfig>(9957, 5385, 9969, 5397, lower diag =3D 4572, uppe= r diag =3D 4572) Length: 12
Seed<Simple, TConfig>(9994, 542= 3, 10006, 5435, lower diag =3D 4571, upper diag =3D 4571) Length: 12
<= div>Seed<Simple, TConfig>(10062, 7096, 10074, 7108, lower diag =3D 29= 66, upper diag =3D 2966) Length: 12
Seed<Simple, TConfig>(1= 0102, 7109, 10114, 7121, lower diag =3D 2993, upper diag =3D 2993) Length: = 12
Seed<Simple, TConfig>(10156, 7131, 10178, 7153, lower di= ag =3D 3025, upper diag =3D 3025) Length: 22
Seed<Simple, TCon= fig>(10277, 7354, 10299, 7376, lower diag =3D 2923, upper diag =3D 2923)= Length: 22
Seed<Simple, TConfig>(10299, 7378, 10313, 7392,= lower diag =3D 2921, upper diag =3D 2921) Length: 14
Seed<Sim= ple, TConfig>(10371, 7400, 10385, 7414, lower diag =3D 2971, upper diag = =3D 2971) Length: 14
"""

-Brett

On Sun, Nov 16, 2014 at 2:57 AM, Rahn, Ren=C3=A9 <rene.maerker@fu-berlin.de> wrote:
Hey Brett,=C2=A0

It could have multiple reasons.=C2=A0
In general, it means that there was a traceback path from a seed or a = gap, that couldn=E2=80=99t be connected with one of the so far generated tr= aceback paths. Note, that the traceback is computed incrementally to reduce= the space requirements.=C2=A0
If you could send me a simple text file containing the seeds of the se= ed chain (one seed per row using the <<-operator), that is input to t= he banded chain alignment function, I could have a look at it and fix the p= roblem.=C2=A0
Also, I opened an issue in github:=C2=A0https://github.com/seqan/seqan/is= sues/699, for tracking the issue.


Kind regards,=C2=A0

Ren=C3=A9 Rahn

On 16 Nov 2014, at 04:17, Brett Bowman <bnbowman@gmail.com> wrote:

I'm trying to build a tool with=C2=A0SeqAn= =C2=A0to quickly align some PacBio data, using "bandedChainAlignment", bu= t I'm consistently getting a crash during the trace-back step.=C2=A0 Th= e generation of the Seeds (SuffixArray) and the finding of the base SeedCha= in works fine, but the final step of turning that into an alignment doesn't appear to work. =C2=A0

Suggestions?

Error Log:
"""
bbowman@localhost:~/git/SRSLI$ ./src/C++/srsli test/data/query/ecoli_5= p_sample.fastq test/data/reference/ecoliK12_5p_assembly.fasta=C2=A0
Query 0
Finished finding seeds
Finishing chaining seeds
Starting alignment of sequences
/usr/include/seqan/= seeds/banded_chain_alignment_traceback.h:195 Assertion failed : isGlued =3D= =3D true was: 0 !=3D 1 (Fatal error while trying to connect trace backs: No= glue point available!)
Aborted (core dumped)
"""

-Brett
_______________________________________________
seqan-dev mailing list
seqan-dev= @lists.fu-berlin.de
https://lists.fu-berlin.de/listinfo/seqan-dev

---

Ren=C3=A9 Rahn
Ph.D. Student
--------------------------------
--------------------------------
Institute of Computer Science
Algorithmic Bioinformatics (ABI)
--------------------------------
Freie Universit=C3=A4t Berlin
Takustra=C3=9Fe 9
14195 Berlin
--------------------------------


_______________________________________________
seqan-dev mailing list
seqan-dev= @lists.fu-berlin.de
https://lists.fu-berlin.de/listinfo/seqan-dev




--001a11c1d3105e29ab050817dab0-- From rene.maerker@fu-berlin.de Tue Nov 18 16:19:12 2014 Received: from outpost9.zedat.fu-berlin.de ([130.133.4.95]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XqkYf-000r6c-V3>; Tue, 18 Nov 2014 16:19:10 +0100 Received: from relay2.zedat.fu-berlin.de ([130.133.4.80]) by outpost.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XqkYf-003EWe-Sb>; Tue, 18 Nov 2014 16:19:09 +0100 Received: from cas1.campus.fu-berlin.de ([130.133.170.201]) by relay2.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1XqkYf-000aDy-Ew>; Tue, 18 Nov 2014 16:19:09 +0100 Received: from EX03A.campus.fu-berlin.de ([130.133.170.134]) by CAS1.campus.fu-berlin.de ([130.133.170.201]) with mapi id 14.03.0210.002; Tue, 18 Nov 2014 16:19:08 +0100 From: =?utf-8?B?UmFobiwgUmVuw6k=?= To: SeqAn Development Thread-Topic: [Seqan-dev] Fatal Error in Banded Chain Alignment Traceback Thread-Index: AQHQAUv6+3oy1rxx+U+pRGZ4bmK1QpxjBQCAgAE5aICAACUAAIABI/UAgADrQwA= Message-ID: References: <50D46377-BAED-47B3-8091-6DF539B7C9E8@fritz.box> In-Reply-To: Accept-Language: de-DE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Content-Type: multipart/alternative; boundary="_000_AB74A317D8794DBA8E1C85BCD4DBF6E4zedatfuberlinde_" MIME-Version: 1.0 Date: Tue, 18 Nov 2014 16:19:06 +0100 X-Original-Date: Tue, 18 Nov 2014 15:19:06 +0000 X-Originating-IP: 130.133.170.201 X-ZEDAT-Hint: XA X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1416323949-00067E64-53AFFBB5/0/0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=-48.9 required=5.0 tests=ALL_TRUSTED,HTML_MESSAGE, TRACKER_ID X-Spam-Checker-Version: SpamAssassin 3.4.0 on Burundi.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [Seqan-dev] Fatal Error in Banded Chain Alignment Traceback X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Nov 2014 15:19:12 -0000 --_000_AB74A317D8794DBA8E1C85BCD4DBF6E4zedatfuberlinde_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGV5IEJyZXR0LA0KDQpieSBqdXN0IGxvb2tpbmcgYXQgdGhlIHNlZWQgY2hhaW4gSSBtaWdodCB0 aGluayB0aGF0IHRoZSBwcm9ibGVtIGlzIHRoZSBiYWQgY2hhaW4gaW4gdGhlIGZpcnN0IHBsYWNl Lg0KVGhlIGZpcnN0IHNlZWQgYmVnaW5zIGF0IHBvc2l0aW9uIDc2ODggZm9yIHRoZSBmaXJzdCBz ZXF1ZW5jZSwgd2hpbGUgdGhlIHNlZWQgZm9yIHRoZSBzZWNvbmQgc2VxdWVuY2Ugc3RhcnRzIGF0 IHBvc2l0aW9uIDU3Lg0KVGhlcmUgSSBjYW4gaGF2ZSBhdCBtb3N0IDU3IG1hdGNoZXMgYW5kIGhh dmUgNzYzMSBnYXBzLiBHaXZlbiBhIHNjb3JlIG9mIC03IGZvciB0aGUgZ2FwcyBhbmQgNCBmb3Ig dGhlIG1hdGNoZXMgSSBoYXZlIGEgc2NvcmUgb2YgYXQgbGVhc3QgLTUzMTg5IHdoaWNoIGluIGZh Y3QgZXhjZWVkcyB0aGUgYm91bmQgb2YgdW5zaWduZWQgc2hvcnRzIC0zMi43NjggLSAzMi43Njcu DQpUaGlzIHdvdWxkIGFsc28gZXhwbGFpbiB3aHkgaXQgd29ya3Mgd2l0aCBhIGdhcCBwZW5hbHR5 IG9mIC0yIH4gLTE1MzAwLg0KVXNpbmcgdW5zaWduZWQgc2hvcnQgY2Fubm90IGdpdmUgY29ycmVj dCByZXN1bHRzLCBhcyBpdCBpcyBvbmx5IGRlZmluZWQgb24gdGhlIHZhbHVlcyBmcm9tIDAgdG8g NjU1MzUuIEluIHRoaXMgY2FzZSAtNyB3b3VsZCBhbHNvIGJlIGludGVycHJldGVkIGFzIDY1NTI5 Lg0KU28gc29tZXdoZXJlIGluIHRoZSBmaXJzdCBtYXRyaXggaXMgYW4gb3ZlcmZsb3csIHdoaWNo IG1pZ2h0IGxlYWQgdG8gdGhlIHByb2JsZW0gd2l0aCB0aGUgdHJhY2ViYWNrLiBJIHdpbGwgaW52 ZXN0aWdhdGUgdGhpcyBtb3JlIHRob3JvdWdobHkgaW4gdGhlIG5leHQgZGF5cy4NCkZvciB0aGUg bW9tZW50IEkgc3VnZ2VzdCAyIHRoaW5ncy4NCkEpIFRyeSB0byB1c2Ugc2lnbmVkIGludGVnZXIg dHlwZXMgYW5kIHNlZSBpZiBpdCBydW5zIHRocm91Z2guIChKdXN0IHRvIGNoZWNrIGlmIGl0IGlz IHJlYWxseSByZWxhdGVkIHRvIHRoZSB2YWx1ZSBvdmVyZmxvdy4pDQpCKSBVc2UgY2hhb3MgY2hh aW5pbmcgd2hlbiBhZGRpbmcgc2VlZHMgdG8gdGhlIHNlZWQgc2V0LiBGcm9tIHRoZSBkYXRhIHNl dCBJIHdvdWxkIGd1ZXNzIHlvdSB1c2VkIHRoZSBzaW1wbGUgbWVyZ2Ugc3RyYXRlZ3ksIGJ1dCBn aXZlbiB0aGF0IHRoZSBzZXF1ZW5jZXMgbWlnaHQgbm90IGJlIOKAnHZlcnnigJ0gc2ltaWxhciB0 aGUgY2hhb3MgY2hhaW5pbmcgbWlnaHQgY29tcHV0ZSBiZXR0ZXIgcmVzdWx0cyBhbmQgdGhlbiB0 aGUgYmFuZGVkIGNoYWluIGFsaWdubWVudCBtaWdodCB3b3JrIGFzIHdlbGwuDQoNCkRpZCB5b3Ug Y2hhbmdlZCB0aGUgZGVmYXVsdCBiYW5kIHNldHRpbmdzIGZvciB0aGUgYmFuZCB3aWR0aCBvZiB0 aGUgYmFuZGVkQ2hhaW5BbGlnbm1lbnQgKHRoaXMgcGFyYW1ldGVyIGspPw0KDQpDaGVlcnMsDQoN ClJlbsOpDQoNCk9uIDE4IE5vdiAyMDE0LCBhdCAwMjoxNywgQnJldHQgQm93bWFuIDxibmJvd21h bkBnbWFpbC5jb208bWFpbHRvOmJuYm93bWFuQGdtYWlsLmNvbT4+IHdyb3RlOg0KDQpPcHBzLCBJ IGp1c3Qgbm90aWNlZCBhIG1pc3Rha2UgaW4gbXkgcHJldmlvdXMgZS1tYWlsLiAgSSB3cm90ZToN Cg0KIiIiDQpUaGUgc2NvcmluZyBzY2hlbWUgaGFkIHRvIGJlIGNoYW5nZWQgZnJvbToNClNjb3Jl PHNob3J0LCBTaW1wbGU+IHNjb3JpbmdTY2hlbWUoNCwgLTEzLCAtNyk7ICAgLy8gRGV0ZXJtaW5l ZCBlbXBpcmljYWxseSB0byB3b3JrIHdlbGwgb24gUGFjQmlvIGRhdGEgd2l0aCBteSBob21lLWJy ZXdlZCBhbGlnbmVyDQp0bzoNClNjb3JlPHNob3J0LCBTaW1wbGU+IHNjb3JpbmdTY2hlbWUoMiwg LTEsIC0yKTsgICAgIC8vIFNjb3Jpbmcgc2NoZW1lIHJlY29tbWVuZGVkL3Rlc3RlZCBieSBTZXFB biBkb2NzDQoiIiINCg0KYnV0IHdoYXQgSSBtZWFudCB3YXMgKGNoYW5nZXMgaW4gQ0FQSVRBTCk6 DQoiIiINClRoZSBzY29yaW5nIHNjaGVtZSBoYWQgdG8gYmUgY2hhbmdlZCBmcm9tOg0KU2NvcmU8 VU5TSUdORUQgc2hvcnQsIFNpbXBsZT4gc2NvcmluZ1NjaGVtZSg0LCAtMTMsIC03KTsgICAvLyBE ZXRlcm1pbmVkIGVtcGlyaWNhbGx5IHRvIHdvcmsgd2VsbCBvbiBQYWNCaW8gZGF0YSB3aXRoIG15 IGhvbWUtYnJld2VkIGFsaWduZXINCnRvOg0KU2NvcmU8VU5TSUdORUQgc2hvcnQsIFNpbXBsZT4g c2NvcmluZ1NjaGVtZSgyLCAtMSwgLTIpOyAgICAgLy8gU2NvcmluZyBzY2hlbWUgcmVjb21tZW5k ZWQvdGVzdGVkIGJ5IFNlcUFuIGRvY3MNCiIiIg0KDQpJIHdhcyBub3Qgc3VycHJpc2VkIHdoZW4g cmVndWxhciBzaG9ydHMgd2VyZSBub3QgbGFyZ2UgZW5vdWdoIGdpdmVuIHRoYXQgd2UncmUgZGVh bGluZyB3aXRoIH4xMGtiIGFsaWdubWVudHMsIGJ1dCBJIHdhcyBzdXJwcmlzZWQgdGhhdCB1bnNp Z25lZCBzaG9ydHMgZGlkIG5vdCB3b3JrLiAgVGhleSBhcmUgcHJlZmVyYWJsZSBnaXZlbiB0aGVp ciBzbWFsbGVyIHNpemUsIGFuZCB1c2VkIGJ5IHNvbWUgb2YgbXkgaG9tZS1icmV3ZWQgYWxpZ25l cnMuDQoNCi1CcmV0dA0KDQpPbiBTdW4sIE5vdiAxNiwgMjAxNCBhdCAxMTo1MiBQTSwgQnJldHQg Qm93bWFuIDxibmJvd21hbkBnbWFpbC5jb208bWFpbHRvOmJuYm93bWFuQGdtYWlsLmNvbT4+IHdy b3RlOg0KSSd2ZSBnb3R0ZW4gYSBydWRpbWVudGFyeSBhbGlnbm1lbnQgb3V0LCBidXQgSSBoYWQg dG8gdHdlYWsgYSBmZXcgdGhpbmdzOg0KDQoiIiINCiAgICAgIDAgICAgIC4gICAgOiAgICAuICAg IDogICAgLiAgICA6ICAgIC4gICAgOiAgICAuICAgIDoNCiAgICAgICAgQUFBR0FHLS1BR0FHQVQt QVRHQ0NBR1RBQVRBLUNUVEdBQUFHQVRBVFRHQ0NHQUdDVEcNCiAgICAgICAgICAgfCB8ICAgfCAg fHwgfHx8fHx8fHx8fHx8IHx8fHx8fHx8fHx8fHx8fHx8fHx8fHwNCiAgICAgICAgLS0tR1RHQ0ND R1RDQVRBQVRHQ0NBR1RBQVRBR0NUVEdBQUFHQVRBVFRHQ0NHQUdDVEcNCg0KICAgICA1MCAgICAg LiAgICA6ICAgIC4gICAgOiAgICAuICAgIDogICAgLiAgICA6ICAgIC4gICAgOg0KICAgICAgICBH VEdDQ0dUVFRHQ0NDQVRDR1RUQVRHR1RHQ0FBQUFBLVRUVENHVENBQ0dDVFRBQUNBQw0KICAgICAg ICB8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8IHx8fHx8fHx8fHx8fHx8fHx8fA0KICAg ICAgICBHVEdDQ0dUVFRHQ0NDQVRDR1RUQVRHR1RHQ0FBQUFBVFRUVENHVENBQ0dDVFRBQUNBQw0K DQogICAgMTAwICAgICAuICAgIDogICAgLiAgICA6ICAgIC4gICAgOiAgICAuICAgIDogICAgLiAg ICA6DQogICAgICAgIENBVFRUVEdDQVRHQVRHQVRHQUdDVEdHQUFDQ0NHQ0dDLUFDR0dDVEdBVFRB Q1RHQUNDDQogICAgICAgIHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8IHx8fHx8fHx8 fHx8fHx8fHx8DQogICAgICAgIENBVFRUVEdDQVRHQVRHQVRHQUdDVEdHQUFDQ0NHQ0dDQUFDR0dD VEdBVFRBQ1RHQUNDDQoNCiAgICAxNTAgICAgIC4gICAgOiAgICAuICAgIDogICAgLiAgICA6ICAg IC4gICAgOiAgICAuICAgIDoNCiAgICAgICAgVENUQUNDQUdBQ0NHR1RHVENHQVRHQ0dDVEdBVFRH VFQtQUdHQVRBVEdHR0dBVFRDVEcNCiAgICAgICAgfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8 fHx8fHwgfHx8fHx8fHx8fHx8fHx8fHwNCiAgICAgICAgVENUQUNDQUdBQ0NHR1RHVENHQVRHQ0dD VEdBVFRHVFRDQUdHQVRBVEdHR0dBVFRDVEcNCg0KICAgIDIwMCAgICAgLiAgICA6ICAgIC4gICAg OiAgICAuICAgIDogICAgLiAgICA6ICAgIC4gICAgOg0KICAgICAgICBHQUFBQ0NUVEdBVEFUVENH Q0dDR0NHQVRUR0FBQ1RHR0NBQ0dDQ0FHVEFDQ0dDQUdURw0KICAgICAgICB8IHx8IHx8fHx8fHx8 fHwgfHx8IHx8fHx8fHx8fHwgfHx8fHx8fHx8fHwgfHx8fHx8fA0KICAgICAgICBHLUFBLUNUVEdB VEFUVEMtQ0dDLUNHQVRUR0FBQ1QtR0NBQ0dDQ0FHVEEtQ0dDQUdURw0KIiIiDQoNClRoZSBzY29y aW5nIHNjaGVtZSBoYWQgdG8gYmUgY2hhbmdlZCBmcm9tOg0KU2NvcmU8c2hvcnQsIFNpbXBsZT4g c2NvcmluZ1NjaGVtZSg0LCAtMTMsIC03KTsgICAvLyBEZXRlcm1pbmVkIGVtcGlyaWNhbGx5IHRv IHdvcmsgd2VsbCBvbiBQYWNCaW8gZGF0YSB3aXRoIG15IGhvbWUtYnJld2VkIGFsaWduZXINCnRv Og0KU2NvcmU8c2hvcnQsIFNpbXBsZT4gc2NvcmluZ1NjaGVtZSgyLCAtMSwgLTIpOyAgICAgLy8g U2NvcmluZyBzY2hlbWUgcmVjb21tZW5kZWQvdGVzdGVkIGJ5IFNlcUFuIGRvY3MNCg0KVGhlIGlu aXRpYWwgU2VlZC1zZXQgaGFkIHRvIGJlIHNldCBieSBoYW5kIHdpdGggdGhlIHJlZmVyZW5jZS1h bGlnbm1lbnQncyBzdGFydCBwb3NpdGlvbjoNClNlZWRTZXQ8U2ltcGxlPiBzZWVkczI7DQphZGRT ZWVkKHNlZWRzMiwgVFNlZWQoICAxMiwgICAxMiwgMTAwKSwgc2VxYW46OlNpbmdsZSgpKTsNCmFk ZFNlZWQoc2VlZHMyLCBUU2VlZCggMTIwLCAgMTIwLCAxMDApLCBzZXFhbjo6U2luZ2xlKCkpOw0K DQpTbyBpdCBhcHBlYXJzIHRoYXQgdGhlcmUgYXJlIGF0IGxlYXN0IHR3byBpc3N1ZXMgYXQgcGxh eSBoZXJlOg0KLVRoZSB2YWx1ZS10eXBlIHVzZWQgZm9yIHRoZSBiYW5kZWRDaGFpbkFsaWdubWVu dCBpc24ndCBsYXJnZSBlbm91Z2ggdG8gaGFuZGxlIG11bHRpLWtiIGFsaWdubWVudHMgd2l0aCBt b2RlcmF0ZS1zaXplZCBwZW5hbHRpZXMNCi1UaGUgZGVmYXVsdCBjaGFpbmluZyBhbGdvcml0aG0g ZG9lc24ndCBoYW5kbGUgbGFyZ2UgbnVtYmVycyBvZiBzZWVkcyB3aXRoIHNtYWxsIGluZGVsIGdh cHMgd2VsbC4NCg0KLUJyZXR0DQoNCk9uIFN1biwgTm92IDE2LCAyMDE0IGF0IDk6MzkgUE0sIEJy ZXR0IEJvd21hbiA8Ym5ib3dtYW5AZ21haWwuY29tPG1haWx0bzpibmJvd21hbkBnbWFpbC5jb20+ PiB3cm90ZToNClRoYW5rcyBSZW5lLA0KDQpNeSBxdWVyeSwgcmVmZXJlbmNlLCBhbmQgY2Fub25p Y2FsIGFsaWdubWVudCBmcm9tIEJMQVNSICh0aGUgUGFjQmlvLXNwZWNpZmljIGFsaWduZXIpIGF0 dGFjaGVkLg0KDQpJIGFsc28gbm90aWNlZCB0aGF0IHRoZSBzZWVkcyBpdCdzIGNoYWluaW5nIHdp dGggY2hhaW5HbG9iYWxBbGlnbm1lbnQoKSBhcmUgd2F5IG9mZiB0aGUgZGlhZ29uYWwsIHdoaWNo IG1heSBiZSByZWxhdGVkIC0gZGV0YWlscyBiZWxvdzoNCg0KIiIiDQpRdWVyeSAjMSAtIG0xMzA0 MDRfMDE0MDA0X3NpZG5leV9jMTAwNTA2OTAyNTUwMDAwMDAxODIzMDc2ODA4MjIxMzM3X3MxX3Aw LzU3NzkvMF8xMDM5Nw0KRmluaXNoZWQgZmluZGluZyBzZWVkcw0KU2VlZHM6IDE5MzkNCkZpbmlz aGluZyBjaGFpbmluZyBzZWVkcw0KQ2hhaW46IDQ0DQpTZWVkPFNpbXBsZSwgVENvbmZpZz4oNzY4 OCwgNTcsIDc3MDYsIDc1LCBsb3dlciBkaWFnID0gNzYzMSwgdXBwZXIgZGlhZyA9IDc2MzEpIExl bmd0aDogMTgNClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig3NzA3LCA5NCwgNzcyMiwgMTA5LCBsb3dl ciBkaWFnID0gNzYxMywgdXBwZXIgZGlhZyA9IDc2MTMpIExlbmd0aDogMTUNClNlZWQ8U2ltcGxl LCBUQ29uZmlnPig3OTMzLCAxMTEsIDc5NDYsIDEyNCwgbG93ZXIgZGlhZyA9IDc4MjIsIHVwcGVy IGRpYWcgPSA3ODIyKSBMZW5ndGg6IDEzDQpTZWVkPFNpbXBsZSwgVENvbmZpZz4oNzk0OSwgMTMw LCA3OTY1LCAxNDYsIGxvd2VyIGRpYWcgPSA3ODE5LCB1cHBlciBkaWFnID0gNzgxOSkgTGVuZ3Ro OiAxNg0KU2VlZDxTaW1wbGUsIFRDb25maWc+KDgwNjUsIDI5OSwgODA3OCwgMzEyLCBsb3dlciBk aWFnID0gNzc2NiwgdXBwZXIgZGlhZyA9IDc3NjYpIExlbmd0aDogMTMNClNlZWQ8U2ltcGxlLCBU Q29uZmlnPig4MTA5LCAzMTQsIDgxMjYsIDMzMSwgbG93ZXIgZGlhZyA9IDc3OTUsIHVwcGVyIGRp YWcgPSA3Nzk1KSBMZW5ndGg6IDE3DQpTZWVkPFNpbXBsZSwgVENvbmZpZz4oODE2OSwgMzYzLCA4 MTgxLCAzNzUsIGxvd2VyIGRpYWcgPSA3ODA2LCB1cHBlciBkaWFnID0gNzgwNikgTGVuZ3RoOiAx Mg0KU2VlZDxTaW1wbGUsIFRDb25maWc+KDgyMDgsIDM4MSwgODIyMiwgMzk1LCBsb3dlciBkaWFn ID0gNzgyNywgdXBwZXIgZGlhZyA9IDc4MjcpIExlbmd0aDogMTQNClNlZWQ8U2ltcGxlLCBUQ29u ZmlnPig4MjIyLCA0MDIsIDgyMzQsIDQxNCwgbG93ZXIgZGlhZyA9IDc4MjAsIHVwcGVyIGRpYWcg PSA3ODIwKSBMZW5ndGg6IDEyDQpTZWVkPFNpbXBsZSwgVENvbmZpZz4oODI4NywgNDQ2LCA4MzA0 LCA0NjMsIGxvd2VyIGRpYWcgPSA3ODQxLCB1cHBlciBkaWFnID0gNzg0MSkgTGVuZ3RoOiAxNw0K U2VlZDxTaW1wbGUsIFRDb25maWc+KDgzMDQsIDQ2NiwgODMxNiwgNDc4LCBsb3dlciBkaWFnID0g NzgzOCwgdXBwZXIgZGlhZyA9IDc4MzgpIExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmln Pig4MzI2LCA3NDgsIDgzMzgsIDc2MCwgbG93ZXIgZGlhZyA9IDc1NzgsIHVwcGVyIGRpYWcgPSA3 NTc4KSBMZW5ndGg6IDEyDQpTZWVkPFNpbXBsZSwgVENvbmZpZz4oODM1NCwgNzYxLCA4MzY2LCA3 NzMsIGxvd2VyIGRpYWcgPSA3NTkzLCB1cHBlciBkaWFnID0gNzU5MykgTGVuZ3RoOiAxMg0KU2Vl ZDxTaW1wbGUsIFRDb25maWc+KDg0MjYsIDgwMSwgODQzOCwgODEzLCBsb3dlciBkaWFnID0gNzYy NSwgdXBwZXIgZGlhZyA9IDc2MjUpIExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig4 NzAyLCAyMjkxLCA4NzIxLCAyMzEwLCBsb3dlciBkaWFnID0gNjQxMSwgdXBwZXIgZGlhZyA9IDY0 MTEpIExlbmd0aDogMTkNClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig4NzY5LCAyMzE0LCA4NzgxLCAy MzI2LCBsb3dlciBkaWFnID0gNjQ1NSwgdXBwZXIgZGlhZyA9IDY0NTUpIExlbmd0aDogMTINClNl ZWQ8U2ltcGxlLCBUQ29uZmlnPig4Nzk0LCAyMzg3LCA4ODA2LCAyMzk5LCBsb3dlciBkaWFnID0g NjQwNywgdXBwZXIgZGlhZyA9IDY0MDcpIExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmln Pig4ODM1LCAyNDAwLCA4ODQ3LCAyNDEyLCBsb3dlciBkaWFnID0gNjQzNSwgdXBwZXIgZGlhZyA9 IDY0MzUpIExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5MTYyLCAyNjUwLCA5MTc0 LCAyNjYyLCBsb3dlciBkaWFnID0gNjUxMiwgdXBwZXIgZGlhZyA9IDY1MTIpIExlbmd0aDogMTIN ClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5MTg0LCAyNjc2LCA5MTk2LCAyNjg4LCBsb3dlciBkaWFn ID0gNjUwOCwgdXBwZXIgZGlhZyA9IDY1MDgpIExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29u ZmlnPig5MTk2LCAyNzM2LCA5MjA4LCAyNzQ4LCBsb3dlciBkaWFnID0gNjQ2MCwgdXBwZXIgZGlh ZyA9IDY0NjApIExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5MjIzLCAyODE4LCA5 MjM1LCAyODMwLCBsb3dlciBkaWFnID0gNjQwNSwgdXBwZXIgZGlhZyA9IDY0MDUpIExlbmd0aDog MTINClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5MjUxLCAyODQ0LCA5MjY3LCAyODYwLCBsb3dlciBk aWFnID0gNjQwNywgdXBwZXIgZGlhZyA9IDY0MDcpIExlbmd0aDogMTYNClNlZWQ8U2ltcGxlLCBU Q29uZmlnPig5Mjk0LCAyODcxLCA5MzA4LCAyODg1LCBsb3dlciBkaWFnID0gNjQyMywgdXBwZXIg ZGlhZyA9IDY0MjMpIExlbmd0aDogMTQNClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5MzE0LCAyODkx LCA5MzI3LCAyOTA0LCBsb3dlciBkaWFnID0gNjQyMywgdXBwZXIgZGlhZyA9IDY0MjMpIExlbmd0 aDogMTMNClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5NDMyLCAyOTc2LCA5NDQ3LCAyOTkxLCBsb3dl ciBkaWFnID0gNjQ1NiwgdXBwZXIgZGlhZyA9IDY0NTYpIExlbmd0aDogMTUNClNlZWQ8U2ltcGxl LCBUQ29uZmlnPig5NTE1LCAyOTkyLCA5NTI3LCAzMDA0LCBsb3dlciBkaWFnID0gNjUyMywgdXBw ZXIgZGlhZyA9IDY1MjMpIExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5Njc1LCAz Mzg1LCA5NzAxLCAzNDExLCBsb3dlciBkaWFnID0gNjI5MCwgdXBwZXIgZGlhZyA9IDYyOTApIExl bmd0aDogMjYNClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5NzI0LCAzNDE0LCA5NzM2LCAzNDI2LCBs b3dlciBkaWFnID0gNjMxMCwgdXBwZXIgZGlhZyA9IDYzMTApIExlbmd0aDogMTINClNlZWQ8U2lt cGxlLCBUQ29uZmlnPig5NzkxLCAzNTcxLCA5ODA0LCAzNTg0LCBsb3dlciBkaWFnID0gNjIyMCwg dXBwZXIgZGlhZyA9IDYyMjApIExlbmd0aDogMTMNClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5ODA1 LCAzNTk2LCA5ODE3LCAzNjA4LCBsb3dlciBkaWFnID0gNjIwOSwgdXBwZXIgZGlhZyA9IDYyMDkp IExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5ODE4LCA0OTE1LCA5ODMwLCA0OTI3 LCBsb3dlciBkaWFnID0gNDkwMywgdXBwZXIgZGlhZyA9IDQ5MDMpIExlbmd0aDogMTINClNlZWQ8 U2ltcGxlLCBUQ29uZmlnPig5ODQyLCA0OTM5LCA5ODU0LCA0OTUxLCBsb3dlciBkaWFnID0gNDkw MywgdXBwZXIgZGlhZyA9IDQ5MDMpIExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5 ODczLCA1MDQ1LCA5ODg1LCA1MDU3LCBsb3dlciBkaWFnID0gNDgyOCwgdXBwZXIgZGlhZyA9IDQ4 MjgpIExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5ODg2LCA1MDc3LCA5ODk4LCA1 MDg5LCBsb3dlciBkaWFnID0gNDgwOSwgdXBwZXIgZGlhZyA9IDQ4MDkpIExlbmd0aDogMTINClNl ZWQ8U2ltcGxlLCBUQ29uZmlnPig5OTQzLCA1MjQyLCA5OTU1LCA1MjU0LCBsb3dlciBkaWFnID0g NDcwMSwgdXBwZXIgZGlhZyA9IDQ3MDEpIExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmln Pig5OTU3LCA1Mzg1LCA5OTY5LCA1Mzk3LCBsb3dlciBkaWFnID0gNDU3MiwgdXBwZXIgZGlhZyA9 IDQ1NzIpIExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5OTk0LCA1NDIzLCAxMDAw NiwgNTQzNSwgbG93ZXIgZGlhZyA9IDQ1NzEsIHVwcGVyIGRpYWcgPSA0NTcxKSBMZW5ndGg6IDEy DQpTZWVkPFNpbXBsZSwgVENvbmZpZz4oMTAwNjIsIDcwOTYsIDEwMDc0LCA3MTA4LCBsb3dlciBk aWFnID0gMjk2NiwgdXBwZXIgZGlhZyA9IDI5NjYpIExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBU Q29uZmlnPigxMDEwMiwgNzEwOSwgMTAxMTQsIDcxMjEsIGxvd2VyIGRpYWcgPSAyOTkzLCB1cHBl ciBkaWFnID0gMjk5MykgTGVuZ3RoOiAxMg0KU2VlZDxTaW1wbGUsIFRDb25maWc+KDEwMTU2LCA3 MTMxLCAxMDE3OCwgNzE1MywgbG93ZXIgZGlhZyA9IDMwMjUsIHVwcGVyIGRpYWcgPSAzMDI1KSBM ZW5ndGg6IDIyDQpTZWVkPFNpbXBsZSwgVENvbmZpZz4oMTAyNzcsIDczNTQsIDEwMjk5LCA3Mzc2 LCBsb3dlciBkaWFnID0gMjkyMywgdXBwZXIgZGlhZyA9IDI5MjMpIExlbmd0aDogMjINClNlZWQ8 U2ltcGxlLCBUQ29uZmlnPigxMDI5OSwgNzM3OCwgMTAzMTMsIDczOTIsIGxvd2VyIGRpYWcgPSAy OTIxLCB1cHBlciBkaWFnID0gMjkyMSkgTGVuZ3RoOiAxNA0KU2VlZDxTaW1wbGUsIFRDb25maWc+ KDEwMzcxLCA3NDAwLCAxMDM4NSwgNzQxNCwgbG93ZXIgZGlhZyA9IDI5NzEsIHVwcGVyIGRpYWcg PSAyOTcxKSBMZW5ndGg6IDE0DQoiIiINCg0KLUJyZXR0DQoNCg0KT24gU3VuLCBOb3YgMTYsIDIw MTQgYXQgMjo1NyBBTSwgUmFobiwgUmVuw6kgPHJlbmUubWFlcmtlckBmdS1iZXJsaW4uZGU8bWFp bHRvOnJlbmUubWFlcmtlckBmdS1iZXJsaW4uZGU+PiB3cm90ZToNCkhleSBCcmV0dCwNCg0KSXQg Y291bGQgaGF2ZSBtdWx0aXBsZSByZWFzb25zLg0KSW4gZ2VuZXJhbCwgaXQgbWVhbnMgdGhhdCB0 aGVyZSB3YXMgYSB0cmFjZWJhY2sgcGF0aCBmcm9tIGEgc2VlZCBvciBhIGdhcCwgdGhhdCBjb3Vs ZG7igJl0IGJlIGNvbm5lY3RlZCB3aXRoIG9uZSBvZiB0aGUgc28gZmFyIGdlbmVyYXRlZCB0cmFj ZWJhY2sgcGF0aHMuIE5vdGUsIHRoYXQgdGhlIHRyYWNlYmFjayBpcyBjb21wdXRlZCBpbmNyZW1l bnRhbGx5IHRvIHJlZHVjZSB0aGUgc3BhY2UgcmVxdWlyZW1lbnRzLg0KSWYgeW91IGNvdWxkIHNl bmQgbWUgYSBzaW1wbGUgdGV4dCBmaWxlIGNvbnRhaW5pbmcgdGhlIHNlZWRzIG9mIHRoZSBzZWVk IGNoYWluIChvbmUgc2VlZCBwZXIgcm93IHVzaW5nIHRoZSA8PC1vcGVyYXRvciksIHRoYXQgaXMg aW5wdXQgdG8gdGhlIGJhbmRlZCBjaGFpbiBhbGlnbm1lbnQgZnVuY3Rpb24sIEkgY291bGQgaGF2 ZSBhIGxvb2sgYXQgaXQgYW5kIGZpeCB0aGUgcHJvYmxlbS4NCkFsc28sIEkgb3BlbmVkIGFuIGlz c3VlIGluIGdpdGh1YjogaHR0cHM6Ly9naXRodWIuY29tL3NlcWFuL3NlcWFuL2lzc3Vlcy82OTks IGZvciB0cmFja2luZyB0aGUgaXNzdWUuDQoNCg0KS2luZCByZWdhcmRzLA0KDQpSZW7DqSBSYWhu DQoNCk9uIDE2IE5vdiAyMDE0LCBhdCAwNDoxNywgQnJldHQgQm93bWFuIDxibmJvd21hbkBnbWFp bC5jb208bWFpbHRvOmJuYm93bWFuQGdtYWlsLmNvbT4+IHdyb3RlOg0KDQpJJ20gdHJ5aW5nIHRv IGJ1aWxkIGEgdG9vbCB3aXRoIFNlcUFuIHRvIHF1aWNrbHkgYWxpZ24gc29tZSBQYWNCaW8gZGF0 YSwgdXNpbmcgImJhbmRlZENoYWluQWxpZ25tZW50IiwgYnV0IEknbSBjb25zaXN0ZW50bHkgZ2V0 dGluZyBhIGNyYXNoIGR1cmluZyB0aGUgdHJhY2UtYmFjayBzdGVwLiAgVGhlIGdlbmVyYXRpb24g b2YgdGhlIFNlZWRzIChTdWZmaXhBcnJheSkgYW5kIHRoZSBmaW5kaW5nIG9mIHRoZSBiYXNlIFNl ZWRDaGFpbiB3b3JrcyBmaW5lLCBidXQgdGhlIGZpbmFsIHN0ZXAgb2YgdHVybmluZyB0aGF0IGlu dG8gYW4gYWxpZ25tZW50IGRvZXNuJ3QgYXBwZWFyIHRvIHdvcmsuDQoNClN1Z2dlc3Rpb25zPw0K DQpFcnJvciBMb2c6DQoiIiINCmJib3dtYW5AbG9jYWxob3N0On4vZ2l0L1NSU0xJJCAuL3NyYy9D Kysvc3JzbGkgdGVzdC9kYXRhL3F1ZXJ5L2Vjb2xpXzVwX3NhbXBsZS5mYXN0cSB0ZXN0L2RhdGEv cmVmZXJlbmNlL2Vjb2xpSzEyXzVwX2Fzc2VtYmx5LmZhc3RhDQpRdWVyeSAwDQpGaW5pc2hlZCBm aW5kaW5nIHNlZWRzDQpGaW5pc2hpbmcgY2hhaW5pbmcgc2VlZHMNClN0YXJ0aW5nIGFsaWdubWVu dCBvZiBzZXF1ZW5jZXMNCi91c3IvaW5jbHVkZS9zZXFhbi9zZWVkcy9iYW5kZWRfY2hhaW5fYWxp Z25tZW50X3RyYWNlYmFjay5oOjE5NSBBc3NlcnRpb24gZmFpbGVkIDogaXNHbHVlZCA9PSB0cnVl IHdhczogMCAhPSAxIChGYXRhbCBlcnJvciB3aGlsZSB0cnlpbmcgdG8gY29ubmVjdCB0cmFjZSBi YWNrczogTm8gZ2x1ZSBwb2ludCBhdmFpbGFibGUhKQ0KQWJvcnRlZCAoY29yZSBkdW1wZWQpDQoi IiINCltodHRwczovL3NzbC5nc3RhdGljLmNvbS91aS92MS9pY29ucy9tYWlsL2ltYWdlcy9jbGVh cmRvdC5naWZdDQoNCi1CcmV0dA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18NCnNlcWFuLWRldiBtYWlsaW5nIGxpc3QNCnNlcWFuLWRldkBsaXN0cy5mdS1i ZXJsaW4uZGU8bWFpbHRvOnNlcWFuLWRldkBsaXN0cy5mdS1iZXJsaW4uZGU+DQpodHRwczovL2xp c3RzLmZ1LWJlcmxpbi5kZS9saXN0aW5mby9zZXFhbi1kZXYNCg0KLS0tDQoNClJlbsOpIFJhaG4N ClBoLkQuIFN0dWRlbnQNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpUZWw6ICAo KzQ5KSAzMCA4MzggNzUyNzc8dGVsOiUyOCUyQjQ5JTI5JTIwMzAlMjA4MzglMjA3NTI3Nz4NCk1h aWw6IHJlbmUucmFobkBmdS1iZXJsaW4uZGU8bWFpbHRvOnJlbmUucmFobkBmdS1iZXJsaW4uZGU+ DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KSW5zdGl0dXRlIG9mIENvbXB1dGVy IFNjaWVuY2UNCkFsZ29yaXRobWljIEJpb2luZm9ybWF0aWNzIChBQkkpDQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KRnJlaWUgVW5pdmVyc2l0w6R0IEJlcmxpbg0KVGFrdXN0cmHD n2UgOQ0KMTQxOTUgQmVybGluDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoN Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpzZXFhbi1k ZXYgbWFpbGluZyBsaXN0DQpzZXFhbi1kZXZAbGlzdHMuZnUtYmVybGluLmRlPG1haWx0bzpzZXFh bi1kZXZAbGlzdHMuZnUtYmVybGluLmRlPg0KaHR0cHM6Ly9saXN0cy5mdS1iZXJsaW4uZGUvbGlz dGluZm8vc2VxYW4tZGV2DQoNCg0KDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fDQpzZXFhbi1kZXYgbWFpbGluZyBsaXN0DQpzZXFhbi1kZXZAbGlzdHMu ZnUtYmVybGluLmRlPG1haWx0bzpzZXFhbi1kZXZAbGlzdHMuZnUtYmVybGluLmRlPg0KaHR0cHM6 Ly9saXN0cy5mdS1iZXJsaW4uZGUvbGlzdGluZm8vc2VxYW4tZGV2DQoNCi0tLQ0KDQpSZW7DqSBS YWhuDQpQaC5ELiBTdHVkZW50DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KVGVs OiAgKCs0OSkgMzAgODM4IDc1Mjc3DQpNYWlsOiByZW5lLnJhaG5AZnUtYmVybGluLmRlPG1haWx0 bzpyZW5lLnJhaG5AZnUtYmVybGluLmRlPg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCkluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlDQpBbGdvcml0aG1pYyBCaW9pbmZvcm1h dGljcyAoQUJJKQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkZyZWllIFVuaXZl cnNpdMOkdCBCZXJsaW4NClRha3VzdHJhw59lIDkNCjE0MTk1IEJlcmxpbg0KLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0K --_000_AB74A317D8794DBA8E1C85BCD4DBF6E4zedatfuberlinde_ Content-Type: text/html; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IHN0eWxlPSJ3b3JkLXdy YXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJy ZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPg0KSGV5IEJyZXR0LCZuYnNwOw0KPGRp diBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+YnkganVzdCBs b29raW5nIGF0IHRoZSBzZWVkIGNoYWluIEkgbWlnaHQgdGhpbmsgdGhhdCB0aGUgcHJvYmxlbSBp cyB0aGUgYmFkIGNoYWluIGluIHRoZSBmaXJzdCBwbGFjZS48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+ VGhlIGZpcnN0IHNlZWQgYmVnaW5zIGF0IHBvc2l0aW9uIDc2ODggZm9yIHRoZSBmaXJzdCBzZXF1 ZW5jZSwgd2hpbGUgdGhlIHNlZWQgZm9yIHRoZSBzZWNvbmQgc2VxdWVuY2Ugc3RhcnRzIGF0IHBv c2l0aW9uIDU3LiZuYnNwOzwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5UaGVyZSBJIGNhbiBoYXZlIGF0 IG1vc3QgNTcgbWF0Y2hlcyBhbmQgaGF2ZSA3NjMxIGdhcHMuIEdpdmVuIGEgc2NvcmUgb2YgLTcg Zm9yIHRoZSBnYXBzIGFuZCA0IGZvciB0aGUgbWF0Y2hlcyBJIGhhdmUgYSBzY29yZSBvZiBhdCBs ZWFzdCAtNTMxODkgd2hpY2ggaW4gZmFjdCBleGNlZWRzIHRoZSBib3VuZCBvZiB1bnNpZ25lZCBz aG9ydHMgLTMyLjc2OCAtIDMyLjc2Ny48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+VGhpcyB3b3VsZCBh bHNvIGV4cGxhaW4gd2h5IGl0IHdvcmtzIHdpdGggYSBnYXAgcGVuYWx0eSBvZiAtMiB+IC0xNTMw MC48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+VXNpbmcgdW5zaWduZWQgc2hvcnQgY2Fubm90IGdpdmUg Y29ycmVjdCByZXN1bHRzLCBhcyBpdCBpcyBvbmx5IGRlZmluZWQgb24gdGhlIHZhbHVlcyBmcm9t IDAgdG8gNjU1MzUuIEluIHRoaXMgY2FzZSAtNyB3b3VsZCBhbHNvIGJlIGludGVycHJldGVkIGFz Jm5ic3A7PGIgc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbzsgZm9udC1zaXplOiAxMXB4OyIgY2xh c3M9IiI+NjU1MjkuPC9iPjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5TbyBzb21ld2hlcmUgaW4gdGhl IGZpcnN0IG1hdHJpeCBpcyBhbiBvdmVyZmxvdywgd2hpY2ggbWlnaHQgbGVhZCB0byB0aGUgcHJv YmxlbSB3aXRoIHRoZSB0cmFjZWJhY2suIEkgd2lsbCBpbnZlc3RpZ2F0ZSB0aGlzIG1vcmUgdGhv cm91Z2hseSBpbiB0aGUgbmV4dCBkYXlzLiZuYnNwOzwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5Gb3Ig dGhlIG1vbWVudCBJIHN1Z2dlc3QgMiB0aGluZ3MuJm5ic3A7PC9kaXY+DQo8ZGl2IGNsYXNzPSIi PkEpIFRyeSB0byB1c2Ugc2lnbmVkIGludGVnZXIgdHlwZXMgYW5kIHNlZSBpZiBpdCBydW5zIHRo cm91Z2guIChKdXN0IHRvIGNoZWNrIGlmIGl0IGlzIHJlYWxseSByZWxhdGVkIHRvIHRoZSB2YWx1 ZSBvdmVyZmxvdy4pPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPkIpIFVzZSBjaGFvcyBjaGFpbmluZyB3 aGVuIGFkZGluZyBzZWVkcyB0byB0aGUgc2VlZCBzZXQuIEZyb20gdGhlIGRhdGEgc2V0IEkgd291 bGQgZ3Vlc3MgeW91IHVzZWQgdGhlIHNpbXBsZSBtZXJnZSBzdHJhdGVneSwgYnV0IGdpdmVuIHRo YXQgdGhlIHNlcXVlbmNlcyBtaWdodCBub3QgYmUg4oCcdmVyeeKAnSBzaW1pbGFyIHRoZSBjaGFv cyBjaGFpbmluZyBtaWdodCBjb21wdXRlIGJldHRlciByZXN1bHRzIGFuZCB0aGVuIHRoZQ0KIGJh bmRlZCBjaGFpbiBhbGlnbm1lbnQgbWlnaHQgd29yayBhcyB3ZWxsLjwvZGl2Pg0KPGRpdiBjbGFz cz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+RGlkIHlvdSBjaGFuZ2Vk IHRoZSBkZWZhdWx0IGJhbmQgc2V0dGluZ3MgZm9yIHRoZSBiYW5kIHdpZHRoIG9mIHRoZSBiYW5k ZWRDaGFpbkFsaWdubWVudCAodGhpcyBwYXJhbWV0ZXIgayk/PC9kaXY+DQo8ZGl2IGNsYXNzPSIi PjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5DaGVlcnMsPC9kaXY+DQo8ZGl2 IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5SZW7DqTwvZGl2 Pg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8ZGl2Pg0KPGJsb2NrcXVvdGUgdHlwZT0i Y2l0ZSIgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPk9uIDE4IE5vdiAyMDE0LCBhdCAwMjoxNywg QnJldHQgQm93bWFuICZsdDs8YSBocmVmPSJtYWlsdG86Ym5ib3dtYW5AZ21haWwuY29tIiBjbGFz cz0iIj5ibmJvd21hbkBnbWFpbC5jb208L2E+Jmd0OyB3cm90ZTo8L2Rpdj4NCjxiciBjbGFzcz0i QXBwbGUtaW50ZXJjaGFuZ2UtbmV3bGluZSI+DQo8ZGl2IGNsYXNzPSIiPg0KPGRpdiBkaXI9Imx0 ciIgY2xhc3M9IiI+DQo8ZGl2IHN0eWxlPSJmb250LWZhbWlseTphcmlhbCxzYW5zLXNlcmlmO2Zv bnQtc2l6ZToxM3B4IiBjbGFzcz0iIj5PcHBzLCBJIGp1c3Qgbm90aWNlZCBhIG1pc3Rha2UgaW4g bXkgcHJldmlvdXMgZS1tYWlsLiZuYnNwOyBJIHdyb3RlOjwvZGl2Pg0KPGRpdiBzdHlsZT0iZm9u dC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTNweCIgY2xhc3M9IiI+PGJyIGNs YXNzPSIiPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJmb250LWZhbWlseTphcmlhbCxzYW5zLXNlcmlm O2ZvbnQtc2l6ZToxM3B4IiBjbGFzcz0iIj4mcXVvdDsmcXVvdDsmcXVvdDs8L2Rpdj4NCjxkaXYg c3R5bGU9ImZvbnQtZmFtaWx5OmFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEzcHgiIGNsYXNz PSIiPlRoZSBzY29yaW5nIHNjaGVtZSBoYWQgdG8gYmUgY2hhbmdlZCBmcm9tOjwvZGl2Pg0KPGRp diBzdHlsZT0iZm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTNweCIgY2xh c3M9IiI+DQo8ZGl2IGNsYXNzPSIiPlNjb3JlJmx0O3Nob3J0LCBTaW1wbGUmZ3Q7IHNjb3JpbmdT Y2hlbWUoNCwgLTEzLCAtNyk7ICZuYnNwOyAvLyBEZXRlcm1pbmVkIGVtcGlyaWNhbGx5IHRvIHdv cmsgd2VsbCBvbiBQYWNCaW8gZGF0YSB3aXRoIG15IGhvbWUtYnJld2VkIGFsaWduZXI8L2Rpdj4N CjxkaXYgY2xhc3M9IiI+dG86PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlNjb3JlJmx0O3Nob3J0LCBT aW1wbGUmZ3Q7IHNjb3JpbmdTY2hlbWUoMiwgLTEsIC0yKTsgJm5ic3A7ICZuYnNwOyAvLyBTY29y aW5nIHNjaGVtZSByZWNvbW1lbmRlZC90ZXN0ZWQgYnkmbmJzcDs8c3BhbiBjbGFzcz0iIj5TZXFB bjwvc3Bhbj4mbmJzcDtkb2NzPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZxdW90OyZxdW90OyZxdW90 OzwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9 IiI+YnV0IHdoYXQgSSBtZWFudCB3YXMgKGNoYW5nZXMgaW4gQ0FQSVRBTCk6PC9kaXY+DQo8ZGl2 IGNsYXNzPSIiPiZxdW90OyZxdW90OyZxdW90OzwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4NCjxkaXYg Y2xhc3M9IiI+VGhlIHNjb3Jpbmcgc2NoZW1lIGhhZCB0byBiZSBjaGFuZ2VkIGZyb206PC9kaXY+ DQo8ZGl2IGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj5TY29yZSZsdDtVTlNJR05FRCBzaG9ydCwg U2ltcGxlJmd0OyBzY29yaW5nU2NoZW1lKDQsIC0xMywgLTcpOyAmbmJzcDsgLy8gRGV0ZXJtaW5l ZCBlbXBpcmljYWxseSB0byB3b3JrIHdlbGwgb24gUGFjQmlvIGRhdGEgd2l0aCBteSBob21lLWJy ZXdlZCBhbGlnbmVyPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPnRvOjwvZGl2Pg0KPGRpdiBjbGFzcz0i Ij5TY29yZSZsdDtVTlNJR05FRCBzaG9ydCwgU2ltcGxlJmd0OyBzY29yaW5nU2NoZW1lKDIsIC0x LCAtMik7ICZuYnNwOyAmbmJzcDsgLy8gU2NvcmluZyBzY2hlbWUgcmVjb21tZW5kZWQvdGVzdGVk IGJ5Jm5ic3A7PHNwYW4gY2xhc3M9IiI+U2VxQW48L3NwYW4+Jm5ic3A7ZG9jczwvZGl2Pg0KPC9k aXY+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+JnF1b3Q7JnF1b3Q7JnF1b3Q7PC9kaXY+DQo8ZGl2 IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5JIHdhcyBub3Qg c3VycHJpc2VkIHdoZW4gcmVndWxhciBzaG9ydHMgd2VyZSBub3QgbGFyZ2UgZW5vdWdoIGdpdmVu IHRoYXQgd2UncmUgZGVhbGluZyB3aXRoIH4xMGtiIGFsaWdubWVudHMsIGJ1dCBJIHdhcyBzdXJw cmlzZWQgdGhhdCB1bnNpZ25lZCBzaG9ydHMgZGlkIG5vdCB3b3JrLiZuYnNwOyBUaGV5IGFyZSBw cmVmZXJhYmxlIGdpdmVuIHRoZWlyIHNtYWxsZXIgc2l6ZSwgYW5kIHVzZWQgYnkgc29tZSBvZiBt eSBob21lLWJyZXdlZA0KIGFsaWduZXJzLiZuYnNwOzwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48YnIg Y2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+LUJyZXR0PC9kaXY+DQo8L2Rpdj4NCjwv ZGl2Pg0KPGRpdiBjbGFzcz0iZ21haWxfZXh0cmEiPjxiciBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9 ImdtYWlsX3F1b3RlIj5PbiBTdW4sIE5vdiAxNiwgMjAxNCBhdCAxMTo1MiBQTSwgQnJldHQgQm93 bWFuIDxzcGFuIGRpcj0ibHRyIiBjbGFzcz0iIj4NCiZsdDs8YSBocmVmPSJtYWlsdG86Ym5ib3dt YW5AZ21haWwuY29tIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9IiI+Ym5ib3dtYW5AZ21haWwuY29t PC9hPiZndDs8L3NwYW4+IHdyb3RlOjxiciBjbGFzcz0iIj4NCjxibG9ja3F1b3RlIGNsYXNzPSJn bWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4O2JvcmRlci1sZWZ0OjFweCAjY2Nj IHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPg0KPGRpdiBkaXI9Imx0ciIgY2xhc3M9IiI+DQo8ZGl2 IGNsYXNzPSIiPkkndmUgZ290dGVuIGEgcnVkaW1lbnRhcnkgYWxpZ25tZW50IG91dCwgYnV0IEkg aGFkIHRvIHR3ZWFrIGEgZmV3IHRoaW5nczo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNz PSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZxdW90OyZxdW90OyZxdW90OzwvZGl2Pg0KPGRp diBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgMCAmbmJzcDsg Jm5ic3A7IC4gJm5ic3A7ICZuYnNwOzogJm5ic3A7ICZuYnNwOy4gJm5ic3A7ICZuYnNwOzogJm5i c3A7ICZuYnNwOy4gJm5ic3A7ICZuYnNwOzogJm5ic3A7ICZuYnNwOy4gJm5ic3A7ICZuYnNwOzog Jm5ic3A7ICZuYnNwOy4gJm5ic3A7ICZuYnNwOzombmJzcDs8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+ Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IEFBQUdBRy0tQUdBR0FULUFUR0NDQUdUQUFUQS1D VFRHQUFBR0FUQVRUR0NDR0FHQ1RHPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7fCB8ICZuYnNwOyB8ICZuYnNwO3x8IHx8fHx8fHx8 fHx8fCB8fHx8fHx8fHx8fHx8fHx8fHx8fHx8PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAtLS1HVEdDQ0NHVENBVEFBVEdDQ0FHVEFBVEFHQ1RUR0FBQUdB VEFUVEdDQ0dBR0NURzwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4N CjxkaXYgY2xhc3M9IiI+Jm5ic3A7ICZuYnNwOyAmbmJzcDs1MCAmbmJzcDsgJm5ic3A7IC4gJm5i c3A7ICZuYnNwOzogJm5ic3A7ICZuYnNwOy4gJm5ic3A7ICZuYnNwOzogJm5ic3A7ICZuYnNwOy4g Jm5ic3A7ICZuYnNwOzogJm5ic3A7ICZuYnNwOy4gJm5ic3A7ICZuYnNwOzogJm5ic3A7ICZuYnNw Oy4gJm5ic3A7ICZuYnNwOzombmJzcDs8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+Jm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7IEdUR0NDR1RUVEdDQ0NBVENHVFRBVEdHVEdDQUFBQUEtVFRUQ0dUQ0FD R0NUVEFBQ0FDPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyB8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8IHx8fHx8fHx8fHx8fHx8fHx8fDwvZGl2 Pg0KPGRpdiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgR1RHQ0NHVFRUR0ND Q0FUQ0dUVEFUR0dUR0NBQUFBQVRUVFRDR1RDQUNHQ1RUQUFDQUM8L2Rpdj4NCjxkaXYgY2xhc3M9 IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgMTAw ICZuYnNwOyAmbmJzcDsgLiAmbmJzcDsgJm5ic3A7OiAmbmJzcDsgJm5ic3A7LiAmbmJzcDsgJm5i c3A7OiAmbmJzcDsgJm5ic3A7LiAmbmJzcDsgJm5ic3A7OiAmbmJzcDsgJm5ic3A7LiAmbmJzcDsg Jm5ic3A7OiAmbmJzcDsgJm5ic3A7LiAmbmJzcDsgJm5ic3A7OiZuYnNwOzwvZGl2Pg0KPGRpdiBj bGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgQ0FUVFRUR0NBVEdBVEdBVEdBR0NU R0dBQUNDQ0dDR0MtQUNHR0NUR0FUVEFDVEdBQ0M8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+Jm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8IHx8 fHx8fHx8fHx8fHx8fHx8PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyBDQVRUVFRHQ0FUR0FUR0FUR0FHQ1RHR0FBQ0NDR0NHQ0FBQ0dHQ1RHQVRUQUNUR0FD QzwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9 IiI+Jm5ic3A7ICZuYnNwOyAxNTAgJm5ic3A7ICZuYnNwOyAuICZuYnNwOyAmbmJzcDs6ICZuYnNw OyAmbmJzcDsuICZuYnNwOyAmbmJzcDs6ICZuYnNwOyAmbmJzcDsuICZuYnNwOyAmbmJzcDs6ICZu YnNwOyAmbmJzcDsuICZuYnNwOyAmbmJzcDs6ICZuYnNwOyAmbmJzcDsuICZuYnNwOyAmbmJzcDs6 Jm5ic3A7PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBU Q1RBQ0NBR0FDQ0dHVEdUQ0dBVEdDR0NUR0FUVEdUVC1BR0dBVEFUR0dHR0FUVENURzwvZGl2Pg0K PGRpdiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgfHx8fHx8fHx8fHx8fHx8 fHx8fHx8fHx8fHx8fHx8fHwgfHx8fHx8fHx8fHx8fHx8fHw8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+ Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFRDVEFDQ0FHQUNDR0dUR1RDR0FUR0NHQ1RHQVRU R1RUQ0FHR0FUQVRHR0dHQVRUQ1RHPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4N CjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7IDIwMCAmbmJzcDsgJm5ic3A7IC4g Jm5ic3A7ICZuYnNwOzogJm5ic3A7ICZuYnNwOy4gJm5ic3A7ICZuYnNwOzogJm5ic3A7ICZuYnNw Oy4gJm5ic3A7ICZuYnNwOzogJm5ic3A7ICZuYnNwOy4gJm5ic3A7ICZuYnNwOzogJm5ic3A7ICZu YnNwOy4gJm5ic3A7ICZuYnNwOzombmJzcDs8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+Jm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7IEdBQUFDQ1RUR0FUQVRUQ0dDR0NHQ0dBVFRHQUFDVEdHQ0FDR0ND QUdUQUNDR0NBR1RHPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyB8IHx8IHx8fHx8fHx8fHwgfHx8IHx8fHx8fHx8fHwgfHx8fHx8fHx8fHwgfHx8fHx8fDwv ZGl2Pg0KPGRpdiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgRy1BQS1DVFRH QVRBVFRDLUNHQy1DR0FUVEdBQUNULUdDQUNHQ0NBR1RBLUNHQ0FHVEc8L2Rpdj4NCjwvZGl2Pg0K PGRpdiBjbGFzcz0iIj4mcXVvdDsmcXVvdDsmcXVvdDs8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJy IGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlRoZSBzY29yaW5nIHNjaGVtZSBoYWQg dG8gYmUgY2hhbmdlZCBmcm9tOjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+ U2NvcmUmbHQ7c2hvcnQsIFNpbXBsZSZndDsgc2NvcmluZ1NjaGVtZSg0LCAtMTMsIC03KTsgJm5i c3A7IC8vIERldGVybWluZWQgZW1waXJpY2FsbHkgdG8gd29yayB3ZWxsIG9uIFBhY0JpbyBkYXRh IHdpdGggbXkgaG9tZS1icmV3ZWQgYWxpZ25lcjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj50bzo8L2Rp dj4NCjxkaXYgY2xhc3M9IiI+U2NvcmUmbHQ7c2hvcnQsIFNpbXBsZSZndDsgc2NvcmluZ1NjaGVt ZSgyLCAtMSwgLTIpOyAmbmJzcDsgJm5ic3A7IC8vIFNjb3Jpbmcgc2NoZW1lIHJlY29tbWVuZGVk L3Rlc3RlZCBieSBTZXFBbiBkb2NzPC9kaXY+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNs YXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlRoZSBpbml0aWFsIFNlZWQtc2V0IGhhZCB0 byBiZSBzZXQgYnkgaGFuZCB3aXRoIHRoZSByZWZlcmVuY2UtYWxpZ25tZW50J3Mgc3RhcnQgcG9z aXRpb246PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj5TZWVkU2V0Jmx0O1Np bXBsZSZndDsgc2VlZHMyOzwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5hZGRTZWVkKHNlZWRzMiwgVFNl ZWQoICZuYnNwOzEyLCAmbmJzcDsgMTIsIDEwMCksIHNlcWFuOjpTaW5nbGUoKSk7PC9kaXY+DQo8 ZGl2IGNsYXNzPSIiPmFkZFNlZWQoc2VlZHMyLCBUU2VlZCggMTIwLCAmbmJzcDsxMjAsIDEwMCks IHNlcWFuOjpTaW5nbGUoKSk7PC9kaXY+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNz PSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlNvIGl0IGFwcGVhcnMgdGhhdCB0aGVyZSBhcmUg YXQgbGVhc3QgdHdvIGlzc3VlcyBhdCBwbGF5IGhlcmU6PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPi1U aGUgdmFsdWUtdHlwZSB1c2VkIGZvciB0aGUgYmFuZGVkQ2hhaW5BbGlnbm1lbnQgaXNuJ3QgbGFy Z2UgZW5vdWdoIHRvIGhhbmRsZSBtdWx0aS1rYiBhbGlnbm1lbnRzIHdpdGggbW9kZXJhdGUtc2l6 ZWQgcGVuYWx0aWVzPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPi1UaGUgZGVmYXVsdCBjaGFpbmluZyBh bGdvcml0aG0gZG9lc24ndCBoYW5kbGUgbGFyZ2UgbnVtYmVycyBvZiBzZWVkcyB3aXRoIHNtYWxs IGluZGVsIGdhcHMgd2VsbC48L2Rpdj4NCjxzcGFuIGNsYXNzPSJIT0VuWmIiPjxmb250IGNvbG9y PSIjODg4ODg4IiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+ DQo8ZGl2IGNsYXNzPSIiPi1CcmV0dDwvZGl2Pg0KPC9mb250Pjwvc3Bhbj48L2Rpdj4NCjxkaXYg Y2xhc3M9IkhPRW5aYiI+DQo8ZGl2IGNsYXNzPSJoNSI+DQo8ZGl2IGNsYXNzPSJnbWFpbF9leHRy YSI+PGJyIGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPk9uIFN1biwgTm92IDE2 LCAyMDE0IGF0IDk6MzkgUE0sIEJyZXR0IEJvd21hbiA8c3BhbiBkaXI9Imx0ciIgY2xhc3M9IiI+ DQombHQ7PGEgaHJlZj0ibWFpbHRvOmJuYm93bWFuQGdtYWlsLmNvbSIgdGFyZ2V0PSJfYmxhbmsi IGNsYXNzPSIiPmJuYm93bWFuQGdtYWlsLmNvbTwvYT4mZ3Q7PC9zcGFuPiB3cm90ZTo8YnIgY2xh c3M9IiI+DQo8YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MCAw IDAgLjhleDtib3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4Ij4NCjxk aXYgZGlyPSJsdHIiIGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj5UaGFua3MgUmVuZSw8L2Rpdj4N CjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQpNeSBxdWVyeSwgcmVmZXJlbmNl LCBhbmQgY2Fub25pY2FsIGFsaWdubWVudCBmcm9tIEJMQVNSICh0aGUgUGFjQmlvLXNwZWNpZmlj IGFsaWduZXIpIGF0dGFjaGVkLg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4N CjxkaXYgY2xhc3M9IiI+SSBhbHNvIG5vdGljZWQgdGhhdCB0aGUgc2VlZHMgaXQncyBjaGFpbmlu ZyB3aXRoIGNoYWluR2xvYmFsQWxpZ25tZW50KCkgYXJlIHdheSBvZmYgdGhlIGRpYWdvbmFsLCB3 aGljaCBtYXkgYmUgcmVsYXRlZCAtIGRldGFpbHMgYmVsb3c6Jm5ic3A7PGJyIGNsYXNzPSIiPg0K PGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+JnF1b3Q7 JnF1b3Q7JnF1b3Q7PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj5RdWVyeSAj MSAtIG0xMzA0MDRfMDE0MDA0X3NpZG5leV9jMTAwNTA2OTAyNTUwMDAwMDAxODIzMDc2ODA4MjIx MzM3X3MxX3AwLzU3NzkvMF8xMDM5NzwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5GaW5pc2hlZCBmaW5k aW5nIHNlZWRzPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlNlZWRzOiAxOTM5PC9kaXY+DQo8ZGl2IGNs YXNzPSIiPkZpbmlzaGluZyBjaGFpbmluZyBzZWVkczwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5DaGFp bjogNDQ8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUsIFRDb25maWcmZ3Q7KDc2 ODgsIDU3LCA3NzA2LCA3NSwgbG93ZXIgZGlhZyA9IDc2MzEsIHVwcGVyIGRpYWcgPSA3NjMxKSBM ZW5ndGg6IDE4PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlNlZWQmbHQ7U2ltcGxlLCBUQ29uZmlnJmd0 Oyg3NzA3LCA5NCwgNzcyMiwgMTA5LCBsb3dlciBkaWFnID0gNzYxMywgdXBwZXIgZGlhZyA9IDc2 MTMpIExlbmd0aDogMTU8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUsIFRDb25m aWcmZ3Q7KDc5MzMsIDExMSwgNzk0NiwgMTI0LCBsb3dlciBkaWFnID0gNzgyMiwgdXBwZXIgZGlh ZyA9IDc4MjIpIExlbmd0aDogMTM8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUs IFRDb25maWcmZ3Q7KDc5NDksIDEzMCwgNzk2NSwgMTQ2LCBsb3dlciBkaWFnID0gNzgxOSwgdXBw ZXIgZGlhZyA9IDc4MTkpIExlbmd0aDogMTY8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtT aW1wbGUsIFRDb25maWcmZ3Q7KDgwNjUsIDI5OSwgODA3OCwgMzEyLCBsb3dlciBkaWFnID0gNzc2 NiwgdXBwZXIgZGlhZyA9IDc3NjYpIExlbmd0aDogMTM8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2Vl ZCZsdDtTaW1wbGUsIFRDb25maWcmZ3Q7KDgxMDksIDMxNCwgODEyNiwgMzMxLCBsb3dlciBkaWFn ID0gNzc5NSwgdXBwZXIgZGlhZyA9IDc3OTUpIExlbmd0aDogMTc8L2Rpdj4NCjxkaXYgY2xhc3M9 IiI+U2VlZCZsdDtTaW1wbGUsIFRDb25maWcmZ3Q7KDgxNjksIDM2MywgODE4MSwgMzc1LCBsb3dl ciBkaWFnID0gNzgwNiwgdXBwZXIgZGlhZyA9IDc4MDYpIExlbmd0aDogMTI8L2Rpdj4NCjxkaXYg Y2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUsIFRDb25maWcmZ3Q7KDgyMDgsIDM4MSwgODIyMiwgMzk1 LCBsb3dlciBkaWFnID0gNzgyNywgdXBwZXIgZGlhZyA9IDc4MjcpIExlbmd0aDogMTQ8L2Rpdj4N CjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUsIFRDb25maWcmZ3Q7KDgyMjIsIDQwMiwgODIz NCwgNDE0LCBsb3dlciBkaWFnID0gNzgyMCwgdXBwZXIgZGlhZyA9IDc4MjApIExlbmd0aDogMTI8 L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUsIFRDb25maWcmZ3Q7KDgyODcsIDQ0 NiwgODMwNCwgNDYzLCBsb3dlciBkaWFnID0gNzg0MSwgdXBwZXIgZGlhZyA9IDc4NDEpIExlbmd0 aDogMTc8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUsIFRDb25maWcmZ3Q7KDgz MDQsIDQ2NiwgODMxNiwgNDc4LCBsb3dlciBkaWFnID0gNzgzOCwgdXBwZXIgZGlhZyA9IDc4Mzgp IExlbmd0aDogMTI8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUsIFRDb25maWcm Z3Q7KDgzMjYsIDc0OCwgODMzOCwgNzYwLCBsb3dlciBkaWFnID0gNzU3OCwgdXBwZXIgZGlhZyA9 IDc1NzgpIExlbmd0aDogMTI8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUsIFRD b25maWcmZ3Q7KDgzNTQsIDc2MSwgODM2NiwgNzczLCBsb3dlciBkaWFnID0gNzU5MywgdXBwZXIg ZGlhZyA9IDc1OTMpIExlbmd0aDogMTI8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtTaW1w bGUsIFRDb25maWcmZ3Q7KDg0MjYsIDgwMSwgODQzOCwgODEzLCBsb3dlciBkaWFnID0gNzYyNSwg dXBwZXIgZGlhZyA9IDc2MjUpIExlbmd0aDogMTI8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZs dDtTaW1wbGUsIFRDb25maWcmZ3Q7KDg3MDIsIDIyOTEsIDg3MjEsIDIzMTAsIGxvd2VyIGRpYWcg PSA2NDExLCB1cHBlciBkaWFnID0gNjQxMSkgTGVuZ3RoOiAxOTwvZGl2Pg0KPGRpdiBjbGFzcz0i Ij5TZWVkJmx0O1NpbXBsZSwgVENvbmZpZyZndDsoODc2OSwgMjMxNCwgODc4MSwgMjMyNiwgbG93 ZXIgZGlhZyA9IDY0NTUsIHVwcGVyIGRpYWcgPSA2NDU1KSBMZW5ndGg6IDEyPC9kaXY+DQo8ZGl2 IGNsYXNzPSIiPlNlZWQmbHQ7U2ltcGxlLCBUQ29uZmlnJmd0Oyg4Nzk0LCAyMzg3LCA4ODA2LCAy Mzk5LCBsb3dlciBkaWFnID0gNjQwNywgdXBwZXIgZGlhZyA9IDY0MDcpIExlbmd0aDogMTI8L2Rp dj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUsIFRDb25maWcmZ3Q7KDg4MzUsIDI0MDAs IDg4NDcsIDI0MTIsIGxvd2VyIGRpYWcgPSA2NDM1LCB1cHBlciBkaWFnID0gNjQzNSkgTGVuZ3Ro OiAxMjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5TZWVkJmx0O1NpbXBsZSwgVENvbmZpZyZndDsoOTE2 MiwgMjY1MCwgOTE3NCwgMjY2MiwgbG93ZXIgZGlhZyA9IDY1MTIsIHVwcGVyIGRpYWcgPSA2NTEy KSBMZW5ndGg6IDEyPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlNlZWQmbHQ7U2ltcGxlLCBUQ29uZmln Jmd0Oyg5MTg0LCAyNjc2LCA5MTk2LCAyNjg4LCBsb3dlciBkaWFnID0gNjUwOCwgdXBwZXIgZGlh ZyA9IDY1MDgpIExlbmd0aDogMTI8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUs IFRDb25maWcmZ3Q7KDkxOTYsIDI3MzYsIDkyMDgsIDI3NDgsIGxvd2VyIGRpYWcgPSA2NDYwLCB1 cHBlciBkaWFnID0gNjQ2MCkgTGVuZ3RoOiAxMjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5TZWVkJmx0 O1NpbXBsZSwgVENvbmZpZyZndDsoOTIyMywgMjgxOCwgOTIzNSwgMjgzMCwgbG93ZXIgZGlhZyA9 IDY0MDUsIHVwcGVyIGRpYWcgPSA2NDA1KSBMZW5ndGg6IDEyPC9kaXY+DQo8ZGl2IGNsYXNzPSIi PlNlZWQmbHQ7U2ltcGxlLCBUQ29uZmlnJmd0Oyg5MjUxLCAyODQ0LCA5MjY3LCAyODYwLCBsb3dl ciBkaWFnID0gNjQwNywgdXBwZXIgZGlhZyA9IDY0MDcpIExlbmd0aDogMTY8L2Rpdj4NCjxkaXYg Y2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUsIFRDb25maWcmZ3Q7KDkyOTQsIDI4NzEsIDkzMDgsIDI4 ODUsIGxvd2VyIGRpYWcgPSA2NDIzLCB1cHBlciBkaWFnID0gNjQyMykgTGVuZ3RoOiAxNDwvZGl2 Pg0KPGRpdiBjbGFzcz0iIj5TZWVkJmx0O1NpbXBsZSwgVENvbmZpZyZndDsoOTMxNCwgMjg5MSwg OTMyNywgMjkwNCwgbG93ZXIgZGlhZyA9IDY0MjMsIHVwcGVyIGRpYWcgPSA2NDIzKSBMZW5ndGg6 IDEzPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlNlZWQmbHQ7U2ltcGxlLCBUQ29uZmlnJmd0Oyg5NDMy LCAyOTc2LCA5NDQ3LCAyOTkxLCBsb3dlciBkaWFnID0gNjQ1NiwgdXBwZXIgZGlhZyA9IDY0NTYp IExlbmd0aDogMTU8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUsIFRDb25maWcm Z3Q7KDk1MTUsIDI5OTIsIDk1MjcsIDMwMDQsIGxvd2VyIGRpYWcgPSA2NTIzLCB1cHBlciBkaWFn ID0gNjUyMykgTGVuZ3RoOiAxMjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5TZWVkJmx0O1NpbXBsZSwg VENvbmZpZyZndDsoOTY3NSwgMzM4NSwgOTcwMSwgMzQxMSwgbG93ZXIgZGlhZyA9IDYyOTAsIHVw cGVyIGRpYWcgPSA2MjkwKSBMZW5ndGg6IDI2PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlNlZWQmbHQ7 U2ltcGxlLCBUQ29uZmlnJmd0Oyg5NzI0LCAzNDE0LCA5NzM2LCAzNDI2LCBsb3dlciBkaWFnID0g NjMxMCwgdXBwZXIgZGlhZyA9IDYzMTApIExlbmd0aDogMTI8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+ U2VlZCZsdDtTaW1wbGUsIFRDb25maWcmZ3Q7KDk3OTEsIDM1NzEsIDk4MDQsIDM1ODQsIGxvd2Vy IGRpYWcgPSA2MjIwLCB1cHBlciBkaWFnID0gNjIyMCkgTGVuZ3RoOiAxMzwvZGl2Pg0KPGRpdiBj bGFzcz0iIj5TZWVkJmx0O1NpbXBsZSwgVENvbmZpZyZndDsoOTgwNSwgMzU5NiwgOTgxNywgMzYw OCwgbG93ZXIgZGlhZyA9IDYyMDksIHVwcGVyIGRpYWcgPSA2MjA5KSBMZW5ndGg6IDEyPC9kaXY+ DQo8ZGl2IGNsYXNzPSIiPlNlZWQmbHQ7U2ltcGxlLCBUQ29uZmlnJmd0Oyg5ODE4LCA0OTE1LCA5 ODMwLCA0OTI3LCBsb3dlciBkaWFnID0gNDkwMywgdXBwZXIgZGlhZyA9IDQ5MDMpIExlbmd0aDog MTI8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUsIFRDb25maWcmZ3Q7KDk4NDIs IDQ5MzksIDk4NTQsIDQ5NTEsIGxvd2VyIGRpYWcgPSA0OTAzLCB1cHBlciBkaWFnID0gNDkwMykg TGVuZ3RoOiAxMjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5TZWVkJmx0O1NpbXBsZSwgVENvbmZpZyZn dDsoOTg3MywgNTA0NSwgOTg4NSwgNTA1NywgbG93ZXIgZGlhZyA9IDQ4MjgsIHVwcGVyIGRpYWcg PSA0ODI4KSBMZW5ndGg6IDEyPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlNlZWQmbHQ7U2ltcGxlLCBU Q29uZmlnJmd0Oyg5ODg2LCA1MDc3LCA5ODk4LCA1MDg5LCBsb3dlciBkaWFnID0gNDgwOSwgdXBw ZXIgZGlhZyA9IDQ4MDkpIExlbmd0aDogMTI8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtT aW1wbGUsIFRDb25maWcmZ3Q7KDk5NDMsIDUyNDIsIDk5NTUsIDUyNTQsIGxvd2VyIGRpYWcgPSA0 NzAxLCB1cHBlciBkaWFnID0gNDcwMSkgTGVuZ3RoOiAxMjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5T ZWVkJmx0O1NpbXBsZSwgVENvbmZpZyZndDsoOTk1NywgNTM4NSwgOTk2OSwgNTM5NywgbG93ZXIg ZGlhZyA9IDQ1NzIsIHVwcGVyIGRpYWcgPSA0NTcyKSBMZW5ndGg6IDEyPC9kaXY+DQo8ZGl2IGNs YXNzPSIiPlNlZWQmbHQ7U2ltcGxlLCBUQ29uZmlnJmd0Oyg5OTk0LCA1NDIzLCAxMDAwNiwgNTQz NSwgbG93ZXIgZGlhZyA9IDQ1NzEsIHVwcGVyIGRpYWcgPSA0NTcxKSBMZW5ndGg6IDEyPC9kaXY+ DQo8ZGl2IGNsYXNzPSIiPlNlZWQmbHQ7U2ltcGxlLCBUQ29uZmlnJmd0OygxMDA2MiwgNzA5Niwg MTAwNzQsIDcxMDgsIGxvd2VyIGRpYWcgPSAyOTY2LCB1cHBlciBkaWFnID0gMjk2NikgTGVuZ3Ro OiAxMjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5TZWVkJmx0O1NpbXBsZSwgVENvbmZpZyZndDsoMTAx MDIsIDcxMDksIDEwMTE0LCA3MTIxLCBsb3dlciBkaWFnID0gMjk5MywgdXBwZXIgZGlhZyA9IDI5 OTMpIExlbmd0aDogMTI8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUsIFRDb25m aWcmZ3Q7KDEwMTU2LCA3MTMxLCAxMDE3OCwgNzE1MywgbG93ZXIgZGlhZyA9IDMwMjUsIHVwcGVy IGRpYWcgPSAzMDI1KSBMZW5ndGg6IDIyPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlNlZWQmbHQ7U2lt cGxlLCBUQ29uZmlnJmd0OygxMDI3NywgNzM1NCwgMTAyOTksIDczNzYsIGxvd2VyIGRpYWcgPSAy OTIzLCB1cHBlciBkaWFnID0gMjkyMykgTGVuZ3RoOiAyMjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5T ZWVkJmx0O1NpbXBsZSwgVENvbmZpZyZndDsoMTAyOTksIDczNzgsIDEwMzEzLCA3MzkyLCBsb3dl ciBkaWFnID0gMjkyMSwgdXBwZXIgZGlhZyA9IDI5MjEpIExlbmd0aDogMTQ8L2Rpdj4NCjxkaXYg Y2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUsIFRDb25maWcmZ3Q7KDEwMzcxLCA3NDAwLCAxMDM4NSwg NzQxNCwgbG93ZXIgZGlhZyA9IDI5NzEsIHVwcGVyIGRpYWcgPSAyOTcxKSBMZW5ndGg6IDE0PC9k aXY+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+JnF1b3Q7JnF1b3Q7JnF1b3Q7PC9kaXY+DQo8ZGl2 IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4tQnJldHQ8L2Rp dj4NCjwvZGl2Pg0KPGltZyBzcmM9Imh0dHA6Ly90LnNpZ25hdXhkaXguY29tL2UxdC9vLzUvZjE4 ZFFoYjBTN2tzOGRETVBiVzJuMHg2bDJCOWdYck43c0tqNnY0ZmhqbFZSenZiWThxU1FHQ1ZSekgy YjFwY3RHRlc0YlhsczMxazFINkgwP3NpPTQ3Mzg5ODA3MTc3ODkxODQmYW1wO3BpPWU5NTBmMjk1 LTU0ZDQtNGQyOC04Y2UzLWI0YmQ5ODc0NTQ1NiIgd2lkdGg9IjEiIGhlaWdodD0iMSIgY2xhc3M9 IiI+PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9Imdt YWlsX2V4dHJhIj48YnIgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+T24gU3Vu LCBOb3YgMTYsIDIwMTQgYXQgMjo1NyBBTSwgUmFobiwgUmVuw6kgPHNwYW4gZGlyPSJsdHIiIGNs YXNzPSIiPg0KJmx0OzxhIGhyZWY9Im1haWx0bzpyZW5lLm1hZXJrZXJAZnUtYmVybGluLmRlIiB0 YXJnZXQ9Il9ibGFuayIgY2xhc3M9IiI+cmVuZS5tYWVya2VyQGZ1LWJlcmxpbi5kZTwvYT4mZ3Q7 PC9zcGFuPiB3cm90ZTo8YnIgY2xhc3M9IiI+DQo8YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVv dGUiIHN0eWxlPSJtYXJnaW46MCAwIDAgLjhleDtib3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDtw YWRkaW5nLWxlZnQ6MWV4Ij4NCjxkaXYgc3R5bGU9IndvcmQtd3JhcDpicmVhay13b3JkIiBjbGFz cz0iIj5IZXkgQnJldHQsJm5ic3A7DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2 Pg0KPGRpdiBjbGFzcz0iIj5JdCBjb3VsZCBoYXZlIG11bHRpcGxlIHJlYXNvbnMuJm5ic3A7PC9k aXY+DQo8ZGl2IGNsYXNzPSIiPkluIGdlbmVyYWwsIGl0IG1lYW5zIHRoYXQgdGhlcmUgd2FzIGEg dHJhY2ViYWNrIHBhdGggZnJvbSBhIHNlZWQgb3IgYSBnYXAsIHRoYXQgY291bGRu4oCZdCBiZSBj b25uZWN0ZWQgd2l0aCBvbmUgb2YgdGhlIHNvIGZhciBnZW5lcmF0ZWQgdHJhY2ViYWNrIHBhdGhz LiBOb3RlLCB0aGF0IHRoZSB0cmFjZWJhY2sgaXMgY29tcHV0ZWQgaW5jcmVtZW50YWxseSB0byBy ZWR1Y2UgdGhlIHNwYWNlIHJlcXVpcmVtZW50cy4mbmJzcDs8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+ SWYgeW91IGNvdWxkIHNlbmQgbWUgYSBzaW1wbGUgdGV4dCBmaWxlIGNvbnRhaW5pbmcgdGhlIHNl ZWRzIG9mIHRoZSBzZWVkIGNoYWluIChvbmUgc2VlZCBwZXIgcm93IHVzaW5nIHRoZSAmbHQ7Jmx0 Oy1vcGVyYXRvciksIHRoYXQgaXMgaW5wdXQgdG8gdGhlIGJhbmRlZCBjaGFpbiBhbGlnbm1lbnQg ZnVuY3Rpb24sIEkgY291bGQgaGF2ZSBhIGxvb2sgYXQgaXQgYW5kIGZpeCB0aGUgcHJvYmxlbS4m bmJzcDs8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+QWxzbywgSSBvcGVuZWQgYW4gaXNzdWUgaW4gZ2l0 aHViOiZuYnNwOzxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9zZXFhbi9zZXFhbi9pc3N1ZXMv Njk5IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9IiI+aHR0cHM6Ly9naXRodWIuY29tL3NlcWFuL3Nl cWFuL2lzc3Vlcy82OTk8L2E+LCBmb3IgdHJhY2tpbmcgdGhlIGlzc3VlLjwvZGl2Pg0KPGRpdiBj bGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIi Pg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPktpbmQgcmVnYXJkcywmbmJzcDs8L2Rpdj4NCjxkaXYg Y2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlJlbsOpIFJhaG48 L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj4NCjxibG9j a3F1b3RlIHR5cGU9ImNpdGUiIGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9 IiI+DQo8ZGl2IGNsYXNzPSIiPk9uIDE2IE5vdiAyMDE0LCBhdCAwNDoxNywgQnJldHQgQm93bWFu ICZsdDs8YSBocmVmPSJtYWlsdG86Ym5ib3dtYW5AZ21haWwuY29tIiB0YXJnZXQ9Il9ibGFuayIg Y2xhc3M9IiI+Ym5ib3dtYW5AZ21haWwuY29tPC9hPiZndDsgd3JvdGU6PC9kaXY+DQo8YnIgY2xh c3M9IiI+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+DQo8 ZGl2IGNsYXNzPSIiPg0KPGRpdiBkaXI9Imx0ciIgY2xhc3M9IiI+PHNwYW4gc3R5bGU9ImZvbnQt ZmFtaWx5OmFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEzcHgiIGNsYXNzPSIiPkknbSB0cnlp bmcgdG8gYnVpbGQgYSB0b29sIHdpdGgmbmJzcDs8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtZmFt aWx5OmFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEzcHg7YmFja2dyb3VuZDpyZ2IoMjU1LDI1 NSwyMDQpIiBjbGFzcz0iIj5TZXFBbjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6YXJp YWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTNweCIgY2xhc3M9IiI+Jm5ic3A7dG8NCiBxdWlja2x5 IGFsaWduIHNvbWUgUGFjQmlvIGRhdGEsIHVzaW5nICZxdW90O2JhbmRlZENoYWluQWxpZ25tZW50 JnF1b3Q7LCBidXQgSSdtIGNvbnNpc3RlbnRseSBnZXR0aW5nIGEgY3Jhc2ggZHVyaW5nIHRoZSB0 cmFjZS1iYWNrIHN0ZXAuJm5ic3A7IFRoZSBnZW5lcmF0aW9uIG9mIHRoZSBTZWVkcyAoU3VmZml4 QXJyYXkpIGFuZCB0aGUgZmluZGluZyBvZiB0aGUgYmFzZSBTZWVkQ2hhaW4gd29ya3MgZmluZSwg YnV0IHRoZSBmaW5hbCBzdGVwIG9mIHR1cm5pbmcgdGhhdCBpbnRvDQogYW4gYWxpZ25tZW50IGRv ZXNuJ3QgYXBwZWFyIHRvIHdvcmsuICZuYnNwOzwvc3Bhbj4NCjxkaXYgc3R5bGU9ImZvbnQtZmFt aWx5OmFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEzcHgiIGNsYXNzPSIiPjxiciBjbGFzcz0i Ij4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZjtmb250 LXNpemU6MTNweCIgY2xhc3M9IiI+U3VnZ2VzdGlvbnM/DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFz cz0iIj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5FcnJvciBMb2c6PC9kaXY+DQo8ZGl2IGNsYXNz PSIiPiZxdW90OyZxdW90OyZxdW90OzwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9 IiI+YmJvd21hbkBsb2NhbGhvc3Q6fi9naXQvU1JTTEkkIC4vc3JjL0MmIzQzOyYjNDM7L3Nyc2xp IHRlc3QvZGF0YS9xdWVyeS9lY29saV81cF9zYW1wbGUuZmFzdHEgdGVzdC9kYXRhL3JlZmVyZW5j ZS9lY29saUsxMl81cF9hc3NlbWJseS5mYXN0YSZuYnNwOzwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5R dWVyeSAwPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPkZpbmlzaGVkIGZpbmRpbmcgc2VlZHM8L2Rpdj4N CjxkaXYgY2xhc3M9IiI+RmluaXNoaW5nIGNoYWluaW5nIHNlZWRzPC9kaXY+DQo8ZGl2IGNsYXNz PSIiPlN0YXJ0aW5nIGFsaWdubWVudCBvZiBzZXF1ZW5jZXM8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+ L3Vzci9pbmNsdWRlLzxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kOnJnYigyNTUsMjU1LDIwNCkiIGNs YXNzPSIiPnNlcWFuPC9zcGFuPi9zZWVkcy9iYW5kZWRfY2hhaW5fYWxpZ25tZW50X3RyYWNlYmFj ay5oOjE5NSBBc3NlcnRpb24gZmFpbGVkIDogaXNHbHVlZCA9PSB0cnVlIHdhczogMCAhPSAxIChG YXRhbCBlcnJvciB3aGlsZSB0cnlpbmcgdG8gY29ubmVjdCB0cmFjZSBiYWNrczogTm8gZ2x1ZSBw b2ludCBhdmFpbGFibGUhKTwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5BYm9ydGVkIChjb3JlIGR1bXBl ZCk8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4mcXVvdDsmcXVvdDsmcXVvdDs8L2Rpdj4N CjxkaXYgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPjxpbWcgc3JjPSJodHRwczovL3NzbC5nc3Rh dGljLmNvbS91aS92MS9pY29ucy9tYWlsL2ltYWdlcy9jbGVhcmRvdC5naWYiIGNsYXNzPSIiPjwv ZGl2Pg0KPC9kaXY+DQo8c3BhbiBjbGFzcz0iIj48Zm9udCBjb2xvcj0iIzg4ODg4OCIgY2xhc3M9 IiI+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4t QnJldHQ8L2Rpdj4NCjwvZm9udD48L3NwYW4+PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+ DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXzxiciBjbGFz cz0iIj4NCnNlcWFuLWRldiBtYWlsaW5nIGxpc3Q8YnIgY2xhc3M9IiI+DQo8YSBocmVmPSJtYWls dG86c2VxYW4tZGV2QGxpc3RzLmZ1LWJlcmxpbi5kZSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSIi PnNlcWFuLWRldkBsaXN0cy5mdS1iZXJsaW4uZGU8L2E+PGJyIGNsYXNzPSIiPg0KPGEgaHJlZj0i aHR0cHM6Ly9saXN0cy5mdS1iZXJsaW4uZGUvbGlzdGluZm8vc2VxYW4tZGV2IiB0YXJnZXQ9Il9i bGFuayIgY2xhc3M9IiI+aHR0cHM6Ly9saXN0cy5mdS1iZXJsaW4uZGUvbGlzdGluZm8vc2VxYW4t ZGV2PC9hPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8YnIg Y2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+ PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIiPi0tLTwvZm9udD48L2Rpdj4NCjxkaXYg Y2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIiPjxiciBjbGFzcz0iIj4N CjwvZm9udD48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNs YXNzPSIiPlJlbsOpIFJhaG48L2ZvbnQ+PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxmb250IGZhY2U9 IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj5QaC5ELiBTdHVkZW50PC9mb250PjwvZGl2Pg0KPGRpdiBj bGFzcz0iIj48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS08L2ZvbnQ+PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPg0KPGRpdiBjbGFz cz0iIj48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+VGVsOiAmbmJzcDs8YSBocmVm PSJ0ZWw6JTI4JTJCNDklMjklMjAzMCUyMDgzOCUyMDc1Mjc3IiB2YWx1ZT0iJiM0Mzs0OTMwODM4 NzUyNzciIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iIj4oJiM0Mzs0OSkgMzAgODM4IDc1Mjc3PC9h PjwvZm9udD48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNs YXNzPSIiPk1haWw6Jm5ic3A7PGEgaHJlZj0ibWFpbHRvOnJlbmUucmFobkBmdS1iZXJsaW4uZGUi IHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iIj5yZW5lLnJhaG5AZnUtYmVybGluLmRlPC9hPjwvZm9u dD48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIi Pi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPC9mb250PjwvZGl2Pg0KPC9kaXY+DQo8 ZGl2IGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj5JbnN0aXR1dGUg b2YgQ29tcHV0ZXIgU2NpZW5jZTwvZm9udD48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGZvbnQgZmFj ZT0iQ291cmllciBOZXciIGNsYXNzPSIiPkFsZ29yaXRobWljIEJpb2luZm9ybWF0aWNzIChBQkkp PC9mb250PjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyIgY2xh c3M9IiI+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08L2ZvbnQ+PC9kaXY+DQo8ZGl2 IGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj5GcmVpZSBVbml2ZXJz aXTDpHQgQmVybGluPC9mb250PjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3Vy aWVyIE5ldyIgY2xhc3M9IiI+VGFrdXN0cmHDn2UgOTwvZm9udD48L2Rpdj4NCjxkaXYgY2xhc3M9 IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIiPjE0MTk1IEJlcmxpbjwvZm9udD48 L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIiPi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPC9mb250PjwvZGl2Pg0KPC9kaXY+DQo8L2Rp dj4NCjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPC9kaXY+DQo8YnIgY2xhc3M9IiI+DQpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXzxiciBjbGFzcz0iIj4NCnNl cWFuLWRldiBtYWlsaW5nIGxpc3Q8YnIgY2xhc3M9IiI+DQo8YSBocmVmPSJtYWlsdG86c2VxYW4t ZGV2QGxpc3RzLmZ1LWJlcmxpbi5kZSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSIiPnNlcWFuLWRl dkBsaXN0cy5mdS1iZXJsaW4uZGU8L2E+PGJyIGNsYXNzPSIiPg0KPGEgaHJlZj0iaHR0cHM6Ly9s aXN0cy5mdS1iZXJsaW4uZGUvbGlzdGluZm8vc2VxYW4tZGV2IiB0YXJnZXQ9Il9ibGFuayIgY2xh c3M9IiI+aHR0cHM6Ly9saXN0cy5mdS1iZXJsaW4uZGUvbGlzdGluZm8vc2VxYW4tZGV2PC9hPjxi ciBjbGFzcz0iIj4NCjxiciBjbGFzcz0iIj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0KPGJyIGNs YXNzPSIiPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8 YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8L2Rp dj4NCjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX188YnIgY2xhc3M9IiI+DQpzZXFhbi1kZXYgbWFpbGluZyBsaXN0PGJy IGNsYXNzPSIiPg0KPGEgaHJlZj0ibWFpbHRvOnNlcWFuLWRldkBsaXN0cy5mdS1iZXJsaW4uZGUi IGNsYXNzPSIiPnNlcWFuLWRldkBsaXN0cy5mdS1iZXJsaW4uZGU8L2E+PGJyIGNsYXNzPSIiPg0K aHR0cHM6Ly9saXN0cy5mdS1iZXJsaW4uZGUvbGlzdGluZm8vc2VxYW4tZGV2PGJyIGNsYXNzPSIi Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8L2Rpdj4NCjxiciBjbGFzcz0iIj4NCjxkaXYgY2xh c3M9IiI+DQo8ZGl2IGNsYXNzPSIiPg0KPGRpdiBzdHlsZT0ib3JwaGFuczogMjsgd2lkb3dzOiAy OyIgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIiPi0tLTwvZm9udD48 L2Rpdj4NCjxkaXYgc3R5bGU9Im9ycGhhbnM6IDI7IHdpZG93czogMjsiIGNsYXNzPSIiPjxmb250 IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2ZvbnQ+PC9kaXY+ DQo8ZGl2IHN0eWxlPSJvcnBoYW5zOiAyOyB3aWRvd3M6IDI7IiBjbGFzcz0iIj48Zm9udCBmYWNl PSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+UmVuw6kgUmFobjwvZm9udD48L2Rpdj4NCjxkaXYgc3R5 bGU9Im9ycGhhbnM6IDI7IHdpZG93czogMjsiIGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJpZXIg TmV3IiBjbGFzcz0iIj5QaC5ELiBTdHVkZW50PC9mb250PjwvZGl2Pg0KPGRpdiBzdHlsZT0ib3Jw aGFuczogMjsgd2lkb3dzOiAyOyIgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNs YXNzPSIiPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPC9mb250PjwvZGl2Pg0KPGRp diBzdHlsZT0ib3JwaGFuczogMjsgd2lkb3dzOiAyOyIgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIi Pjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj5UZWw6ICZuYnNwOygmIzQzOzQ5KSAz MCA4MzggNzUyNzc8L2ZvbnQ+PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJp ZXIgTmV3IiBjbGFzcz0iIj5NYWlsOiZuYnNwOzxhIGhyZWY9Im1haWx0bzpyZW5lLnJhaG5AZnUt YmVybGluLmRlIiBjbGFzcz0iIj5yZW5lLnJhaG5AZnUtYmVybGluLmRlPC9hPjwvZm9udD48L2Rp dj4NCjxkaXYgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIiPi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPC9mb250PjwvZGl2Pg0KPC9kaXY+DQo8ZGl2IHN0 eWxlPSJvcnBoYW5zOiAyOyB3aWRvd3M6IDI7IiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3VyaWVy IE5ldyIgY2xhc3M9IiI+SW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2U8L2ZvbnQ+PC9kaXY+ DQo8ZGl2IHN0eWxlPSJvcnBoYW5zOiAyOyB3aWRvd3M6IDI7IiBjbGFzcz0iIj48Zm9udCBmYWNl PSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+QWxnb3JpdGhtaWMgQmlvaW5mb3JtYXRpY3MgKEFCSSk8 L2ZvbnQ+PC9kaXY+DQo8ZGl2IHN0eWxlPSJvcnBoYW5zOiAyOyB3aWRvd3M6IDI7IiBjbGFzcz0i Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+LS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS08L2ZvbnQ+PC9kaXY+DQo8ZGl2IHN0eWxlPSJvcnBoYW5zOiAyOyB3aWRvd3M6 IDI7IiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+RnJlaWUgVW5p dmVyc2l0w6R0IEJlcmxpbjwvZm9udD48L2Rpdj4NCjxkaXYgc3R5bGU9Im9ycGhhbnM6IDI7IHdp ZG93czogMjsiIGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj5UYWt1 c3RyYcOfZSA5PC9mb250PjwvZGl2Pg0KPGRpdiBzdHlsZT0ib3JwaGFuczogMjsgd2lkb3dzOiAy OyIgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIiPjE0MTk1IEJlcmxp bjwvZm9udD48L2Rpdj4NCjxkaXYgc3R5bGU9Im9ycGhhbnM6IDI7IHdpZG93czogMjsiIGNsYXNz PSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj4tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLTwvZm9udD48L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8YnIgY2xhc3M9IiI+ DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg== --_000_AB74A317D8794DBA8E1C85BCD4DBF6E4zedatfuberlinde_-- From rene.maerker@fu-berlin.de Tue Nov 18 16:25:28 2014 Received: from outpost9.zedat.fu-berlin.de ([130.133.4.95]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1Xqkek-000rSk-5m>; Tue, 18 Nov 2014 16:25:26 +0100 Received: from relay2.zedat.fu-berlin.de ([130.133.4.80]) by outpost.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1Xqkek-003GgA-3q>; Tue, 18 Nov 2014 16:25:26 +0100 Received: from cas3.campus.fu-berlin.de ([130.133.170.203]) by relay2.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1Xqkej-000b3g-MU>; Tue, 18 Nov 2014 16:25:26 +0100 Received: from EX03A.campus.fu-berlin.de ([130.133.170.134]) by CAS3.campus.fu-berlin.de ([130.133.170.203]) with mapi id 14.03.0210.002; Tue, 18 Nov 2014 16:25:24 +0100 From: =?utf-8?B?UmFobiwgUmVuw6k=?= To: SeqAn Development Thread-Topic: [Seqan-dev] Fatal Error in Banded Chain Alignment Traceback Thread-Index: AQHQAUv6+3oy1rxx+U+pRGZ4bmK1QpxjBQCAgAE5aICAACUAAIABI/UAgADrQwCAAAHCgA== Message-ID: <8DEDCE0A-7B1A-4D67-AFFE-DB8F1186F7B7@zedat.fu-berlin.de> References: <50D46377-BAED-47B3-8091-6DF539B7C9E8@fritz.box> In-Reply-To: Accept-Language: de-DE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Content-Type: multipart/alternative; boundary="_000_8DEDCE0A7B1A4D67AFFEDB8F1186F7B7zedatfuberlinde_" MIME-Version: 1.0 Date: Tue, 18 Nov 2014 16:25:23 +0100 X-Original-Date: Tue, 18 Nov 2014 15:25:23 +0000 X-Originating-IP: 130.133.170.203 X-ZEDAT-Hint: XA X-purgate: suspect X-purgate-type: suspect X-purgate-ID: 151147::1416324326-00067E64-A0A5BEF7/1/4400152635 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=-47.9 required=5.0 tests=ALL_TRUSTED, FU_XPURGATE_SUSP, HTML_MESSAGE,TRACKER_ID,T_FILL_THIS_FORM_SHORT X-Spam-Checker-Version: SpamAssassin 3.4.0 on Burundi.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [Seqan-dev] Fatal Error in Banded Chain Alignment Traceback X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Nov 2014 15:25:29 -0000 --_000_8DEDCE0A7B1A4D67AFFEDB8F1186F7B7zedatfuberlinde_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 U29ycnksDQoNCk9uIDE4IE5vdiAyMDE0LCBhdCAxNjoxOSwgUmFobiwgUmVuw6kgPHJlbmUubWFl cmtlckBmdS1iZXJsaW4uZGU8bWFpbHRvOnJlbmUubWFlcmtlckBmdS1iZXJsaW4uZGU+PiB3cm90 ZToNCg0KSGV5IEJyZXR0LA0KDQpieSBqdXN0IGxvb2tpbmcgYXQgdGhlIHNlZWQgY2hhaW4gSSBt aWdodCB0aGluayB0aGF0IHRoZSBwcm9ibGVtIGlzIHRoZSBiYWQgY2hhaW4gaW4gdGhlIGZpcnN0 IHBsYWNlLg0KVGhlIGZpcnN0IHNlZWQgYmVnaW5zIGF0IHBvc2l0aW9uIDc2ODggZm9yIHRoZSBm aXJzdCBzZXF1ZW5jZSwgd2hpbGUgdGhlIHNlZWQgZm9yIHRoZSBzZWNvbmQgc2VxdWVuY2Ugc3Rh cnRzIGF0IHBvc2l0aW9uIDU3Lg0KVGhlcmUgSSBjYW4gaGF2ZSBhdCBtb3N0IDU3IG1hdGNoZXMg YW5kIGhhdmUgNzYzMSBnYXBzLiBHaXZlbiBhIHNjb3JlIG9mIC03IGZvciB0aGUgZ2FwcyBhbmQg NCBmb3IgdGhlIG1hdGNoZXMgSSBoYXZlIGEgc2NvcmUgb2YgYXQgbGVhc3QgLTUzMTg5IHdoaWNo IGluIGZhY3QgZXhjZWVkcyB0aGUgYm91bmQgb2YNCnVuc2lnbmVkIHNob3J0cyAtMzIuNzY4IC0g MzIuNzY3Lg0KDQpJIG1lYW50IHNpZ25lZCBzaG9ydHMgb2YgY291cnNlIDopLg0KDQpUaGlzIHdv dWxkIGFsc28gZXhwbGFpbiB3aHkgaXQgd29ya3Mgd2l0aCBhIGdhcCBwZW5hbHR5IG9mIC0yIH4g LTE1MzAwLg0KVXNpbmcgdW5zaWduZWQgc2hvcnQgY2Fubm90IGdpdmUgY29ycmVjdCByZXN1bHRz LCBhcyBpdCBpcyBvbmx5IGRlZmluZWQgb24gdGhlIHZhbHVlcyBmcm9tIDAgdG8gNjU1MzUuIElu IHRoaXMgY2FzZSAtNyB3b3VsZCBhbHNvIGJlIGludGVycHJldGVkIGFzIDY1NTI5Lg0KU28gc29t ZXdoZXJlIGluIHRoZSBmaXJzdCBtYXRyaXggaXMgYW4gb3ZlcmZsb3csIHdoaWNoIG1pZ2h0IGxl YWQgdG8gdGhlIHByb2JsZW0gd2l0aCB0aGUgdHJhY2ViYWNrLiBJIHdpbGwgaW52ZXN0aWdhdGUg dGhpcyBtb3JlIHRob3JvdWdobHkgaW4gdGhlIG5leHQgZGF5cy4NCkZvciB0aGUgbW9tZW50IEkg c3VnZ2VzdCAyIHRoaW5ncy4NCkEpIFRyeSB0byB1c2Ugc2lnbmVkIGludGVnZXIgdHlwZXMgYW5k IHNlZSBpZiBpdCBydW5zIHRocm91Z2guIChKdXN0IHRvIGNoZWNrIGlmIGl0IGlzIHJlYWxseSBy ZWxhdGVkIHRvIHRoZSB2YWx1ZSBvdmVyZmxvdy4pDQpCKSBVc2UgY2hhb3MgY2hhaW5pbmcgd2hl biBhZGRpbmcgc2VlZHMgdG8gdGhlIHNlZWQgc2V0LiBGcm9tIHRoZSBkYXRhIHNldCBJIHdvdWxk IGd1ZXNzIHlvdSB1c2VkIHRoZSBzaW1wbGUgbWVyZ2Ugc3RyYXRlZ3ksIGJ1dCBnaXZlbiB0aGF0 IHRoZSBzZXF1ZW5jZXMgbWlnaHQgbm90IGJlIOKAnHZlcnnigJ0gc2ltaWxhciB0aGUgY2hhb3Mg Y2hhaW5pbmcgbWlnaHQgY29tcHV0ZSBiZXR0ZXIgcmVzdWx0cyBhbmQgdGhlbiB0aGUgYmFuZGVk IGNoYWluIGFsaWdubWVudCBtaWdodCB3b3JrIGFzIHdlbGwuDQoNCkRpZCB5b3UgY2hhbmdlZCB0 aGUgZGVmYXVsdCBiYW5kIHNldHRpbmdzIGZvciB0aGUgYmFuZCB3aWR0aCBvZiB0aGUgYmFuZGVk Q2hhaW5BbGlnbm1lbnQgKHRoaXMgcGFyYW1ldGVyIGspPw0KDQpDaGVlcnMsDQoNClJlbsOpDQoN Ck9uIDE4IE5vdiAyMDE0LCBhdCAwMjoxNywgQnJldHQgQm93bWFuIDxibmJvd21hbkBnbWFpbC5j b208bWFpbHRvOmJuYm93bWFuQGdtYWlsLmNvbT4+IHdyb3RlOg0KDQpPcHBzLCBJIGp1c3Qgbm90 aWNlZCBhIG1pc3Rha2UgaW4gbXkgcHJldmlvdXMgZS1tYWlsLiAgSSB3cm90ZToNCg0KIiIiDQpU aGUgc2NvcmluZyBzY2hlbWUgaGFkIHRvIGJlIGNoYW5nZWQgZnJvbToNClNjb3JlPHNob3J0LCBT aW1wbGU+IHNjb3JpbmdTY2hlbWUoNCwgLTEzLCAtNyk7ICAgLy8gRGV0ZXJtaW5lZCBlbXBpcmlj YWxseSB0byB3b3JrIHdlbGwgb24gUGFjQmlvIGRhdGEgd2l0aCBteSBob21lLWJyZXdlZCBhbGln bmVyDQp0bzoNClNjb3JlPHNob3J0LCBTaW1wbGU+IHNjb3JpbmdTY2hlbWUoMiwgLTEsIC0yKTsg ICAgIC8vIFNjb3Jpbmcgc2NoZW1lIHJlY29tbWVuZGVkL3Rlc3RlZCBieSBTZXFBbiBkb2NzDQoi IiINCg0KYnV0IHdoYXQgSSBtZWFudCB3YXMgKGNoYW5nZXMgaW4gQ0FQSVRBTCk6DQoiIiINClRo ZSBzY29yaW5nIHNjaGVtZSBoYWQgdG8gYmUgY2hhbmdlZCBmcm9tOg0KU2NvcmU8VU5TSUdORUQg c2hvcnQsIFNpbXBsZT4gc2NvcmluZ1NjaGVtZSg0LCAtMTMsIC03KTsgICAvLyBEZXRlcm1pbmVk IGVtcGlyaWNhbGx5IHRvIHdvcmsgd2VsbCBvbiBQYWNCaW8gZGF0YSB3aXRoIG15IGhvbWUtYnJl d2VkIGFsaWduZXINCnRvOg0KU2NvcmU8VU5TSUdORUQgc2hvcnQsIFNpbXBsZT4gc2NvcmluZ1Nj aGVtZSgyLCAtMSwgLTIpOyAgICAgLy8gU2NvcmluZyBzY2hlbWUgcmVjb21tZW5kZWQvdGVzdGVk IGJ5IFNlcUFuIGRvY3MNCiIiIg0KDQpJIHdhcyBub3Qgc3VycHJpc2VkIHdoZW4gcmVndWxhciBz aG9ydHMgd2VyZSBub3QgbGFyZ2UgZW5vdWdoIGdpdmVuIHRoYXQgd2UncmUgZGVhbGluZyB3aXRo IH4xMGtiIGFsaWdubWVudHMsIGJ1dCBJIHdhcyBzdXJwcmlzZWQgdGhhdCB1bnNpZ25lZCBzaG9y dHMgZGlkIG5vdCB3b3JrLiAgVGhleSBhcmUgcHJlZmVyYWJsZSBnaXZlbiB0aGVpciBzbWFsbGVy IHNpemUsIGFuZCB1c2VkIGJ5IHNvbWUgb2YgbXkgaG9tZS1icmV3ZWQgYWxpZ25lcnMuDQoNCi1C cmV0dA0KDQpPbiBTdW4sIE5vdiAxNiwgMjAxNCBhdCAxMTo1MiBQTSwgQnJldHQgQm93bWFuIDxi bmJvd21hbkBnbWFpbC5jb208bWFpbHRvOmJuYm93bWFuQGdtYWlsLmNvbT4+IHdyb3RlOg0KSSd2 ZSBnb3R0ZW4gYSBydWRpbWVudGFyeSBhbGlnbm1lbnQgb3V0LCBidXQgSSBoYWQgdG8gdHdlYWsg YSBmZXcgdGhpbmdzOg0KDQoiIiINCiAgICAgIDAgICAgIC4gICAgOiAgICAuICAgIDogICAgLiAg ICA6ICAgIC4gICAgOiAgICAuICAgIDoNCiAgICAgICAgQUFBR0FHLS1BR0FHQVQtQVRHQ0NBR1RB QVRBLUNUVEdBQUFHQVRBVFRHQ0NHQUdDVEcNCiAgICAgICAgICAgfCB8ICAgfCAgfHwgfHx8fHx8 fHx8fHx8IHx8fHx8fHx8fHx8fHx8fHx8fHx8fHwNCiAgICAgICAgLS0tR1RHQ0NDR1RDQVRBQVRH Q0NBR1RBQVRBR0NUVEdBQUFHQVRBVFRHQ0NHQUdDVEcNCg0KICAgICA1MCAgICAgLiAgICA6ICAg IC4gICAgOiAgICAuICAgIDogICAgLiAgICA6ICAgIC4gICAgOg0KICAgICAgICBHVEdDQ0dUVFRH Q0NDQVRDR1RUQVRHR1RHQ0FBQUFBLVRUVENHVENBQ0dDVFRBQUNBQw0KICAgICAgICB8fHx8fHx8 fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8IHx8fHx8fHx8fHx8fHx8fHx8fA0KICAgICAgICBHVEdD Q0dUVFRHQ0NDQVRDR1RUQVRHR1RHQ0FBQUFBVFRUVENHVENBQ0dDVFRBQUNBQw0KDQogICAgMTAw ICAgICAuICAgIDogICAgLiAgICA6ICAgIC4gICAgOiAgICAuICAgIDogICAgLiAgICA6DQogICAg ICAgIENBVFRUVEdDQVRHQVRHQVRHQUdDVEdHQUFDQ0NHQ0dDLUFDR0dDVEdBVFRBQ1RHQUNDDQog ICAgICAgIHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8IHx8fHx8fHx8fHx8fHx8fHx8 DQogICAgICAgIENBVFRUVEdDQVRHQVRHQVRHQUdDVEdHQUFDQ0NHQ0dDQUFDR0dDVEdBVFRBQ1RH QUNDDQoNCiAgICAxNTAgICAgIC4gICAgOiAgICAuICAgIDogICAgLiAgICA6ICAgIC4gICAgOiAg ICAuICAgIDoNCiAgICAgICAgVENUQUNDQUdBQ0NHR1RHVENHQVRHQ0dDVEdBVFRHVFQtQUdHQVRB VEdHR0dBVFRDVEcNCiAgICAgICAgfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHwgfHx8 fHx8fHx8fHx8fHx8fHwNCiAgICAgICAgVENUQUNDQUdBQ0NHR1RHVENHQVRHQ0dDVEdBVFRHVFRD QUdHQVRBVEdHR0dBVFRDVEcNCg0KICAgIDIwMCAgICAgLiAgICA6ICAgIC4gICAgOiAgICAuICAg IDogICAgLiAgICA6ICAgIC4gICAgOg0KICAgICAgICBHQUFBQ0NUVEdBVEFUVENHQ0dDR0NHQVRU R0FBQ1RHR0NBQ0dDQ0FHVEFDQ0dDQUdURw0KICAgICAgICB8IHx8IHx8fHx8fHx8fHwgfHx8IHx8 fHx8fHx8fHwgfHx8fHx8fHx8fHwgfHx8fHx8fA0KICAgICAgICBHLUFBLUNUVEdBVEFUVEMtQ0dD LUNHQVRUR0FBQ1QtR0NBQ0dDQ0FHVEEtQ0dDQUdURw0KIiIiDQoNClRoZSBzY29yaW5nIHNjaGVt ZSBoYWQgdG8gYmUgY2hhbmdlZCBmcm9tOg0KU2NvcmU8c2hvcnQsIFNpbXBsZT4gc2NvcmluZ1Nj aGVtZSg0LCAtMTMsIC03KTsgICAvLyBEZXRlcm1pbmVkIGVtcGlyaWNhbGx5IHRvIHdvcmsgd2Vs bCBvbiBQYWNCaW8gZGF0YSB3aXRoIG15IGhvbWUtYnJld2VkIGFsaWduZXINCnRvOg0KU2NvcmU8 c2hvcnQsIFNpbXBsZT4gc2NvcmluZ1NjaGVtZSgyLCAtMSwgLTIpOyAgICAgLy8gU2NvcmluZyBz Y2hlbWUgcmVjb21tZW5kZWQvdGVzdGVkIGJ5IFNlcUFuIGRvY3MNCg0KVGhlIGluaXRpYWwgU2Vl ZC1zZXQgaGFkIHRvIGJlIHNldCBieSBoYW5kIHdpdGggdGhlIHJlZmVyZW5jZS1hbGlnbm1lbnQn cyBzdGFydCBwb3NpdGlvbjoNClNlZWRTZXQ8U2ltcGxlPiBzZWVkczI7DQphZGRTZWVkKHNlZWRz MiwgVFNlZWQoICAxMiwgICAxMiwgMTAwKSwgc2VxYW46OlNpbmdsZSgpKTsNCmFkZFNlZWQoc2Vl ZHMyLCBUU2VlZCggMTIwLCAgMTIwLCAxMDApLCBzZXFhbjo6U2luZ2xlKCkpOw0KDQpTbyBpdCBh cHBlYXJzIHRoYXQgdGhlcmUgYXJlIGF0IGxlYXN0IHR3byBpc3N1ZXMgYXQgcGxheSBoZXJlOg0K LVRoZSB2YWx1ZS10eXBlIHVzZWQgZm9yIHRoZSBiYW5kZWRDaGFpbkFsaWdubWVudCBpc24ndCBs YXJnZSBlbm91Z2ggdG8gaGFuZGxlIG11bHRpLWtiIGFsaWdubWVudHMgd2l0aCBtb2RlcmF0ZS1z aXplZCBwZW5hbHRpZXMNCi1UaGUgZGVmYXVsdCBjaGFpbmluZyBhbGdvcml0aG0gZG9lc24ndCBo YW5kbGUgbGFyZ2UgbnVtYmVycyBvZiBzZWVkcyB3aXRoIHNtYWxsIGluZGVsIGdhcHMgd2VsbC4N Cg0KLUJyZXR0DQoNCk9uIFN1biwgTm92IDE2LCAyMDE0IGF0IDk6MzkgUE0sIEJyZXR0IEJvd21h biA8Ym5ib3dtYW5AZ21haWwuY29tPG1haWx0bzpibmJvd21hbkBnbWFpbC5jb20+PiB3cm90ZToN ClRoYW5rcyBSZW5lLA0KDQpNeSBxdWVyeSwgcmVmZXJlbmNlLCBhbmQgY2Fub25pY2FsIGFsaWdu bWVudCBmcm9tIEJMQVNSICh0aGUgUGFjQmlvLXNwZWNpZmljIGFsaWduZXIpIGF0dGFjaGVkLg0K DQpJIGFsc28gbm90aWNlZCB0aGF0IHRoZSBzZWVkcyBpdCdzIGNoYWluaW5nIHdpdGggY2hhaW5H bG9iYWxBbGlnbm1lbnQoKSBhcmUgd2F5IG9mZiB0aGUgZGlhZ29uYWwsIHdoaWNoIG1heSBiZSBy ZWxhdGVkIC0gZGV0YWlscyBiZWxvdzoNCg0KIiIiDQpRdWVyeSAjMSAtIG0xMzA0MDRfMDE0MDA0 X3NpZG5leV9jMTAwNTA2OTAyNTUwMDAwMDAxODIzMDc2ODA4MjIxMzM3X3MxX3AwLzU3NzkvMF8x MDM5Nw0KRmluaXNoZWQgZmluZGluZyBzZWVkcw0KU2VlZHM6IDE5MzkNCkZpbmlzaGluZyBjaGFp bmluZyBzZWVkcw0KQ2hhaW46IDQ0DQpTZWVkPFNpbXBsZSwgVENvbmZpZz4oNzY4OCwgNTcsIDc3 MDYsIDc1LCBsb3dlciBkaWFnID0gNzYzMSwgdXBwZXIgZGlhZyA9IDc2MzEpIExlbmd0aDogMTgN ClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig3NzA3LCA5NCwgNzcyMiwgMTA5LCBsb3dlciBkaWFnID0g NzYxMywgdXBwZXIgZGlhZyA9IDc2MTMpIExlbmd0aDogMTUNClNlZWQ8U2ltcGxlLCBUQ29uZmln Pig3OTMzLCAxMTEsIDc5NDYsIDEyNCwgbG93ZXIgZGlhZyA9IDc4MjIsIHVwcGVyIGRpYWcgPSA3 ODIyKSBMZW5ndGg6IDEzDQpTZWVkPFNpbXBsZSwgVENvbmZpZz4oNzk0OSwgMTMwLCA3OTY1LCAx NDYsIGxvd2VyIGRpYWcgPSA3ODE5LCB1cHBlciBkaWFnID0gNzgxOSkgTGVuZ3RoOiAxNg0KU2Vl ZDxTaW1wbGUsIFRDb25maWc+KDgwNjUsIDI5OSwgODA3OCwgMzEyLCBsb3dlciBkaWFnID0gNzc2 NiwgdXBwZXIgZGlhZyA9IDc3NjYpIExlbmd0aDogMTMNClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig4 MTA5LCAzMTQsIDgxMjYsIDMzMSwgbG93ZXIgZGlhZyA9IDc3OTUsIHVwcGVyIGRpYWcgPSA3Nzk1 KSBMZW5ndGg6IDE3DQpTZWVkPFNpbXBsZSwgVENvbmZpZz4oODE2OSwgMzYzLCA4MTgxLCAzNzUs IGxvd2VyIGRpYWcgPSA3ODA2LCB1cHBlciBkaWFnID0gNzgwNikgTGVuZ3RoOiAxMg0KU2VlZDxT aW1wbGUsIFRDb25maWc+KDgyMDgsIDM4MSwgODIyMiwgMzk1LCBsb3dlciBkaWFnID0gNzgyNywg dXBwZXIgZGlhZyA9IDc4MjcpIExlbmd0aDogMTQNClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig4MjIy LCA0MDIsIDgyMzQsIDQxNCwgbG93ZXIgZGlhZyA9IDc4MjAsIHVwcGVyIGRpYWcgPSA3ODIwKSBM ZW5ndGg6IDEyDQpTZWVkPFNpbXBsZSwgVENvbmZpZz4oODI4NywgNDQ2LCA4MzA0LCA0NjMsIGxv d2VyIGRpYWcgPSA3ODQxLCB1cHBlciBkaWFnID0gNzg0MSkgTGVuZ3RoOiAxNw0KU2VlZDxTaW1w bGUsIFRDb25maWc+KDgzMDQsIDQ2NiwgODMxNiwgNDc4LCBsb3dlciBkaWFnID0gNzgzOCwgdXBw ZXIgZGlhZyA9IDc4MzgpIExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig4MzI2LCA3 NDgsIDgzMzgsIDc2MCwgbG93ZXIgZGlhZyA9IDc1NzgsIHVwcGVyIGRpYWcgPSA3NTc4KSBMZW5n dGg6IDEyDQpTZWVkPFNpbXBsZSwgVENvbmZpZz4oODM1NCwgNzYxLCA4MzY2LCA3NzMsIGxvd2Vy IGRpYWcgPSA3NTkzLCB1cHBlciBkaWFnID0gNzU5MykgTGVuZ3RoOiAxMg0KU2VlZDxTaW1wbGUs IFRDb25maWc+KDg0MjYsIDgwMSwgODQzOCwgODEzLCBsb3dlciBkaWFnID0gNzYyNSwgdXBwZXIg ZGlhZyA9IDc2MjUpIExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig4NzAyLCAyMjkx LCA4NzIxLCAyMzEwLCBsb3dlciBkaWFnID0gNjQxMSwgdXBwZXIgZGlhZyA9IDY0MTEpIExlbmd0 aDogMTkNClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig4NzY5LCAyMzE0LCA4NzgxLCAyMzI2LCBsb3dl ciBkaWFnID0gNjQ1NSwgdXBwZXIgZGlhZyA9IDY0NTUpIExlbmd0aDogMTINClNlZWQ8U2ltcGxl LCBUQ29uZmlnPig4Nzk0LCAyMzg3LCA4ODA2LCAyMzk5LCBsb3dlciBkaWFnID0gNjQwNywgdXBw ZXIgZGlhZyA9IDY0MDcpIExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig4ODM1LCAy NDAwLCA4ODQ3LCAyNDEyLCBsb3dlciBkaWFnID0gNjQzNSwgdXBwZXIgZGlhZyA9IDY0MzUpIExl bmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5MTYyLCAyNjUwLCA5MTc0LCAyNjYyLCBs b3dlciBkaWFnID0gNjUxMiwgdXBwZXIgZGlhZyA9IDY1MTIpIExlbmd0aDogMTINClNlZWQ8U2lt cGxlLCBUQ29uZmlnPig5MTg0LCAyNjc2LCA5MTk2LCAyNjg4LCBsb3dlciBkaWFnID0gNjUwOCwg dXBwZXIgZGlhZyA9IDY1MDgpIExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5MTk2 LCAyNzM2LCA5MjA4LCAyNzQ4LCBsb3dlciBkaWFnID0gNjQ2MCwgdXBwZXIgZGlhZyA9IDY0NjAp IExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5MjIzLCAyODE4LCA5MjM1LCAyODMw LCBsb3dlciBkaWFnID0gNjQwNSwgdXBwZXIgZGlhZyA9IDY0MDUpIExlbmd0aDogMTINClNlZWQ8 U2ltcGxlLCBUQ29uZmlnPig5MjUxLCAyODQ0LCA5MjY3LCAyODYwLCBsb3dlciBkaWFnID0gNjQw NywgdXBwZXIgZGlhZyA9IDY0MDcpIExlbmd0aDogMTYNClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5 Mjk0LCAyODcxLCA5MzA4LCAyODg1LCBsb3dlciBkaWFnID0gNjQyMywgdXBwZXIgZGlhZyA9IDY0 MjMpIExlbmd0aDogMTQNClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5MzE0LCAyODkxLCA5MzI3LCAy OTA0LCBsb3dlciBkaWFnID0gNjQyMywgdXBwZXIgZGlhZyA9IDY0MjMpIExlbmd0aDogMTMNClNl ZWQ8U2ltcGxlLCBUQ29uZmlnPig5NDMyLCAyOTc2LCA5NDQ3LCAyOTkxLCBsb3dlciBkaWFnID0g NjQ1NiwgdXBwZXIgZGlhZyA9IDY0NTYpIExlbmd0aDogMTUNClNlZWQ8U2ltcGxlLCBUQ29uZmln Pig5NTE1LCAyOTkyLCA5NTI3LCAzMDA0LCBsb3dlciBkaWFnID0gNjUyMywgdXBwZXIgZGlhZyA9 IDY1MjMpIExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5Njc1LCAzMzg1LCA5NzAx LCAzNDExLCBsb3dlciBkaWFnID0gNjI5MCwgdXBwZXIgZGlhZyA9IDYyOTApIExlbmd0aDogMjYN ClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5NzI0LCAzNDE0LCA5NzM2LCAzNDI2LCBsb3dlciBkaWFn ID0gNjMxMCwgdXBwZXIgZGlhZyA9IDYzMTApIExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29u ZmlnPig5NzkxLCAzNTcxLCA5ODA0LCAzNTg0LCBsb3dlciBkaWFnID0gNjIyMCwgdXBwZXIgZGlh ZyA9IDYyMjApIExlbmd0aDogMTMNClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5ODA1LCAzNTk2LCA5 ODE3LCAzNjA4LCBsb3dlciBkaWFnID0gNjIwOSwgdXBwZXIgZGlhZyA9IDYyMDkpIExlbmd0aDog MTINClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5ODE4LCA0OTE1LCA5ODMwLCA0OTI3LCBsb3dlciBk aWFnID0gNDkwMywgdXBwZXIgZGlhZyA9IDQ5MDMpIExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBU Q29uZmlnPig5ODQyLCA0OTM5LCA5ODU0LCA0OTUxLCBsb3dlciBkaWFnID0gNDkwMywgdXBwZXIg ZGlhZyA9IDQ5MDMpIExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5ODczLCA1MDQ1 LCA5ODg1LCA1MDU3LCBsb3dlciBkaWFnID0gNDgyOCwgdXBwZXIgZGlhZyA9IDQ4MjgpIExlbmd0 aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5ODg2LCA1MDc3LCA5ODk4LCA1MDg5LCBsb3dl ciBkaWFnID0gNDgwOSwgdXBwZXIgZGlhZyA9IDQ4MDkpIExlbmd0aDogMTINClNlZWQ8U2ltcGxl LCBUQ29uZmlnPig5OTQzLCA1MjQyLCA5OTU1LCA1MjU0LCBsb3dlciBkaWFnID0gNDcwMSwgdXBw ZXIgZGlhZyA9IDQ3MDEpIExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5OTU3LCA1 Mzg1LCA5OTY5LCA1Mzk3LCBsb3dlciBkaWFnID0gNDU3MiwgdXBwZXIgZGlhZyA9IDQ1NzIpIExl bmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmlnPig5OTk0LCA1NDIzLCAxMDAwNiwgNTQzNSwg bG93ZXIgZGlhZyA9IDQ1NzEsIHVwcGVyIGRpYWcgPSA0NTcxKSBMZW5ndGg6IDEyDQpTZWVkPFNp bXBsZSwgVENvbmZpZz4oMTAwNjIsIDcwOTYsIDEwMDc0LCA3MTA4LCBsb3dlciBkaWFnID0gMjk2 NiwgdXBwZXIgZGlhZyA9IDI5NjYpIExlbmd0aDogMTINClNlZWQ8U2ltcGxlLCBUQ29uZmlnPigx MDEwMiwgNzEwOSwgMTAxMTQsIDcxMjEsIGxvd2VyIGRpYWcgPSAyOTkzLCB1cHBlciBkaWFnID0g Mjk5MykgTGVuZ3RoOiAxMg0KU2VlZDxTaW1wbGUsIFRDb25maWc+KDEwMTU2LCA3MTMxLCAxMDE3 OCwgNzE1MywgbG93ZXIgZGlhZyA9IDMwMjUsIHVwcGVyIGRpYWcgPSAzMDI1KSBMZW5ndGg6IDIy DQpTZWVkPFNpbXBsZSwgVENvbmZpZz4oMTAyNzcsIDczNTQsIDEwMjk5LCA3Mzc2LCBsb3dlciBk aWFnID0gMjkyMywgdXBwZXIgZGlhZyA9IDI5MjMpIExlbmd0aDogMjINClNlZWQ8U2ltcGxlLCBU Q29uZmlnPigxMDI5OSwgNzM3OCwgMTAzMTMsIDczOTIsIGxvd2VyIGRpYWcgPSAyOTIxLCB1cHBl ciBkaWFnID0gMjkyMSkgTGVuZ3RoOiAxNA0KU2VlZDxTaW1wbGUsIFRDb25maWc+KDEwMzcxLCA3 NDAwLCAxMDM4NSwgNzQxNCwgbG93ZXIgZGlhZyA9IDI5NzEsIHVwcGVyIGRpYWcgPSAyOTcxKSBM ZW5ndGg6IDE0DQoiIiINCg0KLUJyZXR0DQoNCg0KT24gU3VuLCBOb3YgMTYsIDIwMTQgYXQgMjo1 NyBBTSwgUmFobiwgUmVuw6kgPHJlbmUubWFlcmtlckBmdS1iZXJsaW4uZGU8bWFpbHRvOnJlbmUu bWFlcmtlckBmdS1iZXJsaW4uZGU+PiB3cm90ZToNCkhleSBCcmV0dCwNCg0KSXQgY291bGQgaGF2 ZSBtdWx0aXBsZSByZWFzb25zLg0KSW4gZ2VuZXJhbCwgaXQgbWVhbnMgdGhhdCB0aGVyZSB3YXMg YSB0cmFjZWJhY2sgcGF0aCBmcm9tIGEgc2VlZCBvciBhIGdhcCwgdGhhdCBjb3VsZG7igJl0IGJl IGNvbm5lY3RlZCB3aXRoIG9uZSBvZiB0aGUgc28gZmFyIGdlbmVyYXRlZCB0cmFjZWJhY2sgcGF0 aHMuIE5vdGUsIHRoYXQgdGhlIHRyYWNlYmFjayBpcyBjb21wdXRlZCBpbmNyZW1lbnRhbGx5IHRv IHJlZHVjZSB0aGUgc3BhY2UgcmVxdWlyZW1lbnRzLg0KSWYgeW91IGNvdWxkIHNlbmQgbWUgYSBz aW1wbGUgdGV4dCBmaWxlIGNvbnRhaW5pbmcgdGhlIHNlZWRzIG9mIHRoZSBzZWVkIGNoYWluIChv bmUgc2VlZCBwZXIgcm93IHVzaW5nIHRoZSA8PC1vcGVyYXRvciksIHRoYXQgaXMgaW5wdXQgdG8g dGhlIGJhbmRlZCBjaGFpbiBhbGlnbm1lbnQgZnVuY3Rpb24sIEkgY291bGQgaGF2ZSBhIGxvb2sg YXQgaXQgYW5kIGZpeCB0aGUgcHJvYmxlbS4NCkFsc28sIEkgb3BlbmVkIGFuIGlzc3VlIGluIGdp dGh1YjogaHR0cHM6Ly9naXRodWIuY29tL3NlcWFuL3NlcWFuL2lzc3Vlcy82OTksIGZvciB0cmFj a2luZyB0aGUgaXNzdWUuDQoNCg0KS2luZCByZWdhcmRzLA0KDQpSZW7DqSBSYWhuDQoNCk9uIDE2 IE5vdiAyMDE0LCBhdCAwNDoxNywgQnJldHQgQm93bWFuIDxibmJvd21hbkBnbWFpbC5jb208bWFp bHRvOmJuYm93bWFuQGdtYWlsLmNvbT4+IHdyb3RlOg0KDQpJJ20gdHJ5aW5nIHRvIGJ1aWxkIGEg dG9vbCB3aXRoIFNlcUFuIHRvIHF1aWNrbHkgYWxpZ24gc29tZSBQYWNCaW8gZGF0YSwgdXNpbmcg ImJhbmRlZENoYWluQWxpZ25tZW50IiwgYnV0IEknbSBjb25zaXN0ZW50bHkgZ2V0dGluZyBhIGNy YXNoIGR1cmluZyB0aGUgdHJhY2UtYmFjayBzdGVwLiAgVGhlIGdlbmVyYXRpb24gb2YgdGhlIFNl ZWRzIChTdWZmaXhBcnJheSkgYW5kIHRoZSBmaW5kaW5nIG9mIHRoZSBiYXNlIFNlZWRDaGFpbiB3 b3JrcyBmaW5lLCBidXQgdGhlIGZpbmFsIHN0ZXAgb2YgdHVybmluZyB0aGF0IGludG8gYW4gYWxp Z25tZW50IGRvZXNuJ3QgYXBwZWFyIHRvIHdvcmsuDQoNClN1Z2dlc3Rpb25zPw0KDQpFcnJvciBM b2c6DQoiIiINCmJib3dtYW5AbG9jYWxob3N0On4vZ2l0L1NSU0xJJCAuL3NyYy9DKysvc3JzbGkg dGVzdC9kYXRhL3F1ZXJ5L2Vjb2xpXzVwX3NhbXBsZS5mYXN0cSB0ZXN0L2RhdGEvcmVmZXJlbmNl L2Vjb2xpSzEyXzVwX2Fzc2VtYmx5LmZhc3RhDQpRdWVyeSAwDQpGaW5pc2hlZCBmaW5kaW5nIHNl ZWRzDQpGaW5pc2hpbmcgY2hhaW5pbmcgc2VlZHMNClN0YXJ0aW5nIGFsaWdubWVudCBvZiBzZXF1 ZW5jZXMNCi91c3IvaW5jbHVkZS9zZXFhbi9zZWVkcy9iYW5kZWRfY2hhaW5fYWxpZ25tZW50X3Ry YWNlYmFjay5oOjE5NSBBc3NlcnRpb24gZmFpbGVkIDogaXNHbHVlZCA9PSB0cnVlIHdhczogMCAh PSAxIChGYXRhbCBlcnJvciB3aGlsZSB0cnlpbmcgdG8gY29ubmVjdCB0cmFjZSBiYWNrczogTm8g Z2x1ZSBwb2ludCBhdmFpbGFibGUhKQ0KQWJvcnRlZCAoY29yZSBkdW1wZWQpDQoiIiINCltodHRw czovL3NzbC5nc3RhdGljLmNvbS91aS92MS9pY29ucy9tYWlsL2ltYWdlcy9jbGVhcmRvdC5naWZd DQoNCi1CcmV0dA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18NCnNlcWFuLWRldiBtYWlsaW5nIGxpc3QNCnNlcWFuLWRldkBsaXN0cy5mdS1iZXJsaW4uZGU8 bWFpbHRvOnNlcWFuLWRldkBsaXN0cy5mdS1iZXJsaW4uZGU+DQpodHRwczovL2xpc3RzLmZ1LWJl cmxpbi5kZS9saXN0aW5mby9zZXFhbi1kZXYNCg0KLS0tDQoNClJlbsOpIFJhaG4NClBoLkQuIFN0 dWRlbnQNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpUZWw6ICAoKzQ5KSAzMCA4 MzggNzUyNzc8dGVsOiUyOCUyQjQ5JTI5JTIwMzAlMjA4MzglMjA3NTI3Nz4NCk1haWw6IHJlbmUu cmFobkBmdS1iZXJsaW4uZGU8bWFpbHRvOnJlbmUucmFobkBmdS1iZXJsaW4uZGU+DQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UN CkFsZ29yaXRobWljIEJpb2luZm9ybWF0aWNzIChBQkkpDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KRnJlaWUgVW5pdmVyc2l0w6R0IEJlcmxpbg0KVGFrdXN0cmHDn2UgOQ0KMTQx OTUgQmVybGluDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoNCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpzZXFhbi1kZXYgbWFpbGlu ZyBsaXN0DQpzZXFhbi1kZXZAbGlzdHMuZnUtYmVybGluLmRlPG1haWx0bzpzZXFhbi1kZXZAbGlz dHMuZnUtYmVybGluLmRlPg0KaHR0cHM6Ly9saXN0cy5mdS1iZXJsaW4uZGUvbGlzdGluZm8vc2Vx YW4tZGV2DQoNCg0KDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fDQpzZXFhbi1kZXYgbWFpbGluZyBsaXN0DQpzZXFhbi1kZXZAbGlzdHMuZnUtYmVybGlu LmRlPG1haWx0bzpzZXFhbi1kZXZAbGlzdHMuZnUtYmVybGluLmRlPg0KaHR0cHM6Ly9saXN0cy5m dS1iZXJsaW4uZGUvbGlzdGluZm8vc2VxYW4tZGV2DQoNCi0tLQ0KDQpSZW7DqSBSYWhuDQpQaC5E LiBTdHVkZW50DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KVGVsOiAgKCs0OSkg MzAgODM4IDc1Mjc3DQpNYWlsOiByZW5lLnJhaG5AZnUtYmVybGluLmRlPG1haWx0bzpyZW5lLnJh aG5AZnUtYmVybGluLmRlPg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkluc3Rp dHV0ZSBvZiBDb21wdXRlciBTY2llbmNlDQpBbGdvcml0aG1pYyBCaW9pbmZvcm1hdGljcyAoQUJJ KQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkZyZWllIFVuaXZlcnNpdMOkdCBC ZXJsaW4NClRha3VzdHJhw59lIDkNCjE0MTk1IEJlcmxpbg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18NCnNlcWFuLWRldiBtYWlsaW5nIGxpc3QNCnNlcWFuLWRldkBsaXN0cy5mdS1iZXJsaW4u ZGU8bWFpbHRvOnNlcWFuLWRldkBsaXN0cy5mdS1iZXJsaW4uZGU+DQpodHRwczovL2xpc3RzLmZ1 LWJlcmxpbi5kZS9saXN0aW5mby9zZXFhbi1kZXYNCg0KLS0tDQoNClJlbsOpIFJhaG4NClBoLkQu IFN0dWRlbnQNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpUZWw6ICAoKzQ5KSAz MCA4MzggNzUyNzcNCk1haWw6IHJlbmUucmFobkBmdS1iZXJsaW4uZGU8bWFpbHRvOnJlbmUucmFo bkBmdS1iZXJsaW4uZGU+DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KSW5zdGl0 dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UNCkFsZ29yaXRobWljIEJpb2luZm9ybWF0aWNzIChBQkkp DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KRnJlaWUgVW5pdmVyc2l0w6R0IEJl cmxpbg0KVGFrdXN0cmHDn2UgOQ0KMTQxOTUgQmVybGluDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KDQo= --_000_8DEDCE0A7B1A4D67AFFEDB8F1186F7B7zedatfuberlinde_ Content-Type: text/html; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IHN0eWxlPSJ3b3JkLXdy YXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJy ZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPg0KU29ycnksJm5ic3A7DQo8ZGl2IGNs YXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4NCjxkaXY+DQo8Ymxv Y2txdW90ZSB0eXBlPSJjaXRlIiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+T24gMTggTm92IDIw MTQsIGF0IDE2OjE5LCBSYWhuLCBSZW7DqSAmbHQ7PGEgaHJlZj0ibWFpbHRvOnJlbmUubWFlcmtl ckBmdS1iZXJsaW4uZGUiIGNsYXNzPSIiPnJlbmUubWFlcmtlckBmdS1iZXJsaW4uZGU8L2E+Jmd0 OyB3cm90ZTo8L2Rpdj4NCjxiciBjbGFzcz0iQXBwbGUtaW50ZXJjaGFuZ2UtbmV3bGluZSI+DQo8 ZGl2IGNsYXNzPSIiPg0KPGRpdiBzdHlsZT0id29yZC13cmFwOiBicmVhay13b3JkOyAtd2Via2l0 LW5ic3AtbW9kZTogc3BhY2U7IC13ZWJraXQtbGluZS1icmVhazogYWZ0ZXItd2hpdGUtc3BhY2U7 IiBjbGFzcz0iIj4NCkhleSBCcmV0dCwmbmJzcDsNCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIi Pg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPmJ5IGp1c3QgbG9va2luZyBhdCB0aGUgc2VlZCBjaGFp biBJIG1pZ2h0IHRoaW5rIHRoYXQgdGhlIHByb2JsZW0gaXMgdGhlIGJhZCBjaGFpbiBpbiB0aGUg Zmlyc3QgcGxhY2UuPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlRoZSBmaXJzdCBzZWVkIGJlZ2lucyBh dCBwb3NpdGlvbiA3Njg4IGZvciB0aGUgZmlyc3Qgc2VxdWVuY2UsIHdoaWxlIHRoZSBzZWVkIGZv ciB0aGUgc2Vjb25kIHNlcXVlbmNlIHN0YXJ0cyBhdCBwb3NpdGlvbiA1Ny4mbmJzcDs8L2Rpdj4N CjxkaXYgY2xhc3M9IiI+VGhlcmUgSSBjYW4gaGF2ZSBhdCBtb3N0IDU3IG1hdGNoZXMgYW5kIGhh dmUgNzYzMSBnYXBzLiBHaXZlbiBhIHNjb3JlIG9mIC03IGZvciB0aGUgZ2FwcyBhbmQgNCBmb3Ig dGhlIG1hdGNoZXMgSSBoYXZlIGEgc2NvcmUgb2YgYXQgbGVhc3QgLTUzMTg5IHdoaWNoIGluIGZh Y3QgZXhjZWVkcyB0aGUgYm91bmQgb2Y8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVv dGU+DQo8YmxvY2txdW90ZSB0eXBlPSJjaXRlIiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+DQo8 ZGl2IHN0eWxlPSJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFj ZTsgLXdlYmtpdC1saW5lLWJyZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPg0KPGRp diBjbGFzcz0iIj51bnNpZ25lZCBzaG9ydHMgLTMyLjc2OCAtIDMyLjc2Ny48L2Rpdj4NCjwvZGl2 Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8YnIgY2xhc3M9IiI+DQpJIG1lYW50IHNpZ25lZCBz aG9ydHMgb2YgY291cnNlIDopLjwvZGl2Pg0KPGRpdj48YnIgY2xhc3M9IiI+DQo8YmxvY2txdW90 ZSB0eXBlPSJjaXRlIiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+DQo8ZGl2IHN0eWxlPSJ3b3Jk LXdyYXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5l LWJyZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj5UaGlz IHdvdWxkIGFsc28gZXhwbGFpbiB3aHkgaXQgd29ya3Mgd2l0aCBhIGdhcCBwZW5hbHR5IG9mIC0y IH4gLTE1MzAwLjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5Vc2luZyB1bnNpZ25lZCBzaG9ydCBjYW5u b3QgZ2l2ZSBjb3JyZWN0IHJlc3VsdHMsIGFzIGl0IGlzIG9ubHkgZGVmaW5lZCBvbiB0aGUgdmFs dWVzIGZyb20gMCB0byA2NTUzNS4gSW4gdGhpcyBjYXNlIC03IHdvdWxkIGFsc28gYmUgaW50ZXJw cmV0ZWQgYXMmbmJzcDs8YiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvOyBmb250LXNpemU6IDEx cHg7IiBjbGFzcz0iIj42NTUyOS48L2I+PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlNvIHNvbWV3aGVy ZSBpbiB0aGUgZmlyc3QgbWF0cml4IGlzIGFuIG92ZXJmbG93LCB3aGljaCBtaWdodCBsZWFkIHRv IHRoZSBwcm9ibGVtIHdpdGggdGhlIHRyYWNlYmFjay4gSSB3aWxsIGludmVzdGlnYXRlIHRoaXMg bW9yZSB0aG9yb3VnaGx5IGluIHRoZSBuZXh0IGRheXMuJm5ic3A7PC9kaXY+DQo8ZGl2IGNsYXNz PSIiPkZvciB0aGUgbW9tZW50IEkgc3VnZ2VzdCAyIHRoaW5ncy4mbmJzcDs8L2Rpdj4NCjxkaXYg Y2xhc3M9IiI+QSkgVHJ5IHRvIHVzZSBzaWduZWQgaW50ZWdlciB0eXBlcyBhbmQgc2VlIGlmIGl0 IHJ1bnMgdGhyb3VnaC4gKEp1c3QgdG8gY2hlY2sgaWYgaXQgaXMgcmVhbGx5IHJlbGF0ZWQgdG8g dGhlIHZhbHVlIG92ZXJmbG93Lik8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+QikgVXNlIGNoYW9zIGNo YWluaW5nIHdoZW4gYWRkaW5nIHNlZWRzIHRvIHRoZSBzZWVkIHNldC4gRnJvbSB0aGUgZGF0YSBz ZXQgSSB3b3VsZCBndWVzcyB5b3UgdXNlZCB0aGUgc2ltcGxlIG1lcmdlIHN0cmF0ZWd5LCBidXQg Z2l2ZW4gdGhhdCB0aGUgc2VxdWVuY2VzIG1pZ2h0IG5vdCBiZSDigJx2ZXJ54oCdIHNpbWlsYXIg dGhlIGNoYW9zIGNoYWluaW5nIG1pZ2h0IGNvbXB1dGUgYmV0dGVyIHJlc3VsdHMgYW5kIHRoZW4g dGhlDQogYmFuZGVkIGNoYWluIGFsaWdubWVudCBtaWdodCB3b3JrIGFzIHdlbGwuPC9kaXY+DQo8 ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5EaWQgeW91 IGNoYW5nZWQgdGhlIGRlZmF1bHQgYmFuZCBzZXR0aW5ncyBmb3IgdGhlIGJhbmQgd2lkdGggb2Yg dGhlIGJhbmRlZENoYWluQWxpZ25tZW50ICh0aGlzIHBhcmFtZXRlciBrKT88L2Rpdj4NCjxkaXYg Y2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPkNoZWVycyw8L2Rp dj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlJl bsOpPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+DQo8 YmxvY2txdW90ZSB0eXBlPSJjaXRlIiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+T24gMTggTm92 IDIwMTQsIGF0IDAyOjE3LCBCcmV0dCBCb3dtYW4gJmx0OzxhIGhyZWY9Im1haWx0bzpibmJvd21h bkBnbWFpbC5jb20iIGNsYXNzPSIiPmJuYm93bWFuQGdtYWlsLmNvbTwvYT4mZ3Q7IHdyb3RlOjwv ZGl2Pg0KPGJyIGNsYXNzPSJBcHBsZS1pbnRlcmNoYW5nZS1uZXdsaW5lIj4NCjxkaXYgY2xhc3M9 IiI+DQo8ZGl2IGRpcj0ibHRyIiBjbGFzcz0iIj4NCjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OmFy aWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEzcHgiIGNsYXNzPSIiPk9wcHMsIEkganVzdCBub3Rp Y2VkIGEgbWlzdGFrZSBpbiBteSBwcmV2aW91cyBlLW1haWwuJm5ic3A7IEkgd3JvdGU6PC9kaXY+ DQo8ZGl2IHN0eWxlPSJmb250LWZhbWlseTphcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxM3B4 IiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5 OmFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEzcHgiIGNsYXNzPSIiPiZxdW90OyZxdW90OyZx dW90OzwvZGl2Pg0KPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZjtmb250 LXNpemU6MTNweCIgY2xhc3M9IiI+VGhlIHNjb3Jpbmcgc2NoZW1lIGhhZCB0byBiZSBjaGFuZ2Vk IGZyb206PC9kaXY+DQo8ZGl2IHN0eWxlPSJmb250LWZhbWlseTphcmlhbCxzYW5zLXNlcmlmO2Zv bnQtc2l6ZToxM3B4IiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+U2NvcmUmbHQ7c2hvcnQsIFNp bXBsZSZndDsgc2NvcmluZ1NjaGVtZSg0LCAtMTMsIC03KTsgJm5ic3A7IC8vIERldGVybWluZWQg ZW1waXJpY2FsbHkgdG8gd29yayB3ZWxsIG9uIFBhY0JpbyBkYXRhIHdpdGggbXkgaG9tZS1icmV3 ZWQgYWxpZ25lcjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj50bzo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+ U2NvcmUmbHQ7c2hvcnQsIFNpbXBsZSZndDsgc2NvcmluZ1NjaGVtZSgyLCAtMSwgLTIpOyAmbmJz cDsgJm5ic3A7IC8vIFNjb3Jpbmcgc2NoZW1lIHJlY29tbWVuZGVkL3Rlc3RlZCBieSZuYnNwOzxz cGFuIGNsYXNzPSIiPlNlcUFuPC9zcGFuPiZuYnNwO2RvY3M8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+ JnF1b3Q7JnF1b3Q7JnF1b3Q7PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwv ZGl2Pg0KPGRpdiBjbGFzcz0iIj5idXQgd2hhdCBJIG1lYW50IHdhcyAoY2hhbmdlcyBpbiBDQVBJ VEFMKTo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+JnF1b3Q7JnF1b3Q7JnF1b3Q7PC9kaXY+DQo8ZGl2 IGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj5UaGUgc2NvcmluZyBzY2hlbWUgaGFkIHRvIGJlIGNo YW5nZWQgZnJvbTo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPlNjb3JlJmx0 O1VOU0lHTkVEIHNob3J0LCBTaW1wbGUmZ3Q7IHNjb3JpbmdTY2hlbWUoNCwgLTEzLCAtNyk7ICZu YnNwOyAvLyBEZXRlcm1pbmVkIGVtcGlyaWNhbGx5IHRvIHdvcmsgd2VsbCBvbiBQYWNCaW8gZGF0 YSB3aXRoIG15IGhvbWUtYnJld2VkIGFsaWduZXI8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+dG86PC9k aXY+DQo8ZGl2IGNsYXNzPSIiPlNjb3JlJmx0O1VOU0lHTkVEIHNob3J0LCBTaW1wbGUmZ3Q7IHNj b3JpbmdTY2hlbWUoMiwgLTEsIC0yKTsgJm5ic3A7ICZuYnNwOyAvLyBTY29yaW5nIHNjaGVtZSBy ZWNvbW1lbmRlZC90ZXN0ZWQgYnkmbmJzcDs8c3BhbiBjbGFzcz0iIj5TZXFBbjwvc3Bhbj4mbmJz cDtkb2NzPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4mcXVvdDsmcXVvdDsm cXVvdDs8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNs YXNzPSIiPkkgd2FzIG5vdCBzdXJwcmlzZWQgd2hlbiByZWd1bGFyIHNob3J0cyB3ZXJlIG5vdCBs YXJnZSBlbm91Z2ggZ2l2ZW4gdGhhdCB3ZSdyZSBkZWFsaW5nIHdpdGggfjEwa2IgYWxpZ25tZW50 cywgYnV0IEkgd2FzIHN1cnByaXNlZCB0aGF0IHVuc2lnbmVkIHNob3J0cyBkaWQgbm90IHdvcmsu Jm5ic3A7IFRoZXkgYXJlIHByZWZlcmFibGUgZ2l2ZW4gdGhlaXIgc21hbGxlciBzaXplLCBhbmQg dXNlZCBieSBzb21lIG9mIG15IGhvbWUtYnJld2VkDQogYWxpZ25lcnMuJm5ic3A7PC9kaXY+DQo8 ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4tQnJldHQ8 L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJnbWFpbF9leHRyYSI+PGJyIGNsYXNz PSIiPg0KPGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPk9uIFN1biwgTm92IDE2LCAyMDE0IGF0IDEx OjUyIFBNLCBCcmV0dCBCb3dtYW4gPHNwYW4gZGlyPSJsdHIiIGNsYXNzPSIiPg0KJmx0OzxhIGhy ZWY9Im1haWx0bzpibmJvd21hbkBnbWFpbC5jb20iIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iIj5i bmJvd21hbkBnbWFpbC5jb208L2E+Jmd0Ozwvc3Bhbj4gd3JvdGU6PGJyIGNsYXNzPSIiPg0KPGJs b2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7Ym9y ZGVyLWxlZnQ6MXB4ICNjY2Mgc29saWQ7cGFkZGluZy1sZWZ0OjFleCI+DQo8ZGl2IGRpcj0ibHRy IiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+SSd2ZSBnb3R0ZW4gYSBydWRpbWVudGFyeSBhbGln bm1lbnQgb3V0LCBidXQgSSBoYWQgdG8gdHdlYWsgYSBmZXcgdGhpbmdzOjwvZGl2Pg0KPGRpdiBj bGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+JnF1b3Q7JnF1b3Q7 JnF1b3Q7PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7 ICZuYnNwOyAwICZuYnNwOyAmbmJzcDsgLiAmbmJzcDsgJm5ic3A7OiAmbmJzcDsgJm5ic3A7LiAm bmJzcDsgJm5ic3A7OiAmbmJzcDsgJm5ic3A7LiAmbmJzcDsgJm5ic3A7OiAmbmJzcDsgJm5ic3A7 LiAmbmJzcDsgJm5ic3A7OiAmbmJzcDsgJm5ic3A7LiAmbmJzcDsgJm5ic3A7OiZuYnNwOzwvZGl2 Pg0KPGRpdiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgQUFBR0FHLS1BR0FH QVQtQVRHQ0NBR1RBQVRBLUNUVEdBQUFHQVRBVFRHQ0NHQUdDVEc8L2Rpdj4NCjxkaXYgY2xhc3M9 IiI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt8IHwgJm5ic3A7IHwg Jm5ic3A7fHwgfHx8fHx8fHx8fHx8IHx8fHx8fHx8fHx8fHx8fHx8fHx8fHw8L2Rpdj4NCjxkaXYg Y2xhc3M9IiI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IC0tLUdUR0NDQ0dUQ0FUQUFUR0ND QUdUQUFUQUdDVFRHQUFBR0FUQVRUR0NDR0FHQ1RHPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxiciBj bGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwOzUwICZu YnNwOyAmbmJzcDsgLiAmbmJzcDsgJm5ic3A7OiAmbmJzcDsgJm5ic3A7LiAmbmJzcDsgJm5ic3A7 OiAmbmJzcDsgJm5ic3A7LiAmbmJzcDsgJm5ic3A7OiAmbmJzcDsgJm5ic3A7LiAmbmJzcDsgJm5i c3A7OiAmbmJzcDsgJm5ic3A7LiAmbmJzcDsgJm5ic3A7OiZuYnNwOzwvZGl2Pg0KPGRpdiBjbGFz cz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgR1RHQ0NHVFRUR0NDQ0FUQ0dUVEFUR0dU R0NBQUFBQS1UVFRDR1RDQUNHQ1RUQUFDQUM8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+Jm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7IHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHwgfHx8fHx8 fHx8fHx8fHx8fHx8PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyBHVEdDQ0dUVFRHQ0NDQVRDR1RUQVRHR1RHQ0FBQUFBVFRUVENHVENBQ0dDVFRBQUNBQzwv ZGl2Pg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+ Jm5ic3A7ICZuYnNwOyAxMDAgJm5ic3A7ICZuYnNwOyAuICZuYnNwOyAmbmJzcDs6ICZuYnNwOyAm bmJzcDsuICZuYnNwOyAmbmJzcDs6ICZuYnNwOyAmbmJzcDsuICZuYnNwOyAmbmJzcDs6ICZuYnNw OyAmbmJzcDsuICZuYnNwOyAmbmJzcDs6ICZuYnNwOyAmbmJzcDsuICZuYnNwOyAmbmJzcDs6Jm5i c3A7PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBDQVRU VFRHQ0FUR0FUR0FUR0FHQ1RHR0FBQ0NDR0NHQy1BQ0dHQ1RHQVRUQUNUR0FDQzwvZGl2Pg0KPGRp diBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgfHx8fHx8fHx8fHx8fHx8fHx8 fHx8fHx8fHx8fHx8fHwgfHx8fHx8fHx8fHx8fHx8fHw8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+Jm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IENBVFRUVEdDQVRHQVRHQVRHQUdDVEdHQUFDQ0NHQ0dD QUFDR0dDVEdBVFRBQ1RHQUNDPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwv ZGl2Pg0KPGRpdiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7IDE1MCAmbmJzcDsgJm5ic3A7IC4gJm5i c3A7ICZuYnNwOzogJm5ic3A7ICZuYnNwOy4gJm5ic3A7ICZuYnNwOzogJm5ic3A7ICZuYnNwOy4g Jm5ic3A7ICZuYnNwOzogJm5ic3A7ICZuYnNwOy4gJm5ic3A7ICZuYnNwOzogJm5ic3A7ICZuYnNw Oy4gJm5ic3A7ICZuYnNwOzombmJzcDs8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+Jm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7IFRDVEFDQ0FHQUNDR0dUR1RDR0FUR0NHQ1RHQVRUR1RULUFHR0FUQVRH R0dHQVRUQ1RHPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyB8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fCB8fHx8fHx8fHx8fHx8fHx8fDwvZGl2 Pg0KPGRpdiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgVENUQUNDQUdBQ0NH R1RHVENHQVRHQ0dDVEdBVFRHVFRDQUdHQVRBVEdHR0dBVFRDVEc8L2Rpdj4NCjxkaXYgY2xhc3M9 IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgMjAw ICZuYnNwOyAmbmJzcDsgLiAmbmJzcDsgJm5ic3A7OiAmbmJzcDsgJm5ic3A7LiAmbmJzcDsgJm5i c3A7OiAmbmJzcDsgJm5ic3A7LiAmbmJzcDsgJm5ic3A7OiAmbmJzcDsgJm5ic3A7LiAmbmJzcDsg Jm5ic3A7OiAmbmJzcDsgJm5ic3A7LiAmbmJzcDsgJm5ic3A7OiZuYnNwOzwvZGl2Pg0KPGRpdiBj bGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgR0FBQUNDVFRHQVRBVFRDR0NHQ0dD R0FUVEdBQUNUR0dDQUNHQ0NBR1RBQ0NHQ0FHVEc8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+Jm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHwgfHwgfHx8fHx8fHx8fCB8fHwgfHx8fHx8fHx8fCB8fHx8 fHx8fHx8fCB8fHx8fHx8PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyBHLUFBLUNUVEdBVEFUVEMtQ0dDLUNHQVRUR0FBQ1QtR0NBQ0dDQ0FHVEEtQ0dDQUdU RzwvZGl2Pg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZxdW90OyZxdW90OyZxdW90OzwvZGl2Pg0K PGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+VGhlIHNj b3Jpbmcgc2NoZW1lIGhhZCB0byBiZSBjaGFuZ2VkIGZyb206PC9kaXY+DQo8ZGl2IGNsYXNzPSIi Pg0KPGRpdiBjbGFzcz0iIj5TY29yZSZsdDtzaG9ydCwgU2ltcGxlJmd0OyBzY29yaW5nU2NoZW1l KDQsIC0xMywgLTcpOyAmbmJzcDsgLy8gRGV0ZXJtaW5lZCBlbXBpcmljYWxseSB0byB3b3JrIHdl bGwgb24gUGFjQmlvIGRhdGEgd2l0aCBteSBob21lLWJyZXdlZCBhbGlnbmVyPC9kaXY+DQo8ZGl2 IGNsYXNzPSIiPnRvOjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5TY29yZSZsdDtzaG9ydCwgU2ltcGxl Jmd0OyBzY29yaW5nU2NoZW1lKDIsIC0xLCAtMik7ICZuYnNwOyAmbmJzcDsgLy8gU2NvcmluZyBz Y2hlbWUgcmVjb21tZW5kZWQvdGVzdGVkIGJ5IFNlcUFuIGRvY3M8L2Rpdj4NCjwvZGl2Pg0KPGRp diBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+VGhlIGluaXRp YWwgU2VlZC1zZXQgaGFkIHRvIGJlIHNldCBieSBoYW5kIHdpdGggdGhlIHJlZmVyZW5jZS1hbGln bm1lbnQncyBzdGFydCBwb3NpdGlvbjo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+DQo8ZGl2IGNsYXNz PSIiPlNlZWRTZXQmbHQ7U2ltcGxlJmd0OyBzZWVkczI7PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPmFk ZFNlZWQoc2VlZHMyLCBUU2VlZCggJm5ic3A7MTIsICZuYnNwOyAxMiwgMTAwKSwgc2VxYW46OlNp bmdsZSgpKTs8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+YWRkU2VlZChzZWVkczIsIFRTZWVkKCAxMjAs ICZuYnNwOzEyMCwgMTAwKSwgc2VxYW46OlNpbmdsZSgpKTs8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBj bGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U28gaXQgYXBwZWFy cyB0aGF0IHRoZXJlIGFyZSBhdCBsZWFzdCB0d28gaXNzdWVzIGF0IHBsYXkgaGVyZTo8L2Rpdj4N CjxkaXYgY2xhc3M9IiI+LVRoZSB2YWx1ZS10eXBlIHVzZWQgZm9yIHRoZSBiYW5kZWRDaGFpbkFs aWdubWVudCBpc24ndCBsYXJnZSBlbm91Z2ggdG8gaGFuZGxlIG11bHRpLWtiIGFsaWdubWVudHMg d2l0aCBtb2RlcmF0ZS1zaXplZCBwZW5hbHRpZXM8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+LVRoZSBk ZWZhdWx0IGNoYWluaW5nIGFsZ29yaXRobSBkb2Vzbid0IGhhbmRsZSBsYXJnZSBudW1iZXJzIG9m IHNlZWRzIHdpdGggc21hbGwgaW5kZWwgZ2FwcyB3ZWxsLjwvZGl2Pg0KPHNwYW4gY2xhc3M9IkhP RW5aYiI+PGZvbnQgY29sb3I9IiM4ODg4ODgiIGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj48YnIg Y2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+LUJyZXR0PC9kaXY+DQo8L2ZvbnQ+PC9z cGFuPjwvZGl2Pg0KPGRpdiBjbGFzcz0iSE9FblpiIj4NCjxkaXYgY2xhc3M9Img1Ij4NCjxkaXYg Y2xhc3M9ImdtYWlsX2V4dHJhIj48YnIgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSJnbWFpbF9xdW90 ZSI+T24gU3VuLCBOb3YgMTYsIDIwMTQgYXQgOTozOSBQTSwgQnJldHQgQm93bWFuIDxzcGFuIGRp cj0ibHRyIiBjbGFzcz0iIj4NCiZsdDs8YSBocmVmPSJtYWlsdG86Ym5ib3dtYW5AZ21haWwuY29t IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9IiI+Ym5ib3dtYW5AZ21haWwuY29tPC9hPiZndDs8L3Nw YW4+IHdyb3RlOjxiciBjbGFzcz0iIj4NCjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIg c3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4O2JvcmRlci1sZWZ0OjFweCAjY2NjIHNvbGlkO3BhZGRp bmctbGVmdDoxZXgiPg0KPGRpdiBkaXI9Imx0ciIgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPlRo YW5rcyBSZW5lLDwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCk15 IHF1ZXJ5LCByZWZlcmVuY2UsIGFuZCBjYW5vbmljYWwgYWxpZ25tZW50IGZyb20gQkxBU1IgKHRo ZSBQYWNCaW8tc3BlY2lmaWMgYWxpZ25lcikgYXR0YWNoZWQuDQo8ZGl2IGNsYXNzPSIiPjxiciBj bGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5JIGFsc28gbm90aWNlZCB0aGF0IHRoZSBz ZWVkcyBpdCdzIGNoYWluaW5nIHdpdGggY2hhaW5HbG9iYWxBbGlnbm1lbnQoKSBhcmUgd2F5IG9m ZiB0aGUgZGlhZ29uYWwsIHdoaWNoIG1heSBiZSByZWxhdGVkIC0gZGV0YWlscyBiZWxvdzombmJz cDs8YnIgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRp diBjbGFzcz0iIj4mcXVvdDsmcXVvdDsmcXVvdDs8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+DQo8ZGl2 IGNsYXNzPSIiPlF1ZXJ5ICMxIC0gbTEzMDQwNF8wMTQwMDRfc2lkbmV5X2MxMDA1MDY5MDI1NTAw MDAwMDE4MjMwNzY4MDgyMjEzMzdfczFfcDAvNTc3OS8wXzEwMzk3PC9kaXY+DQo8ZGl2IGNsYXNz PSIiPkZpbmlzaGVkIGZpbmRpbmcgc2VlZHM8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZHM6IDE5 Mzk8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+RmluaXNoaW5nIGNoYWluaW5nIHNlZWRzPC9kaXY+DQo8 ZGl2IGNsYXNzPSIiPkNoYWluOiA0NDwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5TZWVkJmx0O1NpbXBs ZSwgVENvbmZpZyZndDsoNzY4OCwgNTcsIDc3MDYsIDc1LCBsb3dlciBkaWFnID0gNzYzMSwgdXBw ZXIgZGlhZyA9IDc2MzEpIExlbmd0aDogMTg8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtT aW1wbGUsIFRDb25maWcmZ3Q7KDc3MDcsIDk0LCA3NzIyLCAxMDksIGxvd2VyIGRpYWcgPSA3NjEz LCB1cHBlciBkaWFnID0gNzYxMykgTGVuZ3RoOiAxNTwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5TZWVk Jmx0O1NpbXBsZSwgVENvbmZpZyZndDsoNzkzMywgMTExLCA3OTQ2LCAxMjQsIGxvd2VyIGRpYWcg PSA3ODIyLCB1cHBlciBkaWFnID0gNzgyMikgTGVuZ3RoOiAxMzwvZGl2Pg0KPGRpdiBjbGFzcz0i Ij5TZWVkJmx0O1NpbXBsZSwgVENvbmZpZyZndDsoNzk0OSwgMTMwLCA3OTY1LCAxNDYsIGxvd2Vy IGRpYWcgPSA3ODE5LCB1cHBlciBkaWFnID0gNzgxOSkgTGVuZ3RoOiAxNjwvZGl2Pg0KPGRpdiBj bGFzcz0iIj5TZWVkJmx0O1NpbXBsZSwgVENvbmZpZyZndDsoODA2NSwgMjk5LCA4MDc4LCAzMTIs IGxvd2VyIGRpYWcgPSA3NzY2LCB1cHBlciBkaWFnID0gNzc2NikgTGVuZ3RoOiAxMzwvZGl2Pg0K PGRpdiBjbGFzcz0iIj5TZWVkJmx0O1NpbXBsZSwgVENvbmZpZyZndDsoODEwOSwgMzE0LCA4MTI2 LCAzMzEsIGxvd2VyIGRpYWcgPSA3Nzk1LCB1cHBlciBkaWFnID0gNzc5NSkgTGVuZ3RoOiAxNzwv ZGl2Pg0KPGRpdiBjbGFzcz0iIj5TZWVkJmx0O1NpbXBsZSwgVENvbmZpZyZndDsoODE2OSwgMzYz LCA4MTgxLCAzNzUsIGxvd2VyIGRpYWcgPSA3ODA2LCB1cHBlciBkaWFnID0gNzgwNikgTGVuZ3Ro OiAxMjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5TZWVkJmx0O1NpbXBsZSwgVENvbmZpZyZndDsoODIw OCwgMzgxLCA4MjIyLCAzOTUsIGxvd2VyIGRpYWcgPSA3ODI3LCB1cHBlciBkaWFnID0gNzgyNykg TGVuZ3RoOiAxNDwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5TZWVkJmx0O1NpbXBsZSwgVENvbmZpZyZn dDsoODIyMiwgNDAyLCA4MjM0LCA0MTQsIGxvd2VyIGRpYWcgPSA3ODIwLCB1cHBlciBkaWFnID0g NzgyMCkgTGVuZ3RoOiAxMjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5TZWVkJmx0O1NpbXBsZSwgVENv bmZpZyZndDsoODI4NywgNDQ2LCA4MzA0LCA0NjMsIGxvd2VyIGRpYWcgPSA3ODQxLCB1cHBlciBk aWFnID0gNzg0MSkgTGVuZ3RoOiAxNzwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5TZWVkJmx0O1NpbXBs ZSwgVENvbmZpZyZndDsoODMwNCwgNDY2LCA4MzE2LCA0NzgsIGxvd2VyIGRpYWcgPSA3ODM4LCB1 cHBlciBkaWFnID0gNzgzOCkgTGVuZ3RoOiAxMjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5TZWVkJmx0 O1NpbXBsZSwgVENvbmZpZyZndDsoODMyNiwgNzQ4LCA4MzM4LCA3NjAsIGxvd2VyIGRpYWcgPSA3 NTc4LCB1cHBlciBkaWFnID0gNzU3OCkgTGVuZ3RoOiAxMjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5T ZWVkJmx0O1NpbXBsZSwgVENvbmZpZyZndDsoODM1NCwgNzYxLCA4MzY2LCA3NzMsIGxvd2VyIGRp YWcgPSA3NTkzLCB1cHBlciBkaWFnID0gNzU5MykgTGVuZ3RoOiAxMjwvZGl2Pg0KPGRpdiBjbGFz cz0iIj5TZWVkJmx0O1NpbXBsZSwgVENvbmZpZyZndDsoODQyNiwgODAxLCA4NDM4LCA4MTMsIGxv d2VyIGRpYWcgPSA3NjI1LCB1cHBlciBkaWFnID0gNzYyNSkgTGVuZ3RoOiAxMjwvZGl2Pg0KPGRp diBjbGFzcz0iIj5TZWVkJmx0O1NpbXBsZSwgVENvbmZpZyZndDsoODcwMiwgMjI5MSwgODcyMSwg MjMxMCwgbG93ZXIgZGlhZyA9IDY0MTEsIHVwcGVyIGRpYWcgPSA2NDExKSBMZW5ndGg6IDE5PC9k aXY+DQo8ZGl2IGNsYXNzPSIiPlNlZWQmbHQ7U2ltcGxlLCBUQ29uZmlnJmd0Oyg4NzY5LCAyMzE0 LCA4NzgxLCAyMzI2LCBsb3dlciBkaWFnID0gNjQ1NSwgdXBwZXIgZGlhZyA9IDY0NTUpIExlbmd0 aDogMTI8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUsIFRDb25maWcmZ3Q7KDg3 OTQsIDIzODcsIDg4MDYsIDIzOTksIGxvd2VyIGRpYWcgPSA2NDA3LCB1cHBlciBkaWFnID0gNjQw NykgTGVuZ3RoOiAxMjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5TZWVkJmx0O1NpbXBsZSwgVENvbmZp ZyZndDsoODgzNSwgMjQwMCwgODg0NywgMjQxMiwgbG93ZXIgZGlhZyA9IDY0MzUsIHVwcGVyIGRp YWcgPSA2NDM1KSBMZW5ndGg6IDEyPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlNlZWQmbHQ7U2ltcGxl LCBUQ29uZmlnJmd0Oyg5MTYyLCAyNjUwLCA5MTc0LCAyNjYyLCBsb3dlciBkaWFnID0gNjUxMiwg dXBwZXIgZGlhZyA9IDY1MTIpIExlbmd0aDogMTI8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZs dDtTaW1wbGUsIFRDb25maWcmZ3Q7KDkxODQsIDI2NzYsIDkxOTYsIDI2ODgsIGxvd2VyIGRpYWcg PSA2NTA4LCB1cHBlciBkaWFnID0gNjUwOCkgTGVuZ3RoOiAxMjwvZGl2Pg0KPGRpdiBjbGFzcz0i Ij5TZWVkJmx0O1NpbXBsZSwgVENvbmZpZyZndDsoOTE5NiwgMjczNiwgOTIwOCwgMjc0OCwgbG93 ZXIgZGlhZyA9IDY0NjAsIHVwcGVyIGRpYWcgPSA2NDYwKSBMZW5ndGg6IDEyPC9kaXY+DQo8ZGl2 IGNsYXNzPSIiPlNlZWQmbHQ7U2ltcGxlLCBUQ29uZmlnJmd0Oyg5MjIzLCAyODE4LCA5MjM1LCAy ODMwLCBsb3dlciBkaWFnID0gNjQwNSwgdXBwZXIgZGlhZyA9IDY0MDUpIExlbmd0aDogMTI8L2Rp dj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUsIFRDb25maWcmZ3Q7KDkyNTEsIDI4NDQs IDkyNjcsIDI4NjAsIGxvd2VyIGRpYWcgPSA2NDA3LCB1cHBlciBkaWFnID0gNjQwNykgTGVuZ3Ro OiAxNjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5TZWVkJmx0O1NpbXBsZSwgVENvbmZpZyZndDsoOTI5 NCwgMjg3MSwgOTMwOCwgMjg4NSwgbG93ZXIgZGlhZyA9IDY0MjMsIHVwcGVyIGRpYWcgPSA2NDIz KSBMZW5ndGg6IDE0PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlNlZWQmbHQ7U2ltcGxlLCBUQ29uZmln Jmd0Oyg5MzE0LCAyODkxLCA5MzI3LCAyOTA0LCBsb3dlciBkaWFnID0gNjQyMywgdXBwZXIgZGlh ZyA9IDY0MjMpIExlbmd0aDogMTM8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUs IFRDb25maWcmZ3Q7KDk0MzIsIDI5NzYsIDk0NDcsIDI5OTEsIGxvd2VyIGRpYWcgPSA2NDU2LCB1 cHBlciBkaWFnID0gNjQ1NikgTGVuZ3RoOiAxNTwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5TZWVkJmx0 O1NpbXBsZSwgVENvbmZpZyZndDsoOTUxNSwgMjk5MiwgOTUyNywgMzAwNCwgbG93ZXIgZGlhZyA9 IDY1MjMsIHVwcGVyIGRpYWcgPSA2NTIzKSBMZW5ndGg6IDEyPC9kaXY+DQo8ZGl2IGNsYXNzPSIi PlNlZWQmbHQ7U2ltcGxlLCBUQ29uZmlnJmd0Oyg5Njc1LCAzMzg1LCA5NzAxLCAzNDExLCBsb3dl ciBkaWFnID0gNjI5MCwgdXBwZXIgZGlhZyA9IDYyOTApIExlbmd0aDogMjY8L2Rpdj4NCjxkaXYg Y2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUsIFRDb25maWcmZ3Q7KDk3MjQsIDM0MTQsIDk3MzYsIDM0 MjYsIGxvd2VyIGRpYWcgPSA2MzEwLCB1cHBlciBkaWFnID0gNjMxMCkgTGVuZ3RoOiAxMjwvZGl2 Pg0KPGRpdiBjbGFzcz0iIj5TZWVkJmx0O1NpbXBsZSwgVENvbmZpZyZndDsoOTc5MSwgMzU3MSwg OTgwNCwgMzU4NCwgbG93ZXIgZGlhZyA9IDYyMjAsIHVwcGVyIGRpYWcgPSA2MjIwKSBMZW5ndGg6 IDEzPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlNlZWQmbHQ7U2ltcGxlLCBUQ29uZmlnJmd0Oyg5ODA1 LCAzNTk2LCA5ODE3LCAzNjA4LCBsb3dlciBkaWFnID0gNjIwOSwgdXBwZXIgZGlhZyA9IDYyMDkp IExlbmd0aDogMTI8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUsIFRDb25maWcm Z3Q7KDk4MTgsIDQ5MTUsIDk4MzAsIDQ5MjcsIGxvd2VyIGRpYWcgPSA0OTAzLCB1cHBlciBkaWFn ID0gNDkwMykgTGVuZ3RoOiAxMjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5TZWVkJmx0O1NpbXBsZSwg VENvbmZpZyZndDsoOTg0MiwgNDkzOSwgOTg1NCwgNDk1MSwgbG93ZXIgZGlhZyA9IDQ5MDMsIHVw cGVyIGRpYWcgPSA0OTAzKSBMZW5ndGg6IDEyPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlNlZWQmbHQ7 U2ltcGxlLCBUQ29uZmlnJmd0Oyg5ODczLCA1MDQ1LCA5ODg1LCA1MDU3LCBsb3dlciBkaWFnID0g NDgyOCwgdXBwZXIgZGlhZyA9IDQ4MjgpIExlbmd0aDogMTI8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+ U2VlZCZsdDtTaW1wbGUsIFRDb25maWcmZ3Q7KDk4ODYsIDUwNzcsIDk4OTgsIDUwODksIGxvd2Vy IGRpYWcgPSA0ODA5LCB1cHBlciBkaWFnID0gNDgwOSkgTGVuZ3RoOiAxMjwvZGl2Pg0KPGRpdiBj bGFzcz0iIj5TZWVkJmx0O1NpbXBsZSwgVENvbmZpZyZndDsoOTk0MywgNTI0MiwgOTk1NSwgNTI1 NCwgbG93ZXIgZGlhZyA9IDQ3MDEsIHVwcGVyIGRpYWcgPSA0NzAxKSBMZW5ndGg6IDEyPC9kaXY+ DQo8ZGl2IGNsYXNzPSIiPlNlZWQmbHQ7U2ltcGxlLCBUQ29uZmlnJmd0Oyg5OTU3LCA1Mzg1LCA5 OTY5LCA1Mzk3LCBsb3dlciBkaWFnID0gNDU3MiwgdXBwZXIgZGlhZyA9IDQ1NzIpIExlbmd0aDog MTI8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUsIFRDb25maWcmZ3Q7KDk5OTQs IDU0MjMsIDEwMDA2LCA1NDM1LCBsb3dlciBkaWFnID0gNDU3MSwgdXBwZXIgZGlhZyA9IDQ1NzEp IExlbmd0aDogMTI8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2VlZCZsdDtTaW1wbGUsIFRDb25maWcm Z3Q7KDEwMDYyLCA3MDk2LCAxMDA3NCwgNzEwOCwgbG93ZXIgZGlhZyA9IDI5NjYsIHVwcGVyIGRp YWcgPSAyOTY2KSBMZW5ndGg6IDEyPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlNlZWQmbHQ7U2ltcGxl LCBUQ29uZmlnJmd0OygxMDEwMiwgNzEwOSwgMTAxMTQsIDcxMjEsIGxvd2VyIGRpYWcgPSAyOTkz LCB1cHBlciBkaWFnID0gMjk5MykgTGVuZ3RoOiAxMjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5TZWVk Jmx0O1NpbXBsZSwgVENvbmZpZyZndDsoMTAxNTYsIDcxMzEsIDEwMTc4LCA3MTUzLCBsb3dlciBk aWFnID0gMzAyNSwgdXBwZXIgZGlhZyA9IDMwMjUpIExlbmd0aDogMjI8L2Rpdj4NCjxkaXYgY2xh c3M9IiI+U2VlZCZsdDtTaW1wbGUsIFRDb25maWcmZ3Q7KDEwMjc3LCA3MzU0LCAxMDI5OSwgNzM3 NiwgbG93ZXIgZGlhZyA9IDI5MjMsIHVwcGVyIGRpYWcgPSAyOTIzKSBMZW5ndGg6IDIyPC9kaXY+ DQo8ZGl2IGNsYXNzPSIiPlNlZWQmbHQ7U2ltcGxlLCBUQ29uZmlnJmd0OygxMDI5OSwgNzM3OCwg MTAzMTMsIDczOTIsIGxvd2VyIGRpYWcgPSAyOTIxLCB1cHBlciBkaWFnID0gMjkyMSkgTGVuZ3Ro OiAxNDwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5TZWVkJmx0O1NpbXBsZSwgVENvbmZpZyZndDsoMTAz NzEsIDc0MDAsIDEwMzg1LCA3NDE0LCBsb3dlciBkaWFnID0gMjk3MSwgdXBwZXIgZGlhZyA9IDI5 NzEpIExlbmd0aDogMTQ8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4mcXVvdDsmcXVvdDsm cXVvdDs8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNs YXNzPSIiPi1CcmV0dDwvZGl2Pg0KPC9kaXY+DQo8aW1nIHNyYz0iaHR0cDovL3Quc2lnbmF1eGRp eC5jb20vZTF0L28vNS9mMThkUWhiMFM3a3M4ZERNUGJXMm4weDZsMkI5Z1hyTjdzS2o2djRmaGps VlJ6dmJZOHFTUUdDVlJ6SDJiMXBjdEdGVzRiWGxzMzFrMUg2SDA/c2k9NDczODk4MDcxNzc4OTE4 NCZhbXA7cGk9ZTk1MGYyOTUtNTRkNC00ZDI4LThjZTMtYjRiZDk4NzQ1NDU2IiB3aWR0aD0iMSIg aGVpZ2h0PSIxIiBjbGFzcz0iIj48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIi Pg0KPGRpdiBjbGFzcz0iZ21haWxfZXh0cmEiPjxiciBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9Imdt YWlsX3F1b3RlIj5PbiBTdW4sIE5vdiAxNiwgMjAxNCBhdCAyOjU3IEFNLCBSYWhuLCBSZW7DqSA8 c3BhbiBkaXI9Imx0ciIgY2xhc3M9IiI+DQombHQ7PGEgaHJlZj0ibWFpbHRvOnJlbmUubWFlcmtl ckBmdS1iZXJsaW4uZGUiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iIj5yZW5lLm1hZXJrZXJAZnUt YmVybGluLmRlPC9hPiZndDs8L3NwYW4+IHdyb3RlOjxiciBjbGFzcz0iIj4NCjxibG9ja3F1b3Rl IGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4O2JvcmRlci1sZWZ0 OjFweCAjY2NjIHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPg0KPGRpdiBzdHlsZT0id29yZC13cmFw OmJyZWFrLXdvcmQiIGNsYXNzPSIiPkhleSBCcmV0dCwmbmJzcDsNCjxkaXYgY2xhc3M9IiI+PGJy IGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPkl0IGNvdWxkIGhhdmUgbXVsdGlwbGUg cmVhc29ucy4mbmJzcDs8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+SW4gZ2VuZXJhbCwgaXQgbWVhbnMg dGhhdCB0aGVyZSB3YXMgYSB0cmFjZWJhY2sgcGF0aCBmcm9tIGEgc2VlZCBvciBhIGdhcCwgdGhh dCBjb3VsZG7igJl0IGJlIGNvbm5lY3RlZCB3aXRoIG9uZSBvZiB0aGUgc28gZmFyIGdlbmVyYXRl ZCB0cmFjZWJhY2sgcGF0aHMuIE5vdGUsIHRoYXQgdGhlIHRyYWNlYmFjayBpcyBjb21wdXRlZCBp bmNyZW1lbnRhbGx5IHRvIHJlZHVjZSB0aGUgc3BhY2UgcmVxdWlyZW1lbnRzLiZuYnNwOzwvZGl2 Pg0KPGRpdiBjbGFzcz0iIj5JZiB5b3UgY291bGQgc2VuZCBtZSBhIHNpbXBsZSB0ZXh0IGZpbGUg Y29udGFpbmluZyB0aGUgc2VlZHMgb2YgdGhlIHNlZWQgY2hhaW4gKG9uZSBzZWVkIHBlciByb3cg dXNpbmcgdGhlICZsdDsmbHQ7LW9wZXJhdG9yKSwgdGhhdCBpcyBpbnB1dCB0byB0aGUgYmFuZGVk IGNoYWluIGFsaWdubWVudCBmdW5jdGlvbiwgSSBjb3VsZCBoYXZlIGEgbG9vayBhdCBpdCBhbmQg Zml4IHRoZSBwcm9ibGVtLiZuYnNwOzwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5BbHNvLCBJIG9wZW5l ZCBhbiBpc3N1ZSBpbiBnaXRodWI6Jm5ic3A7PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3Nl cWFuL3NlcWFuL2lzc3Vlcy82OTkiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iIj5odHRwczovL2dp dGh1Yi5jb20vc2VxYW4vc2VxYW4vaXNzdWVzLzY5OTwvYT4sIGZvciB0cmFja2luZyB0aGUgaXNz dWUuPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBjbGFz cz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+S2luZCByZWdhcmRzLCZu YnNwOzwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xh c3M9IiI+UmVuw6kgUmFobjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8ZGl2 IGNsYXNzPSIiPg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgY2xhc3M9IiI+DQo8ZGl2IGNsYXNz PSIiPg0KPGRpdiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+T24gMTYgTm92IDIwMTQsIGF0IDA0 OjE3LCBCcmV0dCBCb3dtYW4gJmx0OzxhIGhyZWY9Im1haWx0bzpibmJvd21hbkBnbWFpbC5jb20i IHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iIj5ibmJvd21hbkBnbWFpbC5jb208L2E+Jmd0OyB3cm90 ZTo8L2Rpdj4NCjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPg0K PGRpdiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+DQo8ZGl2IGRpcj0ibHRyIiBjbGFzcz0iIj48 c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTNweCIg Y2xhc3M9IiI+SSdtIHRyeWluZyB0byBidWlsZCBhIHRvb2wgd2l0aCZuYnNwOzwvc3Bhbj48c3Bh biBzdHlsZT0iZm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTNweDtiYWNr Z3JvdW5kOnJnYigyNTUsMjU1LDIwNCkiIGNsYXNzPSIiPlNlcUFuPC9zcGFuPjxzcGFuIHN0eWxl PSJmb250LWZhbWlseTphcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxM3B4IiBjbGFzcz0iIj4m bmJzcDt0bw0KIHF1aWNrbHkgYWxpZ24gc29tZSBQYWNCaW8gZGF0YSwgdXNpbmcgJnF1b3Q7YmFu ZGVkQ2hhaW5BbGlnbm1lbnQmcXVvdDssIGJ1dCBJJ20gY29uc2lzdGVudGx5IGdldHRpbmcgYSBj cmFzaCBkdXJpbmcgdGhlIHRyYWNlLWJhY2sgc3RlcC4mbmJzcDsgVGhlIGdlbmVyYXRpb24gb2Yg dGhlIFNlZWRzIChTdWZmaXhBcnJheSkgYW5kIHRoZSBmaW5kaW5nIG9mIHRoZSBiYXNlIFNlZWRD aGFpbiB3b3JrcyBmaW5lLCBidXQgdGhlIGZpbmFsIHN0ZXAgb2YgdHVybmluZyB0aGF0IGludG8N CiBhbiBhbGlnbm1lbnQgZG9lc24ndCBhcHBlYXIgdG8gd29yay4gJm5ic3A7PC9zcGFuPg0KPGRp diBzdHlsZT0iZm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTNweCIgY2xh c3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJmb250LWZhbWlseTphcmlh bCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxM3B4IiBjbGFzcz0iIj5TdWdnZXN0aW9ucz8NCjxkaXYg Y2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPkVycm9yIExvZzo8 L2Rpdj4NCjxkaXYgY2xhc3M9IiI+JnF1b3Q7JnF1b3Q7JnF1b3Q7PC9kaXY+DQo8ZGl2IGNsYXNz PSIiPg0KPGRpdiBjbGFzcz0iIj5iYm93bWFuQGxvY2FsaG9zdDp+L2dpdC9TUlNMSSQgLi9zcmMv QyYjNDM7JiM0Mzsvc3JzbGkgdGVzdC9kYXRhL3F1ZXJ5L2Vjb2xpXzVwX3NhbXBsZS5mYXN0cSB0 ZXN0L2RhdGEvcmVmZXJlbmNlL2Vjb2xpSzEyXzVwX2Fzc2VtYmx5LmZhc3RhJm5ic3A7PC9kaXY+ DQo8ZGl2IGNsYXNzPSIiPlF1ZXJ5IDA8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+RmluaXNoZWQgZmlu ZGluZyBzZWVkczwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5GaW5pc2hpbmcgY2hhaW5pbmcgc2VlZHM8 L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U3RhcnRpbmcgYWxpZ25tZW50IG9mIHNlcXVlbmNlczwvZGl2 Pg0KPGRpdiBjbGFzcz0iIj4vdXNyL2luY2x1ZGUvPHNwYW4gc3R5bGU9ImJhY2tncm91bmQ6cmdi KDI1NSwyNTUsMjA0KSIgY2xhc3M9IiI+c2VxYW48L3NwYW4+L3NlZWRzL2JhbmRlZF9jaGFpbl9h bGlnbm1lbnRfdHJhY2ViYWNrLmg6MTk1IEFzc2VydGlvbiBmYWlsZWQgOiBpc0dsdWVkID09IHRy dWUgd2FzOiAwICE9IDEgKEZhdGFsIGVycm9yIHdoaWxlIHRyeWluZyB0byBjb25uZWN0IHRyYWNl IGJhY2tzOiBObyBnbHVlIHBvaW50IGF2YWlsYWJsZSEpPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPkFi b3J0ZWQgKGNvcmUgZHVtcGVkKTwvZGl2Pg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZxdW90OyZx dW90OyZxdW90OzwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+PGltZyBzcmM9 Imh0dHBzOi8vc3NsLmdzdGF0aWMuY29tL3VpL3YxL2ljb25zL21haWwvaW1hZ2VzL2NsZWFyZG90 LmdpZiIgY2xhc3M9IiI+PC9kaXY+DQo8L2Rpdj4NCjxzcGFuIGNsYXNzPSIiPjxmb250IGNvbG9y PSIjODg4ODg4IiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+ DQo8ZGl2IGNsYXNzPSIiPi1CcmV0dDwvZGl2Pg0KPC9mb250Pjwvc3Bhbj48L2Rpdj4NCjwvZGl2 Pg0KPC9kaXY+DQo8L2Rpdj4NCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fPGJyIGNsYXNzPSIiPg0Kc2VxYW4tZGV2IG1haWxpbmcgbGlzdDxiciBjbGFzcz0i Ij4NCjxhIGhyZWY9Im1haWx0bzpzZXFhbi1kZXZAbGlzdHMuZnUtYmVybGluLmRlIiB0YXJnZXQ9 Il9ibGFuayIgY2xhc3M9IiI+c2VxYW4tZGV2QGxpc3RzLmZ1LWJlcmxpbi5kZTwvYT48YnIgY2xh c3M9IiI+DQo8YSBocmVmPSJodHRwczovL2xpc3RzLmZ1LWJlcmxpbi5kZS9saXN0aW5mby9zZXFh bi1kZXYiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iIj5odHRwczovL2xpc3RzLmZ1LWJlcmxpbi5k ZS9saXN0aW5mby9zZXFhbi1kZXY8L2E+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8L2Jsb2NrcXVv dGU+DQo8L2Rpdj4NCjxiciBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIi Pg0KPGRpdiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+LS0tPC9m b250PjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyIgY2xhc3M9 IiI+PGJyIGNsYXNzPSIiPg0KPC9mb250PjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48Zm9udCBmYWNl PSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+UmVuw6kgUmFobjwvZm9udD48L2Rpdj4NCjxkaXYgY2xh c3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIiPlBoLkQuIFN0dWRlbnQ8L2Zv bnQ+PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0i Ij4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTwvZm9udD48L2Rpdj4NCjxkaXYgY2xh c3M9IiI+DQo8ZGl2IGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj5U ZWw6ICZuYnNwOzxhIGhyZWY9InRlbDolMjglMkI0OSUyOSUyMDMwJTIwODM4JTIwNzUyNzciIHZh bHVlPSImIzQzOzQ5MzA4Mzg3NTI3NyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSIiPigmIzQzOzQ5 KSAzMCA4MzggNzUyNzc8L2E+PC9mb250PjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48Zm9udCBmYWNl PSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+TWFpbDombmJzcDs8YSBocmVmPSJtYWlsdG86cmVuZS5y YWhuQGZ1LWJlcmxpbi5kZSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSIiPnJlbmUucmFobkBmdS1i ZXJsaW4uZGU8L2E+PC9mb250PjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3Vy aWVyIE5ldyIgY2xhc3M9IiI+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08L2ZvbnQ+ PC9kaXY+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNs YXNzPSIiPkluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlPC9mb250PjwvZGl2Pg0KPGRpdiBj bGFzcz0iIj48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+QWxnb3JpdGhtaWMgQmlv aW5mb3JtYXRpY3MgKEFCSSk8L2ZvbnQ+PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxmb250IGZhY2U9 IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTwv Zm9udD48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNz PSIiPkZyZWllIFVuaXZlcnNpdMOkdCBCZXJsaW48L2ZvbnQ+PC9kaXY+DQo8ZGl2IGNsYXNzPSIi Pjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj5UYWt1c3RyYcOfZSA5PC9mb250Pjwv ZGl2Pg0KPGRpdiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+MTQx OTUgQmVybGluPC9mb250PjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3VyaWVy IE5ldyIgY2xhc3M9IiI+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08L2ZvbnQ+PC9k aXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8L2Rpdj4NCjxiciBj bGFzcz0iIj4NCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f PGJyIGNsYXNzPSIiPg0Kc2VxYW4tZGV2IG1haWxpbmcgbGlzdDxiciBjbGFzcz0iIj4NCjxhIGhy ZWY9Im1haWx0bzpzZXFhbi1kZXZAbGlzdHMuZnUtYmVybGluLmRlIiB0YXJnZXQ9Il9ibGFuayIg Y2xhc3M9IiI+c2VxYW4tZGV2QGxpc3RzLmZ1LWJlcmxpbi5kZTwvYT48YnIgY2xhc3M9IiI+DQo8 YSBocmVmPSJodHRwczovL2xpc3RzLmZ1LWJlcmxpbi5kZS9saXN0aW5mby9zZXFhbi1kZXYiIHRh cmdldD0iX2JsYW5rIiBjbGFzcz0iIj5odHRwczovL2xpc3RzLmZ1LWJlcmxpbi5kZS9saXN0aW5m by9zZXFhbi1kZXY8L2E+PGJyIGNsYXNzPSIiPg0KPGJyIGNsYXNzPSIiPg0KPC9ibG9ja3F1b3Rl Pg0KPC9kaXY+DQo8YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2Nr cXVvdGU+DQo8L2Rpdj4NCjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwv YmxvY2txdW90ZT4NCjwvZGl2Pg0KPGJyIGNsYXNzPSIiPg0KPC9kaXY+DQpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXzxiciBjbGFzcz0iIj4NCnNlcWFuLWRl diBtYWlsaW5nIGxpc3Q8YnIgY2xhc3M9IiI+DQo8YSBocmVmPSJtYWlsdG86c2VxYW4tZGV2QGxp c3RzLmZ1LWJlcmxpbi5kZSIgY2xhc3M9IiI+c2VxYW4tZGV2QGxpc3RzLmZ1LWJlcmxpbi5kZTwv YT48YnIgY2xhc3M9IiI+DQo8YSBocmVmPSJodHRwczovL2xpc3RzLmZ1LWJlcmxpbi5kZS9saXN0 aW5mby9zZXFhbi1kZXYiIGNsYXNzPSIiPmh0dHBzOi8vbGlzdHMuZnUtYmVybGluLmRlL2xpc3Rp bmZvL3NlcWFuLWRldjwvYT48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwv ZGl2Pg0KPGJyIGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+DQo8ZGl2 IHN0eWxlPSJvcnBoYW5zOiAyOyB3aWRvd3M6IDI7IiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3Vy aWVyIE5ldyIgY2xhc3M9IiI+LS0tPC9mb250PjwvZGl2Pg0KPGRpdiBzdHlsZT0ib3JwaGFuczog Mjsgd2lkb3dzOiAyOyIgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIi PjxiciBjbGFzcz0iIj4NCjwvZm9udD48L2Rpdj4NCjxkaXYgc3R5bGU9Im9ycGhhbnM6IDI7IHdp ZG93czogMjsiIGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj5SZW7D qSBSYWhuPC9mb250PjwvZGl2Pg0KPGRpdiBzdHlsZT0ib3JwaGFuczogMjsgd2lkb3dzOiAyOyIg Y2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIiPlBoLkQuIFN0dWRlbnQ8 L2ZvbnQ+PC9kaXY+DQo8ZGl2IHN0eWxlPSJvcnBoYW5zOiAyOyB3aWRvd3M6IDI7IiBjbGFzcz0i Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+LS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS08L2ZvbnQ+PC9kaXY+DQo8ZGl2IHN0eWxlPSJvcnBoYW5zOiAyOyB3aWRvd3M6 IDI7IiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNs YXNzPSIiPlRlbDogJm5ic3A7KCYjNDM7NDkpIDMwIDgzOCA3NTI3NzwvZm9udD48L2Rpdj4NCjxk aXYgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIiPk1haWw6Jm5ic3A7 PGEgaHJlZj0ibWFpbHRvOnJlbmUucmFobkBmdS1iZXJsaW4uZGUiIGNsYXNzPSIiPnJlbmUucmFo bkBmdS1iZXJsaW4uZGU8L2E+PC9mb250PjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48Zm9udCBmYWNl PSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08 L2ZvbnQ+PC9kaXY+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im9ycGhhbnM6IDI7IHdpZG93czogMjsi IGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj5JbnN0aXR1dGUgb2Yg Q29tcHV0ZXIgU2NpZW5jZTwvZm9udD48L2Rpdj4NCjxkaXYgc3R5bGU9Im9ycGhhbnM6IDI7IHdp ZG93czogMjsiIGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj5BbGdv cml0aG1pYyBCaW9pbmZvcm1hdGljcyAoQUJJKTwvZm9udD48L2Rpdj4NCjxkaXYgc3R5bGU9Im9y cGhhbnM6IDI7IHdpZG93czogMjsiIGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBj bGFzcz0iIj4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTwvZm9udD48L2Rpdj4NCjxk aXYgc3R5bGU9Im9ycGhhbnM6IDI7IHdpZG93czogMjsiIGNsYXNzPSIiPjxmb250IGZhY2U9IkNv dXJpZXIgTmV3IiBjbGFzcz0iIj5GcmVpZSBVbml2ZXJzaXTDpHQgQmVybGluPC9mb250PjwvZGl2 Pg0KPGRpdiBzdHlsZT0ib3JwaGFuczogMjsgd2lkb3dzOiAyOyIgY2xhc3M9IiI+PGZvbnQgZmFj ZT0iQ291cmllciBOZXciIGNsYXNzPSIiPlRha3VzdHJhw59lIDk8L2ZvbnQ+PC9kaXY+DQo8ZGl2 IHN0eWxlPSJvcnBoYW5zOiAyOyB3aWRvd3M6IDI7IiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3Vy aWVyIE5ldyIgY2xhc3M9IiI+MTQxOTUgQmVybGluPC9mb250PjwvZGl2Pg0KPGRpdiBzdHlsZT0i b3JwaGFuczogMjsgd2lkb3dzOiAyOyIgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXci IGNsYXNzPSIiPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPC9mb250PjwvZGl2Pg0K PC9kaXY+DQo8L2Rpdj4NCjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPC9kaXY+DQpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXzxiciBjbGFzcz0iIj4NCnNlcWFu LWRldiBtYWlsaW5nIGxpc3Q8YnIgY2xhc3M9IiI+DQo8YSBocmVmPSJtYWlsdG86c2VxYW4tZGV2 QGxpc3RzLmZ1LWJlcmxpbi5kZSIgY2xhc3M9IiI+c2VxYW4tZGV2QGxpc3RzLmZ1LWJlcmxpbi5k ZTwvYT48YnIgY2xhc3M9IiI+DQpodHRwczovL2xpc3RzLmZ1LWJlcmxpbi5kZS9saXN0aW5mby9z ZXFhbi1kZXY8YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0KPGJy IGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+DQo8ZGl2IHN0eWxlPSJv cnBoYW5zOiAyOyB3aWRvd3M6IDI7IiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyIg Y2xhc3M9IiI+LS0tPC9mb250PjwvZGl2Pg0KPGRpdiBzdHlsZT0ib3JwaGFuczogMjsgd2lkb3dz OiAyOyIgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIiPjxiciBjbGFz cz0iIj4NCjwvZm9udD48L2Rpdj4NCjxkaXYgc3R5bGU9Im9ycGhhbnM6IDI7IHdpZG93czogMjsi IGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj5SZW7DqSBSYWhuPC9m b250PjwvZGl2Pg0KPGRpdiBzdHlsZT0ib3JwaGFuczogMjsgd2lkb3dzOiAyOyIgY2xhc3M9IiI+ PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIiPlBoLkQuIFN0dWRlbnQ8L2ZvbnQ+PC9k aXY+DQo8ZGl2IHN0eWxlPSJvcnBoYW5zOiAyOyB3aWRvd3M6IDI7IiBjbGFzcz0iIj48Zm9udCBm YWNlPSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS08L2ZvbnQ+PC9kaXY+DQo8ZGl2IHN0eWxlPSJvcnBoYW5zOiAyOyB3aWRvd3M6IDI7IiBjbGFz cz0iIj4NCjxkaXYgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIiPlRl bDogJm5ic3A7KCYjNDM7NDkpIDMwIDgzOCA3NTI3NzwvZm9udD48L2Rpdj4NCjxkaXYgY2xhc3M9 IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIiPk1haWw6Jm5ic3A7PGEgaHJlZj0i bWFpbHRvOnJlbmUucmFobkBmdS1iZXJsaW4uZGUiIGNsYXNzPSIiPnJlbmUucmFobkBmdS1iZXJs aW4uZGU8L2E+PC9mb250PjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3VyaWVy IE5ldyIgY2xhc3M9IiI+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08L2ZvbnQ+PC9k aXY+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im9ycGhhbnM6IDI7IHdpZG93czogMjsiIGNsYXNzPSIi Pjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj5JbnN0aXR1dGUgb2YgQ29tcHV0ZXIg U2NpZW5jZTwvZm9udD48L2Rpdj4NCjxkaXYgc3R5bGU9Im9ycGhhbnM6IDI7IHdpZG93czogMjsi IGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj5BbGdvcml0aG1pYyBC aW9pbmZvcm1hdGljcyAoQUJJKTwvZm9udD48L2Rpdj4NCjxkaXYgc3R5bGU9Im9ycGhhbnM6IDI7 IHdpZG93czogMjsiIGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj4t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTwvZm9udD48L2Rpdj4NCjxkaXYgc3R5bGU9 Im9ycGhhbnM6IDI7IHdpZG93czogMjsiIGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3 IiBjbGFzcz0iIj5GcmVpZSBVbml2ZXJzaXTDpHQgQmVybGluPC9mb250PjwvZGl2Pg0KPGRpdiBz dHlsZT0ib3JwaGFuczogMjsgd2lkb3dzOiAyOyIgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmll ciBOZXciIGNsYXNzPSIiPlRha3VzdHJhw59lIDk8L2ZvbnQ+PC9kaXY+DQo8ZGl2IHN0eWxlPSJv cnBoYW5zOiAyOyB3aWRvd3M6IDI7IiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyIg Y2xhc3M9IiI+MTQxOTUgQmVybGluPC9mb250PjwvZGl2Pg0KPGRpdiBzdHlsZT0ib3JwaGFuczog Mjsgd2lkb3dzOiAyOyIgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIi Pi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPC9mb250PjwvZGl2Pg0KPC9kaXY+DQo8 L2Rpdj4NCjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K --_000_8DEDCE0A7B1A4D67AFFEDB8F1186F7B7zedatfuberlinde_-- From bnbowman@gmail.com Tue Nov 18 20:30:14 2014 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XqoTb-0015xF-0F>; Tue, 18 Nov 2014 20:30:11 +0100 Received: from mail-yk0-f172.google.com ([209.85.160.172]) by relay1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1XqoTa-003HsW-IG>; Tue, 18 Nov 2014 20:30:10 +0100 Received: by mail-yk0-f172.google.com with SMTP id 131so2702009ykp.3 for ; Tue, 18 Nov 2014 11:30:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=9Jlfk/tc2WML4YfI/LPqEDbLjUdaFLWMkuUCSMvoAoo=; b=uRKZG/T1psFGtkkfRMgEmUd4VVqBjY3ntME0tEDwOznp/P1uTB5Z9nZwfpHTBOSYOD ysqs2TwqIinFhGv/fkl5txU9pcaSGOloJqr4CeaLHnEeCuYZUY4SzuA30WzbetGN9DnD IFNlpK4jLGljh9JVM+1XGVCrH8Hy4dPqKE7cosuBF5Oyr9RjDzYNQHpHn8r16wArd9Sd qpoN1dlNXHYtXN/mSFpno/WK7LfaLPnVNTKWu0Czwvm06ropJARu5PcsBjsHNP6/IJ9l dos4woVuyfe/C5iKsp9xqWalhoM2EezIhZzWz/Na1g3JwcR+5UtcNfdd+Pi1bH/aS+gR r11A== MIME-Version: 1.0 X-Received: by 10.236.14.36 with SMTP id c24mr4773391yhc.166.1416339007861; Tue, 18 Nov 2014 11:30:07 -0800 (PST) Received: by 10.170.110.19 with HTTP; Tue, 18 Nov 2014 11:30:07 -0800 (PST) In-Reply-To: <8DEDCE0A-7B1A-4D67-AFFE-DB8F1186F7B7@zedat.fu-berlin.de> References: <50D46377-BAED-47B3-8091-6DF539B7C9E8@fritz.box> <8DEDCE0A-7B1A-4D67-AFFE-DB8F1186F7B7@zedat.fu-berlin.de> Date: Tue, 18 Nov 2014 11:30:07 -0800 Message-ID: From: Brett Bowman To: SeqAn Development Content-Type: multipart/alternative; boundary=089e0122a97271faa40508271f9d X-Originating-IP: 209.85.160.172 X-ZEDAT-Hint: A X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1416339011-00067E64-AB2CFA7F/0/0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.072769, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=-0.7 required=5.0 tests=FREEMAIL_FROM,HTML_MESSAGE, RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,T_DKIM_INVALID X-Spam-Checker-Version: SpamAssassin 3.4.0 on Dschibuti.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [Seqan-dev] Fatal Error in Banded Chain Alignment Traceback X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Nov 2014 19:30:14 -0000 --089e0122a97271faa40508271f9d Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Thanks Rene, I came to the same conclusion. That portion of the code I got from a colleague, and I've begun looking at what he's doing to see where the problem arises. We're both new to your library and so there is a bit of a learning curve... Are there any good examples or tutorials on using SeqAn's Q-grams or other SA tools to find seeds we could use? The Seed-And-Extend tutorial only talks about hand-picked seeds it seems. As for the Signed/Unsigned tools - digging into the internal tools, it looks like the code that uses shorts accepts large references, but only <100bp queries, which explains why they can get away with using shorts. Considering we're trying to parallelize many large alignments the savings to memory from staying within shorts instead of longs would be significant - but clearly we'll need to write our own code to do DP while handling over-flows if so... -Brett On Tue, Nov 18, 2014 at 7:25 AM, Rahn, Ren=C3=A9 wrote: > Sorry, > > On 18 Nov 2014, at 16:19, Rahn, Ren=C3=A9 w= rote: > > Hey Brett, > > by just looking at the seed chain I might think that the problem is the > bad chain in the first place. > The first seed begins at position 7688 for the first sequence, while the > seed for the second sequence starts at position 57. > There I can have at most 57 matches and have 7631 gaps. Given a score of > -7 for the gaps and 4 for the matches I have a score of at least -53189 > which in fact exceeds the bound of > > unsigned shorts -32.768 - 32.767. > > > I meant signed shorts of course :). > > This would also explain why it works with a gap penalty of -2 ~ -15300. > Using unsigned short cannot give correct results, as it is only defined o= n > the values from 0 to 65535. In this case -7 would also be interpreted as > *65529.* > So somewhere in the first matrix is an overflow, which might lead to the > problem with the traceback. I will investigate this more thoroughly in th= e > next days. > For the moment I suggest 2 things. > A) Try to use signed integer types and see if it runs through. (Just to > check if it is really related to the value overflow.) > B) Use chaos chaining when adding seeds to the seed set. From the data se= t > I would guess you used the simple merge strategy, but given that the > sequences might not be =E2=80=9Cvery=E2=80=9D similar the chaos chaining = might compute > better results and then the banded chain alignment might work as well. > > Did you changed the default band settings for the band width of the > bandedChainAlignment (this parameter k)? > > Cheers, > > Ren=C3=A9 > > On 18 Nov 2014, at 02:17, Brett Bowman wrote: > > Opps, I just noticed a mistake in my previous e-mail. I wrote: > > """ > The scoring scheme had to be changed from: > Score scoringScheme(4, -13, -7); // Determined > empirically to work well on PacBio data with my home-brewed aligner > to: > Score scoringScheme(2, -1, -2); // Scoring scheme > recommended/tested by SeqAn docs > """ > > but what I meant was (changes in CAPITAL): > """ > The scoring scheme had to be changed from: > Score scoringScheme(4, -13, -7); // Determined > empirically to work well on PacBio data with my home-brewed aligner > to: > Score scoringScheme(2, -1, -2); // Scoring > scheme recommended/tested by SeqAn docs > """ > > I was not surprised when regular shorts were not large enough given that > we're dealing with ~10kb alignments, but I was surprised that unsigned > shorts did not work. They are preferable given their smaller size, and > used by some of my home-brewed aligners. > > -Brett > > On Sun, Nov 16, 2014 at 11:52 PM, Brett Bowman wrote= : > >> I've gotten a rudimentary alignment out, but I had to tweak a few >> things: >> >> """ >> 0 . : . : . : . : . : >> AAAGAG--AGAGAT-ATGCCAGTAATA-CTTGAAAGATATTGCCGAGCTG >> | | | || |||||||||||| |||||||||||||||||||||| >> ---GTGCCCGTCATAATGCCAGTAATAGCTTGAAAGATATTGCCGAGCTG >> >> 50 . : . : . : . : . : >> GTGCCGTTTGCCCATCGTTATGGTGCAAAAA-TTTCGTCACGCTTAACAC >> ||||||||||||||||||||||||||||||| |||||||||||||||||| >> GTGCCGTTTGCCCATCGTTATGGTGCAAAAATTTTCGTCACGCTTAACAC >> >> 100 . : . : . : . : . : >> CATTTTGCATGATGATGAGCTGGAACCCGCGC-ACGGCTGATTACTGACC >> |||||||||||||||||||||||||||||||| ||||||||||||||||| >> CATTTTGCATGATGATGAGCTGGAACCCGCGCAACGGCTGATTACTGACC >> >> 150 . : . : . : . : . : >> TCTACCAGACCGGTGTCGATGCGCTGATTGTT-AGGATATGGGGATTCTG >> |||||||||||||||||||||||||||||||| ||||||||||||||||| >> TCTACCAGACCGGTGTCGATGCGCTGATTGTTCAGGATATGGGGATTCTG >> >> 200 . : . : . : . : . : >> GAAACCTTGATATTCGCGCGCGATTGAACTGGCACGCCAGTACCGCAGTG >> | || |||||||||| ||| |||||||||| ||||||||||| ||||||| >> G-AA-CTTGATATTC-CGC-CGATTGAACT-GCACGCCAGTA-CGCAGTG >> """ >> >> The scoring scheme had to be changed from: >> Score scoringScheme(4, -13, -7); // Determined >> empirically to work well on PacBio data with my home-brewed aligner >> to: >> Score scoringScheme(2, -1, -2); // Scoring scheme >> recommended/tested by SeqAn docs >> >> The initial Seed-set had to be set by hand with the >> reference-alignment's start position: >> SeedSet seeds2; >> addSeed(seeds2, TSeed( 12, 12, 100), seqan::Single()); >> addSeed(seeds2, TSeed( 120, 120, 100), seqan::Single()); >> >> So it appears that there are at least two issues at play here: >> -The value-type used for the bandedChainAlignment isn't large enough to >> handle multi-kb alignments with moderate-sized penalties >> -The default chaining algorithm doesn't handle large numbers of seeds >> with small indel gaps well. >> >> -Brett >> >> On Sun, Nov 16, 2014 at 9:39 PM, Brett Bowman wrote= : >> >>> Thanks Rene, >>> >>> My query, reference, and canonical alignment from BLASR (the >>> PacBio-specific aligner) attached. >>> >>> I also noticed that the seeds it's chaining with >>> chainGlobalAlignment() are way off the diagonal, which may be related - >>> details below: >>> >>> """ >>> Query #1 - >>> m130404_014004_sidney_c100506902550000001823076808221337_s1_p0/5779/0_1= 0397 >>> Finished finding seeds >>> Seeds: 1939 >>> Finishing chaining seeds >>> Chain: 44 >>> Seed(7688, 57, 7706, 75, lower diag =3D 7631, upper di= ag >>> =3D 7631) Length: 18 >>> Seed(7707, 94, 7722, 109, lower diag =3D 7613, upper d= iag >>> =3D 7613) Length: 15 >>> Seed(7933, 111, 7946, 124, lower diag =3D 7822, upper >>> diag =3D 7822) Length: 13 >>> Seed(7949, 130, 7965, 146, lower diag =3D 7819, upper >>> diag =3D 7819) Length: 16 >>> Seed(8065, 299, 8078, 312, lower diag =3D 7766, upper >>> diag =3D 7766) Length: 13 >>> Seed(8109, 314, 8126, 331, lower diag =3D 7795, upper >>> diag =3D 7795) Length: 17 >>> Seed(8169, 363, 8181, 375, lower diag =3D 7806, upper >>> diag =3D 7806) Length: 12 >>> Seed(8208, 381, 8222, 395, lower diag =3D 7827, upper >>> diag =3D 7827) Length: 14 >>> Seed(8222, 402, 8234, 414, lower diag =3D 7820, upper >>> diag =3D 7820) Length: 12 >>> Seed(8287, 446, 8304, 463, lower diag =3D 7841, upper >>> diag =3D 7841) Length: 17 >>> Seed(8304, 466, 8316, 478, lower diag =3D 7838, upper >>> diag =3D 7838) Length: 12 >>> Seed(8326, 748, 8338, 760, lower diag =3D 7578, upper >>> diag =3D 7578) Length: 12 >>> Seed(8354, 761, 8366, 773, lower diag =3D 7593, upper >>> diag =3D 7593) Length: 12 >>> Seed(8426, 801, 8438, 813, lower diag =3D 7625, upper >>> diag =3D 7625) Length: 12 >>> Seed(8702, 2291, 8721, 2310, lower diag =3D 6411, uppe= r >>> diag =3D 6411) Length: 19 >>> Seed(8769, 2314, 8781, 2326, lower diag =3D 6455, uppe= r >>> diag =3D 6455) Length: 12 >>> Seed(8794, 2387, 8806, 2399, lower diag =3D 6407, uppe= r >>> diag =3D 6407) Length: 12 >>> Seed(8835, 2400, 8847, 2412, lower diag =3D 6435, uppe= r >>> diag =3D 6435) Length: 12 >>> Seed(9162, 2650, 9174, 2662, lower diag =3D 6512, uppe= r >>> diag =3D 6512) Length: 12 >>> Seed(9184, 2676, 9196, 2688, lower diag =3D 6508, uppe= r >>> diag =3D 6508) Length: 12 >>> Seed(9196, 2736, 9208, 2748, lower diag =3D 6460, uppe= r >>> diag =3D 6460) Length: 12 >>> Seed(9223, 2818, 9235, 2830, lower diag =3D 6405, uppe= r >>> diag =3D 6405) Length: 12 >>> Seed(9251, 2844, 9267, 2860, lower diag =3D 6407, uppe= r >>> diag =3D 6407) Length: 16 >>> Seed(9294, 2871, 9308, 2885, lower diag =3D 6423, uppe= r >>> diag =3D 6423) Length: 14 >>> Seed(9314, 2891, 9327, 2904, lower diag =3D 6423, uppe= r >>> diag =3D 6423) Length: 13 >>> Seed(9432, 2976, 9447, 2991, lower diag =3D 6456, uppe= r >>> diag =3D 6456) Length: 15 >>> Seed(9515, 2992, 9527, 3004, lower diag =3D 6523, uppe= r >>> diag =3D 6523) Length: 12 >>> Seed(9675, 3385, 9701, 3411, lower diag =3D 6290, uppe= r >>> diag =3D 6290) Length: 26 >>> Seed(9724, 3414, 9736, 3426, lower diag =3D 6310, uppe= r >>> diag =3D 6310) Length: 12 >>> Seed(9791, 3571, 9804, 3584, lower diag =3D 6220, uppe= r >>> diag =3D 6220) Length: 13 >>> Seed(9805, 3596, 9817, 3608, lower diag =3D 6209, uppe= r >>> diag =3D 6209) Length: 12 >>> Seed(9818, 4915, 9830, 4927, lower diag =3D 4903, uppe= r >>> diag =3D 4903) Length: 12 >>> Seed(9842, 4939, 9854, 4951, lower diag =3D 4903, uppe= r >>> diag =3D 4903) Length: 12 >>> Seed(9873, 5045, 9885, 5057, lower diag =3D 4828, uppe= r >>> diag =3D 4828) Length: 12 >>> Seed(9886, 5077, 9898, 5089, lower diag =3D 4809, uppe= r >>> diag =3D 4809) Length: 12 >>> Seed(9943, 5242, 9955, 5254, lower diag =3D 4701, uppe= r >>> diag =3D 4701) Length: 12 >>> Seed(9957, 5385, 9969, 5397, lower diag =3D 4572, uppe= r >>> diag =3D 4572) Length: 12 >>> Seed(9994, 5423, 10006, 5435, lower diag =3D 4571, upp= er >>> diag =3D 4571) Length: 12 >>> Seed(10062, 7096, 10074, 7108, lower diag =3D 2966, up= per >>> diag =3D 2966) Length: 12 >>> Seed(10102, 7109, 10114, 7121, lower diag =3D 2993, up= per >>> diag =3D 2993) Length: 12 >>> Seed(10156, 7131, 10178, 7153, lower diag =3D 3025, up= per >>> diag =3D 3025) Length: 22 >>> Seed(10277, 7354, 10299, 7376, lower diag =3D 2923, up= per >>> diag =3D 2923) Length: 22 >>> Seed(10299, 7378, 10313, 7392, lower diag =3D 2921, up= per >>> diag =3D 2921) Length: 14 >>> Seed(10371, 7400, 10385, 7414, lower diag =3D 2971, up= per >>> diag =3D 2971) Length: 14 >>> """ >>> >>> -Brett >>> >>> On Sun, Nov 16, 2014 at 2:57 AM, Rahn, Ren=C3=A9 >>> wrote: >>> >>>> Hey Brett, >>>> >>>> It could have multiple reasons. >>>> In general, it means that there was a traceback path from a seed or a >>>> gap, that couldn=E2=80=99t be connected with one of the so far generat= ed traceback >>>> paths. Note, that the traceback is computed incrementally to reduce th= e >>>> space requirements. >>>> If you could send me a simple text file containing the seeds of the >>>> seed chain (one seed per row using the <<-operator), that is input to = the >>>> banded chain alignment function, I could have a look at it and fix the >>>> problem. >>>> Also, I opened an issue in github: >>>> https://github.com/seqan/seqan/issues/699, for tracking the issue. >>>> >>>> >>>> Kind regards, >>>> >>>> Ren=C3=A9 Rahn >>>> >>>> On 16 Nov 2014, at 04:17, Brett Bowman wrote: >>>> >>>> I'm trying to build a tool with SeqAn to quickly align some PacBio >>>> data, using "bandedChainAlignment", but I'm consistently getting a cra= sh >>>> during the trace-back step. The generation of the Seeds (SuffixArray)= and >>>> the finding of the base SeedChain works fine, but the final step of tu= rning >>>> that into an alignment doesn't appear to work. >>>> >>>> Suggestions? >>>> >>>> Error Log: >>>> """ >>>> bbowman@localhost:~/git/SRSLI$ ./src/C++/srsli >>>> test/data/query/ecoli_5p_sample.fastq >>>> test/data/reference/ecoliK12_5p_assembly.fasta >>>> Query 0 >>>> Finished finding seeds >>>> Finishing chaining seeds >>>> Starting alignment of sequences >>>> /usr/include/seqan/seeds/banded_chain_alignment_traceback.h:195 >>>> Assertion failed : isGlued =3D=3D true was: 0 !=3D 1 (Fatal error whil= e trying to >>>> connect trace backs: No glue point available!) >>>> Aborted (core dumped) >>>> """ >>>> >>>> -Brett >>>> _______________________________________________ >>>> seqan-dev mailing list >>>> seqan-dev@lists.fu-berlin.de >>>> https://lists.fu-berlin.de/listinfo/seqan-dev >>>> >>>> >>>> --- >>>> >>>> Ren=C3=A9 Rahn >>>> Ph.D. Student >>>> -------------------------------- >>>> Tel: (+49) 30 838 75277 >>>> Mail: rene.rahn@fu-berlin.de >>>> -------------------------------- >>>> Institute of Computer Science >>>> Algorithmic Bioinformatics (ABI) >>>> -------------------------------- >>>> Freie Universit=C3=A4t Berlin >>>> Takustra=C3=9Fe 9 >>>> 14195 Berlin >>>> -------------------------------- >>>> >>>> >>>> _______________________________________________ >>>> seqan-dev mailing list >>>> seqan-dev@lists.fu-berlin.de >>>> https://lists.fu-berlin.de/listinfo/seqan-dev >>>> >>>> >>> >> > _______________________________________________ > seqan-dev mailing list > seqan-dev@lists.fu-berlin.de > https://lists.fu-berlin.de/listinfo/seqan-dev > > > --- > > Ren=C3=A9 Rahn > Ph.D. Student > -------------------------------- > Tel: (+49) 30 838 75277 > Mail: rene.rahn@fu-berlin.de > -------------------------------- > Institute of Computer Science > Algorithmic Bioinformatics (ABI) > -------------------------------- > Freie Universit=C3=A4t Berlin > Takustra=C3=9Fe 9 > 14195 Berlin > -------------------------------- > > _______________________________________________ > seqan-dev mailing list > seqan-dev@lists.fu-berlin.de > https://lists.fu-berlin.de/listinfo/seqan-dev > > > --- > > Ren=C3=A9 Rahn > Ph.D. Student > -------------------------------- > Tel: (+49) 30 838 75277 > Mail: rene.rahn@fu-berlin.de > -------------------------------- > Institute of Computer Science > Algorithmic Bioinformatics (ABI) > -------------------------------- > Freie Universit=C3=A4t Berlin > Takustra=C3=9Fe 9 > 14195 Berlin > -------------------------------- > > > _______________________________________________ > seqan-dev mailing list > seqan-dev@lists.fu-berlin.de > https://lists.fu-berlin.de/listinfo/seqan-dev > > --089e0122a97271faa40508271f9d Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Thanks Rene, I came to the same conclusion.=C2=A0 That por= tion of the code I got from a colleague, and I've begun looking at what= he's doing to see where the problem arises.=C2=A0 We're both new t= o your library and so there is a bit of a learning curve...=C2=A0 Are there= any good examples or tutorials on using SeqAn's Q-grams or other SA to= ols to find seeds we could use?=C2=A0 The Seed-And-Extend tutorial only tal= ks about hand-picked seeds it seems.

As for the Signed/U= nsigned tools - digging into the internal tools, it looks like the code tha= t uses shorts accepts large references, but only <100bp queries, which e= xplains why they can get away with using shorts.=C2=A0 Considering we'r= e trying to parallelize many large alignments the savings to memory from st= aying within shorts instead of longs would be significant - but clearly we&= #39;ll need to write our own code to do DP while handling over-flows if so.= ..=C2=A0

-Brett

On Tue, Nov 18, 2014 at 7:25 AM, Rahn, R= en=C3=A9 <rene.maerker@fu-berlin.de> wrote:
Sorry,=C2=A0

On 18 Nov 2014, at 16:19, Rahn, Ren=C3=A9 <rene.maerker@fu-berlin.de> wr= ote:

Hey Brett,=C2=A0

by just looking at the seed chain I might think that the problem is th= e bad chain in the first place.
The first seed begins at position 7688 for the first sequence, while t= he seed for the second sequence starts at position 57.=C2=A0
There I can have at most 57 matches and have 7631 gaps. Given a score = of -7 for the gaps and 4 for the matches I have a score of at least -53189 = which in fact exceeds the bound of
unsigned shorts -32.768 - 32.767.

I meant signed shorts of course :).

This would also explain why it works with a gap penalty of -2 ~ -15300= .
Using unsigned short cannot give correct results, as it is only define= d on the values from 0 to 65535. In this case -7 would also be interpreted = as=C2=A065529.
So somewhere in the first matrix is an overflow, which might lead to t= he problem with the traceback. I will investigate this more thoroughly in t= he next days.=C2=A0
For the moment I suggest 2 things.=C2=A0
A) Try to use signed integer types and see if it runs through. (Just t= o check if it is really related to the value overflow.)
B) Use chaos chaining when adding seeds to the seed set. From the data= set I would guess you used the simple merge strategy, but given that the s= equences might not be =E2=80=9Cvery=E2=80=9D similar the chaos chaining mig= ht compute better results and then the banded chain alignment might work as well.

Did you changed the default band settings for the band width of the ba= ndedChainAlignment (this parameter k)?

Cheers,

Ren=C3=A9

On 18 Nov 2014, at 02:17, Brett Bowman <bnbowman@gmail.com> wrote:

Opps, I just not= iced a mistake in my previous e-mail.=C2=A0 I wrote:

""&quo= t;
The scoring sche= me had to be changed from:
Score<short, Simple> scoringScheme(4, -13, -7); =C2=A0 // Determ= ined empirically to work well on PacBio data with my home-brewed aligner
to:
Score<short, Simple> scoringScheme(2, -1, -2); =C2=A0 =C2=A0 // = Scoring scheme recommended/tested by=C2=A0SeqAn=C2=A0docs
"""

but what I meant was (changes in CAPITAL):
"""
The scoring scheme had to be changed from:
Score<UNSIGNED short, Simple> scoringScheme(4, -13, -7); =C2=A0 = // Determined empirically to work well on PacBio data with my home-brewed a= ligner
to:
Score<UNSIGNED short, Simple> scoringScheme(2, -1, -2); =C2=A0 = =C2=A0 // Scoring scheme recommended/tested by=C2=A0SeqAn=C2= =A0docs
"""

I was not surprised when regular shorts were not large enough given th= at we're dealing with ~10kb alignments, but I was surprised that unsign= ed shorts did not work.=C2=A0 They are preferable given their smaller size,= and used by some of my home-brewed aligners.=C2=A0

-Brett

On Sun, Nov 16, 2014 at 11:52 PM, Brett Bowman <= span dir=3D"ltr"> <bnbowman@gmail.= com> wrote:
I've gotten a rudimentary alignment out, but I had to tweak a few = things:

"""
=C2=A0 =C2=A0 =C2=A0 0 =C2=A0 =C2=A0 . =C2=A0 =C2=A0: =C2=A0 =C2=A0. = =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: = =C2=A0 =C2=A0. =C2=A0 =C2=A0:=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 AAAGAG--AGAGAT-ATGCCAGTAATA-CTTGAAAGATATTG= CCGAGCTG
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| | =C2=A0 | =C2=A0|| |||||||= ||||| ||||||||||||||||||||||
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ---GTGCCCGTCATAATGCCAGTAATAGCTTGAAAGATATTG= CCGAGCTG

=C2=A0 =C2=A0 =C2=A050 =C2=A0 =C2=A0 . =C2=A0 =C2=A0: =C2=A0 =C2=A0. = =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: = =C2=A0 =C2=A0. =C2=A0 =C2=A0:=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 GTGCCGTTTGCCCATCGTTATGGTGCAAAAA-TTTCGTCACG= CTTAACAC
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ||||||||||||||||||||||||||||||| ||||||||||= ||||||||
=C2=A0 =C2=A0 =C2=A0 =C2=A0 GTGCCGTTTGCCCATCGTTATGGTGCAAAAATTTTCGTCACG= CTTAACAC

=C2=A0 =C2=A0 100 =C2=A0 =C2=A0 . =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0= =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0= =C2=A0. =C2=A0 =C2=A0:=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 CATTTTGCATGATGATGAGCTGGAACCCGCGC-ACGGCTGAT= TACTGACC
=C2=A0 =C2=A0 =C2=A0 =C2=A0 |||||||||||||||||||||||||||||||| |||||||||= ||||||||
=C2=A0 =C2=A0 =C2=A0 =C2=A0 CATTTTGCATGATGATGAGCTGGAACCCGCGCAACGGCTGAT= TACTGACC

=C2=A0 =C2=A0 150 =C2=A0 =C2=A0 . =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0= =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0= =C2=A0. =C2=A0 =C2=A0:=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 TCTACCAGACCGGTGTCGATGCGCTGATTGTT-AGGATATGG= GGATTCTG
=C2=A0 =C2=A0 =C2=A0 =C2=A0 |||||||||||||||||||||||||||||||| |||||||||= ||||||||
=C2=A0 =C2=A0 =C2=A0 =C2=A0 TCTACCAGACCGGTGTCGATGCGCTGATTGTTCAGGATATGG= GGATTCTG

=C2=A0 =C2=A0 200 =C2=A0 =C2=A0 . =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0= =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0 =C2=A0. =C2=A0 =C2=A0: =C2=A0= =C2=A0. =C2=A0 =C2=A0:=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 GAAACCTTGATATTCGCGCGCGATTGAACTGGCACGCCAGTA= CCGCAGTG
=C2=A0 =C2=A0 =C2=A0 =C2=A0 | || |||||||||| ||| |||||||||| |||||||||||= |||||||
=C2=A0 =C2=A0 =C2=A0 =C2=A0 G-AA-CTTGATATTC-CGC-CGATTGAACT-GCACGCCAGTA= -CGCAGTG
"""

The scoring scheme had to be changed from:
Score<short, Simple> scoringScheme(4, -13, -7); =C2=A0 // Determ= ined empirically to work well on PacBio data with my home-brewed aligner
to:
Score<short, Simple> scoringScheme(2, -1, -2); =C2=A0 =C2=A0 // = Scoring scheme recommended/tested by SeqAn docs

The initial Seed-set had to be set by hand with the reference-alignmen= t's start position:
SeedSet<Simple> seeds2;
addSeed(seeds2, TSeed( =C2=A012, =C2=A0 12, 100), seqan::Single());
addSeed(seeds2, TSeed( 120, =C2=A0120, 100), seqan::Single());

So it appears that there are at least two issues at play here:
-The value-type used for the bandedChainAlignment isn't large enou= gh to handle multi-kb alignments with moderate-sized penalties
-The default chaining algorithm doesn't handle large numbers of se= eds with small indel gaps well.

-Brett

On Sun, Nov 16, 2014 at 9:39 PM, Brett Bowman <bnbowman@gmail.= com> wrote:
Thanks Rene,

My query, reference, and canonical alignment from BLASR (the PacBio-specifi= c aligner) attached.

I also noticed that the seeds it's chaining with chainGlobalAlignm= ent() are way off the diagonal, which may be related - details below:=C2=A0=

"""
Query #1 - m130404_014004_sidney_c100506902550000001823076808221337_s1= _p0/5779/0_10397
Finished finding seeds
Seeds: 1939
Finishing chaining seeds
Chain: 44
Seed<Simple, TConfig>(7688, 57, 7706, 75, lower diag =3D 7631, u= pper diag =3D 7631) Length: 18
Seed<Simple, TConfig>(7707, 94, 7722, 109, lower diag =3D 7613, = upper diag =3D 7613) Length: 15
Seed<Simple, TConfig>(7933, 111, 7946, 124, lower diag =3D 7822,= upper diag =3D 7822) Length: 13
Seed<Simple, TConfig>(7949, 130, 7965, 146, lower diag =3D 7819,= upper diag =3D 7819) Length: 16
Seed<Simple, TConfig>(8065, 299, 8078, 312, lower diag =3D 7766,= upper diag =3D 7766) Length: 13
Seed<Simple, TConfig>(8109, 314, 8126, 331, lower diag =3D 7795,= upper diag =3D 7795) Length: 17
Seed<Simple, TConfig>(8169, 363, 8181, 375, lower diag =3D 7806,= upper diag =3D 7806) Length: 12
Seed<Simple, TConfig>(8208, 381, 8222, 395, lower diag =3D 7827,= upper diag =3D 7827) Length: 14
Seed<Simple, TConfig>(8222, 402, 8234, 414, lower diag =3D 7820,= upper diag =3D 7820) Length: 12
Seed<Simple, TConfig>(8287, 446, 8304, 463, lower diag =3D 7841,= upper diag =3D 7841) Length: 17
Seed<Simple, TConfig>(8304, 466, 8316, 478, lower diag =3D 7838,= upper diag =3D 7838) Length: 12
Seed<Simple, TConfig>(8326, 748, 8338, 760, lower diag =3D 7578,= upper diag =3D 7578) Length: 12
Seed<Simple, TConfig>(8354, 761, 8366, 773, lower diag =3D 7593,= upper diag =3D 7593) Length: 12
Seed<Simple, TConfig>(8426, 801, 8438, 813, lower diag =3D 7625,= upper diag =3D 7625) Length: 12
Seed<Simple, TConfig>(8702, 2291, 8721, 2310, lower diag =3D 641= 1, upper diag =3D 6411) Length: 19
Seed<Simple, TConfig>(8769, 2314, 8781, 2326, lower diag =3D 645= 5, upper diag =3D 6455) Length: 12
Seed<Simple, TConfig>(8794, 2387, 8806, 2399, lower diag =3D 640= 7, upper diag =3D 6407) Length: 12
Seed<Simple, TConfig>(8835, 2400, 8847, 2412, lower diag =3D 643= 5, upper diag =3D 6435) Length: 12
Seed<Simple, TConfig>(9162, 2650, 9174, 2662, lower diag =3D 651= 2, upper diag =3D 6512) Length: 12
Seed<Simple, TConfig>(9184, 2676, 9196, 2688, lower diag =3D 650= 8, upper diag =3D 6508) Length: 12
Seed<Simple, TConfig>(9196, 2736, 9208, 2748, lower diag =3D 646= 0, upper diag =3D 6460) Length: 12
Seed<Simple, TConfig>(9223, 2818, 9235, 2830, lower diag =3D 640= 5, upper diag =3D 6405) Length: 12
Seed<Simple, TConfig>(9251, 2844, 9267, 2860, lower diag =3D 640= 7, upper diag =3D 6407) Length: 16
Seed<Simple, TConfig>(9294, 2871, 9308, 2885, lower diag =3D 642= 3, upper diag =3D 6423) Length: 14
Seed<Simple, TConfig>(9314, 2891, 9327, 2904, lower diag =3D 642= 3, upper diag =3D 6423) Length: 13
Seed<Simple, TConfig>(9432, 2976, 9447, 2991, lower diag =3D 645= 6, upper diag =3D 6456) Length: 15
Seed<Simple, TConfig>(9515, 2992, 9527, 3004, lower diag =3D 652= 3, upper diag =3D 6523) Length: 12
Seed<Simple, TConfig>(9675, 3385, 9701, 3411, lower diag =3D 629= 0, upper diag =3D 6290) Length: 26
Seed<Simple, TConfig>(9724, 3414, 9736, 3426, lower diag =3D 631= 0, upper diag =3D 6310) Length: 12
Seed<Simple, TConfig>(9791, 3571, 9804, 3584, lower diag =3D 622= 0, upper diag =3D 6220) Length: 13
Seed<Simple, TConfig>(9805, 3596, 9817, 3608, lower diag =3D 620= 9, upper diag =3D 6209) Length: 12
Seed<Simple, TConfig>(9818, 4915, 9830, 4927, lower diag =3D 490= 3, upper diag =3D 4903) Length: 12
Seed<Simple, TConfig>(9842, 4939, 9854, 4951, lower diag =3D 490= 3, upper diag =3D 4903) Length: 12
Seed<Simple, TConfig>(9873, 5045, 9885, 5057, lower diag =3D 482= 8, upper diag =3D 4828) Length: 12
Seed<Simple, TConfig>(9886, 5077, 9898, 5089, lower diag =3D 480= 9, upper diag =3D 4809) Length: 12
Seed<Simple, TConfig>(9943, 5242, 9955, 5254, lower diag =3D 470= 1, upper diag =3D 4701) Length: 12
Seed<Simple, TConfig>(9957, 5385, 9969, 5397, lower diag =3D 457= 2, upper diag =3D 4572) Length: 12
Seed<Simple, TConfig>(9994, 5423, 10006, 5435, lower diag =3D 45= 71, upper diag =3D 4571) Length: 12
Seed<Simple, TConfig>(10062, 7096, 10074, 7108, lower diag =3D 2= 966, upper diag =3D 2966) Length: 12
Seed<Simple, TConfig>(10102, 7109, 10114, 7121, lower diag =3D 2= 993, upper diag =3D 2993) Length: 12
Seed<Simple, TConfig>(10156, 7131, 10178, 7153, lower diag =3D 3= 025, upper diag =3D 3025) Length: 22
Seed<Simple, TConfig>(10277, 7354, 10299, 7376, lower diag =3D 2= 923, upper diag =3D 2923) Length: 22
Seed<Simple, TConfig>(10299, 7378, 10313, 7392, lower diag =3D 2= 921, upper diag =3D 2921) Length: 14
Seed<Simple, TConfig>(10371, 7400, 10385, 7414, lower diag =3D 2= 971, upper diag =3D 2971) Length: 14
"""

-Brett

On Sun, Nov 16, 2014 at 2:57 AM, Rahn, Ren=C3=A9= <rene.mae= rker@fu-berlin.de> wrote:
Hey Brett,=C2=A0

It could have multiple reasons.=C2=A0
In general, it means that there was a traceback path from a seed or a = gap, that couldn=E2=80=99t be connected with one of the so far generated tr= aceback paths. Note, that the traceback is computed incrementally to reduce= the space requirements.=C2=A0
If you could send me a simple text file containing the seeds of the se= ed chain (one seed per row using the <<-operator), that is input to t= he banded chain alignment function, I could have a look at it and fix the p= roblem.=C2=A0
Also, I opened an issue in github:=C2=A0https://github.com/seqan/seqan/is= sues/699, for tracking the issue.


Kind regards,=C2=A0

Ren=C3=A9 Rahn

On 16 Nov 2014, at 04:17, Brett Bowman <bnbowman@gmail.com> wrote:

I'm trying to build a tool with=C2=A0SeqAn= =C2=A0to quickly align some PacBio data, using "bandedChainAlignment", bu= t I'm consistently getting a crash during the trace-back step.=C2=A0 Th= e generation of the Seeds (SuffixArray) and the finding of the base SeedCha= in works fine, but the final step of turning that into an alignment doesn't appear to work. =C2=A0

Suggestions?

Error Log:
"""
bbowman@localhost:~/git/SRSLI$ ./src/C++/srsli test/data/query/ecoli_5= p_sample.fastq test/data/reference/ecoliK12_5p_assembly.fasta=C2=A0
Query 0
Finished finding seeds
Finishing chaining seeds
Starting alignment of sequences
/usr/include/seqan/= seeds/banded_chain_alignment_traceback.h:195 Assertion failed : isGlued =3D= =3D true was: 0 !=3D 1 (Fatal error while trying to connect trace backs: No= glue point available!)
Aborted (core dumped)
"""

-Brett
_______________________________________________
seqan-dev mailing list
seqan-dev= @lists.fu-berlin.de
https://lists.fu-berlin.de/listinfo/seqan-dev

---

Ren=C3=A9 Rahn
Ph.D. Student
--------------------------------
--------------------------------
Institute of Computer Science
Algorithmic Bioinformatics (ABI)
--------------------------------
Freie Universit=C3=A4t Berlin
Takustra=C3=9Fe 9
14195 Berlin
--------------------------------


_______________________________________________
seqan-dev mailing list
seqan-dev= @lists.fu-berlin.de
https://lists.fu-berlin.de/listinfo/seqan-dev




_______________________________________________
seqan-dev mailing list
seqan-dev= @lists.fu-berlin.de
https://lists.fu-berlin.de/listinfo/seqan-dev

---

Ren=C3=A9 Rahn
Ph.D. Student
--------------------------------
--------------------------------
Institute of Computer Science
Algorithmic Bioinformatics (ABI)
--------------------------------
Freie Universit=C3=A4t Berlin
Takustra=C3=9Fe 9
14195 Berlin
--------------------------------

_______________________________________________
seqan-dev mailing list
seqan-dev= @lists.fu-berlin.de
https://lists.fu-berlin.de/listinfo/seqan-dev

---

Ren=C3=A9 Rahn
Ph.D. Student
--------------------------------
--------------------------------
Institute of Computer Science
Algorithmic Bioinformatics (ABI)
--------------------------------
Freie Universit=C3=A4t Berlin
Takustra=C3=9Fe 9
14195 Berlin
--------------------------------


_______________________________________________
seqan-dev mailing list
seqan-dev@lists.fu-berlin.d= e
https://lists.fu-berlin.de/listinfo/seqan-dev


--089e0122a97271faa40508271f9d-- From bnbowman@gmail.com Wed Nov 19 07:34:50 2014 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1Xqyqm-001gJr-F0>; Wed, 19 Nov 2014 07:34:48 +0100 Received: from mail-yk0-f180.google.com ([209.85.160.180]) by relay1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1Xqyqm-000TSi-5s>; Wed, 19 Nov 2014 07:34:48 +0100 Received: by mail-yk0-f180.google.com with SMTP id 9so5757866ykp.25 for ; Tue, 18 Nov 2014 22:34:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=qxB2cedsGY88ztpAELdcyGYwnM9kGAMd4mB9Q6CC4gY=; b=anK4iJnaTCggHsI48k+wUyZtGaJbdNVZOXGQUZcY/XLGAo04ZrdS+b9et50MnLy6uR w0M4Fz1SwlbayMh9MzPLSEQubIITmsPJOWoVxpDizC2E9RMJZwlpXVeUI/uGtY2n2RFI hl/Oc2Xgz/+YzfzM6bykX+wxMDAHN5RBRzTtn+RhEv+gJcctX/RcmMXB2NF7ewDgyauX K/a4NQGXvg2GN1VYo6r/AQA0aIJ/BU084oWiliJqeV95jZ3F3ADCeFxlaIHC+3DdflHi NMN4sck56X6p2uUDEPICzTGQ8PxRn2cNiVU/6uBhDNzyZ36XydNO4C//II0qzhVIb800 tBEw== MIME-Version: 1.0 X-Received: by 10.236.228.72 with SMTP id e68mr14000180yhq.56.1416378885398; Tue, 18 Nov 2014 22:34:45 -0800 (PST) Received: by 10.170.110.19 with HTTP; Tue, 18 Nov 2014 22:34:45 -0800 (PST) Date: Tue, 18 Nov 2014 22:34:45 -0800 Message-ID: From: Brett Bowman To: SeqAn Development Content-Type: multipart/alternative; boundary=001a11c2caee54e68e0508306832 X-Originating-IP: 209.85.160.180 X-ZEDAT-Hint: A X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1416378888-00067E64-47C87C4B/0/0 X-Bogosity: Unsure, tests=bogofilter, spamicity=0.500043, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=0.8 required=5.0 tests=FREEMAIL_FROM, FU_BOGO_UNSURE, HTML_MESSAGE, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, T_DKIM_INVALID X-Spam-Checker-Version: SpamAssassin 3.4.0 on Algerien.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: [Seqan-dev] Trouble Hashing Kmers into Qgram Index X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Nov 2014 06:34:50 -0000 --001a11c2caee54e68e0508306832 Content-Type: text/plain; charset=UTF-8 Sorry to be a bother, but I decided to go back to the docs and start fresh and I'm still having issues. We're using Qgrams, so I trying to write a simple loop to search for all 12mers from a query sequence "seq" in the index formed from a StringSet of references "refSeq", building on the example code in the Q-Gram Index tutorial: """ TFinder qgramFinder(index); for (size_t i = 0; i < length(seq)-12; i++) { TInfix::Type kmer = infix(seq, i, i+12); std::cout << kmer << std::endl; seqan::hash(indexShape(index), kmer); for (unsigned i = 0; i < length(getOccurrences(index, indexShape(index))); ++i) { std::cout << getOccurrences(index, indexShape(index))[i] << std::endl; } std::cout << std::endl; } """ but I'm getting a fairly obtuse error message I don't quite understand, and doesn't point me back to any specific lines in my code. """ /usr/include/seqan/index/shape_base.h:535:55: error: indirection requires pointer operand ('seqan::Segment, seqan::Alloc >, seqan::InfixSegment>' invalid) hash * ValueSize::VALUE + ordValue((TValue)*it), ^~~ /usr/include/seqan/index/shape_base.h:548:22: note: in instantiation of function template specialization 'seqan::_hashFixedShape, seqan::Segment, seqan::Alloc >, seqan::InfixSegment>, 12>' requested here return me.hValue = _hashFixedShape(me.hValue, it, TValue(), UngappedShape()); ^ /home/bbowman/git/SRSLI/src/C++/SparseAlignment.hpp:102:16: note: in instantiation of function template specialization 'seqan::hash, 12, seqan::Segment, seqan::Alloc >, seqan::InfixSegment> >' requested here seqan::hash(indexShape(index), kmer); ^ /home/bbowman/git/SRSLI/src/C++/main.cpp:86:9: note: in instantiation of function template specialization 'FindSeeds2, seqan::IndexQGram, seqan::Tag > > >' requested here FindSeeds2(querySeedHits, refSetIndex, idxAndRecord.second.Seq); """ Suggestions? Sincerely, Brett --001a11c2caee54e68e0508306832 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Sorry to be a bother, but I decided to go back t= o the docs and start fresh and I'm still having issues. =C2=A0

We're using Qgrams, so I trying to write a simple loop= to search for all 12mers from a query sequence "seq" in the inde= x formed from a StringSet of references "refSeq", building on the= example code in the Q-Gram Index tutorial:
""&qu= ot;
=C2=A0 TFinder qgramFinder(index);
=C2=A0for (= size_t i =3D 0; i < length(seq)-12; i++)
=C2=A0{
=C2= =A0 =C2=A0 =C2=A0TInfix::Type kmer =3D infix(seq, i, i+12);
=C2= =A0 =C2=A0 =C2=A0std::cout << kmer << std::endl;

=
=C2=A0 =C2=A0 =C2=A0seqan::hash(indexShape(index), kmer);
<= div>=C2=A0 =C2=A0 =C2=A0for (unsigned i =3D 0; i < length(getOccurrences= (index, indexShape(index))); ++i)
=C2=A0 =C2=A0 =C2=A0{
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0std::cout << getOccurrences(index,= indexShape(index))[i] << std::endl;
=C2=A0 =C2=A0 =C2=A0}<= /div>
=C2=A0 =C2=A0 =C2=A0std::cout << std::endl;
= =C2=A0}
"""

but I&#= 39;m getting a fairly obtuse error message I don't quite understand, an= d doesn't point me back to any specific lines in my code.
"""
/usr/include/seqan/index/shape_base.h:53= 5:55: error: indirection requires pointer operand ('seqan::Segment<c= onst seqan::String<seqan::SimpleType<unsigned
=C2=A0 =C2=A0= =C2=A0 char, seqan::Dna5_>, seqan::Alloc<void> >, seqan::Infix= Segment>' invalid)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 hash * ValueSize<TValue>= ;::VALUE + ordValue((TValue)*it),
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0^~~
/usr/include/seqan/index/shape_base.h:548:22: no= te: in instantiation of function template specialization 'seqan::_hashF= ixedShape<unsigned long,
=C2=A0 =C2=A0 =C2=A0 seqan::SimpleTyp= e<unsigned char, seqan::Dna5_>, seqan::Segment<const seqan::String= <seqan::SimpleType<unsigned char, seqan::Dna5_>, seqan::Alloc<v= oid> >,
=C2=A0 =C2=A0 =C2=A0 seqan::InfixSegment>, 12>= ;' requested here
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 return me.hValue =3D _hashFixedShape(me.hValue, it, TValue(),= UngappedShape<q>());
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0^
/home/bbowman/git/SRSLI/src/C++/SparseAlignmen= t.hpp:102:16: note: in instantiation of function template specialization &#= 39;seqan::hash<seqan::SimpleType<unsigned
=C2=A0 =C2=A0 =C2= =A0 char, seqan::Dna5_>, 12, seqan::Segment<const seqan::String<se= qan::SimpleType<unsigned char, seqan::Dna5_>, seqan::Alloc<void>= ; >, seqan::InfixSegment>
=C2=A0 =C2=A0 =C2=A0 >' re= quested here
=C2=A0 =C2=A0 =C2=A0 =C2=A0 seqan::hash(indexShape(i= ndex), kmer);
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0^
/home/bbowman/git/SRSLI/src/C++/main.cpp:86:9: note: in i= nstantiation of function template specialization 'FindSeeds2<FindSee= dsConfig<12,
=C2=A0 =C2=A0 =C2=A0 seqan::UngappedShape<12&g= t;, seqan::IndexQGram<seqan::UngappedShape<12>, seqan::Tag<seqa= n::Default_> > > >' requested here
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 FindSeeds2(querySeedHits, refSetIndex, idxAndRecord.second.Se= q);
"""

Suggestions= ?

Sincerely,
Brett
--001a11c2caee54e68e0508306832-- From rene.maerker@fu-berlin.de Wed Nov 19 13:25:25 2014 Received: from outpost9.zedat.fu-berlin.de ([130.133.4.95]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1Xr4K2-0021kJ-UZ>; Wed, 19 Nov 2014 13:25:23 +0100 Received: from relay2.zedat.fu-berlin.de ([130.133.4.80]) by outpost.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1Xr4K2-0003TK-T0>; Wed, 19 Nov 2014 13:25:22 +0100 Received: from cas2.campus.fu-berlin.de ([130.133.170.202]) by relay2.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1Xr4K2-002i0y-FQ>; Wed, 19 Nov 2014 13:25:22 +0100 Received: from EX03A.campus.fu-berlin.de ([130.133.170.134]) by CAS2.campus.fu-berlin.de ([130.133.170.202]) with mapi id 14.03.0210.002; Wed, 19 Nov 2014 13:25:21 +0100 From: =?utf-8?B?UmFobiwgUmVuw6k=?= To: SeqAn Development Thread-Topic: [Seqan-dev] Trouble Hashing Kmers into Qgram Index Thread-Index: AQHQA8LxrtQywv1XQ0mnyKMTKWyw7pxnz3mA Message-ID: References: In-Reply-To: Accept-Language: de-DE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Content-Type: multipart/alternative; boundary="_000_C870191C64024F709E64DF42EC0D38ADzedatfuberlinde_" MIME-Version: 1.0 Date: Wed, 19 Nov 2014 13:25:20 +0100 X-Original-Date: Wed, 19 Nov 2014 12:25:20 +0000 X-Originating-IP: 130.133.170.202 X-ZEDAT-Hint: XA X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1416399922-00067E64-CE17078F/0/0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.330353, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=-50.0 required=5.0 tests=ALL_TRUSTED,HTML_MESSAGE X-Spam-Checker-Version: SpamAssassin 3.4.0 on Burundi.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [Seqan-dev] Trouble Hashing Kmers into Qgram Index X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Nov 2014 12:25:25 -0000 --_000_C870191C64024F709E64DF42EC0D38ADzedatfuberlinde_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGV5LA0KDQp0aGUgcHJvYmxlbSBsaWVzIGluIHRoZSBoYXNoKGluZGV4U2hhcGUoaW5kZXgpLCBr bWVyKSBmdW5jdGlvbi4NClRoZSBoYXNoIGZ1bmN0aW9uIG9ubHkgdGFrZXMgYW4gaXRlcmF0b3Ig b3IgcG9pbnRlciBhcyBzZWNvbmQgYXJndW1lbnQuDQpTbyBpbiB5b3VyIGNhc2UgdGhlIHNpbXBs ZSBzb2x1dGlvbiB3b3VsZCBiZSB0byBjYWxsIHRoZSBmdW5jdGlvbiBoYXNoKGluZGV4U2hhcGUo aW5kZXgpLCBpdCksIHdoaWxlIHVzaW5nIGFuIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciB0aGUg dGV4dCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSB1bnNpZ25lZCBpbnRlZ2VyLiBUaGlzIGxpdHRsZSBi ZWhhdmlvdXIgZG9lcyBub3Qgc2VlbSBvYnZpb3VzLCBhcyBpbiB0aGUgdHV0b3JpYWwgeW91IHBh c3MgYSBzdHJpbmcgbGl0ZXJhbC4gQnV0IGluIGZhY3QgYSBzdHJpbmcgbGl0ZXJhbCBpcyBqdXN0 IGEgY29uc3QgY2hhciAqLCBzbyBpdCB3b3Jrcy4NCg0KSGVyZSB5b3Ugc2VlIGFuIGV4YW1wbGUg Y29kZSB0byB3b3JrIHdpdGggYSkgdXNpbmcgdGhlIGZpbmRlciBpbnRlcmZhY2UgYW5kIGIpIGRp cmVjdGx5IG9wZXJhdGluZyBvbiB0aGUgaW5kZXguDQpJSFRILg0KDQpjaGVlcnMsDQoNClJlbsOp DQoNCiAgICB0eXBlZGVmIEluZGV4PERuYVN0cmluZywgSW5kZXhRR3JhbTxVbmdhcHBlZFNoYXBl PDEyPiA+ID4gVFFHcmFtSW5kZXg7DQogICAgdHlwZWRlZiBGaW5kZXI8VFFHcmFtSW5kZXg+IFRG aW5kZXI7DQogICAgdHlwZWRlZiBJdGVyYXRvcjxEbmFTdHJpbmcsIFN0YW5kYXJkPjo6VHlwZSBU SXRlcmF0b3I7DQogICAgdHlwZWRlZiBGaWJyZTxUUUdyYW1JbmRleCwgUUdyYW1TaGFwZT46OlR5 cGUgVFNoYXBlOw0KDQogICAgVFFHcmFtSW5kZXggaW5kZXgocmVmKTsNCiAgICBpbmRleFJlcXVp cmUoaW5kZXgsIFFHcmFtU0FEaXIoKSk7ICAvLyBPbi1kZW1hbmQgaW5kZXggY3JlYXRpb24uDQoN CiAgICAvLyBhKSBVc2luZyB0aGUgZmluZGVyIGludGVyZmFjZS4NCiAgICBURmluZGVyIGZpbmRl cihpbmRleCk7DQoNCiAgICBmb3IgKFRJdGVyYXRvciBpdCA9IGJlZ2luKHF1ZXJ5LCBTdGFuZGFy ZCgpKTsgaXQgIT0gZW5kKHF1ZXJ5LCBTdGFuZGFyZCgpKSAtIDEyOyArK2l0KQ0KICAgIHsNCiAg ICAgICAgc3RkOjpjb3V0IDw8ICJPY2MgYXQ6ICI7DQogICAgICAgIHdoaWxlKGZpbmQoZmluZGVy LCBpbmZpeChxdWVyeSwgaXQsIGl0KzEyKSkpDQogICAgICAgICAgICBzdGQ6OmNvdXQgPDwgcG9z aXRpb24oZmluZGVyKSA8PCAiICI7DQogICAgICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7DQog ICAgICAgIGNsZWFyKGZpbmRlcik7ICAvLyBDbGVhciBmaW5kZXIgZm9yIG5leHQgc2VhcmNoLg0K ICAgIH0NCg0KICAgIC8vIGIpIFVzaW5nIHRoZSBpbmRleCBpbnRlcmZhY2UuDQogICAgVFNoYXBl ICYgc2hhcGUgPSBpbmRleFNoYXBlKGluZGV4KTsNCiAgICBoYXNoSW5pdChzaGFwZSwgYmVnaW4o cXVlcnksIFN0YW5kYXJkKCkpKTsNCiAgICBmb3IgKFRJdGVyYXRvciBpdCA9IGJlZ2luKHF1ZXJ5 LCBTdGFuZGFyZCgpKTsgaXQgIT0gZW5kKHF1ZXJ5LCBTdGFuZGFyZCgpKSAtIDEyOyArK2l0KQ0K ICAgIHsNCiAgICAgICAgc3RkOjpjb3V0IDw8ICJPY2MgYXQ6ICI7DQogICAgICAgIGhhc2hOZXh0 KHNoYXBlLCBpdCk7DQogICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGgoZ2V0 T2NjdXJyZW5jZXMoaW5kZXgsIHNoYXBlKSk7ICsraSkNCiAgICAgICAgICAgIHN0ZDo6Y291dCA8 PCBnZXRPY2N1cnJlbmNlcyhpbmRleCwgc2hhcGUpW2ldIDw8ICIgIjsNCiAgICAgICAgc3RkOjpj b3V0IDw8IHN0ZDo6ZW5kbDsNCg0KICAgIH0NCg0KT24gMTkgTm92IDIwMTQsIGF0IDA3OjM0LCBC cmV0dCBCb3dtYW4gPGJuYm93bWFuQGdtYWlsLmNvbTxtYWlsdG86Ym5ib3dtYW5AZ21haWwuY29t Pj4gd3JvdGU6DQoNClNvcnJ5IHRvIGJlIGEgYm90aGVyLCBidXQgSSBkZWNpZGVkIHRvIGdvIGJh Y2sgdG8gdGhlIGRvY3MgYW5kIHN0YXJ0IGZyZXNoIGFuZCBJJ20gc3RpbGwgaGF2aW5nIGlzc3Vl cy4NCg0KV2UncmUgdXNpbmcgUWdyYW1zLCBzbyBJIHRyeWluZyB0byB3cml0ZSBhIHNpbXBsZSBs b29wIHRvIHNlYXJjaCBmb3IgYWxsIDEybWVycyBmcm9tIGEgcXVlcnkgc2VxdWVuY2UgInNlcSIg aW4gdGhlIGluZGV4IGZvcm1lZCBmcm9tIGEgU3RyaW5nU2V0IG9mIHJlZmVyZW5jZXMgInJlZlNl cSIsIGJ1aWxkaW5nIG9uIHRoZSBleGFtcGxlIGNvZGUgaW4gdGhlIFEtR3JhbSBJbmRleCB0dXRv cmlhbDoNCiIiIg0KICBURmluZGVyIHFncmFtRmluZGVyKGluZGV4KTsNCiBmb3IgKHNpemVfdCBp ID0gMDsgaSA8IGxlbmd0aChzZXEpLTEyOyBpKyspDQogew0KICAgICBUSW5maXg6OlR5cGUga21l ciA9IGluZml4KHNlcSwgaSwgaSsxMik7DQogICAgIHN0ZDo6Y291dCA8PCBrbWVyIDw8IHN0ZDo6 ZW5kbDsNCg0KICAgICBzZXFhbjo6aGFzaChpbmRleFNoYXBlKGluZGV4KSwga21lcik7DQogICAg IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGgoZ2V0T2NjdXJyZW5jZXMoaW5kZXgsIGlu ZGV4U2hhcGUoaW5kZXgpKSk7ICsraSkNCiAgICAgew0KICAgICAgICAgc3RkOjpjb3V0IDw8IGdl dE9jY3VycmVuY2VzKGluZGV4LCBpbmRleFNoYXBlKGluZGV4KSlbaV0gPDwgc3RkOjplbmRsOw0K ICAgICB9DQogICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7DQogfQ0KIiIiDQoNCmJ1dCBJJ20g Z2V0dGluZyBhIGZhaXJseSBvYnR1c2UgZXJyb3IgbWVzc2FnZSBJIGRvbid0IHF1aXRlIHVuZGVy c3RhbmQsIGFuZCBkb2Vzbid0IHBvaW50IG1lIGJhY2sgdG8gYW55IHNwZWNpZmljIGxpbmVzIGlu IG15IGNvZGUuDQoNCiIiIg0KL3Vzci9pbmNsdWRlL3NlcWFuL2luZGV4L3NoYXBlX2Jhc2UuaDo1 MzU6NTU6IGVycm9yOiBpbmRpcmVjdGlvbiByZXF1aXJlcyBwb2ludGVyIG9wZXJhbmQgKCdzZXFh bjo6U2VnbWVudDxjb25zdCBzZXFhbjo6U3RyaW5nPHNlcWFuOjpTaW1wbGVUeXBlPHVuc2lnbmVk DQogICAgICBjaGFyLCBzZXFhbjo6RG5hNV8+LCBzZXFhbjo6QWxsb2M8dm9pZD4gPiwgc2VxYW46 OkluZml4U2VnbWVudD4nIGludmFsaWQpDQogICAgICAgICAgICAgICAgICAgICAgICBoYXNoICog VmFsdWVTaXplPFRWYWx1ZT46OlZBTFVFICsgb3JkVmFsdWUoKFRWYWx1ZSkqaXQpLA0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXn5+DQovdXNyL2luY2x1ZGUvc2VxYW4vaW5kZXgvc2hhcGVfYmFzZS5oOjU0 ODoyMjogbm90ZTogaW4gaW5zdGFudGlhdGlvbiBvZiBmdW5jdGlvbiB0ZW1wbGF0ZSBzcGVjaWFs aXphdGlvbiAnc2VxYW46Ol9oYXNoRml4ZWRTaGFwZTx1bnNpZ25lZCBsb25nLA0KICAgICAgc2Vx YW46OlNpbXBsZVR5cGU8dW5zaWduZWQgY2hhciwgc2VxYW46OkRuYTVfPiwgc2VxYW46OlNlZ21l bnQ8Y29uc3Qgc2VxYW46OlN0cmluZzxzZXFhbjo6U2ltcGxlVHlwZTx1bnNpZ25lZCBjaGFyLCBz ZXFhbjo6RG5hNV8+LCBzZXFhbjo6QWxsb2M8dm9pZD4gPiwNCiAgICAgIHNlcWFuOjpJbmZpeFNl Z21lbnQ+LCAxMj4nIHJlcXVlc3RlZCBoZXJlDQogICAgICAgICAgICAgICAgcmV0dXJuIG1lLmhW YWx1ZSA9IF9oYXNoRml4ZWRTaGFwZShtZS5oVmFsdWUsIGl0LCBUVmFsdWUoKSwgVW5nYXBwZWRT aGFwZTxxPigpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0KL2hvbWUv YmJvd21hbi9naXQvU1JTTEkvc3JjL0MrKy9TcGFyc2VBbGlnbm1lbnQuaHBwOjEwMjoxNjogbm90 ZTogaW4gaW5zdGFudGlhdGlvbiBvZiBmdW5jdGlvbiB0ZW1wbGF0ZSBzcGVjaWFsaXphdGlvbiAn c2VxYW46Omhhc2g8c2VxYW46OlNpbXBsZVR5cGU8dW5zaWduZWQNCiAgICAgIGNoYXIsIHNlcWFu OjpEbmE1Xz4sIDEyLCBzZXFhbjo6U2VnbWVudDxjb25zdCBzZXFhbjo6U3RyaW5nPHNlcWFuOjpT aW1wbGVUeXBlPHVuc2lnbmVkIGNoYXIsIHNlcWFuOjpEbmE1Xz4sIHNlcWFuOjpBbGxvYzx2b2lk PiA+LCBzZXFhbjo6SW5maXhTZWdtZW50Pg0KICAgICAgPicgcmVxdWVzdGVkIGhlcmUNCiAgICAg ICAgc2VxYW46Omhhc2goaW5kZXhTaGFwZShpbmRleCksIGttZXIpOw0KICAgICAgICAgICAgICAg Xg0KL2hvbWUvYmJvd21hbi9naXQvU1JTTEkvc3JjL0MrKy9tYWluLmNwcDo4Njo5OiBub3RlOiBp biBpbnN0YW50aWF0aW9uIG9mIGZ1bmN0aW9uIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9uICdGaW5k U2VlZHMyPEZpbmRTZWVkc0NvbmZpZzwxMiwNCiAgICAgIHNlcWFuOjpVbmdhcHBlZFNoYXBlPDEy Piwgc2VxYW46OkluZGV4UUdyYW08c2VxYW46OlVuZ2FwcGVkU2hhcGU8MTI+LCBzZXFhbjo6VGFn PHNlcWFuOjpEZWZhdWx0Xz4gPiA+ID4nIHJlcXVlc3RlZCBoZXJlDQogICAgICAgIEZpbmRTZWVk czIocXVlcnlTZWVkSGl0cywgcmVmU2V0SW5kZXgsIGlkeEFuZFJlY29yZC5zZWNvbmQuU2VxKTsN CiIiIg0KDQpTdWdnZXN0aW9ucz8NCg0KU2luY2VyZWx5LA0KQnJldHQNCg0KX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCnNlcWFuLWRldiBtYWlsaW5nIGxp c3QNCnNlcWFuLWRldkBsaXN0cy5mdS1iZXJsaW4uZGU8bWFpbHRvOnNlcWFuLWRldkBsaXN0cy5m dS1iZXJsaW4uZGU+DQpodHRwczovL2xpc3RzLmZ1LWJlcmxpbi5kZS9saXN0aW5mby9zZXFhbi1k ZXYNCg0KLS0tDQoNClJlbsOpIFJhaG4NClBoLkQuIFN0dWRlbnQNCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQpUZWw6ICAoKzQ5KSAzMCA4MzggNzUyNzcNCk1haWw6IHJlbmUucmFo bkBmdS1iZXJsaW4uZGU8bWFpbHRvOnJlbmUucmFobkBmdS1iZXJsaW4uZGU+DQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UNCkFs Z29yaXRobWljIEJpb2luZm9ybWF0aWNzIChBQkkpDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KRnJlaWUgVW5pdmVyc2l0w6R0IEJlcmxpbg0KVGFrdXN0cmHDn2UgOQ0KMTQxOTUg QmVybGluDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQo= --_000_C870191C64024F709E64DF42EC0D38ADzedatfuberlinde_ Content-Type: text/html; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IHN0eWxlPSJ3b3JkLXdy YXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJy ZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPg0KSGV5LA0KPGRpdiBjbGFzcz0iIj48 YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+dGhlIHByb2JsZW0gbGllcyBpbiB0 aGUgaGFzaChpbmRleFNoYXBlKGluZGV4KSwga21lcikgZnVuY3Rpb24uPC9kaXY+DQo8ZGl2IGNs YXNzPSIiPlRoZSBoYXNoIGZ1bmN0aW9uIG9ubHkgdGFrZXMgYW4gaXRlcmF0b3Igb3IgcG9pbnRl ciBhcyBzZWNvbmQgYXJndW1lbnQuJm5ic3A7PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlNvIGluIHlv dXIgY2FzZSB0aGUgc2ltcGxlIHNvbHV0aW9uIHdvdWxkIGJlIHRvIGNhbGwgdGhlIGZ1bmN0aW9u IGhhc2goaW5kZXhTaGFwZShpbmRleCksIGl0KSwgd2hpbGUgdXNpbmcgYW4gaXRlcmF0b3IgdG8g aXRlcmF0ZSBvdmVyIHRoZSB0ZXh0IGluc3RlYWQgb2YgdXNpbmcgdGhlIHVuc2lnbmVkIGludGVn ZXIuIFRoaXMgbGl0dGxlIGJlaGF2aW91ciBkb2VzIG5vdCBzZWVtIG9idmlvdXMsIGFzIGluIHRo ZSB0dXRvcmlhbA0KIHlvdSBwYXNzIGEgc3RyaW5nIGxpdGVyYWwuIEJ1dCBpbiBmYWN0IGEgc3Ry aW5nIGxpdGVyYWwgaXMganVzdCBhIGNvbnN0IGNoYXIgKiwgc28gaXQgd29ya3MuPC9kaXY+DQo8 ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5IZXJlIHlv dSBzZWUgYW4gZXhhbXBsZSBjb2RlIHRvIHdvcmsgd2l0aCBhKSB1c2luZyB0aGUgZmluZGVyIGlu dGVyZmFjZSBhbmQgYikgZGlyZWN0bHkgb3BlcmF0aW5nIG9uIHRoZSBpbmRleC48L2Rpdj4NCjxk aXYgY2xhc3M9IiI+SUhUSC48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9k aXY+DQo8ZGl2IGNsYXNzPSIiPmNoZWVycyw8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNz PSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlJlbsOpJm5ic3A7PC9kaXY+DQo8ZGl2IGNsYXNz PSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4NCjxkaXYgc3R5bGU9Im1h cmdpbjogMHB4OyBmb250LWZhbWlseTogTWVubG87IGNvbG9yOiByZ2IoNTIsIDE0OSwgMTc1KTsi IGNsYXNzPSIiPg0KPHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1v bi1saWdhdHVyZXM7IGNvbG9yOiAjMDAwMDAwIiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7Jm5ic3A7 PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGln YXR1cmVzOyBjb2xvcjogIzA0MzNmZiIgY2xhc3M9IiI+dHlwZWRlZjwvc3Bhbj48c3BhbiBzdHls ZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMw MDAwMDAiIGNsYXNzPSIiPg0KPC9zcGFuPkluZGV4PHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1s aWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjMDAwMDAwIiBjbGFzcz0iIj4m bHQ7PC9zcGFuPkRuYVN0cmluZzxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBu by1jb21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzAwMDAwMCIgY2xhc3M9IiI+LA0KPC9zcGFuPklu ZGV4UUdyYW08c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxp Z2F0dXJlczsgY29sb3I6ICMwMDAwMDAiIGNsYXNzPSIiPiZsdDs8L3NwYW4+VW5nYXBwZWRTaGFw ZTxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVz OyBjb2xvcjogIzAwMDAwMCIgY2xhc3M9IiI+Jmx0OzEyJmd0OyAmZ3Q7ICZndDsgVFFHcmFtSW5k ZXg7PC9zcGFuPjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7IGZvbnQtZmFtaWx5OiBN ZW5sbzsgY29sb3I6IHJnYig1MiwgMTQ5LCAxNzUpOyIgY2xhc3M9IiI+DQo8c3BhbiBzdHlsZT0i Zm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMwMDAw MDAiIGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsNCjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC12YXJp YW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMwNDMzZmYiIGNsYXNz PSIiPnR5cGVkZWY8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5v LWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjMDAwMDAwIiBjbGFzcz0iIj4NCjwvc3Bhbj5GaW5k ZXI8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJl czsgY29sb3I6ICMwMDAwMDAiIGNsYXNzPSIiPiZsdDs8L3NwYW4+VFFHcmFtSW5kZXg8c3BhbiBz dHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6 ICMwMDAwMDAiIGNsYXNzPSIiPiZndDsgVEZpbmRlcjs8L3NwYW4+PC9kaXY+DQo8ZGl2IHN0eWxl PSJtYXJnaW46IDBweDsgZm9udC1mYW1pbHk6IE1lbmxvOyBjb2xvcjogcmdiKDUyLCAxNDksIDE3 NSk7IiBjbGFzcz0iIj4NCjxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1j b21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzAwMDAwMCIgY2xhc3M9IiI+Jm5ic3A7ICZuYnNwOw0K PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGln YXR1cmVzOyBjb2xvcjogIzA0MzNmZiIgY2xhc3M9IiI+dHlwZWRlZjwvc3Bhbj48c3BhbiBzdHls ZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMw MDAwMDAiIGNsYXNzPSIiPg0KPC9zcGFuPkl0ZXJhdG9yPHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFu dC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjMDAwMDAwIiBjbGFzcz0i Ij4mbHQ7PC9zcGFuPkRuYVN0cmluZzxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVz OiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzAwMDAwMCIgY2xhc3M9IiI+LA0KPC9zcGFu PlN0YW5kYXJkPHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1s aWdhdHVyZXM7IGNvbG9yOiAjMDAwMDAwIiBjbGFzcz0iIj4mZ3Q7Ojo8L3NwYW4+VHlwZTxzcGFu IHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xv cjogIzAwMDAwMCIgY2xhc3M9IiI+IFRJdGVyYXRvcjs8L3NwYW4+PC9kaXY+DQo8ZGl2IHN0eWxl PSJtYXJnaW46IDBweDsgZm9udC1mYW1pbHk6IE1lbmxvOyBjb2xvcjogcmdiKDUyLCAxNDksIDE3 NSk7IiBjbGFzcz0iIj4NCjxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1j b21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzAwMDAwMCIgY2xhc3M9IiI+Jm5ic3A7ICZuYnNwOw0K PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGln YXR1cmVzOyBjb2xvcjogIzA0MzNmZiIgY2xhc3M9IiI+dHlwZWRlZjwvc3Bhbj48c3BhbiBzdHls ZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMw MDAwMDAiIGNsYXNzPSIiPg0KPC9zcGFuPkZpYnJlPHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1s aWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjMDAwMDAwIiBjbGFzcz0iIj4m bHQ7PC9zcGFuPlRRR3JhbUluZGV4PHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6 IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjMDAwMDAwIiBjbGFzcz0iIj4sDQo8L3NwYW4+ UUdyYW1TaGFwZTxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24t bGlnYXR1cmVzOyBjb2xvcjogIzAwMDAwMCIgY2xhc3M9IiI+Jmd0Ozo6PC9zcGFuPlR5cGU8c3Bh biBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29s b3I6ICMwMDAwMDAiIGNsYXNzPSIiPiBUU2hhcGU7PC9zcGFuPjwvZGl2Pg0KPGRpdiBzdHlsZT0i bWFyZ2luOiAwcHg7IGZvbnQtZmFtaWx5OiBNZW5sbzsgbWluLWhlaWdodDogMTRweDsiIGNsYXNz PSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7IGZvbnQt ZmFtaWx5OiBNZW5sbzsiIGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgPHNwYW4gc3R5bGU9ImZvbnQt dmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjMzQ5NWFmIiBj bGFzcz0iIj4NClRRR3JhbUluZGV4PC9zcGFuPiBpbmRleChyZWYpOzwvZGl2Pg0KPGRpdiBzdHls ZT0ibWFyZ2luOiAwcHg7IGZvbnQtZmFtaWx5OiBNZW5sbzsgY29sb3I6IHJnYigwLCAxNDMsIDAp OyIgY2xhc3M9IiI+PHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1v bi1saWdhdHVyZXM7IGNvbG9yOiAjMDAwMDAwIiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7DQo8L3Nw YW4+PHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVy ZXM7IGNvbG9yOiAjMzQ5NWFmIiBjbGFzcz0iIj5pbmRleFJlcXVpcmU8L3NwYW4+PHNwYW4gc3R5 bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAj MDAwMDAwIiBjbGFzcz0iIj4oaW5kZXgsDQo8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFu dC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjMzQ5NWFmIiBjbGFzcz0i Ij5RR3JhbVNBRGlyPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBu by1jb21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzAwMDAwMCIgY2xhc3M9IiI+KCkpOyZuYnNwOw0K PC9zcGFuPi8vIE9uLWRlbWFuZCBpbmRleCBjcmVhdGlvbi48L2Rpdj4NCjxkaXYgc3R5bGU9Im1h cmdpbjogMHB4OyBmb250LWZhbWlseTogTWVubG87IG1pbi1oZWlnaHQ6IDE0cHg7IiBjbGFzcz0i Ij48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyBmb250LWZh bWlseTogTWVubG87IGNvbG9yOiByZ2IoMCwgMTQzLCAwKTsiIGNsYXNzPSIiPjxzcGFuIHN0eWxl PSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzAw MDAwMCIgY2xhc3M9IiI+Jm5ic3A7ICZuYnNwOw0KPC9zcGFuPi8vIGEpIFVzaW5nIHRoZSBmaW5k ZXIgaW50ZXJmYWNlLjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7IGZvbnQtZmFtaWx5 OiBNZW5sbzsiIGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgPHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFu dC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjMzQ5NWFmIiBjbGFzcz0i Ij4NClRGaW5kZXI8L3NwYW4+IGZpbmRlcihpbmRleCk7PC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJn aW46IDBweDsgZm9udC1mYW1pbHk6IE1lbmxvOyBtaW4taGVpZ2h0OiAxNHB4OyIgY2xhc3M9IiI+ PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsgZm9udC1mYW1p bHk6IE1lbmxvOyIgY2xhc3M9IiI+Jm5ic3A7ICZuYnNwOyBmb3IgKDxzcGFuIHN0eWxlPSJmb250 LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzM0OTVhZiIg Y2xhc3M9IiI+VEl0ZXJhdG9yPC9zcGFuPiBpdCA9DQo8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50 LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMzNDk1YWYiIGNsYXNzPSIi Pg0KYmVnaW48L3NwYW4+KHF1ZXJ5LCA8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJl czogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMzNDk1YWYiIGNsYXNzPSIiPg0KU3RhbmRh cmQ8L3NwYW4+KCkpOyBpdCAhPSA8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczog bm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMzNDk1YWYiIGNsYXNzPSIiPg0KZW5kPC9zcGFu PihxdWVyeSwgPHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1s aWdhdHVyZXM7IGNvbG9yOiAjMzQ5NWFmIiBjbGFzcz0iIj4NClN0YW5kYXJkPC9zcGFuPigpKSAt IDEyOyAmIzQzOyYjNDM7aXQpPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsgZm9udC1m YW1pbHk6IE1lbmxvOyIgY2xhc3M9IiI+Jm5ic3A7ICZuYnNwOyB7PC9kaXY+DQo8ZGl2IHN0eWxl PSJtYXJnaW46IDBweDsgZm9udC1mYW1pbHk6IE1lbmxvOyIgY2xhc3M9IiI+Jm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7IDxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1j b21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzM0OTVhZiIgY2xhc3M9IiI+DQpzdGQ8L3NwYW4+Ojo8 c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsg Y29sb3I6ICMzNDk1YWYiIGNsYXNzPSIiPmNvdXQ8L3NwYW4+ICZsdDsmbHQ7DQo8c3BhbiBzdHls ZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICNi NDI2MWEiIGNsYXNzPSIiPg0KJnF1b3Q7T2NjIGF0OiAmcXVvdDs8L3NwYW4+OzwvZGl2Pg0KPGRp diBzdHlsZT0ibWFyZ2luOiAwcHg7IGZvbnQtZmFtaWx5OiBNZW5sbzsiIGNsYXNzPSIiPiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB3aGlsZSg8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxp Z2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMzNDk1YWYiIGNsYXNzPSIiPmZp bmQ8L3NwYW4+KGZpbmRlciwNCjxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBu by1jb21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzM0OTVhZiIgY2xhc3M9IiI+DQppbmZpeDwvc3Bh bj4ocXVlcnksIGl0LCBpdCYjNDM7MTIpKSk8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4 OyBmb250LWZhbWlseTogTWVubG87IiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyA8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8t Y29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMzNDk1YWYiIGNsYXNzPSIiPg0Kc3RkPC9zcGFuPjo6 PHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7 IGNvbG9yOiAjMzQ5NWFmIiBjbGFzcz0iIj5jb3V0PC9zcGFuPiAmbHQ7Jmx0Ow0KPHNwYW4gc3R5 bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAj MzQ5NWFmIiBjbGFzcz0iIj4NCnBvc2l0aW9uPC9zcGFuPihmaW5kZXIpICZsdDsmbHQ7IDxzcGFu IHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xv cjogI2I0MjYxYSIgY2xhc3M9IiI+DQomcXVvdDsgJnF1b3Q7PC9zcGFuPjs8L2Rpdj4NCjxkaXYg c3R5bGU9Im1hcmdpbjogMHB4OyBmb250LWZhbWlseTogTWVubG87IiBjbGFzcz0iIj4mbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgPHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6 IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjMzQ5NWFmIiBjbGFzcz0iIj4NCnN0ZDwvc3Bh bj46OjxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1 cmVzOyBjb2xvcjogIzM0OTVhZiIgY2xhc3M9IiI+Y291dDwvc3Bhbj4gJmx0OyZsdDsNCjxzcGFu IHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xv cjogIzM0OTVhZiIgY2xhc3M9IiI+DQpzdGQ8L3NwYW4+Ojo8c3BhbiBzdHlsZT0iZm9udC12YXJp YW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMzNDk1YWYiIGNsYXNz PSIiPmVuZGw8L3NwYW4+OzwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7IGZvbnQtZmFt aWx5OiBNZW5sbzsgY29sb3I6IHJnYigwLCAxNDMsIDApOyIgY2xhc3M9IiI+PHNwYW4gc3R5bGU9 ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjMDAw MDAwIiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsNCjwvc3Bhbj48c3BhbiBz dHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6 ICMzNDk1YWYiIGNsYXNzPSIiPmNsZWFyPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQt bGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzAwMDAwMCIgY2xhc3M9IiI+ KGZpbmRlcik7Jm5ic3A7DQo8L3NwYW4+Ly8gQ2xlYXIgZmluZGVyIGZvciBuZXh0IHNlYXJjaC48 L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyBmb250LWZhbWlseTogTWVubG87IiBjbGFz cz0iIj4mbmJzcDsgJm5ic3A7IH08L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyBmb250 LWZhbWlseTogTWVubG87IG1pbi1oZWlnaHQ6IDE0cHg7IiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+ DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyBmb250LWZhbWlseTogTWVubG87IGNv bG9yOiByZ2IoMCwgMTQzLCAwKTsiIGNsYXNzPSIiPjxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQt bGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzAwMDAwMCIgY2xhc3M9IiI+ Jm5ic3A7ICZuYnNwOw0KPC9zcGFuPi8vIGIpIFVzaW5nIHRoZSBpbmRleCBpbnRlcmZhY2UuPC9k aXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsgZm9udC1mYW1pbHk6IE1lbmxvOyIgY2xhc3M9 IiI+Jm5ic3A7ICZuYnNwOyA8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8t Y29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMzNDk1YWYiIGNsYXNzPSIiPg0KVFNoYXBlPC9zcGFu PiAmYW1wOyBzaGFwZSA9IDxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1j b21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzM0OTVhZiIgY2xhc3M9IiI+DQppbmRleFNoYXBlPC9z cGFuPihpbmRleCk7PC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsgZm9udC1mYW1pbHk6 IE1lbmxvOyIgY2xhc3M9IiI+Jm5ic3A7ICZuYnNwOyA8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50 LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMzNDk1YWYiIGNsYXNzPSIi Pg0KaGFzaEluaXQ8L3NwYW4+KHNoYXBlLCA8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0 dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMzNDk1YWYiIGNsYXNzPSIiPg0KYmVn aW48L3NwYW4+KHF1ZXJ5LCA8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8t Y29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMzNDk1YWYiIGNsYXNzPSIiPg0KU3RhbmRhcmQ8L3Nw YW4+KCkpKTs8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyBmb250LWZhbWlseTogTWVu bG87IiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7IGZvciAoPHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFu dC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjMzQ5NWFmIiBjbGFzcz0i Ij5USXRlcmF0b3I8L3NwYW4+IGl0ID0NCjxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1 cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzM0OTVhZiIgY2xhc3M9IiI+DQpiZWdp bjwvc3Bhbj4ocXVlcnksIDxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1j b21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzM0OTVhZiIgY2xhc3M9IiI+DQpTdGFuZGFyZDwvc3Bh bj4oKSk7IGl0ICE9IDxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21t b24tbGlnYXR1cmVzOyBjb2xvcjogIzM0OTVhZiIgY2xhc3M9IiI+DQplbmQ8L3NwYW4+KHF1ZXJ5 LCA8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJl czsgY29sb3I6ICMzNDk1YWYiIGNsYXNzPSIiPg0KU3RhbmRhcmQ8L3NwYW4+KCkpIC0gMTI7ICYj NDM7JiM0MztpdCk8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyBmb250LWZhbWlseTog TWVubG87IiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7IHs8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdp bjogMHB4OyBmb250LWZhbWlseTogTWVubG87IiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgPHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1s aWdhdHVyZXM7IGNvbG9yOiAjMzQ5NWFmIiBjbGFzcz0iIj4NCnN0ZDwvc3Bhbj46OjxzcGFuIHN0 eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xvcjog IzM0OTVhZiIgY2xhc3M9IiI+Y291dDwvc3Bhbj4gJmx0OyZsdDsNCjxzcGFuIHN0eWxlPSJmb250 LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xvcjogI2I0MjYxYSIg Y2xhc3M9IiI+DQomcXVvdDtPY2MgYXQ6ICZxdW90Ozwvc3Bhbj47PC9kaXY+DQo8ZGl2IHN0eWxl PSJtYXJnaW46IDBweDsgZm9udC1mYW1pbHk6IE1lbmxvOyIgY2xhc3M9IiI+Jm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7IDxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1j b21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzM0OTVhZiIgY2xhc3M9IiI+DQpoYXNoTmV4dDwvc3Bh bj4oc2hhcGUsIGl0KTs8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyBmb250LWZhbWls eTogTWVubG87IiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgZm9yICg8c3Bh biBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29s b3I6ICMwNDMzZmYiIGNsYXNzPSIiPnVuc2lnbmVkPC9zcGFuPiBpID0gMDsgaSAmbHQ7DQo8c3Bh biBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29s b3I6ICMzNDk1YWYiIGNsYXNzPSIiPg0KbGVuZ3RoPC9zcGFuPig8c3BhbiBzdHlsZT0iZm9udC12 YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMzNDk1YWYiIGNs YXNzPSIiPmdldE9jY3VycmVuY2VzPC9zcGFuPihpbmRleCwgc2hhcGUpKTsgJiM0MzsmIzQzO2kp PC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsgZm9udC1mYW1pbHk6IE1lbmxvOyIgY2xh c3M9IiI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgPHNwYW4gc3R5 bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAj MzQ5NWFmIiBjbGFzcz0iIj4NCnN0ZDwvc3Bhbj46OjxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQt bGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzM0OTVhZiIgY2xhc3M9IiI+ Y291dDwvc3Bhbj4gJmx0OyZsdDsNCjxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVz OiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzM0OTVhZiIgY2xhc3M9IiI+DQpnZXRPY2N1 cnJlbmNlczwvc3Bhbj4oaW5kZXgsIHNoYXBlKVs8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxp Z2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMzNDk1YWYiIGNsYXNzPSIiPmk8 L3NwYW4+XSAmbHQ7Jmx0Ow0KPHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5v LWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjYjQyNjFhIiBjbGFzcz0iIj4NCiZxdW90OyAmcXVv dDs8L3NwYW4+OzwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7IGZvbnQtZmFtaWx5OiBN ZW5sbzsiIGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA8c3BhbiBzdHlsZT0i Zm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMzNDk1 YWYiIGNsYXNzPSIiPg0Kc3RkPC9zcGFuPjo6PHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdh dHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjMzQ5NWFmIiBjbGFzcz0iIj5jb3V0 PC9zcGFuPiAmbHQ7Jmx0Ow0KPHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5v LWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjMzQ5NWFmIiBjbGFzcz0iIj4NCnN0ZDwvc3Bhbj46 OjxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVz OyBjb2xvcjogIzM0OTVhZiIgY2xhc3M9IiI+ZW5kbDwvc3Bhbj47PC9kaXY+DQo8ZGl2IHN0eWxl PSJtYXJnaW46IDBweDsgZm9udC1mYW1pbHk6IE1lbmxvOyBtaW4taGVpZ2h0OiAxNHB4OyIgY2xh c3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsgZm9u dC1mYW1pbHk6IE1lbmxvOyIgY2xhc3M9IiI+Jm5ic3A7ICZuYnNwOyB9PC9kaXY+DQo8L2Rpdj4N CjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyBmb250LWZhbWlseTogTWVubG87IiBjbGFzcz0iIj48 YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+DQo8ZGl2Pg0KPGJsb2NrcXVvdGUg dHlwZT0iY2l0ZSIgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPk9uIDE5IE5vdiAyMDE0LCBhdCAw NzozNCwgQnJldHQgQm93bWFuICZsdDs8YSBocmVmPSJtYWlsdG86Ym5ib3dtYW5AZ21haWwuY29t IiBjbGFzcz0iIj5ibmJvd21hbkBnbWFpbC5jb208L2E+Jmd0OyB3cm90ZTo8L2Rpdj4NCjxiciBj bGFzcz0iQXBwbGUtaW50ZXJjaGFuZ2UtbmV3bGluZSI+DQo8ZGl2IGNsYXNzPSIiPg0KPGRpdiBk aXI9Imx0ciIgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj5Tb3JyeSB0 byBiZSBhIGJvdGhlciwgYnV0IEkgZGVjaWRlZCB0byBnbyBiYWNrIHRvIHRoZSBkb2NzIGFuZCBz dGFydCBmcmVzaCBhbmQgSSdtIHN0aWxsIGhhdmluZyBpc3N1ZXMuICZuYnNwOzwvZGl2Pg0KPGRp diBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+V2UncmUgdXNp bmcgUWdyYW1zLCBzbyBJIHRyeWluZyB0byB3cml0ZSBhIHNpbXBsZSBsb29wIHRvIHNlYXJjaCBm b3IgYWxsIDEybWVycyBmcm9tIGEgcXVlcnkgc2VxdWVuY2UgJnF1b3Q7c2VxJnF1b3Q7IGluIHRo ZSBpbmRleCBmb3JtZWQgZnJvbSBhIFN0cmluZ1NldCBvZiByZWZlcmVuY2VzICZxdW90O3JlZlNl cSZxdW90OywgYnVpbGRpbmcgb24gdGhlIGV4YW1wbGUgY29kZSBpbiB0aGUgUS1HcmFtIEluZGV4 IHR1dG9yaWFsOjwvZGl2Pg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZxdW90OyZxdW90OyZxdW90 OzwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4mbmJzcDsgVEZpbmRlciBxZ3JhbUZpbmRlcihpbmRleCk7 PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj4mbmJzcDtmb3IgKHNpemVfdCBp ID0gMDsgaSAmbHQ7IGxlbmd0aChzZXEpLTEyOyBpJiM0MzsmIzQzOyk8L2Rpdj4NCjxkaXYgY2xh c3M9IiI+Jm5ic3A7ezwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwO1RJ bmZpeDo6VHlwZSBrbWVyID0gaW5maXgoc2VxLCBpLCBpJiM0MzsxMik7PC9kaXY+DQo8ZGl2IGNs YXNzPSIiPiZuYnNwOyAmbmJzcDsgJm5ic3A7c3RkOjpjb3V0ICZsdDsmbHQ7IGttZXIgJmx0OyZs dDsgc3RkOjplbmRsOzwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4N CjxkaXYgY2xhc3M9IiI+Jm5ic3A7ICZuYnNwOyAmbmJzcDtzZXFhbjo6aGFzaChpbmRleFNoYXBl KGluZGV4KSwga21lcik7PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgJm5ic3A7 Zm9yICh1bnNpZ25lZCBpID0gMDsgaSAmbHQ7IGxlbmd0aChnZXRPY2N1cnJlbmNlcyhpbmRleCwg aW5kZXhTaGFwZShpbmRleCkpKTsgJiM0MzsmIzQzO2kpPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZu YnNwOyAmbmJzcDsgJm5ic3A7ezwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7c3RkOjpjb3V0ICZsdDsmbHQ7IGdldE9jY3VycmVuY2VzKGluZGV4 LCBpbmRleFNoYXBlKGluZGV4KSlbaV0gJmx0OyZsdDsgc3RkOjplbmRsOzwvZGl2Pg0KPGRpdiBj bGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwO308L2Rpdj4NCjxkaXYgY2xhc3M9IiI+Jm5ic3A7 ICZuYnNwOyAmbmJzcDtzdGQ6OmNvdXQgJmx0OyZsdDsgc3RkOjplbmRsOzxiciBjbGFzcz0iIj4N CjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4mbmJzcDt9PC9kaXY+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9 IiI+JnF1b3Q7JnF1b3Q7JnF1b3Q7PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4N CjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5idXQgSSdtIGdldHRpbmcgYSBmYWlybHkgb2J0dXNlIGVy cm9yIG1lc3NhZ2UgSSBkb24ndCBxdWl0ZSB1bmRlcnN0YW5kLCBhbmQgZG9lc24ndCBwb2ludCBt ZSBiYWNrIHRvIGFueSBzcGVjaWZpYyBsaW5lcyBpbiBteSBjb2RlLjwvZGl2Pg0KPGRpdiBjbGFz cz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCiZxdW90OyZxdW90OyZxdW90Ow0KPGRpdiBjbGFz cz0iIj4NCjxkaXYgY2xhc3M9IiI+L3Vzci9pbmNsdWRlL3NlcWFuL2luZGV4L3NoYXBlX2Jhc2Uu aDo1MzU6NTU6IGVycm9yOiBpbmRpcmVjdGlvbiByZXF1aXJlcyBwb2ludGVyIG9wZXJhbmQgKCdz ZXFhbjo6U2VnbWVudCZsdDtjb25zdCBzZXFhbjo6U3RyaW5nJmx0O3NlcWFuOjpTaW1wbGVUeXBl Jmx0O3Vuc2lnbmVkPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgJm5ic3A7IGNo YXIsIHNlcWFuOjpEbmE1XyZndDssIHNlcWFuOjpBbGxvYyZsdDt2b2lkJmd0OyAmZ3Q7LCBzZXFh bjo6SW5maXhTZWdtZW50Jmd0OycgaW52YWxpZCk8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+Jm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgaGFzaCAqIFZhbHVlU2l6ZSZsdDtUVmFsdWUmZ3Q7OjpWQUxV RSAmIzQzOyBvcmRWYWx1ZSgoVFZhbHVlKSppdCksPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtefn48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+ L3Vzci9pbmNsdWRlL3NlcWFuL2luZGV4L3NoYXBlX2Jhc2UuaDo1NDg6MjI6IG5vdGU6IGluIGlu c3RhbnRpYXRpb24gb2YgZnVuY3Rpb24gdGVtcGxhdGUgc3BlY2lhbGl6YXRpb24gJ3NlcWFuOjpf aGFzaEZpeGVkU2hhcGUmbHQ7dW5zaWduZWQgbG9uZyw8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+Jm5i c3A7ICZuYnNwOyAmbmJzcDsgc2VxYW46OlNpbXBsZVR5cGUmbHQ7dW5zaWduZWQgY2hhciwgc2Vx YW46OkRuYTVfJmd0Oywgc2VxYW46OlNlZ21lbnQmbHQ7Y29uc3Qgc2VxYW46OlN0cmluZyZsdDtz ZXFhbjo6U2ltcGxlVHlwZSZsdDt1bnNpZ25lZCBjaGFyLCBzZXFhbjo6RG5hNV8mZ3Q7LCBzZXFh bjo6QWxsb2MmbHQ7dm9pZCZndDsgJmd0Oyw8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+Jm5ic3A7ICZu YnNwOyAmbmJzcDsgc2VxYW46OkluZml4U2VnbWVudCZndDssIDEyJmd0OycgcmVxdWVzdGVkIGhl cmU8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyByZXR1cm4gbWUuaFZhbHVlID0gX2hhc2hGaXhlZFNoYXBl KG1lLmhWYWx1ZSwgaXQsIFRWYWx1ZSgpLCBVbmdhcHBlZFNoYXBlJmx0O3EmZ3Q7KCkpOzwvZGl2 Pg0KPGRpdiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO148L2Rpdj4NCjxkaXYgY2xhc3M9IiI+L2hvbWUv YmJvd21hbi9naXQvU1JTTEkvc3JjL0MmIzQzOyYjNDM7L1NwYXJzZUFsaWdubWVudC5ocHA6MTAy OjE2OiBub3RlOiBpbiBpbnN0YW50aWF0aW9uIG9mIGZ1bmN0aW9uIHRlbXBsYXRlIHNwZWNpYWxp emF0aW9uICdzZXFhbjo6aGFzaCZsdDtzZXFhbjo6U2ltcGxlVHlwZSZsdDt1bnNpZ25lZDwvZGl2 Pg0KPGRpdiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyBjaGFyLCBzZXFhbjo6RG5hNV8m Z3Q7LCAxMiwgc2VxYW46OlNlZ21lbnQmbHQ7Y29uc3Qgc2VxYW46OlN0cmluZyZsdDtzZXFhbjo6 U2ltcGxlVHlwZSZsdDt1bnNpZ25lZCBjaGFyLCBzZXFhbjo6RG5hNV8mZ3Q7LCBzZXFhbjo6QWxs b2MmbHQ7dm9pZCZndDsgJmd0Oywgc2VxYW46OkluZml4U2VnbWVudCZndDs8L2Rpdj4NCjxkaXYg Y2xhc3M9IiI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJmd0OycgcmVxdWVzdGVkIGhlcmU8L2Rpdj4N CjxkaXYgY2xhc3M9IiI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHNlcWFuOjpoYXNoKGlu ZGV4U2hhcGUoaW5kZXgpLCBrbWVyKTs8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+Jm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO148L2Rpdj4NCjxkaXYg Y2xhc3M9IiI+L2hvbWUvYmJvd21hbi9naXQvU1JTTEkvc3JjL0MmIzQzOyYjNDM7L21haW4uY3Bw Ojg2Ojk6IG5vdGU6IGluIGluc3RhbnRpYXRpb24gb2YgZnVuY3Rpb24gdGVtcGxhdGUgc3BlY2lh bGl6YXRpb24gJ0ZpbmRTZWVkczImbHQ7RmluZFNlZWRzQ29uZmlnJmx0OzEyLDwvZGl2Pg0KPGRp diBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyBzZXFhbjo6VW5nYXBwZWRTaGFwZSZsdDsx MiZndDssIHNlcWFuOjpJbmRleFFHcmFtJmx0O3NlcWFuOjpVbmdhcHBlZFNoYXBlJmx0OzEyJmd0 Oywgc2VxYW46OlRhZyZsdDtzZXFhbjo6RGVmYXVsdF8mZ3Q7ICZndDsgJmd0OyAmZ3Q7JyByZXF1 ZXN0ZWQgaGVyZTwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgRmluZFNlZWRzMihxdWVyeVNlZWRIaXRzLCByZWZTZXRJbmRleCwgaWR4QW5kUmVjb3JkLnNl Y29uZC5TZXEpOzwvZGl2Pg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZxdW90OyZxdW90OyZxdW90 OzwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9 IiI+U3VnZ2VzdGlvbnM/PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2 Pg0KPGRpdiBjbGFzcz0iIj5TaW5jZXJlbHksPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPkJyZXR0PC9k aXY+DQo8aW1nIHNyYz0iaHR0cDovL3Quc2lnbmF1eGRpeC5jb20vZTF0L28vNS9mMThkUWhiMFM3 a3M4ZERNUGJXMm4weDZsMkI5Z1hyTjdzS2o2djRmaGpsVlJ6dmJZOHFTUUdDVlJ6SDJiMXBjdEdG VzRiWGxzMzFrMUg2SDA/c2k9NDczODk4MDcxNzc4OTE4NCZhbXA7cGk9N2IyNzlkNjktYjE3Yy00 YjRjLWVkNzUtNjVhZDVkNDU1OGY1IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBzdHlsZT0iZGlzcGxh eTpub25lIiBjbGFzcz0iIj48L2Rpdj4NCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fPGJyIGNsYXNzPSIiPg0Kc2VxYW4tZGV2IG1haWxpbmcgbGlzdDxiciBj bGFzcz0iIj4NCjxhIGhyZWY9Im1haWx0bzpzZXFhbi1kZXZAbGlzdHMuZnUtYmVybGluLmRlIiBj bGFzcz0iIj5zZXFhbi1kZXZAbGlzdHMuZnUtYmVybGluLmRlPC9hPjxiciBjbGFzcz0iIj4NCmh0 dHBzOi8vbGlzdHMuZnUtYmVybGluLmRlL2xpc3RpbmZvL3NlcWFuLWRldjxiciBjbGFzcz0iIj4N CjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8YnIgY2xhc3M9IiI+DQo8ZGl2IGNsYXNz PSIiPg0KPGRpdiBjbGFzcz0iIj4NCjxkaXYgc3R5bGU9Im9ycGhhbnM6IDI7IHdpZG93czogMjsi IGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj4tLS08L2ZvbnQ+PC9k aXY+DQo8ZGl2IHN0eWxlPSJvcnBoYW5zOiAyOyB3aWRvd3M6IDI7IiBjbGFzcz0iIj48Zm9udCBm YWNlPSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9mb250PjwvZGl2Pg0K PGRpdiBzdHlsZT0ib3JwaGFuczogMjsgd2lkb3dzOiAyOyIgY2xhc3M9IiI+PGZvbnQgZmFjZT0i Q291cmllciBOZXciIGNsYXNzPSIiPlJlbsOpIFJhaG48L2ZvbnQ+PC9kaXY+DQo8ZGl2IHN0eWxl PSJvcnBoYW5zOiAyOyB3aWRvd3M6IDI7IiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3VyaWVyIE5l dyIgY2xhc3M9IiI+UGguRC4gU3R1ZGVudDwvZm9udD48L2Rpdj4NCjxkaXYgc3R5bGU9Im9ycGhh bnM6IDI7IHdpZG93czogMjsiIGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFz cz0iIj4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTwvZm9udD48L2Rpdj4NCjxkaXYg c3R5bGU9Im9ycGhhbnM6IDI7IHdpZG93czogMjsiIGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj48 Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+VGVsOiAmbmJzcDsoJiM0Mzs0OSkgMzAg ODM4IDc1Mjc3PC9mb250PjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3VyaWVy IE5ldyIgY2xhc3M9IiI+TWFpbDombmJzcDs8YSBocmVmPSJtYWlsdG86cmVuZS5yYWhuQGZ1LWJl cmxpbi5kZSIgY2xhc3M9IiI+cmVuZS5yYWhuQGZ1LWJlcmxpbi5kZTwvYT48L2ZvbnQ+PC9kaXY+ DQo8ZGl2IGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj4tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTwvZm9udD48L2Rpdj4NCjwvZGl2Pg0KPGRpdiBzdHls ZT0ib3JwaGFuczogMjsgd2lkb3dzOiAyOyIgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBO ZXciIGNsYXNzPSIiPkluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlPC9mb250PjwvZGl2Pg0K PGRpdiBzdHlsZT0ib3JwaGFuczogMjsgd2lkb3dzOiAyOyIgY2xhc3M9IiI+PGZvbnQgZmFjZT0i Q291cmllciBOZXciIGNsYXNzPSIiPkFsZ29yaXRobWljIEJpb2luZm9ybWF0aWNzIChBQkkpPC9m b250PjwvZGl2Pg0KPGRpdiBzdHlsZT0ib3JwaGFuczogMjsgd2lkb3dzOiAyOyIgY2xhc3M9IiI+ PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIiPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tPC9mb250PjwvZGl2Pg0KPGRpdiBzdHlsZT0ib3JwaGFuczogMjsgd2lkb3dzOiAy OyIgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIiPkZyZWllIFVuaXZl cnNpdMOkdCBCZXJsaW48L2ZvbnQ+PC9kaXY+DQo8ZGl2IHN0eWxlPSJvcnBoYW5zOiAyOyB3aWRv d3M6IDI7IiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+VGFrdXN0 cmHDn2UgOTwvZm9udD48L2Rpdj4NCjxkaXYgc3R5bGU9Im9ycGhhbnM6IDI7IHdpZG93czogMjsi IGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj4xNDE5NSBCZXJsaW48 L2ZvbnQ+PC9kaXY+DQo8ZGl2IHN0eWxlPSJvcnBoYW5zOiAyOyB3aWRvd3M6IDI7IiBjbGFzcz0i Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+LS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS08L2ZvbnQ+PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGJyIGNsYXNzPSIiPg0K PC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo= --_000_C870191C64024F709E64DF42EC0D38ADzedatfuberlinde_-- From kathrin.trappe@fu-berlin.de Thu Nov 20 12:04:22 2014 Received: from outpost9.zedat.fu-berlin.de ([130.133.4.95]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XrPXA-003TFK-0w>; Thu, 20 Nov 2014 12:04:20 +0100 Received: from relay2.zedat.fu-berlin.de ([130.133.4.80]) by outpost.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XrPX9-0027DR-WC>; Thu, 20 Nov 2014 12:04:20 +0100 Received: from cas2.campus.fu-berlin.de ([130.133.170.202]) by relay2.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1XrPX9-0011yS-Mj>; Thu, 20 Nov 2014 12:04:19 +0100 Received: from EX03A.campus.fu-berlin.de ([130.133.170.134]) by CAS2.campus.fu-berlin.de ([130.133.170.202]) with mapi id 14.03.0210.002; Thu, 20 Nov 2014 12:04:18 +0100 From: "Trappe, Kathrin" To: SeqAn Development Thread-Topic: [Seqan-dev] [seqan-1.4.2] breakpoint_calculator errors Thread-Index: AQHQAeJgb2fQPqKP+Eup7ICbPb1kc5xpXlLT Message-ID: References: <546913C0.3060606@gmail.com> In-Reply-To: <546913C0.3060606@gmail.com> Accept-Language: en-GB, de-DE, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Date: Thu, 20 Nov 2014 12:04:17 +0100 X-Original-Date: Thu, 20 Nov 2014 11:04:17 +0000 X-Originating-IP: 130.133.170.202 X-ZEDAT-Hint: X X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1416481460-00067E64-88CEBB25/0/0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=-50.0 required=5.0 tests=ALL_TRUSTED X-Spam-Checker-Version: SpamAssassin 3.4.0 on Gabun.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [Seqan-dev] [seqan-1.4.2] breakpoint_calculator errors X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Nov 2014 11:04:22 -0000 Hi Antonio,=0A= =0A= the errors look like namespace or path errors with the Lemon library and ST= L, did you check that the Lemon lib is correctly installed and the path in = the build command is correct?=0A= =0A= cheers,=0A= Kathrin=0A= ________________________________________=0A= From: Antonio Trande [anto.trande@gmail.com]=0A= Sent: 16 November 2014 22:14=0A= To: seqan-dev@lists.fu-berlin.de=0A= Subject: [Seqan-dev] [seqan-1.4.2] breakpoint_calculator errors=0A= =0A= -----BEGIN PGP SIGNED MESSAGE-----=0A= Hash: SHA1=0A= =0A= Hi all.=0A= =0A= I need your help with these errors during SeqAn compilation on Fedora 21.= =0A= Here the full log:=0A= https://kojipkgs.fedoraproject.org//work/tasks/2027/8162027/build.log=0A= =0A= - --=0A= Antonio Trande=0A= =0A= mailto: sagitter 'at' fedoraproject 'dot' org=0A= http://fedoraos.wordpress.com/=0A= https://fedoraproject.org/wiki/User:Sagitter=0A= GPG Key: 0x66E15D00=0A= Check on https://keys.fedoraproject.org/=0A= -----BEGIN PGP SIGNATURE-----=0A= Version: GnuPG v1=0A= =0A= iQIcBAEBAgAGBQJUaRPAAAoJEFyovWBm4V0A3+cQAJJQgQuBXdj9hsH0PKcuZ+r3=0A= EyrZK0OoUdVJvtF1TUUpDPnJHVL1ZbvJN0ks4C2hGT0McMMKTy+zXHdIYlGqliXW=0A= Lxhl0pJFTQwFj2p7xnbY7D+31vBOfCLqaClId9ZLwij7sUu0zYsD8d7up99JkmrE=0A= TmblYcJmE8lechG6dmz7tW25gobcdY+Y7M7e435aCrLDHrntkE3H1YtXJOB5l11y=0A= 4otH4hd0Vo4bap//NvOZKtDSoyC46WS2ZAEOKghNwzOjdETDbubWsdsDwqK5Td98=0A= DUfFTjCFk/AoGLxeoBCGzpVDDqr5zrbXCAaOvXwbXp8D97c3tYCnjqII9l/i570k=0A= oYdJTCmvZFbx5YkG+u2pLq5DBmtC0ikQC+/f0bBlwAsoEoN8OymcIIyw+fjPLJ4t=0A= gMXzqJcKCci5pAqevKDrz49lvAfeWLg52Ud7eQUpwe6eWcDA08gvggphboAzsiMS=0A= GNkxEhvQKW1Tk5KkuRLz+VeuNOC8JNPRNDHiKNHA76wdtb+NJPQlvr2/3Qz87g+i=0A= zIkO4Svz/pzltc/RUwIQaDQxRe5Cadfnv5NWKOWA5iZ3xYBJqU8t7+um79XyY4sb=0A= 3NoZ9z/vBkmm8J5FOtsLusdWzGo0UcX0j1OAmd6mqmh//bJZ1Bb0WhgTjgERMr83=0A= VOKNsl2dzVuYbvofCIQs=0A= =3DngAX=0A= -----END PGP SIGNATURE-----=0A= =0A= _______________________________________________=0A= seqan-dev mailing list=0A= seqan-dev@lists.fu-berlin.de=0A= https://lists.fu-berlin.de/listinfo/seqan-dev=0A= From anto.trande@gmail.com Thu Nov 20 22:41:14 2014 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XrZTP-0046Js-Mb>; Thu, 20 Nov 2014 22:41:07 +0100 Received: from mail-wi0-f182.google.com ([209.85.212.182]) by relay1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1XrZTP-000GF0-KM>; Thu, 20 Nov 2014 22:41:07 +0100 Received: by mail-wi0-f182.google.com with SMTP id h11so6834400wiw.9 for ; Thu, 20 Nov 2014 13:41:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=CKoJ2UacmYXTtyFqQcd8gOzUbUQKPnhb8X6EKY2NlDk=; b=Hn09rpM6YS+A44Ui+BXiGLfnjy0QudD8GATkIYzVlBkcW2iJPCoTyrCMcSO6eN6Vab Cn9vArqIMb8wJrURb76/GY+p2eNRmn+QAAGhSDIkpKG3YT3aaMmu3INqCKP+n5PqM9kq HHhs9t53AVH3vonOA3W63DdKACT3TXlsADIIrm5PR+/x92qgegJZ4eIu6201F+yKu3LW Vt95OsNjgb+8C622dC9b0Pf/Aj5dEkVQuiZjQrkJ+31fCBNG4kTEixaIWtV93/42Un99 Qw8UYwS29sUMo5Nr2R+fXSBhcqQiBZiWV+QkKIy1jsYdHoaGMU5gfgSSafboskMOTeBL VMoA== X-Received: by 10.194.92.116 with SMTP id cl20mr791767wjb.71.1416519666268; Thu, 20 Nov 2014 13:41:06 -0800 (PST) Received: from localhost.localdomain ([46.227.4.49]) by mx.google.com with ESMTPSA id td9sm5848098wic.15.2014.11.20.13.41.04 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 20 Nov 2014 13:41:05 -0800 (PST) Message-ID: <546E5FE8.3020606@gmail.com> Date: Thu, 20 Nov 2014 22:40:56 +0100 From: Antonio Trande User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 MIME-Version: 1.0 To: SeqAn Development References: <546913C0.3060606@gmail.com> In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Originating-IP: 209.85.212.182 X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1416519667-00067E64-C1118AF8/0/0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=-0.7 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,T_DKIM_INVALID X-Spam-Checker-Version: SpamAssassin 3.4.0 on Botsuana.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [Seqan-dev] [seqan-1.4.2] breakpoint_calculator errors X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Nov 2014 21:41:14 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 11/20/2014 12:04 PM, Trappe, Kathrin wrote: > Hi Antonio, > > the errors look like namespace or path errors with the Lemon > library and STL, did you check that the Lemon lib is correctly > installed and the path in the build command is correct? > > cheers, Kathrin You are right. -DLEMON_INCLUDE_DIR:PATH option was set against a wrong path. SeqAn code already points to private lemon sub-directory. - -- Antonio Trande mailto: sagitter 'at' fedoraproject 'dot' org http://fedoraos.wordpress.com/ https://fedoraproject.org/wiki/User:Sagitter GPG Key: 0x66E15D00 Check on https://keys.fedoraproject.org/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJUbl/ZAAoJEFyovWBm4V0ABTQP/1qWnlsfOv4RC22AgQbNqmxB OIA9V7Shq5/WekZ4CGNDFD/PnR3VPhbBqi7fEe6qQq2ILtwm4o/qI3EgrlJqkgLa zusDxdsyQhIm+1SrAAFhmvIP0g9wp4ByV47xID9fEKXe8JucV6DjTu0AHUMJzb8Z mmVGXRnfJyWMbSHj0YQnnO0Be7kBXSQnmrzLbQtUiAdWD69Y/V11xKIoUAf36KSK ZFi/zhWUmxATcuKIfcvypWoWD0+kv0W8trVuWhHbApuWRe1k4LY43+Zdba2a5F/5 gJfA+gIa13tvSwC5Xpf+SvjRLd+HLVACK+V2op7t08oxr/2GZDSgyfSyhYEFGvqJ D3VVLl3pGESb33QmHXAm6RnLAliY+5DT36ZiWLaxmKMJbi67MjraUqX58zXpJFZN PDhnzFPrKVfE5DFpVc+CvtJZSY7CpN4fL4suedi7bhyISkUE80keru2RxmK/nmEc 86K1Mqy+nYeZ0M+gy+RCcQsz9OYFNoq4S7ETkWu33B7y819MoAljphd1YUPHqxBs zN50s9GPSzpe+ucEWKdK+jAjYf2laC8EuRDmkZNLid9FTG6giOEyG3IoQOeKUx5h 5ZjKoRmFAL6kVkOdUycli/OI2VFK8V+KwEvV/mL2eqEKH8mrBvMVut1d3x+doxDL cM78MBZH4GbVnguMITtQ =qJPl -----END PGP SIGNATURE----- From bnbowman@gmail.com Fri Nov 21 02:05:13 2014 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1Xrceo-0005vK-QA>; Fri, 21 Nov 2014 02:05:06 +0100 Received: from mail-yh0-f48.google.com ([209.85.213.48]) by relay1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1Xrceo-000nmQ-Fm>; Fri, 21 Nov 2014 02:05:06 +0100 Received: by mail-yh0-f48.google.com with SMTP id i57so1896031yha.21 for ; Thu, 20 Nov 2014 17:05:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=ZGUmeDgjgDeiynn8TZRyoNZdMGpWSJ/GOkIS+CX+SQ8=; b=XD2Upx0JUTaFsjzuokHK60mhSqlMETX6uiySI0KQch2XU7IVLMpnqI8/g4ITd32stB cb9lVdmFMJ9t4zzuAofL6GzmrXnTYuWR+8hcHg6Px1S6l04obCifFXRMIXdXRw0Bo1/O UhWspg51rV0puhTPWqo9eRxyUl/t9C1vJRF4KFj+VRdDnro5BOQrPzvE099rtimDYBH7 8RoU6QCDzUzFT5X10jpNc8wNs5vLVAeUe/yXZ35yiJv/5caOIcpYwPsG2Qw2FY1HWyCm DAwQ6qBir1IdhwCnLr8pXHW1w4xRwdythqQjDQmfo5pJcbWS8Z+1xaGl8g5+teILtOvN FI/g== MIME-Version: 1.0 X-Received: by 10.170.36.133 with SMTP id 127mr33104yke.109.1416531903841; Thu, 20 Nov 2014 17:05:03 -0800 (PST) Received: by 10.170.110.19 with HTTP; Thu, 20 Nov 2014 17:05:03 -0800 (PST) In-Reply-To: References: Date: Thu, 20 Nov 2014 17:05:03 -0800 Message-ID: From: Brett Bowman To: SeqAn Development Content-Type: multipart/alternative; boundary=001a1137c7d6f12937050854080d X-Originating-IP: 209.85.213.48 X-ZEDAT-Hint: A X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1416531906-00067E64-B839BF78/0/0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.498806, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=-0.7 required=5.0 tests=FREEMAIL_FROM,HTML_MESSAGE, RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,T_DKIM_INVALID X-Spam-Checker-Version: SpamAssassin 3.4.0 on Botsuana.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [Seqan-dev] Trouble Hashing Kmers into Qgram Index X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Nov 2014 01:05:13 -0000 --001a1137c7d6f12937050854080d Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Thanks Rene, those solutions worked for me. I have two follow-up Qgram Index questions: 1) Is there any way to iterate over all of the Kmers stored in a Qgram index? You have sample code for the other index types here ( http://seqan.readthedocs.org/en/master/Tutorial/IndexIterators.html), but it doesn't seem to work for me for the QgramIndx: """ typedef Iterator>> TIter; TIter::Type it(refSetIndex); do { // Print theletters from the root to the current node std::cout << representative(it) << std::endl; if (!goDown(it) && !goRight(it)) while (goUp(it) && !goRight(it)); } while (!isRoot(it)); '""" 2) Is there any way to mask or remove certain Kmers from an Index once it's been created? I.e., to hide or delete common, low-complexity Kmers like homopolymers -Brett On Wed, Nov 19, 2014 at 4:25 AM, Rahn, Ren=C3=A9 wrote: > Hey, > > the problem lies in the hash(indexShape(index), kmer) function. > The hash function only takes an iterator or pointer as second argument. > So in your case the simple solution would be to call the function > hash(indexShape(index), it), while using an iterator to iterate over the > text instead of using the unsigned integer. This little behaviour does no= t > seem obvious, as in the tutorial you pass a string literal. But in fact a > string literal is just a const char *, so it works. > > Here you see an example code to work with a) using the finder interface > and b) directly operating on the index. > IHTH. > > cheers, > > Ren=C3=A9 > > typedef Index > > > TQGramIndex; > typedef Finder TFinder; > typedef Iterator::Type TIterator; > typedef Fibre::Type TShape; > > TQGramIndex index(ref); > indexRequire(index, QGramSADir()); // On-demand index creation. > > // a) Using the finder interface. > TFinder finder(index); > > for (TIterator it =3D begin(query, Standard()); it !=3D end(query, > Standard()) - 12; ++it) > { > std::cout << "Occ at: "; > while(find(finder, infix(query, it, it+12))) > std::cout << position(finder) << " "; > std::cout << std::endl; > clear(finder); // Clear finder for next search. > } > > // b) Using the index interface. > TShape & shape =3D indexShape(index); > hashInit(shape, begin(query, Standard())); > for (TIterator it =3D begin(query, Standard()); it !=3D end(query, > Standard()) - 12; ++it) > { > std::cout << "Occ at: "; > hashNext(shape, it); > for (unsigned i =3D 0; i < length(getOccurrences(index, shape)); > ++i) > std::cout << getOccurrences(index, shape)[i] << " "; > std::cout << std::endl; > > } > > On 19 Nov 2014, at 07:34, Brett Bowman wrote: > > Sorry to be a bother, but I decided to go back to the docs and start > fresh and I'm still having issues. > > We're using Qgrams, so I trying to write a simple loop to search for all > 12mers from a query sequence "seq" in the index formed from a StringSet o= f > references "refSeq", building on the example code in the Q-Gram Index > tutorial: > """ > TFinder qgramFinder(index); > for (size_t i =3D 0; i < length(seq)-12; i++) > { > TInfix::Type kmer =3D infix(seq, i, i+12); > std::cout << kmer << std::endl; > > seqan::hash(indexShape(index), kmer); > for (unsigned i =3D 0; i < length(getOccurrences(index, > indexShape(index))); ++i) > { > std::cout << getOccurrences(index, indexShape(index))[i] << > std::endl; > } > std::cout << std::endl; > } > """ > > but I'm getting a fairly obtuse error message I don't quite understand, > and doesn't point me back to any specific lines in my code. > > """ > /usr/include/seqan/index/shape_base.h:535:55: error: indirection requires > pointer operand ('seqan::Segment seqan::String char, seqan::Dna5_>, seqan::Alloc >, seqan::InfixSegment>' > invalid) > hash * ValueSize::VALUE + > ordValue((TValue)*it), > > ^~~ > /usr/include/seqan/index/shape_base.h:548:22: note: in instantiation of > function template specialization 'seqan::_hashFixedShape seqan::SimpleType, seqan::Segment seqan::String, > seqan::Alloc >, > seqan::InfixSegment>, 12>' requested here > return me.hValue =3D _hashFixedShape(me.hValue, it, > TValue(), UngappedShape()); > ^ > /home/bbowman/git/SRSLI/src/C++/SparseAlignment.hpp:102:16: note: in > instantiation of function template specialization > 'seqan::hash char, seqan::Dna5_>, 12, seqan::Segment seqan::String, > seqan::Alloc >, seqan::InfixSegment> > >' requested here > seqan::hash(indexShape(index), kmer); > ^ > /home/bbowman/git/SRSLI/src/C++/main.cpp:86:9: note: in instantiation of > function template specialization 'FindSeeds2 seqan::UngappedShape<12>, > seqan::IndexQGram, seqan::Tag >= > > >' requested here > FindSeeds2(querySeedHits, refSetIndex, idxAndRecord.second.Seq); > """ > > Suggestions? > > Sincerely, > Brett > _______________________________________________ > seqan-dev mailing list > seqan-dev@lists.fu-berlin.de > https://lists.fu-berlin.de/listinfo/seqan-dev > > > --- > > Ren=C3=A9 Rahn > Ph.D. Student > -------------------------------- > Tel: (+49) 30 838 75277 > Mail: rene.rahn@fu-berlin.de > -------------------------------- > Institute of Computer Science > Algorithmic Bioinformatics (ABI) > -------------------------------- > Freie Universit=C3=A4t Berlin > Takustra=C3=9Fe 9 > 14195 Berlin > -------------------------------- > > > _______________________________________________ > seqan-dev mailing list > seqan-dev@lists.fu-berlin.de > https://lists.fu-berlin.de/listinfo/seqan-dev > > --001a1137c7d6f12937050854080d Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Thanks Rene, those solutions worked for me.

=
I have two follow-up Qgram Index questions:

1= ) Is there any way to iterate over all of the Kmers stored in a Qgram index= ?=C2=A0 You have sample code for the other index types here (http://se= qan.readthedocs.org/en/master/Tutorial/IndexIterators.html), but it doe= sn't seem to work for me for the QgramIndx:
"""= ;
=C2=A0typedef Iterator<TIndex, TopDown<ParentLinks&l= t;>>> TIter;

=C2=A0TIter::Type it(refSetI= ndex);
=C2=A0do {
=C2=A0 =C2=A0 =C2=A0// Print thelette= rs from the root to the current node
=C2=A0 =C2=A0 =C2=A0std::cou= t << representative(it) << std::endl;

= =C2=A0 =C2=A0 =C2=A0if (!goDown(it) && !goRight(it))
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0while (goUp(it) && !goRight(it));
=C2=A0} while (!isRoot(it));
'"""= ;

2) Is there any way to mask or remove certain Km= ers from an Index once it's been created?=C2=A0 I.e., to hide or delete= common, low-complexity Kmers like homopolymers

-B= rett




On Wed, Nov 19, 2014 at 4:25 AM= , Rahn, Ren=C3=A9 <rene.maerker@fu-berlin.de> wrote:=
Hey,

the problem lies in the hash(indexShape(index), kmer) function.
The hash function only takes an iterator or pointer as second argument= .=C2=A0
So in your case the simple solution would be to call the function hash= (indexShape(index), it), while using an iterator to iterate over the text i= nstead of using the unsigned integer. This little behaviour does not seem o= bvious, as in the tutorial you pass a string literal. But in fact a string literal is just a const ch= ar *, so it works.

Here you see an example code to work with a) using the finder interfac= e and b) directly operating on the index.
IHTH.

cheers,

Ren=C3=A9=C2=A0

=C2=A0 =C2=A0=C2=A0typedef Index<DnaString, IndexQGram<UngappedShape<12> > > TQGramIndex;
=C2=A0 =C2=A0 typedef Finder<TQGramIndex> TFinder;
=C2=A0 =C2=A0 typedef Iterator<DnaString, Standard>::Type TIterator;
=C2=A0 =C2=A0 typedef Fibre<TQGramIndex, QGramShape>::Type TShape;

=C2=A0 =C2=A0 TQGramIndex index(ref);
=C2=A0 =C2=A0 indexRequire(index, QGramSADir());=C2=A0 // On-demand index creation.

=C2=A0 =C2=A0 // a) Using the finder interface.
=C2=A0 =C2=A0 TFinder finder(index);

=C2=A0 =C2=A0 for (TIterator it =3D begin(query, Standard()); it !=3D end(query, Standard()) - 12; ++it)
=C2=A0 =C2=A0 {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 std::cout << "Occ at: ";
=C2=A0 =C2=A0 =C2=A0 =C2=A0 whi= le(find(finder, infix(query, it, it+12)))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 std::cout << position(finder) << " ";
=C2=A0 =C2=A0 =C2=A0 =C2=A0 std::cout << std::endl;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 clear(finder);=C2=A0 // Clear finder for next search.
=C2=A0 =C2=A0 }

=C2=A0 =C2=A0 // b) Using the index interface.
=C2=A0 =C2=A0 TShape & shape =3D indexShape(index);
=C2=A0 =C2=A0 hashInit(shape, begin(query, Standard()));
=C2=A0 =C2=A0 for (TIterator it =3D begin(query, Standard()); it !=3D end(query, Standard()) - 12; ++it)
=C2=A0 =C2=A0 {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 std::cout << "Occ at: ";
=C2=A0 =C2=A0 =C2=A0 =C2=A0 hashNext(shape, it);
=C2=A0 =C2=A0 =C2=A0 =C2=A0 for= (unsigned i =3D 0; i < length(getOccurrences(index, sh= ape)); ++i)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 std::cout << getOccurrences(index, shape)[i]= << " ";
=C2=A0 =C2=A0 =C2=A0 =C2=A0 std::cout << std::endl;

=C2=A0 =C2=A0 }

On 19 Nov 2014, at 07:34, Brett Bowman <bnbowman@gmail.com> wrote:

Sorry to be a bother, but I decided to go back to the docs and start f= resh and I'm still having issues. =C2=A0

We're using Qgrams, so I trying to write a simple loop to search f= or all 12mers from a query sequence "seq" in the index formed fro= m a StringSet of references "refSeq", building on the example cod= e in the Q-Gram Index tutorial:
"""
=C2=A0 TFinder qgramFinder(index);
=C2=A0for (size_t i =3D 0; i < length(seq)-12; i++)
=C2=A0{
=C2=A0 =C2=A0 =C2=A0TInfix::Type kmer =3D infix(seq, i, i+12);
=C2=A0 =C2=A0 =C2=A0std::cout << kmer << std::endl;

=C2=A0 =C2=A0 =C2=A0seqan::hash(indexShape(index), kmer);
=C2=A0 =C2=A0 =C2=A0for (unsigned i =3D 0; i < length(getOccurrence= s(index, indexShape(index))); ++i)
=C2=A0 =C2=A0 =C2=A0{
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0std::cout << getOccurrences(in= dex, indexShape(index))[i] << std::endl;
=C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0std::cout << std::endl;
=C2=A0}
"""

but I'm getting a fairly obtuse error message I don't quite un= derstand, and doesn't point me back to any specific lines in my code.

"""
/usr/include/seqan/index/shape_base.h:535:55: error: indirection requi= res pointer operand ('seqan::Segment<const seqan::String<seqan::S= impleType<unsigned
=C2=A0 =C2=A0 =C2=A0 char, seqan::Dna5_>, seqan::Alloc<void> = >, seqan::InfixSegment>' invalid)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 hash * ValueSize<TValue>::VALUE + ordValue((TValue)*it)= ,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0^~~
/usr/include/seqan/index/shape_base.h:548:22: note: in instantiation o= f function template specialization 'seqan::_hashFixedShape<unsigned = long,
=C2=A0 =C2=A0 =C2=A0 seqan::SimpleType<unsigned char, seqan::Dna5_&= gt;, seqan::Segment<const seqan::String<seqan::SimpleType<unsigned= char, seqan::Dna5_>, seqan::Alloc<void> >,
=C2=A0 =C2=A0 =C2=A0 seqan::InfixSegment>, 12>' requested he= re
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return me.hVal= ue =3D _hashFixedShape(me.hValue, it, TValue(), UngappedShape<q>());<= /div>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0^
/home/bbowman/git/SRSLI/src/C++/SparseAlignment.hpp:102:16: note: in i= nstantiation of function template specialization 'seqan::hash<seqan:= :SimpleType<unsigned
=C2=A0 =C2=A0 =C2=A0 char, seqan::Dna5_>, 12, seqan::Segment<con= st seqan::String<seqan::SimpleType<unsigned char, seqan::Dna5_>, s= eqan::Alloc<void> >, seqan::InfixSegment>
=C2=A0 =C2=A0 =C2=A0 >' requested here
=C2=A0 =C2=A0 =C2=A0 =C2=A0 seqan::hash(indexShape(index), kmer);
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0^
/home/bbowman/git/SRSLI/src/C++/main.cpp:86:9: note: in instantiation = of function template specialization 'FindSeeds2<FindSeedsConfig<1= 2,
=C2=A0 =C2=A0 =C2=A0 seqan::UngappedShape<12>, seqan::IndexQGram= <seqan::UngappedShape<12>, seqan::Tag<seqan::Default_> > = > >' requested here
=C2=A0 =C2=A0 =C2=A0 =C2=A0 FindSeeds2(querySeedHits, refSetIndex, idx= AndRecord.second.Seq);
"""

Suggestions?

Sincerely,
Brett
_______________________________________________
seqan-dev mailing list
seqan-dev= @lists.fu-berlin.de
https://lists.fu-berlin.de/listinfo/seqan-dev

---

Ren=C3=A9 Rahn
Ph.D. Student
--------------------------------
--------------------------------
Institute of Computer Science
Algorithmic Bioinformatics (ABI)
--------------------------------
Freie Universit=C3=A4t Berlin
Takustra=C3=9Fe 9
14195 Berlin
--------------------------------


_______________________________________________
seqan-dev mailing list
seqan-dev@lists.fu-berlin.d= e
https://lists.fu-berlin.de/listinfo/seqan-dev


--001a1137c7d6f12937050854080d-- From ctb@msu.edu Fri Nov 21 15:44:51 2014 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XrpS5-002IFR-RF>; Fri, 21 Nov 2014 15:44:49 +0100 Received: from teckla.idyll.org ([69.55.232.123]) by relay1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1XrpS5-003pKD-L0>; Fri, 21 Nov 2014 15:44:49 +0100 Received: from [35.10.138.45] (helo=[10.0.1.78]) by teckla.idyll.org with esmtpa (Exim 4.69) (envelope-from ) id 1XrpS3-0000vK-28; Fri, 21 Nov 2014 06:44:47 -0800 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Content-Type: text/plain; charset=windows-1252 From: "C. Titus Brown" Resent-Cc: "Michael R. Crusoe" Resent-From: "C. Titus Brown" Date: Fri, 21 Nov 2014 09:38:57 -0500 Content-Transfer-Encoding: quoted-printable Resent-Date: Fri, 21 Nov 2014 09:44:45 -0500 Message-Id: <170A0CA2-59F1-41A7-A998-317B81059EF0@msu.edu> Resent-To: seqan-dev@lists.fu-berlin.de To: seqan-dev@lists.fu-berlin.de X-Mailer: Apple Mail (2.1878.6) Resent-Message-Id: X-Originating-IP: 69.55.232.123 X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1416581089-00067E64-8453D2F4/0/0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.200672, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=0.0 required=5.0 tests=none X-Spam-Checker-Version: SpamAssassin 3.4.0 on Botsuana.ZEDAT.FU-Berlin.DE X-Spam-Level: Cc: "Michael R. Crusoe" Subject: [Seqan-dev] Hello from the khmer project! X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Nov 2014 14:44:52 -0000 Dear SeqAn, just a brief intro and heads up =97 we have a PR for the khmer project, https://github.com/ged-lab/khmer/pull/642 that switches over to using SeqAn for our sequencing parsing. It will = most likely be merged for the next major release, v1.2 If you=92re unfamiliar with khmer, here=92s an intro paper: = http://files.figshare.com/1194736/wssspe13_ged.pdf At some point we hope to be chatting with you more closely about issues = that include streaming support and threading. In the meantime please = rely on us for any letters of support or collaboration that you can use! I=92m the PI on the main khmer grant, and Michael Crusoe, CCed, is the = lead khmer developer and community liaison. best, =97titus ----------------------------- Dr. C. Titus Brown, ctbrown@ucdavis.edu Visiting Associate Prof., UC Davis http://ged.msu.edu/= From t@teckla.idyll.org Fri Nov 21 15:45:33 2014 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XrpSl-002IT2-1c>; Fri, 21 Nov 2014 15:45:31 +0100 Received: from teckla.idyll.org ([69.55.232.123]) by relay1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1XrpSk-003pWa-Rb>; Fri, 21 Nov 2014 15:45:31 +0100 Received: from t by teckla.idyll.org with local (Exim 4.69) (envelope-from ) id 1XrpSi-00011E-Aj; Fri, 21 Nov 2014 06:45:28 -0800 Date: Fri, 21 Nov 2014 06:45:28 -0800 From: "C. Titus Brown" To: seqan-dev@lists.fu-berlin.de Message-ID: <20141121144528.GB32133@idyll.org> References: <170A0CA2-59F1-41A7-A998-317B81059EF0@msu.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <170A0CA2-59F1-41A7-A998-317B81059EF0@msu.edu> User-Agent: Mutt/1.5.18 (2008-05-17) X-Originating-IP: 69.55.232.123 X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1416581131-00067E64-66CDDB8E/0/0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.101836, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=0.0 required=5.0 tests=none X-Spam-Checker-Version: SpamAssassin 3.4.0 on Botsuana.ZEDAT.FU-Berlin.DE X-Spam-Level: Cc: "Michael R. Crusoe" Subject: Re: [Seqan-dev] Hello from the khmer project! X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: titus@idyll.org, SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Nov 2014 14:45:33 -0000 And, uhh, p.s. -- thanks for all the work on SeqAn! :) Sorry, forgot to say that! cheers, --titus On Fri, Nov 21, 2014 at 09:38:57AM -0500, C. Titus Brown wrote: > Dear SeqAn, > > just a brief intro and heads up ? we have a PR for the khmer project, > > https://github.com/ged-lab/khmer/pull/642 > > that switches over to using SeqAn for our sequencing parsing. It will most likely be merged for the next major release, v1.2 > > If you?re unfamiliar with khmer, here?s an intro paper: http://files.figshare.com/1194736/wssspe13_ged.pdf > > At some point we hope to be chatting with you more closely about issues that include streaming support and threading. In the meantime please rely on us for any letters of support or collaboration that you can use! > > I?m the PI on the main khmer grant, and Michael Crusoe, CCed, is the lead khmer developer and community liaison. > > best, > ?titus > ----------------------------- > > Dr. C. Titus Brown, ctbrown@ucdavis.edu > Visiting Associate Prof., UC Davis > http://ged.msu.edu/ > _______________________________________________ > seqan-dev mailing list > seqan-dev@lists.fu-berlin.de > https://lists.fu-berlin.de/listinfo/seqan-dev -- C. Titus Brown, ctb@msu.edu From Knut.Reinert@fu-berlin.de Fri Nov 21 16:03:52 2014 Received: from outpost9.zedat.fu-berlin.de ([130.133.4.95]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XrpkU-002LnD-07>; Fri, 21 Nov 2014 16:03:50 +0100 Received: from relay2.zedat.fu-berlin.de ([130.133.4.80]) by outpost.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XrpkT-001IY8-VG>; Fri, 21 Nov 2014 16:03:49 +0100 Received: from cas2.campus.fu-berlin.de ([130.133.170.202]) by relay2.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1XrpkT-003ydy-Lk>; Fri, 21 Nov 2014 16:03:49 +0100 Received: from EX02A.campus.fu-berlin.de ([130.133.170.132]) by CAS2.campus.fu-berlin.de ([130.133.170.202]) with mapi id 14.03.0210.002; Fri, 21 Nov 2014 16:03:48 +0100 From: "Reinert, Knut" To: SeqAn Development Thread-Topic: [Seqan-dev] Hello from the khmer project! Thread-Index: AQHQBZnBftEbCLi/NU6ywmwOhgh+LZxrLYB8 Message-ID: <74669129-2479-4361-9A55-2E4BC7AD73E1@fu-berlin.de> References: <170A0CA2-59F1-41A7-A998-317B81059EF0@msu.edu> In-Reply-To: <170A0CA2-59F1-41A7-A998-317B81059EF0@msu.edu> Accept-Language: en-US, de-DE Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Date: Fri, 21 Nov 2014 16:03:46 +0100 X-Original-Date: Fri, 21 Nov 2014 15:03:46 +0000 X-Originating-IP: 130.133.170.202 X-ZEDAT-Hint: X X-purgate: suspect X-purgate-type: suspect X-purgate-ID: 151147::1416582230-00067E64-839B4008/2/15101991804 X-Bogosity: Ham, tests=bogofilter, spamicity=0.149611, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=-49.0 required=5.0 tests=ALL_TRUSTED, FU_XPURGATE_SUSP X-Spam-Checker-Version: SpamAssassin 3.4.0 on Botsuana.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [Seqan-dev] Hello from the khmer project! X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Nov 2014 15:03:52 -0000 Hi Titus, Thanks for the update! We are currently in a transition phase of some personnel and will release s= eqAn 2.0 this year. In spring we will do a Renault of our website and plan to include more I fo= r about partners and users of SeqAn. So if it is the ok I will approach you then for more details? All the best, Knut Sent from my iPad, sorry for being short. > On Nov 21, 2014, at 15:45, C. Titus Brown wrote: >=20 > Dear SeqAn, >=20 > just a brief intro and heads up =97 we have a PR for the khmer project, >=20 > https://github.com/ged-lab/khmer/pull/642 >=20 > that switches over to using SeqAn for our sequencing parsing. It will mo= st likely be merged for the next major release, v1.2 >=20 > If you=92re unfamiliar with khmer, here=92s an intro paper: http://files.= figshare.com/1194736/wssspe13_ged.pdf >=20 > At some point we hope to be chatting with you more closely about issues t= hat include streaming support and threading. In the meantime please rely o= n us for any letters of support or collaboration that you can use! >=20 > I=92m the PI on the main khmer grant, and Michael Crusoe, CCed, is the le= ad khmer developer and community liaison. >=20 > best, > =97titus > ----------------------------- >=20 > Dr. C. Titus Brown, ctbrown@ucdavis.edu > Visiting Associate Prof., UC Davis > http://ged.msu.edu/ > _______________________________________________ > seqan-dev mailing list > seqan-dev@lists.fu-berlin.de > https://lists.fu-berlin.de/listinfo/seqan-dev From t@teckla.idyll.org Fri Nov 21 16:08:59 2014 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XrppR-002MXv-1s>; Fri, 21 Nov 2014 16:08:57 +0100 Received: from teckla.idyll.org ([69.55.232.123]) by relay1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1XrppQ-003wDw-RR>; Fri, 21 Nov 2014 16:08:57 +0100 Received: from t by teckla.idyll.org with local (Exim 4.69) (envelope-from ) id 1XrppO-00068B-2o; Fri, 21 Nov 2014 07:08:54 -0800 Date: Fri, 21 Nov 2014 07:08:54 -0800 From: "C. Titus Brown" To: SeqAn Development Message-ID: <20141121150854.GC32133@idyll.org> References: <170A0CA2-59F1-41A7-A998-317B81059EF0@msu.edu> <74669129-2479-4361-9A55-2E4BC7AD73E1@fu-berlin.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <74669129-2479-4361-9A55-2E4BC7AD73E1@fu-berlin.de> User-Agent: Mutt/1.5.18 (2008-05-17) X-Originating-IP: 69.55.232.123 X-purgate: suspect X-purgate-type: suspect X-purgate-ID: 151147::1416582537-00067E64-A2051711/2/15101991804 X-Bogosity: Ham, tests=bogofilter, spamicity=0.020636, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=1.0 required=5.0 tests=FU_XPURGATE_SUSP X-Spam-Checker-Version: SpamAssassin 3.4.0 on Botsuana.ZEDAT.FU-Berlin.DE X-Spam-Level: x Cc: mcrusoe@msu.edu Subject: Re: [Seqan-dev] Hello from the khmer project! X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: titus@idyll.org, SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Nov 2014 15:08:59 -0000 On Fri, Nov 21, 2014 at 04:03:46PM +0100, Reinert, Knut wrote: > Hi Titus, > > Thanks for the update! > > We are currently in a transition phase of some personnel and will release seqAn 2.0 this year. > In spring we will do a Renault of our website and plan to include more I for about partners and users of SeqAn. > > So if it is the ok I will approach you then for more details? Sounds good! best, --titus > Sent from my iPad, sorry for being short. > > > On Nov 21, 2014, at 15:45, C. Titus Brown wrote: > > > > Dear SeqAn, > > > > just a brief intro and heads up ? we have a PR for the khmer project, > > > > https://github.com/ged-lab/khmer/pull/642 > > > > that switches over to using SeqAn for our sequencing parsing. It will most likely be merged for the next major release, v1.2 > > > > If you?re unfamiliar with khmer, here?s an intro paper: http://files.figshare.com/1194736/wssspe13_ged.pdf > > > > At some point we hope to be chatting with you more closely about issues that include streaming support and threading. In the meantime please rely on us for any letters of support or collaboration that you can use! > > > > I?m the PI on the main khmer grant, and Michael Crusoe, CCed, is the lead khmer developer and community liaison. > > > > best, > > ?titus > > ----------------------------- > > > > Dr. C. Titus Brown, ctbrown@ucdavis.edu > > Visiting Associate Prof., UC Davis > > http://ged.msu.edu/ > > _______________________________________________ > > seqan-dev mailing list > > seqan-dev@lists.fu-berlin.de > > https://lists.fu-berlin.de/listinfo/seqan-dev > > _______________________________________________ > seqan-dev mailing list > seqan-dev@lists.fu-berlin.de > https://lists.fu-berlin.de/listinfo/seqan-dev -- C. Titus Brown, ctb@msu.edu From theo@stillwater-sc.com Sat Nov 22 16:18:00 2014 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XsCRi-0005OQ-6r>; Sat, 22 Nov 2014 16:17:58 +0100 Received: from mail12c40.carrierzone.com ([209.235.156.152]) by relay1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1XsCRh-0042F7-K3>; Sat, 22 Nov 2014 16:17:58 +0100 X-Authenticated-User: theo.stillwater-sc.com Received: from [192.168.1.119] (173-162-153-241-NewEngland.hfc.comcastbusiness.net [173.162.153.241]) (authenticated bits=0) by mail12c40.carrierzone.com (8.13.6/8.13.1) with ESMTP id sAMFHoAQ006871 for ; Sat, 22 Nov 2014 15:17:52 +0000 Message-ID: <5470A923.5080202@stillwater-sc.com> Date: Sat, 22 Nov 2014 10:17:55 -0500 From: Theodore Omtzigt Organization: Stillwater Supercomputing, Inc. User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: seqan-dev@lists.fu-berlin.de References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-CTCH-RefID: str=0001.0A020203.5470A920.0210, ss=1, re=0.001, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.001 X-CTCH-Rules: C_4847, X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-Origin-Country: US X-Originating-IP: 209.235.156.152 X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1416669478-00067E64-0C6E6D04/0/0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.350860, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_NONE X-Spam-Checker-Version: SpamAssassin 3.4.0 on Gabun.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [Seqan-dev] seqan-dev Digest, Vol 59, Issue 11 X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Nov 2014 15:18:01 -0000 This is fantastic! I am a big fan of Seqan and khmer and we have been trying to figure out how to hardware accelerate khmer, in particular, the digital renormalization step. Seqan's meta-programmed API is meant to abstract away the underlying 'algorithm' and is thus the perfect interface for hardware accelerated systems. This collaboration would solve the hardware acceleration dilemma of too many software packages with too many APIs and with too little structure. Hardware acceleration for genomics/proteomics has such a phenomenal upside since the core operators, small alphabets, string operators, string search, Bloom filters, hash functions, etc. are so poorly supported by general purpose CPUs and GPUs that custom hardware can easily get to 100x speedups. The biggest problem is the broad and unstructured software landscape. Seqan as a common library would go a long way to resolve the software proliferation problem. Let me know if there is anything we can help with. Theo CEO Stillwater Supercomputing, Inc. http://www.stillwater-sc.com/ =20 On 11/22/2014 6:00 AM, seqan-dev-request@lists.fu-berlin.de wrote: > Send seqan-dev mailing list submissions to > seqan-dev@lists.fu-berlin.de > > To subscribe or unsubscribe via the World Wide Web, visit > https://lists.fu-berlin.de/listinfo/seqan-dev > or, via email, send a message with subject or body 'help' to > seqan-dev-request@lists.fu-berlin.de > > You can reach the person managing the list at > seqan-dev-owner@lists.fu-berlin.de > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of seqan-dev digest..." > > > Today's Topics: > > 1. Hello from the khmer project! (C. Titus Brown) > 2. Re: Hello from the khmer project! (C. Titus Brown) > 3. Re: Hello from the khmer project! (Reinert, Knut) > 4. Re: Hello from the khmer project! (C. Titus Brown) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Fri, 21 Nov 2014 09:38:57 -0500 > From: "C. Titus Brown" > To: seqan-dev@lists.fu-berlin.de > Cc: "Michael R. Crusoe" > Subject: [Seqan-dev] Hello from the khmer project! > Message-ID: <170A0CA2-59F1-41A7-A998-317B81059EF0@msu.edu> > Content-Type: text/plain; charset=3Dwindows-1252 > > Dear SeqAn, > > just a brief intro and heads up ? we have a PR for the khmer project, > > https://github.com/ged-lab/khmer/pull/642 > > that switches over to using SeqAn for our sequencing parsing. It will = most likely be merged for the next major release, v1.2 > > If you?re unfamiliar with khmer, here?s an intro paper: http://files.fi= gshare.com/1194736/wssspe13_ged.pdf > > At some point we hope to be chatting with you more closely about issues= that include streaming support and threading. In the meantime please re= ly on us for any letters of support or collaboration that you can use! > > I?m the PI on the main khmer grant, and Michael Crusoe, CCed, is the le= ad khmer developer and community liaison. > > best, > ?titus > ----------------------------- > > Dr. C. Titus Brown, ctbrown@ucdavis.edu > Visiting Associate Prof., UC Davis > http://ged.msu.edu/ > > > ------------------------------ > > Message: 2 > Date: Fri, 21 Nov 2014 06:45:28 -0800 > From: "C. Titus Brown" > To: seqan-dev@lists.fu-berlin.de > Cc: "Michael R. Crusoe" > Subject: Re: [Seqan-dev] Hello from the khmer project! > Message-ID: <20141121144528.GB32133@idyll.org> > Content-Type: text/plain; charset=3Dus-ascii > > And, uhh, p.s. -- thanks for all the work on SeqAn! :) Sorry, forgot t= o say > that! > > cheers, > --titus > > On Fri, Nov 21, 2014 at 09:38:57AM -0500, C. Titus Brown wrote: >> Dear SeqAn, >> >> just a brief intro and heads up ? we have a PR for the khmer project, >> >> https://github.com/ged-lab/khmer/pull/642 >> >> that switches over to using SeqAn for our sequencing parsing. It will= most likely be merged for the next major release, v1.2 >> >> If you?re unfamiliar with khmer, here?s an intro paper: http://files.f= igshare.com/1194736/wssspe13_ged.pdf >> >> At some point we hope to be chatting with you more closely about issue= s that include streaming support and threading. In the meantime please r= ely on us for any letters of support or collaboration that you can use! >> >> I?m the PI on the main khmer grant, and Michael Crusoe, CCed, is the l= ead khmer developer and community liaison. >> >> best, >> ?titus >> ----------------------------- >> >> Dr. C. Titus Brown, ctbrown@ucdavis.edu >> Visiting Associate Prof., UC Davis >> http://ged.msu.edu/ >> _______________________________________________ >> seqan-dev mailing list >> seqan-dev@lists.fu-berlin.de >> https://lists.fu-berlin.de/listinfo/seqan-dev From t@teckla.idyll.org Sat Nov 22 23:19:56 2014 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XsJ1x-000aHB-T4>; Sat, 22 Nov 2014 23:19:50 +0100 Received: from teckla.idyll.org ([69.55.232.123]) by relay1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1XsJ1x-0011QF-GJ>; Sat, 22 Nov 2014 23:19:49 +0100 Received: from t by teckla.idyll.org with local (Exim 4.69) (envelope-from ) id 1XsJ1t-0007n7-Oi for seqan-dev@lists.fu-berlin.de; Sat, 22 Nov 2014 14:19:45 -0800 Date: Sat, 22 Nov 2014 14:19:45 -0800 From: "C. Titus Brown" To: SeqAn Development Message-ID: <20141122221945.GI22300@idyll.org> References: <5470A923.5080202@stillwater-sc.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5470A923.5080202@stillwater-sc.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Originating-IP: 69.55.232.123 X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1416694789-00067E64-F035C35A/0/0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.163870, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=0.0 required=5.0 tests=none X-Spam-Checker-Version: SpamAssassin 3.4.0 on Benin.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [Seqan-dev] seqan-dev Digest, Vol 59, Issue 11 X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: titus@idyll.org, SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Nov 2014 22:19:56 -0000 Thanks, Theo -- nothing comes to mind but we are open to patches from you, if it makes your life easier for us to maintain them. (I mean, they shouldn't be totally irrelevant and a maintenance burden, but we have no objection to adding in refactorings that you've done.) cheers, --titus On Sat, Nov 22, 2014 at 10:17:55AM -0500, Theodore Omtzigt wrote: > This is fantastic! I am a big fan of Seqan and khmer and we have been > trying to figure out how to hardware accelerate khmer, in particular, > the digital renormalization step. Seqan's meta-programmed API is meant > to abstract away the underlying 'algorithm' and is thus the perfect > interface for hardware accelerated systems. This collaboration would > solve the hardware acceleration dilemma of too many software packages > with too many APIs and with too little structure. Hardware acceleration > for genomics/proteomics has such a phenomenal upside since the core > operators, small alphabets, string operators, string search, Bloom > filters, hash functions, etc. are so poorly supported by general purpose > CPUs and GPUs that custom hardware can easily get to 100x speedups. The > biggest problem is the broad and unstructured software landscape. Seqan > as a common library would go a long way to resolve the software > proliferation problem. > > Let me know if there is anything we can help with. > > Theo > CEO > Stillwater Supercomputing, Inc. > http://www.stillwater-sc.com/ > > On 11/22/2014 6:00 AM, seqan-dev-request@lists.fu-berlin.de wrote: > > Send seqan-dev mailing list submissions to > > seqan-dev@lists.fu-berlin.de > > > > To subscribe or unsubscribe via the World Wide Web, visit > > https://lists.fu-berlin.de/listinfo/seqan-dev > > or, via email, send a message with subject or body 'help' to > > seqan-dev-request@lists.fu-berlin.de > > > > You can reach the person managing the list at > > seqan-dev-owner@lists.fu-berlin.de > > > > When replying, please edit your Subject line so it is more specific > > than "Re: Contents of seqan-dev digest..." > > > > > > Today's Topics: > > > > 1. Hello from the khmer project! (C. Titus Brown) > > 2. Re: Hello from the khmer project! (C. Titus Brown) > > 3. Re: Hello from the khmer project! (Reinert, Knut) > > 4. Re: Hello from the khmer project! (C. Titus Brown) > > > > > > ---------------------------------------------------------------------- > > > > Message: 1 > > Date: Fri, 21 Nov 2014 09:38:57 -0500 > > From: "C. Titus Brown" > > To: seqan-dev@lists.fu-berlin.de > > Cc: "Michael R. Crusoe" > > Subject: [Seqan-dev] Hello from the khmer project! > > Message-ID: <170A0CA2-59F1-41A7-A998-317B81059EF0@msu.edu> > > Content-Type: text/plain; charset=windows-1252 > > > > Dear SeqAn, > > > > just a brief intro and heads up ? we have a PR for the khmer project, > > > > https://github.com/ged-lab/khmer/pull/642 > > > > that switches over to using SeqAn for our sequencing parsing. It will most likely be merged for the next major release, v1.2 > > > > If you?re unfamiliar with khmer, here?s an intro paper: http://files.figshare.com/1194736/wssspe13_ged.pdf > > > > At some point we hope to be chatting with you more closely about issues that include streaming support and threading. In the meantime please rely on us for any letters of support or collaboration that you can use! > > > > I?m the PI on the main khmer grant, and Michael Crusoe, CCed, is the lead khmer developer and community liaison. > > > > best, > > ?titus > > ----------------------------- > > > > Dr. C. Titus Brown, ctbrown@ucdavis.edu > > Visiting Associate Prof., UC Davis > > http://ged.msu.edu/ > > > > > > ------------------------------ > > > > Message: 2 > > Date: Fri, 21 Nov 2014 06:45:28 -0800 > > From: "C. Titus Brown" > > To: seqan-dev@lists.fu-berlin.de > > Cc: "Michael R. Crusoe" > > Subject: Re: [Seqan-dev] Hello from the khmer project! > > Message-ID: <20141121144528.GB32133@idyll.org> > > Content-Type: text/plain; charset=us-ascii > > > > And, uhh, p.s. -- thanks for all the work on SeqAn! :) Sorry, forgot to say > > that! > > > > cheers, > > --titus > > > > On Fri, Nov 21, 2014 at 09:38:57AM -0500, C. Titus Brown wrote: > >> Dear SeqAn, > >> > >> just a brief intro and heads up ? we have a PR for the khmer project, > >> > >> https://github.com/ged-lab/khmer/pull/642 > >> > >> that switches over to using SeqAn for our sequencing parsing. It will most likely be merged for the next major release, v1.2 > >> > >> If you?re unfamiliar with khmer, here?s an intro paper: http://files.figshare.com/1194736/wssspe13_ged.pdf > >> > >> At some point we hope to be chatting with you more closely about issues that include streaming support and threading. In the meantime please rely on us for any letters of support or collaboration that you can use! > >> > >> I?m the PI on the main khmer grant, and Michael Crusoe, CCed, is the lead khmer developer and community liaison. > >> > >> best, > >> ?titus > >> ----------------------------- > >> > >> Dr. C. Titus Brown, ctbrown@ucdavis.edu > >> Visiting Associate Prof., UC Davis > >> http://ged.msu.edu/ > >> _______________________________________________ > >> seqan-dev mailing list > >> seqan-dev@lists.fu-berlin.de > >> https://lists.fu-berlin.de/listinfo/seqan-dev > > _______________________________________________ > seqan-dev mailing list > seqan-dev@lists.fu-berlin.de > https://lists.fu-berlin.de/listinfo/seqan-dev -- C. Titus Brown, ctb@msu.edu From Enrico.Siragusa@fu-berlin.de Sun Nov 23 14:21:55 2014 Received: from outpost9.zedat.fu-berlin.de ([130.133.4.95]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XsX6u-001NI3-PZ>; Sun, 23 Nov 2014 14:21:52 +0100 Received: from relay2.zedat.fu-berlin.de ([130.133.4.80]) by outpost.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XsX6u-003xOA-NW>; Sun, 23 Nov 2014 14:21:52 +0100 Received: from cas2.campus.fu-berlin.de ([130.133.170.202]) by relay2.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1XsX6u-003FY3-A0>; Sun, 23 Nov 2014 14:21:52 +0100 Received: from EX02A.campus.fu-berlin.de ([130.133.170.132]) by CAS2.campus.fu-berlin.de ([130.133.170.202]) with mapi id 14.03.0210.002; Sun, 23 Nov 2014 14:21:51 +0100 From: "Siragusa, Enrico" To: SeqAn Development Thread-Topic: [Seqan-dev] Trouble Hashing Kmers into Qgram Index Thread-Index: AQHQA8L73oM0vrP8bka8VPHl4f0ZApxnz3oAgAJmmICAA/KEgA== Message-ID: References: In-Reply-To: Accept-Language: en-US, de-DE Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Content-Type: multipart/alternative; boundary="_000_DF2CAB577A054E23A77BA63E659917D8fuberlinde_" MIME-Version: 1.0 Date: Sun, 23 Nov 2014 14:21:49 +0100 X-Original-Date: Sun, 23 Nov 2014 13:21:49 +0000 X-Originating-IP: 130.133.170.202 X-ZEDAT-Hint: XA X-purgate: suspect X-purgate-type: suspect X-purgate-ID: 151147::1416748912-00067E64-6E2E2B86/2/15100498843 X-Bogosity: Ham, tests=bogofilter, spamicity=0.401571, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=-47.3 required=5.0 tests=ALL_TRUSTED, FU_XPURGATE_SUSP, HTML_MESSAGE,URIBL_BLACK X-Spam-Checker-Version: SpamAssassin 3.4.0 on Algerien.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [Seqan-dev] Trouble Hashing Kmers into Qgram Index X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Nov 2014 13:21:55 -0000 --_000_DF2CAB577A054E23A77BA63E659917D8fuberlinde_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgQnJldHQsDQoNCk9uIE5vdiAyMSwgMjAxNCwgYXQgMjowNSBBTSwgQnJldHQgQm93bWFuIDxi bmJvd21hbkBnbWFpbC5jb208bWFpbHRvOmJuYm93bWFuQGdtYWlsLmNvbT4+IHdyb3RlOg0KDQpU aGFua3MgUmVuZSwgdGhvc2Ugc29sdXRpb25zIHdvcmtlZCBmb3IgbWUuDQoNCkkgaGF2ZSB0d28g Zm9sbG93LXVwIFFncmFtIEluZGV4IHF1ZXN0aW9uczoNCg0KMSkgSXMgdGhlcmUgYW55IHdheSB0 byBpdGVyYXRlIG92ZXIgYWxsIG9mIHRoZSBLbWVycyBzdG9yZWQgaW4gYSBRZ3JhbSBpbmRleD8g IFlvdSBoYXZlIHNhbXBsZSBjb2RlIGZvciB0aGUgb3RoZXIgaW5kZXggdHlwZXMgaGVyZSAoaHR0 cDovL3NlcWFuLnJlYWR0aGVkb2NzLm9yZy9lbi9tYXN0ZXIvVHV0b3JpYWwvSW5kZXhJdGVyYXRv cnMuaHRtbCksIGJ1dCBpdCBkb2Vzbid0IHNlZW0gdG8gd29yayBmb3IgbWUgZm9yIHRoZSBRZ3Jh bUluZHg6DQoiIiINCiB0eXBlZGVmIEl0ZXJhdG9yPFRJbmRleCwgVG9wRG93bjxQYXJlbnRMaW5r czw+Pj4gVEl0ZXI7DQoNCiBUSXRlcjo6VHlwZSBpdChyZWZTZXRJbmRleCk7DQogZG8gew0KICAg ICAvLyBQcmludCB0aGVsZXR0ZXJzIGZyb20gdGhlIHJvb3QgdG8gdGhlIGN1cnJlbnQgbm9kZQ0K ICAgICBzdGQ6OmNvdXQgPDwgcmVwcmVzZW50YXRpdmUoaXQpIDw8IHN0ZDo6ZW5kbDsNCg0KICAg ICBpZiAoIWdvRG93bihpdCkgJiYgIWdvUmlnaHQoaXQpKQ0KICAgICAgICAgd2hpbGUgKGdvVXAo aXQpICYmICFnb1JpZ2h0KGl0KSk7DQogfSB3aGlsZSAoIWlzUm9vdChpdCkpOw0KJyIiIg0KDQoN ClRoaXMgdHJhdmVyc2FsIHdvcmtzIG9uIGEgUUdyYW0gSW5kZXggdG9vISBGb3IgZXhhbXBsZSwg cmVwbGFjZSB0aGUgVEluZGV4IGRlZmluaXRpb24gYXQgaHR0cHM6Ly9naXRodWIuY29tL3NlcWFu L3NlcWFuL2Jsb2IvZGV2ZWxvcC9jb3JlL2RlbW9zL2luZGV4L2luZGV4X2l0ZXJhdG9yLmNwcCNM MTAgd2l0aDoNCg0KICAgIHR5cGVkZWYgSW5kZXg8Q2hhclN0cmluZywgSW5kZXhRR3JhbTxVbmdh cHBlZFNoYXBlPDM+ID4gPiBUSW5kZXg7DQoNCmFuZCB0aGUgZGVtbyB3aWxsIGl0ZXJhdGUgYWxs IHRleHQgcS1ncmFtcyB1cCB0byBsZW5ndGggMyBpbiBsZXhpY29ncmFwaGljIG9yZGVyLiBOb3Rl IHRoYXQgdGhlIGJhc2ljIFFHcmFtIEluZGV4IGlzIHByYWN0aWNhbGx5IGxpbWl0ZWQgdG8gc2hv cnQgcS1xZ3JhbXMsIGFzIGl0IHJlbGllcyBvbiBhIGRpcmVjdCBhZGRyZXNzaW5nIGhhc2ggdGFi bGUgb2Ygc2l6ZSBPKGFecSksIHdoZXJlIGEgaXMgdGhlIGFscGhhYmV0IHNpemUuIEZvciBpbnN0 YW5jZSwgYSAxNC1HcmFtIEluZGV4IG92ZXIgdGhlIERuYSBhbHBoYWJldCByZXF1aXJlcyA+PSAx R0Igb2YgbWVtb3J5Lg0KDQoNCkFsdGVybmF0aXZlbHksIHlvdSBjYW4gaW5kZXggRG5hIHVwIHRv IDMxLWdyYW1zIHVzaW5nIGFuIE9wZW5BZGRyZXNzaW5nIFFHcmFtIEluZGV4Og0KDQogICAgdHlw ZWRlZiBJbmRleDxEbmFTdHJpbmcsIEluZGV4UUdyYW08VW5nYXBwZWRTaGFwZTxxPiwgT3BlbkFk ZHJlc3Npbmc+ID4gVEluZGV4Ow0KDQpidXQgdGhlIGFib3ZlIHRvcC1kb3duIGl0ZXJhdGlvbiB3 b24ndCB3b3JrIGhlcmUsIGFzIHRoZSBvcGVuIGFkZHJlc3NpbmcgaGFzaCB0YWJsZSBtYWludGFp bnMgdGhlIHEtZ3JhbXMgdW5zb3J0ZWQuIFlvdSBjYW4gaXRlcmF0ZSBhbGwgdGV4dCBxLWdyYW1z IGluIHJhbmRvbSBvcmRlciBieSBhY2Nlc3NpbmcgdGhlIGludGVybmFsIEJ1Y2tldE1hcCBGaWJy ZSBvZiB0aGUgT3BlbkFkZHJlc3NpbmcgUUdyYW0gSW5kZXguIFRoZSBhYm92ZSBkZW1vIGJlY29t ZXM6DQoNCmludCBtYWluICgpDQp7DQogICAgdHlwZWRlZiBJbmRleDxDaGFyU3RyaW5nLCBJbmRl eFFHcmFtPFVuZ2FwcGVkU2hhcGU8Mz4sIE9wZW5BZGRyZXNzaW5nPiA+IFRJbmRleDsNCiAgICB0 eXBlZGVmIHR5cGVuYW1lIEZpYnJlPFRJbmRleCwgRmlicmVCdWNrZXRNYXA+OjpUeXBlIGNvbnN0 ICAgICAgICAgICAgICAgVEJ1Y2tldE1hcDsNCiAgICB0eXBlZGVmIHR5cGVuYW1lIFNpemU8VEJ1 Y2tldE1hcD46OlR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFNpemU7DQog ICAgdHlwZWRlZiB0eXBlbmFtZSBTcGVjPFRCdWNrZXRNYXA+OjpUeXBlICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFRIYXNoOw0KDQogICAgVEluZGV4IGluZGV4KCJ0b2Jlb3Jub3R0 b2JlIik7DQogICAgaW5kZXhDcmVhdGUoaW5kZXgsIEZpYnJlU0FEaXIoKSk7DQoNCiAgICBUQnVj a2V0TWFwICYgYnVja2V0TWFwID0gZ2V0RmlicmUoaW5kZXgsIEZpYnJlQnVja2V0TWFwKCkpOw0K DQogICAgQ2hhclN0cmluZyBxZ3JhbTsNCiAgICBmb3IgKFRTaXplIGkgPSAwOyBpIDwgbGVuZ3Ro KGJ1Y2tldE1hcC5xZ3JhbUNvZGUpOyArK2kpDQogICAgew0KICAgICAgICBUSGFzaCBoYXNoID0g YnVja2V0TWFwLnFncmFtQ29kZVtpXTsNCg0KICAgICAgICBpZiAoaGFzaCA9PSBUQnVja2V0TWFw OjpFTVBUWSkgY29udGludWU7DQoNCiAgICAgICAgdW5oYXNoKHFncmFtLCBoYXNoLCAzKTsNCg0K ICAgICAgICBzdGQ6OmNvdXQgPDwgcWdyYW0gPDwgc3RkOjplbmRsOw0KICAgIH0NCg0KICAgIHJl dHVybiAwOw0KfQ0KDQpJIHRoaW5rIHRoYXQgUUdyYW0gSW5kaWNlcyBzaG91bGQgcHJvdmlkZSBh IGdlbmVyaWMgaXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBxLWdyYW1zIC0gdGhpcyBsb29rcyBsaWtl IGFuIGltcG9ydGFudCB1c2UgY2FzZSB0aGF0IG5vYm9keSBlbmNvdW50ZXJlZCBzbyBmYXIuLi4N Cg0KDQoyKSBJcyB0aGVyZSBhbnkgd2F5IHRvIG1hc2sgb3IgcmVtb3ZlIGNlcnRhaW4gS21lcnMg ZnJvbSBhbiBJbmRleCBvbmNlIGl0J3MgYmVlbiBjcmVhdGVkPyAgSS5lLiwgdG8gaGlkZSBvciBk ZWxldGUgY29tbW9uLCBsb3ctY29tcGxleGl0eSBLbWVycyBsaWtlIGhvbW9wb2x5bWVycw0KDQoN CllvdSBjb3VsZCByZW1vdmUgY2VydGFpbiBxLWdyYW1zIGFmdGVyIGNvbnN0cnVjdGlvbiwgYnV0 IHRoaXMgcmVxdWlyZXMgbWFuaXB1bGF0aW5nIHRoZSBpbnRlcm5hbCBRR3JhbSBJbmRleCBGaWJy ZXMgeW91cnNlbGYsIGFzIHRoZXJl4oCZcyBubyBwdWJsaWMgaW50ZXJmYWNlIGZvciBkb2luZyBp dC4NCg0KSW4gdGhlIGJhc2ljIFFHcmFtIEluZGV4IHRoaXMgaXMgbm90IGVhc3kvY29udmVuaWVu dCwgYXMgdGhlIHEtZ3JhbSBvY2N1cnJlbmNlcyBoYXZlIHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUg U0EgRmlicmUgKGkuZS4gdGhlIHBhcnRpYWwgc3VmZml4IGFycmF5KS4NCk90aGVyd2lzZSwgeW91 IGNhbiBwcnVuZSBxLWdyYW1zIG9uIHRoZSBmbHkgZHVyaW5nIHRoZSB0b3AtZG93biB0cmF2ZXJz YWwgLSB0aGUgZnVuY3Rpb24gY291bnRPY2N1cnJlbmNlcyhpdCkgcmV0dXJucyB0aGUgbnVtYmVy IG9mIG9jY3VycmVuY2VzIG9mIHRoZSBjdXJyZW50IHEtZ3JhbS4NCg0KSW4gdGhlIE9wZW5BZGRy ZXNzaW5nIFFHcmFtIEluZGV4LCBhcyBmYXIgYXMgSSBrbm93LCB5b3Ugc2hvdWxkIGJlIGFibGUg dG8gc2V0IHNvbWUgaGFzaCB2YWx1ZXMgdG8gRU1QVFkuDQoNCg0KLUJyZXR0DQoNCg0KDQoNCk9u IFdlZCwgTm92IDE5LCAyMDE0IGF0IDQ6MjUgQU0sIFJhaG4sIFJlbsOpIDxyZW5lLm1hZXJrZXJA ZnUtYmVybGluLmRlPG1haWx0bzpyZW5lLm1hZXJrZXJAZnUtYmVybGluLmRlPj4gd3JvdGU6DQpI ZXksDQoNCnRoZSBwcm9ibGVtIGxpZXMgaW4gdGhlIGhhc2goaW5kZXhTaGFwZShpbmRleCksIGtt ZXIpIGZ1bmN0aW9uLg0KVGhlIGhhc2ggZnVuY3Rpb24gb25seSB0YWtlcyBhbiBpdGVyYXRvciBv ciBwb2ludGVyIGFzIHNlY29uZCBhcmd1bWVudC4NClNvIGluIHlvdXIgY2FzZSB0aGUgc2ltcGxl IHNvbHV0aW9uIHdvdWxkIGJlIHRvIGNhbGwgdGhlIGZ1bmN0aW9uIGhhc2goaW5kZXhTaGFwZShp bmRleCksIGl0KSwgd2hpbGUgdXNpbmcgYW4gaXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIHRoZSB0 ZXh0IGluc3RlYWQgb2YgdXNpbmcgdGhlIHVuc2lnbmVkIGludGVnZXIuIFRoaXMgbGl0dGxlIGJl aGF2aW91ciBkb2VzIG5vdCBzZWVtIG9idmlvdXMsIGFzIGluIHRoZSB0dXRvcmlhbCB5b3UgcGFz cyBhIHN0cmluZyBsaXRlcmFsLiBCdXQgaW4gZmFjdCBhIHN0cmluZyBsaXRlcmFsIGlzIGp1c3Qg YSBjb25zdCBjaGFyICosIHNvIGl0IHdvcmtzLg0KDQpIZXJlIHlvdSBzZWUgYW4gZXhhbXBsZSBj b2RlIHRvIHdvcmsgd2l0aCBhKSB1c2luZyB0aGUgZmluZGVyIGludGVyZmFjZSBhbmQgYikgZGly ZWN0bHkgb3BlcmF0aW5nIG9uIHRoZSBpbmRleC4NCklIVEguDQoNCmNoZWVycywNCg0KUmVuw6kN Cg0KICAgIHR5cGVkZWYgSW5kZXg8RG5hU3RyaW5nLCBJbmRleFFHcmFtPFVuZ2FwcGVkU2hhcGU8 MTI+ID4gPiBUUUdyYW1JbmRleDsNCiAgICB0eXBlZGVmIEZpbmRlcjxUUUdyYW1JbmRleD4gVEZp bmRlcjsNCiAgICB0eXBlZGVmIEl0ZXJhdG9yPERuYVN0cmluZywgU3RhbmRhcmQ+OjpUeXBlIFRJ dGVyYXRvcjsNCiAgICB0eXBlZGVmIEZpYnJlPFRRR3JhbUluZGV4LCBRR3JhbVNoYXBlPjo6VHlw ZSBUU2hhcGU7DQoNCiAgICBUUUdyYW1JbmRleCBpbmRleChyZWYpOw0KICAgIGluZGV4UmVxdWly ZShpbmRleCwgUUdyYW1TQURpcigpKTsgIC8vIE9uLWRlbWFuZCBpbmRleCBjcmVhdGlvbi4NCg0K ICAgIC8vIGEpIFVzaW5nIHRoZSBmaW5kZXIgaW50ZXJmYWNlLg0KICAgIFRGaW5kZXIgZmluZGVy KGluZGV4KTsNCg0KICAgIGZvciAoVEl0ZXJhdG9yIGl0ID0gYmVnaW4ocXVlcnksIFN0YW5kYXJk KCkpOyBpdCAhPSBlbmQocXVlcnksIFN0YW5kYXJkKCkpIC0gMTI7ICsraXQpDQogICAgew0KICAg ICAgICBzdGQ6OmNvdXQgPDwgIk9jYyBhdDogIjsNCiAgICAgICAgd2hpbGUoZmluZChmaW5kZXIs IGluZml4KHF1ZXJ5LCBpdCwgaXQrMTIpKSkNCiAgICAgICAgICAgIHN0ZDo6Y291dCA8PCBwb3Np dGlvbihmaW5kZXIpIDw8ICIgIjsNCiAgICAgICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsNCiAg ICAgICAgY2xlYXIoZmluZGVyKTsgIC8vIENsZWFyIGZpbmRlciBmb3IgbmV4dCBzZWFyY2guDQog ICAgfQ0KDQogICAgLy8gYikgVXNpbmcgdGhlIGluZGV4IGludGVyZmFjZS4NCiAgICBUU2hhcGUg JiBzaGFwZSA9IGluZGV4U2hhcGUoaW5kZXgpOw0KICAgIGhhc2hJbml0KHNoYXBlLCBiZWdpbihx dWVyeSwgU3RhbmRhcmQoKSkpOw0KICAgIGZvciAoVEl0ZXJhdG9yIGl0ID0gYmVnaW4ocXVlcnks IFN0YW5kYXJkKCkpOyBpdCAhPSBlbmQocXVlcnksIFN0YW5kYXJkKCkpIC0gMTI7ICsraXQpDQog ICAgew0KICAgICAgICBzdGQ6OmNvdXQgPDwgIk9jYyBhdDogIjsNCiAgICAgICAgaGFzaE5leHQo c2hhcGUsIGl0KTsNCiAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aChnZXRP Y2N1cnJlbmNlcyhpbmRleCwgc2hhcGUpKTsgKytpKQ0KICAgICAgICAgICAgc3RkOjpjb3V0IDw8 IGdldE9jY3VycmVuY2VzKGluZGV4LCBzaGFwZSlbaV0gPDwgIiAiOw0KICAgICAgICBzdGQ6OmNv dXQgPDwgc3RkOjplbmRsOw0KDQogICAgfQ0KDQpPbiAxOSBOb3YgMjAxNCwgYXQgMDc6MzQsIEJy ZXR0IEJvd21hbiA8Ym5ib3dtYW5AZ21haWwuY29tPG1haWx0bzpibmJvd21hbkBnbWFpbC5jb20+ PiB3cm90ZToNCg0KU29ycnkgdG8gYmUgYSBib3RoZXIsIGJ1dCBJIGRlY2lkZWQgdG8gZ28gYmFj ayB0byB0aGUgZG9jcyBhbmQgc3RhcnQgZnJlc2ggYW5kIEknbSBzdGlsbCBoYXZpbmcgaXNzdWVz Lg0KDQpXZSdyZSB1c2luZyBRZ3JhbXMsIHNvIEkgdHJ5aW5nIHRvIHdyaXRlIGEgc2ltcGxlIGxv b3AgdG8gc2VhcmNoIGZvciBhbGwgMTJtZXJzIGZyb20gYSBxdWVyeSBzZXF1ZW5jZSAic2VxIiBp biB0aGUgaW5kZXggZm9ybWVkIGZyb20gYSBTdHJpbmdTZXQgb2YgcmVmZXJlbmNlcyAicmVmU2Vx IiwgYnVpbGRpbmcgb24gdGhlIGV4YW1wbGUgY29kZSBpbiB0aGUgUS1HcmFtIEluZGV4IHR1dG9y aWFsOg0KIiIiDQogIFRGaW5kZXIgcWdyYW1GaW5kZXIoaW5kZXgpOw0KIGZvciAoc2l6ZV90IGkg PSAwOyBpIDwgbGVuZ3RoKHNlcSktMTI7IGkrKykNCiB7DQogICAgIFRJbmZpeDo6VHlwZSBrbWVy ID0gaW5maXgoc2VxLCBpLCBpKzEyKTsNCiAgICAgc3RkOjpjb3V0IDw8IGttZXIgPDwgc3RkOjpl bmRsOw0KDQogICAgIHNlcWFuOjpoYXNoKGluZGV4U2hhcGUoaW5kZXgpLCBrbWVyKTsNCiAgICAg Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aChnZXRPY2N1cnJlbmNlcyhpbmRleCwgaW5k ZXhTaGFwZShpbmRleCkpKTsgKytpKQ0KICAgICB7DQogICAgICAgICBzdGQ6OmNvdXQgPDwgZ2V0 T2NjdXJyZW5jZXMoaW5kZXgsIGluZGV4U2hhcGUoaW5kZXgpKVtpXSA8PCBzdGQ6OmVuZGw7DQog ICAgIH0NCiAgICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsNCiB9DQoiIiINCg0KYnV0IEknbSBn ZXR0aW5nIGEgZmFpcmx5IG9idHVzZSBlcnJvciBtZXNzYWdlIEkgZG9uJ3QgcXVpdGUgdW5kZXJz dGFuZCwgYW5kIGRvZXNuJ3QgcG9pbnQgbWUgYmFjayB0byBhbnkgc3BlY2lmaWMgbGluZXMgaW4g bXkgY29kZS4NCg0KIiIiDQovdXNyL2luY2x1ZGUvc2VxYW4vaW5kZXgvc2hhcGVfYmFzZS5oOjUz NTo1NTogZXJyb3I6IGluZGlyZWN0aW9uIHJlcXVpcmVzIHBvaW50ZXIgb3BlcmFuZCAoJ3NlcWFu OjpTZWdtZW50PGNvbnN0IHNlcWFuOjpTdHJpbmc8c2VxYW46OlNpbXBsZVR5cGU8dW5zaWduZWQN CiAgICAgIGNoYXIsIHNlcWFuOjpEbmE1Xz4sIHNlcWFuOjpBbGxvYzx2b2lkPiA+LCBzZXFhbjo6 SW5maXhTZWdtZW50PicgaW52YWxpZCkNCiAgICAgICAgICAgICAgICAgICAgICAgIGhhc2ggKiBW YWx1ZVNpemU8VFZhbHVlPjo6VkFMVUUgKyBvcmRWYWx1ZSgoVFZhbHVlKSppdCksDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBefn4NCi91c3IvaW5jbHVkZS9zZXFhbi9pbmRleC9zaGFwZV9iYXNlLmg6NTQ4 OjIyOiBub3RlOiBpbiBpbnN0YW50aWF0aW9uIG9mIGZ1bmN0aW9uIHRlbXBsYXRlIHNwZWNpYWxp emF0aW9uICdzZXFhbjo6X2hhc2hGaXhlZFNoYXBlPHVuc2lnbmVkIGxvbmcsDQogICAgICBzZXFh bjo6U2ltcGxlVHlwZTx1bnNpZ25lZCBjaGFyLCBzZXFhbjo6RG5hNV8+LCBzZXFhbjo6U2VnbWVu dDxjb25zdCBzZXFhbjo6U3RyaW5nPHNlcWFuOjpTaW1wbGVUeXBlPHVuc2lnbmVkIGNoYXIsIHNl cWFuOjpEbmE1Xz4sIHNlcWFuOjpBbGxvYzx2b2lkPiA+LA0KICAgICAgc2VxYW46OkluZml4U2Vn bWVudD4sIDEyPicgcmVxdWVzdGVkIGhlcmUNCiAgICAgICAgICAgICAgICByZXR1cm4gbWUuaFZh bHVlID0gX2hhc2hGaXhlZFNoYXBlKG1lLmhWYWx1ZSwgaXQsIFRWYWx1ZSgpLCBVbmdhcHBlZFNo YXBlPHE+KCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeDQovaG9tZS9i Ym93bWFuL2dpdC9TUlNMSS9zcmMvQysrL1NwYXJzZUFsaWdubWVudC5ocHA6MTAyOjE2OiBub3Rl OiBpbiBpbnN0YW50aWF0aW9uIG9mIGZ1bmN0aW9uIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9uICdz ZXFhbjo6aGFzaDxzZXFhbjo6U2ltcGxlVHlwZTx1bnNpZ25lZA0KICAgICAgY2hhciwgc2VxYW46 OkRuYTVfPiwgMTIsIHNlcWFuOjpTZWdtZW50PGNvbnN0IHNlcWFuOjpTdHJpbmc8c2VxYW46OlNp bXBsZVR5cGU8dW5zaWduZWQgY2hhciwgc2VxYW46OkRuYTVfPiwgc2VxYW46OkFsbG9jPHZvaWQ+ ID4sIHNlcWFuOjpJbmZpeFNlZ21lbnQ+DQogICAgICA+JyByZXF1ZXN0ZWQgaGVyZQ0KICAgICAg ICBzZXFhbjo6aGFzaChpbmRleFNoYXBlKGluZGV4KSwga21lcik7DQogICAgICAgICAgICAgICBe DQovaG9tZS9iYm93bWFuL2dpdC9TUlNMSS9zcmMvQysrL21haW4uY3BwOjg2Ojk6IG5vdGU6IGlu IGluc3RhbnRpYXRpb24gb2YgZnVuY3Rpb24gdGVtcGxhdGUgc3BlY2lhbGl6YXRpb24gJ0ZpbmRT ZWVkczI8RmluZFNlZWRzQ29uZmlnPDEyLA0KICAgICAgc2VxYW46OlVuZ2FwcGVkU2hhcGU8MTI+ LCBzZXFhbjo6SW5kZXhRR3JhbTxzZXFhbjo6VW5nYXBwZWRTaGFwZTwxMj4sIHNlcWFuOjpUYWc8 c2VxYW46OkRlZmF1bHRfPiA+ID4gPicgcmVxdWVzdGVkIGhlcmUNCiAgICAgICAgRmluZFNlZWRz MihxdWVyeVNlZWRIaXRzLCByZWZTZXRJbmRleCwgaWR4QW5kUmVjb3JkLnNlY29uZC5TZXEpOw0K IiIiDQoNClN1Z2dlc3Rpb25zPw0KDQpTaW5jZXJlbHksDQpCcmV0dA0KDQpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0Kc2VxYW4tZGV2IG1haWxpbmcgbGlz dA0Kc2VxYW4tZGV2QGxpc3RzLmZ1LWJlcmxpbi5kZTxtYWlsdG86c2VxYW4tZGV2QGxpc3RzLmZ1 LWJlcmxpbi5kZT4NCmh0dHBzOi8vbGlzdHMuZnUtYmVybGluLmRlL2xpc3RpbmZvL3NlcWFuLWRl dg0KDQotLS0NCg0KUmVuw6kgUmFobg0KUGguRC4gU3R1ZGVudA0KLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NClRlbDogICgrNDkpIDMwIDgzOCA3NTI3Nzx0ZWw6JTI4JTJCNDklMjkl MjAzMCUyMDgzOCUyMDc1Mjc3Pg0KTWFpbDogcmVuZS5yYWhuQGZ1LWJlcmxpbi5kZTxtYWlsdG86 cmVuZS5yYWhuQGZ1LWJlcmxpbi5kZT4NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQpJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZQ0KQWxnb3JpdGhtaWMgQmlvaW5mb3JtYXRp Y3MgKEFCSSkNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpGcmVpZSBVbml2ZXJz aXTDpHQgQmVybGluDQpUYWt1c3RyYcOfZSA5DQoxNDE5NSBCZXJsaW4NCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQoNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18NCnNlcWFuLWRldiBtYWlsaW5nIGxpc3QNCnNlcWFuLWRldkBsaXN0cy5m dS1iZXJsaW4uZGU8bWFpbHRvOnNlcWFuLWRldkBsaXN0cy5mdS1iZXJsaW4uZGU+DQpodHRwczov L2xpc3RzLmZ1LWJlcmxpbi5kZS9saXN0aW5mby9zZXFhbi1kZXYNCg0KDQpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0Kc2VxYW4tZGV2IG1haWxpbmcgbGlz dA0Kc2VxYW4tZGV2QGxpc3RzLmZ1LWJlcmxpbi5kZTxtYWlsdG86c2VxYW4tZGV2QGxpc3RzLmZ1 LWJlcmxpbi5kZT4NCmh0dHBzOi8vbGlzdHMuZnUtYmVybGluLmRlL2xpc3RpbmZvL3NlcWFuLWRl dg0KDQo= --_000_DF2CAB577A054E23A77BA63E659917D8fuberlinde_ Content-Type: text/html; charset="utf-8" Content-ID: <2986D556F881C54CAD0C9C17748BF200@campus.fu-berlin.de> Content-Transfer-Encoding: base64 PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IHN0eWxlPSJ3b3JkLXdy YXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJy ZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPg0KSGkgQnJldHQsDQo8ZGl2IGNsYXNz PSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4NCjxkaXY+DQo8YmxvY2tx dW90ZSB0eXBlPSJjaXRlIiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+T24gTm92IDIxLCAyMDE0 LCBhdCAyOjA1IEFNLCBCcmV0dCBCb3dtYW4gJmx0OzxhIGhyZWY9Im1haWx0bzpibmJvd21hbkBn bWFpbC5jb20iIGNsYXNzPSIiPmJuYm93bWFuQGdtYWlsLmNvbTwvYT4mZ3Q7IHdyb3RlOjwvZGl2 Pg0KPGJyIGNsYXNzPSJBcHBsZS1pbnRlcmNoYW5nZS1uZXdsaW5lIj4NCjxkaXYgY2xhc3M9IiI+ DQo8ZGl2IGRpcj0ibHRyIiBjbGFzcz0iIj5UaGFua3MgUmVuZSwgdGhvc2Ugc29sdXRpb25zIHdv cmtlZCBmb3IgbWUuDQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBj bGFzcz0iIj5JIGhhdmUgdHdvIGZvbGxvdy11cCBRZ3JhbSBJbmRleCBxdWVzdGlvbnM6PC9kaXY+ DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4xKSBJ cyB0aGVyZSBhbnkgd2F5IHRvIGl0ZXJhdGUgb3ZlciBhbGwgb2YgdGhlIEttZXJzIHN0b3JlZCBp biBhIFFncmFtIGluZGV4PyZuYnNwOyBZb3UgaGF2ZSBzYW1wbGUgY29kZSBmb3IgdGhlIG90aGVy IGluZGV4IHR5cGVzIGhlcmUgKDxhIGhyZWY9Imh0dHA6Ly9zZXFhbi5yZWFkdGhlZG9jcy5vcmcv ZW4vbWFzdGVyL1R1dG9yaWFsL0luZGV4SXRlcmF0b3JzLmh0bWwiIGNsYXNzPSIiPmh0dHA6Ly9z ZXFhbi5yZWFkdGhlZG9jcy5vcmcvZW4vbWFzdGVyL1R1dG9yaWFsL0luZGV4SXRlcmF0b3JzLmh0 bWw8L2E+KSwNCiBidXQgaXQgZG9lc24ndCBzZWVtIHRvIHdvcmsgZm9yIG1lIGZvciB0aGUgUWdy YW1JbmR4OjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4mcXVvdDsmcXVvdDsmcXVvdDs8L2Rpdj4NCjxk aXYgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwO3R5cGVkZWYgSXRlcmF0b3ImbHQ7VElu ZGV4LCBUb3BEb3duJmx0O1BhcmVudExpbmtzJmx0OyZndDsmZ3Q7Jmd0OyBUSXRlcjs8L2Rpdj4N CjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNw O1RJdGVyOjpUeXBlIGl0KHJlZlNldEluZGV4KTs8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+Jm5ic3A7 ZG8gezwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwOy8vIFByaW50IHRo ZWxldHRlcnMgZnJvbSB0aGUgcm9vdCB0byB0aGUgY3VycmVudCBub2RlPC9kaXY+DQo8ZGl2IGNs YXNzPSIiPiZuYnNwOyAmbmJzcDsgJm5ic3A7c3RkOjpjb3V0ICZsdDsmbHQ7IHJlcHJlc2VudGF0 aXZlKGl0KSAmbHQ7Jmx0OyBzdGQ6OmVuZGw7PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFz cz0iIj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwO2lmICghZ29E b3duKGl0KSAmYW1wOyZhbXA7ICFnb1JpZ2h0KGl0KSk8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+Jm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3doaWxlIChnb1VwKGl0KSAmYW1wOyZhbXA7 ICFnb1JpZ2h0KGl0KSk7PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwO30gd2hpbGUgKCFpc1Jv b3QoaXQpKTs8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4nJnF1b3Q7JnF1b3Q7JnF1b3Q7 PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rp dj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2PlRoaXMg dHJhdmVyc2FsIHdvcmtzIG9uIGEgUUdyYW0gSW5kZXggdG9vISBGb3IgZXhhbXBsZSwgcmVwbGFj ZSB0aGUgVEluZGV4IGRlZmluaXRpb24gYXQNCjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9z ZXFhbi9zZXFhbi9ibG9iL2RldmVsb3AvY29yZS9kZW1vcy9pbmRleC9pbmRleF9pdGVyYXRvci5j cHAjTDEwIiBjbGFzcz0iIj4NCmh0dHBzOi8vZ2l0aHViLmNvbS9zZXFhbi9zZXFhbi9ibG9iL2Rl dmVsb3AvY29yZS9kZW1vcy9pbmRleC9pbmRleF9pdGVyYXRvci5jcHAjTDEwPC9hPiB3aXRoOjwv ZGl2Pg0KPGRpdj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJtYXJn aW46IDBweDsgZm9udC1zaXplOiAxMXB4OyBmb250LWZhbWlseTogTWVubG87IiBjbGFzcz0iIj4m bmJzcDsgJm5ic3A7Jm5ic3A7PHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5v LWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjYmIyY2EyIiBjbGFzcz0iIj50eXBlZGVmPC9zcGFu PiBJbmRleCZsdDtDaGFyU3RyaW5nLCBJbmRleFFHcmFtJmx0O1VuZ2FwcGVkU2hhcGUmbHQ7PHNw YW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNv bG9yOiAjMDQzM2ZmIiBjbGFzcz0iIj4zPC9zcGFuPiZndDsNCiAmZ3Q7ICZndDsgVEluZGV4Ozwv ZGl2Pg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+ YW5kIHRoZSBkZW1vIHdpbGwgaXRlcmF0ZSBhbGwgdGV4dCBxLWdyYW1zIHVwIHRvIGxlbmd0aCAz IGluIGxleGljb2dyYXBoaWMgb3JkZXIuIE5vdGUgdGhhdCB0aGUgYmFzaWMgUUdyYW0gSW5kZXgg aXMgcHJhY3RpY2FsbHkgbGltaXRlZCB0byBzaG9ydCBxLXFncmFtcywgYXMgaXQgcmVsaWVzIG9u IGEgZGlyZWN0IGFkZHJlc3NpbmcgaGFzaCB0YWJsZSBvZiBzaXplIE8oYV5xKSwgd2hlcmUgYSBp cyB0aGUgYWxwaGFiZXQNCiBzaXplLiBGb3IgaW5zdGFuY2UsIGEgMTQtR3JhbSBJbmRleCBvdmVy IHRoZSBEbmEgYWxwaGFiZXQgcmVxdWlyZXMgJmd0Oz0gMUdCIG9mIG1lbW9yeS48L2Rpdj4NCjwv ZGl2Pg0KPGRpdj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXY+PGJyIGNsYXNzPSIiPg0KPC9k aXY+DQo8ZGl2PkFsdGVybmF0aXZlbHksIHlvdSBjYW4gaW5kZXggRG5hIHVwIHRvIDMxLWdyYW1z IHVzaW5nIGFuIE9wZW5BZGRyZXNzaW5nIFFHcmFtIEluZGV4OjwvZGl2Pg0KPGRpdj48YnIgY2xh c3M9IiI+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsgZm9udC1zaXpl OiAxMXB4OyBmb250LWZhbWlseTogTWVubG87IiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7Jm5ic3A7 PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMTg3LCA0NCwgMTYyKTsiIGNsYXNzPSIiPnR5cGVkZWY8 L3NwYW4+Jm5ic3A7SW5kZXgmbHQ7RG5hU3RyaW5nLCBJbmRleFFHcmFtJmx0O1VuZ2FwcGVkU2hh cGUmbHQ7PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoNCwgNTEsIDI1NSk7IiBjbGFzcz0iIj5xPC9z cGFuPiZndDssIE9wZW5BZGRyZXNzaW5nJmd0OyAmZ3Q7DQogVEluZGV4OzwvZGl2Pg0KPGRpdiBj bGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj5idXQgdGhlIGFib3Zl IHRvcC1kb3duIGl0ZXJhdGlvbiB3b24ndCB3b3JrIGhlcmUsIGFzIHRoZSBvcGVuIGFkZHJlc3Np bmcgaGFzaCB0YWJsZSBtYWludGFpbnMgdGhlIHEtZ3JhbXMgdW5zb3J0ZWQuIFlvdSBjYW4gaXRl cmF0ZSBhbGwgdGV4dCBxLWdyYW1zIGluIHJhbmRvbSBvcmRlciBieSBhY2Nlc3NpbmcgdGhlIGlu dGVybmFsIEJ1Y2tldE1hcCBGaWJyZSBvZiB0aGUgT3BlbkFkZHJlc3NpbmcgUUdyYW0gSW5kZXgu IFRoZSBhYm92ZQ0KIGRlbW8gYmVjb21lczo8L2Rpdj4NCjxkaXY+PGJyIGNsYXNzPSIiPg0KPC9k aXY+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7IGZvbnQtc2l6ZTogMTFweDsgZm9u dC1mYW1pbHk6IE1lbmxvOyIgY2xhc3M9IiI+PHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdh dHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjYmIyY2EyIiBjbGFzcz0iIj5pbnQ8 L3NwYW4+IG1haW4gKCk8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyBmb250LXNpemU6 IDExcHg7IGZvbnQtZmFtaWx5OiBNZW5sbzsiIGNsYXNzPSIiPns8L2Rpdj4NCjxkaXYgc3R5bGU9 Im1hcmdpbjogMHB4OyBmb250LXNpemU6IDExcHg7IGZvbnQtZmFtaWx5OiBNZW5sbzsgY29sb3I6 IHJnYigxMTIsIDYxLCAxNzApOyIgY2xhc3M9IiI+DQo8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50 LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMwMDAwMDAiIGNsYXNzPSIi PiZuYnNwOyAmbmJzcDsNCjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJl czogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICNiYjJjYTIiIGNsYXNzPSIiPnR5cGVkZWY8 L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdh dHVyZXM7IGNvbG9yOiAjMDAwMDAwIiBjbGFzcz0iIj4NCjwvc3Bhbj5JbmRleDxzcGFuIHN0eWxl PSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzAw MDAwMCIgY2xhc3M9IiI+Jmx0Ozwvc3Bhbj5DaGFyU3RyaW5nPHNwYW4gc3R5bGU9ImZvbnQtdmFy aWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjMDAwMDAwIiBjbGFz cz0iIj4sDQo8L3NwYW4+SW5kZXhRR3JhbTxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1 cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzAwMDAwMCIgY2xhc3M9IiI+Jmx0Ozwv c3Bhbj5VbmdhcHBlZFNoYXBlPHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5v LWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjMDAwMDAwIiBjbGFzcz0iIj4mbHQ7PC9zcGFuPjxz cGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyBj b2xvcjogIzA0MzNmZiIgY2xhc3M9IiI+Mzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC12YXJpYW50 LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMwMDAwMDAiIGNsYXNzPSIi PiZndDssDQo8L3NwYW4+T3BlbkFkZHJlc3Npbmc8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxp Z2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMwMDAwMDAiIGNsYXNzPSIiPiZn dDsgJmd0OyBUSW5kZXg7PC9zcGFuPjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7IGZv bnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IE1lbmxvOyIgY2xhc3M9IiI+Jm5ic3A7ICZuYnNw OyA8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJl czsgY29sb3I6ICNiYjJjYTIiIGNsYXNzPSIiPg0KdHlwZWRlZjwvc3Bhbj4gPHNwYW4gc3R5bGU9 ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjYmIy Y2EyIiBjbGFzcz0iIj4NCnR5cGVuYW1lPC9zcGFuPiA8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50 LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICM3MDNkYWEiIGNsYXNzPSIi Pg0KRmlicmU8L3NwYW4+Jmx0OzxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBu by1jb21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzRmODE4NyIgY2xhc3M9IiI+VEluZGV4PC9zcGFu PiwNCjxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1 cmVzOyBjb2xvcjogIzcwM2RhYSIgY2xhc3M9IiI+DQpGaWJyZUJ1Y2tldE1hcDwvc3Bhbj4mZ3Q7 Ojo8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJl czsgY29sb3I6ICM3MDNkYWEiIGNsYXNzPSIiPlR5cGU8L3NwYW4+DQo8c3BhbiBzdHlsZT0iZm9u dC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICNiYjJjYTIi IGNsYXNzPSIiPg0KY29uc3Q8L3NwYW4+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyBUQnVja2V0TWFwOzwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luOiAw cHg7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IE1lbmxvOyIgY2xhc3M9IiI+Jm5ic3A7 ICZuYnNwOyA8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxp Z2F0dXJlczsgY29sb3I6ICNiYjJjYTIiIGNsYXNzPSIiPg0KdHlwZWRlZjwvc3Bhbj4gPHNwYW4g c3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9y OiAjYmIyY2EyIiBjbGFzcz0iIj4NCnR5cGVuYW1lPC9zcGFuPiA8c3BhbiBzdHlsZT0iZm9udC12 YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICM3MDNkYWEiIGNs YXNzPSIiPg0KU2l6ZTwvc3Bhbj4mbHQ7PHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVy ZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjNGY4MTg3IiBjbGFzcz0iIj5UQnVja2V0 TWFwPC9zcGFuPiZndDs6OjxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1j b21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzcwM2RhYSIgY2xhc3M9IiI+VHlwZTwvc3Bhbj4mbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 IFRTaXplOzwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7IGZvbnQtc2l6ZTogMTFweDsg Zm9udC1mYW1pbHk6IE1lbmxvOyIgY2xhc3M9IiI+Jm5ic3A7ICZuYnNwOyA8c3BhbiBzdHlsZT0i Zm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICNiYjJj YTIiIGNsYXNzPSIiPg0KdHlwZWRlZjwvc3Bhbj4gPHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1s aWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjYmIyY2EyIiBjbGFzcz0iIj4N CnR5cGVuYW1lPC9zcGFuPiA8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8t Y29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICM3MDNkYWEiIGNsYXNzPSIiPg0KU3BlYzwvc3Bhbj4m bHQ7PHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVy ZXM7IGNvbG9yOiAjNGY4MTg3IiBjbGFzcz0iIj5UQnVja2V0TWFwPC9zcGFuPiZndDs6OjxzcGFu IHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xv cjogIzcwM2RhYSIgY2xhc3M9IiI+VHlwZTwvc3Bhbj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFRIYXNoOzwvZGl2Pg0KPGRpdiBz dHlsZT0ibWFyZ2luOiAwcHg7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IE1lbmxvOyBt aW4taGVpZ2h0OiAxM3B4OyIgY2xhc3M9IiI+DQo8YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYg c3R5bGU9Im1hcmdpbjogMHB4OyBmb250LXNpemU6IDExcHg7IGZvbnQtZmFtaWx5OiBNZW5sbzsg Y29sb3I6IHJnYigyMDksIDQ3LCAyNyk7IiBjbGFzcz0iIj4NCjxzcGFuIHN0eWxlPSJmb250LXZh cmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzAwMDAwMCIgY2xh c3M9IiI+Jm5ic3A7ICZuYnNwOw0KPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGln YXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzRmODE4NyIgY2xhc3M9IiI+VElu ZGV4PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24t bGlnYXR1cmVzOyBjb2xvcjogIzAwMDAwMCIgY2xhc3M9IiI+IGluZGV4KDwvc3Bhbj4mcXVvdDt0 b2Jlb3Jub3R0b2JlJnF1b3Q7PHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5v LWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjMDAwMDAwIiBjbGFzcz0iIj4pOzwvc3Bhbj48L2Rp dj4NCjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyBmb250LXNpemU6IDExcHg7IGZvbnQtZmFtaWx5 OiBNZW5sbzsiIGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgPHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFu dC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjM2QxZDgxIiBjbGFzcz0i Ij4NCmluZGV4Q3JlYXRlPC9zcGFuPihpbmRleCwgPHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1s aWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjNzAzZGFhIiBjbGFzcz0iIj4N CkZpYnJlU0FEaXI8L3NwYW4+KCkpOzwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7IGZv bnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IE1lbmxvOyBtaW4taGVpZ2h0OiAxM3B4OyIgY2xh c3M9IiI+DQo8YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyBm b250LXNpemU6IDExcHg7IGZvbnQtZmFtaWx5OiBNZW5sbzsiIGNsYXNzPSIiPiZuYnNwOyAmbmJz cDsmbmJzcDs8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxp Z2F0dXJlczsgY29sb3I6ICM0ZjgxODciIGNsYXNzPSIiPlRCdWNrZXRNYXA8L3NwYW4+ICZhbXA7 IGJ1Y2tldE1hcCA9DQo8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29t bW9uLWxpZ2F0dXJlczsgY29sb3I6ICMzZDFkODEiIGNsYXNzPSIiPg0KZ2V0RmlicmU8L3NwYW4+ KGluZGV4LCA8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxp Z2F0dXJlczsgY29sb3I6ICM3MDNkYWEiIGNsYXNzPSIiPg0KRmlicmVCdWNrZXRNYXA8L3NwYW4+ KCkpOzwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7IGZvbnQtc2l6ZTogMTFweDsgZm9u dC1mYW1pbHk6IE1lbmxvOyBtaW4taGVpZ2h0OiAxM3B4OyIgY2xhc3M9IiI+DQo8YnIgY2xhc3M9 IiI+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyBmb250LXNpemU6IDExcHg7IGZv bnQtZmFtaWx5OiBNZW5sbzsiIGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgPHNwYW4gc3R5bGU9ImZv bnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjNzAzZGFh IiBjbGFzcz0iIj4NCkNoYXJTdHJpbmc8L3NwYW4+IHFncmFtOzwvZGl2Pg0KPGRpdiBzdHlsZT0i bWFyZ2luOiAwcHg7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IE1lbmxvOyIgY2xhc3M9 IiI+Jm5ic3A7ICZuYnNwOyA8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8t Y29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICNiYjJjYTIiIGNsYXNzPSIiPg0KZm9yPC9zcGFuPiAo PHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7 IGNvbG9yOiAjNGY4MTg3IiBjbGFzcz0iIj5UU2l6ZTwvc3Bhbj4gaSA9DQo8c3BhbiBzdHlsZT0i Zm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMwNDMz ZmYiIGNsYXNzPSIiPg0KMDwvc3Bhbj47IGkgJmx0OyA8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50 LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMzZDFkODEiIGNsYXNzPSIi Pg0KbGVuZ3RoPC9zcGFuPihidWNrZXRNYXAuPHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdh dHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjNzAzZGFhIiBjbGFzcz0iIj5xZ3Jh bUNvZGU8L3NwYW4+KTsgJiM0MzsmIzQzO2kpPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW46IDBw eDsgZm9udC1zaXplOiAxMXB4OyBmb250LWZhbWlseTogTWVubG87IiBjbGFzcz0iIj4mbmJzcDsg Jm5ic3A7IHs8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyBmb250LXNpemU6IDExcHg7 IGZvbnQtZmFtaWx5OiBNZW5sbzsiIGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyA8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJl czsgY29sb3I6ICM0ZjgxODciIGNsYXNzPSIiPg0KVEhhc2g8L3NwYW4+IGhhc2ggPSBidWNrZXRN YXAuPHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVy ZXM7IGNvbG9yOiAjNzAzZGFhIiBjbGFzcz0iIj5xZ3JhbUNvZGU8L3NwYW4+WzxzcGFuIHN0eWxl PSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzNk MWQ4MSIgY2xhc3M9IiI+aTwvc3Bhbj5dOzwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7 IGZvbnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IE1lbmxvOyBtaW4taGVpZ2h0OiAxM3B4OyIg Y2xhc3M9IiI+DQo8YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4 OyBmb250LXNpemU6IDExcHg7IGZvbnQtZmFtaWx5OiBNZW5sbzsiIGNsYXNzPSIiPiZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyA8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczog bm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICNiYjJjYTIiIGNsYXNzPSIiPg0KaWY8L3NwYW4+ IChoYXNoID09IDxzcGFuIHN0eWxlPSJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24t bGlnYXR1cmVzOyBjb2xvcjogIzRmODE4NyIgY2xhc3M9IiI+DQpUQnVja2V0TWFwPC9zcGFuPjo6 PHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7 IGNvbG9yOiAjNzAzZGFhIiBjbGFzcz0iIj5FTVBUWTwvc3Bhbj4pDQo8c3BhbiBzdHlsZT0iZm9u dC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICNiYjJjYTIi IGNsYXNzPSIiPg0KY29udGludWU8L3NwYW4+OzwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luOiAw cHg7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IE1lbmxvOyBtaW4taGVpZ2h0OiAxM3B4 OyIgY2xhc3M9IiI+DQo8YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbjog MHB4OyBmb250LXNpemU6IDExcHg7IGZvbnQtZmFtaWx5OiBNZW5sbzsiIGNsYXNzPSIiPiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJl czogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMzZDFkODEiIGNsYXNzPSIiPg0KdW5oYXNo PC9zcGFuPihxZ3JhbSwgaGFzaCwgPHNwYW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6 IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNvbG9yOiAjMDQzM2ZmIiBjbGFzcz0iIj4NCjM8L3NwYW4+ KTs8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyBmb250LXNpemU6IDExcHg7IGZvbnQt ZmFtaWx5OiBNZW5sbzsgbWluLWhlaWdodDogMTNweDsiIGNsYXNzPSIiPg0KPGJyIGNsYXNzPSIi Pg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsgZm9udC1zaXplOiAxMXB4OyBmb250 LWZhbWlseTogTWVubG87IiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgPHNw YW4gc3R5bGU9ImZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7IGNv bG9yOiAjNzAzZGFhIiBjbGFzcz0iIj4NCnN0ZDwvc3Bhbj46OjxzcGFuIHN0eWxlPSJmb250LXZh cmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzcwM2RhYSIgY2xh c3M9IiI+Y291dDwvc3Bhbj4gJmx0OyZsdDsgcWdyYW0gJmx0OyZsdDsNCjxzcGFuIHN0eWxlPSJm b250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xvcjogIzcwM2Rh YSIgY2xhc3M9IiI+DQpzdGQ8L3NwYW4+Ojo8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0 dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICMzZDFkODEiIGNsYXNzPSIiPmVuZGw8 L3NwYW4+OzwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7IGZvbnQtc2l6ZTogMTFweDsg Zm9udC1mYW1pbHk6IE1lbmxvOyIgY2xhc3M9IiI+Jm5ic3A7ICZuYnNwOyB9PC9kaXY+DQo8ZGl2 IHN0eWxlPSJtYXJnaW46IDBweDsgZm9udC1zaXplOiAxMXB4OyBmb250LWZhbWlseTogTWVubG87 IG1pbi1oZWlnaHQ6IDEzcHg7IiBjbGFzcz0iIj4NCjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRp diBzdHlsZT0ibWFyZ2luOiAwcHg7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IE1lbmxv OyIgY2xhc3M9IiI+Jm5ic3A7ICZuYnNwOyA8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0 dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I6ICNiYjJjYTIiIGNsYXNzPSIiPg0KcmV0 dXJuPC9zcGFuPiA8c3BhbiBzdHlsZT0iZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9u LWxpZ2F0dXJlczsgY29sb3I6ICMwNDMzZmYiIGNsYXNzPSIiPg0KMDwvc3Bhbj47PC9kaXY+DQo8 ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsgZm9udC1zaXplOiAxMXB4OyBmb250LWZhbWlseTogTWVu bG87IiBjbGFzcz0iIj59PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2 Pg0KPC9kaXY+DQo8ZGl2PkkgdGhpbmsgdGhhdCBRR3JhbSBJbmRpY2VzIHNob3VsZCBwcm92aWRl IGEgZ2VuZXJpYyBpdGVyYXRvciBvdmVyIHRoZSB0ZXh0IHEtZ3JhbXMgLSB0aGlzIGxvb2tzIGxp a2UgYW4gaW1wb3J0YW50IHVzZSBjYXNlIHRoYXQgbm9ib2R5IGVuY291bnRlcmVkIHNvIGZhci4u LjwvZGl2Pg0KPGRpdj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxiciBjbGFzcz0iIj4NCjxibG9j a3F1b3RlIHR5cGU9ImNpdGUiIGNsYXNzPSIiPg0KPGRpdiBkaXI9Imx0ciIgY2xhc3M9IiI+DQo8 ZGl2IGNsYXNzPSIiPjIpIElzIHRoZXJlIGFueSB3YXkgdG8gbWFzayBvciByZW1vdmUgY2VydGFp biBLbWVycyBmcm9tIGFuIEluZGV4IG9uY2UgaXQncyBiZWVuIGNyZWF0ZWQ/Jm5ic3A7IEkuZS4s IHRvIGhpZGUgb3IgZGVsZXRlIGNvbW1vbiwgbG93LWNvbXBsZXhpdHkgS21lcnMgbGlrZSBob21v cG9seW1lcnM8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj48YnIgY2xhc3M9IiI+ DQo8L2Rpdj4NCjxkaXY+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2PllvdSBjb3VsZCByZW1v dmUgY2VydGFpbiBxLWdyYW1zIGFmdGVyIGNvbnN0cnVjdGlvbiwgYnV0IHRoaXMgcmVxdWlyZXMg bWFuaXB1bGF0aW5nIHRoZSBpbnRlcm5hbCBRR3JhbSBJbmRleCBGaWJyZXMgeW91cnNlbGYsIGFz IHRoZXJl4oCZcyBubyBwdWJsaWMgaW50ZXJmYWNlIGZvciBkb2luZyBpdC48L2Rpdj4NCjxkaXY+ PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2PkluIHRoZSBiYXNpYyBRR3JhbSBJbmRleCB0aGlz IGlzIG5vdCBlYXN5L2NvbnZlbmllbnQsIGFzIHRoZSBxLWdyYW0gb2NjdXJyZW5jZXMgaGF2ZSB0 byBiZSByZW1vdmVkIGZyb20gdGhlIFNBIEZpYnJlIChpLmUuIHRoZSBwYXJ0aWFsIHN1ZmZpeCBh cnJheSkuPC9kaXY+DQo8ZGl2Pg0KPGRpdj5PdGhlcndpc2UsIHlvdSBjYW4gcHJ1bmUgcS1ncmFt cyBvbiB0aGUgZmx5IGR1cmluZyB0aGUgdG9wLWRvd24gdHJhdmVyc2FsIC0gdGhlIGZ1bmN0aW9u IGNvdW50T2NjdXJyZW5jZXMoaXQpIHJldHVybnMgdGhlIG51bWJlciBvZiBvY2N1cnJlbmNlcyBv ZiB0aGUgY3VycmVudCBxLWdyYW0uPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4N CjwvZGl2Pg0KPC9kaXY+DQo8ZGl2PkluIHRoZSBPcGVuQWRkcmVzc2luZyBRR3JhbSBJbmRleCwg YXMgZmFyIGFzIEkga25vdywgeW91IHNob3VsZCBiZSBhYmxlIHRvIHNldCBzb21lIGhhc2ggdmFs dWVzIHRvIEVNUFRZLjwvZGl2Pg0KPGRpdj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxiciBjbGFz cz0iIj4NCjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiIGNsYXNzPSIiPg0KPGRpdiBkaXI9Imx0ciIg Y2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPi1CcmV0dDwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48YnIg Y2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8 ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJn bWFpbF9leHRyYSI+PGJyIGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPk9uIFdl ZCwgTm92IDE5LCAyMDE0IGF0IDQ6MjUgQU0sIFJhaG4sIFJlbsOpIDxzcGFuIGRpcj0ibHRyIiBj bGFzcz0iIj4NCiZsdDs8YSBocmVmPSJtYWlsdG86cmVuZS5tYWVya2VyQGZ1LWJlcmxpbi5kZSIg dGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSIiPnJlbmUubWFlcmtlckBmdS1iZXJsaW4uZGU8L2E+Jmd0 Ozwvc3Bhbj4gd3JvdGU6PGJyIGNsYXNzPSIiPg0KPGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1 b3RlIiBzdHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7Ym9yZGVyLWxlZnQ6MXB4ICNjY2Mgc29saWQ7 cGFkZGluZy1sZWZ0OjFleCI+DQo8ZGl2IHN0eWxlPSJ3b3JkLXdyYXA6YnJlYWstd29yZCIgY2xh c3M9IiI+SGV5LA0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xh c3M9IiI+dGhlIHByb2JsZW0gbGllcyBpbiB0aGUgaGFzaChpbmRleFNoYXBlKGluZGV4KSwga21l cikgZnVuY3Rpb24uPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlRoZSBoYXNoIGZ1bmN0aW9uIG9ubHkg dGFrZXMgYW4gaXRlcmF0b3Igb3IgcG9pbnRlciBhcyBzZWNvbmQgYXJndW1lbnQuJm5ic3A7PC9k aXY+DQo8ZGl2IGNsYXNzPSIiPlNvIGluIHlvdXIgY2FzZSB0aGUgc2ltcGxlIHNvbHV0aW9uIHdv dWxkIGJlIHRvIGNhbGwgdGhlIGZ1bmN0aW9uIGhhc2goaW5kZXhTaGFwZShpbmRleCksIGl0KSwg d2hpbGUgdXNpbmcgYW4gaXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIHRoZSB0ZXh0IGluc3RlYWQg b2YgdXNpbmcgdGhlIHVuc2lnbmVkIGludGVnZXIuIFRoaXMgbGl0dGxlIGJlaGF2aW91ciBkb2Vz IG5vdCBzZWVtIG9idmlvdXMsIGFzIGluIHRoZSB0dXRvcmlhbA0KIHlvdSBwYXNzIGEgc3RyaW5n IGxpdGVyYWwuIEJ1dCBpbiBmYWN0IGEgc3RyaW5nIGxpdGVyYWwgaXMganVzdCBhIGNvbnN0IGNo YXIgKiwgc28gaXQgd29ya3MuPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwv ZGl2Pg0KPGRpdiBjbGFzcz0iIj5IZXJlIHlvdSBzZWUgYW4gZXhhbXBsZSBjb2RlIHRvIHdvcmsg d2l0aCBhKSB1c2luZyB0aGUgZmluZGVyIGludGVyZmFjZSBhbmQgYikgZGlyZWN0bHkgb3BlcmF0 aW5nIG9uIHRoZSBpbmRleC48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+SUhUSC48L2Rpdj4NCjxkaXYg Y2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPmNoZWVycyw8L2Rp dj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlJl bsOpJm5ic3A7PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRp diBjbGFzcz0iIj4NCjxkaXYgc3R5bGU9Im1hcmdpbjowcHg7Zm9udC1mYW1pbHk6TWVubG87Y29s b3I6cmdiKDUyLDE0OSwxNzUpIiBjbGFzcz0iIj48c3BhbiBzdHlsZT0iIiBjbGFzcz0iIj4mbmJz cDsgJm5ic3A7Jm5ic3A7PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMDQzM2ZmIiBjbGFzcz0i Ij50eXBlZGVmPC9zcGFuPjxzcGFuIHN0eWxlPSIiIGNsYXNzPSIiPg0KPC9zcGFuPkluZGV4PHNw YW4gc3R5bGU9IiIgY2xhc3M9IiI+Jmx0Ozwvc3Bhbj5EbmFTdHJpbmc8c3BhbiBzdHlsZT0iIiBj bGFzcz0iIj4sIDwvc3Bhbj4NCkluZGV4UUdyYW08c3BhbiBzdHlsZT0iIiBjbGFzcz0iIj4mbHQ7 PC9zcGFuPlVuZ2FwcGVkU2hhcGU8c3BhbiBzdHlsZT0iIiBjbGFzcz0iIj4mbHQ7MTImZ3Q7ICZn dDsgJmd0OyBUUUdyYW1JbmRleDs8L3NwYW4+PC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW46MHB4 O2ZvbnQtZmFtaWx5Ok1lbmxvO2NvbG9yOnJnYig1MiwxNDksMTc1KSIgY2xhc3M9IiI+PHNwYW4g c3R5bGU9IiIgY2xhc3M9IiI+Jm5ic3A7ICZuYnNwOw0KPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xv cjojMDQzM2ZmIiBjbGFzcz0iIj50eXBlZGVmPC9zcGFuPjxzcGFuIHN0eWxlPSIiIGNsYXNzPSIi Pg0KPC9zcGFuPkZpbmRlcjxzcGFuIHN0eWxlPSIiIGNsYXNzPSIiPiZsdDs8L3NwYW4+VFFHcmFt SW5kZXg8c3BhbiBzdHlsZT0iIiBjbGFzcz0iIj4mZ3Q7IFRGaW5kZXI7PC9zcGFuPjwvZGl2Pg0K PGRpdiBzdHlsZT0ibWFyZ2luOjBweDtmb250LWZhbWlseTpNZW5sbztjb2xvcjpyZ2IoNTIsMTQ5 LDE3NSkiIGNsYXNzPSIiPjxzcGFuIHN0eWxlPSIiIGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsNCjwv c3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzA0MzNmZiIgY2xhc3M9IiI+dHlwZWRlZjwvc3Bhbj48 c3BhbiBzdHlsZT0iIiBjbGFzcz0iIj4NCjwvc3Bhbj5JdGVyYXRvcjxzcGFuIHN0eWxlPSIiIGNs YXNzPSIiPiZsdDs8L3NwYW4+RG5hU3RyaW5nPHNwYW4gc3R5bGU9IiIgY2xhc3M9IiI+LA0KPC9z cGFuPlN0YW5kYXJkPHNwYW4gc3R5bGU9IiIgY2xhc3M9IiI+Jmd0Ozo6PC9zcGFuPlR5cGU8c3Bh biBzdHlsZT0iIiBjbGFzcz0iIj4gVEl0ZXJhdG9yOzwvc3Bhbj48L2Rpdj4NCjxkaXYgc3R5bGU9 Im1hcmdpbjowcHg7Zm9udC1mYW1pbHk6TWVubG87Y29sb3I6cmdiKDUyLDE0OSwxNzUpIiBjbGFz cz0iIj48c3BhbiBzdHlsZT0iIiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7DQo8L3NwYW4+PHNwYW4g c3R5bGU9ImNvbG9yOiMwNDMzZmYiIGNsYXNzPSIiPnR5cGVkZWY8L3NwYW4+PHNwYW4gc3R5bGU9 IiIgY2xhc3M9IiI+DQo8L3NwYW4+RmlicmU8c3BhbiBzdHlsZT0iIiBjbGFzcz0iIj4mbHQ7PC9z cGFuPlRRR3JhbUluZGV4PHNwYW4gc3R5bGU9IiIgY2xhc3M9IiI+LCA8L3NwYW4+DQpRR3JhbVNo YXBlPHNwYW4gc3R5bGU9IiIgY2xhc3M9IiI+Jmd0Ozo6PC9zcGFuPlR5cGU8c3BhbiBzdHlsZT0i IiBjbGFzcz0iIj4gVFNoYXBlOzwvc3Bhbj48L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbjowcHg7 Zm9udC1mYW1pbHk6TWVubG87bWluLWhlaWdodDoxNHB4IiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+ DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbjowcHg7Zm9udC1mYW1pbHk6TWVubG8iIGNsYXNz PSIiPiZuYnNwOyAmbmJzcDsgPHNwYW4gc3R5bGU9ImNvbG9yOiMzNDk1YWYiIGNsYXNzPSIiPg0K VFFHcmFtSW5kZXg8L3NwYW4+IGluZGV4KHJlZik7PC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW46 MHB4O2ZvbnQtZmFtaWx5Ok1lbmxvO2NvbG9yOnJnYigwLDE0MywwKSIgY2xhc3M9IiI+PHNwYW4g c3R5bGU9IiIgY2xhc3M9IiI+Jm5ic3A7ICZuYnNwOw0KPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xv cjojMzQ5NWFmIiBjbGFzcz0iIj5pbmRleFJlcXVpcmU8L3NwYW4+PHNwYW4gc3R5bGU9IiIgY2xh c3M9IiI+KGluZGV4LA0KPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMzQ5NWFmIiBjbGFzcz0i Ij5RR3JhbVNBRGlyPC9zcGFuPjxzcGFuIHN0eWxlPSIiIGNsYXNzPSIiPigpKTsmbmJzcDsNCjwv c3Bhbj4vLyBPbi1kZW1hbmQgaW5kZXggY3JlYXRpb24uPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJn aW46MHB4O2ZvbnQtZmFtaWx5Ok1lbmxvO21pbi1oZWlnaHQ6MTRweCIgY2xhc3M9IiI+PGJyIGNs YXNzPSIiPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW46MHB4O2ZvbnQtZmFtaWx5Ok1lbmxv O2NvbG9yOnJnYigwLDE0MywwKSIgY2xhc3M9IiI+PHNwYW4gc3R5bGU9IiIgY2xhc3M9IiI+Jm5i c3A7ICZuYnNwOw0KPC9zcGFuPi8vIGEpIFVzaW5nIHRoZSBmaW5kZXIgaW50ZXJmYWNlLjwvZGl2 Pg0KPGRpdiBzdHlsZT0ibWFyZ2luOjBweDtmb250LWZhbWlseTpNZW5sbyIgY2xhc3M9IiI+Jm5i c3A7ICZuYnNwOyA8c3BhbiBzdHlsZT0iY29sb3I6IzM0OTVhZiIgY2xhc3M9IiI+DQpURmluZGVy PC9zcGFuPiBmaW5kZXIoaW5kZXgpOzwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luOjBweDtmb250 LWZhbWlseTpNZW5sbzttaW4taGVpZ2h0OjE0cHgiIGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwv ZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luOjBweDtmb250LWZhbWlseTpNZW5sbyIgY2xhc3M9IiI+ Jm5ic3A7ICZuYnNwOyBmb3IgKDxzcGFuIHN0eWxlPSJjb2xvcjojMzQ5NWFmIiBjbGFzcz0iIj5U SXRlcmF0b3I8L3NwYW4+IGl0ID0NCjxzcGFuIHN0eWxlPSJjb2xvcjojMzQ5NWFmIiBjbGFzcz0i Ij5iZWdpbjwvc3Bhbj4ocXVlcnksIDxzcGFuIHN0eWxlPSJjb2xvcjojMzQ5NWFmIiBjbGFzcz0i Ij4NClN0YW5kYXJkPC9zcGFuPigpKTsgaXQgIT0gPHNwYW4gc3R5bGU9ImNvbG9yOiMzNDk1YWYi IGNsYXNzPSIiPmVuZDwvc3Bhbj4ocXVlcnksIDxzcGFuIHN0eWxlPSJjb2xvcjojMzQ5NWFmIiBj bGFzcz0iIj4NClN0YW5kYXJkPC9zcGFuPigpKSAtIDEyOyAmIzQzOyYjNDM7aXQpPC9kaXY+DQo8 ZGl2IHN0eWxlPSJtYXJnaW46MHB4O2ZvbnQtZmFtaWx5Ok1lbmxvIiBjbGFzcz0iIj4mbmJzcDsg Jm5ic3A7IHs8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbjowcHg7Zm9udC1mYW1pbHk6TWVubG8i IGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA8c3BhbiBzdHlsZT0iY29sb3I6 IzM0OTVhZiIgY2xhc3M9IiI+DQpzdGQ8L3NwYW4+Ojo8c3BhbiBzdHlsZT0iY29sb3I6IzM0OTVh ZiIgY2xhc3M9IiI+Y291dDwvc3Bhbj4gJmx0OyZsdDsgPHNwYW4gc3R5bGU9ImNvbG9yOiNiNDI2 MWEiIGNsYXNzPSIiPg0KJnF1b3Q7T2NjIGF0OiAmcXVvdDs8L3NwYW4+OzwvZGl2Pg0KPGRpdiBz dHlsZT0ibWFyZ2luOjBweDtmb250LWZhbWlseTpNZW5sbyIgY2xhc3M9IiI+Jm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7IHdoaWxlKDxzcGFuIHN0eWxlPSJjb2xvcjojMzQ5NWFmIiBjbGFzcz0i Ij5maW5kPC9zcGFuPihmaW5kZXIsDQo8c3BhbiBzdHlsZT0iY29sb3I6IzM0OTVhZiIgY2xhc3M9 IiI+aW5maXg8L3NwYW4+KHF1ZXJ5LCBpdCwgaXQmIzQzOzEyKSkpPC9kaXY+DQo8ZGl2IHN0eWxl PSJtYXJnaW46MHB4O2ZvbnQtZmFtaWx5Ok1lbmxvIiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA8c3BhbiBzdHlsZT0iY29sb3I6IzM0OTVhZiIgY2xh c3M9IiI+DQpzdGQ8L3NwYW4+Ojo8c3BhbiBzdHlsZT0iY29sb3I6IzM0OTVhZiIgY2xhc3M9IiI+ Y291dDwvc3Bhbj4gJmx0OyZsdDsgPHNwYW4gc3R5bGU9ImNvbG9yOiMzNDk1YWYiIGNsYXNzPSIi Pg0KcG9zaXRpb248L3NwYW4+KGZpbmRlcikgJmx0OyZsdDsgPHNwYW4gc3R5bGU9ImNvbG9yOiNi NDI2MWEiIGNsYXNzPSIiPiZxdW90OyAmcXVvdDs8L3NwYW4+OzwvZGl2Pg0KPGRpdiBzdHlsZT0i bWFyZ2luOjBweDtmb250LWZhbWlseTpNZW5sbyIgY2xhc3M9IiI+Jm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7IDxzcGFuIHN0eWxlPSJjb2xvcjojMzQ5NWFmIiBjbGFzcz0iIj4NCnN0ZDwvc3Bh bj46OjxzcGFuIHN0eWxlPSJjb2xvcjojMzQ5NWFmIiBjbGFzcz0iIj5jb3V0PC9zcGFuPiAmbHQ7 Jmx0OyA8c3BhbiBzdHlsZT0iY29sb3I6IzM0OTVhZiIgY2xhc3M9IiI+DQpzdGQ8L3NwYW4+Ojo8 c3BhbiBzdHlsZT0iY29sb3I6IzM0OTVhZiIgY2xhc3M9IiI+ZW5kbDwvc3Bhbj47PC9kaXY+DQo8 ZGl2IHN0eWxlPSJtYXJnaW46MHB4O2ZvbnQtZmFtaWx5Ok1lbmxvO2NvbG9yOnJnYigwLDE0Myww KSIgY2xhc3M9IiI+PHNwYW4gc3R5bGU9IiIgY2xhc3M9IiI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7DQo8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMzNDk1YWYiIGNsYXNzPSIiPmNsZWFy PC9zcGFuPjxzcGFuIHN0eWxlPSIiIGNsYXNzPSIiPihmaW5kZXIpOyZuYnNwOw0KPC9zcGFuPi8v IENsZWFyIGZpbmRlciBmb3IgbmV4dCBzZWFyY2guPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW46 MHB4O2ZvbnQtZmFtaWx5Ok1lbmxvIiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7IH08L2Rpdj4NCjxk aXYgc3R5bGU9Im1hcmdpbjowcHg7Zm9udC1mYW1pbHk6TWVubG87bWluLWhlaWdodDoxNHB4IiBj bGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbjowcHg7Zm9u dC1mYW1pbHk6TWVubG87Y29sb3I6cmdiKDAsMTQzLDApIiBjbGFzcz0iIj48c3BhbiBzdHlsZT0i IiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7DQo8L3NwYW4+Ly8gYikgVXNpbmcgdGhlIGluZGV4IGlu dGVyZmFjZS48L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbjowcHg7Zm9udC1mYW1pbHk6TWVubG8i IGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgPHNwYW4gc3R5bGU9ImNvbG9yOiMzNDk1YWYiIGNsYXNz PSIiPg0KVFNoYXBlPC9zcGFuPiAmYW1wOyBzaGFwZSA9IDxzcGFuIHN0eWxlPSJjb2xvcjojMzQ5 NWFmIiBjbGFzcz0iIj5pbmRleFNoYXBlPC9zcGFuPihpbmRleCk7PC9kaXY+DQo8ZGl2IHN0eWxl PSJtYXJnaW46MHB4O2ZvbnQtZmFtaWx5Ok1lbmxvIiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7IDxz cGFuIHN0eWxlPSJjb2xvcjojMzQ5NWFmIiBjbGFzcz0iIj4NCmhhc2hJbml0PC9zcGFuPihzaGFw ZSwgPHNwYW4gc3R5bGU9ImNvbG9yOiMzNDk1YWYiIGNsYXNzPSIiPmJlZ2luPC9zcGFuPihxdWVy eSwgPHNwYW4gc3R5bGU9ImNvbG9yOiMzNDk1YWYiIGNsYXNzPSIiPg0KU3RhbmRhcmQ8L3NwYW4+ KCkpKTs8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbjowcHg7Zm9udC1mYW1pbHk6TWVubG8iIGNs YXNzPSIiPiZuYnNwOyAmbmJzcDsgZm9yICg8c3BhbiBzdHlsZT0iY29sb3I6IzM0OTVhZiIgY2xh c3M9IiI+VEl0ZXJhdG9yPC9zcGFuPiBpdCA9DQo8c3BhbiBzdHlsZT0iY29sb3I6IzM0OTVhZiIg Y2xhc3M9IiI+YmVnaW48L3NwYW4+KHF1ZXJ5LCA8c3BhbiBzdHlsZT0iY29sb3I6IzM0OTVhZiIg Y2xhc3M9IiI+DQpTdGFuZGFyZDwvc3Bhbj4oKSk7IGl0ICE9IDxzcGFuIHN0eWxlPSJjb2xvcjoj MzQ5NWFmIiBjbGFzcz0iIj5lbmQ8L3NwYW4+KHF1ZXJ5LCA8c3BhbiBzdHlsZT0iY29sb3I6IzM0 OTVhZiIgY2xhc3M9IiI+DQpTdGFuZGFyZDwvc3Bhbj4oKSkgLSAxMjsgJiM0MzsmIzQzO2l0KTwv ZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luOjBweDtmb250LWZhbWlseTpNZW5sbyIgY2xhc3M9IiI+ Jm5ic3A7ICZuYnNwOyB7PC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW46MHB4O2ZvbnQtZmFtaWx5 Ok1lbmxvIiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgPHNwYW4gc3R5bGU9 ImNvbG9yOiMzNDk1YWYiIGNsYXNzPSIiPg0Kc3RkPC9zcGFuPjo6PHNwYW4gc3R5bGU9ImNvbG9y OiMzNDk1YWYiIGNsYXNzPSIiPmNvdXQ8L3NwYW4+ICZsdDsmbHQ7IDxzcGFuIHN0eWxlPSJjb2xv cjojYjQyNjFhIiBjbGFzcz0iIj4NCiZxdW90O09jYyBhdDogJnF1b3Q7PC9zcGFuPjs8L2Rpdj4N CjxkaXYgc3R5bGU9Im1hcmdpbjowcHg7Zm9udC1mYW1pbHk6TWVubG8iIGNsYXNzPSIiPiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA8c3BhbiBzdHlsZT0iY29sb3I6IzM0OTVhZiIgY2xhc3M9 IiI+DQpoYXNoTmV4dDwvc3Bhbj4oc2hhcGUsIGl0KTs8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdp bjowcHg7Zm9udC1mYW1pbHk6TWVubG8iIGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyBmb3IgKDxzcGFuIHN0eWxlPSJjb2xvcjojMDQzM2ZmIiBjbGFzcz0iIj51bnNpZ25lZDwv c3Bhbj4gaSA9IDA7IGkgJmx0Ow0KPHNwYW4gc3R5bGU9ImNvbG9yOiMzNDk1YWYiIGNsYXNzPSIi Pmxlbmd0aDwvc3Bhbj4oPHNwYW4gc3R5bGU9ImNvbG9yOiMzNDk1YWYiIGNsYXNzPSIiPmdldE9j Y3VycmVuY2VzPC9zcGFuPihpbmRleCwgc2hhcGUpKTsgJiM0MzsmIzQzO2kpPC9kaXY+DQo8ZGl2 IHN0eWxlPSJtYXJnaW46MHB4O2ZvbnQtZmFtaWx5Ok1lbmxvIiBjbGFzcz0iIj4mbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA8c3BhbiBzdHlsZT0iY29sb3I6IzM0OTVh ZiIgY2xhc3M9IiI+DQpzdGQ8L3NwYW4+Ojo8c3BhbiBzdHlsZT0iY29sb3I6IzM0OTVhZiIgY2xh c3M9IiI+Y291dDwvc3Bhbj4gJmx0OyZsdDsgPHNwYW4gc3R5bGU9ImNvbG9yOiMzNDk1YWYiIGNs YXNzPSIiPg0KZ2V0T2NjdXJyZW5jZXM8L3NwYW4+KGluZGV4LCBzaGFwZSlbPHNwYW4gc3R5bGU9 ImNvbG9yOiMzNDk1YWYiIGNsYXNzPSIiPmk8L3NwYW4+XSAmbHQ7Jmx0Ow0KPHNwYW4gc3R5bGU9 ImNvbG9yOiNiNDI2MWEiIGNsYXNzPSIiPiZxdW90OyAmcXVvdDs8L3NwYW4+OzwvZGl2Pg0KPGRp diBzdHlsZT0ibWFyZ2luOjBweDtmb250LWZhbWlseTpNZW5sbyIgY2xhc3M9IiI+Jm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7IDxzcGFuIHN0eWxlPSJjb2xvcjojMzQ5NWFmIiBjbGFzcz0iIj4N CnN0ZDwvc3Bhbj46OjxzcGFuIHN0eWxlPSJjb2xvcjojMzQ5NWFmIiBjbGFzcz0iIj5jb3V0PC9z cGFuPiAmbHQ7Jmx0OyA8c3BhbiBzdHlsZT0iY29sb3I6IzM0OTVhZiIgY2xhc3M9IiI+DQpzdGQ8 L3NwYW4+Ojo8c3BhbiBzdHlsZT0iY29sb3I6IzM0OTVhZiIgY2xhc3M9IiI+ZW5kbDwvc3Bhbj47 PC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW46MHB4O2ZvbnQtZmFtaWx5Ok1lbmxvO21pbi1oZWln aHQ6MTRweCIgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJn aW46MHB4O2ZvbnQtZmFtaWx5Ok1lbmxvIiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7IH08L2Rpdj4N CjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luOjBweDtmb250LWZhbWlseTpNZW5sbyIgY2xhc3M9 IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj4N CjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiIGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj4NCjxkaXYg Y2xhc3M9Img1Ij4NCjxkaXYgY2xhc3M9IiI+T24gMTkgTm92IDIwMTQsIGF0IDA3OjM0LCBCcmV0 dCBCb3dtYW4gJmx0OzxhIGhyZWY9Im1haWx0bzpibmJvd21hbkBnbWFpbC5jb20iIHRhcmdldD0i X2JsYW5rIiBjbGFzcz0iIj5ibmJvd21hbkBnbWFpbC5jb208L2E+Jmd0OyB3cm90ZTo8L2Rpdj4N CjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPg0KPGRpdiBjbGFz cz0iIj4NCjxkaXYgY2xhc3M9Img1Ij4NCjxkaXYgZGlyPSJsdHIiIGNsYXNzPSIiPg0KPGRpdiBj bGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+U29ycnkgdG8gYmUgYSBib3RoZXIsIGJ1dCBJIGRlY2lk ZWQgdG8gZ28gYmFjayB0byB0aGUgZG9jcyBhbmQgc3RhcnQgZnJlc2ggYW5kIEknbSBzdGlsbCBo YXZpbmcgaXNzdWVzLiAmbmJzcDs8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0K PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPldlJ3JlIHVzaW5nIFFncmFtcywgc28gSSB0cnlpbmcgdG8g d3JpdGUgYSBzaW1wbGUgbG9vcCB0byBzZWFyY2ggZm9yIGFsbCAxMm1lcnMgZnJvbSBhIHF1ZXJ5 IHNlcXVlbmNlICZxdW90O3NlcSZxdW90OyBpbiB0aGUgaW5kZXggZm9ybWVkIGZyb20gYSBTdHJp bmdTZXQgb2YgcmVmZXJlbmNlcyAmcXVvdDtyZWZTZXEmcXVvdDssIGJ1aWxkaW5nIG9uIHRoZSBl eGFtcGxlIGNvZGUgaW4gdGhlIFEtR3JhbSBJbmRleCB0dXRvcmlhbDo8L2Rpdj4NCjwvZGl2Pg0K PGRpdiBjbGFzcz0iIj4mcXVvdDsmcXVvdDsmcXVvdDs8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+Jm5i c3A7IFRGaW5kZXIgcWdyYW1GaW5kZXIoaW5kZXgpOzwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4NCjxk aXYgY2xhc3M9IiI+Jm5ic3A7Zm9yIChzaXplX3QgaSA9IDA7IGkgJmx0OyBsZW5ndGgoc2VxKS0x MjsgaSYjNDM7JiM0MzspPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwO3s8L2Rpdj4NCjxkaXYg Y2xhc3M9IiI+Jm5ic3A7ICZuYnNwOyAmbmJzcDtUSW5maXg6OlR5cGUga21lciA9IGluZml4KHNl cSwgaSwgaSYjNDM7MTIpOzwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNw O3N0ZDo6Y291dCAmbHQ7Jmx0OyBrbWVyICZsdDsmbHQ7IHN0ZDo6ZW5kbDs8L2Rpdj4NCjxkaXYg Y2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwOyAmbmJz cDsgJm5ic3A7c2VxYW46Omhhc2goaW5kZXhTaGFwZShpbmRleCksIGttZXIpOzwvZGl2Pg0KPGRp diBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwO2ZvciAodW5zaWduZWQgaSA9IDA7IGkgJmx0 OyBsZW5ndGgoZ2V0T2NjdXJyZW5jZXMoaW5kZXgsIGluZGV4U2hhcGUoaW5kZXgpKSk7ICYjNDM7 JiM0MztpKTwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwO3s8L2Rpdj4N CjxkaXYgY2xhc3M9IiI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3N0ZDo6Y291 dCAmbHQ7Jmx0OyBnZXRPY2N1cnJlbmNlcyhpbmRleCwgaW5kZXhTaGFwZShpbmRleCkpW2ldICZs dDsmbHQ7IHN0ZDo6ZW5kbDs8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+Jm5ic3A7ICZuYnNwOyAmbmJz cDt9PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgJm5ic3A7c3RkOjpjb3V0ICZs dDsmbHQ7IHN0ZDo6ZW5kbDs8YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+Jm5i c3A7fTwvZGl2Pg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZxdW90OyZxdW90OyZxdW90OzwvZGl2 Pg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+YnV0 IEknbSBnZXR0aW5nIGEgZmFpcmx5IG9idHVzZSBlcnJvciBtZXNzYWdlIEkgZG9uJ3QgcXVpdGUg dW5kZXJzdGFuZCwgYW5kIGRvZXNuJ3QgcG9pbnQgbWUgYmFjayB0byBhbnkgc3BlY2lmaWMgbGlu ZXMgaW4gbXkgY29kZS48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+ DQomcXVvdDsmcXVvdDsmcXVvdDsNCjxkaXYgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPi91c3Iv aW5jbHVkZS9zZXFhbi9pbmRleC9zaGFwZV9iYXNlLmg6NTM1OjU1OiBlcnJvcjogaW5kaXJlY3Rp b24gcmVxdWlyZXMgcG9pbnRlciBvcGVyYW5kICgnc2VxYW46OlNlZ21lbnQmbHQ7Y29uc3Qgc2Vx YW46OlN0cmluZyZsdDtzZXFhbjo6U2ltcGxlVHlwZSZsdDt1bnNpZ25lZDwvZGl2Pg0KPGRpdiBj bGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyBjaGFyLCBzZXFhbjo6RG5hNV8mZ3Q7LCBzZXFh bjo6QWxsb2MmbHQ7dm9pZCZndDsgJmd0Oywgc2VxYW46OkluZml4U2VnbWVudCZndDsnIGludmFs aWQpPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGhhc2gg KiBWYWx1ZVNpemUmbHQ7VFZhbHVlJmd0Ozo6VkFMVUUgJiM0Mzsgb3JkVmFsdWUoKFRWYWx1ZSkq aXQpLDwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7Xn5+PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPi91c3IvaW5jbHVkZS9zZXFhbi9pbmRleC9z aGFwZV9iYXNlLmg6NTQ4OjIyOiBub3RlOiBpbiBpbnN0YW50aWF0aW9uIG9mIGZ1bmN0aW9uIHRl bXBsYXRlIHNwZWNpYWxpemF0aW9uICdzZXFhbjo6X2hhc2hGaXhlZFNoYXBlJmx0O3Vuc2lnbmVk IGxvbmcsPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgJm5ic3A7IHNlcWFuOjpT aW1wbGVUeXBlJmx0O3Vuc2lnbmVkIGNoYXIsIHNlcWFuOjpEbmE1XyZndDssIHNlcWFuOjpTZWdt ZW50Jmx0O2NvbnN0IHNlcWFuOjpTdHJpbmcmbHQ7c2VxYW46OlNpbXBsZVR5cGUmbHQ7dW5zaWdu ZWQgY2hhciwgc2VxYW46OkRuYTVfJmd0Oywgc2VxYW46OkFsbG9jJmx0O3ZvaWQmZ3Q7ICZndDss PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgJm5ic3A7IHNlcWFuOjpJbmZpeFNl Z21lbnQmZ3Q7LCAxMiZndDsnIHJlcXVlc3RlZCBoZXJlPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgcmV0 dXJuIG1lLmhWYWx1ZSA9IF9oYXNoRml4ZWRTaGFwZShtZS5oVmFsdWUsIGl0LCBUVmFsdWUoKSwg VW5nYXBwZWRTaGFwZSZsdDtxJmd0OygpKTs8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+Jm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDtePC9kaXY+DQo8ZGl2IGNsYXNzPSIiPi9ob21lL2Jib3dtYW4vZ2l0L1NSU0xJL3NyYy9DJiM0 MzsmIzQzOy9TcGFyc2VBbGlnbm1lbnQuaHBwOjEwMjoxNjogbm90ZTogaW4gaW5zdGFudGlhdGlv biBvZiBmdW5jdGlvbiB0ZW1wbGF0ZSBzcGVjaWFsaXphdGlvbiAnc2VxYW46Omhhc2gmbHQ7c2Vx YW46OlNpbXBsZVR5cGUmbHQ7dW5zaWduZWQ8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+Jm5ic3A7ICZu YnNwOyAmbmJzcDsgY2hhciwgc2VxYW46OkRuYTVfJmd0OywgMTIsIHNlcWFuOjpTZWdtZW50Jmx0 O2NvbnN0IHNlcWFuOjpTdHJpbmcmbHQ7c2VxYW46OlNpbXBsZVR5cGUmbHQ7dW5zaWduZWQgY2hh ciwgc2VxYW46OkRuYTVfJmd0Oywgc2VxYW46OkFsbG9jJmx0O3ZvaWQmZ3Q7ICZndDssIHNlcWFu OjpJbmZpeFNlZ21lbnQmZ3Q7PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgJm5i c3A7ICZndDsnIHJlcXVlc3RlZCBoZXJlPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyBzZXFhbjo6aGFzaChpbmRleFNoYXBlKGluZGV4KSwga21lcik7PC9k aXY+DQo8ZGl2IGNsYXNzPSIiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDtePC9kaXY+DQo8ZGl2IGNsYXNzPSIiPi9ob21lL2Jib3dtYW4vZ2l0 L1NSU0xJL3NyYy9DJiM0MzsmIzQzOy9tYWluLmNwcDo4Njo5OiBub3RlOiBpbiBpbnN0YW50aWF0 aW9uIG9mIGZ1bmN0aW9uIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9uICdGaW5kU2VlZHMyJmx0O0Zp bmRTZWVkc0NvbmZpZyZsdDsxMiw8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+Jm5ic3A7ICZuYnNwOyAm bmJzcDsgc2VxYW46OlVuZ2FwcGVkU2hhcGUmbHQ7MTImZ3Q7LCBzZXFhbjo6SW5kZXhRR3JhbSZs dDtzZXFhbjo6VW5nYXBwZWRTaGFwZSZsdDsxMiZndDssIHNlcWFuOjpUYWcmbHQ7c2VxYW46OkRl ZmF1bHRfJmd0OyAmZ3Q7ICZndDsgJmd0OycgcmVxdWVzdGVkIGhlcmU8L2Rpdj4NCjxkaXYgY2xh c3M9IiI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IEZpbmRTZWVkczIocXVlcnlTZWVkSGl0 cywgcmVmU2V0SW5kZXgsIGlkeEFuZFJlY29yZC5zZWNvbmQuU2VxKTs8L2Rpdj4NCjwvZGl2Pg0K PGRpdiBjbGFzcz0iIj4mcXVvdDsmcXVvdDsmcXVvdDs8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJy IGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlN1Z2dlc3Rpb25zPzwvZGl2Pg0KPGRp diBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+U2luY2VyZWx5 LDwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5CcmV0dDwvZGl2Pg0KPGltZyBzcmM9Imh0dHA6Ly90LnNp Z25hdXhkaXguY29tL2UxdC9vLzUvZjE4ZFFoYjBTN2tzOGRETVBiVzJuMHg2bDJCOWdYck43c0tq NnY0ZmhqbFZSenZiWThxU1FHQ1ZSekgyYjFwY3RHRlc0YlhsczMxazFINkgwP3NpPTQ3Mzg5ODA3 MTc3ODkxODQmYW1wO3BpPTdiMjc5ZDY5LWIxN2MtNGI0Yy1lZDc1LTY1YWQ1ZDQ1NThmNSIgd2lk dGg9IjEiIGhlaWdodD0iMSIgY2xhc3M9IiI+PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnIgY2xhc3M9IiI+DQpz ZXFhbi1kZXYgbWFpbGluZyBsaXN0PGJyIGNsYXNzPSIiPg0KPGEgaHJlZj0ibWFpbHRvOnNlcWFu LWRldkBsaXN0cy5mdS1iZXJsaW4uZGUiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iIj5zZXFhbi1k ZXZAbGlzdHMuZnUtYmVybGluLmRlPC9hPjxiciBjbGFzcz0iIj4NCjxhIGhyZWY9Imh0dHBzOi8v bGlzdHMuZnUtYmVybGluLmRlL2xpc3RpbmZvL3NlcWFuLWRldiIgdGFyZ2V0PSJfYmxhbmsiIGNs YXNzPSIiPmh0dHBzOi8vbGlzdHMuZnUtYmVybGluLmRlL2xpc3RpbmZvL3NlcWFuLWRldjwvYT48 YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0KPGJyIGNsYXNzPSIi Pg0KPGRpdiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPjxmb250IGZh Y2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj4tLS08L2ZvbnQ+PC9kaXY+DQo8ZGl2IGNsYXNzPSIi Pjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2ZvbnQ+ PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj5S ZW7DqSBSYWhuPC9mb250PjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48Zm9udCBmYWNlPSJDb3VyaWVy IE5ldyIgY2xhc3M9IiI+UGguRC4gU3R1ZGVudDwvZm9udD48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+ PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIiPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tPC9mb250PjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+PGZv bnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIiPlRlbDogJm5ic3A7PGEgaHJlZj0idGVsOiUy OCUyQjQ5JTI5JTIwMzAlMjA4MzglMjA3NTI3NyIgdmFsdWU9IiYjNDM7NDkzMDgzODc1Mjc3IiB0 YXJnZXQ9Il9ibGFuayIgY2xhc3M9IiI+KCYjNDM7NDkpIDMwIDgzOCA3NTI3NzwvYT48L2ZvbnQ+ PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj5N YWlsOiZuYnNwOzxhIGhyZWY9Im1haWx0bzpyZW5lLnJhaG5AZnUtYmVybGluLmRlIiB0YXJnZXQ9 Il9ibGFuayIgY2xhc3M9IiI+cmVuZS5yYWhuQGZ1LWJlcmxpbi5kZTwvYT48L2ZvbnQ+PC9kaXY+ DQo8ZGl2IGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj4tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTwvZm9udD48L2Rpdj4NCjwvZGl2Pg0KPGRpdiBjbGFz cz0iIj48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+SW5zdGl0dXRlIG9mIENvbXB1 dGVyIFNjaWVuY2U8L2ZvbnQ+PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJp ZXIgTmV3IiBjbGFzcz0iIj5BbGdvcml0aG1pYyBCaW9pbmZvcm1hdGljcyAoQUJJKTwvZm9udD48 L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciIGNsYXNzPSIiPi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPC9mb250PjwvZGl2Pg0KPGRpdiBjbGFzcz0i Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+RnJlaWUgVW5pdmVyc2l0w6R0IEJl cmxpbjwvZm9udD48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXci IGNsYXNzPSIiPlRha3VzdHJhw59lIDk8L2ZvbnQ+PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxmb250 IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj4xNDE5NSBCZXJsaW48L2ZvbnQ+PC9kaXY+DQo8 ZGl2IGNsYXNzPSIiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBjbGFzcz0iIj4tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLTwvZm9udD48L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8YnIg Y2xhc3M9IiI+DQo8L2Rpdj4NCjwvZGl2Pg0KPGJyIGNsYXNzPSIiPg0KX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnIgY2xhc3M9IiI+DQpzZXFhbi1kZXYg bWFpbGluZyBsaXN0PGJyIGNsYXNzPSIiPg0KPGEgaHJlZj0ibWFpbHRvOnNlcWFuLWRldkBsaXN0 cy5mdS1iZXJsaW4uZGUiIGNsYXNzPSIiPnNlcWFuLWRldkBsaXN0cy5mdS1iZXJsaW4uZGU8L2E+ PGJyIGNsYXNzPSIiPg0KPGEgaHJlZj0iaHR0cHM6Ly9saXN0cy5mdS1iZXJsaW4uZGUvbGlzdGlu Zm8vc2VxYW4tZGV2IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9IiI+aHR0cHM6Ly9saXN0cy5mdS1i ZXJsaW4uZGUvbGlzdGluZm8vc2VxYW4tZGV2PC9hPjxiciBjbGFzcz0iIj4NCjxiciBjbGFzcz0i Ij4NCjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0KPGJyIGNsYXNzPSIiPg0KPC9kaXY+DQpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXzxiciBjbGFzcz0iIj4NCnNl cWFuLWRldiBtYWlsaW5nIGxpc3Q8YnIgY2xhc3M9IiI+DQo8YSBocmVmPSJtYWlsdG86c2VxYW4t ZGV2QGxpc3RzLmZ1LWJlcmxpbi5kZSIgY2xhc3M9IiI+c2VxYW4tZGV2QGxpc3RzLmZ1LWJlcmxp bi5kZTwvYT48YnIgY2xhc3M9IiI+DQpodHRwczovL2xpc3RzLmZ1LWJlcmxpbi5kZS9saXN0aW5m by9zZXFhbi1kZXY8YnIgY2xhc3M9IiI+DQo8L2Jsb2NrcXVvdGU+DQo8L2Rpdj4NCjxiciBjbGFz cz0iIj4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K --_000_DF2CAB577A054E23A77BA63E659917D8fuberlinde_-- From bnbowman@gmail.com Tue Nov 25 02:57:44 2014 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1Xt5Nv-003VXJ-0q>; Tue, 25 Nov 2014 02:57:43 +0100 Received: from mail-yk0-f175.google.com ([209.85.160.175]) by relay1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1Xt5Nu-000Tzp-Rt>; Tue, 25 Nov 2014 02:57:42 +0100 Received: by mail-yk0-f175.google.com with SMTP id 200so4741837ykr.6 for ; Mon, 24 Nov 2014 17:57:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=5dpCy3xUH2GF8BXdcJHB0IOU5tUP83qtc7/iGHyjzSY=; b=XCeXC81ezcYUKf/Ov0RoOjluZECPp9IceVwQOIXGm5MLM1w8a1eKGwgMpTNt4BLE8e 10igfVRHHWJX4INTVqjbtK0jijeo+rH/8CTJmS/hxvQXfoGO4lLGFCfQyljL2yMKpYEX zTPTaCJHfWH5BNSunmgVSkPC0P0hvVz2A0ha0TdGZCJzXXh/aV4yr1jDi5ccmrYL6Yqt Zhb53FBoxchM+9SwWRQFRlc83itsPmzM/zYhS3KRT1V+ISR6eb/VlrOZ25JfJwgbyWnY tUfIPxWXZMf3Or8T0GN2i2G+0seq3kZI4hcHrjwNppOKSIPqIckbbVx7sSODi2O6UIb5 E4hQ== MIME-Version: 1.0 X-Received: by 10.236.24.161 with SMTP id x21mr21096255yhx.96.1416880660241; Mon, 24 Nov 2014 17:57:40 -0800 (PST) Received: by 10.170.110.19 with HTTP; Mon, 24 Nov 2014 17:57:40 -0800 (PST) Date: Mon, 24 Nov 2014 17:57:40 -0800 Message-ID: From: Brett Bowman To: SeqAn Development Content-Type: multipart/alternative; boundary=089e011831907165bf0508a53cfc X-Originating-IP: 209.85.160.175 X-ZEDAT-Hint: A X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1416880663-00096E23-4B8CB7D6/0/0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.477874, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=0.3 required=5.0 tests=FREEMAIL_FROM, HTML_IMAGE_ONLY_28,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2, T_DKIM_INVALID,T_REMOTE_IMAGE,URIBL_RHS_DOB X-Spam-Checker-Version: SpamAssassin 3.4.0 on Benin.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: [Seqan-dev] Trouble Using Custom SeedSpec X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Nov 2014 01:57:44 -0000 --089e011831907165bf0508a53cfc Content-Type: text/plain; charset=UTF-8 The algorithm I'm trying to implement with SeqAn (1.4.1) uses log-probabilities as scores, so I need to customize the Seed<> to change the default ScoreValue type: (Following the docs here: http://docs.seqan.de/seqan/1.4.2-dox/?p=SimpleSeed ) """ // Declare our Seed Config and associated Seed type struct SeedConfig { typedef size_t TPosition; typedef MakeSigned_::Type TDiagonal; typedef size_t TSize; typedef float TScoreValue; // Changed to Float to be compatible with existing scoring scheme }; typedef Seed TSeed; typedef SeedSet TSeedSet; """ But when I try to add seeds to my SeedSet, """ TSeed seed = TSeed(queryPos, refPos, 12); float score = 15.5; setScore(seed, score); std::cout << seed << " " << seqan::score(seed) << " " << score << std::endl; if (!addSeed(seeds, seed, 0, Merge())) { addSeed(seeds, seed, Single()); } """ I get the following error no matter what I try: """ /home/bbowman/git/SRSLI/src/C++/SparseAlignment.hpp:220:18: error: no matching function for call to 'addSeed' if (!addSeed(seeds, seed, 0, Merge())) ^~~~~~~ /usr/include/seqan/seeds/seeds_seed_set_unordered.h:361:1: note: candidate function [with TSeedSpec = SeedConfig, TDistanceThreshold = int] not viable: no known conversion from 'Seed' to 'const Seed' for 2nd argument addSeed(SeedSet & seedSet, """ What am I missing? Sincerely, Brett --089e011831907165bf0508a53cfc Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
The algorithm I'm trying to implement with SeqAn (1.4.= 1) uses log-probabilities as scores, so I need to customize the Seed<>= ; to change the default ScoreValue type:

"""
// Declare our Seed Config and associate= d Seed type
struct SeedConfig
{
=C2=A0 =C2=A0= typedef size_t TPosition;
=C2=A0 =C2=A0 typedef MakeSigned_<s= ize_t>::Type TDiagonal;
=C2=A0 =C2=A0 typedef size_t TSize= ;
=C2=A0 =C2=A0 typedef float TScoreValue; =C2=A0 // Changed to F= loat to be compatible with existing scoring scheme
};
<= br>
typedef Seed<Simple, SeedConfig> TSeed;
typed= ef SeedSet<SeedConfig> TSeedSet;
"""

But when I try to add seeds to my SeedSet,=C2=A0
"""
TSeed seed =3D TSeed(queryPos, re= fPos, 12);
float score =3D 15.5;
setScore(seed, score);=
std::cout << seed << " " << seqa= n::score(seed) << " " << score << std::endl;
=C2=A0
if (!addSeed(seeds, seed, 0, Merge()))
{=
=C2=A0 =C2=A0 =C2=A0addSeed(seeds, seed, Single());
}<= /div>
"""

I get the = following error no matter what I try:
"""
/home/bbowman/git/SRSLI/src/C++/SparseAlignment.hpp:220:18: er= ror: no matching function for call to 'addSeed'
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (!addSeed(seeds, seed, 0, Merge()))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0^~~~= ~~~
/usr/include/seqan/seeds/seeds_seed_set_unordered.h:361:1: no= te: candidate function [with TSeedSpec =3D SeedConfig, TDistanceThreshold = =3D int] not viable: no known conversion from
=C2=A0 =C2=A0 =C2= =A0 'Seed<Simple, struct SeedConfig>' to 'const Seed<s= truct SeedConfig, (default) struct seqan::DefaultSeedConfig>' for 2n= d argument
addSeed(SeedSet<TSeedSpec, Unordered> & seed= Set,
"""

What am I = missing?

Sincerely,
Brett
--089e011831907165bf0508a53cfc-- From NHTran@ntu.edu.sg Thu Nov 27 05:26:35 2014 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1Xtqf3-002CxQ-Hm>; Thu, 27 Nov 2014 05:26:33 +0100 Received: from smtp4.ntu.edu.sg ([155.69.5.132]) by relay1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1Xtqf2-0011x9-Rg>; Thu, 27 Nov 2014 05:26:33 +0100 X-AuditID: 9b450584-b7afeae000006267-22-5476a7f45ada Received: from EXSMTP6.staff.main.ntu.edu.sg ( [155.69.5.101]) by SMTP4.ntu.edu.sg (Symantec Messaging Gateway) with SMTP id BC.80.25191.4F7A6745; Thu, 27 Nov 2014 12:26:29 +0800 (MYT) Received: from EXCHHUB14.staff.main.ntu.edu.sg (155.69.25.17) by EXSMTP6.staff.main.ntu.edu.sg (155.69.5.101) with Microsoft SMTP Server (TLS) id 14.3.123.3; Thu, 27 Nov 2014 12:26:13 +0800 Received: from EXCHMBOX33.staff.main.ntu.edu.sg ([169.254.3.216]) by EXCHHUB14.staff.main.ntu.edu.sg ([155.69.25.17]) with mapi id 14.03.0123.003; Thu, 27 Nov 2014 12:26:28 +0800 From: "Tran Ngoc Hieu (Dr)" To: "seqan-dev@lists.fu-berlin.de" Thread-Topic: Failed to build FM index with hg19 Thread-Index: AdAJ+k9J9MYYafXVTs+FrI759VxrLA== Date: Thu, 27 Nov 2014 04:26:27 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Content-Type: multipart/alternative; boundary="_000_DA28F38A7BD3CF4799A3B54A9986CAFF013FAB631AEXCHMBOX33sta_" MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA02Sf0gTUQDHefdjO5cX55zuNaPywCitaWlUEP2wBCEisRFZgZ7s2kZzjrtt OP/JrCQtJArFlvgbJQvFgalpWguKLGgqQplkqSkqCQoSI9PufKj77/O+v3jHPQpXt5M6ymJz 8IKNs7IKFfEkheT3LzW5DAktU+SRjvlnypMg1dv5SpEGLquOGXmrxcUL8cezVOavH7fYi3bl /egoVxaAwagSEEJBJgkG+oYViCOh/3urxCpKzbwEsDLgw9DhDYALbdU4OrwAsHVxnJQrCiYe rgTGgMwa5hQsvV+0NhXOxME5/y0c6QmwY+E5hlgPPcszhMwEEwPHvlYoZaaZDNjjRXkgXeNP P8rjjBaOTFZj6HoMbOj5jCOOgDMTKyTiaDg6+o1A+Vw40NaOo80w+OHx5JquZnbA0elC7AHQ eIJmPUEVT1AF6ftgTfeiAnEcbKydw9f50+sJLFivAcpmwFw4Z0hL0tscTj1vdOpFkxegv3O7 Ewwt632AoQAbSmtqXQY1yblEd44PbKMwNoKOrZekrdm5RreZE82ZgtPKiz4AKZzV0Lo6yaON nDufF3LXrSiKYLV0MXAa1IyJc/DXed7OC+vudopiIZ3VKBXDBN7E512zWB2bNkaFyOOh0vhD OUOLdi5HtJiQ3w+idVr6vGwwsmF22ja68mu7sbq6Ogu00qeE0xflVKj0Fjfas9IwJg1Hljnl YQe3aekKgGW+kq7ISdz9jpwHKWz6z5gh/NcVe/GdE6kjRLo/Kzm/y5tRurPPsMQfPXgv78ve 3yX+8szA4cGemuS73n/9U2fHmrrP9B4qea+ommrF4OTSQCLeW0FXX80+3VBLvC2vf9SSWFTY 9ne8+VJddsTNrsp89mmnuyrVUDa9Z5hzUywhmrkDsbggcv8BNHVP6kgDAAA= X-Originating-IP: 155.69.5.132 X-ZEDAT-Hint: A X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1417062393-00096E23-53269413/0/0 X-Bogosity: Unsure, tests=bogofilter, spamicity=0.500658, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=-0.8 required=5.0 tests=FU_BOGO_UNSURE, HTML_MESSAGE, RCVD_IN_DNSWL_MED X-Spam-Checker-Version: SpamAssassin 3.4.0 on Dschibuti.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: [Seqan-dev] Failed to build FM index with hg19 X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Nov 2014 04:26:35 -0000 --_000_DA28F38A7BD3CF4799A3B54A9986CAFF013FAB631AEXCHMBOX33sta_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Dear SeqAn Team, I often encounter the following error when trying to build the FM index of = the human genome (UCSC hg19) by using the tool "masai_indexer" or by follow= ing your online tutorial "MiniBowtie". The process sometimes runs smoothly,= but sometimes fails, thus I don't know what's going on. Everything is fine= with smaller genomes. Could you please give some advices? Thank you very m= uch! Building FM index... Asynchronous I/O operation failed (waitFor): "Success" fildes: 9 buffer: 7f7e3a5d6000 offset: 3298d0000 nbytes: 28000 event: 1 Raddr: 0x1def098 ../../core/include/seqan/file/file_page.h:740 FAILED! (WRITING operation c= ould not be completed: "Success") Aborted (core dumped) Regards, Hieu ________________________________ CONFIDENTIALITY: This email is intended solely for the person(s) named and = may be confidential and/or privileged. If you are not the intended recipien= t, please delete it, notify us and do not copy, use, or disclose its conten= ts. Towards a sustainable earth: Print only when necessary. Thank you. --_000_DA28F38A7BD3CF4799A3B54A9986CAFF013FAB631AEXCHMBOX33sta_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Dear SeqAn Team,

 

I often encounter the following error when trying to= build the FM index of the human genome (UCSC hg19) by using the tool ̶= 0;masai_indexer” or by following your online tutorial “MiniBowt= ie”. The process sometimes runs smoothly, but sometimes fails, thus I don’t know what’s going on. Everything is fine w= ith smaller genomes. Could you please give some advices? Thank you very muc= h!

 

 

Building FM index...

Asynchronous I/O operation failed (waitFor): "S= uccess"

fildes:  9

buffer:  7f7e3a5d6000

offset:  3298d0000

nbytes:  28000

event:   1

Raddr:   0x1def098

../../core/include/seqan/file/file_page.h:740 FAILED= !  (WRITING operation could not be completed: "Success")

Aborted (core dumped)

 

 

Regards,

Hieu

 


CONFIDENTIALITY: This email = is intended solely for the person(s) named and may be confidential and/or p= rivileged. If you are not the intended recipient, please delete it, notify = us and do not copy, use, or disclose its contents.
Towards a sustainable earth: Print only when necessary. Thank you.
--_000_DA28F38A7BD3CF4799A3B54A9986CAFF013FAB631AEXCHMBOX33sta_-- From Enrico.Siragusa@fu-berlin.de Thu Nov 27 14:48:52 2014 Received: from outpost9.zedat.fu-berlin.de ([130.133.4.95]) by list1.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XtzRC-002uGW-2C>; Thu, 27 Nov 2014 14:48:50 +0100 Received: from relay2.zedat.fu-berlin.de ([130.133.4.80]) by outpost.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtp (envelope-from ) id <1XtzRC-003AhS-0y>; Thu, 27 Nov 2014 14:48:50 +0100 Received: from cas3.campus.fu-berlin.de ([130.133.170.203]) by relay2.zedat.fu-berlin.de (Exim 4.82) for seqan-dev@lists.fu-berlin.de with esmtps (envelope-from ) id <1XtzRB-000lLg-NM>; Thu, 27 Nov 2014 14:48:50 +0100 Received: from EX02A.campus.fu-berlin.de ([130.133.170.132]) by CAS3.campus.fu-berlin.de ([130.133.170.203]) with mapi id 14.03.0210.002; Thu, 27 Nov 2014 14:48:48 +0100 From: "Siragusa, Enrico" To: SeqAn Development Thread-Topic: [Seqan-dev] Failed to build FM index with hg19 Thread-Index: AdAJ+k9J9MYYafXVTs+FrI759VxrLAARjLGA Message-ID: <9813C5E1-B4CE-4F7B-A01E-CD7DF2B5A912@fu-berlin.de> References: In-Reply-To: Accept-Language: en-US, de-DE Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Content-Type: multipart/alternative; boundary="_000_9813C5E1B4CE4F7BA01ECD7DF2B5A912fuberlinde_" MIME-Version: 1.0 Date: Thu, 27 Nov 2014 14:48:48 +0100 X-Original-Date: Thu, 27 Nov 2014 13:48:48 +0000 X-Originating-IP: 130.133.170.203 X-ZEDAT-Hint: XA X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1417096130-00096E23-2CF044EC/0/0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=-50.0 required=5.0 tests=ALL_TRUSTED,HTML_MESSAGE X-Spam-Checker-Version: SpamAssassin 3.4.0 on Algerien.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [Seqan-dev] Failed to build FM index with hg19 X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.16 Precedence: list Reply-To: SeqAn Development List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Nov 2014 13:48:52 -0000 --_000_9813C5E1B4CE4F7BA01ECD7DF2B5A912fuberlinde_ Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Hi Hieu, This incomprehensible error message means that the index construction algor= ithm run out of disk space! The suffix array construction algorithm impleme= nted in SeqAn (Skew7) works on external memory and requires at least 20-25 = times the disk space of the input text. The algorithm writes such temporary= data to the system=92s temporary folder (usually /tmp). In general, you ca= n change this folder by (re)defining the environment variable TMPDIR. Concerning any application that you write using SeqAn (or the MiniBowtie de= mo): you should redefine the SAValue metafunction to squeeze the size of th= e suffix array. By default, SAValue is a Pair<__uint64, __uint64>. For hg19= , you can redefine SAValue as follows: namespace seqan { template struct SAValue > { typedef Pair<__uint8, __uint32, Pack> Type; }; } In this way each SA value will consume only 5 bytes (1 byte to index any se= quence in the text collection + 4 bytes to index any position within any se= quence). Concerning Masai: please upgrade to Yara (http://www.seqan.de/projects/yara= /) if you didn=92t! Enrico On 27 Nov 2014, at 05:26, Tran Ngoc Hieu (Dr) > wrote: Dear SeqAn Team, I often encounter the following error when trying to build the FM index of = the human genome (UCSC hg19) by using the tool =93masai_indexer=94 or by fo= llowing your online tutorial =93MiniBowtie=94. The process sometimes runs s= moothly, but sometimes fails, thus I don=92t know what=92s going on. Everyt= hing is fine with smaller genomes. Could you please give some advices? Than= k you very much! Building FM index... Asynchronous I/O operation failed (waitFor): "Success" fildes: 9 buffer: 7f7e3a5d6000 offset: 3298d0000 nbytes: 28000 event: 1 Raddr: 0x1def098 ../../core/include/seqan/file/file_page.h:740 FAILED! (WRITING operation c= ould not be completed: "Success") Aborted (core dumped) Regards, Hieu ________________________________ CONFIDENTIALITY: This email is intended solely for the person(s) named and = may be confidential and/or privileged. If you are not the intended recipien= t, please delete it, notify us and do not copy, use, or disclose its conten= ts. Towards a sustainable earth: Print only when necessary. Thank you. ________= _______________________________________ seqan-dev mailing list seqan-dev@lists.fu-berlin.de https://lists.fu-berlin.de/listinfo/seqan-dev --_000_9813C5E1B4CE4F7BA01ECD7DF2B5A912fuberlinde_ Content-Type: text/html; charset="Windows-1252" Content-ID: <369F6B03DCAD244CB30252D97E02F373@campus.fu-berlin.de> Content-Transfer-Encoding: quoted-printable Hi Hieu,

This incomprehensible error message means that the index construction = algorithm run out of disk space! The suffix array construction algorithm im= plemented in SeqAn (Skew7) works on external memory and requires at least 2= 0-25 times the disk space of the input text. The algorithm writes such temporary data to the system=92s tem= porary folder (usually /tmp). In general, you can change this folder by (re= )defining the environment variable TMPDIR.

Concerning any application that you write using SeqAn (or the MiniBowt= ie demo): you should redefine the SAValue metafunction to squeeze the size = of the suffix array. By default, SAValue is a Pair<__uint64, __uint64>= ;. For hg19, you can redefine SAValue as follows:

namespace seqan {
template <typename TString, typename TSpec>
struct SAValue<StringSet<TString, TSpec&g= t; >
{
  &nb= sp; typedef Pair<__uint8, __uint32, Pack>   Type;
};
}

In this way each SA value will consume only 5 bytes (1 byte to index a= ny sequence in the text collection + 4 bytes to index any position with= in any sequence).

Concerning Masai: please upgrade to Yara (http://www.seqan.de/projects/yara/) if you didn=92t!=

Enrico

On 27 Nov 2014, at 05:26, Tran Ngoc Hieu (Dr) <NHTran@ntu.edu.sg> wrote:

Dear SeqAn Team,

 

I often encounter the following error when trying to build the FM index of = the human genome (UCSC hg19) by using the tool =93masai_indexer=94 or by fo= llowing your online tutorial =93MiniBowtie=94. The process sometimes runs s= moothly, but sometimes fails, thus I don=92t know what=92s going on. Everything is fine with smaller genomes. Could you= please give some advices? Thank you very much!

 

 

Building FM index...
Asynchronous I/O operation failed (waitFor): "Success"
fildes:  9
buffer:  7f7e3a5d6000
offset:  3298d0000
nbytes:  28000
event:   1
Raddr:   0x1def098
../../core/include/seqan/file/file_page.h:740 FAILED!  (WRITING operat= ion could not be completed: "Success")
Aborted (core dumped)

 

 

Regards,
Hieu

 


CONFIDENTIALITY: This email = is intended solely for the person(s) named and may be confidential and/or p= rivileged. If you are not the intended recipient, please delete it, notify = us and do not copy, use, or disclose its contents.
Towards a sustainable earth: Print only when necessary. Thank you.
 __________________________= _____________________
seqan-dev mailing list
seqan-dev@lists.fu-berlin.de
https://lists.fu-berlin.de/listinfo/seq= an-dev

--_000_9813C5E1B4CE4F7BA01ECD7DF2B5A912fuberlinde_--