Javascript Clipper Library / Boolean operations, ExPolygons / SVG example

This page shows an example of boolean operations on ExPolygons and drawing them using SVG.
Union:
[{"outer":[{"X":110,"Y":50},{"X":150,"Y":50},{"X":150,"Y":150},{"X":50,"Y":150},{"X":50,"Y":110},{"X":10,"Y":110},{"X":10,"Y":10},{"X":110,"Y":10}],"holes":[[{"X":110,"Y":60},{"X":110,"Y":110},{"X":60,"Y":110},{"X":60,"Y":140},{"X":140,"Y":140},{"X":140,"Y":60}],[{"X":20,"Y":20},{"X":20,"Y":100},{"X":50,"Y":100},{"X":50,"Y":50},{"X":100,"Y":50},{"X":100,"Y":20}],[{"X":60,"Y":60},{"X":60,"Y":100},{"X":100,"Y":100},{"X":100,"Y":60}]]}]
Difference:
[{"outer":[{"X":110,"Y":50},{"X":100,"Y":50},{"X":100,"Y":20},{"X":20,"Y":20},{"X":20,"Y":100},{"X":50,"Y":100},{"X":50,"Y":110},{"X":10,"Y":110},{"X":10,"Y":10},{"X":110,"Y":10}],"holes":[]},{"outer":[{"X":110,"Y":110},{"X":60,"Y":110},{"X":60,"Y":100},{"X":100,"Y":100},{"X":100,"Y":60},{"X":110,"Y":60}],"holes":[]}]
Xor:
[{"outer":[{"X":150,"Y":150},{"X":50,"Y":150},{"X":50,"Y":110},{"X":60,"Y":110},{"X":60,"Y":100},{"X":100,"Y":100},{"X":100,"Y":60},{"X":110,"Y":60},{"X":110,"Y":50},{"X":150,"Y":50}],"holes":[[{"X":110,"Y":60},{"X":110,"Y":110},{"X":60,"Y":110},{"X":60,"Y":140},{"X":140,"Y":140},{"X":140,"Y":60}]]},{"outer":[{"X":110,"Y":50},{"X":100,"Y":50},{"X":100,"Y":60},{"X":60,"Y":60},{"X":60,"Y":100},{"X":50,"Y":100},{"X":50,"Y":110},{"X":10,"Y":110},{"X":10,"Y":10},{"X":110,"Y":10}],"holes":[[{"X":20,"Y":20},{"X":20,"Y":100},{"X":50,"Y":100},{"X":50,"Y":50},{"X":100,"Y":50},{"X":100,"Y":20}]]}]
Intersection:
[{"outer":[{"X":60,"Y":110},{"X":50,"Y":110},{"X":50,"Y":100},{"X":60,"Y":100}],"holes":[]},{"outer":[{"X":110,"Y":60},{"X":100,"Y":60},{"X":100,"Y":50},{"X":110,"Y":50}],"holes":[]}]