This commit is contained in:
Boris Marinov 2016-11-23 18:23:37 +02:00
parent 34188d0aa3
commit f2323f0e1a
14 changed files with 103372 additions and 0 deletions

Binary file not shown.

BIN
01_set/.text.md.swp Normal file

Binary file not shown.

BIN
02_more_sets/.text.md.swp Normal file

Binary file not shown.

12743
02_more_sets/pair.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 933 KiB

12753
02_more_sets/pair_as_set_1.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 934 KiB

12760
02_more_sets/pair_as_set_2.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 934 KiB

12795
02_more_sets/pair_as_set_3.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 937 KiB

395
02_more_sets/plus.svg Normal file
View File

@ -0,0 +1,395 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 595.3 477.5" enable-background="new 0 0 595.3 477.5" xml:space="preserve">
<g id="Layer_3">
<path opacity="0.14" stroke="#000000" stroke-width="6" stroke-miterlimit="10" d="M441.3,286.8c0,77.8-53.9,120.4-120.4,120.4
s-120.4-53.9-120.4-120.4S254.5,166.4,321,166.4S441.3,220.3,441.3,286.8z"/>
<circle fill="#E6E7E8" stroke="#808285" stroke-width="6" stroke-miterlimit="10" cx="312.1" cy="283.3" r="120.4"/>
<circle opacity="0.14" stroke="#000000" stroke-width="6" stroke-miterlimit="10" cx="129.3" cy="389.8" r="72.4"/>
<circle fill="#E6E7E8" stroke="#808285" stroke-width="6" stroke-miterlimit="10" cx="122.1" cy="385.2" r="72.4"/>
<circle opacity="0.14" stroke="#000000" stroke-width="6" stroke-miterlimit="10" cx="483.6" cy="400.8" r="47.3"/>
<circle fill="#E6E7E8" stroke="#808285" stroke-width="6" stroke-miterlimit="10" cx="479" cy="397.8" r="47.3"/>
<g>
<circle fill="#E6E7E8" stroke="#808285" stroke-width="6" stroke-miterlimit="10" cx="271.8" cy="359.8" r="23.1"/>
</g>
<g>
<g>
<g>
<path fill="#808285" d="M251.9,282.2c0,0,1-0.1,2.9-0.3c1.9-0.1,4.6-0.5,8.1-0.7c7-0.4,17.1-0.7,29.2,0.2c12,0.9,26,3,40.6,7
c14.6,3.9,29.6,9.9,43.8,17.5c7,3.9,13.9,8.2,20.4,12.8c6.4,4.6,12.6,9.4,18.3,14.4c1.5,1.2,2.8,2.5,4.2,3.7
c1.4,1.2,2.7,2.5,4,3.8c1.3,1.3,2.6,2.5,3.9,3.8c1.2,1.3,2.4,2.5,3.6,3.8c0.6,0.6,1.2,1.2,1.8,1.9c0.6,0.6,1.1,1.3,1.7,1.9
c1.1,1.3,2.2,2.5,3.3,3.7c2.1,2.5,4.2,4.9,6,7.3c7.6,9.4,13.2,17.8,17.1,23.7c0.6,0.9,0.9,1.4,0.9,1.4l-9.7,6.2
c7.7,3.8,15.2,8,22.8,12.4c0.1-8.7-0.1-17.6-0.6-26.6l-9.7,6.2c0,0-0.3-0.5-0.9-1.4c-3.9-6-9.6-14.4-17.3-24
c-1.9-2.4-4-4.8-6.1-7.3c-1.1-1.2-2.2-2.5-3.4-3.7c-0.6-0.6-1.1-1.3-1.7-1.9c-0.6-0.6-1.2-1.3-1.8-1.9c-1.2-1.3-2.4-2.6-3.7-3.8
c-1.3-1.3-2.6-2.5-3.9-3.8c-1.3-1.3-2.7-2.6-4.1-3.8c-1.4-1.3-2.8-2.6-4.2-3.8c-5.8-5-12-9.9-18.6-14.6c-6.6-4.6-13.5-9-20.7-13
c-14.4-7.7-29.7-13.9-44.5-17.8c-14.8-4.1-29-6.3-41.2-7.1c-12.2-0.9-22.5-0.6-29.6-0.2c-3.6,0.2-6.4,0.6-8.3,0.7
c-1.9,0.2-2.9,0.3-2.9,0.3L251.9,282.2z"/>
</g>
</g>
</g>
<g>
<g>
<g>
<path fill="#808285" d="M357.2,331.3c0,0,0.5,0.1,1.3,0.2c0.9,0.2,2.2,0.3,3.8,0.7c3.3,0.7,7.9,1.9,13.3,3.9
c5.4,1.9,11.5,4.6,17.9,8c6.3,3.4,12.8,7.5,19.1,12c12.5,9,23.8,19.5,31.9,27.8c4,4.2,7.2,7.8,9.4,10.3c0.5,0.6,0.8,1,0.8,1
l-8.8,7.6c8,2.6,16.1,5.7,24.1,9.3c-0.9-8.7-2.3-17.6-4.1-26.5l-8.8,7.6c0,0-0.3-0.4-0.8-1c-2.2-2.6-5.5-6.2-9.5-10.4
c-8.1-8.4-19.6-19.1-32.3-28.2c-6.3-4.5-13-8.8-19.4-12.2c-6.5-3.5-12.8-6.2-18.3-8.2c-5.5-2-10.3-3.3-13.7-4
c-1.7-0.4-3-0.6-3.9-0.8c-0.9-0.2-1.4-0.3-1.4-0.3L357.2,331.3z"/>
</g>
</g>
</g>
<g>
<g>
<g>
<path fill="#808285" d="M296.8,359.1c0,0,0.7,0,1.9,0c1.2,0,3.1,0,5.4,0c4.6,0.1,11.3,0.5,19.2,1.5c7.9,1,17.2,2.6,27,4.7
c9.8,2.2,20.1,5,30.3,8.2c20.4,6.4,40.1,15,54,22.9c7,3.9,12.5,7.6,16.3,10.3c0.7,0.5,1.1,0.8,1.1,0.8l-6.9,9.3
c8.1,0.6,16.4,1.8,24.7,4.6c-1.8-8.6-5.1-17.3-9.2-25.8l-6.9,9.3c0,0-0.4-0.3-1.2-0.8c-3.9-2.8-9.5-6.6-16.6-10.5
c-14.1-8-34-16.7-54.6-23.2c-10.3-3.3-20.7-6.1-30.6-8.3c-9.9-2.2-19.2-3.8-27.3-4.8c-8-1-14.8-1.4-19.6-1.5
c-2.4-0.1-4.2-0.1-5.5,0c-1.3,0-2,0-2,0L296.8,359.1z"/>
</g>
</g>
</g>
<g>
<g>
<g>
<path fill="#808285" d="M377.1,267.3c0,0,1.8,0.5,5,1.5c0.8,0.2,1.7,0.5,2.6,0.8c0.5,0.1,1,0.3,1.5,0.5c0.5,0.2,1,0.4,1.6,0.6
c2.1,0.8,4.6,1.7,7.2,2.8c2.5,1.2,5.3,2.5,8.2,4c1.4,0.8,2.8,1.6,4.3,2.5c1.5,0.9,3,1.7,4.4,2.7c1.5,1,2.9,2,4.4,3
c0.4,0.3,0.8,0.5,1.1,0.8l1.1,0.9c0.7,0.6,1.4,1.2,2.2,1.7c0.7,0.6,1.4,1.2,2.2,1.7l1.1,0.9c0.4,0.3,0.7,0.6,1,0.9
c1.4,1.3,2.8,2.6,4.1,3.8c10.9,10.4,19.5,23.1,25,32.9c1.5,2.4,2.6,4.8,3.6,6.8c0.5,1,1,2,1.5,2.9c0.5,0.9,0.8,1.7,1.1,2.5
c0.3,0.7,0.5,1.1,0.5,1.1l-10.5,4.8c1.7,1.2,3.5,2.3,5.2,3.6l5.1,3.9c0.8,0.7,1.7,1.3,2.5,2l2.5,2.1l5,4.3l1.2-6.5l0.6-3.3
c0.2-1.1,0.3-2.2,0.5-3.3l0.9-6.7c0.2-2.3,0.4-4.5,0.6-6.8l-10.5,4.8c0,0-0.2-0.4-0.5-1.2c-0.4-0.8-0.7-1.6-1.2-2.5
c-0.5-0.9-1-1.9-1.5-2.9c-1.1-2.1-2.2-4.5-3.7-7c-5.6-10.1-14.3-23-25.5-33.7c-1.4-1.3-2.8-2.6-4.2-3.9c-0.4-0.3-0.7-0.7-1.1-1
l-1.1-0.9c-0.7-0.6-1.5-1.2-2.2-1.8c-0.7-0.6-1.5-1.2-2.2-1.8l-1.1-0.9c-0.4-0.3-0.8-0.5-1.1-0.8c-1.5-1.1-3.1-2.1-4.5-3.1
c-1.5-1.1-3-1.9-4.5-2.8c-1.5-0.9-3-1.7-4.4-2.6c-2.9-1.5-5.8-2.8-8.4-4.1c-2.7-1.1-5.2-2-7.4-2.9c-0.5-0.2-1.1-0.4-1.6-0.6
c-0.5-0.2-1-0.3-1.5-0.5c-1-0.3-1.9-0.6-2.7-0.8c-3.2-1-5.1-1.5-5.1-1.5L377.1,267.3z"/>
</g>
</g>
</g>
<g>
<g>
<g>
<path fill="#808285" d="M306.5,205.7c0,0,3.7,0.4,10.2,1.2c6.5,0.9,15.7,2.3,26.7,4.7c10.9,2.4,23.6,6,36.6,11.1
c0.8,0.3,1.6,0.6,2.5,1c0.8,0.3,1.6,0.7,2.4,1.1c1.6,0.7,3.3,1.4,4.9,2.1c1.6,0.8,3.3,1.6,4.9,2.4c0.8,0.4,1.6,0.8,2.5,1.2
c0.8,0.4,1.6,0.9,2.4,1.3c6.5,3.4,12.8,7.3,18.9,11.6c6.1,4.3,11.8,9.1,17,14.2c1.3,1.3,2.6,2.5,3.8,3.9c1.2,1.3,2.4,2.7,3.6,4
c1.2,1.3,2.3,2.8,3.4,4.1c0.6,0.7,1.1,1.4,1.7,2.1c0.5,0.7,1,1.4,1.5,2.1c4.2,5.6,7.6,11.4,10.7,17c1.4,2.9,2.9,5.6,4,8.4
c0.6,1.4,1.2,2.7,1.7,4.1c0.5,1.4,1,2.7,1.5,4c3.8,10.5,5.7,19.6,6.9,26c0.2,1,0.2,1.6,0.2,1.6l-11.4,1.8c1.3,1.6,2.7,3.2,4,4.8
c1.3,1.6,2.5,3.3,3.8,5l1.9,2.6l1.8,2.7l3.6,5.5l3-5.9l1.5-3l1.3-3.1c0.9-2.1,1.8-4.2,2.7-6.3c0.8-2.1,1.6-4.3,2.4-6.5
l-11.4,1.8c0,0-0.1-0.6-0.2-1.6c-1.2-6.5-3.1-15.9-7-26.6c-0.5-1.3-1-2.7-1.5-4.1c-0.6-1.4-1.2-2.8-1.8-4.2
c-1.2-2.9-2.6-5.7-4.1-8.6c-3.1-5.8-6.6-11.7-10.9-17.4c-0.5-0.7-1.1-1.4-1.6-2.2c-0.6-0.7-1.1-1.4-1.7-2.1
c-1.2-1.4-2.3-2.8-3.5-4.2c-1.2-1.4-2.5-2.7-3.7-4.1c-1.2-1.4-2.6-2.6-3.9-4c-5.4-5.2-11.2-10.2-17.4-14.5
c-6.2-4.4-12.6-8.4-19.3-11.9c-0.8-0.4-1.6-0.9-2.5-1.3c-0.8-0.4-1.7-0.8-2.5-1.2c-1.7-0.8-3.3-1.6-5-2.4
c-1.7-0.7-3.3-1.4-5-2.2c-0.8-0.4-1.7-0.7-2.5-1.1c-0.8-0.3-1.7-0.6-2.5-1c-13.2-5.2-26-8.8-37.1-11.2
c-11.1-2.5-20.4-3.8-27-4.7c-6.6-0.8-10.3-1.2-10.3-1.2L306.5,205.7z"/>
</g>
</g>
</g>
<g>
<g>
<g>
<path fill="#808285" d="M391.3,210.8c0,0,0.7,0.2,1.9,0.4c0.6,0.1,1.4,0.3,2.3,0.5c0.9,0.2,1.9,0.4,3.1,0.8
c1.1,0.4,2.4,0.7,3.8,1.2c1.4,0.4,2.8,1,4.4,1.6c0.8,0.3,1.6,0.6,2.4,0.9c0.8,0.4,1.6,0.7,2.5,1.1c0.8,0.4,1.7,0.8,2.6,1.2
c0.9,0.4,1.8,0.9,2.7,1.4c7.2,3.9,15.2,9.3,22.7,16.4c0.9,0.9,1.8,1.8,2.8,2.7c0.5,0.5,0.9,0.9,1.4,1.4l1.3,1.5
c0.9,1,1.8,1.9,2.7,2.9c0.9,1,1.7,2.1,2.6,3.1l1.3,1.6l1.2,1.6c0.8,1.1,1.7,2.2,2.5,3.2c0.8,1.1,1.6,2.2,2.4,3.4l1.2,1.7
l1.1,1.7l2.2,3.5c0.7,1.2,1.4,2.4,2.1,3.6c1.4,2.3,2.6,4.8,3.9,7.2c2.4,4.9,4.6,9.7,6.4,14.5c3.7,9.6,6.3,19,7.8,27.1
c1.5,8.1,2.1,15,2.3,19.8c0,0.9,0.1,1.4,0.1,1.4l-11.6,0.3c4.6,6.7,8.6,14,11.5,22.3c5.7-6.7,10.7-14.5,14.8-23l-11.6,0.3
c0,0,0-0.5-0.1-1.4c-0.1-4.9-0.8-11.9-2.3-20.2c-1.5-8.3-4.1-17.8-7.9-27.6c-1.8-4.9-4.1-9.9-6.6-14.8c-1.3-2.4-2.5-4.9-4-7.3
c-0.7-1.2-1.4-2.4-2.1-3.6l-2.3-3.5l-1.1-1.8l-1.2-1.7c-0.8-1.1-1.6-2.3-2.4-3.4c-0.9-1.1-1.7-2.2-2.6-3.3l-1.3-1.7l-1.3-1.6
c-0.9-1.1-1.8-2.1-2.7-3.2c-0.9-1-1.9-2-2.8-3l-1.4-1.5c-0.5-0.5-1-0.9-1.4-1.4c-1-0.9-1.9-1.9-2.9-2.8
c-7.7-7.2-15.9-12.9-23.4-16.8c-0.9-0.5-1.8-1-2.7-1.5c-0.9-0.4-1.8-0.8-2.7-1.2c-0.9-0.4-1.7-0.8-2.6-1.2
c-0.8-0.4-1.7-0.7-2.5-1c-1.6-0.6-3.1-1.2-4.5-1.7c-1.4-0.4-2.7-0.8-3.9-1.2c-1.2-0.4-2.3-0.6-3.2-0.8c-0.9-0.2-1.7-0.4-2.4-0.6
c-1.3-0.3-2-0.5-2-0.5L391.3,210.8z"/>
</g>
</g>
</g>
<g>
<g>
<g>
<path fill="#808285" d="M255.2,200c0,0-0.9,0.1-2.5,0.3c-0.8,0.1-1.8,0.2-3,0.3c-0.6,0.1-1.2,0.1-1.9,0.2
c-0.7,0.1-1.4,0.2-2.2,0.3c-1.5,0.2-3.2,0.5-5.1,0.8c-1.8,0.3-3.8,0.8-5.9,1.3c-2.1,0.4-4.3,1.1-6.6,1.7c-1.2,0.3-2.4,0.6-3.6,1
c-1.2,0.4-2.4,0.8-3.7,1.2c-10,3.4-21.4,8.4-32.7,15.2c-11.3,6.8-22.7,15.1-33.2,24.5l-3.9,3.5c-1.3,1.2-2.5,2.4-3.8,3.6
l-1.9,1.8l-1.8,1.9c-1.2,1.2-2.4,2.5-3.6,3.7c-4.7,5.1-9.3,10.1-13.4,15.2c-8.4,10.2-15.4,20.3-20.8,29.3
c-5.5,9-9.5,16.9-12.1,22.4c-0.4,0.9-0.6,1.4-0.6,1.4l-10.5-4.8c0.6,9.2,1.9,18.2,3.9,26.7c6.4-6,13.1-11.2,20-15.9l-10.5-4.8
c0,0,0.2-0.5,0.6-1.4c2.6-5.5,6.5-13.2,11.9-22.1c5.4-8.9,12.3-18.9,20.6-29c4.1-5.1,8.6-10.1,13.3-15c1.2-1.2,2.4-2.4,3.6-3.7
l1.8-1.8l1.9-1.8c1.2-1.2,2.5-2.4,3.8-3.6l3.9-3.5c10.3-9.3,21.6-17.4,32.7-24.1c11.1-6.7,22.3-11.6,32.1-14.9
c1.2-0.4,2.4-0.8,3.6-1.2c1.2-0.4,2.4-0.7,3.5-1c2.3-0.6,4.4-1.3,6.5-1.7c2.1-0.4,4-0.9,5.8-1.2c1.8-0.3,3.4-0.6,4.9-0.8
c0.7-0.1,1.4-0.3,2.1-0.3c0.7-0.1,1.3-0.1,1.9-0.2c1.2-0.1,2.2-0.2,3-0.3c1.6-0.2,2.5-0.3,2.5-0.3L255.2,200z"/>
</g>
</g>
</g>
<g>
<g>
<g>
<path fill="#808285" d="M203.7,285.2c0,0-1.7,0.4-4.7,1.2c-1.5,0.4-3.3,1-5.3,1.6c-2,0.7-4.3,1.4-6.8,2.4
c-4.9,1.9-10.5,4.3-16.4,7.2c-5.9,2.9-12,6.3-17.9,10c-11.9,7.3-23.2,15.5-31.4,22c-4.1,3.2-7.4,6-9.8,8
c-0.6,0.5-0.9,0.8-0.9,0.8l-7.5-8.8c-1.6,4.2-3.1,8.5-4.4,12.8c-0.7,2.1-1.3,4.3-1.9,6.4c-0.6,2.2-1.2,4.3-1.5,6.5
c2-0.8,4.1-1.3,6.2-1.9c2.1-0.5,4.2-1,6.3-1.5c4.2-0.9,8.4-1.7,12.6-2.4l-7.5-8.8c0,0,0.3-0.3,0.9-0.8c2.3-1.9,5.6-4.7,9.7-7.9
c8.1-6.4,19.3-14.6,31.1-21.8c5.9-3.6,11.9-7,17.7-9.8c5.8-2.9,11.3-5.3,16.1-7.1c2.4-0.9,4.6-1.7,6.6-2.3
c2-0.6,3.7-1.1,5.2-1.6c2.9-0.7,4.6-1.2,4.6-1.2L203.7,285.2z"/>
</g>
</g>
</g>
<g>
<g>
<g>
<path fill="#808285" d="M246.6,360.9c0,0-0.4,0.1-1.1,0.2c-0.7,0.1-1.7,0.3-3,0.6c-2.6,0.6-6.2,1.5-10.5,2.9
c-8.5,2.8-19.5,7.7-29.9,13.5c-10.4,5.7-20.4,12.3-27.6,17.6c-3.6,2.6-6.6,4.9-8.6,6.6c-0.6,0.5-0.9,0.8-0.9,0.8l-7.3-9
c-1.8,4.3-3.4,8.6-4.8,13c-0.4,1.1-0.7,2.2-1,3.3c-0.3,1.1-0.6,2.2-0.9,3.3c-0.5,2.3-0.9,4.5-0.9,6.8c1.9-1.1,3.9-1.8,5.8-2.4
c1-0.3,2-0.6,3-0.8c1-0.3,2-0.5,3-0.7c4.1-0.9,8.2-1.5,12.3-2.1l-7.3-9c0,0,0.3-0.3,0.9-0.7c2-1.6,4.9-3.9,8.5-6.5
c7.1-5.2,17-11.7,27.3-17.3c10.3-5.7,21.1-10.5,29.4-13.2c4.2-1.4,7.7-2.3,10.2-2.9c1.2-0.3,2.2-0.4,2.9-0.6
c0.7-0.1,1-0.2,1-0.2L246.6,360.9z"/>
</g>
</g>
</g>
<g>
<g>
<g>
<path fill="#808285" d="M309.5,328.2c0,0-2.5-0.4-6.9-1c-2.2-0.3-4.9-0.5-8-0.9c-1.5-0.2-3.2-0.3-4.9-0.4
c-1.7-0.1-3.5-0.2-5.4-0.3c-7.6-0.3-16.5-0.1-25.9,0.7c-9.5,0.8-19.5,2.3-29.4,4.6c-9.9,2.2-19.6,5.1-28.5,8.3
c-8.9,3.2-17,6.8-23.8,10.2c-6.8,3.4-12.3,6.6-16.1,8.9c-0.7,0.5-1.2,0.7-1.2,0.7l-6.2-9.8c-2.3,4.1-4.4,8.2-6.3,12.4
c-0.9,2.1-1.8,4.3-2.6,6.5c-0.4,1.1-0.7,2.2-1,3.3c-0.1,0.6-0.2,1.1-0.3,1.7c-0.1,0.6-0.1,1.2-0.1,1.7c0.5-0.3,1-0.5,1.4-0.7
c0.5-0.2,1-0.3,1.5-0.5c1-0.3,2-0.5,3-0.7c2-0.4,4.1-0.7,6.2-0.9c4.1-0.4,8.2-0.6,12.4-0.6l-6.2-9.8c0,0,0.4-0.3,1.2-0.7
c3.7-2.3,9.1-5.4,15.8-8.8c6.7-3.3,14.7-6.9,23.5-10.1c8.8-3.2,18.4-6,28.1-8.2c9.7-2.2,19.6-3.7,29-4.5
c9.3-0.8,18.1-0.9,25.5-0.7c1.9,0.1,3.7,0.2,5.4,0.3c1.7,0.1,3.3,0.2,4.8,0.4c3,0.3,5.7,0.5,7.8,0.8c4.3,0.6,6.8,1,6.8,1
L309.5,328.2z"/>
</g>
</g>
</g>
<g>
<g>
<g>
<path fill="#808285" d="M340.8,206c0,0-4.1,0.5-11.4,1.4c-3.6,0.5-7.9,1.4-12.9,2.2c-2.5,0.6-5.1,1.2-7.9,1.8
c-1.4,0.3-2.8,0.6-4.3,1c-1.4,0.4-2.9,0.8-4.4,1.2c-12,3.3-25.8,8.2-39.9,14.9c-14.1,6.7-28.4,15.2-41.9,25
c-13.5,9.7-26,20.8-36.9,31.9c-1.4,1.4-2.7,2.8-4,4.2c-1.3,1.4-2.6,2.8-3.9,4.2c-1.2,1.4-2.5,2.8-3.7,4.2
c-1.2,1.4-2.4,2.7-3.5,4.1c-1.1,1.4-2.3,2.7-3.4,4.1c-1.1,1.3-2.1,2.7-3.2,4c-2.1,2.6-4,5.3-5.8,7.8
c-7.3,10.1-12.4,19.2-15.7,25.8c-0.5,1-0.7,1.5-0.7,1.5l-10.4-5l0.1,3.5l0.3,3.6c0.2,2.3,0.5,4.7,0.8,7c0.1,1.1,0.4,2.3,0.6,3.5
l0.4,1.7l0.2,0.8l0.2,0.9c0.3,1.1,0.7,2.2,1,3.3c0.5,1.1,0.9,2.1,1.4,3.1c0.6-0.9,1.2-1.8,1.9-2.6c0.7-0.8,1.4-1.6,2.1-2.3
l0.5-0.5l0.6-0.5l1.2-1c0.8-0.7,1.5-1.3,2.3-2c1.6-1.3,3.2-2.5,4.9-3.6l2.5-1.7l2.6-1.6l-10.4-5c0,0,0.3-0.5,0.7-1.5
c3.2-6.4,8.3-15.3,15.4-25.3c1.8-2.5,3.7-5.1,5.7-7.7c1-1.3,2-2.7,3.1-4c1.1-1.3,2.2-2.7,3.3-4c1.1-1.4,2.3-2.7,3.5-4.1
c1.2-1.4,2.4-2.7,3.6-4.1c1.3-1.4,2.5-2.7,3.8-4.1c1.3-1.4,2.6-2.8,4-4.1c10.8-11,23.1-21.9,36.5-31.5
c13.3-9.6,27.5-18,41.4-24.7c13.9-6.6,27.5-11.5,39.4-14.7c1.5-0.4,2.9-0.8,4.4-1.2c1.4-0.4,2.8-0.7,4.2-1
c2.7-0.6,5.3-1.2,7.8-1.8c4.9-0.9,9.2-1.7,12.8-2.2c7.1-0.9,11.2-1.4,11.2-1.4L340.8,206z"/>
</g>
</g>
</g>
<g>
<g>
<g>
<path fill="#808285" d="M328.4,266c0,0-0.9,0.1-2.6,0.3c-1.7,0.2-4.2,0.4-7.3,0.9c-6.3,1-15.2,2.7-25.6,5.8
c-10.4,3.1-22.2,7.8-34.2,14c-12,6.2-24.3,13.9-35.8,22.7l-4.3,3.3c-1.4,1.1-2.8,2.3-4.2,3.4c-2.8,2.2-5.5,4.6-8.2,6.9
c-5.3,4.7-10.4,9.5-15.1,14.4c-4.8,4.8-9.1,9.7-13.2,14.3c-4,4.7-7.7,9.3-11,13.6c-6.5,8.6-11.5,16.2-14.7,21.6
c-0.5,0.9-0.8,1.4-0.8,1.4l-10-5.9c-0.3,9.2-0.1,18.4,1.2,27c6.9-5.4,14.1-9.8,21.5-13.7l-10-5.9c0,0,0.3-0.5,0.8-1.3
c3.2-5.3,8-12.8,14.5-21.4c3.2-4.3,6.9-8.8,10.8-13.4c4-4.6,8.3-9.4,13.1-14.2c4.7-4.8,9.7-9.5,14.9-14.2
c2.7-2.3,5.3-4.7,8.1-6.9c1.4-1.1,2.8-2.2,4.1-3.4l4.2-3.3c11.3-8.7,23.5-16.2,35.3-22.4c11.9-6.2,23.5-10.8,33.7-13.8
c10.2-3.1,19-4.7,25.1-5.7c3.1-0.5,5.5-0.7,7.2-0.9c1.7-0.2,2.5-0.3,2.5-0.3L328.4,266z"/>
</g>
</g>
</g>
<circle opacity="0.14" stroke="#000000" stroke-width="6" stroke-miterlimit="10" cx="327.9" cy="85.3" r="61.3"/>
<circle fill="#E6E7E8" stroke="#808285" stroke-width="6" stroke-miterlimit="10" cx="322.2" cy="78.4" r="61.3"/>
<circle fill="#FFFFFF" stroke="#939598" stroke-width="6" stroke-miterlimit="10" cx="322.2" cy="48.9" r="13.1"/>
<g>
<path fill="#808285" d="M325,54.3h-3.4v-6.6c0-0.8,0-1.5,0.1-2.2c-0.2,0.3-0.5,0.5-0.8,0.8l-1.4,1.2l-1.7-2.1l4.3-3.5h3V54.3z"/>
</g>
<circle fill="#FFFFFF" stroke="#939598" stroke-width="6" stroke-miterlimit="10" cx="357.4" cy="69.3" r="13.1"/>
<g>
<path fill="#808285" d="M361.7,74.7h-9v-2.2l3-3.1c0.9-0.9,1.4-1.5,1.7-1.9s0.5-0.6,0.6-0.9c0.1-0.2,0.2-0.5,0.2-0.7
c0-0.3-0.1-0.6-0.3-0.8c-0.2-0.2-0.5-0.3-0.9-0.3c-0.4,0-0.8,0.1-1.2,0.3s-0.9,0.6-1.4,1l-1.8-2.2c0.6-0.6,1.2-1,1.6-1.2
c0.4-0.2,0.9-0.4,1.4-0.6c0.5-0.1,1.1-0.2,1.7-0.2c0.8,0,1.5,0.1,2.2,0.4s1.1,0.7,1.5,1.2c0.3,0.5,0.5,1.1,0.5,1.8
c0,0.5-0.1,0.9-0.2,1.4c-0.1,0.4-0.3,0.8-0.6,1.2c-0.3,0.4-0.6,0.8-1,1.3c-0.4,0.4-1.3,1.3-2.7,2.5v0.1h4.7V74.7z"/>
</g>
<circle fill="#FFFFFF" stroke="#939598" stroke-width="6" stroke-miterlimit="10" cx="361.7" cy="103.9" r="13.1"/>
<g>
<path fill="#808285" d="M365.6,99.6c0,0.8-0.2,1.4-0.7,2c-0.5,0.6-1.2,1-2,1.2v0.1c2.1,0.3,3.1,1.2,3.1,2.9c0,1.2-0.5,2.1-1.4,2.7
c-0.9,0.7-2.2,1-3.8,1c-0.7,0-1.3,0-1.9-0.1c-0.6-0.1-1.2-0.3-1.9-0.5V106c0.5,0.3,1.1,0.5,1.7,0.6c0.6,0.1,1.1,0.2,1.6,0.2
c0.7,0,1.3-0.1,1.6-0.3c0.3-0.2,0.5-0.5,0.5-1c0-0.3-0.1-0.6-0.3-0.8s-0.5-0.3-0.9-0.4c-0.4-0.1-0.9-0.1-1.5-0.1H359v-2.5h0.8
c1.7,0,2.6-0.4,2.6-1.3c0-0.3-0.1-0.6-0.4-0.7c-0.3-0.2-0.6-0.2-1-0.2c-0.8,0-1.6,0.3-2.5,0.8l-1.4-2.2c0.7-0.5,1.3-0.8,2-1
c0.7-0.2,1.5-0.3,2.4-0.3c1.3,0,2.3,0.3,3,0.8C365.3,98,365.6,98.7,365.6,99.6z"/>
</g>
<circle fill="#FFFFFF" stroke="#939598" stroke-width="6" stroke-miterlimit="10" cx="298.1" cy="102.6" r="13.1"/>
<g>
<path fill="#808285" d="M302.8,106h-1.2v2h-2.8v-2h-4.2v-2.1l4.4-6.4h2.6v6.4h1.2V106z M298.9,103.9v-1.2c0-0.2,0-0.5,0-0.9
c0-0.4,0-0.6,0-0.6h-0.1c-0.2,0.4-0.3,0.7-0.6,1l-1.2,1.7H298.9z"/>
</g>
<circle fill="#FFFFFF" stroke="#939598" stroke-width="6" stroke-miterlimit="10" cx="80.5" cy="363.9" r="13.1"/>
<g>
<path fill="#808285" d="M83.3,369.3h-3.4v-6.6c0-0.8,0-1.5,0.1-2.2c-0.2,0.3-0.5,0.5-0.8,0.8l-1.4,1.2l-1.7-2.1l4.3-3.5h3V369.3z"
/>
</g>
<circle fill="#FFFFFF" stroke="#939598" stroke-width="6" stroke-miterlimit="10" cx="123.2" cy="377.7" r="13.1"/>
<g>
<path fill="#808285" d="M127.5,383.1h-9v-2.2l3-3.1c0.9-0.9,1.4-1.5,1.7-1.9c0.3-0.3,0.5-0.6,0.6-0.9c0.1-0.2,0.2-0.5,0.2-0.7
c0-0.3-0.1-0.6-0.3-0.8c-0.2-0.2-0.5-0.3-0.9-0.3c-0.4,0-0.8,0.1-1.2,0.3c-0.4,0.2-0.9,0.6-1.4,1l-1.8-2.2c0.6-0.6,1.2-1,1.6-1.2
c0.4-0.2,0.9-0.4,1.4-0.6c0.5-0.1,1.1-0.2,1.7-0.2c0.8,0,1.5,0.1,2.2,0.4c0.6,0.3,1.1,0.7,1.5,1.2c0.3,0.5,0.5,1.1,0.5,1.8
c0,0.5-0.1,0.9-0.2,1.4c-0.1,0.4-0.3,0.8-0.6,1.2c-0.3,0.4-0.6,0.8-1,1.3c-0.4,0.4-1.3,1.3-2.7,2.5v0.1h4.7V383.1z"/>
</g>
<circle fill="#FFFFFF" stroke="#939598" stroke-width="6" stroke-miterlimit="10" cx="134.7" cy="423.5" r="13.1"/>
<g>
<path fill="#808285" d="M139.6,419.1c0,0.8-0.2,1.4-0.7,2c-0.5,0.6-1.2,1-2,1.2v0.1c2.1,0.3,3.1,1.2,3.1,2.9
c0,1.2-0.5,2.1-1.4,2.7c-0.9,0.7-2.2,1-3.8,1c-0.7,0-1.3,0-1.9-0.1c-0.6-0.1-1.2-0.3-1.9-0.5v-2.8c0.5,0.3,1.1,0.5,1.7,0.6
c0.6,0.1,1.1,0.2,1.6,0.2c0.7,0,1.3-0.1,1.6-0.3c0.3-0.2,0.5-0.5,0.5-1c0-0.3-0.1-0.6-0.3-0.8c-0.2-0.2-0.5-0.3-0.9-0.4
c-0.4-0.1-0.9-0.1-1.5-0.1H133v-2.5h0.8c1.7,0,2.6-0.4,2.6-1.3c0-0.3-0.1-0.6-0.4-0.7c-0.3-0.2-0.6-0.2-1-0.2
c-0.8,0-1.6,0.3-2.5,0.8l-1.4-2.2c0.7-0.5,1.3-0.8,2-1c0.7-0.2,1.5-0.3,2.4-0.3c1.3,0,2.3,0.3,3,0.8
C139.2,417.5,139.6,418.2,139.6,419.1z"/>
</g>
<circle fill="#FFFFFF" stroke="#939598" stroke-width="6" stroke-miterlimit="10" cx="482.2" cy="371.4" r="13.1"/>
<g>
<path fill="#808285" d="M485,376.8h-3.4v-6.6c0-0.8,0-1.5,0.1-2.2c-0.2,0.3-0.5,0.5-0.8,0.8l-1.4,1.2l-1.7-2.1l4.3-3.5h3V376.8z"
/>
</g>
<circle fill="#FFFFFF" stroke="#939598" stroke-width="6" stroke-miterlimit="10" cx="486.9" cy="414.7" r="13.1"/>
<g>
<path fill="#808285" d="M491.2,420.1h-9v-2.2l3-3.1c0.9-0.9,1.4-1.5,1.7-1.9c0.3-0.3,0.5-0.6,0.6-0.9c0.1-0.2,0.2-0.5,0.2-0.7
c0-0.3-0.1-0.6-0.3-0.8c-0.2-0.2-0.5-0.3-0.9-0.3c-0.4,0-0.8,0.1-1.2,0.3s-0.9,0.6-1.4,1l-1.8-2.2c0.6-0.6,1.2-1,1.6-1.2
c0.4-0.2,0.9-0.4,1.4-0.6s1.1-0.2,1.7-0.2c0.8,0,1.5,0.1,2.2,0.4c0.6,0.3,1.1,0.7,1.5,1.2c0.3,0.5,0.5,1.1,0.5,1.8
c0,0.5-0.1,0.9-0.2,1.4c-0.1,0.4-0.3,0.8-0.6,1.2c-0.3,0.4-0.6,0.8-1,1.3c-0.4,0.4-1.3,1.3-2.7,2.5v0.1h4.7V420.1z"/>
</g>
<g>
<path fill="#6D6E71" d="M258.5,363.3l1.5-2.1c0.7,0.7,1.6,1.1,2.5,1.1c1.1,0,1.7-0.4,1.7-1.1c0-0.9-0.5-1.4-3-1.4v-2.3
c2,0,2.6-0.5,2.6-1.4c0-0.7-0.4-1.1-1.3-1.1c-0.8,0-1.4,0.3-2.1,1l-1.6-2c1.2-1,2.4-1.6,3.9-1.6c2.7,0,4.4,1.2,4.4,3.4
c0,1.2-0.6,2-1.9,2.6v0.1c1.4,0.4,2.3,1.4,2.3,2.9c0,2.3-2.2,3.5-4.7,3.5C260.9,365,259.4,364.4,258.5,363.3z"/>
<path fill="#6D6E71" d="M269.3,367c1.5-0.5,2.3-1.4,2.3-2.3c0,0-0.1,0-0.1,0c-1,0-1.9-0.6-1.9-1.8c0-1.1,0.9-1.8,2-1.8
c1.4,0,2.2,1.1,2.2,3c0,2.2-1.3,4-3.8,4.6L269.3,367z"/>
<path fill="#6D6E71" d="M275.2,363c2.9-2.6,5.1-4.6,5.1-6.3c0-1.1-0.6-1.6-1.5-1.6c-0.8,0-1.4,0.6-2,1.1l-1.7-1.7
c1.3-1.3,2.4-1.9,4.2-1.9c2.4,0,4.1,1.6,4.1,4c0,1.9-1.8,4.1-3.5,5.7c0.6-0.1,1.5-0.2,2-0.2h2v2.7h-8.7V363z"/>
</g>
<g>
<circle fill="#E6E7E8" stroke="#808285" stroke-width="6" stroke-miterlimit="10" cx="331.8" cy="329.6" r="23.1"/>
</g>
<g>
<path fill="#6D6E71" d="M318.8,332.8c2.9-2.6,5.1-4.6,5.1-6.3c0-1.1-0.6-1.6-1.5-1.6c-0.8,0-1.4,0.6-2,1.1l-1.7-1.7
c1.3-1.3,2.4-1.9,4.2-1.9c2.4,0,4.1,1.6,4.1,4c0,1.9-1.8,4.1-3.5,5.7c0.6-0.1,1.5-0.2,2-0.2h2v2.7h-8.7V332.8z"/>
<path fill="#6D6E71" d="M329.3,336.8c1.5-0.5,2.3-1.4,2.3-2.3c0,0-0.1,0-0.1,0c-1,0-1.9-0.6-1.9-1.8c0-1.1,0.9-1.8,2-1.8
c1.4,0,2.2,1.1,2.2,3c0,2.2-1.3,4-3.8,4.6L329.3,336.8z"/>
<path fill="#6D6E71" d="M335.2,332.8c2.9-2.6,5.1-4.6,5.1-6.3c0-1.1-0.6-1.6-1.5-1.6c-0.8,0-1.4,0.6-2,1.1l-1.7-1.7
c1.3-1.3,2.4-1.9,4.2-1.9c2.4,0,4.1,1.6,4.1,4c0,1.9-1.8,4.1-3.5,5.7c0.6-0.1,1.5-0.2,2-0.2h2v2.7h-8.7V332.8z"/>
</g>
<g>
<circle fill="#E6E7E8" stroke="#808285" stroke-width="6" stroke-miterlimit="10" cx="351.7" cy="265.8" r="23.1"/>
</g>
<g>
<path fill="#6D6E71" d="M338.4,269.4l1.5-2.1c0.7,0.7,1.6,1.1,2.5,1.1c1.1,0,1.7-0.4,1.7-1.1c0-0.9-0.5-1.4-3-1.4v-2.3
c2,0,2.6-0.5,2.6-1.4c0-0.7-0.4-1.1-1.3-1.1c-0.8,0-1.4,0.3-2.1,1l-1.6-2c1.2-1,2.4-1.6,3.9-1.6c2.7,0,4.4,1.2,4.4,3.4
c0,1.2-0.6,2-1.9,2.6v0.1c1.4,0.4,2.3,1.4,2.3,2.9c0,2.3-2.2,3.5-4.7,3.5C340.7,271.1,339.3,270.4,338.4,269.4z"/>
<path fill="#6D6E71" d="M349.1,273c1.5-0.5,2.3-1.4,2.3-2.3c0,0-0.1,0-0.1,0c-1,0-1.9-0.6-1.9-1.8c0-1.1,0.9-1.8,2-1.8
c1.4,0,2.2,1.1,2.2,3c0,2.2-1.3,4-3.8,4.6L349.1,273z"/>
<path fill="#6D6E71" d="M355.6,268.2h2.6V262h-2.3v-2c1.4-0.3,2.2-0.6,3.2-1.2h2.4v9.4h2.2v2.6h-8V268.2z"/>
</g>
<g>
<circle fill="#E6E7E8" stroke="#808285" stroke-width="6" stroke-miterlimit="10" cx="227.2" cy="283.3" r="23.1"/>
</g>
<g>
<path fill="#6D6E71" d="M214.8,285.7h2.6v-6.2h-2.3v-2c1.4-0.3,2.2-0.6,3.2-1.2h2.4v9.4h2.2v2.6h-8V285.7z"/>
<path fill="#6D6E71" d="M224.7,290.5c1.5-0.5,2.3-1.4,2.3-2.3c0,0-0.1,0-0.1,0c-1,0-1.9-0.6-1.9-1.8c0-1.1,0.9-1.8,2-1.8
c1.4,0,2.2,1.1,2.2,3c0,2.2-1.3,4-3.8,4.6L224.7,290.5z"/>
<path fill="#6D6E71" d="M230.6,286.5c2.9-2.6,5.1-4.6,5.1-6.3c0-1.1-0.6-1.6-1.5-1.6c-0.8,0-1.4,0.6-2,1.1l-1.7-1.7
c1.3-1.3,2.4-1.9,4.2-1.9c2.4,0,4.1,1.6,4.1,4c0,1.9-1.8,4.1-3.5,5.7c0.6-0.1,1.5-0.2,2-0.2h2v2.7h-8.7V286.5z"/>
</g>
<g>
<circle fill="#E6E7E8" stroke="#808285" stroke-width="6" stroke-miterlimit="10" cx="281.3" cy="204.1" r="23.1"/>
</g>
<g>
<path fill="#6D6E71" d="M268.9,206.5h2.6v-6.2h-2.3v-2c1.4-0.3,2.2-0.6,3.2-1.2h2.4v9.4h2.2v2.6h-8V206.5z"/>
<path fill="#6D6E71" d="M278.8,211.3c1.5-0.5,2.3-1.4,2.3-2.3c0,0-0.1,0-0.1,0c-1,0-1.9-0.6-1.9-1.8c0-1.1,0.9-1.8,2-1.8
c1.4,0,2.2,1.1,2.2,3c0,2.2-1.3,4-3.8,4.6L278.8,211.3z"/>
<path fill="#6D6E71" d="M285.2,206.5h2.6v-6.2h-2.3v-2c1.4-0.3,2.2-0.6,3.2-1.2h2.4v9.4h2.2v2.6h-8V206.5z"/>
</g>
<g>
<circle fill="#E6E7E8" stroke="#808285" stroke-width="6" stroke-miterlimit="10" cx="366.4" cy="208.3" r="23.1"/>
</g>
<g>
<path fill="#6D6E71" d="M353.4,211.5c2.9-2.6,5.1-4.6,5.1-6.3c0-1.1-0.6-1.6-1.5-1.6c-0.8,0-1.4,0.6-2,1.1l-1.8-1.7
c1.3-1.3,2.4-1.9,4.2-1.9c2.4,0,4.1,1.6,4.1,4c0,1.9-1.8,4.1-3.5,5.7c0.6-0.1,1.5-0.2,2-0.2h2v2.7h-8.7V211.5z"/>
<path fill="#6D6E71" d="M363.9,215.5c1.5-0.5,2.3-1.4,2.3-2.3c0,0-0.1,0-0.1,0c-1,0-1.9-0.6-1.9-1.8c0-1.1,0.9-1.8,2-1.8
c1.4,0,2.2,1.1,2.2,3c0,2.2-1.3,4-3.8,4.6L363.9,215.5z"/>
<path fill="#6D6E71" d="M370.3,210.7h2.6v-6.2h-2.3v-2c1.4-0.3,2.2-0.6,3.2-1.2h2.4v9.4h2.2v2.6h-8V210.7z"/>
</g>
<g>
<g>
<g>
<path fill="#808285" d="M282.9,181.1c0,0,0.2-1.6,0.5-4.3c0.1-0.7,0.2-1.5,0.3-2.3c0.1-0.8,0.3-1.7,0.5-2.7c0.2-1,0.4-2,0.6-3
c0.1-0.5,0.2-1.1,0.3-1.6c0.1-0.6,0.3-1.1,0.5-1.7c1.3-4.6,3-9.9,5.5-15.4c0.6-1.4,1.2-2.8,1.9-4.2c0.7-1.4,1.4-2.8,2.2-4.2
c1.4-2.8,3.2-5.5,4.8-8.3c6.8-10.9,15.1-20.8,21.7-27.9c3.3-3.5,6.2-6.3,8.2-8.3c0.5-0.5,0.9-0.8,0.9-0.8l7.9,8.4
c2.2-8.1,5-16.2,8.3-24.3c-8.7,1.2-17.5,2.9-26.4,5.2l7.9,8.4c0,0-0.3,0.3-0.9,0.9c-2,2-5,4.8-8.3,8.4
c-6.7,7.1-15.2,17.2-22.1,28.4c-1.7,2.8-3.4,5.6-4.9,8.5c-0.8,1.4-1.5,2.9-2.2,4.3c-0.7,1.4-1.3,2.9-1.9,4.3
c-2.6,5.6-4.4,11.1-5.7,15.9c-0.2,0.6-0.4,1.2-0.5,1.7c-0.1,0.6-0.2,1.1-0.4,1.7c-0.2,1.1-0.4,2.2-0.7,3.1
c-0.2,1-0.4,1.9-0.5,2.8c-0.1,0.9-0.2,1.7-0.3,2.4c-0.3,2.9-0.5,4.5-0.5,4.5L282.9,181.1z"/>
</g>
</g>
</g>
<g>
<g>
<g>
<path fill="#808285" d="M366.4,186.9c0,0,0-0.8,0.1-2.1c0.1-1.3,0.2-3.2,0.3-5.5c0.2-4.5,0.4-10.6,0.4-16.6
c0-6.1-0.2-12.1-0.4-16.7c-0.1-2.3-0.3-4.2-0.3-5.5c-0.1-0.7-0.1-1.1-0.1-1.1l11.5-0.9c-2.5-3.8-5.1-7.6-7.8-11.2
c-2.7-3.6-5.5-7.1-8.4-10.4c-2.8,8.3-6.3,16.1-10.1,23.6l11.5-0.9c0,0,0,0.4,0.1,1c0.1,1.3,0.2,3.2,0.3,5.4
c0.2,4.5,0.4,10.5,0.4,16.5c0,6-0.2,12-0.4,16.5c-0.1,2.3-0.2,4.1-0.3,5.4c-0.1,1.3-0.1,2.1-0.1,2.1L366.4,186.9z"/>
</g>
</g>
</g>
<g>
<g>
<g>
<path fill="#808285" d="M228.8,260c0,0-0.1-0.7-0.1-2.1c0-0.7-0.1-1.5-0.2-2.5c0-0.5-0.1-1-0.1-1.6c0-0.6,0-1.2,0-1.8
c-0.2-5.1,0.1-12.5,1.5-21.3c1.4-8.7,4.2-18.7,8.7-28.9c2.3-5,4.9-10.1,8-15c3.1-4.9,6.6-9.7,10.4-14.2c1-1.1,2-2.2,2.9-3.3
c1-1.1,2-2.2,3-3.2c1-1.1,2-2.1,3.1-3.2c1.1-1,2.1-2,3.2-3c2.1-2,4.3-3.9,6.4-5.8c2.2-1.8,4.3-3.7,6.5-5.4
c8.6-7,17.2-13,24.7-17.8c1.9-1.2,3.7-2.3,5.4-3.4c1.7-1,3.4-2,5-2.9c1.6-0.9,3.1-1.7,4.4-2.4c1.4-0.8,2.6-1.4,3.8-2
c0.8-0.4,1.3-0.6,1.3-0.6l5.1,10.4c4.4-7,9.2-14,15.3-20.3c-8.5-2.1-17.7-2.9-26.9-3.3l5.1,10.4c0,0-0.5,0.2-1.3,0.7
c-1.2,0.6-2.5,1.3-3.9,2c-1.4,0.8-2.9,1.6-4.5,2.5c-1.6,0.9-3.3,1.9-5,2.9c-1.8,1-3.6,2.2-5.5,3.4c-7.6,4.8-16.2,10.9-25,18
c-2.2,1.8-4.4,3.6-6.6,5.5c-2.1,2-4.4,3.9-6.5,5.9c-1.1,1-2.1,2.1-3.2,3.1c-1.1,1-2.1,2.1-3.1,3.2c-1.1,1.1-2.1,2.2-3.1,3.3
c-1,1.1-2,2.2-3,3.4c-3.9,4.6-7.4,9.5-10.6,14.6c-3.2,5.1-5.8,10.3-8.2,15.4c-4.5,10.4-7.5,20.7-8.9,29.6
c-1.4,9-1.7,16.6-1.5,21.9c0,0.7,0,1.3,0,1.9c0,0.6,0.1,1.1,0.1,1.7c0.1,1,0.1,1.9,0.2,2.6c0.1,1.4,0.2,2.2,0.2,2.2L228.8,260z"
/>
</g>
</g>
</g>
<g>
<g>
<g>
<path fill="#808285" d="M353.2,242.5c0,0-0.2-1.9-0.6-5.2c-0.1-0.8-0.2-1.7-0.3-2.7c-0.1-1-0.3-2.1-0.5-3.2
c-0.3-2.3-0.7-4.9-1.2-7.7c-1.9-11.3-5.3-26.1-9.7-40.6c-4.4-14.6-9.7-28.8-14.2-39.3c-0.6-1.3-1.1-2.6-1.6-3.8
c-0.5-1.2-1-2.3-1.5-3.4c-1-2.1-1.8-4-2.5-5.5c-0.4-0.7-0.6-1.1-0.6-1.1l10.4-5c-7.3-5.3-14.9-10.2-22.5-14.5
c0,8.8-0.4,17.3-1.3,25.8l10.4-5c0,0,0.2,0.4,0.5,1.1c0.7,1.5,1.5,3.3,2.5,5.4c0.5,1,1,2.2,1.5,3.3c0.5,1.2,1,2.4,1.6,3.7
c4.4,10.4,9.7,24.5,14.1,39c4.3,14.4,7.8,29.1,9.6,40.3c0.5,2.8,0.8,5.3,1.2,7.6c0.2,1.1,0.3,2.2,0.5,3.2c0.1,1,0.2,1.9,0.3,2.7
c0.3,3.3,0.5,5.1,0.5,5.1L353.2,242.5z"/>
</g>
</g>
</g>
<g>
<g>
<g>
<path fill="#808285" d="M333.4,304c0,0-0.1-2.7-0.2-7.6c0-2.4-0.1-5.3-0.3-8.7c-0.2-3.3-0.4-7.1-0.7-11.2
c-1.2-16.4-4.1-38.2-8.1-59.8c-3.9-21.6-8.7-43-12.6-58.9c-2-8-3.8-14.6-5-19.2c-0.2-0.9-0.4-1.4-0.4-1.4l11.2-3.1
c-6.3-6.3-12.6-12.5-19.1-18.4c-1.9,8.6-4,17-6.2,25.3l11.2-3.1c0,0,0.1,0.5,0.4,1.4c1.2,4.6,3,11.2,5,19.2
c4,15.9,8.8,37.2,12.6,58.7c3.9,21.5,6.8,43.2,8,59.5c0.4,4.1,0.5,7.8,0.7,11.1c0.2,3.3,0.3,6.2,0.3,8.6
c0.1,4.8,0.2,7.5,0.2,7.5H333.4z"/>
</g>
</g>
</g>
<circle fill="#FFFFFF" stroke="#939598" stroke-width="6" stroke-miterlimit="10" cx="288.4" cy="69.3" r="13.1"/>
<g>
<path fill="#6D6E71" d="M284.3,73.7l1.4-2.1c0.7,0.6,1.6,1.1,2.4,1.1c1.1,0,1.8-0.5,1.8-1.6c0-1-0.7-1.6-1.6-1.6
c-0.6,0-1,0.1-1.7,0.6l-1.4-0.9l0.3-6.2h7.1v2.7h-4.3l-0.2,1.7c0.4-0.2,0.7-0.2,1.1-0.2c2.1,0,3.9,1.2,3.9,3.7
c0,2.7-2.1,4.3-4.6,4.3C286.7,75.4,285.3,74.7,284.3,73.7z"/>
</g>
<g>
<g>
<g>
<path fill="#808285" d="M267.5,334.8c0,0-1-3.7-2.6-10.2c-1.5-6.5-3.6-15.9-5.3-27.3c-1.7-11.4-3.2-24.7-4-39.1
c-0.9-14.4-1.3-29.7-1.3-45.1c0-7.7,0-15.4,0.1-23c0.1-3.8,0.1-7.5,0.2-11.3c0-1.9,0.1-3.7,0.1-5.5c0-1.8,0.2-3.6,0.2-5.4
c0.5-7.1,1.7-13.9,3-20.4c1.3-6.4,2.7-12.5,4.2-18.1c3-11.1,6-20.2,8.3-26.5c0.4-1,0.6-1.5,0.6-1.5l10.8,4.1
c-0.8-4.1-1.5-8.3-2-12.5c-0.3-2.1-0.4-4.2-0.6-6.4c-0.2-2.2-0.2-4.3-0.2-6.5c-1.8,1.1-3.8,2.2-5.7,3.5
c-1.8,1.3-3.8,2.6-5.5,3.9c-3.6,2.7-7.2,5.6-10.6,8.6l10.8,4.1c0,0-0.2,0.6-0.6,1.5c-2.4,6.4-5.4,15.5-8.4,26.7
c-1.5,5.6-3,11.7-4.3,18.2c-1.3,6.5-2.5,13.5-3,20.8c-0.1,1.8-0.2,3.7-0.2,5.5c0,1.8-0.1,3.7-0.1,5.5c-0.1,3.7-0.1,7.5-0.2,11.3
c-0.1,7.6-0.1,15.3-0.1,23c0,15.4,0.4,30.9,1.3,45.3c0.9,14.4,2.3,27.9,4.1,39.4c1.7,11.5,3.8,20.9,5.3,27.5
c1.7,6.6,2.7,10.3,2.7,10.3L267.5,334.8z"/>
</g>
</g>
</g>
</g>
<g id="Layer_1">
</g>
<g id="Layer_2">
</g>
</svg>

After

Width:  |  Height:  |  Size: 26 KiB

13309
02_more_sets/product.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 973 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 944 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 940 KiB

12759
02_more_sets/product_parts.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 934 KiB

30
02_more_sets/text.html Normal file
View File

@ -0,0 +1,30 @@
<h1 id="from-sets-to-categories">From Sets to Categories</h1>
<p>In this chapter we will continue with set theory and at the same time, we will start exploring categories.</p>
<h1 id="products">Products</h1>
<p>At several times, during the previous chapter, we needed a way to make a set that is a composite of other sets that we already have. For example when we discussed mathematical functions, we couldn&#39;t define <strong>+</strong> and <strong>-</strong> functions, because we only knew about functions that take one argument. When we talked about programming, we talked about the primitive types, <code>Char</code> and <code>Number</code>, and we mentioned that most of the types are composite types. So how do we deal with those?</p>
<p>The simplest composite, or a <em>product</em>, of the sets <strong>B</strong>, which contains <strong>b</strong>&#39;s and the set<strong>Y</strong>, which contains <strong>y</strong>&#39;s...</p>
<p><img src="product_parts.svg" alt="Product parts"></p>
<p>... is just the set of <strong>b</strong>&#39;s and <strong>y</strong>&#39;s.</p>
<p><img src="product.svg" alt="Product"></p>
<p>The product is denoted <strong>B x Y</strong> and it comes equipped with two functions for retrieving the <strong>b</strong> and the <strong>y</strong> from each <strong>(b, y)</strong>.</p>
<p>Question: Why is this called a product? Hint: How many elements does it have?</p>
<h2 id="products-as-objects">Products as Objects</h2>
<p>We established that in programming sets resemble types and functions resemble functions. Products, in this case, are like stripped-out <em>classes</em> (also called <em>records</em> or <em>structs</em>). The composite sets (the ones which form the product) are just the class&#39;s fields (also called <em>members</em>). The functions for accessing them are like what programmers call <em>getter methods</em>.</p>
<p>For example the famous OOP example of <code>Person</code> class with <code>name</code> and <code>age</code> fields is nothing more than a product of the set of strings, and the sets of numbers (we still haven&#39;t defined strings and lists in terms of set theory but we will get to that). Objects with more than two values can be expressed as products the composites of which are themselves products.</p>
<h2 id="using-products-to-define-numeric-operations">Using Products to Define Numeric Operations</h2>
<p>Products can also be used for expressing functions which take more than one argument. For example, &quot;plus&quot; and &quot;minus&quot;, are functions from set of the product of two numbers to the set of numbers. (so <strong>+: R x R → R</strong>). Of course, we cannot draw the function itself, even partly, because it has too much arrows and it would look messy.</p>
<p>Joking, here it is.</p>
<p><img src="plus.svg" alt="The plus function"></p>
<p>Note that there are languages where the <em>pair</em> datastructure (also called a <em>tuple</em>) is a first-level construct, and multi-argument functions are really implemented in this way. </p>
<h2 id="defining-products-in-terms-of-sets-">Defining products in Terms of Sets </h2>
<p>Now we will define the abstract concept of a product of two sets sets in terms of sets themselves. It is not hard: the product of two sets <strong>Y</strong> and <strong>B</strong> is just the set of all possible <em>ordered pairs</em>, which contain one element of the set <strong>Y</strong> and one element of the set <strong>B</strong>. Or formally speaking <strong>Y x B = { (y, b) }</strong> where <strong>y ∈ Y, b ∈ B</strong> (<strong></strong> means &quot;is an element of&quot;).</p>
<p>The real challenge is defining what a pair means in terms of sets. Note that the pair have to be <em>ordered</em>, so it cannot be just a set of two elements (formally speaking <strong>A x B ≠ B x A for all A and B </strong>). Some mathematical operations such as addition and multiplication don&#39;t care about order, but others, such as subtraction, do. And in programming we have the ability to assign names to each member of an object, which accomplishes the same purpose as the ordering does in pairs.</p>
<p><img src="pair.svg" alt="A pair"></p>
<p>So the pair must be ordered, and sets aren&#39;t. Turns out that that hasn&#39;t stopped mathematicians from coming up with multiple ingenious ways to represent an ordered pair using sets. Here is the first one, which was discovered by Norbert Wiener in 1914. The definition is notable for its smart use of the uniqueness of the empty set. </p>
<p><img src="pair_as_set_2.svg" alt="A pair, represented by sets"></p>
<p>The next one was discovered in the same year by Felix Hausdorff. In order to use that one, we just have to define &quot;1&quot;, and &quot;2&quot; first.</p>
<p><img src="pair_as_set_3.svg" alt="A pair, represented by sets"></p>
<p>Discovered in 1921 Kazimierz Kuratowski, this one uses just the component of the pair.</p>
<p><img src="pair_as_set_1.svg" alt="A pair, represented by sets"></p>
<h2 id="defining-products-in-terms-of-functions-">Defining products in Terms of Functions </h2>
<p>The previous chapter</p>

75
02_more_sets/text.md Normal file
View File

@ -0,0 +1,75 @@
From Sets to Categories
===
In this chapter we will continue with set theory and at the same time, we will start exploring categories.
Products
===
At several times, during the previous chapter, we needed a way to make a set that is a composite of other sets that we already have. For example when we discussed mathematical functions, we couldn't define **+** and **-** functions, because we only knew about functions that take one argument. When we talked about programming, we talked about the primitive types, `Char` and `Number`, and we mentioned that most of the types are composite types. So how do we deal with those?
The simplest composite, or a *product*, of the sets **B**, which contains **b**'s and the set**Y**, which contains **y**'s...
![Product parts](product_parts.svg)
... is just the set of **b**'s and **y**'s.
![Product](product.svg)
The product is denoted **B x Y** and it comes equipped with two functions for retrieving the **b** and the **y** from each **(b, y)**.
Question: Why is this called a product? Hint: How many elements does it have?
Products as Objects
---
We established that in programming sets resemble types and functions resemble functions. Products, in this case, are like stripped-out *classes* (also called *records* or *structs*). The composite sets (the ones which form the product) are just the class's fields (also called *members*). The functions for accessing them are like what programmers call *getter methods*.
For example the famous OOP example of `Person` class with `name` and `age` fields is nothing more than a product of the set of strings, and the sets of numbers (we still haven't defined strings and lists in terms of set theory but we will get to that). Objects with more than two values can be expressed as products the composites of which are themselves products.
Using Products to Define Numeric Operations
---
Products can also be used for expressing functions which take more than one argument. For example, "plus" and "minus", are functions from set of the product of two numbers to the set of numbers. (so **+: R x R → R**). Of course, we cannot draw the function itself, even partly, because it has too much arrows and it would look messy.
Joking, here it is.
![The plus function](plus.svg)
Note that there are languages where the *pair* datastructure (also called a *tuple*) is a first-level construct, and multi-argument functions are really implemented in this way.
Defining products in Terms of Sets
---
Now we will define the abstract concept of a product of two sets sets in terms of sets themselves. It is not hard: the product of two sets **Y** and **B** is just the set of all possible *ordered pairs*, which contain one element of the set **Y** and one element of the set **B**. Or formally speaking **Y x B = { (y, b) }** where **y ∈ Y, b ∈ B** (**∈** means "is an element of").
The real challenge is defining what a pair means in terms of sets.
![A pair](pair.svg)
Note that the pair have to be *ordered*, so it cannot be just a set of two elements (formally speaking **A x B ≠ B x A for all A and B **). Some mathematical operations such as addition and multiplication don't care about order, but others, such as subtraction, do. And in programming we have the ability to assign names to each member of an object, which accomplishes the same purpose as the ordering does in pairs.
So the pair must be ordered, and sets aren't. Turns out that that hasn't stopped mathematicians from coming up with multiple ingenious ways to represent an ordered pair using sets. Here is the first one, which was discovered by Norbert Wiener in 1914. The definition is notable for its smart use of the uniqueness of the empty set.
![A pair, represented by sets](pair_as_set_2.svg)
The next one was discovered in the same year by Felix Hausdorff. In order to use that one, we just have to define "1", and "2" first.
![A pair, represented by sets](pair_as_set_3.svg)
Discovered in 1921 Kazimierz Kuratowski, this one uses just the component of the pair.
![A pair, represented by sets](pair_as_set_1.svg)
Defining products in Terms of Functions
---
In the previous chapter we provided a definition of a product by *zooming in* the individual elements of the sets and seeing what they are made of. This resulted in a very *low-level* view of the construct. This time we will try to do the opposite, and be as oblivious to the contents of our sets as possible. Instead of zooming in we will zoom out, and try define the product in terms of functions. Let's begin with the definition of the product.
![Product, external diagram](product_external.svg)
This diagram already contains the first piece of the puzzle - the product of sets *Y* and *B* is a set **G**, such that there exista function **G → Y** and a function **G → B**