From manner.moe@gmx.de Sat Jan 05 22:04:31 2013 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Traur-003D9Q-Uh>; Sat, 05 Jan 2013 22:04:30 +0100 Received: from mout.gmx.net ([212.227.17.20]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Traur-000LrP-Je>; Sat, 05 Jan 2013 22:04:29 +0100 Received: from mailout-de.gmx.net ([10.1.76.1]) by mrigmx.server.lan (mrigmx001) with ESMTP (Nemesis) id 0M38or-1T2eQF0pfD-00suEX for ; Sat, 05 Jan 2013 22:04:28 +0100 Received: (qmail invoked by alias); 05 Jan 2013 21:04:20 -0000 Received: from dslc-082-083-136-166.pools.arcor-ip.net (EHLO [192.168.2.100]) [82.83.136.166] by mail.gmx.net (mp001) with SMTP; 05 Jan 2013 22:04:20 +0100 X-Authenticated: #17747474 X-Provags-ID: V01U2FsdGVkX18j9/A3Q2wjk3UiG1Mj4k8UNBs52LoYtol5tg4JJU QY0+0v0KAqoQJn Message-ID: <50E89536.4090607@gmx.de> Date: Sat, 05 Jan 2013 22:03:50 +0100 From: Thomas Arp User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0 MIME-Version: 1.0 To: "linux-minidisc@lists.fu-berlin.de" Content-Type: multipart/mixed; boundary="------------080005060803050206050108" X-Y-GMX-Trusted: 0 X-Originating-IP: 212.227.17.20 X-ZEDAT-Hint: A X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1357419869-00000B1F-9661CABD/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.021501, version=1.2.2 X-Spam-Flag: NO X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE X-Spam-Checker-Version: SpamAssassin 3.3.2 on Algerien.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: [linux-minidisc] qhimdtransfer and Windows 8 X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.14 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Jan 2013 21:04:31 -0000 This is a multi-part message in MIME format. --------------080005060803050206050108 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Hi, i just want to inform you that qhimdtransfer works fine in Windows 8, this includes netmd support and windows autodetection function. For netmd devices you have to use zadig.exe to install WINusb driver for your device the same way as on older versions of windows. I installed the 90 day trial version of Win 8 Enterprise in a virtual maschine and used my qhimdtransfer test application (with netmd support, as described some days ago) with MZ-RH1 in netmd mode and MZ-NH1 in himd mode connected to the system. You can find a screenshot attached to this email. Thomas P.S.: I have to change something in the QNetMDDevice class code. When you change a minidisc and than reload the tracklist only track count will be updated, all other strings as title, group, duration etc. will be displayed as before on the other minidisc. --------------080005060803050206050108 Content-Type: image/png; name="Bildschirmfoto vom 2013-01-05 21:40:54.png" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Bildschirmfoto vom 2013-01-05 21:40:54.png" iVBORw0KGgoAAAANSUhEUgAAB4AAAAQ4CAIAAABnsVYUAAAAA3NCSVQICAjb4U/gAAAAGXRF WHRTb2Z0d2FyZQBnbm9tZS1zY3JlZW5zaG907wO/PgAAIABJREFUeJzsXXWcHUXy/1bPs/Uk u5uNuwuEBA9uwSGHHhxyOAeHyx3uLoE7XMPBIYfb4e4kxEM8xJN1330yXb8/embevHkzbzcJ cNzv+pt8Zuf19FRXV1dbTU0NnXTiEdDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0ND4uRFqb4v/p3nQ 0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0ND4f4iQZP5P86ChoaGhoaGhoaGhoaGhoaGhoaGhofH/ECGW 2gCtoaGhoaGhoaGhoaGhoaGhoaGhoaHx8yPE2gM6CwxRWduQaG/tW1aMSN6vWXQiRY1NjWS2 lZeVS9CvWfTPBWZqaGmNt7f1KCngcPQ/zc7Pif+gYvw2oQWioaGhoaGhoaGhoaGh8b+D3Xbd FcAnn376n2LgjNNPq6mtffHFl7Q1T+M/iFtvuRnApX/5a+dv2SwDdMI05i75KZJsGDtkAMcK N5nOxsKUaI+3F0TDEMbG3tsZnhNcmjdk0O4DC7vP//Dj1ljmRfH9knVGSy0AgCcMquCi0s0v 0UGl2bfPQBpWsqLuJ7MSG127Xw4paSxfW9lYV0PSjIV4zJD+VanCZUt/HFQWLeo+ZNbipaWh 1mGDh6eEkeTi5oKScaOKBqyb+X0i0iFlT2uaMvT9gsWRZDsAILnt8CGpWP4vXLnOIqdi/LbQ odZtTidKl/LfIxANDQ0NDQ0NDQ0NDQ0Njc3B3nvvtfdeewEIhUPvv//Bf4SHqurqbbfZZtWq VV9//c1/hAGNjQIRHXXkEX379isrK62urvniiy++/ua/suGi0WgoFGppaXEnOiblwsLCZDIZ j+f6yqBPDOg5K+vM+g154cTo4aNTWcYpU4amLVwSTbYP7h41ex92xpSrDy9d9Nldt73eUpCj mERKLF+7obWhlpgLoqJPj9L8klKTQ9MWLI0k2zLzxrcZOSIZ7DkbT4VnL1s5oHfJICTWcREA wJi2ZE2otT47c7f85IDBYySlXYmbwlt0yHMyPPi4Cw7ZMdSw4s73PmzxyKdw6+uevn10UmVs vP/M637qwILfmRIdmMOPv/WMQtrwzCNTflhvityZf0WIhdUFux1z/vF7jqqIwayZPuPRJ+80 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 FLUiIBjsvEJBma7KsHu0qgY5KWpZDELafxZIp7uPLLIWi6o1A7tRWkXSISOCXywkNoNCHAQY xNXE4JllYAXCtltQnROD7GD9Tj7HWpDNjACkEG71T2di77ejrDctGIAdUxiwnr85YuAMlmDP Rxl0VPtIl5BdQ6KAVwJ2fI9M9uwUNaZnbMY6WPNlfmnAPbm7tmFsua4ws5BWVHA7Uek9CZYS kmyfWbJtZWSP1exIySLP6a7nHSgyhQNAwvpMsSS2/lrTbPrzxa6IK5lE7EUQsx382xn4XBUn 5f7rvFOg2GLO6VDAWef+a0QrdJXhWhgo07zNmGNntIKD2Qb3TB5ZfdgRTEoMEMJQooYa7YH/ Y+/NgjVbsvOgb63c/zlVp6ru1LfnbrWsAVkCRRjJkow1WA1qg7FkjRDCBJb1onAEBLwYHnhl eCN4MQFIhCXbgMQQCgjjCAVCcmMphBsTcqixwWjwINSS2lLr9u2azvn3zrV4WDmszNz7P/9/ 6lTdUtPZt3ftk3/uHFeuKVeuBSix4UoigPYoLaA4XwelIJMo7RKRtir01ARUVS24YkQ6vTdI DwqBUD73owy9pduxOJongjt58iq/m0mMbkM1L0dKSLrSSVdzSw7aP9M/9RMv0q/k1+bsWaCr 4lUFVEkObVR1gOJz+p63n5hVfdNWAk8uvaKhtgM1UzJARvmzG13J71RmHVn3DZ2eei6usNwd JOnQ0Ngl30+qV1ZOUzqMVflK2kZ7IoV2HnxO9gsIWA1+etuvypuuaA16f9DXju5mW9J/3ozo 2ln0BXycnoK00YRapgYCw7XLdGCwfsWPTNdZOnfE4traQweTh9flwECua+hIkN64IZp0vdbQ zbbtRq82Ksu3Q+yGzcpXlLCZJhnNFALKRHZDrmyBtKXskRG1q6o92uFk8+HlaMM4gizs5Hyh vBUbw16zGxv4zGPWiE8Ex02+eiuf/Hv9IzRX3Y6o54hu9tadmqrL06PIx/k0zNJNSUPbAa+t OvXD63IsPct+fBnSSf2nbQXogXQ8flv/PG3c20mFdnR4rPBB/tdDDH3hE4ZfVs1QCtpx/CGQ 8Zs1l7Q97Ci4O8PdRLzpNnBY+emI5H1ArzSw203T2dndO3d2Z2dhmu5e3N3tdtPujJjOz8/v XFzce+XBnTt3p910cf/+2dlOiQJzCNPZ3TtwrKeqXj29nJc5xhiXZdnvHz18FOdlWeYnDx9d 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 6PwZdILzDdKE2ues91I9Oz//7KOHIsn1gbEVyY9sdHdMCIE5MlMIgQM0ST9qarcstSbx1YmJ EqMoYowiYiEHJWmfo5mWiUjytqsaoft5fv2VV8ugi9g2Dr3BhjrkAID50k2AJVmwh2OwNId9 qPIw1LyFrtquvu/dDz7zT33dh7/olasn+7eexgu5PNvFi/Pda+e7cN+8KahEWZa4n/ePHz95 6623/vGnP/2bv/mbv/GpT33605/+vc985uGjh48fPnzy9Kk5opzOzl597Y0PfdFHvvwrvvL9 9197/T0feO+77v/ypx994LXkmTf7tKKtoGSnpi2Aa4VYXf9ELZLXipjX8dk+FNUGBXKMXf7j GB9emrYCC2J6mma0c6DZdn7sgZKY04ryq4V1SuoV000zkwoCk+oSFyKIKkOJORLtQhAgxmjX pYIiqqYjBxEBJ+XfxpPMSynS1e5gDimUImIAu2dowyemp7ZGFpS1bKRUILbMfwBJDrJh8E3p ypayEijrwgkKZVsFIqFgayHmqFqEssLXzzPBLpyb2iQh7k4tYoumSsVXtVgLamxdegLCADGF 6gwESPHfRCiZSKcGWYXJnxCuSAVJgZpVkAcoyq3tsOebtqS7mNhTKBOjwkDz7nJUpfpizt6Z MXCuhqORfTEn4pmOC1BWzjzq1u9ZJV0G6fu/ugL57KscWzmhT7T5JtMpLjLCsOFhJkhJe5s8 y4xKOvvUO5NBhdUokhVzsAiJ+eQmf0hEmk5mFYBFnQuoz0pZ1gQD84qTPBFbl8ylTIxF1ElK yQ1vSkkXINVdEjPbn/6CawfzmumgZlwEH35wKFx2Znn6ILFeuu7WoeGtCZT92o9dWhkXpZkt vu0VCESSnwxE9xw5tlEJ2GMthZCQi2xswoz40xtXSb0R4nnflrL4JrQtVpItULlqV9qJlC6y q0bbT/nImcuTKGSXNhLr2UOTLIhlPkkkZG82k06r9QCsGq3d8kQm8qScYghka+yE6O0CDme3 PEw7gdBKRFMb75qiqlcIekme2tSeF8AXM831Maj7dgVRWtNMldQJli+zDLyeipqY5LCy2NaU IcIgISExvsVjjOc3+C1qeEzOuE9Tvv2Ts4/v/7Uiqy/Aai6AEoazjbVq2Xd8ndcW8AJts/U6 h0tHa/a3fj1Qw7UdzsU6CnBC68+Y+s5DcVxbx8/bWgEhQsHJDTzYHvTP6/DP8WkLNflYHVvR FJ7F5/ILSULKSvUJCKhwZ51UlTjkwh8kWQbpBcm5h5SzHCEJCAL3XJPUWL2Tnk77DJ9/LbZk 7WM7VfE28b1JLSvXxYvaSqvwwHoLq2zcx2j8V5o4NZXIECsi/6Cg+P2etpDJ580Aj0wNX/0S qOy38Wfjf6r7JKtLGo4XgyBTSl7b3I37+UxzeAR/WNJUtAee9T87P9/PMwEqogAzxyTBpqNX Zo4xErNdyGQji0zTFHa7iZ3jEiKKMTIIRBIlcuTAiKy6AGQeBUVFVCRGjVFEoolRkhzYQvVq 3u/Oz8dJqs8yHuczNF3/l6jaYEpS5UQmKRBHpcbGmQREsixwSJ+KyhfCylClbLXKpDvWu3fo 3iuv372nT67mz87L00eXj54+VOB8t9tNxFGXOMdlXq6unl4+evz2o7feeut3P/PoMw/1odyJ 9997cf/97/7S+w8e3L93796D+/dff+2N973/zQ+8583X75+fTRpYKMY7LJMqJBYmIEXq60Bl Tex3v67nl3t2rhqFuZyoO8GcDwMK7qIhiwBs2kxvhO7ooKmSXV8VmmyCkVUrKR8otku5K5ps dVUV1BiBli0qWWWG5EODKdta6iDTmvoskefsHkUJIJY8sujU7tnuIKtpFKpg0ESTqoKDCdWs YiGmiKGKKAJVFknWYIFEYS44IpREI5JwH4gl2f1mt84KIc3Oy5Sh0MikBAkESDT3YQwliP1q rlttlGUR82YIyZVn+pkIQZK5mTKgpIGCkjEqKrFqfykvpQAWzDJfI89UXdUsN6EpNiszT8TK GmM0rUKGBCq9cmBmrqUZoDjPVpaQHJ5afZRRc3cD3XzjMsiivdn1cxIVWYBscW930gEVDWFH pq6yGV5TkxWrUkCgsbBlRyHlocwBW5Uc7O/Q5/12rcrYoTP1NNUhLvOxmIV+yk8t3DMlJ3qW T2BxJAF5Yy6tQhaUbCcjIqq4XANfQiWHv3ShMCX5pz+SXipBdesEgMa5AUA02ewU8dTayie3 CTflX5UgYzXmErg4ZCyiBStLXFizO9lQjZqTs4t86ZjNRy0jmm94BQiS9HcEgEJFYlXXDAAL Gd1iYkeRJ05BULVsaSaY9WIbX06dArpsE2RJJntI7yfVGBrbEawQsUFqggrH96TKzAVwUldq uUlBhg+dsxSDNFOAIqP60lU7J+qh1i2nZ0sABOICsUXQZbI7FklQIxBz2lbMU4maR+7IoUJg cz4KRQwJQBKl4DxBpWy6k2KcUphEVXJMaiOLQjANLxyolyCqzaTneShUrFlEVSJayOabk6is gCpz8k0EUqhkNUQ+X8mLVRIRuxPkuvYyR6fCqO+0l1UFR+YKWAUqYlg3j0ZUF5tqB1RMlJzz e+jNsJQpb2Ll1HML6e5OOgy2fDX0nOkwiJmSb6u8gIAqmAMys1Njh1Ratsnid0kH/G29CszN J5Q4EKi/5NVU5DuASjnXBaeixO9kj2cUOCs0Onzu9Q6WX9gxt7gV/lePvlS12K8AsB0BgBR2 AYMUgTTzaWxHnrHSGVJVkBBBhcpgu31RB+LEGyr4BFCn0zmGXpeDutKKfRWY0Y7depnfNSLz PG23UOZT7TaSYA2xlRgkFU8CSqQq+UZIolQRhBRW2iYE/gVoDv4HaClYqM5K7axbr9VM10oL ALnmDnrJRlbmQjVv3FQyeva/fpuIR3cyOMwZ8v0eUZV0j6p+4/nJWhU1SrVeuln5kyvsFanY z60mnoAo6wapiSFRaluZVazwdwlmGgpoyHBlpQT5yC1fwbRumiyjymTXxLaGuZaaC4t5UCio yUMXkWm9jSSDkK5DQbOpQY4jonkY5G7sjZ1pHDAavR7C83rM1mpZAWSy6k8yhp8b3KgK0pBC u6sk/phUJFNSZTLDm2x+k0HYWDsC7FSAcyaV0ESUogeRKrMZ8CipMCxKkxAQSMnupcF2fFE3 a+khtX0mBZXglYROPV0gsBumqzlpKpBdITvdBZUBMrdqkGMSdXv2iC8KoJUNpxDRbLMcgGbr EJUV1MzhHeyQsSeFS/Wg2yCf+uoyD1V+0syUwjdQoCOTg/J+aus3KN8R+jH/yPpPbXcrbfNj FR35kpvtOqOlhMoONGpPNlakaaKhIs1GA23P0lg/IYQuy+p0J1zQJqdvcRgy+QPOY/rhvpXy 6Lt6zDoyEZJcII7zQXFI2fgbpKINdMnE9SZ7mqYYo0r9WDWZbxKRGVOJCDObq2GeJotVuJum abf78q/8g//kV3/1l33FP0HE7//gBwD89qd+U1R++e/9P3/3l37p//47/xdEQgghhGVZEkZJ QdVVoMW9pqjUWVURkWnaLXFpaDgNKHCOomIisV0/EVXRxThDlL1NyoaHOfgYXjYbdjU42xgr ICoKRCU2+58U7EAT87tj7K+eXF3uz853u0DQgPMzUd3HRTRezfYFRdrp+bQ7u3jtlfe8+qE/ 8MUgCykUmIgoMN89390944kxBUykAUJQQmTFPurV1cyv7g5Efn9HU479QyvQfONUyCq30si4 4ZMungCwkAJs7wxBy0iNqMrnxI5FzO14LT+TFFHHBF2rhJlZxBwFRERVZbCIVK8pHGJSkfNE osJBFxUOiASaWAkTsaqQIqqQqioHUXNMQbZBjBQrBGTBFJJS0XgrEc17ggAyvyGkXHAoKWsy 1ysl028REQrGgnSiHtIMqBJRVCVjB4orGUUEAtxdUZsfBYkKL5QlyZFgmOWsU1UEAIzAoozm GDAveuTEKimb6+ekHkovJhWopssLycWBVv6j9M0GZS+cFQwemxcLdCKoKV/yT6swc+O0acNz 2ykpYo54Fv0sRrOr7SRHP2/Q85Mseti1lWKgJXmqppifRY85plWWQklZ2SiDwBSgTJocX5q1 uFI6DjEddlY7UipQ5IheishNaCJUVGSr/AuQNOOGyFRN4yjICmigvqwOx7Z0xIpaJzv6SbcU WZPazmkiBswpWUuKpFpQJo1R292xyjx1fxZRf+urZiy68szxVpPwxlRcA9fLENwqfdaS5MNo VdXkiokAYMcVX2UuiwAYvq2B8vKUFlGpIhaF3TDwoyNnY97NcIYEyi5PEvNh76keu1EA/2xq KCmt+DipmghS9xQtu6R7WgBOo4AEJZJqAQdRsRs8tgsI0QzjtmESDroKtk/rpX3JQXFskXip +3CroeedWG+I5bC1Lwo43bZR59au7KZ6LGnFC4CXuwIeUZSvqqSkSLpA+yCdhyB0GsKhk8cM +nZn5nDl1lm9qWbhcHL6lS36uTJZjfx5I7PiG6euaSTcVN12jeqMAdJO44Dy5+mqrSqI1p2S Hd/zUz/sFuHWZ3itbzo+XbGsOdHkBWULHq5t8RhUSflZZYq153MEu1NSN6JgfJBdjyUNIM9J EFL0JDsUaHiMyroJERlVNkuEkJoQaLo6ahZi/pnctUFICeW9NXZOHfbv2r8M2ud1Fr3UXH49 sFJ4h1aN/aCGYbyMSo4XlbyKY1Xd8SJ78k41/eJTgf8j0eaWZ5gD9b9sSYezUpd/g1SOM4vv /c4epZ+DCYApWsr0TLtdjIvRdspMsJnT+IuTSmAiUyWfnZ09uP/go3/8Yx/7E//8vQcPujbe /6EPAvjghz/80Y9925NHj37qr/61n/mpn4rLMgVeAvOSTKLMdkZV0wm3ksKkWUARlznspmWZ +5nq9M9Xi0BNHDJ/vqqqiEYwiAjJXobSxAdVcCEtVkmAZk+HJt5nraRG4qCklC4ciVGYQHSm 89UcL87OZlJWNVHfPOgCACEQTZlXt8aQ/knLI5BFlyVOZshBwb5SBZRwFeXq6orCTmy5XHTb QpyO09Q4C5E1brbk59CxfaEDAsPzTmomFZAMm5YJoOumbv2hybVoFeq6LVFkSPdTZZEZ0n3F TpGqLnaTuaTw5mCmJI1FD6xm+Miqpn4lZmJODi1jXEQ0qkCnCCWmRSVZTFuIQg7+8lSEEiUH 2GJqZS2KJCi3omDmqABDAK0MUBUmSQKkbLmuqt5UPbsoJYWawjeAmFkpAoRo5/7eyU9drxwt LVdFeXqnqUxXflrbSaYBEZgpBIvHBbO0MpUTkgUFsk6dRIkp+/8CiBSRsnePtGQdZszD53Lq sHqX5PYI80kK1peNhp2qQNetizlb83nqXc7TJ2h1/jNz78+WCaJ21ZEype3eMyOf3cQwZYtn p9A5OJzuwMapddZsEwzXSNVVjWVKhUliZygU0Y5VtezrdGbVcVSJO/FCSukVlUZdfiIf7fl5 7kArDWpiOQLWFm1lsJa/scDeAsAdSyUGpvy1qoN272bWZz7uk3V2atpO+JMlNcqIoBKI7Bgy mVojYWnv3ietgnLcULauDj+xLiXTRph55JozfGtNiA6A4VBpU+mQOhc0tTjBLuWY2y2R5PzE 7vHYXYdAVA5ER71q4ic3zpInd7OKBoM3GjYIMxeObrXDPp9aM6itYt0P4wzcIG3VP87P+Oeo Hb62HtfuUR3rEM6ofd6qPxQKQGVHNy+qmjhosxB3kaU16aCBfCqmSUcNzcotzYcqQ/PVZ/QL E5GLxq3pg6OBt8Ubryh2D55DHKlzPEauLthpxMDXNg3A7jnYNOhKPAwFNXbQz546HHK8Zrmb 2FSb/9Udjvqai0YSp/u78I02dZ7oymOr5rHktV+Nv3oYGFHBO5K2+MxtvGo3rmgoqUMO4Nd0 u2bT6bJmM28gG7gW7q/wAAAgAElEQVRUP2w8fGvvUm7e+4aO2wibpG1jLKzSH5JcV2dd5aN6 dDvJsOXzOMn7PEtHIrTbbahDjC9V8gzkrVeew5b4vKOcuR2T3qn53JyoLMoNaROvAsh4rs7U 6jVxXdNud/Q6BSF0Br10dna2zEvlQuypKqrJCJHMbw+HadpN4Wx39nV/5Bu+/wd+4I13vXHN NAAX9+9/75/+/o/+8Y/9lb/4o5/4+Z+fliUG5iSxIDUkyQV0UhYqCJiXZbfbXT19OsxTM1PL 1b4o6UIRkmE3ZBP3QJT8ZxGls04kyJB065mMlggc5aD0IDJ7ZiuoSUXy6p0gMXIAZpOAle12 j2da1f2TlLuObBCC6fOsGRDZbKsSYYl6707SzYndPO7pab/Mq/kngb/SsTTy+aUtPDjKrr78 mLnFT2sKPAjYBrClV4hdSKdkpNPoEaqyskpTpc4iYHvJvxQQpIu6IKmWzoiEQKz2VKEwJXee y2Jn9WBlsAZVClC7AozqYzdFtQT2hiDyRTwREUAzlKvnfQEAUbLrEs5n5uT0TeYHdg0I2AmH AGIUImK7IGFCSPIjLCNu0jaKa0kCBE6KMOdLLmGBCECViHZEsSgyOST/a1kzmEeXRNlVYPBs dyfk2wzk66OpVy8nGf5CegGpYXSYzIeIWT2zZuMWKInzhwhzW00mxK6KcIfZu+K0JIX6zRip HEElFScAETgF9Nht3zor1Py+c717rt7v2NDPYtvrVVFdt8tYSIHA4q9EFLwnzdFd2XRbG+sk 9O5TJ9JviZSrBCX7AgJlJ0KWiGjZz5o4E4HTaE9AOgljkiXOcdEoARplMbQl2bFJAAlpSFiR lZSVIiJr8ulv9vXmHTKSkBCKy4mCD1usNbIASdwVu6niFNmeL/Sj3vC9uD75ZCcXMFQ83mww 5nQxBEtJ++877Na9V5H0tHXtnVoSnO445wtGqxqlrqqNdX8pUteTAzP27GlrnpnDOFcHmi4G zL6HHld4LohVxRQ4o9JtQw23qqG73anYSqM0flu1HZNuoDf0v45ljuFhxl3TOoLYVIvDDXC1 2Hb5U6+BXX/HYOzAmFYHcqCe49Mxn6xM0RHzttqlYzp5g6X//Z4O0/qVX2n91/ZPpfY3zy/l 52Y911Xe1Hm4kpy/DhWHx35tlz5vkmf/NunXOzT07f40HX5hS7PKexxf3uXfWpe22n0xLNyR 1PN5L8+1cPLO1q+q7TFtr0sZW+kmdqLEDpraE0QIIeznuVRqThxNiZUU2kSBKIQwTdN0dvb9 P/Cv/Qvf8e24bs8UUqqqr7/rjX/r3/nz/9OXfelf+Ys/uiwx7KYQl8VcGErSa2W9N8zYd16W 3dlOG7SbFMy+lWVfLaCT7aZqVngJ6h18QbLIAFI8nySiE5HdshF3vJkHpUQqomx3b60TEDDd 29GTy8uABxMgpEwIFkGOD591NtFgzV1rckCl2ewcqqoLcPecV8/ba2Q518jhk/mtX29m3ePT ln1fVfH65gBs3PTvdQf5hTfKpJCSh/vfWjSUVAI3EVGwC1WpoLl6UK4+WrmvbU3H4QWAThHD TJXnDmb+TKoIYZfDPQmYVMm8hV7pLGDKauKiEN85C2hvGX2mWeOc1SUiokrLstiQTEws02fT wSCAOME5UQ7C1toXma0ZkisbTetC3ukKCTFzPaypfFKZCntaf8YknPyMp9FJ7AKUWfcZUAWz hBCIOO1WduubNi+VQ7iiWiJqIoZ5LUlaqaI0IZD5NNS6uHnx1wFdbtUFzZjq/mrb3xS0TtzR 3J/8rrb24hKfSuLVPQFsYJ4bp+qohEgVCq0+U5NbRlh8QPP9mf3V2sebqtuSk/CLJEJn3g7I LKpFy8bWfFuIRKsls413aMIrkkLywZOq1IrZsgbZ1WPmroX80aBBXk3kliBJaKi21c1yaFJj jnV1yiwb4QGuyHMX5YWIiL3r4aoMHVwAZfRiPnBZzf88gxjExAhBRMh8hIopoEFEysTMIQTz 7EgMoShIPo9U7aZUZjGIIyyHlQRCjOSEPBCBYYFgi1tyNtpEIAO8wSXraD2krUsEGlQbdfJT 2rQt28gXb9k9zn/pH4FIQGQOq2qlxtFQazhQK8tDIiJqQLe2wtmm3gqlPws/2I6RHP/1AsS5 45t4ASrUA2lLSTG1xwBVHt6uKUMaaQJVoGzAhAJTth3UZeSZiLVa2FXj3+xbAjoanYQUQwgO Yql1U3TDVCrU/B+0XF5EkY9wjPbzFlOnkSz4sHsZC29Vcm1zq+1iWwHq1SVFkVrz82xRDuVs +cEqJEJy3bQyq1tCpKdWHWt9oJ8HBtuRYGqRW+UGW8PwShBPhD2HsakJ8Oh6Ja71kt+tSN9J y2kHePy6H6NqeafSaFNsqfhEHpJdYxpQXLI/S3ef669aHpnb9MSCzO92ZV4yQYmUMZHfODSs aRrFht65WbJhdIneuXdNSvCCDJtquUYBx/jrauprOJHf3tQkHK3YooP57yiRfAfSqoIVt6eI PKYeX+ad5VJWk8fDyD08tZ9b80YbROTlwonb6eT12iq/NeAaEyd9mOKiFQPiUnGi8k4ORLoy 1DCcXWuq4Gla4kLusmpdYxN7iMI0Tbvd2dnZv/lv//mv/6P/TDuidWL2u7/zO//9j//EfHX1 7d/z3V/8JV+iqn/yu7/rXe9+93/0H/yHMS5zmALNkcmsaFRFsqtZa3yOkZK/3XY07QzGqKox dbjKruLmy6LQKlcFdOTsmTEHGjAkLnaVl9lCcwUAURYlLKqo4cVUCUHi4889wvveVFUWJRFS JZXkXH/Uyyau1p6ErKYLZmYHgJSLB1TVuMguoHhXTMQ3r+8YwbY4YnuWdNrl99tOnQICA9OJ NXx9POPVqURzbg3iYaavwrmJwaTOS1yln9YBs/AdpXRBzNBFgFpoJotJo8oidptZzOwOwG5n ihKirMYgCvbMimwxwz2ztI9J8QGRKKIxRrs2voDSgUYeHysiEVQDB2oTAHUIRSusEpfzAnuw ZltjS0pEnFTZpoZLGqDVxR3zN65+i+kj0hySsErkSES7UDsPp/wtQZwc/Khm1ygjuR2FOkri RUONXjbu/AvpHUnVa3ZBs8lU2Kn81oj4isbTwZXFMcy5ieCqKhRCOTRCPVVSi29QKiybt7yM KTWUHODUE7L0a6unU9McUK+D7obgU7K91aZXZYBeVMs/HZjmldk7wEBXZOUaZaLi2stTjS0m 2zzap08gFusCOWhYHkUV81jBCkSx2yimrV5UeJeDRmYFtHkGNx106YNqEBFVrohXCRbk2O6R CFkYzwhlogjNJ+gVCXczEdGgMk9AT5rqlcx2wrH2Z/ehV5Ef6MMquHqYaWDbqQ+KCsCD1jGV v4SJBk3QuH1uXSDsNmZWv276SDkmbe3TQOZAX72XM83LV0nwAMAd13er6Rrz234gLibESenI tet2a8EzuYamKiICGo5lJCtHruDqrtmq2RfrkIyXRFa/6nq+1bfDeL4b1wgqtcXrpnwVPY71 HL/rjt+kWyVX84/JZCKCZi9/z4Qu/DzDYYmXTh21kVbJgUVs9jk9+GmfuVKPKzMgzxM6lrrk prRRQB8xnJEE08ZPx3Qm75cTFXm3oWd4TunQQtd0C3zR4V6s527jvZFte5EMTDfAA3j4pPxn 7MZN001CLI0zf+tM18ufNofsJiSX8VTG/bpW2zif09jEFEKNGg8AyGKYmutjniaeprOz3b/y A3+m0z4fGMZP/KW//H/+7V8SkV/7lV/9j//z/9Qy/8g3feO/+oM/+Jd+5EfmeZ5D4GVZoJIC IBbvywpAlmWaJmT3S5abrLNdWmKS2pEFRZMjnQ9oJRUlJZWiYXXhqiweazQ1tHmmI1Eicz+S gv404qtFGYjxyaNHUWOKeigREnVZOKxoyetiWb4CFjRAhcGsFAgBxHZcoADw9Mn+/nnyUMxr NgNe0usMohsKserXOYMLtVBjnRy12wfSplv2VW7wxH1t4nwS0zPl9pjCJqGPW1+64EFFnILH yUsya/ZpkRQ6dr06hACoWciXXqs5fUb1U6HZ8E/deKs4B2swtgJz6gghhS7L+1cBnqbqzT0r oNkFdy7/semXk+JbSEESIXkvR4Ndl0gRGaysyFeYvZzgFOiqNbQUgTz0EShk2M1a9TTVzEQh LJLcqJdoabaASdHsPNumthyokdMpM1EORg0CxaiIkUjNKTxz1eDYGX6YiIgCnPIszXS6WkGU wo1RftYFs6bT1jSYyx6x6xTdDk06SZZ9MRELT0onSSSatayrP67m8onzfKpuYAuzcfY/q1no T++dOiK/9JTVtvymx+t0hLkqTls8QKskU0CI7NOutRyR3Fj05J+IU2TbDPHl3XUMImo3gtQP DchXFsoskBn9okGeaf+W3qlzDRG0F9frtiVqZ8/OwzYmKFuzyirpHFLLEtUkmoMaaz17VyCu HXSR/T9F/dNonI9hlTCh4HWCHV6rKkhj8gRrhEGhKYyq1RhVAxM4HRtq4KnVlXvq4wdi3pM4 u1gKRBDlvOPakWZbAUCVJtCCyr/ZUwamMA35RAUQNrZ8wZ/1RDZbRcBBV3qnFf/OeSSNYE/k 1M0ZhBqxvz13GTvfDTC4Pw8Us1TMa8ffhKCn+K9c7duYPyoa1A3wmPqHdAL+NJTV2qxcc4Mk R+rsCvWm+kjQznbPyg6HxfBe8XFHifVJEJ6jCm+MSH3vXkxSZ3DwXNOKAnRQsOaiQo6Jqu9V c90AuW4xxxsdqGHQtkKJ+vzEhGdemipsUPFWl62hYTdGNgj2FvpRTrPR6UbHnl87wNxQrUSz Jb4V6SyUK7F2NeRQQl0vDzRc8WF2Nqo2rrqITRXOJ/5Bm/cyokCOoAyhI/ruJG7Yz0P2H+gv MWUzt+PA5+aJIY0kVXuQZ7tNYWU/GtUpIlKZVftfhUl2v6YBcgXgBBJFrsySX8HQ9hFREoiS jXOx+nfcDpmnRHcikiuvw6u9d2NsnSJa4fXVpHVA3MSS467pGj0mjRev+4bH9EIR9udJOgah HZm25J3MTFX9jefZtso/v7Q5YE0BdxxZPCSP68b7Vlod1os8AHjGtLnttoZwOmQJoOluvBEa Q9frAd5H0PWiLoBphG0OYY6L/zhxwEQcAjNPzLvd9I3f8s3f8b3fM7ZnOX/3k5/8tV/+lUeP Hqvqm+9+8w997dd++jd/K0pUkUcPHz59+vTu3bv2yXf9y9/393/ll3/2f/7pZTdLXCiy6X+T gJuN4kVlF6bUSO5U/SunCE1+DJC18SZ7KkDSeIY1c+foGWiQRdRJMWSjedk1a1Mq0QuTN1o1 0cjKTwTWuMwLien/hDWyLpNChAgqqJtbC7kyvWXmvFmEgABlgNOFGjCBVOdlvrjHBATLHFat kUcVcLimeJBEmpQ1i+ksaGmbeYMQAY3PyvJENRjs8q+pzatmnoF+FfGmVIss5zcqgDlCOWYl dtFs0jkRkZrjVCcS+LCcvuZiydttEE53wNigIFsx25GLME+AEIXsjiNZ7AKmoLaqiu9Nyi5c TKOqgBKTqlJIyhZWJiFVjWyqb+Sao4XTCDH5kkHZaamjCgNkQtmIqiqtZWfSEDiRoHCuWWyu DHenJFrNTLHenSRbdNBK9YJYWTKFEKUTsrw9ASQrVBCXfAaZhl8qh913w4slDBt7BJEqm117 eSIp4rl9Pt/0Itp4nsn8MDzXKKarh3PPkjpdwBYr6FXJltMR2pFQdtrntIczR9WhlBhN0cwN snIboZFSnEqu083B251RA/D+85RJ4KlxsIt2//qE8o0rVr4q+NDrUwCYK4wxxRMjVY2MTsYG DQ9TZmO8aZGwlUrHk6nrv+fiMt6o5tW1Ra2K9WSimw/eOAd3hZuK1TUlIlYVU0xYFFmuyx2j VwVUBC5ufXVNOXtkWvXRD0A1enxXjkON5apBCImCP2jcTr0kjB5uVy8vU5rMEyo/PAOrvyZl zAuRmmlNuzT2f4Tzm6Wu8pK4niCsaMO36ul61eGKSqx1oTAhH3iPWkbO186Mu97WQb+gNPJ1 L2caiJRigKgbVHXqJ+OSrdbmMhWk60Gej2jRw+eNV+fa3r6w9JwW8caDGjHSDSp5p1JPVobO H87Z+HUFkrdeDuTXTE2n+80nAI7ANgeWY2zryJUrN6qPTCeZpn0hnZS2CPT/z9PqtDwPpP2c aMHWmr7M3EVJ2riTbFijeoDRFSBfZuXO09SoX1Pwd477mD9IU5YiEAIcwjRNFxcXf+aHfsg3 VtKTx4//u//qx//3X/gFZBcZBPoHv/b3P/bt/+Jf/uH/QlS//Tu+Y7fbmebOKv+zf+7P/cLP /fzV1RUxJ09Nmp1bp1juiDHy7uzaOYpq3jayHNioA5AFCpPwoBp5OMsxlatZfJMWN43Zoi2K acQazK46MZ0FkhjtAi0Dn73k3/q93RTw4EzvTHr/zGwvAUAUsmqny6zLIoFEiBjCGiCBaT8L i9zhALO2ohyB0CuIB0rW2ES3f/pRlymqPoVtaHb12GayvcVM1FgHWCLTRHKyXxGACRYsThQg REnvDCgo2K3kHAa9yCp5NBukXYtiN/e/St8peSunWSKQz40NHtqYXaQqWnTQ6QCeua6vAqq6 7GcACF61CqC4xGlkrXEf1nGBiJVp4gB7UtIDBRBBmZigJgYyWBTp0nW3b6tCJzvEyEtTjY/y /oUqQjq8YdVIyoooEQDCEqMCMa8vs7+kJiHplMtyK4LfUwBsOzghU5UhUBWBiFlAj6m4KOll 1HTykg6QiIgoAIiLEpFy3npUtEEMIhs2AVqcZkQCFCRUnIQaZgkgSsHFirGCqp7tzlS1RGaz LolGYgZUJSopoTiftlsPqhJBqiKU8lNvnx852ap5s8UTmZjhkmURYzbKn6gS180zrfUGTvLR YF53e4VROpHoVSSJrmFdAaqNaqvW11tke3uYpNU9asIN+osWxr6RbI/fJdQN0mT6sRhUhxAM ttXpfz3qiLJYd9mC3uYatuFnXF+vy86nU/XqQ4MfarVOIe77M02T1iv5FYwpQFUlohwQ2k9e Mbra56Kn00E15t9HF0nm4jn77M4uuXKJWRYAAbX/eRgUQOLd0roBFjKtqjFGQQo1O6YYI+eU UG6MqjoxJWYmhbNARrre4iARL0mBAygHLbBPBACFOi2oIMESe224PVeB2I4AiewiM0jNSiC9 B4slnX81OpvNaV19ibCWqWl1yvlek9tMCo80vCm93U8qhpZuXTIm9/xuXtc1EV20OSCxFwZE K35QdSOyZhzbbfyXZGrY1d8hUs0sexmXant5TKPfV6pabuSs6jLUIax2QdfH26WyWVrwuF5x Uw6QPJoySrr6iXngUKiI2CIbfx/IDGM1BzBOhUGCfASempAKP5qnKP3UsOSHCEcZ7KgwouHg xCO0Y9C7OopDKeZHL6SN3csVV9Tt26VWI1l2a7kP4fn5QgGNt6wtqjI364V242MA3Y6OdKRn ZeB+L6eSBCCaGYHpmkU9OBalV9t0n5N3XwXNPM+AaoAfhYOBDY2a6tbZVS3vOQOrOZl8uv2Y 7ua1/S9Q1M2VZukjkXsvevv84V5gLda21UGvxyH+F08TkcHJ/drUbDURVYj137Y+gt27tn/W Huh68W0o6pgWH1LCFyhyeh0XpPu8zJLRBCLS2IuWycrYudjyvyaKQUBrLhXc9QKfv4pdD+Sr SjdS3ysT67ppXe0hZ2vqdfTuPqkEpfBj9WcUnmWrw121p+pIVwjKwfLdQfi1vdqiX9vwdqI8 tZHG/Z5yNoI8q9OllA9X0EVb27P381p/KUOFp8UI2erPMf08ZrxFtNkiozdo91nKn5q2DDK2 DT56PD9C2rW49FAa9BWHZqAeOBnzZLSQ1bQ9bbcTpFV/UAmlqTZ7brJ6kVk3IuIQdLBXYoAD M3OYpjBN3/E93/36G697dlNE9ldXP/bDPzKF6U9855/6W//b34xxMZZFVH7xE584Pz//d//9 f09E3nz3m8uyUFYDMfMb73rju/6l7/uvf/THZg7MDObEjSamkwDEKBRCD/eq1K7cXBSU7UUe U0xlXwEAmbRvU9jMXbbBNBWYkhIQLSxg5t1sshTgEmVQAYJcXS0Xd88Y9HTBz/3qst/LZx/F 330UZZZv/oq7f/QjS0SO2u7XwYaoMOfRAGkw9kShuizy+MnlmbHmMXt7yBbElR+TxvkaSSNE evkNZjs/QKYX+Ux4Q3FnIYrWEyiL+ubq7OUdRtk23AYXtYp/Zru7SBXbi29r+6CxkoZmdV/u /lryzF/HCBb2PWsM0JVkKkwMYyJWtiiUlOcCGUFIvoJW8IjM+xKUqRMYNnpKpOZSnO1+NVEE wCxEpBBSyjNkEgOt1nmdSGnHMFr2dsk3VizvBYRAAQBPZhlNyY6tChtm0B8YUJJ8Q7dg/8Ly jrTTvhWQL+yZYHT1AFD2Cq+mzizUHcMY+TnRfIRlfJZILJgnhGDvRJQtTKFZOW79yeOwiRQV U3/k6k2pzUhPE5CP6d+NEsNdZfhCGtJJIYEObtLnnlabJgVrA/aekyYiM2n1+8iIif3qHdFs NnEdDsm0KD23GCMMOzrXUxnEERV3siVK/ekTp25GJf0+ZUvkowSMA7zU+FOq6joAKhyhajrc ixtf1SsrJQeIMW7JAIWVwhGGw6uJFeB627eB8FaBlX8SYhqFkk0pWrMFd0J1yplRMHKVIlKY wfdx3iFHkDgGgB24RmhT0rPso4x3gG4e6EPz7aAfHN9p0Nytdq/U1lWy1fQBHmC126sdOPxn R18OI8nMIGVTPmOpxXg5NtcxNT8RcNvdlVOqDbntYkhHEhroGIYVO5rUHwXq2cTK4dOatC/5 NLCf/HUUQXKgwNChHDDj2dI7SKeOTEfNxumFu511bT0ndeOkdLOaD391672lwXxgtcXjWehV FPcSpq1xddjS29achCFfZHpGvvSk9V3JPKUtev5G0B25VMfbPMdWb5RGEfjlx9s3Tu/U/I80 /dnr8enlXDAPS4dH/Yz7xfNj468ySDSWVnmtsebV7TBZBf5LZl5izP0WmJkDEYBpmoj57Pzs T37XdxZ5SUQs1tkP/4X/5O/80ieh+o1/7Fv+1Pd9z92Li/e87337ef+pf/Tr/8cnPvHzH//r P//xj6vqH/q6P/xD/8a/7tVAzPyd3/e9P/kT/83l5RWFQPPSQYKqxhjN2oKqWpkARO3Uxyvq LQDmzbnIKpmRjUpcx49SazqR5noLUwFE0ikpskzfpMTFhR10mR89fnL/3hmR/M4TvP00kuDV i/CZR/J0pv/2Fx6eh4uv/UCMytlGKKXk2VlBMEuPxBVTVGF5+ujJvIjGJc6hrndW0YKLxsFF qoGqrKiYi6o9ipojAq+wMPvB5GQNjRBrkq1NIJLynKqDKgUMOrNzTCLyukIiykpAKtUm2SIK EWV/kSAmzm7SgDaEpip4ZQcUj4EFVMbtR3Vhk58vDxs2boGScrYQCZUvcQbvnGJGJWfOAlWl 6mTUW4gvy6qsqM7yt/SB8pXwfkWsg0Udikah4Guue37c/NlArJkWq05oNxEAEvNAbqBjzBxi trYDMyCa3HaSKPnO221zdQYpKgSiaItMrGUYWg0mtQAS0gp0vVZVtny3sgUqKqhTdTuafLHm dS6CrjuFFkUkIjUnuObhBOmwpK5g9vRHRKLiAZCIYOoVHtVVqdjz9pJxUtCP501QT49AcqJm 7Zb4nC0J6uTF2ujP1jSsnPNlJd1qtb6THoGEsHM7zqGOjDSqs6A1gapW6PNXEVTrIkm3RFrK xsKKbH5qGJL81vajgcP/ZTnMosHcIi8qdXzprY5XkvaPUuMtttyyuNyGt14diSxNMZDgIjl1 Lt1HTBjepl0592el9jzyQTxbV0BbT2Llu3KzKqpKZheZ8faQ2OcajRwl7bRWqtLBBknhcOha n6FgKnebiOyeU/8EDEFKtgheG2/3Ukknd06fy6gM86MCQB5WPe3oNQ4DhK8SZQyQ4HKaajUx Ic0n6jzDAn1PDuxHPw9d5ysAtGrofum2lebHjHElXxsDWvesUFR71fKi5lPV7mCRqBBINMJ8 jqWDa0nBxQ0YCdn/gvnAJeMswZq8x6A4CHP4RJC3gXdqh+y+Y0un7+fH7S+kgB9uAmzQud10 KyXXsjqFt5lK97Zo1oFP8Bx0Z12FY1vtn87S2ZVMNykhAMT7NXbjW3Uz3WfyCZrQAxO4OUsj I+o+CXWwlBC777+fmY1G812fzMcWw20nldiNR3u/VrvXL8HBklvcxTGfkLsP9OxpExeNDWSp o37l+A0q/EfWCuQy3RU2MgMq1ZjoS8W3tt87PLlGZX2dTq5sC5+2+2gImsSK0jxdU53ZPm/U bBcvDnK4Xeu6xc0cTKsd2AKUZ49Y2BHKw2WOANitqk7tKBVWBI55OCjAWA99c3q6B8HbEjcL cXwmJe+NqU/X0Dbe9ha7Ry7x9c25+p8/gV9L146ihavra2tY1u0PhdrT93Jfar3e8qh6v/QL daWOTdO401TE+uGZsImTN9UQwj/99V9//5VXit7ZjAf/xs/87Cd/8W+DaJqmx08ef9NHv7UM +8u+/Mu/9WPf9r/+zM/+5I//xDLPv/iJT3z8K77ij33bP6dZfz1N08X9+1/7Dd/w8Z/+adNK x9xu6VR5L5fsQY5/z2mpLhoqOtCsvfLsqaoCNGdMjRaTFtkeAAuUi/F0NoIQBJBZCBOBwUzx 6f7S3B3/9kMFaC+6C2KKgWnH/+XfePqR7zx7425UMR10pR+Z7k6mCIUFmyL93NtPJp3nRZf9 VZx5vEAKJiUQAkjILvgmH7XVOy0pK4nJy9nYNwn5SW/BrNkCxRir4q/Z2lMiEhAhopnVRtYi qj6kUoEK1jb5FaIkB6azS7wwpyJks64Es+A222dTPacLv9fh21VJck2e8vtTATBBVQNxud1c xlWqMl/Dmnn66yMAACAASURBVO3UAkhD+rOoLy0dg+A6RN8JtABEhTisYpB1hCLqLrQiG9r3 TVQJhzU5Nmc199GigERRIQpSFzEqARpBwQCjKH0yHDV8sJqvafupze+mxctaJct63SE4P2Ne BjbfQL6g5plAgcDaKDFPxWeI90vLoZ7ulIYimn2UFT1szhLMj7b/lShbe43an1tj3b+Qbpj8 rlzVWN16OsBtd+1qDn8UB0Vqfq4cXAFpM3Kmzhgg7YAijIiK2yUuErVRyPwkVAWTf7ImLC12 BStbOHJ26NnQX4cbfU/8WLQeZotmSUglncw5xJHGeEDAOH5ZO+QjbcTd5BvKhqxJuk03clRV xesd60yaG6uiMUczbylruzMlFRwLwOwAmnU/OCJfg9cglFJdmXG6tlop5Dek8wa1TNPOIE8a Z/k80JaA3HQAmUxXl1R9n121noYOEJ5KuivVfh62at7qlep6yaKwWCXcY1WbChdaqaQfY6PO Xu/n1ssW27C1R2oMyY2S/l3yeZYm3TNIzQW40sQBUNagmp6qBPBSkZgddSPv7nHOzeI+h0rt ESZalA4jwzKEURpmoxnRdWTZk4lCNfxP13x/o3SDmp9TZ45BpLSikl7/aSjWo/GOIRzf1+rp 9arPMg9b4x17vvXnFos7ttJ8NRQ+GkEdq5g4vuTBRm+HX7oBeK++oxNCa4EGfsqvoZg6HUSP 409wuPF20/PmQlfTOHxjQfW2FvhWUwe6xwDPFhv8nFLHm1X54uAn3fw/1x4emXw3btClm41i bPRaPHxkP0/tzW2twm3B2xahOVB+ld3d+nC8i3Y4FUPSLTp1YClXEd1kysHMyROAaZoggmKT UuwNQMwcmL7ma7+mqJ6XZVHVeb//a//D/6iqUPzpH/yzX/XVX+15NXv5ln/2o3fu3Pmx/+yH QfpXf/Inv+mj32oB1qwMM3/N1/3hn/vrHw+BmYH0rWb2ggAETjaYJnbbALgNYaFu5JW7pTTR 1JQkQFh7Mwrkec2OFKEKlVRMUQMlO65HJuI7Ey9zNF7iI6/RJwNkj/Mdf+X76G/+amSix4v8 hf9l/uY/ePbRL42SrTKLvkFBiEoBhHQX++3PPeVlTxd35ssngTDHsuRuFMl3mHVXiC00YrHa VkBZVUhZFVCeCCoqWcqmJE57ROjmEWm+CZJjzYlIhBYBj6wxSof7NEw+MuSVVOohyTeOiRSI SCeAClM4m8APEJkTYgVox0VWaQROW52cUcUwVCCkPJqygpL8iqCoPBjsdNwKgLRuNs5WvNkV EYvWK7f2klX69WSpyFsGKkQEkkzrE7/OnE4irKcFtFTN7jkZ71f5sLegzC3Ear2b7kyoUgmW aPZZHn6sgLKqwQWSE3WLzqkkUK1HNBGg7JhCm3EF/v/Ye9ev3ZKjPuxX1c97OefMBc1oZtDY WBeEIlCEFGQEKBGXQAxGBGMIK1448YrjlbXyJfmelXzLf5CVfIoxYEywY8cIczO+gA1BMULc dEcXdLFAo8uMNHNmzuV9dlflQ1V3V/fe+7m855zREahH2me//fTuru6urq6qrq6SeD6gUEUW tW7toG6RO2wj5haOcSr98AUKUuUi8aoSskvCFCwWjVCaSVRixxYy797KZQCJwFAmYrNuEdLi mcfV60S9BqVw4KJS1xfMTQshU7aZqjxu7diaL7C56/bd6djz8WUPxzvqP3LfvESQ0qPSsRYT KwaXtbpQsvvnjuFZr0dKy3GjItffVRLhxhJrwqoRnEpnGoNLneEzVpiD+FKnWGEGZQBBinp0 sGY1zK2+++tzw+Y/CPWoiExvqFyNlSIYMWhez0RmdXfxMuVsOmhVhRFY8zsVTt6ZZ7RipmbC kmpjntYYo/qBe/w0m2hTtDVTS/+SSmRcVZu+8ix0cVTcr+DJXF7yKfYDieD5rkPBzvZ5R3/j dKSwJ4pvsF0d/TDExI1ZKhr52kDXlr1gPyc+bOWEBg85jUco0H61I/dycDND9bIi5ktgx/tC h3sLkcbT9gch9b02PjDfi63M1+mcR9dRt4LwvqdHO/q+KpBUSGLhCGHI9ykpe6ITAsCC/2qx He5ZhZgJVSVRwF1glexg/hmCDKgqEcy6tpDKxuGYoQjQfH0sjjgKj+qcqkeViHMxfKH114JQ bQBppgC9u6mw8YcWvkeQ1C43ujRD1I7guyfvymghniI0noHq6cJ8/Du65FM/oOUBWuC11X34 QNUlFD+kct6WV1occuo7x3riqi/gUDlxsZRWGIsAf9f3Hfzb7kHb8dW9QKq1eZnnsm/+HTkN 7+O+CdgNn+ULMZVwLdJGjseNZUQX4ez38V6gWuzXAXgYeelujw/5cX532z7HTw7h0hfUGvdZ mtOcQz65R8AM6Vg6c2xH7nWKcK69x3S34B/q70WD5S/2FbgzeI4sf7dmcW93Bn7ykKoOId31 lvshMCwCI0sz0u9HEfKxF5sCAJU90a7KoQYkdBGTKBERETO/4lWvMtVz5Ro/9MEPXn/2ORC+ 7rWvedObv3mQCeufb37Lt73jN37jj97/gevPXX/vu9/9jW98o/1q6uy/9MpXMFGKmk1VDVfg 2zXbfdMQ+SQzbZ2XEaAYCJdRKwOBIqhzkSHrQKsiw8Ov20bHIChdaOYTvr3dZuDGVh+9mr/n NSc//3s3X/MYP3J+8a6PmZKRPvSpix97yymQxX3wuoUUYP8IVEgTSL/43At0cVNPzx46TZ/P cvWkD/7G5FekMxGRQiAgEgjYXUZkVhiDlJEBiGZAmNhss5yai5qRsdsal5ThUcg1ROtQVXfT oSokWlQfdW9HlcW9dLtBbfoJFNG0iSNF/yLl2mYJhMjmcUaZ7On5CQjs7yBk1tn3KSaYQlGC 5XTzHFLxyFxPU0OLNs5FdRj5ldpZAFkBbecotUAbsT5V79JDPfHD1hYA9Zgkc7k0vquqiLD6 9QUCWdC8wT+1r4jAIjOzqvtsEajEmF/kCuiqnEImFSoOpjsFEDHVMahS6xzOxWmKL95ykG8j Q1874o3KUKfWdqFdze6gwC30yxQUH/RgsmOV5tq7DCk5wqidjPj9Yj+yqS7NUU5hVFjiPA5T PE8Hekr9SrrD1O0IAC7Fzh6b9p4WaCGVKJ7KB+6BeloXYfb3gv4xfmatYXjRKMBU5/Lkzwqt HPAcfPrbMwW9z9piH/puqyxnzdnVz4XqSnuum0DW93rgF8cH62m9tpZvPSE4Beae5bKQuzqS nPZsXqEoPNcUf4Glq1iqqpgHQ4tsyko98w7GnDhKixvoetK1hoeNLP6wu8aFLa/PjDnxJw94 GIwHh2Lzrs2X/FDt0uysDXT3eVikC70bcnpWIVS5U/scMWRe+bz7O4oNkA8ALnR2vUdGNxKK ozqL3AgwswWgzqqsak/7vjZqrAYFD2bq15K8DBv7F4YiQjsbK2PF67nRgl/COMsdR7SknosF 5ugxzONuanN4GtrdW/ka2PciDV1e+ynk7K9nLXMR7ZeaGD/ZUf6upLWaF0dgBzzDr2uotRsM zMjCDnK7yPDsoPxHIdWxrNSxU7O6v6z/OmQSEXkInIVdRssN3dm3a/26a6h177jQeRSKsd2q +hgcDd03aUDaA5n2L0lHhkZ3gzrw9nVLOhYXju3pgaXvhwHcW+ag8iv5a1NzJ3TpkHouDc+B O9p8u9nxYYx2u9jcIW3N611sa000C0EIi2BDZLHf1JRKHoiV6sVIevTxx7bbbc75Hb/xm//y l375sSce/89/5Ecef/Jln/3TP/3mb/u2uSRcu6Sq3/KWt3zwfe+D4oPved83vvGNYeHRoy99 qcdiY+Mki703AGBwqrvW27ideJ9nIoG4jzkAcLnffiq2FShRZe18O1quiWYi8xTRbMPLDq23 btzQnD/2Rf3Tp+WbXibf9zpcTTdvb/mBM/7Cc3Lr1vb73nTllQ/f3GYmapbXVOdAkZhE9fr1 m7i4xZuzh66dTzmLgBLlpn4nlRg72t88HKLx+cwDGpACJPki11Gye9aipkrmZhmnrrRVgp0w AK6M9uE15tLc/Pk1TP+JS8hvr6fNoK+GBk9pzHrP7DX5/xQMmMaQFBAlc7udRbl5Mq1yps5V M3F0SkjKmuriGcWY8Kvr0GHeNjq/HETEUAElZvQ2+F1tYRy8TpJqMj6UDMPYABV1l8d1ZGLN 7Q8RiGS/RaWAeWSkokOxYyX4mUH7NiknFRIVhWaFgtRs6VUUUEW2U5GqY8kIC4JQ7Q0EJksO bN+axGgDUseh/sQVn8qv7HGiyU20ez1dn2rsImXiWjOBUB3qqCYkr1pJlXJW8+I9Sbv7XwZV DA+hFlRLySztm01jl0+MlEiRXbVQyeYKOXdR+eAt7z5UVR/vsexL5eNsIakqHzOm1UZ4nnbU MsT18vISKExVwZRa4qLYywo0MlvS2ldlHTXZQ8quXhdUPx7CoBWrclVVNNtA+yypBeVrFLf0 3C8vRQpg42DvWWSyiKXWjbLv2IFZG4ohCGEcrgpW9+fa4M3yB0kecOPLeq/CCSJ8xVrwROvb Uv20ZIwm465cfyhc08ClEbieBPdfcP9eGcdustpXa8qjHmEq47QalVuWFf2rM7IPe2vJqhqg WWZ94egDuhBXXS8/79o4KSOc3QEV+uPqruOBdMfRcK5ypuJHmAtamotFBn2p3eVxHpBnxwLZ R09Wf51XomRe0UgNT9VZSlhw7PIOuylhUVX8ahtUldmonwDgRKqqk9Y7EM6FBgv0+JQ8Hzc1 KlMv/cQFU4Wb+q7FPKd2qwoF9leYyorkO0fuLiVaVubu4hLmGLW7/LHwHNj0+JPNrzI8MGnd 4PyWIwbSGXuxlClEOEAZeghsx6Yaaj6Su0tMk71UsYhCdJyWr6Md9N46Q7ur/FVB444h3wEw 9WbpqnoXmbE1pAqXP4tNblmG9Svq3kMXYuj4rl8up3opVAVFk7bMs2yAbX1Y7gMTYfdGPRvD YkWwn07t5SoPTEfVcrmBGzi6mrkMz9K54yXSpcdnkR3aW/4+SXc+dHc4bge0Pq7uPXCuwLP2 1VE3gO/i9d+9o30UXi0yk6uFA4GtxPYQscmlkp5DxpFjuGmtlskyMa/j3a0IM5jBdHJ6Ok3T F5555h/91E+LyOc/+znebL71P37LP/vH/+Txxx+vqqXaf9f2qBLRN7z+P/yxv/23ATz+1U90 o6B6dn5OhEQLvixVtSgnZyOyzmr7tyUsTPy15thgRUvn8lVL8fa8wj3OEisrEZm8bfaQdPvi 1q2Li0Tpw5954aUPnL3s7ObFVs439F9/6+bZi80Xb5y+4iWTImeVDW9EYUGe6h1tJNpmuXnr FvIFb04efvgqINOkF9sL3VB2Y3BVEziVQKZAcTZfhAAlJWJscrv6a36UxcxDJBMHhxhKGdCs krrL+lqUzuJ9Iy2x+JjZ4iNixpAxkAGKsRoGUar/s0mPhnjmKiHebor5REqYwonBMNdaMKZN 91zv0+ewQnyMPJK7luVX1TpxZS5uhNQDUwfEhXkCK5mnVJCILGhdq8A/79HYgdKW9JZxDq1q 1T9Q0HxVikBlJbfp8BsPOol40HkoCJnszQItagkFZKcmatefzUCJBhhmYv9iF7oBjNpne1Gz 1QeBqDi3bSdbqkWZPAvhUcanjidr0wCrYJOSNWTCs2bJKqbtsp5aYSmW/mxXhIs+jYTs2mi4 GAD7gEhIqJhXu/KZ2VRq5pM0+pIWgFlFKebsSaTVMcKhqQRmnLW98tyT1HxylueXVbqL4uid p7pgNSigAVCysR1JRHVBUzyPj7VhnYxYIpftZFGMbJ8M2yn6uIUVGllAlrI/jdoilCsIS+32 6uPiwsjC8RV1dIMwzmAkpHcys3u+NWy3fdRjIzDWxrGkFSaMzYXQGgxz+l8PEQHsPYCaT8mO kSmRIggQQqoabFWVQj+XmnDVyaAqqvQwaAPjn2Oa82PwG9C7tMlKUCAhCQkrEykFnyw7Puxa Lnt9PUa0Y0+xQHlc/PibqFNcMB2oeGr7fr8V7sXPoZI4Sos1rPG985cdxermu6PpeW0LXBAV tgKwgbMBjK7jkQhS+QVjNFRFzL1MOjlRVSRzA6+iHlxcVYU4hjRkRYaSZCGQkLCSkJAki9Xi UUMI5L7YCw9sv7B7ZyerV3OkJ70zDQd9ZfzXMmfpyAPXsLHeVxtWTYuIWv+khaOy8CEiPo+1 7W3RvD9hXG6r4O2uczH/2HVKLnbwjo11N+YcwicvxGAo9Kpiqb1XznyMSdBul5K9p33uyuZw qp04HyCG74XfaWyfDyyK+AtN7G6uQm59t54WQaDdqI75ETObRD3H8PKyOF+Hm5K8mOlANdnl SE2dNO2fmOVQAeZYL3+YKdR2zP6oNbqPU+yIrdDL1bO43teeO4BZfD+kfEx7F+YhaQcARm0r RonqHPeG5z562OcfdqTS+ItdFGv21cElY38Xh3THEFlfctDSrD1h/LwuVLtaf+QPQ20ptHtU X6oFtNbDRVEhIhVhTjCUap8piPI0mZgoKr5/iCigpmDbdyzsDPpi70oTpdW2N9MxBMWE2CLV q6qmomBVVfvF+sSyUXILz6hEqwJYbJQBKvpRVY8y62K9CEhAcuPmxY3t+fkpf+Qz08NPJoYQ 6clmeumJvOwasuJ9T1/5tXdf/OA389c8sN2qN2N13txup+0EbDmdPfLw1a0qSC6yvLC99dCV K1mFtaqJisqIN3UDZxCgTAyVbE4DTEhzKxQGVFMdZi2+BQDgBOMc2YskUgVpiZerXZgsFMNn 18+xMnPHoDS9Ro957WBDoxRUsSWl0XutM3qciubb5BfxufZCIApH1EyA0ixyYRWRK36AiYgg 6rY7HqldRUwtqYKKTq74YLPZdsWiQdRq1/IiBG66YDK/5wgK7jIeC3IgMwcXiMioXsl9wM2H rBFBglk6ExElM5sOEFHB54K0FqYcjCTIJfxXFqiIj6pXb66dhVRVoALXAriNfOiFjQpMxPcp azrl2qkyUUbCfCicN1RNrpMDMydmZkIRCxOzuegpIqgKgZDNMSQREoGI2Eygsl2loGQnJnUg mFTdklpV3YUQYcpTDGteJ0aUqgNWuL4MCPShifQgVrGolNY/ImJGIsbMCRARGc2dtmLO5onH AjNiLXX3HQazwjOwEWJoZq0z2Z0Ge26nHHPcfg1IvKElBWKp1CizWX9yDedYn3OFy6wXy4qt uRhW3o/ctVfYgXJQOxKio31MF+ePhyQp+/S8D27lJ2JW9oAf54Ds73baZ56vcp4AmBoGvkMZ 6HFfa+q2wa6qzQj5KZtRPC6qw2BZTEDFJUW4Al+GjOuzCGvmOF5Vp6TduojLxJdaQOyKM8yb zYYnEVIV0Umy+ZDVxICrYEuP2hgOxCc2VMvwiH6eaHGTAip+lgolQ6HEaiICR7FdFKBlfF5L hg/ztEknpQQisYkXtOZticc+iFtPs1gnrRMKVSm6Xe9skUv9lBRlPJkpManaUZuV8F9Jsdls uJybdCSiI+0tDaPfpr4ULjl+WY2NIy0djlX6sSOTIoEsTIbUsIRzpBrGioiqvT+FDdpM2nxR uQvq9msqY07oRMRu7+45+EKfQ9saNsX+Vw9jPUvar9/Wo32KZu11yquW7Cv6ZakK0378Ojc4 4ad2sNTrpTS3ZdLWIFOGeBgMACBGMvuO4nkjMVISUs1+Cy8rigLLTos1C6toMo/PJAAxlY9J fP2yagZzDRRMlOoTiVWzMgGSCjerWq41lj9NwV210r4bhQHQoLrygfG1wGXEqDjuG9f8onwB b8YulUGgROC6voqcYkyzWXVGD3mxwl5bhyrvlHCmw5mMpghPYQ5BIqpxl0eHg95orL/6TNEi tXXYEvvqfZQC2EDeF9eabQfoBMNOlGTtpVyLVzKvqisTC2A5ramMEwisKlruw3mFgtZufNnB PgxwFjJSRtigK5GIUHh+y/E7uYoSDxTDk5S4igkEJrhER2O7a+ABkBktaWOyk0+zsfOlIqpV KdwbQADdBHQTayTUlRTtHTJV8kIGhV/BMmbfzNmIiYpxUURCnV9hQTl8NGOdcf9qSL3EV3Tr 8aB0iHap9/u8q/4i6Xb75rg99O3WtqIp3hyGHWlZvbWUj8JF9DCv9cVSpUvDb4cw7nGNH9SX vWDF/bQboshPlOZIEW9YajCtK2qT8DUDENHxhl8sOV+qzBv0YcPtKeZ6FIhPFDZkXk+PDyvM 3AGpoueAP2vjFtmoUHyFOKsykxTZ/zCFO+kQnaU0Os8f8GpH37VQJz4es447gBl4/uXh6ov0 /ZI9T+nQcl9IqnhL16CwMcvVenGJoDXpz8W91qnC7mu3+TOREKmIecOgwuAzMYNeeP75K9eu XX3ggR/80f/iV3/hF1/y6CN/5W1v+79+8qeg+pnPfOYVr/7aRdANiPf+4bt/5u/9PQDf873f 9/Xf8A0IqH/jxg0twhO1bb6cWA6KbF/io31W7FsVNir3UHaaTuMJgnLhF+pWX7miUL2pqYMW uEkrYCLanJ7mbZ6Mc74Qena7eeTkQpSgmhSffOH85387v/OPbrxwKz/1LP6Xv8aJkUPUbrm4 UAhvTh968Iqa+2LCNk8Jfs+x+K1uT1VjcQUKISWlDGFAnPUVynBBUjMgIKBcQeJAekSmOmik bfRUCzPdnN6uJs1QUVA5dR7sJUncl7MyubWKmAXWvCoLWhVVKv5SVB4otKmqTuJVAv8kq3P0 xriLsroiYxNcjgCwbbE1ZJbR5v3ZSPl2snMzZUogbBIropuL2vQ8WUMxFoSWVP9cFBQj+g3v 3uuAnYlYHbFZ1Uyt1W1+4igxEZJCjdnIF9ssWaZJRNy8jwjMkwAQv4CsrNCERGTB9/zcrJDs XX3fkeqqXGTCvNoZoSVyba6TpJVmnWT5lqxEZBZ/Wnz7ZBsjWz92cFf7Eqoxi+9mHzEwdwis sIshOZcAWQlQEdfI0QS4p3XS7PNiiCEEZHJ5d9SkhGSr2JXAgzi0aJFa6RTNDvxqzjCKMk0Y VpwBU6OWmsazaiGDPm5YrfM0KAeHdLggtKOVS+DhvUuMFfUSPKig05ziZZ6Kx18zVDIdXycw 2FEIiapCU61nsf6VlkUVRAmiEpCizh0T2SYxTNb8z+HF+kugxV/X5qu22zCfYY4SiDqp9hDk ma+LS6fCKpTzRVUU+lgAEkVROd3ztEvN7bwNYdhJ52KM1+VRPQCAUI19TfQmJGZ2uam4hWq6 5lRGt+qXEPajCE/5Y1H+XdrZ7QWrCENE4FSYugSHm4lGv09r70TdrrX3GSHQXoN8t9KAsXPs jcqRSxC3oz/Z2UmdG3cX5/UUPFpi5+rToYBpO6OrjTLYREyqpCXCRCISEhArTzqZiaPZXXA5 hyOo2Im/S24pPE1VZQ15EOkUxjYunqzCMGsOd0NnAGcd97s5VSyiSYd7h9ClpsbF8reXS/PP 77zOFzMFaAUl6OulPr8HHbeLoWVfBrDDgH33lrQIZ/2AAkXa8ayakQOfc2Zyx/hcwny1Bjqy F66CB7Wc+tyRhqHbwWBUbjyK//XDum144aEVrWTN/4wldhs4u0XhnXEd8zQcqBzyU0eH91U+ vBybqmx74PNeBy1/cdIOBW5XbLZ9rxVDVX4qm6XR7k2/HRsESbx/LuXXxpY6stgvHI/Pi3Jc ZSCHnw6U41zVU/g3wyWT2W3FreHbgZxefR7S28IbuxH04Sh9Cdv/o5L2L3uffiyxhKJrBGHM rfx0GZNj08a1D9Q2uCwtTBmKSOCiMgGEp5566hWvehWAt37Xd771u74TwAff977PfvopJbzz He/45m/7VvQiZeRZ/91vvcO41te+/nUDKJ996inJk4ndPkAhAiENbgfKD8OI1OGrI8hoCGrJ hCg1o6DSc4MvKAU7kaNwxgCQkXuc808BOt2QqDz5VZuPXUtvfBldxa2LomAmyhei7/7YxckJ nyv9/odu/dsPPfQ9r705IRkQpo1IafPwg+cMNYcaJDJJPt3YzetuuZYl3c7YqI6Joirp3IOt J3Fss82yfAWApBrQgU0LrQCT5Ly4bFZ3OLWxFPc6bDJsQHwS17kQBQckgV3wakSqRoLKEYj7 ywDV1lVUoRk6WExLkRNMeCYFieuefdwS18N/AazPRYFrbZrVgMINTsSVzab4zaaOUDopd8pm 8qotmTl5IrtKHIGBCur4EyJWF8q7aKqgUZL3W8QAxNwaQ0WZElTt1h0R08YMW9SUW6LTJJO4 BbRap92a0XQu1i8i8vvnzN3iQlnpOTc/a2vWhTInan1nmdy8k/2aIcx1SZR74WSOtGiWK4tp 2mI/maHmi4DseMjgFMmAKERURLP6jQ2ZXYDSfh7iyEda1LHvionseoc7KyQQcjMgYqjfRCDi MnRhGJWY3eVIGWRVrSdGxYX3wmFx9I3bqG6xzuESh9OeWTQRCcZ8VAEmUEGHLZx+dFSod85S 4akjN4C6tll/GcnDl0hz9aEroA15uLJiJOIqa1U18kbKRAs3J3zEir8g2/ZQ8HMHpxu+BYpT BY/SiYR4X4So+8z0OPOKzfM8IZ5/r0mM408OrQzHourtmUcILXuxHqKKjSzUGlrtZnx9BUnh jHq87TH8yCv2Kyzu4fjfnZuONrkL/q+j2ExFoYyyMbkFsenjCMxMm2RxWYHOnMFs+ji0GNua pil2pAlIKycwCzdIAgNQlAhsIHYFCMFCn9RcZA+OXCobHXtdwV6GaFeq8k99j1jYsd1H4ptR 7dDQvOnufceyujtp5SJwa6gCRO1kgqjc8amzGedXw1IhkAfx6BjIdkMFbrWqqswANSP32lak gfWdXEGMNEMqYIzRWoSMOLzkt0ftbgc48jla7f2lKcrthXvsMqLeKkWnr9+7zAd2AuhUhLSu H9zx01JqXphxGBYdWf+haa3anc3pepmuX4u17e7IXVlQVGQeCqcyqxMHYKBUK6qZoRexzjuc nWPHpWGcAwAAIABJREFU59h255CvltxZWTSNmkPFcSwDJ8yNtByXqLfbmO+nL37SdaUzwsgM O6AlmpUvwsOfHd77btGo3fzhUQ2p31ZZIALz3Z7CV4tgjO3KCkt8AHRzfcJqKzu/PaTA2rit emxo7EZgDEz0Rok945z5TkiOxIcFHUWsLBJrb1vXbIyWvg+VHPrJ0fh8RP0Ks589ikU5DphB XTAjXxvA7K6dvyIi90JQvEmqKrnTDAWRiPz7T3zy5a98ZYT1Va9+9bUHrr1w/fmPfujD7/rt 337Tm9+8CM3v/867/uj971fVhx586HXf+I0DTJ/42MdVVRTqt82l7Fthk9OiHF/pcGVPFze8 yhDY0zyMZNVElIvBmqlmjGM18we7wmfvNLTuejnrh5LKc9eff+KrXwqhD31eHrty7eHTG6c8 EeHzN89e+fALf/XN137u/72pirPT9BP/8vk3vPzKI+cXimSaw3SSHrxyZpPBzMbtbi+2m8Ta 6+AsyXCVDsHHlv0JFURPW3a1tjG4VTxw1wlEUOWqb3L/E+34vT7ZrUvLSUDhuYoiDEV6VSIB KlNusmJraCsKtxi1oOfxAoUmmM20KoNVlQk5g5UoEaldtFQlQLIyiqdAhHfX/ypEleNyJtXq Q41gdrBExcMKgUF2Sm/3xbBxwcNRS1RIIGB2S2pxbbrLRdUlQhwrBNRpWsLdR9zlJWa2zwMm +jw5kmhGtinOlWNick8jtinmEuhLtDgEUKmX6WdkTAueZAgrZWRW+y8pSQIJhDUpawKbj07Z eTEvdsqgEvXrIBnKqhOEhMyPQZpZ0kWW3V+0DFpQwFnJKAaIBzqSyZ0/dxqT0MaqDnq1F2ou 2GnDrCV6YW2CLOAMk7u8AEE1BdmS3RaM6kqP2zYRkSjzYnCzBZFb1S9sMgHi50D2tAuY7EdN 8Fs4thK53LAPkKtqqi4CRq6ow8xFhqmfi1X5eT6eL0I6trm7pfHp6il7it9Z6IdUC0mJm1os UH8d8ucoASLf3bAgN2qvwVTV5gF3liIVQqBjqy4vVpib+WbtizceOK2t0JW0g6IO8C9CGn69 JwzZ5b5beAM6CHf2eNTzBoWiUU7b84loQ0wpkbnuCjEN7WCAV26Qz9evz1rq/erOuLIKT+tP /TMooPtirhzc7dNwLo1fIi0Cj/V5PLaZ3dz57vIvZlqjPADqSTBCF9qNq7i0e3Fxh8BT2ezB o1/tvhkcDHSPiHhlBoYbIQPZ9GdRQGtVK3uJsBWa79qOFV+ewTmqL/660Ovi13iHdq+w2wtl DsSQ2sq+cp3F973YnaNQNs+v7+i5uEWQDgRvWHR3Bv4CtPHP+IJ1fULs19r7jlb21n9sX9Z+ qlz3HL331nnnQz3I8ggSUNjFaPxE23rZXTn1f94htHeSduxfa0iy+NMh6UvZzy+3NLA3e1P0 PYLZTC3JnKiEfUcr/e6zUGbHxrGbH7sEOV1rd6BUi4UPaSCWqq6N1sjg/OMDWmjpqFWv5Gqf w8sDe+nQ8M0RpY+tX5rZwOqOc2DaPW5z4bS+b4yrskrgmikhTipTFQbI9XUQURV9zx/+4Vu+ /a2xos3JyV/5gbf905/9hyD6R3//H5xfufK6179+gO83f+3X/8nP/KwR0x/4kR+e3xH+/Xf9 bs6Sc85TJoCJsq8u1yhJM7drQvsQlMsFFKKqdVJjTAsVMJOEGG8keSHUJxGIkyltExWHDIpE iEFLXF+kqBa3ieT5Z7/4dS+/uHKiH/9c/sBNfdXj529+8gvXp7N/+A5669df+9on8htexU8/ J5/7It3a6ief0Uf+QlaPTMfnpxtSJRVi84cIEG5f3DphLQZJVPFDi6Kt3a4IRK1DKTTFsanI Ii64hbh9pT5MgNt/mYJ1wcOOqLnTKMHoPN9PkESJdXhW1xwEIi5+wDIANU2lqfsMTiZS9Qsm hGJomX3EidB81oEUyuaDW9mVwK6G1lwU3DVAjjMu4ihlHrKJyThyLxBMjTQw+uYY2k3aQULu KgTFVjeErqb2bxn94n9JC+qST1V/0h69+nFR+8LphRf0aGNaJr4ISJRcdeQNkRsbcWIwmVcR FRIxV8+AvWcP+qME9ynNQLELZjRVOEEYAhAXs2xT4IOISBnmL1zsV1Zk4nAcEvGuHGOWQaql FNnMs5msPhiu12+pnI+4c4vi+DthpvAuK6KOz6QiUIHbPrfxxEISnXH8haNd3BiMmLuPEtJi LN72eIbdEFZVj44IkeqBAcxgC4RVo8lpadbr9+BsYSjsvd0A0I6+q2oNt8Ul6ErWGlhNzbdt dThTzx9iAmAXEioYQX/UjwP5bQX0bvUM1GOvIOkdaI7uk7Rmr5vdZDiY/5dotAM3YLhuCp3I IvjlFpFhpixVBVBMgEcKiCXXVDaO+aJBQglz7SvLfmrW90orFsG+fTu/Y7QU6sdBBrxBoo4/ RjAFxSDSDFD3Rr4cEGYHI76cL22EHW9nLUad/L2+VRfTvK2ud+aH9ACFps8UE2uxSrX8fqjY F3P9DACYly3xV338reh6dOmAZAZtC1zpJ5ORORb2eyK2DwW/aoNpTOSR1uZ9DU807H2xmGXN T2fWzE9W8S0cISyKAYMaYlFQHOo/Vnjo6jnGGq5GTTCC72AEZW7cKZxVobJ9E1YPI8uYl7tY swLFjWDEQGsoutSIKDoejJXLjtWzlNEfVc3kd0rgt0M0OeNHQu553zgru7XmABa2u7ZORUJZ SxFs9LNGUX3ZK5rrS7kdsvDTjkSd6tDGYEbgZm61Ig9zJ9i1F7bFnK71Doxx1ZS0sAfdI8j7 8WzvdqlJ+rMZLPXR0hoFWGxlDYC99R/YkUPSge1iCat3lF9bL3VvmnffeQpU26G+DgWjiper yplhtFdKvahpN0oMW8MiEo68kGWGyrt8IqDTbxwG5ZHF7xXxuMvpbtEKtavrukimFi2gu+1g jopjDfs11H3+AfV063qxloPHp/FLM62xVtl832rrDq2F4eG4Sg5VpwlL366ohw+hV6WGDpRZ PcdaNPNx5Y8mRftDywZgClV0sYzQBuC4hg9fL4NUsjH7VahWHhIoSufC8GrR54pKVvnAu9/7 /HPPXXvwwUr4iOjNb/m2D773fe9/z3vyNF05P/+tf/sbV65eefyJr95uLz71iU/+7jt/5xMf /WMABHr9f/TG7/ie746gqOrz16//4bveNW23ItmUKPBb9s0opl44pcrOzrpXhPNmQrh7OyHy y6fuHKq0x2nJJy+Bc4uuYjo6UgBJiQA5Pzt77sYNgnzNY6d//LnpZJNu3pqY6F0fP3/6ue1P //rFditXzliUzk/12vnmyQcvREWJi95PiBNxsUwkQCnnfO3KyWazieIHyq6TxU2Ea84c7Oon qAibvc/ErodeMwovbV8aDR2fpnW3G7BiEc9QbXaNjYeATH/vNxUmIiILRePRG5UhUmatTqk2 gbbrFClAyuwXt7WowAST9xUAcoZauAYC2NxnMHscdGvW9ITFioqUTMSNOqC4lw/MlqUNkcAP RZIChE2RChoTUAzQDXiVErezeAFm71MzkW5BOdatVBbFm4btCVxVNUF099FsNq4wBVDOeZIM 9hCGRCQqsf6ivhJVIQVDycMvEquoEkOVzB8tMVRApJLZvMlzjHntkWv7KNhm7ESsGvTCmi1k t2rwkU1EpCpF1OQZw1kwpkmeWtw9KyAQgdZYqfOJjokBKAlTjCqbQMpUwyBkaDyYMVfaZgft AZ2CSO/+qsyMnIgF0KaArjIzEZ2cnNhyrxTS13vOWghgXDPshymIv3rDuVxgIY8Dw3XtWr5q CYqn9UBlSDE/Uo+UaBjJmoYlo+YJZ33DXuOB9hb+ckxz+N1HHrsiug6yO8BZou11dVQMH+on j5VKNVaYzuxGCyVZ5nQlBOmKL+VPjvNuv8dqhwrjt1pigcL8/5QzJoM2Z6GgNzw87d3xh+4M qVMIzpSDd54ui7fOrM/SKNXoXC8TmMuGVEUHPSocRUUkZQKRcFjLpff1IKSmfZ3apUYZoOo+ cwaofNgDXydFVr2st3QgSqx9O7x08K+XPyqtaQ3WtA/xz90tHgvP4QJnm4LyzZxfmvdL/VAX hl2NH1hqsYYI2wNzwKLFYLyYjV5FiQ1xvbWmWtxn9ftdbYVVwe0y4pz7WoMNPRLOQQq/tuEa xpBmltGVYZ4X3jtcoYZj1dYLmpQ7TLvBXvz1wMwB8gPrOSotjmedzX6yVhUl85W+oyOX6MIq AYyiykF2zSNTd0i7u6fgwDQnjGw6AuoyFwDX2eeHtXI/pIFu0MpPMRMHL9KBBGHnyHwlocfk xfwhUV9gD3aZDdsRFtDLAWBWq4cf7s7Bnjd3Ob5irZ5oQFPzhZqrrt1NhPdOgtgB4e60+u0s 2zLWJk7KqtHDnlg9dl9NB4ZbdAf9R1Yee3cU6RjSDsSu/NIivdo4dQYV41OdpqnFtraqyXVz MmXJ+fbt2//mX/3rv/rXfjCym0T0N/6bv/WzP/n3z87Orj7w4Nv/7//NjCwN+4j4Ld/+1v/s bd8/TdPjTzxeP6lw/PNf+KUbN2/mnGXKrgshCyZiXkyVifI0FSezqz0nUQKERtqaXDlG8QlA Oxudxh9Uy77I3WovLrECSKQACWliTbTB1fNJVb7hcfqTp08++Gl59uZtzfLU566nzYMnG2wn evo5ub3FC7fov/yWZ/7iQ1duZyG1q61MCgY2xJzcwFVzvnJ2+uDVMy7SYOyUKt2+2BrYWkRP nxRqxeyjXFnVYicabZ/dQpyMzx63pXmqFBBAtBdGiftaP3MLvorcVdNqtt4KaUxDQIneZ5+/ kySzjM6dV9wF8LxfmrSse7876YhHJZJ4hRLZWs9zqXhYPFUsByufcDFDbv2l8qf3tz4BEAvB VKi225i62coYnACYy8E+tdEzq4q516QKsLr/QXXryBWawKbXZE7EGSpZVaecs0wWgQpgsqFx jTQpEyUQkFThVpTsJwtVlVwtbc29g0EmxYwxjJFhAqQA6ONC1X5ZDXZ3X64KraaTxuAjcZPG 2ih1GOBaPDfJt10QKomy+oEphbTmB03VLCDVQ2mX2xVFY6fJCCRg7EOG+1C2E5+6ZuM2W+3W oVCxOJwgQLOIqNmQEoSZU0q2Q6tIztVVd1DclzG/EO2ONMqzYB0NWG0+MetGrkUJKLnzNR/K b62L1Ns8txP7ulMU7GplqJrFLcoHNhjHbXi7GaD7OY2rsgOYSGBnopUb4N5CLe65XkbhtsXR +L3sAqoCc9Fu6p5I1oKG0VuhejBYGMec6+Whgi0R4BzmPSmrLbw64206tKXWERExd+yBD7YP mEktxli1UmSFrgb8mDNPuxmpNTxRPyZx3gAlftkaVvGRHN9u+A+BU7v3sNeLxg20KaQIsCsZ 1N9LmLXi85slF/aM2J2DVyapnr/vlgFavvs5Gxudz84wd6oqFGiRct2Cnb6SxokeSNYBmpQj UhUz0GNXPMvZHYtmlb7V9bHj42hZOdM70x1r0GJSXbYZGgTpUhRAM7uPI12hrECibcRa9V5S vJwN8rnx/6Qlhv0KqIu5/gx0aplH9P3IPLOpQ6Y1HrntwkrkkbsN7xIUZOGPlAM9zJBK2rUI Ft0AzkhT7MjAbXYfKsyvHHbO9R2ggZt/7C50aP3NAGux8JjJ8BsVwy9jc0U8iYH+SpnIW87o jCLedqVFbXtsZ/0Gzwx4Q5+2gOtrnc1ipT5YRi/cZanECwOS9BRyIGt3hQgM1e6uJ41HnkW9 vla5b1DdFAA76F2wvo/1cBv/hG4uuCf+c5ud8uvR40OXOgK/p2lRiYMZYanF5qH/tP8sfvVn IN2tvuxdTWsTsVZPXbC6e5Wx/1/DVwsVtoneC8L4eSU+qjGaUOAkw09rXVzzlZy0XEsOJCLA OcsXWlNToCM1VLMGznP3TM1/kyIQY4lnk/kXIWPpvqPXc6iC+GgNsYdkOvB5bP1rN/DuVprz NgNKbxYAqihKvuuy6y9UoTlLnqZ//av/4i3f8e0PPvRQLaiqm83mb/13f+fmzZu/8nM/n3OG +g12ML/hTd/0dV//2v/1f/qfReRtP/xDP/DXf6j2loi+8MwXfvntb5+203aacs5aJVIqsfm8 iSL89D3E/M/QyXgZWYsrVSk2jGviSvRh17Y3RUp+ya9ENhAApCmBQMKgK+enKnztVL/3tXjN V73wgY88dWXzwHe/+oWPfO7a7Qk3L/T2pM/f0lc8hm955fSJTz+rRIn57ISuXjmTi7OJlOkk MacNp0SZ+dqV8/PzUy0XMBshU1ccaXDamkXIfUOTuQ1RJlMRbsqNMKBF+7WUQLlEC2KUS/Q7 Uxmx0Snb/D7fnOdukiSxaiZdwMu5bElEUNYEVZDoZBpGIdOIEcJZUxFTCZCsgA+HMdoeCt2C gNX2TJGt5i13oftxzwjwIyEt3vhLJ5sReEdCTrB+QMuF8qSNpXITbD8WcG6KqyLVJgsVdoe1 IqpqjvDPfVITEmrMRmUC8kY1k0C3IvXzxCfGfiVYVDxiYoYqmIgScVVAaxZ3dxIUowK1YEMX KknYxIT4BGA3Xl01L7bIxZQkUKDeJrd3BRGxu7l2hb7sVCTVmbM/NYsS1CyY2tgR+X3emWjk Fs1uaOwLECAiJso513n1Cu3XssWqKgUFHwovXiCyaYWqWF8i76iqOXeLQooCWosm19C+Xpm7 mHJtS4iY2eNxz25yzLeZSEyqb82Y38qrDku1Bm+sGMjcVEWxrcNZw7u7Bd6faY2zJPZtsxYz clwPDOqMoFBy7WuYiyKNcHnsDp8a1zFy9f9f8gNMyJDiiLU0Tujhr4tIMgikJDqj5yPwdgRS qwv1VGrWvm1veyOOjIL0GtKt4RgXN0lxAGlZYIiKj8PTXRP2VDUo+gxus4gZucnFpRe2pI74 AECWSTKRK6AdQ4gAbLdT/LwmW/WxkoLPnUXqXiLQiGc4CKGi/an5kcbWXsRK5ui3u93d8Kz9 eY/SHP55opk26s4T6x50HqbYrIWVxmGhnm3ukvitm3JCD7XM3sMYANRLTEtnw/NdzDK7QOW9 WDXAY0smbnCVkV5srtRAqppAmRYGZC+cgS6tCn60fu/tkLRCrC5Z7EuYBgxXNS+ICxYYl6hq R8nLQ7sO2FGjfTi0dystDPVevvpLlIg6P3up50OGl8tUvvR+uRpiupNxG6Zjzpys/YTKo6w0 vkYbv5L2pgHZ9s7vfGr2FtubIgd4YOq0z7uq3V9sH2Dde+UPDxyuVUjC55fA26H7d4uYeRiw A57HJrfmPPh5J+lFowNxWjfws47WcJbigdR2I4OpKPU05yz59q1bP/+P/8l/9Xf+2zkqnJ+f //CP/Y3Xf9MbP/aRj75w4yYBjzz6yBvf9Ka/+7//H6ZA+aWfe/v3vu37T8/Oaov/4O/++PXn npu2W5mmrOru/Hq+k5ll5Xp4TOVKeJF1Vc0pLklT0BCTqIIgqspcS/f1LEfbIVI3ibJRUa8v JSblBDrb3L59+/bJ1XNG/uqrF6d/8eSTn3n26tmVv/xyvZlPVeVTn89T1h99y9kb/tJDT3/x heeffz5P08VFFs1Xr9JGkqqoTtBNopMpb1m3iU42JxuU1Zsr/y+EDC0X6AF37KhMOWfTTIsq WItNuXJKbnUS1anaPIG6iU0hFgv2MB2mmw6wWTnlekqwMHSNZFulHOpzV3e1sDnEKKqWYldJ kh3g0ooSQQkbTuaAQAN/QipEFoCNmFxtZziUywGD1yNqgG9MyzqXYAdq6HJOifVXBOCwx7T8 IORnYuWicCzKRQVANViTK0fL2Q2xCXjGadmAbILeocpRKEOqqtVbOhERb4r8br8WnqOYbBAl okRI9aK/ECx4IZOCGInONicniZmZoERanYQIiBMLsGGu1twQmURINStBsxL8TkPTm1efoQPD l0AKEvBwUuqLmk1NXfTuiZMUxXccEMB9htoSsMrNC3aWqXxOjDIJIu7kuEyLAQvV5BoYdkvA klI5aamUw/6Z1BW/5J4PXAmtKjyjM2aeg/66hl1AoOA8wSqPil302BjG0/NFxHPyZIOrPZaa ZVmj3sCGCZy0mG+p+k0RdSRVwM3zq7tVIjI3KRTAEjvKkqaEqgtBCUZ/dosKMYsT68y/xK5t 8h5H9BZa3oNWRZegEKFyaoWdrM9ASWwyIgPnKGg15843dB2lnDu6VGpCLazqd09cnk/WuwCH Mkion8dSgRKlwFAqEUQmc+NVDKutLxU2wEMMVJknMaAQ23vqN0boNpuNqopoPXexszSmEw1p Puatdz78owa2LPDlMY91civcbQdcafSixUQAY+mH5ey1VOpxYbIeQyp7jNwKP3k5FVgg0Tgm TgG4kE+bC6eCQN20a3/N1S0EqjL1t5EWOzh30UM0IjrR6Cl4ocKlpa2qqqb4Hm9g2BmudTA0 ND8G93/TypVPO4B3XA3bqx0Fz88ObX+PfFR03nVMGuWxRcxZQ+/6zsONk/o+W7+rmGnM3LI/ jABraEJ9oyw1hxtM9VlLWuIy9bEo+RJbarGf2QH4YbRVG/cX+dv5t4uDYCyiX3kSgbkZL2TL hlkybFtMdtMJsBsiJhRIIe5MxQVa4bHCxMWpjLNPqkrcbGYjOXJvJDP9YO1/l7nLULpdr0GH V8XkYdCGh2q6kNezekOnWs4w+HNHTzKDZKyn/1PVxtV3vSAvlKCUDSKXRyKAYTNqZSL/tuDQ rbQ7RPweSlZgKtrX/THFeWd/NLoRqqEAYbxeoLNeRDFrx4qeT/SYjxY7JICxeiOw2EXO99M9 G9vu+e2r78rz4D/XhrLysWEWeMVos0kHs7kdyXUAquxHy92Zw99G9O4l72ZoUfutra3f+Zbn P4D64Cv2CRd64qXqql2yptqR1iKI7E3Hb5T3JK3TyUixZzz5ATXUeg6EpPgC3c8gHribL6a8 xrB2aUWWiTCsVDPN1T8mYQ/5RsfMCephPag7gIFlz4DAe+gJova5z9l9d02WiUqtakSMY2dk 31fH0dW8wr6tzSON+r2DgJ/T/yzttnfHflDhXIq7FelbKT6ggwCgKlUBLeXCvpWWnDPRNE2J 0+++83ee/Jqv+c7v+e5F4F7z9V//2te9rup0mPmljz/21J9+GtCr1x7YnJzU8r/4c2//rd/4 zYuL7XaappzFbP+MFcsVViUiWTeFaOO3xF1VFQmXATKLR6YVdcJaImlRdxVwBxxKWsIVEpLi +nPPPnjtLAteuM1fvLF99NGXPvzQg297lE5P6KErNJl+RuS5G7dv3rx1/fr1mzdv5ixXrpw/ f37O6eTs7KoSTZI3ml944fmbN28+/ODVplEqPVJVhphrEUbyQImkTAw277RC0p6qULIL2UpK 2JippGkPVIthHKDcAqgobZIgq5JrAUyVKNhsNg1nTJ/plJoJYFigs+ZiggFRTVRDn1HlI+fz ODDQ8Sf3JRRLEogoq3Ryj/0EAiQRaYyzGefT6nRqqKyYRAAkogq/wczmNKMIaU3ZOol5WkBB M6u5BJHrkiGMQJrqszKdU9HxkXMMRASilE7KDfSOiZhLYmqXZwUENa/fAgUYMkW7dOrOHmjK cpFzFslQXWDRmIhOOG04ERETkktkWiMTughRsNMQKhEpkKDYJFUocTsjKQJz3NTL+KhqFnBz MTHDASo4y0AmCEhKnMLdCqkMUzRrrbl2lqssjabBtN6lRJSIicmuBjAkW1wyNjwghrpTFQJw Yvah7YyBfCZ5M9RfIGwHXZ5DozKodbwowesniwJGxLfFHWVNjDdSXUXfhVsgS8LG4t5pCqlh Rsz8PvoMHb6KyOC/Gt2aSbP3Cf9aU+RT4/vdSjYX0nurgDmbCvLzbgh7ArnwVa+AVgCkebHw sL5svpRIRIW6s5wBhvjCdtKnHY5FJqZ4bm8tal8gkpTFLteXOcCLJLT71qFaqPbFR78W4Hc9 RQt3rMAZx9PUGGTbzpqkUcbB/mQ9OpTokA4cutiRY9MhGpkDK6nHtHtru9yqX6Olq3DepfJr 6SjobR2uNLtMq7sRG2rbOdQ4fu7WPtkrwC9mkhkmk5ByXBF2Iy1Sjx04MBRb2oi7X+dlvpJq uluDc48Gee9cH97o7sJz3NvR7uWaeJHTwM3Wl4ED8auv91O6f8ZwLd0nzPN9AsZ9mAZmdRil OYId5SP4WPQ8Fp+ttG1je58vZipKnnuS6jTt58fuWdMvZlpD0UtwLJuiU6ispE7bKZ2foRjN AcUUugi6OecpT7TlX/65tz/y0kdf/4Y3LLY67II/+jf/Jpin7fYHf+SHa4Hf+f/+3c/8+E9c 3L693W7zdhtdlasqNY9ixMy5XP/ckQgyPzG2/AQiFWomGCoEFc3VBrdWsjqjfmMQxTzKPQOQ kgqUiOl0g5u3b2ZJn/rTz3/x2WdfuHnj5OyUUzo/OyWl515AUbPJtL3I0zbnKecpT1nkBOrG zLQ5SUjEuP78czdeeP727WublE5OTlJiKifqqgrilGDRuFUVYCFJYCFhShuiqIJWISHJWZWE OYGVUyJSopTMVQerW72p+bllQLBJat+GpNoMMyVYt7qdtYeV85hjEOXiF5iUuCoW1Ye6HLpG +U3rn4Epr5HVI9J7kTn6ZfOiMJC6oH1oSFs+zap2ICMCsPkvhkgLGCghjJ69V1Nog7Nijqlj qxqm/CsZQsX21sbBvXCk1Ig3kaktlWgrbsnojqu5Cn2hVzaSoOa5g9xKQgUCySG4nNvllOHK iu0k0yQiUKVwSEWmWE8pnZycbNImMbGpKhRuPKstSVCpA4C4BfGGk3nZ0KAwqhNNfbLvpGix 45l+d/oSPE1nhUBFVApAVEbRMtCb5BMRkXC51l2DQ5byDRkIABMzCEruLEWhwlSUzSpErOEJ +ClfU0AXE2YicqO5cpBgv+bizRBw1bPdJ5BwoggIkbIjTVNYrykv0PCtx5Od25Xlu2uackiC zpPvAAAgAElEQVRQosMRma9Gmre4vNlUfIt6GZ0p0QZg2ogRgUiLIbx3Jnz6pWJdFx2kthSH d2UbjjUcfm1qCP7WtUlOK7UMVlwGGhC6fagcPle0+Wr5Ft6NPcqudy50o7O8BhHAyjLljFm4 gg7aoDLOAHPyqonqMxa2NdwMr4xmlt3HNqBKyefPod3IKs3LoEya0yIbkZnaXQktdMTaFN5V /jPqfN0iI7wPFhyqmsNOGn+tp7AEUHVnYXmKaA3R9UoKWpGddu/B2vjzjtOmxXwLb2x2eRSs 18sxiAWMWAoQfRgjrrrsR9zbirU1oyTPnI+zf7uUeWAafDrv7UCsXfuVslieVgqslV+t53jF +pqIMpYM9e+grod0NsJ7IJzFutnYOhiVNNakokou+OZcWRNm1Yon0NTTYMCcS/emErOjr8qI xk6RRScutCiayHSYdmAPxyRoXM58lJzmXbLuu5fmYxI3t1Iqwln58G6fSsOR+co5QR2R3dc3 5/DEAvMlPJ/rec2DV+hWz/oEz1dTBa8KRXNOezf8B6ZVqFby18qvWZqbxMjdZt2qYKrERAlE 3IW0rjbjI2gLjPCflxQHY3Ffxj4L0D31HzOqB5L3P3tprW8LZ/n1Rldbs/G9qTNsxIRYzXtV /8xVnO2fx+4bq+zt2nyR7431Pvru516jiqG5vFJ+DZ4NFYVG2PHqsDvttXe0975q1C/nozHf vncAs+OnNf5KDtiL6Q74gmMddywu4R3M5F6+0X1AV7mPiCRPp3wFC4Oiah5fRaZpIuLbRD/9 f/74D/zwX3/rd33nXOaMc0NEj7z00f/+f/wfajFV/aW3//zP/MRPbm/dvri42F5cTKKSs6kx vXV3RCAAMehiWlBAD52PUbDjk6vbuZBIFKASZKlkUggZN08kMe6EWT2Tklr0MNErZ+d/8tnP XnngCxcXt4mQt9vbt27dPj1VkWQ6JKbEKaV0dnqar165devm7du3JpU8TdM0qWQFSDIl4nRy 44UbIvnZ566fnZ5cvXLl7PxsU3yD2MgkIrjOyMwymQgM1kSqBIYqKStgwb5T5qzk3jwsGYuW mrovuSpKIURKpoewK4Ws6so3IjKr584yWpGzO11OHt1clEZLaFB7FuWJGaESXPGoIiACcyrK VtcvpnLsHaMaooZc03YnuoZVjDTO/RSbd+ygLxZyEdTZfQq6JAIshKP6pDdVTiHorMjQhCZj VF+ERFSFTCLKUEYmJCYlSqSSwQxh2hBEwFBRZqiYC2GRrNSYSC0akLqOKOItQAohgSILRHQS mSQooP2AoXQDEKWt5KkoGrUq+wCixEyblFI62SQ2R84q9k9L1nrOne/p+hMFKcuGBoPoPpwZ Fu1CRUdX5vZrl0Eo5tgwmIrK25VHxQK3XpUkIsB8HKcavs+bMKVwOUmJqwOiyiAyZLY6rZzN b1bVkp8BbPjUekFErGBiAhGrSK4ExXsEIixcjvMOhjCwFR5VdYVdHLHwHnMq+zIny8OfFPCz /1Zru/Xq7vg5xrRD/QeFIC9uVhXDqfg7rkkIG2JlSqB6km8e/Ocn/McqSu56OlARZqkepTR7 /32ftuFdOkurf85hsLnrpO7AkC7CHHmfyPuiKMTrT9aeamF7Vziz+GfpSBmKGRLOkRnKsnTV K6LlfOuPNeyQwOPgxCHtTvriacqlRKZjv1ocjfAexrDnbyKo83ZVlQ1VwsGhqoRZmIOhpAJa dk02VD6g03xy539SOGMa5gJYXRcUSNDCV7PCh0SVqt+WuDG7yqy1dWBaWx0HfrK3/PD7/vIr I70qY+xqemmtrSigD0mHdHxO3w6s1ujbQDEiUR3yC0XSjn4e1mQkILEVlEVMBygu51049qf7 P9FMkapLxuYduV7ay3b/Gsus/TrHhPkusHem9u5BO/LXMocKR3TqP1kYhyMx7d6m/vLf8B77 tcjh3M/pMMJ+r5q+T8ZK6Rhy/+cyzRfvfCHX93orrjCA7YlZzuUG/liC0GQKPeh5bOXHYnKU cQz9JCChhqE5ZJQWf12Uqo5N6/zVam2DtHK5+k2WPghEaxQL1HgRjAPHYVNK14oxbXPiqjQr tJ7KO0Cuz7qwOf3F/+effuoTn/z+H/rBlzzyyN5t3tIXv/CFn/3Jn/rNX/83Zvu8vdhOkjVn 9/oRRAqvDNhs0s0S2LBVNOvkyclGTTNataImoJYo8AgjqDClRu9VLZwYz5MqOLhANS+uJVA2 McAJH/3wR17y0q8mpu3FxfbiAqqceLNJdmKrgOSsOavq6enpY4899pKXvGS73Z6enpykTUoM yVmQOKnk5194/qGrZ9uL29O0VSgnIjpNyU1cCdUSGQDlIKpxsyRz0/UEUkJK49ZeAhIqWkgH r4eJJ9kmDvhBhGaLajopG2xWVQFPfkjgxwb1aWrlQg2oPkkUJNH+uj6JlZDsqcglwhIylERz 0YICUCibL45upsw7chdlVQjs99btcnXRVzZHJM3CK2qoY7V1kAFbAfXsscPMKpNws+QSIhJz 5+CYQ6SUQXk7mUMkQEBK7BjLzKZDD0SyKdrI4vJVjCWZ/CRABTRJ3maZJE8CSlxQwSoRVhZC zlMWiIjFwjOvz0VD7UjiA6IqMg0M91zgj7ohVU3RLxu10XMFVtE32JuQnRuYcaVjpvarnNzS 2LUVRMwiUIFKcc9i2mSzpGuqZCIi2qSUXAUfFNDeF2kY5aw8U86ZCAQJyKWA1th+cTzguu2C GWwaZiJVSLBkIgKI7ciDUQ8Yoihb2I7OsyqBYlCvGMF2Yf/0o5vON/SQVBVU8Nxe3KpLQe59 ybVUcN/ormVsxIV6gF0UXPOhL+XMdRSNwmiqDtaYlJmJWYtDbYtFufi881AML3IiNfdExaXP Shp8QK8VG2TRmtm+lUbhO8xJ48AVBOfoo7815P9U9TeIivJEywluwMmGHmgvSnYlxAqMdddU +Y9q/ibFK7GWFLsfn8PIHMioRTHefGSTj0Uc/xdDrvNAr2gdVNtzyH+dwx/JSBgb/7XqWZxb sJgHVcVcD2458gYSOrssDh0yFItqheHP0iOjt82GtHm7Dl+1oMq1tn28+F62eCgwtw4bah8r PFb82Kkxn6cB1VfBCA0cV/5y8tNSNYuao4WYIlbGVtn8R+qCWM4rH9IhFlV9CRrefPnYHRHz aW+gxT0X0HLPwMgc1xjXDQYZTIkXpbX4MnZ9RQNeob3jmRKUVTbLvytY0NLqqtzXznLffcQ6 v9WhsIQ/aUc9NZ96ve0CmCta2mHuqFwUrrg0bzd+soYDi1M/vFfAFhcaVpbJUfDsGId5tcv5 i7lricwarJPEaz1z2BqPESEMTe65r/bnLDllm+XfiTX0lxu7/WKnteGsqpAhReFoWJhzpsso zaLIs7ZODzh/Pyit1S9HYsQOdmMga+W5Vv9a/p32d/f9iSgdlPZ2tZhWDDguwXYtIsmRt5dM CXPEJ4qFeDADVEeJRRurNX4xSWYXKbuWYTpNVSFhIBNhuwVIRH/3ne/8wHvf+59853d8+3/6 XdcefHARDst5/rnn/vkv/NKv/uIv3rhxY3txcXH79jTlnCfN2a7Ra4SG7F6cKsDM0zRh6FsQ sy2dnJyoKqlGlxEoM8T9bBGgIgwmdcWnEljbc7BQUyqRZkweBhETQ0EeKZ7NwQLl973vfQ88 8MCjjz765JMvu3btGicWERWHSu0/jxWnm8RMJ5vN5sr5FWaQimRsNX/4jz/90Y9+7Dve8pdv 3rq1naabN2+enGw2J5sNJR9eJ1ecgKwaUXvcpy3T/+3skUnZ7QlJgNTyKREkMVVxt/gyqFcW pOrh2/inEwFISEhYOSOzsr3XZ/0VJNIHOJrLpSXHOycZG1Wo5qJpVW22kNRZrpFAURQ3KEKt x+wLLpXbrRAitYvhxftz925eoc37sLZVW42q3Cg7TEF5QwUg+YBabBFhtVCSVdVo35hTQYm7 jhRlQuxOKvrVOnQZaj67s8o2y5R1UhGlMnlVxyUwD+tC2dYdUxUPzdzXtzfVnLcsBMnaj9uA YBGSpukAoZ/W+YYaNhhTwY97D4LKaXxmYVXz3GH+Sa3FZEEpAQrR/IhMBVcWSjCYZQVStw04 ZedCK0rv9ihcOj0zVQF1QPJaHTNhaUhrxuJPu2WMvsz4axz/+bfzEaCiyPa1Jh1aVo1PN+k9 TsZWJln2KbyW1K5RiJAqLBYfdy4ehk7SutHii5OO2n25f9mhg45rzcffLuv101Hf4wFAnTg0 D+RNF7kXyDnjGxua7/KH/FkZ6BrlYbfQW3st0tl31y1gaCI+K8BzeIYmgLLRd2tkYTRqbUdN N45EDwAqiua/Tytue0e8m5Z1nAW0/dT7eQ+19XRjWHDU+1Pa0cd5f4/N2TFx1UJ5roVZn+jF 7IVWygAul49l4p9Hz++heuTlMnvLX6L+o9KOCiOtaH8eSZzXOnuI4BpzdpePO9dQkpZUgaji Q/iQ43GxJ4kxHuZAxhbr+lpsbi3Vez87FuNdn/QXOa11YT4jc4K/u57IuvjLpeAZtuB5zhz+ scBKPeiXz5xMDb/Oa9jd9I4urPV9Mf/u4VjH/9d36kcg8gBfSbvTVwbqyyjNl/mwiucb+j0l 7kdVH42LX+SmD0yXlg1Xgen5z7VpGsrfxTRjfY9qgC8xYYsouoOD2p02cwBkuyVm0zrWH9X9 paqCRJRINWdS3dLWlKo5T//qV37l1371X7z6tf/Ba1/3ule/5jWblL7mFS8H8KlPfBLAH33g A+/5gz94/3vem6fp4uJimqbp4mKappyziEqOF9tjVx0KYta8KJ53maebqiiBKomQGefGb7Xo CwE2xYadAlgU7Pik8em62KKAVjKPFUTFsjgB+LpX/oUPf+rZs9PTJ598crPZbLdbc7GMBGa2 yErVb0UZvZxSYiYmCOT687c+9Sef/oN3v/sNX/fklLOIaJYJ5qOjSYzwobGsnkGfqb1QdnFh ZRG4oVoxkHbDJ9MpaxlYs28sIaeDV946U6NDRgIX/8WklIhJWQnxCaH6Hi0Uhnkt3Qn25pQs zhKJTixVBjaJU1SJy50UVQBCyOI600GVINWkKzSs6uCIBh/QZhdKZr/uddu7qpK2AMQ1Unkb DPVxLCBJNk0/EQkSKKuygrTzcRxHoIbhkiBaK7lC1rqUqNiAMIQgQBbZSt4qMkRgFtYhPqoo SGzCCyKxis+koSQTETGyCKZJRIFkvnHS6Boivgy6IQBiJ2ZznzYUMLb8wu4opnR/SfUTaUQi Ko4bUSy8FbCrAQ6PAEVjCYexq7RrIs6CNZfKCSdTIYc20jyiqw9t/ydZ4EIg2Ti7l2c4kMXC PZTvRm+BdxyEinDc0pcq0zGT2+s+sSKPrSiPCpRmitvmfQZ2FGNqWqzzEIWCFBZLVXPOdVjW LKy/tGne03m/5ut8R5T2mmo9DUXVXPRILdDooWotVvPJJq6vsD7N6+5eH2etg0rU+zMoqFVR yL5CgadTr9iLKswDFnkNYUyogde33qk+5+z48Bx+WkO/thYMKN8aRrDCHZd63LtmPrDGhB0X Zf7YVIemzpr7gy63cOLQGXlE6wMBZFEKyPYXjBaS0cUZgmvyvVLuWoGRRelWkBaoSu/83wZ1 s9gaLwDuBmdMi9jStd2nwW8bfBHhoCDzIaXhSuO+8rlfcYc3tNbBebnF7DvRYnQyEqEZqMb1 vtzsuB2v/RngTGU/jAAPknF8z+5rru2MaUWOMvOVPPxKABFl45z3Tch8f5+3RcWK1t65sH9/ rtKwe9YhWpoXG5s0lNxdD45E6bV6qgfnRW5qsd3FtKOeNWAW4VkEtX54ODyrTa99dGRly4NP VCLZtM2aGsxAIya2S6cuvguAwW8Yjb9+JY176v2R7mR/uZN0uVVw52m3JjQyq/P3WkYBpeWg 0Gv9Ota7/yEuyEIuaMUiezUdZn6rRbW6vu8f0WqFUO7AAbpf3JQi3rpuoOiaVlbY3bJAv6/S 2qQcIhdsAB3I0TRlpi6ARhRcLVtEiHjSzIBQFsmcOU+ZE7//3e/54HveS8xEbCo6NatfcTfH OeftxYVM05Qt17232qNeXqrSNEBMxMRZRgsDmnW+Cki2xfrNZVEpQZOayE2u4CO7Dk9+wdZR Z2VIawS9oloxtawwNtWP5wPXrl6//u8ff+KJ3/2937t29epjjz125cqV09NTYiIiMKsoQQwC u1afACLa5unmCzeefubp5567/vDDD3/VQw+enp7cvHn74uK2Ks7Pz8jCovn1ZVbV6Etnznh1 Y0UEUslCUlUERtpQGHSi9mHVF4hpOanEUvPqqitX0uocA61WGZ7uIcNUFq64EHNgYs4Qqr2q VSIiTh80m/qONBGEQSBW1hNVs0i20IsiSKW8G02qRWt0QIOao7yGe+JuPG3XnVsv2pNcAans drOup1APzdfGzPrCpmopOeJzlkQFEFM6ioIVApAou2674JYWw1gx8YNgHqLJaKZkBTQTJSLN SsRCSKQqolllUpmybi1AH1gJEvTg5g6dFaq6Md/O5SjCkkjOnBiqChGZtFxDAPqgOC3VUHtE VO6hEiDRXbXdMLBfuMz7gKuLGy1mqpP6zqAa8c++HxAp9QdHqkq6Ls5RAGAm8UZd6poYw8zR K7GyB5zMyHawperg2rfVt/iavnIZzH1yVK0/qv7jJxxuBsR9oih9+sUOKGQ8arLyoAGAKCvW 1IE0UywiWLgP7Vo0zXiRxUouKqAP0ADcq7RDj3ZUWnM7O9B2IiKkOg5xX5trarT56PfDMg+i GRS1bgk7m+J5cKRSbddE7W/1gjKf4rXuLKba3EAKTD2EQBYW61zE7QGARX0B9WWGb2NOAWB3 P+5aaj06rMUB1LD3AfNlGHKML8qgVLQASvVu2Bg0DwdMZUy71wX1qrfDq/2SpEV8u1s1r3U/ Gn3fSf0rv6xujMc2NyzP2iOTmj0zlK+97TVcGZzMz8+xkNQW9yLSnN7WDxfFRWWyG4PQbrOr QgcVblNR2MFQ7WK6nELwS7jffamSTUykY3P+EHdAPdY+PGZ2qkJcmFiQSVlJGCw9bnAJLdJy ZjEtImBzGHbwgQdjVLzPatLWLGbP8AxuEsOTVvJXnkjz/OZnSUcXebFfXWft8/sgFd9ml1+R iyGFcak1rveeOFxugRlifyWtpYoDYvodpvpe3YdaxKn7Auln6UvlAnGV1hV4dPZiSQjpzhBy 4NZ2U921X++E3d3BLh7y7VHlmwHSTuHo8LQZAQKgOk1TSskCi5nGBOoq4WoGq+VytHGUNOWc LBAZJy5uY+EUWXMWVdM+a87TlEVVpslkY1cMBSCqcGP/ppSmaes5nVpkpPgbC0xGDKQqeCN4 d63qDFVV4Q1tTNmUpYSHtpPtetG7qs8U5lnWvBX7RsjmQHVT/XgS0Vc98NAL158jokcfeeT2 7dsf//jHVfXaA9fM1cH5+fmVK1dOTk42mw0xTdvp5q1bX3jmmc997nPPPPOFL37xC2dn5698 5SueeOKJj3zkwy9/4ptu3brYTttNOjnZnJydnCckRlI1EpQp2l2EkYlBojwHgCKlRMWE1GxJ 1ZRN4mqwgJFkLrddcSlN3iaiVBT9qgq3FR5h8IzQFlBMU9sUMgAmMdMeLVfEEzPAAAHJirMf +G3gTlpIlZQISslsgQlQVqiA7VcUmVZcj0V16k/siKXAYT6QDX9EJstn3tTzDN1KBR7uyYPh Li8Go2CAaLvdonJLWj1MS2Iyh9HN7BEEIvOdpGyutB0TUSyexO6FQ7P/KNZfBoiQ3FlmPetR Vc4KBbLK1NwqV3IjsHiyJJOIFI06+fW3amUpQkkpgaDmzNj8LFen9WETLH4Pa/1KSkp+8GPj kIgkPpcivA4B6AA/URVVlHih8XTRDxhUUXxGh2loLxWnFRndZHXCYfvTGGACpzT8qqG8T2W3 /RAIFjqyeFI058oFBPYMuN6Ho83+LFGPWqT1AGCJ1I+kEahm5u7aqIyqlD/jeJboiEX5HsV+ EbiXmnI4aNVyL6VThZoaAPDaiAjlmnIZ0jIqSzcAYNEmQcpk9NwHSlWmsL5qc/1ID+O4WP/d SnVfLv9qgV9nZcbUm8DzqFknoLrUaB404B6GNlacyv4MKrFhrX0i8xRVCLsoIMUxkWUSgGzn dDP+Matq9bTrk86qmtiPUooe13GMzZNP3ImYqFhqm3m01pM5gDDqfL1dPze0LaDlc9OlAo6W 3YcoH9SxrT8lEHRhOuoVGZ8B7ehLuReisYbaQZGFwMhYx7dD7nj3pGCXoGGX/mtxEe1tgiM8 HN4bFO7VumApEYGYiHLOdnmFVPy4AyJkXsgYIHBSVZiRQXE+MJBToCms0Y/JXF3Svyz3mpRH 05IYQWVGhxZqWDngHOlP1G8sHmzMckr51Qle7n7widM1vtiorRqNAI5pgHa4U9jq35EoIEN5 GbtpP/kxOZd7SM3ZXSxtS0gAmAEBUjRBshn01a7GD4m9C2xz9LAEjf5jOCor3DhRr7Waywfz 8aHyXjpvrczGyHBcHEaP4FG/TCYQiRgxsTglkwoTS6GREoN89tfy2kv2bbGqs61CdiMPq6qR IKpRQQtiF4VsOGDu+p4D/83GFJevWzE3GFgZN6yvo7V1HR0hxq/4gKCmtSqbGGoyhbauiO0t Lp/EJbO4fudwlh4tn8FwuP3mlVhTTFqdH3auyYxnFxAYmlVZBWTOCVsgZSrvFmBZ7UIkkbNm w+FrgGftYDiq9+YbK8URsGfj27UIVl0q+Ob/U1KXRUi1ygIkYK759UlQkLL9if5ptjE2UPUJ YSK7zWjWOatsm0OtCRT21F2bq8u5K2dsc6q1VmU3fAtpGf9X2PuFtHYGWEITdfWsVdvpeecH M9oCHe1IscR8IsLJ2s5Khg8DC9ZR6spf9Tk7ANjd3IEDPleiDS8H6haPmF8Cguuzll/2QBS5 UkzrZhNIpCXf1TJuOyeLCv25/sfTkT6II984fDH/UFXTLJbMYrH2A++nz1VeADCPCbHMv1lZ Ra9NaS+xE02AsQJDDxQIMXjqNmfUaSpAjE0feZBJS7/qkh9dLPFjIS0IRAfCdsgSG2Sj8K2b LGunhIHkYAez1MrGlGH+GXmp6eKCme3Kc9UlmOQf73yLKAMKEs2qysoEENGkhcGykSi+mFUk 5ywKyRlwNxTaeCpXdBvoUAXb1VFl5mm79RI7Uz07NStLIlaocrGGEJ1UEmgiQhZlM5EmVU2F deNuWJ3Jc56AiW2CPX4cAVRYyXJXTuThBx64epqI6PT09JFHHjk7O7PlcXJyIiLPPPPM7du3 Pv/005//3OeeeuqpT3/600899dT169e32+1ms3n00Ue/9mu/9vz8/JlnnjlLIPCtW7dTSlfO z69dvXZ2esKURMyGWS2EEFaMOOYoqKoQVbSFVLK1HT73iC7EbXGYml6yqm42GyLqvjJ2/kjk DgENWy+C4GQzYsyBAqQyhcNxc4StAFEy3Z+qB0msFW9gKCqirCIQaWx6VYGenGyIiFhZVZQn 3x6Sg13UJNKIUyIicyGiXJxveJ2AKqUUgYAqEiE68XQJjthUllpM9E3cMPN8AJws3KIoCWRS VS0qD8X/z96bh2lSlXf/3/tU9d5PzzAMA90zIMssgIAsggpRQQUS8YqvSzQiCdGIShKF+MY3 Gpf3zcovGiOaEBNwjyFR4xI3UOO+sjhREIQZ9mWGZYCZXma6+6lz7t8fZ6lT29PP09MzDHp/ rrmeqa46dc6pU9upb931PQk0uehaELHKAEADbKzHszK2w2gjnr3Y5MohtsHjKF6U/QXPGGsA zUb5hy53sEUREdH2cbS2319WFiZDhoko4/AEAR0/hMSlRwYR5OX7PP/KRZVAeZ/NnvfWLcg/ 2OdSCGDchTIfoyYXqqIOaBBP7aXRD5KWd/nhBcGq47A7u5zKRgj3MwotY4dV7KrTXCK/UFbo cPMITVqa01QIEBq9pJhwjTDU8YLcQXKq1rBzPuGBvPNtUvX6CdjeYvcV8NIjqG8KeynLjSni loxlAt96/qAuSgx+sNC8Ewx7vsSve/K+EKFurylQ2TK5UFX/0F74gL3R3xNRF6fzEVLtt5Wm S+3QlE9NhZun9yZLa663IOwsXJQijg30lb3RepxAZu/WTQ88+x61DzyNR1fXD5ZdltvroRjT +Zm/8Rmv1zI65lxKzKzi+0TtA6Q/7QEkVpgLG6IA4yIi4/KUggGUsvfThTY5yLUdNmvhHd2w NL6o+mf+hZUXG97ZpMbuIXrd6Ys/SHaPBW/3jSsu6ipYuN0stuimDBvz999OWmc4xW6afRSF YsD7q1gXKmsFg0hVj7d3SWrenI/p9pd6+WUors/H2zuVf8MT5a9snGz8ljHGPmjEEm1hrWif OonTpq+oGbtPqFs3GnT1ysxUe5PpOZ8lZy9fD0MvGn7r8ptU9797uM6Ngmn06QnyG3FX16iu rp9LARPieIBGOxF/QJrmO3vp2SraX4/D40B41mt6MGl6Aqomrm35DnthaR5jo0zSuAGDiDSf td039X5rjTGJSq0MXThV2MkpzLk+ErQo93QCgv2GOoo+JgKz8XKN3fEUqUDuydqWkyTJ/Hy7 mwMzAQVnAzd6NRCiA+CcB9wvG7Yao9XvrWhV7aoSwsBXimL1ykq0cINBMexWGkU4+/RnfOfa G0859ZlpmtpA8oGBgRUr9l++fNmjjz26Y/uOLVu2PPTgg1aDnpmZATAwMNDf3z80NNRqtYwx P/vJNScdf0zSl/al6cjI8LKx1vDwsEoTkytahOAJWPeuuHwYWfXUPyiGJ38rQWbhxXt8WLv/ lOHMGlUbY0ymmdkYKKVSQpIk5OPg2Doe1NF8Wen0RtpPR/PhNjpXKK2m6Z9hVFxzqNSJicpa gYdP0W0RWXidpVSS2LobY5LEBs67yB1mdoG2FGswFA3PyPnBajNXLm6lsAnMysDarwqGU5MA ACAASURBVNiDxgafxNvoSrTmNAYMTm0F3C+DOTeaNEBC9nscIgLBjUhmmAxsYnuYF7Sr0h4K u9vveltXBSJjjGYoZ0GiNIgUmJRzx47y8/vLr+uWGA4xqeEQZV91T+np0+5XLwIXeqKVY8UU oiT8MWyvSXHTE9mTuzCSIUebHwsoeX4ERBExHK0Lkw8eGPzWTZ4r4F6MuC1RKtTFKom5Nr3A Fb10a2mKsGvIhfwrtPg+RCBTPB8jfTDuGhRShFmE+IOYzlfl+OZXvhHGf3Z5Yyv1e7pfcalo ktma2qEpHLv5eticT90q/rhltn70Xoz2zWIAO9IE22uAKsSI2dclCoCJPKNDHYig7FCH9rau OLo51jd7vL1OY3KXBHvk5PN9IuODchjRpyR+L3O4DrvzNCylwm9jC4YzLjfLKx+HpS3x99fo IxXfnoZsm9g5tQ2wxOzptykmd8b37rlR34ZUAiKl8g/CmvZ7zOOi0XfJ7jzeNKmTPeVc6v0v VUstoibd5Fk5H+sfeIrlxqUXr/ac3/bCgBkJgGgUDf+RE8KVIy6dmas2Qcz2Q0CKtLuabSlN 5JUqLiq4DRbV526IBQVEJ9ReVje6ouQAv4gMerRUjm/fe7NBdl/j6LxWNf9YlwHK/ZZSo3EU mFLKtjYTRJ7R5dK76Vb0svVltShat+nl8VKxL99H9mXiY2N3CDJOeb496ha1590Bs9evhXtO UFsc8XOonWD3wrKhX115b+23qOFbsT2/WZ07Ax0So+OVraf7CBZ7PS9Rkqp3nyXrgwXDiZKI HCJ28zlRq1ZSxlpHIbHJOuyLRda5l3dFKRGFCgeBSM+3B0ZHZufmEORmIjYGRLazWKplEFbg xGjjul92tD17QdT2c1GHMfHqhWdI9unCg3BfkszNz4eFhbO0KrxaccWwjbIk/8V4KN3GYsO4 gQDzx63IdzJJklDVkEApAClKGjQoNIjNUDPvt9/yM3/tpB//5MejKw48bO360dHRNE3TNNFa 60w7JdcYhNgipZIk6e/vB/Dwg1t5bvK0U57SGh3p7+8fHhoaGRkeHOi3QceFosm6Iudft2GB E9geapGmFh4aYuEg9MihNLNBlul5rV217XCOxpgkSSjtIzJ2E5oLLdSq++e0aDqfdBIYJVZ9 tbsHBdGEonPVH1fEBMNsP0wkgOz+DUIzkdU9Wak07HdAaTbQDiJSKo10b4Cc0JwfV9ETS+ke A8AGQtibDAOkoo+fg7kHwfo4a6MzNqxd1LUPHnDPQl5PBRsbBg7Yz+Psex1SmmGYNdhAVwbz iTqUdUKe8SKLAWcwMGyHeCH7eT85c5N8n8T7Jt6JdizPXroq1QdF65Edq+SF9ERBI7bXnPB5 Y2G77FsBqwezqV5t40+i8mckwOh8vqkcxiW/aQBJkmhw/lmlogT5R5flX4R3byjUtiIoLHh+ de5gFR4hGiTgbig8Xbs5nepTkPmiHdF9uXUllrtihXL3vWeW3WnwQO3+ZWbrvhi69QteXavt 6a+ohfk2H/cGl/J187OyQYmPy48DZAqOlia/3YfvEbyEVPvEvhRdzOaTqHaR7X40qGzVNqzJ s3Z+0+AkC65osReNpT3ISxuSX/2YjTFKKWPycy18EVdNX825mnKvPe8t+MDZ6xFVSt/5z9rV OzywLaGOU75xLF1uqJOk3RsgN5n3Ljqca+GNcn5BcCeaHaKaAWLnvZP3prqpaodnp+b9Vehv cGX9Uoek5Ard4TBz9al7ovtlUta6fF6N7y8drhjdszunzOKKrqokC15k6lapWZ2i19dNR0tD o3WrGjRJNh3O06Z1yzXvvDcXu5t+mc6Rx4vqx9z59JLKbUL3h6t/DKr5Pqb73nte4hL1HJrP 3wXS13QJGtLH1c6nK88j9ckqmXdzEcs3YimuJSVtZ5H9/924rDX1G5vav1qH2vasvdR3eV/o UJMO3d2Y1InGbvhd2P5fu90eVor9a3y2D4rGUKKUMajzW8k7cMxkHQ/A7MOyAkTRNsQb44q2 f4CNe86zs5RSWTujkISiUktPwobAyF2emUtxzQCsL4Az3NVtkDPUMF5EhntQtJ1pZoZVLr11 UggWs5nZThUxkwEZL4APjYw859mnzuyYuunG63+6a354dGz1mkPWPOmQTJvZudn5+XnriO2U TcLYyNABK5ZvWHvYkRvWLhsbI6L+/r7BwcHBgf7+/gEbgRRtp/3TMNvyI3XG1sopBNFdB7CO hgUXb/9JbWbjd4nYn67MbEhnmjM3eGRmMu0KJjJam9QAYNXfB/gvdLnxihXVO94XuSVFJWGU Jj7obWLrr6vDmiFLW71w0NsB56yES3YkQfu5umIAaWIDUxVD29hSq04rnwm01pkxjLbObIi0 SpT1A2Jma4zLBK+AOxtxqwLDDZFKSTgxSQFsZUdyfjZhy5TdYZpNG6ZttDacGUO+idxOUVTY WG+SaiufuJqQHYiRnQeGDQ+33wIi6MT2xLTDjRqrQbkOC9njiQA2YCZDrJmZOLFiF8h6tPnP 9t2nEvnpSnn1AA5qUyF6IrqGxIe1di+mypfUkKb4aZ5txPwYsl15LipHUQJDxYtylMh5GOXX TZd9uDBCEcHraFqXj0mHcRHuLkJcwca8ayfk2bhpUnZwQkD7aGgU+4UciT62IXyHA7U0XuJN fnrYi7lzFIoOoTgT0/H89V6v7i+i5nKb6qai5u2m6+CzqF0QMlmwF9ZcUHXVTlWqk9mabthl l7em6c5QtKWlmjDA9hsYH3sfBCDnvdtVzyv+MLYwnCwAkCGA4If2zRvAADA1fWjvQRaN6xB7 c7vF/mIbPK+ZGXawVfunLdYtyu/xOnrdW7jOL1FHvNBzIgTBOO5gRbFF3PSlcGMHbqEd0s1m dGm/2BPM7MdqLfSotNaGiIzxIwQUPPGrzV7oijxB6PTgVEnQ1K3/FaH0OOG33ZQaodBi0AAY ysYDhNOncO4ww57dzkLL/Tpz6SivAv7C7zrh6OrEKNQtPI9E31KEa4u9CNXu367Egro0vZ4X tpXqh37eN+hSg0Z03cZeP2u6r2TnTBB3Sos39Nr8S/M7PKLXCsQqUgS40mhJ9GrWLHRcLajp dN7SWp0CCx3Pi7sLVHtKv1LXWDS3m6l8FdpEk6nm7tfNsg+GejyBCD2oMGdxEdDNHs316IZv OJsODGoINOlQsaZk9Ze4Sk9yIW13zx521GlMAo5+naDT1P5NYwkstL9KJzaXGra2ZZpm1v5Z aepCdz2+xjfUsBCoVyq3dFPrkEsgJQKXVQhk8+007XOCku0aaq2UIsOcEDGbpm6EM+L1Unak Ptu8O9xIXFnW/dZKb34vpn39Wbtd058jqm166xcBnXeLC6bv0asMp5L7fEJusVeD/dPtOVUu zn8UXNg0bT8VZIy0xp5+0vGAarfntz26/baNP5rZNTc3N5dpM4K5E9YfevJRhw8PDS8bG125 Yv/h0SFKlc40AKVUmiY26tkYbcM34wc/Xz0X0dnVrYWtLlE3Lo1f28BFrRtjNDgI0FprmMic l92Yfu12mxK2RhwURfR2Q/W5LvwutDnsV3J6qim+mKqcZrYDb2PwMw1GZhdZl2d3nBgmbjOU SUhRooih2Wg/sJ8G28EfiVmDYYyNUPYNx9FOiRuWol//iM9WrecMLubHmeUzZ2wyrTOjtWHN rBSCHzQzWxNoJiT+QmZVUfeUQqRgNSBiQNtY5fg4989rzEzOnj86MaM2NAC7AGYYsj4kxoDs 2W/YrULkLhLWvqQQzGtFWIMQobzgwBfsNCn/EiV6pxUu2zrqWjlpPnpDQaBSlDHikxo2Mrrw BUN5NxU71na/K1aGTMKJIUNIADt6ufGjhydhOt77NmLaVk67aSIiVoqMC7kHWFPpIMmvq9UL OnwHtDGquvhb8mYN1xAuni/RLqg/f2tvNrUp46UdnnkW/VyxwL22ize3pSW9lV5z9eyYc/QY sMiHqOhcQKXd3C2SK0NzFKsWrkvBeiW+3kYTHJ90gHvjhWLiDuR7h70HOjNFrkEU+78zkHeB CpuJStRz3GEt3SzK21433aH940XM5cOVYKpHfrju7Ynn4mI9fU8qPv/z/VuoAzOb3u7A+YpB 4LCdi+oDkorHXahcSZxjW8dP7Ls7BQrbF9fQ/teQvmaLGguoOzwa05e7tw0V64L6Q5HLSxeo cDdpGqa7rGbtuoV7RHxXivoSfpW4RAo5+g+388tn4ULq7vCG7UCXDCu2UEP92fdqQn3cgbfA oJ2VDicV/yxdHqvzG3JDdM0s/FkcPrF0ClQPv3IF8nLLV2afrNImC+RZaYGmc61jrHf19t3N kdahbp3T53M6Lq1Z1DAIYfcldk7WtEMbs+Xq94j1E9XcOp/j3Z/ni9tTnevQ9LzW4Z5bM7Oy Vmje3q9jTfR8v1iaUnvMvzl1fa+jm75NqZ/Tc8lLgb+PL1z2bu6RDsdtl6vsIdiXFT98hTtF Nx3K3dqWHvXbrmSlrtOXjkYA4ZVxzaIloOeBSbq/Hy24pb0WXVNc1Dkp6QBcemxv9oAu/Rn6 59X5HXIIeAG1h89JOzdFajP1HRO2R2i73Z7bOTMyPDy9cyf8UAnMVoMiEylJdoL9JLPv0Nh+ UvU2aZWbsKjQP2AQrC9G3ASjwyOzO2esYUW8oe7Pus2zvTQDF+4HHwiootuqRSV51HPcXtqq uuzmhDTEaams2FkSrOzgvkzOY0QRMQgMStMDDjjggFUrrTyYqNRKdKQAtqM42jH0KEm9lkmk mYzmzGilmIiUUsoOzeLQsDGwFQErCJTFJ0lDAHECf8lD/gW0nbYu3dzWTnXNDBuAKAk2G0QE 2DH2YDSYmYyxltCASROq+cSy+Sh0wnF0eCgGmG2EbJwDu2Smkr873iL1ULE/PExQYO0hYQxz HubJ3I77NwwFKCaVgFhRAsrYZFYMVgkzzesMRs/bahtiMgwdjPTic5YINq7eGDbwz+oEbUtn BW/ZQYYNgQ2xdUoHZ4YZZMBGkQHDKHYKDlld2PhBPgGn7ho3iGhoHDbkjsbQQKGtbC7u4Y2Y yAUaxaatTC7a1+rbmsk6f7BmVqSsd6xvY5ceyN2f4ZzRmd0lhYiib+0LfY3Sk03ooXN0FXGf gTMQRwORYbh4KX+AcVCGOMSB+nIVszGxeWt8rex08yNmKGjW7EZZcwejG7eAbOS7cWbxubmQ Feop5OxejSjtJojcpyco/MZwsUr2lDehbP+bMXPd/OpzY1COQuaxAm7igTYRl8vBawhRttRx 8DH2188wnQ/NFC3qmEPlls/l+TFKL1XfpYqNYW/q2NXPD4IvFQ/Fxht8ZU7osLpCfPvH84uR 6QCgoeCHrAk3L2Z/ohceL/PbqB3gNE4Po1x+YYvceWa/HTGI7vIMpEqxfQMWLrx2C+w93YlQ nGfF1R1K/lguzbcvtArzw9L4RUuxX+UO2nxm9BKa3Iy81d3FvPAJRf7qmgr3U+O2uY6mA7ub jmn12DCU7/HCPbH4OMcNXqKoHH61CZzFEBtEgx3lQrNrARNmFtotesHf9CzRoQ6l1q4StrRc +YYQncbrQ/nyusCzXJx7Nc+mnn0HSo1TeiFUS2FRc32rlUFR8O0KqqkP172QiPvVrhRuOAed 8zMD9pMB10sIbzQAALnVmH3dbN+hJgUHr2hbfAwG8pZnQHXeoTVNpMpaW+H8qnw9aeoa2bZG cGALt0jb9Sv2MAvV48reD86Epeubu5dHcnb4vqyUW1iaZ444z3L9FydAN83vcBiXEvjadpU4 n9NdWVG7lfdg5xo23pc7Cs1N14Ga+Tb+pPpc3Jhz4UvB6gET/nQfGHXR/VlwH9XWfJFZ9eIC xMXjoSiYLlznrgupm1uTv52zNP3JXuvf4TKP4vcQqtx96iqfDru09m+KfvcEpbMAu73Hu1y9 +yvDUhGf6TVHeFPIcXw98SKgHaipIXnTvuptG5OFdnlcJV/NjuVGNyZnYe9TUM3HRlyejvsz XV7HfBuH22Ep9zwbXiB8I3SEYJ+bvPpRpakdOg8dU3vuuW/fi2Mac2VO+K69WufwG6vYi5PI OXpl0r0G3YGUrYoUnf62wtsf275sv+Ur999fZ5nWBmy072GxcWqE8p1LALHYzMzhuZQ98Ppg 6N34cqPv65VKSBGQKkVEaZImaTo7MzO5fXuX22OcbQCY3OfeBLKeCqFutnrKuVObWF+Gf7jS WsMfYvE1QlX2cPjbOD2HoMiHSLKNUCO2EdHuAYqJjDFQ5OYAIEXMhqFhiArhRa5bbExwfgid Xb9DjBed82dC1ddfPQiIEjI6bGZ8LaCoo6z9WJHGGMOAcsJ37KatlGLAhppzlhEpIkqI0deX f2ZdOQirDzDaOIuMULp1H06SpJQD22SZDjo4ERkqdPV8/iYIeYaUG0XQGGOM1sZoGHBfkmjm 3Njalk5JmvYZMLFiMv7Dc9f4GgxtJXeOohgMkyG2XqbKPQXBJEgMmZRSUkxQ4avptv3foLgH Aee6zBrMgHaflFI7852NoDgTAZjL8ncPhUPSsPMEB5wI7KpqjTK8XG0PWIBJxc1IcMM52vnK G5cQg4gJyIjC8WZ3QcForNLbTCKDgsJDbJ3nv4v1prxTxf6Q84OKl9MjEkzjCOtYkFKFE4HD B74KFKbtCUvs9mE0UjPBDm1qfbEV5f7OUawxK1fnfqWiK354bg8NlDeZaweluC4CukmsYZNV 2w1AltXPJ1+feJeFDN25E9n7cCHkrHoBKcxh5gXN5Eqmt7WG1x2IeySFdmgSmPZgJzmXUWqW Ncwv3fjDdOODbkPZ7qqLcguYRoFJoTAIqr/B1Qy0SwBUkoTjNu6y1L5fYAJRGk5OxH2OJOHc hoPhPxq199NSvCEAg6poVf/o7qahjL9t+V+gWYAuDdJSuli6x6pKoxe/nOCQhqJdaXPq1YKj dwHaiXGhg1IVoOO9bBo+8etGgPYTDCDzFkAl4D8wii8jlRwKJ3k3dYj+rB8YzT9DVEab2A0B umdRoCqHNQhPtdRufvn5s7tyO9cyXnH3BejS7SNKSb405T7Cq4ibbtpdORVgwsdKVQ3aCdDk znHACdDRRa9GgI4KsgPP1H9CG18xAgYcf3Jrl2p3vteIX8zse1PlXV99iDDGaIBgDMpFR53t cnNpk88qFA22XaNQClGx91N51Kytf3y+uCt807lWnF9quuoBXPtnLYX27KhP1pxx3ZUV7Qjf Qt0pTY335SZBua4dOHpKL6evO34QBpOvLLLHZzUfbrhFdjn0XHygdk5QqU9RiPfVVnX3HcWN /ZOmcptsi3u9VjdBRcGo6TBeKhadf1M/ttpsvv/TcL/z6UsN3mzi0XT8A4sVoGv2dbUQdy3q tMe76Tvtzg7dnWOgm7pZTHw5KkiKnUpvuM6Ep/tu69OrBUc3+7zpGW3BxMzMqn6PlzYzWr88 p3O/y1qwRl2E2ioBfjsNN7YnR6/hbRioogVeeO8+nV/fcST1drjpNKVfZJW6tgHphtSu6/8k 8iO6ZfPzjz3yaPLY9rS/P0mSNEnSvr6+vn6VqL6BARukbNVDo7XtE7kOnNb2tT/DOhFTosg/ 2HKSprY8NoYUJUoBlKYpiBKl2vPzOsuydrs9O6e11lmm21kIqS5cfZ1eVsZGJNpR222jKIDd EYPQTXSD6fkeIxXv68zs1N5Kz5WYY/ERvg/dNpp9HKsLgWZDwHxmnJAHJOQ/1AcSIqNZgY2G qyFgiJnZ+DCf+NcKBNpwpqMgtfA0bVs+OkMIWjlsI4OZjdHkXjXY+DXkApECG2bjJGVjoDUz I0mT+GmTmWGslmsfb9gYnRljtGHDzKYvcQP6wb8psjVlFYlfdUdqOApD1LkxRjsvcKWcB7Yh 9jYiLl9/HQ+W5b4MA9JsMs2ajdHGKhQMNgba1jwSXJjZyaesDEGx0tHYfeHYoPxa5r4YJSIm Y4e9AyuQEycTSmNhmlkzk2EGwXqox+e/sd7H5A+p6G5kDBi5MWsQX+KzPe9M+I8TiNy2lB5X 4hZ2a1gvZi9uwO/oPn9jUCAiJM7k2+WmlAotHfJ0lWQ3eJclKQpzoT5JXYfVCsrG5xYS50dF 4eGNo6dXvzmhWWojiZhJKfeRhqKElHtLZF99lv0no2x91uyn7asGOydMK4YyJkQKuzZXtsW8 OgM/337zHvUEqwpFOJ7DHMNZ2F+hfUIrxfeU8J4mr0zhqqKqZVmvlUiW6/QwVmrnTmkieEFT se7yaUxfXDGsbhoitVXdeAZA452/6JHdqYtsnU8JHTzFaqBKB9FFNhXrz34sr6DUhPk+iQrr xvMp/2zEX1IAe7z70orSiEvtelpheID4CdZEFyhiba/VbN+lhSPTNwzbC6+/XLC/N3F+AaHQ 24t7Sy6BH/TVz3fZGhuLXT7fFVFia+JPJbdWfPl1N0A7w4d8RLuSQ0uWOiDk9c/qmRsTv4Ph ooVXqTtY7Tsqyr+4su/ndEXPio9gHY/IGlfBX7qaiq7Md3HQ5MdJdv0Qf74ULi/+klnKmYhK g8EueDobqhegHaxKmVQDAhpWXCBZU3e88TrWkJ4brjONg0+qmr3Atc8S0XHYZZXIubf1gP0i sDa3ONsw7SOgASB6S1KsGMh1SIAsm037+rIs48z09fcpkDEmTfvn5uagKE1TUmpe63bWVkr1 9fWT9ib4zLEAzZXrpP0KxA2XXH3uUvmzYrGpqfpGJyolutS4C2aNf0KpWUIDGrB9IqiuElZt uoOX5sdCXnwFYO/OX1ulkFdUy/LONfa7y4phdZfPp5W1yqtV+6vFpYToZlSfSenP6EqS9zlr M6/u0IW2yjScp9XzsfRnoV/a/Dlz0/ugcGMtraWQxN0MrnzjEh2f9fM7U8nNTTRdp5uEyyYB tFdNIulxjc6bWd0LxffPppKyegXrqj5NN9NuKlZLcyBFQztz/lCA6G5bOkTDdFM72/tvdS/H z4/dEPqrpa6R+9OUa+WO9u6uOdWcLXGntDpzT9DrfkfljMtz6Ni41gO2umJ4AVlq56bnHXZD HXWLWpTVd/ft39Q7aap/UzNx0IKK5YbH3PJZHeu28SqUou467OQMpZJEJUkacig9Py54GDS9 pPdLi/Mp2oAipS5imOYen8eb5itV6FeEQuPtLfTDm56ji6sjvggAsBYccA8PFD++M0O3Mw3o LAORUolSVpOgJE2U06NTt0QpZhcA3D8wAH8ht68IrKWwLV63Mw79As3zc7MAdmaZzjKdWcfd fLlt1FClmk2q9PhVmjCzk3LtQyzDykWxGEHMSAwzZ1khpo39J0/c+K4gj3CMP3xOiAzsQBB5 L8Qww9kiExM0MxTZAco0+2HiCEG+Y2vgq9z4Tco+1RmGIrICpQ+stt6+/nLr/4+epdtGp+xA HrWUMBvUjTSmtWZmGw5s7a9j6Sp+BLU3DxfRprM3f9OQGqjuGkEQ9gC9CZr7Hr0NmrF0LFW7 UcN0lbJZU3c01fOJvt+FX2I4+kWlt78IejbvE+rgRV1vF/PM2TXDAIC+yvzBaDqtu3jS43fv EARBEAThVx1jspcf8phTxryzaEkI7jVwISa8N7KiZa3kXpJx8+kl6rtVJfjSdPxyq/PrNI6+ D6umTJ3MazPyeq9/H85EpLUhwFD8kRCUUlAqTRQUKUqC1TJsbJ17OW+lV9gRBZ1YbKVWFyzB 7KOhjXHfskd1KUDVx5q6V+uUKDArlX8QZz+0txGXLrSKFTPDW3CUG4uBILAy2wpxWBrsGpjB xsfAIklSZibyzpDs0nrN1o/I5D1q41/E06RClLR9Rav8+0IbGRp+FUizpmDg6z157TYaNoZY MSvm1LAPhobboPhFut9eY4zO2ATbEBs2ziB7Jngrg0QpYwwlxIYzZlLpqiOfBkEQBEEQBEEQ BEEQBEHohf75md/5+Kse71pgvn/kX3/3I/Ec1tmDt14Do5UiKEX+E9f4Ix5utnrWKKjGtXp0 IfgVpvajtyRXbYGCWtpbBLReSA+v/einpD53UtW5kCCI0WF5mid030PF+m/jdhljYMy8dt8F 1hZNpfUixZOZrf9xFNccvuUs5RL2RLUAAnNtZLRf7vYS+cG+EMVBswIYqi8t2QKWAqJjAMVZ +M7FELE1yAVA7IahU942M465zgOW3dBv+a/1brDTdgR68t9Ja7D9kJtAGRs/gBQAWJGYQUFA J5cSyjARKYa2UdjGWAuLJEkM2U+8TbU5fewzjDH2dUL4kjoEQbsmZRCRgtKcaa0XG+gnCIIg CIIgCIIgCIIgCPsudnC0BER+3KsuI4JTUiHitdllIaIhp2o0sfuzIX2jBUdTRTtSCvfukH/t uiULDqtJk7dXIcCN/uzUxk65FQLOiaJBJP2Um+kcOmCNPgrR475eVi1XC37AyexkZyIQlUY/ YNZ+X8ZHg6tCCEN2w6IQVPQxoA3HttnZiGlm3jE5tWPHju07JndMTsEwMY21WmOt4dGRkbHR IQCKrGeIZu+BQUQqIYCnpqd37JjeMT0NoNUaHWuNjo6OVrdnZmZmcmp6amoawFhrWWusnIyd Z2V+sE5Pz0xNTU9OTUJxqzU6Ojo6NjoCXzz86Gfa2ABtJjaKTUrkBejYSydyeyFDilMiIjf0 YCHUn4z1tbP/SLNpiwAtCIIgCIIgCIIgCIIg/BKiwAlBJQAKIc2dHTZs7GiSq21Acdrn42Ya Qje2Y/VeHN1BC42hQlQQx5nri2ssdyHLkRR2XD0vN1ezrmTYIL03qPjBiMOmjRf4Chay4w6V DgPfRCuUhtnt/BYirmEQzcuFAACSxI0+PD0zc9+WoaNfdvYRbvnDP/noB3+xdXj1+EFqfFVr dITZjUOkwIBhkHVzBkGB0Dr67HPG7/vqf92ThTDqQgUA7Jic2rJl9NTX/Nq2y9+/aWr1BMZH RkbqW8BvwtTU9P1bRk59zWnbLn//rVMHrZ44aHR0JKk7GqwVtfPlICTExKZobSZ8KQAAIABJ REFUK1OoUkBRPuCPdx0xwbrEvsnpxtFGEARBEARBEARBEARBEJ5wWBU0YSKlDJVVxw4e0Dor iG+d5crEDhG8kKRcE87bNWohwbq0LbUCZk+U1nKDEALgyLekQ9b1i2ocmqvzyysyF61S8kjb uiLCrioWVR4utkkSDSJ7aXb8ksG+dogrS9gxtfO++/lgbP3Cm//wk3fjkHP/4ZJfP+b7l1zF zMtaw8tawzaaOkkSwwyQMTYE2cvNUzd/9ZPXMvNYy21ytWqTk1P3b8mm0X7kzs1bhml0bPRA HFhKQ8XGmZyZ3vJAewbtR+/evGWYWq2xgyYSH61O7EcXVRQZmxhAWeuO0iCEBkCS9CEI0O4t h4EdgrLQuqwYYFb9IMPdjkEvCIIgCIIgCIIgCIIgCE8oCIZgQIqIk5IBNDe6EhuCSvKATiAP mqaiKm3/ZLdSXQVyObAgiDbFS9fKtobAC0VYlxRLY0xvAddFf5Jq1G/sn8C9C+jRqnGRXJ1P 1eWltquuXfizFGfdEHbN2qCuXZSPdy8uLRiyBDNoZraWx8w8NTl1z33tY9F+5O5f3Hgz3fC2 y8656fXjc++9/mYDoycnJyenp5ePjYHADGPw6OQObUgbMzwysmNyavv09OTUFIDW6Kj1ypie ni4NQnjrrZtv3XTIaZh/eNPGa7PpHVNTcaj01NQUgGXLxsK2TE1N33LLpltvXXMa5h++9X+u z6anJ6cIWNZqLRtrtVotArTWdmhI5V1B7PZrZtXkU842mTUfCVHPhVc0SqkEZNsnSRJSMi65 IAiCIAiCIAiCIAjCrzzM2ex041KidLBqS7uv400CCpYDC7ohKwZUZHgLxNM1YdSA4noFukkF biq7McLauS8rkKn9JcVsyM0B3FBwDLZhrdZhmQDDdk78Cz8CX4dmSd0QehVN8rTnnH7e6y5Y f9SRQyMjwQg4/NbOwUKFAQVZM1hSxH+W5uyamdn0i1v+7fIPfv8b34ybM59WhbL6tKrdNyWd 2s+3EcGaSjVmZjeUICYnd9x33/xOtCfvv+XnNxPzIzvR3n7vpvsGW897wz+fvh4AsOmzf/uJ H2vzlBf/1Zn6I9cf+6rnHwg8/I13/cW3Nm+fesof/dsr77vo9Z+9dXRsw+/+5TufvxIAbvz3 P/nQd6aPef0/vyD9Of3+BXe99cjPzSKbfmDzdXe+4M/+6++fdsun/vxTN+LA5/3h6569EgBw y2ff8aEfTRFOOv/dZ+HnePWr7/qzoz4/i2x6/z94779cdDjw0Dff9ckb7l+9emL16vFlI6Mp WSuQ3MvbqsvMMOTPHzecIAFIEwVjLZ7DOIeGmfv6Uvh3MkSklFJedLZG0U07ums44RnDCauh 3c5KEARBEARBEARBEARBeBzIZqd//I7TmpamQ62n/+UPlrI8omR4GMx6587GObuN8pBy+lhU PqGiNwaSaLokQ5eUaAYbwsIhyihE7DZJr1Xb5CCBwg2JR6QIUAAByhgb5suADaum2EVZMTRY MQyxAjQ4UWTIyeVuqU1dUAjDdG6bnPoKFbbk4nf82W+d/zsA5ufnt2/fDiBNUxv0ats9TNRK 0k0eKCXd2RgTz9FaG2PiX2YeHBw87qQTj/3nyz71kY+9/2/+v1DXEBld2tPBMqIqKVfnh6py ab5vEGaGNnZIRsupl775rNuvesHPjDly8r/f//prWyM33bL6f3/uZYc/9I8fuW35c7Dqec/b 8ScvfMGdh53/j5eed8YXX3vZpsMymPmdU1u3PuMP/u2Yb190zmU3TNNZf/Oxk6bf8557JnHQ Ebe84eRX/XDr9LOfBQCn/tn3/j675Nmvu3sd8PQL3vnsu/7pty/6AXDIK95zyR8+/Tu/f9mN B7wQBx566xuf9uof3j/1rGdi7UVvxjlrJradccnn//W8Y376rpvvp+Wt1n4jLfv+JN5SO6GU ClHx5LVpIoIxzEzRUZeQYjBx2bCjtlUbYQ3SzUuRkB5Pb9TtHQ/iuQbp4mPwBUEQBEEQBEEQ BEEQhMeRpjDnPTCEWDI0dOLllwPYeMEFeudOEA2sXHnCv/zL3LZt//Pa1y55cS7+t/v00UCF pWkqjmFIRArQ6C3/DuWiLkbbxjcDHNlRBEsQb0Oc/0IxAWBwAgIh8dNElADxnCAzdq5YylwY IpCZn/6sZ/7W+b9jjHnggQfSNE2SJEkSY4xSqhSqXN2eMKdJmizFOIc5Vm42xoRFVoaenJzM suyAAw542avOv+Z737/me98v51h0gZida8ctXq1YmNMU020TJ0li69POtDYMHHHRD/giAPj6 n5/ykccmJsaY7177qk9e/DQAwB0/vuX6H2w8ehK3/8tr//dVd47yrW+7/LubTlMbr7v+0Gm0 t23+n+vx0oNwyGnv+/JLbRnf/eqWLdO7cPvVV35165bpqel5AOd87Af40mmv+Oyu8fEtOGxs Fb774Q9v2toaxZb3/Ps13z1+aPP11x82jduvvvLq+7dMT03NA7e97/yLvz/VGvvWWy//7vm/ Tpu3bKGDV0/QOGyAs994K6kTAaRUMIqxh5JigMFEBZsU1ywwrP261p3DDZtpRyNc0AJaz16b prdQnYTN4D6d7ZeMHDo2uarvhusemXmAn9um5QvkKAiCIAiCsPdgbu804WU6KeofCuEdnO00 OlEDA1Gn05i5XawGk74Eela3NdKhJFVuWvWr/r5S35yznSZjlwyZmZ0rfrWX+vyLNQnU5bkk uIoB1D8ipmuCIAiCIHRDOjhaG+ac7Zq6/m9+fWnL0jt3brzgghOvuOLEK67Y+NrXpsPDe0J9 JvaOtYrt6HmRwGhDWhv0T1CtJluKm84nmqM/F4G3Ps7rAlAS1ayUsqaeXlfOKxmFHftEbpoJ RFRvYu0pR0AT0ave8AcA7r//fiIKunOQiYM5sqXUcFUV321PKbw80q/jP2MxOkwbY+6///41 a9a86g1/eM33vg9mr4LGremYm5uLQ8FZkZ0mw6U51oCiVoAGYAVoZtaZNgbA7e87be177h5f MzFx1Pr1E9PTU6vOfffFc29YNvaPk8deuvljaE9NTrU1eHZy6y82EfMz9l+N9szWqam2AZv2 1BQM46rX0fP/Y6w1MT4OYOvW0w14+sHNW7YScxtYC9y2dv0xW7d8cXpqGn2TbSzbtvm2Ta1R AA/vxOxjm6emzjDg6Qc2b9liVwGAqanpyclj91+NXVfftnXr2PTUTOKOEhfLHLbO6sfxLlAc Dsrc0QaVVwtubaWqL2o6M5TctPqQu9LcgxtM7Ow9jDlU6wMHhpm3z+zcOkGXZSbdSi/sMmdB EARBEIQ9TGZmJ7d/9axNN6xMbP83O/6wP3jniv2cWLxr48Ubv/KMp/y/V7XCGvruhz/6wrs2 /NvTTj/W3PWRjf9x9Yr/dfkRTz7Q3H7Zjy7/mHrKu0887+zBQt91dud1b/ifz/z8gPP/a8Ox B6F9/d1vf93W4QP6BmwXvZ1lv330n547mg4laXvyWy/ZdB0ANtNb2zzW3xolQB31lmNefPrA km+62bnzujf87Kq7+wZWrDn/U+NrlrwAQRAEQRCE3SVo0Cd/4hNg3lOxz0Qd4i+bI38L0bqx M0HVN4KZyUUol+legutcK2f/ADCgGqbDL1CIxy7VIRZ7nSyci9WNpHFWVt7ecPRRu3btCrkE DVprnaapnW8HQwxDIi4oStYK0GGiGv6stQ6L7Ipzc3Prjzoydt7wlsaFcmfn284AW1HJEjv8 KlAwyU4o0mejpsqyzJaS6YyNi/pojbYmxg/asH7tlq0P3L/+8EPuuWXj5BROfdk5a/Flt97a c1526h//6Ec49WW/ccRX33V5VLMf3rwZF7350lP/4x03xhVOBlqtFoC+BLd/+fx1N7+dv/uO e571lz/DNTdvwmvO+e2pz39pFMe987VnfPOS51RXKRT3oc+BngoFJMptiyoJ0ETMmr3CzJyf DWmSWI3YGGPA+WCXVFafO+zlKm2em9VT5/BhfdlAkqQ6a/clvH3Hjke3T03zoxNH7f/I1LQx A7t2bd/O5zyCk3vKXBAEQRAEYY/BvPOHd73zTQ+tfNH6N75txTIA2a6Nb73xfWc+8pL/WH/8 IQsOhKGOuPDkt10YzzG/+O+pR583uH9kCTj7kwc/cx0Qj4QxuP9vfWLDsQcBgLnroStfd8uf X7HsZf+5/vhDlp119clnAZjd/qVTfjH5/55y7vOWXnf28Lav3vmZm1b+3n+tP+bAPVaIIAiC IAjC7qJ37brh4otPuPxyO7Hk+ZesFGLtuLNEpii3f8htfgFFBCpLukxgrv/kzLCpmw1u6Ix2 kGcJ5cDcDr9E+SCKpeDjPMOgBhOYa+0PctJCezEA9A0MPHT//bHEbH9tvlprAEopK0yHmGi7 lJmDUwe8TFyqYtCUS+qz/Y2l53jRtm3bJiYmSvYkqGSeGe0inUFxHLSNgE5Axo8sacOEmQlk qhYcIcPh4eHx8f5BpK0D1x25Yu36dWvXr1s3Mjpibr36k/R/f8Dn47arrrotJL9t8/qPGbMW wA8vefaXJsZbU30KpPpardaVLz/9mBu+/YMdFwEArnnPyX84mUKNja9bvw7A/oNIAXzx93/9 jGuuvu+cK197/j+/6cUfvOqzfB8A3PPZiy787oZ1rS19CrRsfO2R6wFeMYi77z3u34w5FMCP Lnn25vXrjp4Y32/ZWAJKlHu2UQX9mYxmQwzjfm2QPIBUJTaBbf9wJKkkIT/2YHzAdfkGZpZn t88/disN6V2slNLGjA338ZhBywzOqQenpr94wy0TrRNXrXju7eZVmTqgmzwFQRAEQRD2PDu3 f/2Ptoy+5OgLrfoMIB068ZJjzcUbP/0Pjz7pb1euWCgDM6/n25F/RV+Cb9zx0xtXPvd43/k2 2V3f39I/pOYbclCHrjrvCwNXPfPGT//Dyif97coVTUYYmZmd4ySB1s4kxMzqtnfrCCYeelZn TAlxpoGinYiO0qdDCrO63Wb0Dw2P6rk5NTBA1lrEfTfnV7QbmCSsdWQVIgiCIAjCEwfmbHa6 Zn6TlfO+hvd9zmZmiOjEK65wftB7oqgePaDdWkX353h+IRlgGgZFa5K5FRawvAjYCgSzBOU9 nTv/ciXguEmGdhuwQAA00sjHIw8Pn5+ftzpyrDJbddgGQcexybBD2/mq2PlBsA5ieey5gUh9 DoQEYQTC+Lfdbhe3rX67DBQDBrARviCy0zbiWTvHCTcNMhqsDKzDcXA+iQX+kdGRiYM2f/iV /wdDJ5x8/Lr169atW3cEA1PTm77ylpf//a2b7Spbto7biU1/te6CCyZWj4+vX7/uyPUE+vm7 zng16ISnngTgP99+7g9ardHV4+MgnHzS1st+842t1rojNwC49YpX/umtcyccvWHnVW952VUA xg86auqzb/rNz9po5+Wt8aM34OCJG9/znFevGV9/9HoQNn30lX86OT192aVMwFhr/OCJ0Set Hl/eGk0U0sTH9nsB2nunJBpMYEMgYlaRP4eXmMMeVEopBSKyY066FjbGsEHkB92B2fmdW2e2 foG2EgADBsNf2Q7SfUfwmi1z6eCBr3pUH8SJuD8LgiAIgrDPMPvTx75HA7/5Uq8+W9LBJ521 n/6rbfc9sHLFqs4Z8LYv/+Jdly5/43fWHAIA6D99zelz93z3uqlnHzeWKgDI7tj2rSsHnvtH K6/6YJMEDQy01p2nvvGJbfc9sHLFRH2S9vV3v/2Ns899JV9/1czAM4943Z8t2/r+a//jm2kf wDvb7d958ttfvawvMbdf9qOPPrDuhRN3/fdXFdrZrhPXXvw3K1f2kZlvb3r/9Z/8ZtoHzO8a e+mVh7Tf9/MvfX8eM9Mff8kDy84/6o9fPrxr04P/+pp7Hx4lsJk/7vA/+quVBwxg25d/8a73 tp77ogc2flUNn3/UH7/iifCcKgiCIAhCTjY7/eN3nFadnw61aq2cF4Y52zVVna1rZe7dpDjq YDI87Pygl1SDVuwsfAFD7AbPg9UMOwdoJmnt7Dh9QZJGfaSzqpPe7OhsqqvQUDCYmRWl4e8F 7Q2YcvfnUrRu/Z/dCNCxvwf8uJRBHS4FQQelOFYqLcHEJCjiJbk5ni7FPgf12YbfVtXnUg7B iKO+jYJRiaLSHBvwywjTidbaENtA6LiqSilbyPDoyEETB9m3CuPjB422RqGotaw1PjEBqLFW CwCDb7n1NuYRm0NrdHRiYvyoIzesWb2aWdtWtdL32GgLBKspT0yg1Wq1WnlffWx0hIAxO8fv E3s8LVs2NjbWsvPGolWmptyJvWystazVWjMxvnxZK+yFOPw5JQXAJFDMTJz4xVaDtvvX7sTw OiFJEiJWHoo8wd2OWOiQNUA/BhJKCWDwrNlld3dfNvAgMsL0iolls9nwyOAgo62RouGFjyAI giAIwt7E3PPjLVh+6KFPLs2nFcfuf/jsXdseZqwCAM7M7Ew+NKCZM/XPDgD6htaeseJbf7Hl pue3nrKawObhjQ/fffDq3zh2rmNN1JNOGccHH3r0EaBBgAaA2Ueu2X70H1+9YhmAuR3XXH/o a64eXwO0r737na+55XunnPKcpwDA/Nfu+M5bjn3b1aPmroc+8uLNV32zdd7ZAw9/8ZYPfe2Q i/579cEwt19x52w6dOK7nrrmcze969Llr756zSFAe9PWj55376q/e8prTx/A3I6rz/j5P358 4P9e0AKAHff/bNVxb7tapGdBEARBeEJClA61qrOTxYU/E4GoabDBRebZTDI0dOx73xt8n60f 9AmXX37cpZcu8TiERIoBVWM+XHV96AwX3Z+r8m5t6TUzAdPBaqNYRDynHHndXH8FmGLUcykC miqjAC4oQJP3InGeFCh6NIfw52DRkCSJ/UXRTyMomNUNi0057FpxBLSdb9XnoEHHAnTsC5Fv W13bMeUfJzaNQxlNa5AbmDIf1VApIH/v0BobGyc12hoDMDbWGm2NGaiR0dZBE9waHR2fOMgl a7VGWqsHkY4euG7D/uvWrVu7du0RTgYvlj81PQWAQMtbLQBWgLZbcfDqcbAJpinKnrsEIrJK NwAixK84JqenwGwMt0ZHlo+1li8bGx0eZmYYZit+AwlIKaUV293n8/HHjWYGVJowc5ZlVoAO js/Ka9goHmS1TVulTyWjQ6P9NGAFfmXIsCaofgwY1tOY7zd9/NiuUWw5dOCGW+fP2MXLFs5U EARBEAThccU89IiLWd75oVve85mos9fOJqGOql+LVpw58ay/uOmGG+aOXT2odu649q9nTrh0 /WpsWbjABbv01H/GS3yw9sCysz451p7RswDWtp6OLQ88PA/0AcABh7ziFaMA1JrWcaeYz31r ZsfZ/VNbpwdPOGhwRrcHkyMuOKKStb7jv26/94wNLz05nZ3RwMixF4/992WT913QGgQwtPIF zxP1WRAEQRCeoKSDo4uMdN7zuS2I3rnz+vPO6zxn98mlSyrPR7NqXF1EDUPoVaW2pgQlupTm gqZHdQYiJbU2zpkbCg6qL0cCsgEr5QaRs8liowtLateFDZXmvBhjzMzMzIMPPmizTtM0SZI0 TZVSSZJYTwb7G0fIxtolKs0Xi86x/4aVPrXW1nzDGGP/zLIsSZJVq1aNjIxUN5wZRFA9DosX Y6BAhuFVaBcNHk9jqDU63Bo9MB8FUjHz6Ojo6Ogoxk3YxuGR1sjopg+/8i0YOvGpG9avX7du /fp1ABS4ya4PxcPFxvPDaLDLNvHxyyiq7WFoQd8OOryLUES2YdsmdyzRRImmEMKMqmqviNru NUAcxg6AWcWaPRfpppHnzOycmoUf5VJlCRhmwJ29fdAr1S920XOPHdnYpuGbZs/qJk9BEARB EIQ9CyUEgE05loA1G0rGVw0AOwGMvO7ot70qDxzSdz74wRfe1ZjpQGvd79K3L3n4njPXHLjx se/vt/L3jh7AnQvURGvG0PL9Ow+VMbhsxUo/nZnZye1f/83bbhglsJkGjvVL+p866OqaDixb BzwMQB3+giOOfP1dHzjzzlP/4aRfOzIyrXa5ze3YjPYNd1z+kny79jswcWkGhsdklEJBEARB EH7JMVSOLt1naRSse8xHd62tu/Rac+7CUNCELSnVCbg26nnLli0nnnjiyMgIeRfgID17fwb3 G7KOS0KdAB1+Q+Az+4ENbfitdZq26jMz79y58/rrr9+wYUNu92GFZ/vrPUPymi/chsVWg3ID FVI0CiSQgKrTgNtjDKv3q1CB1tjoxMS4rdL4+Hir1QrPK52qFMfeMys442qXLYEAsg1rOKR3 m8xMyjamc7AmIgJpAyIbAJ03jbXZqO5r975Bl2cqpYhAyig4aTt/AcLMzJlhzdBmAQ3awGRB Cm+r5Xr/9aNPTpJ002M3P5psPWAge95+O80Bm3+2fezAgev2mz+4c26CIAiCIAh7B1q+dkXf runH7ucnHRz3n8y2nz58e2u/Zy1y5GR1+AuOOPLjd962cb+tH92y/PePf/KBaHcWoE121/e3 pCsPX961zjt7zV1vv2jbM/7uKW87fQA7H/vC02/pbLqoDl113tUHPPylWy//s+u/sWvitd9Y c1hfvJxIYfj3j3rrBWMlKf6hbmskCIIgCILwBMVQUJ9Vb4MQVhyTF4hZZqsx5j7JJfeMcvLG jBrSN0dSx2qt+5NyT+PO5bKdw8iyeScnKgUilXtDO1J4CbW6Rbt27err63v00UdDjHOIgA4a dJhAFE8ea9ClrY3NPWAFci86GxMmjNZZlmlmbrVG5+bmTNFOz24eMYOIO7T5QoSmNAQwa4D8 IJLxrwaH+WQKoeZhM1ut0YmJ8VZrjJlLzs71RXNNPgaKiIndxhrOo6eNNxcPKxLDGDsKJ4cw cA0GoAwT2SUuvQ5xzf5YZkA1DCJI3usZGqAMxcM9hLFn7aydZcBAh8004IwzGChKlmH5b6x/ 0bEHnJBQesf2W6/++cfPHtt+9OAdO/R31qZfHVDbZsx450YTBEEQBEHYO9ABZ06c8a6bPnf1 5FG/OzYwYHtCnE3tvPOqqWVnr15zIJAtJl916MpnnnfbP7/mp+gffOGbFjKvyMzO2x7+1qf7 T/67/dd0W4K597qt/WdsOONZAwDa983eD3R2ONOzmvuTA15w5Nue89gXnn7LNd9bddhz+vPF 6cB+R6uZf91x1++2Dh8gAGZeZ6T6+xozFARBEARB+KWjN/U5rNWFy3Pt0i5dB3qoiVU1GUyF X+eLYdjOMWAFsvYIHepZsuoN07FfQjkCOiRm5ngkRKsFZ1k2Pz/vJeyk3c5CELQdqi5JVJKk AHwotC0jD5Ao+Zsw28BnhMBnrTOtDcBaW/VZZ5kO1s9DQ4NBpA45wjvhMcAlbbrHA4KZVSTI xzprobH8EaPJFqf8Urdpw63R4dboKhNlxcxAB3083iX5dNnGmphBIOY81tuOl6gAA2NNwe2O CwNIGoZSBJAiL9YThchqe0hBkXHmKzU1A8Pq4EGiLjm8GGOytsnaC0ScG4OEVUrpAA0d2Ddx 2LIjUupLVd/4yPgrDz9p9dAdSqdjUz/ZqVrXT77mlp2nds5NEARBEARhbzGw7Iz3rLnu7be8 G0f+ybmjAJDt+p83/fQzN636vb9ZsRuDVqgnPWP14Efvpecfdlx5hEMAAHM2q2dnACD7yd2X vPORZS9ae+7pnV74F6Hla1fwldvuvme/4QPMnV+6657IgqMOc/vlm2d+c91RB8DcO/vA2MCT DxwoxraoJz1jzfL/vPdjHx9767mjAD/y5c0/XHX4b53e35ilIAiCIAjCrzrsTTuYy2Gdtelj tZbdMH02nwZdsXeB2oZyGxR+EyINVgQNVgDb0FVr8FunGRrnCeGcduFChJEkiuzAdSF4uril abSd5YyzLDPGzM+3lVIf/vCH7DiEVnoOftDhz2D9bKd9tlSK5TZF2u22NdwIE/Pz88aYNE0v vPAPmE3w4vDt6+LAEcT43fCA9lmWxfvaCHm3Fc6Son7FOE6+c7WaCnV+IH57DcG9ebCRy5yr 1RoAk1F22unTLkoaAJgYWciZWQGaOQnfDnjzjmqtCjX0ftNhUU820GTG2lN97QRzmNs1aHbO zw+lc4/OPTIzP/0IVt9+720nr1pzR/vp1zx60p27jp+l5Z1zEwRBEARB2Hv0nXzI276w7Gsv 3PSez/hZ3NfXPzQ8qmdnkPZTunxg2WChL0VEIxP9fQoAqC8NXsnJ8MDylutU9p2w6sXP23bX c0adip0k+x2UKvLTK6a+8vqNX3H5pc+/7OTTSjo1Uf9E/2AazYlzsLHb/7jJZjL88oPPmHhw Oi3XIf4z6QslqqP+6hhbXFz5vpMP+dP34F3v8O0wtub8Tw0AHKcRBEEQBEFYJDTfP/J41wHz /cMdljL17KFcWH1B/41i4t0oqnF1QwBbLbH4670ffBo2ZHXIRom7ujmsKEVSnlkahvHw0eVe onTi9Pc337xp0yYiuv7668844wxrwfGBD3zgwAMPtC4cSUR1KMIgRqMSNhtbPIchB+fn563K 3G63w/CD995775vf/H+MMStX7v/tb3/7pJNOYuYNGzY8c/3RdiMAJwMft+HYj37jC2F7Nt96 Y3d7JOyB+sjw+M9cgyZo6GhmpcfNCgBFnsqNXi0NEelkvTOinZTENSnGIwPGumjEAdRhqSom dgH2YGu+UaohR/p1cVGjlUq7nU3PzPzFT1urjnxa7TYCyNrTczsfAhuACduPGn/0qAPTyfnH 7n4s3fzA6pRaJ6/aMpi0r50+qym2XxAEQRAEYZ9hbsfXXrjpOgADK/7X5Uc8WcbfEwRBEARB +OWEdfbgrdecu+bBoaGhNE0VpT2ZLlQdnKu2FTHWTKImMLRBLuswSGB9fRqGqFNKlTygbW2Y UR8BbUxpjEG7YgqEUfDiGNbnPuvX7HTqDYHJD+yXN4cx1gkD1p3ZGDOiWgrIAAAgAElEQVQz MxOE5r6+vlhx7uvrgx+/zs5EsXG9ubPTnbMss1qzDX+Olejh4WE7bQu1Th0F9oBY2dPrCJ9+ j5Rrmn1Eqo4tIAUY46OVORwBzMbL0LYIu65NqaOjirwrNAAdGXnDOZwwUA7R18zErLuIgE77 RtNlwd6Q75yevGfyfsK4VuPDY8tBdMPsumFsE/VZEARBEIQnAgPLzrr65LMe71oIgiAIgiAI e5fFeUDvIRbww12SIrrbXi8Mcm0Aayx4pkQIdhHOMxiwmm+WZdYEQyll7TisEbM1ZMiyLEkS Gwxr9fIgOidJkmVZrIVbJTsaY1BbrdlmG/w37Jz5+fn5+XnrvGG1b1tcrdxZjujm+kWNkcgq n1/MKEoTljBIJbX5+OXWGCOvgDLFXBvGZsz/MFyqibXRCK4mABS58QkNmI2xBx55422nS+ee Ia6MagVCoLT1/XBzvPSMyHTGMJiKv4YNuMf3LaSSZZwsi49KRjIDiR4SBEEQBEEQBEEQBEEQ 9lF6dcao+lHEgcY1qIpgaK16G9Lzgua/NTWqMXvQ+dB6kW8zM1N9uUE1LG1IFN2KWjE6DcmI KBdamYnI+BBoOwyg1YhtLa1NszEm+G9Yndr+aacBWME6zsTGPtucbQS0FZ2Z2cZBt9vtNE2t E3Rw7ChZTOTb5KxD9h7NofLU67G4aEz4ZcXQICe727cTzkI62G4Ud3vJ1ZqI7FrG+2lHwy4y vDBtj+n8lwtzBEEQBEEQBEEQBEEQBEGo0o1g2Kuo2KTIdaNblkZ6q8+oF8VPdVH3NB7eryTm hghlqzhb+djKl6eeemqr1fr2t79tpWQrNyulQog0InU/CNkhAjrIzVZ6jo047ISNiQYQ3KJd JX3d8sDevao/P240H0DOeLo0qmZ8pLjhEb2U7A20yyNSWsfnQtQ4Y6/E9QuCIAiCIAiCIAiC IAjCLwmmGN9ZnS7Ta1RrjyGhtepzBy/ibjTlnnAWHLEBdKiZ1poZWmdWWbbaMYBTTz31mc98 JhGtWrXqC1/4gjWGtrYbWZYBsJK0DbANgc82wzgaOsQ+h18rSff19fkIaM4y3W63Q0sR9pLg 3PwGYC8NW7kIStHNQLGxnA5dSFDa4/Ec9i2+5MecIAiCIAiCIAiCIAiCIOzjsKdJDmxS/+LZ uxMB3Wgp3GvEtBf9apXoXvNZBCnYmXxYD4aQXbDgMIYBDtHQzLx9+/a5ubk0TQ866KCXv/zl n//85x9++GErE4eqWKmaI+I46NgMuvSbZVmapnNzc744t1bB0Tiip5EDd58mNZYq7yqWVn9u 3MFcGnqyUSJ3wfnsIpqrg2/WHnnMXBkCEgxmgqFuLckFQRAEQRAEQRAEQRAE4VeKOqPkJnoU mhelyMWxp52l5OaFDfVcqOh0aGQ4y3TWnqvGzDIzwFaXjC04rrnmms2bN5977rkrV64cGRl5 xStecfXVV99www02ZUgP7/5claGDqXQIiw7G0MGpI8Tzdm6ReHS+fYq96QpdE/vs/qjWSjn7 6LoI6LqA6D1UZUEQBEEQBEEQBEEQBEHYdyHP4iKOq9NLRa8R06V1Fx3Ou/gI6D9+59u//JnP 3nHrpp3T01oXwmOzLLMeGtZPI4Qh9/X1PfbYY+973/te/OIXH3fccQDOPvvsVatWXX311Vrr YBhtqxUr0SV9uaRExyJ1vGFVqXRJtnxxNAwCCT8IZBFuNAVvyqeJ5gMr8QmQVN9ClFYiY/yo hER5lcObA2f7jDBXDKAFQRAEQRAEQRAEQRAEoTeswtaNbmnlvBBgG4txvUZA745QHqMaC6ib RwBUZw0xPf6Upx5/ylO/9OnPfuUzn93x2GPt+TaAJEngNcokUSESOSjLAJRS//7v/758+fKD Dz6YmY8//viHHnroRz/6Uaw+x8Rm0Bz5QZek6rAotIIxxtanp5baQ+zOG4a9STWeHQCYkOTD XFaDpstB0KQYTD2OQ8jGTG69fXHVFgRBEARBEARBEARBEIS9CSk1Nn7EUuVWGIEQhela/ZAB FSXtRuh8vPTJ2nKtBNm52imA/sHBF//OueuPOfpD733/fffcC+9rEYKerShsCfNHRkbOPffc iYkJO/OLX/ziD37wg4GBgWjFXG4uRUCjbh+EFW1j+WRg5g4+G6UQ41hU7abR650reieO2g7Z ElH1hYGNMY7r1pWHSKPbOUVJqoXZ/GNNuawm208J4tcGpQJKieF2CgyTaQrwBq54+eqmRYIg CIIgCIIgCIIgCIKwj/DaT2+tne+HxzOkVMm3tlZQ9npgnqBEs/xY1gmr0aCxCFcjOPbCgipo Y2S0V4xLKWkhETYNU8eccPxr3nTRX7/5LSjaUVslN8uyWIBevXr1S1/60rGxMWbetWvXxz72 sTvuuKO/vz/ENduJOMY5rlk8M46StnPiOOtYkq5lXws93scp7Yu9aVQtCIIgCIIgCIIgCIIg CL/cKIbuJf0TSNmsarx2YkHzhFyA3nTTzR963z+0221EI/uRU7DzCGhmPuGEE57//OcnScLM Dz/88BVXXLFt27YkSXbt2hUU587KZu17ABuHi6LobH+jCOglVkuppwD3pWbvjJ8YvyFhZntU hFhmIuogQXNJ3ycAYPuPGh2uBUEQBEEQBEEQBEEQBOGXhtoA2VIcdJxmCTWzva+/dVMiM4eN XDC8NQUwPz//jS995XOfuPKxRx/N5tt2QVCQrUCZebTWw8PDALIsu/322//pn/5Ja52mqQ2O jivRTXRtHOkcJuKdZ6PWO4Q5SwBvD5Bho0uN2cGDRhAEQRAEQRAEQRAEQRAEVNTOoFjWDLS2 j8lsSyWflsTefHqh7U03/eKWL33qP3/x0xumpqaMF5FDxLExrLUBeMeOHQMDAzt37mTmK6+8 cmpqamxs7MorrxwcHCzZf3R2Va7WsmoJXUxfyDPeILJRy3t5EMIuDyCfrCrsloa2RByFvYh3 GrGnc6EsbpjvatWl+bUpBUD7CGjDrMHmcYkbFwRBEARBEARBEARBEIS9TsMIat2ORdcB4n3K aaDetcFGsSJvAa8uLmQ6kv71/3lL1s6ydsbRMHpBv8+ydrs9D2B6enr58uVaayIaGhr64he/ yMw2FNo6Ptu1Pv7xj9cWc/7550d15fi36uFtzaO9vFznAc0McrItNY9PKFSx0rPy1ul7N378 6xcv/62P+j9OuWTj187+6lknfu5FG7924eFfv3j5uzds/NqFh+9mzr/36e2XnrkUdRUEQRAE QRAEQRAEQRAE1OnLS6hBKy4Ep+4OSyX0NeWz+AjoXVMzNgNELWV/jZOka9p3cHAwTglAKcXM U1NTC25DbO6Bih4dJ7QFGmPK+4/iOOh96O3Avk9CiogJrGzj239NQ3MSgGRJyz/lkoLKfOHX tl+4BLl+/bYNG7dvPxxfv3j5uz/wxjMXK2MLgiAIgiAIgiAIgiAIQpWePKAVly0bulGGrQzd OQ7aehWoPRxQ2jioYK36DCizkAd0Ll1TLuZGg/7lbev16NzxJJaS7dJXvvKViJo7LN1vv/2q EnOcYbzIzo89u/NBEYuDBYr23CNu+EGlUiIGFKDtLzMBBlDxLzGIyy4c+yJnXmhl7CM2nPI4 10QQBEEQBEEQBEEQBEH45UWGo0PvjZBahbg0NxKgUfVqsEvzUR2j1ZcvX965WnHi4jiH9Tbe Nrkq+2yEyhAXbYhL299Ubr4tXpMtjdtYyseFhFNhfgdhNmRnTGX4y+CjXEfJUHvB3Rn2ThzE HCyeY69nAMykEgXAuEoQqUSxAlSSKGYNKGbNTMyaWDHZhPXuNktBnfPGHR8468S3Xgv07Kfx 9YtP/NyLNn5Nwp8FQRAEQRAEQRAEQRCE3cULbqxUWc+s+jqEVdBLLDNcuHSUgy3FTlt9z+fG zM6sg1FU/LgUix3XiglEpFGuZMct783x2BQ9o0u2GbCW0q7Uwqh1ZIOajTGhrcOfWuvSn6WU C2I8djrO0OYWpXQWHOQtIwqtgbJ3xG4afjcR6rP7uXfex+GIKSjKHopoyjDsY2v0XAJQ3ke8 /EuU2F8isr9+fkHL3r0WvvatJy63XPz12gRWRd6+ffv27Z/Guz9wR7cZ3/GBs3bHRFoQBEEQ BEEQBEEQBEEQFmLJYzS79B7YnXL3ctR2tbgUsaRIXLa8IBDlKmSYH0cuIzLlKOXeYaS72lDl YuiuLYtREwFN8ZrxAlvXPP+iWlqNg2YuqPJhQ+rrDBASUDfW4KEgjkaEBNxbCzKhtv59iHub wQVbkkptKwUbzkegjAom9hOFOhF8/jZGm/KwbGJmZVsAYDAIipo9XxZJyQO6wh233YxrP3ri 8rfaP3/vHKA7Sfn2W689+hxRnwVBEARBEARBEARBEIR9mV7dbl08bNlUutOYhx0U5z0nRlej sAMpEDsrF1w1jDGhSiFmOSwNinPsGlGScWsrEaestYEOjtKh6E5Rtw2LSoptkwVHKao3RNHX Cr6KFwier6XzAVGiurEdRHzABYGXEqPY2iU/7s4VoIq7N1Cu/x4KM/f06LxhOfPS7T2vIwiC IAiCIAiCIAiCIAiPM7xQtGus/jGzjSjlBkPjUmKuCIZ7lNpqKOdiESJmGQCUUlEQdMFQuOrD UI0XrvVqqBpHVJXTUhFEFCKy8yDoji1Vcqio/bO6XU1/llZ3K3a3p5h6U6tD+lg0r2KborZi Lp+i0FxJY8I/iv6BNcGADMgoGAWTEBMMMRKQYoR/9s8ElIDUkg8Defjao/HRHpw3And84Kwm Vw9BEARBEARBEARBEARB2IexwmDQEq14h6KCWtVg44jeaoLaxE1Z7W79m8uCi4B2ThTl+F72 /s72T2vNHOdSDa3tvuodmsOWaH+tPXSHfBTVu2IvYQR0rNwvYs/0FC9cVcM7r25Yx+86Orwq 8Mm6cA8phD9TSWTuaXN658xLN15y1oneg2NRwdCCIAiCIAiCIAiCIAiC8ESnST6t2i1UNct4 jgbHiuCSx0FX1edS9dJcX+Q8uJeK/hiIR+FrCK1tMoBuWlpKWZLqo/RcdqUolVtUVEPKWlm8 Kj03eUDHviKxDG0MgMaBIHMB3xdkwISCRs5kN9jVvtgQZsH46xKUlN91dEhPRGBXailREs1g N8YmiIIndVxR69jC0cuYLqnaZIQ50aLDL/za9gt7yTas1fNKgiAIgiAIgiAIgiAIgrDEUKyY NQqJtXSjtTFZ+S4fdq5orgxmbrIt2KMuHE1GxGluAG0HpYukRmv6bKsVpmutnAPdiM5NIdlh Ii5XaxPr4N1TGxdcrWfnCOjajBdRme4hSgBTdd6I3bct7A24SwJ0vJTKTtxduZxHrWEPiJIl 9J4OghYEQRAEQRAEQRAEQRAEwdFBNV5QUGbmpiH0lpYOLhxppD4jl8vzOGJDkXbeIGsirNWl iN4hgDzKLZ/TQfHkojzNrJsLrZlucg6pqt42ZZ9KAGjvxpEHa6v6eHAnowMAkjg6mwGvNCd5 63Nude1TdvAqAUAgqow0CD8yZJVq3LoVuNnUjGTosoIPh47WUoACdWmHLQiCIAiCIAiCIAiC IAhPLEJgaJPeGEtozaKo1RgrSl3khBybIseqnNMno0jZzjphXPM4MJc5L73kLFFLU861Oioz u/pbLddGshazTovlucXBgoMjt4YlNICubkzdtBsVsWzB8fjy/7P35mF2XOW57/utVVV76Llb rdmSPEm2PMnYjiewzRAGE4JjEgIE4sMQyIETDslNTm5ykydPcsKTnFyS3EMgJ0/AAYeYhHAS zBDASQAf4wGDjTxblqzRstWSutXD7t5DVa3vu3+sqtq1px5kGRtn/diUqmuvvWrVqurm4V3v fj9iiEKrB3zxmO18s2VcSEvsyTIvfJHB9GKRzluCVhYNjX4R3ReHw+FwOBwOh8PhcDgcDofD 8XxycgkerQ5oapHcmdkWISyVSkEQTExMnIpxLotisVgoFGq12pIRHNRq9V1WxkQO3eN4b6Vf CVgDIsKEVJ6VTNfPPmhyUr5tZ83k1u9sp5lANvgZdh1EViA6J93mUqeTU1NzWF3aA6AkCCb7 qIhwLjhGtern3UJHBASQwFmgHQ6Hw+FwOBwOh8PhcDgcjuUjPSyhHYdT/bCdTv0z0Xep/Ui3 H14AvJxnlpBWn8tyn6MojKJocHDg05+++Uc+Npmbi8KwkeVBp4eT4JLFzbnP78haixPmDyKr o9gjQoTznvF8n0ljkR4G8150LQvZQ0BXWf/oMEF3MbMvVs9wiVHddttti7zrcDgcDofD4XA4 HA6Hw+FwvDi4/IUeQAvPa53AU0vXoXb6az2WLOBChFveZuZ6vdFoNJ599sjzO9jeZPX38ock U58F9BwE/ZPLj2iNUEnDl3OV+pgAonzmdKlQHOwbKBfKpSDQSpX8AkTsq96omzhuxFEtrFfq tdiE2Vm6xru0X8IKQzBEpDXwm0RAaZgzASLIxX6jazVGsasAksZDd+Omm25a0cAcDofD4XA4 HA6Hw+FwOByOHz1f//SuU9thqrTlYxsWjS9Wy83U/THFywuMbX7YYrF49OjEwMDgCzGwhKNH jxaLxa6pxNYFLc/BBn0Sn1z8aWgLeg68YPXI2Kqh0UB7WJgHM6o1RBFqNQQBRBA2in4AT/eR AjQGR6M4mgnr01E9ZLOcOI7Wso0rye4Q6RVLvZzzZinsvRrMzs4ufzAOh8PhcDgcDofD4XA4 HA7Hf1iWX9ftRUXXYXcKhp4VdNs0R6VUHMfXXnvtt7/97Wq1+rwPtjflcvlVr3pVmx04n18h PWJTniO9C/RxrmKjUJa60rRFgwiK1IaxtasHRimKUK2iVsPkcUxPIwoT/7AwhMGJDxpKY2gI o6O+H4wLr6LghIqPcbRY+jUAwECoOdrcLPVor5LB2hBnIHE9S6JHd87DUgNwOBwOh8PhcDgc DofD4XA4HO0QA4CoRRslWh1SMbct8velQVKEMK+3VufntdZxHJ977rlnnHFGrVZrNBphGEZR JCLticynFCJSShGR7/tBEBQKhVKpVCgUAPi+H9brtlGzfUcPnSHcSsDU3Ha27zy4CCZXbzA7 fb4DIrVmaHT94KgGobqA6WkcOogohEhTbhZOdpib2/l5HD4EpbFhIw0NjsVmWPioxozvGdV+ Fdk2GUAmyi9lXmZSSjj/qUTAb12EyO2/gFHbDofD4XA4HA6Hw+FwOBwOx0sckl6FCbvQKX6+ +PGQkxgFAtBTT+4+69xz6vU6gCAIgiAQEWMMM9vt8y1Aa63tNl8Qz/O8XY89nkvfsANutypz h1oqra88SiCiTNeR9PD+ClRn6AenbmKt1BmjaweDImo1mBh7dmN+PtWdGcJzR49PHjo0e/SY SPK0DI2NrtqwYXBkGCIwDBE88ThKRZx+phZZz/GwpoPDg7FWAjAhvwXsKoqdpeb1tsxRy1Ux ERlQJuJnMRrW/ZyfTwGIhFsV7WZceJICvfQjPzQ0BOCWW26xqdC33HLLDTfcsOSnTiG33Xbb TTfd9NKIBHkpXcvzipsoh8PhcDgcDofD4XA4HKcK1Rlg29Gm0xKaqm/tSdA66SI5zraQXKJB J93kO2sJSCAoG2ZAQN4onfhIEw+1LQKXwT0yFpRSaHVb233KnbNNB+4sWUdE9hqTzxKhYza8 1vMSgJs//ok/vfmvi8VirVbL3tBaa6193+8+3ueH7EpKpVIQBH/z8U/Yw3l1tU0p5nwmcto6 CYpOleMsacKk73fSS1hl6ukH9pU+e2i8BMLCPI4eweGnwdb1zBDhKN71vXsP7t33zInjB545 FLFhwFPqzA2bNg6MbN68edtFFypbutAYVKs4fhxr12HtuvL8/Nkzlb2b1jZ8P10naG5XWIJQ MbjtU9bsbOVs1e6DJkiXJ3SlKxCZDvhjJAjOzc09+uijvu9b179dd7FrMNddd92pOouI3HHH Heecc866deueSz8PP/LgunXrT+KDx48f237u+c/l1D/WCPCtRw7d/IPZQ7K6EXniK83hOky9 /kx909VnlAvP9c8dEdnltOwPeraMdyqG73A4HA6Hw+FwOBwOh+M/Ipldui2COS8BZztWjD7p cy0/nLqtZV6D9pCTYG0c8AP3fO/zf/3pt73vPTYJOoqiF0ouUUr5vu95XhAEf/+pm3d+7z4i iFBTWe7Qj1sioZcxOaZL7nHSUdfDhO6TXlDetoGRwBg0Quzfh6lJiIEITCJAP/qdOx7c9dju 6aPnv/MXX3fFlf2r1xBRdXLy6bvvuuvWvz0+Nx3Pz19w6SUQAxYYA2Hs3Yu5WWzc5FUrZ+7a u3fr6Y1CoWOYK3SjEyT3GQJULl+Gc1ObrFeIIG+CTqKiRQgM6fSb/1jwwAMPPProowCsrJxI 8Mz555yZL7/88nq9HkVRnGKMAfDJT34SwOjo6Nvf/vaT7txO+MDAwLnnnvvQQw/ddttt9rht 0KvzXqxbt/60jaetaBLsAAodT9SPjCf3HNmzZ4IgnKTRGAiDdKPeACAcx0YERCD7nQgAMSeV M8FGRJGmVWMDr/vJC05uAF/deejPfhA9NvgyKSOiKFtr2a3Pvvso/a+/PfDG1Uf/8E3btFr6 b/Td99w1X5mfmpqK4zgMoygK7QNTKBTOOuvsbdu2btiwkQhhGE5OTj575Jm9T+17xzt+4eSG 7XA4HA6Hw+FwOBwOh+MFJy9OdtKakmEFB2tN6+gibdM1gqNX2ga1dNRlFEpZ6TkVo6hXDjUD IMrbme3QmqEUaBGyc2NYXvlBi9e13af+v7946sndb3rrz207b/v4+HiPIf4omJuZ3fXQI1/5 wj/e8c3bQYQ0KCK7PuGWS7V1AQEFMEQ19/NbUSCGKCEmdM9Y6SrskkAp1alNE+jMQl/QiCCC /Xtx7HiqPicRz4d3737qqT1PVSuv/6tPlVetAiCGRaQ0Nrb1p9+8+Zrrbv/wfxl59vDQrvKm 0zZBGMaABWxw4IBU5mnjRq8+v+mJJ/dccL60ymG9okK6IpQ86dl6SCZGJ3nQuQcr2Zd8q2Ya +vMaiD49M/Ptb9/xyuuuGR0dfT76v+eee9auXTs0NNRoNHzfn52dnZiYqNVqvu9nZlW77UQp VSgURkZGpqamTrpzAMxcKpW2bds2PT1dLBY3bdp0/PhxpVQYhot0fqpo3sRl3MAvffVjyvPj OIyjcPmnIMLZZ1528YWv7dXgBz84sGFdeWCgGMfK91VlPjx44NiJWVMoeV4QFApFeIogYRSF 82EchgUPa9eWlfK17zMorM4PD5dm5xrLH1KGAL/+5V231i+v99dw7DFUjqE+D07DeLwg7h87 NH7WX1VO2/nX3//Hm84cLC0h0x89enR4aGRhoVqtVhuNRr1et6H55XJ5/foNnuePjAwDJMLD wyObN2+amJg4iWE7HA6Hw+FwOBwOh8PheImRKGwrNCh3F/FSfS9L3EUqAS0pHy6iJudP1Hkk rzG2fTBPuwCd8Z1v3P6db9yefi7RIoFWhd8eSGNF8lbq7DzZBKBTArcH07eWKKBHlIrFlDsP 2uyJwkh0aqJkWMk8EGDjkpXYfSJAxei6TtDLAA1fqPOtLX6hHIZgxuQkDh+GMJjBSXVBMfGe H+68f/+TL/+TjxVGV1mZK01qARF5Q8NX/tbv3PMb/9cQaOPYGAHJZ61P9vBhiGB4qDQ/tW7P nqe3bcvNB0hW8ogKAGJKEmG0EAAGJabmLDRGsvUOu/zS4ttHmqZtQNJz/eTkOfzMs9HBj7/n XTd+5fZ9+5/66g03vHl4ePjUnkIpdeDAAWZWShljiCgIgr6+vuzdXh9k5jiOJycnJycne3mH l9m5Uuriiy9uNBpKqXq9PjAwMDs7e+jQIQCLdL44B4/XlmyTLR4MlPRw2VtSf352Ys+q8c1f ++rOYuApUqQUEZRSdl8psnug5j4ppZS65JKX7dn77R0XvIZ6PSTaf/LJaWYohXotghavGPSP 9hUCXymlkjwk0l7R84PYmNpCdd/BSrlYAJIFmiNHTaF0Mk/g+//+8dvoyggNPP6vyvOuPGfz u152wRvOHlxV1o9PNv7mgeM337k7fOouOeOK743+xJs+88A333dmKej5p9JSKBR83y8UCjZn w/5RDoLA87z8E7VoiVCHw+FwOBwOh8PhcDgcL0Z6KZYrtWZajST1JS9WZm/JSoN5LZhyymqb AJ007qVAS0ubNsszWtXarpJ3cmpw3kadKrHN3lNVpeVghxYszXEmb1GuqF96qpbPt05JdjxT nKm78LsY3TzJicCckYYYNPM5rC6uVGd+sg34hnRL4ehqDSUBk7SJ0yOk1jRCWCP2k7tg4pz3 2UDk2X37qyYaveCise3nMXPXzI+RbdvGLrssPD515Omn161enUjPzMwCYdm3T51/HqJ4ZNfu 2XJ5duPG5pC6dNYTto9COoC867nljtl7BHvfOcmJSZ+j5M6LcCplnkIef2LXuugzW668Bo// 5k+/4nenrnjXv/3b7cePH/+Zn/mZgYGBU3suAMystbaVNpE+yHm5MMvEsNG92buFQsF+5KQ7 P++887L+lVLz8/Nr166N4/jZZ59dTuddeXj/8UplPn9kzZrVR48e62go4+Pjp40WB4t6yd/C HzzwtfUbrnnyyS9sWDduHdy2UmgKpQdbflRKBYG346LX/fDB2y+5+A3duyZ4vvb9Qq0eKT9S pSAoFskjUqI8aJ0o0CY2RGIMe4E/PuoPFSVi78SJeKEaByXtF5fQhTv543/b82WrPgMQnv7j 1w0Wmp1cur586frNf/Cq9Vs+etfCkSdw5pUPjV70c5974KvvPW/x37VyuVwsFpH+KtmJCoLA 9/3sWppX7nA4HA6Hw+FwOBwOh+M/KstPVV5RV/nqf+1Sco+z9XI0d22Q14oXuYSuYr3KMhhA AoJ9JRIz0HS/pu8R0hyMVElt15oJQrSkL9cOHMjL092a5UzkXayICAIAACAASURBVN/lVjXH gNpeLN1fwlmaBDpfyOai9SUiNvs4TUCW02t1VGtgxoM7UauiVketjnoN9SpqdVRrh5966sDx idPfeL0QOl9ZV5te99rD01NHjx419YZpJC8O7bYePfZYrHVtYWHke/chMtlVmJW8hJOVAhZh EQMxECbYHbtvf2RbgJBgm7VtY2EB7P4St3kl3HXXPTv6PrXlZW/Awb/Epv9xNPxJZn7DG97w 1re+9fbbb//CF76Qr4r5XIjjWKnkyfc8zx7JcpmLxWK5XC6Xy2jV5a1YXCgUNm7cODIyUiqV Vtq59cYCOOOMM/r7++M4zn+wUqmcccYZa9eu9Tzv5Kp9VirzR1oBwGyYTRsi1gq9RIi3CNfD 2te/fjt3q0W5OJ7vaTW4e+8PenYehkrpWj2qVis1mP7D+67+zbed9qXPhjEbk/7hAwmRYeY4 3Pzgty557xvO+oXry8cPrlvXt2FDX8FHYYUC9NGZhc8cWBdSlB0ZLHhhzH9y18TrP/vET3/u yUeP1gCs6vP/+M3no5bUzPyeOu9/3bFv8Z611sVisVAoZFu79tDmgM7Djcbx73xnReN3OBwO h8PhcDgcDofD8SODhNMXujpKqafLjNPo525HbHfpS9pbLo2S7i+PVNeDpKTrC8Qgznbsftu7 bQ26H7SX1eq8bilC2C5Ld86mtb62FUzMp2AAYj3STc1akg8uTi7HI5PpgdRinMr2LSHYbUNb 4gQAwAQl6FTlbcKKAF1vc1e1XgicBlFb1jaioFpFHON4FcePgznN37ARHEbYVKZnDs/N7rj8 8pauOoJRxi+6+IHZmS2lfhPWYQfMbCVLEZZanY4ciYDG7EzpwZ0Ll16WLD6sNAM6d+rEztzq pbf7TFAiTBAQhA1AAgNAYAARMencnkKe2LX7ja/7VTz2rmjLrTNmk5I6c3zixFy5XL7hhhsq lcoXv/jFcrn8pje96ZSUziMiKxDnywMqpbZs2bJx48ZqtRpFkZ0NW37QNi6Xy+vXrx8ZGXnk kUdOonMRWbNmzdq1axcWFuyP+WDoqampLVu27Nq16+SuyNfQMPkjRV+fvmmj2OfJOt0BEZQD Ndynl1xte/Kp+8455+rP3/rJk1ho0FoXCt7pp1+8/8CDp2/Z0bUNc1Sr1humsenxBy7/x48D OPObny/Ozx74xV8zxiD13gM460uf3nLnbfZTQ+OjYT88L6hUwpUuGH7kS3sm+6+FNJOj//CO I3/wtUei+gL6x1Cv3Ll7Yua/XwvgnReO/EraJi4Vb3kk/uVrRPUuSGgtz7ZiKtJf6pwA3f5B bjR2/9qvmSgaf+UrV3QJDofD4XA4HA6Hw+FwOH5M6TQOJ/qerDgGumufmWE58yxbFMtJiHid PQNdJNauH2w7kvoHO68yUyml5VDajpAkc1DaQjL5mLIFgGbQBuXyMCgLcsjpMjYPu+0a8hpr i1zdi3zNyGxGuFsANQAQp1p3uzzPLF00e2JrZc3E8nWzswgjBEXseQr1KtiGbzBYRBjMc7Nz OvAGNm2CX7C2Tg0b8tySeEJEFBTKp232Sc3OVcqFQJhFIMJWgRZmHDxIW7dWJo7IfffxjotF q/TSWlNdcn77dqy2n/NjJpMu4GYtx/SGCewKRpbYkXvUIILYSGxWLkz2Jorqn/uHx6697vYh NaBNjUkqlcrQ0OD8/EK12hgeHnj7298+NTX16U9/etOmTa9//etPziacoZTKEjCQKsVxHO/c uRNAX19fGIbGmGq1CjQTISqVytDQ0GOPPVapVE6i89WrV5999tm1Ws3zvMwBbU3Tvu+LSLVa 3bp16+7du0/iiiIDg5a0h1pojh071vbHYdWqVeP93nDJ46Uc7Pv273zVq9573SsfJcG5524j av7lauYJtf6c/VuvR54XXXj+a+74P5/tKkCzII5Moz5Pvr/+se9nxzfc9S9Urz70sx8CICLa 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 K5rtLd2Ms6PRY1q/otnh0w9g3INav2L05T5ynfG6bd3tOOuHN0/g5cIx/2Tk753WN874nx7j bfXy/Cukx+T5Hl0gEAgEAoFAIPBc4BRONHU+NgBFmIaoiKikzMy5aqlwUOecc5IwhBUMIVGI IwWpkALiIOrnfimpI1GCeDfqqHlsOLZRbDgyNjZs2URMEaFsTdlElSiuxiU/VeKoEkeVuNQe l9viuD2O20rZNCGO2+O4GkdtcVSNo/YoqsZRNY4qkW3PF1WtrcZRm7Vla8rWlAyXDcrW+Pb2 OG4vlyaUSpPa2iZVyhOr1YnlyoRKZUKp3F4uV0ulShRXbFyxts1GZWvK1pasKdlm6UH2kjiQ C7/eAU3cOjU1aPZp0vBNJndA5+Iy5fnUxIYzMdr/y8Tc1KQpN0x7wTnLj/YSs2q+FY+axr0S Rn3JIWtgMrmZjfFT7tOm5lVBhHoN06Yu+M631vb2oF7zo0L98ce2nnTJr83C3iOA4uBmdG9G 9+Pofhzd+4AUwz3afcHdD//TZ6Z6fVm3fPymzo53/+H+nbxvB+/jT//uCWs++tURQ+zfTn0H qf8g/3Dd3U9e+NY37IyO9HLfQfQOKpz2devhA9TbY3pP+uLq3/vHt/9B9+rL3lYb+p3f+2DX pz74xKc+9OivTx7a/JOhzeU1f/nb73vDW372mQ/+9DMf/Lfzhg5vfuTw5oN/8qd//pNPffiR T3/4b375lV+4931vwsnvvfvJ779nYv/OrX1m8b9+6kMPf/p//Pgzy960c2tv5+RPr/mDv776 Dx+/6S2JSyQuuVIpiaI0jl2ppNVqEsc1Y/tFe1PXm7pecQPihkWSVJzACVKnfmqk0nCSiqbP kQD9TB3QnYuuU1XVztWblr8cv/wHjsX6FbR80+pOr4R0XnnHwqaKdIxFza0X3nFlp35+2ehu u9bcuKmjY9ONfotln/ed3NOBJb7DDSsXFOsuu3Y1Vt20vmXL1dcuO84BHJ0lS452uR+l22VX dKxdV4xiyyZsvOPuruLZkjMWHveuA4EXNcf4k7F+xXLco6p6z5mr3rWmC+has+WK7N2dtYyl a8352VaqnWdsWY/x74S9zDgeZ3QgEAgEAoFAIPBiwalL1QlpkqQux5dJ8yskSd25xE+ZFYME gIiIpKpO1SlJMaWSFJPfSiQVSSVpuLShaaKSkjgmNVAmZRWo8/Oi3Yf0xswWZBS+SqAhGIKB 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 qXPnzuVyOUR0404KhcLeX/3qs137he+TUn5h+OTJI7pS1k6fXDg7MHR2YIqE/JmzPd/7x5m1 U44c6v7v//1lT+b/7Ct/fvfiLyz50r0P3P/g3Z//Qv3c+uvq6hbdeeftd931hf/t3oPTp8dP Q5Qsjd9dcC3PMUadAV0cRzA92yX1EUeZ7evs8SuTRx0zVrve6uS+7LJ5v6w0j4jJBBm7VbAX TYJAAHooPCHz0st7OQnoCSlhbAToC8uAhvrG27//hgnW/O6zENjKGCaFuc3/9eFXH3ZiVbs2 tGRGrM5tWLDzmW+aZFjY+vKad4KxLovUN69a8OzqlvJTx7ve/PG7xstsehJGvsK2J5rWhGOd lVgVsuTb25/b/dUgtZZhmAuia8N3vr9ofr2bAZ1YZdn61Fd3r/nL1Gc+WzeEfwT2/2zzzttj CTr1Ny6ATd/JSpROrq2/cQFs2rLVdmNMY+s/TozuzOrzZc4fUu9mGIZhGIa5krB6WmzsNLu2 TB3PUiI52m6IzhhsWe1k7dH0NjJCnpRSypyQUmJsLgR4KFLmiAJMkgTG5kFOSDg3siER2f6n jjAHbgSHMcQagRtD5VwjVlRUUBijTOFgdP39/blczh2iUAjx0b59Dfu6yPcVgCbV23cMJ1RN njLp+PG+M+cHJviAg/7kQuHk+XNv/tV3zt294I//459WVlaasz84OFhdXR2Tj3O5nCISApXS UX28qNFjQooHJyolNgcdSaug0OdbDuFFMILkGutPsn0nmTltLzr9Ii02GxWwfSpmN0eO1DHh x2To2CpwPjDOYQbleelB+DAFwxOviYSHvi8wXyh9NsrkAvM36r/++qanjPfq0U0HOZeAKcWS b/e0Nz7QVDfLvLxtzfbN2XVffOv55XffOXtNWPOeRJV7/vK5dXd+c8OXN9/oRH/A7c+99XrE Fm1XOe7sJd/uCa9bAHjURL7CSKtC6ptbf9BRd+dy2L45ETPCMEwpzCCBAPa/jK7sVcWStEgf w5Ib98wO/6Q88kpP81yAucseeeyrTXXPPPJKz4v3vNS+5oGmu2c9G1Z40d04udaUmAYXPd/e Ok70ZwBWny+IP2QORn9/f3d3d2dn5+nTp9n+zDAMwzAMMyqECMRcFAjgSGrBqGzkanGusAZK gSOvxSQ7i21NmwxlAAi1RLRqHFovcRCaEHie3RaigqqrHRp9l0gJJCSQgoQQJFCQ8ASAQgrm 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 unXr+s0bhyenp9feeP38+cOXPv+FcweHX/ziiwS6rqMZCTNasr3FwohE9n3fpx6WVKXve+m6 nW6xmO/u7CwAbA69PIGth0cJLPUIx8nOm5igZHn7885OeAA08eKFyUQp9PznrOFiyAdhDtkY jO6NJ7pWQ9QOgKjmt1In0UGmIvCXyWag8xkh1/nXzUWZs57PtriSIAiCIAiCIAiCIAiCILhv MYGIuiwoIkYTUdyxoJrnCddft7Yslf4AWCcdAJKdSJan2221TANNiUI3H+eqh96wSMAw5EKE CSxpHVmf7Fz5BOC266KgNlX01Bu3GqOrqi6gt0ZYt0VTxTgNnm6ZAbAcFDIEBauqqgqwXq+O j2/PF+d//Gc+8Z5nH3jPu5862LnQiezu2vVXb37hi7c+8ik7f+nycnm02NmxtM550MBydfLi Sy9evfLgtetvdC/qyenxG2+8DjCl5GZegc7ncwDrPqHrZvN5Ipl6gxit6xbnL+yTenBwbrk8 8fGUdzYtPDh6eZuRGgK6GN/YnIcdKNza7E/fmANXPLTFHdP+pjyemZQSBi021WJFUdM2RATj GoNoFgHqtnV2AyhG9E2R96w5j+zPm9dO9tvv3cCJ2F2jZzY/l9ERgZWfIAiCIAiCIAiCIAiC ILj/qJEaSaA1vCJn7mY9jqUwoNJNzH6iH3rRwXo60e8mMbxWmrNkOvsQagrHoEoTBNsqdKX7 NsAgh0MASDZSSiuzPHK/u0dqiMBqLDU5Us89M7pEQuRECK+0p1ss28P+LE/SRXOpSREAMJvv iMjpciWiOlv8i49/4dMv4fkX3rNavgGkz3zmd6nnXv7CS/a5T637tZDJ8qDW67Wq9v365PTo 4sWrX3zli1euXBEVAovFDmnr9Vo77VR1Nrt5cry/vz/TmZmtVysvY7izs29mnep6vbRkdUjA VH3eFKNbDbqmX2Psfc5tBCzZFsOR7JOGievRg65v7m3f8hiroDzse8lBUQLSQUywdeufrUkt DLhlnHdga8tN6/fWS0ZZHOWS4Q/Ptm7b/a2O+iAIgiAIgiAIgiAIgiC4DzDLArTn4boK1mXZ 0LN5W+NwuUqGfAMR4VilxLjSm4iAamLKXLUvHyyKc5YcSYgk5BRm2igU4g5hBuXUcF9rxpCz IiZXwX3KVpoRqLol6rzaiaS75TnMmnsJLUciu+N4tVyKyqybWTo6d/7cxcsXlusbv/qhnydT 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 dOnSpTel9/39/aeeemp/fz+ldT/6BkEQBEEQBC2WQIMZLEF0EDYnspsJRCZBC0qaGURMpBPx aFzSBGKCDmKgDq9Ny237JWNjhAcuV2dyK9GxJF0wx0CXM++QOj0vJOgpxgaQ9GSR1CxAB0lY HqJQWfg8PGyhft/+iEzixrPXDl/ae/TPvX9+/Vf73WOxr6SdP7ExiMVVsd35zOV0mC79m0+g kUT9zfNp9xDpS3b9BzYuzpvd/ezlvZf3ARlHPJtfn5fWl7Sb1Uucmt6Hg1WNl+ZbZQ59HjfS lfXKQnM2w0t7ziiWpL6RJdka2RjfDqamPA8ydJOxXE6dtj/A4bVuWgyn+bM7nPL69eI65VEG h/jjHgRBEARBEJxM9UyIyP333//YY4997GMfO3v27CoX82KxuO+++97EAXhp9SAIgiAIguD0 kDCDJCY1MXqgxijUouizaHzKRYlW0tVkiLiKKCYKQCleyBDun6bbo8eyoauOnTtoB9WxynQm 0BKf0DWKYr68kTFNRhrmPJF4ngotIjVcoaqsxckNAB1zsz5uHUUrSzm/6bTtb6lp9ubzu2q4 ffX28a3j+befT1e2znSf55X5V4c7h0c3jniY9l/em3/7TLqydbb7vL06/yrtH++9uLfR4dZX lpX/nliJ14Y1SyGfLEMSCnBCIPI8GETGLBtaFppZ5ODkDmiIkW6PB8RAEpaDYkh6pgwSYaAV T7s1t58z8pmNEP2mu5JNGvU5LM9BEARBEARvGFW9//77P/CBD6xRn4MgCIIgCILvBIzi+lui JZqZq3lioMvIIp2IQDqI5ABgqkEJJdRIoyQzowuDykFCVlduvSMW9dqVSrbyo+ZXAP7epA3l AIAEWhEMk1lCVg4TmBqb62ln3WqngIioiIh0nkVMeOZ1B1Gig6iIQjoZ/dGx6LxAtT4LwJwJ 0qqrO3905R5j3+nu01fe9acfbQfUw76edh9+/5nnv7JrW+jGCvbO01fuERHjzh+9eu6RD7Rf Efhif+3BS2de/MqtI9iWjBwZO89e317omWO7/tSr5594YOV65OSRiendIIDAPOzEwysExcEM XymT7FTXXDhSZ2UYvWClC82K7FoHm8QPa2TZSaZ4fi8KVQPE+6MmJvXH1ACviimgCQFQKGYL YdkJaP3aNQzan5phUyU/mX7bMDy74yexTp5idZCCDkOoSLvN0divpUs5zHrQvgGKeQL0mxP0 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 c/X4zu7JN9+9K9dfv3zp8OL21dXV1YP7+4d6PBVc+k/+w/sXN7/8B7f333hr7d0vXprcvXRp Y31jrUkrZun42HZ2Huzs3m9PWnaNYBXAu7/+K5/+Cz977tzK3l6b1CZJvvHe3vbW2u7tnY2n Jivrq0cHB0nXV1fl3t07WxcvL91VQC2WuJB6rCLMMAACzbCsQmgHM8iUOZMtLFNIo0A9mcUD O6TEPYuggQghoNZn4lUMq8l9iP6w6rOGp5eMzNQkNTUAlDQRJSgl6Bm+Oj1JWZB64319bf3U OI4zn1s6JJQepuE3p/EGC6047Xs3fpW2XX2ef56CPluj/GkRvfDsl2eQvhVDZIkM6CAIgiAI giAIgiAIguCxhZ6HW/N75RSrL3VGoBxXCzzbGnxqvwtHhKMg4nl/bB2qzQjNuqznb288i0jN 3wBgAj0zQropXZc8CyFYQxdgOasS+eCkY2PdxtGbz370GcsdBH/s+au/cf1wle/furm298U3 8bUvPWlvP3l184knnrl48eKVK5evXLly6dLFc+c2zbi3t/f22+++/c0bt27u3b61f+uNLx7u /ImN7c274PTBg4tPbB3n9Iefv2Ei7dGDjXNPtMc4Pm7PrTcPdu6eu3AJ1ZE997CKljr70DIl Uwg1ASEtUgszWgdmWms5+yaAqKiKEoQIk3jUhiaIV7JUowhdm6Ygl5KSKppgMDDXzQICBpjr tiVvg8k1bVUvUCkeFiJCkeqkJqQ4r9WrI/pxM1EmdZHX3Mjt9Q/F7x9p0CqSRCCm5SBlFN6t NQpG6rIQIkEFMCNqgEYvIpe/JgGp5QZAAE8OMQFUDKAowC5bR7QWAnQQBEEQBEEQBEEQBEHw GEIT942awG2bCTK2lrImZgj9inrjyEiqVYMeW2wHg6l4vrOil4arskdA3LRKMYEoB/l7JMgN sq9ISkNfqF0CEB1696J0Y0WvtGBD73NG2MFoOysEutHWBCKpD7Am6RqmjUTyZua2Wfc0AO0e MHfWde2t65cvp43NjatPPTk9Or62tfqDu7e+8v6X3n71zYvtjeeurVx58vmLFy9eu3bthRee v3bt6e3tiysrk8lk0nXtycn0heefe/v5d776xld3dnfeemv33c9/4Y//7J+5IfjGq9/85Gc+ 3po0q2vKrpu2jXJjfXJ0dPLUxXM3Du8fPniwtr5eXvrI8lxfycLKoFA0mxHogBbWEZnWuZAq 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 VkyRzWNcw6bGanUtJbe6BkOLiEDM1b/Zgsh5ecNpVrWu3i4htEftntheYPE4nL35xNmbTwC4 fOXZy1eebS+duu0UgPz7tz34ugfPnTu3UOJTSo8//vjdd9+dUrLK448/fnD70yduXm0dy53e U8zyfM4D5IAcLGdaomQyk9COWC5PZFmZ0mV3zvVxTq71mjr+wvboZQP9nYOK//R3PfLyPwmQ rcr8+b/6IAiCIAiCIAiCIAiCIDgWrSlzK+oaNAGgTc9wJ6yRwjHsAhy1uOKKhRK5DgQRmfKH 4Z0IYFWDPtol7Kq0Qkyg9d4M7qp86OxSjdXDMmwM7sAshWOjk63HI73HLGzGYB/fAX0Ep247 2e/3APYvnLvzS+9E47f1g8cee+zOO+8k6d7nnPN6vX7s/KfWb7p85szprabv+TyX7yIOOlln WQuSxzOLGmg1GIWkm93rooSWoRBVERhBM2xu/ZizsVV93b0/JEW2J2jvVnK3nx8l8dbqj92v YlCqZwJzPd0E8OAaATBNzsxm95bBgOYFSzsPGheVIYMgCIIgCIIgCIIgCILgBsJgmVnQdaju YABWasMVa6uiKGbVgCwZJipKZCk+XNJQI35JMYFIMdh2AFVM3Bxc2/vwVqoaGiDFS+1Ctmt8 xXft08juLy6KneRR2Ru/pMieALqagQGguLRdcgSAqeLeqJEqp6qD7i0uf+rkm84sfm2tdQ7H fexnimdVs0Vk/2S3PrDnJUDvnznR73f9fn/ipv1uv+/3u3Lh2uqWk7ft7e3JnKeeeuqWW25R VTPz/A0zO3/+/LOnnzh520r7rZkjk95bCwfOWBsHYiAMAkEG6XndG5Ul66FtM6HPh8TnYdbE tqc2/VBm9v55o7n6HARBEARBEARBEARBEASvTGo5uprTO2bz1sttY1cYiwxdDc7m/tmq5Hr2 go4C7gwzz+hoDKcmUNdD60nzyI+5nziDTfvy7SkIhpmZtW3f7/CWtmdHMXo0a18XI01nems/ btUijOFbvvt1//R/+cSw3mXQ3i03b8Crur+/j3nc8KVLl1R1f3+/VZ9zzh/7+McOXn/hltv2 tnbV7hW54X8GUkoppWzm7uMiHo+iu0cXs9kBl9i3iuwvRdzES5dZMf3cscPuvv22Nk5kcakm iiz971ONxxChgyAIgiAIgiAIgiAIglcuk7Zm9GTgsWJcK5zZ7BZWzRoARTC6QEkCJi4rA4Bm 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 7pIn+DoHfJIkSZIkSZIkSZIkSZJ8ldxQn29mQANhU6ZT4RUmaSYILojGChngkpM+1EvHC9DA C+FQy5CGTCaAXMMx3CmXI6odPj1q2F5nFJw9UqKLgk0NliSPpAmEa9scIgxg7dnL1paIIekG ZwLei/xtBV+fOrlgn4CxyZigevnBXp3QDC1CZE7e2KRrtL/WBInJ2NsTobsITe6Gdv5rYwhm 25Sv0q+rnTzfOvVsYpdwynyZX9LZ87fASefbfRVN4n4rVXnl+D5NlRlqdbqnkyRJkiRJkiRJ kiRJkveZx9Tnqxia2Vdg7bEQJrAnGocOGyHQhIVFN5Rco5EokEO1VcVjizJmyxCuUqTivkYS 9NOhIFfYrluOxZABI9NZXXKVSyzUxZv92dQ2GSEuUod4Z4Dw7nN1hNkbBRsVdAEg0WxV2UNz /Obf/Ow7v/ar3/rs07uXL5Zlubu7i8cXL168ePHi7u7u5cuXy7K8fPkyJt7d3d3d3ZVSlmUx s1IKSbMmdbu7pFqru18ul1rrw8PDw8PD/f39w8PDq1evLpfLq1evYkpMvFwuDw8PD69e/eXn X/zF//jTn/zox03wnMKgu/r+NukDtjdCv2ZzYac/06DjqFN//prtX+NMfe5/bazlI5L8vJlD RPbosOwYEJ0kSZIkSZIkSZIkSZIk7wuPqs+PZkAHBlIiaRAUcRAyWlU4heFU2IkL4BKAxXgB LpKBHt7hrmOSgIxw0CtXw+2pe/XNGTUHu0jejMVdJAzfM0V680BXowpoZtaDl2MjnSw3oi2u sLTMjU1Es37+7/zqz/3KLy3LUuV4eFhrNZqFdlxKuVwu8aeZXS6XWcQspUgys7Ggd2qt0UKt NZToUKXnP+N5KNRV+uZnn/ztv/e9H/3p//ejP/7ToZuyC/bub3+v7HmrOz6OpHm4NhnQb52D +swzB/RzFfAe8J0KdJIkSZIkSZIkSZIkSfI+8hT1+UYGdCQVUChknerfzfX1CikfztM20YAI vCWcwgOdThgN5j2cmGABHSy0Oq/0HWjQkUBNUq5wxO6KFgowwQEDKlzhp7VwZjcHqqO5t3ES WdzyrFeRczvDEiHXozoiyW98+9NPf+kXALx69WpZFgCllGFhrrWWUsZjrTWczlEScd4wd5/X GlOG+rzToGuto/14Hmt094eHB5Kf/a3v/ORHP/7pF3/ZGowE768gQHkYlrU+nsx1oxvvj0or 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 H7qXP3Qv7z/9vtuuzunP3v7195+99M4f/HD4wQ/zB//VPdd9tX37lwF4/4OP4bqrb/NEX3HT HcAdZ77Mv7362qvve/ALuP4VD7319D1//0P8Wx/mhx9z7otd2H+++/7H7njr738HIOkdf/Dm m889nkOFDPvdHZklGdiaCXjTW75SH77v9/6df/HdD53+0295+Wulf/TP7vuv7nsCz5y//Yc/ ctWHHzPo9//B2//1LY9/7Y985NSP/fwLf/7Sn/2jr/vjwAEk4OW33XDuAx+75p7P/GMCwMte f9vfxadv+NGPXv9jD/xd3PzRt9wowggCL7vt+of/74/+dz/66Z8uTY3X3fwv33zV+z/wsZe+ 5+Nf/vNPAjLoNWfP/tNbnvjv3/Pxr3jPx15936U//p2vfUuKcllfD1Z9MeKnzz2Ja656NdzH +aq33nLVxz95/lPQa2590Uf/yS/c+H/8wvXv/cT/hZfdd+eNyuKUsPJ+5q7RonfYq2590cd/ 6uNffs/Hv/yeT7wfL/1nd95wAP3Mvb/w8o8+iWd+823v/cVbfv5xQ7VCvfK2s//k9c/+5ff8 wlfd84tfdc8n/+E1r/nUnTfk/L/xW16Lj37slvd+9PvOn377m1/+GsRo2VQXc8Mp3SWd8Ofy tzgE8qNBuOEELqt4hvKXPB/zH/ZT9lt53IV3XLhwqw4aO4WeAxDAgPqS2eTVHvzO8vS1QPlT spEsNdbwJ7TnVE46R1pTVPskQmIEej8lYR7PiEEMQJBoUmsmMQc4nbqgb+tVWfpOBq9jGsYh b+VkhIJEGfM5lBZCDIUfckgOyVNWYWGPTinPvs8aQM8ALMnb6dbY4P0VQaCJppDOwkAx/1hK yU9Sm5hSTtLSsnEBLLgHu9MabW8Bi20SfwbMdYythHvaPc2BpSbGIbHYGbkuokURVvtwC6sN /1FG1Q+9H8c4D6M8HMGNMepNvIl/VZoB/zu92WYBD0voGNrR6rNhygaG9G+On8SuSHkZWuWd /PFIR9pyAmUegB6nFLt/WyZN8Gyl3OmO/C4ntVblQa3U5p4q2sfiJbi7lhXPL0pb6QVzZwTA 4vAfuV3nKmRpvOS/dfNf8t+y3O4zUav9O6HN0Vpa5YhYnvtvhbJ6aXbV7Z986lnc8pK3S8JN d9168d7PfRGfe/S+a278jusA3HTXrbjvwUdHXzz/K7/2PRcA4P2/fP78NadfDU9/6Z4PnXvA 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 hBBCCKE/nf8FIv0nNKcILlEAAAAASUVORK5CYII= --------------080005060803050206050108-- From manner.moe@gmx.de Sat Jan 05 23:06:11 2013 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1TrbsY-003GsJ-Gr>; Sat, 05 Jan 2013 23:06:10 +0100 Received: from mout.gmx.net ([212.227.15.18]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1TrbsY-000Q0f-Cf>; Sat, 05 Jan 2013 23:06:10 +0100 Received: from mailout-de.gmx.net ([10.1.76.34]) by mrigmx.server.lan (mrigmx002) with ESMTP (Nemesis) id 0Lv7rY-1SsSSA483e-010Pya for ; Sat, 05 Jan 2013 23:06:09 +0100 Received: (qmail invoked by alias); 05 Jan 2013 22:06:08 -0000 Received: from dslc-082-083-136-166.pools.arcor-ip.net (EHLO [192.168.2.100]) [82.83.136.166] by mail.gmx.net (mp034) with SMTP; 05 Jan 2013 23:06:08 +0100 X-Authenticated: #17747474 X-Provags-ID: V01U2FsdGVkX19cyH1977lcsK/AOgK77ygLUdwY75vQWforLFkPLH 2FqtPxkdR/AI98 Message-ID: <50E8A3B2.7010908@gmx.de> Date: Sat, 05 Jan 2013 23:05:38 +0100 From: Thomas Arp User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0 MIME-Version: 1.0 To: linux-minidisc@lists.fu-berlin.de References: <50E89536.4090607@gmx.de> In-Reply-To: <50E89536.4090607@gmx.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 X-Originating-IP: 212.227.15.18 X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1357423570-00000B1F-4713F3D1/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.2 X-Spam-Flag: NO X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE X-Spam-Checker-Version: SpamAssassin 3.3.2 on Burundi.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [linux-minidisc] qhimdtransfer and Windows 8 X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.14 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Jan 2013 22:06:11 -0000 Am 05.01.2013 22:03, schrieb Thomas Arp: > > P.S.: I have to change something in the QNetMDDevice class code. When > you change a minidisc and than reload the tracklist only track count > will be updated, all other strings as title, group, duration etc. will > be displayed as before on the other minidisc. Now, i changed this. I had to clear the stored netmd track list in QNetMDTracksModel::close() function. I also fixed some other bugs. You can find my latest version at netmd_integration branch on my github account [1] Thomas [1] http://github.com/tharp/linux-minidisc From manner.moe@gmx.de Tue Jan 08 00:01:17 2013 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1TsLgy-002Dhl-Oa>; Tue, 08 Jan 2013 00:01:16 +0100 Received: from mout.gmx.net ([212.227.15.19]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1TsLgy-001f7U-M8>; Tue, 08 Jan 2013 00:01:16 +0100 Received: from mailout-de.gmx.net ([10.1.76.24]) by mrigmx.server.lan (mrigmx001) with ESMTP (Nemesis) id 0M0vtR-1Szhno1zn5-00v7sz for ; Tue, 08 Jan 2013 00:01:15 +0100 Received: (qmail invoked by alias); 07 Jan 2013 23:01:15 -0000 Received: from dslc-082-083-136-166.pools.arcor-ip.net (EHLO [192.168.2.100]) [82.83.136.166] by mail.gmx.net (mp024) with SMTP; 08 Jan 2013 00:01:15 +0100 X-Authenticated: #17747474 X-Provags-ID: V01U2FsdGVkX18yVXxVFq8yEbmQiYN2x/FmMlzYi2QUEbZVokYgWu 1Bv5QN4pnnd5BH Message-ID: <50EB5395.6000806@gmx.de> Date: Tue, 08 Jan 2013 00:00:37 +0100 From: Thomas Arp User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0 MIME-Version: 1.0 To: linux-minidisc@lists.fu-berlin.de References: <20121205162422.280930@gmx.net> <50D5C01F.3090506@gmx.de> In-Reply-To: <50D5C01F.3090506@gmx.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 X-Originating-IP: 212.227.15.19 X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1357599676-00000B1F-4FCB3BD6/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.2 X-Spam-Flag: NO X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE X-Spam-Checker-Version: SpamAssassin 3.3.2 on Burundi.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [linux-minidisc] implementing netmd support in the gui application X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.14 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Jan 2013 23:01:18 -0000 Am 22.12.2012 15:13, schrieb Thomas Arp: > > next steps i want to import: > - moving track transfer routines from the mainwindow to the new class > QHiMDDevice > - implement netmd transfer routines > > I think something like QHiMDDevice::batchUpload(QHiMDTrackList > tracklist) and QHiMDDevice::upload(QHiMDTrack track) should be o.k. > Also using the same member names in QNetDMDevice class and > batchDownload() and download() for the download routines. > > Please take a look at it, i think it needs some cleanup/optimation. > > Thomas > > [1] http://github.com/tharp/linux-minidisc > > > _______________________________________________ > linux-minidisc mailing list > linux-minidisc@lists.fu-berlin.de > https://lists.fu-berlin.de/listinfo/linux-minidisc Hi, now i moved the himd track transfer routines to the QHiMDDevice class. I also moved the uploadDialog from the mainwindow to the QMDDevice class and fixed a bug in it. "canceled" variable have to be set to false in init() or finished() funtion, else if upload was canceled the next uploads will always be canceled automatically then. My changes are at netmd_integration branch on my github account. Thomas From manner.moe@gmx.de Thu Jan 10 00:19:44 2013 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Tt4vr-003hg2-37>; Thu, 10 Jan 2013 00:19:39 +0100 Received: from mout.gmx.net ([212.227.15.19]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Tt4vq-000H5M-S5>; Thu, 10 Jan 2013 00:19:39 +0100 Received: from mailout-de.gmx.net ([10.1.76.33]) by mrigmx.server.lan (mrigmx002) with ESMTP (Nemesis) id 0MhOyy-1TgLF52Gbi-00MfpC for ; Thu, 10 Jan 2013 00:19:37 +0100 Received: (qmail invoked by alias); 09 Jan 2013 23:19:36 -0000 Received: from dslc-082-083-136-166.pools.arcor-ip.net (EHLO [192.168.2.100]) [82.83.136.166] by mail.gmx.net (mp033) with SMTP; 10 Jan 2013 00:19:36 +0100 X-Authenticated: #17747474 X-Provags-ID: V01U2FsdGVkX1+IKgYAh4SINgCcTcpvRJ1S1oUr+UrjoezHCt+BH/ dBWsnDNEFKhWJ2 Message-ID: <50EDFADB.2080106@gmx.de> Date: Thu, 10 Jan 2013 00:18:51 +0100 From: Thomas Arp User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0 MIME-Version: 1.0 To: linux-minidisc@lists.fu-berlin.de References: <20121205162422.280930@gmx.net> <50D5C01F.3090506@gmx.de> <50EB5395.6000806@gmx.de> In-Reply-To: <50EB5395.6000806@gmx.de> Content-Type: multipart/mixed; boundary="------------090006060806060903050904" X-Y-GMX-Trusted: 0 X-Originating-IP: 212.227.15.19 X-ZEDAT-Hint: A X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1357773579-00000B1F-68DDADB2/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.025266, version=1.2.2 X-Spam-Flag: NO X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE X-Spam-Checker-Version: SpamAssassin 3.3.2 on Algerien.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [linux-minidisc] implementing netmd support in the gui application X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.14 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jan 2013 23:19:44 -0000 This is a multi-part message in MIME format. --------------090006060806060903050904 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi, as some patches have been committed since i started implementation of netmd support i rebased my local master branch now and updated my local work branch. You can find my work at netmd_integration_latest branch on my github account [1]. Also i made a patch which can be applied to the current master repository attached to this email. Thomas [1] http://github.com/tharp/linux-minidisc --------------090006060806060903050904 Content-Type: text/x-patch; name="0001-implement-netmd-support-in-qhimdtransfer-also-some-b.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0001-implement-netmd-support-in-qhimdtransfer-also-some-b.pa"; filename*1="tch" >From 6444acb4e5fdc7c4b77d37cf26306a639722fe96 Mon Sep 17 00:00:00 2001 From: Thomas Arp Date: Wed, 9 Jan 2013 23:57:41 +0100 Subject: [PATCH] implement netmd support in qhimdtransfer, also some basic rearrangement needed for switching between himd and netmd devices, move himd transfer routines to new class QHiMDDevice, some minor bugs fixed --- qhimdtransfer/qhimddetection.cpp | 262 +++++++++++++++++--- qhimdtransfer/qhimddetection.h | 106 +++++--- qhimdtransfer/qhimdmainwindow.cpp | 444 ++++++++------------------------- qhimdtransfer/qhimdmainwindow.h | 30 +-- qhimdtransfer/qhimdmainwindow.ui | 18 +- qhimdtransfer/qhimdmodel.cpp | 289 ---------------------- qhimdtransfer/qhimdmodel.h | 68 ----- qhimdtransfer/qhimdtransfer.pro | 13 +- qhimdtransfer/qhimduploaddialog.cpp | 4 +- qhimdtransfer/qhimduploaddialog.h | 4 +- qhimdtransfer/qhimdwindetection.cpp | 203 ++++++++++----- qhimdtransfer/qmddevice.cpp | 480 ++++++++++++++++++++++++++++++++++++ qhimdtransfer/qmddevice.h | 98 ++++++++ qhimdtransfer/qmdmodel.cpp | 358 +++++++++++++++++++++++++++ qhimdtransfer/qmdmodel.h | 80 ++++++ qhimdtransfer/qmdtrack.cpp | 204 +++++++++++++++ qhimdtransfer/qmdtrack.h | 81 ++++++ 17 files changed, 1888 insertions(+), 854 deletions(-) delete mode 100644 qhimdtransfer/qhimdmodel.cpp delete mode 100644 qhimdtransfer/qhimdmodel.h create mode 100644 qhimdtransfer/qmddevice.cpp create mode 100644 qhimdtransfer/qmddevice.h create mode 100644 qhimdtransfer/qmdmodel.cpp create mode 100644 qhimdtransfer/qmdmodel.h create mode 100644 qhimdtransfer/qmdtrack.cpp create mode 100644 qhimdtransfer/qmdtrack.h diff --git a/qhimdtransfer/qhimddetection.cpp b/qhimdtransfer/qhimddetection.cpp index d563587..d0839bb 100644 --- a/qhimdtransfer/qhimddetection.cpp +++ b/qhimdtransfer/qhimddetection.cpp @@ -1,73 +1,279 @@ #include #include "qhimddetection.h" +#include + +void QHiMDDetection::clearDeviceList() +{ + QMDDevice * mddev; + QNetMDDevice * nmddev; + int i = 0; + + while( i < dlist.count() ) + { + mddev = dlist.at(i); + if(mddev->deviceType() == NETMD_DEVICE) + { + nmddev = static_cast(mddev); + if(nmddev->isOpen()) + nmddev->close(); + delete nmddev; + nmddev = NULL; + dlist.removeAt(i); + continue; + } + else if(mddev->deviceType() == HIMD_DEVICE) + { + remove_himddevice(mddev->path()); // uses platform dependent function if available + continue; + } + } + + if(!dlist.isEmpty()) + dlist.clear(); + emit deviceListChanged(dlist); +} QHiMDDetection::QHiMDDetection(QObject *parent) : QObject(parent) { } -himd_device *QHiMDDetection::find_by_path(QString path) +QHiMDDetection::~QHiMDDetection() { - for (int i = 0; i < device_list.size(); i++) - if(device_list.at(i)->path == path) - return device_list.at(i); + clearDeviceList(); + cleanup_netmd_list(); +} - return NULL; +void QHiMDDetection::cleanup_netmd_list() +{ + if(dev_list != NULL) + netmd_clean(&dev_list); +} + +void QHiMDDetection::rescan_netmd_devices() +{ + QNetMDDevice * dev; + int i = 0; + + // find and remove netmd devices + while(i < dlist.count()) + { + if(dlist.at(i)->deviceType() != NETMD_DEVICE) + { + i++; + continue; + } + dev = static_cast(dlist.at(i)); + if(dev->isOpen()) + dev->close(); + + delete dev; + dev = NULL; + dlist.removeAt(i); + } + + netmd_clean(&dev_list); + dev_list = NULL; + + emit deviceListChanged(dlist); + scan_for_netmd_devices(); } -// slots +void QHiMDDetection::scan_for_minidisc_devices() +{ + os_data data; -void QHiMDDetection::himd_busy(QString path) + /* create device entry for disc images first */ + QHiMDDevice * mddev = new QHiMDDevice(); + data.md_inserted = true; + mddev->setName("disc image"); + mddev->setPlatformData(data); + dlist.append(mddev); + emit deviceListChanged(dlist); + + scan_for_himd_devices(); + scan_for_netmd_devices(); +} + +void QHiMDDetection::remove_himddevice(QString path) { - himd_device * dev = find_by_path(path); - if (!dev) + QHiMDDevice * dev = static_cast(find_by_path(path)); + int i = dlist.indexOf(find_by_path(path)); + + if(i < 0) return; - dev->is_busy = true; - qDebug() << "himd device at " + dev->path + " : device busy, starting transfer"; + if(dev->isOpen()) + dev->close(); + delete dev; + dev = NULL; + + dlist.removeAt(i); } -void QHiMDDetection::himd_idle(QString path) +void QHiMDDetection::scan_for_netmd_devices() { - himd_device * dev = find_by_path(path); - if (!dev) + netmd_device * md; + netmd_error error = netmd_init(&dev_list); + struct libusb_device_descriptor desc; + QNetMDDevice * mddev; + + if (error != NETMD_NO_ERROR) return; - dev->is_busy = false; - qDebug() << "himd device at " + dev->path + " : device idle, transfer complete"; + md = dev_list; // pick first device + + while( md != NULL) { + libusb_get_device_descriptor(md->usb_dev, &desc); + mddev = new QNetMDDevice(); + mddev->setName(identify_usb_device(desc.idVendor, desc.idProduct)); + mddev->setUsbDevice(md); + dlist.append(mddev); + emit deviceListChanged(dlist); + md = md->link; // pick next device + } +} + +QMDDevice *QHiMDDetection::find_by_path(QString path) +{ + QMDDevice * mddev; + + foreach(mddev, dlist) + { + if(mddev->path() == path) + return mddev; + } + return NULL; +} + +QMDDevice *QHiMDDetection::find_by_name(QString name) +{ + QMDDevice * mddev; + + foreach(mddev, dlist) + { + if(mddev->name() == name) + return mddev; + } + return NULL; } const char * identify_usb_device(int vid, int pid) { + if(vid == SHARP) + { + switch(pid) + { + case IM_MT880H: + return "SHARP IM-MT880H / IM-MT899H (NetMD)"; + case IM_DR400: + return "SHARP IM-DR400 / IM-DR410 (NetMD)"; + case IM_DR80: + return "SHARP IM-DR80 / IM-DR420/ IM-DR580 or KENWOOD DMC-S9NET (NetMD)"; + } + } + if (vid != SONY) return NULL; switch (pid) { - case MZ_NH1: + case MZ_NH1_HIMD: return "SONY MZ-NH1"; - case MZ_NH3D: + case MZ_NH3D_HIMD: return "SONY MZ-NH3D"; - case MZ_NH900: + case MZ_NH900_HIMD: return "SONY MZ-NH900"; - case MZ_NH700: + case MZ_NH700_HIMD: return "SONY MZ-NH700 / MZ-NH800"; - case MZ_NH600: + case MZ_NH600_HIMD: return "SONY MZ-NH600(D)"; - case LAM_3: + case LAM_3_HIMD: return "SONY LAM-3"; - case MZ_DH10P: + case MZ_DH10P_HIMD: return "SONY MZ-DH10P"; - case MZ_RH10: + case MZ_RH10_HIMD: return "SONY MZ-RH10"; - case MZ_RH910: + case MZ_RH910_HIMD: return "SONY MZ-RH910"; - case CMT_AH10: + case CMT_AH10_HIMD: return "SONY CMT-AH10"; - case DS_HMD1: + case DS_HMD1_HIMD: return "SONY DS-HMD1"; - case MZ_RH1: + case MZ_RH1_HIMD: return "SONY MZ-RH1"; + case PCLK_XX: + return "SONY PCLK-XX (NetMD)"; + case UNKNOWN_A: + return "SONY (unknown model, NetMD)"; + case MZ_N1: + return "SONY MZ-N1 (NetMD)"; + case UNKNOWN_B: + return "SONY (unknown model, NetMD)"; + case LAM_1: + return "Sony LAM-1 (NetMD)"; + case MDS_JE780: + return "SONY MDS-JE780 / MDS-JE980 (NetMD)"; + case MZ_N505: + return "SONY MZ-N505 (NetMD)"; + case MZ_S1: + return "SONY MZ-S1 (NetMD)"; + case MZ_N707: + return "SONY MZ-N707 (NetMD)"; + case CMT_C7NT: + return "SONY CMT-C7NT (NetMD)"; + case PCGA_MDN1: + return "SONY PCGA-MDN1 (NetMD)"; + case CMT_L7HD: + return "SONY CMT-L7HD (NetMD)"; + case MZ_N10: + return "SONY MZ-N10 (NetMD)"; + case MZ_N910: + return "SONY MZ-N910 (NetMD)"; + case MZ_N710: + return "SONY MZ-N710 / MZ-NE810 / MZ-NF810 (NetMD)"; + case MZ_N510: + return "SONY MZ-N510 (NetMD)"; + case MZ_NE410: + return "SONY MZ-NE410 / MZ-DN430 / MZ-NF520 (NetMD)"; + case MZ_NE810: + return "SONY MZ-NE810 / MZ-NE910 (NetMD)"; + case CMT_M333NT: + return "SONY CMT-M333NT / CMT_M373NT (NetMD)"; + case LAM_10: + return "SONY LAM-10 (NetMD)"; + case AIWA_AM_NX1: + return "AIWA AM-NX1 (NetMD)"; + case AIWA_AM_NX9: + return "AIWA AM-NX9 (NetMD)"; + case MZ_NH1: + return "SONY MZ-NH1 (NetMD)"; + case MZ_NH3D: + return "SONY MZ-NH3D (NetMD)"; + case MZ_NH900: + return "SONY MZ-NH900 (NetMD)"; + case MZ_NH700: + return "SONY MZ-NH700 / MZ-NH800 (NetMD)"; + case MZ_NH600: + return "SONY MZ-NH600 / MZ-NH600D (NetMD)"; + case MZ_N920: + return "SONY MZ-N920 (NetMD)"; + case LAM_3: + return "SONY LAM-3 (NetMD)"; + case MZ_DH10P: + return "SONY MZ-DH10P (NetMD)"; + case MZ_RH10: + return "SONY MZ-RH10 (NetMD)"; + case MZ_RH910: + return "SONY MZ-RH910 (NetMD)"; + case CMT_AH10_A: + return "SONY CMT-AH10 (NetMD)"; + case CMT_AH10_B: + return "SONY CMT-AH10 (NetMD)"; + case DS_HMD1: + return "SONY DS-HMD1 (NetMD)"; + case MZ_RH1: + return "SONY MZ-RH1 (NetMD)"; } return NULL; } diff --git a/qhimdtransfer/qhimddetection.h b/qhimdtransfer/qhimddetection.h index 5c30be9..9d53305 100644 --- a/qhimdtransfer/qhimddetection.h +++ b/qhimdtransfer/qhimddetection.h @@ -4,52 +4,98 @@ #include #include #include +#include -#define SONY 0x054c //known himd-mode product IDs -#define MZ_NH1 0x017f -#define MZ_NH3D 0x0181 -#define MZ_NH900 0x0183 -#define MZ_NH700 0x0185 -#define MZ_NH600 0x0187 -#define LAM_3 0x018a -#define MZ_DH10P 0x01ea -#define MZ_RH10 0x021a -#define MZ_RH910 0x021c -#define CMT_AH10 0x022d -#define DS_HMD1 0x023d -#define MZ_RH1 0x0287 - -struct himd_device { - bool is_busy; - QString path; - bool md_inserted; - QString recorder_name; - virtual ~himd_device(){} /* for polymorphic delete */ - }; +// known vendor IDs +#define SONY 0x054c +#define SHARP 0x4dd + +// known himd-mode product IDs +#define MZ_NH1_HIMD 0x017f +#define MZ_NH3D_HIMD 0x0181 +#define MZ_NH900_HIMD 0x0183 +#define MZ_NH700_HIMD 0x0185 +#define MZ_NH600_HIMD 0x0187 +#define LAM_3_HIMD 0x018b +#define MZ_DH10P_HIMD 0x01ea +#define MZ_RH10_HIMD 0x021a +#define MZ_RH910_HIMD 0x021c +#define CMT_AH10_HIMD 0x022d +#define DS_HMD1_HIMD 0x023d +#define MZ_RH1_HIMD 0x0287 + +// known Sony/Aiwa netmd-mode product IDs +#define PCLK_XX 0x34 +#define UNKNOWN_A 0x36 +#define MZ_N1 0x75 +#define UNKNOWN_B 0x7c +#define LAM_1 0x80 +#define MDS_JE780 0x81 // or MDS-JE980 +#define MZ_N505 0x84 +#define MZ_S1 0x85 +#define MZ_N707 0x86 +#define CMT_C7NT 0x8e +#define PCGA_MDN1 0x97 +#define CMT_L7HD 0xad +#define MZ_N10 0xc6 +#define MZ_N910 0xc7 +#define MZ_N710 0xc8 // or MZ-NE810/NF810 +#define MZ_N510 0xc9 // or MZ-NF610 +#define MZ_NE410 0xca // or MZ-DN430/NF520 +#define MZ_NE810 0xeb // or MZ-NE910 +#define CMT_M333NT 0xe7 // or CMT-M373NT +#define LAM_10 0x101 +#define AIWA_AM_NX1 0x113 +#define AIWA_AM_NX9 0x14c +#define MZ_NH1 0x17e +#define MZ_NH3D 0x180 +#define MZ_NH900 0x182 +#define MZ_NH700 0x184 // or MZ-NH800 +#define MZ_NH600 0x186 // or MZ-NH600D +#define MZ_N920 0x188 +#define LAM_3 0x18a +#define MZ_DH10P 0x1e9 +#define MZ_RH10 0x219 +#define MZ_RH910 0x21b +#define CMT_AH10_A 0x21d +#define CMT_AH10_B 0x22c +#define DS_HMD1 0x23c +#define MZ_RH1 0x286 + +// known Sharp netmd-mode product IDs +#define IM_MT880H 0x7202 // or IM-MT899H +#define IM_DR400 0x9013 // or IM-DR410 +#define IM_DR80 0x9014 // or IM-DR420/DR580 / Kenwood DMC-S9NET const char * identify_usb_device(int vid, int pid); +typedef QList QMDDevicePtrList; + class QHiMDDetection : public QObject { Q_OBJECT Q_DISABLE_COPY(QHiMDDetection) protected: - QList device_list; + QMDDevicePtrList dlist; + netmd_device * dev_list; public: explicit QHiMDDetection(QObject *parent = 0); - virtual ~QHiMDDetection() {} + virtual ~QHiMDDetection(); + virtual void clearDeviceList(); + virtual void cleanup_netmd_list(); + void rescan_netmd_devices(); + void scan_for_minidisc_devices(); virtual void scan_for_himd_devices(){} - himd_device *find_by_path(QString path); - -protected slots: - virtual void himd_busy(QString path); - virtual void himd_idle(QString path); + virtual void remove_himddevice(QString path); + void scan_for_netmd_devices(); + QMDDevice *find_by_path(QString path); + QMDDevice *find_by_name(QString name); signals: - void himd_found(QString path); - void himd_removed(QString path); + void deviceListChanged(QMDDevicePtrList list); }; QHiMDDetection * createDetection(QObject * parent = NULL); #endif // QHIMDDETECTION_H + diff --git a/qhimdtransfer/qhimdmainwindow.cpp b/qhimdtransfer/qhimdmainwindow.cpp index e2675d9..a406ea5 100644 --- a/qhimdtransfer/qhimdmainwindow.cpp +++ b/qhimdtransfer/qhimdmainwindow.cpp @@ -1,213 +1,11 @@ #include "qhimdmainwindow.h" #include "ui_qhimdmainwindow.h" #include "qhimdaboutdialog.h" -#include "qhimduploaddialog.h" #include -#include #include -QString QHiMDMainWindow::dumpmp3(const QHiMDTrack & trk, QString file) -{ - QString errmsg; - struct himd_mp3stream str; - struct himderrinfo status; - unsigned int len; - const unsigned char * data; - QFile f(file); - - if(!f.open(QIODevice::ReadWrite)) - { - return tr("Error opening file for MP3 output"); - } - if(!(errmsg = trk.openMpegStream(&str)).isNull()) - { - f.remove(); - return tr("Error opening track: ") + errmsg; - } - while(himd_mp3stream_read_block(&str, &data, &len, NULL, &status) >= 0) - { - if(f.write((const char*)data,len) == -1) - { - errmsg = tr("Error writing audio data"); - goto clean; - } - uploadDialog->blockTransferred(); - QApplication::processEvents(); - if(uploadDialog->upload_canceled()) - { - errmsg = tr("upload aborted by the user"); - goto clean; - } - - } - if(status.status != HIMD_STATUS_AUDIO_EOF) - errmsg = tr("Error reading audio data: ") + status.statusmsg; - -clean: - f.close(); - himd_mp3stream_close(&str); - if(!errmsg.isNull()) - f.remove(); - return errmsg; -} - -static inline TagLib::String QStringToTagString(const QString & s) -{ - return TagLib::String(s.toUtf8().data(), TagLib::String::UTF8); -} - -static void addid3tag(QString title, QString artist, QString album, QString file) -{ -#ifdef Q_OS_WIN - TagLib::FileRef f(file.toStdWString().c_str()); -#else - TagLib::FileRef f(file.toUtf8().data()); -#endif - TagLib::Tag *t = f.tag(); - t->setTitle(QStringToTagString(title)); - t->setArtist(QStringToTagString(artist)); - t->setAlbum(QStringToTagString(album)); - t->setComment("*** imported from HiMD via QHiMDTransfer ***"); - f.file()->save(); -} - -QString QHiMDMainWindow::dumpoma(const QHiMDTrack & track, QString file) -{ - QString errmsg; - struct himd_nonmp3stream str; - struct himderrinfo status; - unsigned int len; - const unsigned char * data; - QFile f(file); - - if(!f.open(QIODevice::ReadWrite)) - return tr("Error opening file for ATRAC output"); - - if(!(errmsg = track.openNonMpegStream(&str)).isNull()) - { - f.remove(); - return tr("Error opening track: ") + status.statusmsg; - } - - if(f.write(track.makeEA3Header()) == -1) - { - errmsg = tr("Error writing header"); - goto clean; - } - while(himd_nonmp3stream_read_block(&str, &data, &len, NULL, &status) >= 0) - { - if(f.write((const char*)data,len) == -1) - { - errmsg = tr("Error writing audio data"); - goto clean; - } - uploadDialog->blockTransferred(); - QApplication::processEvents(); - if(uploadDialog->upload_canceled()) - { - errmsg = QString("upload aborted by the user"); - goto clean; - } - } - if(status.status != HIMD_STATUS_AUDIO_EOF) - errmsg = QString("Error reading audio data: ") + status.statusmsg; - -clean: - f.close(); - himd_nonmp3stream_close(&str); - - if(!errmsg.isNull()) - f.remove(); - return errmsg; -} - -QString QHiMDMainWindow::dumppcm(const QHiMDTrack & track, QString file) -{ - struct himd_nonmp3stream str; - struct himderrinfo status; - unsigned int len, i; - int left, right; - int clipcount; - QString errmsg; - QFile f(file); - const unsigned char * data; - sox_format_t * out; - sox_sample_t soxbuf [HIMD_MAX_PCMFRAME_SAMPLES * 2]; - sox_signalinfo_t signal_out; - - signal_out.channels = 2; - signal_out.length = 0; - signal_out.precision = 16; - signal_out.rate = 44100; - - if(!(out = sox_open_write(file.toUtf8(), &signal_out, NULL, NULL, NULL, NULL))) - return tr("Error opening file for WAV output"); - - if(!(errmsg = track.openNonMpegStream(&str)).isNull()) - { - f.remove(); - return tr("Error opening track: ") + status.statusmsg; - } - - while(himd_nonmp3stream_read_block(&str, &data, &len, NULL, &status) >= 0) - { - - for(i = 0; i < len/4; i++) { - - left = data[i*4]*256+data[i*4+1]; - right = data[i*4+2]*256+data[i*4+3]; - if (left > 0x8000) left -= 0x10000; - if (right > 0x8000) right -= 0x10000; - - soxbuf[i*2] = SOX_SIGNED_16BIT_TO_SAMPLE(left, clipcount); - soxbuf[i*2+1] = SOX_SIGNED_16BIT_TO_SAMPLE(right, clipcount); - (void)clipcount; /* suppess "is unused" warning */ - } - - if (sox_write(out, soxbuf, len/2) != len/2) - { - errmsg = tr("Error writing audio data"); - goto clean; - } - uploadDialog->blockTransferred(); - QApplication::processEvents(); - if(uploadDialog->upload_canceled()) - { - errmsg = QString("upload aborted by the user"); - goto clean; - } - } - if(status.status != HIMD_STATUS_AUDIO_EOF) - errmsg = QString("Error reading audio data: ") + status.statusmsg; - -clean: - sox_close(out); - himd_nonmp3stream_close(&str); - - if(!errmsg.isNull()) - f.remove(); - return errmsg; -} - -void QHiMDMainWindow::checkfile(QString UploadDirectory, QString &filename, QString extension) -{ - QFile f; - QString newname; - int i = 2; - - f.setFileName(UploadDirectory + "/" + filename + extension); - while(f.exists()) - { - newname = filename + " (" + QString::number(i) + ")"; - f.setFileName(UploadDirectory + "/" + newname + extension); - i++; - } - if(!newname.isEmpty()) - filename = newname; -} - void QHiMDMainWindow::set_buttons_enable(bool connect, bool download, bool upload, bool rename, bool del, bool format, bool quit) { ui->action_Connect->setEnabled(connect); @@ -221,13 +19,10 @@ void QHiMDMainWindow::set_buttons_enable(bool connect, bool download, bool uploa ui->download_button->setEnabled(download); } -void QHiMDMainWindow::init_himd_browser() +void QHiMDMainWindow::init_himd_browser(QAbstractListModel * model) { - int i = 0; + ui->TrackList->setModel(model); - ui->TrackList->setModel(&trackmodel); - for(;i < trackmodel.columnCount(); i++) - ui->TrackList->resizeColumnToContents(i); QObject::connect(ui->TrackList->selectionModel(), SIGNAL(selectionChanged (const QItemSelection &, const QItemSelection &)), this, SLOT(handle_himd_selection_change(const QItemSelection&, const QItemSelection&))); } @@ -237,7 +32,6 @@ void QHiMDMainWindow::init_local_browser() QStringList DownloadFileList; localmodel.setFilter(QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot); localmodel.setNameFilters(QStringList() << "*.mp3" << "*.wav" << "*.oma"); - localmodel.setSelectableExtensions(trackmodel.downloadableFileExtensions()); localmodel.setNameFilterDisables(false); localmodel.setReadOnly(false); localmodel.setRootPath("/"); @@ -259,8 +53,9 @@ void QHiMDMainWindow::save_window_settings() settings.setValue("geometry", QMainWindow::saveGeometry()); settings.setValue("windowState", QMainWindow::saveState()); - for(;i < trackmodel.columnCount(); i++) + for(;i < htmodel.columnCount(); i++) settings.setValue("himd_browser" + QString::number(i), ui->TrackList->columnWidth(i)); + /* TODO: save and restore columnWidth for netmd model */ } void QHiMDMainWindow::read_window_settings() @@ -270,7 +65,7 @@ void QHiMDMainWindow::read_window_settings() QMainWindow::restoreGeometry(settings.value("geometry").toByteArray()); QMainWindow::restoreState(settings.value("windowState").toByteArray()); - for(; i < trackmodel.columnCount(); i++) + for(; i < htmodel.columnCount(); i++) { width = settings.value("himd_browser" + QString::number(i), 0).toInt(); if(width != 0) @@ -280,105 +75,73 @@ void QHiMDMainWindow::read_window_settings() bool QHiMDMainWindow::autodetect_init() { - int k; - - k = QObject::connect(detect, SIGNAL(himd_found(QString)), this, SLOT(himd_found(QString))); - k += QObject::connect(detect, SIGNAL(himd_removed(QString)), this, SLOT(himd_removed(QString))); - - if(!k) + if(!QObject::connect(detect, SIGNAL(deviceListChanged(QMDDevicePtrList)), this, SLOT(device_list_changed(QMDDevicePtrList)))) return false; - QObject::connect(this, SIGNAL(himd_busy(QString)), detect, SLOT(himd_busy(QString))); - QObject::connect(this, SIGNAL(himd_idle(QString)), detect, SLOT(himd_idle(QString))); - - detect->scan_for_himd_devices(); + detect->scan_for_minidisc_devices(); return true; } -void QHiMDMainWindow::open_himd_at(const QString & path) +void QHiMDMainWindow::setCurrentDevice(QMDDevice *dev) { - QMessageBox himdStatus; - QString error; + current_device = dev; + QObject::connect(current_device, SIGNAL(closed()), this, SLOT(current_device_closed())); +} - error = trackmodel.open(path.toAscii()); +void QHiMDMainWindow::open_device(QMDDevice * dev) +{ + QMessageBox mdStatus; + QString error; - if (!error.isNull()) { - himdStatus.setText(tr("Error opening HiMD data. Make sure you chose the proper root directory of your HiMD-Walkman.\n") + error); - himdStatus.exec(); + if(dev->deviceType() == HIMD_DEVICE && dev->path().isEmpty()) + { + mdStatus.setText(tr("Error opening himd device/disc image , no device path given\nPlease use connect button to set the path to the himd device/disc image")); + mdStatus.exec(); set_buttons_enable(1,0,0,0,0,0,1); return; } - ui->himdpath->setText(path); - settings.setValue("lastHiMDDirectory", path); + if(current_device) + current_device_closed(); - himd_device * dev = detect->find_by_path(path); - if(dev) - ui->statusBar->showMessage(dev->recorder_name); + setCurrentDevice(dev); + if(current_device->deviceType() == NETMD_DEVICE) { + error = ntmodel.open(current_device); + init_himd_browser(&ntmodel); + localmodel.setSelectableExtensions(ntmodel.downloadableFileExtensions()); + } + else if(current_device->deviceType() == HIMD_DEVICE) { + error = htmodel.open(current_device); + init_himd_browser(&htmodel); + localmodel.setSelectableExtensions(htmodel.downloadableFileExtensions()); + } else - ui->statusBar->clearMessage(); + { + mdStatus.setText(tr("Error opening minidisc device, unknown/invalid device type given\n")); + mdStatus.exec(); + set_buttons_enable(1,0,0,0,0,0,1); + return; + } + if (!error.isNull()) { + mdStatus.setText(tr("Error opening minidisc device:\n") + error); + mdStatus.exec(); + set_buttons_enable(1,0,0,0,0,0,1); + return; + } + + ui->DiscTitle->setText(current_device->discTitle()); set_buttons_enable(1,0,0,1,1,1,1); } void QHiMDMainWindow::upload_to(const QString & UploadDirectory) { - emit himd_busy(ui->himdpath->text()); + QMDTrackIndexList tlist; - QHiMDTrackList tracks = trackmodel.tracks(ui->TrackList->selectionModel()->selectedRows(0)); + foreach(QModelIndex index, ui->TrackList->selectionModel()->selectedRows(0)) + tlist.append(index.row()); - int allblocks = 0; - for(int i = 0;i < tracks.length(); i++) - allblocks += tracks[i].blockcount(); - - uploadDialog->init(tracks.length(), allblocks); - - for(int i = 0;i < tracks.length(); i++) - { - QString filename, errmsg; - QString title = tracks[i].title(); - if(title.isNull()) - filename = tr("Track %1").arg(tracks[i].tracknum()+1); - else - filename = tracks[i].artist() + " - " + title; - - uploadDialog->starttrack(tracks[i], filename); - if (!tracks[i].copyprotected()) - { - QString codec = tracks[i].codecname(); - if (codec == "MPEG") - { - checkfile(UploadDirectory, filename, ".mp3"); - errmsg = dumpmp3 (tracks[i], UploadDirectory + "/" + filename + ".mp3"); - if(errmsg.isNull()) - addid3tag (tracks[i].title(),tracks[i].artist(),tracks[i].album(), UploadDirectory+ "/" +filename + ".mp3"); - } - else if (codec == "LPCM") - { - checkfile(UploadDirectory, filename, ".wav"); - errmsg = dumppcm (tracks[i], UploadDirectory + "/" + filename + ".wav"); - } - else if (codec == "AT3+" || codec == "AT3 ") - { - checkfile(UploadDirectory, filename, ".oma"); - errmsg = dumpoma (tracks[i], UploadDirectory + "/" + filename + ".oma"); - } - } - else - errmsg = tr("upload disabled because of DRM encryption"); - - if(errmsg.isNull()) - uploadDialog->trackSucceeded(); - else - uploadDialog->trackFailed(errmsg); - - QApplication::processEvents(); - if(uploadDialog->upload_canceled()) - break; - } - uploadDialog->finished(); - - emit himd_idle(ui->himdpath->text()); + current_device->batchUpload(tlist, UploadDirectory); } QHiMDMainWindow::QHiMDMainWindow(QWidget *parent) @@ -386,22 +149,25 @@ QHiMDMainWindow::QHiMDMainWindow(QWidget *parent) { aboutDialog = new QHiMDAboutDialog; formatDialog = new QHiMDFormatDialog; - uploadDialog = new QHiMDUploadDialog; + current_device = NULL; detect = createDetection(this); ui->setupUi(this); ui->updir->setText(settings.value("lastUploadDirectory", QDir::homePath()).toString()); set_buttons_enable(1,0,0,0,0,0,1); - init_himd_browser(); + init_himd_browser(&htmodel); // use himd tracks model as default init_local_browser(); read_window_settings(); - ui->himd_devices->hide(); + ui->himdpath->hide(); if(!autodetect_init()) ui->statusBar->showMessage(" autodetection disabled", 10000); } QHiMDMainWindow::~QHiMDMainWindow() { + if(current_device && current_device->isOpen()) + current_device->close(); + save_window_settings(); delete ui; } @@ -454,8 +220,9 @@ void QHiMDMainWindow::on_action_Format_triggered() void QHiMDMainWindow::on_action_Connect_triggered() { int index; + QHiMDDevice *dev; QString HiMDDirectory; - HiMDDirectory = settings.value("lastHiMDDirectory", QDir::rootPath()).toString(); + HiMDDirectory = settings.value("lastImageDirectory", QDir::rootPath()).toString(); HiMDDirectory = QFileDialog::getExistingDirectory(this, tr("Select directory of HiMD Medium"), HiMDDirectory, @@ -464,21 +231,13 @@ void QHiMDMainWindow::on_action_Connect_triggered() if(HiMDDirectory.isEmpty()) return; - index = ui->himd_devices->findText(HiMDDirectory); - if(index == -1) - { - ui->himd_devices->addItem(HiMDDirectory); - index = ui->himd_devices->findText(HiMDDirectory); - } - ui->himd_devices->setCurrentIndex(index); + index = ui->himd_devices->findText("disc image"); + ui->himd_devices->setCurrentIndex(index); // index of disk image device + dev = (QHiMDDevice *)ui->himd_devices->itemData(index).value(); + dev->setPath(HiMDDirectory); + ui->himd_devices->setItemText(index, QString((dev->name() + " at " + dev->path() ))); - if(ui->himd_devices->isHidden()) - { - ui->himd_devices->show(); - ui->himdpath->hide(); - } - - open_himd_at(HiMDDirectory); + open_device(dev); } void QHiMDMainWindow::on_upload_button_clicked() @@ -506,67 +265,60 @@ void QHiMDMainWindow::handle_local_selection_change(const QItemSelection&, const } if(localmodel.fileInfo(index).isFile()) - download_possible = trackmodel.is_open(); + download_possible = current_device->isOpen(); ui->action_Download->setEnabled(download_possible); ui->download_button->setEnabled(download_possible); } -void QHiMDMainWindow::himd_found(QString HiMDPath) +void QHiMDMainWindow::device_list_changed(QMDDevicePtrList dplist) { - int index; + QString device; + QMDDevice * dev; - if(HiMDPath.isEmpty()) - return; + /* close current device if it is removed from device list */ + if(current_device != NULL && current_device->isOpen() && !dplist.contains(current_device)) { + current_device_closed(); + } - index = ui->himd_devices->findText(HiMDPath); - if(index == -1) - ui->himd_devices->addItem(HiMDPath); + ui->himd_devices->clear(); - if(ui->himd_devices->isHidden()) + foreach(dev, dplist) { - ui->himd_devices->show(); - ui->himdpath->hide(); + device = QString(dev->deviceType() == NETMD_DEVICE ? dev->name() : dev->name() + " at " + dev->path() ); + ui->himd_devices->addItem(device, qVariantFromValue((void *)dev)); } - if(!trackmodel.is_open()) - { - index = ui->himd_devices->findText(HiMDPath); - ui->himd_devices->setCurrentIndex(index); - open_himd_at(HiMDPath); + if(current_device) + ui->himd_devices->setCurrentIndex(dplist.indexOf(current_device)); + else { + if(dplist.count() > 1) { + ui->himd_devices->setCurrentIndex(1); + open_device(dplist.at(1)); // open first autodetected device + } } - } - -void QHiMDMainWindow::himd_removed(QString HiMDPath) +void QHiMDMainWindow::on_himd_devices_activated(QString device) { - int index; + QMDDevice * dev; + int index = ui->himd_devices->findText(device); - if(HiMDPath.isEmpty()) - return; - if (ui->himdpath->text() == HiMDPath) - { - ui->himdpath->setText(tr("(disconnected)")); - ui->statusBar->clearMessage(); - trackmodel.close(); - } - - index = ui->himd_devices->findText(HiMDPath); - if(index != -1) - { - ui->himd_devices->removeItem(index); - } + dev = (QMDDevice *)ui->himd_devices->itemData(index).value(); - if(ui->himd_devices->count() == 0) - { - ui->himd_devices->hide(); - ui->himdpath->show(); - } + open_device(dev); } -void QHiMDMainWindow::on_himd_devices_activated(QString device) +void QHiMDMainWindow::current_device_closed() { - open_himd_at(device); + QObject::disconnect(current_device, SIGNAL(closed()), this, SLOT(current_device_closed())); + + if(current_device->deviceType() == NETMD_DEVICE) + ntmodel.close(); + + else if(current_device->deviceType() == HIMD_DEVICE) + htmodel.close(); + + current_device = NULL; } void QHiMDMainWindow::on_download_button_clicked() diff --git a/qhimdtransfer/qhimdmainwindow.h b/qhimdtransfer/qhimdmainwindow.h index 85be8ae..c08d465 100644 --- a/qhimdtransfer/qhimdmainwindow.h +++ b/qhimdtransfer/qhimdmainwindow.h @@ -6,14 +6,9 @@ #include #include "qhimdaboutdialog.h" #include "qhimdformatdialog.h" -#include "qhimduploaddialog.h" #include "qhimddetection.h" -#include "qhimdmodel.h" -#include "../libhimd/himd.h" -#include -#include -#include -#include +#include "qmdmodel.h" +#include "qmddevice.h" extern "C" { #include @@ -36,22 +31,20 @@ private: Ui::QHiMDMainWindowClass *ui; QHiMDAboutDialog * aboutDialog; QHiMDFormatDialog * formatDialog; - QHiMDUploadDialog * uploadDialog; QHiMDDetection * detect; - QHiMDTracksModel trackmodel; + QNetMDTracksModel ntmodel; + QHiMDTracksModel htmodel; QHiMDFileSystemModel localmodel; QSettings settings; - QString dumpmp3(const QHiMDTrack & trk, QString file); - QString dumpoma(const QHiMDTrack & trk, QString file); - QString dumppcm(const QHiMDTrack & trk, QString file); - void checkfile(QString UploadDirectory, QString &filename, QString extension); + QMDDevice * current_device; void set_buttons_enable(bool connect, bool download, bool upload, bool rename, bool del, bool format, bool quit); - void init_himd_browser(); + void init_himd_browser(QAbstractListModel *model); void init_local_browser(); void save_window_settings(); void read_window_settings(); bool autodetect_init(); - void open_himd_at(const QString & path); + void setCurrentDevice(QMDDevice * dev); + void open_device(QMDDevice * dev); void upload_to(const QString & path); private slots: @@ -64,14 +57,11 @@ private slots: void on_upload_button_clicked(); void handle_himd_selection_change(const QItemSelection&, const QItemSelection&); void handle_local_selection_change(const QItemSelection&, const QItemSelection&); - void himd_found(QString path); - void himd_removed(QString path); + void device_list_changed(QMDDevicePtrList dplist); void on_himd_devices_activated(QString device); + void current_device_closed(); void on_download_button_clicked(); -signals: - void himd_busy(QString path); - void himd_idle(QString path); }; #endif // QHIMDMAINWINDOW_H diff --git a/qhimdtransfer/qhimdmainwindow.ui b/qhimdtransfer/qhimdmainwindow.ui index b55845f..f394d92 100644 --- a/qhimdtransfer/qhimdmainwindow.ui +++ b/qhimdtransfer/qhimdmainwindow.ui @@ -35,7 +35,7 @@ - HiMD path + <html><head/><body><p>minidisc device (path):</p></body></html> @@ -52,6 +52,20 @@ + + + + + <html><head/><body><p><span style=" font-weight:600;">disc title:</span></p></body></html> + + + + + + + + + QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed @@ -174,7 +188,7 @@ 0 0 784 - 18 + 20 diff --git a/qhimdtransfer/qhimdmodel.cpp b/qhimdtransfer/qhimdmodel.cpp deleted file mode 100644 index ac4bde5..0000000 --- a/qhimdtransfer/qhimdmodel.cpp +++ /dev/null @@ -1,289 +0,0 @@ -#include -#include -#include "qhimdmodel.h" - -static QString get_himd_str(struct himd * himd, int idx) -{ - QString outstr; - char * str; - if(!idx) - return QString(); - str = himd_get_string_utf8(himd, idx, NULL, NULL); - if(!str) - return QString(); - - outstr = QString::fromUtf8(str); - himd_free(str); - return outstr; -} - -QHiMDTrack::QHiMDTrack(struct himd * himd, unsigned int trackindex) : himd(himd), trknum(trackindex) -{ - trackslot = himd_get_trackslot(himd, trackindex, NULL); - if(trackslot != 0) - if(himd_get_track_info(himd, trackslot, &ti, NULL) < 0) - trackslot = -1; -} - -unsigned int QHiMDTrack::tracknum() const -{ - return trknum; -} - -QString QHiMDTrack::title() const -{ - if(trackslot != 0) - return get_himd_str(himd, ti.title); - else - return QString(); -} - -QString QHiMDTrack::artist() const -{ - if(trackslot != 0) - return get_himd_str(himd, ti.artist); - else - return QString(); -} - -QString QHiMDTrack::album() const -{ - if(trackslot != 0) - return get_himd_str(himd, ti.album); - else - return QString(); -} - -QString QHiMDTrack::codecname() const -{ - if(trackslot != 0) - return himd_get_codec_name(&ti); - else - return QString(); -} - -QTime QHiMDTrack::duration() const -{ - QTime t; - if(trackslot != 0) - return t.addSecs(ti.seconds); - else - return t; -} - -bool QHiMDTrack::copyprotected() const -{ - if(trackslot != 0) - return !himd_track_uploadable(himd, &ti); - return true; -} - -int QHiMDTrack::blockcount() const -{ - if(trackslot != 0) - return himd_track_blocks(himd, &ti, NULL); - else - return 0; -} - -QString QHiMDTrack::openMpegStream(struct himd_mp3stream * str) const -{ - struct himderrinfo status; - if(himd_mp3stream_open(himd, trackslot, str, &status) < 0) - return QString::fromUtf8(status.statusmsg); - return QString(); -} - -QString QHiMDTrack::openNonMpegStream(struct himd_nonmp3stream * str) const -{ - struct himderrinfo status; - if(himd_nonmp3stream_open(himd, trackslot, str, &status) < 0) - return QString::fromUtf8(status.statusmsg); - return QString(); -} - -QByteArray QHiMDTrack::makeEA3Header() const -{ - char header[EA3_FORMAT_HEADER_SIZE]; - make_ea3_format_header(header, &ti.codec_info); - return QByteArray(header,EA3_FORMAT_HEADER_SIZE); -} - -enum columnum { - ColId, ColTitle, ColArtist, ColAlbum, ColLength, ColCodec, ColUploadable, - LAST_columnnum = ColUploadable -}; - -QVariant QHiMDTracksModel::headerData(int section, Qt::Orientation orientation, int role) const -{ - if(orientation != Qt::Horizontal) - return QVariant(); - - if(role == Qt::SizeHintRole) - { - static QFont f; - static QFontMetrics met(f); - switch((columnum)section) - { - case ColId: - return QSize(met.width("9999")+5, 0); - case ColTitle: - case ColArtist: - case ColAlbum: - return QSize(25*met.averageCharWidth(), 0); - case ColLength: - return QSize(met.width("9:99:99"), 0); - case ColCodec: - case ColUploadable: - /* Really use the header for the metric in these columns, - contents will be shorter */ - return QAbstractListModel::headerData(section,orientation,role); - } - } - - if(role == Qt::DisplayRole) - { - switch((columnum)section) - { - case ColId: - return tr("Nr."); - case ColTitle: - return tr("Title"); - case ColArtist: - return tr("Artist"); - case ColAlbum: - return tr("Album"); - case ColLength: - return tr("Length"); - case ColCodec: - return tr("Format"); - case ColUploadable: - return tr("Uploadable"); - } - } - return QVariant(); -} - -QVariant QHiMDTracksModel::data(const QModelIndex & index, int role) const -{ - if(role == Qt::TextAlignmentRole && - (index.column() == ColId || index.column() == ColLength)) - return Qt::AlignRight; - - if(index.row() >= rowCount()) - return QVariant(); - - QHiMDTrack track(himd, index.row()); - - if(role == Qt::CheckStateRole && index.column() == ColUploadable) - return track.copyprotected() ? Qt::Unchecked : Qt::Checked; - - if(role == Qt::DisplayRole) - { - switch((columnum)index.column()) - { - case ColId: - return index.row() + 1; - case ColTitle: - return track.title(); - case ColArtist: - return track.artist(); - case ColAlbum: - return track.album(); - case ColLength: - { - QTime t = track.duration(); - if(t < QTime(1,0,0)) - return t.toString("m:ss"); - else - return t.toString("h:mm:ss"); - } - case ColCodec: - return track.codecname(); - case ColUploadable: - return QVariant(); /* Displayed by checkbox */ - } - } - return QVariant(); -} - -int QHiMDTracksModel::rowCount(const QModelIndex &) const -{ - if(himd) - return himd_track_count(himd); - else - return 0; -} - -int QHiMDTracksModel::columnCount(const QModelIndex &) const -{ - return LAST_columnnum+1; -} - -QString QHiMDTracksModel::open(const QString & path) -{ - struct himd * newhimd; - struct himderrinfo status; - - newhimd = new struct himd; - if(himd_open(newhimd,path.toUtf8(), &status) < 0) - { - delete newhimd; - return QString::fromUtf8(status.statusmsg); - } - close(); - himd = newhimd; - reset(); /* inform views that the model contents changed */ - return QString(); -} - -bool QHiMDTracksModel::is_open() -{ - return himd != NULL; -} - -void QHiMDTracksModel::close() -{ - struct himd * oldhimd; - if(!himd) - return; - oldhimd = himd; - himd = NULL; - reset(); /* inform views that the model contents changed */ - himd_close(oldhimd); - delete oldhimd; -} - -QHiMDTrack QHiMDTracksModel::track(int trknum) const -{ - return QHiMDTrack(himd, trknum); -} - -QHiMDTrackList QHiMDTracksModel::tracks(const QModelIndexList & modelindices) const -{ - QHiMDTrackList tracks; - QModelIndex index; - foreach(index, modelindices) - tracks.append(track(index.row())); - return tracks; -} - -QStringList QHiMDTracksModel::downloadableFileExtensions() const -{ - return (QStringList() << "mp3"); -} - -/* QFileSystemModel stuff */ - -Qt::ItemFlags QHiMDFileSystemModel::flags(const QModelIndex &index) const -{ - if(!isDir(index) && !selectableExtensions.contains((fileInfo(index).suffix()), Qt::CaseInsensitive)) - return Qt::NoItemFlags; //not selectable, not enabled (grayed out in the browser) - - return QFileSystemModel::flags(index); -} - -void QHiMDFileSystemModel::setSelectableExtensions(QStringList extensions) -{ - selectableExtensions = extensions; -} diff --git a/qhimdtransfer/qhimdmodel.h b/qhimdtransfer/qhimdmodel.h deleted file mode 100644 index 6ccc2f8..0000000 --- a/qhimdtransfer/qhimdmodel.h +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef QHIMDMODEL_H -#define QHIMDMODEL_H - -#include -#include -#include -#include -#include -#include "himd.h" - -#include "sony_oma.h" - -class QHiMDTracksModel; - -class QHiMDTrack { - struct himd * himd; - unsigned int trknum; - unsigned int trackslot; - struct trackinfo ti; -public: - QHiMDTrack(struct himd * himd, unsigned int trackindex); - unsigned int tracknum() const; - QString title() const; - QString artist() const; - QString album() const; - QString codecname() const; - QTime duration() const; - bool copyprotected() const; - int blockcount() const; - - QString openMpegStream(struct himd_mp3stream * str) const; - QString openNonMpegStream(struct himd_nonmp3stream * str) const; - QByteArray makeEA3Header() const; -}; - -typedef QList QHiMDTrackList; - -class QHiMDTracksModel : public QAbstractListModel { - Q_OBJECT - - struct himd *himd; -public: - QHiMDTracksModel() : himd(NULL) {} - /* QAbstractListModel stuff */ - virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; - virtual QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const; - virtual int rowCount(const QModelIndex & parent = QModelIndex() ) const; - virtual int columnCount(const QModelIndex & parent = QModelIndex() ) const; - /* HiMD containter stuff */ - QString open(const QString & path); /* returns null if OK, error message otherwise */ - bool is_open(); - void close(); - QHiMDTrack track(int trackidx) const; - QHiMDTrackList tracks(const QModelIndexList & indices) const; - QStringList downloadableFileExtensions() const; -}; - -class QHiMDFileSystemModel : public QFileSystemModel { - Q_OBJECT - - QStringList selectableExtensions; -public: - virtual Qt::ItemFlags flags(const QModelIndex &index) const; - void setSelectableExtensions(QStringList extensions); -}; - - -#endif diff --git a/qhimdtransfer/qhimdtransfer.pro b/qhimdtransfer/qhimdtransfer.pro index 236b5e9..ad6c396 100644 --- a/qhimdtransfer/qhimdtransfer.pro +++ b/qhimdtransfer/qhimdtransfer.pro @@ -49,8 +49,10 @@ HEADERS += qhimdaboutdialog.h \ qhimdformatdialog.h \ qhimduploaddialog.h \ qhimdmainwindow.h \ - qhimdmodel.h \ - qhimddetection.h + qhimddetection.h \ + qmdtrack.h \ + qmdmodel.h \ + qmddevice.h FORMS += qhimdaboutdialog.ui \ qhimdformatdialog.ui \ qhimduploaddialog.ui \ @@ -60,8 +62,10 @@ SOURCES += main.cpp \ qhimdformatdialog.cpp \ qhimduploaddialog.cpp \ qhimdmainwindow.cpp \ - qhimdmodel.cpp \ - qhimddetection.cpp + qhimddetection.cpp \ + qmdtrack.cpp \ + qmdmodel.cpp \ + qmddevice.cpp win32:SOURCES += qhimdwindetection.cpp else:SOURCES += qhimddummydetection.cpp RESOURCES += icons.qrc @@ -77,6 +81,7 @@ mac:ICON = qhimdtransfer.icns win32:TARGET = QHiMDTransfer mac:TARGET = QHiMDTransfer include(../libhimd/use_libhimd.pri) +include(../libnetmd/use_libnetmd.prl) # Installing stuff translations.files = $$bracketAll(LANGUAGES, qhimdtransfer_,.qm) diff --git a/qhimdtransfer/qhimduploaddialog.cpp b/qhimdtransfer/qhimduploaddialog.cpp index 4df44ca..13f327e 100644 --- a/qhimdtransfer/qhimduploaddialog.cpp +++ b/qhimdtransfer/qhimduploaddialog.cpp @@ -42,7 +42,7 @@ void QHiMDUploadDialog::finished() return; } -void QHiMDUploadDialog::starttrack(const QHiMDTrack & trk, const QString & title) +void QHiMDUploadDialog::starttrack(const QMDTrack &trk, const QString & title) { tracknum = trk.tracknum() + 1; m_ui->curtrack_label->setText(tr("current track: %1 - %2").arg(tracknum).arg(title)); @@ -64,6 +64,8 @@ void QHiMDUploadDialog::init(int trackcount, int totalblocks) allfinished = 0; m_ui->AllPBar->setRange(0, allblocks); m_ui->AllPBar->reset(); + // reset "canceled" variable, else if last upload was canceled next upload will be canceled automatically + canceled = false; scount = fcount = 0; m_ui->success_text->setText(""); diff --git a/qhimdtransfer/qhimduploaddialog.h b/qhimdtransfer/qhimduploaddialog.h index 86bcd5c..ec7a4d2 100644 --- a/qhimdtransfer/qhimduploaddialog.h +++ b/qhimdtransfer/qhimduploaddialog.h @@ -2,7 +2,7 @@ #define QHIMDUPLOADDIALOG_H #include -#include "qhimdmodel.h" +#include "qmdtrack.h" namespace Ui { class QHiMDUploadDialog; @@ -17,7 +17,7 @@ public: bool upload_canceled() { return canceled; } void init(int trackcount, int totalblocks); - void starttrack(const QHiMDTrack & trk, const QString & title); + void starttrack(const QMDTrack & trk, const QString & title); void blockTransferred(); void trackFailed(const QString & errmsg); void trackSucceeded(); diff --git a/qhimdtransfer/qhimdwindetection.cpp b/qhimdtransfer/qhimdwindetection.cpp index 1dc437a..db723ef 100644 --- a/qhimdtransfer/qhimdwindetection.cpp +++ b/qhimdtransfer/qhimdwindetection.cpp @@ -3,8 +3,6 @@ #include #include "qhimddetection.h" -#define WINVER 0x0500 - #include #include #include @@ -12,10 +10,10 @@ #include // needed for handling storage devices #include // needed for CM_Get_Child function -struct win_himd_device : himd_device { - HANDLE devhandle; - HDEVNOTIFY himdChange; - }; +struct win_os_data : os_data { + HANDLE devhandle; + HDEVNOTIFY himdChange; + }; static const GUID my_GUID_IO_MEDIA_ARRIVAL = {0xd07433c0, 0xa98e, 0x11d2, {0x91, 0x7a, 0x00, 0xa0, 0xc9, 0x06, 0x8f, 0xf3} }; @@ -23,6 +21,9 @@ static const GUID my_GUID_IO_MEDIA_ARRIVAL = static const GUID my_GUID_IO_MEDIA_REMOVAL = {0xd07433c1, 0xa98e, 0x11d2, {0x91, 0x7a, 0x00, 0xa0, 0xc9, 0x06, 0x8f, 0xf3} }; +static const GUID my_GUID_DEVINTERFACE_USB_DEVICE = + {0xa5dcbf10, 0x6530, 0x11d2, {0x90, 0x1f, 0x00, 0xc0,0x4f, 0xb9, 0x51, 0xed} }; + static const int my_DBT_CUSTOMEVENT = 0x8006; @@ -37,18 +38,20 @@ public: void scan_for_himd_devices(); QHiMDWinDetection(QObject * parent = NULL); ~QHiMDWinDetection(); - win_himd_device *find_by_path(QString path); + //win_himd_device *find_by_path(QString path); private: HDEVNOTIFY hDevNotify; - win_himd_device *find_by_handle(HANDLE devhandle); - win_himd_device *win_dev_at(int idx); + HDEVNOTIFY listen_usbdev; + QMDDevice *find_by_handle(HANDLE devhandle); void add_himddevice(QString path, QString name); - void remove_himddevice(QString path); + virtual void remove_himddevice(QString path); void add_himd(HANDLE devhandle); void remove_himd(HANDLE devhandle); HDEVNOTIFY register_mediaChange(HANDLE devhandle); void unregister_mediaChange(HDEVNOTIFY himd_change); + HDEVNOTIFY register_usbDeviceNotification(); + void unregister_usbDeviceNotification(); bool winEvent(MSG * msg, long * result); }; @@ -58,17 +61,21 @@ QHiMDDetection * createDetection(QObject * parent) return new QHiMDWinDetection(parent); } -QHiMDWinDetection::QHiMDWinDetection(QObject * parent) +QHiMDWinDetection::QHiMDWinDetection(QObject * parent) : QHiMDDetection(parent), QWidget(0) { // ask for Window ID to have Qt create the window. (void)winId(); + // register for usb device notifications + if((listen_usbdev = register_usbDeviceNotification()) == NULL) + qDebug() << "cannot register usb device notifications" << endl; } QHiMDWinDetection::~QHiMDWinDetection() { - while (!device_list.isEmpty()) - remove_himddevice(device_list.at(0)->path); + unregister_usbDeviceNotification(); + clearDeviceList(); + cleanup_netmd_list(); } void QHiMDWinDetection::scan_for_himd_devices() @@ -96,21 +103,19 @@ void QHiMDWinDetection::scan_for_himd_devices() return; } -win_himd_device *QHiMDWinDetection::win_dev_at(int idx) -{ - return static_cast(device_list.at(idx)); -} - -win_himd_device *QHiMDWinDetection::find_by_path(QString path) +QMDDevice *QHiMDWinDetection::find_by_handle(HANDLE devhandle) { - return static_cast(QHiMDDetection::find_by_path(path)); -} + QMDDevice *mddev; + win_os_data *osd; -win_himd_device *QHiMDWinDetection::find_by_handle(HANDLE devhandle) -{ - for (int i = 0; i < device_list.size(); i++) - if(win_dev_at(i)->devhandle == devhandle) - return win_dev_at(i); + foreach(mddev, dlist) + { + if(mddev->deviceType() != HIMD_DEVICE) + continue; + osd = static_cast(mddev->pdata()); + if(osd->devhandle == devhandle) + return mddev; + } return NULL; } @@ -178,6 +183,7 @@ static bool identified(QString devpath, QString & name) int vid = devpath.mid(devpath.indexOf("VID") + 4, 4).toInt(NULL,16); int pid = devpath.mid(devpath.indexOf("PID") + 4, 4).toInt(NULL,16); const char * devname = identify_usb_device(vid, pid); + if (devname) { name = devname; @@ -191,7 +197,8 @@ void QHiMDWinDetection::add_himddevice(QString path, QString name) if (find_by_path(path)) return; - win_himd_device * new_device = new win_himd_device; + QHiMDDevice * new_device = new QHiMDDevice(); + struct win_os_data pdata; int k; char drv[] = "\\\\.\\X:"; QByteArray device = "\\\\.\\PHYSICALDRIVE"; @@ -213,80 +220,93 @@ void QHiMDWinDetection::add_himddevice(QString path, QString name) if(k != 0) device.append(QString::number(sdn.DeviceNumber)); - new_device->devhandle = CreateFileA(device.data(), NULL , FILE_SHARE_READ, NULL, + + pdata.devhandle = CreateFileA(device.data(), NULL , FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); - if(new_device->devhandle == INVALID_HANDLE_VALUE) + if(pdata.devhandle == INVALID_HANDLE_VALUE) return; - new_device->himdChange = register_mediaChange(new_device->devhandle); - new_device->is_busy = false; - new_device->path = path; - new_device->recorder_name = name; + pdata.himdChange = register_mediaChange(pdata.devhandle); + new_device->setBusy(false); + new_device->setPath(path); + new_device->setName(name); file[0] = path.at(0).toAscii(); if(OpenFile(file, &OFfile, OF_EXIST) != HFILE_ERROR) - { - new_device->md_inserted = true; - emit himd_found(new_device->path); - qDebug() << "himd device at " + new_device->path + " added (" + new_device->recorder_name + ")"; - } + pdata.md_inserted = true; else - { - qDebug() << "himd device at " + new_device->path + " added (" + new_device->recorder_name + ")" + " ; without MD"; - new_device->md_inserted = false; - } + pdata.md_inserted = false; - device_list.append(new_device); + new_device->setPlatformData(pdata); + dlist.append(new_device); + emit deviceListChanged(dlist); return; - } void QHiMDWinDetection::remove_himddevice(QString path) { - win_himd_device * dev = find_by_path(path); + int index = -1; + win_os_data * data; + QHiMDDevice * dev = static_cast(find_by_path(path)); + if (!dev) return; - unregister_mediaChange(dev->himdChange); + index = dlist.indexOf(dev); - if (dev->devhandle != NULL) - CloseHandle(dev->devhandle); + if(dev->isOpen()) + dev->close(); - emit himd_removed(dev->path); + if(dev->name() != "disc image") { + data = static_cast(dev->pdata()); + if(data->himdChange != NULL) + unregister_mediaChange(data->himdChange); - qDebug() << "himd device at " + dev->path + " removed (" + dev->recorder_name + ")"; + if(data->devhandle != NULL) + CloseHandle(data->devhandle); + } - device_list.removeAll(dev); delete dev; + dev = NULL; + + dlist.removeAt(index); + + emit deviceListChanged(dlist); } void QHiMDWinDetection::add_himd(HANDLE devhandle) { - win_himd_device * dev = find_by_handle(devhandle); + win_os_data * data; + QMDDevice * dev = find_by_handle(devhandle); if (!dev) return; - if(!dev->md_inserted) + data = static_cast(dev->pdata()); + + if(!data->md_inserted) { - dev->md_inserted = true; - emit himd_found(dev->path); - qDebug() << "himd device at " + dev->path + " : md inserted"; + data->md_inserted = true; } return; } void QHiMDWinDetection::remove_himd(HANDLE devhandle) { - win_himd_device * dev = find_by_handle(devhandle); + win_os_data * data; + QMDDevice * dev = find_by_handle(devhandle); + if (!dev) return; - if(dev->md_inserted) + data = static_cast(dev->pdata()); + + if(dev->isOpen()) + dev->close(); + + if(data->md_inserted) { - dev->md_inserted = false; - emit himd_removed(dev->path); - qDebug() << "himd device at " + dev->path + " : md removed"; + data->md_inserted = false; } return; } @@ -311,9 +331,30 @@ void QHiMDWinDetection::unregister_mediaChange(HDEVNOTIFY himd_change) UnregisterDeviceNotification(himd_change); } +HDEVNOTIFY QHiMDWinDetection::register_usbDeviceNotification() +{ + DEV_BROADCAST_DEVICEINTERFACE filter; + + ZeroMemory(&filter, sizeof(filter)); + filter.dbcc_size = sizeof(filter); + filter.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE; + filter.dbcc_reserved = 0; + filter.dbcc_classguid = my_GUID_DEVINTERFACE_USB_DEVICE; + + return RegisterDeviceNotification( this->winId(), &filter, DEVICE_NOTIFY_WINDOW_HANDLE); + +} + +void QHiMDWinDetection::unregister_usbDeviceNotification() +{ + if(listen_usbdev != NULL) + UnregisterDeviceNotification(listen_usbdev); +} + bool QHiMDWinDetection::winEvent(MSG * msg, long * result) { QString name, devID, path ; + if(msg->message == WM_DEVICECHANGE) { PDEV_BROADCAST_HDR pHdr = (PDEV_BROADCAST_HDR )msg->lParam; @@ -335,6 +376,16 @@ bool QHiMDWinDetection::winEvent(MSG * msg, long * result) } } } + else if(pHdr->dbch_devicetype == DBT_DEVTYP_DEVICEINTERFACE) + { + PDEV_BROADCAST_DEVICEINTERFACE pDevInf = (PDEV_BROADCAST_DEVICEINTERFACE)pHdr; + devID = QString::fromWCharArray(pDevInf->dbcc_name).toUpper(); + /* only handle netmd devices, himd devices will be handled by DBT_DEVTYP_VOLUME */ + if(identified(devID, name) && name.contains("NetMD)")) { + qDebug() << name << " detected, rescanning netmd devices" << endl; + rescan_netmd_devices(); + } + } break; } case DBT_DEVICEREMOVECOMPLETE : @@ -346,6 +397,15 @@ bool QHiMDWinDetection::winEvent(MSG * msg, long * result) qDebug() << "Message:DBT_DEVICEREMOVECOMPLETE for drive " + path; remove_himddevice(path); } + else if(pHdr->dbch_devicetype == DBT_DEVTYP_DEVICEINTERFACE) + { + PDEV_BROADCAST_DEVICEINTERFACE pDevInf = (PDEV_BROADCAST_DEVICEINTERFACE)pHdr; + devID = QString::fromWCharArray(pDevInf->dbcc_name).toUpper(); + if(identified(devID, name) && name.contains("NetMD)")) { + qDebug() << name << " removed, rescanning netmd devices" << endl; + rescan_netmd_devices(); + } + } break; } case DBT_DEVICEQUERYREMOVE : @@ -353,13 +413,13 @@ bool QHiMDWinDetection::winEvent(MSG * msg, long * result) if(pHdr->dbch_devicetype & DBT_DEVTYP_HANDLE) { PDEV_BROADCAST_HANDLE pHdrh = (PDEV_BROADCAST_HANDLE)pHdr; - win_himd_device *dev = find_by_handle(pHdrh->dbch_handle); + QMDDevice *dev = find_by_handle(pHdrh->dbch_handle); if(!dev) { qDebug() << "Message:DBT_DEVICEQUERYREMOVE for unknown device " << pHdrh->dbch_handle; break; } - if(dev->is_busy) + if(dev->isBusy()) { *result = BROADCAST_QUERY_DENY; qDebug() << "Message:DBT_DEVICEQUERYREMOVE for drive " + path + " denied: transfer in progress"; @@ -368,9 +428,24 @@ bool QHiMDWinDetection::winEvent(MSG * msg, long * result) else { qDebug() << "Message:DBT_DEVICEQUERYREMOVE requested"; - remove_himddevice(dev->path); + remove_himddevice(dev->path()); } } + else if(pHdr->dbch_devicetype == DBT_DEVTYP_DEVICEINTERFACE) + { + PDEV_BROADCAST_DEVICEINTERFACE pDevInf = (PDEV_BROADCAST_DEVICEINTERFACE)pHdr; + devID = QString::fromWCharArray(pDevInf->dbcc_name).toUpper(); + if(identified(devID, name) && name.contains("NetMD)")) { + QMDDevice * dev = find_by_name(name); + if(!dev) + break; + if(dev->isBusy()) { + *result = BROADCAST_QUERY_DENY; + return true; + } + dev->close(); + } + } break; } case my_DBT_CUSTOMEVENT : diff --git a/qhimdtransfer/qmddevice.cpp b/qhimdtransfer/qmddevice.cpp new file mode 100644 index 0000000..eeb7e78 --- /dev/null +++ b/qhimdtransfer/qmddevice.cpp @@ -0,0 +1,480 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +extern "C" { +#include +} + +/* common device members */ +QMDDevice::QMDDevice() : dev_type(NO_DEVICE) +{ +} + +QMDDevice::~QMDDevice() +{ + close(); +} + +enum device_type QMDDevice::deviceType() +{ + return dev_type; +} + +void QMDDevice::setPath(QString path) +{ + device_path = path; +} + +QString QMDDevice::path() +{ + return device_path; +} + +void QMDDevice::setName(QString name) +{ + recorder_name = name; +} + +QString QMDDevice::name() +{ + return recorder_name; +} + +void QMDDevice::setBusy(bool busy) +{ + is_busy = busy; +} + +bool QMDDevice::isBusy() +{ + return is_busy; +} + +void QMDDevice::setPlatformData(os_data pdata) +{ + osdata = pdata; +} + +os_data * QMDDevice::pdata() +{ + os_data * data = &osdata; + return data; +} + +QStringList QMDDevice::downloadableFileExtensions() const +{ + if(dev_type == NETMD_DEVICE) + return QStringList() << "wav"; + + if(dev_type == HIMD_DEVICE) + return QStringList() << "mp3"; + + return QStringList(); +} + +void QMDDevice::checkfile(QString UploadDirectory, QString &filename, QString extension) +{ + QFile f; + QString newname; + int i = 2; + + f.setFileName(UploadDirectory + "/" + filename + extension); + while(f.exists()) + { + newname = filename + " (" + QString::number(i) + ")"; + f.setFileName(UploadDirectory + "/" + newname + extension); + i++; + } + if(!newname.isEmpty()) + filename = newname; +} + + +/* netmd device members */ +QNetMDDevice::QNetMDDevice() +{ + dev_type = NETMD_DEVICE; + devh = NULL; + netmd = NULL; + is_open = false; +} + +QNetMDDevice::~QNetMDDevice() +{ + close(); +} + +void QNetMDDevice::setUsbDevice(netmd_device * dev) +{ + netmd = dev; +} + +QString QNetMDDevice::open() +{ + uint8_t i = 0; + netmd_error error; + char buffer[256]; + + if(!netmd) + return tr("netmd_device not set, use setUsbDevice(...) function first"); + + if((error = netmd_open(netmd, &devh)) != NETMD_NO_ERROR) + return tr("Error opening netmd: %1").arg(netmd_strerror(error)); + + netmd_initialize_disc_info(devh, ¤t_md); + + /* generate track count first, needed by QNetMDTracksModel */ + while(netmd_request_title(devh, i, buffer, sizeof(buffer)) >= 0) + i++; + + trk_count = i; + + is_open = true; + emit opened(); + return QString(); +} + +void QNetMDDevice::close() +{ + if(!devh) + return; + + netmd_clean_disc_info(¤t_md); + netmd_close(devh); + devh = NULL; + + is_open = false; + trk_count = 0; + emit closed(); +} + +QString QNetMDDevice::discTitle() +{ + return QString(current_md.groups[0].name); +} + +QNetMDTrack QNetMDDevice::netmdTrack(unsigned int trkindex) +{ + minidisc * disc = ¤t_md; + + return QNetMDTrack(devh, disc, trkindex); +} + +void QNetMDDevice::batchUpload(QMDTrackIndexList tlist, QString path) +{ + QMessageBox mdStatus; + + mdStatus.setText(tr("netmd uploads are not implemented, yet\n will be comming soon")); + mdStatus.exec(); +} + +/* himd device members */ + +QHiMDDevice::QHiMDDevice() +{ + dev_type = HIMD_DEVICE; + himd = NULL; + is_open = false; +} + +QHiMDDevice::~QHiMDDevice() +{ + close(); +} + +QString QHiMDDevice::open() +{ + struct himderrinfo status; + + if(!pdata()->md_inserted) + return tr("cannot open device, no disc"); + + if(himd) + return QString(); // already opened + + himd = new struct himd; + if(himd_open(himd, device_path.toUtf8(), &status) < 0) + { + delete himd; + himd = NULL; + return QString::fromUtf8(status.statusmsg); + } + + trk_count = himd_track_count(himd); + is_open = true; + emit opened(); + return QString(); +} + +void QHiMDDevice::close() +{ + if(!himd) + return; + + himd_close(himd); + delete himd; + himd = NULL; + + is_open = false; + trk_count = 0; + emit closed(); +} + +QHiMDTrack QHiMDDevice::himdTrack(unsigned int trkindex) +{ + return QHiMDTrack(himd, trkindex); +} + +QString QHiMDDevice::dumpmp3(const QHiMDTrack &trk, QString file) +{ + QString errmsg; + struct himd_mp3stream str; + struct himderrinfo status; + unsigned int len; + const unsigned char * data; + QFile f(file); + + if(!f.open(QIODevice::ReadWrite)) + { + return tr("Error opening file for MP3 output"); + } + if(!(errmsg = trk.openMpegStream(&str)).isNull()) + { + f.remove(); + return tr("Error opening track: ") + errmsg; + } + while(himd_mp3stream_read_block(&str, &data, &len, NULL, &status) >= 0) + { + if(f.write((const char*)data,len) == -1) + { + errmsg = tr("Error writing audio data"); + goto clean; + } + uploadDialog.blockTransferred(); + QApplication::processEvents(); + if(uploadDialog.upload_canceled()) + { + errmsg = tr("upload aborted by the user"); + goto clean; + } + + } + if(status.status != HIMD_STATUS_AUDIO_EOF) + errmsg = tr("Error reading audio data: ") + status.statusmsg; + +clean: + f.close(); + himd_mp3stream_close(&str); + if(!errmsg.isNull()) + f.remove(); + return errmsg; +} + +static inline TagLib::String QStringToTagString(const QString & s) +{ + return TagLib::String(s.toUtf8().data(), TagLib::String::UTF8); +} + +static void addid3tag(QString title, QString artist, QString album, QString file) +{ +#ifdef Q_OS_WIN + TagLib::FileRef f(file.toStdWString().c_str()); +#else + TagLib::FileRef f(file.toUtf8().data()); +#endif + TagLib::Tag *t = f.tag(); + t->setTitle(QStringToTagString(title)); + t->setArtist(QStringToTagString(artist)); + t->setAlbum(QStringToTagString(album)); + t->setComment("*** imported from HiMD via QHiMDTransfer ***"); + f.file()->save(); +} + +QString QHiMDDevice::dumpoma(const QHiMDTrack &track, QString file) +{ + QString errmsg; + struct himd_nonmp3stream str; + struct himderrinfo status; + unsigned int len; + const unsigned char * data; + QFile f(file); + + if(!f.open(QIODevice::ReadWrite)) + return tr("Error opening file for ATRAC output"); + + if(!(errmsg = track.openNonMpegStream(&str)).isNull()) + { + f.remove(); + return tr("Error opening track: ") + status.statusmsg; + } + + if(f.write(track.makeEA3Header()) == -1) + { + errmsg = tr("Error writing header"); + goto clean; + } + while(himd_nonmp3stream_read_block(&str, &data, &len, NULL, &status) >= 0) + { + if(f.write((const char*)data,len) == -1) + { + errmsg = tr("Error writing audio data"); + goto clean; + } + uploadDialog.blockTransferred(); + QApplication::processEvents(); + if(uploadDialog.upload_canceled()) + { + errmsg = QString("upload aborted by the user"); + goto clean; + } + } + if(status.status != HIMD_STATUS_AUDIO_EOF) + errmsg = QString("Error reading audio data: ") + status.statusmsg; + +clean: + f.close(); + himd_nonmp3stream_close(&str); + + if(!errmsg.isNull()) + f.remove(); + return errmsg; +} + +QString QHiMDDevice::dumppcm(const QHiMDTrack &track, QString file) +{ + struct himd_nonmp3stream str; + struct himderrinfo status; + unsigned int len, i; + int left, right; + int clipcount; + QString errmsg; + QFile f(file); + const unsigned char * data; + sox_format_t * out; + sox_sample_t soxbuf [HIMD_MAX_PCMFRAME_SAMPLES * 2]; + sox_signalinfo_t signal_out; + + signal_out.channels = 2; + signal_out.length = 0; + signal_out.precision = 16; + signal_out.rate = 44100; + + if(!(out = sox_open_write(file.toUtf8(), &signal_out, NULL, NULL, NULL, NULL))) + return tr("Error opening file for WAV output"); + + if(!(errmsg = track.openNonMpegStream(&str)).isNull()) + { + f.remove(); + return tr("Error opening track: ") + status.statusmsg; + } + + while(himd_nonmp3stream_read_block(&str, &data, &len, NULL, &status) >= 0) + { + + for(i = 0; i < len/4; i++) { + + left = data[i*4]*256+data[i*4+1]; + right = data[i*4+2]*256+data[i*4+3]; + if (left > 0x8000) left -= 0x10000; + if (right > 0x8000) right -= 0x10000; + + soxbuf[i*2] = SOX_SIGNED_16BIT_TO_SAMPLE(left, clipcount); + soxbuf[i*2+1] = SOX_SIGNED_16BIT_TO_SAMPLE(right, clipcount); + (void)clipcount; /* suppess "is unused" warning */ + } + + if (sox_write(out, soxbuf, len/2) != len/2) + { + errmsg = tr("Error writing audio data"); + goto clean; + } + uploadDialog.blockTransferred(); + QApplication::processEvents(); + if(uploadDialog.upload_canceled()) + { + errmsg = QString("upload aborted by the user"); + goto clean; + } + } + if(status.status != HIMD_STATUS_AUDIO_EOF) + errmsg = QString("Error reading audio data: ") + status.statusmsg; + +clean: + sox_close(out); + himd_nonmp3stream_close(&str); + + if(!errmsg.isNull()) + f.remove(); + return errmsg; +} + +void QHiMDDevice::upload(unsigned int trackidx, QString path) +{ + QString filename, errmsg; + QHiMDTrack track = himdTrack(trackidx); + QString title = track.title(); + + if(title.isNull()) + filename = tr("Track %1").arg(track.tracknum()+1); + else + filename = track.artist() + " - " + title; + + uploadDialog.starttrack(track, filename); + if (!track.copyprotected()) + { + QString codec = track.codecname(); + if (codec == "MPEG") + { + checkfile(path, filename, ".mp3"); + errmsg = dumpmp3 (track, path + "/" + filename + ".mp3"); + if(errmsg.isNull()) + addid3tag (track.title(),track.artist(),track.album(), path + "/" +filename + ".mp3"); + } + else if (codec == "LPCM") + { + checkfile(path, filename, ".wav"); + errmsg = dumppcm (track, path + "/" + filename + ".wav"); + } + else if (codec == "AT3+" || codec == "AT3 ") + { + checkfile(path, filename, ".oma"); + errmsg = dumpoma (track, path + "/" + filename + ".oma"); + } + } + else + errmsg = tr("upload disabled because of DRM encryption"); + + if(errmsg.isNull()) + uploadDialog.trackSucceeded(); + else + uploadDialog.trackFailed(errmsg); + +} + +void QHiMDDevice::batchUpload(QMDTrackIndexList tlist, QString path) +{ + int allblocks = 0; + + setBusy(true); + + for(int i = 0;i < tlist.length(); i++) + allblocks += himdTrack(tlist.at(i)).blockcount(); + + uploadDialog.init(tlist.length(), allblocks); + + for(int i = 0; i < tlist.length(); i++) { + upload(tlist[i], path); + QApplication::processEvents(); + if(uploadDialog.upload_canceled()) + break; + } + + uploadDialog.finished(); + setBusy(false); +} diff --git a/qhimdtransfer/qmddevice.h b/qhimdtransfer/qmddevice.h new file mode 100644 index 0000000..2e92102 --- /dev/null +++ b/qhimdtransfer/qmddevice.h @@ -0,0 +1,98 @@ +#ifndef QMDDEVICE_H +#define QMDDEVICE_H + +#include +#include +#include + +#include +#include "qhimduploaddialog.h" + +enum device_type { + NO_DEVICE, + NETMD_DEVICE, + HIMD_DEVICE +}; + +struct os_data { + bool md_inserted; + virtual ~os_data(){} +}; + +class QMDDevice : public QObject { + Q_OBJECT + Q_DISABLE_COPY(QMDDevice) + + QString recorder_name; + bool is_busy; + struct os_data osdata; +protected: + QString device_path; + enum device_type dev_type; + bool is_open; + unsigned int trk_count; + QHiMDUploadDialog uploadDialog; +public: + explicit QMDDevice(); // + virtual ~QMDDevice(); + virtual enum device_type deviceType(); // + virtual void setPath(QString path); // + virtual QString path(); // + virtual void setName(QString name); // + virtual QString name(); // + virtual void setBusy(bool busy); // + virtual bool isBusy(); // + virtual QString open() {return QString();} + virtual void close() {} + virtual bool isOpen() {return is_open;} + virtual QString discTitle() {return QString();} + virtual void setPlatformData(struct os_data pdata); // + virtual struct os_data * pdata(); // + virtual QMDTrack track(unsigned int trkindex) {return QMDTrack();} + virtual int trackCount() {return trk_count;} + virtual QStringList downloadableFileExtensions() const; // + virtual void checkfile(QString UploadDirectory, QString &filename, QString extension); + virtual void batchUpload(QMDTrackIndexList tlist, QString path) {} + virtual void upload(unsigned int trackidx, QString path) {} + +signals: + void opened(); + void closed(); +}; + +class QNetMDDevice : public QMDDevice { + + netmd_device * netmd; + netmd_dev_handle * devh; + minidisc current_md; +public: + explicit QNetMDDevice(); + virtual ~QNetMDDevice(); + virtual void setUsbDevice(netmd_device * dev); // + virtual QString open(); // + virtual void close(); // + virtual QString discTitle(); // + virtual QNetMDTrack netmdTrack(unsigned int trkindex); + virtual void batchUpload(QMDTrackIndexList tlist, QString path); + virtual void upload(unsigned int trackidx, QString path) {} + +}; + +class QHiMDDevice : public QMDDevice { + + struct himd * himd; +public: + explicit QHiMDDevice(); + virtual ~QHiMDDevice(); + virtual QString open(); // + virtual void close(); // + virtual QHiMDTrack himdTrack(unsigned int trkindex); // + QString dumpmp3(const QHiMDTrack &trk, QString file); + QString dumpoma(const QHiMDTrack & track, QString file); + QString dumppcm(const QHiMDTrack &track, QString file); + virtual void upload(unsigned int trackidx, QString path); + virtual void batchUpload(QMDTrackIndexList tlist, QString path); + +}; + +#endif // QMDDEVICE_H diff --git a/qhimdtransfer/qmdmodel.cpp b/qhimdtransfer/qmdmodel.cpp new file mode 100644 index 0000000..abbdddc --- /dev/null +++ b/qhimdtransfer/qmdmodel.cpp @@ -0,0 +1,358 @@ +#include +#include +#include + + +enum hcolumnum { + ColId, ColTitle, ColArtist, ColAlbum, ColLength, ColCodec, ColUploadable, + LAST_hcolumnnum = ColUploadable +}; + +enum ncolumnum { + CoId, CoGroup, CoTitle, CoLength, CoCodec, CoUploadable, + LAST_ncolumnnum = CoUploadable +}; + + +/* netmd tracks model */ +QVariant QNetMDTracksModel::headerData(int section, Qt::Orientation orientation, int role) const +{ + if(orientation != Qt::Horizontal) + return QVariant(); + + if(role == Qt::SizeHintRole) + { + static QFont f; + static QFontMetrics met(f); + switch((ncolumnum)section) + { + case CoId: + return QSize(met.width("9999")+5, 0); + case CoGroup: + case CoTitle: + case CoLength: + return QSize(met.width("9:99:99"), 0); + case CoCodec: + case CoUploadable: + /* Really use the header for the metric in these columns, + contents will be shorter */ + return QAbstractListModel::headerData(section,orientation,role); + } + } + + if(role == Qt::DisplayRole) + { + switch((ncolumnum)section) + { + case CoId: + return tr("Nr."); + case CoGroup: + return tr("Group"); + case CoTitle: + return tr("Title"); + case CoLength: + return tr("Length"); + case CoCodec: + return tr("Format"); + case CoUploadable: + return tr("Uploadable"); + } + } + return QVariant(); +} + +QVariant QNetMDTracksModel::data(const QModelIndex & index, int role) const +{ + if(role == Qt::TextAlignmentRole && + (index.column() == CoId || index.column() == CoLength)) + return Qt::AlignRight; + + if(index.row() >= rowCount()) + return QVariant(); + + QNetMDTrack track = allTracks[index.row()]; + + if(role == Qt::CheckStateRole && index.column() == CoUploadable) + return track.copyprotected() ? Qt::Unchecked : Qt::Checked; + + if(role == Qt::DisplayRole) + { + switch((ncolumnum)index.column()) + { + case CoId: + return index.row() + 1; + case CoGroup: + return track.group(); + case CoTitle: + return track.title(); + case CoLength: + { + QTime t = track.duration(); + if(t < QTime(1,0,0)) + return t.toString("m:ss"); + else + return t.toString("h:mm:ss"); + } + case CoCodec: + return track.codecname(); + case CoUploadable: + return QVariant(); /* Displayed by checkbox */ + } + } + return QVariant(); +} + +int QNetMDTracksModel::rowCount(const QModelIndex &) const +{ + if(ndev == NULL) + return 0; + + return ndev->trackCount(); +} + +int QNetMDTracksModel::columnCount(const QModelIndex &) const +{ + return LAST_ncolumnnum+1; +} + +QString QNetMDTracksModel::open(QMDDevice * device) +{ + int i = 0; + QString ret = "error opening net device"; + + if(ndev != NULL) + close(); + + if(device->deviceType() == NETMD_DEVICE) + { + ndev = static_cast(device); + ret = ndev->open(); + } + + if(!ret.isEmpty()) + close(); + + /* fetch track info for all tracks first, getting track info inside data() function is very slow */ + for(; i < ndev->trackCount(); i++) + allTracks.append(ndev->netmdTrack(i)); + + reset(); /* inform views that the model contents changed */ + return ret; +} + +bool QNetMDTracksModel::is_open() +{ + return ndev->isOpen(); +} + +void QNetMDTracksModel::close() +{ + if(ndev != NULL && ndev->isOpen()) + ndev->close(); + + ndev = NULL; + + allTracks.clear(); + reset(); /* inform views that the model contents changed */ +} + +QNetMDTrack QNetMDTracksModel::track(int trkidx) const +{ + return ndev->netmdTrack(trkidx); +} + +QNetMDTrackList QNetMDTracksModel::tracks(const QModelIndexList & modelindices) const +{ + QNetMDTrackList tracks; + QModelIndex index; + + foreach(index, modelindices) + tracks.append(ndev->netmdTrack(index.row())); + return tracks; +} + +QStringList QNetMDTracksModel::downloadableFileExtensions() const +{ + return ndev->downloadableFileExtensions(); +} + + +/* himd tracks model */ + +QVariant QHiMDTracksModel::headerData(int section, Qt::Orientation orientation, int role) const +{ + if(orientation != Qt::Horizontal) + return QVariant(); + + if(role == Qt::SizeHintRole) + { + static QFont f; + static QFontMetrics met(f); + switch((hcolumnum)section) + { + case ColId: + return QSize(met.width("9999")+5, 0); + case ColTitle: + case ColArtist: + case ColAlbum: + return QSize(25*met.averageCharWidth(), 0); + case ColLength: + return QSize(met.width("9:99:99"), 0); + case ColCodec: + case ColUploadable: + /* Really use the header for the metric in these columns, + contents will be shorter */ + return QAbstractListModel::headerData(section,orientation,role); + } + } + + if(role == Qt::DisplayRole) + { + switch((hcolumnum)section) + { + case ColId: + return tr("Nr."); + case ColTitle: + return tr("Title"); + case ColArtist: + return tr("Artist"); + case ColAlbum: + return tr("Album"); + case ColLength: + return tr("Length"); + case ColCodec: + return tr("Format"); + case ColUploadable: + return tr("Uploadable"); + } + } + return QVariant(); +} + +QVariant QHiMDTracksModel::data(const QModelIndex & index, int role) const +{ + if(role == Qt::TextAlignmentRole && + (index.column() == ColId || index.column() == ColLength)) + return Qt::AlignRight; + + if(index.row() >= rowCount()) + return QVariant(); + + QHiMDTrack track = hdev->himdTrack(index.row()); + + if(role == Qt::CheckStateRole && index.column() == ColUploadable) + return track.copyprotected() ? Qt::Unchecked : Qt::Checked; + + if(role == Qt::DisplayRole) + { + switch((hcolumnum)index.column()) + { + case ColId: + return index.row() + 1; + case ColTitle: + return track.title(); + case ColArtist: + return track.artist(); + case ColAlbum: + return track.album(); + case ColLength: + { + QTime t = track.duration(); + if(t < QTime(1,0,0)) + return t.toString("m:ss"); + else + return t.toString("h:mm:ss"); + } + case ColCodec: + return track.codecname(); + case ColUploadable: + return QVariant(); /* Displayed by checkbox */ + } + } + return QVariant(); +} + +int QHiMDTracksModel::rowCount(const QModelIndex &) const +{ + if(hdev == NULL) + return 0; + + return hdev->trackCount(); +} + +int QHiMDTracksModel::columnCount(const QModelIndex &) const +{ + return LAST_hcolumnnum+1; +} + +QString QHiMDTracksModel::open(QMDDevice * device) +{ + QString ret = "error opening himd device"; + + if(hdev != NULL) + close(); + + if(device->deviceType() == HIMD_DEVICE) + { + hdev = static_cast(device); + ret = hdev->open(); + } + + if(!ret.isEmpty()) + close(); + + reset(); /* inform views that the model contents changed */ + return ret; +} + +bool QHiMDTracksModel::is_open() +{ + return hdev->isOpen(); +} + +void QHiMDTracksModel::close() +{ + if(hdev != NULL && hdev->isOpen()) + hdev->close(); + + hdev = NULL; + + reset(); /* inform views that the model contents changed */ +} + +QHiMDTrack QHiMDTracksModel::track(int trknum) const +{ + return hdev->himdTrack(trknum); +} + +QHiMDTrackList QHiMDTracksModel::tracks(const QModelIndexList & modelindices) const +{ + QHiMDTrackList tracks; + QModelIndex index; + + foreach(index, modelindices) + tracks.append(hdev->himdTrack(index.row())); + return tracks; +} + +QStringList QHiMDTracksModel::downloadableFileExtensions() const +{ + return hdev->downloadableFileExtensions(); +} + + +/* QFileSystemModel stuff */ + +Qt::ItemFlags QHiMDFileSystemModel::flags(const QModelIndex &index) const +{ + if(!isDir(index) && !selectableExtensions.contains((fileInfo(index).suffix()), Qt::CaseInsensitive)) + return Qt::NoItemFlags; //not selectable, not enabled (grayed out in the browser) + + return QFileSystemModel::flags(index); +} + +void QHiMDFileSystemModel::setSelectableExtensions(QStringList extensions) +{ + selectableExtensions = extensions; + reset(); +} diff --git a/qhimdtransfer/qmdmodel.h b/qhimdtransfer/qmdmodel.h new file mode 100644 index 0000000..9dd644e --- /dev/null +++ b/qhimdtransfer/qmdmodel.h @@ -0,0 +1,80 @@ +#ifndef QHIMDMODEL_H +#define QHIMDMODEL_H + +#include + +#include +#include +#include +#include +#include + +class QMDTracksModel : public QAbstractListModel { + Q_OBJECT + + QMDDevice * dev; +public: + QMDTracksModel() : dev(NULL) {} + /* QAbstractListModel stuff */ + virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const {return QVariant();} + virtual QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const {return QVariant();} + virtual int rowCount(const QModelIndex & parent = QModelIndex() ) const {return 0;} + virtual int columnCount(const QModelIndex & parent = QModelIndex() ) const {return 0;} + /* dummy data for unknown devices */ + virtual QString open(QMDDevice *device = NULL) {return tr("no known device type specified");} + virtual bool is_open() {return false;} + virtual void close() {} + QStringList downloadableFileExtensions() const {return QStringList();} +}; + +class QNetMDTracksModel : public QMDTracksModel { + Q_OBJECT + + QNetMDDevice * ndev; + QNetMDTrackList allTracks; +public: + QNetMDTracksModel() {ndev = NULL;} + /* QAbstractListModel stuff */ + virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; + virtual QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const; + virtual int rowCount(const QModelIndex & parent = QModelIndex() ) const; + virtual int columnCount(const QModelIndex & parent = QModelIndex() ) const; + /* NetMD device stuff */ + QString open(QMDDevice *device); /* returns null if OK, error message otherwise */ + virtual bool is_open(); + void close(); + QNetMDTrack track(int trkidx) const; + virtual QNetMDTrackList tracks(const QModelIndexList & indices) const; // should be QMDTrackList later + QStringList downloadableFileExtensions() const; +}; + +class QHiMDTracksModel : public QMDTracksModel { + Q_OBJECT + + QHiMDDevice * hdev; +public: + QHiMDTracksModel() {hdev = NULL;} + /* QAbstractListModel stuff */ + virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; + virtual QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const; + virtual int rowCount(const QModelIndex & parent = QModelIndex() ) const; + virtual int columnCount(const QModelIndex & parent = QModelIndex() ) const; + /* HiMD containter stuff */ + virtual QString open(QMDDevice *device); /* returns null if OK, error message otherwise */ + virtual bool is_open(); + virtual void close(); + virtual QHiMDTrack track(int trackidx) const; + virtual QHiMDTrackList tracks(const QModelIndexList & indices) const; // should be QMDTrackList later + QStringList downloadableFileExtensions() const; +}; + +class QHiMDFileSystemModel : public QFileSystemModel { + Q_OBJECT + + QStringList selectableExtensions; +public: + virtual Qt::ItemFlags flags(const QModelIndex &index) const; + void setSelectableExtensions(QStringList extensions); +}; + +#endif diff --git a/qhimdtransfer/qmdtrack.cpp b/qhimdtransfer/qmdtrack.cpp new file mode 100644 index 0000000..84643f8 --- /dev/null +++ b/qhimdtransfer/qmdtrack.cpp @@ -0,0 +1,204 @@ +#include "qmdtrack.h" + +static QString get_himd_str(struct himd * himd, int idx) +{ + QString outstr; + char * str; + if(!idx) + return QString(); + str = himd_get_string_utf8(himd, idx, NULL, NULL); + if(!str) + return QString(); + + outstr = QString::fromUtf8(str); + himd_free(str); + return outstr; +} + +QHiMDTrack::QHiMDTrack(struct himd * himd, unsigned int trackindex) : himd(himd), trknum(trackindex) +{ + trackslot = himd_get_trackslot(himd, trackindex, NULL); + if(trackslot != 0) + if(himd_get_track_info(himd, trackslot, &ti, NULL) < 0) + trackslot = -1; +} + +unsigned int QHiMDTrack::tracknum() const +{ + return trknum; +} + +QString QHiMDTrack::title() const +{ + if(trackslot != 0) + return get_himd_str(himd, ti.title); + else + return QString(); +} + +QString QHiMDTrack::artist() const +{ + if(trackslot != 0) + return get_himd_str(himd, ti.artist); + else + return QString(); +} + +QString QHiMDTrack::album() const +{ + if(trackslot != 0) + return get_himd_str(himd, ti.album); + else + return QString(); +} + +QString QHiMDTrack::codecname() const +{ + if(trackslot != 0) + return himd_get_codec_name(&ti); + else + return QString(); +} + +QTime QHiMDTrack::duration() const +{ + QTime t; + if(trackslot != 0) + return t.addSecs(ti.seconds); + else + return t; +} + +bool QHiMDTrack::copyprotected() const +{ + if(trackslot != 0) + return !himd_track_uploadable(himd, &ti); + return true; +} + +int QHiMDTrack::blockcount() const +{ + if(trackslot != 0) + return himd_track_blocks(himd, &ti, NULL); + else + return 0; +} + +QString QHiMDTrack::openMpegStream(struct himd_mp3stream * str) const +{ + struct himderrinfo status; + if(himd_mp3stream_open(himd, trackslot, str, &status) < 0) + return QString::fromUtf8(status.statusmsg); + return QString(); +} + +QString QHiMDTrack::openNonMpegStream(struct himd_nonmp3stream * str) const +{ + struct himderrinfo status; + if(himd_nonmp3stream_open(himd, trackslot, str, &status) < 0) + return QString::fromUtf8(status.statusmsg); + return QString(); +} + +QByteArray QHiMDTrack::makeEA3Header() const +{ + char header[EA3_FORMAT_HEADER_SIZE]; + make_ea3_format_header(header, &ti.codec_info); + return QByteArray(header,EA3_FORMAT_HEADER_SIZE); +} + + +QNetMDTrack::QNetMDTrack(netmd_dev_handle * deviceh, minidisc * my_md, unsigned int trackindex) +{ + uint8_t g; + struct netmd_pair const *bitrate; + unsigned char bitrate_id; + unsigned char channel; + char *name, buffer[256]; + + devh = deviceh; + md = my_md; + trkindex = trackindex; + + if(netmd_request_title(devh, trkindex, buffer, sizeof(buffer)) < 0) + { + trkindex = -1; + return; // no track with this trackindex + } + + /* Figure out which group this track is in */ + for( g = 1; g < md->group_count; g++ ) + { + if( (md->groups[g].start <= trkindex+1U) && (md->groups[g].finish >= trkindex+1U )) + { + groupstring = QString(md->groups[g].name); + break; + } + } + + netmd_request_track_time(devh, trkindex, &time); + netmd_request_track_flags(devh, trkindex, &flags); + netmd_request_track_bitrate(devh, trkindex, &bitrate_id, &channel); + + bitrate = find_pair(bitrate_id, bitrates); + + /* Skip 'LP:' prefix... the codec type shows up in the list anyway*/ + name = strncmp( buffer, "LP:", 3 ) ? buffer : buffer+3 ; + + titlestring = QString(name); + codecstring = QString(bitrate->name); +} + +unsigned int QNetMDTrack::tracknum() const +{ + return (trkindex < 0 ? trkindex : trkindex + 1); +} + +QString QNetMDTrack::group() const +{ + if(trkindex < 0) + return QString(); + + return groupstring; +} + +QString QNetMDTrack::title() const +{ + if(trkindex < 0) + return QString(); + + return titlestring; +} + +QString QNetMDTrack::codecname() const +{ + if(trkindex < 0) + return QString(); + + return codecstring; +} + +QTime QNetMDTrack::duration() const +{ + QTime t; + + if(trkindex < 0) + return t; + + return t.addSecs( time.minute * 60 + time.second); +} + +bool QNetMDTrack::copyprotected() const +{ + switch(flags) + { + case 0x00 : return false; + case 0x03 : return true; + default : return true; // return true if unknown + } +} + +int QNetMDTrack::blockcount() const +{ + return 0; // not implemented, yet +} diff --git a/qhimdtransfer/qmdtrack.h b/qhimdtransfer/qmdtrack.h new file mode 100644 index 0000000..c7f30ad --- /dev/null +++ b/qhimdtransfer/qmdtrack.h @@ -0,0 +1,81 @@ +#ifndef QMDTRACK_H +#define QMDTRACK_H + +#include +#include "himd.h" +#include "sony_oma.h" + +#ifdef Q_OS_WIN + #ifdef WINVER // WINVER needs to be 0x500 or later to make the windows autodetection mechanism work and it + #undef WINVER // must be defined correctly before including libusb.h (included from libnetmd.h), else it will be defined + #endif // in windef.h to 0x400 + #define WINVER 0x500 +#endif + +extern "C" { +#include +} + +class QMDTrack +{ +public: + QMDTrack() {} // returns dummy data, implemented to have a common class name with common members + virtual unsigned int tracknum() const {return -1;} + virtual QString group() const {return QString();} + virtual QString title() const {return QString();} + virtual QString artist() const {return QString();} + virtual QString album() const {return QString();} + virtual QString codecname() const {return QString();} + virtual QTime duration() const {return QTime();} + virtual bool copyprotected() const {return true;} + virtual int blockcount() const {return 0;} +}; + +class QHiMDTrack : public QMDTrack{ + struct himd * himd; + unsigned int trknum; + unsigned int trackslot; + struct trackinfo ti; +public: + QHiMDTrack(struct himd * himd, unsigned int trackindex); + virtual unsigned int tracknum() const; + virtual QString title() const; + virtual QString artist() const; + virtual QString album() const; + virtual QString codecname() const; + virtual QTime duration() const; + virtual bool copyprotected() const; + virtual int blockcount() const; + + QString openMpegStream(struct himd_mp3stream * str) const; + QString openNonMpegStream(struct himd_nonmp3stream * str) const; + QByteArray makeEA3Header() const; +}; + +class QNetMDTrack : public QMDTrack { + netmd_dev_handle * devh; + minidisc * md; + uint8_t trkindex; + struct netmd_track time; + unsigned char flags; + QString groupstring; + QString titlestring; + QString codecstring; + +public: + QNetMDTrack(netmd_dev_handle *deviceh, minidisc * my_md, unsigned int trackindex); + virtual unsigned int tracknum() const; + virtual QString group() const; + virtual QString title() const; + virtual QString codecname() const; + virtual QTime duration() const; + virtual bool copyprotected() const; + virtual int blockcount() const; +}; + +typedef QList QMDTrackList; +typedef QList QHiMDTrackList; +typedef QList QNetMDTrackList; +typedef QList QMDTrackIndexList; + +#endif // QMDTRACK_H -- 1.8.0.msysgit.0 --------------090006060806060903050904-- From manner.moe@gmx.de Sat Jan 12 23:40:00 2013 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Tu9k3-00019m-CJ>; Sat, 12 Jan 2013 23:39:55 +0100 Received: from mout.gmx.net ([212.227.17.20]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Tu9k3-00476P-7x>; Sat, 12 Jan 2013 23:39:55 +0100 Received: from mailout-de.gmx.net ([10.1.76.32]) by mrigmx.server.lan (mrigmx002) with ESMTP (Nemesis) id 0LrY9r-1SxLmR0FNV-013Nwq for ; Sat, 12 Jan 2013 23:39:54 +0100 Received: (qmail invoked by alias); 12 Jan 2013 22:39:53 -0000 Received: from dslc-082-083-136-166.pools.arcor-ip.net (EHLO [192.168.2.100]) [82.83.136.166] by mail.gmx.net (mp032) with SMTP; 12 Jan 2013 23:39:53 +0100 X-Authenticated: #17747474 X-Provags-ID: V01U2FsdGVkX1/yjKZDLMrycHigDigYxXGrCVtuJAQBN2qYJTsGhA TDBJ1h3bAcXnJy Message-ID: <50F1E638.4070905@gmx.de> Date: Sat, 12 Jan 2013 23:39:52 +0100 From: Thomas Arp User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130106 Thunderbird/17.0.2 MIME-Version: 1.0 To: linux-minidisc@lists.fu-berlin.de References: <20121205162422.280930@gmx.net> <50D5C01F.3090506@gmx.de> <50EB5395.6000806@gmx.de> <50EDFADB.2080106@gmx.de> In-Reply-To: <50EDFADB.2080106@gmx.de> Content-Type: multipart/mixed; boundary="------------090309070404000103020804" X-Y-GMX-Trusted: 0 X-Originating-IP: 212.227.17.20 X-ZEDAT-Hint: A X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1358030395-00000B1F-4DB411ED/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.025293, version=1.2.2 X-Spam-Flag: NO X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,HTML_MESSAGE, RCVD_IN_DNSWL_NONE X-Spam-Checker-Version: SpamAssassin 3.3.2 on Botsuana.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [linux-minidisc] implementing netmd support in the gui application X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.14 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jan 2013 22:40:00 -0000 This is a multi-part message in MIME format. --------------090309070404000103020804 Content-Type: multipart/alternative; boundary="------------060703000700040102070007" --------------060703000700040102070007 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Am 10.01.2013 00:18, schrieb Thomas Arp: > Hi, > as some patches have been committed since i started implementation of > netmd support i rebased my local master branch now and updated my > local work branch. > You can find my work at netmd_integration_latest branch on my github > account [1]. > Also i made a patch which can be applied to the current master > repository attached to this email. > > Thomas > > [1] http://github.com/tharp/linux-minidisc > > > _______________________________________________ > linux-minidisc mailing list > linux-minidisc@lists.fu-berlin.de > https://lists.fu-berlin.de/listinfo/linux-minidisc Hi, now i have implemeted netmd usb upload routine (supported by Sony MZ-RH1 only). You can find my work at netmd_integration_latest branch on my github account [1]. I made a patch attached to this mail. Thomas [1] http://github.com/tharp/linux-minidisc --------------060703000700040102070007 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit
Am 10.01.2013 00:18, schrieb Thomas Arp:
Hi,
as some patches have been committed since i started implementation of netmd support i rebased my local master branch now and updated my local work branch.
You can find my work at netmd_integration_latest branch on my github account [1].
Also i made a patch which can be applied to the current master repository attached to this email.

Thomas

[1] http://github.com/tharp/linux-minidisc


_______________________________________________
linux-minidisc mailing list
linux-minidisc@lists.fu-berlin.de
https://lists.fu-berlin.de/listinfo/linux-minidisc
Hi,
now i have implemeted netmd usb upload routine (supported by Sony MZ-RH1 only).
You can find my work at netmd_integration_latest branch on my github account [1].
I made a patch attached to this mail.

Thomas


[1] http://github.com/tharp/linux-minidisc
--------------060703000700040102070007-- --------------090309070404000103020804 Content-Type: text/x-patch; name="0002-implement-netmd-usb-uploads-supported-by-SONY-MZ-RH1.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename*0="0002-implement-netmd-usb-uploads-supported-by-SONY-MZ-RH1.pa"; filename*1="tch" >From fcb9ecc352ad6687edb708cfd83a7341759f8060 Mon Sep 17 00:00:00 2001 From: Thomas Arp Date: Sat, 12 Jan 2013 23:31:15 +0100 Subject: [PATCH 2/2] implement netmd usb uploads (supported by SONY MZ-RH1 only) --- libnetmd/libnetmd.pro | 3 +- libnetmd/libnetmd_extended.h | 37 +++++++++ qhimdtransfer/qhimdmainwindow.cpp | 2 +- qhimdtransfer/qhimduploaddialog.cpp | 7 ++ qhimdtransfer/qmddevice.cpp | 145 +++++++++++++++++++++++++++++++++++- qhimdtransfer/qmddevice.h | 11 ++- qhimdtransfer/qmdmodel.cpp | 2 +- qhimdtransfer/qmdtrack.cpp | 16 +++- qhimdtransfer/qmdtrack.h | 11 ++- 9 files changed, 218 insertions(+), 16 deletions(-) create mode 100644 libnetmd/libnetmd_extended.h diff --git a/libnetmd/libnetmd.pro b/libnetmd/libnetmd.pro index eb6a402..3319d85 100644 --- a/libnetmd/libnetmd.pro +++ b/libnetmd/libnetmd.pro @@ -5,7 +5,8 @@ CONFIG += staticlib link_pkgconfig create_prl console debug_and_release_target DEFINES += G_DISABLE_DEPRECATED=1 PKGCONFIG += libusb-1.0 -HEADERS += common.h const.h error.h libnetmd.h log.h netmd_dev.h playercontrol.h secure.h trackinformation.h utils.h +HEADERS += common.h const.h error.h libnetmd.h log.h netmd_dev.h playercontrol.h secure.h trackinformation.h utils.h \ + libnetmd_extended.h SOURCES += common.c error.c libnetmd.c log.c netmd_dev.c playercontrol.c secure.c trackinformation.c utils.c LIBS += -lgcrypt diff --git a/libnetmd/libnetmd_extended.h b/libnetmd/libnetmd_extended.h new file mode 100644 index 0000000..1eb74db --- /dev/null +++ b/libnetmd/libnetmd_extended.h @@ -0,0 +1,37 @@ +/* + * include this header file to get access to additional libnetmd members + */ + +#include "libnetmd.h" + +typedef struct { + unsigned char content[255]; + size_t length; + size_t position; +} netmd_response; + +/* + * additional members from secure.c + */ + +void netmd_send_secure_msg(netmd_dev_handle *dev, unsigned char cmd, unsigned char *data, size_t data_size); +netmd_error netmd_recv_secure_msg(netmd_dev_handle *dev, unsigned char cmd, netmd_response *response, + unsigned char expected_response_code); +netmd_error netmd_secure_real_recv_track(netmd_dev_handle *dev, uint32_t length, FILE *file, size_t chunksize); +void netmd_write_aea_header(char *name, uint32_t frames, unsigned char channel, FILE* f); +void netmd_write_wav_header(unsigned char format, uint32_t bytes, FILE *f); + +/* + * additional members from utils.c + * XXX: do not include utils.h when using taglib, definition of min(a,b) is incomatible with definition of min(...) in taglib + */ +void netmd_check_response_bulk(netmd_response *response, const unsigned char* const expected, + const size_t expected_length, netmd_error *error); +void netmd_check_response_word(netmd_response *response, const uint16_t expected, + netmd_error *error); +void netmd_read_response_bulk(netmd_response *response, unsigned char* target, + const size_t length, netmd_error *error); +unsigned char *netmd_copy_word_to_buffer(unsigned char **buf, uint16_t value, int little_endian); +unsigned char netmd_read(netmd_response *response); +uint16_t netmd_read_word(netmd_response *response); +uint32_t netmd_read_doubleword(netmd_response *response); diff --git a/qhimdtransfer/qhimdmainwindow.cpp b/qhimdtransfer/qhimdmainwindow.cpp index a406ea5..8c4d19f 100644 --- a/qhimdtransfer/qhimdmainwindow.cpp +++ b/qhimdtransfer/qhimdmainwindow.cpp @@ -31,7 +31,7 @@ void QHiMDMainWindow::init_local_browser() { QStringList DownloadFileList; localmodel.setFilter(QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot); - localmodel.setNameFilters(QStringList() << "*.mp3" << "*.wav" << "*.oma"); + localmodel.setNameFilters(QStringList() << "*.mp3" << "*.wav" << "*.oma" << "*.aea"); localmodel.setNameFilterDisables(false); localmodel.setReadOnly(false); localmodel.setRootPath("/"); diff --git a/qhimdtransfer/qhimduploaddialog.cpp b/qhimdtransfer/qhimduploaddialog.cpp index 13f327e..605c868 100644 --- a/qhimdtransfer/qhimduploaddialog.cpp +++ b/qhimdtransfer/qhimduploaddialog.cpp @@ -34,6 +34,13 @@ void QHiMDUploadDialog::finished() /* Prevent shrinking of the box when hiding the indicators */ m_ui->current->setMinimumSize(m_ui->current->size()); m_ui->TrkPBar->hide(); + /* set AllPBar to 100% if it is not used during transfer, + * current netmd uploads doesn´t set the range correctly + */ + if(m_ui->AllPBar->maximum() == 0) { + m_ui->AllPBar->setMaximum(1); + m_ui->AllPBar->setValue(1); + } m_ui->curtrack_label->hide(); m_ui->cancel_button->hide(); diff --git a/qhimdtransfer/qmddevice.cpp b/qhimdtransfer/qmddevice.cpp index eeb7e78..be85492 100644 --- a/qhimdtransfer/qmddevice.cpp +++ b/qhimdtransfer/qmddevice.cpp @@ -166,12 +166,151 @@ QNetMDTrack QNetMDDevice::netmdTrack(unsigned int trkindex) return QNetMDTrack(devh, disc, trkindex); } +QString QNetMDDevice::upload_track_blocks(uint32_t length, FILE *file, size_t chunksize) +{ + /* this is a copy of netmd_secure_real_recv_track(...) function, but updates upload dialog progress bar */ + uint32_t done = 0; + unsigned char *data; + int status; + netmd_error error = NETMD_NO_ERROR; + int transferred = 0; + + data = (unsigned char *)malloc(chunksize); + while (done < length) { + if ((length - done) < chunksize) { + chunksize = length - done; + } + + status = libusb_bulk_transfer((libusb_device_handle*)devh, 0x81, data, (int)chunksize, &transferred, 10000); + + if (status >= 0) { + done += transferred; + fwrite(data, transferred, 1, file); + netmd_log(NETMD_LOG_DEBUG, "%.1f%%\n", (double)done/(double)length * 100); + + uploadDialog.blockTransferred(); + /* do not check for uploadDialog.upload_canceled() here, netmd device will remain busy if track upload hasn´t finished */ + } + else if (status != -LIBUSB_ERROR_TIMEOUT) { + error = NETMD_USB_ERROR; + } + } + free(data); + + return (error != NETMD_NO_ERROR) ? netmd_strerror(error) : QString(); +} + +void QNetMDDevice::upload(unsigned int trackidx, QString path) +{ + /* this is a copy of netmd_secure_recv_track(...) function, we need single block transfer function to make use of a progress bar, + * maybe we can change libnetmd to make use of a single chunk transfer function for this + */ + QNetMDTrack track = netmdTrack(trackidx); + uint16_t track_id = trackidx; + unsigned char cmdhdr[] = {0x00, 0x10, 0x01}; + unsigned char cmd[sizeof(cmdhdr) + sizeof(track_id)] = { 0 }; + unsigned char *buf; + unsigned char codec; + uint32_t length; + netmd_response response; + netmd_error error; + QString filename, errmsg, filepath; + FILE * file; + + // create filename first + if(track.title().isEmpty()) + filename = tr("Track %1").arg(track.tracknum()); + else + filename = track.title(); + + if(track.bitrate_id == NETMD_ENCODING_SP) { + checkfile(path, filename, ".aea"); + filepath = path + "/" + filename + ".aea"; + } + else { + checkfile(path, filename, ".wav"); + filepath = path + "/" + filename + ".wav"; + } + + if(!(file = fopen(filepath.toUtf8().data(), "wb"))) { + errmsg = tr("cannot open file %1 for writing").arg(filepath); + goto clean; + } + + buf = cmd; + memcpy(buf, cmdhdr, sizeof(cmdhdr)); + buf += sizeof(cmdhdr); + netmd_copy_word_to_buffer(&buf, trackidx + 1U, 0); + + netmd_send_secure_msg(devh, 0x30, cmd, sizeof(cmd)); + error = netmd_recv_secure_msg(devh, 0x30, &response, NETMD_STATUS_INTERIM); + netmd_check_response_bulk(&response, cmdhdr, sizeof(cmdhdr), &error); + netmd_check_response_word(&response, track_id + 1U, &error); + codec = netmd_read(&response); + length = netmd_read_doubleword(&response); + + /* initialize track.blockcount() needed by uploadDialog */ + track.setBlocks(length%NETMD_RECV_BUF_SIZE ? length / NETMD_RECV_BUF_SIZE + 1 : length / NETMD_RECV_BUF_SIZE); + uploadDialog.starttrack(track, filename); + if (track.bitrate_id == NETMD_ENCODING_SP) { + netmd_write_aea_header(track.title().toUtf8().data(), codec, track.channel, file); + } + else { + netmd_write_wav_header(codec, length, file); + } + + errmsg = upload_track_blocks(length, file, NETMD_RECV_BUF_SIZE); + if(!errmsg.isNull()) { + goto clean; + } + + error = netmd_recv_secure_msg(devh, 0x30, &response, NETMD_STATUS_ACCEPTED); + netmd_check_response_bulk(&response, cmdhdr, sizeof(cmdhdr), &error); + netmd_read_response_bulk(&response, NULL, 2, &error); + netmd_check_response_word(&response, 0, &error); + + if(error != NETMD_NO_ERROR) + errmsg = QString(netmd_strerror(error)); + +clean: + if(errmsg.isNull()) + uploadDialog.trackSucceeded(); + else + uploadDialog.trackFailed(errmsg); + + fclose(file); + if(!errmsg.isNull()) { + QFile f(filepath); + if(f.exists()) + f.remove(); + } +} + void QNetMDDevice::batchUpload(QMDTrackIndexList tlist, QString path) { - QMessageBox mdStatus; + int allblocks = 0; + + setBusy(true); + + /* does not work yet, is there any way to get track length without recieving a complete track ? + * as far as i´ve tested device remains busy if download procedure hasn´t finished. + * progressbar for all tracks shows idle mode if maximum value is set to 0 + */ + for(int i = 0;i < tlist.length(); i++) { + allblocks += netmdTrack(tlist.at(i)).blockcount(); + } + + uploadDialog.init(tlist.length(), allblocks); + + for(int i = 0; i < tlist.length(); i++) { + upload(tlist[i], path); + QApplication::processEvents(); + if(uploadDialog.upload_canceled()) + break; + } - mdStatus.setText(tr("netmd uploads are not implemented, yet\n will be comming soon")); - mdStatus.exec(); + uploadDialog.finished(); + setBusy(false); } /* himd device members */ diff --git a/qhimdtransfer/qmddevice.h b/qhimdtransfer/qmddevice.h index 2e92102..3be6c36 100644 --- a/qhimdtransfer/qmddevice.h +++ b/qhimdtransfer/qmddevice.h @@ -65,6 +65,8 @@ class QNetMDDevice : public QMDDevice { netmd_device * netmd; netmd_dev_handle * devh; minidisc current_md; +private: + QString upload_track_blocks(uint32_t length, FILE *file, size_t chunksize); public: explicit QNetMDDevice(); virtual ~QNetMDDevice(); @@ -74,22 +76,23 @@ public: virtual QString discTitle(); // virtual QNetMDTrack netmdTrack(unsigned int trkindex); virtual void batchUpload(QMDTrackIndexList tlist, QString path); - virtual void upload(unsigned int trackidx, QString path) {} + virtual void upload(unsigned int trackidx, QString path); }; class QHiMDDevice : public QMDDevice { struct himd * himd; +private: + QString dumpmp3(const QHiMDTrack &trk, QString file); + QString dumpoma(const QHiMDTrack & track, QString file); + QString dumppcm(const QHiMDTrack &track, QString file); public: explicit QHiMDDevice(); virtual ~QHiMDDevice(); virtual QString open(); // virtual void close(); // virtual QHiMDTrack himdTrack(unsigned int trkindex); // - QString dumpmp3(const QHiMDTrack &trk, QString file); - QString dumpoma(const QHiMDTrack & track, QString file); - QString dumppcm(const QHiMDTrack &track, QString file); virtual void upload(unsigned int trackidx, QString path); virtual void batchUpload(QMDTrackIndexList tlist, QString path); diff --git a/qhimdtransfer/qmdmodel.cpp b/qhimdtransfer/qmdmodel.cpp index abbdddc..04e67da 100644 --- a/qhimdtransfer/qmdmodel.cpp +++ b/qhimdtransfer/qmdmodel.cpp @@ -73,7 +73,7 @@ QVariant QNetMDTracksModel::data(const QModelIndex & index, int role) const QNetMDTrack track = allTracks[index.row()]; if(role == Qt::CheckStateRole && index.column() == CoUploadable) - return track.copyprotected() ? Qt::Unchecked : Qt::Checked; + return ((ndev->name() != "SONY MZ-RH1 (NetMD)") && track.copyprotected()) ? Qt::Unchecked : Qt::Checked; if(role == Qt::DisplayRole) { diff --git a/qhimdtransfer/qmdtrack.cpp b/qhimdtransfer/qmdtrack.cpp index 84643f8..e3ea7d7 100644 --- a/qhimdtransfer/qmdtrack.cpp +++ b/qhimdtransfer/qmdtrack.cpp @@ -1,4 +1,5 @@ #include "qmdtrack.h" +#include static QString get_himd_str(struct himd * himd, int idx) { @@ -112,8 +113,6 @@ QNetMDTrack::QNetMDTrack(netmd_dev_handle * deviceh, minidisc * my_md, unsigned { uint8_t g; struct netmd_pair const *bitrate; - unsigned char bitrate_id; - unsigned char channel; char *name, buffer[256]; devh = deviceh; @@ -147,11 +146,15 @@ QNetMDTrack::QNetMDTrack(netmd_dev_handle * deviceh, minidisc * my_md, unsigned titlestring = QString(name); codecstring = QString(bitrate->name); + blocks = 0; } unsigned int QNetMDTrack::tracknum() const { - return (trkindex < 0 ? trkindex : trkindex + 1); + /* returns zero based track number, maybe this function should return a one based track number as shown in the treeview, + * trackindex -> zero based; tracknumber -> one based + */ + return trkindex; } QString QNetMDTrack::group() const @@ -198,7 +201,12 @@ bool QNetMDTrack::copyprotected() const } } +void QNetMDTrack::setBlocks(int cnt) +{ + blocks = cnt; +} + int QNetMDTrack::blockcount() const { - return 0; // not implemented, yet + return blocks; } diff --git a/qhimdtransfer/qmdtrack.h b/qhimdtransfer/qmdtrack.h index c7f30ad..47f93f8 100644 --- a/qhimdtransfer/qmdtrack.h +++ b/qhimdtransfer/qmdtrack.h @@ -13,9 +13,12 @@ #endif extern "C" { -#include +#include } +/* define buffer size for netmd downloads */ +#define NETMD_RECV_BUF_SIZE 0x10000 + class QMDTrack { public: @@ -61,8 +64,11 @@ class QNetMDTrack : public QMDTrack { QString groupstring; QString titlestring; QString codecstring; - +private: + int blocks; public: + unsigned char bitrate_id; + unsigned char channel; QNetMDTrack(netmd_dev_handle *deviceh, minidisc * my_md, unsigned int trackindex); virtual unsigned int tracknum() const; virtual QString group() const; @@ -70,6 +76,7 @@ public: virtual QString codecname() const; virtual QTime duration() const; virtual bool copyprotected() const; + virtual void setBlocks(int cnt); virtual int blockcount() const; }; -- 1.8.0.msysgit.0 --------------090309070404000103020804-- From manner.moe@gmx.de Mon Jan 14 23:32:43 2013 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1TusaA-0008wF-7D>; Mon, 14 Jan 2013 23:32:42 +0100 Received: from mout.gmx.net ([212.227.15.18]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1TusaA-0012gZ-4e>; Mon, 14 Jan 2013 23:32:42 +0100 Received: from mailout-de.gmx.net ([10.1.76.35]) by mrigmx.server.lan (mrigmx001) with ESMTP (Nemesis) id 0LkDzQ-1TOIeQ2JcQ-00cBob for ; Mon, 14 Jan 2013 23:32:40 +0100 Received: (qmail invoked by alias); 14 Jan 2013 22:32:40 -0000 Received: from dslc-082-083-136-166.pools.arcor-ip.net (EHLO [192.168.2.100]) [82.83.136.166] by mail.gmx.net (mp035) with SMTP; 14 Jan 2013 23:32:40 +0100 X-Authenticated: #17747474 X-Provags-ID: V01U2FsdGVkX1/X/JZJB9vXpLuHgUvqoe22insvkbayMxm4V+E60b PCSorkmrOeKx+L Message-ID: <50F48780.3090605@gmx.de> Date: Mon, 14 Jan 2013 23:32:32 +0100 From: Thomas Arp User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130106 Thunderbird/17.0.2 MIME-Version: 1.0 To: "linux-minidisc@lists.fu-berlin.de" Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 X-Originating-IP: 212.227.15.18 X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1358202762-00000B1F-C891FCD1/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.140557, version=1.2.2 X-Spam-Flag: NO X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE X-Spam-Checker-Version: SpamAssassin 3.3.2 on Algerien.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: [linux-minidisc] some notes for downloaded atrac1 sp tracks (.aea files) X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.14 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jan 2013 22:32:43 -0000 Hi, i have uploaded some atrac1 sp tracks from my RH1 to my computer with netmdcli (and my test version of qhimdtransfer). There seems to be somthing wrong with these tracks. All uploaded tracks (i tried different tracks from different minidiscs) are playing well with vlc but at very very low volume. This means i have to set my amp volume at 100% to hear something, normally volume level is at 5-7%. Audio data seems got be fine. I uploaded these tracks in windows and linux but there is no difference between them, so this bug is platform independent. I did not get SonicStage to work on my virtual machine so i don't have any sonicstage downloaded track for comparison. Sample atrac1 files from mplayer ftp server plays fine. I don't know if this is a bug in the atrac decoder or a bug in our upload mechanism (maybe some missing information in the aea header?). You can find one of these tracks on my ftp server [1]. Thomas [1] ftp://minidisc:users@mannermoe.dyndns.org/GARDEN_OF_STONE_aea From manner.moe@gmx.de Wed Jan 16 11:53:55 2013 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1TvQcz-002vxg-VI>; Wed, 16 Jan 2013 11:53:54 +0100 Received: from mout.gmx.net ([212.227.17.20]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1TvQcz-001DkL-Sp>; Wed, 16 Jan 2013 11:53:53 +0100 Received: from mailout-de.gmx.net ([10.1.76.24]) by mrigmx.server.lan (mrigmx002) with ESMTP (Nemesis) id 0MGDc1-1Tgtuh1Enf-00F93U for ; Wed, 16 Jan 2013 11:53:52 +0100 Received: (qmail 27193 invoked by uid 0); 16 Jan 2013 10:53:52 -0000 Received: from 217.191.214.253 by www048.gmx.net with HTTP; Wed, 16 Jan 2013 11:53:50 +0100 (CET) Content-Type: text/plain; charset="utf-8" Date: Wed, 16 Jan 2013 11:53:50 +0100 From: "Thomas Arp" In-Reply-To: <50F48780.3090605@gmx.de> Message-ID: <20130116105350.27030@gmx.net> MIME-Version: 1.0 References: <50F48780.3090605@gmx.de> To: Thomas Arp , linux-minidisc@lists.fu-berlin.de X-Authenticated: #17747474 X-Flags: 0001 X-Mailer: WWW-Mail 6100 (Global Message Exchange) X-Priority: 3 X-Provags-ID: V01U2FsdGVkX18KD5kvNfQKu5dbp4GK0oJlQWXbywwdEwrDA55aRV rAakLchVQDbOOFjaDhutKulFddLMiWCCcfcQ== Content-Transfer-Encoding: 8bit X-GMX-UID: 6eOEcOtreSEqWHOtZXUhiBl+IGRvb0BK X-Originating-IP: 212.227.17.20 X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1358333633-00000B1F-BEE22825/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.034300, version=1.2.2 X-Spam-Flag: NO X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE X-Spam-Checker-Version: SpamAssassin 3.3.2 on Burundi.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [linux-minidisc] some notes for downloaded atrac1 sp tracks (.aea files) X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.14 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jan 2013 10:53:55 -0000 -------- Original-Nachricht -------- > Datum: Mon, 14 Jan 2013 23:32:32 +0100 > Von: Thomas Arp > An: "linux-minidisc@lists.fu-berlin.de" > Betreff: [linux-minidisc] some notes for downloaded atrac1 sp tracks (.aea files) > All uploaded tracks (i tried different tracks from different minidiscs) > are playing well with vlc but at very very low volume. Hi, Sorry, the tracks are playing all fine. It was a fault on my amps channel switch. It was just a remarkable coincidence the this happens at playing these tracks. Sample tracks playing before and after them were at normal volume. Thomas From manner.moe@gmx.de Wed Jan 23 02:03:01 2013 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Txojz-001FqA-DT>; Wed, 23 Jan 2013 02:02:59 +0100 Received: from mout.gmx.net ([212.227.15.19]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Txojz-0044Hz-9E>; Wed, 23 Jan 2013 02:02:59 +0100 Received: from mailout-de.gmx.net ([10.1.76.35]) by mrigmx.server.lan (mrigmx001) with ESMTP (Nemesis) id 0M0euW-1T3NXQ0Cly-00uq9l for ; Wed, 23 Jan 2013 02:02:58 +0100 Received: (qmail invoked by alias); 23 Jan 2013 01:02:57 -0000 Received: from dslc-082-083-136-166.pools.arcor-ip.net (EHLO [192.168.2.100]) [82.83.136.166] by mail.gmx.net (mp035) with SMTP; 23 Jan 2013 02:02:57 +0100 X-Authenticated: #17747474 X-Provags-ID: V01U2FsdGVkX1/ob/4ZVJroky6tSI3ScAsDB72YbjoYchrbKVdZjr IVSAe2GoBKjJtc Message-ID: <50FF369E.2050708@gmx.de> Date: Wed, 23 Jan 2013 02:02:22 +0100 From: Thomas Arp User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130106 Thunderbird/17.0.2 MIME-Version: 1.0 To: "linux-minidisc@lists.fu-berlin.de" Content-Type: multipart/mixed; boundary="------------090306010405000507080802" X-Y-GMX-Trusted: 0 X-Originating-IP: 212.227.15.19 X-ZEDAT-Hint: A X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1358902979-00000B1F-4C42BB05/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.008444, version=1.2.2 X-Spam-Flag: NO X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE X-Spam-Checker-Version: SpamAssassin 3.3.2 on Botsuana.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: [linux-minidisc] qhimdtransfer windows autoupdate feature X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.14 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jan 2013 01:03:01 -0000 This is a multi-part message in MIME format. --------------090306010405000507080802 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Hi, i've tested winsparkle [1] for autoupdate feature on windows machines. As winsparkle binaries are build with msvc, i created a dll import library libwinsparkle.a (attached to this mail) with libtool to make it linkable to projects using gcc. I also created a sample appcast rss feed winsparkle checks for new versions on my web server [2]. This contains the last windows installer package with the corresponding version number (0.9.5). When i increase the "sparkle:version" winsparkle detects this and starts the download (if choosen). So i think this will work fine. QHiMDUpdate base class can be used for mac autoupdate feature using sparkle, too. Thomas [1] http://winsparkle.org [2] http://mannermoe.dyndns.org/minidisc/minidisc.rss --------------090306010405000507080802 Content-Type: text/x-patch; name="0001-implemented-windows-autoupdate-routine-using-winspar.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0001-implemented-windows-autoupdate-routine-using-winspar.pa"; filename*1="tch" >From 6fe0243b8271f86953271ddc26ac53bd0ec089a4 Mon Sep 17 00:00:00 2001 From: Thomas Arp Date: Wed, 23 Jan 2013 01:34:09 +0100 Subject: [PATCH] implemented windows autoupdate routine using winsparkle --- qhimdtransfer/icons.qrc | 1 + qhimdtransfer/main.cpp | 4 +-- qhimdtransfer/qhimddummyupdate.cpp | 6 ++++ qhimdtransfer/qhimdmainwindow.cpp | 10 +++++++ qhimdtransfer/qhimdmainwindow.h | 3 ++ qhimdtransfer/qhimdmainwindow.ui | 15 +++++++++- qhimdtransfer/qhimdtransfer.pro | 12 +++++--- qhimdtransfer/qhimdupdate.h | 25 +++++++++++++++++ qhimdtransfer/qhimdwinupdate.cpp | 56 ++++++++++++++++++++++++++++++++++++++ 9 files changed, 125 insertions(+), 7 deletions(-) create mode 100644 qhimdtransfer/qhimddummyupdate.cpp create mode 100644 qhimdtransfer/qhimdupdate.h create mode 100644 qhimdtransfer/qhimdwinupdate.cpp diff --git a/qhimdtransfer/icons.qrc b/qhimdtransfer/icons.qrc index 2f44f90..7c721ad 100755 --- a/qhimdtransfer/icons.qrc +++ b/qhimdtransfer/icons.qrc @@ -14,5 +14,6 @@ icons/arrow_download.png icons/arrow_upload.png icons/qhimdtransfer_24.png + icons/update.png diff --git a/qhimdtransfer/main.cpp b/qhimdtransfer/main.cpp index 91ae588..b28fcb0 100644 --- a/qhimdtransfer/main.cpp +++ b/qhimdtransfer/main.cpp @@ -23,8 +23,8 @@ int main(int argc, char *argv[]) // try cwd, then standard translation directory trans.load(transfile) || trans.load(transfile, transdir); a.installTranslator(&trans); - a.setOrganizationName("linux-minidisc"); - a.setApplicationName("QHiMDTransfer"); + a.setOrganizationName(ORG_NAME); + a.setApplicationName(APP_NAME); QHiMDMainWindow w; w.show(); diff --git a/qhimdtransfer/qhimddummyupdate.cpp b/qhimdtransfer/qhimddummyupdate.cpp new file mode 100644 index 0000000..cd2ab46 --- /dev/null +++ b/qhimdtransfer/qhimddummyupdate.cpp @@ -0,0 +1,6 @@ +#include "qhimdupdate.h" + +QHiMDUpdate * createUpdate() +{ + return new QHiMDUpdate(); +} diff --git a/qhimdtransfer/qhimdmainwindow.cpp b/qhimdtransfer/qhimdmainwindow.cpp index e2675d9..01db25b 100644 --- a/qhimdtransfer/qhimdmainwindow.cpp +++ b/qhimdtransfer/qhimdmainwindow.cpp @@ -398,11 +398,16 @@ QHiMDMainWindow::QHiMDMainWindow(QWidget *parent) ui->himd_devices->hide(); if(!autodetect_init()) ui->statusBar->showMessage(" autodetection disabled", 10000); + update = createUpdate(); + ui->action_Update->setEnabled(update->is_active()); + if(update->is_active()) + update->check_for_updates(); } QHiMDMainWindow::~QHiMDMainWindow() { save_window_settings(); + update->cleanup_updatecheck(); delete ui; } @@ -573,3 +578,8 @@ void QHiMDMainWindow::on_download_button_clicked() { /*download_of(localmodel.filePath(ui->localScan->currentIndex()));*/ } + +void QHiMDMainWindow::on_action_Update_triggered() +{ + update->check_for_updates(); +} diff --git a/qhimdtransfer/qhimdmainwindow.h b/qhimdtransfer/qhimdmainwindow.h index 85be8ae..8ca62ff 100644 --- a/qhimdtransfer/qhimdmainwindow.h +++ b/qhimdtransfer/qhimdmainwindow.h @@ -9,6 +9,7 @@ #include "qhimduploaddialog.h" #include "qhimddetection.h" #include "qhimdmodel.h" +#include "qhimdupdate.h" #include "../libhimd/himd.h" #include #include @@ -41,6 +42,7 @@ private: QHiMDTracksModel trackmodel; QHiMDFileSystemModel localmodel; QSettings settings; + QHiMDUpdate * update; QString dumpmp3(const QHiMDTrack & trk, QString file); QString dumpoma(const QHiMDTrack & trk, QString file); QString dumppcm(const QHiMDTrack & trk, QString file); @@ -68,6 +70,7 @@ private slots: void himd_removed(QString path); void on_himd_devices_activated(QString device); void on_download_button_clicked(); + void on_action_Update_triggered(); signals: void himd_busy(QString path); diff --git a/qhimdtransfer/qhimdmainwindow.ui b/qhimdtransfer/qhimdmainwindow.ui index b55845f..ecc3b3f 100644 --- a/qhimdtransfer/qhimdmainwindow.ui +++ b/qhimdtransfer/qhimdmainwindow.ui @@ -174,7 +174,7 @@ 0 0 784 - 18 + 20 @@ -199,6 +199,7 @@ + @@ -313,6 +314,18 @@ &Connect + + + + :/icons/update.png:/icons/update.png + + + U&pdate + + + Check for updates + +
diff --git a/qhimdtransfer/qhimdtransfer.pro b/qhimdtransfer/qhimdtransfer.pro index 236b5e9..dc4775b 100644 --- a/qhimdtransfer/qhimdtransfer.pro +++ b/qhimdtransfer/qhimdtransfer.pro @@ -50,7 +50,8 @@ HEADERS += qhimdaboutdialog.h \ qhimduploaddialog.h \ qhimdmainwindow.h \ qhimdmodel.h \ - qhimddetection.h + qhimddetection.h \ + qhimdupdate.h FORMS += qhimdaboutdialog.ui \ qhimdformatdialog.ui \ qhimduploaddialog.ui \ @@ -62,13 +63,16 @@ SOURCES += main.cpp \ qhimdmainwindow.cpp \ qhimdmodel.cpp \ qhimddetection.cpp -win32:SOURCES += qhimdwindetection.cpp -else:SOURCES += qhimddummydetection.cpp +win32:SOURCES += qhimdwindetection.cpp \ + qhimdwinupdate.cpp +else:SOURCES += qhimddummydetection.cpp \ + qhimddummyupdate.cpp RESOURCES += icons.qrc PKGCONFIG += sox \ taglib win32:LIBS += -lsetupapi \ - -lcfgmgr32 + -lcfgmgr32 \ + -lwinsparkle win32:RC_FILE = qhimdtransfer.rc mac:ICON = qhimdtransfer.icns diff --git a/qhimdtransfer/qhimdupdate.h b/qhimdtransfer/qhimdupdate.h new file mode 100644 index 0000000..57ca0fd --- /dev/null +++ b/qhimdtransfer/qhimdupdate.h @@ -0,0 +1,25 @@ +#ifndef QHIMDUPDATE_H +#define QHIMDUPDATE_H + +#define APP_NAME "QHiMDTransfer" +#define ORG_NAME "linux-minidisc" + +/* dummy update class, subclass QHiMDWinUpdate is used as a wrapper for winsparkle, + * TODO: create QHiMDMacUpdate subclass as a sparkle wrapper class for mac and create corresponding appcast rss feed, + */ + +class QHiMDUpdate { + +protected: + bool active; +public: + QHiMDUpdate() {active = false;} + ~QHiMDUpdate() {} + virtual bool is_active() {return active;} + virtual void check_for_updates() {} + virtual void cleanup_updatecheck() {} +}; + +QHiMDUpdate * createUpdate(); + +#endif // QHIMDUPDATE_H diff --git a/qhimdtransfer/qhimdwinupdate.cpp b/qhimdtransfer/qhimdwinupdate.cpp new file mode 100644 index 0000000..fd0dff0 --- /dev/null +++ b/qhimdtransfer/qhimdwinupdate.cpp @@ -0,0 +1,56 @@ +#include "qhimdupdate.h" + +/* a sample appcast rss feed for qhimdtransfer can be found on my web server for testing + * TODO: create release notes html site, so winsparkle can display it if an update is available + */ +#define WIN_APPCAST_URL "http://mannermoe.dyndns.org/minidisc/minidisc.rss" + +#include +#include +#include + +class QHiMDWinUpdate : public QHiMDUpdate { + +public: + QHiMDWinUpdate(); + ~QHiMDWinUpdate(); + virtual void check_for_updates(); + virtual void cleanup_updatecheck(); +}; + +QHiMDUpdate * createUpdate() +{ + return new QHiMDWinUpdate(); +} + +QHiMDWinUpdate::QHiMDWinUpdate() +{ + wchar_t org[strlen(ORG_NAME)+1], app[strlen(APP_NAME)+1], vers[strlen(VER)+1]; + size_t t; + + /* convert char* to wchar_t* needed by win_sparkle_set_app_details(), + * alternatively create another rc file storing winapi versioninfo data*/ + t = mbstowcs(org, ORG_NAME, sizeof(org)); + t = mbstowcs(app, APP_NAME, sizeof(app)); + t = mbstowcs(vers, VER, sizeof(vers)); + + win_sparkle_set_appcast_url(WIN_APPCAST_URL); + win_sparkle_set_app_details(org, app, vers); + win_sparkle_init(); + active = true; +} + +QHiMDWinUpdate::~QHiMDWinUpdate() +{ + cleanup_updatecheck(); +} + +void QHiMDWinUpdate::check_for_updates() +{ + win_sparkle_check_update_with_ui(); +} + +void QHiMDWinUpdate::cleanup_updatecheck() +{ + win_sparkle_cleanup(); +} -- 1.8.0.msysgit.0 --------------090306010405000507080802 Content-Type: application/octet-stream; name="libwinsparkle.a" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="libwinsparkle.a" ITxhcmNoPgovICAgICAgICAgICAgICAgMTM1ODg4MzMxNiAgMCAgICAgMCAgICAgMCAgICAg ICAzOTIgICAgICAgYAoAAAAMAAABzAAABE4AAAcUAAAHFAAACegAAAnoAAAMvAAADLwAAA9u AAAPbgAAEioAABIqX19saWJ3aW5zcGFya2xlX2FfaW5hbWUAX19oZWFkX2xpYndpbnNwYXJr bGVfYQBfd2luX3NwYXJrbGVfc2V0X2FwcGNhc3RfdXJsAF9faW1wX193aW5fc3BhcmtsZV9z ZXRfYXBwY2FzdF91cmwAX3dpbl9zcGFya2xlX3NldF9hcHBfZGV0YWlscwBfX2ltcF9fd2lu X3NwYXJrbGVfc2V0X2FwcF9kZXRhaWxzAF93aW5fc3BhcmtsZV9pbml0AF9faW1wX193aW5f c3BhcmtsZV9pbml0AF93aW5fc3BhcmtsZV9jbGVhbnVwAF9faW1wX193aW5fc3BhcmtsZV9j bGVhbnVwAF93aW5fc3BhcmtsZV9jaGVja191cGRhdGVfd2l0aF91aQBfX2ltcF9fd2luX3Nw YXJrbGVfY2hlY2tfdXBkYXRlX3dpdGhfdWkAAGR1c2J0Lm8vICAgICAgICAxMzU4ODgzMzE2 ICAwICAgICAwICAgICAxMDA2NjYgIDU4MiAgICAgICBgCkwBBgAAAAAAHAEAAA8AAAAAAAUB LnRleHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAwYC5kYXRhAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAMMAuYnNzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAACAADDALmlkYXRhJDQAAAAAAAAAAAQAAAAEAQAAAAAAAAAAAAAAAAAAQAAwwC5p ZGF0YSQ1AAAAAAAAAAAEAAAACAEAAAAAAAAAAAAAAAAAAEAAMMAuaWRhdGEkNwAAAAAAAAAA EAAAAAwBAAAAAAAAAAAAAAAAAABAADDAAAAAAAAAAABXaW5TcGFya2xlLmRsbAAALmZpbGUA AAAAAAAA/v8AAGcBZmFrZQAAAAAAAAAAAAAAAAAALnRleHQAAAAAAAAAAQAAAAMBAAAAAAAA AAAAAAAAAAAAAAAALmRhdGEAAAAAAAAAAgAAAAMBAAAAAAAAAAAAAAAAAAAAAAAALmJzcwAA AAAAAAAAAwAAAAMBAAAAAAAAAAAAAAAAAAAAAAAALmlkYXRhJDQAAAAABAAAAAMBBAAAAAAA AAAAAAAAAAAAAAAALmlkYXRhJDUAAAAABQAAAAMBBAAAAAAAAAAAAAAAAAAAAAAALmlkYXRh JDcAAAAABgAAAAMBDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABgAAAAIAHAAAAF9f bGlid2luc3BhcmtsZV9hX2luYW1lAGR1c2JoLm8vICAgICAgICAxMzU4ODgzMzE1ICAwICAg ICAwICAgICAxMDA2NjYgIDY0OSAgICAgICBgCkwBBgAAAAAANgEAABAAAAAAAAQBLnRleHQA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAwYC5kYXRhAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAEAAMMAuYnNzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AACAADDALmlkYXRhJDIAAAAAAAAAABQAAAAEAQAAGAEAAAAAAAADAAAAQAAwwC5pZGF0YSQ1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAMMAuaWRhdGEkNAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAABAADDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAcADAAAAA8A AAAHABAAAAANAAAABwAuZmlsZQAAAAAAAAD+/wAAZwFmYWtlAAAAAAAAAAAAAAAAAABobmFt ZQAAAAAAAAAGAAAAAwBmdGh1bmsAAAAAAAAFAAAAAwAudGV4dAAAAAAAAAABAAAAAwEAAAAA AAAAAAAAAAAAAAAAAAAuZGF0YQAAAAAAAAACAAAAAwEAAAAAAAAAAAAAAAAAAAAAAAAuYnNz AAAAAAAAAAADAAAAAwEAAAAAAAAAAAAAAAAAAAAAAAAuaWRhdGEkMgAAAAAEAAAAAwEUAAAA AwAAAAAAAAAAAAAAAAAuaWRhdGEkNAAAAAAGAAAAAwAuaWRhdGEkNQAAAAAFAAAAAwAAAAAA BAAAAAAAAAAEAAAAAgAAAAAAGwAAAAAAAAAAAAAAAgAzAAAAX19oZWFkX2xpYndpbnNwYXJr bGVfYQBfX2xpYndpbnNwYXJrbGVfYV9pbmFtZQAKZHVzYnMwMDAwNC5vLyAgIDEzNTg4ODMz MTYgIDAgICAgIDAgICAgIDEwMDY2NiAgNjYzICAgICAgIGAKTAEHAAAAAACIAQAACgAAAAAA BAEudGV4dAAAAAAAAAAAAAAACAAAACwBAABgAQAAAAAAAAEAAAAgADBgLmRhdGEAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAwwC5ic3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAIAAMMAuaWRhdGEkNwAAAAAAAAAABAAAADQBAABqAQAAAAAAAAEAAAAAADDA LmlkYXRhJDUAAAAAAAAAAAQAAAA4AQAAdAEAAAAAAAABAAAAAAAwwC5pZGF0YSQ0AAAAAAAA AAAEAAAAPAEAAH4BAAAAAAAAAQAAAAAAMMAuaWRhdGEkNgAAAAAAAAAAHgAAAEABAAAAAAAA AAAAAAAAAAAAACDA/yUAAAAAkJAAAAAAAAAAAAAAAAAEAHdpbl9zcGFya2xlX3NldF9hcHBj YXN0X3VybAAAAAIAAAAEAAAABgAAAAAACQAAAAcAAAAAAAYAAAAHAAAAAAAGAAAABwAudGV4 dAAAAAAAAAABAAAAAwAuZGF0YQAAAAAAAAACAAAAAwAuYnNzAAAAAAAAAAADAAAAAwAuaWRh dGEkNwAAAAAEAAAAAwAuaWRhdGEkNQAAAAAFAAAAAwAuaWRhdGEkNAAAAAAGAAAAAwAuaWRh dGEkNgAAAAAHAAAAAwAAAAAABAAAAAAAAAABAAAAAgAAAAAAIQAAAAAAAAAFAAAAAgAAAAAA RAAAAAAAAAAAAAAAAgBbAAAAX3dpbl9zcGFya2xlX3NldF9hcHBjYXN0X3VybABfX2ltcF9f d2luX3NwYXJrbGVfc2V0X2FwcGNhc3RfdXJsAF9faGVhZF9saWJ3aW5zcGFya2xlX2EACmR1 c2JzMDAwMDMuby8gICAxMzU4ODgzMzE2ICAwICAgICAwICAgICAxMDA2NjYgIDY2MyAgICAg ICBgCkwBBwAAAAAAiAEAAAoAAAAAAAQBLnRleHQAAAAAAAAAAAAAAAgAAAAsAQAAYAEAAAAA AAABAAAAIAAwYC5kYXRhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAMMAuYnNz AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAADDALmlkYXRhJDcAAAAAAAAAAAQA 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 X2NsZWFudXAAX19pbXBfX3dpbl9zcGFya2xlX2NsZWFudXAAX19oZWFkX2xpYndpbnNwYXJr bGVfYQAKZHVzYnMwMDAwMC5vLyAgIDEzNTg4ODMzMTYgIDAgICAgIDAgICAgIDEwMDY2NiAg Njc3ICAgICAgIGAKTAEHAAAAAACMAQAACgAAAAAABAEudGV4dAAAAAAAAAAAAAAACAAAACwB AABkAQAAAAAAAAEAAAAgADBgLmRhdGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA QAAwwC5ic3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAMMAuaWRhdGEkNwAA AAAAAAAABAAAADQBAABuAQAAAAAAAAEAAAAAADDALmlkYXRhJDUAAAAAAAAAAAQAAAA4AQAA eAEAAAAAAAABAAAAAAAwwC5pZGF0YSQ0AAAAAAAAAAAEAAAAPAEAAIIBAAAAAAAAAQAAAAAA MMAuaWRhdGEkNgAAAAAAAAAAJAAAAEABAAAAAAAAAAAAAAAAAAAAACDA/yUAAAAAkJAAAAAA AAAAAAAAAAAAAHdpbl9zcGFya2xlX2NoZWNrX3VwZGF0ZV93aXRoX3VpAAACAAAABAAAAAYA AAAAAAkAAAAHAAAAAAAGAAAABwAAAAAABgAAAAcALnRleHQAAAAAAAAAAQAAAAMALmRhdGEA AAAAAAAAAgAAAAMALmJzcwAAAAAAAAAAAwAAAAMALmlkYXRhJDcAAAAABAAAAAMALmlkYXRh JDUAAAAABQAAAAMALmlkYXRhJDQAAAAABgAAAAMALmlkYXRhJDYAAAAABwAAAAMAAAAAAAQA AAAAAAAAAQAAAAIAAAAAACYAAAAAAAAABQAAAAIAAAAAAE4AAAAAAAAAAAAAAAIAZQAAAF93 aW5fc3BhcmtsZV9jaGVja191cGRhdGVfd2l0aF91aQBfX2ltcF9fd2luX3NwYXJrbGVfY2hl Y2tfdXBkYXRlX3dpdGhfdWkAX19oZWFkX2xpYndpbnNwYXJrbGVfYQAK --------------090306010405000507080802-- From glaubitz@physik.fu-berlin.de Wed Jan 23 15:49:20 2013 Received: from outpost1.zedat.fu-berlin.de ([130.133.4.66]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Ty1df-000Fbv-JN>; Wed, 23 Jan 2013 15:49:19 +0100 Received: from inpost2.zedat.fu-berlin.de ([130.133.4.69]) by outpost1.zedat.fu-berlin.de (Exim 4.69) with esmtp (envelope-from ) id <1Ty1df-001jOc-Ht>; Wed, 23 Jan 2013 15:49:19 +0100 Received: from port-92-206-80-66.dynamic.qsc.de ([92.206.80.66] helo=[192.168.178.35]) by inpost2.zedat.fu-berlin.de (Exim 4.69) with esmtpsa (envelope-from ) id <1Ty1df-000Kku-E5>; Wed, 23 Jan 2013 15:49:19 +0100 Message-ID: <50FFF852.7090609@physik.fu-berlin.de> Date: Wed, 23 Jan 2013 15:48:50 +0100 From: John Paul Adrian Glaubitz User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130112 Icedove/17.0.2 MIME-Version: 1.0 To: linux-minidisc@lists.fu-berlin.de References: <50FF369E.2050708@gmx.de> In-Reply-To: <50FF369E.2050708@gmx.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: 92.206.80.66 X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1358952559-00000B1F-565F300F/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.046712, version=1.2.2 X-Spam-Flag: NO X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED X-Spam-Checker-Version: SpamAssassin 3.3.2 on Benin.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [linux-minidisc] qhimdtransfer windows autoupdate feature X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.14 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jan 2013 14:49:20 -0000 On 01/23/2013 02:02 AM, Thomas Arp wrote: > As winsparkle binaries are build with msvc, i created a dll import > library libwinsparkle.a (attached to this mail) with libtool to make it > linkable to projects using gcc. Can all this be incorporated into the sources? There shouldn't be any binary files in the sources expect resource files like images. > I also created a sample appcast rss feed winsparkle checks for new > versions on my web server [2]. Looks very simple, didn't know that. Cool. > This contains the last windows installer package with the corresponding > version number (0.9.5). When i increase the "sparkle:version" winsparkle > detects this and starts the download (if choosen). > So i think this will work fine. Great. > QHiMDUpdate base class can be used for mac autoupdate feature using > sparkle, too. Even better. I think this is something we should merge next - before the NetMD integration - as the latter involves much more changes and needs way more review. You should also split up your NetMD changes into more, smaller patches. Reviewing a 100k patch isn't really feasible. Thanks for all your work! Adrian -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer - glaubitz@debian.org `. `' Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 From glaubitz@physik.fu-berlin.de Wed Jan 23 18:34:03 2013 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Ty4D4-000Svk-0q>; Wed, 23 Jan 2013 18:34:02 +0100 Received: from mx.physik.fu-berlin.de ([160.45.64.218]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Ty4D3-002YAr-VI>; Wed, 23 Jan 2013 18:34:02 +0100 Received: from zlogin.physik.fu-berlin.de ([160.45.66.4]) by mx.physik.fu-berlin.de with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1Ty4D2-00038n-OI for linux-minidisc@lists.fu-berlin.de; Wed, 23 Jan 2013 18:34:00 +0100 Received: from glaubitz by zlogin.physik.fu-berlin.de with local (Exim 4.72 #1 (Debian)) id 1Ty4D2-00068e-Ma for ; Wed, 23 Jan 2013 18:34:00 +0100 Resent-From: John Paul Adrian Glaubitz Resent-Date: Wed, 23 Jan 2013 18:34:00 +0100 Resent-Message-ID: <20130123173400.GA23553@physik.fu-berlin.de> Resent-To: linux-minidisc@lists.fu-berlin.de Message-ID: <51000EC7.3040805@physik.fu-berlin.de> Date: Wed, 23 Jan 2013 17:24:39 +0100 From: John Paul Adrian Glaubitz User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130112 Icedove/17.0.2 MIME-Version: 1.0 To: Thomas Arp , "linux@physik.fu-berlin.de" References: <50FF369E.2050708@gmx.de> <50FFF852.7090609@physik.fu-berlin.de> <20130123161008.50880@gmx.net> In-Reply-To: <20130123161008.50880@gmx.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Resent-Sender: John Paul Adrian Glaubitz X-Originating-IP: 160.45.64.218 X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1358962442-00000B1F-DFEF7D5E/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.004190, version=1.2.2 X-Spam-Flag: NO X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED X-Spam-Checker-Version: SpamAssassin 3.3.2 on Burundi.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [linux-minidisc] qhimdtransfer windows autoupdate feature X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.14 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jan 2013 17:34:03 -0000 On 01/23/2013 05:10 PM, Thomas Arp wrote: > Maybe we could add the WinSparkle.def definition file to our sources and than use libtool from a system call to create the lib. Yes, that would be acceptable. > Alternativly we can offer a download link (at CompilingWithMingw/precompiled binaries) for the libwinsparkle.a file > (and, of course, the WinSparkle binaries and headers). We are doing this for all other precompiled binaries for windows. No, this will never happen. Having to rely on external binaries means the sources cannot be compiled from the original source tarball which makes them unfit for any distribution willing to package the software. >>> I also created a sample appcast rss feed winsparkle checks for new >>> versions on my web server [2]. >> >> Looks very simple, didn't know that. Cool. > > Yes, it is very simple, for sparkle/winsparkle the "enclosure" section in an item is the only thing we need. > The rest is just for compatibility reasons to create a valid rss feed. Ok. >>> QHiMDUpdate base class can be used for mac autoupdate feature using >>> sparkle, too. >> >> Even better. > > The QHiMDUpdate base class is just a dummy class doing nothing. > WinSparkle uses most of the Sparkle member names, so the subclass for mac shouldn´t be much different to this for windows. > It is important to reimplement the public virtual members to leave the calling routines from the mainwindow platform independent. Understood. >> I think this is something we should merge next - before the >> NetMD integration - as the latter involves much more changes and needs >> way more review. >> >> You should also split up your NetMD changes into more, smaller patches. >> Reviewing a 100k patch isn't really feasible. >> > O.K., if we decide to merge the autoupdate mechanism next i have to recreate the netmd integration patch. I will split it than. In any case, the autoupdate stuff must not break any existing things. Most importantly, it must not break the possibility to compile the binaries from the original source tarball. Adrian -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer - glaubitz@debian.org `. `' Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 From glaubitz@physik.fu-berlin.de Wed Jan 23 18:55:10 2013 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Ty4XV-000UUN-Mm>; Wed, 23 Jan 2013 18:55:09 +0100 Received: from mx.physik.fu-berlin.de ([160.45.64.218]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Ty4XV-002bCh-L2>; Wed, 23 Jan 2013 18:55:09 +0100 Received: from zlogin.physik.fu-berlin.de ([160.45.66.4]) by mx.physik.fu-berlin.de with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1Ty4XU-0003Fy-Ed for linux-minidisc@lists.fu-berlin.de; Wed, 23 Jan 2013 18:55:08 +0100 Received: from glaubitz by zlogin.physik.fu-berlin.de with local (Exim 4.72 #1 (Debian)) id 1Ty4XU-0006Gm-DN for ; Wed, 23 Jan 2013 18:55:08 +0100 Resent-From: John Paul Adrian Glaubitz Resent-Date: Wed, 23 Jan 2013 18:55:08 +0100 Resent-Message-ID: <20130123175508.GA23986@physik.fu-berlin.de> Resent-To: linux-minidisc@lists.fu-berlin.de Received: from deliver1.zedat.fu-berlin.de ([130.133.4.79]) by mbox11.zedat.fu-berlin.de (Exim 4.69) for glaubitz@zedat.fu-berlin.de with esmtp (envelope-from ) id <1Ty3dk-003QCZ-Tz>; Wed, 23 Jan 2013 17:57:32 +0100 Received: from dispatch2.zedat.fu-berlin.de ([130.133.4.71]) by deliver1.zedat.fu-berlin.de (Exim 4.69) for glaubitz@zedat.fu-berlin.de with esmtp (envelope-from ) id <1Ty3dd-003x9S-3T>; Wed, 23 Jan 2013 17:57:25 +0100 Received: from dispatch1.zedat.fu-berlin.de ([130.133.4.70]) by dispatch2.zedat.fu-berlin.de (Exim 4.69) for glaubitz@zedat.fu-berlin.de with esmtp (envelope-from ) id <1Ty3da-0044As-JW>; Wed, 23 Jan 2013 17:57:22 +0100 Received: from inpost1.zedat.fu-berlin.de ([130.133.4.68]) by dispatch1.zedat.fu-berlin.de (Exim 4.69) for glaubitz@zedat.fu-berlin.de with esmtp (envelope-from ) id <1Ty3da-003zbx-1y>; Wed, 23 Jan 2013 17:57:22 +0100 Received: from outpost1.zedat.fu-berlin.de ([130.133.4.66]) by inpost1.zedat.fu-berlin.de (Exim 4.69) for glaubitz@zedat.fu-berlin.de with esmtp (envelope-from ) id <1Ty3da-002qgn-0Q>; Wed, 23 Jan 2013 17:57:22 +0100 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by outpost1.zedat.fu-berlin.de (Exim 4.69) for glaubitz@zedat.fu-berlin.de with esmtp (envelope-from ) id <1Ty3dZ-002Fg9-Uw>; Wed, 23 Jan 2013 17:57:21 +0100 Received: from mout.gmx.net ([212.227.17.20]) by relay1.zedat.fu-berlin.de (Exim 4.69) for glaubitz@physik.fu-berlin.de with esmtp (envelope-from ) id <1Ty3dZ-002SQZ-S3>; Wed, 23 Jan 2013 17:57:21 +0100 Received: from mailout-de.gmx.net ([10.1.76.12]) by mrigmx.server.lan (mrigmx002) with ESMTP (Nemesis) id 0Ls67d-1V21SJ2sH9-013t2X for ; Wed, 23 Jan 2013 17:57:20 +0100 Received: (qmail 31559 invoked by uid 0); 23 Jan 2013 16:57:20 -0000 Received: from 217.191.221.127 by www003.gmx.net with HTTP; Wed, 23 Jan 2013 17:57:19 +0100 (CET) Content-Type: text/plain; charset="utf-8" Date: Wed, 23 Jan 2013 17:57:19 +0100 From: "Thomas Arp" In-Reply-To: <51000EC7.3040805@physik.fu-berlin.de> Message-ID: <20130123165719.22490@gmx.net> MIME-Version: 1.0 References: <50FF369E.2050708@gmx.de> <50FFF852.7090609@physik.fu-berlin.de> <20130123161008.50880@gmx.net> <51000EC7.3040805@physik.fu-berlin.de> To: John Paul Adrian Glaubitz , linux@physik.fu-berlin.de, manner.moe@gmx.de X-Authenticated: #17747474 X-Flags: 0001 X-Mailer: WWW-Mail 6100 (Global Message Exchange) X-Priority: 3 X-Provags-ID: V01U2FsdGVkX1/AiJpLWojAcPy0gCRnbreVMbd5gJ/mi8BhGyjZEr 5+CDZbHoAjye6h2+QCksfKED1QGs1u5m9yOg== Content-Transfer-Encoding: 8bit X-GMX-UID: OHNyca1peSEqSnOtZXUhIrF+IGRvb4DI X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1358960242-00000B1F-F6EFBE9E/0-0/0-0 Resent-Sender: John Paul Adrian Glaubitz X-Originating-IP: 160.45.64.218 X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1358963709-00000B1F-BDA1C230/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000673, version=1.2.2 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.3.2 on Gabun.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [linux-minidisc] qhimdtransfer windows autoupdate feature X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.14 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jan 2013 17:55:10 -0000 -------- Original-Nachricht -------- > Datum: Wed, 23 Jan 2013 17:24:39 +0100 > Von: John Paul Adrian Glaubitz > An: Thomas Arp , "linux@physik.fu-berlin.de" > Betreff: Re: [linux-minidisc] qhimdtransfer windows autoupdate feature > On 01/23/2013 05:10 PM, Thomas Arp wrote: > > Maybe we could add the WinSparkle.def definition file to our sources and > than use libtool from a system call to create the lib. > > Yes, that would be acceptable. > > > Alternativly we can offer a download link (at > CompilingWithMingw/precompiled binaries) for the libwinsparkle.a file > > (and, of course, the WinSparkle binaries and headers). We are doing this > for all other precompiled binaries for windows. > > No, this will never happen. Having to rely on external binaries means > the sources cannot be compiled from the original source tarball which > makes them unfit for any distribution willing to package the software. > O.K., i didn´t check the whole source of winsparkle, yet. Maybe i can build it using gcc instead of using the binaries buildt with msvc. If so we can directly link to the library, the import library file and definition file are not necessary than. Thomas From manner.moe@gmx.de Fri Jan 25 23:14:39 2013 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1TyrXh-000MHJ-VU>; Fri, 25 Jan 2013 23:14:38 +0100 Received: from mout.gmx.net ([212.227.17.21]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1TyrXh-0026lV-SD>; Fri, 25 Jan 2013 23:14:37 +0100 Received: from mailout-de.gmx.net ([10.1.76.30]) by mrigmx.server.lan (mrigmx002) with ESMTP (Nemesis) id 0M38kj-1Uq8mh2AZr-00sukQ for ; Fri, 25 Jan 2013 23:14:36 +0100 Received: (qmail invoked by alias); 25 Jan 2013 22:14:36 -0000 Received: from dslc-082-083-136-166.pools.arcor-ip.net (EHLO [192.168.2.100]) [82.83.136.166] by mail.gmx.net (mp030) with SMTP; 25 Jan 2013 23:14:36 +0100 X-Authenticated: #17747474 X-Provags-ID: V01U2FsdGVkX1+L54VTG6eL/3KAjLv2C+8KeHhRIkmCUPgrmiOcbz xUdZoyUpyRr45i Message-ID: <510303A0.1010203@gmx.de> Date: Fri, 25 Jan 2013 23:13:52 +0100 From: Thomas Arp User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130106 Thunderbird/17.0.2 MIME-Version: 1.0 To: "linux-minidisc@lists.fu-berlin.de" References: <5103034A.8010805@gmx.de> In-Reply-To: <5103034A.8010805@gmx.de> X-Forwarded-Message-Id: <5103034A.8010805@gmx.de> Content-Type: multipart/mixed; boundary="------------050607010808040707090602" X-Y-GMX-Trusted: 0 X-Originating-IP: 212.227.17.21 X-ZEDAT-Hint: A X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1359152077-00000B1F-E9F00FD2/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.286806, version=1.2.2 X-Spam-Flag: NO X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,HTML_MESSAGE, RCVD_IN_DNSWL_NONE X-Spam-Checker-Version: SpamAssassin 3.3.2 on Botsuana.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [linux-minidisc] qhimdtransfer windows autoupdate feature X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.14 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Jan 2013 22:14:39 -0000 This is a multi-part message in MIME format. --------------050607010808040707090602 Content-Type: multipart/alternative; boundary="------------030902050606090902010908" --------------030902050606090902010908 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit -------- Original-Nachricht -------- Betreff: Re: [linux-minidisc] qhimdtransfer windows autoupdate feature Datum: Fri, 25 Jan 2013 23:12:26 +0100 Von: Thomas Arp An: Thomas Arp Kopie (CC): John Paul Adrian Glaubitz , linux-minidisc@physik.fu-berlin.de Am 23.01.2013 17:57, schrieb Thomas Arp: >> On 01/23/2013 05:10 PM, Thomas Arp wrote: >>> Maybe we could add the WinSparkle.def definition file to our sources and >> than use libtool from a system call to create the lib. >> >> Yes, that would be acceptable. I tried to compile winsparkle with gcc/g++ but it seems that some basic definitions/implementations in msvc are not really compatible with implementations in libstdc++ used by gcc. I have to patch the winsparkle source code to make it compilable with gcc so i decided to offer a definition file for now. Thomas --------------030902050606090902010908 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit
-------- Original-Nachricht --------
Betreff: Re: [linux-minidisc] qhimdtransfer windows autoupdate feature
Datum: Fri, 25 Jan 2013 23:12:26 +0100
Von: Thomas Arp <manner.moe@gmx.de>
An: Thomas Arp <manner.moe@gmx.de>
Kopie (CC): John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>, linux-minidisc@physik.fu-berlin.de


Am 23.01.2013 17:57, schrieb Thomas Arp:
>> On 01/23/2013 05:10 PM, Thomas Arp wrote:
>>> Maybe we could add the WinSparkle.def definition file to our sources and
>> than use libtool from a system call to create the lib.
>>
>> Yes, that would be acceptable.
I tried to compile winsparkle with gcc/g++ but it seems that some basic 
definitions/implementations in msvc are not really compatible with 
implementations in  libstdc++ used by gcc.
I have to patch the winsparkle source code to make it compilable with 
gcc so i decided to offer a definition file for now.

Thomas



--------------030902050606090902010908-- --------------050607010808040707090602 Content-Type: text/x-patch; name="0002-Removed-unnecessary-cleanup-function-in-QHiMDUpdate-.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0002-Removed-unnecessary-cleanup-function-in-QHiMDUpdate-.pa"; filename*1="tch" >From 3cd465ebacbdcb7d41f8147dda1016e733a0a826 Mon Sep 17 00:00:00 2001 From: Thomas Arp Date: Fri, 25 Jan 2013 22:58:37 +0100 Subject: [PATCH 2/2] Removed unnecessary cleanup function in QHiMDUpdate class, use class destructor to call sparkle/winsparkle cleanup method instead, added definition file for WinSparkle.dll and make use of dlltool to create an import library which can be linked to this gcc based project --- qhimdtransfer/qhimdmainwindow.cpp | 1 - qhimdtransfer/qhimdtransfer.pro | 13 ++++++++++--- qhimdtransfer/qhimdupdate.h | 1 - qhimdtransfer/qhimdwinupdate.cpp | 7 +------ 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/qhimdtransfer/qhimdmainwindow.cpp b/qhimdtransfer/qhimdmainwindow.cpp index 01db25b..70494ab 100644 --- a/qhimdtransfer/qhimdmainwindow.cpp +++ b/qhimdtransfer/qhimdmainwindow.cpp @@ -407,7 +407,6 @@ QHiMDMainWindow::QHiMDMainWindow(QWidget *parent) QHiMDMainWindow::~QHiMDMainWindow() { save_window_settings(); - update->cleanup_updatecheck(); delete ui; } diff --git a/qhimdtransfer/qhimdtransfer.pro b/qhimdtransfer/qhimdtransfer.pro index dc4775b..7e5a867 100644 --- a/qhimdtransfer/qhimdtransfer.pro +++ b/qhimdtransfer/qhimdtransfer.pro @@ -70,9 +70,14 @@ else:SOURCES += qhimddummydetection.cpp \ RESOURCES += icons.qrc PKGCONFIG += sox \ taglib -win32:LIBS += -lsetupapi \ - -lcfgmgr32 \ - -lwinsparkle +win32: { + # for mingw on windows: ld.exe cannot directly link to WinSparkle.dll compiled with msvc, create import library first + system(dlltool -d win32/winsparkle.def -l win32/libwinsparkle.a) + LIBS += -lsetupapi \ + -lcfgmgr32 \ + -Lwin32 \ + -lwinsparkle +} win32:RC_FILE = qhimdtransfer.rc mac:ICON = qhimdtransfer.icns @@ -94,3 +99,5 @@ unix:!macx { target.path = /usr/bin INSTALLS += target } + +win32:OTHER_FILES += win32/winsparkle.def diff --git a/qhimdtransfer/qhimdupdate.h b/qhimdtransfer/qhimdupdate.h index 57ca0fd..72ebda1 100644 --- a/qhimdtransfer/qhimdupdate.h +++ b/qhimdtransfer/qhimdupdate.h @@ -17,7 +17,6 @@ public: ~QHiMDUpdate() {} virtual bool is_active() {return active;} virtual void check_for_updates() {} - virtual void cleanup_updatecheck() {} }; QHiMDUpdate * createUpdate(); diff --git a/qhimdtransfer/qhimdwinupdate.cpp b/qhimdtransfer/qhimdwinupdate.cpp index fd0dff0..cae25dd 100644 --- a/qhimdtransfer/qhimdwinupdate.cpp +++ b/qhimdtransfer/qhimdwinupdate.cpp @@ -15,7 +15,6 @@ public: QHiMDWinUpdate(); ~QHiMDWinUpdate(); virtual void check_for_updates(); - virtual void cleanup_updatecheck(); }; QHiMDUpdate * createUpdate() @@ -42,7 +41,7 @@ QHiMDWinUpdate::QHiMDWinUpdate() QHiMDWinUpdate::~QHiMDWinUpdate() { - cleanup_updatecheck(); + win_sparkle_cleanup(); } void QHiMDWinUpdate::check_for_updates() @@ -50,7 +49,3 @@ void QHiMDWinUpdate::check_for_updates() win_sparkle_check_update_with_ui(); } -void QHiMDWinUpdate::cleanup_updatecheck() -{ - win_sparkle_cleanup(); -} -- 1.8.0.msysgit.0 --------------050607010808040707090602-- From manner.moe@gmx.de Fri Jan 25 23:31:20 2013 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Tyrnr-000NK7-Ec>; Fri, 25 Jan 2013 23:31:19 +0100 Received: from mout.gmx.net ([212.227.15.19]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Tyrnr-0028SD-AP>; Fri, 25 Jan 2013 23:31:19 +0100 Received: from mailout-de.gmx.net ([10.1.76.32]) by mrigmx.server.lan (mrigmx001) with ESMTP (Nemesis) id 0M3gWF-1Upaqd0KA5-00rH4C for ; Fri, 25 Jan 2013 23:31:18 +0100 Received: (qmail invoked by alias); 25 Jan 2013 22:31:17 -0000 Received: from dslc-082-083-136-166.pools.arcor-ip.net (EHLO [192.168.2.100]) [82.83.136.166] by mail.gmx.net (mp032) with SMTP; 25 Jan 2013 23:31:17 +0100 X-Authenticated: #17747474 X-Provags-ID: V01U2FsdGVkX18yHx1a2IYya1yJA+/YMq+Z5aTRxWpvJ+zy+iqvwj P9yP8CjdvnpL3s Message-ID: <51030789.7080705@gmx.de> Date: Fri, 25 Jan 2013 23:30:33 +0100 From: Thomas Arp User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130106 Thunderbird/17.0.2 MIME-Version: 1.0 To: "linux-minidisc@lists.fu-berlin.de" References: <50FF369E.2050708@gmx.de> <50FFF852.7090609@physik.fu-berlin.de> <20130123161008.50880@gmx.net> <51000EC7.3040805@physik.fu-berlin.de> <20130123165719.22490@gmx.net> <5103034A.8010805@gmx.de> In-Reply-To: <5103034A.8010805@gmx.de> Content-Type: multipart/mixed; boundary="------------090209040106070107000000" X-Y-GMX-Trusted: 0 X-Originating-IP: 212.227.15.19 X-ZEDAT-Hint: A X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1359153079-00000B1F-820A06D0/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000368, version=1.2.2 X-Spam-Flag: NO X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE X-Spam-Checker-Version: SpamAssassin 3.3.2 on Botsuana.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [linux-minidisc] qhimdtransfer windows autoupdate feature X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.14 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Jan 2013 22:31:20 -0000 This is a multi-part message in MIME format. --------------090209040106070107000000 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Am 25.01.2013 23:12, schrieb Thomas Arp: > I tried to compile winsparkle with gcc/g++ but it seems that some > basic definitions/implementations in msvc are not really compatible > with implementations in libstdc++ used by gcc. > I have to patch the winsparkle source code to make it compilable with > gcc so i decided to offer a definition file for now. > Sorry, definition file is missing in the last patch. Thomas --------------090209040106070107000000 Content-Type: text/x-patch; name="0003-added-missing-definition-file-for-WinSparkle-dll.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0003-added-missing-definition-file-for-WinSparkle-dll.patch" >From b92f894978d30859bb49c1eeb559f93d2f2897fe Mon Sep 17 00:00:00 2001 From: Thomas Arp Date: Fri, 25 Jan 2013 23:25:18 +0100 Subject: [PATCH 3/3] added missing definition file for WinSparkle.dll --- qhimdtransfer/win32/winsparkle.def | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 qhimdtransfer/win32/winsparkle.def diff --git a/qhimdtransfer/win32/winsparkle.def b/qhimdtransfer/win32/winsparkle.def new file mode 100644 index 0000000..fe7a282 --- /dev/null +++ b/qhimdtransfer/win32/winsparkle.def @@ -0,0 +1,11 @@ +; this is the definition file for WinSparkle.dll version 0.3 +; use libtool to create an import library, gcc cannot directly link to WinSparkle.dll because it is built with msvc +; if function names change in future versions of WinSparkle.dll this file have to be updated +LIBRARY WinSparkle.dll +EXPORTS +win_sparkle_set_appcast_url +win_sparkle_set_app_details +win_sparkle_init +win_sparkle_check_update_with_ui +win_sparkle_cleanup +win_sparkle_set_registry_path -- 1.8.0.msysgit.0 --------------090209040106070107000000-- From manner.moe@gmx.de Sat Jan 26 22:14:30 2013 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1TzD4y-001tD6-V9>; Sat, 26 Jan 2013 22:14:25 +0100 Received: from mout.gmx.net ([212.227.15.19]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1TzD4y-0015qN-LK>; Sat, 26 Jan 2013 22:14:24 +0100 Received: from mailout-de.gmx.net ([10.1.76.34]) by mrigmx.server.lan (mrigmx002) with ESMTP (Nemesis) id 0LvOyj-1UzjPo0Gdn-010Zxh for ; Sat, 26 Jan 2013 22:14:23 +0100 Received: (qmail invoked by alias); 26 Jan 2013 21:14:21 -0000 Received: from dslc-082-083-136-166.pools.arcor-ip.net (EHLO [192.168.2.100]) [82.83.136.166] by mail.gmx.net (mp034) with SMTP; 26 Jan 2013 22:14:21 +0100 X-Authenticated: #17747474 X-Provags-ID: V01U2FsdGVkX19IoAdlsIZIVB648mph5FdHNI/k0BzXnwvqdM3gzW RA8LZlS91i63kL Message-ID: <5104472B.908@gmx.de> Date: Sat, 26 Jan 2013 22:14:19 +0100 From: Thomas Arp User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130106 Thunderbird/17.0.2 MIME-Version: 1.0 To: linux-minidisc@lists.fu-berlin.de References: <20121205162422.280930@gmx.net> <50D5C01F.3090506@gmx.de> <50EB5395.6000806@gmx.de> <50EDFADB.2080106@gmx.de> <50F1E638.4070905@gmx.de> In-Reply-To: <50F1E638.4070905@gmx.de> Content-Type: multipart/mixed; boundary="------------020303080300030105010904" X-Y-GMX-Trusted: 0 X-Originating-IP: 212.227.15.19 X-ZEDAT-Hint: A X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1359234864-00000B1F-9588925F/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.090947, version=1.2.2 X-Spam-Flag: NO X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE X-Spam-Checker-Version: SpamAssassin 3.3.2 on Dschibuti.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [linux-minidisc] implementing netmd support in the gui application X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.14 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Jan 2013 21:14:30 -0000 This is a multi-part message in MIME format. --------------020303080300030105010904 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi, as the patch for netmd support is really large, i splitted it into smaller patches. I didn't rewrite the whole thing, so most of these patches depends on the other ones. These patches are class by class and only the last few patches include the integration in the current source code and the removed functions i already moved to new classes before. Some files were removed/renamed and functions were moved to other classes, so compilation will fail until all patches are applied. I just plitted the patch to simplify reviewing. Thomas --------------020303080300030105010904 Content-Type: text/x-patch; name="0001-implemented-new-class-QNetMDTrack-analogous-to-QHiMD.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0001-implemented-new-class-QNetMDTrack-analogous-to-QHiMD.pa"; filename*1="tch" >From 1ea60db8453049107249ae263de824b3dd2d7f27 Mon Sep 17 00:00:00 2001 From: Thomas Arp Date: Sat, 26 Jan 2013 20:47:53 +0100 Subject: [PATCH 1/7] implemented new class QNetMDTrack analogous to QHiMDTrack and put a base class QMDTrack over it holding common members --- qhimdtransfer/qmdtrack.cpp | 212 +++++++++++++++++++++++++++++++++++++++++++++ qhimdtransfer/qmdtrack.h | 88 +++++++++++++++++++ 2 files changed, 300 insertions(+) create mode 100644 qhimdtransfer/qmdtrack.cpp create mode 100644 qhimdtransfer/qmdtrack.h diff --git a/qhimdtransfer/qmdtrack.cpp b/qhimdtransfer/qmdtrack.cpp new file mode 100644 index 0000000..e3ea7d7 --- /dev/null +++ b/qhimdtransfer/qmdtrack.cpp @@ -0,0 +1,212 @@ +#include "qmdtrack.h" +#include + +static QString get_himd_str(struct himd * himd, int idx) +{ + QString outstr; + char * str; + if(!idx) + return QString(); + str = himd_get_string_utf8(himd, idx, NULL, NULL); + if(!str) + return QString(); + + outstr = QString::fromUtf8(str); + himd_free(str); + return outstr; +} + +QHiMDTrack::QHiMDTrack(struct himd * himd, unsigned int trackindex) : himd(himd), trknum(trackindex) +{ + trackslot = himd_get_trackslot(himd, trackindex, NULL); + if(trackslot != 0) + if(himd_get_track_info(himd, trackslot, &ti, NULL) < 0) + trackslot = -1; +} + +unsigned int QHiMDTrack::tracknum() const +{ + return trknum; +} + +QString QHiMDTrack::title() const +{ + if(trackslot != 0) + return get_himd_str(himd, ti.title); + else + return QString(); +} + +QString QHiMDTrack::artist() const +{ + if(trackslot != 0) + return get_himd_str(himd, ti.artist); + else + return QString(); +} + +QString QHiMDTrack::album() const +{ + if(trackslot != 0) + return get_himd_str(himd, ti.album); + else + return QString(); +} + +QString QHiMDTrack::codecname() const +{ + if(trackslot != 0) + return himd_get_codec_name(&ti); + else + return QString(); +} + +QTime QHiMDTrack::duration() const +{ + QTime t; + if(trackslot != 0) + return t.addSecs(ti.seconds); + else + return t; +} + +bool QHiMDTrack::copyprotected() const +{ + if(trackslot != 0) + return !himd_track_uploadable(himd, &ti); + return true; +} + +int QHiMDTrack::blockcount() const +{ + if(trackslot != 0) + return himd_track_blocks(himd, &ti, NULL); + else + return 0; +} + +QString QHiMDTrack::openMpegStream(struct himd_mp3stream * str) const +{ + struct himderrinfo status; + if(himd_mp3stream_open(himd, trackslot, str, &status) < 0) + return QString::fromUtf8(status.statusmsg); + return QString(); +} + +QString QHiMDTrack::openNonMpegStream(struct himd_nonmp3stream * str) const +{ + struct himderrinfo status; + if(himd_nonmp3stream_open(himd, trackslot, str, &status) < 0) + return QString::fromUtf8(status.statusmsg); + return QString(); +} + +QByteArray QHiMDTrack::makeEA3Header() const +{ + char header[EA3_FORMAT_HEADER_SIZE]; + make_ea3_format_header(header, &ti.codec_info); + return QByteArray(header,EA3_FORMAT_HEADER_SIZE); +} + + +QNetMDTrack::QNetMDTrack(netmd_dev_handle * deviceh, minidisc * my_md, unsigned int trackindex) +{ + uint8_t g; + struct netmd_pair const *bitrate; + char *name, buffer[256]; + + devh = deviceh; + md = my_md; + trkindex = trackindex; + + if(netmd_request_title(devh, trkindex, buffer, sizeof(buffer)) < 0) + { + trkindex = -1; + return; // no track with this trackindex + } + + /* Figure out which group this track is in */ + for( g = 1; g < md->group_count; g++ ) + { + if( (md->groups[g].start <= trkindex+1U) && (md->groups[g].finish >= trkindex+1U )) + { + groupstring = QString(md->groups[g].name); + break; + } + } + + netmd_request_track_time(devh, trkindex, &time); + netmd_request_track_flags(devh, trkindex, &flags); + netmd_request_track_bitrate(devh, trkindex, &bitrate_id, &channel); + + bitrate = find_pair(bitrate_id, bitrates); + + /* Skip 'LP:' prefix... the codec type shows up in the list anyway*/ + name = strncmp( buffer, "LP:", 3 ) ? buffer : buffer+3 ; + + titlestring = QString(name); + codecstring = QString(bitrate->name); + blocks = 0; +} + +unsigned int QNetMDTrack::tracknum() const +{ + /* returns zero based track number, maybe this function should return a one based track number as shown in the treeview, + * trackindex -> zero based; tracknumber -> one based + */ + return trkindex; +} + +QString QNetMDTrack::group() const +{ + if(trkindex < 0) + return QString(); + + return groupstring; +} + +QString QNetMDTrack::title() const +{ + if(trkindex < 0) + return QString(); + + return titlestring; +} + +QString QNetMDTrack::codecname() const +{ + if(trkindex < 0) + return QString(); + + return codecstring; +} + +QTime QNetMDTrack::duration() const +{ + QTime t; + + if(trkindex < 0) + return t; + + return t.addSecs( time.minute * 60 + time.second); +} + +bool QNetMDTrack::copyprotected() const +{ + switch(flags) + { + case 0x00 : return false; + case 0x03 : return true; + default : return true; // return true if unknown + } +} + +void QNetMDTrack::setBlocks(int cnt) +{ + blocks = cnt; +} + +int QNetMDTrack::blockcount() const +{ + return blocks; +} diff --git a/qhimdtransfer/qmdtrack.h b/qhimdtransfer/qmdtrack.h new file mode 100644 index 0000000..47f93f8 --- /dev/null +++ b/qhimdtransfer/qmdtrack.h @@ -0,0 +1,88 @@ +#ifndef QMDTRACK_H +#define QMDTRACK_H + +#include +#include "himd.h" +#include "sony_oma.h" + +#ifdef Q_OS_WIN + #ifdef WINVER // WINVER needs to be 0x500 or later to make the windows autodetection mechanism work and it + #undef WINVER // must be defined correctly before including libusb.h (included from libnetmd.h), else it will be defined + #endif // in windef.h to 0x400 + #define WINVER 0x500 +#endif + +extern "C" { +#include +} + +/* define buffer size for netmd downloads */ +#define NETMD_RECV_BUF_SIZE 0x10000 + +class QMDTrack +{ +public: + QMDTrack() {} // returns dummy data, implemented to have a common class name with common members + virtual unsigned int tracknum() const {return -1;} + virtual QString group() const {return QString();} + virtual QString title() const {return QString();} + virtual QString artist() const {return QString();} + virtual QString album() const {return QString();} + virtual QString codecname() const {return QString();} + virtual QTime duration() const {return QTime();} + virtual bool copyprotected() const {return true;} + virtual int blockcount() const {return 0;} +}; + +class QHiMDTrack : public QMDTrack{ + struct himd * himd; + unsigned int trknum; + unsigned int trackslot; + struct trackinfo ti; +public: + QHiMDTrack(struct himd * himd, unsigned int trackindex); + virtual unsigned int tracknum() const; + virtual QString title() const; + virtual QString artist() const; + virtual QString album() const; + virtual QString codecname() const; + virtual QTime duration() const; + virtual bool copyprotected() const; + virtual int blockcount() const; + + QString openMpegStream(struct himd_mp3stream * str) const; + QString openNonMpegStream(struct himd_nonmp3stream * str) const; + QByteArray makeEA3Header() const; +}; + +class QNetMDTrack : public QMDTrack { + netmd_dev_handle * devh; + minidisc * md; + uint8_t trkindex; + struct netmd_track time; + unsigned char flags; + QString groupstring; + QString titlestring; + QString codecstring; +private: + int blocks; +public: + unsigned char bitrate_id; + unsigned char channel; + QNetMDTrack(netmd_dev_handle *deviceh, minidisc * my_md, unsigned int trackindex); + virtual unsigned int tracknum() const; + virtual QString group() const; + virtual QString title() const; + virtual QString codecname() const; + virtual QTime duration() const; + virtual bool copyprotected() const; + virtual void setBlocks(int cnt); + virtual int blockcount() const; +}; + +typedef QList QMDTrackList; +typedef QList QHiMDTrackList; +typedef QList QNetMDTrackList; +typedef QList QMDTrackIndexList; + +#endif // QMDTRACK_H -- 1.8.0.msysgit.0 --------------020303080300030105010904 Content-Type: text/x-patch; name="0002-implemented-new-class-QMDDevice-with-subclasses-QNet.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename*0="0002-implemented-new-class-QMDDevice-with-subclasses-QNet.pa"; filename*1="tch" >From c6490daa23d305a3abe3c89c81d405f92e85d473 Mon Sep 17 00:00:00 2001 From: Thomas Arp Date: Sat, 26 Jan 2013 20:53:56 +0100 Subject: [PATCH 2/7] implemented new class QMDDevice with subclasses QNetMDDevice and QHiMDDevice holding information for each device and containing upload routines, also created additional libnetmd header file to get access to additional libnetmd functions --- libnetmd/libnetmd.pro | 3 +- libnetmd/libnetmd_extended.h | 37 +++ qhimdtransfer/qmddevice.cpp | 619 +++++++++++++++++++++++++++++++++++++++++++ qhimdtransfer/qmddevice.h | 101 +++++++ 4 files changed, 759 insertions(+), 1 deletion(-) create mode 100644 libnetmd/libnetmd_extended.h create mode 100644 qhimdtransfer/qmddevice.cpp create mode 100644 qhimdtransfer/qmddevice.h diff --git a/libnetmd/libnetmd.pro b/libnetmd/libnetmd.pro index eb6a402..3319d85 100644 --- a/libnetmd/libnetmd.pro +++ b/libnetmd/libnetmd.pro @@ -5,7 +5,8 @@ CONFIG += staticlib link_pkgconfig create_prl console debug_and_release_target DEFINES += G_DISABLE_DEPRECATED=1 PKGCONFIG += libusb-1.0 -HEADERS += common.h const.h error.h libnetmd.h log.h netmd_dev.h playercontrol.h secure.h trackinformation.h utils.h +HEADERS += common.h const.h error.h libnetmd.h log.h netmd_dev.h playercontrol.h secure.h trackinformation.h utils.h \ + libnetmd_extended.h SOURCES += common.c error.c libnetmd.c log.c netmd_dev.c playercontrol.c secure.c trackinformation.c utils.c LIBS += -lgcrypt diff --git a/libnetmd/libnetmd_extended.h b/libnetmd/libnetmd_extended.h new file mode 100644 index 0000000..1eb74db --- /dev/null +++ b/libnetmd/libnetmd_extended.h @@ -0,0 +1,37 @@ +/* + * include this header file to get access to additional libnetmd members + */ + +#include "libnetmd.h" + +typedef struct { + unsigned char content[255]; + size_t length; + size_t position; +} netmd_response; + +/* + * additional members from secure.c + */ + +void netmd_send_secure_msg(netmd_dev_handle *dev, unsigned char cmd, unsigned char *data, size_t data_size); +netmd_error netmd_recv_secure_msg(netmd_dev_handle *dev, unsigned char cmd, netmd_response *response, + unsigned char expected_response_code); +netmd_error netmd_secure_real_recv_track(netmd_dev_handle *dev, uint32_t length, FILE *file, size_t chunksize); +void netmd_write_aea_header(char *name, uint32_t frames, unsigned char channel, FILE* f); +void netmd_write_wav_header(unsigned char format, uint32_t bytes, FILE *f); + +/* + * additional members from utils.c + * XXX: do not include utils.h when using taglib, definition of min(a,b) is incomatible with definition of min(...) in taglib + */ +void netmd_check_response_bulk(netmd_response *response, const unsigned char* const expected, + const size_t expected_length, netmd_error *error); +void netmd_check_response_word(netmd_response *response, const uint16_t expected, + netmd_error *error); +void netmd_read_response_bulk(netmd_response *response, unsigned char* target, + const size_t length, netmd_error *error); +unsigned char *netmd_copy_word_to_buffer(unsigned char **buf, uint16_t value, int little_endian); +unsigned char netmd_read(netmd_response *response); +uint16_t netmd_read_word(netmd_response *response); +uint32_t netmd_read_doubleword(netmd_response *response); diff --git a/qhimdtransfer/qmddevice.cpp b/qhimdtransfer/qmddevice.cpp new file mode 100644 index 0000000..be85492 --- /dev/null +++ b/qhimdtransfer/qmddevice.cpp @@ -0,0 +1,619 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +extern "C" { +#include +} + +/* common device members */ +QMDDevice::QMDDevice() : dev_type(NO_DEVICE) +{ +} + +QMDDevice::~QMDDevice() +{ + close(); +} + +enum device_type QMDDevice::deviceType() +{ + return dev_type; +} + +void QMDDevice::setPath(QString path) +{ + device_path = path; +} + +QString QMDDevice::path() +{ + return device_path; +} + +void QMDDevice::setName(QString name) +{ + recorder_name = name; +} + +QString QMDDevice::name() +{ + return recorder_name; +} + +void QMDDevice::setBusy(bool busy) +{ + is_busy = busy; +} + +bool QMDDevice::isBusy() +{ + return is_busy; +} + +void QMDDevice::setPlatformData(os_data pdata) +{ + osdata = pdata; +} + +os_data * QMDDevice::pdata() +{ + os_data * data = &osdata; + return data; +} + +QStringList QMDDevice::downloadableFileExtensions() const +{ + if(dev_type == NETMD_DEVICE) + return QStringList() << "wav"; + + if(dev_type == HIMD_DEVICE) + return QStringList() << "mp3"; + + return QStringList(); +} + +void QMDDevice::checkfile(QString UploadDirectory, QString &filename, QString extension) +{ + QFile f; + QString newname; + int i = 2; + + f.setFileName(UploadDirectory + "/" + filename + extension); + while(f.exists()) + { + newname = filename + " (" + QString::number(i) + ")"; + f.setFileName(UploadDirectory + "/" + newname + extension); + i++; + } + if(!newname.isEmpty()) + filename = newname; +} + + +/* netmd device members */ +QNetMDDevice::QNetMDDevice() +{ + dev_type = NETMD_DEVICE; + devh = NULL; + netmd = NULL; + is_open = false; +} + +QNetMDDevice::~QNetMDDevice() +{ + close(); +} + +void QNetMDDevice::setUsbDevice(netmd_device * dev) +{ + netmd = dev; +} + +QString QNetMDDevice::open() +{ + uint8_t i = 0; + netmd_error error; + char buffer[256]; + + if(!netmd) + return tr("netmd_device not set, use setUsbDevice(...) function first"); + + if((error = netmd_open(netmd, &devh)) != NETMD_NO_ERROR) + return tr("Error opening netmd: %1").arg(netmd_strerror(error)); + + netmd_initialize_disc_info(devh, ¤t_md); + + /* generate track count first, needed by QNetMDTracksModel */ + while(netmd_request_title(devh, i, buffer, sizeof(buffer)) >= 0) + i++; + + trk_count = i; + + is_open = true; + emit opened(); + return QString(); +} + +void QNetMDDevice::close() +{ + if(!devh) + return; + + netmd_clean_disc_info(¤t_md); + netmd_close(devh); + devh = NULL; + + is_open = false; + trk_count = 0; + emit closed(); +} + +QString QNetMDDevice::discTitle() +{ + return QString(current_md.groups[0].name); +} + +QNetMDTrack QNetMDDevice::netmdTrack(unsigned int trkindex) +{ + minidisc * disc = ¤t_md; + + return QNetMDTrack(devh, disc, trkindex); +} + +QString QNetMDDevice::upload_track_blocks(uint32_t length, FILE *file, size_t chunksize) +{ + /* this is a copy of netmd_secure_real_recv_track(...) function, but updates upload dialog progress bar */ + uint32_t done = 0; + unsigned char *data; + int status; + netmd_error error = NETMD_NO_ERROR; + int transferred = 0; + + data = (unsigned char *)malloc(chunksize); + while (done < length) { + if ((length - done) < chunksize) { + chunksize = length - done; + } + + status = libusb_bulk_transfer((libusb_device_handle*)devh, 0x81, data, (int)chunksize, &transferred, 10000); + + if (status >= 0) { + done += transferred; + fwrite(data, transferred, 1, file); + netmd_log(NETMD_LOG_DEBUG, "%.1f%%\n", (double)done/(double)length * 100); + + uploadDialog.blockTransferred(); + /* do not check for uploadDialog.upload_canceled() here, netmd device will remain busy if track upload hasn´t finished */ + } + else if (status != -LIBUSB_ERROR_TIMEOUT) { + error = NETMD_USB_ERROR; + } + } + free(data); + + return (error != NETMD_NO_ERROR) ? netmd_strerror(error) : QString(); +} + +void QNetMDDevice::upload(unsigned int trackidx, QString path) +{ + /* this is a copy of netmd_secure_recv_track(...) function, we need single block transfer function to make use of a progress bar, + * maybe we can change libnetmd to make use of a single chunk transfer function for this + */ + QNetMDTrack track = netmdTrack(trackidx); + uint16_t track_id = trackidx; + unsigned char cmdhdr[] = {0x00, 0x10, 0x01}; + unsigned char cmd[sizeof(cmdhdr) + sizeof(track_id)] = { 0 }; + unsigned char *buf; + unsigned char codec; + uint32_t length; + netmd_response response; + netmd_error error; + QString filename, errmsg, filepath; + FILE * file; + + // create filename first + if(track.title().isEmpty()) + filename = tr("Track %1").arg(track.tracknum()); + else + filename = track.title(); + + if(track.bitrate_id == NETMD_ENCODING_SP) { + checkfile(path, filename, ".aea"); + filepath = path + "/" + filename + ".aea"; + } + else { + checkfile(path, filename, ".wav"); + filepath = path + "/" + filename + ".wav"; + } + + if(!(file = fopen(filepath.toUtf8().data(), "wb"))) { + errmsg = tr("cannot open file %1 for writing").arg(filepath); + goto clean; + } + + buf = cmd; + memcpy(buf, cmdhdr, sizeof(cmdhdr)); + buf += sizeof(cmdhdr); + netmd_copy_word_to_buffer(&buf, trackidx + 1U, 0); + + netmd_send_secure_msg(devh, 0x30, cmd, sizeof(cmd)); + error = netmd_recv_secure_msg(devh, 0x30, &response, NETMD_STATUS_INTERIM); + netmd_check_response_bulk(&response, cmdhdr, sizeof(cmdhdr), &error); + netmd_check_response_word(&response, track_id + 1U, &error); + codec = netmd_read(&response); + length = netmd_read_doubleword(&response); + + /* initialize track.blockcount() needed by uploadDialog */ + track.setBlocks(length%NETMD_RECV_BUF_SIZE ? length / NETMD_RECV_BUF_SIZE + 1 : length / NETMD_RECV_BUF_SIZE); + uploadDialog.starttrack(track, filename); + if (track.bitrate_id == NETMD_ENCODING_SP) { + netmd_write_aea_header(track.title().toUtf8().data(), codec, track.channel, file); + } + else { + netmd_write_wav_header(codec, length, file); + } + + errmsg = upload_track_blocks(length, file, NETMD_RECV_BUF_SIZE); + if(!errmsg.isNull()) { + goto clean; + } + + error = netmd_recv_secure_msg(devh, 0x30, &response, NETMD_STATUS_ACCEPTED); + netmd_check_response_bulk(&response, cmdhdr, sizeof(cmdhdr), &error); + netmd_read_response_bulk(&response, NULL, 2, &error); + netmd_check_response_word(&response, 0, &error); + + if(error != NETMD_NO_ERROR) + errmsg = QString(netmd_strerror(error)); + +clean: + if(errmsg.isNull()) + uploadDialog.trackSucceeded(); + else + uploadDialog.trackFailed(errmsg); + + fclose(file); + if(!errmsg.isNull()) { + QFile f(filepath); + if(f.exists()) + f.remove(); + } +} + +void QNetMDDevice::batchUpload(QMDTrackIndexList tlist, QString path) +{ + int allblocks = 0; + + setBusy(true); + + /* does not work yet, is there any way to get track length without recieving a complete track ? + * as far as i´ve tested device remains busy if download procedure hasn´t finished. + * progressbar for all tracks shows idle mode if maximum value is set to 0 + */ + for(int i = 0;i < tlist.length(); i++) { + allblocks += netmdTrack(tlist.at(i)).blockcount(); + } + + uploadDialog.init(tlist.length(), allblocks); + + for(int i = 0; i < tlist.length(); i++) { + upload(tlist[i], path); + QApplication::processEvents(); + if(uploadDialog.upload_canceled()) + break; + } + + uploadDialog.finished(); + setBusy(false); +} + +/* himd device members */ + +QHiMDDevice::QHiMDDevice() +{ + dev_type = HIMD_DEVICE; + himd = NULL; + is_open = false; +} + +QHiMDDevice::~QHiMDDevice() +{ + close(); +} + +QString QHiMDDevice::open() +{ + struct himderrinfo status; + + if(!pdata()->md_inserted) + return tr("cannot open device, no disc"); + + if(himd) + return QString(); // already opened + + himd = new struct himd; + if(himd_open(himd, device_path.toUtf8(), &status) < 0) + { + delete himd; + himd = NULL; + return QString::fromUtf8(status.statusmsg); + } + + trk_count = himd_track_count(himd); + is_open = true; + emit opened(); + return QString(); +} + +void QHiMDDevice::close() +{ + if(!himd) + return; + + himd_close(himd); + delete himd; + himd = NULL; + + is_open = false; + trk_count = 0; + emit closed(); +} + +QHiMDTrack QHiMDDevice::himdTrack(unsigned int trkindex) +{ + return QHiMDTrack(himd, trkindex); +} + +QString QHiMDDevice::dumpmp3(const QHiMDTrack &trk, QString file) +{ + QString errmsg; + struct himd_mp3stream str; + struct himderrinfo status; + unsigned int len; + const unsigned char * data; + QFile f(file); + + if(!f.open(QIODevice::ReadWrite)) + { + return tr("Error opening file for MP3 output"); + } + if(!(errmsg = trk.openMpegStream(&str)).isNull()) + { + f.remove(); + return tr("Error opening track: ") + errmsg; + } + while(himd_mp3stream_read_block(&str, &data, &len, NULL, &status) >= 0) + { + if(f.write((const char*)data,len) == -1) + { + errmsg = tr("Error writing audio data"); + goto clean; + } + uploadDialog.blockTransferred(); + QApplication::processEvents(); + if(uploadDialog.upload_canceled()) + { + errmsg = tr("upload aborted by the user"); + goto clean; + } + + } + if(status.status != HIMD_STATUS_AUDIO_EOF) + errmsg = tr("Error reading audio data: ") + status.statusmsg; + +clean: + f.close(); + himd_mp3stream_close(&str); + if(!errmsg.isNull()) + f.remove(); + return errmsg; +} + +static inline TagLib::String QStringToTagString(const QString & s) +{ + return TagLib::String(s.toUtf8().data(), TagLib::String::UTF8); +} + +static void addid3tag(QString title, QString artist, QString album, QString file) +{ +#ifdef Q_OS_WIN + TagLib::FileRef f(file.toStdWString().c_str()); +#else + TagLib::FileRef f(file.toUtf8().data()); +#endif + TagLib::Tag *t = f.tag(); + t->setTitle(QStringToTagString(title)); + t->setArtist(QStringToTagString(artist)); + t->setAlbum(QStringToTagString(album)); + t->setComment("*** imported from HiMD via QHiMDTransfer ***"); + f.file()->save(); +} + +QString QHiMDDevice::dumpoma(const QHiMDTrack &track, QString file) +{ + QString errmsg; + struct himd_nonmp3stream str; + struct himderrinfo status; + unsigned int len; + const unsigned char * data; + QFile f(file); + + if(!f.open(QIODevice::ReadWrite)) + return tr("Error opening file for ATRAC output"); + + if(!(errmsg = track.openNonMpegStream(&str)).isNull()) + { + f.remove(); + return tr("Error opening track: ") + status.statusmsg; + } + + if(f.write(track.makeEA3Header()) == -1) + { + errmsg = tr("Error writing header"); + goto clean; + } + while(himd_nonmp3stream_read_block(&str, &data, &len, NULL, &status) >= 0) + { + if(f.write((const char*)data,len) == -1) + { + errmsg = tr("Error writing audio data"); + goto clean; + } + uploadDialog.blockTransferred(); + QApplication::processEvents(); + if(uploadDialog.upload_canceled()) + { + errmsg = QString("upload aborted by the user"); + goto clean; + } + } + if(status.status != HIMD_STATUS_AUDIO_EOF) + errmsg = QString("Error reading audio data: ") + status.statusmsg; + +clean: + f.close(); + himd_nonmp3stream_close(&str); + + if(!errmsg.isNull()) + f.remove(); + return errmsg; +} + +QString QHiMDDevice::dumppcm(const QHiMDTrack &track, QString file) +{ + struct himd_nonmp3stream str; + struct himderrinfo status; + unsigned int len, i; + int left, right; + int clipcount; + QString errmsg; + QFile f(file); + const unsigned char * data; + sox_format_t * out; + sox_sample_t soxbuf [HIMD_MAX_PCMFRAME_SAMPLES * 2]; + sox_signalinfo_t signal_out; + + signal_out.channels = 2; + signal_out.length = 0; + signal_out.precision = 16; + signal_out.rate = 44100; + + if(!(out = sox_open_write(file.toUtf8(), &signal_out, NULL, NULL, NULL, NULL))) + return tr("Error opening file for WAV output"); + + if(!(errmsg = track.openNonMpegStream(&str)).isNull()) + { + f.remove(); + return tr("Error opening track: ") + status.statusmsg; + } + + while(himd_nonmp3stream_read_block(&str, &data, &len, NULL, &status) >= 0) + { + + for(i = 0; i < len/4; i++) { + + left = data[i*4]*256+data[i*4+1]; + right = data[i*4+2]*256+data[i*4+3]; + if (left > 0x8000) left -= 0x10000; + if (right > 0x8000) right -= 0x10000; + + soxbuf[i*2] = SOX_SIGNED_16BIT_TO_SAMPLE(left, clipcount); + soxbuf[i*2+1] = SOX_SIGNED_16BIT_TO_SAMPLE(right, clipcount); + (void)clipcount; /* suppess "is unused" warning */ + } + + if (sox_write(out, soxbuf, len/2) != len/2) + { + errmsg = tr("Error writing audio data"); + goto clean; + } + uploadDialog.blockTransferred(); + QApplication::processEvents(); + if(uploadDialog.upload_canceled()) + { + errmsg = QString("upload aborted by the user"); + goto clean; + } + } + if(status.status != HIMD_STATUS_AUDIO_EOF) + errmsg = QString("Error reading audio data: ") + status.statusmsg; + +clean: + sox_close(out); + himd_nonmp3stream_close(&str); + + if(!errmsg.isNull()) + f.remove(); + return errmsg; +} + +void QHiMDDevice::upload(unsigned int trackidx, QString path) +{ + QString filename, errmsg; + QHiMDTrack track = himdTrack(trackidx); + QString title = track.title(); + + if(title.isNull()) + filename = tr("Track %1").arg(track.tracknum()+1); + else + filename = track.artist() + " - " + title; + + uploadDialog.starttrack(track, filename); + if (!track.copyprotected()) + { + QString codec = track.codecname(); + if (codec == "MPEG") + { + checkfile(path, filename, ".mp3"); + errmsg = dumpmp3 (track, path + "/" + filename + ".mp3"); + if(errmsg.isNull()) + addid3tag (track.title(),track.artist(),track.album(), path + "/" +filename + ".mp3"); + } + else if (codec == "LPCM") + { + checkfile(path, filename, ".wav"); + errmsg = dumppcm (track, path + "/" + filename + ".wav"); + } + else if (codec == "AT3+" || codec == "AT3 ") + { + checkfile(path, filename, ".oma"); + errmsg = dumpoma (track, path + "/" + filename + ".oma"); + } + } + else + errmsg = tr("upload disabled because of DRM encryption"); + + if(errmsg.isNull()) + uploadDialog.trackSucceeded(); + else + uploadDialog.trackFailed(errmsg); + +} + +void QHiMDDevice::batchUpload(QMDTrackIndexList tlist, QString path) +{ + int allblocks = 0; + + setBusy(true); + + for(int i = 0;i < tlist.length(); i++) + allblocks += himdTrack(tlist.at(i)).blockcount(); + + uploadDialog.init(tlist.length(), allblocks); + + for(int i = 0; i < tlist.length(); i++) { + upload(tlist[i], path); + QApplication::processEvents(); + if(uploadDialog.upload_canceled()) + break; + } + + uploadDialog.finished(); + setBusy(false); +} diff --git a/qhimdtransfer/qmddevice.h b/qhimdtransfer/qmddevice.h new file mode 100644 index 0000000..3be6c36 --- /dev/null +++ b/qhimdtransfer/qmddevice.h @@ -0,0 +1,101 @@ +#ifndef QMDDEVICE_H +#define QMDDEVICE_H + +#include +#include +#include + +#include +#include "qhimduploaddialog.h" + +enum device_type { + NO_DEVICE, + NETMD_DEVICE, + HIMD_DEVICE +}; + +struct os_data { + bool md_inserted; + virtual ~os_data(){} +}; + +class QMDDevice : public QObject { + Q_OBJECT + Q_DISABLE_COPY(QMDDevice) + + QString recorder_name; + bool is_busy; + struct os_data osdata; +protected: + QString device_path; + enum device_type dev_type; + bool is_open; + unsigned int trk_count; + QHiMDUploadDialog uploadDialog; +public: + explicit QMDDevice(); // + virtual ~QMDDevice(); + virtual enum device_type deviceType(); // + virtual void setPath(QString path); // + virtual QString path(); // + virtual void setName(QString name); // + virtual QString name(); // + virtual void setBusy(bool busy); // + virtual bool isBusy(); // + virtual QString open() {return QString();} + virtual void close() {} + virtual bool isOpen() {return is_open;} + virtual QString discTitle() {return QString();} + virtual void setPlatformData(struct os_data pdata); // + virtual struct os_data * pdata(); // + virtual QMDTrack track(unsigned int trkindex) {return QMDTrack();} + virtual int trackCount() {return trk_count;} + virtual QStringList downloadableFileExtensions() const; // + virtual void checkfile(QString UploadDirectory, QString &filename, QString extension); + virtual void batchUpload(QMDTrackIndexList tlist, QString path) {} + virtual void upload(unsigned int trackidx, QString path) {} + +signals: + void opened(); + void closed(); +}; + +class QNetMDDevice : public QMDDevice { + + netmd_device * netmd; + netmd_dev_handle * devh; + minidisc current_md; +private: + QString upload_track_blocks(uint32_t length, FILE *file, size_t chunksize); +public: + explicit QNetMDDevice(); + virtual ~QNetMDDevice(); + virtual void setUsbDevice(netmd_device * dev); // + virtual QString open(); // + virtual void close(); // + virtual QString discTitle(); // + virtual QNetMDTrack netmdTrack(unsigned int trkindex); + virtual void batchUpload(QMDTrackIndexList tlist, QString path); + virtual void upload(unsigned int trackidx, QString path); + +}; + +class QHiMDDevice : public QMDDevice { + + struct himd * himd; +private: + QString dumpmp3(const QHiMDTrack &trk, QString file); + QString dumpoma(const QHiMDTrack & track, QString file); + QString dumppcm(const QHiMDTrack &track, QString file); +public: + explicit QHiMDDevice(); + virtual ~QHiMDDevice(); + virtual QString open(); // + virtual void close(); // + virtual QHiMDTrack himdTrack(unsigned int trkindex); // + virtual void upload(unsigned int trackidx, QString path); + virtual void batchUpload(QMDTrackIndexList tlist, QString path); + +}; + +#endif // QMDDEVICE_H -- 1.8.0.msysgit.0 --------------020303080300030105010904 Content-Type: text/x-patch; name="0003-implemented-new-class-QNetMDTracksModel-analogous-to.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0003-implemented-new-class-QNetMDTracksModel-analogous-to.pa"; filename*1="tch" >From 4bb57c89772d8514f28816717991e035cbb96afc Mon Sep 17 00:00:00 2001 From: Thomas Arp Date: Sat, 26 Jan 2013 20:57:33 +0100 Subject: [PATCH 3/7] implemented new class QNetMDTracksModel analogous to QHiMDTracksModel, renamed qhimdmodel.h/.cpp to qmdmodel.h/.cpp, QHiMDTrack class is already moved to qmdtrack.h/.cpp --- qhimdtransfer/qhimdmodel.cpp | 289 ---------------------------------- qhimdtransfer/qhimdmodel.h | 68 -------- qhimdtransfer/qmdmodel.cpp | 358 +++++++++++++++++++++++++++++++++++++++++++ qhimdtransfer/qmdmodel.h | 80 ++++++++++ 4 files changed, 438 insertions(+), 357 deletions(-) delete mode 100644 qhimdtransfer/qhimdmodel.cpp delete mode 100644 qhimdtransfer/qhimdmodel.h create mode 100644 qhimdtransfer/qmdmodel.cpp create mode 100644 qhimdtransfer/qmdmodel.h diff --git a/qhimdtransfer/qhimdmodel.cpp b/qhimdtransfer/qhimdmodel.cpp deleted file mode 100644 index ac4bde5..0000000 --- a/qhimdtransfer/qhimdmodel.cpp +++ /dev/null @@ -1,289 +0,0 @@ -#include -#include -#include "qhimdmodel.h" - -static QString get_himd_str(struct himd * himd, int idx) -{ - QString outstr; - char * str; - if(!idx) - return QString(); - str = himd_get_string_utf8(himd, idx, NULL, NULL); - if(!str) - return QString(); - - outstr = QString::fromUtf8(str); - himd_free(str); - return outstr; -} - -QHiMDTrack::QHiMDTrack(struct himd * himd, unsigned int trackindex) : himd(himd), trknum(trackindex) -{ - trackslot = himd_get_trackslot(himd, trackindex, NULL); - if(trackslot != 0) - if(himd_get_track_info(himd, trackslot, &ti, NULL) < 0) - trackslot = -1; -} - -unsigned int QHiMDTrack::tracknum() const -{ - return trknum; -} - -QString QHiMDTrack::title() const -{ - if(trackslot != 0) - return get_himd_str(himd, ti.title); - else - return QString(); -} - -QString QHiMDTrack::artist() const -{ - if(trackslot != 0) - return get_himd_str(himd, ti.artist); - else - return QString(); -} - -QString QHiMDTrack::album() const -{ - if(trackslot != 0) - return get_himd_str(himd, ti.album); - else - return QString(); -} - -QString QHiMDTrack::codecname() const -{ - if(trackslot != 0) - return himd_get_codec_name(&ti); - else - return QString(); -} - -QTime QHiMDTrack::duration() const -{ - QTime t; - if(trackslot != 0) - return t.addSecs(ti.seconds); - else - return t; -} - -bool QHiMDTrack::copyprotected() const -{ - if(trackslot != 0) - return !himd_track_uploadable(himd, &ti); - return true; -} - -int QHiMDTrack::blockcount() const -{ - if(trackslot != 0) - return himd_track_blocks(himd, &ti, NULL); - else - return 0; -} - -QString QHiMDTrack::openMpegStream(struct himd_mp3stream * str) const -{ - struct himderrinfo status; - if(himd_mp3stream_open(himd, trackslot, str, &status) < 0) - return QString::fromUtf8(status.statusmsg); - return QString(); -} - -QString QHiMDTrack::openNonMpegStream(struct himd_nonmp3stream * str) const -{ - struct himderrinfo status; - if(himd_nonmp3stream_open(himd, trackslot, str, &status) < 0) - return QString::fromUtf8(status.statusmsg); - return QString(); -} - -QByteArray QHiMDTrack::makeEA3Header() const -{ - char header[EA3_FORMAT_HEADER_SIZE]; - make_ea3_format_header(header, &ti.codec_info); - return QByteArray(header,EA3_FORMAT_HEADER_SIZE); -} - -enum columnum { - ColId, ColTitle, ColArtist, ColAlbum, ColLength, ColCodec, ColUploadable, - LAST_columnnum = ColUploadable -}; - -QVariant QHiMDTracksModel::headerData(int section, Qt::Orientation orientation, int role) const -{ - if(orientation != Qt::Horizontal) - return QVariant(); - - if(role == Qt::SizeHintRole) - { - static QFont f; - static QFontMetrics met(f); - switch((columnum)section) - { - case ColId: - return QSize(met.width("9999")+5, 0); - case ColTitle: - case ColArtist: - case ColAlbum: - return QSize(25*met.averageCharWidth(), 0); - case ColLength: - return QSize(met.width("9:99:99"), 0); - case ColCodec: - case ColUploadable: - /* Really use the header for the metric in these columns, - contents will be shorter */ - return QAbstractListModel::headerData(section,orientation,role); - } - } - - if(role == Qt::DisplayRole) - { - switch((columnum)section) - { - case ColId: - return tr("Nr."); - case ColTitle: - return tr("Title"); - case ColArtist: - return tr("Artist"); - case ColAlbum: - return tr("Album"); - case ColLength: - return tr("Length"); - case ColCodec: - return tr("Format"); - case ColUploadable: - return tr("Uploadable"); - } - } - return QVariant(); -} - -QVariant QHiMDTracksModel::data(const QModelIndex & index, int role) const -{ - if(role == Qt::TextAlignmentRole && - (index.column() == ColId || index.column() == ColLength)) - return Qt::AlignRight; - - if(index.row() >= rowCount()) - return QVariant(); - - QHiMDTrack track(himd, index.row()); - - if(role == Qt::CheckStateRole && index.column() == ColUploadable) - return track.copyprotected() ? Qt::Unchecked : Qt::Checked; - - if(role == Qt::DisplayRole) - { - switch((columnum)index.column()) - { - case ColId: - return index.row() + 1; - case ColTitle: - return track.title(); - case ColArtist: - return track.artist(); - case ColAlbum: - return track.album(); - case ColLength: - { - QTime t = track.duration(); - if(t < QTime(1,0,0)) - return t.toString("m:ss"); - else - return t.toString("h:mm:ss"); - } - case ColCodec: - return track.codecname(); - case ColUploadable: - return QVariant(); /* Displayed by checkbox */ - } - } - return QVariant(); -} - -int QHiMDTracksModel::rowCount(const QModelIndex &) const -{ - if(himd) - return himd_track_count(himd); - else - return 0; -} - -int QHiMDTracksModel::columnCount(const QModelIndex &) const -{ - return LAST_columnnum+1; -} - -QString QHiMDTracksModel::open(const QString & path) -{ - struct himd * newhimd; - struct himderrinfo status; - - newhimd = new struct himd; - if(himd_open(newhimd,path.toUtf8(), &status) < 0) - { - delete newhimd; - return QString::fromUtf8(status.statusmsg); - } - close(); - himd = newhimd; - reset(); /* inform views that the model contents changed */ - return QString(); -} - -bool QHiMDTracksModel::is_open() -{ - return himd != NULL; -} - -void QHiMDTracksModel::close() -{ - struct himd * oldhimd; - if(!himd) - return; - oldhimd = himd; - himd = NULL; - reset(); /* inform views that the model contents changed */ - himd_close(oldhimd); - delete oldhimd; -} - -QHiMDTrack QHiMDTracksModel::track(int trknum) const -{ - return QHiMDTrack(himd, trknum); -} - -QHiMDTrackList QHiMDTracksModel::tracks(const QModelIndexList & modelindices) const -{ - QHiMDTrackList tracks; - QModelIndex index; - foreach(index, modelindices) - tracks.append(track(index.row())); - return tracks; -} - -QStringList QHiMDTracksModel::downloadableFileExtensions() const -{ - return (QStringList() << "mp3"); -} - -/* QFileSystemModel stuff */ - -Qt::ItemFlags QHiMDFileSystemModel::flags(const QModelIndex &index) const -{ - if(!isDir(index) && !selectableExtensions.contains((fileInfo(index).suffix()), Qt::CaseInsensitive)) - return Qt::NoItemFlags; //not selectable, not enabled (grayed out in the browser) - - return QFileSystemModel::flags(index); -} - -void QHiMDFileSystemModel::setSelectableExtensions(QStringList extensions) -{ - selectableExtensions = extensions; -} diff --git a/qhimdtransfer/qhimdmodel.h b/qhimdtransfer/qhimdmodel.h deleted file mode 100644 index 6ccc2f8..0000000 --- a/qhimdtransfer/qhimdmodel.h +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef QHIMDMODEL_H -#define QHIMDMODEL_H - -#include -#include -#include -#include -#include -#include "himd.h" - -#include "sony_oma.h" - -class QHiMDTracksModel; - -class QHiMDTrack { - struct himd * himd; - unsigned int trknum; - unsigned int trackslot; - struct trackinfo ti; -public: - QHiMDTrack(struct himd * himd, unsigned int trackindex); - unsigned int tracknum() const; - QString title() const; - QString artist() const; - QString album() const; - QString codecname() const; - QTime duration() const; - bool copyprotected() const; - int blockcount() const; - - QString openMpegStream(struct himd_mp3stream * str) const; - QString openNonMpegStream(struct himd_nonmp3stream * str) const; - QByteArray makeEA3Header() const; -}; - -typedef QList QHiMDTrackList; - -class QHiMDTracksModel : public QAbstractListModel { - Q_OBJECT - - struct himd *himd; -public: - QHiMDTracksModel() : himd(NULL) {} - /* QAbstractListModel stuff */ - virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; - virtual QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const; - virtual int rowCount(const QModelIndex & parent = QModelIndex() ) const; - virtual int columnCount(const QModelIndex & parent = QModelIndex() ) const; - /* HiMD containter stuff */ - QString open(const QString & path); /* returns null if OK, error message otherwise */ - bool is_open(); - void close(); - QHiMDTrack track(int trackidx) const; - QHiMDTrackList tracks(const QModelIndexList & indices) const; - QStringList downloadableFileExtensions() const; -}; - -class QHiMDFileSystemModel : public QFileSystemModel { - Q_OBJECT - - QStringList selectableExtensions; -public: - virtual Qt::ItemFlags flags(const QModelIndex &index) const; - void setSelectableExtensions(QStringList extensions); -}; - - -#endif diff --git a/qhimdtransfer/qmdmodel.cpp b/qhimdtransfer/qmdmodel.cpp new file mode 100644 index 0000000..04e67da --- /dev/null +++ b/qhimdtransfer/qmdmodel.cpp @@ -0,0 +1,358 @@ +#include +#include +#include + + +enum hcolumnum { + ColId, ColTitle, ColArtist, ColAlbum, ColLength, ColCodec, ColUploadable, + LAST_hcolumnnum = ColUploadable +}; + +enum ncolumnum { + CoId, CoGroup, CoTitle, CoLength, CoCodec, CoUploadable, + LAST_ncolumnnum = CoUploadable +}; + + +/* netmd tracks model */ +QVariant QNetMDTracksModel::headerData(int section, Qt::Orientation orientation, int role) const +{ + if(orientation != Qt::Horizontal) + return QVariant(); + + if(role == Qt::SizeHintRole) + { + static QFont f; + static QFontMetrics met(f); + switch((ncolumnum)section) + { + case CoId: + return QSize(met.width("9999")+5, 0); + case CoGroup: + case CoTitle: + case CoLength: + return QSize(met.width("9:99:99"), 0); + case CoCodec: + case CoUploadable: + /* Really use the header for the metric in these columns, + contents will be shorter */ + return QAbstractListModel::headerData(section,orientation,role); + } + } + + if(role == Qt::DisplayRole) + { + switch((ncolumnum)section) + { + case CoId: + return tr("Nr."); + case CoGroup: + return tr("Group"); + case CoTitle: + return tr("Title"); + case CoLength: + return tr("Length"); + case CoCodec: + return tr("Format"); + case CoUploadable: + return tr("Uploadable"); + } + } + return QVariant(); +} + +QVariant QNetMDTracksModel::data(const QModelIndex & index, int role) const +{ + if(role == Qt::TextAlignmentRole && + (index.column() == CoId || index.column() == CoLength)) + return Qt::AlignRight; + + if(index.row() >= rowCount()) + return QVariant(); + + QNetMDTrack track = allTracks[index.row()]; + + if(role == Qt::CheckStateRole && index.column() == CoUploadable) + return ((ndev->name() != "SONY MZ-RH1 (NetMD)") && track.copyprotected()) ? Qt::Unchecked : Qt::Checked; + + if(role == Qt::DisplayRole) + { + switch((ncolumnum)index.column()) + { + case CoId: + return index.row() + 1; + case CoGroup: + return track.group(); + case CoTitle: + return track.title(); + case CoLength: + { + QTime t = track.duration(); + if(t < QTime(1,0,0)) + return t.toString("m:ss"); + else + return t.toString("h:mm:ss"); + } + case CoCodec: + return track.codecname(); + case CoUploadable: + return QVariant(); /* Displayed by checkbox */ + } + } + return QVariant(); +} + +int QNetMDTracksModel::rowCount(const QModelIndex &) const +{ + if(ndev == NULL) + return 0; + + return ndev->trackCount(); +} + +int QNetMDTracksModel::columnCount(const QModelIndex &) const +{ + return LAST_ncolumnnum+1; +} + +QString QNetMDTracksModel::open(QMDDevice * device) +{ + int i = 0; + QString ret = "error opening net device"; + + if(ndev != NULL) + close(); + + if(device->deviceType() == NETMD_DEVICE) + { + ndev = static_cast(device); + ret = ndev->open(); + } + + if(!ret.isEmpty()) + close(); + + /* fetch track info for all tracks first, getting track info inside data() function is very slow */ + for(; i < ndev->trackCount(); i++) + allTracks.append(ndev->netmdTrack(i)); + + reset(); /* inform views that the model contents changed */ + return ret; +} + +bool QNetMDTracksModel::is_open() +{ + return ndev->isOpen(); +} + +void QNetMDTracksModel::close() +{ + if(ndev != NULL && ndev->isOpen()) + ndev->close(); + + ndev = NULL; + + allTracks.clear(); + reset(); /* inform views that the model contents changed */ +} + +QNetMDTrack QNetMDTracksModel::track(int trkidx) const +{ + return ndev->netmdTrack(trkidx); +} + +QNetMDTrackList QNetMDTracksModel::tracks(const QModelIndexList & modelindices) const +{ + QNetMDTrackList tracks; + QModelIndex index; + + foreach(index, modelindices) + tracks.append(ndev->netmdTrack(index.row())); + return tracks; +} + +QStringList QNetMDTracksModel::downloadableFileExtensions() const +{ + return ndev->downloadableFileExtensions(); +} + + +/* himd tracks model */ + +QVariant QHiMDTracksModel::headerData(int section, Qt::Orientation orientation, int role) const +{ + if(orientation != Qt::Horizontal) + return QVariant(); + + if(role == Qt::SizeHintRole) + { + static QFont f; + static QFontMetrics met(f); + switch((hcolumnum)section) + { + case ColId: + return QSize(met.width("9999")+5, 0); + case ColTitle: + case ColArtist: + case ColAlbum: + return QSize(25*met.averageCharWidth(), 0); + case ColLength: + return QSize(met.width("9:99:99"), 0); + case ColCodec: + case ColUploadable: + /* Really use the header for the metric in these columns, + contents will be shorter */ + return QAbstractListModel::headerData(section,orientation,role); + } + } + + if(role == Qt::DisplayRole) + { + switch((hcolumnum)section) + { + case ColId: + return tr("Nr."); + case ColTitle: + return tr("Title"); + case ColArtist: + return tr("Artist"); + case ColAlbum: + return tr("Album"); + case ColLength: + return tr("Length"); + case ColCodec: + return tr("Format"); + case ColUploadable: + return tr("Uploadable"); + } + } + return QVariant(); +} + +QVariant QHiMDTracksModel::data(const QModelIndex & index, int role) const +{ + if(role == Qt::TextAlignmentRole && + (index.column() == ColId || index.column() == ColLength)) + return Qt::AlignRight; + + if(index.row() >= rowCount()) + return QVariant(); + + QHiMDTrack track = hdev->himdTrack(index.row()); + + if(role == Qt::CheckStateRole && index.column() == ColUploadable) + return track.copyprotected() ? Qt::Unchecked : Qt::Checked; + + if(role == Qt::DisplayRole) + { + switch((hcolumnum)index.column()) + { + case ColId: + return index.row() + 1; + case ColTitle: + return track.title(); + case ColArtist: + return track.artist(); + case ColAlbum: + return track.album(); + case ColLength: + { + QTime t = track.duration(); + if(t < QTime(1,0,0)) + return t.toString("m:ss"); + else + return t.toString("h:mm:ss"); + } + case ColCodec: + return track.codecname(); + case ColUploadable: + return QVariant(); /* Displayed by checkbox */ + } + } + return QVariant(); +} + +int QHiMDTracksModel::rowCount(const QModelIndex &) const +{ + if(hdev == NULL) + return 0; + + return hdev->trackCount(); +} + +int QHiMDTracksModel::columnCount(const QModelIndex &) const +{ + return LAST_hcolumnnum+1; +} + +QString QHiMDTracksModel::open(QMDDevice * device) +{ + QString ret = "error opening himd device"; + + if(hdev != NULL) + close(); + + if(device->deviceType() == HIMD_DEVICE) + { + hdev = static_cast(device); + ret = hdev->open(); + } + + if(!ret.isEmpty()) + close(); + + reset(); /* inform views that the model contents changed */ + return ret; +} + +bool QHiMDTracksModel::is_open() +{ + return hdev->isOpen(); +} + +void QHiMDTracksModel::close() +{ + if(hdev != NULL && hdev->isOpen()) + hdev->close(); + + hdev = NULL; + + reset(); /* inform views that the model contents changed */ +} + +QHiMDTrack QHiMDTracksModel::track(int trknum) const +{ + return hdev->himdTrack(trknum); +} + +QHiMDTrackList QHiMDTracksModel::tracks(const QModelIndexList & modelindices) const +{ + QHiMDTrackList tracks; + QModelIndex index; + + foreach(index, modelindices) + tracks.append(hdev->himdTrack(index.row())); + return tracks; +} + +QStringList QHiMDTracksModel::downloadableFileExtensions() const +{ + return hdev->downloadableFileExtensions(); +} + + +/* QFileSystemModel stuff */ + +Qt::ItemFlags QHiMDFileSystemModel::flags(const QModelIndex &index) const +{ + if(!isDir(index) && !selectableExtensions.contains((fileInfo(index).suffix()), Qt::CaseInsensitive)) + return Qt::NoItemFlags; //not selectable, not enabled (grayed out in the browser) + + return QFileSystemModel::flags(index); +} + +void QHiMDFileSystemModel::setSelectableExtensions(QStringList extensions) +{ + selectableExtensions = extensions; + reset(); +} diff --git a/qhimdtransfer/qmdmodel.h b/qhimdtransfer/qmdmodel.h new file mode 100644 index 0000000..9dd644e --- /dev/null +++ b/qhimdtransfer/qmdmodel.h @@ -0,0 +1,80 @@ +#ifndef QHIMDMODEL_H +#define QHIMDMODEL_H + +#include + +#include +#include +#include +#include +#include + +class QMDTracksModel : public QAbstractListModel { + Q_OBJECT + + QMDDevice * dev; +public: + QMDTracksModel() : dev(NULL) {} + /* QAbstractListModel stuff */ + virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const {return QVariant();} + virtual QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const {return QVariant();} + virtual int rowCount(const QModelIndex & parent = QModelIndex() ) const {return 0;} + virtual int columnCount(const QModelIndex & parent = QModelIndex() ) const {return 0;} + /* dummy data for unknown devices */ + virtual QString open(QMDDevice *device = NULL) {return tr("no known device type specified");} + virtual bool is_open() {return false;} + virtual void close() {} + QStringList downloadableFileExtensions() const {return QStringList();} +}; + +class QNetMDTracksModel : public QMDTracksModel { + Q_OBJECT + + QNetMDDevice * ndev; + QNetMDTrackList allTracks; +public: + QNetMDTracksModel() {ndev = NULL;} + /* QAbstractListModel stuff */ + virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; + virtual QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const; + virtual int rowCount(const QModelIndex & parent = QModelIndex() ) const; + virtual int columnCount(const QModelIndex & parent = QModelIndex() ) const; + /* NetMD device stuff */ + QString open(QMDDevice *device); /* returns null if OK, error message otherwise */ + virtual bool is_open(); + void close(); + QNetMDTrack track(int trkidx) const; + virtual QNetMDTrackList tracks(const QModelIndexList & indices) const; // should be QMDTrackList later + QStringList downloadableFileExtensions() const; +}; + +class QHiMDTracksModel : public QMDTracksModel { + Q_OBJECT + + QHiMDDevice * hdev; +public: + QHiMDTracksModel() {hdev = NULL;} + /* QAbstractListModel stuff */ + virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; + virtual QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const; + virtual int rowCount(const QModelIndex & parent = QModelIndex() ) const; + virtual int columnCount(const QModelIndex & parent = QModelIndex() ) const; + /* HiMD containter stuff */ + virtual QString open(QMDDevice *device); /* returns null if OK, error message otherwise */ + virtual bool is_open(); + virtual void close(); + virtual QHiMDTrack track(int trackidx) const; + virtual QHiMDTrackList tracks(const QModelIndexList & indices) const; // should be QMDTrackList later + QStringList downloadableFileExtensions() const; +}; + +class QHiMDFileSystemModel : public QFileSystemModel { + Q_OBJECT + + QStringList selectableExtensions; +public: + virtual Qt::ItemFlags flags(const QModelIndex &index) const; + void setSelectableExtensions(QStringList extensions); +}; + +#endif -- 1.8.0.msysgit.0 --------------020303080300030105010904 Content-Type: text/x-patch; name="0004-changed-QHiMDTrack-parameter-in-QHiMDUploadDialog-st.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename*0="0004-changed-QHiMDTrack-parameter-in-QHiMDUploadDialog-st.pa"; filename*1="tch" >From b7b5bd44f351be63550c0813aa94b4407ad1d004 Mon Sep 17 00:00:00 2001 From: Thomas Arp Date: Sat, 26 Jan 2013 21:03:39 +0100 Subject: [PATCH 4/7] changed QHiMDTrack parameter in QHiMDUploadDialog::starttrack() to QMDTrack, upload dialog can be used for netmd tracks, too. Also reset "canceled" variable in init() function --- qhimdtransfer/qhimduploaddialog.cpp | 11 ++++++++++- qhimdtransfer/qhimduploaddialog.h | 4 ++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/qhimdtransfer/qhimduploaddialog.cpp b/qhimdtransfer/qhimduploaddialog.cpp index 4df44ca..605c868 100644 --- a/qhimdtransfer/qhimduploaddialog.cpp +++ b/qhimdtransfer/qhimduploaddialog.cpp @@ -34,6 +34,13 @@ void QHiMDUploadDialog::finished() /* Prevent shrinking of the box when hiding the indicators */ m_ui->current->setMinimumSize(m_ui->current->size()); m_ui->TrkPBar->hide(); + /* set AllPBar to 100% if it is not used during transfer, + * current netmd uploads doesn´t set the range correctly + */ + if(m_ui->AllPBar->maximum() == 0) { + m_ui->AllPBar->setMaximum(1); + m_ui->AllPBar->setValue(1); + } m_ui->curtrack_label->hide(); m_ui->cancel_button->hide(); @@ -42,7 +49,7 @@ void QHiMDUploadDialog::finished() return; } -void QHiMDUploadDialog::starttrack(const QHiMDTrack & trk, const QString & title) +void QHiMDUploadDialog::starttrack(const QMDTrack &trk, const QString & title) { tracknum = trk.tracknum() + 1; m_ui->curtrack_label->setText(tr("current track: %1 - %2").arg(tracknum).arg(title)); @@ -64,6 +71,8 @@ void QHiMDUploadDialog::init(int trackcount, int totalblocks) allfinished = 0; m_ui->AllPBar->setRange(0, allblocks); m_ui->AllPBar->reset(); + // reset "canceled" variable, else if last upload was canceled next upload will be canceled automatically + canceled = false; scount = fcount = 0; m_ui->success_text->setText(""); diff --git a/qhimdtransfer/qhimduploaddialog.h b/qhimdtransfer/qhimduploaddialog.h index 86bcd5c..ec7a4d2 100644 --- a/qhimdtransfer/qhimduploaddialog.h +++ b/qhimdtransfer/qhimduploaddialog.h @@ -2,7 +2,7 @@ #define QHIMDUPLOADDIALOG_H #include -#include "qhimdmodel.h" +#include "qmdtrack.h" namespace Ui { class QHiMDUploadDialog; @@ -17,7 +17,7 @@ public: bool upload_canceled() { return canceled; } void init(int trackcount, int totalblocks); - void starttrack(const QHiMDTrack & trk, const QString & title); + void starttrack(const QMDTrack & trk, const QString & title); void blockTransferred(); void trackFailed(const QString & errmsg); void trackSucceeded(); -- 1.8.0.msysgit.0 --------------020303080300030105010904 Content-Type: text/x-patch; name="0005-implemented-netmd-autodetection-at-application-start.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0005-implemented-netmd-autodetection-at-application-start.pa"; filename*1="tch" >From f5339286763e297d673c0a18aedf598097720c21 Mon Sep 17 00:00:00 2001 From: Thomas Arp Date: Sat, 26 Jan 2013 21:07:48 +0100 Subject: [PATCH 5/7] implemented netmd autodetection at application start, also implemented autodetection during application runtime for windows using the new QMDDevice classes --- qhimdtransfer/qhimddetection.cpp | 262 ++++++++++++++++++++++++++++++++---- qhimdtransfer/qhimddetection.h | 105 ++++++++++----- qhimdtransfer/qhimdwindetection.cpp | 203 +++++++++++++++++++--------- 3 files changed, 448 insertions(+), 122 deletions(-) diff --git a/qhimdtransfer/qhimddetection.cpp b/qhimdtransfer/qhimddetection.cpp index d563587..d0839bb 100644 --- a/qhimdtransfer/qhimddetection.cpp +++ b/qhimdtransfer/qhimddetection.cpp @@ -1,73 +1,279 @@ #include #include "qhimddetection.h" +#include + +void QHiMDDetection::clearDeviceList() +{ + QMDDevice * mddev; + QNetMDDevice * nmddev; + int i = 0; + + while( i < dlist.count() ) + { + mddev = dlist.at(i); + if(mddev->deviceType() == NETMD_DEVICE) + { + nmddev = static_cast(mddev); + if(nmddev->isOpen()) + nmddev->close(); + delete nmddev; + nmddev = NULL; + dlist.removeAt(i); + continue; + } + else if(mddev->deviceType() == HIMD_DEVICE) + { + remove_himddevice(mddev->path()); // uses platform dependent function if available + continue; + } + } + + if(!dlist.isEmpty()) + dlist.clear(); + emit deviceListChanged(dlist); +} QHiMDDetection::QHiMDDetection(QObject *parent) : QObject(parent) { } -himd_device *QHiMDDetection::find_by_path(QString path) +QHiMDDetection::~QHiMDDetection() { - for (int i = 0; i < device_list.size(); i++) - if(device_list.at(i)->path == path) - return device_list.at(i); + clearDeviceList(); + cleanup_netmd_list(); +} - return NULL; +void QHiMDDetection::cleanup_netmd_list() +{ + if(dev_list != NULL) + netmd_clean(&dev_list); +} + +void QHiMDDetection::rescan_netmd_devices() +{ + QNetMDDevice * dev; + int i = 0; + + // find and remove netmd devices + while(i < dlist.count()) + { + if(dlist.at(i)->deviceType() != NETMD_DEVICE) + { + i++; + continue; + } + dev = static_cast(dlist.at(i)); + if(dev->isOpen()) + dev->close(); + + delete dev; + dev = NULL; + dlist.removeAt(i); + } + + netmd_clean(&dev_list); + dev_list = NULL; + + emit deviceListChanged(dlist); + scan_for_netmd_devices(); } -// slots +void QHiMDDetection::scan_for_minidisc_devices() +{ + os_data data; -void QHiMDDetection::himd_busy(QString path) + /* create device entry for disc images first */ + QHiMDDevice * mddev = new QHiMDDevice(); + data.md_inserted = true; + mddev->setName("disc image"); + mddev->setPlatformData(data); + dlist.append(mddev); + emit deviceListChanged(dlist); + + scan_for_himd_devices(); + scan_for_netmd_devices(); +} + +void QHiMDDetection::remove_himddevice(QString path) { - himd_device * dev = find_by_path(path); - if (!dev) + QHiMDDevice * dev = static_cast(find_by_path(path)); + int i = dlist.indexOf(find_by_path(path)); + + if(i < 0) return; - dev->is_busy = true; - qDebug() << "himd device at " + dev->path + " : device busy, starting transfer"; + if(dev->isOpen()) + dev->close(); + delete dev; + dev = NULL; + + dlist.removeAt(i); } -void QHiMDDetection::himd_idle(QString path) +void QHiMDDetection::scan_for_netmd_devices() { - himd_device * dev = find_by_path(path); - if (!dev) + netmd_device * md; + netmd_error error = netmd_init(&dev_list); + struct libusb_device_descriptor desc; + QNetMDDevice * mddev; + + if (error != NETMD_NO_ERROR) return; - dev->is_busy = false; - qDebug() << "himd device at " + dev->path + " : device idle, transfer complete"; + md = dev_list; // pick first device + + while( md != NULL) { + libusb_get_device_descriptor(md->usb_dev, &desc); + mddev = new QNetMDDevice(); + mddev->setName(identify_usb_device(desc.idVendor, desc.idProduct)); + mddev->setUsbDevice(md); + dlist.append(mddev); + emit deviceListChanged(dlist); + md = md->link; // pick next device + } +} + +QMDDevice *QHiMDDetection::find_by_path(QString path) +{ + QMDDevice * mddev; + + foreach(mddev, dlist) + { + if(mddev->path() == path) + return mddev; + } + return NULL; +} + +QMDDevice *QHiMDDetection::find_by_name(QString name) +{ + QMDDevice * mddev; + + foreach(mddev, dlist) + { + if(mddev->name() == name) + return mddev; + } + return NULL; } const char * identify_usb_device(int vid, int pid) { + if(vid == SHARP) + { + switch(pid) + { + case IM_MT880H: + return "SHARP IM-MT880H / IM-MT899H (NetMD)"; + case IM_DR400: + return "SHARP IM-DR400 / IM-DR410 (NetMD)"; + case IM_DR80: + return "SHARP IM-DR80 / IM-DR420/ IM-DR580 or KENWOOD DMC-S9NET (NetMD)"; + } + } + if (vid != SONY) return NULL; switch (pid) { - case MZ_NH1: + case MZ_NH1_HIMD: return "SONY MZ-NH1"; - case MZ_NH3D: + case MZ_NH3D_HIMD: return "SONY MZ-NH3D"; - case MZ_NH900: + case MZ_NH900_HIMD: return "SONY MZ-NH900"; - case MZ_NH700: + case MZ_NH700_HIMD: return "SONY MZ-NH700 / MZ-NH800"; - case MZ_NH600: + case MZ_NH600_HIMD: return "SONY MZ-NH600(D)"; - case LAM_3: + case LAM_3_HIMD: return "SONY LAM-3"; - case MZ_DH10P: + case MZ_DH10P_HIMD: return "SONY MZ-DH10P"; - case MZ_RH10: + case MZ_RH10_HIMD: return "SONY MZ-RH10"; - case MZ_RH910: + case MZ_RH910_HIMD: return "SONY MZ-RH910"; - case CMT_AH10: + case CMT_AH10_HIMD: return "SONY CMT-AH10"; - case DS_HMD1: + case DS_HMD1_HIMD: return "SONY DS-HMD1"; - case MZ_RH1: + case MZ_RH1_HIMD: return "SONY MZ-RH1"; + case PCLK_XX: + return "SONY PCLK-XX (NetMD)"; + case UNKNOWN_A: + return "SONY (unknown model, NetMD)"; + case MZ_N1: + return "SONY MZ-N1 (NetMD)"; + case UNKNOWN_B: + return "SONY (unknown model, NetMD)"; + case LAM_1: + return "Sony LAM-1 (NetMD)"; + case MDS_JE780: + return "SONY MDS-JE780 / MDS-JE980 (NetMD)"; + case MZ_N505: + return "SONY MZ-N505 (NetMD)"; + case MZ_S1: + return "SONY MZ-S1 (NetMD)"; + case MZ_N707: + return "SONY MZ-N707 (NetMD)"; + case CMT_C7NT: + return "SONY CMT-C7NT (NetMD)"; + case PCGA_MDN1: + return "SONY PCGA-MDN1 (NetMD)"; + case CMT_L7HD: + return "SONY CMT-L7HD (NetMD)"; + case MZ_N10: + return "SONY MZ-N10 (NetMD)"; + case MZ_N910: + return "SONY MZ-N910 (NetMD)"; + case MZ_N710: + return "SONY MZ-N710 / MZ-NE810 / MZ-NF810 (NetMD)"; + case MZ_N510: + return "SONY MZ-N510 (NetMD)"; + case MZ_NE410: + return "SONY MZ-NE410 / MZ-DN430 / MZ-NF520 (NetMD)"; + case MZ_NE810: + return "SONY MZ-NE810 / MZ-NE910 (NetMD)"; + case CMT_M333NT: + return "SONY CMT-M333NT / CMT_M373NT (NetMD)"; + case LAM_10: + return "SONY LAM-10 (NetMD)"; + case AIWA_AM_NX1: + return "AIWA AM-NX1 (NetMD)"; + case AIWA_AM_NX9: + return "AIWA AM-NX9 (NetMD)"; + case MZ_NH1: + return "SONY MZ-NH1 (NetMD)"; + case MZ_NH3D: + return "SONY MZ-NH3D (NetMD)"; + case MZ_NH900: + return "SONY MZ-NH900 (NetMD)"; + case MZ_NH700: + return "SONY MZ-NH700 / MZ-NH800 (NetMD)"; + case MZ_NH600: + return "SONY MZ-NH600 / MZ-NH600D (NetMD)"; + case MZ_N920: + return "SONY MZ-N920 (NetMD)"; + case LAM_3: + return "SONY LAM-3 (NetMD)"; + case MZ_DH10P: + return "SONY MZ-DH10P (NetMD)"; + case MZ_RH10: + return "SONY MZ-RH10 (NetMD)"; + case MZ_RH910: + return "SONY MZ-RH910 (NetMD)"; + case CMT_AH10_A: + return "SONY CMT-AH10 (NetMD)"; + case CMT_AH10_B: + return "SONY CMT-AH10 (NetMD)"; + case DS_HMD1: + return "SONY DS-HMD1 (NetMD)"; + case MZ_RH1: + return "SONY MZ-RH1 (NetMD)"; } return NULL; } diff --git a/qhimdtransfer/qhimddetection.h b/qhimdtransfer/qhimddetection.h index 5c30be9..4a5915a 100644 --- a/qhimdtransfer/qhimddetection.h +++ b/qhimdtransfer/qhimddetection.h @@ -4,50 +4,95 @@ #include #include #include +#include -#define SONY 0x054c //known himd-mode product IDs -#define MZ_NH1 0x017f -#define MZ_NH3D 0x0181 -#define MZ_NH900 0x0183 -#define MZ_NH700 0x0185 -#define MZ_NH600 0x0187 -#define LAM_3 0x018a -#define MZ_DH10P 0x01ea -#define MZ_RH10 0x021a -#define MZ_RH910 0x021c -#define CMT_AH10 0x022d -#define DS_HMD1 0x023d -#define MZ_RH1 0x0287 - -struct himd_device { - bool is_busy; - QString path; - bool md_inserted; - QString recorder_name; - virtual ~himd_device(){} /* for polymorphic delete */ - }; +// known vendor IDs +#define SONY 0x054c +#define SHARP 0x4dd + +// known himd-mode product IDs +#define MZ_NH1_HIMD 0x017f +#define MZ_NH3D_HIMD 0x0181 +#define MZ_NH900_HIMD 0x0183 +#define MZ_NH700_HIMD 0x0185 +#define MZ_NH600_HIMD 0x0187 +#define LAM_3_HIMD 0x018b +#define MZ_DH10P_HIMD 0x01ea +#define MZ_RH10_HIMD 0x021a +#define MZ_RH910_HIMD 0x021c +#define CMT_AH10_HIMD 0x022d +#define DS_HMD1_HIMD 0x023d +#define MZ_RH1_HIMD 0x0287 + +// known Sony/Aiwa netmd-mode product IDs +#define PCLK_XX 0x34 +#define UNKNOWN_A 0x36 +#define MZ_N1 0x75 +#define UNKNOWN_B 0x7c +#define LAM_1 0x80 +#define MDS_JE780 0x81 // or MDS-JE980 +#define MZ_N505 0x84 +#define MZ_S1 0x85 +#define MZ_N707 0x86 +#define CMT_C7NT 0x8e +#define PCGA_MDN1 0x97 +#define CMT_L7HD 0xad +#define MZ_N10 0xc6 +#define MZ_N910 0xc7 +#define MZ_N710 0xc8 // or MZ-NE810/NF810 +#define MZ_N510 0xc9 // or MZ-NF610 +#define MZ_NE410 0xca // or MZ-DN430/NF520 +#define MZ_NE810 0xeb // or MZ-NE910 +#define CMT_M333NT 0xe7 // or CMT-M373NT +#define LAM_10 0x101 +#define AIWA_AM_NX1 0x113 +#define AIWA_AM_NX9 0x14c +#define MZ_NH1 0x17e +#define MZ_NH3D 0x180 +#define MZ_NH900 0x182 +#define MZ_NH700 0x184 // or MZ-NH800 +#define MZ_NH600 0x186 // or MZ-NH600D +#define MZ_N920 0x188 +#define LAM_3 0x18a +#define MZ_DH10P 0x1e9 +#define MZ_RH10 0x219 +#define MZ_RH910 0x21b +#define CMT_AH10_A 0x21d +#define CMT_AH10_B 0x22c +#define DS_HMD1 0x23c +#define MZ_RH1 0x286 + +// known Sharp netmd-mode product IDs +#define IM_MT880H 0x7202 // or IM-MT899H +#define IM_DR400 0x9013 // or IM-DR410 +#define IM_DR80 0x9014 // or IM-DR420/DR580 / Kenwood DMC-S9NET const char * identify_usb_device(int vid, int pid); +typedef QList QMDDevicePtrList; + class QHiMDDetection : public QObject { Q_OBJECT Q_DISABLE_COPY(QHiMDDetection) protected: - QList device_list; + QMDDevicePtrList dlist; + netmd_device * dev_list; public: explicit QHiMDDetection(QObject *parent = 0); - virtual ~QHiMDDetection() {} + virtual ~QHiMDDetection(); + virtual void clearDeviceList(); + virtual void cleanup_netmd_list(); + void rescan_netmd_devices(); + void scan_for_minidisc_devices(); virtual void scan_for_himd_devices(){} - himd_device *find_by_path(QString path); - -protected slots: - virtual void himd_busy(QString path); - virtual void himd_idle(QString path); + virtual void remove_himddevice(QString path); + void scan_for_netmd_devices(); + QMDDevice *find_by_path(QString path); + QMDDevice *find_by_name(QString name); signals: - void himd_found(QString path); - void himd_removed(QString path); + void deviceListChanged(QMDDevicePtrList list); }; QHiMDDetection * createDetection(QObject * parent = NULL); diff --git a/qhimdtransfer/qhimdwindetection.cpp b/qhimdtransfer/qhimdwindetection.cpp index 1dc437a..db723ef 100644 --- a/qhimdtransfer/qhimdwindetection.cpp +++ b/qhimdtransfer/qhimdwindetection.cpp @@ -3,8 +3,6 @@ #include #include "qhimddetection.h" -#define WINVER 0x0500 - #include #include #include @@ -12,10 +10,10 @@ #include // needed for handling storage devices #include // needed for CM_Get_Child function -struct win_himd_device : himd_device { - HANDLE devhandle; - HDEVNOTIFY himdChange; - }; +struct win_os_data : os_data { + HANDLE devhandle; + HDEVNOTIFY himdChange; + }; static const GUID my_GUID_IO_MEDIA_ARRIVAL = {0xd07433c0, 0xa98e, 0x11d2, {0x91, 0x7a, 0x00, 0xa0, 0xc9, 0x06, 0x8f, 0xf3} }; @@ -23,6 +21,9 @@ static const GUID my_GUID_IO_MEDIA_ARRIVAL = static const GUID my_GUID_IO_MEDIA_REMOVAL = {0xd07433c1, 0xa98e, 0x11d2, {0x91, 0x7a, 0x00, 0xa0, 0xc9, 0x06, 0x8f, 0xf3} }; +static const GUID my_GUID_DEVINTERFACE_USB_DEVICE = + {0xa5dcbf10, 0x6530, 0x11d2, {0x90, 0x1f, 0x00, 0xc0,0x4f, 0xb9, 0x51, 0xed} }; + static const int my_DBT_CUSTOMEVENT = 0x8006; @@ -37,18 +38,20 @@ public: void scan_for_himd_devices(); QHiMDWinDetection(QObject * parent = NULL); ~QHiMDWinDetection(); - win_himd_device *find_by_path(QString path); + //win_himd_device *find_by_path(QString path); private: HDEVNOTIFY hDevNotify; - win_himd_device *find_by_handle(HANDLE devhandle); - win_himd_device *win_dev_at(int idx); + HDEVNOTIFY listen_usbdev; + QMDDevice *find_by_handle(HANDLE devhandle); void add_himddevice(QString path, QString name); - void remove_himddevice(QString path); + virtual void remove_himddevice(QString path); void add_himd(HANDLE devhandle); void remove_himd(HANDLE devhandle); HDEVNOTIFY register_mediaChange(HANDLE devhandle); void unregister_mediaChange(HDEVNOTIFY himd_change); + HDEVNOTIFY register_usbDeviceNotification(); + void unregister_usbDeviceNotification(); bool winEvent(MSG * msg, long * result); }; @@ -58,17 +61,21 @@ QHiMDDetection * createDetection(QObject * parent) return new QHiMDWinDetection(parent); } -QHiMDWinDetection::QHiMDWinDetection(QObject * parent) +QHiMDWinDetection::QHiMDWinDetection(QObject * parent) : QHiMDDetection(parent), QWidget(0) { // ask for Window ID to have Qt create the window. (void)winId(); + // register for usb device notifications + if((listen_usbdev = register_usbDeviceNotification()) == NULL) + qDebug() << "cannot register usb device notifications" << endl; } QHiMDWinDetection::~QHiMDWinDetection() { - while (!device_list.isEmpty()) - remove_himddevice(device_list.at(0)->path); + unregister_usbDeviceNotification(); + clearDeviceList(); + cleanup_netmd_list(); } void QHiMDWinDetection::scan_for_himd_devices() @@ -96,21 +103,19 @@ void QHiMDWinDetection::scan_for_himd_devices() return; } -win_himd_device *QHiMDWinDetection::win_dev_at(int idx) -{ - return static_cast(device_list.at(idx)); -} - -win_himd_device *QHiMDWinDetection::find_by_path(QString path) +QMDDevice *QHiMDWinDetection::find_by_handle(HANDLE devhandle) { - return static_cast(QHiMDDetection::find_by_path(path)); -} + QMDDevice *mddev; + win_os_data *osd; -win_himd_device *QHiMDWinDetection::find_by_handle(HANDLE devhandle) -{ - for (int i = 0; i < device_list.size(); i++) - if(win_dev_at(i)->devhandle == devhandle) - return win_dev_at(i); + foreach(mddev, dlist) + { + if(mddev->deviceType() != HIMD_DEVICE) + continue; + osd = static_cast(mddev->pdata()); + if(osd->devhandle == devhandle) + return mddev; + } return NULL; } @@ -178,6 +183,7 @@ static bool identified(QString devpath, QString & name) int vid = devpath.mid(devpath.indexOf("VID") + 4, 4).toInt(NULL,16); int pid = devpath.mid(devpath.indexOf("PID") + 4, 4).toInt(NULL,16); const char * devname = identify_usb_device(vid, pid); + if (devname) { name = devname; @@ -191,7 +197,8 @@ void QHiMDWinDetection::add_himddevice(QString path, QString name) if (find_by_path(path)) return; - win_himd_device * new_device = new win_himd_device; + QHiMDDevice * new_device = new QHiMDDevice(); + struct win_os_data pdata; int k; char drv[] = "\\\\.\\X:"; QByteArray device = "\\\\.\\PHYSICALDRIVE"; @@ -213,80 +220,93 @@ void QHiMDWinDetection::add_himddevice(QString path, QString name) if(k != 0) device.append(QString::number(sdn.DeviceNumber)); - new_device->devhandle = CreateFileA(device.data(), NULL , FILE_SHARE_READ, NULL, + + pdata.devhandle = CreateFileA(device.data(), NULL , FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); - if(new_device->devhandle == INVALID_HANDLE_VALUE) + if(pdata.devhandle == INVALID_HANDLE_VALUE) return; - new_device->himdChange = register_mediaChange(new_device->devhandle); - new_device->is_busy = false; - new_device->path = path; - new_device->recorder_name = name; + pdata.himdChange = register_mediaChange(pdata.devhandle); + new_device->setBusy(false); + new_device->setPath(path); + new_device->setName(name); file[0] = path.at(0).toAscii(); if(OpenFile(file, &OFfile, OF_EXIST) != HFILE_ERROR) - { - new_device->md_inserted = true; - emit himd_found(new_device->path); - qDebug() << "himd device at " + new_device->path + " added (" + new_device->recorder_name + ")"; - } + pdata.md_inserted = true; else - { - qDebug() << "himd device at " + new_device->path + " added (" + new_device->recorder_name + ")" + " ; without MD"; - new_device->md_inserted = false; - } + pdata.md_inserted = false; - device_list.append(new_device); + new_device->setPlatformData(pdata); + dlist.append(new_device); + emit deviceListChanged(dlist); return; - } void QHiMDWinDetection::remove_himddevice(QString path) { - win_himd_device * dev = find_by_path(path); + int index = -1; + win_os_data * data; + QHiMDDevice * dev = static_cast(find_by_path(path)); + if (!dev) return; - unregister_mediaChange(dev->himdChange); + index = dlist.indexOf(dev); - if (dev->devhandle != NULL) - CloseHandle(dev->devhandle); + if(dev->isOpen()) + dev->close(); - emit himd_removed(dev->path); + if(dev->name() != "disc image") { + data = static_cast(dev->pdata()); + if(data->himdChange != NULL) + unregister_mediaChange(data->himdChange); - qDebug() << "himd device at " + dev->path + " removed (" + dev->recorder_name + ")"; + if(data->devhandle != NULL) + CloseHandle(data->devhandle); + } - device_list.removeAll(dev); delete dev; + dev = NULL; + + dlist.removeAt(index); + + emit deviceListChanged(dlist); } void QHiMDWinDetection::add_himd(HANDLE devhandle) { - win_himd_device * dev = find_by_handle(devhandle); + win_os_data * data; + QMDDevice * dev = find_by_handle(devhandle); if (!dev) return; - if(!dev->md_inserted) + data = static_cast(dev->pdata()); + + if(!data->md_inserted) { - dev->md_inserted = true; - emit himd_found(dev->path); - qDebug() << "himd device at " + dev->path + " : md inserted"; + data->md_inserted = true; } return; } void QHiMDWinDetection::remove_himd(HANDLE devhandle) { - win_himd_device * dev = find_by_handle(devhandle); + win_os_data * data; + QMDDevice * dev = find_by_handle(devhandle); + if (!dev) return; - if(dev->md_inserted) + data = static_cast(dev->pdata()); + + if(dev->isOpen()) + dev->close(); + + if(data->md_inserted) { - dev->md_inserted = false; - emit himd_removed(dev->path); - qDebug() << "himd device at " + dev->path + " : md removed"; + data->md_inserted = false; } return; } @@ -311,9 +331,30 @@ void QHiMDWinDetection::unregister_mediaChange(HDEVNOTIFY himd_change) UnregisterDeviceNotification(himd_change); } +HDEVNOTIFY QHiMDWinDetection::register_usbDeviceNotification() +{ + DEV_BROADCAST_DEVICEINTERFACE filter; + + ZeroMemory(&filter, sizeof(filter)); + filter.dbcc_size = sizeof(filter); + filter.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE; + filter.dbcc_reserved = 0; + filter.dbcc_classguid = my_GUID_DEVINTERFACE_USB_DEVICE; + + return RegisterDeviceNotification( this->winId(), &filter, DEVICE_NOTIFY_WINDOW_HANDLE); + +} + +void QHiMDWinDetection::unregister_usbDeviceNotification() +{ + if(listen_usbdev != NULL) + UnregisterDeviceNotification(listen_usbdev); +} + bool QHiMDWinDetection::winEvent(MSG * msg, long * result) { QString name, devID, path ; + if(msg->message == WM_DEVICECHANGE) { PDEV_BROADCAST_HDR pHdr = (PDEV_BROADCAST_HDR )msg->lParam; @@ -335,6 +376,16 @@ bool QHiMDWinDetection::winEvent(MSG * msg, long * result) } } } + else if(pHdr->dbch_devicetype == DBT_DEVTYP_DEVICEINTERFACE) + { + PDEV_BROADCAST_DEVICEINTERFACE pDevInf = (PDEV_BROADCAST_DEVICEINTERFACE)pHdr; + devID = QString::fromWCharArray(pDevInf->dbcc_name).toUpper(); + /* only handle netmd devices, himd devices will be handled by DBT_DEVTYP_VOLUME */ + if(identified(devID, name) && name.contains("NetMD)")) { + qDebug() << name << " detected, rescanning netmd devices" << endl; + rescan_netmd_devices(); + } + } break; } case DBT_DEVICEREMOVECOMPLETE : @@ -346,6 +397,15 @@ bool QHiMDWinDetection::winEvent(MSG * msg, long * result) qDebug() << "Message:DBT_DEVICEREMOVECOMPLETE for drive " + path; remove_himddevice(path); } + else if(pHdr->dbch_devicetype == DBT_DEVTYP_DEVICEINTERFACE) + { + PDEV_BROADCAST_DEVICEINTERFACE pDevInf = (PDEV_BROADCAST_DEVICEINTERFACE)pHdr; + devID = QString::fromWCharArray(pDevInf->dbcc_name).toUpper(); + if(identified(devID, name) && name.contains("NetMD)")) { + qDebug() << name << " removed, rescanning netmd devices" << endl; + rescan_netmd_devices(); + } + } break; } case DBT_DEVICEQUERYREMOVE : @@ -353,13 +413,13 @@ bool QHiMDWinDetection::winEvent(MSG * msg, long * result) if(pHdr->dbch_devicetype & DBT_DEVTYP_HANDLE) { PDEV_BROADCAST_HANDLE pHdrh = (PDEV_BROADCAST_HANDLE)pHdr; - win_himd_device *dev = find_by_handle(pHdrh->dbch_handle); + QMDDevice *dev = find_by_handle(pHdrh->dbch_handle); if(!dev) { qDebug() << "Message:DBT_DEVICEQUERYREMOVE for unknown device " << pHdrh->dbch_handle; break; } - if(dev->is_busy) + if(dev->isBusy()) { *result = BROADCAST_QUERY_DENY; qDebug() << "Message:DBT_DEVICEQUERYREMOVE for drive " + path + " denied: transfer in progress"; @@ -368,9 +428,24 @@ bool QHiMDWinDetection::winEvent(MSG * msg, long * result) else { qDebug() << "Message:DBT_DEVICEQUERYREMOVE requested"; - remove_himddevice(dev->path); + remove_himddevice(dev->path()); } } + else if(pHdr->dbch_devicetype == DBT_DEVTYP_DEVICEINTERFACE) + { + PDEV_BROADCAST_DEVICEINTERFACE pDevInf = (PDEV_BROADCAST_DEVICEINTERFACE)pHdr; + devID = QString::fromWCharArray(pDevInf->dbcc_name).toUpper(); + if(identified(devID, name) && name.contains("NetMD)")) { + QMDDevice * dev = find_by_name(name); + if(!dev) + break; + if(dev->isBusy()) { + *result = BROADCAST_QUERY_DENY; + return true; + } + dev->close(); + } + } break; } case my_DBT_CUSTOMEVENT : -- 1.8.0.msysgit.0 --------------020303080300030105010904 Content-Type: text/x-patch; name="0006-changed-QHiMDMainWindow-to-use-the-new-classes-and-c.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0006-changed-QHiMDMainWindow-to-use-the-new-classes-and-c.pa"; filename*1="tch" >From b9e2e22a813f3583a1e8f9d73e18a0baa2ec658c Mon Sep 17 00:00:00 2001 From: Thomas Arp Date: Sat, 26 Jan 2013 21:11:58 +0100 Subject: [PATCH 6/7] changed QHiMDMainWindow to use the new classes and changed autodetection mechanism, also removed himd upload routines which are already implemented in the class QHiMDDevice --- qhimdtransfer/qhimdmainwindow.cpp | 446 +++++++++----------------------------- qhimdtransfer/qhimdmainwindow.h | 30 +-- qhimdtransfer/qhimdmainwindow.ui | 18 +- 3 files changed, 125 insertions(+), 369 deletions(-) diff --git a/qhimdtransfer/qhimdmainwindow.cpp b/qhimdtransfer/qhimdmainwindow.cpp index e2675d9..8c4d19f 100644 --- a/qhimdtransfer/qhimdmainwindow.cpp +++ b/qhimdtransfer/qhimdmainwindow.cpp @@ -1,213 +1,11 @@ #include "qhimdmainwindow.h" #include "ui_qhimdmainwindow.h" #include "qhimdaboutdialog.h" -#include "qhimduploaddialog.h" #include -#include #include -QString QHiMDMainWindow::dumpmp3(const QHiMDTrack & trk, QString file) -{ - QString errmsg; - struct himd_mp3stream str; - struct himderrinfo status; - unsigned int len; - const unsigned char * data; - QFile f(file); - - if(!f.open(QIODevice::ReadWrite)) - { - return tr("Error opening file for MP3 output"); - } - if(!(errmsg = trk.openMpegStream(&str)).isNull()) - { - f.remove(); - return tr("Error opening track: ") + errmsg; - } - while(himd_mp3stream_read_block(&str, &data, &len, NULL, &status) >= 0) - { - if(f.write((const char*)data,len) == -1) - { - errmsg = tr("Error writing audio data"); - goto clean; - } - uploadDialog->blockTransferred(); - QApplication::processEvents(); - if(uploadDialog->upload_canceled()) - { - errmsg = tr("upload aborted by the user"); - goto clean; - } - - } - if(status.status != HIMD_STATUS_AUDIO_EOF) - errmsg = tr("Error reading audio data: ") + status.statusmsg; - -clean: - f.close(); - himd_mp3stream_close(&str); - if(!errmsg.isNull()) - f.remove(); - return errmsg; -} - -static inline TagLib::String QStringToTagString(const QString & s) -{ - return TagLib::String(s.toUtf8().data(), TagLib::String::UTF8); -} - -static void addid3tag(QString title, QString artist, QString album, QString file) -{ -#ifdef Q_OS_WIN - TagLib::FileRef f(file.toStdWString().c_str()); -#else - TagLib::FileRef f(file.toUtf8().data()); -#endif - TagLib::Tag *t = f.tag(); - t->setTitle(QStringToTagString(title)); - t->setArtist(QStringToTagString(artist)); - t->setAlbum(QStringToTagString(album)); - t->setComment("*** imported from HiMD via QHiMDTransfer ***"); - f.file()->save(); -} - -QString QHiMDMainWindow::dumpoma(const QHiMDTrack & track, QString file) -{ - QString errmsg; - struct himd_nonmp3stream str; - struct himderrinfo status; - unsigned int len; - const unsigned char * data; - QFile f(file); - - if(!f.open(QIODevice::ReadWrite)) - return tr("Error opening file for ATRAC output"); - - if(!(errmsg = track.openNonMpegStream(&str)).isNull()) - { - f.remove(); - return tr("Error opening track: ") + status.statusmsg; - } - - if(f.write(track.makeEA3Header()) == -1) - { - errmsg = tr("Error writing header"); - goto clean; - } - while(himd_nonmp3stream_read_block(&str, &data, &len, NULL, &status) >= 0) - { - if(f.write((const char*)data,len) == -1) - { - errmsg = tr("Error writing audio data"); - goto clean; - } - uploadDialog->blockTransferred(); - QApplication::processEvents(); - if(uploadDialog->upload_canceled()) - { - errmsg = QString("upload aborted by the user"); - goto clean; - } - } - if(status.status != HIMD_STATUS_AUDIO_EOF) - errmsg = QString("Error reading audio data: ") + status.statusmsg; - -clean: - f.close(); - himd_nonmp3stream_close(&str); - - if(!errmsg.isNull()) - f.remove(); - return errmsg; -} - -QString QHiMDMainWindow::dumppcm(const QHiMDTrack & track, QString file) -{ - struct himd_nonmp3stream str; - struct himderrinfo status; - unsigned int len, i; - int left, right; - int clipcount; - QString errmsg; - QFile f(file); - const unsigned char * data; - sox_format_t * out; - sox_sample_t soxbuf [HIMD_MAX_PCMFRAME_SAMPLES * 2]; - sox_signalinfo_t signal_out; - - signal_out.channels = 2; - signal_out.length = 0; - signal_out.precision = 16; - signal_out.rate = 44100; - - if(!(out = sox_open_write(file.toUtf8(), &signal_out, NULL, NULL, NULL, NULL))) - return tr("Error opening file for WAV output"); - - if(!(errmsg = track.openNonMpegStream(&str)).isNull()) - { - f.remove(); - return tr("Error opening track: ") + status.statusmsg; - } - - while(himd_nonmp3stream_read_block(&str, &data, &len, NULL, &status) >= 0) - { - - for(i = 0; i < len/4; i++) { - - left = data[i*4]*256+data[i*4+1]; - right = data[i*4+2]*256+data[i*4+3]; - if (left > 0x8000) left -= 0x10000; - if (right > 0x8000) right -= 0x10000; - - soxbuf[i*2] = SOX_SIGNED_16BIT_TO_SAMPLE(left, clipcount); - soxbuf[i*2+1] = SOX_SIGNED_16BIT_TO_SAMPLE(right, clipcount); - (void)clipcount; /* suppess "is unused" warning */ - } - - if (sox_write(out, soxbuf, len/2) != len/2) - { - errmsg = tr("Error writing audio data"); - goto clean; - } - uploadDialog->blockTransferred(); - QApplication::processEvents(); - if(uploadDialog->upload_canceled()) - { - errmsg = QString("upload aborted by the user"); - goto clean; - } - } - if(status.status != HIMD_STATUS_AUDIO_EOF) - errmsg = QString("Error reading audio data: ") + status.statusmsg; - -clean: - sox_close(out); - himd_nonmp3stream_close(&str); - - if(!errmsg.isNull()) - f.remove(); - return errmsg; -} - -void QHiMDMainWindow::checkfile(QString UploadDirectory, QString &filename, QString extension) -{ - QFile f; - QString newname; - int i = 2; - - f.setFileName(UploadDirectory + "/" + filename + extension); - while(f.exists()) - { - newname = filename + " (" + QString::number(i) + ")"; - f.setFileName(UploadDirectory + "/" + newname + extension); - i++; - } - if(!newname.isEmpty()) - filename = newname; -} - void QHiMDMainWindow::set_buttons_enable(bool connect, bool download, bool upload, bool rename, bool del, bool format, bool quit) { ui->action_Connect->setEnabled(connect); @@ -221,13 +19,10 @@ void QHiMDMainWindow::set_buttons_enable(bool connect, bool download, bool uploa ui->download_button->setEnabled(download); } -void QHiMDMainWindow::init_himd_browser() +void QHiMDMainWindow::init_himd_browser(QAbstractListModel * model) { - int i = 0; + ui->TrackList->setModel(model); - ui->TrackList->setModel(&trackmodel); - for(;i < trackmodel.columnCount(); i++) - ui->TrackList->resizeColumnToContents(i); QObject::connect(ui->TrackList->selectionModel(), SIGNAL(selectionChanged (const QItemSelection &, const QItemSelection &)), this, SLOT(handle_himd_selection_change(const QItemSelection&, const QItemSelection&))); } @@ -236,8 +31,7 @@ void QHiMDMainWindow::init_local_browser() { QStringList DownloadFileList; localmodel.setFilter(QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot); - localmodel.setNameFilters(QStringList() << "*.mp3" << "*.wav" << "*.oma"); - localmodel.setSelectableExtensions(trackmodel.downloadableFileExtensions()); + localmodel.setNameFilters(QStringList() << "*.mp3" << "*.wav" << "*.oma" << "*.aea"); localmodel.setNameFilterDisables(false); localmodel.setReadOnly(false); localmodel.setRootPath("/"); @@ -259,8 +53,9 @@ void QHiMDMainWindow::save_window_settings() settings.setValue("geometry", QMainWindow::saveGeometry()); settings.setValue("windowState", QMainWindow::saveState()); - for(;i < trackmodel.columnCount(); i++) + for(;i < htmodel.columnCount(); i++) settings.setValue("himd_browser" + QString::number(i), ui->TrackList->columnWidth(i)); + /* TODO: save and restore columnWidth for netmd model */ } void QHiMDMainWindow::read_window_settings() @@ -270,7 +65,7 @@ void QHiMDMainWindow::read_window_settings() QMainWindow::restoreGeometry(settings.value("geometry").toByteArray()); QMainWindow::restoreState(settings.value("windowState").toByteArray()); - for(; i < trackmodel.columnCount(); i++) + for(; i < htmodel.columnCount(); i++) { width = settings.value("himd_browser" + QString::number(i), 0).toInt(); if(width != 0) @@ -280,105 +75,73 @@ void QHiMDMainWindow::read_window_settings() bool QHiMDMainWindow::autodetect_init() { - int k; - - k = QObject::connect(detect, SIGNAL(himd_found(QString)), this, SLOT(himd_found(QString))); - k += QObject::connect(detect, SIGNAL(himd_removed(QString)), this, SLOT(himd_removed(QString))); - - if(!k) + if(!QObject::connect(detect, SIGNAL(deviceListChanged(QMDDevicePtrList)), this, SLOT(device_list_changed(QMDDevicePtrList)))) return false; - QObject::connect(this, SIGNAL(himd_busy(QString)), detect, SLOT(himd_busy(QString))); - QObject::connect(this, SIGNAL(himd_idle(QString)), detect, SLOT(himd_idle(QString))); - - detect->scan_for_himd_devices(); + detect->scan_for_minidisc_devices(); return true; } -void QHiMDMainWindow::open_himd_at(const QString & path) +void QHiMDMainWindow::setCurrentDevice(QMDDevice *dev) { - QMessageBox himdStatus; - QString error; + current_device = dev; + QObject::connect(current_device, SIGNAL(closed()), this, SLOT(current_device_closed())); +} - error = trackmodel.open(path.toAscii()); +void QHiMDMainWindow::open_device(QMDDevice * dev) +{ + QMessageBox mdStatus; + QString error; - if (!error.isNull()) { - himdStatus.setText(tr("Error opening HiMD data. Make sure you chose the proper root directory of your HiMD-Walkman.\n") + error); - himdStatus.exec(); + if(dev->deviceType() == HIMD_DEVICE && dev->path().isEmpty()) + { + mdStatus.setText(tr("Error opening himd device/disc image , no device path given\nPlease use connect button to set the path to the himd device/disc image")); + mdStatus.exec(); set_buttons_enable(1,0,0,0,0,0,1); return; } - ui->himdpath->setText(path); - settings.setValue("lastHiMDDirectory", path); + if(current_device) + current_device_closed(); - himd_device * dev = detect->find_by_path(path); - if(dev) - ui->statusBar->showMessage(dev->recorder_name); + setCurrentDevice(dev); + if(current_device->deviceType() == NETMD_DEVICE) { + error = ntmodel.open(current_device); + init_himd_browser(&ntmodel); + localmodel.setSelectableExtensions(ntmodel.downloadableFileExtensions()); + } + else if(current_device->deviceType() == HIMD_DEVICE) { + error = htmodel.open(current_device); + init_himd_browser(&htmodel); + localmodel.setSelectableExtensions(htmodel.downloadableFileExtensions()); + } else - ui->statusBar->clearMessage(); + { + mdStatus.setText(tr("Error opening minidisc device, unknown/invalid device type given\n")); + mdStatus.exec(); + set_buttons_enable(1,0,0,0,0,0,1); + return; + } + if (!error.isNull()) { + mdStatus.setText(tr("Error opening minidisc device:\n") + error); + mdStatus.exec(); + set_buttons_enable(1,0,0,0,0,0,1); + return; + } + + ui->DiscTitle->setText(current_device->discTitle()); set_buttons_enable(1,0,0,1,1,1,1); } void QHiMDMainWindow::upload_to(const QString & UploadDirectory) { - emit himd_busy(ui->himdpath->text()); + QMDTrackIndexList tlist; - QHiMDTrackList tracks = trackmodel.tracks(ui->TrackList->selectionModel()->selectedRows(0)); + foreach(QModelIndex index, ui->TrackList->selectionModel()->selectedRows(0)) + tlist.append(index.row()); - int allblocks = 0; - for(int i = 0;i < tracks.length(); i++) - allblocks += tracks[i].blockcount(); - - uploadDialog->init(tracks.length(), allblocks); - - for(int i = 0;i < tracks.length(); i++) - { - QString filename, errmsg; - QString title = tracks[i].title(); - if(title.isNull()) - filename = tr("Track %1").arg(tracks[i].tracknum()+1); - else - filename = tracks[i].artist() + " - " + title; - - uploadDialog->starttrack(tracks[i], filename); - if (!tracks[i].copyprotected()) - { - QString codec = tracks[i].codecname(); - if (codec == "MPEG") - { - checkfile(UploadDirectory, filename, ".mp3"); - errmsg = dumpmp3 (tracks[i], UploadDirectory + "/" + filename + ".mp3"); - if(errmsg.isNull()) - addid3tag (tracks[i].title(),tracks[i].artist(),tracks[i].album(), UploadDirectory+ "/" +filename + ".mp3"); - } - else if (codec == "LPCM") - { - checkfile(UploadDirectory, filename, ".wav"); - errmsg = dumppcm (tracks[i], UploadDirectory + "/" + filename + ".wav"); - } - else if (codec == "AT3+" || codec == "AT3 ") - { - checkfile(UploadDirectory, filename, ".oma"); - errmsg = dumpoma (tracks[i], UploadDirectory + "/" + filename + ".oma"); - } - } - else - errmsg = tr("upload disabled because of DRM encryption"); - - if(errmsg.isNull()) - uploadDialog->trackSucceeded(); - else - uploadDialog->trackFailed(errmsg); - - QApplication::processEvents(); - if(uploadDialog->upload_canceled()) - break; - } - uploadDialog->finished(); - - emit himd_idle(ui->himdpath->text()); + current_device->batchUpload(tlist, UploadDirectory); } QHiMDMainWindow::QHiMDMainWindow(QWidget *parent) @@ -386,22 +149,25 @@ QHiMDMainWindow::QHiMDMainWindow(QWidget *parent) { aboutDialog = new QHiMDAboutDialog; formatDialog = new QHiMDFormatDialog; - uploadDialog = new QHiMDUploadDialog; + current_device = NULL; detect = createDetection(this); ui->setupUi(this); ui->updir->setText(settings.value("lastUploadDirectory", QDir::homePath()).toString()); set_buttons_enable(1,0,0,0,0,0,1); - init_himd_browser(); + init_himd_browser(&htmodel); // use himd tracks model as default init_local_browser(); read_window_settings(); - ui->himd_devices->hide(); + ui->himdpath->hide(); if(!autodetect_init()) ui->statusBar->showMessage(" autodetection disabled", 10000); } QHiMDMainWindow::~QHiMDMainWindow() { + if(current_device && current_device->isOpen()) + current_device->close(); + save_window_settings(); delete ui; } @@ -454,8 +220,9 @@ void QHiMDMainWindow::on_action_Format_triggered() void QHiMDMainWindow::on_action_Connect_triggered() { int index; + QHiMDDevice *dev; QString HiMDDirectory; - HiMDDirectory = settings.value("lastHiMDDirectory", QDir::rootPath()).toString(); + HiMDDirectory = settings.value("lastImageDirectory", QDir::rootPath()).toString(); HiMDDirectory = QFileDialog::getExistingDirectory(this, tr("Select directory of HiMD Medium"), HiMDDirectory, @@ -464,21 +231,13 @@ void QHiMDMainWindow::on_action_Connect_triggered() if(HiMDDirectory.isEmpty()) return; - index = ui->himd_devices->findText(HiMDDirectory); - if(index == -1) - { - ui->himd_devices->addItem(HiMDDirectory); - index = ui->himd_devices->findText(HiMDDirectory); - } - ui->himd_devices->setCurrentIndex(index); + index = ui->himd_devices->findText("disc image"); + ui->himd_devices->setCurrentIndex(index); // index of disk image device + dev = (QHiMDDevice *)ui->himd_devices->itemData(index).value(); + dev->setPath(HiMDDirectory); + ui->himd_devices->setItemText(index, QString((dev->name() + " at " + dev->path() ))); - if(ui->himd_devices->isHidden()) - { - ui->himd_devices->show(); - ui->himdpath->hide(); - } - - open_himd_at(HiMDDirectory); + open_device(dev); } void QHiMDMainWindow::on_upload_button_clicked() @@ -506,67 +265,60 @@ void QHiMDMainWindow::handle_local_selection_change(const QItemSelection&, const } if(localmodel.fileInfo(index).isFile()) - download_possible = trackmodel.is_open(); + download_possible = current_device->isOpen(); ui->action_Download->setEnabled(download_possible); ui->download_button->setEnabled(download_possible); } -void QHiMDMainWindow::himd_found(QString HiMDPath) +void QHiMDMainWindow::device_list_changed(QMDDevicePtrList dplist) { - int index; + QString device; + QMDDevice * dev; - if(HiMDPath.isEmpty()) - return; + /* close current device if it is removed from device list */ + if(current_device != NULL && current_device->isOpen() && !dplist.contains(current_device)) { + current_device_closed(); + } - index = ui->himd_devices->findText(HiMDPath); - if(index == -1) - ui->himd_devices->addItem(HiMDPath); + ui->himd_devices->clear(); - if(ui->himd_devices->isHidden()) + foreach(dev, dplist) { - ui->himd_devices->show(); - ui->himdpath->hide(); + device = QString(dev->deviceType() == NETMD_DEVICE ? dev->name() : dev->name() + " at " + dev->path() ); + ui->himd_devices->addItem(device, qVariantFromValue((void *)dev)); } - if(!trackmodel.is_open()) - { - index = ui->himd_devices->findText(HiMDPath); - ui->himd_devices->setCurrentIndex(index); - open_himd_at(HiMDPath); + if(current_device) + ui->himd_devices->setCurrentIndex(dplist.indexOf(current_device)); + else { + if(dplist.count() > 1) { + ui->himd_devices->setCurrentIndex(1); + open_device(dplist.at(1)); // open first autodetected device + } } - } - -void QHiMDMainWindow::himd_removed(QString HiMDPath) +void QHiMDMainWindow::on_himd_devices_activated(QString device) { - int index; + QMDDevice * dev; + int index = ui->himd_devices->findText(device); - if(HiMDPath.isEmpty()) - return; - if (ui->himdpath->text() == HiMDPath) - { - ui->himdpath->setText(tr("(disconnected)")); - ui->statusBar->clearMessage(); - trackmodel.close(); - } - - index = ui->himd_devices->findText(HiMDPath); - if(index != -1) - { - ui->himd_devices->removeItem(index); - } + dev = (QMDDevice *)ui->himd_devices->itemData(index).value(); - if(ui->himd_devices->count() == 0) - { - ui->himd_devices->hide(); - ui->himdpath->show(); - } + open_device(dev); } -void QHiMDMainWindow::on_himd_devices_activated(QString device) +void QHiMDMainWindow::current_device_closed() { - open_himd_at(device); + QObject::disconnect(current_device, SIGNAL(closed()), this, SLOT(current_device_closed())); + + if(current_device->deviceType() == NETMD_DEVICE) + ntmodel.close(); + + else if(current_device->deviceType() == HIMD_DEVICE) + htmodel.close(); + + current_device = NULL; } void QHiMDMainWindow::on_download_button_clicked() diff --git a/qhimdtransfer/qhimdmainwindow.h b/qhimdtransfer/qhimdmainwindow.h index 85be8ae..c08d465 100644 --- a/qhimdtransfer/qhimdmainwindow.h +++ b/qhimdtransfer/qhimdmainwindow.h @@ -6,14 +6,9 @@ #include #include "qhimdaboutdialog.h" #include "qhimdformatdialog.h" -#include "qhimduploaddialog.h" #include "qhimddetection.h" -#include "qhimdmodel.h" -#include "../libhimd/himd.h" -#include -#include -#include -#include +#include "qmdmodel.h" +#include "qmddevice.h" extern "C" { #include @@ -36,22 +31,20 @@ private: Ui::QHiMDMainWindowClass *ui; QHiMDAboutDialog * aboutDialog; QHiMDFormatDialog * formatDialog; - QHiMDUploadDialog * uploadDialog; QHiMDDetection * detect; - QHiMDTracksModel trackmodel; + QNetMDTracksModel ntmodel; + QHiMDTracksModel htmodel; QHiMDFileSystemModel localmodel; QSettings settings; - QString dumpmp3(const QHiMDTrack & trk, QString file); - QString dumpoma(const QHiMDTrack & trk, QString file); - QString dumppcm(const QHiMDTrack & trk, QString file); - void checkfile(QString UploadDirectory, QString &filename, QString extension); + QMDDevice * current_device; void set_buttons_enable(bool connect, bool download, bool upload, bool rename, bool del, bool format, bool quit); - void init_himd_browser(); + void init_himd_browser(QAbstractListModel *model); void init_local_browser(); void save_window_settings(); void read_window_settings(); bool autodetect_init(); - void open_himd_at(const QString & path); + void setCurrentDevice(QMDDevice * dev); + void open_device(QMDDevice * dev); void upload_to(const QString & path); private slots: @@ -64,14 +57,11 @@ private slots: void on_upload_button_clicked(); void handle_himd_selection_change(const QItemSelection&, const QItemSelection&); void handle_local_selection_change(const QItemSelection&, const QItemSelection&); - void himd_found(QString path); - void himd_removed(QString path); + void device_list_changed(QMDDevicePtrList dplist); void on_himd_devices_activated(QString device); + void current_device_closed(); void on_download_button_clicked(); -signals: - void himd_busy(QString path); - void himd_idle(QString path); }; #endif // QHIMDMAINWINDOW_H diff --git a/qhimdtransfer/qhimdmainwindow.ui b/qhimdtransfer/qhimdmainwindow.ui index b55845f..f394d92 100644 --- a/qhimdtransfer/qhimdmainwindow.ui +++ b/qhimdtransfer/qhimdmainwindow.ui @@ -35,7 +35,7 @@ - HiMD path + <html><head/><body><p>minidisc device (path):</p></body></html>
@@ -52,6 +52,20 @@ + + + + + <html><head/><body><p><span style=" font-weight:600;">disc title:</span></p></body></html> + + + + + + + + + QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed @@ -174,7 +188,7 @@ 0 0 784 - 18 + 20 -- 1.8.0.msysgit.0 --------------020303080300030105010904 Content-Type: text/x-patch; name="0007-changed-qhimdtransfer-project-file-to-use-all-the-ch.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0007-changed-qhimdtransfer-project-file-to-use-all-the-ch.pa"; filename*1="tch" >From 0fab7c133c0414da600fe496878b0e4c13bb577e Mon Sep 17 00:00:00 2001 From: Thomas Arp Date: Sat, 26 Jan 2013 21:16:23 +0100 Subject: [PATCH 7/7] changed qhimdtransfer project file to use all the changes for netmd integration --- qhimdtransfer/qhimdtransfer.pro | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/qhimdtransfer/qhimdtransfer.pro b/qhimdtransfer/qhimdtransfer.pro index 236b5e9..ad6c396 100644 --- a/qhimdtransfer/qhimdtransfer.pro +++ b/qhimdtransfer/qhimdtransfer.pro @@ -49,8 +49,10 @@ HEADERS += qhimdaboutdialog.h \ qhimdformatdialog.h \ qhimduploaddialog.h \ qhimdmainwindow.h \ - qhimdmodel.h \ - qhimddetection.h + qhimddetection.h \ + qmdtrack.h \ + qmdmodel.h \ + qmddevice.h FORMS += qhimdaboutdialog.ui \ qhimdformatdialog.ui \ qhimduploaddialog.ui \ @@ -60,8 +62,10 @@ SOURCES += main.cpp \ qhimdformatdialog.cpp \ qhimduploaddialog.cpp \ qhimdmainwindow.cpp \ - qhimdmodel.cpp \ - qhimddetection.cpp + qhimddetection.cpp \ + qmdtrack.cpp \ + qmdmodel.cpp \ + qmddevice.cpp win32:SOURCES += qhimdwindetection.cpp else:SOURCES += qhimddummydetection.cpp RESOURCES += icons.qrc @@ -77,6 +81,7 @@ mac:ICON = qhimdtransfer.icns win32:TARGET = QHiMDTransfer mac:TARGET = QHiMDTransfer include(../libhimd/use_libhimd.pri) +include(../libnetmd/use_libnetmd.prl) # Installing stuff translations.files = $$bracketAll(LANGUAGES, qhimdtransfer_,.qm) -- 1.8.0.msysgit.0 --------------020303080300030105010904 Content-Type: text/x-patch; name="0008-removed-unused-include-QMetaType.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0008-removed-unused-include-QMetaType.patch" >From 22900b2c65dad92c3dd1c854e598c3f86c846daf Mon Sep 17 00:00:00 2001 From: Thomas Arp Date: Sat, 26 Jan 2013 21:31:56 +0100 Subject: [PATCH 8/8] removed unused include --- qhimdtransfer/qmddevice.h | 1 - 1 file changed, 1 deletion(-) diff --git a/qhimdtransfer/qmddevice.h b/qhimdtransfer/qmddevice.h index 3be6c36..b7f3a97 100644 --- a/qhimdtransfer/qmddevice.h +++ b/qhimdtransfer/qmddevice.h @@ -3,7 +3,6 @@ #include #include -#include #include #include "qhimduploaddialog.h" -- 1.8.0.msysgit.0 --------------020303080300030105010904-- From manner.moe@gmx.de Sun Jan 27 16:39:35 2013 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1TzUKU-002yRa-6O>; Sun, 27 Jan 2013 16:39:34 +0100 Received: from mout.gmx.net ([212.227.17.21]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1TzUKU-003HAv-28>; Sun, 27 Jan 2013 16:39:34 +0100 Received: from mailout-de.gmx.net ([10.1.76.2]) by mrigmx.server.lan (mrigmx001) with ESMTP (Nemesis) id 0MPb5D-1U3dBt2uDR-004mwO for ; Sun, 27 Jan 2013 16:39:32 +0100 Received: (qmail invoked by alias); 27 Jan 2013 15:39:32 -0000 Received: from dslc-082-083-136-166.pools.arcor-ip.net (EHLO [192.168.2.100]) [82.83.136.166] by mail.gmx.net (mp002) with SMTP; 27 Jan 2013 16:39:32 +0100 X-Authenticated: #17747474 X-Provags-ID: V01U2FsdGVkX1+jSUpBo86jDXByGZabw3qiuVrGaXvBfsSaONywQV D+nLm/txTU5Zb+ Message-ID: <51054A2F.5040403@gmx.de> Date: Sun, 27 Jan 2013 16:39:27 +0100 From: Thomas Arp User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130106 Thunderbird/17.0.2 MIME-Version: 1.0 To: linux-minidisc@lists.fu-berlin.de References: <50FF369E.2050708@gmx.de> <50FFF852.7090609@physik.fu-berlin.de> <20130123161008.50880@gmx.net> <51000EC7.3040805@physik.fu-berlin.de> <20130123165719.22490@gmx.net> <5103034A.8010805@gmx.de> <51030789.7080705@gmx.de> In-Reply-To: <51030789.7080705@gmx.de> Content-Type: multipart/mixed; boundary="------------030804040005040203010208" X-Y-GMX-Trusted: 0 X-Originating-IP: 212.227.17.21 X-ZEDAT-Hint: A X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1359301174-00000B1F-2696984A/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.349663, version=1.2.2 X-Spam-Flag: NO X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE X-Spam-Checker-Version: SpamAssassin 3.3.2 on Burundi.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [linux-minidisc] qhimdtransfer windows autoupdate feature X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.14 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 15:39:35 -0000 This is a multi-part message in MIME format. --------------030804040005040203010208 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi, WinSparkle asks the user for update checks at application start, but it doesn't perform these checks. It just saves the users answer in a registry entry. We need to read this entry and then perform the check if choosen by the user. Thomas --------------030804040005040203010208 Content-Type: text/x-patch; name="0004-check-for-updates-at-application-start-if-the-user-a.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0004-check-for-updates-at-application-start-if-the-user-a.pa"; filename*1="tch" >From 684198b1480eb8cd0b18b0a462309ab2678e9d85 Mon Sep 17 00:00:00 2001 From: Thomas Arp Date: Sun, 27 Jan 2013 16:30:43 +0100 Subject: [PATCH 4/4] check for updates at application start if the user applied to this winsparkle option --- qhimdtransfer/qhimdmainwindow.cpp | 2 -- qhimdtransfer/qhimdwinupdate.cpp | 9 +++++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/qhimdtransfer/qhimdmainwindow.cpp b/qhimdtransfer/qhimdmainwindow.cpp index 70494ab..ed64bb2 100644 --- a/qhimdtransfer/qhimdmainwindow.cpp +++ b/qhimdtransfer/qhimdmainwindow.cpp @@ -400,8 +400,6 @@ QHiMDMainWindow::QHiMDMainWindow(QWidget *parent) ui->statusBar->showMessage(" autodetection disabled", 10000); update = createUpdate(); ui->action_Update->setEnabled(update->is_active()); - if(update->is_active()) - update->check_for_updates(); } QHiMDMainWindow::~QHiMDMainWindow() diff --git a/qhimdtransfer/qhimdwinupdate.cpp b/qhimdtransfer/qhimdwinupdate.cpp index cae25dd..bbce050 100644 --- a/qhimdtransfer/qhimdwinupdate.cpp +++ b/qhimdtransfer/qhimdwinupdate.cpp @@ -1,4 +1,5 @@ #include "qhimdupdate.h" +#include /* a sample appcast rss feed for qhimdtransfer can be found on my web server for testing * TODO: create release notes html site, so winsparkle can display it if an update is available @@ -24,6 +25,7 @@ QHiMDUpdate * createUpdate() QHiMDWinUpdate::QHiMDWinUpdate() { + QSettings s; wchar_t org[strlen(ORG_NAME)+1], app[strlen(APP_NAME)+1], vers[strlen(VER)+1]; size_t t; @@ -36,6 +38,13 @@ QHiMDWinUpdate::QHiMDWinUpdate() win_sparkle_set_appcast_url(WIN_APPCAST_URL); win_sparkle_set_app_details(org, app, vers); win_sparkle_init(); + + /* winsparkle asks the user for automatical update checks at first start, but it does not + * perform the check. It just saves the users answer in a regirtry entry. + * Read this entry first and check for updates if choosen + */ + if(s.value("WinSparkle/CheckForUpdates", false).toBool()) + win_sparkle_check_update_with_ui(); active = true; } -- 1.8.0.msysgit.0 --------------030804040005040203010208--