Return-Path: X-Original-To: apmail-nifi-users-archive@minotaur.apache.org Delivered-To: apmail-nifi-users-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2DE4E171DE for ; Fri, 25 Sep 2015 00:15:01 +0000 (UTC) Received: (qmail 95258 invoked by uid 500); 25 Sep 2015 00:15:01 -0000 Delivered-To: apmail-nifi-users-archive@nifi.apache.org Received: (qmail 95228 invoked by uid 500); 25 Sep 2015 00:15:01 -0000 Mailing-List: contact users-help@nifi.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@nifi.apache.org Delivered-To: mailing list users@nifi.apache.org Received: (qmail 95215 invoked by uid 99); 25 Sep 2015 00:15:01 -0000 Received: from Unknown (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 25 Sep 2015 00:15:01 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 928F7C1676 for ; Fri, 25 Sep 2015 00:15:00 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 3.131 X-Spam-Level: *** X-Spam-Status: No, score=3.131 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, HTML_MESSAGE=3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, TVD_FW_GRAPHIC_NAME_MID=0.001, URIBL_BLOCKED=0.001] autolearn=disabled Authentication-Results: spamd1-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-us-west.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id tEnEy726x3vi for ; Fri, 25 Sep 2015 00:14:48 +0000 (UTC) Received: from mail-yk0-f181.google.com (mail-yk0-f181.google.com [209.85.160.181]) by mx1-us-west.apache.org (ASF Mail Server at mx1-us-west.apache.org) with ESMTPS id A7BCD231DC for ; Fri, 25 Sep 2015 00:14:47 +0000 (UTC) Received: by ykdt18 with SMTP id t18so100889227ykd.3 for ; Thu, 24 Sep 2015 17:14:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:content-type:message-id:mime-version:subject:date:references :to:in-reply-to; bh=8jTjSJ4y2N68rDY/oEip4D9uuFRYjSpCoXWYUGSsxjw=; b=YZ3MjLwBQUIp34U/WHOZ+bBMooVxzs2tEN6+Rp5FVMarMy5R7O1Zc5+EPDEfbW0AER OBYlvDGvZmH1XDyAwUkq5frf6vp6iKvqwRj8ym5fdRmRaKbYiEGnspjR2wMMl1f+g9En 2J5Ty9nzbXVfJDIoH+ulH7WDwPi41ISbp3jbrM90/dKUrtcKQ03Ui5LQSkixDqO0u2mm 7armvgHj4Pp/2ufkHlw27SFdrVTkcj1iIn798JId58jl7vkfTueK6xQT/hnpq4YICar9 7q68BpgC6U/F2AlopZAdw2LRi+XcFHHZ3qjD9HqUfjh0jaByOF90wrXkZh1M/r2e/PQe Hx6g== X-Received: by 10.13.246.70 with SMTP id g67mr2207492ywf.116.1443140086596; Thu, 24 Sep 2015 17:14:46 -0700 (PDT) Received: from [192.168.1.106] (24-217-96-94.dhcp.stls.mo.charter.com. [24.217.96.94]) by smtp.gmail.com with ESMTPSA id y187sm766197ywe.23.2015.09.24.17.14.45 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 24 Sep 2015 17:14:46 -0700 (PDT) From: Jeff Content-Type: multipart/alternative; boundary="Apple-Mail=_68F13CA9-B719-4423-8D01-A3CFB546E9F6" Message-Id: <854379D8-AC75-4BEC-B600-FC7C0E9C9E8D@gmail.com> Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\)) Subject: Re: Array into MongoDB Date: Thu, 24 Sep 2015 19:14:44 -0500 References: To: users@nifi.apache.org In-Reply-To: X-Mailer: Apple Mail (2.2104) --Apple-Mail=_68F13CA9-B719-4423-8D01-A3CFB546E9F6 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 I=92m having a very similar problem. The process picks up the file, a = custom processor does it=92s thing but no data is sent out. > On Sep 24, 2015, at 5:56 PM, Adam Williams = wrote: >=20 > For JsonSplit i am using just "$" to try and get the array into = individual objects. It worked on a small subset, but a large seems to = just hang. >=20 > From: aldrinpiri@gmail.com > Date: Thu, 24 Sep 2015 18:54:06 -0400 > Subject: Re: Array into MongoDB > To: users@nifi.apache.org >=20 > Bryan is correct about the backing library reading everything into = memory to do the evaluation. >=20 > Might I ask what the expression you are using? >=20 > On Thu, Sep 24, 2015 at 6:44 PM, Adam Williams = > wrote: > I tried it even with 6GB and no luck. It's receiving the flowfiles, = but nothing is happening after. If i do it with a small subset (3 JSON = objects) it works perfect. When i throw the 180MB file it just spins, = no logging, errors etc very odd. Any thoughts? >=20 > Thanks >=20 > From: aaronfwilliams@outlook.com > To: users@nifi.apache.org > Subject: RE: Array into MongoDB > Date: Thu, 24 Sep 2015 21:23:35 +0000 >=20 >=20 > Bryan, >=20 > I think that is whats happening, fans spinning like crazy, this is my = current bootstrap.conf. I will bump it up, are there any other settings = i should bump too? >=20 > java.arg.2=3D-Xms512m > java.arg.3=3D-Xmx2048m >=20 > Thanks >=20 > Date: Thu, 24 Sep 2015 17:20:27 -0400 > Subject: Re: Array into MongoDB > From: bbende@gmail.com > To: users@nifi.apache.org >=20 > One other thing I thought of... I think the JSON processors read the = entire FlowFile content into memory to do the splitting/evaluating, so I = wonder if you are running into a memory issue with a 180MB JSON file. >=20 > Are you running with the default configuration of 512mb set in = conf/bootstrap.conf ? If so it would be interesting to see what happens = if you bump that up. >=20 > On Thu, Sep 24, 2015 at 5:06 PM, Bryan Bende > wrote: > Adam, >=20 > Based on that message I suspect that MongoDB does not support sending = in an array of documents since it looks like it expect the first = character to be the start of a document and not an array. >=20 > With regards to the SplitJson processor, if you set the JSON Path to $ = then it should split at the top-level and send out each of your two = documents on the splits relationship. >=20 > -Bryan >=20 >=20 > On Thu, Sep 24, 2015 at 4:36 PM, Adam Williams = > wrote: > I have an array of JSON object I am trying to put into Mongo, but I = keep hitting this on the PutMongo processor: >=20 > ERROR [Timer-Driven Process Thread-1] = o.a.nifi.processors.mongodb.PutMongo = PutMongo[id=3Dc576f8cc-6e21-4881-a7cd-6e3881838a91] Failed to insert = StandardFlowFileRecord[uuid=3D2c670a40-7934-4bc6-b054-1cba23fe7b0f,claim=3D= StandardContentClaim = [resourceClaim=3DStandardResourceClaim[id=3D1443125646319-1, = container=3Ddefault, section=3D1], offset=3D0, = length=3D208380820],offset=3D0,name=3Dtest.json,size=3D208380820] into = MongoDB due to org.bson.BsonInvalidOperationException: readStartDocument = can only be called when CurrentBSONType is DOCUMENT, not when = CurrentBSONType is ARRAY.: org.bson.BsonInvalidOperationException: = readStartDocument can only be called when CurrentBSONType is DOCUMENT, = not when CurrentBSONType is ARRAY. >=20 >=20 > I tried to use the splitJson processor to split the array into = segments, but to my experience I can't pull out each Json Obect. The = splitjson processor just hangs and never produces logs or any output at = all. The structure of my data is: >=20 > [{"id":1, "stat":"something"},{"id":2, "stat":"anothersomething"}] >=20 > The JSON file itself is pretty large (>100mb). >=20 > Thank you --Apple-Mail=_68F13CA9-B719-4423-8D01-A3CFB546E9F6 Content-Type: multipart/related; type="text/html"; boundary="Apple-Mail=_AC99DE38-A330-4C3A-9138-45D69563B11E" --Apple-Mail=_AC99DE38-A330-4C3A-9138-45D69563B11E Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=windows-1252



I=92= m having a very similar problem.  The process picks up the file, a = custom processor does it=92s thing but no data is sent out.

3D"unknown.gif"



On Sep 24, 2015, at 5:56 PM, = Adam Williams <aaronfwilliams@outlook.com> wrote:

For JsonSplit i am = using just "$" to try and get the array into individual objects. =  It worked on a small subset, but a large seems to just hang.


From: aldrinpiri@gmail.com
Date: Thu, 24 Sep 2015 = 18:54:06 -0400
Subject: Re: Array into MongoDB
To: users@nifi.apache.org

Bryan is correct about the backing library = reading everything into memory to do the evaluation.

Might I ask what the expression you are = using?

On Thu, Sep 24, 2015 at 6:44 PM, Adam = Williams <aaronfwilliams@outlook.com> wrote:
I tried it even with 6GB and no luck.  It's = receiving the flowfiles, but nothing is happening after.  If i do = it with a small subset (3 JSON objects) it works perfect.  When i = throw the 180MB file it just spins, no logging, errors etc very = odd.  Any thoughts?

Thanks


From: aaronfwilliams@outlook.com
To: users@nifi.apache.org
Subject: RE: Array = into MongoDB
Date: Thu, 24 Sep 2015 21:23:35 +0000


Bryan,

I think that is whats happening, fans spinning like crazy, = this is my current bootstrap.conf.  I will bump it up, are there = any other settings i should bump too?

java.arg.2=3D-Xms512m
java.arg.3=3D-Xmx2048m

Thanks


Date: Thu, 24 Sep 2015 17:20:27 -0400
Subject: Re: Array into MongoDB
From: bbende@gmail.com
To: users@nifi.apache.org

One other thing I thought of... I think the JSON = processors read the entire FlowFile content into memory to do the = splitting/evaluating, so I wonder if you are running into a memory issue = with a 180MB JSON file.

Are you running with the default configuration of 512mb set = in conf/bootstrap.conf ?  If so it would be interesting to see what = happens if you bump that up.

On Thu, Sep 24, 2015 at 5:06 PM, Bryan = Bende <bbende@gmail.com> wrote:
Adam,

Based on that message I = suspect that MongoDB does not support sending in an array of documents = since it looks like it expect the first character to be the start of a = document and not an array.

With regards to the SplitJson processor, if you set the JSON = Path to $ then it should split at the top-level and send out each of = your two documents on the splits relationship.

-Bryan


On Thu, Sep 24, 2015 at 4:36 = PM, Adam Williams <aaronfwilliams@outlook.com> wrote:
I have an array of JSON object I am trying to put into Mongo, = but I keep hitting this on the PutMongo processor:

ERROR = [Timer-Driven Process Thread-1] o.a.nifi.processors.mongodb.PutMongo = PutMongo[id=3Dc576f8cc-6e21-4881-a7cd-6e3881838a91] Failed to insert = StandardFlowFileRecord[uuid=3D2c670a40-7934-4bc6-b054-1cba23fe7b0f,claim=3D= StandardContentClaim = [resourceClaim=3DStandardResourceClaim[id=3D1443125646319-1, = container=3Ddefault, section=3D1], offset=3D0, = length=3D208380820],offset=3D0,name=3Dtest.json,size=3D208380820] into = MongoDB due to org.bson.BsonInvalidOperationException: readStartDocument = can only be called when CurrentBSONType is DOCUMENT, not when = CurrentBSONType is ARRAY.: org.bson.BsonInvalidOperationException: = readStartDocument can only be called when CurrentBSONType is DOCUMENT, = not when CurrentBSONType is ARRAY.


I tried to use the splitJson processor to split the = array into segments, but to my experience I can't pull out each Json = Obect.  The splitjson processor just hangs and never produces logs = or any output at all.  The structure of my data is:

[{"id":1, = "stat":"something"},{"id":2, "stat":"anothersomething"}]

The JSON = file itself is pretty large (>100mb).

Thank = you

= --Apple-Mail=_AC99DE38-A330-4C3A-9138-45D69563B11E Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=unknown.gif Content-Type: image/gif; name="unknown.gif" Content-Id: R0lGODlhZAGBAOcAAP////Dw8Ojo6ODg4AAAALi4uNDQ0EBgcJiYmLCwsFiAkDhYaDBQYLjI0KCw uFB4iEhwgMjIyKC4yLDI0FBwgMDAwDhYYGiQoGiQqEhoeGCImNjY2DBQWGCIoDhgaFh4kGCAmFiA mFh4iFBwiEBoeGhoaKjAyHh4eGBgYHiYsDBYYHCYsDg4OHBwcFhYWGiIoLjIyICAgEBAQFBQUKCg oKioqDAwMEBocKCosLC4wEhISIiIiJCQkMDI0CAgILjAyKiwuLjAwGCAkMjQ0CgoKHiQmLC4uGiI mHCIkHCYqICYoJCouJiwwMDIyAgICIigqLDAyMjQ2HCQoIigsKi4uMjY0ACIQBAQEFCQcJigoKi4 yLDAwNCwgACYSFBweFh4gGBYUICYqJCwuKCoqKi4wNjg4ODo6PDo6ACAQACQSACgUACoUAiAQAiI SAiYUAi4YBiIUDCYYEhQWFCoeGBIKGBgWGhYOGhocHCQqHCwkHh4cHiQoIiQkJCYmJCosLi4wIhg KIhwSKBwMKCAULBwELiAKLiYcMCQQNCgYNiQINjAmOiIAPjgwAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAZAGBAEAI/wABCBxI kOCAgggTHkzIUODChgohMnwo0WBFhBQvAsh4kWNFjxJBQhTZkOREjRZROlS5kqVJlgM3BIBJs6bN mzhz6tzJs6fPnxADGPhpQEDCAGfmvHnjJk6eKmYCzERIgMDAqlYBVL26VavVrgOnch3rtazXrASx pgV7Fi1WqzPVCtzKVqBYlHc15r24t2JfiX+DwgzcMO9MAwhOlHAxYwaLGSd47Jhhg4VlFmAUSWUo lKgAqaBBD8gzx0GZ0AE+o169WjXr16lhw3YtGzXt2qBv4469O7Ru3L9rB5c9fHZv38dzJ5d6e0Mh Q4hQMNZxAkEFowVmtCiQoMaGDS1QlP+4w6P1UJVv02MtYWCAgPfw48ufH59AfQH24efHz59+f/5V vbeffQP+R6B+BiYYoH8MNujggxBGKOGEFFZo4YUORnCIIXXQYUcJLYR4QgwIuPfgAOfpdAIBKESw wQAwxijjjDTWaOONOOao44489ujjj0AGKeSQRBZpZJEV/AjRiuy9OGMUFDAgpUBSVmnllVhmqeWW XHZ5JRJUJYRWWlzJNRdVdWlV0FdvAeXmm24iIBACdMqJkp0I4SmQCT3QuEEELNGQRQ17rYiCAQZ8 p+gGQ4jgwaMCeRCppAA8aumlmGaq6aacdsppEWGSydCYY1515lxpZqVqW6XC6eqrLOH/WWeeA8k6 56246mkCDIt+ZwCgKu2wAw/AEsTkr71u0IMQJDQrULMkPPtstABEC6201Q7kLLXcYsuts9lW++20 0JZLghKhmmpqq2yuqeZXp8ar5qjxukXvuqXCq6+osPYLgKyzFkTnnHYWTDCu/w5kwg/J/sqSeuqx FwGiFBtQgRAQZKzxxhx37PHHIIcsMshP+GvyySinrJMJW1SMaATF8mQxzDRHEMQRD+QsUM46A/DA zj/7DDTPRBdt9NFIJ630FOmqS6+98vI779TvVk11qypnjZOetQrcda4I27pnDjXDXEHMOxlQQNkR /CFFCHDHLffcdNdt99145333Elr3/+333yabQAXbZxNVQAWIJ25EEh003rhAjkPeAeSSUw7A45dX nrnjk1+Oeeefg645544z0TTVTsMrr71Qh9p6vVOrjjrgtIudMEG2G3z77niaAETiia9NVAIFFG98 AQ4kr/zyDuDA/PPQOw/99MlLT330109vffbLb8999d8z7/3343NffvbnX58+9etrH3737yvfvhHH F59ABUC9hBFM+hfUf0oq+d9AKLKBKxCgBCPhnwJdssAANhAlAmyJAxmYvwdqJIIbsWBHWCIAJxxw giCEoAY/MsKQlDCBFAxhTzDIwhOWxIUAEIABXTBAGEYkhSLE4QVtuD8dbtCHO2khEP9NOEQUqvCH RyRhEV+4xJM08YZJJKJPDPCXzRxlMFhkCWE4k0WVbPGKWuwiXsSoFzLyZTADqEEJ6lCBM/glRTIL jgCw4IYupMEKaGADHEpzGtRUJTR/DEAgpfJHiMlmkIAkAGgGGUhEClI9hHxLJNOzSEU6cjmYzKQm N8nJTnKSC4kIRAt0YIPKECEBAtmBD0gZgxhGAAEuAIMhXiMAOKZtAJgsDi1zycvl6JI1v2xNL5MT TNsM8zjFRI4vj6mcAQhiEYCQgwtcgIJqWtOaLTgBoXjjG1ve5FgmmlA49YMVcgbIPfsREH3yY6J0 llNACxrAO/GzIHoOaEHpZNA4I7T/Twj180QV+qeDBNogguozoAiNEA9KgIAIBNSbNjmWk2QUBS9w 4KIYzahGN8rRjnr0oyD1KJhoR9KSmpQmfPIT2r5JABkgikZDoMACZiqQBdTUpgCYqU53ytOe+vSn QA0qUEHlrqKejlSo60q+qsamNp30qRfJndfCBjaq7qkBKoUJDejUB4ocK1G96oEIDkDWspr1rGhN q1rXyta2rnUPUI2rXJ+6sIbZAGJ4TZOxDvgrlxmgCULIgGAFItgMEJawhgVAYger2MMetrADgSxi EbvYySp2sYXNrGDRZdTZze51q5oXUqMWO9iRdnVOE+2ZRjtXlUgVd1+7ne54pzAo//gVZkSpgF9/ cIQR+HYEAvFtcH9LXOACoLjITa5yl8vc5ZZsLWIyquxUhTW2gNYtoT1ta2sX253oKge3XWlOZla2 IFxAAehNr3rXy972uve98I3ve/2w3fraF2E/+S7hxIsTtQEPcTmQggYGPGCBEBgAB0awgTVg4AYj mMEPXvCDIZxgCCvYwRTOMIEHzLfOkpZ1qQXxh1WrXasxFWv3dRXABiawgunOxVYFgO/+WwHhTfF+ /zVCCi6AAR77uMdA/rGQg0zkIRu5yEg+spJ7bLoUO/nJPdHC7/57uOHV78pYJh6Wt2w/LnNZy16+ MpjDfLwxk7nLZy5zmtW8ZjS32f/MZ4YzmeUcZjp72c5fbrOb13w/lxzpz4AOdJEM4EEUCPrQiE60 ohet6B0+sYdRNGIOKyJDArhAiJFmYqaduGkoTvrTju40RhhN6lKb+tSoTrWqVy2ji8gEyrCOtaxN 1pkpfhEhty5Irgmy67CY0S+/BkywBRPGYntx2IVBNmcg2l+jHGUOcXCATMTSF/WsxallwvWa0gPG Yxt7jN8uY7jPOG5gl1vYuLYiAAxQg/DMQAcyYEEpWRAIRgCG2TcpCi2V8oY1qKELaIADFrIQFT8q spKRTGTCL2lwSj7y4Fh5eMIfSfGFHxzhlbRkIRnuyY57/OMgD3kAeKCHd8ObBUT/oIFACnCCBPBg BiWwgQ50AAYuzAbfNtE3MLHQBivAwSlNYA5rDDlJSTpykLdheCA/4/CiQ5ySkFSPPRt5cWEu8+rE ZOZukqkcrCMzNIfgwgZ4EIgSzEAGMpgBDdwTgAHEgAUoiMHaaTCDag7iDOYhCi6BaRyv1wavveG6 0P2+da0Dx/DCQTxxFN931CiiEIkQhA7kMIPpZFMHMXjReyJQAhDxYNrd1DuG7qPOBCEon6T/z+hX z/rWu/71sI997LmQRjsAwg7i6TyIRLSD6xQU5ywBZ0JTDyDSp8c/7Cy9guSDeuWXngDtVD3sDfp6 6rve+q3HPuutz4VC3B4MdzjB/w5qIE7gq0Siw5cQQaX+Hu3Hx/3wgX/7089P+vvT/gClkPwFsP/+ B5S/NCFRfkIBFlCABniACJiACriADNiADsiAIjABEjiBFFiBFniBGJiBGriBHNiBHviBIBiCIjiC JEiCTNAnM/InPCGAT+IFXvKCMBiDMvgls1aDNsgQKZWCAAgTXwVTBFiAAmEBQRiED1iERniEDDhS q3U6JhZiSzUq2HU1Nwg4s0UrLMZisvUvtiNjWKWDK/gWKNArQ/AFOlVTN3VTQpWGariGQkVUUqNd rMUq/LJU+xKHU6gyXINftFVVryVjvNIrDqMSNDCINIBKe8UeYLUojeJWjNiIjv/4iGflhnc4iXEC FFyzKw2zgwnBA5zIAzRwF1+VLGJVVgJBigAAiWRViql4iqvIigegimgFi47IWWQhNanihGRhh6yV XdQlJrsIXagihXe4hTqhKwwDiJp4fnw1MS4DWJLFWIxFENDoWNBoWJXVWNiIWdcYjZGlWZlFi6lV Wp8VYkyFWuEoKq2DYr+4LuV4jrKWh7sTYy8WW71jWy6DWztxLMxYMYA1Mv74jwAZkBwTBpRYkPn1 JrpijxWDjz3RVy7zAxpAARI5kRRZkRZ5kRiZkRq5kRn5XAb5kfXFMuHlZzkSAWdTXjjTM0SzM0DD kj6jNDAZkzJ5NEzjYZ7Fjqb/1TTtQib7IowgWYkEg4W1AmNZqIUxZgJkQDhJ4iMXQV41czMfEJUf IBBRSZVTCQBXiZVWKZVc2ZVe+ZVgGZZiWZNvWF04KY46SY4kZoc/2RN9KI9VtYcyRjZlUzhTdJJP eV7ytZd82Zd+qV4d1paCeVJIuV+GczaIGQEBBgIawJggYGCO2ZiSGZmRKRCUOZmYiWCPqZmYeZme 2ZmTGZjBeFRn+Yuvk4vhKGImhmKDKRHEmBO6QgWJeTY21pCH8185gAca0AG7CWG8yZuWs5sEIZwE 8ZvDCZy9CTnE6ZvMaTnH2Zu8KQZMyC6lOYdoeSpRyJrTdZ2tGVUJwTWvNVu2/zNjVJaMMOFfOZYE F7Ce7Nme7vme8Bmf8jmf9CmfTdad+MkQ8OhdBEGewFNlN0ZjOoYBBFqgBnqgCJqgCrqgDNqgC3qf +RmhKKMFDkBjANqQeKZnGrqhHNqhHvqhIBqiIjqiJFqicYY/PjEAuuVXLFoxK9qiLfqiMOpXMjqj LmqjLFqjOGoxfuUCfBWjO+oyOoqjQ2qjRTqjRwqjSQqkQUoxS5qjTeqkUYooFbABFfRo/sNDWYql AFQCBOAEVippoQZqSESmSiRqW4qmAGSmOoFpbCqmZTqmF7QiYCqncXqnZ/qmmqannMannmanQaSl awqoUuSne+UE5jmoeFqohP8Kp3naqHsKqX0qqTbhppQKaYaapkvypYBiqYvqqIz6qZEqqpNKqn9q qjXhqY+Kqpp6qa3Kqoq6qrIaqrMKqrY6qrWKq20qqDXEpb2qpr+aqbFKq8R6q6Waq8darLpqrDUx pc76rNAardI6rdRardZ6rdiardf6E68mod76ra9Saz3RreBarua6E+IqM71mF8rWbeDmbfD6rvIq bvFKr/NKbvWKr+A2AOQaFOZ3nn8hADBQBXuxrgBgsAjbrtp2bsSWr+bmsOgGsQ17ryPRbu8Wb3bA BW/kGUcRAHOgBk6xBX10sL7Ibahisie7sGWCbb7GsMnmslwEs+5qrzSrrzX/+7AJgRjh4QInV0o+ awMyYAgku2wcOxNGe7BJsRT+1hRPgUska7RbAbVwEbUHG7V0oUhPuxlSS7J/JIfcJrURJ4cPpxZR J0lim7VHm7ZPu7Zq27Zsq7VsG7duO7doK7d2S7dzC7d4e7d8CxpruwE7ME0mB3dJ0n4IYBlopwOD oLdZ+68soXOtgQVqsAZdYEd4xAZYQLAGp3AVZ3EY9xqQNHGdS3UNZ3SSNLYah3AcJ3Ks27qu67oG kE0oEG/zVgAzwQNEcHYtMACw9BiBsHd5F0A64lDANAA8ZwVWoEdYMAZV8BuMRLqThLqr27mcK3ER V3Ebd0hVh7rWu72v+73g/xu+mcQFhJAILXAHLoC4PrADn1EBNBADNtBK7wFLLlACiqAbAhABSlIR kGsbWPBzeUAFBcdNiXS6Tvd0mzt4n8u5qnG9BVzAF2fAksR0z9t4X0d4h4fBiafBi+d1MmEAhbAI i5F2CGAUuFQBKFB3MuACiUJN4gF6ueG4KtG/vjGw+Mt4u8TBFhx4OMx3OpzDWffDPhzERCwVG2Bz QSAIgAAGZycDKIAAG1ADMrADYjEAigEiVGwbMowS7dHDVlfEPCzEX3zBYFx4YmxMZ6xMZZzBoHEG AsAFhxABerDE00RNddwCPIAANUADOwAiawdMW6wRXUx4EhxxtOG9EOzFaP+8xhvMyB3syDtsxpAM xGTsGwJgCIUgCHawwtfUeSGSTTGQAKnxG7XEEtd0ytZUA+3Reu6kegXSfMp3IPkxT7RcT7V8T7Ms fbK3y7zcy748fYhACIRAB3LQAruXTZHhUAMVyDHQzM78zCzAV/u3TvfRyqY3H28Ry6fHfNlMT/VR IOoEy788zuRczuYsH4OwCIRQByfQznKnfSjyhezhf8yHIAaCTvWMzfN3zQcSztvsz+EcfeL8fvg3 UAVdUAd9UPqX0P5hfYqwAQkgHS2wAwWgf4G8qfPM0PRBz+Kk0fPB0ern0fIB0vW30Cbd0Setfol6 EeiX0iWN0jAd0i59fzP/nX8x/dIyfdM0rdM2rdLynCjzUQYNMNREXdQNAANGndRKjdRK3dRDzdRO vdRR3dRQPdVFXdVW/dRZbdRYndVdbdVfPdVhHdVj7dRlTdVbfdVpTdRnvQEfvdIVwYIyYgAZEFJ2 fdd4ndcapYTn2tc7kYMyooL5yFcTFSMVNYOIndiKzQB87deObROAHSOCrSKETSNQstiYndlb0tiP 3dkqEdkwMtk5IdeGTYAqIIQAcNqqbQGr3dqs/dquHduwPduyXdu0PduNrVfsQp21mJOjWRZs6dka 8Zpb059dGNhwLRE9OCMxtQAWgFOoDQCo7dzU/dzWXd3Yfd3and3cvd3e/93dCyCJIxZdtphUZsGT 7Vhiwt0QK5aHVziPRimXJnDckp3cm1oVMQBTZEhTOXWGOcWGAB7gayje40jeqRM1p1mHPrnew/2d U7WH4hlb851VKuEiDLEiBEAE3iGG+41THv7hAh7iIr5TBP6EBu5ZJv6EqxLcDM7e9PjgYhPhCIOJ yMgSY3Djn1gQoSiGY+UBB+DjQP7jQh7kRD7kRl7kSH7kSp7kTH4ABN7iNrifxdiff7gogYgSgpIF WUADziYQhrKP/DhWqDjmZA6JTw7laG4CClkxd5UePnAZcH4ZvNsHdNLlALDjizKKrTgQZA6Lfv7n Z6WKruiIcCVdLFtddf+h4iyL4NZlXfeSbWUph5ToYkJZEft5icdo5RGgZ3zAA3ywA2E6EPooiiJA AjdALad+A8+i6tpy6gSR6tji6qheEKxOLQLB6gRh6rme6qbe66cOjrKDizb520pV3vcCYtTJ4mBB F29Yg1XoNe/9NXKChcaYiYGSAKF+iMgSVoHFjZZVjYlFjZiVjdQo7ts47pfljZtFmmeJmuyoOtbm jo2u7MCIVHWIslH+4rBlVTK+O3VV44MtMX7ljOBu7tUo7pMVjZJ1WZSF8Omu7t+Yliub4ugN78ZO 3un46Nep4CwOa/AInvre7/U4kgHvkPyIMRkAAYQFASnvWALB8ipPECz///KPNfMrH+4tr1g2v/Ph DgAwn/JAD/ME2VlmWS+Jjp0n6+hoQipKv+BnUVQrvuj5HpS0wu9WX1skjxI+sPVc3/UGJPDNiDEC OfZkX/ZDj+bDaIkFIZL3mNw0RmMbYPJOKgQcWfd2f/d4X5EeifZ8z/YLad/8q6MQWZEEsZEAkPeI n/h7f1q7jV30fm0eRl1mwvf7XidS7uCYrzDg1fa5tVspGTQrKTQviRAzWfqmjzR7H+zqvZ2q34Tq GIVOz/fPDlvRDjbU3p+b//e5xTa8xTNDA/otKfqnP/zET5bn+PqQDof1XvGihe+yr+/QD9/yTZc1 Y5cNiZc0czMisP0C/7H93A8AItD94Q/+4u/95n/+6J/+6r/+7G/84/00B37ioNWOHc/gHw/j0g6X Y2OYd8k2QQAQLxR8GKgAwEEABAke/HBwoEOFBSNOlFiR4kWLGQlOQYiQQEcAH0EeJFDSo0mPKVWe FKlS5MuSKEfOpFnT5k2cOXXuzIkAIQKgI30eHApg6NGfRDuayBHB6dMKEXjqNBD1qdMgFxRs5drV 61ewYcWOJSvWz1S0adWuZdvW7dukcDsWPWiCzFWnUeUiNFAAb4SsZQUPJlzY65K9iRUvZtzYcU4T VP7qTdz37x8pIDSP1NzZ82cQB0GPDs1ZNGnUoxGDbNmxNUmZMUfKhv/92jXLmbRDxpb52Pfjo0Dp 4hweF2HkyVIrF6jQ3HkOKRqkSz84XUPH6divA6DOfXt16tm9byePkHx38NalryYZcvb79i0/vkwp v/3J++5pzq//279vpGjyKSijikKKQKOWosI55/xSrC8Gm8sBD/XSQ48788RLL8PsxPMQPBAx9M7C 6cSA7zbW+stPP/fsS5G+3XKDscUZ/7PRLQONU2rHBHvMkUcTgIiwAgeXGzKHJDpQUsmDlmyygyeZ bHJKAJaUskooncQSyiqf9LLLLa200sQUy0SxxZVY5G/F3XRj8zb7XLxxzrWK69G4HwO8s6gghyxy pwECFXRQQSMo4FD/RAsAIokLXmj0goMcdRSkRjuqFIBLLz2oUkkhBUDSTSP1dNJPPRW1U0eZOPHN 2nBTkzc586OtNd1q7Y1OXKcyEEE849JTTwC0cCDRRAk11ticDEhgSCMYveBZaKOVdlpqq7X2Wmyr VTVXbrv1FiQ7cQSpzwiZe3DZCI1IAQN223X3XXjjlXdeeuudd9tv89V3X7i0ELLcCs4lcuAC1E1h hYMTRnhhhRtmmOEkHJb44YkrRjhiiqeQYGOOO/b4Y5BDFnlkkks2+WSUU1Z5ZZZbbnkJBwgm0tzK EiD2Zpxz1nlnnnv2+WeggxZ6aKKLNvpopJNWGudlz136aaijlnpq/6qrtvpqoZuurIYEuvb6a7DD Fntssss2+2y001Y7gRPWdvttuOOWe26665Y7YMUGQEvvqfjmyW9A9xa8oxpKqqEmwHVKPKfFcWr8 psdtihzxwf+uPPDFJqdJ85k4H8lzkEDvSHSEALeBACIgv1zx1Rlv3fHXVe87drdIP8h2AHDXnXbK ASicgMNlt3x24oc3HvPjWS8e+cR2X1755F2fXQbUoWfeeuyljx7257W/3vu9nN9e+O+55+n34MFX 3/zyyc+e/ffdX19+uMRvX3LeN5+KeiIEGB//7sFvfgD8X+8KqL8AvsV+8SPg/QyIkwKUZAf56xwF P2fB0GFwdBosHTsHD1jBBDaQgQ+0Cf8EsMABkjCFCPzgBUOoQgHGUIEezB0NUTiSCBJgKDekXw9F uEIQtjCDL2ShA2kSEAA7 --Apple-Mail=_AC99DE38-A330-4C3A-9138-45D69563B11E-- --Apple-Mail=_68F13CA9-B719-4423-8D01-A3CFB546E9F6--