Descriptors comparison (oldschool vs newschool)

(the bufview.js should be part of the FluCoMa package, but either way it’s not integral to the way the patch works)

Yeah, I appreciate that it’s a different paradigm interface, which I don’t find optimal, but it’s not huge problem. I’m just trying to see what the practical cost of the paradigm is as I think there will be a performance hit/limit regardless of optimization since it has to go in and out of Max-land and buffers a whole bunch for each step.

I’m working on a comparison patch between using an even smaller analysis window (256frames vs 512 in the posted patch) to see if that makes up for some of the loss in speed/performance. I have to play with it more though because it is super spike-y in terms of CPU (getting 40ms delays in the middle of everything else).

I don’t know if the deferlow mucks things up for the purposes of timing, but I’ll post what I have as soon as I get it working.

Hmm, I don’t know if other things have changed in the code in this latest update, but in testing it now with alpha07 and sans derferlow the performance is significantly slower. Like 500x slower…

If someone can test the patch I posted above to compare that would be useful, but this seems pretty crazy.

edit: it looks like removing the deferlow slows things down. Even with the deferlow in, it’s still much slower than before (taking 5ms instead of 0.5ms).

I wonder if using deferlow makes it actually faster or if it just reports it being faster due to how slop is calculated?

OK I compiled again with all optimisation on, and I get the same results as you. What I cannot get is the quicker version you had when I revert to alpha06! Do you have the code you used to use? Also, I’m sure @weefuzzy will have some wisdom here…

It’s the same as what was posted before. I just ran it with the plenary version of alpha06.

Well, first thing is to see if any version gets back to prior performance, so try Alpha 5.

Then, rather than guessing, you can use Instruments to check the heaviest thread with each behaviour, and then we’ll know what the culprit is.

I went back and tested with the very first patch in the thread, which I did many times before, and the best I can get is in the 5ms range. It’s slower without the deferlow (surprisingly), but not significantly slower. More in the 7ms range.

Is the fancy sounding thing about Instruments to @tremblap or me?

To @tremblap :smile:

If you have the old binaries, it would be good to make sure that the performance really is that much better with them. Otherwise, we can quite quickly test against a previous version, I think.

Interetsingly, for me your patch inevitably crashes max after a short while (in bufloudness~), which might be an indicator

Hmm, that’s interesting. I’ve not tested it for larger bits of time, especially in alpha07, so maybe there’s something else going on.

Also the initial version of the patch would sometimes try to analyze outside the window, but that was fixed in more recent examples.

I don’t have the older versions handy anymore, but I can try to download them off the huddbox (if they are still hosted and the links still work)

@weefuzzy the loudness object was not in alpha05 - I tried with alpha06 binaries, and cannot reproduce the performance. I’ll leave you to investigate the crash since I don’t have it…

@rodrigo.constanzo next time please do not edit to latest version - just add a new post, so we can use the patch exactly as it was. I’m not sure what values you got in the best case of alpha06 and I can only get similar values now, which I agree with you are not good… but that might be suboptimal user use…

All I did was update the @winsize attribute, I didn’t actually change the code itself. Was just to make it easier to test now. You should be able to roll back my post to a previous version on the forum either way.

I got that 0.5ms time at several steps of the process, including when I posted the completed “comparison” patch. From my original post it looks like I was getting 1ms before I optimized things a bit more (and used @algorithm 1 instead of @algorithm 2).

Did you test it with the version shared at the plenary? As alpha06 refers to a couple diff versions now…

Pfft.

Alpha06 is now only what you guys were given. And yes, I tried the exact download. I cannot go back to the original values, so feel free to post the code that gives you the values that were ‘only’ 15 times slower, if you can reproduce with your Alpha06 version.

The posted code is exactly the same. I can re-edit it to have @winsize instead of @windowsize if you want, but nothing else is different.

I don’t have alpha06 anymore, but I’ll try to download it now and test.

thanks. I did that and cannot reproduce your good results, hence asking…

Did you delete the alpha06 thread and link? I can’t seem to find it on the forum search.

Never mind, found it in my trash.

I do get the much faster performance in alpha06:

(well, not faster, just not as extremely slow)

I’m using this code right to test with it.

edit: IMPORTANT. I am using Max 8.0.5


----------begin_max5_patcher----------
18246.3oc68s+iiiict+bO+UH3rHXljd7v2OtIaPe2I2r2.raRtXARPvNAMb
UVtJusKKG+n6o2Eo+a+RJJYqGTRT1hxp5g8tSUtrjsH+H4gmygmy46u7MuY1
CI+b7gYQ+uh9iQu4M+ku4MuI8szuwax962L6kE+7iaVbH81l8R7gCKdJd1aM
Wa2hiO975sO898wOdz78fA34f2FQDB8un.8OQn4fn+qrOy1Surd6l3ioegnK
uYxoi4uKL6cWuL8gl7ve56gh7mo49N94cwlG3rYQ+W5q7+7Mei9Gu0wdx13O
o9dy+ROF+yos+YKiWEueSxmZoGRM8LHK8Wj16fPW6fCc+qxH04N3ljEKeXw1
mZoCBAHroWgR6hhgZLjzZmL6RO7ziIaR1adevbofgHL.QR.DHg7V0aA.bHBv
EBfjiEnz2BwIXBTHDbDkydaDrPqM6aDMfekOsewx0waOVrm9vSqVuYS5i584
8rYl9hk6H8mvAsWV4K+b+M8yl+iV+Hdp4nltsIENPbs7.K2voiIEgT620t8I
6R1ebcxVy8PGtk8Ged8gzUBw6cYgAkq+EieMq8Q1VXPadgwaKt33vhOleg+p
+E8kJ0vil82o+we0+O8Oi2tz7NCp3iCGWr+XDPAEp+eKPEmHmyfPIVP3LJCQ
eaDlOW8SNcnjl.YijHy79LR++6WelIG39Leb1Fb2lEe9KQaSVe3LbrJY6wsK
dwHV6+890K1zOnPlteIGMTqYtnQftkcX8eNskAQmEcTCgNr9os5VczrzM.GR
75u4KQz48COf3T.ASFr4FMKDIqmOj83CK9zWh371VOHEn4RHWPXLtjI3mmDv
FLsBw.uzmaRR.PusGMhpDFPAstQATTsqSS25XvDEHAijzOW6yJs.l6i9Ibbj
3sY813uz5PJUZe170sB1lHMLb1cP1UW8bIRL2K8Vzr6hj59IwJSLsoyOHhrv
ioX5V6tB0Z0h8wAaqHLYL6iO94G2D+Ek.HfC80rcfFtgS5ntCjq5eyTZaWQg
iAVvrfOwT+1RWVBG1tL60g12VPhrk3Cl52b98P66VzQAMOUEkVmgPILs4XzT
PPYZ1PIBfMlphAfc2QIT3kNp.MXcT9zPWrrwQyp6ATgDwTT8qrwxAuyJmbZe
QAoBpyDUoLRjNPtcFLYz3hjJgLuKRECVWDNlcwcq29AG5kYSYECzIj3Ia8e3
zwiIaa6DsHn4TAVRwRy+Hxy1CPx+4M12fDzkVvd097Gi2+93sKdv327F2Tcv
Wf93l0O15XqUzH2WVxAZnlvF0oyQptWx9k+KEU3xlZUJQRUTqh.EyIRImpfD
pDyoZzPfaGF.VgAfkYEHQolS79rNWVuSo705MweLd+gryDICJeyrE61U3seS
gOhFR9SlS5Q71yu05sl2Bb9s1G+w04ed542cwdEnbTgHm1aTE8mY4l5o+ZRV
Fue6o0oMEyapFbxZRoCCZUXOrawilOrdzJ+xE1FHcVDDjt1hQ.liSFbAM0mJ
zljG+P7xhM4YI6h2td6t8wGh2dbw4iIJ+xKiWs3zliu2t9pku9prVn0KZUMb
8QBtdYxVcinzHg9syeb+wHnYGNZwNS5crcwNKeX0j.ErzvEU1Ec7zgGVrWOP
kIn.kewiIIaJeoyetMwqNlcYkf7sUPwiI6Z9h6W+zys7YeHQcwWZ66N8JGd+
oslq9d0bhiuO+PstbeK1rIasZ4u9edw10ur3X7w0lg.D37EMBKe9vi6S1roT
+0bkOZ4JKUyweL9SqWd74Rm5n9Jpae8t7IQyNOJub8SwGNV98Nt3oCkemCG+
rAzK7VmdHaM76OF+hxBuiUtgRwhQwErEkpU58a0pgxh3TKueYwF0zPUmu3Mz
774lbCJwLCFltrjWyMJMpDSyB9qYZonZKzxx01LB4M46LjI.5JwyR6VTOHJz
vcD7l.SSzw.A.6ll23Fn8.KkSdrrnxjWGLZ1uEhSU2j.7.Ld1yh8FFKoth+A
SihLk8cz0ApF2i.MGUmfzMnh6MnBek.pObZ0p38Yfpd4JXPDgZzYNSR50NgE
0.1htVrckR11wJ19WAhun5h12EMrmUZGWec6X+gjS6eL+YluDKpLDn1D935s
m0j6OdYZi9FcZruusBs7xIPqP3Zq.0XqH6My0+NMxgV9diBkuewwi6WqL70L
3Uzfhdo3iRK7GVrISslyqArnWz2bow0SS1dL4kWzAEVUa1fyi9m1b5GS98Kh
9Tx9Onl09onuMuwmr+v2+OnV0p9v6RND+8+CZUkO7c+zVz7n+P7FEBr9iwc8
4e7zdkNZKir88fs88jdwF9Rx+fj4Q+6JcX2rYQTg6Ku2omh7XxISLvQZwQYF
epP3f4JCvobDWYMNvDjURYdDVzGavsZ7Ie1.NfowvSFyxhRUe2VeF0x42ARO
9Nkk1oQTUZn2g4CPu77428voGJapT16bX8xz2EOngKDrsig1r2qv3TkAKXYP
94jmaZD+ed6w38Kd7XzmVe74nC5UKIaODkrJ53ywQoca0qVbLZw93n0aidXy
o348cZACl4rECjYznFiGf4EvYCoGldZ+h0a+21r3y4WqT71RT5T.HB.AhIXl
TeLOB86foBjDxPL86HkBIVBoLJFgDhxgaqM8LvXSH3KpIkfcUNpyFLAk+R2C
UDjwM2TXvCUAOTE7PUK1XUdmhxhH0xFS2XPC3Fwky+os+z1uUGg6o5ncH5AU
GKZ8pnOmbRoQURte6Uh8z6en+vun9XYasjn968eRawl912u9vGhzwUg9lWDs
ew1kIujuoT9dRZYUeWwVWocg3saVGBUzaNPSz1j9WWicc.610glMfl7V5juZ
LxkMx5xNEuZm2U68IcGJEBGx85b2CCPDobuqwSVqySWy+dY3uMBBmyfc47.L
uv3AQ3A+udIwJZyCAiErbXwK6Tq0e4vW5kyT4dvoJWhv9thahwEhTZq7gHST
xsR8+bYZT1pZNdNiwvBX1oWpwOGboOo+SofyFOmMG+mWt3wu3DBfTlSBKi.F
uyQnW2ZJPS..e1HMYHM1AOl5tnmbCCfoQZiKmkSuWxfbcEyvKpMsU6jLCyQF
fO+yl6+f9OwW3jrzB2StRREU8J8ac6x3etfcK92kr5AOmbCYZZoU4NU5kYLF
D5EWj1y1FzdaC3k1VpZGN137oajSm74X6f501AqW3AxasCZsoBM0NXMOgFb2
abvlmQC8TiC53HHh909IRrY8GimmtcaV+3iKt7jpcwdE29nLkuLmjMENXoJK
osfKD1y.4ubFoW4nmK55yrArxWvLped3tkA9OtXyo3jU0cO3kNwljsO0H1W5
NWuc8QE3WuaW5tdQMR2z0x9FxLC6xRgB2xgmS1ezs1SrZTKCOU8S8pK8uQyr
98lC9nuo3ZpA87zrbZTVSi4zSeQZzUha7FPmG0TQ+U1COKCFxieZ0lSqWN2s
dIVnLKBwPBntRWHfnKcYno513q9LPNnG5vKm1bb8gMqU6M7uuN9Si2QOHQYw
CLtp0UxqpXxXEqH+R+jGfbS4HgxHgidHbzCgid3JO5gUpmmxn4Cc55UAzTgC
fjBk9KmcvuksD5gCj.Co+iZCMdTcg8IqW1AZHMQmPNVvFQrPNVPwt0ptcWtP
RJmitLov3d9QBHDiEPrI4zRWVgHQyu.EL3HBE7wBJpqBYinAyrMMVoyCBgY3
LUI4iobC5XgKMofcWnCTRJgNVzv1ivCYHgmBpa2UmGAYoakfUJYUr2iEFyLj
UcC+g3ip9el4o+wHcRsN2jN3tgRpO+48cw80K9L9McLpYNL39hzPf30.RKd0
hzBTZdpesynMgAeJXOF3r70NNesymGWblClX3bKmb5os+oj0aiHcf+Fmyx3k
PeFz5gm975kKKaXZONRUZCScaO5LRgrh+2DC9fTLMUf7cDAo2QDz8E5DDK0x
hWIRTQuZknlCzuNDoxHuZAZinyqVmWwHpHFU9JGkuZ8cGUTdpotqKAMjAeUZ
gYp+IJ3kn+M1WgPD.0UrycqQOjOQqy62Oh.FdHALzXEtUZE6zw9RmwXAudpx
VPMIuD.HosMrCsMl39z1bIvYXj6Sayk3lgdGvMpiy2Xx6Sayo4a76Sayo4an
6Sayo4ai+XZpbYmZbV5E9uwgbsww5Yi6qj3dqwnLw34+GNs5i2kXLgJpFiIB
5PU+0.veAFiIHQVbXjUeRHlfLASCAYRHHSBAYxUVA1T1IapiPQoQUv6SqHHn
tL0TZpyEn4JbF.QH.GfMGSJB4iT+iMhooUOPKGwIkDqp3jD3AXBAllvTulTo
94HMoBMQQKklWu3HXAQv5nEj6CzB+pdInt3lMJqA6HWbuG3TdTRYVFh6BvvM
IZmP8.dImrvka.kEY6PH1Ko+9DehExI7xl3cuLwhMcgKmDviaT9NwGxs3SV3
xQjxh.d+rPTLkUxxwcCE1.KeTzjkfItTK2lbYCuvdoHmLg0I0s4VHfzxbKeH
xR.l1h3cZpkU3B6C4Vio4NtTixAykckCCYUPaFQGYgBeTAsGSqZVsIQmcst0
mkoLzL0dedktr4m9AXCVIQgb6AJ0vWrTZaU2G+yIIuD8qftAnH0ZppqyZH19
tskYD7zXc1tH8Jst.GjnIvg3.3z6XffP5QHPT4rMJiCMdFGMcNGU931NuiFN
yilO2itO6ilN+iRmAhCmCRa4aqUtnowSCwgSDwkSEoySFwwSGokSHwsSIoiS
JoySKoySLoiSMo6SNoySOwgSPwkSQoOmjRKmlRmmnR6mpR6mrR6mtRqmvRSm
xh8SZogSawoSbw9otTU.RUYz0tdWxpql.eJEH2j7op2fs.CNi1K3ER22Jxoa
Ugf1kW2ldictmVo80Ju2lmwuy5UVxzkkO6.dh4mUEOsFVJ8LhBekgnOrdWxl
E6ifNfkPNrX4lE3arDgekAlF0VcAJKU4P8ORJmH.o4w5L9fDLcwBkC4TjDIY
hz7W0Z.71WvBzxR3ZS6ZHfcaHJmsfek0noV.7VGVsEKYV.2ZwTVsPrqknJqB
Qtzqg8qs8gvS8FXOZeP7cnABGT.r7DyTcp5Xl4EU8OsbcxeHU452+6i2dp7B
ibyCZu28vSJK81bNv8dSi2oRZalrprv76sUtbof+CIIPnPGgeXHlah0Or5ET
ZknnsvmEdNxAoDI.o+HDFhSnouRfvTbsTTovGGc4YCfRySDHE.h4Up2BVqhh
mYi41mxLJgWVaYyzj8I6R1e1Jt4XYsO+oiIOsewx0YRn.ktdow6xlkZbEj5S
YWUZsracB.U86rsI0mmb76N83hqYBgdO0T778q2psxO9LrhkHXJrhNO9f3BB
1NrVpHHpVM7uprLL5OrX6gn+P7KqeHYyxY09HkieTNEhSG6QRrPZdEEBzgRp
sm20LS97nVGSl64DpxSmEmmDK3.pPXdUi.W0oyLp5gp+LL8+3lWY9FuKylq.
6KdTW6fJgWXTJiHqdAIusqW5SZXfKdS7KU+J3BUW0fY.nPXdk5aCgZZvuzGW
BHPtIjikTBma93Ho4qjxp84OXH1qjskaEH0rsz1OjwQFoOB..RxZD2kE1evj
Of+GZ2hcMKvKzCMFST7G2o9jREUVE+wcyxqL4yX1OrMmwxLWyZyyB53YK26b
FWEfTME6NBjUSPuqYlgR7qZ+Vjr3ZWs3dBEdummT+TKFg4JC+lKE1dHWrd8W
4v1CbgVyn2Z8UM+w+pPWI6RMtsYW1rO9JV8jNWpfdrJrEKumqbLNP42r4TbU
Gj4Vuy117PNiXzG4bGUpeK3DnitO4SaGrd5k9G8rrP7Dom9iedwv0QAHk5Rl
s93XLxHKBAgP78ui9a2GGOf8zzQSr9eF86zZoe+6j+mwa1j7oAqWJTFLwM6H
.Evz82npQXZyVrU3z.Q5aF.D2K.4zKODu+2pLTbvfC8RVP5zapREOZJx.Kta
2coit2nPutmdy66vHLFVlsrkmY3iZ.WhcxtooI.cAettYBULMjCAocLIlv.x
LSC4PpyVIbGPoBemE+B6JshqFUGW0o+1dZFaKUiKqJ2.DIN+oCmVWha6WuI9
bKoTpHO+O4XT5hLTeEljEMfCajuQtwhm48JTTcD6rDQSBhGB2KJbxEVk.TWw
DGBJKDXkRrGBrRxTKvJy6yidfUhDecFXkY.5nEXkH3qn.qTuzZLCrRXHvJGl
.qLKkgjzPjUFhrxPjU9KrHqLOmtDgHqr0HqzBwaznZBYb5rPXT4DFBtxPvUF
BtxWIAWoDGBtxPvUFBtxPvUFBtxPvUFBtxPvUFBtxPvUFBtxPvUFBtxPvUFB
txPvUFBtxPvUFBtxPvUFBtxPvUFBtxPvUN4CtRr+isR5qtPqzxA51B3YIplf
.eT9XgSuxR7gcJzX+hMGddwtX2Jo5bJsoZpN2GLaf.MsQMGwqLh9wKk6ZA80
vDKja.ksZptWlXQDSbTykJqdFnYszpy7gPLhbZiZtBX1pv5dYwIE7ZXwoinl
sRGNyGDdfP9JXwoafl0hhMyKzd.eBl9Fc.RxxkEatOJK1noV5aHuW0Ea3Woo
ugbjqK1H5qnz2PNx0EaLHj9Fgz2Hj9Fgz2Hj9F2P5ajQjXFGGDReiP5aDRei
P5a7K5z2PFReiP5aDReiP5aDReiP5aDReiP5aDReiP5aDReiP5aDReiP5aDR
eiP5aDReiP5aDReiP5aDReiP5aDReiP5aL0Sei7HDzu0Fa1qtD3nTnV5HFZK
MNvXeDAzWSo687yu948bABscJ.E.x5muCnp6+av0+5xidQe+25.YuaEN1Hnd
rMHbsQnWL3uVAcRzJPShVwjXtoXBL2jymBiG7I.Rvl.sAJbJLujBlByIHSBo
lDwjnUPlByKH3IQqv4cPv9rU.mDyKbrQfDdrQfcc.A50VwjPnkyqPPdrQfbU
lEB5yVwjPeSDbBrsNZRntIZBfDPmmZ50VwTPeSHaJLo.RmDsBxTX.YRndCDM
IZESAwl2da3hispGunWZWNDmnV7edgVdCA8PQGJ2bLgdswC5MDKn2Pbf1bbM
zdLMzR7LTzA3u8a518+0c8usIaMDemsOPNDwzYOimyqNVN60rNagXy0GfK2P
bad8wroWl4U.Nuo3y7ViMyaItLuwXxzKK5rG6ksu3yw3szKs2ZQH0UJmns3i
65iiR2igRuANUhURmGIcO9H8VSu1o54iw1gQX7UEqi2PbNdCaAbuzCn9J09O
inZrK1iYytDuhdYlr83Rr8V9sDKh9rSTMlC6cuv43Lzi8hpwSXu6DNGCgdrS
TKVA6euvg3Czicf5wAXu6ANG6ecG2e9oiZM995c2z4fwxKcBqwtWOj61i306
piUOuzwsGSd8nm2i3va5MrebwNW6zULa92s3XRzuSWPZlMDswrui7ufthGvr
1UiwAnsX.ri3+qZr+YT2I8mFHL8YVHR0LsgVJuCWBNsSa+SIq2FkWzmrEIZL
S8ZhyR+U8hKxrmWubYoxRj0H6qRTnkUGpJUSB.4UXK6knsR+mYXYz.AJTM4G
wPBHGKT+TGGd9GQjROCHkJqet1uEXp8hZX8Z6m8985m1lndDaV+3GZFNPVfi
BiPMFtmcVd+FEHBvtSPD8N.Q4kNjpqqxKgQQeqZ00xey28Sa+os6Vq.vz232
+O+O9Oq2z4P56uQ8N5+Zex5kVt7pMKNV7qJ+YoOTfGSNYrHj27fDlhZZPBlU
CqAhBCSNrdEXA8YEwf+zoCGWuZ8imO0Az44.EpJcJYHi1rRI5NMqj+pYgaSE
rUuCQhoHDks2+cShuXRiJ2Kg7PXPHu0bl..MiK7gVtddYDbTDcmO85dIslPm
xK5taBnwSQTgC.yuXJR8RtsqnR2SJP2gteC1q8R7hsNfIHCitTqtCdsH.tQi
wTCSJLV0UWu83f1S+yahdZexocJoXc2gYlEELQ6cXjycXd6VeN.ynarzJ2V2
jfLULZuMWm5z9q1qszizRfcQOt6jt5Fu+lfRfwCFzqYFCzBvYeexV.GyJmyO
1JkM8bmo0P4R2VoRO2ufVJQ5VJO51KM5sWVzsURzO6dwNJE5EKC5nLtGAY3L
AyFZXdAGyZsDn2Q4O2doOGNmJoPASl+Oa2c0hftCE.8FJ94cW3yaonm2ZAOu
0hcdKE571Kx4sVfy6n3l2UgM20hZdCEz7VKl4MWHyatHl2bALue9rtVQK2RA
KuyhUd8BUdey75ZUSHqd+IsLiqLy2T5wy+40jM5fFXfjYkBLuKkRWkFAw6+3
hMQJSZd4Pz5CQ6i0A4P7xHEpTJKvqWkc8KKa7Pop37rVo4.qkJaPpLKtYiXi
7Kvfli+nYMbFpMJPy5lLCO2tzBpp1W9QsT6g.Zg.xER1afwV7vfs4afONf62
qDWcS.alj.SIo.mZfc63Z+qiBuFw0aUTfQYbOJIf9KUIADiur7nf.1jcBa0x
rYKRJIbW2Zu279T6rOW1LpF18We0nCJsKODozdS0xiVrcYlF.JkAxzMvpR.n
QFHMKg8HNJtcbbgF0x.xVAO3XUqZlDUhCWyLxIPMvPmtdPeU8IbrMLExqd3T
HUxm.oLLtkLvy+wcka9H49EcVGi1D8PamfMVX3POCQRmR6lCfmtojYipyLOF
s1ktIkZn4JDZn5mzF6mZG46G+19Os4zOl76W7uj7aNs5GSdYWxgbm.TN5Mo.
njx3LfPfw3znKVOojgjHpDBLY3G.CAXIjhPRBVVNEOZaBiwuupO20b1H1b7K
q4YL+Rz4tlShACxHkaBwbvLTu3bWzbPvctA249Ug6bayb5Mq2o5do7YeG1xP
gx457JgS.l+oSzGpZ0HSmPqLbVvdwbfVtw2jOKueTn7J0j3nqCnHrp.Eg5A9
KmLM.JSsY8KkKNquWKW5.tSeO.DyoBrjhyTYLcdlDNWskMCJfLBfkVwVY3aA
.af0yEsifmCJgQ0oW4vYZHf4FLJTqCcBEgdAEoSXTLO35tAfjvY0.RLyG.Ia
BCjkWcqLd7kqbwMU8lJwjHNRmRUXdZfFx8.bxDS9U2t.i1WbaCEABefhxWCq
tuZfjPv0ARLzC.IG7ZY08UtvFQMk6jyJ83Gbj.l5KqutUz0fOgOPO7qgkyW2
JYHn57OyY9MzH3caakxIPPiQzailpP3yU3BlByLUQWYhzo0UYSUxB2WvfFcO
b1rwYpzwHPW7BgfLGADpduAEf5baGSkUfADxCVrga2fiKA+7T.nrZZKlBFCf
BJlL.UO7ZBV6X85lOfGCul.gSD+lTJSvabtEH+7HJCMZ8Z6DaH8Fa.xoA1rK
N9CWkiRruVThqtimKvWumZIwyF43Vo8c5Vtty85vD1bkt7RLHaknYutpS2xR
AhgcuNIZ1XAEK940ubNWPZbCO1bITfnhrjzEQzdnTWYDABBBInPZpSMxJCCC
KXH3ylRtq0tDZLdLbWKmNMDBcLhdMnzHohDGOgTQh4z1XDExTcwjWvFJXxfM
MuSVmfFimt5p9pNHyG6dQjylNgIrA15gq8suTTxpBc.oOfNwjC55m+7yVepf
qpqOgXjG.LLcBAXm4bxTn5KQuyDiYU70m5s0W19R42kFwnqzovYDH5cJLH80
Gh3csFGvJYjMPWN0QpwAJVMoEf4vLesRIHO3iFDs6Pk8si4YI2vPgwcg4CAE
EKTB5Qkf9z+3wm0k0bX1so+qx1yWphOfuBYLHZ8AKjQuHhbPGrfxWGCVm8NY
93UEYQsrZYvGxxpSALY8wHSJNLziQr6vXTal9btHn7CJIW6iWj9hOD+ozpex
OD8gS6OlbXs9k6S1jrZk5EmKNJ+Pzi60guSSXOpKYaf5x1zm0AtxgDaRLYMW
yNj4II.LVlWdtvz7CQG2eJdW7hOzoX+zbsgPpgEYQdv.aoMerfBS83QMwIY6
p0Ki29XWrOLFymqvAg.Aw.AUhDb6.C.4CfgNj.Sqby7EQd+J3aiLBBbPzkZZ
b5uf9fIlwrIRHjcdmjhJWcYGkioQz+SQuaU7BcvzdnltYqVc7fpsqtoCZI6Q
LRw8Unk84qq5gA40jUQ49PMLLdhtydtjMKCEeZ8Vcf5lh1u64jco+gF1OOFU
POfO7oXcrvp+fpM7yERVdy+tGjxVQTeTgC8QDcfgSzQkTgr1VcXYQv4QibUn
Wr4oj8qO97Kk0VtB5eypEaYTxvBCCsFWXvcXTxkzbLylZ0OS+WpGHHRcpSfA
lX1ePS5QWbGXC47n2KMDNU5LL3ECBqdN6NfV8die5raEK7RRdJmBYTG20zaD
B8YhdxcFKDSAhFGSmBDMd5I3Fgu2LMNmNEXTZel4qtlFx35yhS1uzjaZf6bS
C1bSCcmaZflaZP+zzn8ZEl2lW45jahWaE3o.EHickbUgro.osCkSfLsGylBz
ktkYwdVnmyMMKr6smkrf5kfEjuHpXW0ffimBbqtDOEn07bk+7D+U2uYF9pXl
bdCs.IVGHw5.IVGHw5.IVGHw52DHw5.IVGHw5.IVGHwZGZ4ARrNPh0s2IBjX
cfDqCjXsO63ARrNPh0Y5+M.kI0NoCMBhMNzgF7UCankCICLanglpjgVV+cnI
CM7zhKzx6k9mKz9ZmJzxQxAlJztLGMPEZApPKT6bK1nB0N2.UnEnBs9EHwAp
PKPEZuIPEZSeQAApPKPEZApPq9t+ApPKPEZApPKPEZApPKPEZdfJzPlxx0PS
EZPzzhJzx5lCNUnAw2OpP6eae7nSDZ4SWxHBMLefHBMXfHzJ4ZWhY8HlKCLg
VvatAu4NrkbhGMhMan33ghdWAMMrPANnqnleQMeoWdC30VHpj5RNQs51FFUk
shHFd3.SGV1JZZUEQBja2aBja2vCTw+7t8Q+pUvn+F0Nw5hVUzOjVh8tJjCW
kqMflcyQ3g0+lhF8BGtXnVOM4LPTfy.uZ3rPEDEE3LvqEEKWWOQANCbXVcmp
vTfy.GBNCDE3Lvae08UCjANCr9paTfy.uok0n.mAdaKmQANCzFBdibFHyDiK
JEYBrDXfk.ctBCOR.Ufk.CrD3ujXIPTfk.CrDX+gh.KAFXIvqXm+.KAFXIPu
sSVDJvRftyRfn.KAdCrDHJvRf2HKAVHXGrSUfnqmLsbjn.wlygZfChgWUDEX
4QglDOzGz2Ny+Isw7ev4bhjfxFkfC9HwqMV.r7fQKBb5y3gQRTcA2HS3UNzP
NahB42gnxBTMprtZpYztDs5QkEVedvE9GTWYMGZZaD8ZYD1bHHkGYqJzqmzg
5fMhZWJY8QTj1GdH0eHyFR0kYpAdD8UyR1ymKS4wTKhO81BUhSbnpkwwLJaZ
XOCHXfAUCLnZfAUCLnZEfIvfp9iAUQ8jAUuY87rQOjlHZYnoGxupoVUTfZUe
yDgZUQ2UpU03vx.0pFnV0.0pZO43clZUoh.2pNNbqJaJvrdTwDnxMDXY1.Ky
FXY12DXY1.KyZoUHF8I2t1xrPgi9dFDbJTri.Sfp9TfRbCTh6aBTh6WUThKZ
Jv63eMQLuCPq31Ig8.6.GXG3.6.GXG3.6.GXG3.6.GXGX+M1FXG3QROf.6.G
XG3.6.GXG3.6.GXG3.6.GXG3eYwNvMVm4yanI6OLdUXdAAVnByyGpBLOgDJv
7EKv7PfoRJpDAZ3+ASPnI.gBLen.yGJv7WYZnGoqzHcVSDoyyxrYHTInTs+K
gn1FU6iSBwG0KqNqsHUavwM5ugFDE1j3vJebahEaPzXyhG6VDYShIq5d1tDW
VQjIAYBd7LtC2TPJv.VUuXXSpoCRNcQ5YmRPcTJZKRRcSZZGRT6TpZmRV6P5
Z2RX6TJqCRZcQZaej31hT2Nk71tz21k.2tT3VkD2jzX6RjaPprSRlsKctpDj
pRoqc8tjVWVhsxffkOT8p138HjbNmBzJylmku5bWDOmxYRFEbo.IPrVKVaUL
d6hxaKhz6LOsJ6CzRVVcqHa8z9qRERJIRIT8C+vi5IicivbC0iYJW5bqkar9
BhflAQ3kjA8NBQq1m7hEqr5FlHonjj6YTRLE.oeLQejIGM4kTJ4mdNGlWsO9
+9T71G+rlJOShdY8x0laPWVNUuwoCZAhQ6Wr8o34Ue.Mk4RMJBPjZQpY8sxd
1btN0SXOaLv9NjNVqbc1XlcYnoLQVN4ZQVY2BDIWq.QzDQfXGf4os8DNklT7
kiMU2y7jlSht8sWnsHYraz7sU9uo.5VyzqFM+hwlq9O1EV5jYHxPHDKjv72D
2jwXC3N4PAwkot15SksPqN10pkZsYslkuplrZqEK2Z25M2rfqMq3pYImiVyU
whtL1.0T72IBy3M2x9oMaTmiF14pwcNYfWOLxqCC8b2XOGL3yIi9bxvOGL9y
MC.cxHPGMDzUiA6qAgcXTnSFF1swgcafX2FI1oghsYrXyFL1hQiNa3XyFOZS
fls8drdeNoppc0Uuna5osqOVPA0sIGiSeu2Fs3Pzmh2rQ+asJq6RIk9iGhT6
Br6zQ65s1otqMq+ZFoNXVeyaR+0N2fqa8XaWW1ZJITWQgwdP6QyfV7xylOrS
8Z8vUmnOxMz2X7.TxlKoTN3rxbJUiERak6HOMTPl5CEUsI9xBogcnvrNPJFQ
rGM4WFjY2793EGR1dw14gB4gHxbDlHX4EOmz3RknCHYFCkWkQAhyk2oQZfAx
IuRjPEUbWjCC13hBsqMtHDyEXNkRxEUooA.kk8LJDWz1oQaLBbOGirZ9okUO
0ICl1.dCWB.0DRQ0U.LYSVeVGbwcBtvN.WF2VKtKGoL8FCpyzCcC+RcwkqxD
cB2czGd6nO8U.5WsTF0MvZ1h0dY4wNTBtYnT.cEJsbaEquO8SOj5U.n6vHTs
pmjChdTJ.QppPZeFwtc45BzrNFJ5m148ZnntONpUjlZdTxVxm1xXkkjktV5n
VzLaqokZkji8llkcyse8tF8q8KPSp1Os23O241ekapp6J6JZQaxut2j+WZOZ
Rs3lluo4N4T2O+fzhMHlTTx18xO+3fe9C94O3m+fe9C94O3m+fe9C94O3m+f
e9C94O3m+fe9C94O3m+fe9C94O3m+fe9C94O3m+fe9+kge9ssMSy4BgIqaZV
fUqau3tm561O8aVe3Xce021FJU+JsK2xSnr0sJZFlyXsLWw4qN4lpk2CEAv1
RbPm.uxYorUA8kwzlDvTAYqSzI1DqzByZfuxLk4Zae3dz9f0E3481GpGsOxc
n8klfN8ZDFM5sPbOagvwtEZl26T6idOFi6I9cOZeHWWCKH2oVHz4VHtyVXgK
VpXJ6fhT+kashFzshS1TZpXUF0mD6nNAR6n5xfvBM+jRvmqIA5JIpDoygTHJ
23OANOGxGZFjEMMXP1uORSOfvqBrHJSkU1GSoBLUh4DcB2ZrhdfAKT6ElmUa
RVbbzPrCKdY2giIub3KyZntyWKpCrBo.pEH0PZwboGHeUHeVCUSyxgbQc78v
5m1p6OiMRuawGhVndxe9vEJYEpcnbI+Y1enWGeKRZEnWSz8kV5mxWwFJzr8Q
BZemNSPW6HwnA8ELK6Kd.q4DcpkiE4QWFQI4fy7QI8BbsPcl8qiLE2ZUp.Az
rsl2HG2Rfu1I4VqSvvTV8IXdg1aI3Y2K3okkuJwzKM7z7srCksM8QLYcwjLf
GV5RHW6R2zd9ftzsFKFT7D1Vcb2h8KdImgveaoCIImx1Uabo9FypMOf4p+Jd
45EaiTlQ79ykoGDHJ8DOUWTcoCqdo76zHchiF7gYLjqGlQTDfCTi1D8vL1nI
LlNnJ2oIaxgb2PuPiz8fib8I4zNIHvSBZRfENyPYbexFkthEDjGoNY2oiReR
awo.Mz0VAbLIESmaZVPROSJlPWG6HdkHHckZWgz.e+E36uFGTC78Wfu+B78W
fu+B78Wfu+72Xafu+FI8.B78Wfu+B78Wfu+B78Wfu+lL782W2rI2wnMQ4DsQ
az9lgbcPFxfnmz9FxBsuAZl12daoiTomcyUaRTO7V5PRBQ2G3rzrPs9AtqDD
r+kEo2L6l5hXxkVwd0P5w38u2T..Jb9dCc2ugQ4BGmSaXBxj1Pxqga+rg.zF
GjMQ1wayOx2gqm9m2D8z9jS6hNeT7szgYhzzLyvXTM2gQN2gYsNqdHlQ234s
0V2LiYrD9attvk451OrsQZIvtnG2cRW8N1eSPog9KYzqYFiE5uDKm0SvIOln
9kG0XRMhmxXyDXFK6f4dgYLgJEJnvKjQgLvSlAdx7qBdxzovbBmVqZfbCU2P
y+4.FISvlBjIkFAw6+3hMQq2F8xgn0Gh1Gq84T7xHEpDeOiyoGhf2XzIlJyh
a1H1JKgciQwTyg5YSBzFoPZpETUsu7iZo1CAzlUK4nLOfs3gAaG2fZ96u0nW
NSR.wTzdPo1+AF1Hx50HtdqhBLJi6QIAzeoJIfv0yQ8of.1jcBqKw7cljxrJ
rhCas26n7lOygYTMr6u9pQGTZWdHRo8lNELz0bBiF.Ghx0MvpR.nQFHMKg8H
NJtcbbgF0x.xVAO3XEZqBGi7KpGC+LtisAeF9hLWiCux4F7f1FbMV.Y9LvZc
MR.8YX01iwBe0FbMxdwsDPj9+fJbyGI2yiyXsKGmAMqxSiPCz4YfwM54WsGt
86QZ.YvQ5HMfuZNRibLYfORCjbpdjFYc3g9HMPho0QZj2M89QZ.kesejF4P4
.ejFHX3HMBGoQ3HMBGoQ3HMBGoQ3HMBGoQ3HMBGoQ3HMBGoQ3HMBGoQ3HMBG
oQ3HMBGoQ3HMFpLzfJ7QBZ.oyFUeY10A2X5kC941.I96baZzqs+SaN8iI+97
BWQ4bghBfRJiy.BgttmklBmZddBIQTIDXpZD.LDfkPJBIIXY4zFtkoHYN5ke
MmEhEG81RxN7KQe4hMTYmzjB4pAGCXS7hubQyAAu2F7d6WEdusMqmsSoaVMc
Ai0kPPLmjSgdR8YgSmyzUHEFFIfHpMoe0k.huIWTd+pht0IeMmAJBqJP4Rk0
FdS9E69ATObZ0p38eI5vNEprewlCOuXW760xkNzA3IoTM60Ko470EIs7uJLR
GYdnNZKHNTLxe6H6Uqb.Ls9h5DvIfjlAN.2G.GcBCb40o0qG6PF2WCQ9n3sK
XSXrq7pVkMfubUKZQDcgIS.j.ARWyY0dXkB8.XxDS9UvN.h1W.aCDAdADkuF
VMes3HBHqiiHhGvQN30xJ6qYQMRB051vfBHi.X9CFIfo9Z5qZZXc3iS8.5ge
MrX9Z.PHmUE.k9P2F7caKk5bkt0PxsQOQYNgIEBUwbirHzcXYKANa13L24XD
niNNSlV16AnLJdGhS0+UVAFPHOX0El3.qaLU.JpZNPQfBjRE.iCPAESFfpGd
9.Cw0kDQ33wvyGP3Dw2GZJXKhz0bKP9gHTFZnTQ2XCo+jAjbZfM6hi+v03rC
6KEUanAKgdYt5dfmYIwiMIr09VaZ5SoqEhX9bLmJwfbxpAaSzUVRKLra0IQy
FKnXwOu9kScYliRQHITfnBNVn62HhdWePUYRPO.EB9roj+VsKdFiGC+sxoSC
IPGinWCJMRa6ywSH8iXNsG1HgLTvjAYZbSrtQLggp5qsjCx7wFWD4Dh8PMnl
6to29xPIqJxA7BxIlbHWu7Se1Ry5nEh5AzBOkXo1UaNsd47GNsJEm9Rz6LAC
lEe0qtT5p1NTGsQBmyU8TQpgAJVMH.vbkl3XM6ZfHxtYTtd6LlNnKXCwHNlG
CbCiEWb0e9XPCxEJg83qPfgMrGZx7d8HvPxxvxWGXeoSHHG9aV3ReFAxx2ea
PtIsRGZHmMQgbkQK6RND2fvmn2UH3SaRtz9iqz45cDH5cJrH80Gh3W8HiU4R
XzbQYWDiHHKVHLviZnWKiZFNKsznUEIW4iRnAYTxtDLrn1nDvGqld0rX5Lyx
VZjotbsAdIjQ3lk0LPhOjscGFMZyWKmop2ePIwZe7hzW7g3OkNP7CQe3z9iI
GVqe49jMIqVodwpMKNlc4G2qC4uqUoJrntvKHt94qZ1jQYb0flJ0.vX4OqyS
r+gni6OEuKdwG55rb.ooiGgTCKfXe3ZO9XAEFQupINIaWsdY71G65P3UV3LW
gCBABhABpDI31AlL6EGXfgNj.SajtcA4Z+J3aipx04MJ3RMM1DM33tM.r2IY
LlMQB6zy57VTopK6bbLc+hmhd2p3E5.v+PUEyVs53AUSWcO4jZdw8NnkUc4l
U.CxqICaLT.Cimn6zmK+yx.1mVuUmB.oCJu64jco+gdz47H4EsB9vmh0AYu9
yo15OWRZY0.pLT17xl5CQbnOhpLLbhNnjJI11RHKKUNOXjo47hMOkre8wmeo
rBxssNhbEpHaYPBJMIZz.OHAtCCRtjszlIqD0OS+Wp69HRc9XgMdBDLn4NsK
mRQCoNs2qvLNUAdL3ECVK1eb.s5sxAzY2JV3kbEWNERLWtqYIcZ3c3ulgyXg
XBj05ZWM5sFg9f1bKWo8YQDfHcEKzg1RD1WMCWKnBb5DHK984JDrqSNw0WJk
reoIwaA24lFr4lF5N2z.M2zf9ooQ60JLuMux0I2Du1JbU9uW2Exx7y6P45.L
ApaItNbf8Yi.45JDKyg8rHOmaZPwXKWA0KwJHOM1AcU+AN1iyfftp9fzqsBW
2DJW0O+zJbchAxmpRAg8a9ouJNTm2T8tVptbd+FVK0EoRUrgFrM8RA+3zx0I
+gzxtw6+8waO4JKc+vSqVuYy45SyapcGuYVtGHxphMusvkJUWaPRBDJzEuFL
DyQoT1MV8BJMc3t1mCl+AIThDfz2Ngg3jz5eCQfvzTJoGX4iht7L0LAd5SBH
E.h4UEHG7hezEaeJqTjvuTOMLiu6Szkpu75xxbrrzm6zwjm1uX45L+KbdqmK
iW9g00+cmdbgqCjZGLlhMue8VcA1I9LDgkHXJDgNiyHtffqCQkJakpon+q6h
2F8GVr8PzeH9k0OnI+8J9epvvOgSg3zwNjDKLUwHDEBXRaT7t6y5Ni7sLwqG
SBJO0SbdBmfCnBg4UVAmpS8XT0CSe+L8+3lWY91FkYdEfyEOpOE4RXBVOXmB
Dj71odoHwxfQ7l3Wp9w4BUWxfK.nPXdk5aBgrMXV5iJADHO8QqlDP3byGEIM
ecTVoO6A0C+Qcuu7SGol0j1lSSCkTo.B..Rxd3dcQ2GNrYsRQt+Cc0jx0EeE
Z8omgQoe3416KK9YVgxU0UKm.71B+n5XrkYXl0JmEtvyV505riJfiZ5vH.NU
7yuyijJQZp8fPxhqczhNIT3XMtV6.q8wX6vHLtfH0bwg0eUGhT4B8t9u05qr
+QeUoGP8Up8eFQ0SgoGylSG+KnqkBmvxwXlr4zP+MaNEWL5qZukaaKMHmQL6
ydtSH0uEbD6D6S9z1apWbosSOKSAOx8he7yKtsNA.o1Z2H1miwHyZbDDBwiW
m32tON9F6EoiB5BkF1nqgVavwqC7eFuYSxmtodfPofM2HkDJRqjn.pZjgZWy
9B05Qj9FA.gu6nmd4g38+VkgC2T2Tu7.jNcipT2fl1igEkt60NwdiBg5dwUI
2kQXLrLaIBOSgX0fjD2otz22N9k9s6idULEfCAoMZIlv.xLSA3PpSZXde68G
Wry0NcEyl+cKNlD86zgJ0rgnMNFUH66WsudWTxpUGNqRiUtefhmCQLj.lko4
5boFw0FdiUx8vTStvP5fPDAtV0iE3PYOtXYOFgXF1zI8WjLbl.Bk83PYONT1
iux3M2H0Khgu1r2.AxX6N1EJAt8zdEcSTFjmi9b0dXGS5p7q.KwaMj7e5qxW
bKzBaKAp5nk5P+e1dHMnfO97hiQZQRGdN43WhNt3CouYbjdsbzgEp41wpcYS
eqOpvxj8QJETV7QcVGkyxNGNbJ9v7qMJ7QPQdFBoCQXPNECMfA6IZjp3Kpcq
Th0WVVqjFmOBv4jUAWs8HjHXYgJ8aiDdoZuLQp2TeeYhjqYngyU15vw.NASL
E9TaLXx.HqRLcpiIKVZTDH5v5m9XmkiC5kUNB9sjCQMUnmaOAHJSm4iYrhmu
3gwmS4PoZ8CGInPpdwiWhWb7zLdw0CPkOf7FhV.gOCiDgqgmF2mwKHW1ifjC
NlQFlysL7XGXXtFnmB3ckDttmtX3406Vbtb+ZsTSapMs3zikjgGH5SBwazQB
psF1pLU8WhtSPRLJtynlR0IyX4BM3Ngf6DBtS35T4bSxhkZuMDI.cZBsgBaD
YZmO71nHFQSTZy7XkrSko6wKiVniMxHUK4Zc0R1tCR8I0BjbkFqRlP6xYlOJ
LFxwpVPXvk0auZOPko+t1ZNSo+ZfQhQqpXXzOH5wSGUl8e0vQFO8PtPvxCLd
PGK7fb74nTsViztkKd+mR1qdmmUaNTPOpdCPXgIA+0oZt1oIBO.QnQiN.dHZ
kahZEf4Tg.KXTLkQHTsKP39fRm5fD.xyh9QtHal4OsU6i+uOEu8wOOqK2ZaN
rI07BBPBzgfm.KEDrPWqUj9f6DlJb6W59UJESTlFD8NyxORz6Tp6pTN7P74k
eQuSoBWxljm9bwUmtMWDJXyUxoXbJRhx1DCyv9fnE3shpKWmF1uK1+4wiuEV
b3wEKi+RWk9Iiea0rUBEfQXhnPMwE3gh7Cr8hK5YKEG4ReQFNb1QbCewtvw9
cCNsyl1K2uBeQFZIg5DInnJhdwSlk4lphnR6J8dGbtYOS0y6bJYW+FKGPSoD
0MTPw.DGSxotarDHH.0al9N.BDfwX.Eg3bZ8.JbnSxaWbcLF0QGSvPDFfHIp
VOwzM.bHBvEB0zYrHMhUUcZBl.EBAGQ4Lu2ybZHi2dOqdnu6m1KZfZuStQBK
M3VV7.eM0ybUr.ADRSyPZZFRSyPZZFRSyPZZFRSyPZZFRSyPZZFRSyPZZFRS
yPZZFRSyPZZFRSyPZZ9UdLTtO9wj8K6NFJ4PSX80dLThbMFJwgXnzRLTpjJk
drRlXnPXRELlDGhgxPLTFhgxqLkLg.PmT8M0joNTCc+P8Q7.HlFgihNuAOnl
od3Kcx4CFZ+zDgI2VHkdUTnW19.9IzlZaBCg.6dFCVHLbSM2ayXnSs7zEQSY
yOLASATQV8Y.wXdKsckSrz1sclFKYWG3GwnKE1DQoXnGlyPlHRYh2DA5LYRI
BVg7yIK+QtRt1F2Tfi5RrSd+XhHhLKc+wdKfrfcMknOoOIZbl+nS7AG3pOcb
OlFLVF1qB3g.dj3.QiMVqp9aTFdOqgCLtrF4MI.WmTtJ7hHSkiCQRQdk2wKY
uMDfm0favJX9gUfcbCm4kG1oMonbTj1e3019i4SNuonwkzLYqdk3qN4vOqZ0
aO+2iYB0uK4CweImg7tQfmLmKgLBTG2JYIaNgS0zbGRfHb.GfSmla371qcSl
loyzVFEFGv7u8KQ00as+.oNPxU.IhJ4LZJ0.RTlFQ0jjGfB4TtQZAyGzhp7p
EV3ifotsPNWmYLeQofy.f34agIgogxBkozH.lwJiRpOrCU7JAkGNwCPiaKGO
ABT1HIPvEULy58Py9P9Il+I2TL+OMh0erx30Jx9nDV5LFJTRw9iwKwu1o7RI
0ib+h6TanWKjJ8kahJbiurd4tDklUYCKPoohKpSzVgVawLNtVe98HkLedkMf
qeeiYcHw4NNskh2B591zrjoHdttxvbs3+3wENDW4qHgXBvFmdsQ3bdmHG8YJ
N2znr6A2zAu2CcnI.sKm5GC2k9CaS5OxbTJXkhmPsB+zLlYWH0YMurpzeK22
XJh08dtPzr3e7ctswF6E0t2znMiZPO0z.Ntr9bm3tRldngJIsBgpeHT8Cgpe
HT8mtgpeHnGG1fd7Spl8pj8u7kVBuQJ13VLDqJwSfUJpQAW9GTmAbhBgu1rG
NsZUg1dYWUV1mPYwQXZ.uUNuJxx9.0qzI9X5BRRoLushOjXVJHkfFClxymuS
KuXy5CGKb52CSjkZvly9uUGtZmakM5.2lFfz0cCcNHlMNnqKYB05RImRyFtR
SsRH8ZpvmHK.JoXSst+waAmKbfvCUH5ptPjtTAcLZY7QSBa1FspnMXnBspjE
8tPDcfJApxPz6VO5cgFBUAYJ8oBifEtN7nBQuaH5cCQu6sE7gJg7odMW5snM
DOwh1vCOpV4TJhT1qdFYOuuOUk7Hd0Shx1g5qvrzxZZ1ZXtIjyZ+PrP8tDMB
mMd8cZlQZc00IlPsjhYdrmCYSvdNyjCIdtmSmMxy2+dnC8cZVHIi747cHYPq
Ioo4pYOB+LsJKNTbV4XScqkA0kLEJGyw.hoD1QY8K5RTZ1Udul7FYUcNbN9+
g2Z.+3mbCP8UpZ9ckdDFh.BmUt6sG5oZiOWbrfUaCPRS.g2z1TUrQYLgLh4b
uwlxq8HBYxIHh0FKLcaQgptb5lV+WgyERLRY17khBKDR7Qhp.dkDRYo4T8Wh
nJ..PGDPV2A0TDFWBkRDLEjEfaIjxZJNz4utvXcnQl9iaKdTAjFgYH.4Cb90
R3Qt3XxxG9haSSQp1NRs4OhjgcDlORUB1rID9ntu0ub5kun0bzQTRswDDSkW
pLzBgORQK7TBlpvhRc.QP0DIspi9H7u6HSarEDoUbtX0SiqAmL1jiFq7ws4v
wFb5XyNdramO1jCHqbBNc5HxJNizA5XpQGR5fSIcwwjc5bRGcPYKNozMGU1g
yJ6zgkc5zxNbbY2NurSGX5fSLcwQl8wYls3PyNcpY6N1rcma1tCNa0ImM4nS
6N6rAGd5jSOs63ypRPpJet106j7VJKrt0x.+4n+1FwszQ0cwUNPpUsDZ22I0
MJq3ktDX.k1ny2.pE1F3pfwt4LoAD43SAjqItU5pfOng3bxvOtmwO5T.+blK
ltJ.0INYZ.gTzX.o0zhsLhVk6lZbxVe4uo9hSnlwILoZCzY9b59Arsw0SMa3
du46o9ByvVfYTmv7j.YGLtgpi458fenFvQgRbEk8QAq7E08a7vBWR034q0a9
jpUSj6IxR6DYq4FAOhpUyB0NvrV3dpVyE0dJCnGXTkarC9npgrwbB.v4r.6H
gvBWjx1B11pNj0K4LdDfqkfvcLE1UBAa.UwpD4fUCJ61xPmlvV1kI0Rk35vr
sr9vBXWOq2pk5lsk9lDq27fSCQ8ZB1U2yo8nmCoNzyuc1Kab530X0r1FxQeM
MjS5yPNu6ddyre13zePCb+4UyHYCcFWYNsWy879H1pJypYcmF6roTGoZR0i3
4p7Db6odhszOoZtKMFTq7xS6WTHV+a1RayI7vfJKs4BIWRxOgboO3UYDXZTh
Ie4vwjzhYammAtwghTHbt172bGQnAHuTUagx6WYssE75o3seI5c4SpzSab7X
wYJfCIXTF3RQsChH9H.BBG.beO.3kG1MWMx1vg.yMtA13VSoI1unDP3LfCmA
b3LfmrmA7x3Jg0QsPm6u+2qlflJDX4+fKtEha7BLLUN.KywuXZe8UQSqe6kW
iX15YMH4vYeJYhE9Y+eWqTJX+miLqS+V0Llu6u6m1+Sa+2zw76YEp9VSYaTg
Ap95uFZtE8+sd6i6SYiynecpF1+v4OxkaYUz2Z91i96+0JUb+q+qid7YcVJ7
sq2B+tnes5C9c+kza9X1sodGym93+i9WwaNDGU3a4eHB7cQU+DYu36i91yMo
uq3WxOcT+SEx.U2b92T5y9uaBbPbq2Vpxe20rRzEmU1sKyu5ocvWGmHjpU0G
vSmGzZziODGkSaNeb1Tvogr9XBZmVf5Aaj6Q6i4fExk1pb4Zcdz+9p786aK7
ixdEXPsWsd3LTLhuS9TT71OFuQozTw6nonVvZDKjKGfMmVMRuolXsGOnEcSx
fl6ZsgOqTZVcy3CELxvCYrfGssGZwdGShV7wj0KiVsYg5tWFs33wEO9gCWKh
gLREY.3bFRfoLINuzdjkHRCKhgwiEhc3wmeY8QEhoLF3Ik0uWK.kkWvDJT8a
JDwxqxsYS1FV7AwGK7YwCGR1b5Xbz1j0JssVsII45AI0zGctAnfDIRo2HhKv
nrZGMyGSiPilborieUstSohYxGii9G+wqEkfLwbSnOvmSofrpDeFolLv3ib1
33vLkkwJwOQqJETYWQlhkAMDnZUFGJIHHVv3FQ2bd5JvA1CjH1sw5FituIO9
793CO+E0zmH3fjWd1x2YHl0MEmf6OEmHekjvX6SzhDMPcT9ltoxFyRAnnzbJ
+VPeLUjFuoJzmBDTx4Sh.4RdmxZD6YNPod8A4Sq1UU+uQKiqL9TZw9mzw0mY
3Hch+7n2YFN9dNH5cYiIP0kdmdfwTBnbe3oZ0jr45ZXKCjkDmiYBObbIX3MM
JNniZssa4GUpT7Rbzx055Zl5lTvcjSaW1+jdEYzKSox5bb0L3l6EUyt+7WiR
msAIs2gLzbLWvXH0ajUG+7vQUImTR8chFPx1YD3Ohli+U.KfjenmRRMqF8B2
e.ESTt+vUZ2fv7XQh1ct+P5QhTPGqhHWfh5E+8AKXeZtfxmwPuHBdNFgPY0M
dXVtqW7c8H7fcAdf2E3wTndfRdEcRknVeeic+PSptm9WdD9bpPnWuJ16tNdU
.kLU4vR0uTHIHmbA35HCMynTKWziHfSEjdYaHf2l.A3lBOHYtfAX5O0k3fgZ
RYw5WySPEE35rE3Xy4AN2zLBqGUlLg3LIFAFa9Xv4lFbzolFBuOn13Nf5ZSC
N5b+Ag4plS9jdMHtR.IVl+UkuxfYEI.0NkbcVF.QD.BmlKm4N1o90FSVpw8N
Ku4YC36aSCRF80PN2zvi9ZHWYGlbyTtqTWFzqTWFrGTI2.odHGlpxCjnTcFI
YLL3LaVaTbr1U7Um2UB9C5SFHiMIrBEwbl2ljFCV8Sy.zOBYyGJq6GBoR5H9
ZAAl38LWUVh3ykQPXuVFg7FW9IuYFE7qD9woAFGId4SwsQYNlzJhf3UYLGBZ
n3eETi7KRd4QYv4YEcX+e34jisRVPBSwzVTsmaot5ZsTOzMypvgcvkOCYe1D
5xcOViExp8X5PQkLLb2bIyv0iWFuYwm+RDEhz+W2cbJtZGWBGnQZzn1wOr3Y
GFmgvZyrAVnSnAnyy7RmO9Oubwis0O0jIUsdiQdFM+m8oqAp20LANYOa34YZ
RdS+iqi+TZVDsdy5ietHHlrZkNN.LjhPpTmuuvgAOyjIWK2q1d3bV0j2Heby
5G+vwm2mb5omK990RRmxW3i0uvCOky+.memKVD10rLF1TShS+CkjkKMdcLQj
MK3c5b2KUP+9SGdN9v7EqWo+y2sIIYmVQM8q+Xxlh6ka87KuPudKieIQoNv1
kyUP+tEGm4rLYuLWc2hswsQ7YX01o5bUkhy7+tliy3ZGsnj9lUvA0E1s9H+0
xzU34Jg9rpio13+wYUB.chlR1HBkltXBlkFI5ZhZifoBjlIiYl5QgPhkPJih
QHgnj8m03RRpGvRVdIGiXNTGy93naG7tnoxzC7RuoxmIrAKqpxbFhZ+LfOev
mM4AlR9cX1yqWtLKyIsNN1qmMtqmM2eOaPWOap+d1vtd1D+7rgNzug3BLx70
+n.N8nfCwixgmTtuUtoGjf6vShyGftjfMZOIrKOI3PfdN7fnkWyUwqkLyViD
RJ0fJXX9kDZfzz0N+kU1Y6dsafwWY2PPAN2M.duaT9DKpbPJ98Ies.HRPbF.
Q2T2f6hv.Hp8NhZVKDBkXAgmGVObSXo.LwmK+bXob8MTWD5KrORi7+SFVJ3P
Fpo2t8nKGuICkDhdMw3ldRLWDdiFhsycY+n73W3ldPTWdRTxP7jnt7jXC0Sp
KU9nCwvDk35SB1jLIpw1IlgTE4Fttp7eQMQPG2v4Ho+0s1tQtLVLDJKRcQv.
YHzrxkoWCgP.hKxaHCxShc6a4gopYKUc5wvuoGg3Bn.FBPwEYvjgXwMA3vha
rrsE2BFrvxYH.SSiE9x+IMO.YAfgZ8MwIqAAkkdUvp2F5MFskya9PSgxqxeh
EbybKngo4z+4PqsgicOPSF0Or5efcwfXrX.lQhcxXngXKTL2Ui7u4mjKB4vC
gpNXm1gXHT0A6jLpA6I4jLpa9I4zZtxwY1fsBysmMv9y91j03jJ+C.9hbRJx
PnRFxEoHngXNCxEoH3gP4ODyU2p0nlRYZCoOknJGYqw+G0tvPOK2o9PEs8Fn
I4HWlkyFBcZQndLPcaOImbIwfLM2kGz.7bfN448gPQCnaVdLDOIW1Ttx4G4M
M4ft33.DrMM94EslGQJpue1ekotOxDRvCg19NggFs8AtqsuQp2Es6YkU12Tp
dDoxLkFCYR+qgVzDj3lqyGBMDgDWVJSXCxiBd6F2SPv4dwG1P2rvp8VG0XAn
OZctra0fLH4p7fa9I4jQjPxPbvfPrvY0ou8mkSdmePrPA5jojvAwRbnSFSBG
DqIgXxsuXTvvy8y4cAcxZ2NZdR01fDHWPXmI.JezRQNOnc6S7cK1OvCxyB37
y51mL5xihMTOIXmZ0LDOImL+Q5fwiHS4CFJ0kHyJQEKrXnENTJG4TK2KgUf6
OZ3PeN2t8nq37ggxDAjqyJazDAjrneyoFRZt7ekYi.QfFLaDfNso+fblxPnS
a5CGjMhcyT0A5YQu8c53To+iAEnSpHmpaVySSgoF0gXlFGgb9ut0FW5AyzYX
vh8RHYZd3cs.VH73CuqfvkP83Cu6UJd5g6R.GTaMpIhqqvrP5mQElDpBCBUm
4fZlwfpxTPo4fnMlARGv7ey+y27+Gmf91y
-----------end_max5_patcher-----------

I also realized I did change more than @windowsize. I also removed the deferlow, and the bin->Hz calculations, but those didn’t have any impact (from what I can tell with the code I just posted/tested).

ok I’ll test in my hotel room in 30 minutes - stay tuned!

I also tested alpha06 sans deferlow (had to get an instantiation that didn’t crash Max) and it’s slower, but not crazy slow.

ok in apha06 I get values in the same ballpark as you (8x slower than descriptor) and the same code in alpha07 gives me values 100x-150x slower, so we lost 12x-18x in between versions. I did not notice that on the test code, so it means you are asking for something there we are not testing so thanks for that, I’ll fill a bug report.

1 Like

Found it, fixed it. It’s to do with needing to make a defensive copy of the attributes whilst process is running (assuming that people would like it if the settings they thought they asked for were what got used, irrespective of any wiggling in the meantime). There’s still some overhead, but back in the same ballpark as before.

2 Likes