Mailing list archives : pcb-rnd

ID:3422
From:ge...@igor2.repo.hu
Date:Fri, 27 Sep 2019 13:09:03 +0200 (CEST)
Subject:[pcb-rnd] poly-clear-poly detail (was: Re: "donut" rats)
in-reply-to:3421 from Gabriel Paubert <pa...@iram.es>
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
 
--0-548111325-1569582543=:2358
Content-Type: TEXT/PLAIN; charset=US-ASCII
 
 
 
On Fri, 27 Sep 2019, Gabriel Paubert wrote:
 
>> theory a poly-clearing poly inside another poly that it should connect to, 
>> would need to produce a "donut" rat, just like lines, arcs and padstacks; 
>> but I would find that too confusing so at the momeny any poly-poly rat 
>> is drawn as a rat line
>
>Fine with me. In practice I avoid using explicit (non-padstacks)
>polygons with polygon-clears-polygon flag set. 
>
>I never tested it, but what happens if two polygons (or a polygon and 
>a padstack) with this flag set overlap ?
>
>The answer might well be: don't do that!
 
You can do that and it's perfectly predictable.
 
First, a padstack is an object, not a polygon (even if it features a 
polygon shape on a layer). So what happens between a padstack and a 
polygon is really just the same as what happens between a line and a 
polygon, it's not the poly-clear-poly case. So what a padstack does to a 
poly should not depend on the polygons clearpolypoly flag.
 
The poly-clear-poly case happens only between two polygon objects located 
on the same layer group, if one polygon allows to be cleared (has the 
clearpoly flag) and the other polygon has the clearpolypoly flag. In any 
other combination, the clearance will not happen. 
 
We normally assume every polygon has the clearpoly flag. During my 15+ 
years around PCB and pcb-rnd, I can't recall a single case seeing a 
polygon without the clearpoly flag. So below I will assume it's set for 
all polygons.
 
Now if you have two polygons with the clearpolypoly flag, they will not 
clear into eachother but overlap as regular polygons, and together they 
clear into other polygons that do not have the clearpolypoly flag. If you 
have two polygons without the clearpolypoly flag, they will also overlap 
without affecting eachother. The only case when this flag does anything is 
when one poly has it and the other does not.
 
This is an ugly special case of a 2-level Z buffer: on each layergroup 
bottom level is the no-clearpolypoly-flag polygons, and then comes the 
upper level for all the clearpolypoly polygons. Within each level polygons 
just overlap, but the upper level clears the lower level. So conceptually 
clipping goes like this: we first lay down the bottom level, then start 
clipping those bottom level polygons with the higher level clearpolypoly 
ones.
 
The decision for this special casing was computational complexity. With 
this setup the code doesn't really need to mantain a Z-buffer or levels of 
any sort: if two polygons meet, the code can decide locally, just by 
looking at 2 flags of 2 objects. So order of clipping calculation can be 
arbitrary and the result always would be the same. 
 
If we had a real, generic Z-buffer with levels, for each clipping we'd 
need to sort all polygons in the layer group and potentially re-clip other 
polygons that happen to have overlapping bounding box. (At the moment one 
of the most CPU intensive things pcb-rnd ever does is polygon clipping.)
 
Bonus: poly-vs-padstack try-it-yourself example (attached):
 
The smaller, horizontal poly has the clearpolypoly flag, so it clears into 
the biggish poygon that does not have it, but has the clearpoly flag. The 
padstack in the big poly has a clearance because of the clearpoly flag. 
The same padstack placed within the smaller poly does not have a 
clearance, because the clearpoly flag in the smaller one is off. Both 
padstacks have a global clearance, so they both want to clear, but the 
smaller polygon doesn't allow to be cleared.
 
If you right click, "edit flags" on the smaller poly and tick in the 
clearpoly flag, the padstack's clearance appears, but the poly-vs-poly 
behavior is not changed. If you edit the bigger poly's flags to have  
clearpolypoly, the two polygons merge; if you instead untick the clearpoly 
flag, all clearances within that polygon disappear.
 
HTH,
 
Igor2
--0-548111325-1569582543=:2358
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=poly.lht
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.00.1909271309030.2358@igor2priv>
Content-Description: 
Content-Disposition: attachment; filename=poly.lht
 
aGE6cGNiLXJuZC1ib2FyZC12NiB7DQoNCiBoYTptZXRhIHsNCiAgIGhhOnNp
emUgew0KICAgIHRoZXJtYWxfc2NhbGUgPSAwLjUwMDAwMA0KICAgIHggPSAx
LjYyNWluDQogICAgeSA9IDQ1LjA4NW1tDQogICB9DQogICBoYTpncmlkIHsN
CiAgICBzcGFjaW5nID0gMjUuMG1pbA0KICAgIG9mZnNfeCA9IDAuMA0KICAg
IG9mZnNfeSA9IDAuMA0KICAgfQ0KIH0NCg0KIGhhOmRhdGEgew0KICBsaTpw
YWRzdGFja19wcm90b3R5cGVzIHsNCg0KICAgaGE6cHNfcHJvdG9fdjYuMCB7
DQogICAgIGhkaWE9MzEuNW1pbDsgaHBsYXRlZD0xOyBodG9wPTA7IGhib3R0
b209MDsNCiAgICAgbGk6c2hhcGUgew0KDQogICAgICAgaGE6cHNfc2hhcGVf
djQgew0KICAgICAgICBoYTpwc19jaXJjIHsgeD0wLjA7IHk9MC4wOyBkaWE9
Mi4wbW07ICAgICAgICB9DQogICAgICAgIGhhOmNvbWJpbmluZyB7ICAgICAg
ICB9DQogICAgICAgIGhhOmxheWVyX21hc2sgew0KICAgICAgICAgY29wcGVy
ID0gMQ0KICAgICAgICAgdG9wID0gMQ0KICAgICAgICB9DQogICAgICAgIGNs
ZWFyYW5jZT0wLjANCiAgICAgICB9DQoNCiAgICAgICBoYTpwc19zaGFwZV92
NCB7DQogICAgICAgIGhhOnBzX2NpcmMgeyB4PTAuMDsgeT0wLjA7IGRpYT0y
LjBtbTsgICAgICAgIH0NCiAgICAgICAgaGE6Y29tYmluaW5nIHsgICAgICAg
IH0NCiAgICAgICAgaGE6bGF5ZXJfbWFzayB7DQogICAgICAgICBib3R0b20g
PSAxDQogICAgICAgICBjb3BwZXIgPSAxDQogICAgICAgIH0NCiAgICAgICAg
Y2xlYXJhbmNlPTAuMA0KICAgICAgIH0NCg0KICAgICAgIGhhOnBzX3NoYXBl
X3Y0IHsNCiAgICAgICAgaGE6cHNfY2lyYyB7IHg9MC4wOyB5PTAuMDsgZGlh
PTIuMG1tOyAgICAgICAgfQ0KICAgICAgICBoYTpjb21iaW5pbmcgeyAgICAg
ICAgfQ0KICAgICAgICBoYTpsYXllcl9tYXNrIHsNCiAgICAgICAgIGNvcHBl
ciA9IDENCiAgICAgICAgIGludGVybiA9IDENCiAgICAgICAgfQ0KICAgICAg
ICBjbGVhcmFuY2U9MC4wDQogICAgICAgfQ0KICAgICB9DQogICB9DQogIH0N
Cg0KICAgbGk6b2JqZWN0cyB7DQogICAgaGE6cGFkc3RhY2tfcmVmLjE0IHsN
CiAgICAgcHJvdG89MDsgeD02MDAuMG1pbDsgeT02NzUuMG1pbDsgcm90PTAu
MDAwMDAwOyB4bWlycm9yPTA7IHNtaXJyb3I9MDsgY2xlYXJhbmNlPTIwLjBt
aWw7DQogICAgIGhhOmZsYWdzIHsNCiAgICAgIGNsZWFybGluZT0xDQogICAg
IH0NCg0KICAgICBsaTp0aGVybWFsIHsNCiAgICAgfQ0KICAgIH0NCiAgICBo
YTpwYWRzdGFja19yZWYuMTUgew0KICAgICBwcm90bz0wOyB4PTYyNS4wbWls
OyB5PTk3NS4wbWlsOyByb3Q9MC4wMDAwMDA7IHhtaXJyb3I9MDsgc21pcnJv
cj0wOyBjbGVhcmFuY2U9MjAuMG1pbDsNCiAgICAgaGE6ZmxhZ3Mgew0KICAg
ICAgY2xlYXJsaW5lPTENCiAgICAgfQ0KDQogICAgIGxpOnRoZXJtYWwgew0K
ICAgICB9DQogICAgfQ0KICAgfQ0KICAgbGk6bGF5ZXJzIHsNCg0KICAgIGhh
OnRvcC1zaWcgew0KICAgICBsaWQ9MA0KICAgICBncm91cD0zDQogICAgIGhh
OmNvbWJpbmluZyB7ICAgICB9DQoNCiAgICAgIGxpOm9iamVjdHMgew0KICAg
ICAgIGhhOnBvbHlnb24uNCB7IGNsZWFyYW5jZT00MC4wbWlsOw0KICAgICAg
ICBsaTpnZW9tZXRyeSB7DQogICAgICAgICAgdGE6Y29udG91ciB7DQogICAg
ICAgICAgIHsgMjUuMG1pbDsgMjUuMG1pbCB9DQogICAgICAgICAgIHsgOTI1
LjBtaWw7IDI1LjBtaWwgfQ0KICAgICAgICAgICB7IDkyNS4wbWlsOyAxLjcy
NWluIH0NCiAgICAgICAgICAgeyAyNS4wbWlsOyAxLjcyNWluIH0NCiAgICAg
ICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBoYTpmbGFncyB7DQogICAg
ICAgICBjbGVhcnBvbHk9MQ0KICAgICAgICB9DQogICAgICAgfQ0KICAgICAg
IGhhOnBvbHlnb24uOSB7IGNsZWFyYW5jZT00MC4wbWlsOw0KICAgICAgICBs
aTpnZW9tZXRyeSB7DQogICAgICAgICAgdGE6Y29udG91ciB7DQogICAgICAg
ICAgIHsgNDAuMDA1bW07IDgwMC4wbWlsIH0NCiAgICAgICAgICAgeyAzNTAu
MG1pbDsgODAwLjBtaWwgfQ0KICAgICAgICAgICB7IDM1MC4wbWlsOyA1NTAu
MG1pbCB9DQogICAgICAgICAgIHsgNDAuMDA1bW07IDU1MC4wbWlsIH0NCiAg
ICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBoYTpmbGFncyB7DQog
ICAgICAgICBjbGVhcnBvbHlwb2x5PTENCiAgICAgICAgfQ0KICAgICAgIH0N
CiAgICAgIH0NCiAgICAgIGNvbG9yID0geyM4YjIzMjN9DQogICAgfQ0KDQog
ICAgaGE6Ym90dG9tLXNpZyB7DQogICAgIGxpZD0xDQogICAgIGdyb3VwPTEw
DQogICAgIGhhOmNvbWJpbmluZyB7ICAgICB9DQoNCiAgICAgIGxpOm9iamVj
dHMgew0KICAgICAgfQ0KICAgICAgY29sb3IgPSB7IzNhNWZjZH0NCiAgICB9
DQoNCiAgICBoYTp0b3AtZ25kIHsNCiAgICAgbGlkPTINCiAgICAgZ3JvdXA9
Mw0KICAgICBoYTpjb21iaW5pbmcgeyAgICAgfQ0KDQogICAgICBsaTpvYmpl
Y3RzIHsNCiAgICAgIH0NCiAgICAgIGNvbG9yID0geyMxMDRlOGJ9DQogICAg
fQ0KDQogICAgaGE6Ym90dG9tLWduZCB7DQogICAgIGxpZD0zDQogICAgIGdy
b3VwPTEwDQogICAgIGhhOmNvbWJpbmluZyB7ICAgICB9DQoNCiAgICAgIGxp
Om9iamVjdHMgew0KICAgICAgfQ0KICAgICAgY29sb3IgPSB7I2NkMzcwMH0N
CiAgICB9DQoNCiAgICBoYTppbnQtc2lnMiB7DQogICAgIGxpZD00DQogICAg
IGdyb3VwPTcNCiAgICAgaGE6Y29tYmluaW5nIHsgICAgIH0NCg0KICAgICAg
bGk6b2JqZWN0cyB7DQogICAgICB9DQogICAgICBjb2xvciA9IHsjNTQ4YjU0
fQ0KICAgIH0NCg0KICAgIGhhOmludC1zaWcxIHsNCiAgICAgbGlkPTUNCiAg
ICAgZ3JvdXA9NQ0KICAgICBoYTpjb21iaW5pbmcgeyAgICAgfQ0KDQogICAg
ICBsaTpvYmplY3RzIHsNCiAgICAgIH0NCiAgICAgIGNvbG9yID0geyM4Yjcz
NTV9DQogICAgfQ0KDQogICAgaGE6b3V0bGluZSB7DQogICAgIGxpZD02DQog
ICAgIGdyb3VwPTkNCiAgICAgaGE6Y29tYmluaW5nIHsgICAgIH0NCg0KICAg
ICAgbGk6b2JqZWN0cyB7DQogICAgICB9DQogICAgICBjb2xvciA9IHsjMDA4
NjhifQ0KICAgIH0NCg0KICAgIGhhOmJvdHRvbS1zaWxrIHsNCiAgICAgbGlk
PTcNCiAgICAgZ3JvdXA9MTINCiAgICAgaGE6Y29tYmluaW5nIHsgYXV0bz0x
OyAgICAgfQ0KDQogICAgICBsaTpvYmplY3RzIHsNCiAgICAgIH0NCiAgICAg
IGNvbG9yID0geyMwMDAwMDB9DQogICAgfQ0KDQogICAgaGE6dG9wLXNpbGsg
ew0KICAgICBsaWQ9OA0KICAgICBncm91cD0xDQogICAgIGhhOmNvbWJpbmlu
ZyB7IGF1dG89MTsgICAgIH0NCg0KICAgICAgbGk6b2JqZWN0cyB7DQogICAg
ICB9DQogICAgICBjb2xvciA9IHsjMDAwMDAwfQ0KICAgIH0NCg0KICAgIGhh
OnRvcC1wYXN0ZSB7DQogICAgIGxpZD05DQogICAgIGdyb3VwPTANCiAgICAg
aGE6Y29tYmluaW5nIHsgYXV0bz0xOyAgICAgfQ0KDQogICAgICBsaTpvYmpl
Y3RzIHsNCiAgICAgIH0NCiAgICAgIGNvbG9yID0geyNjZDAwY2R9DQogICAg
fQ0KDQogICAgaGE6dG9wLW1hc2sgew0KICAgICBsaWQ9MTANCiAgICAgZ3Jv
dXA9Mg0KICAgICBoYTpjb21iaW5pbmcgeyBzdWI9MTsgYXV0bz0xOyAgICAg
fQ0KDQogICAgICBsaTpvYmplY3RzIHsNCiAgICAgIH0NCiAgICAgIGNvbG9y
ID0geyNmZjAwMDB9DQogICAgfQ0KDQogICAgaGE6Ym90dG9tLW1hc2sgew0K
ICAgICBsaWQ9MTENCiAgICAgZ3JvdXA9MTENCiAgICAgaGE6Y29tYmluaW5n
IHsgc3ViPTE7IGF1dG89MTsgICAgIH0NCg0KICAgICAgbGk6b2JqZWN0cyB7
DQogICAgICB9DQogICAgICBjb2xvciA9IHsjZmYwMDAwfQ0KICAgIH0NCg0K
ICAgIGhhOmJvdHRvbS1wYXN0ZSB7DQogICAgIGxpZD0xMg0KICAgICBncm91
cD0xMw0KICAgICBoYTpjb21iaW5pbmcgeyBhdXRvPTE7ICAgICB9DQoNCiAg
ICAgIGxpOm9iamVjdHMgew0KICAgICAgfQ0KICAgICAgY29sb3IgPSB7I2Nk
MDBjZH0NCiAgICB9DQoNCiAgICBoYTpzbG90LXBsYXRlZCB7DQogICAgIGxp
ZD0xMw0KICAgICBncm91cD0xNA0KICAgICBoYTpjb21iaW5pbmcgeyBhdXRv
PTE7ICAgICB9DQoNCiAgICAgIGxpOm9iamVjdHMgew0KICAgICAgfQ0KICAg
ICAgY29sb3IgPSB7IzhiNzM1NX0NCiAgICB9DQoNCiAgICBoYTpzbG90LXVu
cGxhdGVkIHsNCiAgICAgbGlkPTE0DQogICAgIGdyb3VwPTE1DQogICAgIGhh
OmNvbWJpbmluZyB7IGF1dG89MTsgICAgIH0NCg0KICAgICAgbGk6b2JqZWN0
cyB7DQogICAgICB9DQogICAgICBjb2xvciA9IHsjMDA4NjhifQ0KICAgIH0N
Cg0KICAgIGhhOnRvcC1hc3N5IHsNCiAgICAgbGlkPTE1DQogICAgIGdyb3Vw
PTE2DQogICAgIGhhOmNvbWJpbmluZyB7ICAgICB9DQoNCiAgICAgIGxpOm9i
amVjdHMgew0KICAgICAgfQ0KICAgICAgY29sb3IgPSB7IzQ0NDQ0NH0NCiAg
ICB9DQoNCiAgICBoYTpib3QtYXNzeSB7DQogICAgIGxpZD0xNg0KICAgICBn
cm91cD0xNw0KICAgICBoYTpjb21iaW5pbmcgeyAgICAgfQ0KDQogICAgICBs
aTpvYmplY3RzIHsNCiAgICAgIH0NCiAgICAgIGNvbG9yID0geyM0NDQ0NDR9
DQogICAgfQ0KDQogICAgaGE6ZmFiIHsNCiAgICAgbGlkPTE3DQogICAgIGdy
b3VwPTE4DQogICAgIGhhOmNvbWJpbmluZyB7IGF1dG89MTsgICAgIH0NCg0K
ICAgICAgbGk6b2JqZWN0cyB7DQogICAgICB9DQogICAgICBjb2xvciA9IHsj
MjIyMjIyfQ0KICAgIH0NCiAgIH0NCiB9DQogaGE6bGF5ZXJfc3RhY2sgew0K
ICBsaTpncm91cHMgew0KICAgaGE6MCB7DQogICAgbmFtZSA9IHRvcF9wYXN0
ZQ0KICAgIGhhOnR5cGUgeyB0b3A9MTsgcGFzdGU9MTsgICAgfQ0KICAgIGxp
OmxheWVycyB7IDk7ICAgIH0NCiAgIH0NCiAgIGhhOjEgew0KICAgIG5hbWUg
PSB0b3Bfc2lsaw0KICAgIGhhOnR5cGUgeyBzaWxrPTE7IHRvcD0xOyAgICB9
DQogICAgbGk6bGF5ZXJzIHsgODsgICAgfQ0KICAgfQ0KICAgaGE6MiB7DQog
ICAgbmFtZSA9IHRvcF9tYXNrDQogICAgaGE6dHlwZSB7IHRvcD0xOyBtYXNr
PTE7ICAgIH0NCiAgICBsaTpsYXllcnMgeyAxMDsgICAgfQ0KICAgfQ0KICAg
aGE6MyB7DQogICAgbmFtZSA9IHRvcF9jb3BwZXINCiAgICBoYTp0eXBlIHsg
Y29wcGVyPTE7IHRvcD0xOyAgICB9DQogICAgbGk6bGF5ZXJzIHsgMDsgMjsg
ICAgfQ0KICAgfQ0KICAgaGE6NCB7DQogICAgbmFtZSA9IGdycF80DQogICAg
aGE6dHlwZSB7IHN1YnN0cmF0ZT0xOyBpbnRlcm49MTsgICAgfQ0KICAgIGxp
OmxheWVycyB7ICAgIH0NCiAgIH0NCiAgIGhhOjUgew0KICAgIG5hbWUgPSBJ
bnRlcm4NCiAgICBoYTp0eXBlIHsgY29wcGVyPTE7IGludGVybj0xOyAgICB9
DQogICAgbGk6bGF5ZXJzIHsgNTsgICAgfQ0KICAgfQ0KICAgaGE6NiB7DQog
ICAgbmFtZSA9IGdycF82DQogICAgaGE6dHlwZSB7IHN1YnN0cmF0ZT0xOyBp
bnRlcm49MTsgICAgfQ0KICAgIGxpOmxheWVycyB7ICAgIH0NCiAgIH0NCiAg
IGhhOjcgew0KICAgIG5hbWUgPSBJbnRlcm4NCiAgICBoYTp0eXBlIHsgY29w
cGVyPTE7IGludGVybj0xOyAgICB9DQogICAgbGk6bGF5ZXJzIHsgNDsgICAg
fQ0KICAgfQ0KICAgaGE6OCB7DQogICAgbmFtZSA9IGdycF84DQogICAgaGE6
dHlwZSB7IHN1YnN0cmF0ZT0xOyBpbnRlcm49MTsgICAgfQ0KICAgIGxpOmxh
eWVycyB7ICAgIH0NCiAgIH0NCiAgIGhhOjkgew0KICAgIG5hbWUgPSBnbG9i
YWxfb3V0bGluZQ0KICAgIGhhOnR5cGUgeyBib3VuZGFyeT0xOyAgICB9DQog
ICAgbGk6bGF5ZXJzIHsgNjsgICAgfQ0KICAgIHB1cnBvc2UgPSB1cm91dGUN
CiAgIH0NCiAgIGhhOjEwIHsNCiAgICBuYW1lID0gYm90dG9tX2NvcHBlcg0K
ICAgIGhhOnR5cGUgeyBib3R0b209MTsgY29wcGVyPTE7ICAgIH0NCiAgICBs
aTpsYXllcnMgeyAxOyAzOyAgICB9DQogICB9DQogICBoYToxMSB7DQogICAg
bmFtZSA9IGJvdHRvbV9tYXNrDQogICAgaGE6dHlwZSB7IGJvdHRvbT0xOyBt
YXNrPTE7ICAgIH0NCiAgICBsaTpsYXllcnMgeyAxMTsgICAgfQ0KICAgfQ0K
ICAgaGE6MTIgew0KICAgIG5hbWUgPSBib3R0b21fc2lsaw0KICAgIGhhOnR5
cGUgeyBzaWxrPTE7IGJvdHRvbT0xOyAgICB9DQogICAgbGk6bGF5ZXJzIHsg
NzsgICAgfQ0KICAgfQ0KICAgaGE6MTMgew0KICAgIG5hbWUgPSBib3R0b21f
cGFzdGUNCiAgICBoYTp0eXBlIHsgYm90dG9tPTE7IHBhc3RlPTE7ICAgIH0N
CiAgICBsaTpsYXllcnMgeyAxMjsgICAgfQ0KICAgfQ0KICAgaGE6MTQgew0K
ICAgIG5hbWUgPSBwbWVjaA0KICAgIGhhOnR5cGUgeyBtZWNoPTE7ICAgIH0N
CiAgICBsaTpsYXllcnMgeyAxMzsgICAgfQ0KICAgIHB1cnBvc2UgPSBwcm91
dGUNCiAgIH0NCiAgIGhhOjE1IHsNCiAgICBuYW1lID0gdW1lY2gNCiAgICBo
YTp0eXBlIHsgbWVjaD0xOyAgICB9DQogICAgbGk6bGF5ZXJzIHsgMTQ7ICAg
IH0NCiAgICBwdXJwb3NlID0gdXJvdXRlDQogICB9DQogICBoYToxNiB7DQog
ICAgbmFtZSA9IHRvcC1hc3N5DQogICAgaGE6dHlwZSB7IHRvcD0xOyBkb2M9
MTsgICAgfQ0KICAgIGxpOmxheWVycyB7IDE1OyAgICB9DQogICAgaGE6YXR0
cmlidXRlcyB7DQogICAgIGluaXQtaW52aXM9MQ0KICAgIH0NCiAgICBwdXJw
b3NlID0gYXNzeQ0KICAgfQ0KICAgaGE6MTcgew0KICAgIG5hbWUgPSBib3Qt
YXNzeQ0KICAgIGhhOnR5cGUgeyBib3R0b209MTsgZG9jPTE7ICAgIH0NCiAg
ICBsaTpsYXllcnMgeyAxNjsgICAgfQ0KICAgIGhhOmF0dHJpYnV0ZXMgew0K
ICAgICBpbml0LWludmlzPTENCiAgICB9DQogICAgcHVycG9zZSA9IGFzc3kN
CiAgIH0NCiAgIGhhOjE4IHsNCiAgICBuYW1lID0gZmFiDQogICAgaGE6dHlw
ZSB7IHRvcD0xOyBkb2M9MTsgICAgfQ0KICAgIGxpOmxheWVycyB7IDE3OyAg
ICB9DQogICAgaGE6YXR0cmlidXRlcyB7DQogICAgIGluaXQtaW52aXM9MQ0K
ICAgIH0NCiAgICBwdXJwb3NlID0gZmFiDQogICB9DQogIH0NCiB9DQp9DQo=
 
--0-548111325-1569582543=:2358--
 

Reply subtree:
3422 [pcb-rnd] poly-clear-poly detail (was: Re: "donut" rats) from ge...@igor2.repo.hu